<?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>78939</bug_id>
          
          <creation_ts>2012-02-17 15:11:38 -0800</creation_ts>
          <short_desc>Remove the remaining uses of CSSStyleDeclaration in Editor</short_desc>
          <delta_ts>2012-02-22 15:39:35 -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>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="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>enrica</cc>
    
    <cc>gustavo</cc>
    
    <cc>koivisto</cc>
    
    <cc>pnormand</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>559572</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-02-17 15:11:38 -0800</bug_when>
    <thetext>Remove the remaining uses of CSSStyleDeclaration in Editor</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559574</commentid>
    <comment_count>1</comment_count>
      <attachid>127663</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-02-17 15:12:45 -0800</bug_when>
    <thetext>Created attachment 127663
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561015</commentid>
    <comment_count>2</comment_count>
      <attachid>127663</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-02-21 10:44:38 -0800</bug_when>
    <thetext>Comment on attachment 127663
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        No new tests. (OOPS!)

Oops, this comment should go away.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561064</commentid>
    <comment_count>3</comment_count>
      <attachid>128005</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-02-21 11:19:36 -0800</bug_when>
    <thetext>Created attachment 128005
Updated for ToT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561069</commentid>
    <comment_count>4</comment_count>
      <attachid>128005</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-02-21 11:23:46 -0800</bug_when>
    <thetext>Comment on attachment 128005
Updated for ToT

Attachment 128005 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/11556199</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561108</commentid>
    <comment_count>5</comment_count>
      <attachid>128015</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-02-21 12:00:03 -0800</bug_when>
    <thetext>Created attachment 128015
GTK and Windows build fixes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561111</commentid>
    <comment_count>6</comment_count>
      <attachid>127663</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2012-02-21 12:04:45 -0800</bug_when>
    <thetext>Comment on attachment 127663
Patch

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

Looks good to me. Great job, BTW :-). Please make sure you check the EWS before landing. I saw you already fixed some build breakage.

&gt; Source/WebCore/ChangeLog:22
&gt; +        (Editor):

The 2 lines above don&apos;t add any information.

&gt; Source/WebCore/ChangeLog:35
&gt; +        (EditorClient):

Ditto.

&gt; Source/WebKit/mac/WebView/WebFrame.mm:802
&gt; +    // FIXME: We shouldn&apos;t have to create a copy here.

This comment should be as detailed as the one on line 4356 of WebHTMLView.mm.

&gt; Source/WebKit/mac/WebView/WebHTMLView.mm:4658
&gt; +            // FIXME: We shouldn&apos;t have to make a copy here.

Same here.

&gt; Source/WebKit/mac/WebView/WebView.mm:5528
&gt; +    // FIXME: We shouldn&apos;t have to make a copy here.

Same here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561728</commentid>
    <comment_count>7</comment_count>
      <attachid>128015</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-22 01:14:43 -0800</bug_when>
    <thetext>Comment on attachment 128015
GTK and Windows build fixes

Clearing flags on attachment: 128015

Committed r108462: &lt;http://trac.webkit.org/changeset/108462&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561729</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-22 01:14:48 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562468</commentid>
    <comment_count>9</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-02-22 15:39:35 -0800</bug_when>
    <thetext>Committed r108562: &lt;http://trac.webkit.org/changeset/108562&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127663</attachid>
            <date>2012-02-17 15:12:45 -0800</date>
            <delta_ts>2012-02-21 12:04:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78939-20120217151244.patch</filename>
            <type>text/plain</type>
            <size>44118</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwODEzMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM5IEBACisyMDEyLTAyLTE3ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFJlbW92ZSB0aGUgcmVtYWluaW5n
IHVzZXMgb2YgQ1NTU3R5bGVEZWNsYXJhdGlvbiBpbiBFZGl0b3IKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4OTM5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAg
ICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogZWRpdGluZy9FZGl0b3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RWRpdG9yOjphcHBseVN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6c2hv
dWxkQXBwbHlTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmFwcGx5UGFyYWdyYXBo
U3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjphcHBseVN0eWxlVG9TZWxlY3Rpb24p
OgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjphcHBseVBhcmFncmFwaFN0eWxlVG9TZWxlY3Rp
b24pOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpzZXRCYXNlV3JpdGluZ0RpcmVjdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmNvbXB1dGVBbmRTZXRUeXBpbmdTdHlsZSk6Cisg
ICAgICAgICogZWRpdGluZy9FZGl0b3IuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
RWRpdG9yKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6YXBwbHlDb21tYW5kVG9GcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpleGVjdXRl
QXBwbHlQYXJhZ3JhcGhTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpleGVjdXRlTWFrZVRleHRX
cml0aW5nRGlyZWN0aW9uTGVmdFRvUmlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0ZU1h
a2VUZXh0V3JpdGluZ0RpcmVjdGlvbk5hdHVyYWwpOgorICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0
ZU1ha2VUZXh0V3JpdGluZ0RpcmVjdGlvblJpZ2h0VG9MZWZ0KToKKyAgICAgICAgKiBsb2FkZXIv
RW1wdHlDbGllbnRzLmg6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUVkaXRvckNsaWVudDo6c2hv
dWxkQXBwbHlTdHlsZSk6CisgICAgICAgICogcGFnZS9EcmFnQ29udHJvbGxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6Y29uY2x1ZGVFZGl0RHJhZyk6CisgICAgICAg
ICogcGFnZS9FZGl0b3JDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoRWRp
dG9yQ2xpZW50KToKKwogMjAxMi0wMi0xNyAgRW1pbCBBIEVrbHVuZCAgPGVhZUBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgQWRkIEZyYWN0aW9uYWxMYXlvdXRTaXplIGZvciBzdWItcGl4ZWwgbGF5
b3V0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkocmV2aXNpb24gMTA4MDA5KQorKysgU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5leHAuaW4JKHdvcmtpbmcgY29weSkKQEAgLTg0MSw3ICs4NDEsNyBA
QCBfX1pON1dlYkNvcmU2Q3Vyc29yOGZyb21UeXBlRU5TMF80VHlwZUUKIF9fWk43V2ViQ29yZTZD
dXJzb3JDMUVQTlNfNUltYWdlRVJLTlNfOEludFBvaW50RQogX19aTjdXZWJDb3JlNkN1cnNvckQx
RXYKIF9fWk43V2ViQ29yZTZDdXJzb3JhU0VSS1MwXwotX19aTjdXZWJDb3JlNkVkaXRvcjEwYXBw
bHlTdHlsZUVQTlNfMTlDU1NTdHlsZURlY2xhcmF0aW9uRU5TXzEwRWRpdEFjdGlvbkUKK19fWk43
V2ViQ29yZTZFZGl0b3IxMGFwcGx5U3R5bGVFUE5TXzE2U3R5bGVQcm9wZXJ0eVNldEVOU18xMEVk
aXRBY3Rpb25FCiBfX1pON1dlYkNvcmU2RWRpdG9yMTBmaW5kU3RyaW5nRVJLTjNXVEY2U3RyaW5n
RWoKIF9fWk43V2ViQ29yZTZFZGl0b3IxMGluc2VydFRleHRFUktOM1dURjZTdHJpbmdFUE5TXzVF
dmVudEUKIF9fWk43V2ViQ29yZTZFZGl0b3IxM2NhbkRIVE1MUGFzdGVFdgpAQCAtODU4LDExICs4
NTgsMTEgQEAgX19aTjdXZWJDb3JlNkVkaXRvcjE4Y29uZmlybUNvbXBvc2l0aW9uRQogX19aTjdX
ZWJDb3JlNkVkaXRvcjE5Y291bnRNYXRjaGVzRm9yVGV4dEVSS04zV1RGNlN0cmluZ0VQTlNfNVJh
bmdlRWpqYgogX19aTjdXZWJDb3JlNkVkaXRvcjE5ZGVsZXRlV2l0aERpcmVjdGlvbkVOU18xOFNl
bGVjdGlvbkRpcmVjdGlvbkVOU18xNVRleHRHcmFudWxhcml0eUViYgogX19aTjdXZWJDb3JlNkVk
aXRvcjE5aW5zZXJ0VW5vcmRlcmVkTGlzdEV2Ci1fX1pON1dlYkNvcmU2RWRpdG9yMjFhcHBseVN0
eWxlVG9TZWxlY3Rpb25FUE5TXzE5Q1NTU3R5bGVEZWNsYXJhdGlvbkVOU18xMEVkaXRBY3Rpb25F
CitfX1pON1dlYkNvcmU2RWRpdG9yMjFhcHBseVN0eWxlVG9TZWxlY3Rpb25FUE5TXzE2U3R5bGVQ
cm9wZXJ0eVNldEVOU18xMEVkaXRBY3Rpb25FCiBfX1pON1dlYkNvcmU2RWRpdG9yMjFpc1NlbGVj
dGlvbk1pc3NwZWxsZWRFdgogX19aTjdXZWJDb3JlNkVkaXRvcjIzc2V0QmFzZVdyaXRpbmdEaXJl
Y3Rpb25FMTZXcml0aW5nRGlyZWN0aW9uCiBfX1pON1dlYkNvcmU2RWRpdG9yMjRhZHZhbmNlVG9O
ZXh0TWlzc3BlbGxpbmdFYgotX19aTjdXZWJDb3JlNkVkaXRvcjI0Y29tcHV0ZUFuZFNldFR5cGlu
Z1N0eWxlRVBOU18xOUNTU1N0eWxlRGVjbGFyYXRpb25FTlNfMTBFZGl0QWN0aW9uRQorX19aTjdX
ZWJDb3JlNkVkaXRvcjI0Y29tcHV0ZUFuZFNldFR5cGluZ1N0eWxlRVBOU18xNlN0eWxlUHJvcGVy
dHlTZXRFTlNfMTBFZGl0QWN0aW9uRQogX19aTjdXZWJDb3JlNkVkaXRvcjI0aXNTZWxlY3Rpb25V
bmdyYW1tYXRpY2FsRXYKIF9fWk43V2ViQ29yZTZFZGl0b3IyNHJlcGxhY2VTZWxlY3Rpb25XaXRo
VGV4dEVSS04zV1RGNlN0cmluZ0ViYgogX19aTjdXZWJDb3JlNkVkaXRvcjI2ZGVjcmVhc2VTZWxl
Y3Rpb25MaXN0TGV2ZWxFdgpAQCAtODczLDcgKzg3Myw2IEBAIF9fWk43V2ViQ29yZTZFZGl0b3Iy
N3JlYWRTZWxlY3Rpb25Gcm9tUGEKIF9fWk43V2ViQ29yZTZFZGl0b3IyOHJlcGxhY2VTZWxlY3Rp
b25XaXRoRnJhZ21lbnRFTjNXVEYxMFBhc3NSZWZQdHJJTlNfMTZEb2N1bWVudEZyYWdtZW50RUVF
YmJiCiBfX1pON1dlYkNvcmU2RWRpdG9yMjljYW5EZWNyZWFzZVNlbGVjdGlvbkxpc3RMZXZlbEV2
CiBfX1pON1dlYkNvcmU2RWRpdG9yMjljYW5JbmNyZWFzZVNlbGVjdGlvbkxpc3RMZXZlbEV2Ci1f
X1pON1dlYkNvcmU2RWRpdG9yMzBhcHBseVBhcmFncmFwaFN0eWxlVG9TZWxlY3Rpb25FUE5TXzE5
Q1NTU3R5bGVEZWNsYXJhdGlvbkVOU18xMEVkaXRBY3Rpb25FCiBfX1pON1dlYkNvcmU2RWRpdG9y
MzBkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGVFYgogX19aTjdXZWJDb3JlNkVkaXRvcjMw
cGFzdGVBc1BsYWluVGV4dEJ5cGFzc2luZ0RIVE1MRXYKIF9fWk43V2ViQ29yZTZFZGl0b3IzMmd1
ZXNzZXNGb3JVbmdyYW1tYXRpY2FsU2VsZWN0aW9uRXYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDEwODAwOSkK
KysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29y
a2luZyBjb3B5KQpAQCAtNzM4Myw5ICs3MzgzLDkgQEAKIAkJMUFGRTExOTgwQ0JGRkNDNDAwMzAx
N0ZBIC8qIEpTU1FMUmVzdWx0U2V0Um93TGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKU1NRTFJlc3VsdFNldFJvd0xpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMUMyNjQ5NzkwRDdFMjQ4QTAwQkQxMEYyIC8qIERvY3VtZW50TG9hZGVyTWFjLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERvY3VtZW50TG9hZGVyTWFjLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUMyNjQ5N0IwRDdFMjRFQzAwQkQxMEYy
IC8qIFBhZ2VNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFn
ZU1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTFDNDM1Q0QzMTRFODU0NEYw
MDRFMTBFQSAvKiBJbnNwZWN0b3IuanNvbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQuanNvbjsgcGF0aCA9IEluc3BlY3Rvci5qc29uOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxQzQzNUNENDE0RTg1NDVCMDA0RTEwRUEgLyogSW5z
cGVjdG9yLTAuMS5qc29uICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dC5qc29uOyBwYXRoID0gIkluc3BlY3Rvci0wLjEuanNvbiI7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTFDNDM1Q0Q1MTRFODU0NUIwMDRFMTBFQSAvKiBJbnNwZWN0
b3ItMS4wLmpzb24gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0Lmpzb247IHBhdGggPSAiSW5zcGVjdG9yLTEuMC5qc29uIjsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMUM0MzVDRDMxNEU4NTQ0RjAwNEUxMEVBIC8qIEluc3BlY3Rvci5q
c29uICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IEluc3BlY3Rvci5qc29uOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkx
QzQzNUNENDE0RTg1NDVCMDA0RTEwRUEgLyogSW5zcGVjdG9yLTAuMS5qc29uICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9ICJJbnNw
ZWN0b3ItMC4xLmpzb24iOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzQzNUNENTE0
RTg1NDVCMDA0RTEwRUEgLyogSW5zcGVjdG9yLTEuMC5qc29uICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9ICJJbnNwZWN0b3ItMS4w
Lmpzb24iOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzRDOEVGRjBBRDg1RDg3MDA5
NDc1Q0UgLyogRGVsZXRlQnV0dG9uQ29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBEZWxldGVCdXR0b25Db250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTFDNEM4RjAwMEFE
ODVEODcwMDk0NzVDRSAvKiBEZWxldGVCdXR0b25Db250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IERlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTFDNEM4RjYzMEFE
ODY1NUQwMDk0NzVDRSAvKiBEZWxldGVCdXR0b24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gRGVsZXRlQnV0dG9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
dGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
b3IuY3BwCShyZXZpc2lvbiAxMDgwMDkpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc2NCw3ICs3NjQsNyBAQCBOb2RlKiBFZGl0b3I6OmZp
bmRFdmVudFRhcmdldEZyb21TZWxlY3RpCiAgICAgcmV0dXJuIGZpbmRFdmVudFRhcmdldEZyb20o
bV9mcmFtZS0+c2VsZWN0aW9uKCktPnNlbGVjdGlvbigpKTsKIH0KIAotdm9pZCBFZGl0b3I6OmFw
cGx5U3R5bGUoQ1NTU3R5bGVEZWNsYXJhdGlvbiogc3R5bGUsIEVkaXRBY3Rpb24gZWRpdGluZ0Fj
dGlvbikKK3ZvaWQgRWRpdG9yOjphcHBseVN0eWxlKFN0eWxlUHJvcGVydHlTZXQqIHN0eWxlLCBF
ZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCiB7CiAgICAgc3dpdGNoIChtX2ZyYW1lLT5zZWxlY3Rp
b24oKS0+c2VsZWN0aW9uVHlwZSgpKSB7CiAgICAgY2FzZSBWaXNpYmxlU2VsZWN0aW9uOjpOb1Nl
bGVjdGlvbjoKQEAgLTc4MCwxMiArNzgwLDEyIEBAIHZvaWQgRWRpdG9yOjphcHBseVN0eWxlKENT
U1N0eWxlRGVjbGFyYXQKICAgICB9CiB9CiAgICAgCi1ib29sIEVkaXRvcjo6c2hvdWxkQXBwbHlT
dHlsZShDU1NTdHlsZURlY2xhcmF0aW9uKiBzdHlsZSwgUmFuZ2UqIHJhbmdlKQorYm9vbCBFZGl0
b3I6OnNob3VsZEFwcGx5U3R5bGUoU3R5bGVQcm9wZXJ0eVNldCogc3R5bGUsIFJhbmdlKiByYW5n
ZSkKIHsgICAKICAgICByZXR1cm4gY2xpZW50KCktPnNob3VsZEFwcGx5U3R5bGUoc3R5bGUsIHJh
bmdlKTsKIH0KICAgICAKLXZvaWQgRWRpdG9yOjphcHBseVBhcmFncmFwaFN0eWxlKENTU1N0eWxl
RGVjbGFyYXRpb24qIHN0eWxlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCit2b2lkIEVkaXRv
cjo6YXBwbHlQYXJhZ3JhcGhTdHlsZShTdHlsZVByb3BlcnR5U2V0KiBzdHlsZSwgRWRpdEFjdGlv
biBlZGl0aW5nQWN0aW9uKQogewogICAgIHN3aXRjaCAobV9mcmFtZS0+c2VsZWN0aW9uKCktPnNl
bGVjdGlvblR5cGUoKSkgewogICAgIGNhc2UgVmlzaWJsZVNlbGVjdGlvbjo6Tm9TZWxlY3Rpb246
CkBAIC03OTksMTggKzc5OSwxOCBAQCB2b2lkIEVkaXRvcjo6YXBwbHlQYXJhZ3JhcGhTdHlsZShD
U1NTdHlsCiAgICAgfQogfQogCi12b2lkIEVkaXRvcjo6YXBwbHlTdHlsZVRvU2VsZWN0aW9uKENT
U1N0eWxlRGVjbGFyYXRpb24qIHN0eWxlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCit2b2lk
IEVkaXRvcjo6YXBwbHlTdHlsZVRvU2VsZWN0aW9uKFN0eWxlUHJvcGVydHlTZXQqIHN0eWxlLCBF
ZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCiB7Ci0gICAgaWYgKCFzdHlsZSB8fCAhc3R5bGUtPmxl
bmd0aCgpIHx8ICFjYW5FZGl0UmljaGx5KCkpCisgICAgaWYgKCFzdHlsZSB8fCBzdHlsZS0+aXNF
bXB0eSgpIHx8ICFjYW5FZGl0UmljaGx5KCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChj
bGllbnQoKSAmJiBjbGllbnQoKS0+c2hvdWxkQXBwbHlTdHlsZShzdHlsZSwgbV9mcmFtZS0+c2Vs
ZWN0aW9uKCktPnRvTm9ybWFsaXplZFJhbmdlKCkuZ2V0KCkpKQogICAgICAgICBhcHBseVN0eWxl
KHN0eWxlLCBlZGl0aW5nQWN0aW9uKTsKIH0KIAotdm9pZCBFZGl0b3I6OmFwcGx5UGFyYWdyYXBo
U3R5bGVUb1NlbGVjdGlvbihDU1NTdHlsZURlY2xhcmF0aW9uKiBzdHlsZSwgRWRpdEFjdGlvbiBl
ZGl0aW5nQWN0aW9uKQordm9pZCBFZGl0b3I6OmFwcGx5UGFyYWdyYXBoU3R5bGVUb1NlbGVjdGlv
bihTdHlsZVByb3BlcnR5U2V0KiBzdHlsZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQogewot
ICAgIGlmICghc3R5bGUgfHwgIXN0eWxlLT5sZW5ndGgoKSB8fCAhY2FuRWRpdFJpY2hseSgpKQor
ICAgIGlmICghc3R5bGUgfHwgc3R5bGUtPmlzRW1wdHkoKSB8fCAhY2FuRWRpdFJpY2hseSgpKQog
ICAgICAgICByZXR1cm47CiAgICAgCiAgICAgaWYgKGNsaWVudCgpICYmIGNsaWVudCgpLT5zaG91
bGRBcHBseVN0eWxlKHN0eWxlLCBtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+dG9Ob3JtYWxpemVkUmFu
Z2UoKS5nZXQoKSkpCkBAIC0xMzQ4LDcgKzEzNDgsNyBAQCB2b2lkIEVkaXRvcjo6c2V0QmFzZVdy
aXRpbmdEaXJlY3Rpb24oV3JpCiAKICAgICBSZWZQdHI8U3R5bGVQcm9wZXJ0eVNldD4gc3R5bGUg
PSBTdHlsZVByb3BlcnR5U2V0OjpjcmVhdGUoKTsKICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NT
UHJvcGVydHlEaXJlY3Rpb24sIGRpcmVjdGlvbiA9PSBMZWZ0VG9SaWdodFdyaXRpbmdEaXJlY3Rp
b24gPyAibHRyIiA6IGRpcmVjdGlvbiA9PSBSaWdodFRvTGVmdFdyaXRpbmdEaXJlY3Rpb24gPyAi
cnRsIiA6ICJpbmhlcml0IiwgZmFsc2UpOwotICAgIGFwcGx5UGFyYWdyYXBoU3R5bGVUb1NlbGVj
dGlvbihzdHlsZS0+ZW5zdXJlQ1NTU3R5bGVEZWNsYXJhdGlvbigpLCBFZGl0QWN0aW9uU2V0V3Jp
dGluZ0RpcmVjdGlvbik7CisgICAgYXBwbHlQYXJhZ3JhcGhTdHlsZVRvU2VsZWN0aW9uKHN0eWxl
LmdldCgpLCBFZGl0QWN0aW9uU2V0V3JpdGluZ0RpcmVjdGlvbik7CiB9CiAKIHZvaWQgRWRpdG9y
OjpzZWxlY3RDb21wb3NpdGlvbigpCkBAIC0yNjY1LDkgKzI2NjUsOSBAQCBib29sIEVkaXRvcjo6
c2hvdWxkQ2hhbmdlU2VsZWN0aW9uKGNvbnN0CiAgICAgcmV0dXJuIGNsaWVudCgpICYmIGNsaWVu
dCgpLT5zaG91bGRDaGFuZ2VTZWxlY3RlZFJhbmdlKG9sZFNlbGVjdGlvbi50b05vcm1hbGl6ZWRS
YW5nZSgpLmdldCgpLCBuZXdTZWxlY3Rpb24udG9Ob3JtYWxpemVkUmFuZ2UoKS5nZXQoKSwgYWZm
aW5pdHksIHN0aWxsU2VsZWN0aW5nKTsKIH0KIAotdm9pZCBFZGl0b3I6OmNvbXB1dGVBbmRTZXRU
eXBpbmdTdHlsZShDU1NTdHlsZURlY2xhcmF0aW9uKiBzdHlsZSwgRWRpdEFjdGlvbiBlZGl0aW5n
QWN0aW9uKQordm9pZCBFZGl0b3I6OmNvbXB1dGVBbmRTZXRUeXBpbmdTdHlsZShTdHlsZVByb3Bl
cnR5U2V0KiBzdHlsZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQogewotICAgIGlmICghc3R5
bGUgfHwgIXN0eWxlLT5sZW5ndGgoKSkgeworICAgIGlmICghc3R5bGUgfHwgc3R5bGUtPmlzRW1w
dHkoKSkgewogICAgICAgICBtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+Y2xlYXJUeXBpbmdTdHlsZSgp
OwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMjY3Niw3ICsyNjc2LDcgQEAgdm9pZCBFZGl0
b3I6OmNvbXB1dGVBbmRTZXRUeXBpbmdTdHlsZShDUwogICAgIFJlZlB0cjxFZGl0aW5nU3R5bGU+
IHR5cGluZ1N0eWxlOwogICAgIGlmIChtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+dHlwaW5nU3R5bGUo
KSkgewogICAgICAgICB0eXBpbmdTdHlsZSA9IG1fZnJhbWUtPnNlbGVjdGlvbigpLT50eXBpbmdT
dHlsZSgpLT5jb3B5KCk7Ci0gICAgICAgIHR5cGluZ1N0eWxlLT5vdmVycmlkZVdpdGhTdHlsZShz
dHlsZS0+bWFrZU11dGFibGUoKS5nZXQoKSk7CisgICAgICAgIHR5cGluZ1N0eWxlLT5vdmVycmlk
ZVdpdGhTdHlsZShzdHlsZSk7CiAgICAgfSBlbHNlCiAgICAgICAgIHR5cGluZ1N0eWxlID0gRWRp
dGluZ1N0eWxlOjpjcmVhdGUoc3R5bGUpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgJ
KHJldmlzaW9uIDEwODAwOSkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgJKHdv
cmtpbmcgY29weSkKQEAgLTQ2LDcgKzQ2LDYgQEAgdHlwZWRlZiBpbnQgTlNXcml0aW5nRGlyZWN0
aW9uOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIENTU1N0eWxlRGVjbGFyYXRpb247
CiBjbGFzcyBDbGlwYm9hcmQ7CiBjbGFzcyBDb21wb3NpdGVFZGl0Q29tbWFuZDsKIGNsYXNzIERl
bGV0ZUJ1dHRvbkNvbnRyb2xsZXI7CkBAIC02Myw2ICs2Miw3IEBAIGNsYXNzIFNpbXBsZUZvbnRE
YXRhOwogY2xhc3MgU3BlbGxDaGVja2VyOwogY2xhc3MgU3BlbGxDaGVja1JlcXVlc3Q7CiBjbGFz
cyBTcGVsbGluZ0NvcnJlY3Rpb25Db250cm9sbGVyOworY2xhc3MgU3R5bGVQcm9wZXJ0eVNldDsK
IGNsYXNzIFRleHQ7CiBjbGFzcyBUZXh0Q2hlY2tlckNsaWVudDsKIGNsYXNzIFRleHRFdmVudDsK
QEAgLTEzMCw3ICsxMzAsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBzaG91bGRJbnNlcnRUZXh0KGNv
bnN0IFN0cmluZyYsIFJhbmdlKiwgRWRpdG9ySW5zZXJ0QWN0aW9uKSBjb25zdDsKICAgICBib29s
IHNob3VsZFNob3dEZWxldGVJbnRlcmZhY2UoSFRNTEVsZW1lbnQqKSBjb25zdDsKICAgICBib29s
IHNob3VsZERlbGV0ZVJhbmdlKFJhbmdlKikgY29uc3Q7Ci0gICAgYm9vbCBzaG91bGRBcHBseVN0
eWxlKENTU1N0eWxlRGVjbGFyYXRpb24qLCBSYW5nZSopOworICAgIGJvb2wgc2hvdWxkQXBwbHlT
dHlsZShTdHlsZVByb3BlcnR5U2V0KiwgUmFuZ2UqKTsKICAgICAKICAgICB2b2lkIHJlc3BvbmRU
b0NoYW5nZWRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgb2xkU2VsZWN0aW9uKTsK
ICAgICB2b2lkIHJlc3BvbmRUb0NoYW5nZWRDb250ZW50cyhjb25zdCBWaXNpYmxlU2VsZWN0aW9u
JiBlbmRpbmdTZWxlY3Rpb24pOwpAQCAtMTYyLDEwICsxNjIsMTAgQEAgcHVibGljOgogICAgIE5v
ZGUqIHJlbW92ZWRBbmNob3IoKSBjb25zdCB7IHJldHVybiBtX3JlbW92ZWRBbmNob3IuZ2V0KCk7
IH0KICAgICB2b2lkIHNldFJlbW92ZWRBbmNob3IoUGFzc1JlZlB0cjxOb2RlPiBuKSB7IG1fcmVt
b3ZlZEFuY2hvciA9IG47IH0KIAotICAgIHZvaWQgYXBwbHlTdHlsZShDU1NTdHlsZURlY2xhcmF0
aW9uKiwgRWRpdEFjdGlvbiA9IEVkaXRBY3Rpb25VbnNwZWNpZmllZCk7Ci0gICAgdm9pZCBhcHBs
eVBhcmFncmFwaFN0eWxlKENTU1N0eWxlRGVjbGFyYXRpb24qLCBFZGl0QWN0aW9uID0gRWRpdEFj
dGlvblVuc3BlY2lmaWVkKTsKLSAgICB2b2lkIGFwcGx5U3R5bGVUb1NlbGVjdGlvbihDU1NTdHls
ZURlY2xhcmF0aW9uKiwgRWRpdEFjdGlvbik7Ci0gICAgdm9pZCBhcHBseVBhcmFncmFwaFN0eWxl
VG9TZWxlY3Rpb24oQ1NTU3R5bGVEZWNsYXJhdGlvbiosIEVkaXRBY3Rpb24pOworICAgIHZvaWQg
YXBwbHlTdHlsZShTdHlsZVByb3BlcnR5U2V0KiwgRWRpdEFjdGlvbiA9IEVkaXRBY3Rpb25VbnNw
ZWNpZmllZCk7CisgICAgdm9pZCBhcHBseVBhcmFncmFwaFN0eWxlKFN0eWxlUHJvcGVydHlTZXQq
LCBFZGl0QWN0aW9uID0gRWRpdEFjdGlvblVuc3BlY2lmaWVkKTsKKyAgICB2b2lkIGFwcGx5U3R5
bGVUb1NlbGVjdGlvbihTdHlsZVByb3BlcnR5U2V0KiwgRWRpdEFjdGlvbik7CisgICAgdm9pZCBh
cHBseVBhcmFncmFwaFN0eWxlVG9TZWxlY3Rpb24oU3R5bGVQcm9wZXJ0eVNldCosIEVkaXRBY3Rp
b24pOwogCiAgICAgdm9pZCBhcHBsaWVkRWRpdGluZyhQYXNzUmVmUHRyPENvbXBvc2l0ZUVkaXRD
b21tYW5kPik7CiAgICAgdm9pZCB1bmFwcGxpZWRFZGl0aW5nKFBhc3NSZWZQdHI8RWRpdENvbW1h
bmRDb21wb3NpdGlvbj4pOwpAQCAtMzQ2LDcgKzM0Niw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBW
aXNpYmxlU2VsZWN0aW9uJiBtYXJrKCkgY29uc3Q7IC8vIE1hcmssIHRvIGJlIHVzZWQgYXMgZW1h
Y3MgdXNlcyBpdC4KICAgICB2b2lkIHNldE1hcmsoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpOwog
Ci0gICAgdm9pZCBjb21wdXRlQW5kU2V0VHlwaW5nU3R5bGUoQ1NTU3R5bGVEZWNsYXJhdGlvbiog
LCBFZGl0QWN0aW9uID0gRWRpdEFjdGlvblVuc3BlY2lmaWVkKTsKKyAgICB2b2lkIGNvbXB1dGVB
bmRTZXRUeXBpbmdTdHlsZShTdHlsZVByb3BlcnR5U2V0KiAsIEVkaXRBY3Rpb24gPSBFZGl0QWN0
aW9uVW5zcGVjaWZpZWQpOwogICAgIHZvaWQgYXBwbHlFZGl0aW5nU3R5bGVUb0JvZHlFbGVtZW50
KCkgY29uc3Q7CiAgICAgdm9pZCBhcHBseUVkaXRpbmdTdHlsZVRvRWxlbWVudChFbGVtZW50Kikg
Y29uc3Q7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAko
cmV2aXNpb24gMTA4MDA5KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5k
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAzLDExICsxMDMsMTEgQEAgc3RhdGljIGJvb2wgYXBw
bHlDb21tYW5kVG9GcmFtZShGcmFtZSogZgogICAgIC8vIEZJWE1FOiBXZSBkb24ndCBjYWxsIHNo
b3VsZEFwcGx5U3R5bGUgd2hlbiB0aGUgc291cmNlIGlzIERPTTsgaXMgdGhlcmUgYSBnb29kIHJl
YXNvbiBmb3IgdGhhdD8KICAgICBzd2l0Y2ggKHNvdXJjZSkgewogICAgIGNhc2UgQ29tbWFuZEZy
b21NZW51T3JLZXlCaW5kaW5nOgotICAgICAgICBmcmFtZS0+ZWRpdG9yKCktPmFwcGx5U3R5bGVU
b1NlbGVjdGlvbihzdHlsZS0+ZW5zdXJlQ1NTU3R5bGVEZWNsYXJhdGlvbigpLCBhY3Rpb24pOwor
ICAgICAgICBmcmFtZS0+ZWRpdG9yKCktPmFwcGx5U3R5bGVUb1NlbGVjdGlvbihzdHlsZSwgYWN0
aW9uKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgY2FzZSBDb21tYW5kRnJvbURPTToKICAg
ICBjYXNlIENvbW1hbmRGcm9tRE9NV2l0aFVzZXJJbnRlcmZhY2U6Ci0gICAgICAgIGZyYW1lLT5l
ZGl0b3IoKS0+YXBwbHlTdHlsZShzdHlsZS0+ZW5zdXJlQ1NTU3R5bGVEZWNsYXJhdGlvbigpKTsK
KyAgICAgICAgZnJhbWUtPmVkaXRvcigpLT5hcHBseVN0eWxlKHN0eWxlKTsKICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgfQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMTc5LDExICsx
NzksMTEgQEAgc3RhdGljIGJvb2wgZXhlY3V0ZUFwcGx5UGFyYWdyYXBoU3R5bGUoRgogICAgIC8v
IEZJWE1FOiBXZSBkb24ndCBjYWxsIHNob3VsZEFwcGx5U3R5bGUgd2hlbiB0aGUgc291cmNlIGlz
IERPTTsgaXMgdGhlcmUgYSBnb29kIHJlYXNvbiBmb3IgdGhhdD8KICAgICBzd2l0Y2ggKHNvdXJj
ZSkgewogICAgIGNhc2UgQ29tbWFuZEZyb21NZW51T3JLZXlCaW5kaW5nOgotICAgICAgICBmcmFt
ZS0+ZWRpdG9yKCktPmFwcGx5UGFyYWdyYXBoU3R5bGVUb1NlbGVjdGlvbihzdHlsZS0+ZW5zdXJl
Q1NTU3R5bGVEZWNsYXJhdGlvbigpLCBhY3Rpb24pOworICAgICAgICBmcmFtZS0+ZWRpdG9yKCkt
PmFwcGx5UGFyYWdyYXBoU3R5bGVUb1NlbGVjdGlvbihzdHlsZS5nZXQoKSwgYWN0aW9uKTsKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgY2FzZSBDb21tYW5kRnJvbURPTToKICAgICBjYXNlIENv
bW1hbmRGcm9tRE9NV2l0aFVzZXJJbnRlcmZhY2U6Ci0gICAgICAgIGZyYW1lLT5lZGl0b3IoKS0+
YXBwbHlQYXJhZ3JhcGhTdHlsZShzdHlsZS0+ZW5zdXJlQ1NTU3R5bGVEZWNsYXJhdGlvbigpKTsK
KyAgICAgICAgZnJhbWUtPmVkaXRvcigpLT5hcHBseVBhcmFncmFwaFN0eWxlKHN0eWxlLmdldCgp
KTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwpAQCAtNTgzLDcgKzU4Myw3IEBAIHN0YXRpYyBib29sIGV4ZWN1dGVNYWtlVGV4dFdyaXRpbmdE
aXJlY3QKICAgICBSZWZQdHI8U3R5bGVQcm9wZXJ0eVNldD4gc3R5bGUgPSBTdHlsZVByb3BlcnR5
U2V0OjpjcmVhdGUoKTsKICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlVbmljb2Rl
QmlkaSwgQ1NTVmFsdWVFbWJlZCk7CiAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5
RGlyZWN0aW9uLCBDU1NWYWx1ZUx0cik7Ci0gICAgZnJhbWUtPmVkaXRvcigpLT5hcHBseVN0eWxl
KHN0eWxlLT5lbnN1cmVDU1NTdHlsZURlY2xhcmF0aW9uKCksIEVkaXRBY3Rpb25TZXRXcml0aW5n
RGlyZWN0aW9uKTsKKyAgICBmcmFtZS0+ZWRpdG9yKCktPmFwcGx5U3R5bGUoc3R5bGUuZ2V0KCks
IEVkaXRBY3Rpb25TZXRXcml0aW5nRGlyZWN0aW9uKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApA
QCAtNTkxLDcgKzU5MSw3IEBAIHN0YXRpYyBib29sIGV4ZWN1dGVNYWtlVGV4dFdyaXRpbmdEaXJl
Y3QKIHsKICAgICBSZWZQdHI8U3R5bGVQcm9wZXJ0eVNldD4gc3R5bGUgPSBTdHlsZVByb3BlcnR5
U2V0OjpjcmVhdGUoKTsKICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlVbmljb2Rl
QmlkaSwgQ1NTVmFsdWVOb3JtYWwpOwotICAgIGZyYW1lLT5lZGl0b3IoKS0+YXBwbHlTdHlsZShz
dHlsZS0+ZW5zdXJlQ1NTU3R5bGVEZWNsYXJhdGlvbigpLCBFZGl0QWN0aW9uU2V0V3JpdGluZ0Rp
cmVjdGlvbik7CisgICAgZnJhbWUtPmVkaXRvcigpLT5hcHBseVN0eWxlKHN0eWxlLmdldCgpLCBF
ZGl0QWN0aW9uU2V0V3JpdGluZ0RpcmVjdGlvbik7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAg
LTYwMCw3ICs2MDAsNyBAQCBzdGF0aWMgYm9vbCBleGVjdXRlTWFrZVRleHRXcml0aW5nRGlyZWN0
CiAgICAgUmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+IHN0eWxlID0gU3R5bGVQcm9wZXJ0eVNldDo6
Y3JlYXRlKCk7CiAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5VW5pY29kZUJpZGks
IENTU1ZhbHVlRW1iZWQpOwogICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eURpcmVj
dGlvbiwgQ1NTVmFsdWVSdGwpOwotICAgIGZyYW1lLT5lZGl0b3IoKS0+YXBwbHlTdHlsZShzdHls
ZS0+ZW5zdXJlQ1NTU3R5bGVEZWNsYXJhdGlvbigpLCBFZGl0QWN0aW9uU2V0V3JpdGluZ0RpcmVj
dGlvbik7CisgICAgZnJhbWUtPmVkaXRvcigpLT5hcHBseVN0eWxlKHN0eWxlLmdldCgpLCBFZGl0
QWN0aW9uU2V0V3JpdGluZ0RpcmVjdGlvbik7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgJKHJldmlzaW9uIDEwODAwOSkKKysrIFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAkod29ya2luZyBjb3B5KQpAQCAtNDYx
LDcgKzQ2MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSW5zZXJ0VGV4dChj
b25zdCBTdHJpbmcmLCBSYW5nZSosIEVkaXRvckluc2VydEFjdGlvbikgeyByZXR1cm4gZmFsc2U7
IH0KICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQ2hhbmdlU2VsZWN0ZWRSYW5nZShSYW5nZSosIFJh
bmdlKiwgRUFmZmluaXR5LCBib29sKSB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgdmlydHVhbCBi
b29sIHNob3VsZEFwcGx5U3R5bGUoQ1NTU3R5bGVEZWNsYXJhdGlvbiosIFJhbmdlKikgeyByZXR1
cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQXBwbHlTdHlsZShTdHlsZVByb3Bl
cnR5U2V0KiwgUmFuZ2UqKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBzaG91
bGRNb3ZlUmFuZ2VBZnRlckRlbGV0ZShSYW5nZSosIFJhbmdlKikgeyByZXR1cm4gZmFsc2U7IH0K
IAogICAgIHZpcnR1YWwgdm9pZCBkaWRCZWdpbkVkaXRpbmcoKSB7IH0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiAxMDgwMDkpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQ5LDEw
ICs0NDksMTAgQEAgYm9vbCBEcmFnQ29udHJvbGxlcjo6Y29uY2x1ZGVFZGl0RHJhZyhEcgogICAg
ICAgICBSZWZQdHI8UmFuZ2U+IGlubmVyUmFuZ2UgPSBpbm5lckZyYW1lLT5zZWxlY3Rpb24oKS0+
dG9Ob3JtYWxpemVkUmFuZ2UoKTsKICAgICAgICAgUmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+IHN0
eWxlID0gU3R5bGVQcm9wZXJ0eVNldDo6Y3JlYXRlKCk7CiAgICAgICAgIHN0eWxlLT5zZXRQcm9w
ZXJ0eShDU1NQcm9wZXJ0eUNvbG9yLCBjb2xvci5zZXJpYWxpemVkKCksIGZhbHNlKTsKLSAgICAg
ICAgaWYgKCFpbm5lckZyYW1lLT5lZGl0b3IoKS0+c2hvdWxkQXBwbHlTdHlsZShzdHlsZS0+ZW5z
dXJlQ1NTU3R5bGVEZWNsYXJhdGlvbigpLCBpbm5lclJhbmdlLmdldCgpKSkKKyAgICAgICAgaWYg
KCFpbm5lckZyYW1lLT5lZGl0b3IoKS0+c2hvdWxkQXBwbHlTdHlsZShzdHlsZS5nZXQoKSwgaW5u
ZXJSYW5nZS5nZXQoKSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIG1fY2xp
ZW50LT53aWxsUGVyZm9ybURyYWdEZXN0aW5hdGlvbkFjdGlvbihEcmFnRGVzdGluYXRpb25BY3Rp
b25FZGl0LCBkcmFnRGF0YSk7Ci0gICAgICAgIGlubmVyRnJhbWUtPmVkaXRvcigpLT5hcHBseVN0
eWxlKHN0eWxlLT5lbnN1cmVDU1NTdHlsZURlY2xhcmF0aW9uKCksIEVkaXRBY3Rpb25TZXRDb2xv
cik7CisgICAgICAgIGlubmVyRnJhbWUtPmVkaXRvcigpLT5hcHBseVN0eWxlKHN0eWxlLmdldCgp
LCBFZGl0QWN0aW9uU2V0Q29sb3IpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGFnZS9FZGl0b3JDbGllbnQuaAkocmV2aXNpb24gMTA4MDA5KQorKysgU291
cmNlL1dlYkNvcmUvcGFnZS9FZGl0b3JDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNDUsNyAr
NDUsNiBAQCBPQkpDX0NMQVNTIE5TVVJMOwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBB
cmNoaXZlUmVzb3VyY2U7Ci1jbGFzcyBDU1NTdHlsZURlY2xhcmF0aW9uOwogY2xhc3MgRG9jdW1l
bnRGcmFnbWVudDsKIGNsYXNzIEVkaXRvcjsKIGNsYXNzIEVsZW1lbnQ7CkBAIC01NSw2ICs1NCw3
IEBAIGNsYXNzIEtleWJvYXJkRXZlbnQ7CiBjbGFzcyBOb2RlOwogY2xhc3MgUmFuZ2U7CiBjbGFz
cyBTcGVsbENoZWNrZXI7CitjbGFzcyBTdHlsZVByb3BlcnR5U2V0OwogY2xhc3MgVGV4dENoZWNr
ZXJDbGllbnQ7CiBjbGFzcyBWaXNpYmxlU2VsZWN0aW9uOwogY2xhc3MgVmlzaWJsZVBvc2l0aW9u
OwpAQCAtODIsNyArODIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3VsZEluc2Vy
dFRleHQoY29uc3QgU3RyaW5nJiwgUmFuZ2UqLCBFZGl0b3JJbnNlcnRBY3Rpb24pID0gMDsKICAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkQ2hhbmdlU2VsZWN0ZWRSYW5nZShSYW5nZSogZnJvbVJhbmdl
LCBSYW5nZSogdG9SYW5nZSwgRUFmZmluaXR5LCBib29sIHN0aWxsU2VsZWN0aW5nKSA9IDA7CiAg
ICAgCi0gICAgdmlydHVhbCBib29sIHNob3VsZEFwcGx5U3R5bGUoQ1NTU3R5bGVEZWNsYXJhdGlv
biosIFJhbmdlKikgPSAwOworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRBcHBseVN0eWxlKFN0eWxl
UHJvcGVydHlTZXQqLCBSYW5nZSopID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkTW92ZVJh
bmdlQWZ0ZXJEZWxldGUoUmFuZ2UqLCBSYW5nZSopID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBk
aWRCZWdpbkVkaXRpbmcoKSA9IDA7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMDgxMzIpCisr
KyBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBA
QAorMjAxMi0wMi0xNyAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAg
ICBSZW1vdmUgdGhlIHJlbWFpbmluZyB1c2VzIG9mIENTU1N0eWxlRGVjbGFyYXRpb24gaW4gRWRp
dG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODkz
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJFZGl0b3JDbGllbnQ6OnNob3VsZEFwcGx5U3R5bGUpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lmg6CisgICAgICAgIChXZWJFZGl0
b3JDbGllbnQpOgorCiAyMDEyLTAyLTE3ICBBZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxlLmNvbT4K
IAogICAgICAgICBDbGFuZyBidWlsZCBmaXggYWZ0ZXIgcjEwODExOQpJbmRleDogU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50LmNwcAkocmV2aXNpb24gMTA4MDA5KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xNDgsOSArMTQ4LDkgQEAgYm9vbCBXZWJFZGl0b3JDbGllbnQ6OnNob3VsZENoYW5nZVNlbGVj
dAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAgICAgCi1ib29sIFdlYkVkaXRvckNsaWVudDo6c2hv
dWxkQXBwbHlTdHlsZShDU1NTdHlsZURlY2xhcmF0aW9uKiBzdHlsZSwgUmFuZ2UqIHJhbmdlKQor
Ym9vbCBXZWJFZGl0b3JDbGllbnQ6OnNob3VsZEFwcGx5U3R5bGUoU3R5bGVQcm9wZXJ0eVNldCog
c3R5bGUsIFJhbmdlKiByYW5nZSkKIHsKLSAgICBib29sIHJlc3VsdCA9IG1fcGFnZS0+aW5qZWN0
ZWRCdW5kbGVFZGl0b3JDbGllbnQoKS5zaG91bGRBcHBseVN0eWxlKG1fcGFnZSwgc3R5bGUsIHJh
bmdlKTsKKyAgICBib29sIHJlc3VsdCA9IG1fcGFnZS0+aW5qZWN0ZWRCdW5kbGVFZGl0b3JDbGll
bnQoKS5zaG91bGRBcHBseVN0eWxlKG1fcGFnZSwgc3R5bGUtPmVuc3VyZUNTU1N0eWxlRGVjbGFy
YXRpb24oKSwgcmFuZ2UpOwogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIHJlc3Vs
dDsKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAkocmV2aXNpb24gMTA4MDA5KQorKysgU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtNTksNyArNTksNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9v
bCBzaG91bGRJbnNlcnRUZXh0KGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6OlJhbmdlKiwgV2ViQ29y
ZTo6RWRpdG9ySW5zZXJ0QWN0aW9uKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxk
Q2hhbmdlU2VsZWN0ZWRSYW5nZShXZWJDb3JlOjpSYW5nZSogZnJvbVJhbmdlLCBXZWJDb3JlOjpS
YW5nZSogdG9SYW5nZSwgV2ViQ29yZTo6RUFmZmluaXR5LCBib29sIHN0aWxsU2VsZWN0aW5nKSBP
VkVSUklERTsKICAgICAKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQXBwbHlTdHlsZShXZWJDb3Jl
OjpDU1NTdHlsZURlY2xhcmF0aW9uKiwgV2ViQ29yZTo6UmFuZ2UqKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkQXBwbHlTdHlsZShXZWJDb3JlOjpTdHlsZVByb3BlcnR5U2V0Kiwg
V2ViQ29yZTo6UmFuZ2UqKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkTW92ZVJh
bmdlQWZ0ZXJEZWxldGUoV2ViQ29yZTo6UmFuZ2UqLCBXZWJDb3JlOjpSYW5nZSopIE9WRVJSSURF
OwogCiAgICAgdmlydHVhbCB2b2lkIGRpZEJlZ2luRWRpdGluZygpIE9WRVJSSURFOwpJbmRleDog
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMDgxMzIpCisrKyBTb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTItMDItMTcgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAg
ICAgUmVtb3ZlIHRoZSByZW1haW5pbmcgdXNlcyBvZiBDU1NTdHlsZURlY2xhcmF0aW9uIGluIEVk
aXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg5
MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RWRpdG9yQ2xpZW50QmxhY2tCZXJyeTo6c2hvdWxkQXBwbHlTdHlsZSk6CisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5oOgorICAgICAgICAoRWRpdG9y
Q2xpZW50QmxhY2tCZXJyeSk6CisKIDIwMTItMDItMTYgIEFudG9uaW8gR29tZXMgIDxhZ29tZXNA
cmltLmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gSW1wbGVtZW50ZWQgYSB3YXkgdG8gZGVm
ZXIgY2xpZW50IG5hdmlnYXRpb24gY2hhbmdlIGNsaWVudCBub3RpZmljYXRpb25zCkluZGV4OiBT
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50QmxhY2tC
ZXJyeS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVT
dXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwCShyZXZpc2lvbiAxMDgwMDkpCisrKyBT
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50QmxhY2tC
ZXJyeS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwMyw3ICsyMDMsNyBAQCBib29sIEVkaXRvckNs
aWVudEJsYWNrQmVycnk6OnNob3VsZENoYW5nCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wg
RWRpdG9yQ2xpZW50QmxhY2tCZXJyeTo6c2hvdWxkQXBwbHlTdHlsZShDU1NTdHlsZURlY2xhcmF0
aW9uKiwgUmFuZ2UqKQorYm9vbCBFZGl0b3JDbGllbnRCbGFja0JlcnJ5OjpzaG91bGRBcHBseVN0
eWxlKFN0eWxlUHJvcGVydHlTZXQqLCBSYW5nZSopCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsK
ICAgICByZXR1cm4gdHJ1ZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3Jl
U3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuaAko
cmV2aXNpb24gMTA4MDA5KQorKysgU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBw
b3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuaAkod29ya2luZyBjb3B5KQpAQCAtNTEsNyArNTEs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3VsZEluc2VydE5vZGUoTm9kZSosIFJh
bmdlKiwgRWRpdG9ySW5zZXJ0QWN0aW9uKTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSW5zZXJ0
VGV4dChjb25zdCBTdHJpbmcmLCBSYW5nZSosIEVkaXRvckluc2VydEFjdGlvbik7CiAgICAgdmly
dHVhbCBib29sIHNob3VsZENoYW5nZVNlbGVjdGVkUmFuZ2UoUmFuZ2UqLCBSYW5nZSosIEVBZmZp
bml0eSwgYm9vbCk7Ci0gICAgdmlydHVhbCBib29sIHNob3VsZEFwcGx5U3R5bGUoQ1NTU3R5bGVE
ZWNsYXJhdGlvbiosIFJhbmdlKik7CisgICAgdmlydHVhbCBib29sIHNob3VsZEFwcGx5U3R5bGUo
U3R5bGVQcm9wZXJ0eVNldCosIFJhbmdlKik7CiAgICAgdmlydHVhbCBib29sIHNob3VsZE1vdmVS
YW5nZUFmdGVyRGVsZXRlKFJhbmdlKiwgUmFuZ2UqKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQmVn
aW5FZGl0aW5nKCk7CiAgICAgdmlydHVhbCB2b2lkIHJlc3BvbmRUb0NoYW5nZWRDb250ZW50cygp
OwpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwODEzMikKKysrIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MTUgQEAKKzIwMTItMDItMTcgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAg
ICAgICAgUmVtb3ZlIHRoZSByZW1haW5pbmcgdXNlcyBvZiBDU1NTdHlsZURlY2xhcmF0aW9uIGlu
IEVkaXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Nzg5MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IHNyYy9FZGl0b3JDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50
SW1wbDo6c2hvdWxkQXBwbHlTdHlsZSk6CisgICAgICAgICogc3JjL0VkaXRvckNsaWVudEltcGwu
aDoKKyAgICAgICAgKEVkaXRvckNsaWVudEltcGwpOgorCiAyMDEyLTAyLTE3ICBNaWNoYWwgTW9j
bnkgIDxtbW9jbnlAZ29vZ2xlLmNvbT4KIAogICAgICAgICBbY2hyb21pdW1dIEdMX0NIUk9NSVVN
X2dwdV9tZW1vcnlfbWFuYWdlciBleHRlbnNpb24KSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL0VkaXRvckNsaWVudEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuY3BwCShyZXZpc2lvbiAxMDgwMDkpCisrKyBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjM4LDEzICsyMzgsMTEgQEAgYm9vbCBFZGl0b3JDbGllbnRJbXBsOjpzaG91bGRD
aGFuZ2VTZWxlYwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEVkaXRvckNsaWVudEltcGw6
OnNob3VsZEFwcGx5U3R5bGUoQ1NTU3R5bGVEZWNsYXJhdGlvbiogc3R5bGUsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmFuZ2UqIHJhbmdlKQorYm9vbCBFZGl0b3JD
bGllbnRJbXBsOjpzaG91bGRBcHBseVN0eWxlKFN0eWxlUHJvcGVydHlTZXQqIHN0eWxlLCBSYW5n
ZSogcmFuZ2UpCiB7CiAgICAgaWYgKG1fd2ViVmlldy0+Y2xpZW50KCkpIHsKICAgICAgICAgLy8g
RklYTUU6IFBhc3MgYSByZWZlcmVuY2UgdG8gdGhlIENTU1N0eWxlRGVjbGFyYXRpb24gc29tZWhv
dy4KLSAgICAgICAgcmV0dXJuIG1fd2ViVmlldy0+Y2xpZW50KCktPnNob3VsZEFwcGx5U3R5bGUo
V2ViU3RyaW5nKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFdlYlJhbmdlKHJhbmdlKSk7CisgICAgICAgIHJldHVybiBtX3dlYlZpZXctPmNs
aWVudCgpLT5zaG91bGRBcHBseVN0eWxlKFdlYlN0cmluZygpLCBXZWJSYW5nZShyYW5nZSkpOwog
ICAgIH0KICAgICByZXR1cm4gdHJ1ZTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0VkaXRvckNsaWVudEltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmgJKHJldmlzaW9uIDEwODAwOSkKKysrIFNvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuaAkod29ya2luZyBjb3B5KQpAQCAt
NjcsNyArNjcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3VsZERlbGV0ZVJhbmdl
KFdlYkNvcmU6OlJhbmdlKik7CiAgICAgdmlydHVhbCBib29sIHNob3VsZENoYW5nZVNlbGVjdGVk
UmFuZ2UoV2ViQ29yZTo6UmFuZ2UqIGZyb21SYW5nZSwgV2ViQ29yZTo6UmFuZ2UqIHRvUmFuZ2Us
CiAgICAgICAgIFdlYkNvcmU6OkVBZmZpbml0eSwgYm9vbCBzdGlsbFNlbGVjdGluZyk7Ci0gICAg
dmlydHVhbCBib29sIHNob3VsZEFwcGx5U3R5bGUoV2ViQ29yZTo6Q1NTU3R5bGVEZWNsYXJhdGlv
biosIFdlYkNvcmU6OlJhbmdlKik7CisgICAgdmlydHVhbCBib29sIHNob3VsZEFwcGx5U3R5bGUo
V2ViQ29yZTo6U3R5bGVQcm9wZXJ0eVNldCosIFdlYkNvcmU6OlJhbmdlKik7CiAgICAgdmlydHVh
bCBib29sIHNob3VsZE1vdmVSYW5nZUFmdGVyRGVsZXRlKFdlYkNvcmU6OlJhbmdlKiwgV2ViQ29y
ZTo6UmFuZ2UqKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQmVnaW5FZGl0aW5nKCk7CiAgICAgdmly
dHVhbCB2b2lkIHJlc3BvbmRUb0NoYW5nZWRDb250ZW50cygpOwpJbmRleDogU291cmNlL1dlYktp
dC9lZmwvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxv
ZwkocmV2aXNpb24gMTA4MTMyKQorKysgU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDItMTcgIFJ5b3N1a2UgTml3YSAgPHJu
aXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlIHRoZSByZW1haW5pbmcgdXNlcyBvZiBD
U1NTdHlsZURlY2xhcmF0aW9uIGluIEVkaXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg5MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRFZmw6OnNob3VsZEFwcGx5U3R5bGUpOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5oOgorICAgICAgICAoRWRp
dG9yQ2xpZW50RWZsKToKKwogMjAxMi0wMi0xNyAgUmFwaGFlbCBLdWJvIGRhIENvc3RhICA8a3Vi
b0Bwcm9mdXNpb24ubW9iaT4KIAogICAgICAgICBbRUZMXSBVbnJldmlld2VkLCBhZGFwdCB0byB0
aGUgY2hhbmdlcyBpbnRyb2R1Y2VkIGluIHIxMDc5NzMuCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Vm
bC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5jcHAJKHJldmlzaW9u
IDEwODAwOSkKKysrIFNvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVu
dEVmbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMyw3ICsxMDMsNyBAQCBib29sIEVkaXRvckNs
aWVudEVmbDo6c2hvdWxkQ2hhbmdlU2VsZWN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wg
RWRpdG9yQ2xpZW50RWZsOjpzaG91bGRBcHBseVN0eWxlKENTU1N0eWxlRGVjbGFyYXRpb24qLCBS
YW5nZSopCitib29sIEVkaXRvckNsaWVudEVmbDo6c2hvdWxkQXBwbHlTdHlsZShTdHlsZVByb3Bl
cnR5U2V0KiwgUmFuZ2UqKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIHRy
dWU7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRF
ZmwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0
b3JDbGllbnRFZmwuaAkocmV2aXNpb24gMTA4MDA5KQorKysgU291cmNlL1dlYktpdC9lZmwvV2Vi
Q29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmgJKHdvcmtpbmcgY29weSkKQEAgLTczLDcgKzcz
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRJbnNlcnRUZXh0KGNvbnN0IFN0
cmluZyYsIFJhbmdlKiwgRWRpdG9ySW5zZXJ0QWN0aW9uKTsKICAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkQ2hhbmdlU2VsZWN0ZWRSYW5nZShSYW5nZSogZnJvbVJhbmdlLCBSYW5nZSogdG9SYW5nZSwg
RUFmZmluaXR5LCBib29sIHN0aWxsU2VsZWN0aW5nKTsKIAotICAgIHZpcnR1YWwgYm9vbCBzaG91
bGRBcHBseVN0eWxlKENTU1N0eWxlRGVjbGFyYXRpb24qLCBSYW5nZSopOworICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRBcHBseVN0eWxlKFN0eWxlUHJvcGVydHlTZXQqLCBSYW5nZSopOwogCiAgICAg
dmlydHVhbCBib29sIHNob3VsZE1vdmVSYW5nZUFmdGVyRGVsZXRlKFJhbmdlKiwgUmFuZ2UqKTsK
IApJbmRleDogU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwkocmV2aXNpb24gMTA4MTMyKQorKysgU291cmNlL1dlYktp
dC9ndGsvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDIt
MTcgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlIHRo
ZSByZW1haW5pbmcgdXNlcyBvZiBDU1NTdHlsZURlY2xhcmF0aW9uIGluIEVkaXRvcgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg5MzkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0VkaXRvckNsaWVudEd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6c2hv
dWxkQXBwbHlTdHlsZSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3Rr
Lmg6CisgICAgICAgIChFZGl0b3JDbGllbnQpOgorCiAyMDEyLTAyLTE2ICBNYXJ0aW4gUm9iaW5z
b24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBbQUNdIEV2ZW50cyBj
YW4gc3RhcnZlIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIHVwZGF0ZXMKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcAko
cmV2aXNpb24gMTA4MDA5KQorKysgU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRp
dG9yQ2xpZW50R3RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjM1LDEwICsyMzUsMTAgQEAgYm9v
bCBFZGl0b3JDbGllbnQ6OnNob3VsZENoYW5nZVNlbGVjdGVkUgogICAgIHJldHVybiBhY2NlcHQ7
CiB9CiAKLWJvb2wgRWRpdG9yQ2xpZW50OjpzaG91bGRBcHBseVN0eWxlKFdlYkNvcmU6OkNTU1N0
eWxlRGVjbGFyYXRpb24qIGRlY2xhcmF0aW9uLCBXZWJDb3JlOjpSYW5nZSogcmFuZ2UpCitib29s
IEVkaXRvckNsaWVudDo6c2hvdWxkQXBwbHlTdHlsZShXZWJDb3JlOjpTdHlsZVByb3BlcnR5U2V0
KiBzZXQsIFdlYkNvcmU6OlJhbmdlKiByYW5nZSkKIHsKICAgICBnYm9vbGVhbiBhY2NlcHQgPSBU
UlVFOwotICAgIEdSZWZQdHI8V2ViS2l0RE9NQ1NTU3R5bGVEZWNsYXJhdGlvbj4ga2l0RGVjbGFy
YXRpb24oa2l0KGRlY2xhcmF0aW9uKSk7CisgICAgR1JlZlB0cjxXZWJLaXRET01DU1NTdHlsZURl
Y2xhcmF0aW9uPiBraXREZWNsYXJhdGlvbihraXQoc2V0LT5lbnN1cmVDU1NTdHlsZURlY2xhcmF0
aW9uKCkuZ2V0KCkpKTsKICAgICBHUmVmUHRyPFdlYktpdERPTVJhbmdlPiBraXRSYW5nZShhZG9w
dEdSZWYoa2l0KHJhbmdlKSkpOwogICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX3dlYlZpZXcs
ICJzaG91bGQtYXBwbHktc3R5bGUiLCBraXREZWNsYXJhdGlvbi5nZXQoKSwga2l0UmFuZ2UuZ2V0
KCksICZhY2NlcHQpOwogICAgIHJldHVybiBhY2NlcHQ7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaAkocmV2aXNpb24gMTA4
MDA5KQorKysgU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3Rr
LmgJKHdvcmtpbmcgY29weSkKQEAgLTk0LDcgKzk0LDcgQEAgY2xhc3MgRWRpdG9yQ2xpZW50IDog
cHVibGljIFdlYkNvcmU6OkVkaQogICAgICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSW5zZXJ0VGV4
dChjb25zdCBXVEY6OlN0cmluZyYsIFdlYkNvcmU6OlJhbmdlKiwgV2ViQ29yZTo6RWRpdG9ySW5z
ZXJ0QWN0aW9uKTsKICAgICAgICAgdmlydHVhbCBib29sIHNob3VsZENoYW5nZVNlbGVjdGVkUmFu
Z2UoV2ViQ29yZTo6UmFuZ2UqIGZyb21SYW5nZSwgV2ViQ29yZTo6UmFuZ2UqIHRvUmFuZ2UsIFdl
YkNvcmU6OkVBZmZpbml0eSwgYm9vbCBzdGlsbFNlbGVjdGluZyk7CiAKLSAgICAgICAgdmlydHVh
bCBib29sIHNob3VsZEFwcGx5U3R5bGUoV2ViQ29yZTo6Q1NTU3R5bGVEZWNsYXJhdGlvbiosIFdl
YkNvcmU6OlJhbmdlKik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBzaG91bGRBcHBseVN0eWxlKFdl
YkNvcmU6OlN0eWxlUHJvcGVydHlTZXQqLCBXZWJDb3JlOjpSYW5nZSopOwogCiAgICAgICAgIHZp
cnR1YWwgYm9vbCBzaG91bGRNb3ZlUmFuZ2VBZnRlckRlbGV0ZShXZWJDb3JlOjpSYW5nZSosIFdl
YkNvcmU6OlJhbmdlKik7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwODEzMikK
KysrIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDIyIEBACisyMDEyLTAyLTE3ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisg
ICAgICAgIFJlbW92ZSB0aGUgcmVtYWluaW5nIHVzZXMgb2YgQ1NTU3R5bGVEZWNsYXJhdGlvbiBp
biBFZGl0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTc4OTM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaDoKKyAgICAgICAgKFdlYkVkaXRvckNs
aWVudCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tOgorICAg
ICAgICAoV2ViRWRpdG9yQ2xpZW50OjpzaG91bGRBcHBseVN0eWxlKToKKyAgICAgICAgKiBXZWJW
aWV3L1dlYkZyYW1lLm1tOgorICAgICAgICAoLVtXZWJGcmFtZSBfc2V0VHlwaW5nU3R5bGU6d2l0
aFVuZG9BY3Rpb246XSk6CisgICAgICAgICogV2ViVmlldy9XZWJIVE1MVmlldy5tbToKKyAgICAg
ICAgKC1bV2ViSFRNTFZpZXcgX2FwcGx5U3R5bGVUb1NlbGVjdGlvbjp3aXRoVW5kb0FjdGlvbjpd
KToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgX2NoYW5nZUNTU0NvbG9yVXNpbmdTZWxlY3Rvcjpp
blJhbmdlOl0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2Vi
VmlldyBhcHBseVN0eWxlOl0pOgorCiAyMDEyLTAyLTE3ICBNaWhuZWEgT3ZpZGVuaWUgIDxtaWhu
ZWFAYWRvYmUuY29tPgogCiAgICAgICAgIENTUyByZWdpb25zIGVuYWJsZWQgYnkgZGVmYXVsdApJ
bmRleDogU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9y
Q2xpZW50LmgJKHJldmlzaW9uIDEwODAwOSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC02MSw3ICs2MSw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSW5zZXJ0VGV4dChjb25zdCBXVEY6OlN0
cmluZyYsIFdlYkNvcmU6OlJhbmdlKiwgV2ViQ29yZTo6RWRpdG9ySW5zZXJ0QWN0aW9uKSBPVkVS
UklERTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQ2hhbmdlU2VsZWN0ZWRSYW5nZShXZWJDb3Jl
OjpSYW5nZSogZnJvbVJhbmdlLCBXZWJDb3JlOjpSYW5nZSogdG9SYW5nZSwgV2ViQ29yZTo6RUFm
ZmluaXR5LCBib29sIHN0aWxsU2VsZWN0aW5nKSBPVkVSUklERTsKIAotICAgIHZpcnR1YWwgYm9v
bCBzaG91bGRBcHBseVN0eWxlKFdlYkNvcmU6OkNTU1N0eWxlRGVjbGFyYXRpb24qLCBXZWJDb3Jl
OjpSYW5nZSopIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRBcHBseVN0eWxlKFdl
YkNvcmU6OlN0eWxlUHJvcGVydHlTZXQqLCBXZWJDb3JlOjpSYW5nZSopIE9WRVJSSURFOwogICAg
IAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRNb3ZlUmFuZ2VBZnRlckRlbGV0ZShXZWJDb3JlOjpS
YW5nZSosIFdlYkNvcmU6OlJhbmdlKiByYW5nZVRvQmVSZXBsYWNlZCkgT1ZFUlJJREU7CiAKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JD
bGllbnQubW0JKHJldmlzaW9uIDEwODAwOSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQkod29ya2luZyBjb3B5KQpAQCAtMjQxLDEwICsyNDEs
MTAgQEAgYm9vbCBXZWJFZGl0b3JDbGllbnQ6OmlzU2VsZWN0VHJhaWxpbmdXaAogICAgIHJldHVy
biBbbV93ZWJWaWV3IGlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZF07CiB9CiAKLWJv
b2wgV2ViRWRpdG9yQ2xpZW50OjpzaG91bGRBcHBseVN0eWxlKENTU1N0eWxlRGVjbGFyYXRpb24q
IHN0eWxlLCBSYW5nZSogcmFuZ2UpCitib29sIFdlYkVkaXRvckNsaWVudDo6c2hvdWxkQXBwbHlT
dHlsZShTdHlsZVByb3BlcnR5U2V0KiBzdHlsZSwgUmFuZ2UqIHJhbmdlKQogewogICAgIHJldHVy
biBbW21fd2ViVmlldyBfZWRpdGluZ0RlbGVnYXRlRm9yd2FyZGVyXSB3ZWJWaWV3Om1fd2ViVmll
dwotICAgICAgICBzaG91bGRBcHBseVN0eWxlOmtpdChzdHlsZSkgdG9FbGVtZW50c0luRE9NUmFu
Z2U6a2l0KHJhbmdlKV07CisgICAgICAgIHNob3VsZEFwcGx5U3R5bGU6a2l0KHN0eWxlLT5lbnN1
cmVDU1NTdHlsZURlY2xhcmF0aW9uKCkpIHRvRWxlbWVudHNJbkRPTVJhbmdlOmtpdChyYW5nZSld
OwogfQogCiBib29sIFdlYkVkaXRvckNsaWVudDo6c2hvdWxkTW92ZVJhbmdlQWZ0ZXJEZWxldGUo
UmFuZ2UqIHJhbmdlLCBSYW5nZSogcmFuZ2VUb0JlUmVwbGFjZWQpCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViRnJhbWUubW0JKHJldmlzaW9uIDEwODAwOSkKKysrIFNvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0JKHdvcmtpbmcgY29weSkKQEAgLTc5OSw3ICs3OTks
OCBAQCAtICh2b2lkKV9zZXRUeXBpbmdTdHlsZTooRE9NQ1NTU3R5bGVEZWNsCiB7CiAgICAgaWYg
KCFfcHJpdmF0ZS0+Y29yZUZyYW1lKQogICAgICAgICByZXR1cm47Ci0gICAgX3ByaXZhdGUtPmNv
cmVGcmFtZS0+ZWRpdG9yKCktPmNvbXB1dGVBbmRTZXRUeXBpbmdTdHlsZShjb3JlKHN0eWxlKSwg
dW5kb0FjdGlvbik7CisgICAgLy8gRklYTUU6IFdlIHNob3VsZG4ndCBoYXZlIHRvIGNyZWF0ZSBh
IGNvcHkgaGVyZS4KKyAgICBfcHJpdmF0ZS0+Y29yZUZyYW1lLT5lZGl0b3IoKS0+Y29tcHV0ZUFu
ZFNldFR5cGluZ1N0eWxlKGNvcmUoc3R5bGUpLT5jb3B5KCkuZ2V0KCksIHVuZG9BY3Rpb24pOwog
fQogCiAtICh2b2lkKV9kcmFnU291cmNlRW5kZWRBdDooTlNQb2ludCl3aW5kb3dMb2Mgb3BlcmF0
aW9uOihOU0RyYWdPcGVyYXRpb24pb3BlcmF0aW9uCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViSFRNTFZpZXcubW0JKHJldmlzaW9uIDEwODAwOSkKKysrIFNvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0JKHdvcmtpbmcgY29weSkKQEAgLTQzNTIsMTQgKzQz
NTIsMTAgQEAgLSAoRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbiAqKV9zdHlsZUZyb21GbwogCiAtICh2
b2lkKV9hcHBseVN0eWxlVG9TZWxlY3Rpb246KERPTUNTU1N0eWxlRGVjbGFyYXRpb24gKilzdHls
ZSB3aXRoVW5kb0FjdGlvbjooRWRpdEFjdGlvbil1bmRvQWN0aW9uCiB7Ci0gICAgaWYgKEZyYW1l
KiBjb3JlRnJhbWUgPSBjb3JlKFtzZWxmIF9mcmFtZV0pKQotICAgICAgICBjb3JlRnJhbWUtPmVk
aXRvcigpLT5hcHBseVN0eWxlVG9TZWxlY3Rpb24oY29yZShzdHlsZSksIHVuZG9BY3Rpb24pOwot
fQotCi0tICh2b2lkKV9hcHBseVBhcmFncmFwaFN0eWxlVG9TZWxlY3Rpb246KERPTUNTU1N0eWxl
RGVjbGFyYXRpb24gKilzdHlsZSB3aXRoVW5kb0FjdGlvbjooRWRpdEFjdGlvbil1bmRvQWN0aW9u
Ci17Ci0gICAgaWYgKEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKFtzZWxmIF9mcmFtZV0pKQotICAg
ICAgICBjb3JlRnJhbWUtPmVkaXRvcigpLT5hcHBseVBhcmFncmFwaFN0eWxlVG9TZWxlY3Rpb24o
Y29yZShzdHlsZSksIHVuZG9BY3Rpb24pOworICAgIGlmIChGcmFtZSogY29yZUZyYW1lID0gY29y
ZShbc2VsZiBfZnJhbWVdKSkgeworICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkbid0IGhhdmUg
dG8gbWFrZSBhIGNvcHkgaGVyZS4gV2Ugd2FudCBjYWxsZXJzIG9mIHRoaXMgZnVuY3Rpb24gdG8g
d29yayBkaXJlY3RseSB3aXRoIFN0eWxlUHJvcGVydHlTZXQgZXZlbnR1YWxseS4KKyAgICAgICAg
Y29yZUZyYW1lLT5lZGl0b3IoKS0+YXBwbHlTdHlsZVRvU2VsZWN0aW9uKGNvcmUoc3R5bGUpLT5j
b3B5KCkuZ2V0KCksIHVuZG9BY3Rpb24pOworICAgIH0KIH0KIAogLSAoQk9PTClfaGFuZGxlU3R5
bGVLZXlFcXVpdmFsZW50OihOU0V2ZW50ICopZXZlbnQKQEAgLTQ2NTcsOSArNDY1MywxMyBAQCAt
ICh2b2lkKV9jaGFuZ2VDU1NDb2xvclVzaW5nU2VsZWN0b3I6KFNFCiB7CiAgICAgRE9NQ1NTU3R5
bGVEZWNsYXJhdGlvbiAqc3R5bGUgPSBbc2VsZiBfc3R5bGVGcm9tQ29sb3JQYW5lbFdpdGhTZWxl
Y3RvcjpzZWxlY3Rvcl07CiAgICAgV2ViVmlldyAqd2ViVmlldyA9IFtzZWxmIF93ZWJWaWV3XTsK
LSAgICBpZiAoW1t3ZWJWaWV3IF9lZGl0aW5nRGVsZWdhdGVGb3J3YXJkZXJdIHdlYlZpZXc6d2Vi
VmlldyBzaG91bGRBcHBseVN0eWxlOnN0eWxlIHRvRWxlbWVudHNJbkRPTVJhbmdlOnJhbmdlXSkK
LSAgICAgICAgaWYgKEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKFtzZWxmIF9mcmFtZV0pKQotICAg
ICAgICAgICAgY29yZUZyYW1lLT5lZGl0b3IoKS0+YXBwbHlTdHlsZShjb3JlKHN0eWxlKSwgW3Nl
bGYgX3VuZG9BY3Rpb25Gcm9tQ29sb3JQYW5lbFdpdGhTZWxlY3RvcjpzZWxlY3Rvcl0pOworICAg
IGlmIChbW3dlYlZpZXcgX2VkaXRpbmdEZWxlZ2F0ZUZvcndhcmRlcl0gd2ViVmlldzp3ZWJWaWV3
IHNob3VsZEFwcGx5U3R5bGU6c3R5bGUgdG9FbGVtZW50c0luRE9NUmFuZ2U6cmFuZ2VdKSB7Cisg
ICAgICAgIGlmIChGcmFtZSogY29yZUZyYW1lID0gY29yZShbc2VsZiBfZnJhbWVdKSkgeworICAg
ICAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZG4ndCBoYXZlIHRvIG1ha2UgYSBjb3B5IGhlcmUu
CisgICAgICAgICAgICBjb3JlRnJhbWUtPmVkaXRvcigpLT5hcHBseVN0eWxlKGNvcmUoc3R5bGUp
LT5jb3B5KCkuZ2V0KCksIFtzZWxmIF91bmRvQWN0aW9uRnJvbUNvbG9yUGFuZWxXaXRoU2VsZWN0
b3I6c2VsZWN0b3JdKTsKKyAgICAgICAgfQorICAgIH0KKwogfQogCiAtICh2b2lkKWNoYW5nZURv
Y3VtZW50QmFja2dyb3VuZENvbG9yOihpZClzZW5kZXIKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViVmlldy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlZpZXcubW0JKHJldmlzaW9uIDEwODAwOSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViVmlldy5tbQkod29ya2luZyBjb3B5KQpAQCAtNTUyNSw4ICs1NTI1LDkgQEAgLSAo
dm9pZClhcHBseVN0eWxlOihET01DU1NTdHlsZURlY2xhcmF0aQogICAgIC8vIGNoYW5nZSB0aGUg
QVBJIHRvIGFsbG93IHRoaXMuCiAgICAgV2ViRnJhbWUgKndlYkZyYW1lID0gW3NlbGYgX3NlbGVj
dGVkT3JNYWluRnJhbWVdOwogICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKHdlYkZyYW1lKTsK
KyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkbid0IGhhdmUgdG8gbWFrZSBhIGNvcHkgaGVyZS4KICAg
ICBpZiAoY29yZUZyYW1lKQotICAgICAgICBjb3JlRnJhbWUtPmVkaXRvcigpLT5hcHBseVN0eWxl
KGNvcmUoc3R5bGUpKTsKKyAgICAgICAgY29yZUZyYW1lLT5lZGl0b3IoKS0+YXBwbHlTdHlsZShj
b3JlKHN0eWxlKS0+Y29weSgpLmdldCgpKTsKIH0KIAogQGVuZApJbmRleDogU291cmNlL1dlYktp
dC9xdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDEwODEzMikKKysrIFNvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDItMTcgIFJ5b3N1a2UgTml3YSAgPHJuaXdh
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlIHRoZSByZW1haW5pbmcgdXNlcyBvZiBDU1NT
dHlsZURlY2xhcmF0aW9uIGluIEVkaXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9Nzg5MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudFF0OjpzaG91bGRBcHBseVN0eWxlKToKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5oOgorICAgICAgICAoRWRpdG9yQ2xp
ZW50UXQpOgorCiAyMDEyLTAyLTE2ICBTaW1vbiBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5uQG5v
a2lhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGJyb3duLXBhcGVyIGJhZyBidWlsZCBmaXgu
CkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNs
aWVudFF0LmNwcAkocmV2aXNpb24gMTA4MDA5KQorKysgU291cmNlL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9FZGl0b3JDbGllbnRRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDYg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJFZGl0b3JDbGllbnRRdC5oIgogCi0j
aW5jbHVkZSAiQ1NTU3R5bGVEZWNsYXJhdGlvbi5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAj
aW5jbHVkZSAiVW5kb1N0ZXBRdC5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgpAQCAtNDgsNiArNDcs
NyBAQAogI2luY2x1ZGUgIlJhbmdlLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRl
ICJTcGF0aWFsTmF2aWdhdGlvbi5oIgorI2luY2x1ZGUgIlN0eWxlUHJvcGVydHlTZXQuaCIKICNp
bmNsdWRlICJXaW5kb3dzS2V5Ym9hcmRDb2Rlcy5oIgogI2luY2x1ZGUgInF3ZWJwYWdlLmgiCiAj
aW5jbHVkZSAicXdlYnBhZ2VfcC5oIgpAQCAtMTcwLDEyICsxNzAsMTIgQEAgYm9vbCBFZGl0b3JD
bGllbnRRdDo6c2hvdWxkQ2hhbmdlU2VsZWN0ZQogICAgIHJldHVybiBhY2NlcHRzRWRpdGluZzsK
IH0KIAotYm9vbCBFZGl0b3JDbGllbnRRdDo6c2hvdWxkQXBwbHlTdHlsZShXZWJDb3JlOjpDU1NT
dHlsZURlY2xhcmF0aW9uKiBzdHlsZSwKK2Jvb2wgRWRpdG9yQ2xpZW50UXQ6OnNob3VsZEFwcGx5
U3R5bGUoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0eVNldCogc3R5bGUsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFdlYkNvcmU6OlJhbmdlKiByYW5nZSkKIHsKICAgICBpZiAo
ZHVtcEVkaXRpbmdDYWxsYmFja3MpCiAgICAgICAgIHByaW50ZigiRURJVElORyBERUxFR0FURTog
c2hvdWxkQXBwbHlTdHlsZTolcyB0b0VsZW1lbnRzSW5ET01SYW5nZTolc1xuIiwKLSAgICAgICAg
ICAgICAgIFFTdHJpbmcoc3R5bGUtPmNzc1RleHQoKSkudG9VdGY4KCkuY29uc3REYXRhKCksIGR1
bXBSYW5nZShyYW5nZSkudG9VdGY4KCkuY29uc3REYXRhKCkpOworICAgICAgICAgICAgICAgUVN0
cmluZyhzdHlsZS0+YXNUZXh0KCkpLnRvVXRmOCgpLmNvbnN0RGF0YSgpLCBkdW1wUmFuZ2UocmFu
Z2UpLnRvVXRmOCgpLmNvbnN0RGF0YSgpKTsKICAgICByZXR1cm4gYWNjZXB0c0VkaXRpbmc7CiB9
CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNs
aWVudFF0LmgJKHJldmlzaW9uIDEwODAwOSkKKysrIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRWRpdG9yQ2xpZW50UXQuaAkod29ya2luZyBjb3B5KQpAQCAtNjMsNyArNjMsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3VsZEluc2VydFRleHQoY29uc3QgU3RyaW5nJiwg
UmFuZ2UqLCBFZGl0b3JJbnNlcnRBY3Rpb24pOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRDaGFu
Z2VTZWxlY3RlZFJhbmdlKFJhbmdlKiBmcm9tUmFuZ2UsIFJhbmdlKiB0b1JhbmdlLCBFQWZmaW5p
dHksIGJvb2wgc3RpbGxTZWxlY3RpbmcpOwogCi0gICAgdmlydHVhbCBib29sIHNob3VsZEFwcGx5
U3R5bGUoQ1NTU3R5bGVEZWNsYXJhdGlvbiosIFJhbmdlKik7CisgICAgdmlydHVhbCBib29sIHNo
b3VsZEFwcGx5U3R5bGUoU3R5bGVQcm9wZXJ0eVNldCosIFJhbmdlKik7CiAKICAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkTW92ZVJhbmdlQWZ0ZXJEZWxldGUoUmFuZ2UqLCBSYW5nZSopOwogCkluZGV4
OiBTb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC93aW4vQ2hhbmdlTG9nCShyZXZpc2lvbiAxMDgxMzIpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wMi0xNyAgUnlv
c3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBSZW1vdmUgdGhlIHJlbWFp
bmluZyB1c2VzIG9mIENTU1N0eWxlRGVjbGFyYXRpb24gaW4gRWRpdG9yCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODkzOQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6c2hvdWxkQXBwbHlTdHls
ZSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lmg6CisgICAgICAg
IChXZWJFZGl0b3JDbGllbnQpOgorCiAyMDEyLTAyLTE3ICBLYWxldiBMZW1iZXIgIDxrYWxldmxl
bWJlckBnbWFpbC5jb20+CiAKICAgICAgICAgUmVtb3ZlIHVudXNlZCBwYXJhbWV0ZXJzIGZyb20g
V1RGIHRocmVhZGluZyBBUEkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0
L1dlYkVkaXRvckNsaWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAkocmV2aXNpb24gMTA4MDA5KQorKysgU291
cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjc2LDcgKzI3Niw3IEBAIGJvb2wgV2ViRWRpdG9yQ2xpZW50OjpzaG91bGRJ
bnNlcnRUZXh0KGMKIC8vYm9vbCBXZWJFZGl0b3JDbGllbnQ6OnNob3VsZENoYW5nZVNlbGVjdGVk
UmFuZ2UoUmFuZ2UgKmN1cnJlbnRSYW5nZSwgUmFuZ2UgKnRvUHJvcG9zZWRSYW5nZSwgU2VsZWN0
aW9uQWZmaW5pdHkgc2VsZWN0aW9uQWZmaW5pdHksIGJvb2wgc3RpbGxTZWxlY3RpbmcpCiAvL3sg
bm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIGZhbHNlOyB9CiAKLWJvb2wgV2ViRWRpdG9yQ2xpZW50
OjpzaG91bGRBcHBseVN0eWxlKENTU1N0eWxlRGVjbGFyYXRpb24qIC8qc3R5bGUqLywgUmFuZ2Uq
IC8qdG9FbGVtZW50c0luRE9NUmFuZ2UqLykKK2Jvb2wgV2ViRWRpdG9yQ2xpZW50OjpzaG91bGRB
cHBseVN0eWxlKFN0eWxlUHJvcGVydHlTZXQqIC8qc3R5bGUqLywgUmFuZ2UqIC8qdG9FbGVtZW50
c0luRE9NUmFuZ2UqLykKIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIHRydWU7IH0KIAogYm9v
bCBXZWJFZGl0b3JDbGllbnQ6OnNob3VsZE1vdmVSYW5nZUFmdGVyRGVsZXRlKFJhbmdlKiAvKnJh
bmdlKi8sIFJhbmdlKiAvKnJhbmdlVG9CZVJlcGxhY2VkKi8pCkluZGV4OiBTb3VyY2UvV2ViS2l0
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAkocmV2aXNpb24g
MTA4MDA5KQorKysgU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xp
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTY0LDcgKzY0LDcgQEAgcHVibGljOgogICAgIGJvb2wg
c2hvdWxkRGVsZXRlUmFuZ2UoV2ViQ29yZTo6UmFuZ2UqKTsKIAogICAgIGJvb2wgc2hvdWxkSW5z
ZXJ0Tm9kZShXZWJDb3JlOjpOb2RlKiwgV2ViQ29yZTo6UmFuZ2UqIHJlcGxhY2luZ1JhbmdlLCBX
ZWJDb3JlOjpFZGl0b3JJbnNlcnRBY3Rpb24pOwotICAgIGJvb2wgc2hvdWxkQXBwbHlTdHlsZShX
ZWJDb3JlOjpDU1NTdHlsZURlY2xhcmF0aW9uKiwgV2ViQ29yZTo6UmFuZ2UqKTsKKyAgICBib29s
IHNob3VsZEFwcGx5U3R5bGUoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0eVNldCosIFdlYkNvcmU6OlJh
bmdlKik7CiAgICAgYm9vbCBzaG91bGRNb3ZlUmFuZ2VBZnRlckRlbGV0ZShXZWJDb3JlOjpSYW5n
ZSosIFdlYkNvcmU6OlJhbmdlKik7CiAgICAgYm9vbCBzaG91bGRDaGFuZ2VUeXBpbmdTdHlsZShX
ZWJDb3JlOjpDU1NTdHlsZURlY2xhcmF0aW9uKiBjdXJyZW50U3R5bGUsIFdlYkNvcmU6OkNTU1N0
eWxlRGVjbGFyYXRpb24qIHRvUHJvcG9zZWRTdHlsZSk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
d2luY2UvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdl
TG9nCShyZXZpc2lvbiAxMDgxMzIpCisrKyBTb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDEyLTAyLTE3ICBSeW9zdWtlIE5pd2Eg
IDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFJlbW92ZSB0aGUgcmVtYWluaW5nIHVzZXMg
b2YgQ1NTU3R5bGVEZWNsYXJhdGlvbiBpbiBFZGl0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4OTM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5D
RS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudFdpbkNFOjpzaG91bGRBcHBseVN0
eWxlKToKKwogMjAxMi0wMi0xNSAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBVbnJldmlld2VkIFdpbkNFIGJ1aWxkIGZpeCBhZnRlciByMTA3NjA2LgpJ
bmRleDogU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5D
RS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9F
ZGl0b3JDbGllbnRXaW5DRS5jcHAJKHJldmlzaW9uIDEwODAwOSkKKysrIFNvdXJjZS9XZWJLaXQv
d2luY2UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMDIsNyArMTAyLDcgQEAgYm9vbCBFZGl0b3JDbGllbnRXaW5DRTo6c2hvdWxkQ2hhbmdl
U2VsZQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEVkaXRvckNsaWVudFdpbkNFOjpzaG91
bGRBcHBseVN0eWxlKFdlYkNvcmU6OkNTU1N0eWxlRGVjbGFyYXRpb24qLCBXZWJDb3JlOjpSYW5n
ZSopCitib29sIEVkaXRvckNsaWVudFdpbkNFOjpzaG91bGRBcHBseVN0eWxlKFdlYkNvcmU6OlN0
eWxlUHJvcGVydHlTZXQqLCBXZWJDb3JlOjpSYW5nZSopCiB7CiAgICAgbm90SW1wbGVtZW50ZWQo
KTsKICAgICByZXR1cm4gdHJ1ZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMDgxMzIp
CisrKyBTb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDE1IEBACisyMDEyLTAyLTE3ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisg
ICAgICAgIFJlbW92ZSB0aGUgcmVtYWluaW5nIHVzZXMgb2YgQ1NTU3R5bGVEZWNsYXJhdGlvbiBp
biBFZGl0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTc4OTM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBXZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVudFd4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVk
aXRvckNsaWVudFd4OjpzaG91bGRBcHBseVN0eWxlKToKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0
L0VkaXRvckNsaWVudFd4Lmg6CisgICAgICAgIChFZGl0b3JDbGllbnRXeCk6CisKIDIwMTItMDIt
MTUgIFNhZHJ1bCBIYWJpYiBDaG93ZGh1cnkgIDxzYWRydWxAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIE5vdGlmeSBDaHJvbWVDbGllbnQgd2hlbiB0b3VjaC1ldmVudCBoYW5kbGVycyBhcmUgaW5z
dGFsbGVkL3JlbW92ZWQuCkluZGV4OiBTb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRWRp
dG9yQ2xpZW50V3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3Vw
cG9ydC9FZGl0b3JDbGllbnRXeC5jcHAJKHJldmlzaW9uIDEwODAwOSkKKysrIFNvdXJjZS9XZWJL
aXQvd3gvV2ViS2l0U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTIyMyw3ICsyMjMsNyBAQCBib29sIEVkaXRvckNsaWVudFd4OjpzaG91bGRJbnNlcnRUZXh0KGNv
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgRWRpdG9yQ2xpZW50V3g6OnNob3VsZEFwcGx5
U3R5bGUoQ1NTU3R5bGVEZWNsYXJhdGlvbiosCitib29sIEVkaXRvckNsaWVudFd4OjpzaG91bGRB
cHBseVN0eWxlKFN0eWxlUHJvcGVydHlTZXQqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgUmFuZ2UqKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guaAkocmV2aXNp
b24gMTA4MDA5KQorKysgU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVu
dFd4LmgJKHdvcmtpbmcgY29weSkKQEAgLTY0LDcgKzY0LDcgQEAgcHVibGljOgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEVkaXRvckluc2VydEFjdGlvbik7CiAgICAgdmlydHVh
bCBib29sIHNob3VsZEluc2VydFRleHQoY29uc3QgU3RyaW5nJiwgUmFuZ2UqLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEVkaXRvckluc2VydEFjdGlvbik7Ci0gICAgdmlydHVh
bCBib29sIHNob3VsZEFwcGx5U3R5bGUoQ1NTU3R5bGVEZWNsYXJhdGlvbiosCisgICAgdmlydHVh
bCBib29sIHNob3VsZEFwcGx5U3R5bGUoU3R5bGVQcm9wZXJ0eVNldCosCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgUmFuZ2UqKTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkTW92
ZVJhbmdlQWZ0ZXJEZWxldGUoUmFuZ2UqLCBSYW5nZSopOwogICAgIHZpcnR1YWwgYm9vbCBzaG91
bGRDaGFuZ2VTZWxlY3RlZFJhbmdlKFJhbmdlKiBmcm9tUmFuZ2UsIFJhbmdlKiB0b1JhbmdlLCAK
</data>
<flag name="review"
          id="130294"
          type_id="1"
          status="+"
          setter="enrica"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128005</attachid>
            <date>2012-02-21 11:19:36 -0800</date>
            <delta_ts>2012-02-21 11:59:59 -0800</delta_ts>
            <desc>Updated for ToT</desc>
            <filename>bug-78939-20120221111935.patch</filename>
            <type>text/plain</type>
            <size>41833</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwODM3MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQxIEBACisyMDEyLTAyLTIxICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFJlbW92ZSB0aGUgcmVtYWluaW5n
IHVzZXMgb2YgQ1NTU3R5bGVEZWNsYXJhdGlvbiBpbiBFZGl0b3IKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4OTM5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hhbmdlZCB0aGUgYXJndW1lbnQgdHlwZXMg
b2Ygc2hvdWxkQXBwbHlTdHlsZSwgYXBwbHlQYXJhZ3JhcGhTdHlsZSwgYXBwbHlTdHlsZVRvU2Vs
ZWN0aW9uLAorICAgICAgICBhcHBseVBhcmFncmFwaFN0eWxlVG9TZWxlY3Rpb24sIGFuZCBjb21w
dXRlQW5kU2V0VHlwaW5nU3R5bGUgaW4gRWRpdG9yIGZyb20gQ1NTU3R5bGVEZWNsYXJhdGlvbgor
ICAgICAgICB0byBTdHlsZVByb3BlcnR5U2V0LgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6YXBwbHlTdHls
ZSk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnNob3VsZEFwcGx5U3R5bGUpOgorICAgICAg
ICAoV2ViQ29yZTo6RWRpdG9yOjphcHBseVBhcmFncmFwaFN0eWxlKToKKyAgICAgICAgKFdlYkNv
cmU6OkVkaXRvcjo6YXBwbHlTdHlsZVRvU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkVk
aXRvcjo6YXBwbHlQYXJhZ3JhcGhTdHlsZVRvU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkVkaXRvcjo6c2V0QmFzZVdyaXRpbmdEaXJlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6RWRp
dG9yOjpjb21wdXRlQW5kU2V0VHlwaW5nU3R5bGUpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9y
Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKEVkaXRvcik6CisgICAgICAgICogZWRp
dGluZy9FZGl0b3JDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFwcGx5Q29tbWFuZFRv
RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0ZUFwcGx5UGFyYWdyYXBoU3R5bGUpOgor
ICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0ZU1ha2VUZXh0V3JpdGluZ0RpcmVjdGlvbkxlZnRUb1Jp
Z2h0KToKKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVNYWtlVGV4dFdyaXRpbmdEaXJlY3Rpb25O
YXR1cmFsKToKKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVNYWtlVGV4dFdyaXRpbmdEaXJlY3Rp
b25SaWdodFRvTGVmdCk6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAg
ICAoV2ViQ29yZTo6RW1wdHlFZGl0b3JDbGllbnQ6OnNob3VsZEFwcGx5U3R5bGUpOgorICAgICAg
ICAqIHBhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0NvbnRy
b2xsZXI6OmNvbmNsdWRlRWRpdERyYWcpOgorICAgICAgICAqIHBhZ2UvRWRpdG9yQ2xpZW50Lmg6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKEVkaXRvckNsaWVudCk6CisKIDIwMTItMDIt
MjEgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgUHJv
cGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uIHRvIGEgZmlsZSBvZiBpdHMgb3duCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbgkocmV2aXNpb24gMTA4MzcxKQorKysgU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5leHAuaW4JKHdvcmtpbmcgY29weSkKQEAgLTg0MSw3ICs4NDEsNyBAQCBfX1pON1dlYkNv
cmU2Q3Vyc29yOGZyb21UeXBlRU5TMF80VHlwZUUKIF9fWk43V2ViQ29yZTZDdXJzb3JDMUVQTlNf
NUltYWdlRVJLTlNfOEludFBvaW50RQogX19aTjdXZWJDb3JlNkN1cnNvckQxRXYKIF9fWk43V2Vi
Q29yZTZDdXJzb3JhU0VSS1MwXwotX19aTjdXZWJDb3JlNkVkaXRvcjEwYXBwbHlTdHlsZUVQTlNf
MTlDU1NTdHlsZURlY2xhcmF0aW9uRU5TXzEwRWRpdEFjdGlvbkUKK19fWk43V2ViQ29yZTZFZGl0
b3IxMGFwcGx5U3R5bGVFUE5TXzE2U3R5bGVQcm9wZXJ0eVNldEVOU18xMEVkaXRBY3Rpb25FCiBf
X1pON1dlYkNvcmU2RWRpdG9yMTBmaW5kU3RyaW5nRVJLTjNXVEY2U3RyaW5nRWoKIF9fWk43V2Vi
Q29yZTZFZGl0b3IxMGluc2VydFRleHRFUktOM1dURjZTdHJpbmdFUE5TXzVFdmVudEUKIF9fWk43
V2ViQ29yZTZFZGl0b3IxM2NhbkRIVE1MUGFzdGVFdgpAQCAtODU4LDExICs4NTgsMTEgQEAgX19a
TjdXZWJDb3JlNkVkaXRvcjE4Y29uZmlybUNvbXBvc2l0aW9uRQogX19aTjdXZWJDb3JlNkVkaXRv
cjE5Y291bnRNYXRjaGVzRm9yVGV4dEVSS04zV1RGNlN0cmluZ0VQTlNfNVJhbmdlRWpqYgogX19a
TjdXZWJDb3JlNkVkaXRvcjE5ZGVsZXRlV2l0aERpcmVjdGlvbkVOU18xOFNlbGVjdGlvbkRpcmVj
dGlvbkVOU18xNVRleHRHcmFudWxhcml0eUViYgogX19aTjdXZWJDb3JlNkVkaXRvcjE5aW5zZXJ0
VW5vcmRlcmVkTGlzdEV2Ci1fX1pON1dlYkNvcmU2RWRpdG9yMjFhcHBseVN0eWxlVG9TZWxlY3Rp
b25FUE5TXzE5Q1NTU3R5bGVEZWNsYXJhdGlvbkVOU18xMEVkaXRBY3Rpb25FCitfX1pON1dlYkNv
cmU2RWRpdG9yMjFhcHBseVN0eWxlVG9TZWxlY3Rpb25FUE5TXzE2U3R5bGVQcm9wZXJ0eVNldEVO
U18xMEVkaXRBY3Rpb25FCiBfX1pON1dlYkNvcmU2RWRpdG9yMjFpc1NlbGVjdGlvbk1pc3NwZWxs
ZWRFdgogX19aTjdXZWJDb3JlNkVkaXRvcjIzc2V0QmFzZVdyaXRpbmdEaXJlY3Rpb25FMTZXcml0
aW5nRGlyZWN0aW9uCiBfX1pON1dlYkNvcmU2RWRpdG9yMjRhZHZhbmNlVG9OZXh0TWlzc3BlbGxp
bmdFYgotX19aTjdXZWJDb3JlNkVkaXRvcjI0Y29tcHV0ZUFuZFNldFR5cGluZ1N0eWxlRVBOU18x
OUNTU1N0eWxlRGVjbGFyYXRpb25FTlNfMTBFZGl0QWN0aW9uRQorX19aTjdXZWJDb3JlNkVkaXRv
cjI0Y29tcHV0ZUFuZFNldFR5cGluZ1N0eWxlRVBOU18xNlN0eWxlUHJvcGVydHlTZXRFTlNfMTBF
ZGl0QWN0aW9uRQogX19aTjdXZWJDb3JlNkVkaXRvcjI0aXNTZWxlY3Rpb25VbmdyYW1tYXRpY2Fs
RXYKIF9fWk43V2ViQ29yZTZFZGl0b3IyNHJlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dEVSS04zV1RG
NlN0cmluZ0ViYgogX19aTjdXZWJDb3JlNkVkaXRvcjI2ZGVjcmVhc2VTZWxlY3Rpb25MaXN0TGV2
ZWxFdgpAQCAtODczLDcgKzg3Myw2IEBAIF9fWk43V2ViQ29yZTZFZGl0b3IyN3JlYWRTZWxlY3Rp
b25Gcm9tUGEKIF9fWk43V2ViQ29yZTZFZGl0b3IyOHJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21l
bnRFTjNXVEYxMFBhc3NSZWZQdHJJTlNfMTZEb2N1bWVudEZyYWdtZW50RUVFYmJiCiBfX1pON1dl
YkNvcmU2RWRpdG9yMjljYW5EZWNyZWFzZVNlbGVjdGlvbkxpc3RMZXZlbEV2CiBfX1pON1dlYkNv
cmU2RWRpdG9yMjljYW5JbmNyZWFzZVNlbGVjdGlvbkxpc3RMZXZlbEV2Ci1fX1pON1dlYkNvcmU2
RWRpdG9yMzBhcHBseVBhcmFncmFwaFN0eWxlVG9TZWxlY3Rpb25FUE5TXzE5Q1NTU3R5bGVEZWNs
YXJhdGlvbkVOU18xMEVkaXRBY3Rpb25FCiBfX1pON1dlYkNvcmU2RWRpdG9yMzBkZWxldGVTZWxl
Y3Rpb25XaXRoU21hcnREZWxldGVFYgogX19aTjdXZWJDb3JlNkVkaXRvcjMwcGFzdGVBc1BsYWlu
VGV4dEJ5cGFzc2luZ0RIVE1MRXYKIF9fWk43V2ViQ29yZTZFZGl0b3IzMmd1ZXNzZXNGb3JVbmdy
YW1tYXRpY2FsU2VsZWN0aW9uRXYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9y
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAJKHJl
dmlzaW9uIDEwODM3MSkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNjc4LDcgKzY3OCw3IEBAIE5vZGUqIEVkaXRvcjo6ZmluZEV2ZW50VGFy
Z2V0RnJvbVNlbGVjdGkKICAgICByZXR1cm4gZmluZEV2ZW50VGFyZ2V0RnJvbShtX2ZyYW1lLT5z
ZWxlY3Rpb24oKS0+c2VsZWN0aW9uKCkpOwogfQogCi12b2lkIEVkaXRvcjo6YXBwbHlTdHlsZShD
U1NTdHlsZURlY2xhcmF0aW9uKiBzdHlsZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQordm9p
ZCBFZGl0b3I6OmFwcGx5U3R5bGUoU3R5bGVQcm9wZXJ0eVNldCogc3R5bGUsIEVkaXRBY3Rpb24g
ZWRpdGluZ0FjdGlvbikKIHsKICAgICBzd2l0Y2ggKG1fZnJhbWUtPnNlbGVjdGlvbigpLT5zZWxl
Y3Rpb25UeXBlKCkpIHsKICAgICBjYXNlIFZpc2libGVTZWxlY3Rpb246Ok5vU2VsZWN0aW9uOgpA
QCAtNjk0LDEyICs2OTQsMTIgQEAgdm9pZCBFZGl0b3I6OmFwcGx5U3R5bGUoQ1NTU3R5bGVEZWNs
YXJhdAogICAgIH0KIH0KICAgICAKLWJvb2wgRWRpdG9yOjpzaG91bGRBcHBseVN0eWxlKENTU1N0
eWxlRGVjbGFyYXRpb24qIHN0eWxlLCBSYW5nZSogcmFuZ2UpCitib29sIEVkaXRvcjo6c2hvdWxk
QXBwbHlTdHlsZShTdHlsZVByb3BlcnR5U2V0KiBzdHlsZSwgUmFuZ2UqIHJhbmdlKQogeyAgIAog
ICAgIHJldHVybiBjbGllbnQoKS0+c2hvdWxkQXBwbHlTdHlsZShzdHlsZSwgcmFuZ2UpOwogfQog
ICAgIAotdm9pZCBFZGl0b3I6OmFwcGx5UGFyYWdyYXBoU3R5bGUoQ1NTU3R5bGVEZWNsYXJhdGlv
biogc3R5bGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKK3ZvaWQgRWRpdG9yOjphcHBseVBh
cmFncmFwaFN0eWxlKFN0eWxlUHJvcGVydHlTZXQqIHN0eWxlLCBFZGl0QWN0aW9uIGVkaXRpbmdB
Y3Rpb24pCiB7CiAgICAgc3dpdGNoIChtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+c2VsZWN0aW9uVHlw
ZSgpKSB7CiAgICAgY2FzZSBWaXNpYmxlU2VsZWN0aW9uOjpOb1NlbGVjdGlvbjoKQEAgLTcxMywx
OCArNzEzLDE4IEBAIHZvaWQgRWRpdG9yOjphcHBseVBhcmFncmFwaFN0eWxlKENTU1N0eWwKICAg
ICB9CiB9CiAKLXZvaWQgRWRpdG9yOjphcHBseVN0eWxlVG9TZWxlY3Rpb24oQ1NTU3R5bGVEZWNs
YXJhdGlvbiogc3R5bGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKK3ZvaWQgRWRpdG9yOjph
cHBseVN0eWxlVG9TZWxlY3Rpb24oU3R5bGVQcm9wZXJ0eVNldCogc3R5bGUsIEVkaXRBY3Rpb24g
ZWRpdGluZ0FjdGlvbikKIHsKLSAgICBpZiAoIXN0eWxlIHx8ICFzdHlsZS0+bGVuZ3RoKCkgfHwg
IWNhbkVkaXRSaWNobHkoKSkKKyAgICBpZiAoIXN0eWxlIHx8IHN0eWxlLT5pc0VtcHR5KCkgfHwg
IWNhbkVkaXRSaWNobHkoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKGNsaWVudCgpICYm
IGNsaWVudCgpLT5zaG91bGRBcHBseVN0eWxlKHN0eWxlLCBtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+
dG9Ob3JtYWxpemVkUmFuZ2UoKS5nZXQoKSkpCiAgICAgICAgIGFwcGx5U3R5bGUoc3R5bGUsIGVk
aXRpbmdBY3Rpb24pOwogfQogCi12b2lkIEVkaXRvcjo6YXBwbHlQYXJhZ3JhcGhTdHlsZVRvU2Vs
ZWN0aW9uKENTU1N0eWxlRGVjbGFyYXRpb24qIHN0eWxlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rp
b24pCit2b2lkIEVkaXRvcjo6YXBwbHlQYXJhZ3JhcGhTdHlsZVRvU2VsZWN0aW9uKFN0eWxlUHJv
cGVydHlTZXQqIHN0eWxlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCiB7Ci0gICAgaWYgKCFz
dHlsZSB8fCAhc3R5bGUtPmxlbmd0aCgpIHx8ICFjYW5FZGl0UmljaGx5KCkpCisgICAgaWYgKCFz
dHlsZSB8fCBzdHlsZS0+aXNFbXB0eSgpIHx8ICFjYW5FZGl0UmljaGx5KCkpCiAgICAgICAgIHJl
dHVybjsKICAgICAKICAgICBpZiAoY2xpZW50KCkgJiYgY2xpZW50KCktPnNob3VsZEFwcGx5U3R5
bGUoc3R5bGUsIG1fZnJhbWUtPnNlbGVjdGlvbigpLT50b05vcm1hbGl6ZWRSYW5nZSgpLmdldCgp
KSkKQEAgLTEyNjIsNyArMTI2Miw3IEBAIHZvaWQgRWRpdG9yOjpzZXRCYXNlV3JpdGluZ0RpcmVj
dGlvbihXcmkKIAogICAgIFJlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiBzdHlsZSA9IFN0eWxlUHJv
cGVydHlTZXQ6OmNyZWF0ZSgpOwogICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eURp
cmVjdGlvbiwgZGlyZWN0aW9uID09IExlZnRUb1JpZ2h0V3JpdGluZ0RpcmVjdGlvbiA/ICJsdHIi
IDogZGlyZWN0aW9uID09IFJpZ2h0VG9MZWZ0V3JpdGluZ0RpcmVjdGlvbiA/ICJydGwiIDogImlu
aGVyaXQiLCBmYWxzZSk7Ci0gICAgYXBwbHlQYXJhZ3JhcGhTdHlsZVRvU2VsZWN0aW9uKHN0eWxl
LT5lbnN1cmVDU1NTdHlsZURlY2xhcmF0aW9uKCksIEVkaXRBY3Rpb25TZXRXcml0aW5nRGlyZWN0
aW9uKTsKKyAgICBhcHBseVBhcmFncmFwaFN0eWxlVG9TZWxlY3Rpb24oc3R5bGUuZ2V0KCksIEVk
aXRBY3Rpb25TZXRXcml0aW5nRGlyZWN0aW9uKTsKIH0KIAogdm9pZCBFZGl0b3I6OnNlbGVjdENv
bXBvc2l0aW9uKCkKQEAgLTI1NzksOSArMjU3OSw5IEBAIGJvb2wgRWRpdG9yOjpzaG91bGRDaGFu
Z2VTZWxlY3Rpb24oY29uc3QKICAgICByZXR1cm4gY2xpZW50KCkgJiYgY2xpZW50KCktPnNob3Vs
ZENoYW5nZVNlbGVjdGVkUmFuZ2Uob2xkU2VsZWN0aW9uLnRvTm9ybWFsaXplZFJhbmdlKCkuZ2V0
KCksIG5ld1NlbGVjdGlvbi50b05vcm1hbGl6ZWRSYW5nZSgpLmdldCgpLCBhZmZpbml0eSwgc3Rp
bGxTZWxlY3RpbmcpOwogfQogCi12b2lkIEVkaXRvcjo6Y29tcHV0ZUFuZFNldFR5cGluZ1N0eWxl
KENTU1N0eWxlRGVjbGFyYXRpb24qIHN0eWxlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCit2
b2lkIEVkaXRvcjo6Y29tcHV0ZUFuZFNldFR5cGluZ1N0eWxlKFN0eWxlUHJvcGVydHlTZXQqIHN0
eWxlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCiB7Ci0gICAgaWYgKCFzdHlsZSB8fCAhc3R5
bGUtPmxlbmd0aCgpKSB7CisgICAgaWYgKCFzdHlsZSB8fCBzdHlsZS0+aXNFbXB0eSgpKSB7CiAg
ICAgICAgIG1fZnJhbWUtPnNlbGVjdGlvbigpLT5jbGVhclR5cGluZ1N0eWxlKCk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CkBAIC0yNTkwLDcgKzI1OTAsNyBAQCB2b2lkIEVkaXRvcjo6Y29tcHV0
ZUFuZFNldFR5cGluZ1N0eWxlKENTCiAgICAgUmVmUHRyPEVkaXRpbmdTdHlsZT4gdHlwaW5nU3R5
bGU7CiAgICAgaWYgKG1fZnJhbWUtPnNlbGVjdGlvbigpLT50eXBpbmdTdHlsZSgpKSB7CiAgICAg
ICAgIHR5cGluZ1N0eWxlID0gbV9mcmFtZS0+c2VsZWN0aW9uKCktPnR5cGluZ1N0eWxlKCktPmNv
cHkoKTsKLSAgICAgICAgdHlwaW5nU3R5bGUtPm92ZXJyaWRlV2l0aFN0eWxlKHN0eWxlLT5tYWtl
TXV0YWJsZSgpLmdldCgpKTsKKyAgICAgICAgdHlwaW5nU3R5bGUtPm92ZXJyaWRlV2l0aFN0eWxl
KHN0eWxlKTsKICAgICB9IGVsc2UKICAgICAgICAgdHlwaW5nU3R5bGUgPSBFZGl0aW5nU3R5bGU6
OmNyZWF0ZShzdHlsZSk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAkocmV2aXNpb24g
MTA4MzcxKQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAkod29ya2luZyBjb3B5
KQpAQCAtNDYsNyArNDYsNiBAQCB0eXBlZGVmIGludCBOU1dyaXRpbmdEaXJlY3Rpb247CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgQ1NTU3R5bGVEZWNsYXJhdGlvbjsKIGNsYXNzIENs
aXBib2FyZDsKIGNsYXNzIENvbXBvc2l0ZUVkaXRDb21tYW5kOwogY2xhc3MgRGVsZXRlQnV0dG9u
Q29udHJvbGxlcjsKQEAgLTYzLDYgKzYyLDcgQEAgY2xhc3MgU2ltcGxlRm9udERhdGE7CiBjbGFz
cyBTcGVsbENoZWNrZXI7CiBjbGFzcyBTcGVsbENoZWNrUmVxdWVzdDsKIGNsYXNzIFNwZWxsaW5n
Q29ycmVjdGlvbkNvbnRyb2xsZXI7CitjbGFzcyBTdHlsZVByb3BlcnR5U2V0OwogY2xhc3MgVGV4
dDsKIGNsYXNzIFRleHRDaGVja2VyQ2xpZW50OwogY2xhc3MgVGV4dEV2ZW50OwpAQCAtMTMwLDcg
KzEzMCw3IEBAIHB1YmxpYzoKICAgICBib29sIHNob3VsZEluc2VydFRleHQoY29uc3QgU3RyaW5n
JiwgUmFuZ2UqLCBFZGl0b3JJbnNlcnRBY3Rpb24pIGNvbnN0OwogICAgIGJvb2wgc2hvdWxkU2hv
d0RlbGV0ZUludGVyZmFjZShIVE1MRWxlbWVudCopIGNvbnN0OwogICAgIGJvb2wgc2hvdWxkRGVs
ZXRlUmFuZ2UoUmFuZ2UqKSBjb25zdDsKLSAgICBib29sIHNob3VsZEFwcGx5U3R5bGUoQ1NTU3R5
bGVEZWNsYXJhdGlvbiosIFJhbmdlKik7CisgICAgYm9vbCBzaG91bGRBcHBseVN0eWxlKFN0eWxl
UHJvcGVydHlTZXQqLCBSYW5nZSopOwogICAgIAogICAgIHZvaWQgcmVzcG9uZFRvQ2hhbmdlZFNl
bGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBvbGRTZWxlY3Rpb24pOwogICAgIHZvaWQg
cmVzcG9uZFRvQ2hhbmdlZENvbnRlbnRzKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIGVuZGluZ1Nl
bGVjdGlvbik7CkBAIC0xNjEsMTAgKzE2MSwxMCBAQCBwdWJsaWM6CiAgICAgTm9kZSogcmVtb3Zl
ZEFuY2hvcigpIGNvbnN0IHsgcmV0dXJuIG1fcmVtb3ZlZEFuY2hvci5nZXQoKTsgfQogICAgIHZv
aWQgc2V0UmVtb3ZlZEFuY2hvcihQYXNzUmVmUHRyPE5vZGU+IG4pIHsgbV9yZW1vdmVkQW5jaG9y
ID0gbjsgfQogCi0gICAgdm9pZCBhcHBseVN0eWxlKENTU1N0eWxlRGVjbGFyYXRpb24qLCBFZGl0
QWN0aW9uID0gRWRpdEFjdGlvblVuc3BlY2lmaWVkKTsKLSAgICB2b2lkIGFwcGx5UGFyYWdyYXBo
U3R5bGUoQ1NTU3R5bGVEZWNsYXJhdGlvbiosIEVkaXRBY3Rpb24gPSBFZGl0QWN0aW9uVW5zcGVj
aWZpZWQpOwotICAgIHZvaWQgYXBwbHlTdHlsZVRvU2VsZWN0aW9uKENTU1N0eWxlRGVjbGFyYXRp
b24qLCBFZGl0QWN0aW9uKTsKLSAgICB2b2lkIGFwcGx5UGFyYWdyYXBoU3R5bGVUb1NlbGVjdGlv
bihDU1NTdHlsZURlY2xhcmF0aW9uKiwgRWRpdEFjdGlvbik7CisgICAgdm9pZCBhcHBseVN0eWxl
KFN0eWxlUHJvcGVydHlTZXQqLCBFZGl0QWN0aW9uID0gRWRpdEFjdGlvblVuc3BlY2lmaWVkKTsK
KyAgICB2b2lkIGFwcGx5UGFyYWdyYXBoU3R5bGUoU3R5bGVQcm9wZXJ0eVNldCosIEVkaXRBY3Rp
b24gPSBFZGl0QWN0aW9uVW5zcGVjaWZpZWQpOworICAgIHZvaWQgYXBwbHlTdHlsZVRvU2VsZWN0
aW9uKFN0eWxlUHJvcGVydHlTZXQqLCBFZGl0QWN0aW9uKTsKKyAgICB2b2lkIGFwcGx5UGFyYWdy
YXBoU3R5bGVUb1NlbGVjdGlvbihTdHlsZVByb3BlcnR5U2V0KiwgRWRpdEFjdGlvbik7CiAKICAg
ICB2b2lkIGFwcGxpZWRFZGl0aW5nKFBhc3NSZWZQdHI8Q29tcG9zaXRlRWRpdENvbW1hbmQ+KTsK
ICAgICB2b2lkIHVuYXBwbGllZEVkaXRpbmcoUGFzc1JlZlB0cjxFZGl0Q29tbWFuZENvbXBvc2l0
aW9uPik7CkBAIC0zNDUsNyArMzQ1LDcgQEAgcHVibGljOgogICAgIGNvbnN0IFZpc2libGVTZWxl
Y3Rpb24mIG1hcmsoKSBjb25zdDsgLy8gTWFyaywgdG8gYmUgdXNlZCBhcyBlbWFjcyB1c2VzIGl0
LgogICAgIHZvaWQgc2V0TWFyayhjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7CiAKLSAgICB2b2lk
IGNvbXB1dGVBbmRTZXRUeXBpbmdTdHlsZShDU1NTdHlsZURlY2xhcmF0aW9uKiAsIEVkaXRBY3Rp
b24gPSBFZGl0QWN0aW9uVW5zcGVjaWZpZWQpOworICAgIHZvaWQgY29tcHV0ZUFuZFNldFR5cGlu
Z1N0eWxlKFN0eWxlUHJvcGVydHlTZXQqICwgRWRpdEFjdGlvbiA9IEVkaXRBY3Rpb25VbnNwZWNp
ZmllZCk7CiAgICAgdm9pZCBhcHBseUVkaXRpbmdTdHlsZVRvQm9keUVsZW1lbnQoKSBjb25zdDsK
ICAgICB2b2lkIGFwcGx5RWRpdGluZ1N0eWxlVG9FbGVtZW50KEVsZW1lbnQqKSBjb25zdDsKIApJ
bmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCShyZXZpc2lvbiAx
MDgzNzEpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMDMsMTEgKzEwMywxMSBAQCBzdGF0aWMgYm9vbCBhcHBseUNvbW1hbmRU
b0ZyYW1lKEZyYW1lKiBmCiAgICAgLy8gRklYTUU6IFdlIGRvbid0IGNhbGwgc2hvdWxkQXBwbHlT
dHlsZSB3aGVuIHRoZSBzb3VyY2UgaXMgRE9NOyBpcyB0aGVyZSBhIGdvb2QgcmVhc29uIGZvciB0
aGF0PwogICAgIHN3aXRjaCAoc291cmNlKSB7CiAgICAgY2FzZSBDb21tYW5kRnJvbU1lbnVPcktl
eUJpbmRpbmc6Ci0gICAgICAgIGZyYW1lLT5lZGl0b3IoKS0+YXBwbHlTdHlsZVRvU2VsZWN0aW9u
KHN0eWxlLT5lbnN1cmVDU1NTdHlsZURlY2xhcmF0aW9uKCksIGFjdGlvbik7CisgICAgICAgIGZy
YW1lLT5lZGl0b3IoKS0+YXBwbHlTdHlsZVRvU2VsZWN0aW9uKHN0eWxlLCBhY3Rpb24pOwogICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICBjYXNlIENvbW1hbmRGcm9tRE9NOgogICAgIGNhc2UgQ29t
bWFuZEZyb21ET01XaXRoVXNlckludGVyZmFjZToKLSAgICAgICAgZnJhbWUtPmVkaXRvcigpLT5h
cHBseVN0eWxlKHN0eWxlLT5lbnN1cmVDU1NTdHlsZURlY2xhcmF0aW9uKCkpOworICAgICAgICBm
cmFtZS0+ZWRpdG9yKCktPmFwcGx5U3R5bGUoc3R5bGUpOwogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICB9CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0xNzksMTEgKzE3OSwxMSBAQCBz
dGF0aWMgYm9vbCBleGVjdXRlQXBwbHlQYXJhZ3JhcGhTdHlsZShGCiAgICAgLy8gRklYTUU6IFdl
IGRvbid0IGNhbGwgc2hvdWxkQXBwbHlTdHlsZSB3aGVuIHRoZSBzb3VyY2UgaXMgRE9NOyBpcyB0
aGVyZSBhIGdvb2QgcmVhc29uIGZvciB0aGF0PwogICAgIHN3aXRjaCAoc291cmNlKSB7CiAgICAg
Y2FzZSBDb21tYW5kRnJvbU1lbnVPcktleUJpbmRpbmc6Ci0gICAgICAgIGZyYW1lLT5lZGl0b3Io
KS0+YXBwbHlQYXJhZ3JhcGhTdHlsZVRvU2VsZWN0aW9uKHN0eWxlLT5lbnN1cmVDU1NTdHlsZURl
Y2xhcmF0aW9uKCksIGFjdGlvbik7CisgICAgICAgIGZyYW1lLT5lZGl0b3IoKS0+YXBwbHlQYXJh
Z3JhcGhTdHlsZVRvU2VsZWN0aW9uKHN0eWxlLmdldCgpLCBhY3Rpb24pOwogICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICBjYXNlIENvbW1hbmRGcm9tRE9NOgogICAgIGNhc2UgQ29tbWFuZEZyb21E
T01XaXRoVXNlckludGVyZmFjZToKLSAgICAgICAgZnJhbWUtPmVkaXRvcigpLT5hcHBseVBhcmFn
cmFwaFN0eWxlKHN0eWxlLT5lbnN1cmVDU1NTdHlsZURlY2xhcmF0aW9uKCkpOworICAgICAgICBm
cmFtZS0+ZWRpdG9yKCktPmFwcGx5UGFyYWdyYXBoU3R5bGUoc3R5bGUuZ2V0KCkpOwogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC01ODUs
NyArNTg1LDcgQEAgc3RhdGljIGJvb2wgZXhlY3V0ZU1ha2VUZXh0V3JpdGluZ0RpcmVjdAogICAg
IFJlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiBzdHlsZSA9IFN0eWxlUHJvcGVydHlTZXQ6OmNyZWF0
ZSgpOwogICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eVVuaWNvZGVCaWRpLCBDU1NW
YWx1ZUVtYmVkKTsKICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlEaXJlY3Rpb24s
IENTU1ZhbHVlTHRyKTsKLSAgICBmcmFtZS0+ZWRpdG9yKCktPmFwcGx5U3R5bGUoc3R5bGUtPmVu
c3VyZUNTU1N0eWxlRGVjbGFyYXRpb24oKSwgRWRpdEFjdGlvblNldFdyaXRpbmdEaXJlY3Rpb24p
OworICAgIGZyYW1lLT5lZGl0b3IoKS0+YXBwbHlTdHlsZShzdHlsZS5nZXQoKSwgRWRpdEFjdGlv
blNldFdyaXRpbmdEaXJlY3Rpb24pOwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC01OTMsNyAr
NTkzLDcgQEAgc3RhdGljIGJvb2wgZXhlY3V0ZU1ha2VUZXh0V3JpdGluZ0RpcmVjdAogewogICAg
IFJlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiBzdHlsZSA9IFN0eWxlUHJvcGVydHlTZXQ6OmNyZWF0
ZSgpOwogICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eVVuaWNvZGVCaWRpLCBDU1NW
YWx1ZU5vcm1hbCk7Ci0gICAgZnJhbWUtPmVkaXRvcigpLT5hcHBseVN0eWxlKHN0eWxlLT5lbnN1
cmVDU1NTdHlsZURlY2xhcmF0aW9uKCksIEVkaXRBY3Rpb25TZXRXcml0aW5nRGlyZWN0aW9uKTsK
KyAgICBmcmFtZS0+ZWRpdG9yKCktPmFwcGx5U3R5bGUoc3R5bGUuZ2V0KCksIEVkaXRBY3Rpb25T
ZXRXcml0aW5nRGlyZWN0aW9uKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNjAyLDcgKzYw
Miw3IEBAIHN0YXRpYyBib29sIGV4ZWN1dGVNYWtlVGV4dFdyaXRpbmdEaXJlY3QKICAgICBSZWZQ
dHI8U3R5bGVQcm9wZXJ0eVNldD4gc3R5bGUgPSBTdHlsZVByb3BlcnR5U2V0OjpjcmVhdGUoKTsK
ICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlVbmljb2RlQmlkaSwgQ1NTVmFsdWVF
bWJlZCk7CiAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5RGlyZWN0aW9uLCBDU1NW
YWx1ZVJ0bCk7Ci0gICAgZnJhbWUtPmVkaXRvcigpLT5hcHBseVN0eWxlKHN0eWxlLT5lbnN1cmVD
U1NTdHlsZURlY2xhcmF0aW9uKCksIEVkaXRBY3Rpb25TZXRXcml0aW5nRGlyZWN0aW9uKTsKKyAg
ICBmcmFtZS0+ZWRpdG9yKCktPmFwcGx5U3R5bGUoc3R5bGUuZ2V0KCksIEVkaXRBY3Rpb25TZXRX
cml0aW5nRGlyZWN0aW9uKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApJbmRleDogU291cmNlL1dl
YkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuaAkocmV2aXNpb24gMTA4MzcxKQorKysgU291cmNlL1dlYkNv
cmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCSh3b3JraW5nIGNvcHkpCkBAIC00NjEsNyArNDYxLDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRJbnNlcnRUZXh0KGNvbnN0IFN0cmlu
ZyYsIFJhbmdlKiwgRWRpdG9ySW5zZXJ0QWN0aW9uKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZp
cnR1YWwgYm9vbCBzaG91bGRDaGFuZ2VTZWxlY3RlZFJhbmdlKFJhbmdlKiwgUmFuZ2UqLCBFQWZm
aW5pdHksIGJvb2wpIHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxk
QXBwbHlTdHlsZShDU1NTdHlsZURlY2xhcmF0aW9uKiwgUmFuZ2UqKSB7IHJldHVybiBmYWxzZTsg
fQorICAgIHZpcnR1YWwgYm9vbCBzaG91bGRBcHBseVN0eWxlKFN0eWxlUHJvcGVydHlTZXQqLCBS
YW5nZSopIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIHNob3VsZE1vdmVSYW5n
ZUFmdGVyRGVsZXRlKFJhbmdlKiwgUmFuZ2UqKSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgdmly
dHVhbCB2b2lkIGRpZEJlZ2luRWRpdGluZygpIHsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFn
ZS9EcmFnQ29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9E
cmFnQ29udHJvbGxlci5jcHAJKHJldmlzaW9uIDEwODM3MSkKKysrIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvRHJhZ0NvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NDksMTAgKzQ0OSwxMCBA
QCBib29sIERyYWdDb250cm9sbGVyOjpjb25jbHVkZUVkaXREcmFnKERyCiAgICAgICAgIFJlZlB0
cjxSYW5nZT4gaW5uZXJSYW5nZSA9IGlubmVyRnJhbWUtPnNlbGVjdGlvbigpLT50b05vcm1hbGl6
ZWRSYW5nZSgpOwogICAgICAgICBSZWZQdHI8U3R5bGVQcm9wZXJ0eVNldD4gc3R5bGUgPSBTdHls
ZVByb3BlcnR5U2V0OjpjcmVhdGUoKTsKICAgICAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1By
b3BlcnR5Q29sb3IsIGNvbG9yLnNlcmlhbGl6ZWQoKSwgZmFsc2UpOwotICAgICAgICBpZiAoIWlu
bmVyRnJhbWUtPmVkaXRvcigpLT5zaG91bGRBcHBseVN0eWxlKHN0eWxlLT5lbnN1cmVDU1NTdHls
ZURlY2xhcmF0aW9uKCksIGlubmVyUmFuZ2UuZ2V0KCkpKQorICAgICAgICBpZiAoIWlubmVyRnJh
bWUtPmVkaXRvcigpLT5zaG91bGRBcHBseVN0eWxlKHN0eWxlLmdldCgpLCBpbm5lclJhbmdlLmdl
dCgpKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgbV9jbGllbnQtPndpbGxQ
ZXJmb3JtRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uKERyYWdEZXN0aW5hdGlvbkFjdGlvbkVkaXQsIGRy
YWdEYXRhKTsKLSAgICAgICAgaW5uZXJGcmFtZS0+ZWRpdG9yKCktPmFwcGx5U3R5bGUoc3R5bGUt
PmVuc3VyZUNTU1N0eWxlRGVjbGFyYXRpb24oKSwgRWRpdEFjdGlvblNldENvbG9yKTsKKyAgICAg
ICAgaW5uZXJGcmFtZS0+ZWRpdG9yKCktPmFwcGx5U3R5bGUoc3R5bGUuZ2V0KCksIEVkaXRBY3Rp
b25TZXRDb2xvcik7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApJbmRleDogU291cmNl
L1dlYkNvcmUvcGFnZS9FZGl0b3JDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wYWdlL0VkaXRvckNsaWVudC5oCShyZXZpc2lvbiAxMDgzNzEpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wYWdlL0VkaXRvckNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00NSw3ICs0NSw2IEBAIE9C
SkNfQ0xBU1MgTlNVUkw7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEFyY2hpdmVSZXNv
dXJjZTsKLWNsYXNzIENTU1N0eWxlRGVjbGFyYXRpb247CiBjbGFzcyBEb2N1bWVudEZyYWdtZW50
OwogY2xhc3MgRWRpdG9yOwogY2xhc3MgRWxlbWVudDsKQEAgLTU1LDYgKzU0LDcgQEAgY2xhc3Mg
S2V5Ym9hcmRFdmVudDsKIGNsYXNzIE5vZGU7CiBjbGFzcyBSYW5nZTsKIGNsYXNzIFNwZWxsQ2hl
Y2tlcjsKK2NsYXNzIFN0eWxlUHJvcGVydHlTZXQ7CiBjbGFzcyBUZXh0Q2hlY2tlckNsaWVudDsK
IGNsYXNzIFZpc2libGVTZWxlY3Rpb247CiBjbGFzcyBWaXNpYmxlUG9zaXRpb247CkBAIC04Miw3
ICs4Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSW5zZXJ0VGV4dChjb25z
dCBTdHJpbmcmLCBSYW5nZSosIEVkaXRvckluc2VydEFjdGlvbikgPSAwOwogICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRDaGFuZ2VTZWxlY3RlZFJhbmdlKFJhbmdlKiBmcm9tUmFuZ2UsIFJhbmdlKiB0
b1JhbmdlLCBFQWZmaW5pdHksIGJvb2wgc3RpbGxTZWxlY3RpbmcpID0gMDsKICAgICAKLSAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkQXBwbHlTdHlsZShDU1NTdHlsZURlY2xhcmF0aW9uKiwgUmFuZ2Uq
KSA9IDA7CisgICAgdmlydHVhbCBib29sIHNob3VsZEFwcGx5U3R5bGUoU3R5bGVQcm9wZXJ0eVNl
dCosIFJhbmdlKikgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRNb3ZlUmFuZ2VBZnRlckRl
bGV0ZShSYW5nZSosIFJhbmdlKikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIGRpZEJlZ2luRWRp
dGluZygpID0gMDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwODM3MSkKKysrIFNvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEyLTAy
LTIxICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFJlbW92ZSB0
aGUgcmVtYWluaW5nIHVzZXMgb2YgQ1NTU3R5bGVEZWNsYXJhdGlvbiBpbiBFZGl0b3IKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4OTM5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkVk
aXRvckNsaWVudDo6c2hvdWxkQXBwbHlTdHlsZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaDoKKyAgICAgICAgKFdlYkVkaXRvckNsaWVudCk6
CisKIDIwMTItMDItMjEgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBB
dHRlbXB0IHRvIGZpeCB0aGUgU25vdyBMZW9wYXJkIGJ1aWxkLgpJbmRleDogU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9y
Q2xpZW50LmNwcAkocmV2aXNpb24gMTA4MzcxKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
NDgsOSArMTQ4LDkgQEAgYm9vbCBXZWJFZGl0b3JDbGllbnQ6OnNob3VsZENoYW5nZVNlbGVjdAog
ICAgIHJldHVybiByZXN1bHQ7CiB9CiAgICAgCi1ib29sIFdlYkVkaXRvckNsaWVudDo6c2hvdWxk
QXBwbHlTdHlsZShDU1NTdHlsZURlY2xhcmF0aW9uKiBzdHlsZSwgUmFuZ2UqIHJhbmdlKQorYm9v
bCBXZWJFZGl0b3JDbGllbnQ6OnNob3VsZEFwcGx5U3R5bGUoU3R5bGVQcm9wZXJ0eVNldCogc3R5
bGUsIFJhbmdlKiByYW5nZSkKIHsKLSAgICBib29sIHJlc3VsdCA9IG1fcGFnZS0+aW5qZWN0ZWRC
dW5kbGVFZGl0b3JDbGllbnQoKS5zaG91bGRBcHBseVN0eWxlKG1fcGFnZSwgc3R5bGUsIHJhbmdl
KTsKKyAgICBib29sIHJlc3VsdCA9IG1fcGFnZS0+aW5qZWN0ZWRCdW5kbGVFZGl0b3JDbGllbnQo
KS5zaG91bGRBcHBseVN0eWxlKG1fcGFnZSwgc3R5bGUtPmVuc3VyZUNTU1N0eWxlRGVjbGFyYXRp
b24oKSwgcmFuZ2UpOwogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIHJlc3VsdDsK
IH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAkocmV2aXNpb24gMTA4MzcxKQorKysgU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAkod29y
a2luZyBjb3B5KQpAQCAtNTksNyArNTksNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBz
aG91bGRJbnNlcnRUZXh0KGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6OlJhbmdlKiwgV2ViQ29yZTo6
RWRpdG9ySW5zZXJ0QWN0aW9uKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQ2hh
bmdlU2VsZWN0ZWRSYW5nZShXZWJDb3JlOjpSYW5nZSogZnJvbVJhbmdlLCBXZWJDb3JlOjpSYW5n
ZSogdG9SYW5nZSwgV2ViQ29yZTo6RUFmZmluaXR5LCBib29sIHN0aWxsU2VsZWN0aW5nKSBPVkVS
UklERTsKICAgICAKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQXBwbHlTdHlsZShXZWJDb3JlOjpD
U1NTdHlsZURlY2xhcmF0aW9uKiwgV2ViQ29yZTo6UmFuZ2UqKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIGJvb2wgc2hvdWxkQXBwbHlTdHlsZShXZWJDb3JlOjpTdHlsZVByb3BlcnR5U2V0KiwgV2Vi
Q29yZTo6UmFuZ2UqKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkTW92ZVJhbmdl
QWZ0ZXJEZWxldGUoV2ViQ29yZTo6UmFuZ2UqLCBXZWJDb3JlOjpSYW5nZSopIE9WRVJSSURFOwog
CiAgICAgdmlydHVhbCB2b2lkIGRpZEJlZ2luRWRpdGluZygpIE9WRVJSSURFOwpJbmRleDogU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMDgzNzEpCisrKyBTb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTItMDItMjEgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
UmVtb3ZlIHRoZSByZW1haW5pbmcgdXNlcyBvZiBDU1NTdHlsZURlY2xhcmF0aW9uIGluIEVkaXRv
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg5MzkK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RWRpdG9yQ2xpZW50QmxhY2tCZXJyeTo6c2hvdWxkQXBwbHlTdHlsZSk6CisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5oOgorICAgICAgICAoRWRpdG9yQ2xp
ZW50QmxhY2tCZXJyeSk6CisKIDIwMTItMDItMjAgIEFudG9uaW8gR29tZXMgIDxhZ29tZXNAcmlt
LmNvbT4KIAogICAgICAgICBBbGwgZGVmYXVsdCB2aWRlby9hdWRpbyBjb250cm9sIGVsZW1lbnRz
IHNob3VsZCBiZSByZWN0LWhpdCB0ZXN0YWJsZSAoUGFydCBJSSkKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRWRp
dG9yQ2xpZW50QmxhY2tCZXJyeS5jcHAJKHJldmlzaW9uIDEwODM3MSkKKysrIFNvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjAzLDcgKzIwMyw3IEBAIGJvb2wgRWRpdG9yQ2xpZW50QmxhY2tC
ZXJyeTo6c2hvdWxkQ2hhbmcKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBFZGl0b3JDbGll
bnRCbGFja0JlcnJ5OjpzaG91bGRBcHBseVN0eWxlKENTU1N0eWxlRGVjbGFyYXRpb24qLCBSYW5n
ZSopCitib29sIEVkaXRvckNsaWVudEJsYWNrQmVycnk6OnNob3VsZEFwcGx5U3R5bGUoU3R5bGVQ
cm9wZXJ0eVNldCosIFJhbmdlKikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVy
biB0cnVlOwpJbmRleDogU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Vk
aXRvckNsaWVudEJsYWNrQmVycnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5oCShyZXZpc2lvbiAx
MDgzNzEpCisrKyBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRWRpdG9y
Q2xpZW50QmxhY2tCZXJyeS5oCSh3b3JraW5nIGNvcHkpCkBAIC01MSw3ICs1MSw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSW5zZXJ0Tm9kZShOb2RlKiwgUmFuZ2UqLCBFZGl0
b3JJbnNlcnRBY3Rpb24pOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRJbnNlcnRUZXh0KGNvbnN0
IFN0cmluZyYsIFJhbmdlKiwgRWRpdG9ySW5zZXJ0QWN0aW9uKTsKICAgICB2aXJ0dWFsIGJvb2wg
c2hvdWxkQ2hhbmdlU2VsZWN0ZWRSYW5nZShSYW5nZSosIFJhbmdlKiwgRUFmZmluaXR5LCBib29s
KTsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQXBwbHlTdHlsZShDU1NTdHlsZURlY2xhcmF0aW9u
KiwgUmFuZ2UqKTsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQXBwbHlTdHlsZShTdHlsZVByb3Bl
cnR5U2V0KiwgUmFuZ2UqKTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkTW92ZVJhbmdlQWZ0ZXJE
ZWxldGUoUmFuZ2UqLCBSYW5nZSopOwogICAgIHZpcnR1YWwgdm9pZCBkaWRCZWdpbkVkaXRpbmco
KTsKICAgICB2aXJ0dWFsIHZvaWQgcmVzcG9uZFRvQ2hhbmdlZENvbnRlbnRzKCk7CkluZGV4OiBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gMTA4MzcxKQorKysgU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAx
Mi0wMi0yMSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBSZW1v
dmUgdGhlIHJlbWFpbmluZyB1c2VzIG9mIENTU1N0eWxlRGVjbGFyYXRpb24gaW4gRWRpdG9yCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODkzOQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3JjL0VkaXRv
ckNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRJbXBsOjpzaG91
bGRBcHBseVN0eWxlKToKKyAgICAgICAgKiBzcmMvRWRpdG9yQ2xpZW50SW1wbC5oOgorICAgICAg
ICAoRWRpdG9yQ2xpZW50SW1wbCk6CisKIDIwMTItMDItMjEgIFl1cnkgU2VtaWtoYXRza3kgIDx5
dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW1Y4XSBXZWIgSW5zcGVjdG9yOiBzZXQgYnJl
YWtwb2ludC9wYXVzZSBkb2Vzbid0IHdvcmsgd2hlbiB3b3JrZXIgaXMgaW4gYSB0aWdodCBsb29w
CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBs
LmNwcAkocmV2aXNpb24gMTA4MzcxKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRWRp
dG9yQ2xpZW50SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzOCwxMyArMjM4LDExIEBAIGJv
b2wgRWRpdG9yQ2xpZW50SW1wbDo6c2hvdWxkQ2hhbmdlU2VsZWMKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAotYm9vbCBFZGl0b3JDbGllbnRJbXBsOjpzaG91bGRBcHBseVN0eWxlKENTU1N0eWxlRGVj
bGFyYXRpb24qIHN0eWxlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFJhbmdlKiByYW5nZSkKK2Jvb2wgRWRpdG9yQ2xpZW50SW1wbDo6c2hvdWxkQXBwbHlTdHlsZShT
dHlsZVByb3BlcnR5U2V0KiBzdHlsZSwgUmFuZ2UqIHJhbmdlKQogewogICAgIGlmIChtX3dlYlZp
ZXctPmNsaWVudCgpKSB7CiAgICAgICAgIC8vIEZJWE1FOiBQYXNzIGEgcmVmZXJlbmNlIHRvIHRo
ZSBDU1NTdHlsZURlY2xhcmF0aW9uIHNvbWVob3cuCi0gICAgICAgIHJldHVybiBtX3dlYlZpZXct
PmNsaWVudCgpLT5zaG91bGRBcHBseVN0eWxlKFdlYlN0cmluZygpLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJSYW5nZShyYW5nZSkpOwor
ICAgICAgICByZXR1cm4gbV93ZWJWaWV3LT5jbGllbnQoKS0+c2hvdWxkQXBwbHlTdHlsZShXZWJT
dHJpbmcoKSwgV2ViUmFuZ2UocmFuZ2UpKTsKICAgICB9CiAgICAgcmV0dXJuIHRydWU7CiB9Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5oCShy
ZXZpc2lvbiAxMDgzNzEpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGll
bnRJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTY3LDcgKzY3LDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgYm9vbCBzaG91bGREZWxldGVSYW5nZShXZWJDb3JlOjpSYW5nZSopOwogICAgIHZpcnR1
YWwgYm9vbCBzaG91bGRDaGFuZ2VTZWxlY3RlZFJhbmdlKFdlYkNvcmU6OlJhbmdlKiBmcm9tUmFu
Z2UsIFdlYkNvcmU6OlJhbmdlKiB0b1JhbmdlLAogICAgICAgICBXZWJDb3JlOjpFQWZmaW5pdHks
IGJvb2wgc3RpbGxTZWxlY3RpbmcpOwotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRBcHBseVN0eWxl
KFdlYkNvcmU6OkNTU1N0eWxlRGVjbGFyYXRpb24qLCBXZWJDb3JlOjpSYW5nZSopOworICAgIHZp
cnR1YWwgYm9vbCBzaG91bGRBcHBseVN0eWxlKFdlYkNvcmU6OlN0eWxlUHJvcGVydHlTZXQqLCBX
ZWJDb3JlOjpSYW5nZSopOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRNb3ZlUmFuZ2VBZnRlckRl
bGV0ZShXZWJDb3JlOjpSYW5nZSosIFdlYkNvcmU6OlJhbmdlKik7CiAgICAgdmlydHVhbCB2b2lk
IGRpZEJlZ2luRWRpdGluZygpOwogICAgIHZpcnR1YWwgdm9pZCByZXNwb25kVG9DaGFuZ2VkQ29u
dGVudHMoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwODM3MSkKKysrIFNvdXJj
ZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisy
MDEyLTAyLTIxICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFJl
bW92ZSB0aGUgcmVtYWluaW5nIHVzZXMgb2YgQ1NTU3R5bGVEZWNsYXJhdGlvbiBpbiBFZGl0b3IK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4OTM5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xp
ZW50RWZsOjpzaG91bGRBcHBseVN0eWxlKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0
b3JDbGllbnRFZmwuaDoKKyAgICAgICAgKEVkaXRvckNsaWVudEVmbCk6CisKIDIwMTItMDItMjAg
IEtpaG9uZyBLd29uICA8a2lob25nLmt3b25Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgQWRkIGEg
bmV3IEFQSSBmb3IgdGhlIFZpYnJhdGlvbiBBUEkoVzNDKS4KSW5kZXg6IFNvdXJjZS9XZWJLaXQv
ZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmNwcAkocmV2aXNp
b24gMTA4MzcxKQorKysgU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xp
ZW50RWZsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAzLDcgKzEwMyw3IEBAIGJvb2wgRWRpdG9y
Q2xpZW50RWZsOjpzaG91bGRDaGFuZ2VTZWxlY3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9v
bCBFZGl0b3JDbGllbnRFZmw6OnNob3VsZEFwcGx5U3R5bGUoQ1NTU3R5bGVEZWNsYXJhdGlvbios
IFJhbmdlKikKK2Jvb2wgRWRpdG9yQ2xpZW50RWZsOjpzaG91bGRBcHBseVN0eWxlKFN0eWxlUHJv
cGVydHlTZXQqLCBSYW5nZSopCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4g
dHJ1ZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVu
dEVmbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Vk
aXRvckNsaWVudEVmbC5oCShyZXZpc2lvbiAxMDgzNzEpCisrKyBTb3VyY2UvV2ViS2l0L2VmbC9X
ZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuaAkod29ya2luZyBjb3B5KQpAQCAtNzMsNyAr
NzMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3VsZEluc2VydFRleHQoY29uc3Qg
U3RyaW5nJiwgUmFuZ2UqLCBFZGl0b3JJbnNlcnRBY3Rpb24pOwogICAgIHZpcnR1YWwgYm9vbCBz
aG91bGRDaGFuZ2VTZWxlY3RlZFJhbmdlKFJhbmdlKiBmcm9tUmFuZ2UsIFJhbmdlKiB0b1Jhbmdl
LCBFQWZmaW5pdHksIGJvb2wgc3RpbGxTZWxlY3RpbmcpOwogCi0gICAgdmlydHVhbCBib29sIHNo
b3VsZEFwcGx5U3R5bGUoQ1NTU3R5bGVEZWNsYXJhdGlvbiosIFJhbmdlKik7CisgICAgdmlydHVh
bCBib29sIHNob3VsZEFwcGx5U3R5bGUoU3R5bGVQcm9wZXJ0eVNldCosIFJhbmdlKik7CiAKICAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkTW92ZVJhbmdlQWZ0ZXJEZWxldGUoUmFuZ2UqLCBSYW5nZSop
OwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMDgzNzEpCisrKyBTb3VyY2UvV2Vi
S2l0L2d0ay9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0w
Mi0yMSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBSZW1vdmUg
dGhlIHJlbWFpbmluZyB1c2VzIG9mIENTU1N0eWxlRGVjbGFyYXRpb24gaW4gRWRpdG9yCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODkzOQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvRWRpdG9yQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50Ojpz
aG91bGRBcHBseVN0eWxlKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRH
dGsuaDoKKyAgICAgICAgKEVkaXRvckNsaWVudCk6CisKIDIwMTItMDItMjEgIFBoaWxpcHBlIE5v
cm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIEZpeCBvbmUgbW9yZSBHVEsr
IHVuaXQgdGVzdCBhZnRlciByMTA4Mjc4LgpJbmRleDogU291cmNlL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwCShyZXZpc2lvbiAxMDgzNzEp
CisrKyBTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yMzUsMTAgKzIzNSwxMCBAQCBib29sIEVkaXRvckNsaWVudDo6
c2hvdWxkQ2hhbmdlU2VsZWN0ZWRSCiAgICAgcmV0dXJuIGFjY2VwdDsKIH0KIAotYm9vbCBFZGl0
b3JDbGllbnQ6OnNob3VsZEFwcGx5U3R5bGUoV2ViQ29yZTo6Q1NTU3R5bGVEZWNsYXJhdGlvbiog
ZGVjbGFyYXRpb24sIFdlYkNvcmU6OlJhbmdlKiByYW5nZSkKK2Jvb2wgRWRpdG9yQ2xpZW50Ojpz
aG91bGRBcHBseVN0eWxlKFdlYkNvcmU6OlN0eWxlUHJvcGVydHlTZXQqIHNldCwgV2ViQ29yZTo6
UmFuZ2UqIHJhbmdlKQogewogICAgIGdib29sZWFuIGFjY2VwdCA9IFRSVUU7Ci0gICAgR1JlZlB0
cjxXZWJLaXRET01DU1NTdHlsZURlY2xhcmF0aW9uPiBraXREZWNsYXJhdGlvbihraXQoZGVjbGFy
YXRpb24pKTsKKyAgICBHUmVmUHRyPFdlYktpdERPTUNTU1N0eWxlRGVjbGFyYXRpb24+IGtpdERl
Y2xhcmF0aW9uKGtpdChzZXQtPmVuc3VyZUNTU1N0eWxlRGVjbGFyYXRpb24oKS5nZXQoKSkpOwog
ICAgIEdSZWZQdHI8V2ViS2l0RE9NUmFuZ2U+IGtpdFJhbmdlKGFkb3B0R1JlZihraXQocmFuZ2Up
KSk7CiAgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1fd2ViVmlldywgInNob3VsZC1hcHBseS1z
dHlsZSIsIGtpdERlY2xhcmF0aW9uLmdldCgpLCBraXRSYW5nZS5nZXQoKSwgJmFjY2VwdCk7CiAg
ICAgcmV0dXJuIGFjY2VwdDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0VkaXRvckNsaWVudEd0ay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oCShyZXZpc2lvbiAxMDgzNzEpCisrKyBTb3VyY2Uv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaAkod29ya2luZyBjb3B5
KQpAQCAtOTQsNyArOTQsNyBAQCBjbGFzcyBFZGl0b3JDbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6
RWRpCiAgICAgICAgIHZpcnR1YWwgYm9vbCBzaG91bGRJbnNlcnRUZXh0KGNvbnN0IFdURjo6U3Ry
aW5nJiwgV2ViQ29yZTo6UmFuZ2UqLCBXZWJDb3JlOjpFZGl0b3JJbnNlcnRBY3Rpb24pOwogICAg
ICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQ2hhbmdlU2VsZWN0ZWRSYW5nZShXZWJDb3JlOjpSYW5n
ZSogZnJvbVJhbmdlLCBXZWJDb3JlOjpSYW5nZSogdG9SYW5nZSwgV2ViQ29yZTo6RUFmZmluaXR5
LCBib29sIHN0aWxsU2VsZWN0aW5nKTsKIAotICAgICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQXBw
bHlTdHlsZShXZWJDb3JlOjpDU1NTdHlsZURlY2xhcmF0aW9uKiwgV2ViQ29yZTo6UmFuZ2UqKTsK
KyAgICAgICAgdmlydHVhbCBib29sIHNob3VsZEFwcGx5U3R5bGUoV2ViQ29yZTo6U3R5bGVQcm9w
ZXJ0eVNldCosIFdlYkNvcmU6OlJhbmdlKik7CiAKICAgICAgICAgdmlydHVhbCBib29sIHNob3Vs
ZE1vdmVSYW5nZUFmdGVyRGVsZXRlKFdlYkNvcmU6OlJhbmdlKiwgV2ViQ29yZTo6UmFuZ2UqKTsK
IApJbmRleDogU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkocmV2aXNpb24gMTA4MzcxKQorKysgU291cmNlL1dlYktp
dC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTItMDIt
MjEgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlIHRo
ZSByZW1haW5pbmcgdXNlcyBvZiBDU1NTdHlsZURlY2xhcmF0aW9uIGluIEVkaXRvcgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg5MzkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1dlYkVkaXRvckNsaWVudC5oOgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50KToKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW06CisgICAgICAgIChXZWJFZGl0b3JD
bGllbnQ6OnNob3VsZEFwcGx5U3R5bGUpOgorICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWUubW06
CisgICAgICAgICgtW1dlYkZyYW1lIF9zZXRUeXBpbmdTdHlsZTp3aXRoVW5kb0FjdGlvbjpdKToK
KyAgICAgICAgKiBXZWJWaWV3L1dlYkhUTUxWaWV3Lm1tOgorICAgICAgICAoLVtXZWJIVE1MVmll
dyBfYXBwbHlTdHlsZVRvU2VsZWN0aW9uOndpdGhVbmRvQWN0aW9uOl0pOgorICAgICAgICAoLVtX
ZWJIVE1MVmlldyBfY2hhbmdlQ1NTQ29sb3JVc2luZ1NlbGVjdG9yOmluUmFuZ2U6XSk6CisgICAg
ICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJWaWV3IGFwcGx5U3R5bGU6
XSk6CisKIDIwMTItMDItMjEgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAg
ICBBdHRlbXB0IHRvIGZpeCB0aGUgU25vdyBMZW9wYXJkIGJ1aWxkLgpJbmRleDogU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgJKHJldmlz
aW9uIDEwODM3MSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC02MSw3ICs2MSw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkSW5zZXJ0VGV4dChjb25zdCBXVEY6OlN0cmluZyYsIFdlYkNvcmU6
OlJhbmdlKiwgV2ViQ29yZTo6RWRpdG9ySW5zZXJ0QWN0aW9uKSBPVkVSUklERTsKICAgICB2aXJ0
dWFsIGJvb2wgc2hvdWxkQ2hhbmdlU2VsZWN0ZWRSYW5nZShXZWJDb3JlOjpSYW5nZSogZnJvbVJh
bmdlLCBXZWJDb3JlOjpSYW5nZSogdG9SYW5nZSwgV2ViQ29yZTo6RUFmZmluaXR5LCBib29sIHN0
aWxsU2VsZWN0aW5nKSBPVkVSUklERTsKIAotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRBcHBseVN0
eWxlKFdlYkNvcmU6OkNTU1N0eWxlRGVjbGFyYXRpb24qLCBXZWJDb3JlOjpSYW5nZSopIE9WRVJS
SURFOworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRBcHBseVN0eWxlKFdlYkNvcmU6OlN0eWxlUHJv
cGVydHlTZXQqLCBXZWJDb3JlOjpSYW5nZSopIE9WRVJSSURFOwogICAgIAogICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRNb3ZlUmFuZ2VBZnRlckRlbGV0ZShXZWJDb3JlOjpSYW5nZSosIFdlYkNvcmU6
OlJhbmdlKiByYW5nZVRvQmVSZXBsYWNlZCkgT1ZFUlJJREU7CiAKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0JKHJldmlz
aW9uIDEwODM3MSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5tbQkod29ya2luZyBjb3B5KQpAQCAtMjQxLDEwICsyNDEsMTAgQEAgYm9vbCBXZWJF
ZGl0b3JDbGllbnQ6OmlzU2VsZWN0VHJhaWxpbmdXaAogICAgIHJldHVybiBbbV93ZWJWaWV3IGlz
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZF07CiB9CiAKLWJvb2wgV2ViRWRpdG9yQ2xp
ZW50OjpzaG91bGRBcHBseVN0eWxlKENTU1N0eWxlRGVjbGFyYXRpb24qIHN0eWxlLCBSYW5nZSog
cmFuZ2UpCitib29sIFdlYkVkaXRvckNsaWVudDo6c2hvdWxkQXBwbHlTdHlsZShTdHlsZVByb3Bl
cnR5U2V0KiBzdHlsZSwgUmFuZ2UqIHJhbmdlKQogewogICAgIHJldHVybiBbW21fd2ViVmlldyBf
ZWRpdGluZ0RlbGVnYXRlRm9yd2FyZGVyXSB3ZWJWaWV3Om1fd2ViVmlldwotICAgICAgICBzaG91
bGRBcHBseVN0eWxlOmtpdChzdHlsZSkgdG9FbGVtZW50c0luRE9NUmFuZ2U6a2l0KHJhbmdlKV07
CisgICAgICAgIHNob3VsZEFwcGx5U3R5bGU6a2l0KHN0eWxlLT5lbnN1cmVDU1NTdHlsZURlY2xh
cmF0aW9uKCkpIHRvRWxlbWVudHNJbkRPTVJhbmdlOmtpdChyYW5nZSldOwogfQogCiBib29sIFdl
YkVkaXRvckNsaWVudDo6c2hvdWxkTW92ZVJhbmdlQWZ0ZXJEZWxldGUoUmFuZ2UqIHJhbmdlLCBS
YW5nZSogcmFuZ2VUb0JlUmVwbGFjZWQpCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYkZyYW1lLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
RnJhbWUubW0JKHJldmlzaW9uIDEwODM3MSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViRnJhbWUubW0JKHdvcmtpbmcgY29weSkKQEAgLTc5OSw3ICs3OTksOCBAQCAtICh2b2lkKV9z
ZXRUeXBpbmdTdHlsZTooRE9NQ1NTU3R5bGVEZWNsCiB7CiAgICAgaWYgKCFfcHJpdmF0ZS0+Y29y
ZUZyYW1lKQogICAgICAgICByZXR1cm47Ci0gICAgX3ByaXZhdGUtPmNvcmVGcmFtZS0+ZWRpdG9y
KCktPmNvbXB1dGVBbmRTZXRUeXBpbmdTdHlsZShjb3JlKHN0eWxlKSwgdW5kb0FjdGlvbik7Cisg
ICAgLy8gRklYTUU6IFdlIHNob3VsZG4ndCBoYXZlIHRvIGNyZWF0ZSBhIGNvcHkgaGVyZS4KKyAg
ICBfcHJpdmF0ZS0+Y29yZUZyYW1lLT5lZGl0b3IoKS0+Y29tcHV0ZUFuZFNldFR5cGluZ1N0eWxl
KGNvcmUoc3R5bGUpLT5jb3B5KCkuZ2V0KCksIHVuZG9BY3Rpb24pOwogfQogCiAtICh2b2lkKV9k
cmFnU291cmNlRW5kZWRBdDooTlNQb2ludCl3aW5kb3dMb2Mgb3BlcmF0aW9uOihOU0RyYWdPcGVy
YXRpb24pb3BlcmF0aW9uCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxW
aWV3Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZp
ZXcubW0JKHJldmlzaW9uIDEwODM3MSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
SFRNTFZpZXcubW0JKHdvcmtpbmcgY29weSkKQEAgLTQzNTIsMTQgKzQzNTIsMTAgQEAgLSAoRE9N
Q1NTU3R5bGVEZWNsYXJhdGlvbiAqKV9zdHlsZUZyb21GbwogCiAtICh2b2lkKV9hcHBseVN0eWxl
VG9TZWxlY3Rpb246KERPTUNTU1N0eWxlRGVjbGFyYXRpb24gKilzdHlsZSB3aXRoVW5kb0FjdGlv
bjooRWRpdEFjdGlvbil1bmRvQWN0aW9uCiB7Ci0gICAgaWYgKEZyYW1lKiBjb3JlRnJhbWUgPSBj
b3JlKFtzZWxmIF9mcmFtZV0pKQotICAgICAgICBjb3JlRnJhbWUtPmVkaXRvcigpLT5hcHBseVN0
eWxlVG9TZWxlY3Rpb24oY29yZShzdHlsZSksIHVuZG9BY3Rpb24pOwotfQotCi0tICh2b2lkKV9h
cHBseVBhcmFncmFwaFN0eWxlVG9TZWxlY3Rpb246KERPTUNTU1N0eWxlRGVjbGFyYXRpb24gKilz
dHlsZSB3aXRoVW5kb0FjdGlvbjooRWRpdEFjdGlvbil1bmRvQWN0aW9uCi17Ci0gICAgaWYgKEZy
YW1lKiBjb3JlRnJhbWUgPSBjb3JlKFtzZWxmIF9mcmFtZV0pKQotICAgICAgICBjb3JlRnJhbWUt
PmVkaXRvcigpLT5hcHBseVBhcmFncmFwaFN0eWxlVG9TZWxlY3Rpb24oY29yZShzdHlsZSksIHVu
ZG9BY3Rpb24pOworICAgIGlmIChGcmFtZSogY29yZUZyYW1lID0gY29yZShbc2VsZiBfZnJhbWVd
KSkgeworICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkbid0IGhhdmUgdG8gbWFrZSBhIGNvcHkg
aGVyZS4gV2Ugd2FudCBjYWxsZXJzIG9mIHRoaXMgZnVuY3Rpb24gdG8gd29yayBkaXJlY3RseSB3
aXRoIFN0eWxlUHJvcGVydHlTZXQgZXZlbnR1YWxseS4KKyAgICAgICAgY29yZUZyYW1lLT5lZGl0
b3IoKS0+YXBwbHlTdHlsZVRvU2VsZWN0aW9uKGNvcmUoc3R5bGUpLT5jb3B5KCkuZ2V0KCksIHVu
ZG9BY3Rpb24pOworICAgIH0KIH0KIAogLSAoQk9PTClfaGFuZGxlU3R5bGVLZXlFcXVpdmFsZW50
OihOU0V2ZW50ICopZXZlbnQKQEAgLTQ2NTcsOSArNDY1MywxMyBAQCAtICh2b2lkKV9jaGFuZ2VD
U1NDb2xvclVzaW5nU2VsZWN0b3I6KFNFCiB7CiAgICAgRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbiAq
c3R5bGUgPSBbc2VsZiBfc3R5bGVGcm9tQ29sb3JQYW5lbFdpdGhTZWxlY3RvcjpzZWxlY3Rvcl07
CiAgICAgV2ViVmlldyAqd2ViVmlldyA9IFtzZWxmIF93ZWJWaWV3XTsKLSAgICBpZiAoW1t3ZWJW
aWV3IF9lZGl0aW5nRGVsZWdhdGVGb3J3YXJkZXJdIHdlYlZpZXc6d2ViVmlldyBzaG91bGRBcHBs
eVN0eWxlOnN0eWxlIHRvRWxlbWVudHNJbkRPTVJhbmdlOnJhbmdlXSkKLSAgICAgICAgaWYgKEZy
YW1lKiBjb3JlRnJhbWUgPSBjb3JlKFtzZWxmIF9mcmFtZV0pKQotICAgICAgICAgICAgY29yZUZy
YW1lLT5lZGl0b3IoKS0+YXBwbHlTdHlsZShjb3JlKHN0eWxlKSwgW3NlbGYgX3VuZG9BY3Rpb25G
cm9tQ29sb3JQYW5lbFdpdGhTZWxlY3RvcjpzZWxlY3Rvcl0pOworICAgIGlmIChbW3dlYlZpZXcg
X2VkaXRpbmdEZWxlZ2F0ZUZvcndhcmRlcl0gd2ViVmlldzp3ZWJWaWV3IHNob3VsZEFwcGx5U3R5
bGU6c3R5bGUgdG9FbGVtZW50c0luRE9NUmFuZ2U6cmFuZ2VdKSB7CisgICAgICAgIGlmIChGcmFt
ZSogY29yZUZyYW1lID0gY29yZShbc2VsZiBfZnJhbWVdKSkgeworICAgICAgICAgICAgLy8gRklY
TUU6IFdlIHNob3VsZG4ndCBoYXZlIHRvIG1ha2UgYSBjb3B5IGhlcmUuCisgICAgICAgICAgICBj
b3JlRnJhbWUtPmVkaXRvcigpLT5hcHBseVN0eWxlKGNvcmUoc3R5bGUpLT5jb3B5KCkuZ2V0KCks
IFtzZWxmIF91bmRvQWN0aW9uRnJvbUNvbG9yUGFuZWxXaXRoU2VsZWN0b3I6c2VsZWN0b3JdKTsK
KyAgICAgICAgfQorICAgIH0KKwogfQogCiAtICh2b2lkKWNoYW5nZURvY3VtZW50QmFja2dyb3Vu
ZENvbG9yOihpZClzZW5kZXIKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmll
dy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0J
KHJldmlzaW9uIDEwODM3MSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bQkod29ya2luZyBjb3B5KQpAQCAtNTUyNiw4ICs1NTI2LDkgQEAgLSAodm9pZClhcHBseVN0eWxl
OihET01DU1NTdHlsZURlY2xhcmF0aQogICAgIC8vIGNoYW5nZSB0aGUgQVBJIHRvIGFsbG93IHRo
aXMuCiAgICAgV2ViRnJhbWUgKndlYkZyYW1lID0gW3NlbGYgX3NlbGVjdGVkT3JNYWluRnJhbWVd
OwogICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKHdlYkZyYW1lKTsKKyAgICAvLyBGSVhNRTog
V2Ugc2hvdWxkbid0IGhhdmUgdG8gbWFrZSBhIGNvcHkgaGVyZS4KICAgICBpZiAoY29yZUZyYW1l
KQotICAgICAgICBjb3JlRnJhbWUtPmVkaXRvcigpLT5hcHBseVN0eWxlKGNvcmUoc3R5bGUpKTsK
KyAgICAgICAgY29yZUZyYW1lLT5lZGl0b3IoKS0+YXBwbHlTdHlsZShjb3JlKHN0eWxlKS0+Y29w
eSgpLmdldCgpKTsKIH0KIAogQGVuZApJbmRleDogU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwODM3
MSkKKysrIFNvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTUgQEAKKzIwMTItMDItMjEgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisK
KyAgICAgICAgUmVtb3ZlIHRoZSByZW1haW5pbmcgdXNlcyBvZiBDU1NTdHlsZURlY2xhcmF0aW9u
IGluIEVkaXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Nzg5MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkVkaXRvckNsaWVudFF0OjpzaG91bGRBcHBseVN0eWxlKToKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9FZGl0b3JDbGllbnRRdC5oOgorICAgICAgICAoRWRpdG9yQ2xpZW50UXQpOgorCiAyMDEy
LTAyLTIxICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAg
W1F0XSB0c3RfUVdlYlBhZ2U6OmluZmluaXRlTG9vcEpTKCkgdGltZW91dHMgd2l0aCBERkcgSklU
CkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNs
aWVudFF0LmNwcAkocmV2aXNpb24gMTA4MzcxKQorKysgU291cmNlL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9FZGl0b3JDbGllbnRRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDYg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJFZGl0b3JDbGllbnRRdC5oIgogCi0j
aW5jbHVkZSAiQ1NTU3R5bGVEZWNsYXJhdGlvbi5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAj
aW5jbHVkZSAiVW5kb1N0ZXBRdC5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgpAQCAtNDgsNiArNDcs
NyBAQAogI2luY2x1ZGUgIlJhbmdlLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRl
ICJTcGF0aWFsTmF2aWdhdGlvbi5oIgorI2luY2x1ZGUgIlN0eWxlUHJvcGVydHlTZXQuaCIKICNp
bmNsdWRlICJXaW5kb3dzS2V5Ym9hcmRDb2Rlcy5oIgogI2luY2x1ZGUgInF3ZWJwYWdlLmgiCiAj
aW5jbHVkZSAicXdlYnBhZ2VfcC5oIgpAQCAtMTcwLDEyICsxNzAsMTIgQEAgYm9vbCBFZGl0b3JD
bGllbnRRdDo6c2hvdWxkQ2hhbmdlU2VsZWN0ZQogICAgIHJldHVybiBhY2NlcHRzRWRpdGluZzsK
IH0KIAotYm9vbCBFZGl0b3JDbGllbnRRdDo6c2hvdWxkQXBwbHlTdHlsZShXZWJDb3JlOjpDU1NT
dHlsZURlY2xhcmF0aW9uKiBzdHlsZSwKK2Jvb2wgRWRpdG9yQ2xpZW50UXQ6OnNob3VsZEFwcGx5
U3R5bGUoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0eVNldCogc3R5bGUsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFdlYkNvcmU6OlJhbmdlKiByYW5nZSkKIHsKICAgICBpZiAo
ZHVtcEVkaXRpbmdDYWxsYmFja3MpCiAgICAgICAgIHByaW50ZigiRURJVElORyBERUxFR0FURTog
c2hvdWxkQXBwbHlTdHlsZTolcyB0b0VsZW1lbnRzSW5ET01SYW5nZTolc1xuIiwKLSAgICAgICAg
ICAgICAgIFFTdHJpbmcoc3R5bGUtPmNzc1RleHQoKSkudG9VdGY4KCkuY29uc3REYXRhKCksIGR1
bXBSYW5nZShyYW5nZSkudG9VdGY4KCkuY29uc3REYXRhKCkpOworICAgICAgICAgICAgICAgUVN0
cmluZyhzdHlsZS0+YXNUZXh0KCkpLnRvVXRmOCgpLmNvbnN0RGF0YSgpLCBkdW1wUmFuZ2UocmFu
Z2UpLnRvVXRmOCgpLmNvbnN0RGF0YSgpKTsKICAgICByZXR1cm4gYWNjZXB0c0VkaXRpbmc7CiB9
CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNs
aWVudFF0LmgJKHJldmlzaW9uIDEwODM3MSkKKysrIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRWRpdG9yQ2xpZW50UXQuaAkod29ya2luZyBjb3B5KQpAQCAtNjMsNyArNjMsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3VsZEluc2VydFRleHQoY29uc3QgU3RyaW5nJiwg
UmFuZ2UqLCBFZGl0b3JJbnNlcnRBY3Rpb24pOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRDaGFu
Z2VTZWxlY3RlZFJhbmdlKFJhbmdlKiBmcm9tUmFuZ2UsIFJhbmdlKiB0b1JhbmdlLCBFQWZmaW5p
dHksIGJvb2wgc3RpbGxTZWxlY3RpbmcpOwogCi0gICAgdmlydHVhbCBib29sIHNob3VsZEFwcGx5
U3R5bGUoQ1NTU3R5bGVEZWNsYXJhdGlvbiosIFJhbmdlKik7CisgICAgdmlydHVhbCBib29sIHNo
b3VsZEFwcGx5U3R5bGUoU3R5bGVQcm9wZXJ0eVNldCosIFJhbmdlKik7CiAKICAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkTW92ZVJhbmdlQWZ0ZXJEZWxldGUoUmFuZ2UqLCBSYW5nZSopOwogCkluZGV4
OiBTb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC93aW4vQ2hhbmdlTG9nCShyZXZpc2lvbiAxMDgzNzEpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wMi0yMSAgUnlv
c3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBSZW1vdmUgdGhlIHJlbWFp
bmluZyB1c2VzIG9mIENTU1N0eWxlRGVjbGFyYXRpb24gaW4gRWRpdG9yCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODkzOQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6c2hvdWxkQXBwbHlTdHls
ZSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lmg6CisgICAgICAg
IChXZWJFZGl0b3JDbGllbnQpOgorCiAyMDEyLTAyLTE3ICBLYWxldiBMZW1iZXIgIDxrYWxldmxl
bWJlckBnbWFpbC5jb20+CiAKICAgICAgICAgUmVtb3ZlIHVudXNlZCBwYXJhbWV0ZXJzIGZyb20g
V1RGIHRocmVhZGluZyBBUEkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0
L1dlYkVkaXRvckNsaWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAkocmV2aXNpb24gMTA4MzcxKQorKysgU291
cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjc2LDcgKzI3Niw3IEBAIGJvb2wgV2ViRWRpdG9yQ2xpZW50OjpzaG91bGRJ
bnNlcnRUZXh0KGMKIC8vYm9vbCBXZWJFZGl0b3JDbGllbnQ6OnNob3VsZENoYW5nZVNlbGVjdGVk
UmFuZ2UoUmFuZ2UgKmN1cnJlbnRSYW5nZSwgUmFuZ2UgKnRvUHJvcG9zZWRSYW5nZSwgU2VsZWN0
aW9uQWZmaW5pdHkgc2VsZWN0aW9uQWZmaW5pdHksIGJvb2wgc3RpbGxTZWxlY3RpbmcpCiAvL3sg
bm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIGZhbHNlOyB9CiAKLWJvb2wgV2ViRWRpdG9yQ2xpZW50
OjpzaG91bGRBcHBseVN0eWxlKENTU1N0eWxlRGVjbGFyYXRpb24qIC8qc3R5bGUqLywgUmFuZ2Uq
IC8qdG9FbGVtZW50c0luRE9NUmFuZ2UqLykKK2Jvb2wgV2ViRWRpdG9yQ2xpZW50OjpzaG91bGRB
cHBseVN0eWxlKFN0eWxlUHJvcGVydHlTZXQqIC8qc3R5bGUqLywgUmFuZ2UqIC8qdG9FbGVtZW50
c0luRE9NUmFuZ2UqLykKIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIHRydWU7IH0KIAogYm9v
bCBXZWJFZGl0b3JDbGllbnQ6OnNob3VsZE1vdmVSYW5nZUFmdGVyRGVsZXRlKFJhbmdlKiAvKnJh
bmdlKi8sIFJhbmdlKiAvKnJhbmdlVG9CZVJlcGxhY2VkKi8pCkluZGV4OiBTb3VyY2UvV2ViS2l0
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAkocmV2aXNpb24g
MTA4MzcxKQorKysgU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xp
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTY0LDcgKzY0LDcgQEAgcHVibGljOgogICAgIGJvb2wg
c2hvdWxkRGVsZXRlUmFuZ2UoV2ViQ29yZTo6UmFuZ2UqKTsKIAogICAgIGJvb2wgc2hvdWxkSW5z
ZXJ0Tm9kZShXZWJDb3JlOjpOb2RlKiwgV2ViQ29yZTo6UmFuZ2UqIHJlcGxhY2luZ1JhbmdlLCBX
ZWJDb3JlOjpFZGl0b3JJbnNlcnRBY3Rpb24pOwotICAgIGJvb2wgc2hvdWxkQXBwbHlTdHlsZShX
ZWJDb3JlOjpDU1NTdHlsZURlY2xhcmF0aW9uKiwgV2ViQ29yZTo6UmFuZ2UqKTsKKyAgICBib29s
IHNob3VsZEFwcGx5U3R5bGUoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0eVNldCosIFdlYkNvcmU6OlJh
bmdlKik7CiAgICAgYm9vbCBzaG91bGRNb3ZlUmFuZ2VBZnRlckRlbGV0ZShXZWJDb3JlOjpSYW5n
ZSosIFdlYkNvcmU6OlJhbmdlKik7CiAgICAgYm9vbCBzaG91bGRDaGFuZ2VUeXBpbmdTdHlsZShX
ZWJDb3JlOjpDU1NTdHlsZURlY2xhcmF0aW9uKiBjdXJyZW50U3R5bGUsIFdlYkNvcmU6OkNTU1N0
eWxlRGVjbGFyYXRpb24qIHRvUHJvcG9zZWRTdHlsZSk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
d2luY2UvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdl
TG9nCShyZXZpc2lvbiAxMDgzNzEpCisrKyBTb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDEyLTAyLTIxICBSeW9zdWtlIE5pd2Eg
IDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFJlbW92ZSB0aGUgcmVtYWluaW5nIHVzZXMg
b2YgQ1NTU3R5bGVEZWNsYXJhdGlvbiBpbiBFZGl0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4OTM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5D
RS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudFdpbkNFOjpzaG91bGRBcHBseVN0
eWxlKToKKwogMjAxMi0wMi0yMCAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgR2V0IHJpZCBvZiB0aGUgTG9jYWxpemF0aW9uU3RyYXRlZ3kKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRWRpdG9y
Q2xpZW50V2luQ0UuY3BwCShyZXZpc2lvbiAxMDgzNzEpCisrKyBTb3VyY2UvV2ViS2l0L3dpbmNl
L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTAyLDcgKzEwMiw3IEBAIGJvb2wgRWRpdG9yQ2xpZW50V2luQ0U6OnNob3VsZENoYW5nZVNlbGUK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBFZGl0b3JDbGllbnRXaW5DRTo6c2hvdWxkQXBw
bHlTdHlsZShXZWJDb3JlOjpDU1NTdHlsZURlY2xhcmF0aW9uKiwgV2ViQ29yZTo6UmFuZ2UqKQor
Ym9vbCBFZGl0b3JDbGllbnRXaW5DRTo6c2hvdWxkQXBwbHlTdHlsZShXZWJDb3JlOjpTdHlsZVBy
b3BlcnR5U2V0KiwgV2ViQ29yZTo6UmFuZ2UqKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAg
ICAgcmV0dXJuIHRydWU7CkluZGV4OiBTb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZwkocmV2aXNpb24gMTA4MzcxKQorKysg
U291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBA
QAorMjAxMi0wMi0yMSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAg
ICBSZW1vdmUgdGhlIHJlbWFpbmluZyB1c2VzIG9mIENTU1N0eWxlRGVjbGFyYXRpb24gaW4gRWRp
dG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODkz
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
S2l0U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JD
bGllbnRXeDo6c2hvdWxkQXBwbHlTdHlsZSk6CisgICAgICAgICogV2ViS2l0U3VwcG9ydC9FZGl0
b3JDbGllbnRXeC5oOgorICAgICAgICAoRWRpdG9yQ2xpZW50V3gpOgorCiAyMDEyLTAyLTE1ICBT
YWRydWwgSGFiaWIgQ2hvd2RodXJ5ICA8c2FkcnVsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBO
b3RpZnkgQ2hyb21lQ2xpZW50IHdoZW4gdG91Y2gtZXZlbnQgaGFuZGxlcnMgYXJlIGluc3RhbGxl
ZC9yZW1vdmVkLgpJbmRleDogU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0VkaXRvckNs
aWVudFd4LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQv
RWRpdG9yQ2xpZW50V3guY3BwCShyZXZpc2lvbiAxMDgzNzEpCisrKyBTb3VyY2UvV2ViS2l0L3d4
L1dlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjMs
NyArMjIzLDcgQEAgYm9vbCBFZGl0b3JDbGllbnRXeDo6c2hvdWxkSW5zZXJ0VGV4dChjbwogICAg
IHJldHVybiB0cnVlOwogfQogCi1ib29sIEVkaXRvckNsaWVudFd4OjpzaG91bGRBcHBseVN0eWxl
KENTU1N0eWxlRGVjbGFyYXRpb24qLAorYm9vbCBFZGl0b3JDbGllbnRXeDo6c2hvdWxkQXBwbHlT
dHlsZShTdHlsZVByb3BlcnR5U2V0KiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFJhbmdlKikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpJbmRleDogU291cmNlL1dl
YktpdC93eC9XZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVudFd4LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVudFd4LmgJKHJldmlzaW9uIDEw
ODM3MSkKKysrIFNvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5o
CSh3b3JraW5nIGNvcHkpCkBAIC02NCw3ICs2NCw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBFZGl0b3JJbnNlcnRBY3Rpb24pOwogICAgIHZpcnR1YWwgYm9v
bCBzaG91bGRJbnNlcnRUZXh0KGNvbnN0IFN0cmluZyYsIFJhbmdlKiwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBFZGl0b3JJbnNlcnRBY3Rpb24pOwotICAgIHZpcnR1YWwgYm9v
bCBzaG91bGRBcHBseVN0eWxlKENTU1N0eWxlRGVjbGFyYXRpb24qLAorICAgIHZpcnR1YWwgYm9v
bCBzaG91bGRBcHBseVN0eWxlKFN0eWxlUHJvcGVydHlTZXQqLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFJhbmdlKik7CiAgICAgdmlydHVhbCBib29sIHNob3VsZE1vdmVSYW5n
ZUFmdGVyRGVsZXRlKFJhbmdlKiwgUmFuZ2UqKTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQ2hh
bmdlU2VsZWN0ZWRSYW5nZShSYW5nZSogZnJvbVJhbmdlLCBSYW5nZSogdG9SYW5nZSwgCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128015</attachid>
            <date>2012-02-21 12:00:03 -0800</date>
            <delta_ts>2012-02-22 01:14:43 -0800</delta_ts>
            <desc>GTK and Windows build fixes</desc>
            <filename>bug-78939-20120221120002.patch</filename>
            <type>text/plain</type>
            <size>42474</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwODM3MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQxIEBACisyMDEyLTAyLTIxICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFJlbW92ZSB0aGUgcmVtYWluaW5n
IHVzZXMgb2YgQ1NTU3R5bGVEZWNsYXJhdGlvbiBpbiBFZGl0b3IKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4OTM5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hhbmdlZCB0aGUgYXJndW1lbnQgdHlwZXMg
b2Ygc2hvdWxkQXBwbHlTdHlsZSwgYXBwbHlQYXJhZ3JhcGhTdHlsZSwgYXBwbHlTdHlsZVRvU2Vs
ZWN0aW9uLAorICAgICAgICBhcHBseVBhcmFncmFwaFN0eWxlVG9TZWxlY3Rpb24sIGFuZCBjb21w
dXRlQW5kU2V0VHlwaW5nU3R5bGUgaW4gRWRpdG9yIGZyb20gQ1NTU3R5bGVEZWNsYXJhdGlvbgor
ICAgICAgICB0byBTdHlsZVByb3BlcnR5U2V0LgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6YXBwbHlTdHls
ZSk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnNob3VsZEFwcGx5U3R5bGUpOgorICAgICAg
ICAoV2ViQ29yZTo6RWRpdG9yOjphcHBseVBhcmFncmFwaFN0eWxlKToKKyAgICAgICAgKFdlYkNv
cmU6OkVkaXRvcjo6YXBwbHlTdHlsZVRvU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkVk
aXRvcjo6YXBwbHlQYXJhZ3JhcGhTdHlsZVRvU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkVkaXRvcjo6c2V0QmFzZVdyaXRpbmdEaXJlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6RWRp
dG9yOjpjb21wdXRlQW5kU2V0VHlwaW5nU3R5bGUpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9y
Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKEVkaXRvcik6CisgICAgICAgICogZWRp
dGluZy9FZGl0b3JDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFwcGx5Q29tbWFuZFRv
RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0ZUFwcGx5UGFyYWdyYXBoU3R5bGUpOgor
ICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0ZU1ha2VUZXh0V3JpdGluZ0RpcmVjdGlvbkxlZnRUb1Jp
Z2h0KToKKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVNYWtlVGV4dFdyaXRpbmdEaXJlY3Rpb25O
YXR1cmFsKToKKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVNYWtlVGV4dFdyaXRpbmdEaXJlY3Rp
b25SaWdodFRvTGVmdCk6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAg
ICAoV2ViQ29yZTo6RW1wdHlFZGl0b3JDbGllbnQ6OnNob3VsZEFwcGx5U3R5bGUpOgorICAgICAg
ICAqIHBhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0NvbnRy
b2xsZXI6OmNvbmNsdWRlRWRpdERyYWcpOgorICAgICAgICAqIHBhZ2UvRWRpdG9yQ2xpZW50Lmg6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKEVkaXRvckNsaWVudCk6CisKIDIwMTItMDIt
MjEgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgUHJv
cGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uIHRvIGEgZmlsZSBvZiBpdHMgb3duCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbgkocmV2aXNpb24gMTA4MzcxKQorKysgU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5leHAuaW4JKHdvcmtpbmcgY29weSkKQEAgLTg0MSw3ICs4NDEsNyBAQCBfX1pON1dlYkNv
cmU2Q3Vyc29yOGZyb21UeXBlRU5TMF80VHlwZUUKIF9fWk43V2ViQ29yZTZDdXJzb3JDMUVQTlNf
NUltYWdlRVJLTlNfOEludFBvaW50RQogX19aTjdXZWJDb3JlNkN1cnNvckQxRXYKIF9fWk43V2Vi
Q29yZTZDdXJzb3JhU0VSS1MwXwotX19aTjdXZWJDb3JlNkVkaXRvcjEwYXBwbHlTdHlsZUVQTlNf
MTlDU1NTdHlsZURlY2xhcmF0aW9uRU5TXzEwRWRpdEFjdGlvbkUKK19fWk43V2ViQ29yZTZFZGl0
b3IxMGFwcGx5U3R5bGVFUE5TXzE2U3R5bGVQcm9wZXJ0eVNldEVOU18xMEVkaXRBY3Rpb25FCiBf
X1pON1dlYkNvcmU2RWRpdG9yMTBmaW5kU3RyaW5nRVJLTjNXVEY2U3RyaW5nRWoKIF9fWk43V2Vi
Q29yZTZFZGl0b3IxMGluc2VydFRleHRFUktOM1dURjZTdHJpbmdFUE5TXzVFdmVudEUKIF9fWk43
V2ViQ29yZTZFZGl0b3IxM2NhbkRIVE1MUGFzdGVFdgpAQCAtODU4LDExICs4NTgsMTEgQEAgX19a
TjdXZWJDb3JlNkVkaXRvcjE4Y29uZmlybUNvbXBvc2l0aW9uRQogX19aTjdXZWJDb3JlNkVkaXRv
cjE5Y291bnRNYXRjaGVzRm9yVGV4dEVSS04zV1RGNlN0cmluZ0VQTlNfNVJhbmdlRWpqYgogX19a
TjdXZWJDb3JlNkVkaXRvcjE5ZGVsZXRlV2l0aERpcmVjdGlvbkVOU18xOFNlbGVjdGlvbkRpcmVj
dGlvbkVOU18xNVRleHRHcmFudWxhcml0eUViYgogX19aTjdXZWJDb3JlNkVkaXRvcjE5aW5zZXJ0
VW5vcmRlcmVkTGlzdEV2Ci1fX1pON1dlYkNvcmU2RWRpdG9yMjFhcHBseVN0eWxlVG9TZWxlY3Rp
b25FUE5TXzE5Q1NTU3R5bGVEZWNsYXJhdGlvbkVOU18xMEVkaXRBY3Rpb25FCitfX1pON1dlYkNv
cmU2RWRpdG9yMjFhcHBseVN0eWxlVG9TZWxlY3Rpb25FUE5TXzE2U3R5bGVQcm9wZXJ0eVNldEVO
U18xMEVkaXRBY3Rpb25FCiBfX1pON1dlYkNvcmU2RWRpdG9yMjFpc1NlbGVjdGlvbk1pc3NwZWxs
ZWRFdgogX19aTjdXZWJDb3JlNkVkaXRvcjIzc2V0QmFzZVdyaXRpbmdEaXJlY3Rpb25FMTZXcml0
aW5nRGlyZWN0aW9uCiBfX1pON1dlYkNvcmU2RWRpdG9yMjRhZHZhbmNlVG9OZXh0TWlzc3BlbGxp
bmdFYgotX19aTjdXZWJDb3JlNkVkaXRvcjI0Y29tcHV0ZUFuZFNldFR5cGluZ1N0eWxlRVBOU18x
OUNTU1N0eWxlRGVjbGFyYXRpb25FTlNfMTBFZGl0QWN0aW9uRQorX19aTjdXZWJDb3JlNkVkaXRv
cjI0Y29tcHV0ZUFuZFNldFR5cGluZ1N0eWxlRVBOU18xNlN0eWxlUHJvcGVydHlTZXRFTlNfMTBF
ZGl0QWN0aW9uRQogX19aTjdXZWJDb3JlNkVkaXRvcjI0aXNTZWxlY3Rpb25VbmdyYW1tYXRpY2Fs
RXYKIF9fWk43V2ViQ29yZTZFZGl0b3IyNHJlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dEVSS04zV1RG
NlN0cmluZ0ViYgogX19aTjdXZWJDb3JlNkVkaXRvcjI2ZGVjcmVhc2VTZWxlY3Rpb25MaXN0TGV2
ZWxFdgpAQCAtODczLDcgKzg3Myw2IEBAIF9fWk43V2ViQ29yZTZFZGl0b3IyN3JlYWRTZWxlY3Rp
b25Gcm9tUGEKIF9fWk43V2ViQ29yZTZFZGl0b3IyOHJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21l
bnRFTjNXVEYxMFBhc3NSZWZQdHJJTlNfMTZEb2N1bWVudEZyYWdtZW50RUVFYmJiCiBfX1pON1dl
YkNvcmU2RWRpdG9yMjljYW5EZWNyZWFzZVNlbGVjdGlvbkxpc3RMZXZlbEV2CiBfX1pON1dlYkNv
cmU2RWRpdG9yMjljYW5JbmNyZWFzZVNlbGVjdGlvbkxpc3RMZXZlbEV2Ci1fX1pON1dlYkNvcmU2
RWRpdG9yMzBhcHBseVBhcmFncmFwaFN0eWxlVG9TZWxlY3Rpb25FUE5TXzE5Q1NTU3R5bGVEZWNs
YXJhdGlvbkVOU18xMEVkaXRBY3Rpb25FCiBfX1pON1dlYkNvcmU2RWRpdG9yMzBkZWxldGVTZWxl
Y3Rpb25XaXRoU21hcnREZWxldGVFYgogX19aTjdXZWJDb3JlNkVkaXRvcjMwcGFzdGVBc1BsYWlu
VGV4dEJ5cGFzc2luZ0RIVE1MRXYKIF9fWk43V2ViQ29yZTZFZGl0b3IzMmd1ZXNzZXNGb3JVbmdy
YW1tYXRpY2FsU2VsZWN0aW9uRXYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9y
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAJKHJl
dmlzaW9uIDEwODM3MSkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNjc4LDcgKzY3OCw3IEBAIE5vZGUqIEVkaXRvcjo6ZmluZEV2ZW50VGFy
Z2V0RnJvbVNlbGVjdGkKICAgICByZXR1cm4gZmluZEV2ZW50VGFyZ2V0RnJvbShtX2ZyYW1lLT5z
ZWxlY3Rpb24oKS0+c2VsZWN0aW9uKCkpOwogfQogCi12b2lkIEVkaXRvcjo6YXBwbHlTdHlsZShD
U1NTdHlsZURlY2xhcmF0aW9uKiBzdHlsZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQordm9p
ZCBFZGl0b3I6OmFwcGx5U3R5bGUoU3R5bGVQcm9wZXJ0eVNldCogc3R5bGUsIEVkaXRBY3Rpb24g
ZWRpdGluZ0FjdGlvbikKIHsKICAgICBzd2l0Y2ggKG1fZnJhbWUtPnNlbGVjdGlvbigpLT5zZWxl
Y3Rpb25UeXBlKCkpIHsKICAgICBjYXNlIFZpc2libGVTZWxlY3Rpb246Ok5vU2VsZWN0aW9uOgpA
QCAtNjk0LDEyICs2OTQsMTIgQEAgdm9pZCBFZGl0b3I6OmFwcGx5U3R5bGUoQ1NTU3R5bGVEZWNs
YXJhdAogICAgIH0KIH0KICAgICAKLWJvb2wgRWRpdG9yOjpzaG91bGRBcHBseVN0eWxlKENTU1N0
eWxlRGVjbGFyYXRpb24qIHN0eWxlLCBSYW5nZSogcmFuZ2UpCitib29sIEVkaXRvcjo6c2hvdWxk
QXBwbHlTdHlsZShTdHlsZVByb3BlcnR5U2V0KiBzdHlsZSwgUmFuZ2UqIHJhbmdlKQogeyAgIAog
ICAgIHJldHVybiBjbGllbnQoKS0+c2hvdWxkQXBwbHlTdHlsZShzdHlsZSwgcmFuZ2UpOwogfQog
ICAgIAotdm9pZCBFZGl0b3I6OmFwcGx5UGFyYWdyYXBoU3R5bGUoQ1NTU3R5bGVEZWNsYXJhdGlv
biogc3R5bGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKK3ZvaWQgRWRpdG9yOjphcHBseVBh
cmFncmFwaFN0eWxlKFN0eWxlUHJvcGVydHlTZXQqIHN0eWxlLCBFZGl0QWN0aW9uIGVkaXRpbmdB
Y3Rpb24pCiB7CiAgICAgc3dpdGNoIChtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+c2VsZWN0aW9uVHlw
ZSgpKSB7CiAgICAgY2FzZSBWaXNpYmxlU2VsZWN0aW9uOjpOb1NlbGVjdGlvbjoKQEAgLTcxMywx
OCArNzEzLDE4IEBAIHZvaWQgRWRpdG9yOjphcHBseVBhcmFncmFwaFN0eWxlKENTU1N0eWwKICAg
ICB9CiB9CiAKLXZvaWQgRWRpdG9yOjphcHBseVN0eWxlVG9TZWxlY3Rpb24oQ1NTU3R5bGVEZWNs
YXJhdGlvbiogc3R5bGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKK3ZvaWQgRWRpdG9yOjph
cHBseVN0eWxlVG9TZWxlY3Rpb24oU3R5bGVQcm9wZXJ0eVNldCogc3R5bGUsIEVkaXRBY3Rpb24g
ZWRpdGluZ0FjdGlvbikKIHsKLSAgICBpZiAoIXN0eWxlIHx8ICFzdHlsZS0+bGVuZ3RoKCkgfHwg
IWNhbkVkaXRSaWNobHkoKSkKKyAgICBpZiAoIXN0eWxlIHx8IHN0eWxlLT5pc0VtcHR5KCkgfHwg
IWNhbkVkaXRSaWNobHkoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKGNsaWVudCgpICYm
IGNsaWVudCgpLT5zaG91bGRBcHBseVN0eWxlKHN0eWxlLCBtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+
dG9Ob3JtYWxpemVkUmFuZ2UoKS5nZXQoKSkpCiAgICAgICAgIGFwcGx5U3R5bGUoc3R5bGUsIGVk
aXRpbmdBY3Rpb24pOwogfQogCi12b2lkIEVkaXRvcjo6YXBwbHlQYXJhZ3JhcGhTdHlsZVRvU2Vs
ZWN0aW9uKENTU1N0eWxlRGVjbGFyYXRpb24qIHN0eWxlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rp
b24pCit2b2lkIEVkaXRvcjo6YXBwbHlQYXJhZ3JhcGhTdHlsZVRvU2VsZWN0aW9uKFN0eWxlUHJv
cGVydHlTZXQqIHN0eWxlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCiB7Ci0gICAgaWYgKCFz
dHlsZSB8fCAhc3R5bGUtPmxlbmd0aCgpIHx8ICFjYW5FZGl0UmljaGx5KCkpCisgICAgaWYgKCFz
dHlsZSB8fCBzdHlsZS0+aXNFbXB0eSgpIHx8ICFjYW5FZGl0UmljaGx5KCkpCiAgICAgICAgIHJl
dHVybjsKICAgICAKICAgICBpZiAoY2xpZW50KCkgJiYgY2xpZW50KCktPnNob3VsZEFwcGx5U3R5
bGUoc3R5bGUsIG1fZnJhbWUtPnNlbGVjdGlvbigpLT50b05vcm1hbGl6ZWRSYW5nZSgpLmdldCgp
KSkKQEAgLTEyNjIsNyArMTI2Miw3IEBAIHZvaWQgRWRpdG9yOjpzZXRCYXNlV3JpdGluZ0RpcmVj
dGlvbihXcmkKIAogICAgIFJlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiBzdHlsZSA9IFN0eWxlUHJv
cGVydHlTZXQ6OmNyZWF0ZSgpOwogICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eURp
cmVjdGlvbiwgZGlyZWN0aW9uID09IExlZnRUb1JpZ2h0V3JpdGluZ0RpcmVjdGlvbiA/ICJsdHIi
IDogZGlyZWN0aW9uID09IFJpZ2h0VG9MZWZ0V3JpdGluZ0RpcmVjdGlvbiA/ICJydGwiIDogImlu
aGVyaXQiLCBmYWxzZSk7Ci0gICAgYXBwbHlQYXJhZ3JhcGhTdHlsZVRvU2VsZWN0aW9uKHN0eWxl
LT5lbnN1cmVDU1NTdHlsZURlY2xhcmF0aW9uKCksIEVkaXRBY3Rpb25TZXRXcml0aW5nRGlyZWN0
aW9uKTsKKyAgICBhcHBseVBhcmFncmFwaFN0eWxlVG9TZWxlY3Rpb24oc3R5bGUuZ2V0KCksIEVk
aXRBY3Rpb25TZXRXcml0aW5nRGlyZWN0aW9uKTsKIH0KIAogdm9pZCBFZGl0b3I6OnNlbGVjdENv
bXBvc2l0aW9uKCkKQEAgLTI1NzksOSArMjU3OSw5IEBAIGJvb2wgRWRpdG9yOjpzaG91bGRDaGFu
Z2VTZWxlY3Rpb24oY29uc3QKICAgICByZXR1cm4gY2xpZW50KCkgJiYgY2xpZW50KCktPnNob3Vs
ZENoYW5nZVNlbGVjdGVkUmFuZ2Uob2xkU2VsZWN0aW9uLnRvTm9ybWFsaXplZFJhbmdlKCkuZ2V0
KCksIG5ld1NlbGVjdGlvbi50b05vcm1hbGl6ZWRSYW5nZSgpLmdldCgpLCBhZmZpbml0eSwgc3Rp
bGxTZWxlY3RpbmcpOwogfQogCi12b2lkIEVkaXRvcjo6Y29tcHV0ZUFuZFNldFR5cGluZ1N0eWxl
KENTU1N0eWxlRGVjbGFyYXRpb24qIHN0eWxlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCit2
b2lkIEVkaXRvcjo6Y29tcHV0ZUFuZFNldFR5cGluZ1N0eWxlKFN0eWxlUHJvcGVydHlTZXQqIHN0
eWxlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCiB7Ci0gICAgaWYgKCFzdHlsZSB8fCAhc3R5
bGUtPmxlbmd0aCgpKSB7CisgICAgaWYgKCFzdHlsZSB8fCBzdHlsZS0+aXNFbXB0eSgpKSB7CiAg
ICAgICAgIG1fZnJhbWUtPnNlbGVjdGlvbigpLT5jbGVhclR5cGluZ1N0eWxlKCk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CkBAIC0yNTkwLDcgKzI1OTAsNyBAQCB2b2lkIEVkaXRvcjo6Y29tcHV0
ZUFuZFNldFR5cGluZ1N0eWxlKENTCiAgICAgUmVmUHRyPEVkaXRpbmdTdHlsZT4gdHlwaW5nU3R5
bGU7CiAgICAgaWYgKG1fZnJhbWUtPnNlbGVjdGlvbigpLT50eXBpbmdTdHlsZSgpKSB7CiAgICAg
ICAgIHR5cGluZ1N0eWxlID0gbV9mcmFtZS0+c2VsZWN0aW9uKCktPnR5cGluZ1N0eWxlKCktPmNv
cHkoKTsKLSAgICAgICAgdHlwaW5nU3R5bGUtPm92ZXJyaWRlV2l0aFN0eWxlKHN0eWxlLT5tYWtl
TXV0YWJsZSgpLmdldCgpKTsKKyAgICAgICAgdHlwaW5nU3R5bGUtPm92ZXJyaWRlV2l0aFN0eWxl
KHN0eWxlKTsKICAgICB9IGVsc2UKICAgICAgICAgdHlwaW5nU3R5bGUgPSBFZGl0aW5nU3R5bGU6
OmNyZWF0ZShzdHlsZSk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAkocmV2aXNpb24g
MTA4MzcxKQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAkod29ya2luZyBjb3B5
KQpAQCAtNDYsNyArNDYsNiBAQCB0eXBlZGVmIGludCBOU1dyaXRpbmdEaXJlY3Rpb247CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgQ1NTU3R5bGVEZWNsYXJhdGlvbjsKIGNsYXNzIENs
aXBib2FyZDsKIGNsYXNzIENvbXBvc2l0ZUVkaXRDb21tYW5kOwogY2xhc3MgRGVsZXRlQnV0dG9u
Q29udHJvbGxlcjsKQEAgLTYzLDYgKzYyLDcgQEAgY2xhc3MgU2ltcGxlRm9udERhdGE7CiBjbGFz
cyBTcGVsbENoZWNrZXI7CiBjbGFzcyBTcGVsbENoZWNrUmVxdWVzdDsKIGNsYXNzIFNwZWxsaW5n
Q29ycmVjdGlvbkNvbnRyb2xsZXI7CitjbGFzcyBTdHlsZVByb3BlcnR5U2V0OwogY2xhc3MgVGV4
dDsKIGNsYXNzIFRleHRDaGVja2VyQ2xpZW50OwogY2xhc3MgVGV4dEV2ZW50OwpAQCAtMTMwLDcg
KzEzMCw3IEBAIHB1YmxpYzoKICAgICBib29sIHNob3VsZEluc2VydFRleHQoY29uc3QgU3RyaW5n
JiwgUmFuZ2UqLCBFZGl0b3JJbnNlcnRBY3Rpb24pIGNvbnN0OwogICAgIGJvb2wgc2hvdWxkU2hv
d0RlbGV0ZUludGVyZmFjZShIVE1MRWxlbWVudCopIGNvbnN0OwogICAgIGJvb2wgc2hvdWxkRGVs
ZXRlUmFuZ2UoUmFuZ2UqKSBjb25zdDsKLSAgICBib29sIHNob3VsZEFwcGx5U3R5bGUoQ1NTU3R5
bGVEZWNsYXJhdGlvbiosIFJhbmdlKik7CisgICAgYm9vbCBzaG91bGRBcHBseVN0eWxlKFN0eWxl
UHJvcGVydHlTZXQqLCBSYW5nZSopOwogICAgIAogICAgIHZvaWQgcmVzcG9uZFRvQ2hhbmdlZFNl
bGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBvbGRTZWxlY3Rpb24pOwogICAgIHZvaWQg
cmVzcG9uZFRvQ2hhbmdlZENvbnRlbnRzKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIGVuZGluZ1Nl
bGVjdGlvbik7CkBAIC0xNjEsMTAgKzE2MSwxMCBAQCBwdWJsaWM6CiAgICAgTm9kZSogcmVtb3Zl
ZEFuY2hvcigpIGNvbnN0IHsgcmV0dXJuIG1fcmVtb3ZlZEFuY2hvci5nZXQoKTsgfQogICAgIHZv
aWQgc2V0UmVtb3ZlZEFuY2hvcihQYXNzUmVmUHRyPE5vZGU+IG4pIHsgbV9yZW1vdmVkQW5jaG9y
ID0gbjsgfQogCi0gICAgdm9pZCBhcHBseVN0eWxlKENTU1N0eWxlRGVjbGFyYXRpb24qLCBFZGl0
QWN0aW9uID0gRWRpdEFjdGlvblVuc3BlY2lmaWVkKTsKLSAgICB2b2lkIGFwcGx5UGFyYWdyYXBo
U3R5bGUoQ1NTU3R5bGVEZWNsYXJhdGlvbiosIEVkaXRBY3Rpb24gPSBFZGl0QWN0aW9uVW5zcGVj
aWZpZWQpOwotICAgIHZvaWQgYXBwbHlTdHlsZVRvU2VsZWN0aW9uKENTU1N0eWxlRGVjbGFyYXRp
b24qLCBFZGl0QWN0aW9uKTsKLSAgICB2b2lkIGFwcGx5UGFyYWdyYXBoU3R5bGVUb1NlbGVjdGlv
bihDU1NTdHlsZURlY2xhcmF0aW9uKiwgRWRpdEFjdGlvbik7CisgICAgdm9pZCBhcHBseVN0eWxl
KFN0eWxlUHJvcGVydHlTZXQqLCBFZGl0QWN0aW9uID0gRWRpdEFjdGlvblVuc3BlY2lmaWVkKTsK
KyAgICB2b2lkIGFwcGx5UGFyYWdyYXBoU3R5bGUoU3R5bGVQcm9wZXJ0eVNldCosIEVkaXRBY3Rp
b24gPSBFZGl0QWN0aW9uVW5zcGVjaWZpZWQpOworICAgIHZvaWQgYXBwbHlTdHlsZVRvU2VsZWN0
aW9uKFN0eWxlUHJvcGVydHlTZXQqLCBFZGl0QWN0aW9uKTsKKyAgICB2b2lkIGFwcGx5UGFyYWdy
YXBoU3R5bGVUb1NlbGVjdGlvbihTdHlsZVByb3BlcnR5U2V0KiwgRWRpdEFjdGlvbik7CiAKICAg
ICB2b2lkIGFwcGxpZWRFZGl0aW5nKFBhc3NSZWZQdHI8Q29tcG9zaXRlRWRpdENvbW1hbmQ+KTsK
ICAgICB2b2lkIHVuYXBwbGllZEVkaXRpbmcoUGFzc1JlZlB0cjxFZGl0Q29tbWFuZENvbXBvc2l0
aW9uPik7CkBAIC0zNDUsNyArMzQ1LDcgQEAgcHVibGljOgogICAgIGNvbnN0IFZpc2libGVTZWxl
Y3Rpb24mIG1hcmsoKSBjb25zdDsgLy8gTWFyaywgdG8gYmUgdXNlZCBhcyBlbWFjcyB1c2VzIGl0
LgogICAgIHZvaWQgc2V0TWFyayhjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7CiAKLSAgICB2b2lk
IGNvbXB1dGVBbmRTZXRUeXBpbmdTdHlsZShDU1NTdHlsZURlY2xhcmF0aW9uKiAsIEVkaXRBY3Rp
b24gPSBFZGl0QWN0aW9uVW5zcGVjaWZpZWQpOworICAgIHZvaWQgY29tcHV0ZUFuZFNldFR5cGlu
Z1N0eWxlKFN0eWxlUHJvcGVydHlTZXQqICwgRWRpdEFjdGlvbiA9IEVkaXRBY3Rpb25VbnNwZWNp
ZmllZCk7CiAgICAgdm9pZCBhcHBseUVkaXRpbmdTdHlsZVRvQm9keUVsZW1lbnQoKSBjb25zdDsK
ICAgICB2b2lkIGFwcGx5RWRpdGluZ1N0eWxlVG9FbGVtZW50KEVsZW1lbnQqKSBjb25zdDsKIApJ
bmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCShyZXZpc2lvbiAx
MDgzNzEpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMDMsMTEgKzEwMywxMSBAQCBzdGF0aWMgYm9vbCBhcHBseUNvbW1hbmRU
b0ZyYW1lKEZyYW1lKiBmCiAgICAgLy8gRklYTUU6IFdlIGRvbid0IGNhbGwgc2hvdWxkQXBwbHlT
dHlsZSB3aGVuIHRoZSBzb3VyY2UgaXMgRE9NOyBpcyB0aGVyZSBhIGdvb2QgcmVhc29uIGZvciB0
aGF0PwogICAgIHN3aXRjaCAoc291cmNlKSB7CiAgICAgY2FzZSBDb21tYW5kRnJvbU1lbnVPcktl
eUJpbmRpbmc6Ci0gICAgICAgIGZyYW1lLT5lZGl0b3IoKS0+YXBwbHlTdHlsZVRvU2VsZWN0aW9u
KHN0eWxlLT5lbnN1cmVDU1NTdHlsZURlY2xhcmF0aW9uKCksIGFjdGlvbik7CisgICAgICAgIGZy
YW1lLT5lZGl0b3IoKS0+YXBwbHlTdHlsZVRvU2VsZWN0aW9uKHN0eWxlLCBhY3Rpb24pOwogICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICBjYXNlIENvbW1hbmRGcm9tRE9NOgogICAgIGNhc2UgQ29t
bWFuZEZyb21ET01XaXRoVXNlckludGVyZmFjZToKLSAgICAgICAgZnJhbWUtPmVkaXRvcigpLT5h
cHBseVN0eWxlKHN0eWxlLT5lbnN1cmVDU1NTdHlsZURlY2xhcmF0aW9uKCkpOworICAgICAgICBm
cmFtZS0+ZWRpdG9yKCktPmFwcGx5U3R5bGUoc3R5bGUpOwogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICB9CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0xNzksMTEgKzE3OSwxMSBAQCBz
dGF0aWMgYm9vbCBleGVjdXRlQXBwbHlQYXJhZ3JhcGhTdHlsZShGCiAgICAgLy8gRklYTUU6IFdl
IGRvbid0IGNhbGwgc2hvdWxkQXBwbHlTdHlsZSB3aGVuIHRoZSBzb3VyY2UgaXMgRE9NOyBpcyB0
aGVyZSBhIGdvb2QgcmVhc29uIGZvciB0aGF0PwogICAgIHN3aXRjaCAoc291cmNlKSB7CiAgICAg
Y2FzZSBDb21tYW5kRnJvbU1lbnVPcktleUJpbmRpbmc6Ci0gICAgICAgIGZyYW1lLT5lZGl0b3Io
KS0+YXBwbHlQYXJhZ3JhcGhTdHlsZVRvU2VsZWN0aW9uKHN0eWxlLT5lbnN1cmVDU1NTdHlsZURl
Y2xhcmF0aW9uKCksIGFjdGlvbik7CisgICAgICAgIGZyYW1lLT5lZGl0b3IoKS0+YXBwbHlQYXJh
Z3JhcGhTdHlsZVRvU2VsZWN0aW9uKHN0eWxlLmdldCgpLCBhY3Rpb24pOwogICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICBjYXNlIENvbW1hbmRGcm9tRE9NOgogICAgIGNhc2UgQ29tbWFuZEZyb21E
T01XaXRoVXNlckludGVyZmFjZToKLSAgICAgICAgZnJhbWUtPmVkaXRvcigpLT5hcHBseVBhcmFn
cmFwaFN0eWxlKHN0eWxlLT5lbnN1cmVDU1NTdHlsZURlY2xhcmF0aW9uKCkpOworICAgICAgICBm
cmFtZS0+ZWRpdG9yKCktPmFwcGx5UGFyYWdyYXBoU3R5bGUoc3R5bGUuZ2V0KCkpOwogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC01ODUs
NyArNTg1LDcgQEAgc3RhdGljIGJvb2wgZXhlY3V0ZU1ha2VUZXh0V3JpdGluZ0RpcmVjdAogICAg
IFJlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiBzdHlsZSA9IFN0eWxlUHJvcGVydHlTZXQ6OmNyZWF0
ZSgpOwogICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eVVuaWNvZGVCaWRpLCBDU1NW
YWx1ZUVtYmVkKTsKICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlEaXJlY3Rpb24s
IENTU1ZhbHVlTHRyKTsKLSAgICBmcmFtZS0+ZWRpdG9yKCktPmFwcGx5U3R5bGUoc3R5bGUtPmVu
c3VyZUNTU1N0eWxlRGVjbGFyYXRpb24oKSwgRWRpdEFjdGlvblNldFdyaXRpbmdEaXJlY3Rpb24p
OworICAgIGZyYW1lLT5lZGl0b3IoKS0+YXBwbHlTdHlsZShzdHlsZS5nZXQoKSwgRWRpdEFjdGlv
blNldFdyaXRpbmdEaXJlY3Rpb24pOwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC01OTMsNyAr
NTkzLDcgQEAgc3RhdGljIGJvb2wgZXhlY3V0ZU1ha2VUZXh0V3JpdGluZ0RpcmVjdAogewogICAg
IFJlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiBzdHlsZSA9IFN0eWxlUHJvcGVydHlTZXQ6OmNyZWF0
ZSgpOwogICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eVVuaWNvZGVCaWRpLCBDU1NW
YWx1ZU5vcm1hbCk7Ci0gICAgZnJhbWUtPmVkaXRvcigpLT5hcHBseVN0eWxlKHN0eWxlLT5lbnN1
cmVDU1NTdHlsZURlY2xhcmF0aW9uKCksIEVkaXRBY3Rpb25TZXRXcml0aW5nRGlyZWN0aW9uKTsK
KyAgICBmcmFtZS0+ZWRpdG9yKCktPmFwcGx5U3R5bGUoc3R5bGUuZ2V0KCksIEVkaXRBY3Rpb25T
ZXRXcml0aW5nRGlyZWN0aW9uKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNjAyLDcgKzYw
Miw3IEBAIHN0YXRpYyBib29sIGV4ZWN1dGVNYWtlVGV4dFdyaXRpbmdEaXJlY3QKICAgICBSZWZQ
dHI8U3R5bGVQcm9wZXJ0eVNldD4gc3R5bGUgPSBTdHlsZVByb3BlcnR5U2V0OjpjcmVhdGUoKTsK
ICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlVbmljb2RlQmlkaSwgQ1NTVmFsdWVF
bWJlZCk7CiAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5RGlyZWN0aW9uLCBDU1NW
YWx1ZVJ0bCk7Ci0gICAgZnJhbWUtPmVkaXRvcigpLT5hcHBseVN0eWxlKHN0eWxlLT5lbnN1cmVD
U1NTdHlsZURlY2xhcmF0aW9uKCksIEVkaXRBY3Rpb25TZXRXcml0aW5nRGlyZWN0aW9uKTsKKyAg
ICBmcmFtZS0+ZWRpdG9yKCktPmFwcGx5U3R5bGUoc3R5bGUuZ2V0KCksIEVkaXRBY3Rpb25TZXRX
cml0aW5nRGlyZWN0aW9uKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApJbmRleDogU291cmNlL1dl
YkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuaAkocmV2aXNpb24gMTA4MzcxKQorKysgU291cmNlL1dlYkNv
cmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCSh3b3JraW5nIGNvcHkpCkBAIC00NjEsNyArNDYxLDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRJbnNlcnRUZXh0KGNvbnN0IFN0cmlu
ZyYsIFJhbmdlKiwgRWRpdG9ySW5zZXJ0QWN0aW9uKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZp
cnR1YWwgYm9vbCBzaG91bGRDaGFuZ2VTZWxlY3RlZFJhbmdlKFJhbmdlKiwgUmFuZ2UqLCBFQWZm
aW5pdHksIGJvb2wpIHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxk
QXBwbHlTdHlsZShDU1NTdHlsZURlY2xhcmF0aW9uKiwgUmFuZ2UqKSB7IHJldHVybiBmYWxzZTsg
fQorICAgIHZpcnR1YWwgYm9vbCBzaG91bGRBcHBseVN0eWxlKFN0eWxlUHJvcGVydHlTZXQqLCBS
YW5nZSopIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIHNob3VsZE1vdmVSYW5n
ZUFmdGVyRGVsZXRlKFJhbmdlKiwgUmFuZ2UqKSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgdmly
dHVhbCB2b2lkIGRpZEJlZ2luRWRpdGluZygpIHsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFn
ZS9EcmFnQ29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9E
cmFnQ29udHJvbGxlci5jcHAJKHJldmlzaW9uIDEwODM3MSkKKysrIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvRHJhZ0NvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NDksMTAgKzQ0OSwxMCBA
QCBib29sIERyYWdDb250cm9sbGVyOjpjb25jbHVkZUVkaXREcmFnKERyCiAgICAgICAgIFJlZlB0
cjxSYW5nZT4gaW5uZXJSYW5nZSA9IGlubmVyRnJhbWUtPnNlbGVjdGlvbigpLT50b05vcm1hbGl6
ZWRSYW5nZSgpOwogICAgICAgICBSZWZQdHI8U3R5bGVQcm9wZXJ0eVNldD4gc3R5bGUgPSBTdHls
ZVByb3BlcnR5U2V0OjpjcmVhdGUoKTsKICAgICAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1By
b3BlcnR5Q29sb3IsIGNvbG9yLnNlcmlhbGl6ZWQoKSwgZmFsc2UpOwotICAgICAgICBpZiAoIWlu
bmVyRnJhbWUtPmVkaXRvcigpLT5zaG91bGRBcHBseVN0eWxlKHN0eWxlLT5lbnN1cmVDU1NTdHls
ZURlY2xhcmF0aW9uKCksIGlubmVyUmFuZ2UuZ2V0KCkpKQorICAgICAgICBpZiAoIWlubmVyRnJh
bWUtPmVkaXRvcigpLT5zaG91bGRBcHBseVN0eWxlKHN0eWxlLmdldCgpLCBpbm5lclJhbmdlLmdl
dCgpKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgbV9jbGllbnQtPndpbGxQ
ZXJmb3JtRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uKERyYWdEZXN0aW5hdGlvbkFjdGlvbkVkaXQsIGRy
YWdEYXRhKTsKLSAgICAgICAgaW5uZXJGcmFtZS0+ZWRpdG9yKCktPmFwcGx5U3R5bGUoc3R5bGUt
PmVuc3VyZUNTU1N0eWxlRGVjbGFyYXRpb24oKSwgRWRpdEFjdGlvblNldENvbG9yKTsKKyAgICAg
ICAgaW5uZXJGcmFtZS0+ZWRpdG9yKCktPmFwcGx5U3R5bGUoc3R5bGUuZ2V0KCksIEVkaXRBY3Rp
b25TZXRDb2xvcik7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApJbmRleDogU291cmNl
L1dlYkNvcmUvcGFnZS9FZGl0b3JDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wYWdlL0VkaXRvckNsaWVudC5oCShyZXZpc2lvbiAxMDgzNzEpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wYWdlL0VkaXRvckNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00NSw3ICs0NSw2IEBAIE9C
SkNfQ0xBU1MgTlNVUkw7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEFyY2hpdmVSZXNv
dXJjZTsKLWNsYXNzIENTU1N0eWxlRGVjbGFyYXRpb247CiBjbGFzcyBEb2N1bWVudEZyYWdtZW50
OwogY2xhc3MgRWRpdG9yOwogY2xhc3MgRWxlbWVudDsKQEAgLTU1LDYgKzU0LDcgQEAgY2xhc3Mg
S2V5Ym9hcmRFdmVudDsKIGNsYXNzIE5vZGU7CiBjbGFzcyBSYW5nZTsKIGNsYXNzIFNwZWxsQ2hl
Y2tlcjsKK2NsYXNzIFN0eWxlUHJvcGVydHlTZXQ7CiBjbGFzcyBUZXh0Q2hlY2tlckNsaWVudDsK
IGNsYXNzIFZpc2libGVTZWxlY3Rpb247CiBjbGFzcyBWaXNpYmxlUG9zaXRpb247CkBAIC04Miw3
ICs4Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSW5zZXJ0VGV4dChjb25z
dCBTdHJpbmcmLCBSYW5nZSosIEVkaXRvckluc2VydEFjdGlvbikgPSAwOwogICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRDaGFuZ2VTZWxlY3RlZFJhbmdlKFJhbmdlKiBmcm9tUmFuZ2UsIFJhbmdlKiB0
b1JhbmdlLCBFQWZmaW5pdHksIGJvb2wgc3RpbGxTZWxlY3RpbmcpID0gMDsKICAgICAKLSAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkQXBwbHlTdHlsZShDU1NTdHlsZURlY2xhcmF0aW9uKiwgUmFuZ2Uq
KSA9IDA7CisgICAgdmlydHVhbCBib29sIHNob3VsZEFwcGx5U3R5bGUoU3R5bGVQcm9wZXJ0eVNl
dCosIFJhbmdlKikgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRNb3ZlUmFuZ2VBZnRlckRl
bGV0ZShSYW5nZSosIFJhbmdlKikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIGRpZEJlZ2luRWRp
dGluZygpID0gMDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwODM3MSkKKysrIFNvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEyLTAy
LTIxICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFJlbW92ZSB0
aGUgcmVtYWluaW5nIHVzZXMgb2YgQ1NTU3R5bGVEZWNsYXJhdGlvbiBpbiBFZGl0b3IKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4OTM5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkVk
aXRvckNsaWVudDo6c2hvdWxkQXBwbHlTdHlsZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaDoKKyAgICAgICAgKFdlYkVkaXRvckNsaWVudCk6
CisKIDIwMTItMDItMjEgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBB
dHRlbXB0IHRvIGZpeCB0aGUgU25vdyBMZW9wYXJkIGJ1aWxkLgpJbmRleDogU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9y
Q2xpZW50LmNwcAkocmV2aXNpb24gMTA4MzcxKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
NDgsOSArMTQ4LDkgQEAgYm9vbCBXZWJFZGl0b3JDbGllbnQ6OnNob3VsZENoYW5nZVNlbGVjdAog
ICAgIHJldHVybiByZXN1bHQ7CiB9CiAgICAgCi1ib29sIFdlYkVkaXRvckNsaWVudDo6c2hvdWxk
QXBwbHlTdHlsZShDU1NTdHlsZURlY2xhcmF0aW9uKiBzdHlsZSwgUmFuZ2UqIHJhbmdlKQorYm9v
bCBXZWJFZGl0b3JDbGllbnQ6OnNob3VsZEFwcGx5U3R5bGUoU3R5bGVQcm9wZXJ0eVNldCogc3R5
bGUsIFJhbmdlKiByYW5nZSkKIHsKLSAgICBib29sIHJlc3VsdCA9IG1fcGFnZS0+aW5qZWN0ZWRC
dW5kbGVFZGl0b3JDbGllbnQoKS5zaG91bGRBcHBseVN0eWxlKG1fcGFnZSwgc3R5bGUsIHJhbmdl
KTsKKyAgICBib29sIHJlc3VsdCA9IG1fcGFnZS0+aW5qZWN0ZWRCdW5kbGVFZGl0b3JDbGllbnQo
KS5zaG91bGRBcHBseVN0eWxlKG1fcGFnZSwgc3R5bGUtPmVuc3VyZUNTU1N0eWxlRGVjbGFyYXRp
b24oKSwgcmFuZ2UpOwogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIHJlc3VsdDsK
IH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAkocmV2aXNpb24gMTA4MzcxKQorKysgU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAkod29y
a2luZyBjb3B5KQpAQCAtNTksNyArNTksNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBz
aG91bGRJbnNlcnRUZXh0KGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6OlJhbmdlKiwgV2ViQ29yZTo6
RWRpdG9ySW5zZXJ0QWN0aW9uKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQ2hh
bmdlU2VsZWN0ZWRSYW5nZShXZWJDb3JlOjpSYW5nZSogZnJvbVJhbmdlLCBXZWJDb3JlOjpSYW5n
ZSogdG9SYW5nZSwgV2ViQ29yZTo6RUFmZmluaXR5LCBib29sIHN0aWxsU2VsZWN0aW5nKSBPVkVS
UklERTsKICAgICAKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQXBwbHlTdHlsZShXZWJDb3JlOjpD
U1NTdHlsZURlY2xhcmF0aW9uKiwgV2ViQ29yZTo6UmFuZ2UqKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIGJvb2wgc2hvdWxkQXBwbHlTdHlsZShXZWJDb3JlOjpTdHlsZVByb3BlcnR5U2V0KiwgV2Vi
Q29yZTo6UmFuZ2UqKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkTW92ZVJhbmdl
QWZ0ZXJEZWxldGUoV2ViQ29yZTo6UmFuZ2UqLCBXZWJDb3JlOjpSYW5nZSopIE9WRVJSSURFOwog
CiAgICAgdmlydHVhbCB2b2lkIGRpZEJlZ2luRWRpdGluZygpIE9WRVJSSURFOwpJbmRleDogU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMDgzNzEpCisrKyBTb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTItMDItMjEgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
UmVtb3ZlIHRoZSByZW1haW5pbmcgdXNlcyBvZiBDU1NTdHlsZURlY2xhcmF0aW9uIGluIEVkaXRv
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg5MzkK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RWRpdG9yQ2xpZW50QmxhY2tCZXJyeTo6c2hvdWxkQXBwbHlTdHlsZSk6CisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5oOgorICAgICAgICAoRWRpdG9yQ2xp
ZW50QmxhY2tCZXJyeSk6CisKIDIwMTItMDItMjAgIEFudG9uaW8gR29tZXMgIDxhZ29tZXNAcmlt
LmNvbT4KIAogICAgICAgICBBbGwgZGVmYXVsdCB2aWRlby9hdWRpbyBjb250cm9sIGVsZW1lbnRz
IHNob3VsZCBiZSByZWN0LWhpdCB0ZXN0YWJsZSAoUGFydCBJSSkKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRWRp
dG9yQ2xpZW50QmxhY2tCZXJyeS5jcHAJKHJldmlzaW9uIDEwODM3MSkKKysrIFNvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjAzLDcgKzIwMyw3IEBAIGJvb2wgRWRpdG9yQ2xpZW50QmxhY2tC
ZXJyeTo6c2hvdWxkQ2hhbmcKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBFZGl0b3JDbGll
bnRCbGFja0JlcnJ5OjpzaG91bGRBcHBseVN0eWxlKENTU1N0eWxlRGVjbGFyYXRpb24qLCBSYW5n
ZSopCitib29sIEVkaXRvckNsaWVudEJsYWNrQmVycnk6OnNob3VsZEFwcGx5U3R5bGUoU3R5bGVQ
cm9wZXJ0eVNldCosIFJhbmdlKikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVy
biB0cnVlOwpJbmRleDogU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Vk
aXRvckNsaWVudEJsYWNrQmVycnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5oCShyZXZpc2lvbiAx
MDgzNzEpCisrKyBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRWRpdG9y
Q2xpZW50QmxhY2tCZXJyeS5oCSh3b3JraW5nIGNvcHkpCkBAIC01MSw3ICs1MSw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSW5zZXJ0Tm9kZShOb2RlKiwgUmFuZ2UqLCBFZGl0
b3JJbnNlcnRBY3Rpb24pOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRJbnNlcnRUZXh0KGNvbnN0
IFN0cmluZyYsIFJhbmdlKiwgRWRpdG9ySW5zZXJ0QWN0aW9uKTsKICAgICB2aXJ0dWFsIGJvb2wg
c2hvdWxkQ2hhbmdlU2VsZWN0ZWRSYW5nZShSYW5nZSosIFJhbmdlKiwgRUFmZmluaXR5LCBib29s
KTsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQXBwbHlTdHlsZShDU1NTdHlsZURlY2xhcmF0aW9u
KiwgUmFuZ2UqKTsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQXBwbHlTdHlsZShTdHlsZVByb3Bl
cnR5U2V0KiwgUmFuZ2UqKTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkTW92ZVJhbmdlQWZ0ZXJE
ZWxldGUoUmFuZ2UqLCBSYW5nZSopOwogICAgIHZpcnR1YWwgdm9pZCBkaWRCZWdpbkVkaXRpbmco
KTsKICAgICB2aXJ0dWFsIHZvaWQgcmVzcG9uZFRvQ2hhbmdlZENvbnRlbnRzKCk7CkluZGV4OiBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gMTA4MzcxKQorKysgU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAx
Mi0wMi0yMSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBSZW1v
dmUgdGhlIHJlbWFpbmluZyB1c2VzIG9mIENTU1N0eWxlRGVjbGFyYXRpb24gaW4gRWRpdG9yCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODkzOQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3JjL0VkaXRv
ckNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRJbXBsOjpzaG91
bGRBcHBseVN0eWxlKToKKyAgICAgICAgKiBzcmMvRWRpdG9yQ2xpZW50SW1wbC5oOgorICAgICAg
ICAoRWRpdG9yQ2xpZW50SW1wbCk6CisKIDIwMTItMDItMjEgIFl1cnkgU2VtaWtoYXRza3kgIDx5
dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW1Y4XSBXZWIgSW5zcGVjdG9yOiBzZXQgYnJl
YWtwb2ludC9wYXVzZSBkb2Vzbid0IHdvcmsgd2hlbiB3b3JrZXIgaXMgaW4gYSB0aWdodCBsb29w
CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBs
LmNwcAkocmV2aXNpb24gMTA4MzcxKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRWRp
dG9yQ2xpZW50SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzOCwxMyArMjM4LDExIEBAIGJv
b2wgRWRpdG9yQ2xpZW50SW1wbDo6c2hvdWxkQ2hhbmdlU2VsZWMKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAotYm9vbCBFZGl0b3JDbGllbnRJbXBsOjpzaG91bGRBcHBseVN0eWxlKENTU1N0eWxlRGVj
bGFyYXRpb24qIHN0eWxlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFJhbmdlKiByYW5nZSkKK2Jvb2wgRWRpdG9yQ2xpZW50SW1wbDo6c2hvdWxkQXBwbHlTdHlsZShT
dHlsZVByb3BlcnR5U2V0KiBzdHlsZSwgUmFuZ2UqIHJhbmdlKQogewogICAgIGlmIChtX3dlYlZp
ZXctPmNsaWVudCgpKSB7CiAgICAgICAgIC8vIEZJWE1FOiBQYXNzIGEgcmVmZXJlbmNlIHRvIHRo
ZSBDU1NTdHlsZURlY2xhcmF0aW9uIHNvbWVob3cuCi0gICAgICAgIHJldHVybiBtX3dlYlZpZXct
PmNsaWVudCgpLT5zaG91bGRBcHBseVN0eWxlKFdlYlN0cmluZygpLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJSYW5nZShyYW5nZSkpOwor
ICAgICAgICByZXR1cm4gbV93ZWJWaWV3LT5jbGllbnQoKS0+c2hvdWxkQXBwbHlTdHlsZShXZWJT
dHJpbmcoKSwgV2ViUmFuZ2UocmFuZ2UpKTsKICAgICB9CiAgICAgcmV0dXJuIHRydWU7CiB9Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5oCShy
ZXZpc2lvbiAxMDgzNzEpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGll
bnRJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTY3LDcgKzY3LDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgYm9vbCBzaG91bGREZWxldGVSYW5nZShXZWJDb3JlOjpSYW5nZSopOwogICAgIHZpcnR1
YWwgYm9vbCBzaG91bGRDaGFuZ2VTZWxlY3RlZFJhbmdlKFdlYkNvcmU6OlJhbmdlKiBmcm9tUmFu
Z2UsIFdlYkNvcmU6OlJhbmdlKiB0b1JhbmdlLAogICAgICAgICBXZWJDb3JlOjpFQWZmaW5pdHks
IGJvb2wgc3RpbGxTZWxlY3RpbmcpOwotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRBcHBseVN0eWxl
KFdlYkNvcmU6OkNTU1N0eWxlRGVjbGFyYXRpb24qLCBXZWJDb3JlOjpSYW5nZSopOworICAgIHZp
cnR1YWwgYm9vbCBzaG91bGRBcHBseVN0eWxlKFdlYkNvcmU6OlN0eWxlUHJvcGVydHlTZXQqLCBX
ZWJDb3JlOjpSYW5nZSopOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRNb3ZlUmFuZ2VBZnRlckRl
bGV0ZShXZWJDb3JlOjpSYW5nZSosIFdlYkNvcmU6OlJhbmdlKik7CiAgICAgdmlydHVhbCB2b2lk
IGRpZEJlZ2luRWRpdGluZygpOwogICAgIHZpcnR1YWwgdm9pZCByZXNwb25kVG9DaGFuZ2VkQ29u
dGVudHMoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwODM3MSkKKysrIFNvdXJj
ZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisy
MDEyLTAyLTIxICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFJl
bW92ZSB0aGUgcmVtYWluaW5nIHVzZXMgb2YgQ1NTU3R5bGVEZWNsYXJhdGlvbiBpbiBFZGl0b3IK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4OTM5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xp
ZW50RWZsOjpzaG91bGRBcHBseVN0eWxlKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0
b3JDbGllbnRFZmwuaDoKKyAgICAgICAgKEVkaXRvckNsaWVudEVmbCk6CisKIDIwMTItMDItMjAg
IEtpaG9uZyBLd29uICA8a2lob25nLmt3b25Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgQWRkIGEg
bmV3IEFQSSBmb3IgdGhlIFZpYnJhdGlvbiBBUEkoVzNDKS4KSW5kZXg6IFNvdXJjZS9XZWJLaXQv
ZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmNwcAkocmV2aXNp
b24gMTA4MzcxKQorKysgU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xp
ZW50RWZsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAzLDcgKzEwMyw3IEBAIGJvb2wgRWRpdG9y
Q2xpZW50RWZsOjpzaG91bGRDaGFuZ2VTZWxlY3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9v
bCBFZGl0b3JDbGllbnRFZmw6OnNob3VsZEFwcGx5U3R5bGUoQ1NTU3R5bGVEZWNsYXJhdGlvbios
IFJhbmdlKikKK2Jvb2wgRWRpdG9yQ2xpZW50RWZsOjpzaG91bGRBcHBseVN0eWxlKFN0eWxlUHJv
cGVydHlTZXQqLCBSYW5nZSopCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4g
dHJ1ZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVu
dEVmbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Vk
aXRvckNsaWVudEVmbC5oCShyZXZpc2lvbiAxMDgzNzEpCisrKyBTb3VyY2UvV2ViS2l0L2VmbC9X
ZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuaAkod29ya2luZyBjb3B5KQpAQCAtNzMsNyAr
NzMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3VsZEluc2VydFRleHQoY29uc3Qg
U3RyaW5nJiwgUmFuZ2UqLCBFZGl0b3JJbnNlcnRBY3Rpb24pOwogICAgIHZpcnR1YWwgYm9vbCBz
aG91bGRDaGFuZ2VTZWxlY3RlZFJhbmdlKFJhbmdlKiBmcm9tUmFuZ2UsIFJhbmdlKiB0b1Jhbmdl
LCBFQWZmaW5pdHksIGJvb2wgc3RpbGxTZWxlY3RpbmcpOwogCi0gICAgdmlydHVhbCBib29sIHNo
b3VsZEFwcGx5U3R5bGUoQ1NTU3R5bGVEZWNsYXJhdGlvbiosIFJhbmdlKik7CisgICAgdmlydHVh
bCBib29sIHNob3VsZEFwcGx5U3R5bGUoU3R5bGVQcm9wZXJ0eVNldCosIFJhbmdlKik7CiAKICAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkTW92ZVJhbmdlQWZ0ZXJEZWxldGUoUmFuZ2UqLCBSYW5nZSop
OwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMDgzNzEpCisrKyBTb3VyY2UvV2Vi
S2l0L2d0ay9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0w
Mi0yMSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBSZW1vdmUg
dGhlIHJlbWFpbmluZyB1c2VzIG9mIENTU1N0eWxlRGVjbGFyYXRpb24gaW4gRWRpdG9yCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODkzOQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvRWRpdG9yQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50Ojpz
aG91bGRBcHBseVN0eWxlKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRH
dGsuaDoKKyAgICAgICAgKEVkaXRvckNsaWVudCk6CisKIDIwMTItMDItMjEgIFBoaWxpcHBlIE5v
cm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIEZpeCBvbmUgbW9yZSBHVEsr
IHVuaXQgdGVzdCBhZnRlciByMTA4Mjc4LgpJbmRleDogU291cmNlL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwCShyZXZpc2lvbiAxMDgzNzEp
CisrKyBTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yMzUsMTAgKzIzNSwxMCBAQCBib29sIEVkaXRvckNsaWVudDo6
c2hvdWxkQ2hhbmdlU2VsZWN0ZWRSCiAgICAgcmV0dXJuIGFjY2VwdDsKIH0KIAotYm9vbCBFZGl0
b3JDbGllbnQ6OnNob3VsZEFwcGx5U3R5bGUoV2ViQ29yZTo6Q1NTU3R5bGVEZWNsYXJhdGlvbiog
ZGVjbGFyYXRpb24sIFdlYkNvcmU6OlJhbmdlKiByYW5nZSkKK2Jvb2wgRWRpdG9yQ2xpZW50Ojpz
aG91bGRBcHBseVN0eWxlKFdlYkNvcmU6OlN0eWxlUHJvcGVydHlTZXQqIHNldCwgV2ViQ29yZTo6
UmFuZ2UqIHJhbmdlKQogewogICAgIGdib29sZWFuIGFjY2VwdCA9IFRSVUU7Ci0gICAgR1JlZlB0
cjxXZWJLaXRET01DU1NTdHlsZURlY2xhcmF0aW9uPiBraXREZWNsYXJhdGlvbihraXQoZGVjbGFy
YXRpb24pKTsKKyAgICBHUmVmUHRyPFdlYktpdERPTUNTU1N0eWxlRGVjbGFyYXRpb24+IGtpdERl
Y2xhcmF0aW9uKGtpdChzZXQtPmVuc3VyZUNTU1N0eWxlRGVjbGFyYXRpb24oKSkpOwogICAgIEdS
ZWZQdHI8V2ViS2l0RE9NUmFuZ2U+IGtpdFJhbmdlKGFkb3B0R1JlZihraXQocmFuZ2UpKSk7CiAg
ICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1fd2ViVmlldywgInNob3VsZC1hcHBseS1zdHlsZSIs
IGtpdERlY2xhcmF0aW9uLmdldCgpLCBraXRSYW5nZS5nZXQoKSwgJmFjY2VwdCk7CiAgICAgcmV0
dXJuIGFjY2VwdDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudEd0ay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBw
b3J0L0VkaXRvckNsaWVudEd0ay5oCShyZXZpc2lvbiAxMDgzNzEpCisrKyBTb3VyY2UvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaAkod29ya2luZyBjb3B5KQpAQCAt
OTQsNyArOTQsNyBAQCBjbGFzcyBFZGl0b3JDbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6RWRpCiAg
ICAgICAgIHZpcnR1YWwgYm9vbCBzaG91bGRJbnNlcnRUZXh0KGNvbnN0IFdURjo6U3RyaW5nJiwg
V2ViQ29yZTo6UmFuZ2UqLCBXZWJDb3JlOjpFZGl0b3JJbnNlcnRBY3Rpb24pOwogICAgICAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkQ2hhbmdlU2VsZWN0ZWRSYW5nZShXZWJDb3JlOjpSYW5nZSogZnJv
bVJhbmdlLCBXZWJDb3JlOjpSYW5nZSogdG9SYW5nZSwgV2ViQ29yZTo6RUFmZmluaXR5LCBib29s
IHN0aWxsU2VsZWN0aW5nKTsKIAotICAgICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQXBwbHlTdHls
ZShXZWJDb3JlOjpDU1NTdHlsZURlY2xhcmF0aW9uKiwgV2ViQ29yZTo6UmFuZ2UqKTsKKyAgICAg
ICAgdmlydHVhbCBib29sIHNob3VsZEFwcGx5U3R5bGUoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0eVNl
dCosIFdlYkNvcmU6OlJhbmdlKik7CiAKICAgICAgICAgdmlydHVhbCBib29sIHNob3VsZE1vdmVS
YW5nZUFmdGVyRGVsZXRlKFdlYkNvcmU6OlJhbmdlKiwgV2ViQ29yZTo6UmFuZ2UqKTsKIApJbmRl
eDogU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvbWFjL0NoYW5nZUxvZwkocmV2aXNpb24gMTA4MzcxKQorKysgU291cmNlL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTItMDItMjEgIFJ5
b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlIHRoZSByZW1h
aW5pbmcgdXNlcyBvZiBDU1NTdHlsZURlY2xhcmF0aW9uIGluIEVkaXRvcgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg5MzkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5oOgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50KToKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW06CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6
OnNob3VsZEFwcGx5U3R5bGUpOgorICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWUubW06CisgICAg
ICAgICgtW1dlYkZyYW1lIF9zZXRUeXBpbmdTdHlsZTp3aXRoVW5kb0FjdGlvbjpdKToKKyAgICAg
ICAgKiBXZWJWaWV3L1dlYkhUTUxWaWV3Lm1tOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBfYXBw
bHlTdHlsZVRvU2VsZWN0aW9uOndpdGhVbmRvQWN0aW9uOl0pOgorICAgICAgICAoLVtXZWJIVE1M
VmlldyBfY2hhbmdlQ1NTQ29sb3JVc2luZ1NlbGVjdG9yOmluUmFuZ2U6XSk6CisgICAgICAgICog
V2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJWaWV3IGFwcGx5U3R5bGU6XSk6CisK
IDIwMTItMDItMjEgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBBdHRl
bXB0IHRvIGZpeCB0aGUgU25vdyBMZW9wYXJkIGJ1aWxkLgpJbmRleDogU291cmNlL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgJKHJldmlzaW9uIDEw
ODM3MSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC02MSw3ICs2MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkSW5zZXJ0VGV4dChjb25zdCBXVEY6OlN0cmluZyYsIFdlYkNvcmU6OlJhbmdl
KiwgV2ViQ29yZTo6RWRpdG9ySW5zZXJ0QWN0aW9uKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJv
b2wgc2hvdWxkQ2hhbmdlU2VsZWN0ZWRSYW5nZShXZWJDb3JlOjpSYW5nZSogZnJvbVJhbmdlLCBX
ZWJDb3JlOjpSYW5nZSogdG9SYW5nZSwgV2ViQ29yZTo6RUFmZmluaXR5LCBib29sIHN0aWxsU2Vs
ZWN0aW5nKSBPVkVSUklERTsKIAotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRBcHBseVN0eWxlKFdl
YkNvcmU6OkNTU1N0eWxlRGVjbGFyYXRpb24qLCBXZWJDb3JlOjpSYW5nZSopIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgYm9vbCBzaG91bGRBcHBseVN0eWxlKFdlYkNvcmU6OlN0eWxlUHJvcGVydHlT
ZXQqLCBXZWJDb3JlOjpSYW5nZSopIE9WRVJSSURFOwogICAgIAogICAgIHZpcnR1YWwgYm9vbCBz
aG91bGRNb3ZlUmFuZ2VBZnRlckRlbGV0ZShXZWJDb3JlOjpSYW5nZSosIFdlYkNvcmU6OlJhbmdl
KiByYW5nZVRvQmVSZXBsYWNlZCkgT1ZFUlJJREU7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0JKHJldmlzaW9uIDEw
ODM3MSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5tbQkod29ya2luZyBjb3B5KQpAQCAtMjQxLDEwICsyNDEsMTAgQEAgYm9vbCBXZWJFZGl0b3JD
bGllbnQ6OmlzU2VsZWN0VHJhaWxpbmdXaAogICAgIHJldHVybiBbbV93ZWJWaWV3IGlzU2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZF07CiB9CiAKLWJvb2wgV2ViRWRpdG9yQ2xpZW50Ojpz
aG91bGRBcHBseVN0eWxlKENTU1N0eWxlRGVjbGFyYXRpb24qIHN0eWxlLCBSYW5nZSogcmFuZ2Up
Citib29sIFdlYkVkaXRvckNsaWVudDo6c2hvdWxkQXBwbHlTdHlsZShTdHlsZVByb3BlcnR5U2V0
KiBzdHlsZSwgUmFuZ2UqIHJhbmdlKQogewogICAgIHJldHVybiBbW21fd2ViVmlldyBfZWRpdGlu
Z0RlbGVnYXRlRm9yd2FyZGVyXSB3ZWJWaWV3Om1fd2ViVmlldwotICAgICAgICBzaG91bGRBcHBs
eVN0eWxlOmtpdChzdHlsZSkgdG9FbGVtZW50c0luRE9NUmFuZ2U6a2l0KHJhbmdlKV07CisgICAg
ICAgIHNob3VsZEFwcGx5U3R5bGU6a2l0KHN0eWxlLT5lbnN1cmVDU1NTdHlsZURlY2xhcmF0aW9u
KCkpIHRvRWxlbWVudHNJbkRPTVJhbmdlOmtpdChyYW5nZSldOwogfQogCiBib29sIFdlYkVkaXRv
ckNsaWVudDo6c2hvdWxkTW92ZVJhbmdlQWZ0ZXJEZWxldGUoUmFuZ2UqIHJhbmdlLCBSYW5nZSog
cmFuZ2VUb0JlUmVwbGFjZWQpCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZy
YW1lLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUu
bW0JKHJldmlzaW9uIDEwODM3MSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJh
bWUubW0JKHdvcmtpbmcgY29weSkKQEAgLTc5OSw3ICs3OTksOCBAQCAtICh2b2lkKV9zZXRUeXBp
bmdTdHlsZTooRE9NQ1NTU3R5bGVEZWNsCiB7CiAgICAgaWYgKCFfcHJpdmF0ZS0+Y29yZUZyYW1l
KQogICAgICAgICByZXR1cm47Ci0gICAgX3ByaXZhdGUtPmNvcmVGcmFtZS0+ZWRpdG9yKCktPmNv
bXB1dGVBbmRTZXRUeXBpbmdTdHlsZShjb3JlKHN0eWxlKSwgdW5kb0FjdGlvbik7CisgICAgLy8g
RklYTUU6IFdlIHNob3VsZG4ndCBoYXZlIHRvIGNyZWF0ZSBhIGNvcHkgaGVyZS4KKyAgICBfcHJp
dmF0ZS0+Y29yZUZyYW1lLT5lZGl0b3IoKS0+Y29tcHV0ZUFuZFNldFR5cGluZ1N0eWxlKGNvcmUo
c3R5bGUpLT5jb3B5KCkuZ2V0KCksIHVuZG9BY3Rpb24pOwogfQogCiAtICh2b2lkKV9kcmFnU291
cmNlRW5kZWRBdDooTlNQb2ludCl3aW5kb3dMb2Mgb3BlcmF0aW9uOihOU0RyYWdPcGVyYXRpb24p
b3BlcmF0aW9uCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0J
KHJldmlzaW9uIDEwODM3MSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZp
ZXcubW0JKHdvcmtpbmcgY29weSkKQEAgLTQzNTIsMTQgKzQzNTIsMTAgQEAgLSAoRE9NQ1NTU3R5
bGVEZWNsYXJhdGlvbiAqKV9zdHlsZUZyb21GbwogCiAtICh2b2lkKV9hcHBseVN0eWxlVG9TZWxl
Y3Rpb246KERPTUNTU1N0eWxlRGVjbGFyYXRpb24gKilzdHlsZSB3aXRoVW5kb0FjdGlvbjooRWRp
dEFjdGlvbil1bmRvQWN0aW9uCiB7Ci0gICAgaWYgKEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKFtz
ZWxmIF9mcmFtZV0pKQotICAgICAgICBjb3JlRnJhbWUtPmVkaXRvcigpLT5hcHBseVN0eWxlVG9T
ZWxlY3Rpb24oY29yZShzdHlsZSksIHVuZG9BY3Rpb24pOwotfQotCi0tICh2b2lkKV9hcHBseVBh
cmFncmFwaFN0eWxlVG9TZWxlY3Rpb246KERPTUNTU1N0eWxlRGVjbGFyYXRpb24gKilzdHlsZSB3
aXRoVW5kb0FjdGlvbjooRWRpdEFjdGlvbil1bmRvQWN0aW9uCi17Ci0gICAgaWYgKEZyYW1lKiBj
b3JlRnJhbWUgPSBjb3JlKFtzZWxmIF9mcmFtZV0pKQotICAgICAgICBjb3JlRnJhbWUtPmVkaXRv
cigpLT5hcHBseVBhcmFncmFwaFN0eWxlVG9TZWxlY3Rpb24oY29yZShzdHlsZSksIHVuZG9BY3Rp
b24pOworICAgIGlmIChGcmFtZSogY29yZUZyYW1lID0gY29yZShbc2VsZiBfZnJhbWVdKSkgewor
ICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkbid0IGhhdmUgdG8gbWFrZSBhIGNvcHkgaGVyZS4g
V2Ugd2FudCBjYWxsZXJzIG9mIHRoaXMgZnVuY3Rpb24gdG8gd29yayBkaXJlY3RseSB3aXRoIFN0
eWxlUHJvcGVydHlTZXQgZXZlbnR1YWxseS4KKyAgICAgICAgY29yZUZyYW1lLT5lZGl0b3IoKS0+
YXBwbHlTdHlsZVRvU2VsZWN0aW9uKGNvcmUoc3R5bGUpLT5jb3B5KCkuZ2V0KCksIHVuZG9BY3Rp
b24pOworICAgIH0KIH0KIAogLSAoQk9PTClfaGFuZGxlU3R5bGVLZXlFcXVpdmFsZW50OihOU0V2
ZW50ICopZXZlbnQKQEAgLTQ2NTcsOSArNDY1MywxMyBAQCAtICh2b2lkKV9jaGFuZ2VDU1NDb2xv
clVzaW5nU2VsZWN0b3I6KFNFCiB7CiAgICAgRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbiAqc3R5bGUg
PSBbc2VsZiBfc3R5bGVGcm9tQ29sb3JQYW5lbFdpdGhTZWxlY3RvcjpzZWxlY3Rvcl07CiAgICAg
V2ViVmlldyAqd2ViVmlldyA9IFtzZWxmIF93ZWJWaWV3XTsKLSAgICBpZiAoW1t3ZWJWaWV3IF9l
ZGl0aW5nRGVsZWdhdGVGb3J3YXJkZXJdIHdlYlZpZXc6d2ViVmlldyBzaG91bGRBcHBseVN0eWxl
OnN0eWxlIHRvRWxlbWVudHNJbkRPTVJhbmdlOnJhbmdlXSkKLSAgICAgICAgaWYgKEZyYW1lKiBj
b3JlRnJhbWUgPSBjb3JlKFtzZWxmIF9mcmFtZV0pKQotICAgICAgICAgICAgY29yZUZyYW1lLT5l
ZGl0b3IoKS0+YXBwbHlTdHlsZShjb3JlKHN0eWxlKSwgW3NlbGYgX3VuZG9BY3Rpb25Gcm9tQ29s
b3JQYW5lbFdpdGhTZWxlY3RvcjpzZWxlY3Rvcl0pOworICAgIGlmIChbW3dlYlZpZXcgX2VkaXRp
bmdEZWxlZ2F0ZUZvcndhcmRlcl0gd2ViVmlldzp3ZWJWaWV3IHNob3VsZEFwcGx5U3R5bGU6c3R5
bGUgdG9FbGVtZW50c0luRE9NUmFuZ2U6cmFuZ2VdKSB7CisgICAgICAgIGlmIChGcmFtZSogY29y
ZUZyYW1lID0gY29yZShbc2VsZiBfZnJhbWVdKSkgeworICAgICAgICAgICAgLy8gRklYTUU6IFdl
IHNob3VsZG4ndCBoYXZlIHRvIG1ha2UgYSBjb3B5IGhlcmUuCisgICAgICAgICAgICBjb3JlRnJh
bWUtPmVkaXRvcigpLT5hcHBseVN0eWxlKGNvcmUoc3R5bGUpLT5jb3B5KCkuZ2V0KCksIFtzZWxm
IF91bmRvQWN0aW9uRnJvbUNvbG9yUGFuZWxXaXRoU2VsZWN0b3I6c2VsZWN0b3JdKTsKKyAgICAg
ICAgfQorICAgIH0KKwogfQogCiAtICh2b2lkKWNoYW5nZURvY3VtZW50QmFja2dyb3VuZENvbG9y
OihpZClzZW5kZXIKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0JKHJldmlz
aW9uIDEwODM3MSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQkod29y
a2luZyBjb3B5KQpAQCAtNTUyNiw4ICs1NTI2LDkgQEAgLSAodm9pZClhcHBseVN0eWxlOihET01D
U1NTdHlsZURlY2xhcmF0aQogICAgIC8vIGNoYW5nZSB0aGUgQVBJIHRvIGFsbG93IHRoaXMuCiAg
ICAgV2ViRnJhbWUgKndlYkZyYW1lID0gW3NlbGYgX3NlbGVjdGVkT3JNYWluRnJhbWVdOwogICAg
IEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKHdlYkZyYW1lKTsKKyAgICAvLyBGSVhNRTogV2Ugc2hv
dWxkbid0IGhhdmUgdG8gbWFrZSBhIGNvcHkgaGVyZS4KICAgICBpZiAoY29yZUZyYW1lKQotICAg
ICAgICBjb3JlRnJhbWUtPmVkaXRvcigpLT5hcHBseVN0eWxlKGNvcmUoc3R5bGUpKTsKKyAgICAg
ICAgY29yZUZyYW1lLT5lZGl0b3IoKS0+YXBwbHlTdHlsZShjb3JlKHN0eWxlKS0+Y29weSgpLmdl
dCgpKTsKIH0KIAogQGVuZApJbmRleDogU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwODM3MSkKKysr
IFNvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTItMDItMjEgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAg
ICAgUmVtb3ZlIHRoZSByZW1haW5pbmcgdXNlcyBvZiBDU1NTdHlsZURlY2xhcmF0aW9uIGluIEVk
aXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg5
MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRv
ckNsaWVudFF0OjpzaG91bGRBcHBseVN0eWxlKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9F
ZGl0b3JDbGllbnRRdC5oOgorICAgICAgICAoRWRpdG9yQ2xpZW50UXQpOgorCiAyMDEyLTAyLTIx
ICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0XSB0
c3RfUVdlYlBhZ2U6OmluZmluaXRlTG9vcEpTKCkgdGltZW91dHMgd2l0aCBERkcgSklUCkluZGV4
OiBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0
LmNwcAkocmV2aXNpb24gMTA4MzcxKQorKysgU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9FZGl0b3JDbGllbnRRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDYgQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJFZGl0b3JDbGllbnRRdC5oIgogCi0jaW5jbHVk
ZSAiQ1NTU3R5bGVEZWNsYXJhdGlvbi5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVk
ZSAiVW5kb1N0ZXBRdC5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgpAQCAtNDgsNiArNDcsNyBAQAog
I2luY2x1ZGUgIlJhbmdlLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTcGF0
aWFsTmF2aWdhdGlvbi5oIgorI2luY2x1ZGUgIlN0eWxlUHJvcGVydHlTZXQuaCIKICNpbmNsdWRl
ICJXaW5kb3dzS2V5Ym9hcmRDb2Rlcy5oIgogI2luY2x1ZGUgInF3ZWJwYWdlLmgiCiAjaW5jbHVk
ZSAicXdlYnBhZ2VfcC5oIgpAQCAtMTcwLDEyICsxNzAsMTIgQEAgYm9vbCBFZGl0b3JDbGllbnRR
dDo6c2hvdWxkQ2hhbmdlU2VsZWN0ZQogICAgIHJldHVybiBhY2NlcHRzRWRpdGluZzsKIH0KIAot
Ym9vbCBFZGl0b3JDbGllbnRRdDo6c2hvdWxkQXBwbHlTdHlsZShXZWJDb3JlOjpDU1NTdHlsZURl
Y2xhcmF0aW9uKiBzdHlsZSwKK2Jvb2wgRWRpdG9yQ2xpZW50UXQ6OnNob3VsZEFwcGx5U3R5bGUo
V2ViQ29yZTo6U3R5bGVQcm9wZXJ0eVNldCogc3R5bGUsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFdlYkNvcmU6OlJhbmdlKiByYW5nZSkKIHsKICAgICBpZiAoZHVtcEVk
aXRpbmdDYWxsYmFja3MpCiAgICAgICAgIHByaW50ZigiRURJVElORyBERUxFR0FURTogc2hvdWxk
QXBwbHlTdHlsZTolcyB0b0VsZW1lbnRzSW5ET01SYW5nZTolc1xuIiwKLSAgICAgICAgICAgICAg
IFFTdHJpbmcoc3R5bGUtPmNzc1RleHQoKSkudG9VdGY4KCkuY29uc3REYXRhKCksIGR1bXBSYW5n
ZShyYW5nZSkudG9VdGY4KCkuY29uc3REYXRhKCkpOworICAgICAgICAgICAgICAgUVN0cmluZyhz
dHlsZS0+YXNUZXh0KCkpLnRvVXRmOCgpLmNvbnN0RGF0YSgpLCBkdW1wUmFuZ2UocmFuZ2UpLnRv
VXRmOCgpLmNvbnN0RGF0YSgpKTsKICAgICByZXR1cm4gYWNjZXB0c0VkaXRpbmc7CiB9CiAKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0
LmgJKHJldmlzaW9uIDEwODM3MSkKKysrIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
RWRpdG9yQ2xpZW50UXQuaAkod29ya2luZyBjb3B5KQpAQCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBib29sIHNob3VsZEluc2VydFRleHQoY29uc3QgU3RyaW5nJiwgUmFuZ2Uq
LCBFZGl0b3JJbnNlcnRBY3Rpb24pOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRDaGFuZ2VTZWxl
Y3RlZFJhbmdlKFJhbmdlKiBmcm9tUmFuZ2UsIFJhbmdlKiB0b1JhbmdlLCBFQWZmaW5pdHksIGJv
b2wgc3RpbGxTZWxlY3RpbmcpOwogCi0gICAgdmlydHVhbCBib29sIHNob3VsZEFwcGx5U3R5bGUo
Q1NTU3R5bGVEZWNsYXJhdGlvbiosIFJhbmdlKik7CisgICAgdmlydHVhbCBib29sIHNob3VsZEFw
cGx5U3R5bGUoU3R5bGVQcm9wZXJ0eVNldCosIFJhbmdlKik7CiAKICAgICB2aXJ0dWFsIGJvb2wg
c2hvdWxkTW92ZVJhbmdlQWZ0ZXJEZWxldGUoUmFuZ2UqLCBSYW5nZSopOwogCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4v
Q2hhbmdlTG9nCShyZXZpc2lvbiAxMDgzNzEpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wMi0yMSAgUnlvc3VrZSBO
aXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBSZW1vdmUgdGhlIHJlbWFpbmluZyB1
c2VzIG9mIENTU1N0eWxlRGVjbGFyYXRpb24gaW4gRWRpdG9yCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODkzOQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xp
ZW50LmNwcDoKKyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6c2hvdWxkQXBwbHlTdHlsZSk6Cisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lmg6CisgICAgICAgIChXZWJF
ZGl0b3JDbGllbnQpOgorCiAyMDEyLTAyLTE3ICBLYWxldiBMZW1iZXIgIDxrYWxldmxlbWJlckBn
bWFpbC5jb20+CiAKICAgICAgICAgUmVtb3ZlIHVudXNlZCBwYXJhbWV0ZXJzIGZyb20gV1RGIHRo
cmVhZGluZyBBUEkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAkocmV2aXNpb24gMTA4MzcxKQorKysgU291cmNlL1dl
YktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjc2LDEzICsyNzYsMTMgQEAgYm9vbCBXZWJFZGl0b3JDbGllbnQ6OnNob3VsZEluc2Vy
dFRleHQoYwogLy9ib29sIFdlYkVkaXRvckNsaWVudDo6c2hvdWxkQ2hhbmdlU2VsZWN0ZWRSYW5n
ZShSYW5nZSAqY3VycmVudFJhbmdlLCBSYW5nZSAqdG9Qcm9wb3NlZFJhbmdlLCBTZWxlY3Rpb25B
ZmZpbml0eSBzZWxlY3Rpb25BZmZpbml0eSwgYm9vbCBzdGlsbFNlbGVjdGluZykKIC8veyBub3RJ
bXBsZW1lbnRlZCgpOyByZXR1cm4gZmFsc2U7IH0KIAotYm9vbCBXZWJFZGl0b3JDbGllbnQ6OnNo
b3VsZEFwcGx5U3R5bGUoQ1NTU3R5bGVEZWNsYXJhdGlvbiogLypzdHlsZSovLCBSYW5nZSogLyp0
b0VsZW1lbnRzSW5ET01SYW5nZSovKQorYm9vbCBXZWJFZGl0b3JDbGllbnQ6OnNob3VsZEFwcGx5
U3R5bGUoU3R5bGVQcm9wZXJ0eVNldCogLypzdHlsZSovLCBSYW5nZSogLyp0b0VsZW1lbnRzSW5E
T01SYW5nZSovKQogeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gdHJ1ZTsgfQogCiBib29sIFdl
YkVkaXRvckNsaWVudDo6c2hvdWxkTW92ZVJhbmdlQWZ0ZXJEZWxldGUoUmFuZ2UqIC8qcmFuZ2Uq
LywgUmFuZ2UqIC8qcmFuZ2VUb0JlUmVwbGFjZWQqLykKIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0
dXJuIHRydWU7IH0KIAotYm9vbCBXZWJFZGl0b3JDbGllbnQ6OnNob3VsZENoYW5nZVR5cGluZ1N0
eWxlKENTU1N0eWxlRGVjbGFyYXRpb24qIC8qY3VycmVudFN0eWxlKi8sIENTU1N0eWxlRGVjbGFy
YXRpb24qIC8qdG9Qcm9wb3NlZFN0eWxlKi8pCitib29sIFdlYkVkaXRvckNsaWVudDo6c2hvdWxk
Q2hhbmdlVHlwaW5nU3R5bGUoU3R5bGVQcm9wZXJ0eVNldCogLypjdXJyZW50U3R5bGUqLywgU3R5
bGVQcm9wZXJ0eVNldCogLyp0b1Byb3Bvc2VkU3R5bGUqLykKIHsgbm90SW1wbGVtZW50ZWQoKTsg
cmV0dXJuIGZhbHNlOyB9CiAKIHZvaWQgV2ViRWRpdG9yQ2xpZW50Ojp3ZWJWaWV3RGlkQ2hhbmdl
VHlwaW5nU3R5bGUoV2ViTm90aWZpY2F0aW9uKiAvKm5vdGlmaWNhdGlvbiovKQpJbmRleDogU291
cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgJ
KHJldmlzaW9uIDEwODM3MSkKKysrIFNvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC02NCw5ICs2NCw5IEBAIHB1YmxpYzoK
ICAgICBib29sIHNob3VsZERlbGV0ZVJhbmdlKFdlYkNvcmU6OlJhbmdlKik7CiAKICAgICBib29s
IHNob3VsZEluc2VydE5vZGUoV2ViQ29yZTo6Tm9kZSosIFdlYkNvcmU6OlJhbmdlKiByZXBsYWNp
bmdSYW5nZSwgV2ViQ29yZTo6RWRpdG9ySW5zZXJ0QWN0aW9uKTsKLSAgICBib29sIHNob3VsZEFw
cGx5U3R5bGUoV2ViQ29yZTo6Q1NTU3R5bGVEZWNsYXJhdGlvbiosIFdlYkNvcmU6OlJhbmdlKik7
CisgICAgYm9vbCBzaG91bGRBcHBseVN0eWxlKFdlYkNvcmU6OlN0eWxlUHJvcGVydHlTZXQqLCBX
ZWJDb3JlOjpSYW5nZSopOwogICAgIGJvb2wgc2hvdWxkTW92ZVJhbmdlQWZ0ZXJEZWxldGUoV2Vi
Q29yZTo6UmFuZ2UqLCBXZWJDb3JlOjpSYW5nZSopOwotICAgIGJvb2wgc2hvdWxkQ2hhbmdlVHlw
aW5nU3R5bGUoV2ViQ29yZTo6Q1NTU3R5bGVEZWNsYXJhdGlvbiogY3VycmVudFN0eWxlLCBXZWJD
b3JlOjpDU1NTdHlsZURlY2xhcmF0aW9uKiB0b1Byb3Bvc2VkU3R5bGUpOworICAgIGJvb2wgc2hv
dWxkQ2hhbmdlVHlwaW5nU3R5bGUoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0eVNldCogY3VycmVudFN0
eWxlLCBXZWJDb3JlOjpTdHlsZVByb3BlcnR5U2V0KiB0b1Byb3Bvc2VkU3R5bGUpOwogCiAgICAg
dm9pZCB3ZWJWaWV3RGlkQ2hhbmdlVHlwaW5nU3R5bGUoV2ViTm90aWZpY2F0aW9uKik7CiAgICAg
dm9pZCB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uKFdlYk5vdGlmaWNhdGlvbiopOwpJbmRleDog
U291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC93aW5jZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwODM3MSkKKysrIFNvdXJjZS9XZWJLaXQvd2lu
Y2UvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDItMjEg
IFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlIHRoZSBy
ZW1haW5pbmcgdXNlcyBvZiBDU1NTdHlsZURlY2xhcmF0aW9uIGluIEVkaXRvcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg5MzkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Vk
aXRvckNsaWVudFdpbkNFLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50V2luQ0U6
OnNob3VsZEFwcGx5U3R5bGUpOgorCiAyMDEyLTAyLTIwICBCZW5qYW1pbiBQb3VsYWluICA8YmVu
amFtaW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBHZXQgcmlkIG9mIHRoZSBMb2NhbGl6YXRpb25T
dHJhdGVneQpJbmRleDogU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRXaW5DRS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3Jl
U3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5jcHAJKHJldmlzaW9uIDEwODM3MSkKKysrIFNvdXJj
ZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMDIsNyArMTAyLDcgQEAgYm9vbCBFZGl0b3JDbGllbnRXaW5DRTo6c2hv
dWxkQ2hhbmdlU2VsZQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEVkaXRvckNsaWVudFdp
bkNFOjpzaG91bGRBcHBseVN0eWxlKFdlYkNvcmU6OkNTU1N0eWxlRGVjbGFyYXRpb24qLCBXZWJD
b3JlOjpSYW5nZSopCitib29sIEVkaXRvckNsaWVudFdpbkNFOjpzaG91bGRBcHBseVN0eWxlKFdl
YkNvcmU6OlN0eWxlUHJvcGVydHlTZXQqLCBXZWJDb3JlOjpSYW5nZSopCiB7CiAgICAgbm90SW1w
bGVtZW50ZWQoKTsKICAgICByZXR1cm4gdHJ1ZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd3gvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCShyZXZpc2lv
biAxMDgzNzEpCisrKyBTb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE1IEBACisyMDEyLTAyLTIxICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQu
b3JnPgorCisgICAgICAgIFJlbW92ZSB0aGUgcmVtYWluaW5nIHVzZXMgb2YgQ1NTU3R5bGVEZWNs
YXJhdGlvbiBpbiBFZGl0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc4OTM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVudFd4LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkVkaXRvckNsaWVudFd4OjpzaG91bGRBcHBseVN0eWxlKToKKyAgICAgICAgKiBXZWJL
aXRTdXBwb3J0L0VkaXRvckNsaWVudFd4Lmg6CisgICAgICAgIChFZGl0b3JDbGllbnRXeCk6CisK
IDIwMTItMDItMTUgIFNhZHJ1bCBIYWJpYiBDaG93ZGh1cnkgIDxzYWRydWxAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIE5vdGlmeSBDaHJvbWVDbGllbnQgd2hlbiB0b3VjaC1ldmVudCBoYW5kbGVy
cyBhcmUgaW5zdGFsbGVkL3JlbW92ZWQuCkluZGV4OiBTb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1
cHBvcnQvRWRpdG9yQ2xpZW50V3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd3gv
V2ViS2l0U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5jcHAJKHJldmlzaW9uIDEwODM3MSkKKysrIFNv
dXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTIyMyw3ICsyMjMsNyBAQCBib29sIEVkaXRvckNsaWVudFd4OjpzaG91bGRJbnNl
cnRUZXh0KGNvCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgRWRpdG9yQ2xpZW50V3g6OnNo
b3VsZEFwcGx5U3R5bGUoQ1NTU3R5bGVEZWNsYXJhdGlvbiosCitib29sIEVkaXRvckNsaWVudFd4
OjpzaG91bGRBcHBseVN0eWxlKFN0eWxlUHJvcGVydHlTZXQqLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgUmFuZ2UqKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3gu
aAkocmV2aXNpb24gMTA4MzcxKQorKysgU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Vk
aXRvckNsaWVudFd4LmgJKHdvcmtpbmcgY29weSkKQEAgLTY0LDcgKzY0LDcgQEAgcHVibGljOgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVkaXRvckluc2VydEFjdGlvbik7CiAg
ICAgdmlydHVhbCBib29sIHNob3VsZEluc2VydFRleHQoY29uc3QgU3RyaW5nJiwgUmFuZ2UqLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVkaXRvckluc2VydEFjdGlvbik7Ci0g
ICAgdmlydHVhbCBib29sIHNob3VsZEFwcGx5U3R5bGUoQ1NTU3R5bGVEZWNsYXJhdGlvbiosCisg
ICAgdmlydHVhbCBib29sIHNob3VsZEFwcGx5U3R5bGUoU3R5bGVQcm9wZXJ0eVNldCosCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmFuZ2UqKTsKICAgICB2aXJ0dWFsIGJvb2wg
c2hvdWxkTW92ZVJhbmdlQWZ0ZXJEZWxldGUoUmFuZ2UqLCBSYW5nZSopOwogICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRDaGFuZ2VTZWxlY3RlZFJhbmdlKFJhbmdlKiBmcm9tUmFuZ2UsIFJhbmdlKiB0
b1JhbmdlLCAK
</data>

          </attachment>
      

    </bug>

</bugzilla>