<?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>108775</bug_id>
          
          <creation_ts>2013-02-03 16:06:16 -0800</creation_ts>
          <short_desc>Add FocusDirection argument to HTMLTextFormControlElement::handleFocusEvent</short_desc>
          <delta_ts>2013-02-03 22:12:57 -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>DOM</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>
          
          <blocked>108447</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kent Tamura">tkent</reporter>
          <assigned_to name="Kent Tamura">tkent</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fsamuel</cc>
    
    <cc>hayato</cc>
    
    <cc>mifenton</cc>
    
    <cc>morrita</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>823906</commentid>
    <comment_count>0</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2013-02-03 16:06:16 -0800</bug_when>
    <thetext>and need to add it to the followings too.
  Node::dispatchFocusEvent
  Document::setFocusedNode
  FocusController::setFocusedNode
  Element::focus</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823938</commentid>
    <comment_count>1</comment_count>
      <attachid>186281</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2013-02-03 17:12:23 -0800</bug_when>
    <thetext>Created attachment 186281
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823951</commentid>
    <comment_count>2</comment_count>
      <attachid>186281</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-03 18:15:37 -0800</bug_when>
    <thetext>Comment on attachment 186281
Patch

Attachment 186281 did not pass win-ews (win):
Output: http://queues.webkit.org/results/16357805</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823963</commentid>
    <comment_count>3</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2013-02-03 18:25:31 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 186281 [details])
&gt; Attachment 186281 [details] did not pass win-ews (win):
&gt; Output: http://queues.webkit.org/results/16357805

Looks like APPLE-EWS-2 is damaged. Other patches failed with the same error.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823968</commentid>
    <comment_count>4</comment_count>
      <attachid>186281</attachid>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2013-02-03 18:32:33 -0800</bug_when>
    <thetext>Comment on attachment 186281
Patch

Unofficial r=me on this.

Looks okay. I am wondering how many buit-in elements will need this FocusDirection argument.
It seems every built-in elements which has focusable elements in its shadow tree requires this hack to focus elements in shadow tree if a host is focused. e.g. &lt;video&gt; elements.

If so, it might be better to have a general technique to dispatch focus to an element in shadow tree for built-in elements. But that should be out of scope of this patch, I think.


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

&gt; Source/WebCore/ChangeLog:44
&gt; +        Add FocusDirection argument in order to apss it to Document::setFocusedNode.

apss -&gt; pass

&gt; Source/WebCore/html/HTMLLegendElement.h:44
&gt; +    virtual void focus(bool, FocusDirection) OVERRIDE;

bool -&gt; bool restorePreviousSelection</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823975</commentid>
    <comment_count>5</comment_count>
      <attachid>186281</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2013-02-03 18:50:26 -0800</bug_when>
    <thetext>Comment on attachment 186281
Patch

rs=me based on hayato&apos;s r.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823994</commentid>
    <comment_count>6</comment_count>
      <attachid>186290</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2013-02-03 20:14:45 -0800</bug_when>
    <thetext>Created attachment 186290
Patch for landing

Fixed a typo and add an argument name to HTMLLegendElement.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823999</commentid>
    <comment_count>7</comment_count>
      <attachid>186290</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-03 20:28:35 -0800</bug_when>
    <thetext>Comment on attachment 186290
Patch for landing

Rejecting attachment 186290 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=gce-cq-01&apos;, &apos;validate-changelog&apos;, &apos;--non-interactive&apos;, 186290, &apos;--port=chromium-xvfb&apos;]&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue

Hajime Morrita found in /mnt/git/webkit-commit-queue/Source/WebCore/ChangeLog does not appear to be a valid reviewer according to committers.py.
/mnt/git/webkit-commit-queue/Source/WebCore/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).

Full output: http://queues.webkit.org/results/16358916</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824000</commentid>
    <comment_count>8</comment_count>
      <attachid>186291</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2013-02-03 20:30:53 -0800</bug_when>
    <thetext>Created attachment 186291
Patch for landing 2

Morrita</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824048</commentid>
    <comment_count>9</comment_count>
      <attachid>186291</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-03 22:12:53 -0800</bug_when>
    <thetext>Comment on attachment 186291
Patch for landing 2

Clearing flags on attachment: 186291

Committed r141738: &lt;http://trac.webkit.org/changeset/141738&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824049</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-03 22:12:57 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186281</attachid>
            <date>2013-02-03 17:12:23 -0800</date>
            <delta_ts>2013-02-03 20:14:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108775-20130204100903.patch</filename>
            <type>text/plain</type>
            <size>26325</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNzE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGY2ZDA4MGQ3Njk1NzNi
MDBlNTQwNGRiOThiMjMxNjMxODI1NzQ4Mi4uZjY2NTAyZDEzNTIyOTk4N2ZmMzFlYmQ1YWM0Nzlk
MTNhMDEyNDE2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk1IEBACisyMDEzLTAyLTAzICBLZW50
IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgRm9jdXNEaXJlY3Rp
b24gYXJndW1lbnQgdG8gSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OmhhbmRsZUZvY3VzRXZl
bnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODc3
NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlJ2Qg
bGlrZSB0byBhZGQgYSBGb2N1c0RpcmVjdGlvbiBhcmd1bWVudCB0bworICAgICAgICBIVE1MVGV4
dEZvcm1Db250cm9sRWxlbWVudDo6aGFuZGxlRm9jdXNFdmVudCBpbiBvcmRlciB0byBmaXggQnVn
CisgICAgICAgIDEwODQ0Ny4gVGhpcyBpcyBhIHByZXBhcmF0aW9uIGZvciBpdC4KKworICAgICAg
ICBXZSBuZWVkIHRvIGFkZCBGb2N1c0RpcmVjdGlvbiBhcmd1bWVudHMgdG8gc29tZSBmb2N1cy1y
ZWxhdGVkIGZ1bmN0aW9ucworICAgICAgICB0byBwYXNzIGl0IGNvcnJlY3RseSB3aGVuIFRBQiBv
ciBTaGlmdCtUQUIgaXMgcHJlc3NlZC4KKworICAgICAgICBObyBuZXcgdGVzdHMuIFRoaXMgZG9l
c24ndCBtYWtlIGFueSBiZWhhdmlvciBjaGFuZ2VzLgorCisgICAgICAgICogaHRtbC9IVE1MVGV4
dEZvcm1Db250cm9sRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEZvcm1D
b250cm9sRWxlbWVudDo6ZGlzcGF0Y2hGb2N1c0V2ZW50KToKKyAgICAgICAgVG8gcGFzcyB0aGUg
Rm9jdXNEaXJlY3Rpb24gYXJndW1lbnQgdG8gaGFuZGxlRm9jdXNFdmVudCwgd2UgbmVlZCB0byBh
ZGQKKyAgICAgICAgaXQgdG8gZGlzcGF0Y2hGb2N1c0V2ZW50IHRvby4KKyAgICAgICAgKiBodG1s
L0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Lmg6CisgICAgICAgIChIVE1MVGV4dEZvcm1Db250
cm9sRWxlbWVudCk6CisgICAgICAgIEFkZCBGb2N1c0RpcmVjdGlvbiBhcnVnbWVudCB0byBkaXNw
YXRjaEZvY3VzRXZlbnQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudDo6aGFuZGxlRm9jdXNFdmVudCk6CisgICAgICAgIEFkZCBGb2N1c0RpcmVjdGlvbiBhcmd1
bWVudC4KKworICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6
OmRpc3BhdGNoRm9jdXNFdmVudCk6IEFkZCBGb2N1c0RpcmVjdGlvbiBhcmd1bWVudC4KKyAgICAg
ICAgKiBkb20vTm9kZS5oOgorICAgICAgICAoTm9kZSk6IERpdHRvLgorCisgICAgICAgICogZG9t
L0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXRGb2N1c2VkTm9k
ZSk6IEFkZCBGb2N1c0RpcmVjdGlvbiBhcmd1bWVudCBpbgorICAgICAgICBvcmRlciB0byBwYXNz
IGl0IHRvIE5vZGU6OmRpc3BhdGNoRm9jdXNFdmVudC4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQu
aDoKKyAgICAgICAgKERvY3VtZW50KTogRGl0dG8uCisKKyAgICAgICAgKiBwYWdlL0ZvY3VzQ29u
dHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkaXNwYXRjaEV2ZW50c09uV2luZG93QW5k
Rm9jdXNlZE5vZGUpOgorICAgICAgICBBZGp1c3QgTm9kZTo6ZGlzcGF0Y2hGb2N1c0V2ZW50IGFy
Z3VtZW50LgorICAgICAgICAoV2ViQ29yZTo6Rm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXNJ
bkRvY3VtZW50T3JkZXIpOgorICAgICAgICBQYXNzIEZvY3VzRGlyZWN0aW8gdG8gRWxlbWVudDo6
Zm9jdXMuCisgICAgICAgIChXZWJDb3JlOjpGb2N1c0NvbnRyb2xsZXI6OnNldEZvY3VzZWROb2Rl
KToKKyAgICAgICAgQWRkIEZvY3VzRGlyZWN0aW9uIGFyZ3VtZW50IGluIG9yZGVyIHRvIGFwc3Mg
aXQgdG8gRG9jdW1lbnQ6OnNldEZvY3VzZWROb2RlLgorICAgICAgICAoV2ViQ29yZTo6Rm9jdXND
b250cm9sbGVyOjphZHZhbmNlRm9jdXNEaXJlY3Rpb25hbGx5SW5Db250YWluZXIpOgorICAgICAg
ICBQYXNzIEZvY3VzRGlyZWN0aW8gdG8gRWxlbWVudDo6Zm9jdXMuCisgICAgICAgICogcGFnZS9G
b2N1c0NvbnRyb2xsZXIuaDoKKyAgICAgICAgKEZvY3VzQ29udHJvbGxlcik6IEFkZCBGb2N1c0Rp
cmVjdGlvbiBhcmd1bWVudCB0byBzZXRGb2N1c2VkTm9kZS4KKworICAgICAgICAqIGRvbS9FbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmZvY3VzKToKKyAgICAgICAgQWRk
IEZvY3VzRGlyZWN0aW9uIGFyZ3VtZW50IHRvIHBhc3MgaXQgdG8gRm9jdXNDb250cm9sbGVyOjpz
ZXRGb2N1c2VkTm9kZS4KKyAgICAgICAgKiBkb20vRWxlbWVudC5oOgorICAgICAgICAoRWxlbWVu
dCk6IERpdHRvLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgIFVwZGF0ZSBG
b2N1c0NvbnRyb2xsZXI6OnNldEZvY3VzZWROb2RlIGFuZCBEb2N1bWVudDo6c2V0Rm9jdXNlZE5v
ZGUuCisKKyAgICAgICAgKiBodG1sL0hUTUxMYWJlbEVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTExhYmVsRWxlbWVudDo6Zm9jdXMpOiBBZGp1c3QgRm9jdXNEaXJlY3Rpb24gYXJn
dW1lbnQuCisgICAgICAgICogaHRtbC9IVE1MTGFiZWxFbGVtZW50Lmg6CisgICAgICAgIChIVE1M
TGFiZWxFbGVtZW50KTogRGl0dG8uCisgICAgICAgICogaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTGVnZW5kRWxlbWVudDo6Zm9jdXMpOiBEaXR0by4K
KyAgICAgICAgKiBodG1sL0hUTUxMZWdlbmRFbGVtZW50Lmg6CisgICAgICAgIChIVE1MTGVnZW5k
RWxlbWVudCk6IERpdHRvLgorICAgICAgICAqIGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OmRpc3BhdGNoRm9jdXNFdmVudCk6
IERpdHRvLgorICAgICAgICAqIGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaDoKKyAgICAgICAgKEhU
TUxTZWxlY3RFbGVtZW50KTogRGl0dG8uCisKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6ZGVmYXVsdEZvY3Vz
KToKKyAgICAgICAgQWRkIEZvY3VzRGlyZWN0aW9uIGFyZ3VtZW50IGluIG9yZGVyIHRvIHBhc3Mg
aXQgZnJvbQorICAgICAgICBIVE1MSW5wdXRFbGVtZW50Ojpmb2N1cygpIHRvIEhUTUxUZXh0Rm9y
bUNvbnRyb2xFbGVtZW50Ojpmb2N1cygpLgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxl
bWVudDo6Zm9jdXMpOgorICAgICAgICBQYXNzIHRoZSBGb2N1c0RpcmVjdGlvbiBhcmd1bWVudCB0
byBJbnB1dFR5cGU6OmZvY3VzLiBTZWUgYWJvdmUuCisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5w
dXRFbGVtZW50OjpoYW5kbGVGb2N1c0V2ZW50KToKKyAgICAgICAgQWRqdXN0IEZvY3VzRGlyZWN0
aW9uIGFyZ3VtZW50LgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5oOgorICAgICAg
ICAoSFRNTElucHV0RWxlbWVudCk6CisgICAgICAgICogaHRtbC9JbnB1dFR5cGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlOjpmb2N1cyk6IEFkZCBGb2N1c0RpcmVjdGlvbiBhcmd1
bWVudC4KKyAgICAgICAgKiBodG1sL0lucHV0VHlwZS5oOgorICAgICAgICAoSW5wdXRUeXBlKTog
RGl0dG8uCisKKyAgICAgICAgKiBodG1sL0Jhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5w
dXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRU
aW1lSW5wdXRUeXBlOjpmb2N1cyk6CisgICAgICAgIEFkZCBGb2N1c0RpcmVjdGlvbiBhcmd1bWVu
dCB0byBmb2xsb3cgSW5wdXRUeXBlLgorICAgICAgICAqIGh0bWwvQmFzZU11bHRpcGxlRmllbGRz
RGF0ZUFuZFRpbWVJbnB1dFR5cGUuaDoKKyAgICAgICAgKEJhc2VNdWx0aXBsZUZpZWxkc0RhdGVB
bmRUaW1lSW5wdXRUeXBlKTogRGl0dG8uCisKIDIwMTMtMDItMDMgIEtlbnRhcm8gSGFyYSAgPGhh
cmFrZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtWOF0gUGFzcyBhbiBJc29sYXRlIHRvIEhh
c0luc3RhbmNlKCkgKHBhcnQgMikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggYTRhODdhYjRlYmEw
YTZhMzk3NTFjOTk2YjY2OWEzNWVhNzg3ZTU0MC4uN2I4Yjk3ZDk2YzNiZmZmODQxM2JjNGY1OWE2
Y2Y5YmEyMWE3ZTAzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4K
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTM4NCw3ICszODQsNyBAQCBf
X1pON1dlYkNvcmUxNURhdGFiYXNlTWFuYWdlcjdtYW5hZ2VyRXYKIF9fWk43V2ViQ29yZTE1RGF0
YWJhc2VNYW5hZ2VyOHNldFF1b3RhRVBOU18xNFNlY3VyaXR5T3JpZ2luRXkKIF9fWk43V2ViQ29y
ZTE1RGF0YWJhc2VNYW5hZ2VyOXNldENsaWVudEVQTlNfMjFEYXRhYmFzZU1hbmFnZXJDbGllbnRF
CiBfX1pON1dlYkNvcmUxNUZvY3VzQ29udHJvbGxlcjEwc2V0Rm9jdXNlZEViCi1fX1pON1dlYkNv
cmUxNUZvY3VzQ29udHJvbGxlcjE0c2V0Rm9jdXNlZE5vZGVFUE5TXzROb2RlRU4zV1RGMTBQYXNz
UmVmUHRySU5TXzVGcmFtZUVFRQorX19aTjdXZWJDb3JlMTVGb2N1c0NvbnRyb2xsZXIxNHNldEZv
Y3VzZWROb2RlRVBOU180Tm9kZUVOM1dURjEwUGFzc1JlZlB0cklOU181RnJhbWVFRUVOU18xNEZv
Y3VzRGlyZWN0aW9uRQogX19aTjdXZWJDb3JlMTVGb2N1c0NvbnRyb2xsZXIxNXNldEZvY3VzZWRG
cmFtZUVOM1dURjEwUGFzc1JlZlB0cklOU181RnJhbWVFRUUKIF9fWk43V2ViQ29yZTE1Rm9jdXND
b250cm9sbGVyMTVzZXRJbml0aWFsRm9jdXNFTlNfMTRGb2N1c0RpcmVjdGlvbkVQTlNfMTNLZXli
b2FyZEV2ZW50RQogX19aTjdXZWJDb3JlMTVGb2N1c0NvbnRyb2xsZXIyOHNldENvbnRhaW5pbmdX
aW5kb3dJc1Zpc2libGVFYgpAQCAtOTMwLDcgKzkzMCw3IEBAIF9fWk43V2ViQ29yZThEb2N1bWVu
dDExY3JlYXRlUmFuZ2VFdgogX19aTjdXZWJDb3JlOERvY3VtZW50MTJ1cGRhdGVMYXlvdXRFdgog
X19aTjdXZWJDb3JlOERvY3VtZW50MTNjcmVhdGVFbGVtZW50RVJLTlNfMTNRdWFsaWZpZWROYW1l
RWIKIF9fWk43V2ViQ29yZThEb2N1bWVudDE0Y3JlYXRlVGV4dE5vZGVFUktOM1dURjZTdHJpbmdF
Ci1fX1pON1dlYkNvcmU4RG9jdW1lbnQxNHNldEZvY3VzZWROb2RlRU4zV1RGMTBQYXNzUmVmUHRy
SU5TXzROb2RlRUVFCitfX1pON1dlYkNvcmU4RG9jdW1lbnQxNHNldEZvY3VzZWROb2RlRU4zV1RG
MTBQYXNzUmVmUHRySU5TXzROb2RlRUVFTlNfMTRGb2N1c0RpcmVjdGlvbkUKIF9fWk43V2ViQ29y
ZThEb2N1bWVudDE2aXNQYWdlQm94VmlzaWJsZUVpCiBfX1pON1dlYkNvcmU4RG9jdW1lbnQxN2dl
dEZvY3VzYWJsZU5vZGVzRVJOM1dURjZWZWN0b3JJTlMxXzZSZWZQdHJJTlNfNE5vZGVFRUVMbTBF
RUUKIF9fWk43V2ViQ29yZThEb2N1bWVudDIwc3R5bGVSZXNvbHZlckNoYW5nZWRFTlNfMjNTdHls
ZVJlc29sdmVyVXBkYXRlRmxhZ0UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDg1ZTg4NTJi
YzdmYTA4NmFlNGMxMDEzNjc0N2Y5Mzg3YjY3MjljZTYuLjZjNzc4MWVmZjE5Zjc4ZjA5ZmZkN2U2
Y2FmZDNmYzFjMmIyNTY0ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMzI4Niw3ICsz
Mjg2LDcgQEAgdm9pZCBEb2N1bWVudDo6c2V0QW5ub3RhdGVkUmVnaW9ucyhjb25zdCBWZWN0b3I8
QW5ub3RhdGVkUmVnaW9uVmFsdWU+JiByZWdpb25zKQogfQogI2VuZGlmCiAKLWJvb2wgRG9jdW1l
bnQ6OnNldEZvY3VzZWROb2RlKFBhc3NSZWZQdHI8Tm9kZT4gcHJwTmV3Rm9jdXNlZE5vZGUpCiti
b29sIERvY3VtZW50OjpzZXRGb2N1c2VkTm9kZShQYXNzUmVmUHRyPE5vZGU+IHBycE5ld0ZvY3Vz
ZWROb2RlLCBGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24pCiB7CiAgICAgUmVmUHRyPE5vZGU+IG5l
d0ZvY3VzZWROb2RlID0gcHJwTmV3Rm9jdXNlZE5vZGU7CiAKQEAgLTMzNjQsNyArMzM2NCw3IEBA
IGJvb2wgRG9jdW1lbnQ6OnNldEZvY3VzZWROb2RlKFBhc3NSZWZQdHI8Tm9kZT4gcHJwTmV3Rm9j
dXNlZE5vZGUpCiAgICAgICAgIG1fZm9jdXNlZE5vZGUgPSBuZXdGb2N1c2VkTm9kZTsKIAogICAg
ICAgICAvLyBEaXNwYXRjaCB0aGUgZm9jdXMgZXZlbnQgYW5kIGxldCB0aGUgbm9kZSBkbyBhbnkg
b3RoZXIgZm9jdXMgcmVsYXRlZCBhY3Rpdml0aWVzIChpbXBvcnRhbnQgZm9yIHRleHQgZmllbGRz
KQotICAgICAgICBtX2ZvY3VzZWROb2RlLT5kaXNwYXRjaEZvY3VzRXZlbnQob2xkRm9jdXNlZE5v
ZGUpOworICAgICAgICBtX2ZvY3VzZWROb2RlLT5kaXNwYXRjaEZvY3VzRXZlbnQob2xkRm9jdXNl
ZE5vZGUsIGRpcmVjdGlvbik7CiAKICAgICAgICAgaWYgKG1fZm9jdXNlZE5vZGUgIT0gbmV3Rm9j
dXNlZE5vZGUpIHsKICAgICAgICAgICAgIC8vIGhhbmRsZXIgc2hpZnRlZCBmb2N1cwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuaAppbmRleCBlMWJiODM3OWY3YzIzYzRmZTE5OWE0YzI2MWM5OGEwMWZmZTY4OTkw
Li43YmQ5ZjE5MGM0NzVhNTczMmUzMzIzNTMxZTdlYjU3NDQxNjJiMTZjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkRPTVRpbWVTdGFtcC5oIgogI2lu
Y2x1ZGUgIkRvY3VtZW50RXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50VGltaW5nLmgi
CisjaW5jbHVkZSAiRm9jdXNEaXJlY3Rpb24uaCIKICNpbmNsdWRlICJJY29uVVJMLmgiCiAjaW5j
bHVkZSAiSW5zcGVjdG9yQ291bnRlcnMuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCkBAIC02ODYs
NyArNjg3LDcgQEAgcHVibGljOgogICAgIFN0cmluZyBzZWxlY3RlZFN0eWxlc2hlZXRTZXQoKSBj
b25zdDsKICAgICB2b2lkIHNldFNlbGVjdGVkU3R5bGVzaGVldFNldChjb25zdCBTdHJpbmcmKTsK
IAotICAgIGJvb2wgc2V0Rm9jdXNlZE5vZGUoUGFzc1JlZlB0cjxOb2RlPik7CisgICAgYm9vbCBz
ZXRGb2N1c2VkTm9kZShQYXNzUmVmUHRyPE5vZGU+LCBGb2N1c0RpcmVjdGlvbiA9IEZvY3VzRGly
ZWN0aW9uTm9uZSk7CiAgICAgTm9kZSogZm9jdXNlZE5vZGUoKSBjb25zdCB7IHJldHVybiBtX2Zv
Y3VzZWROb2RlLmdldCgpOyB9CiAgICAgVXNlckFjdGlvbkVsZW1lbnRTZXQmIHVzZXJBY3Rpb25F
bGVtZW50cygpICB7IHJldHVybiBtX3VzZXJBY3Rpb25FbGVtZW50czsgfQogICAgIGNvbnN0IFVz
ZXJBY3Rpb25FbGVtZW50U2V0JiB1c2VyQWN0aW9uRWxlbWVudHMoKSBjb25zdCB7IHJldHVybiBt
X3VzZXJBY3Rpb25FbGVtZW50czsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IGI3N2YyZjk5
YjQ4ZWJkYTQxZGQ1YjA2NGVmM2Q2YWViMTZjOWNiYjUuLjgzODJjNWQyYmZlNTNiMDA3MWViZDZh
MjIxYzhkMTJhZWNiMzFmNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTE4NjQsNyArMTg2
NCw3IEBAIENTU1N0eWxlRGVjbGFyYXRpb24gKkVsZW1lbnQ6OnN0eWxlKCkKICAgICByZXR1cm4g
MDsKIH0KIAotdm9pZCBFbGVtZW50Ojpmb2N1cyhib29sIHJlc3RvcmVQcmV2aW91c1NlbGVjdGlv
bikKK3ZvaWQgRWxlbWVudDo6Zm9jdXMoYm9vbCByZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24sIEZv
Y3VzRGlyZWN0aW9uIGRpcmVjdGlvbikKIHsKICAgICBpZiAoIWluRG9jdW1lbnQoKSkKICAgICAg
ICAgcmV0dXJuOwpAQCAtMTg5MSw3ICsxODkxLDcgQEAgdm9pZCBFbGVtZW50Ojpmb2N1cyhib29s
IHJlc3RvcmVQcmV2aW91c1NlbGVjdGlvbikKICAgICAgICAgLy8gSWYgYSBmb2N1cyBldmVudCBo
YW5kbGVyIGNoYW5nZXMgdGhlIGZvY3VzIHRvIGEgZGlmZmVyZW50IG5vZGUgaXQKICAgICAgICAg
Ly8gZG9lcyBub3QgbWFrZSBzZW5zZSB0byBjb250aW51ZSBhbmQgdXBkYXRlIGFwcGVhcmVuY2Uu
CiAgICAgICAgIHByb3RlY3QgPSB0aGlzOwotICAgICAgICBpZiAoIXBhZ2UtPmZvY3VzQ29udHJv
bGxlcigpLT5zZXRGb2N1c2VkTm9kZSh0aGlzLCBkb2MtPmZyYW1lKCkpKQorICAgICAgICBpZiAo
IXBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5zZXRGb2N1c2VkTm9kZSh0aGlzLCBkb2MtPmZyYW1l
KCksIGRpcmVjdGlvbikpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuaAppbmRleCBjZTU0MWY1M2UwMDU5YTBiZWM1ZjNiZDJhNWJhOTk4Y2YzMTc5ODQ3Li5kZjE2
MzNkZGFjNjAyZmIzNTNhMTdkMDI2OTBhZTQzZWU1ZGZiNWY0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgK
QEAgLTM0NSw3ICszNDUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBjb25zdCBRdWFsaWZpZWRO
YW1lJiBpbWFnZVNvdXJjZUF0dHJpYnV0ZU5hbWUoKSBjb25zdDsKICAgICB2aXJ0dWFsIFN0cmlu
ZyB0YXJnZXQoKSBjb25zdCB7IHJldHVybiBTdHJpbmcoKTsgfQogCi0gICAgdmlydHVhbCB2b2lk
IGZvY3VzKGJvb2wgcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uID0gdHJ1ZSk7CisgICAgdmlydHVh
bCB2b2lkIGZvY3VzKGJvb2wgcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uID0gdHJ1ZSwgRm9jdXNE
aXJlY3Rpb24gPSBGb2N1c0RpcmVjdGlvbk5vbmUpOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVG
b2N1c0FwcGVhcmFuY2UoYm9vbCByZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24pOwogICAgIHZpcnR1
YWwgdm9pZCBibHVyKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCAyN2JjMTNiNGY5MmIzNWJkOGY1
Zjg0ZmVjYTdiOWI5ZGRlOWQ5YWRmLi5jODQzYzcyNzM2NTRhOTEwMjdiNmZkMGJmMDNlYzYwODQ0
YTk1OTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC0yNDEyLDcgKzI0MTIsNyBAQCBib29sIE5vZGU6
OmRpc3BhdGNoV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGV2ZW50KQogICAg
IHJldHVybiBFdmVudERpc3BhdGNoZXI6OmRpc3BhdGNoRXZlbnQodGhpcywgV2hlZWxFdmVudERp
c3BhdGNoTWVkaWF0b3I6OmNyZWF0ZShldmVudCwgZG9jdW1lbnQoKS0+ZGVmYXVsdFZpZXcoKSkp
OwogfQogCi12b2lkIE5vZGU6OmRpc3BhdGNoRm9jdXNFdmVudChQYXNzUmVmUHRyPE5vZGU+IG9s
ZEZvY3VzZWROb2RlKQordm9pZCBOb2RlOjpkaXNwYXRjaEZvY3VzRXZlbnQoUGFzc1JlZlB0cjxO
b2RlPiBvbGRGb2N1c2VkTm9kZSwgRm9jdXNEaXJlY3Rpb24pCiB7CiAgICAgaWYgKGRvY3VtZW50
KCktPnBhZ2UoKSkKICAgICAgICAgZG9jdW1lbnQoKS0+cGFnZSgpLT5jaHJvbWUoKS0+Y2xpZW50
KCktPmVsZW1lbnREaWRGb2N1cyh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCmluZGV4IDFjMjQ0ZWIyYTg5MWU5
MzY0NDAxYjU3MDYxYWNmYTY3OTEzODdiYzQuLjY1NjM0N2JiZGUxNTg2OGFkNjJmOGY5ZTg4ZDY5
ZTliNWJjNDZhZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL05vZGUuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAi
RWRpdGluZ0JvdW5kYXJ5LmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlICJG
b2N1c0RpcmVjdGlvbi5oIgogI2luY2x1ZGUgIktVUkxIYXNoLmgiCiAjaW5jbHVkZSAiTGF5b3V0
UmVjdC5oIgogI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXIuaCIKQEAgLTYzNyw3ICs2MzgsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBkaXNwYXRjaFNpbXVsYXRlZENsaWNrKEV2ZW50KiB1bmRlcmx5
aW5nRXZlbnQsIFNpbXVsYXRlZENsaWNrTW91c2VFdmVudE9wdGlvbnMgPSBTZW5kTm9FdmVudHMs
IFNpbXVsYXRlZENsaWNrVmlzdWFsT3B0aW9ucyA9IFNob3dQcmVzc2VkTG9vayk7CiAgICAgYm9v
bCBkaXNwYXRjaEJlZm9yZUxvYWRFdmVudChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCk7CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hGb2N1c0V2ZW50KFBhc3NSZWZQdHI8Tm9kZT4gb2xkRm9j
dXNlZE5vZGUpOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaEZvY3VzRXZlbnQoUGFzc1JlZlB0
cjxOb2RlPiBvbGRGb2N1c2VkTm9kZSwgRm9jdXNEaXJlY3Rpb24pOwogICAgIHZpcnR1YWwgdm9p
ZCBkaXNwYXRjaEJsdXJFdmVudChQYXNzUmVmUHRyPE5vZGU+IG5ld0ZvY3VzZWROb2RlKTsKICAg
ICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hDaGFuZ2VFdmVudCgpOwogICAgIHZpcnR1YWwgdm9pZCBk
aXNwYXRjaElucHV0RXZlbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFz
ZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKaW5kZXggOGM4
M2RiZDc1OWQ5ZWIyNjc0YjY0ZTIzY2ZhZWYyMDY0YTcyNDc4ZS4uZWIyOGIzOGQxMmQ1ODI0MDkx
YjA1MThiNWYxYzhhNzYxMWFjYWRhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9C
YXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKQEAg
LTI0MCw3ICsyNDAsNyBAQCB2b2lkIEJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRU
eXBlOjpkZXN0cm95U2hhZG93U3VidHJlZSgpCiAgICAgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBl
OjpkZXN0cm95U2hhZG93U3VidHJlZSgpOwogfQogCi12b2lkIEJhc2VNdWx0aXBsZUZpZWxkc0Rh
dGVBbmRUaW1lSW5wdXRUeXBlOjpmb2N1cyhib29sKQordm9pZCBCYXNlTXVsdGlwbGVGaWVsZHNE
YXRlQW5kVGltZUlucHV0VHlwZTo6Zm9jdXMoYm9vbCwgRm9jdXNEaXJlY3Rpb24pCiB7CiAgICAg
aWYgKG1fZGF0ZVRpbWVFZGl0RWxlbWVudCkKICAgICAgICAgbV9kYXRlVGltZUVkaXRFbGVtZW50
LT5mb2N1c0J5T3duZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZU11
bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
QmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaAppbmRleCBkMmYzYTViMjYy
NDI1OTg1OTUwMTU4Y2Y4M2Q2OWJhNTNkYTk5ZTA3Li5iMzRjZjhiNDA2ZTBmN2RjYzYzZWI3Yzg3
YmVkNzVkYjdjYjBkMjk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VNdWx0
aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZS5oCkBAIC04MSw3ICs4MSw3
IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZVNoYWRvd1N1YnRyZWUoKSBPVkVS
UklERSBGSU5BTDsKICAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveVNoYWRvd1N1YnRyZWUoKSBPVkVS
UklERSBGSU5BTDsKICAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZWRBdHRyaWJ1dGVDaGFuZ2VkKCkg
T1ZFUlJJREUgRklOQUw7Ci0gICAgdmlydHVhbCB2b2lkIGZvY3VzKGJvb2wgcmVzdG9yZVByZXZp
b3VzU2VsZWN0aW9uKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgZm9jdXMoYm9v
bCByZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24sIEZvY3VzRGlyZWN0aW9uKSBPVkVSUklERSBGSU5B
TDsKICAgICB2aXJ0dWFsIHZvaWQgZm9yd2FyZEV2ZW50KEV2ZW50KikgT1ZFUlJJREUgRklOQUw7
CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZUtleWRvd25FdmVudChLZXlib2FyZEV2ZW50KikgT1ZF
UlJJREUgRklOQUw7CiAgICAgdmlydHVhbCBib29sIGhhc0JhZElucHV0KCkgY29uc3QgT1ZFUlJJ
REU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAppbmRleCBjZjM4ZjJk
MTM1OWQ5NmIxMGU0MGY0YWIzMjI5YjM3NDEyMzliMjEyLi40OGQ5NzNhN2UzYWIyYjRkYTMxYmU4
OThjNmZhNWFmY2UwZmIxMjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJ
bnB1dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVu
dC5jcHAKQEAgLTM3MCwxNCArMzcwLDE0IEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6ZGVmYXVs
dEJsdXIoKQogICAgIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpibHVyKCk7CiB9CiAKLXZv
aWQgSFRNTElucHV0RWxlbWVudDo6ZGVmYXVsdEZvY3VzKGJvb2wgcmVzdG9yZVByZXZpb3VzU2Vs
ZWN0aW9uKQordm9pZCBIVE1MSW5wdXRFbGVtZW50OjpkZWZhdWx0Rm9jdXMoYm9vbCByZXN0b3Jl
UHJldmlvdXNTZWxlY3Rpb24sIEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbikKIHsKLSAgICBIVE1M
VGV4dEZvcm1Db250cm9sRWxlbWVudDo6Zm9jdXMocmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uKTsK
KyAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6Zm9jdXMocmVzdG9yZVByZXZpb3VzU2Vs
ZWN0aW9uLCBkaXJlY3Rpb24pOwogfQogCi12b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmZvY3VzKGJv
b2wgcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uKQordm9pZCBIVE1MSW5wdXRFbGVtZW50Ojpmb2N1
cyhib29sIHJlc3RvcmVQcmV2aW91c1NlbGVjdGlvbiwgRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9u
KQogewotICAgIG1faW5wdXRUeXBlLT5mb2N1cyhyZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24pOwor
ICAgIG1faW5wdXRUeXBlLT5mb2N1cyhyZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24sIGRpcmVjdGlv
bik7CiB9CiAKIGJvb2wgSFRNTElucHV0RWxlbWVudDo6aGFzQ3VzdG9tRm9jdXNMb2dpYygpIGNv
bnN0CkBAIC00MzcsOCArNDM3LDkgQEAgYm9vbCBIVE1MSW5wdXRFbGVtZW50OjpzaG91bGRVc2VJ
bnB1dE1ldGhvZCgpCiAgICAgcmV0dXJuIG1faW5wdXRUeXBlLT5zaG91bGRVc2VJbnB1dE1ldGhv
ZCgpOwogfQogCi12b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmhhbmRsZUZvY3VzRXZlbnQoKQordm9p
ZCBIVE1MSW5wdXRFbGVtZW50OjpoYW5kbGVGb2N1c0V2ZW50KEZvY3VzRGlyZWN0aW9uKQogewor
ICAgIC8vIEZJWE1FOiBQYXNzIHRoZSBGb2N1c0RpcmVjdGlvbiBhcmd1bWVudCB0byBJbnB1dFR5
cGU6aGFuZGxlRm9jdXNFdmVudC4KICAgICBtX2lucHV0VHlwZS0+aGFuZGxlRm9jdXNFdmVudCgp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCmluZGV4IGVlZjZlNDQw
ZjUyYWFkMWE5OGI0ZTZlNWQ0YjAzNDA4MWQzY2JjYjguLjVkMzRmMzQyMmRjNjgzMDExYTkyZWY3
Y2QxNzRkMzM0YmZlNThhYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5o
CkBAIC0yODAsOCArMjgwLDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGJsdXIoKSBP
VkVSUklERTsKICAgICB2b2lkIGRlZmF1bHRCbHVyKCk7Ci0gICAgdm9pZCBkZWZhdWx0Rm9jdXMo
Ym9vbCByZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24pOwotICAgIHZpcnR1YWwgdm9pZCBmb2N1cyhi
b29sIHJlc3RvcmVQcmV2aW91c1NlbGVjdGlvbiA9IHRydWUpIE9WRVJSSURFOworICAgIHZvaWQg
ZGVmYXVsdEZvY3VzKGJvb2wgcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uLCBGb2N1c0RpcmVjdGlv
bik7CisgICAgdmlydHVhbCB2b2lkIGZvY3VzKGJvb2wgcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9u
ID0gdHJ1ZSwgRm9jdXNEaXJlY3Rpb24gPSBGb2N1c0RpcmVjdGlvbk5vbmUpIE9WRVJSSURFOwog
CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUoKSBjb25zdCBPVkVSUklERTsK
IApAQCAtMzgwLDcgKzM4MCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVBs
YWNlaG9sZGVyVGV4dCgpOwogICAgIHZpcnR1YWwgYm9vbCBpc0VtcHR5VmFsdWUoKSBjb25zdCBP
VkVSUklERSB7IHJldHVybiBpbm5lclRleHRWYWx1ZSgpLmlzRW1wdHkoKTsgfQogICAgIHZpcnR1
YWwgYm9vbCBpc0VtcHR5U3VnZ2VzdGVkVmFsdWUoKSBjb25zdCB7IHJldHVybiBzdWdnZXN0ZWRW
YWx1ZSgpLmlzRW1wdHkoKTsgfQotICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVGb2N1c0V2ZW50KCk7
CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZUZvY3VzRXZlbnQoRm9jdXNEaXJlY3Rpb24pOwogICAg
IHZpcnR1YWwgdm9pZCBoYW5kbGVCbHVyRXZlbnQoKTsKIAogICAgIHZpcnR1YWwgYm9vbCBpc09w
dGlvbmFsRm9ybUNvbnRyb2woKSBjb25zdCB7IHJldHVybiAhaXNSZXF1aXJlZEZvcm1Db250cm9s
KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuY3BwCmluZGV4IDBiODI3
YWVkODkxMGVmNTRkNzMzYTE5MmU4YzRiMWZmNjMyYzJkYzYuLjkzZTBmZmNmZGQwYWE3NjQzZjg1
YTQzZmUwYTdkOTUyMmUxMWFiZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TExhYmVsRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVt
ZW50LmNwcApAQCAtMTU1LDExICsxNTUsMTEgQEAgYm9vbCBIVE1MTGFiZWxFbGVtZW50Ojp3aWxs
UmVzcG9uZFRvTW91c2VDbGlja0V2ZW50cygpCiAgICAgcmV0dXJuIEhUTUxFbGVtZW50Ojp3aWxs
UmVzcG9uZFRvTW91c2VDbGlja0V2ZW50cygpOwogfQogCi12b2lkIEhUTUxMYWJlbEVsZW1lbnQ6
OmZvY3VzKGJvb2wpCit2b2lkIEhUTUxMYWJlbEVsZW1lbnQ6OmZvY3VzKGJvb2wsIEZvY3VzRGly
ZWN0aW9uIGRpcmVjdGlvbikKIHsKICAgICAvLyB0byBtYXRjaCBvdGhlciBicm93c2VycywgYWx3
YXlzIHJlc3RvcmUgcHJldmlvdXMgc2VsZWN0aW9uCiAgICAgaWYgKEhUTUxFbGVtZW50KiBlbGVt
ZW50ID0gY29udHJvbCgpKQotICAgICAgICBlbGVtZW50LT5mb2N1cygpOworICAgICAgICBlbGVt
ZW50LT5mb2N1cyh0cnVlLCBkaXJlY3Rpb24pOwogfQogCiB2b2lkIEhUTUxMYWJlbEVsZW1lbnQ6
OmFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTGFiZWxFbGVtZW50LmgKaW5kZXggZjQ4YzY4MDVlNDkxYWQ2ZTgwNDk5NGY2YjZjZTc5NmI4
YTk2ZmVmYS4uMDhiYWE5ZWI5MGQ1N2IyNjhmNjlmMzU4OTQzMmY0Y2VkNmY1ZmEyYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmgKQEAgLTUyLDcgKzUyLDcgQEAgcHJpdmF0
ZToKICAgICAvLyBPdmVycmlkZGVuIHRvIGVpdGhlciBjbGljaygpIG9yIGZvY3VzKCkgdGhlIGNv
cnJlc3BvbmRpbmcgY29udHJvbC4KICAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxl
cihFdmVudCopOwogCi0gICAgdm9pZCBmb2N1cyhib29sIHJlc3RvcmVQcmV2aW91c1NlbGVjdGlv
biA9IHRydWUpOworICAgIHZpcnR1YWwgdm9pZCBmb2N1cyhib29sIHJlc3RvcmVQcmV2aW91c1Nl
bGVjdGlvbiwgRm9jdXNEaXJlY3Rpb24pIE9WRVJSSURFOwogfTsKIAogfSAvL25hbWVzcGFjZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmNwcAppbmRleCBkNDZjNmQ5MjE5
OTAzZjUwN2E5NDJmOTc0YTBiZmE0NjMzZDU2NzkwLi4zNzhiZjQ5Mzc1OGJhOWU4ZmQ1NDc1MWE0
YWQ5Y2U5ODU2YjlkYmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMZWdl
bmRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50
LmNwcApAQCAtNjcsMTQgKzY3LDE0IEBAIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqIEhUTUxMZWdl
bmRFbGVtZW50Ojphc3NvY2lhdGVkQ29udHJvbCgpCiAgICAgcmV0dXJuIDA7CiB9CiAKLXZvaWQg
SFRNTExlZ2VuZEVsZW1lbnQ6OmZvY3VzKGJvb2wpCit2b2lkIEhUTUxMZWdlbmRFbGVtZW50Ojpm
b2N1cyhib29sLCBGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24pCiB7CiAgICAgaWYgKGlzRm9jdXNh
YmxlKCkpCi0gICAgICAgIEVsZW1lbnQ6OmZvY3VzKCk7CisgICAgICAgIEVsZW1lbnQ6OmZvY3Vz
KHRydWUsIGRpcmVjdGlvbik7CiAgICAgICAgIAogICAgIC8vIFRvIG1hdGNoIG90aGVyIGJyb3dz
ZXJzJyBiZWhhdmlvciwgbmV2ZXIgcmVzdG9yZSBwcmV2aW91cyBzZWxlY3Rpb24uCiAgICAgaWYg
KEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqIGNvbnRyb2wgPSBhc3NvY2lhdGVkQ29udHJvbCgpKQot
ICAgICAgICBjb250cm9sLT5mb2N1cyhmYWxzZSk7CisgICAgICAgIGNvbnRyb2wtPmZvY3VzKGZh
bHNlLCBkaXJlY3Rpb24pOwogfQogCiB2b2lkIEhUTUxMZWdlbmRFbGVtZW50OjphY2Nlc3NLZXlB
Y3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxMZWdlbmRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMZWdlbmRF
bGVtZW50LmgKaW5kZXggNTQ5ZTEzYjYxYjcxZmZlZGI5NDk0MDRkYTUyZjQxMjFhODRhMjgzOS4u
NmMxNzY3MDFkNzM4MjgwOTRkODk3MTY2NDMyOWY4OTc5NDEyZDNiYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuaApAQCAtNDEsNyArNDEsNyBAQCBwcml2YXRlOgogICAg
IEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqIGFzc29jaWF0ZWRDb250cm9sKCk7CiAKICAgICB2aXJ0
dWFsIHZvaWQgYWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKTsKLSAgICB2aXJ0
dWFsIHZvaWQgZm9jdXMoYm9vbCByZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24gPSB0cnVlKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZm9jdXMoYm9vbCwgRm9jdXNEaXJlY3Rpb24pIE9WRVJSSURFOwogICAg
IHZpcnR1YWwgSFRNTEZvcm1FbGVtZW50KiB2aXJ0dWFsRm9ybSgpIGNvbnN0IE9WRVJSSURFOwog
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAppbmRleCBkN2E2
ZjRkOTE2YmI2NWJiOTVjZjEwMTQ0ZjgxMDI2MzIyZTc5ZjVlLi5hMTkwYWVjZDA0MDJmODc0N2Vm
YWZjY2NhODQ5YmI3OWRiMjE1YWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxTZWxlY3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RF
bGVtZW50LmNwcApAQCAtOTAwLDEzICs5MDAsMTMgQEAgaW50IEhUTUxTZWxlY3RFbGVtZW50Ojps
aXN0VG9PcHRpb25JbmRleChpbnQgbGlzdEluZGV4KSBjb25zdAogICAgIHJldHVybiBvcHRpb25J
bmRleDsKIH0KIAotdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6ZGlzcGF0Y2hGb2N1c0V2ZW50KFBh
c3NSZWZQdHI8Tm9kZT4gb2xkRm9jdXNlZE5vZGUpCit2b2lkIEhUTUxTZWxlY3RFbGVtZW50Ojpk
aXNwYXRjaEZvY3VzRXZlbnQoUGFzc1JlZlB0cjxOb2RlPiBvbGRGb2N1c2VkTm9kZSwgRm9jdXNE
aXJlY3Rpb24gZGlyZWN0aW9uKQogewogICAgIC8vIFNhdmUgdGhlIHNlbGVjdGlvbiBzbyBpdCBj
YW4gYmUgY29tcGFyZWQgdG8gdGhlIG5ldyBzZWxlY3Rpb24gd2hlbgogICAgIC8vIGRpc3BhdGNo
aW5nIGNoYW5nZSBldmVudHMgZHVyaW5nIGJsdXIgZXZlbnQgZGlzcGF0Y2guCiAgICAgaWYgKHVz
ZXNNZW51TGlzdCgpKQogICAgICAgICBzYXZlTGFzdFNlbGVjdGlvbigpOwotICAgIEhUTUxGb3Jt
Q29udHJvbEVsZW1lbnRXaXRoU3RhdGU6OmRpc3BhdGNoRm9jdXNFdmVudChvbGRGb2N1c2VkTm9k
ZSk7CisgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZTo6ZGlzcGF0Y2hGb2N1c0V2
ZW50KG9sZEZvY3VzZWROb2RlLCBkaXJlY3Rpb24pOwogfQogCiB2b2lkIEhUTUxTZWxlY3RFbGVt
ZW50OjpkaXNwYXRjaEJsdXJFdmVudChQYXNzUmVmUHRyPE5vZGU+IG5ld0ZvY3VzZWROb2RlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCmluZGV4IGEyZjI2NTBmNjAzMDZm
ODc0ZTcwYTg0NTIwZThmNjkxMWJlNDQxMjQuLmMzYjBhMGI5ZmI3NmE5MDg3YjdjMGMyYmQ4ZmZl
NzFkZTcwZmJmMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgKQEAg
LTExNCw3ICsxMTQsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc0tleWJvYXJkRm9j
dXNhYmxlKEtleWJvYXJkRXZlbnQqKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNNb3VzZUZv
Y3VzYWJsZSgpIGNvbnN0OwogCi0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRm9jdXNFdmVudChQ
YXNzUmVmUHRyPE5vZGU+IG9sZEZvY3VzZWROb2RlKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0
Y2hGb2N1c0V2ZW50KFBhc3NSZWZQdHI8Tm9kZT4gb2xkRm9jdXNlZE5vZGUsIEZvY3VzRGlyZWN0
aW9uKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hCbHVyRXZlbnQoUGFzc1Jl
ZlB0cjxOb2RlPiBuZXdGb2N1c2VkTm9kZSk7CiAgICAgCiAgICAgdmlydHVhbCBib29sIGNhblN0
YXJ0U2VsZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAKaW5kZXggOTk5ODVjOTUw
N2ExNjRmZTVmMDE2Y2JjN2Y2YmNkOTQxZmFlNGU4Ny4uNjJmNGExNjJmY2UzMWM5ODVhMzM0NTc5
OTAxNTg1OGYzYzEwMDBhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4
dEZvcm1Db250cm9sRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4
dEZvcm1Db250cm9sRWxlbWVudC5jcHAKQEAgLTg0LDEyICs4NCwxMiBAQCBOb2RlOjpJbnNlcnRp
b25Ob3RpZmljYXRpb25SZXF1ZXN0IEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjppbnNlcnRl
ZEludG8oQ29udAogICAgIHJldHVybiBJbnNlcnRpb25Eb25lOwogfQogCi12b2lkIEhUTUxUZXh0
Rm9ybUNvbnRyb2xFbGVtZW50OjpkaXNwYXRjaEZvY3VzRXZlbnQoUGFzc1JlZlB0cjxOb2RlPiBv
bGRGb2N1c2VkTm9kZSkKK3ZvaWQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OmRpc3BhdGNo
Rm9jdXNFdmVudChQYXNzUmVmUHRyPE5vZGU+IG9sZEZvY3VzZWROb2RlLCBGb2N1c0RpcmVjdGlv
biBkaXJlY3Rpb24pCiB7CiAgICAgaWYgKHN1cHBvcnRzUGxhY2Vob2xkZXIoKSkKICAgICAgICAg
dXBkYXRlUGxhY2Vob2xkZXJWaXNpYmlsaXR5KGZhbHNlKTsKLSAgICBoYW5kbGVGb2N1c0V2ZW50
KCk7Ci0gICAgSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZTo6ZGlzcGF0Y2hGb2N1c0V2
ZW50KG9sZEZvY3VzZWROb2RlKTsKKyAgICBoYW5kbGVGb2N1c0V2ZW50KGRpcmVjdGlvbik7Cisg
ICAgSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZTo6ZGlzcGF0Y2hGb2N1c0V2ZW50KG9s
ZEZvY3VzZWROb2RlLCBkaXJlY3Rpb24pOwogfQogCiB2b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xF
bGVtZW50OjpkaXNwYXRjaEJsdXJFdmVudChQYXNzUmVmUHRyPE5vZGU+IG5ld0ZvY3VzZWROb2Rl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5o
CmluZGV4IGI5YjQzZDVmYWE3NmVlMjAxZmFlZmNlYWE0ZjUwOGYwOWZhM2RmZWEuLjM3ZDZhMzFh
NmQzOGY5MGVhZmQ0OTUwOTBjZDE0MmY0ZmQ1NGM2Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmgKQEAgLTExOCw3ICsxMTgsNyBAQCBw
cml2YXRlOgogICAgIGludCBjb21wdXRlU2VsZWN0aW9uRW5kKCkgY29uc3Q7CiAgICAgVGV4dEZp
ZWxkU2VsZWN0aW9uRGlyZWN0aW9uIGNvbXB1dGVTZWxlY3Rpb25EaXJlY3Rpb24oKSBjb25zdDsK
IAotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaEZvY3VzRXZlbnQoUGFzc1JlZlB0cjxOb2RlPiBv
bGRGb2N1c2VkTm9kZSk7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRm9jdXNFdmVudChQYXNz
UmVmUHRyPE5vZGU+IG9sZEZvY3VzZWROb2RlLCBGb2N1c0RpcmVjdGlvbikgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoQmx1ckV2ZW50KFBhc3NSZWZQdHI8Tm9kZT4gbmV3Rm9j
dXNlZE5vZGUpOwogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNv
bnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0JikgY29uc3QgT1ZFUlJJREU7CiAKQEAgLTEyNyw3ICsx
MjcsNyBAQCBwcml2YXRlOgogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiBzdWdnZXN0ZWQgdmFsdWUg
aXMgZW1wdHkuIFVzZWQgdG8gY2hlY2sgcGxhY2Vob2xkZXIgdmlzaWJpbGl0eS4KICAgICB2aXJ0
dWFsIGJvb2wgaXNFbXB0eVN1Z2dlc3RlZFZhbHVlKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQog
ICAgIC8vIENhbGxlZCBpbiBkaXNwYXRjaEZvY3VzRXZlbnQoKSwgYWZ0ZXIgcGxhY2Vob2xkZXIg
cHJvY2VzcywgYmVmb3JlIGNhbGxpbmcgcGFyZW50J3MgZGlzcGF0Y2hGb2N1c0V2ZW50KCkuCi0g
ICAgdmlydHVhbCB2b2lkIGhhbmRsZUZvY3VzRXZlbnQoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
aGFuZGxlRm9jdXNFdmVudChGb2N1c0RpcmVjdGlvbikgeyB9CiAgICAgLy8gQ2FsbGVkIGluIGRp
c3BhdGNoQmx1ckV2ZW50KCksIGFmdGVyIHBsYWNlaG9sZGVyIHByb2Nlc3MsIGJlZm9yZSBjYWxs
aW5nIHBhcmVudCdzIGRpc3BhdGNoQmx1ckV2ZW50KCkuCiAgICAgdmlydHVhbCB2b2lkIGhhbmRs
ZUJsdXJFdmVudCgpIHsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0
VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKaW5kZXggNDgwZjI4
ZTFkOWQxMDNkODk0MzRhZmQxY2M2Mjg2MzM5YWQwYWRmYi4uODIwZTVjODJmZjRlMTYwMTBkMmRh
YjBjMGRiYWRkMWFiYTM1N2NlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1
dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcApAQCAtNDcw
LDkgKzQ3MCw5IEBAIHZvaWQgSW5wdXRUeXBlOjpibHVyKCkKICAgICBlbGVtZW50KCktPmRlZmF1
bHRCbHVyKCk7CiB9CiAKLXZvaWQgSW5wdXRUeXBlOjpmb2N1cyhib29sIHJlc3RvcmVQcmV2aW91
c1NlbGVjdGlvbikKK3ZvaWQgSW5wdXRUeXBlOjpmb2N1cyhib29sIHJlc3RvcmVQcmV2aW91c1Nl
bGVjdGlvbiwgRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uKQogewotICAgIGVsZW1lbnQoKS0+ZGVm
YXVsdEZvY3VzKHJlc3RvcmVQcmV2aW91c1NlbGVjdGlvbik7CisgICAgZWxlbWVudCgpLT5kZWZh
dWx0Rm9jdXMocmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uLCBkaXJlY3Rpb24pOwogfQogCiB2b2lk
IElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0lucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaApp
bmRleCA5YTc2NzA5YTEwZGQ2MmMwM2M1YTk4ZTJlMWNiM2YxY2U2YjEwZjIxLi40NWRlYjdkNzFi
NTQ0YmRhYTBmYmQ3OTkyNTIwMzEyZWYzMGE5ODIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0lucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgK
QEAgLTIxNSw3ICsyMTUsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIHZpcnR1YWwgdm9pZCBi
bHVyKCk7Ci0gICAgdmlydHVhbCB2b2lkIGZvY3VzKGJvb2wgcmVzdG9yZVByZXZpb3VzU2VsZWN0
aW9uKTsKKyAgICB2aXJ0dWFsIHZvaWQgZm9jdXMoYm9vbCByZXN0b3JlUHJldmlvdXNTZWxlY3Rp
b24sIEZvY3VzRGlyZWN0aW9uKTsKIAogICAgIC8vIFNoYWRvdyB0cmVlIGhhbmRsaW5nCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAppbmRleCA3MTc5Yjc5MGE1Zjg4YzQ1
MzgzMTYwOGE2OGE3YjYzYTllM2U4ZDI5Li5hYWQwYzcxYWQzMjMxM2MyN2E3MzVmYmFmOWEyNjVk
YjMzNjU5YjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCkBAIC0x
MjcsNyArMTI3LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGRpc3BhdGNoRXZlbnRzT25XaW5kb3dB
bmRGb2N1c2VkTm9kZShEb2N1bWVudCogZG9jdW1lbnQsIGJvb2wKICAgICAgICAgZG9jdW1lbnQt
PmZvY3VzZWROb2RlKCktPmRpc3BhdGNoQmx1ckV2ZW50KDApOwogICAgIGRvY3VtZW50LT5kaXNw
YXRjaFdpbmRvd0V2ZW50KEV2ZW50OjpjcmVhdGUoZm9jdXNlZCA/IGV2ZW50TmFtZXMoKS5mb2N1
c0V2ZW50IDogZXZlbnROYW1lcygpLmJsdXJFdmVudCwgZmFsc2UsIGZhbHNlKSk7CiAgICAgaWYg
KGZvY3VzZWQgJiYgZG9jdW1lbnQtPmZvY3VzZWROb2RlKCkpCi0gICAgICAgIGRvY3VtZW50LT5m
b2N1c2VkTm9kZSgpLT5kaXNwYXRjaEZvY3VzRXZlbnQoMCk7CisgICAgICAgIGRvY3VtZW50LT5m
b2N1c2VkTm9kZSgpLT5kaXNwYXRjaEZvY3VzRXZlbnQoMCwgRm9jdXNEaXJlY3Rpb25Ob25lKTsK
IH0KIAogc3RhdGljIGlubGluZSBib29sIGhhc0N1c3RvbUZvY3VzTG9naWMoTm9kZSogbm9kZSkK
QEAgLTM1Myw3ICszNTMsNyBAQCBib29sIEZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzSW5E
b2N1bWVudE9yZGVyKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgS2V5YgogICAgICAgICAgICAg
ZnJhbWUtPnNlbGVjdGlvbigpLT5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uKTsKICAgICB9CiAK
LSAgICBzdGF0aWNfY2FzdDxFbGVtZW50Kj4obm9kZS5nZXQoKSktPmZvY3VzKGZhbHNlKTsKKyAg
ICBzdGF0aWNfY2FzdDxFbGVtZW50Kj4obm9kZS5nZXQoKSktPmZvY3VzKGZhbHNlLCBkaXJlY3Rp
b24pOwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC01NzgsNyArNTc4LDcgQEAgc3RhdGljIHZv
aWQgY2xlYXJTZWxlY3Rpb25JZk5lZWRlZChGcmFtZSogb2xkRm9jdXNlZEZyYW1lLCBGcmFtZSog
bmV3Rm9jdXNlZEZyYW0KICAgICBzLT5jbGVhcigpOwogfQogCi1ib29sIEZvY3VzQ29udHJvbGxl
cjo6c2V0Rm9jdXNlZE5vZGUoTm9kZSogbm9kZSwgUGFzc1JlZlB0cjxGcmFtZT4gbmV3Rm9jdXNl
ZEZyYW1lKQorYm9vbCBGb2N1c0NvbnRyb2xsZXI6OnNldEZvY3VzZWROb2RlKE5vZGUqIG5vZGUs
IFBhc3NSZWZQdHI8RnJhbWU+IG5ld0ZvY3VzZWRGcmFtZSwgRm9jdXNEaXJlY3Rpb24gZGlyZWN0
aW9uKQogewogICAgIFJlZlB0cjxGcmFtZT4gb2xkRm9jdXNlZEZyYW1lID0gZm9jdXNlZEZyYW1l
KCk7CiAgICAgUmVmUHRyPERvY3VtZW50PiBvbGREb2N1bWVudCA9IG9sZEZvY3VzZWRGcmFtZSA/
IG9sZEZvY3VzZWRGcmFtZS0+ZG9jdW1lbnQoKSA6IDA7CkBAIC02MTcsNyArNjE3LDcgQEAgYm9v
bCBGb2N1c0NvbnRyb2xsZXI6OnNldEZvY3VzZWROb2RlKE5vZGUqIG5vZGUsIFBhc3NSZWZQdHI8
RnJhbWU+IG5ld0ZvY3VzZWRGcmEKICAgICAvLyBTZXR0aW5nIHRoZSBmb2N1c2VkIG5vZGUgY2Fu
IHJlc3VsdCBpbiBsb3Npbmcgb3VyIGxhc3QgcmVmdCB0byBub2RlIHdoZW4gSlMgZXZlbnQgaGFu
ZGxlcnMgZmlyZS4KICAgICBSZWZQdHI8Tm9kZT4gcHJvdGVjdCA9IG5vZGU7CiAgICAgaWYgKG5l
d0RvY3VtZW50KSB7Ci0gICAgICAgIGJvb2wgc3VjY2Vzc2Z1bGx5Rm9jdXNlZCA9IG5ld0RvY3Vt
ZW50LT5zZXRGb2N1c2VkTm9kZShub2RlKTsKKyAgICAgICAgYm9vbCBzdWNjZXNzZnVsbHlGb2N1
c2VkID0gbmV3RG9jdW1lbnQtPnNldEZvY3VzZWROb2RlKG5vZGUsIGRpcmVjdGlvbik7CiAgICAg
ICAgIGlmICghc3VjY2Vzc2Z1bGx5Rm9jdXNlZCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICB9CkBAIC04MzEsNyArODMxLDcgQEAgYm9vbCBGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VG
b2N1c0RpcmVjdGlvbmFsbHlJbkNvbnRhaW5lcihOb2RlKiBjb250YWluZXIsIGNvbnMKICAgICBF
bGVtZW50KiBlbGVtZW50ID0gdG9FbGVtZW50KGZvY3VzQ2FuZGlkYXRlLmZvY3VzYWJsZU5vZGUp
OwogICAgIEFTU0VSVChlbGVtZW50KTsKIAotICAgIGVsZW1lbnQtPmZvY3VzKGZhbHNlKTsKKyAg
ICBlbGVtZW50LT5mb2N1cyhmYWxzZSwgZGlyZWN0aW9uKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmgKaW5kZXggNGY1OTg2ZDk2ZDIyNzhk
MzQyMDA4ODdlNGZlYmY1N2MyNjJjNjI4Yy4uYTMzM2Y3ZDc1NjVlMDdlZDkzMmI1YjNhYThmMmEy
ZmUxYzc2MGExOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xs
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5oCkBAIC03MCw3
ICs3MCw3IEBAIHB1YmxpYzoKICAgICBib29sIHNldEluaXRpYWxGb2N1cyhGb2N1c0RpcmVjdGlv
biwgS2V5Ym9hcmRFdmVudCopOwogICAgIGJvb2wgYWR2YW5jZUZvY3VzKEZvY3VzRGlyZWN0aW9u
LCBLZXlib2FyZEV2ZW50KiwgYm9vbCBpbml0aWFsRm9jdXMgPSBmYWxzZSk7CiAgICAgICAgIAot
ICAgIGJvb2wgc2V0Rm9jdXNlZE5vZGUoTm9kZSosIFBhc3NSZWZQdHI8RnJhbWU+KTsKKyAgICBi
b29sIHNldEZvY3VzZWROb2RlKE5vZGUqLCBQYXNzUmVmUHRyPEZyYW1lPiwgRm9jdXNEaXJlY3Rp
b24gPSBGb2N1c0RpcmVjdGlvbk5vbmUpOwogCiAgICAgdm9pZCBzZXRBY3RpdmUoYm9vbCk7CiAg
ICAgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNBY3RpdmU7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186290</attachid>
            <date>2013-02-03 20:14:45 -0800</date>
            <delta_ts>2013-02-03 20:30:50 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-108775-20130204131124.patch</filename>
            <type>text/plain</type>
            <size>26350</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNzE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGY2ZDA4MGQ3Njk1NzNi
MDBlNTQwNGRiOThiMjMxNjMxODI1NzQ4Mi4uNDFhYmNjMjA2MTJmMGYxNGQwNzMwMjgxYzc3YzA2
ZjllMThmZWZlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk1IEBACisyMDEzLTAyLTAzICBLZW50
IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgRm9jdXNEaXJlY3Rp
b24gYXJndW1lbnQgdG8gSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OmhhbmRsZUZvY3VzRXZl
bnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODc3
NQorCisgICAgICAgIFJldmlld2VkIGJ5IEhhamltZSBNb3JyaXRhLgorCisgICAgICAgIFdlJ2Qg
bGlrZSB0byBhZGQgYSBGb2N1c0RpcmVjdGlvbiBhcmd1bWVudCB0bworICAgICAgICBIVE1MVGV4
dEZvcm1Db250cm9sRWxlbWVudDo6aGFuZGxlRm9jdXNFdmVudCBpbiBvcmRlciB0byBmaXggQnVn
CisgICAgICAgIDEwODQ0Ny4gVGhpcyBpcyBhIHByZXBhcmF0aW9uIGZvciBpdC4KKworICAgICAg
ICBXZSBuZWVkIHRvIGFkZCBGb2N1c0RpcmVjdGlvbiBhcmd1bWVudHMgdG8gc29tZSBmb2N1cy1y
ZWxhdGVkIGZ1bmN0aW9ucworICAgICAgICB0byBwYXNzIGl0IGNvcnJlY3RseSB3aGVuIFRBQiBv
ciBTaGlmdCtUQUIgaXMgcHJlc3NlZC4KKworICAgICAgICBObyBuZXcgdGVzdHMuIFRoaXMgZG9l
c24ndCBtYWtlIGFueSBiZWhhdmlvciBjaGFuZ2VzLgorCisgICAgICAgICogaHRtbC9IVE1MVGV4
dEZvcm1Db250cm9sRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEZvcm1D
b250cm9sRWxlbWVudDo6ZGlzcGF0Y2hGb2N1c0V2ZW50KToKKyAgICAgICAgVG8gcGFzcyB0aGUg
Rm9jdXNEaXJlY3Rpb24gYXJndW1lbnQgdG8gaGFuZGxlRm9jdXNFdmVudCwgd2UgbmVlZCB0byBh
ZGQKKyAgICAgICAgaXQgdG8gZGlzcGF0Y2hGb2N1c0V2ZW50IHRvby4KKyAgICAgICAgKiBodG1s
L0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Lmg6CisgICAgICAgIChIVE1MVGV4dEZvcm1Db250
cm9sRWxlbWVudCk6CisgICAgICAgIEFkZCBGb2N1c0RpcmVjdGlvbiBhcnVnbWVudCB0byBkaXNw
YXRjaEZvY3VzRXZlbnQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudDo6aGFuZGxlRm9jdXNFdmVudCk6CisgICAgICAgIEFkZCBGb2N1c0RpcmVjdGlvbiBhcmd1
bWVudC4KKworICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6
OmRpc3BhdGNoRm9jdXNFdmVudCk6IEFkZCBGb2N1c0RpcmVjdGlvbiBhcmd1bWVudC4KKyAgICAg
ICAgKiBkb20vTm9kZS5oOgorICAgICAgICAoTm9kZSk6IERpdHRvLgorCisgICAgICAgICogZG9t
L0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXRGb2N1c2VkTm9k
ZSk6IEFkZCBGb2N1c0RpcmVjdGlvbiBhcmd1bWVudCBpbgorICAgICAgICBvcmRlciB0byBwYXNz
IGl0IHRvIE5vZGU6OmRpc3BhdGNoRm9jdXNFdmVudC4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQu
aDoKKyAgICAgICAgKERvY3VtZW50KTogRGl0dG8uCisKKyAgICAgICAgKiBwYWdlL0ZvY3VzQ29u
dHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkaXNwYXRjaEV2ZW50c09uV2luZG93QW5k
Rm9jdXNlZE5vZGUpOgorICAgICAgICBBZGp1c3QgTm9kZTo6ZGlzcGF0Y2hGb2N1c0V2ZW50IGFy
Z3VtZW50LgorICAgICAgICAoV2ViQ29yZTo6Rm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXNJ
bkRvY3VtZW50T3JkZXIpOgorICAgICAgICBQYXNzIEZvY3VzRGlyZWN0aW8gdG8gRWxlbWVudDo6
Zm9jdXMuCisgICAgICAgIChXZWJDb3JlOjpGb2N1c0NvbnRyb2xsZXI6OnNldEZvY3VzZWROb2Rl
KToKKyAgICAgICAgQWRkIEZvY3VzRGlyZWN0aW9uIGFyZ3VtZW50IGluIG9yZGVyIHRvIHBhc3Mg
aXQgdG8gRG9jdW1lbnQ6OnNldEZvY3VzZWROb2RlLgorICAgICAgICAoV2ViQ29yZTo6Rm9jdXND
b250cm9sbGVyOjphZHZhbmNlRm9jdXNEaXJlY3Rpb25hbGx5SW5Db250YWluZXIpOgorICAgICAg
ICBQYXNzIEZvY3VzRGlyZWN0aW8gdG8gRWxlbWVudDo6Zm9jdXMuCisgICAgICAgICogcGFnZS9G
b2N1c0NvbnRyb2xsZXIuaDoKKyAgICAgICAgKEZvY3VzQ29udHJvbGxlcik6IEFkZCBGb2N1c0Rp
cmVjdGlvbiBhcmd1bWVudCB0byBzZXRGb2N1c2VkTm9kZS4KKworICAgICAgICAqIGRvbS9FbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmZvY3VzKToKKyAgICAgICAgQWRk
IEZvY3VzRGlyZWN0aW9uIGFyZ3VtZW50IHRvIHBhc3MgaXQgdG8gRm9jdXNDb250cm9sbGVyOjpz
ZXRGb2N1c2VkTm9kZS4KKyAgICAgICAgKiBkb20vRWxlbWVudC5oOgorICAgICAgICAoRWxlbWVu
dCk6IERpdHRvLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgIFVwZGF0ZSBG
b2N1c0NvbnRyb2xsZXI6OnNldEZvY3VzZWROb2RlIGFuZCBEb2N1bWVudDo6c2V0Rm9jdXNlZE5v
ZGUuCisKKyAgICAgICAgKiBodG1sL0hUTUxMYWJlbEVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTExhYmVsRWxlbWVudDo6Zm9jdXMpOiBBZGp1c3QgRm9jdXNEaXJlY3Rpb24gYXJn
dW1lbnQuCisgICAgICAgICogaHRtbC9IVE1MTGFiZWxFbGVtZW50Lmg6CisgICAgICAgIChIVE1M
TGFiZWxFbGVtZW50KTogRGl0dG8uCisgICAgICAgICogaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTGVnZW5kRWxlbWVudDo6Zm9jdXMpOiBEaXR0by4K
KyAgICAgICAgKiBodG1sL0hUTUxMZWdlbmRFbGVtZW50Lmg6CisgICAgICAgIChIVE1MTGVnZW5k
RWxlbWVudCk6IERpdHRvLgorICAgICAgICAqIGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OmRpc3BhdGNoRm9jdXNFdmVudCk6
IERpdHRvLgorICAgICAgICAqIGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaDoKKyAgICAgICAgKEhU
TUxTZWxlY3RFbGVtZW50KTogRGl0dG8uCisKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6ZGVmYXVsdEZvY3Vz
KToKKyAgICAgICAgQWRkIEZvY3VzRGlyZWN0aW9uIGFyZ3VtZW50IGluIG9yZGVyIHRvIHBhc3Mg
aXQgZnJvbQorICAgICAgICBIVE1MSW5wdXRFbGVtZW50Ojpmb2N1cygpIHRvIEhUTUxUZXh0Rm9y
bUNvbnRyb2xFbGVtZW50Ojpmb2N1cygpLgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxl
bWVudDo6Zm9jdXMpOgorICAgICAgICBQYXNzIHRoZSBGb2N1c0RpcmVjdGlvbiBhcmd1bWVudCB0
byBJbnB1dFR5cGU6OmZvY3VzLiBTZWUgYWJvdmUuCisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5w
dXRFbGVtZW50OjpoYW5kbGVGb2N1c0V2ZW50KToKKyAgICAgICAgQWRqdXN0IEZvY3VzRGlyZWN0
aW9uIGFyZ3VtZW50LgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5oOgorICAgICAg
ICAoSFRNTElucHV0RWxlbWVudCk6CisgICAgICAgICogaHRtbC9JbnB1dFR5cGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlOjpmb2N1cyk6IEFkZCBGb2N1c0RpcmVjdGlvbiBhcmd1
bWVudC4KKyAgICAgICAgKiBodG1sL0lucHV0VHlwZS5oOgorICAgICAgICAoSW5wdXRUeXBlKTog
RGl0dG8uCisKKyAgICAgICAgKiBodG1sL0Jhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5w
dXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRU
aW1lSW5wdXRUeXBlOjpmb2N1cyk6CisgICAgICAgIEFkZCBGb2N1c0RpcmVjdGlvbiBhcmd1bWVu
dCB0byBmb2xsb3cgSW5wdXRUeXBlLgorICAgICAgICAqIGh0bWwvQmFzZU11bHRpcGxlRmllbGRz
RGF0ZUFuZFRpbWVJbnB1dFR5cGUuaDoKKyAgICAgICAgKEJhc2VNdWx0aXBsZUZpZWxkc0RhdGVB
bmRUaW1lSW5wdXRUeXBlKTogRGl0dG8uCisKIDIwMTMtMDItMDMgIEtlbnRhcm8gSGFyYSAgPGhh
cmFrZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtWOF0gUGFzcyBhbiBJc29sYXRlIHRvIEhh
c0luc3RhbmNlKCkgKHBhcnQgMikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggYTRhODdhYjRlYmEw
YTZhMzk3NTFjOTk2YjY2OWEzNWVhNzg3ZTU0MC4uN2I4Yjk3ZDk2YzNiZmZmODQxM2JjNGY1OWE2
Y2Y5YmEyMWE3ZTAzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4K
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTM4NCw3ICszODQsNyBAQCBf
X1pON1dlYkNvcmUxNURhdGFiYXNlTWFuYWdlcjdtYW5hZ2VyRXYKIF9fWk43V2ViQ29yZTE1RGF0
YWJhc2VNYW5hZ2VyOHNldFF1b3RhRVBOU18xNFNlY3VyaXR5T3JpZ2luRXkKIF9fWk43V2ViQ29y
ZTE1RGF0YWJhc2VNYW5hZ2VyOXNldENsaWVudEVQTlNfMjFEYXRhYmFzZU1hbmFnZXJDbGllbnRF
CiBfX1pON1dlYkNvcmUxNUZvY3VzQ29udHJvbGxlcjEwc2V0Rm9jdXNlZEViCi1fX1pON1dlYkNv
cmUxNUZvY3VzQ29udHJvbGxlcjE0c2V0Rm9jdXNlZE5vZGVFUE5TXzROb2RlRU4zV1RGMTBQYXNz
UmVmUHRySU5TXzVGcmFtZUVFRQorX19aTjdXZWJDb3JlMTVGb2N1c0NvbnRyb2xsZXIxNHNldEZv
Y3VzZWROb2RlRVBOU180Tm9kZUVOM1dURjEwUGFzc1JlZlB0cklOU181RnJhbWVFRUVOU18xNEZv
Y3VzRGlyZWN0aW9uRQogX19aTjdXZWJDb3JlMTVGb2N1c0NvbnRyb2xsZXIxNXNldEZvY3VzZWRG
cmFtZUVOM1dURjEwUGFzc1JlZlB0cklOU181RnJhbWVFRUUKIF9fWk43V2ViQ29yZTE1Rm9jdXND
b250cm9sbGVyMTVzZXRJbml0aWFsRm9jdXNFTlNfMTRGb2N1c0RpcmVjdGlvbkVQTlNfMTNLZXli
b2FyZEV2ZW50RQogX19aTjdXZWJDb3JlMTVGb2N1c0NvbnRyb2xsZXIyOHNldENvbnRhaW5pbmdX
aW5kb3dJc1Zpc2libGVFYgpAQCAtOTMwLDcgKzkzMCw3IEBAIF9fWk43V2ViQ29yZThEb2N1bWVu
dDExY3JlYXRlUmFuZ2VFdgogX19aTjdXZWJDb3JlOERvY3VtZW50MTJ1cGRhdGVMYXlvdXRFdgog
X19aTjdXZWJDb3JlOERvY3VtZW50MTNjcmVhdGVFbGVtZW50RVJLTlNfMTNRdWFsaWZpZWROYW1l
RWIKIF9fWk43V2ViQ29yZThEb2N1bWVudDE0Y3JlYXRlVGV4dE5vZGVFUktOM1dURjZTdHJpbmdF
Ci1fX1pON1dlYkNvcmU4RG9jdW1lbnQxNHNldEZvY3VzZWROb2RlRU4zV1RGMTBQYXNzUmVmUHRy
SU5TXzROb2RlRUVFCitfX1pON1dlYkNvcmU4RG9jdW1lbnQxNHNldEZvY3VzZWROb2RlRU4zV1RG
MTBQYXNzUmVmUHRySU5TXzROb2RlRUVFTlNfMTRGb2N1c0RpcmVjdGlvbkUKIF9fWk43V2ViQ29y
ZThEb2N1bWVudDE2aXNQYWdlQm94VmlzaWJsZUVpCiBfX1pON1dlYkNvcmU4RG9jdW1lbnQxN2dl
dEZvY3VzYWJsZU5vZGVzRVJOM1dURjZWZWN0b3JJTlMxXzZSZWZQdHJJTlNfNE5vZGVFRUVMbTBF
RUUKIF9fWk43V2ViQ29yZThEb2N1bWVudDIwc3R5bGVSZXNvbHZlckNoYW5nZWRFTlNfMjNTdHls
ZVJlc29sdmVyVXBkYXRlRmxhZ0UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDg1ZTg4NTJi
YzdmYTA4NmFlNGMxMDEzNjc0N2Y5Mzg3YjY3MjljZTYuLjZjNzc4MWVmZjE5Zjc4ZjA5ZmZkN2U2
Y2FmZDNmYzFjMmIyNTY0ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMzI4Niw3ICsz
Mjg2LDcgQEAgdm9pZCBEb2N1bWVudDo6c2V0QW5ub3RhdGVkUmVnaW9ucyhjb25zdCBWZWN0b3I8
QW5ub3RhdGVkUmVnaW9uVmFsdWU+JiByZWdpb25zKQogfQogI2VuZGlmCiAKLWJvb2wgRG9jdW1l
bnQ6OnNldEZvY3VzZWROb2RlKFBhc3NSZWZQdHI8Tm9kZT4gcHJwTmV3Rm9jdXNlZE5vZGUpCiti
b29sIERvY3VtZW50OjpzZXRGb2N1c2VkTm9kZShQYXNzUmVmUHRyPE5vZGU+IHBycE5ld0ZvY3Vz
ZWROb2RlLCBGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24pCiB7CiAgICAgUmVmUHRyPE5vZGU+IG5l
d0ZvY3VzZWROb2RlID0gcHJwTmV3Rm9jdXNlZE5vZGU7CiAKQEAgLTMzNjQsNyArMzM2NCw3IEBA
IGJvb2wgRG9jdW1lbnQ6OnNldEZvY3VzZWROb2RlKFBhc3NSZWZQdHI8Tm9kZT4gcHJwTmV3Rm9j
dXNlZE5vZGUpCiAgICAgICAgIG1fZm9jdXNlZE5vZGUgPSBuZXdGb2N1c2VkTm9kZTsKIAogICAg
ICAgICAvLyBEaXNwYXRjaCB0aGUgZm9jdXMgZXZlbnQgYW5kIGxldCB0aGUgbm9kZSBkbyBhbnkg
b3RoZXIgZm9jdXMgcmVsYXRlZCBhY3Rpdml0aWVzIChpbXBvcnRhbnQgZm9yIHRleHQgZmllbGRz
KQotICAgICAgICBtX2ZvY3VzZWROb2RlLT5kaXNwYXRjaEZvY3VzRXZlbnQob2xkRm9jdXNlZE5v
ZGUpOworICAgICAgICBtX2ZvY3VzZWROb2RlLT5kaXNwYXRjaEZvY3VzRXZlbnQob2xkRm9jdXNl
ZE5vZGUsIGRpcmVjdGlvbik7CiAKICAgICAgICAgaWYgKG1fZm9jdXNlZE5vZGUgIT0gbmV3Rm9j
dXNlZE5vZGUpIHsKICAgICAgICAgICAgIC8vIGhhbmRsZXIgc2hpZnRlZCBmb2N1cwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuaAppbmRleCBlMWJiODM3OWY3YzIzYzRmZTE5OWE0YzI2MWM5OGEwMWZmZTY4OTkw
Li43YmQ5ZjE5MGM0NzVhNTczMmUzMzIzNTMxZTdlYjU3NDQxNjJiMTZjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkRPTVRpbWVTdGFtcC5oIgogI2lu
Y2x1ZGUgIkRvY3VtZW50RXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50VGltaW5nLmgi
CisjaW5jbHVkZSAiRm9jdXNEaXJlY3Rpb24uaCIKICNpbmNsdWRlICJJY29uVVJMLmgiCiAjaW5j
bHVkZSAiSW5zcGVjdG9yQ291bnRlcnMuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCkBAIC02ODYs
NyArNjg3LDcgQEAgcHVibGljOgogICAgIFN0cmluZyBzZWxlY3RlZFN0eWxlc2hlZXRTZXQoKSBj
b25zdDsKICAgICB2b2lkIHNldFNlbGVjdGVkU3R5bGVzaGVldFNldChjb25zdCBTdHJpbmcmKTsK
IAotICAgIGJvb2wgc2V0Rm9jdXNlZE5vZGUoUGFzc1JlZlB0cjxOb2RlPik7CisgICAgYm9vbCBz
ZXRGb2N1c2VkTm9kZShQYXNzUmVmUHRyPE5vZGU+LCBGb2N1c0RpcmVjdGlvbiA9IEZvY3VzRGly
ZWN0aW9uTm9uZSk7CiAgICAgTm9kZSogZm9jdXNlZE5vZGUoKSBjb25zdCB7IHJldHVybiBtX2Zv
Y3VzZWROb2RlLmdldCgpOyB9CiAgICAgVXNlckFjdGlvbkVsZW1lbnRTZXQmIHVzZXJBY3Rpb25F
bGVtZW50cygpICB7IHJldHVybiBtX3VzZXJBY3Rpb25FbGVtZW50czsgfQogICAgIGNvbnN0IFVz
ZXJBY3Rpb25FbGVtZW50U2V0JiB1c2VyQWN0aW9uRWxlbWVudHMoKSBjb25zdCB7IHJldHVybiBt
X3VzZXJBY3Rpb25FbGVtZW50czsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IGI3N2YyZjk5
YjQ4ZWJkYTQxZGQ1YjA2NGVmM2Q2YWViMTZjOWNiYjUuLjgzODJjNWQyYmZlNTNiMDA3MWViZDZh
MjIxYzhkMTJhZWNiMzFmNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTE4NjQsNyArMTg2
NCw3IEBAIENTU1N0eWxlRGVjbGFyYXRpb24gKkVsZW1lbnQ6OnN0eWxlKCkKICAgICByZXR1cm4g
MDsKIH0KIAotdm9pZCBFbGVtZW50Ojpmb2N1cyhib29sIHJlc3RvcmVQcmV2aW91c1NlbGVjdGlv
bikKK3ZvaWQgRWxlbWVudDo6Zm9jdXMoYm9vbCByZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24sIEZv
Y3VzRGlyZWN0aW9uIGRpcmVjdGlvbikKIHsKICAgICBpZiAoIWluRG9jdW1lbnQoKSkKICAgICAg
ICAgcmV0dXJuOwpAQCAtMTg5MSw3ICsxODkxLDcgQEAgdm9pZCBFbGVtZW50Ojpmb2N1cyhib29s
IHJlc3RvcmVQcmV2aW91c1NlbGVjdGlvbikKICAgICAgICAgLy8gSWYgYSBmb2N1cyBldmVudCBo
YW5kbGVyIGNoYW5nZXMgdGhlIGZvY3VzIHRvIGEgZGlmZmVyZW50IG5vZGUgaXQKICAgICAgICAg
Ly8gZG9lcyBub3QgbWFrZSBzZW5zZSB0byBjb250aW51ZSBhbmQgdXBkYXRlIGFwcGVhcmVuY2Uu
CiAgICAgICAgIHByb3RlY3QgPSB0aGlzOwotICAgICAgICBpZiAoIXBhZ2UtPmZvY3VzQ29udHJv
bGxlcigpLT5zZXRGb2N1c2VkTm9kZSh0aGlzLCBkb2MtPmZyYW1lKCkpKQorICAgICAgICBpZiAo
IXBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5zZXRGb2N1c2VkTm9kZSh0aGlzLCBkb2MtPmZyYW1l
KCksIGRpcmVjdGlvbikpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuaAppbmRleCBjZTU0MWY1M2UwMDU5YTBiZWM1ZjNiZDJhNWJhOTk4Y2YzMTc5ODQ3Li5kZjE2
MzNkZGFjNjAyZmIzNTNhMTdkMDI2OTBhZTQzZWU1ZGZiNWY0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgK
QEAgLTM0NSw3ICszNDUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBjb25zdCBRdWFsaWZpZWRO
YW1lJiBpbWFnZVNvdXJjZUF0dHJpYnV0ZU5hbWUoKSBjb25zdDsKICAgICB2aXJ0dWFsIFN0cmlu
ZyB0YXJnZXQoKSBjb25zdCB7IHJldHVybiBTdHJpbmcoKTsgfQogCi0gICAgdmlydHVhbCB2b2lk
IGZvY3VzKGJvb2wgcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uID0gdHJ1ZSk7CisgICAgdmlydHVh
bCB2b2lkIGZvY3VzKGJvb2wgcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uID0gdHJ1ZSwgRm9jdXNE
aXJlY3Rpb24gPSBGb2N1c0RpcmVjdGlvbk5vbmUpOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVG
b2N1c0FwcGVhcmFuY2UoYm9vbCByZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24pOwogICAgIHZpcnR1
YWwgdm9pZCBibHVyKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCAyN2JjMTNiNGY5MmIzNWJkOGY1
Zjg0ZmVjYTdiOWI5ZGRlOWQ5YWRmLi5jODQzYzcyNzM2NTRhOTEwMjdiNmZkMGJmMDNlYzYwODQ0
YTk1OTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC0yNDEyLDcgKzI0MTIsNyBAQCBib29sIE5vZGU6
OmRpc3BhdGNoV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGV2ZW50KQogICAg
IHJldHVybiBFdmVudERpc3BhdGNoZXI6OmRpc3BhdGNoRXZlbnQodGhpcywgV2hlZWxFdmVudERp
c3BhdGNoTWVkaWF0b3I6OmNyZWF0ZShldmVudCwgZG9jdW1lbnQoKS0+ZGVmYXVsdFZpZXcoKSkp
OwogfQogCi12b2lkIE5vZGU6OmRpc3BhdGNoRm9jdXNFdmVudChQYXNzUmVmUHRyPE5vZGU+IG9s
ZEZvY3VzZWROb2RlKQordm9pZCBOb2RlOjpkaXNwYXRjaEZvY3VzRXZlbnQoUGFzc1JlZlB0cjxO
b2RlPiBvbGRGb2N1c2VkTm9kZSwgRm9jdXNEaXJlY3Rpb24pCiB7CiAgICAgaWYgKGRvY3VtZW50
KCktPnBhZ2UoKSkKICAgICAgICAgZG9jdW1lbnQoKS0+cGFnZSgpLT5jaHJvbWUoKS0+Y2xpZW50
KCktPmVsZW1lbnREaWRGb2N1cyh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCmluZGV4IDFjMjQ0ZWIyYTg5MWU5
MzY0NDAxYjU3MDYxYWNmYTY3OTEzODdiYzQuLjY1NjM0N2JiZGUxNTg2OGFkNjJmOGY5ZTg4ZDY5
ZTliNWJjNDZhZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL05vZGUuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAi
RWRpdGluZ0JvdW5kYXJ5LmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlICJG
b2N1c0RpcmVjdGlvbi5oIgogI2luY2x1ZGUgIktVUkxIYXNoLmgiCiAjaW5jbHVkZSAiTGF5b3V0
UmVjdC5oIgogI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXIuaCIKQEAgLTYzNyw3ICs2MzgsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBkaXNwYXRjaFNpbXVsYXRlZENsaWNrKEV2ZW50KiB1bmRlcmx5
aW5nRXZlbnQsIFNpbXVsYXRlZENsaWNrTW91c2VFdmVudE9wdGlvbnMgPSBTZW5kTm9FdmVudHMs
IFNpbXVsYXRlZENsaWNrVmlzdWFsT3B0aW9ucyA9IFNob3dQcmVzc2VkTG9vayk7CiAgICAgYm9v
bCBkaXNwYXRjaEJlZm9yZUxvYWRFdmVudChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCk7CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hGb2N1c0V2ZW50KFBhc3NSZWZQdHI8Tm9kZT4gb2xkRm9j
dXNlZE5vZGUpOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaEZvY3VzRXZlbnQoUGFzc1JlZlB0
cjxOb2RlPiBvbGRGb2N1c2VkTm9kZSwgRm9jdXNEaXJlY3Rpb24pOwogICAgIHZpcnR1YWwgdm9p
ZCBkaXNwYXRjaEJsdXJFdmVudChQYXNzUmVmUHRyPE5vZGU+IG5ld0ZvY3VzZWROb2RlKTsKICAg
ICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hDaGFuZ2VFdmVudCgpOwogICAgIHZpcnR1YWwgdm9pZCBk
aXNwYXRjaElucHV0RXZlbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFz
ZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKaW5kZXggOGM4
M2RiZDc1OWQ5ZWIyNjc0YjY0ZTIzY2ZhZWYyMDY0YTcyNDc4ZS4uZWIyOGIzOGQxMmQ1ODI0MDkx
YjA1MThiNWYxYzhhNzYxMWFjYWRhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9C
YXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKQEAg
LTI0MCw3ICsyNDAsNyBAQCB2b2lkIEJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRU
eXBlOjpkZXN0cm95U2hhZG93U3VidHJlZSgpCiAgICAgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBl
OjpkZXN0cm95U2hhZG93U3VidHJlZSgpOwogfQogCi12b2lkIEJhc2VNdWx0aXBsZUZpZWxkc0Rh
dGVBbmRUaW1lSW5wdXRUeXBlOjpmb2N1cyhib29sKQordm9pZCBCYXNlTXVsdGlwbGVGaWVsZHNE
YXRlQW5kVGltZUlucHV0VHlwZTo6Zm9jdXMoYm9vbCwgRm9jdXNEaXJlY3Rpb24pCiB7CiAgICAg
aWYgKG1fZGF0ZVRpbWVFZGl0RWxlbWVudCkKICAgICAgICAgbV9kYXRlVGltZUVkaXRFbGVtZW50
LT5mb2N1c0J5T3duZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZU11
bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
QmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaAppbmRleCBkMmYzYTViMjYy
NDI1OTg1OTUwMTU4Y2Y4M2Q2OWJhNTNkYTk5ZTA3Li5iMzRjZjhiNDA2ZTBmN2RjYzYzZWI3Yzg3
YmVkNzVkYjdjYjBkMjk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VNdWx0
aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZS5oCkBAIC04MSw3ICs4MSw3
IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZVNoYWRvd1N1YnRyZWUoKSBPVkVS
UklERSBGSU5BTDsKICAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveVNoYWRvd1N1YnRyZWUoKSBPVkVS
UklERSBGSU5BTDsKICAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZWRBdHRyaWJ1dGVDaGFuZ2VkKCkg
T1ZFUlJJREUgRklOQUw7Ci0gICAgdmlydHVhbCB2b2lkIGZvY3VzKGJvb2wgcmVzdG9yZVByZXZp
b3VzU2VsZWN0aW9uKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgZm9jdXMoYm9v
bCByZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24sIEZvY3VzRGlyZWN0aW9uKSBPVkVSUklERSBGSU5B
TDsKICAgICB2aXJ0dWFsIHZvaWQgZm9yd2FyZEV2ZW50KEV2ZW50KikgT1ZFUlJJREUgRklOQUw7
CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZUtleWRvd25FdmVudChLZXlib2FyZEV2ZW50KikgT1ZF
UlJJREUgRklOQUw7CiAgICAgdmlydHVhbCBib29sIGhhc0JhZElucHV0KCkgY29uc3QgT1ZFUlJJ
REU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAppbmRleCBjZjM4ZjJk
MTM1OWQ5NmIxMGU0MGY0YWIzMjI5YjM3NDEyMzliMjEyLi40OGQ5NzNhN2UzYWIyYjRkYTMxYmU4
OThjNmZhNWFmY2UwZmIxMjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJ
bnB1dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVu
dC5jcHAKQEAgLTM3MCwxNCArMzcwLDE0IEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6ZGVmYXVs
dEJsdXIoKQogICAgIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpibHVyKCk7CiB9CiAKLXZv
aWQgSFRNTElucHV0RWxlbWVudDo6ZGVmYXVsdEZvY3VzKGJvb2wgcmVzdG9yZVByZXZpb3VzU2Vs
ZWN0aW9uKQordm9pZCBIVE1MSW5wdXRFbGVtZW50OjpkZWZhdWx0Rm9jdXMoYm9vbCByZXN0b3Jl
UHJldmlvdXNTZWxlY3Rpb24sIEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbikKIHsKLSAgICBIVE1M
VGV4dEZvcm1Db250cm9sRWxlbWVudDo6Zm9jdXMocmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uKTsK
KyAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6Zm9jdXMocmVzdG9yZVByZXZpb3VzU2Vs
ZWN0aW9uLCBkaXJlY3Rpb24pOwogfQogCi12b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmZvY3VzKGJv
b2wgcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uKQordm9pZCBIVE1MSW5wdXRFbGVtZW50Ojpmb2N1
cyhib29sIHJlc3RvcmVQcmV2aW91c1NlbGVjdGlvbiwgRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9u
KQogewotICAgIG1faW5wdXRUeXBlLT5mb2N1cyhyZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24pOwor
ICAgIG1faW5wdXRUeXBlLT5mb2N1cyhyZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24sIGRpcmVjdGlv
bik7CiB9CiAKIGJvb2wgSFRNTElucHV0RWxlbWVudDo6aGFzQ3VzdG9tRm9jdXNMb2dpYygpIGNv
bnN0CkBAIC00MzcsOCArNDM3LDkgQEAgYm9vbCBIVE1MSW5wdXRFbGVtZW50OjpzaG91bGRVc2VJ
bnB1dE1ldGhvZCgpCiAgICAgcmV0dXJuIG1faW5wdXRUeXBlLT5zaG91bGRVc2VJbnB1dE1ldGhv
ZCgpOwogfQogCi12b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmhhbmRsZUZvY3VzRXZlbnQoKQordm9p
ZCBIVE1MSW5wdXRFbGVtZW50OjpoYW5kbGVGb2N1c0V2ZW50KEZvY3VzRGlyZWN0aW9uKQogewor
ICAgIC8vIEZJWE1FOiBQYXNzIHRoZSBGb2N1c0RpcmVjdGlvbiBhcmd1bWVudCB0byBJbnB1dFR5
cGU6aGFuZGxlRm9jdXNFdmVudC4KICAgICBtX2lucHV0VHlwZS0+aGFuZGxlRm9jdXNFdmVudCgp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCmluZGV4IGVlZjZlNDQw
ZjUyYWFkMWE5OGI0ZTZlNWQ0YjAzNDA4MWQzY2JjYjguLjVkMzRmMzQyMmRjNjgzMDExYTkyZWY3
Y2QxNzRkMzM0YmZlNThhYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5o
CkBAIC0yODAsOCArMjgwLDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGJsdXIoKSBP
VkVSUklERTsKICAgICB2b2lkIGRlZmF1bHRCbHVyKCk7Ci0gICAgdm9pZCBkZWZhdWx0Rm9jdXMo
Ym9vbCByZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24pOwotICAgIHZpcnR1YWwgdm9pZCBmb2N1cyhi
b29sIHJlc3RvcmVQcmV2aW91c1NlbGVjdGlvbiA9IHRydWUpIE9WRVJSSURFOworICAgIHZvaWQg
ZGVmYXVsdEZvY3VzKGJvb2wgcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uLCBGb2N1c0RpcmVjdGlv
bik7CisgICAgdmlydHVhbCB2b2lkIGZvY3VzKGJvb2wgcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9u
ID0gdHJ1ZSwgRm9jdXNEaXJlY3Rpb24gPSBGb2N1c0RpcmVjdGlvbk5vbmUpIE9WRVJSSURFOwog
CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUoKSBjb25zdCBPVkVSUklERTsK
IApAQCAtMzgwLDcgKzM4MCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVBs
YWNlaG9sZGVyVGV4dCgpOwogICAgIHZpcnR1YWwgYm9vbCBpc0VtcHR5VmFsdWUoKSBjb25zdCBP
VkVSUklERSB7IHJldHVybiBpbm5lclRleHRWYWx1ZSgpLmlzRW1wdHkoKTsgfQogICAgIHZpcnR1
YWwgYm9vbCBpc0VtcHR5U3VnZ2VzdGVkVmFsdWUoKSBjb25zdCB7IHJldHVybiBzdWdnZXN0ZWRW
YWx1ZSgpLmlzRW1wdHkoKTsgfQotICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVGb2N1c0V2ZW50KCk7
CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZUZvY3VzRXZlbnQoRm9jdXNEaXJlY3Rpb24pOwogICAg
IHZpcnR1YWwgdm9pZCBoYW5kbGVCbHVyRXZlbnQoKTsKIAogICAgIHZpcnR1YWwgYm9vbCBpc09w
dGlvbmFsRm9ybUNvbnRyb2woKSBjb25zdCB7IHJldHVybiAhaXNSZXF1aXJlZEZvcm1Db250cm9s
KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuY3BwCmluZGV4IDBiODI3
YWVkODkxMGVmNTRkNzMzYTE5MmU4YzRiMWZmNjMyYzJkYzYuLjkzZTBmZmNmZGQwYWE3NjQzZjg1
YTQzZmUwYTdkOTUyMmUxMWFiZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TExhYmVsRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVt
ZW50LmNwcApAQCAtMTU1LDExICsxNTUsMTEgQEAgYm9vbCBIVE1MTGFiZWxFbGVtZW50Ojp3aWxs
UmVzcG9uZFRvTW91c2VDbGlja0V2ZW50cygpCiAgICAgcmV0dXJuIEhUTUxFbGVtZW50Ojp3aWxs
UmVzcG9uZFRvTW91c2VDbGlja0V2ZW50cygpOwogfQogCi12b2lkIEhUTUxMYWJlbEVsZW1lbnQ6
OmZvY3VzKGJvb2wpCit2b2lkIEhUTUxMYWJlbEVsZW1lbnQ6OmZvY3VzKGJvb2wsIEZvY3VzRGly
ZWN0aW9uIGRpcmVjdGlvbikKIHsKICAgICAvLyB0byBtYXRjaCBvdGhlciBicm93c2VycywgYWx3
YXlzIHJlc3RvcmUgcHJldmlvdXMgc2VsZWN0aW9uCiAgICAgaWYgKEhUTUxFbGVtZW50KiBlbGVt
ZW50ID0gY29udHJvbCgpKQotICAgICAgICBlbGVtZW50LT5mb2N1cygpOworICAgICAgICBlbGVt
ZW50LT5mb2N1cyh0cnVlLCBkaXJlY3Rpb24pOwogfQogCiB2b2lkIEhUTUxMYWJlbEVsZW1lbnQ6
OmFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTGFiZWxFbGVtZW50LmgKaW5kZXggZjQ4YzY4MDVlNDkxYWQ2ZTgwNDk5NGY2YjZjZTc5NmI4
YTk2ZmVmYS4uMDhiYWE5ZWI5MGQ1N2IyNjhmNjlmMzU4OTQzMmY0Y2VkNmY1ZmEyYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmgKQEAgLTUyLDcgKzUyLDcgQEAgcHJpdmF0
ZToKICAgICAvLyBPdmVycmlkZGVuIHRvIGVpdGhlciBjbGljaygpIG9yIGZvY3VzKCkgdGhlIGNv
cnJlc3BvbmRpbmcgY29udHJvbC4KICAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxl
cihFdmVudCopOwogCi0gICAgdm9pZCBmb2N1cyhib29sIHJlc3RvcmVQcmV2aW91c1NlbGVjdGlv
biA9IHRydWUpOworICAgIHZpcnR1YWwgdm9pZCBmb2N1cyhib29sIHJlc3RvcmVQcmV2aW91c1Nl
bGVjdGlvbiwgRm9jdXNEaXJlY3Rpb24pIE9WRVJSSURFOwogfTsKIAogfSAvL25hbWVzcGFjZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmNwcAppbmRleCBkNDZjNmQ5MjE5
OTAzZjUwN2E5NDJmOTc0YTBiZmE0NjMzZDU2NzkwLi4zNzhiZjQ5Mzc1OGJhOWU4ZmQ1NDc1MWE0
YWQ5Y2U5ODU2YjlkYmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMZWdl
bmRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50
LmNwcApAQCAtNjcsMTQgKzY3LDE0IEBAIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqIEhUTUxMZWdl
bmRFbGVtZW50Ojphc3NvY2lhdGVkQ29udHJvbCgpCiAgICAgcmV0dXJuIDA7CiB9CiAKLXZvaWQg
SFRNTExlZ2VuZEVsZW1lbnQ6OmZvY3VzKGJvb2wpCit2b2lkIEhUTUxMZWdlbmRFbGVtZW50Ojpm
b2N1cyhib29sLCBGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24pCiB7CiAgICAgaWYgKGlzRm9jdXNh
YmxlKCkpCi0gICAgICAgIEVsZW1lbnQ6OmZvY3VzKCk7CisgICAgICAgIEVsZW1lbnQ6OmZvY3Vz
KHRydWUsIGRpcmVjdGlvbik7CiAgICAgICAgIAogICAgIC8vIFRvIG1hdGNoIG90aGVyIGJyb3dz
ZXJzJyBiZWhhdmlvciwgbmV2ZXIgcmVzdG9yZSBwcmV2aW91cyBzZWxlY3Rpb24uCiAgICAgaWYg
KEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqIGNvbnRyb2wgPSBhc3NvY2lhdGVkQ29udHJvbCgpKQot
ICAgICAgICBjb250cm9sLT5mb2N1cyhmYWxzZSk7CisgICAgICAgIGNvbnRyb2wtPmZvY3VzKGZh
bHNlLCBkaXJlY3Rpb24pOwogfQogCiB2b2lkIEhUTUxMZWdlbmRFbGVtZW50OjphY2Nlc3NLZXlB
Y3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxMZWdlbmRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMZWdlbmRF
bGVtZW50LmgKaW5kZXggNTQ5ZTEzYjYxYjcxZmZlZGI5NDk0MDRkYTUyZjQxMjFhODRhMjgzOS4u
MzdiMDZmMDViMTM5YzVlMzg5YzhjMjI3Y2VlMzQ2NWRiOWE0NzM4MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuaApAQCAtNDEsNyArNDEsNyBAQCBwcml2YXRlOgogICAg
IEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqIGFzc29jaWF0ZWRDb250cm9sKCk7CiAKICAgICB2aXJ0
dWFsIHZvaWQgYWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKTsKLSAgICB2aXJ0
dWFsIHZvaWQgZm9jdXMoYm9vbCByZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24gPSB0cnVlKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZm9jdXMoYm9vbCByZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24sIEZvY3Vz
RGlyZWN0aW9uKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIEhUTUxGb3JtRWxlbWVudCogdmlydHVh
bEZvcm0oKSBjb25zdCBPVkVSUklERTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2Vs
ZWN0RWxlbWVudC5jcHAKaW5kZXggZDdhNmY0ZDkxNmJiNjViYjk1Y2YxMDE0NGY4MTAyNjMyMmU3
OWY1ZS4uYTE5MGFlY2QwNDAyZjg3NDdlZmFmY2NjYTg0OWJiNzlkYjIxNWFkZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKQEAgLTkwMCwxMyArOTAwLDEzIEBA
IGludCBIVE1MU2VsZWN0RWxlbWVudDo6bGlzdFRvT3B0aW9uSW5kZXgoaW50IGxpc3RJbmRleCkg
Y29uc3QKICAgICByZXR1cm4gb3B0aW9uSW5kZXg7CiB9CiAKLXZvaWQgSFRNTFNlbGVjdEVsZW1l
bnQ6OmRpc3BhdGNoRm9jdXNFdmVudChQYXNzUmVmUHRyPE5vZGU+IG9sZEZvY3VzZWROb2RlKQor
dm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6ZGlzcGF0Y2hGb2N1c0V2ZW50KFBhc3NSZWZQdHI8Tm9k
ZT4gb2xkRm9jdXNlZE5vZGUsIEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbikKIHsKICAgICAvLyBT
YXZlIHRoZSBzZWxlY3Rpb24gc28gaXQgY2FuIGJlIGNvbXBhcmVkIHRvIHRoZSBuZXcgc2VsZWN0
aW9uIHdoZW4KICAgICAvLyBkaXNwYXRjaGluZyBjaGFuZ2UgZXZlbnRzIGR1cmluZyBibHVyIGV2
ZW50IGRpc3BhdGNoLgogICAgIGlmICh1c2VzTWVudUxpc3QoKSkKICAgICAgICAgc2F2ZUxhc3RT
ZWxlY3Rpb24oKTsKLSAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlOjpkaXNwYXRj
aEZvY3VzRXZlbnQob2xkRm9jdXNlZE5vZGUpOworICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnRX
aXRoU3RhdGU6OmRpc3BhdGNoRm9jdXNFdmVudChvbGRGb2N1c2VkTm9kZSwgZGlyZWN0aW9uKTsK
IH0KIAogdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6ZGlzcGF0Y2hCbHVyRXZlbnQoUGFzc1JlZlB0
cjxOb2RlPiBuZXdGb2N1c2VkTm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFNlbGVjdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1l
bnQuaAppbmRleCBhMmYyNjUwZjYwMzA2Zjg3NGU3MGE4NDUyMGU4ZjY5MTFiZTQ0MTI0Li5jM2Iw
YTBiOWZiNzZhOTA4N2I3YzBjMmJkOGZmZTcxZGU3MGZiZjM3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MU2VsZWN0RWxlbWVudC5oCkBAIC0xMTQsNyArMTE0LDcgQEAgcHJpdmF0ZToKICAgICB2
aXJ0dWFsIGJvb2wgaXNLZXlib2FyZEZvY3VzYWJsZShLZXlib2FyZEV2ZW50KikgY29uc3Q7CiAg
ICAgdmlydHVhbCBib29sIGlzTW91c2VGb2N1c2FibGUoKSBjb25zdDsKIAotICAgIHZpcnR1YWwg
dm9pZCBkaXNwYXRjaEZvY3VzRXZlbnQoUGFzc1JlZlB0cjxOb2RlPiBvbGRGb2N1c2VkTm9kZSk7
CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRm9jdXNFdmVudChQYXNzUmVmUHRyPE5vZGU+IG9s
ZEZvY3VzZWROb2RlLCBGb2N1c0RpcmVjdGlvbikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lk
IGRpc3BhdGNoQmx1ckV2ZW50KFBhc3NSZWZQdHI8Tm9kZT4gbmV3Rm9jdXNlZE5vZGUpOwogICAg
IAogICAgIHZpcnR1YWwgYm9vbCBjYW5TdGFydFNlbGVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVs
ZW1lbnQuY3BwCmluZGV4IDk5OTg1Yzk1MDdhMTY0ZmU1ZjAxNmNiYzdmNmJjZDk0MWZhZTRlODcu
LjYyZjRhMTYyZmNlMzFjOTg1YTMzNDU3OTkwMTU4NThmM2MxMDAwYTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCkBAIC04NCwx
MiArODQsMTIgQEAgTm9kZTo6SW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBIVE1MVGV4dEZv
cm1Db250cm9sRWxlbWVudDo6aW5zZXJ0ZWRJbnRvKENvbnQKICAgICByZXR1cm4gSW5zZXJ0aW9u
RG9uZTsKIH0KIAotdm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6ZGlzcGF0Y2hGb2N1
c0V2ZW50KFBhc3NSZWZQdHI8Tm9kZT4gb2xkRm9jdXNlZE5vZGUpCit2b2lkIEhUTUxUZXh0Rm9y
bUNvbnRyb2xFbGVtZW50OjpkaXNwYXRjaEZvY3VzRXZlbnQoUGFzc1JlZlB0cjxOb2RlPiBvbGRG
b2N1c2VkTm9kZSwgRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uKQogewogICAgIGlmIChzdXBwb3J0
c1BsYWNlaG9sZGVyKCkpCiAgICAgICAgIHVwZGF0ZVBsYWNlaG9sZGVyVmlzaWJpbGl0eShmYWxz
ZSk7Ci0gICAgaGFuZGxlRm9jdXNFdmVudCgpOwotICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnRX
aXRoU3RhdGU6OmRpc3BhdGNoRm9jdXNFdmVudChvbGRGb2N1c2VkTm9kZSk7CisgICAgaGFuZGxl
Rm9jdXNFdmVudChkaXJlY3Rpb24pOworICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3Rh
dGU6OmRpc3BhdGNoRm9jdXNFdmVudChvbGRGb2N1c2VkTm9kZSwgZGlyZWN0aW9uKTsKIH0KIAog
dm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6ZGlzcGF0Y2hCbHVyRXZlbnQoUGFzc1Jl
ZlB0cjxOb2RlPiBuZXdGb2N1c2VkTm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaAppbmRleCBiOWI0M2Q1ZmFhNzZlZTIwMWZhZWZjZWFh
NGY1MDhmMDlmYTNkZmVhLi4zN2Q2YTMxYTZkMzhmOTBlYWZkNDk1MDkwY2QxNDJmNGZkNTRjNmNm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVu
dC5oCkBAIC0xMTgsNyArMTE4LDcgQEAgcHJpdmF0ZToKICAgICBpbnQgY29tcHV0ZVNlbGVjdGlv
bkVuZCgpIGNvbnN0OwogICAgIFRleHRGaWVsZFNlbGVjdGlvbkRpcmVjdGlvbiBjb21wdXRlU2Vs
ZWN0aW9uRGlyZWN0aW9uKCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hGb2N1
c0V2ZW50KFBhc3NSZWZQdHI8Tm9kZT4gb2xkRm9jdXNlZE5vZGUpOworICAgIHZpcnR1YWwgdm9p
ZCBkaXNwYXRjaEZvY3VzRXZlbnQoUGFzc1JlZlB0cjxOb2RlPiBvbGRGb2N1c2VkTm9kZSwgRm9j
dXNEaXJlY3Rpb24pIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaEJsdXJFdmVu
dChQYXNzUmVmUHRyPE5vZGU+IG5ld0ZvY3VzZWROb2RlKTsKICAgICB2aXJ0dWFsIGJvb2wgY2hp
bGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlUmVuZGVyaW5nQ29udGV4dCYpIGNvbnN0
IE9WRVJSSURFOwogCkBAIC0xMjcsNyArMTI3LDcgQEAgcHJpdmF0ZToKICAgICAvLyBSZXR1cm5z
IHRydWUgaWYgc3VnZ2VzdGVkIHZhbHVlIGlzIGVtcHR5LiBVc2VkIHRvIGNoZWNrIHBsYWNlaG9s
ZGVyIHZpc2liaWxpdHkuCiAgICAgdmlydHVhbCBib29sIGlzRW1wdHlTdWdnZXN0ZWRWYWx1ZSgp
IGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICAvLyBDYWxsZWQgaW4gZGlzcGF0Y2hGb2N1c0V2
ZW50KCksIGFmdGVyIHBsYWNlaG9sZGVyIHByb2Nlc3MsIGJlZm9yZSBjYWxsaW5nIHBhcmVudCdz
IGRpc3BhdGNoRm9jdXNFdmVudCgpLgotICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVGb2N1c0V2ZW50
KCkgeyB9CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZUZvY3VzRXZlbnQoRm9jdXNEaXJlY3Rpb24p
IHsgfQogICAgIC8vIENhbGxlZCBpbiBkaXNwYXRjaEJsdXJFdmVudCgpLCBhZnRlciBwbGFjZWhv
bGRlciBwcm9jZXNzLCBiZWZvcmUgY2FsbGluZyBwYXJlbnQncyBkaXNwYXRjaEJsdXJFdmVudCgp
LgogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVCbHVyRXZlbnQoKSB7IH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9J
bnB1dFR5cGUuY3BwCmluZGV4IDQ4MGYyOGUxZDlkMTAzZDg5NDM0YWZkMWNjNjI4NjMzOWFkMGFk
ZmIuLjgyMGU1YzgyZmY0ZTE2MDEwZDJkYWIwYzBkYmFkZDFhYmEzNTdjZWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0lucHV0VHlwZS5jcHAKQEAgLTQ3MCw5ICs0NzAsOSBAQCB2b2lkIElucHV0VHlwZTo6Ymx1
cigpCiAgICAgZWxlbWVudCgpLT5kZWZhdWx0Qmx1cigpOwogfQogCi12b2lkIElucHV0VHlwZTo6
Zm9jdXMoYm9vbCByZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24pCit2b2lkIElucHV0VHlwZTo6Zm9j
dXMoYm9vbCByZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24sIEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlv
bikKIHsKLSAgICBlbGVtZW50KCktPmRlZmF1bHRGb2N1cyhyZXN0b3JlUHJldmlvdXNTZWxlY3Rp
b24pOworICAgIGVsZW1lbnQoKS0+ZGVmYXVsdEZvY3VzKHJlc3RvcmVQcmV2aW91c1NlbGVjdGlv
biwgZGlyZWN0aW9uKTsKIH0KIAogdm9pZCBJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKaW5kZXggOWE3NjcwOWExMGRkNjJjMDNjNWE5OGUyZTFj
YjNmMWNlNmIxMGYyMS4uNDVkZWI3ZDcxYjU0NGJkYWEwZmJkNzk5MjUyMDMxMmVmMzBhOTgyMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCkBAIC0yMTUsNyArMjE1LDcgQEAgcHVibGljOgogI2Vu
ZGlmCiAKICAgICB2aXJ0dWFsIHZvaWQgYmx1cigpOwotICAgIHZpcnR1YWwgdm9pZCBmb2N1cyhi
b29sIHJlc3RvcmVQcmV2aW91c1NlbGVjdGlvbik7CisgICAgdmlydHVhbCB2b2lkIGZvY3VzKGJv
b2wgcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uLCBGb2N1c0RpcmVjdGlvbik7CiAKICAgICAvLyBT
aGFkb3cgdHJlZSBoYW5kbGluZwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zv
Y3VzQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5j
cHAKaW5kZXggNzE3OWI3OTBhNWY4OGM0NTM4MzE2MDhhNjhhN2I2M2E5ZTNlOGQyOS4uYWFkMGM3
MWFkMzIzMTNjMjdhNzM1ZmJhZjlhMjY1ZGIzMzY1OWIxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Rm9jdXNDb250cm9sbGVyLmNwcApAQCAtMTI3LDcgKzEyNyw3IEBAIHN0YXRpYyBpbmxpbmUgdm9p
ZCBkaXNwYXRjaEV2ZW50c09uV2luZG93QW5kRm9jdXNlZE5vZGUoRG9jdW1lbnQqIGRvY3VtZW50
LCBib29sCiAgICAgICAgIGRvY3VtZW50LT5mb2N1c2VkTm9kZSgpLT5kaXNwYXRjaEJsdXJFdmVu
dCgwKTsKICAgICBkb2N1bWVudC0+ZGlzcGF0Y2hXaW5kb3dFdmVudChFdmVudDo6Y3JlYXRlKGZv
Y3VzZWQgPyBldmVudE5hbWVzKCkuZm9jdXNFdmVudCA6IGV2ZW50TmFtZXMoKS5ibHVyRXZlbnQs
IGZhbHNlLCBmYWxzZSkpOwogICAgIGlmIChmb2N1c2VkICYmIGRvY3VtZW50LT5mb2N1c2VkTm9k
ZSgpKQotICAgICAgICBkb2N1bWVudC0+Zm9jdXNlZE5vZGUoKS0+ZGlzcGF0Y2hGb2N1c0V2ZW50
KDApOworICAgICAgICBkb2N1bWVudC0+Zm9jdXNlZE5vZGUoKS0+ZGlzcGF0Y2hGb2N1c0V2ZW50
KDAsIEZvY3VzRGlyZWN0aW9uTm9uZSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBoYXNDdXN0
b21Gb2N1c0xvZ2ljKE5vZGUqIG5vZGUpCkBAIC0zNTMsNyArMzUzLDcgQEAgYm9vbCBGb2N1c0Nv
bnRyb2xsZXI6OmFkdmFuY2VGb2N1c0luRG9jdW1lbnRPcmRlcihGb2N1c0RpcmVjdGlvbiBkaXJl
Y3Rpb24sIEtleWIKICAgICAgICAgICAgIGZyYW1lLT5zZWxlY3Rpb24oKS0+c2V0U2VsZWN0aW9u
KG5ld1NlbGVjdGlvbik7CiAgICAgfQogCi0gICAgc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG5vZGUu
Z2V0KCkpLT5mb2N1cyhmYWxzZSk7CisgICAgc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG5vZGUuZ2V0
KCkpLT5mb2N1cyhmYWxzZSwgZGlyZWN0aW9uKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAt
NTc4LDcgKzU3OCw3IEBAIHN0YXRpYyB2b2lkIGNsZWFyU2VsZWN0aW9uSWZOZWVkZWQoRnJhbWUq
IG9sZEZvY3VzZWRGcmFtZSwgRnJhbWUqIG5ld0ZvY3VzZWRGcmFtCiAgICAgcy0+Y2xlYXIoKTsK
IH0KIAotYm9vbCBGb2N1c0NvbnRyb2xsZXI6OnNldEZvY3VzZWROb2RlKE5vZGUqIG5vZGUsIFBh
c3NSZWZQdHI8RnJhbWU+IG5ld0ZvY3VzZWRGcmFtZSkKK2Jvb2wgRm9jdXNDb250cm9sbGVyOjpz
ZXRGb2N1c2VkTm9kZShOb2RlKiBub2RlLCBQYXNzUmVmUHRyPEZyYW1lPiBuZXdGb2N1c2VkRnJh
bWUsIEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbikKIHsKICAgICBSZWZQdHI8RnJhbWU+IG9sZEZv
Y3VzZWRGcmFtZSA9IGZvY3VzZWRGcmFtZSgpOwogICAgIFJlZlB0cjxEb2N1bWVudD4gb2xkRG9j
dW1lbnQgPSBvbGRGb2N1c2VkRnJhbWUgPyBvbGRGb2N1c2VkRnJhbWUtPmRvY3VtZW50KCkgOiAw
OwpAQCAtNjE3LDcgKzYxNyw3IEBAIGJvb2wgRm9jdXNDb250cm9sbGVyOjpzZXRGb2N1c2VkTm9k
ZShOb2RlKiBub2RlLCBQYXNzUmVmUHRyPEZyYW1lPiBuZXdGb2N1c2VkRnJhCiAgICAgLy8gU2V0
dGluZyB0aGUgZm9jdXNlZCBub2RlIGNhbiByZXN1bHQgaW4gbG9zaW5nIG91ciBsYXN0IHJlZnQg
dG8gbm9kZSB3aGVuIEpTIGV2ZW50IGhhbmRsZXJzIGZpcmUuCiAgICAgUmVmUHRyPE5vZGU+IHBy
b3RlY3QgPSBub2RlOwogICAgIGlmIChuZXdEb2N1bWVudCkgewotICAgICAgICBib29sIHN1Y2Nl
c3NmdWxseUZvY3VzZWQgPSBuZXdEb2N1bWVudC0+c2V0Rm9jdXNlZE5vZGUobm9kZSk7CisgICAg
ICAgIGJvb2wgc3VjY2Vzc2Z1bGx5Rm9jdXNlZCA9IG5ld0RvY3VtZW50LT5zZXRGb2N1c2VkTm9k
ZShub2RlLCBkaXJlY3Rpb24pOwogICAgICAgICBpZiAoIXN1Y2Nlc3NmdWxseUZvY3VzZWQpCiAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtODMxLDcgKzgzMSw3IEBAIGJvb2wg
Rm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXNEaXJlY3Rpb25hbGx5SW5Db250YWluZXIoTm9k
ZSogY29udGFpbmVyLCBjb25zCiAgICAgRWxlbWVudCogZWxlbWVudCA9IHRvRWxlbWVudChmb2N1
c0NhbmRpZGF0ZS5mb2N1c2FibGVOb2RlKTsKICAgICBBU1NFUlQoZWxlbWVudCk7CiAKLSAgICBl
bGVtZW50LT5mb2N1cyhmYWxzZSk7CisgICAgZWxlbWVudC0+Zm9jdXMoZmFsc2UsIGRpcmVjdGlv
bik7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRm9jdXNDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxl
ci5oCmluZGV4IDRmNTk4NmQ5NmQyMjc4ZDM0MjAwODg3ZTRmZWJmNTdjMjYyYzYyOGMuLmEzMzNm
N2Q3NTY1ZTA3ZWQ5MzJiNWIzYWE4ZjJhMmZlMWM3NjBhMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9G
b2N1c0NvbnRyb2xsZXIuaApAQCAtNzAsNyArNzAsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBzZXRJ
bml0aWFsRm9jdXMoRm9jdXNEaXJlY3Rpb24sIEtleWJvYXJkRXZlbnQqKTsKICAgICBib29sIGFk
dmFuY2VGb2N1cyhGb2N1c0RpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCosIGJvb2wgaW5pdGlhbEZv
Y3VzID0gZmFsc2UpOwogICAgICAgICAKLSAgICBib29sIHNldEZvY3VzZWROb2RlKE5vZGUqLCBQ
YXNzUmVmUHRyPEZyYW1lPik7CisgICAgYm9vbCBzZXRGb2N1c2VkTm9kZShOb2RlKiwgUGFzc1Jl
ZlB0cjxGcmFtZT4sIEZvY3VzRGlyZWN0aW9uID0gRm9jdXNEaXJlY3Rpb25Ob25lKTsKIAogICAg
IHZvaWQgc2V0QWN0aXZlKGJvb2wpOwogICAgIGJvb2wgaXNBY3RpdmUoKSBjb25zdCB7IHJldHVy
biBtX2lzQWN0aXZlOyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186291</attachid>
            <date>2013-02-03 20:30:53 -0800</date>
            <delta_ts>2013-02-03 22:12:53 -0800</delta_ts>
            <desc>Patch for landing 2</desc>
            <filename>bug-108775-20130204132732.patch</filename>
            <type>text/plain</type>
            <size>26349</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNzE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGY2ZDA4MGQ3Njk1NzNi
MDBlNTQwNGRiOThiMjMxNjMxODI1NzQ4Mi4uZDg4YjRhMWQ2N2YwYTBiZTFhMWFmMjBhZjc3MDJl
YTVjNDczYTExNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk1IEBACisyMDEzLTAyLTAzICBLZW50
IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgRm9jdXNEaXJlY3Rp
b24gYXJndW1lbnQgdG8gSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OmhhbmRsZUZvY3VzRXZl
bnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODc3
NQorCisgICAgICAgIFJldmlld2VkIGJ5IEhhamltZSBNb3JpdGEuCisKKyAgICAgICAgV2UnZCBs
aWtlIHRvIGFkZCBhIEZvY3VzRGlyZWN0aW9uIGFyZ3VtZW50IHRvCisgICAgICAgIEhUTUxUZXh0
Rm9ybUNvbnRyb2xFbGVtZW50OjpoYW5kbGVGb2N1c0V2ZW50IGluIG9yZGVyIHRvIGZpeCBCdWcK
KyAgICAgICAgMTA4NDQ3LiBUaGlzIGlzIGEgcHJlcGFyYXRpb24gZm9yIGl0LgorCisgICAgICAg
IFdlIG5lZWQgdG8gYWRkIEZvY3VzRGlyZWN0aW9uIGFyZ3VtZW50cyB0byBzb21lIGZvY3VzLXJl
bGF0ZWQgZnVuY3Rpb25zCisgICAgICAgIHRvIHBhc3MgaXQgY29ycmVjdGx5IHdoZW4gVEFCIG9y
IFNoaWZ0K1RBQiBpcyBwcmVzc2VkLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gVGhpcyBkb2Vz
bid0IG1ha2UgYW55IGJlaGF2aW9yIGNoYW5nZXMuCisKKyAgICAgICAgKiBodG1sL0hUTUxUZXh0
Rm9ybUNvbnRyb2xFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0Rm9ybUNv
bnRyb2xFbGVtZW50OjpkaXNwYXRjaEZvY3VzRXZlbnQpOgorICAgICAgICBUbyBwYXNzIHRoZSBG
b2N1c0RpcmVjdGlvbiBhcmd1bWVudCB0byBoYW5kbGVGb2N1c0V2ZW50LCB3ZSBuZWVkIHRvIGFk
ZAorICAgICAgICBpdCB0byBkaXNwYXRjaEZvY3VzRXZlbnQgdG9vLgorICAgICAgICAqIGh0bWwv
SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaDoKKyAgICAgICAgKEhUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50KToKKyAgICAgICAgQWRkIEZvY3VzRGlyZWN0aW9uIGFydWdtZW50IHRvIGRpc3Bh
dGNoRm9jdXNFdmVudC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVt
ZW50OjpoYW5kbGVGb2N1c0V2ZW50KToKKyAgICAgICAgQWRkIEZvY3VzRGlyZWN0aW9uIGFyZ3Vt
ZW50LgorCisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6
ZGlzcGF0Y2hGb2N1c0V2ZW50KTogQWRkIEZvY3VzRGlyZWN0aW9uIGFyZ3VtZW50LgorICAgICAg
ICAqIGRvbS9Ob2RlLmg6CisgICAgICAgIChOb2RlKTogRGl0dG8uCisKKyAgICAgICAgKiBkb20v
RG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNldEZvY3VzZWROb2Rl
KTogQWRkIEZvY3VzRGlyZWN0aW9uIGFyZ3VtZW50IGluCisgICAgICAgIG9yZGVyIHRvIHBhc3Mg
aXQgdG8gTm9kZTo6ZGlzcGF0Y2hGb2N1c0V2ZW50LgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5o
OgorICAgICAgICAoRG9jdW1lbnQpOiBEaXR0by4KKworICAgICAgICAqIHBhZ2UvRm9jdXNDb250
cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRpc3BhdGNoRXZlbnRzT25XaW5kb3dBbmRG
b2N1c2VkTm9kZSk6CisgICAgICAgIEFkanVzdCBOb2RlOjpkaXNwYXRjaEZvY3VzRXZlbnQgYXJn
dW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1c0lu
RG9jdW1lbnRPcmRlcik6CisgICAgICAgIFBhc3MgRm9jdXNEaXJlY3RpbyB0byBFbGVtZW50Ojpm
b2N1cy4KKyAgICAgICAgKFdlYkNvcmU6OkZvY3VzQ29udHJvbGxlcjo6c2V0Rm9jdXNlZE5vZGUp
OgorICAgICAgICBBZGQgRm9jdXNEaXJlY3Rpb24gYXJndW1lbnQgaW4gb3JkZXIgdG8gcGFzcyBp
dCB0byBEb2N1bWVudDo6c2V0Rm9jdXNlZE5vZGUuCisgICAgICAgIChXZWJDb3JlOjpGb2N1c0Nv
bnRyb2xsZXI6OmFkdmFuY2VGb2N1c0RpcmVjdGlvbmFsbHlJbkNvbnRhaW5lcik6CisgICAgICAg
IFBhc3MgRm9jdXNEaXJlY3RpbyB0byBFbGVtZW50Ojpmb2N1cy4KKyAgICAgICAgKiBwYWdlL0Zv
Y3VzQ29udHJvbGxlci5oOgorICAgICAgICAoRm9jdXNDb250cm9sbGVyKTogQWRkIEZvY3VzRGly
ZWN0aW9uIGFyZ3VtZW50IHRvIHNldEZvY3VzZWROb2RlLgorCisgICAgICAgICogZG9tL0VsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6Zm9jdXMpOgorICAgICAgICBBZGQg
Rm9jdXNEaXJlY3Rpb24gYXJndW1lbnQgdG8gcGFzcyBpdCB0byBGb2N1c0NvbnRyb2xsZXI6OnNl
dEZvY3VzZWROb2RlLgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAgICAgIChFbGVtZW50
KTogRGl0dG8uCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgVXBkYXRlIEZv
Y3VzQ29udHJvbGxlcjo6c2V0Rm9jdXNlZE5vZGUgYW5kIERvY3VtZW50OjpzZXRGb2N1c2VkTm9k
ZS4KKworICAgICAgICAqIGh0bWwvSFRNTExhYmVsRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MTGFiZWxFbGVtZW50Ojpmb2N1cyk6IEFkanVzdCBGb2N1c0RpcmVjdGlvbiBhcmd1
bWVudC4KKyAgICAgICAgKiBodG1sL0hUTUxMYWJlbEVsZW1lbnQuaDoKKyAgICAgICAgKEhUTUxM
YWJlbEVsZW1lbnQpOiBEaXR0by4KKyAgICAgICAgKiBodG1sL0hUTUxMZWdlbmRFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxMZWdlbmRFbGVtZW50Ojpmb2N1cyk6IERpdHRvLgor
ICAgICAgICAqIGh0bWwvSFRNTExlZ2VuZEVsZW1lbnQuaDoKKyAgICAgICAgKEhUTUxMZWdlbmRF
bGVtZW50KTogRGl0dG8uCisgICAgICAgICogaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6ZGlzcGF0Y2hGb2N1c0V2ZW50KTog
RGl0dG8uCisgICAgICAgICogaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oOgorICAgICAgICAoSFRN
TFNlbGVjdEVsZW1lbnQpOiBEaXR0by4KKworICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpkZWZhdWx0Rm9jdXMp
OgorICAgICAgICBBZGQgRm9jdXNEaXJlY3Rpb24gYXJndW1lbnQgaW4gb3JkZXIgdG8gcGFzcyBp
dCBmcm9tCisgICAgICAgIEhUTUxJbnB1dEVsZW1lbnQ6OmZvY3VzKCkgdG8gSFRNTFRleHRGb3Jt
Q29udHJvbEVsZW1lbnQ6OmZvY3VzKCkuCisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVt
ZW50Ojpmb2N1cyk6CisgICAgICAgIFBhc3MgdGhlIEZvY3VzRGlyZWN0aW9uIGFyZ3VtZW50IHRv
IElucHV0VHlwZTo6Zm9jdXMuIFNlZSBhYm92ZS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1
dEVsZW1lbnQ6OmhhbmRsZUZvY3VzRXZlbnQpOgorICAgICAgICBBZGp1c3QgRm9jdXNEaXJlY3Rp
b24gYXJndW1lbnQuCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6CisgICAgICAg
IChIVE1MSW5wdXRFbGVtZW50KToKKyAgICAgICAgKiBodG1sL0lucHV0VHlwZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OmZvY3VzKTogQWRkIEZvY3VzRGlyZWN0aW9uIGFyZ3Vt
ZW50LgorICAgICAgICAqIGh0bWwvSW5wdXRUeXBlLmg6CisgICAgICAgIChJbnB1dFR5cGUpOiBE
aXR0by4KKworICAgICAgICAqIGh0bWwvQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1
dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRp
bWVJbnB1dFR5cGU6OmZvY3VzKToKKyAgICAgICAgQWRkIEZvY3VzRGlyZWN0aW9uIGFyZ3VtZW50
IHRvIGZvbGxvdyBJbnB1dFR5cGUuCisgICAgICAgICogaHRtbC9CYXNlTXVsdGlwbGVGaWVsZHNE
YXRlQW5kVGltZUlucHV0VHlwZS5oOgorICAgICAgICAoQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFu
ZFRpbWVJbnB1dFR5cGUpOiBEaXR0by4KKwogMjAxMy0wMi0wMyAgS2VudGFybyBIYXJhICA8aGFy
YWtlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW1Y4XSBQYXNzIGFuIElzb2xhdGUgdG8gSGFz
SW5zdGFuY2UoKSAocGFydCAyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5l
eHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBhNGE4N2FiNGViYTBh
NmEzOTc1MWM5OTZiNjY5YTM1ZWE3ODdlNTQwLi43YjhiOTdkOTZjM2JmZmY4NDEzYmM0ZjU5YTZj
ZjliYTIxYTdlMDNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMzg0LDcgKzM4NCw3IEBAIF9f
Wk43V2ViQ29yZTE1RGF0YWJhc2VNYW5hZ2VyN21hbmFnZXJFdgogX19aTjdXZWJDb3JlMTVEYXRh
YmFzZU1hbmFnZXI4c2V0UXVvdGFFUE5TXzE0U2VjdXJpdHlPcmlnaW5FeQogX19aTjdXZWJDb3Jl
MTVEYXRhYmFzZU1hbmFnZXI5c2V0Q2xpZW50RVBOU18yMURhdGFiYXNlTWFuYWdlckNsaWVudEUK
IF9fWk43V2ViQ29yZTE1Rm9jdXNDb250cm9sbGVyMTBzZXRGb2N1c2VkRWIKLV9fWk43V2ViQ29y
ZTE1Rm9jdXNDb250cm9sbGVyMTRzZXRGb2N1c2VkTm9kZUVQTlNfNE5vZGVFTjNXVEYxMFBhc3NS
ZWZQdHJJTlNfNUZyYW1lRUVFCitfX1pON1dlYkNvcmUxNUZvY3VzQ29udHJvbGxlcjE0c2V0Rm9j
dXNlZE5vZGVFUE5TXzROb2RlRU4zV1RGMTBQYXNzUmVmUHRySU5TXzVGcmFtZUVFRU5TXzE0Rm9j
dXNEaXJlY3Rpb25FCiBfX1pON1dlYkNvcmUxNUZvY3VzQ29udHJvbGxlcjE1c2V0Rm9jdXNlZEZy
YW1lRU4zV1RGMTBQYXNzUmVmUHRySU5TXzVGcmFtZUVFRQogX19aTjdXZWJDb3JlMTVGb2N1c0Nv
bnRyb2xsZXIxNXNldEluaXRpYWxGb2N1c0VOU18xNEZvY3VzRGlyZWN0aW9uRVBOU18xM0tleWJv
YXJkRXZlbnRFCiBfX1pON1dlYkNvcmUxNUZvY3VzQ29udHJvbGxlcjI4c2V0Q29udGFpbmluZ1dp
bmRvd0lzVmlzaWJsZUViCkBAIC05MzAsNyArOTMwLDcgQEAgX19aTjdXZWJDb3JlOERvY3VtZW50
MTFjcmVhdGVSYW5nZUV2CiBfX1pON1dlYkNvcmU4RG9jdW1lbnQxMnVwZGF0ZUxheW91dEV2CiBf
X1pON1dlYkNvcmU4RG9jdW1lbnQxM2NyZWF0ZUVsZW1lbnRFUktOU18xM1F1YWxpZmllZE5hbWVF
YgogX19aTjdXZWJDb3JlOERvY3VtZW50MTRjcmVhdGVUZXh0Tm9kZUVSS04zV1RGNlN0cmluZ0UK
LV9fWk43V2ViQ29yZThEb2N1bWVudDE0c2V0Rm9jdXNlZE5vZGVFTjNXVEYxMFBhc3NSZWZQdHJJ
TlNfNE5vZGVFRUUKK19fWk43V2ViQ29yZThEb2N1bWVudDE0c2V0Rm9jdXNlZE5vZGVFTjNXVEYx
MFBhc3NSZWZQdHJJTlNfNE5vZGVFRUVOU18xNEZvY3VzRGlyZWN0aW9uRQogX19aTjdXZWJDb3Jl
OERvY3VtZW50MTZpc1BhZ2VCb3hWaXNpYmxlRWkKIF9fWk43V2ViQ29yZThEb2N1bWVudDE3Z2V0
Rm9jdXNhYmxlTm9kZXNFUk4zV1RGNlZlY3RvcklOUzFfNlJlZlB0cklOU180Tm9kZUVFRUxtMEVF
RQogX19aTjdXZWJDb3JlOERvY3VtZW50MjBzdHlsZVJlc29sdmVyQ2hhbmdlZEVOU18yM1N0eWxl
UmVzb2x2ZXJVcGRhdGVGbGFnRQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggODVlODg1MmJj
N2ZhMDg2YWU0YzEwMTM2NzQ3ZjkzODdiNjcyOWNlNi4uNmM3NzgxZWZmMTlmNzhmMDlmZmQ3ZTZj
YWZkM2ZjMWMyYjI1NjRlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0zMjg2LDcgKzMy
ODYsNyBAQCB2b2lkIERvY3VtZW50OjpzZXRBbm5vdGF0ZWRSZWdpb25zKGNvbnN0IFZlY3RvcjxB
bm5vdGF0ZWRSZWdpb25WYWx1ZT4mIHJlZ2lvbnMpCiB9CiAjZW5kaWYKIAotYm9vbCBEb2N1bWVu
dDo6c2V0Rm9jdXNlZE5vZGUoUGFzc1JlZlB0cjxOb2RlPiBwcnBOZXdGb2N1c2VkTm9kZSkKK2Jv
b2wgRG9jdW1lbnQ6OnNldEZvY3VzZWROb2RlKFBhc3NSZWZQdHI8Tm9kZT4gcHJwTmV3Rm9jdXNl
ZE5vZGUsIEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbikKIHsKICAgICBSZWZQdHI8Tm9kZT4gbmV3
Rm9jdXNlZE5vZGUgPSBwcnBOZXdGb2N1c2VkTm9kZTsKIApAQCAtMzM2NCw3ICszMzY0LDcgQEAg
Ym9vbCBEb2N1bWVudDo6c2V0Rm9jdXNlZE5vZGUoUGFzc1JlZlB0cjxOb2RlPiBwcnBOZXdGb2N1
c2VkTm9kZSkKICAgICAgICAgbV9mb2N1c2VkTm9kZSA9IG5ld0ZvY3VzZWROb2RlOwogCiAgICAg
ICAgIC8vIERpc3BhdGNoIHRoZSBmb2N1cyBldmVudCBhbmQgbGV0IHRoZSBub2RlIGRvIGFueSBv
dGhlciBmb2N1cyByZWxhdGVkIGFjdGl2aXRpZXMgKGltcG9ydGFudCBmb3IgdGV4dCBmaWVsZHMp
Ci0gICAgICAgIG1fZm9jdXNlZE5vZGUtPmRpc3BhdGNoRm9jdXNFdmVudChvbGRGb2N1c2VkTm9k
ZSk7CisgICAgICAgIG1fZm9jdXNlZE5vZGUtPmRpc3BhdGNoRm9jdXNFdmVudChvbGRGb2N1c2Vk
Tm9kZSwgZGlyZWN0aW9uKTsKIAogICAgICAgICBpZiAobV9mb2N1c2VkTm9kZSAhPSBuZXdGb2N1
c2VkTm9kZSkgewogICAgICAgICAgICAgLy8gaGFuZGxlciBzaGlmdGVkIGZvY3VzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5oCmluZGV4IGUxYmI4Mzc5ZjdjMjNjNGZlMTk5YTRjMjYxYzk4YTAxZmZlNjg5OTAu
LjdiZDlmMTkwYzQ3NWE1NzMyZTMzMjM1MzFlN2ViNTc0NDE2MmIxNmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiRE9NVGltZVN0YW1wLmgiCiAjaW5j
bHVkZSAiRG9jdW1lbnRFdmVudFF1ZXVlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRUaW1pbmcuaCIK
KyNpbmNsdWRlICJGb2N1c0RpcmVjdGlvbi5oIgogI2luY2x1ZGUgIkljb25VUkwuaCIKICNpbmNs
dWRlICJJbnNwZWN0b3JDb3VudGVycy5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKQEAgLTY4Niw3
ICs2ODcsNyBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIHNlbGVjdGVkU3R5bGVzaGVldFNldCgpIGNv
bnN0OwogICAgIHZvaWQgc2V0U2VsZWN0ZWRTdHlsZXNoZWV0U2V0KGNvbnN0IFN0cmluZyYpOwog
Ci0gICAgYm9vbCBzZXRGb2N1c2VkTm9kZShQYXNzUmVmUHRyPE5vZGU+KTsKKyAgICBib29sIHNl
dEZvY3VzZWROb2RlKFBhc3NSZWZQdHI8Tm9kZT4sIEZvY3VzRGlyZWN0aW9uID0gRm9jdXNEaXJl
Y3Rpb25Ob25lKTsKICAgICBOb2RlKiBmb2N1c2VkTm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fZm9j
dXNlZE5vZGUuZ2V0KCk7IH0KICAgICBVc2VyQWN0aW9uRWxlbWVudFNldCYgdXNlckFjdGlvbkVs
ZW1lbnRzKCkgIHsgcmV0dXJuIG1fdXNlckFjdGlvbkVsZW1lbnRzOyB9CiAgICAgY29uc3QgVXNl
ckFjdGlvbkVsZW1lbnRTZXQmIHVzZXJBY3Rpb25FbGVtZW50cygpIGNvbnN0IHsgcmV0dXJuIG1f
dXNlckFjdGlvbkVsZW1lbnRzOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggYjc3ZjJmOTli
NDhlYmRhNDFkZDViMDY0ZWYzZDZhZWIxNmM5Y2JiNS4uODM4MmM1ZDJiZmU1M2IwMDcxZWJkNmEy
MjFjOGQxMmFlY2IzMWY2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMTg2NCw3ICsxODY0
LDcgQEAgQ1NTU3R5bGVEZWNsYXJhdGlvbiAqRWxlbWVudDo6c3R5bGUoKQogICAgIHJldHVybiAw
OwogfQogCi12b2lkIEVsZW1lbnQ6OmZvY3VzKGJvb2wgcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9u
KQordm9pZCBFbGVtZW50Ojpmb2N1cyhib29sIHJlc3RvcmVQcmV2aW91c1NlbGVjdGlvbiwgRm9j
dXNEaXJlY3Rpb24gZGlyZWN0aW9uKQogewogICAgIGlmICghaW5Eb2N1bWVudCgpKQogICAgICAg
ICByZXR1cm47CkBAIC0xODkxLDcgKzE4OTEsNyBAQCB2b2lkIEVsZW1lbnQ6OmZvY3VzKGJvb2wg
cmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uKQogICAgICAgICAvLyBJZiBhIGZvY3VzIGV2ZW50IGhh
bmRsZXIgY2hhbmdlcyB0aGUgZm9jdXMgdG8gYSBkaWZmZXJlbnQgbm9kZSBpdAogICAgICAgICAv
LyBkb2VzIG5vdCBtYWtlIHNlbnNlIHRvIGNvbnRpbnVlIGFuZCB1cGRhdGUgYXBwZWFyZW5jZS4K
ICAgICAgICAgcHJvdGVjdCA9IHRoaXM7Ci0gICAgICAgIGlmICghcGFnZS0+Zm9jdXNDb250cm9s
bGVyKCktPnNldEZvY3VzZWROb2RlKHRoaXMsIGRvYy0+ZnJhbWUoKSkpCisgICAgICAgIGlmICgh
cGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPnNldEZvY3VzZWROb2RlKHRoaXMsIGRvYy0+ZnJhbWUo
KSwgZGlyZWN0aW9uKSkKICAgICAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dC5oCmluZGV4IGNlNTQxZjUzZTAwNTlhMGJlYzVmM2JkMmE1YmE5OThjZjMxNzk4NDcuLmRmMTYz
M2RkYWM2MDJmYjM1M2ExN2QwMjY5MGFlNDNlZTVkZmI1ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApA
QCAtMzQ1LDcgKzM0NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGNvbnN0IFF1YWxpZmllZE5h
bWUmIGltYWdlU291cmNlQXR0cmlidXRlTmFtZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgU3RyaW5n
IHRhcmdldCgpIGNvbnN0IHsgcmV0dXJuIFN0cmluZygpOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQg
Zm9jdXMoYm9vbCByZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24gPSB0cnVlKTsKKyAgICB2aXJ0dWFs
IHZvaWQgZm9jdXMoYm9vbCByZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24gPSB0cnVlLCBGb2N1c0Rp
cmVjdGlvbiA9IEZvY3VzRGlyZWN0aW9uTm9uZSk7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUZv
Y3VzQXBwZWFyYW5jZShib29sIHJlc3RvcmVQcmV2aW91c1NlbGVjdGlvbik7CiAgICAgdmlydHVh
bCB2b2lkIGJsdXIoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IDI3YmMxM2I0ZjkyYjM1YmQ4ZjVm
ODRmZWNhN2I5YjlkZGU5ZDlhZGYuLmM4NDNjNzI3MzY1NGE5MTAyN2I2ZmQwYmYwM2VjNjA4NDRh
OTU5MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTI0MTIsNyArMjQxMiw3IEBAIGJvb2wgTm9kZTo6
ZGlzcGF0Y2hXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZlbnQpCiAgICAg
cmV0dXJuIEV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hFdmVudCh0aGlzLCBXaGVlbEV2ZW50RGlz
cGF0Y2hNZWRpYXRvcjo6Y3JlYXRlKGV2ZW50LCBkb2N1bWVudCgpLT5kZWZhdWx0VmlldygpKSk7
CiB9CiAKLXZvaWQgTm9kZTo6ZGlzcGF0Y2hGb2N1c0V2ZW50KFBhc3NSZWZQdHI8Tm9kZT4gb2xk
Rm9jdXNlZE5vZGUpCit2b2lkIE5vZGU6OmRpc3BhdGNoRm9jdXNFdmVudChQYXNzUmVmUHRyPE5v
ZGU+IG9sZEZvY3VzZWROb2RlLCBGb2N1c0RpcmVjdGlvbikKIHsKICAgICBpZiAoZG9jdW1lbnQo
KS0+cGFnZSgpKQogICAgICAgICBkb2N1bWVudCgpLT5wYWdlKCktPmNocm9tZSgpLT5jbGllbnQo
KS0+ZWxlbWVudERpZEZvY3VzKHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKaW5kZXggMWMyNDRlYjJhODkxZTkz
NjQ0MDFiNTcwNjFhY2ZhNjc5MTM4N2JjNC4uNjU2MzQ3YmJkZTE1ODY4YWQ2MmY4ZjllODhkNjll
OWI1YmM0NmFkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbmNsdWRlICJF
ZGl0aW5nQm91bmRhcnkuaCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgorI2luY2x1ZGUgIkZv
Y3VzRGlyZWN0aW9uLmgiCiAjaW5jbHVkZSAiS1VSTEhhc2guaCIKICNpbmNsdWRlICJMYXlvdXRS
ZWN0LmgiCiAjaW5jbHVkZSAiTXV0YXRpb25PYnNlcnZlci5oIgpAQCAtNjM3LDcgKzYzOCw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIGRpc3BhdGNoU2ltdWxhdGVkQ2xpY2soRXZlbnQqIHVuZGVybHlp
bmdFdmVudCwgU2ltdWxhdGVkQ2xpY2tNb3VzZUV2ZW50T3B0aW9ucyA9IFNlbmROb0V2ZW50cywg
U2ltdWxhdGVkQ2xpY2tWaXN1YWxPcHRpb25zID0gU2hvd1ByZXNzZWRMb29rKTsKICAgICBib29s
IGRpc3BhdGNoQmVmb3JlTG9hZEV2ZW50KGNvbnN0IFN0cmluZyYgc291cmNlVVJMKTsKIAotICAg
IHZpcnR1YWwgdm9pZCBkaXNwYXRjaEZvY3VzRXZlbnQoUGFzc1JlZlB0cjxOb2RlPiBvbGRGb2N1
c2VkTm9kZSk7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRm9jdXNFdmVudChQYXNzUmVmUHRy
PE5vZGU+IG9sZEZvY3VzZWROb2RlLCBGb2N1c0RpcmVjdGlvbik7CiAgICAgdmlydHVhbCB2b2lk
IGRpc3BhdGNoQmx1ckV2ZW50KFBhc3NSZWZQdHI8Tm9kZT4gbmV3Rm9jdXNlZE5vZGUpOwogICAg
IHZpcnR1YWwgdm9pZCBkaXNwYXRjaENoYW5nZUV2ZW50KCk7CiAgICAgdmlydHVhbCB2b2lkIGRp
c3BhdGNoSW5wdXRFdmVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNl
TXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0Jhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcAppbmRleCA4Yzgz
ZGJkNzU5ZDllYjI2NzRiNjRlMjNjZmFlZjIwNjRhNzI0NzhlLi5lYjI4YjM4ZDEyZDU4MjQwOTFi
MDUxOGI1ZjFjOGE3NjExYWNhZGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jh
c2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0Jhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcApAQCAt
MjQwLDcgKzI0MCw3IEBAIHZvaWQgQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5
cGU6OmRlc3Ryb3lTaGFkb3dTdWJ0cmVlKCkKICAgICBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6
OmRlc3Ryb3lTaGFkb3dTdWJ0cmVlKCk7CiB9CiAKLXZvaWQgQmFzZU11bHRpcGxlRmllbGRzRGF0
ZUFuZFRpbWVJbnB1dFR5cGU6OmZvY3VzKGJvb2wpCit2b2lkIEJhc2VNdWx0aXBsZUZpZWxkc0Rh
dGVBbmRUaW1lSW5wdXRUeXBlOjpmb2N1cyhib29sLCBGb2N1c0RpcmVjdGlvbikKIHsKICAgICBp
ZiAobV9kYXRlVGltZUVkaXRFbGVtZW50KQogICAgICAgICBtX2RhdGVUaW1lRWRpdEVsZW1lbnQt
PmZvY3VzQnlPd25lcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlTXVs
dGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9C
YXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZS5oCmluZGV4IGQyZjNhNWIyNjI0
MjU5ODU5NTAxNThjZjgzZDY5YmE1M2RhOTllMDcuLmIzNGNmOGI0MDZlMGY3ZGNjNjNlYjdjODdi
ZWQ3NWRiN2NiMGQyOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZU11bHRp
cGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0Jhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlLmgKQEAgLTgxLDcgKzgxLDcg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlU2hhZG93U3VidHJlZSgpIE9WRVJS
SURFIEZJTkFMOwogICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95U2hhZG93U3VidHJlZSgpIE9WRVJS
SURFIEZJTkFMOwogICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlZEF0dHJpYnV0ZUNoYW5nZWQoKSBP
VkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIHZvaWQgZm9jdXMoYm9vbCByZXN0b3JlUHJldmlv
dXNTZWxlY3Rpb24pIE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCBmb2N1cyhib29s
IHJlc3RvcmVQcmV2aW91c1NlbGVjdGlvbiwgRm9jdXNEaXJlY3Rpb24pIE9WRVJSSURFIEZJTkFM
OwogICAgIHZpcnR1YWwgdm9pZCBmb3J3YXJkRXZlbnQoRXZlbnQqKSBPVkVSUklERSBGSU5BTDsK
ICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlS2V5ZG93bkV2ZW50KEtleWJvYXJkRXZlbnQqKSBPVkVS
UklERSBGSU5BTDsKICAgICB2aXJ0dWFsIGJvb2wgaGFzQmFkSW5wdXQoKSBjb25zdCBPVkVSUklE
RTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IGNmMzhmMmQx
MzU5ZDk2YjEwZTQwZjRhYjMyMjliMzc0MTIzOWIyMTIuLjQ4ZDk3M2E3ZTNhYjJiNGRhMzFiZTg5
OGM2ZmE1YWZjZTBmYjEyMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50
LmNwcApAQCAtMzcwLDE0ICszNzAsMTQgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpkZWZhdWx0
Qmx1cigpCiAgICAgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OmJsdXIoKTsKIH0KIAotdm9p
ZCBIVE1MSW5wdXRFbGVtZW50OjpkZWZhdWx0Rm9jdXMoYm9vbCByZXN0b3JlUHJldmlvdXNTZWxl
Y3Rpb24pCit2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmRlZmF1bHRGb2N1cyhib29sIHJlc3RvcmVQ
cmV2aW91c1NlbGVjdGlvbiwgRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uKQogewotICAgIEhUTUxU
ZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojpmb2N1cyhyZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24pOwor
ICAgIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojpmb2N1cyhyZXN0b3JlUHJldmlvdXNTZWxl
Y3Rpb24sIGRpcmVjdGlvbik7CiB9CiAKLXZvaWQgSFRNTElucHV0RWxlbWVudDo6Zm9jdXMoYm9v
bCByZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24pCit2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmZvY3Vz
KGJvb2wgcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uLCBGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24p
CiB7Ci0gICAgbV9pbnB1dFR5cGUtPmZvY3VzKHJlc3RvcmVQcmV2aW91c1NlbGVjdGlvbik7Cisg
ICAgbV9pbnB1dFR5cGUtPmZvY3VzKHJlc3RvcmVQcmV2aW91c1NlbGVjdGlvbiwgZGlyZWN0aW9u
KTsKIH0KIAogYm9vbCBIVE1MSW5wdXRFbGVtZW50OjpoYXNDdXN0b21Gb2N1c0xvZ2ljKCkgY29u
c3QKQEAgLTQzNyw4ICs0MzcsOSBAQCBib29sIEhUTUxJbnB1dEVsZW1lbnQ6OnNob3VsZFVzZUlu
cHV0TWV0aG9kKCkKICAgICByZXR1cm4gbV9pbnB1dFR5cGUtPnNob3VsZFVzZUlucHV0TWV0aG9k
KCk7CiB9CiAKLXZvaWQgSFRNTElucHV0RWxlbWVudDo6aGFuZGxlRm9jdXNFdmVudCgpCit2b2lk
IEhUTUxJbnB1dEVsZW1lbnQ6OmhhbmRsZUZvY3VzRXZlbnQoRm9jdXNEaXJlY3Rpb24pCiB7Cisg
ICAgLy8gRklYTUU6IFBhc3MgdGhlIEZvY3VzRGlyZWN0aW9uIGFyZ3VtZW50IHRvIElucHV0VHlw
ZTpoYW5kbGVGb2N1c0V2ZW50LgogICAgIG1faW5wdXRUeXBlLT5oYW5kbGVGb2N1c0V2ZW50KCk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKaW5kZXggZWVmNmU0NDBm
NTJhYWQxYTk4YjRlNmU1ZDRiMDM0MDgxZDNjYmNiOC4uNWQzNGYzNDIyZGM2ODMwMTFhOTJlZjdj
ZDE3NGQzMzRiZmU1OGFiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5w
dXRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgK
QEAgLTI4MCw4ICsyODAsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgYmx1cigpIE9W
RVJSSURFOwogICAgIHZvaWQgZGVmYXVsdEJsdXIoKTsKLSAgICB2b2lkIGRlZmF1bHRGb2N1cyhi
b29sIHJlc3RvcmVQcmV2aW91c1NlbGVjdGlvbik7Ci0gICAgdmlydHVhbCB2b2lkIGZvY3VzKGJv
b2wgcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uID0gdHJ1ZSkgT1ZFUlJJREU7CisgICAgdm9pZCBk
ZWZhdWx0Rm9jdXMoYm9vbCByZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24sIEZvY3VzRGlyZWN0aW9u
KTsKKyAgICB2aXJ0dWFsIHZvaWQgZm9jdXMoYm9vbCByZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24g
PSB0cnVlLCBGb2N1c0RpcmVjdGlvbiA9IEZvY3VzRGlyZWN0aW9uTm9uZSkgT1ZFUlJJREU7CiAK
ICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSgpIGNvbnN0IE9WRVJSSURFOwog
CkBAIC0zODAsNyArMzgwLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlUGxh
Y2Vob2xkZXJUZXh0KCk7CiAgICAgdmlydHVhbCBib29sIGlzRW1wdHlWYWx1ZSgpIGNvbnN0IE9W
RVJSSURFIHsgcmV0dXJuIGlubmVyVGV4dFZhbHVlKCkuaXNFbXB0eSgpOyB9CiAgICAgdmlydHVh
bCBib29sIGlzRW1wdHlTdWdnZXN0ZWRWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIHN1Z2dlc3RlZFZh
bHVlKCkuaXNFbXB0eSgpOyB9Ci0gICAgdmlydHVhbCB2b2lkIGhhbmRsZUZvY3VzRXZlbnQoKTsK
KyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRm9jdXNFdmVudChGb2N1c0RpcmVjdGlvbik7CiAgICAg
dmlydHVhbCB2b2lkIGhhbmRsZUJsdXJFdmVudCgpOwogCiAgICAgdmlydHVhbCBib29sIGlzT3B0
aW9uYWxGb3JtQ29udHJvbCgpIGNvbnN0IHsgcmV0dXJuICFpc1JlcXVpcmVkRm9ybUNvbnRyb2wo
KTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5jcHAKaW5kZXggMGI4Mjdh
ZWQ4OTEwZWY1NGQ3MzNhMTkyZThjNGIxZmY2MzJjMmRjNi4uOTNlMGZmY2ZkZDBhYTc2NDNmODVh
NDNmZTBhN2Q5NTIyZTExYWJmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TGFiZWxFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1l
bnQuY3BwCkBAIC0xNTUsMTEgKzE1NSwxMSBAQCBib29sIEhUTUxMYWJlbEVsZW1lbnQ6OndpbGxS
ZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRzKCkKICAgICByZXR1cm4gSFRNTEVsZW1lbnQ6OndpbGxS
ZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRzKCk7CiB9CiAKLXZvaWQgSFRNTExhYmVsRWxlbWVudDo6
Zm9jdXMoYm9vbCkKK3ZvaWQgSFRNTExhYmVsRWxlbWVudDo6Zm9jdXMoYm9vbCwgRm9jdXNEaXJl
Y3Rpb24gZGlyZWN0aW9uKQogewogICAgIC8vIHRvIG1hdGNoIG90aGVyIGJyb3dzZXJzLCBhbHdh
eXMgcmVzdG9yZSBwcmV2aW91cyBzZWxlY3Rpb24KICAgICBpZiAoSFRNTEVsZW1lbnQqIGVsZW1l
bnQgPSBjb250cm9sKCkpCi0gICAgICAgIGVsZW1lbnQtPmZvY3VzKCk7CisgICAgICAgIGVsZW1l
bnQtPmZvY3VzKHRydWUsIGRpcmVjdGlvbik7CiB9CiAKIHZvaWQgSFRNTExhYmVsRWxlbWVudDo6
YWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxMYWJlbEVsZW1lbnQuaAppbmRleCBmNDhjNjgwNWU0OTFhZDZlODA0OTk0ZjZiNmNlNzk2Yjhh
OTZmZWZhLi4wOGJhYTllYjkwZDU3YjI2OGY2OWYzNTg5NDMyZjRjZWQ2ZjVmYTJjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuaApAQCAtNTIsNyArNTIsNyBAQCBwcml2YXRl
OgogICAgIC8vIE92ZXJyaWRkZW4gdG8gZWl0aGVyIGNsaWNrKCkgb3IgZm9jdXMoKSB0aGUgY29y
cmVzcG9uZGluZyBjb250cm9sLgogICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVy
KEV2ZW50Kik7CiAKLSAgICB2b2lkIGZvY3VzKGJvb2wgcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9u
ID0gdHJ1ZSk7CisgICAgdmlydHVhbCB2b2lkIGZvY3VzKGJvb2wgcmVzdG9yZVByZXZpb3VzU2Vs
ZWN0aW9uLCBGb2N1c0RpcmVjdGlvbikgT1ZFUlJJREU7CiB9OwogCiB9IC8vbmFtZXNwYWNlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuY3BwCmluZGV4IGQ0NmM2ZDkyMTk5
MDNmNTA3YTk0MmY5NzRhMGJmYTQ2MzNkNTY3OTAuLjM3OGJmNDkzNzU4YmE5ZThmZDU0NzUxYTRh
ZDljZTk4NTZiOWRiYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2Vu
ZEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQu
Y3BwCkBAIC02NywxNCArNjcsMTQgQEAgSFRNTEZvcm1Db250cm9sRWxlbWVudCogSFRNTExlZ2Vu
ZEVsZW1lbnQ6OmFzc29jaWF0ZWRDb250cm9sKCkKICAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBI
VE1MTGVnZW5kRWxlbWVudDo6Zm9jdXMoYm9vbCkKK3ZvaWQgSFRNTExlZ2VuZEVsZW1lbnQ6OmZv
Y3VzKGJvb2wsIEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbikKIHsKICAgICBpZiAoaXNGb2N1c2Fi
bGUoKSkKLSAgICAgICAgRWxlbWVudDo6Zm9jdXMoKTsKKyAgICAgICAgRWxlbWVudDo6Zm9jdXMo
dHJ1ZSwgZGlyZWN0aW9uKTsKICAgICAgICAgCiAgICAgLy8gVG8gbWF0Y2ggb3RoZXIgYnJvd3Nl
cnMnIGJlaGF2aW9yLCBuZXZlciByZXN0b3JlIHByZXZpb3VzIHNlbGVjdGlvbi4KICAgICBpZiAo
SFRNTEZvcm1Db250cm9sRWxlbWVudCogY29udHJvbCA9IGFzc29jaWF0ZWRDb250cm9sKCkpCi0g
ICAgICAgIGNvbnRyb2wtPmZvY3VzKGZhbHNlKTsKKyAgICAgICAgY29udHJvbC0+Zm9jdXMoZmFs
c2UsIGRpcmVjdGlvbik7CiB9CiAKIHZvaWQgSFRNTExlZ2VuZEVsZW1lbnQ6OmFjY2Vzc0tleUFj
dGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTExlZ2VuZEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVs
ZW1lbnQuaAppbmRleCA1NDllMTNiNjFiNzFmZmVkYjk0OTQwNGRhNTJmNDEyMWE4NGEyODM5Li4z
N2IwNmYwNWIxMzljNWUzODljOGMyMjdjZWUzNDY1ZGI5YTQ3MzgyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTGVnZW5kRWxlbWVudC5oCkBAIC00MSw3ICs0MSw3IEBAIHByaXZhdGU6CiAgICAg
SFRNTEZvcm1Db250cm9sRWxlbWVudCogYXNzb2NpYXRlZENvbnRyb2woKTsKIAogICAgIHZpcnR1
YWwgdm9pZCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpOwotICAgIHZpcnR1
YWwgdm9pZCBmb2N1cyhib29sIHJlc3RvcmVQcmV2aW91c1NlbGVjdGlvbiA9IHRydWUpOworICAg
IHZpcnR1YWwgdm9pZCBmb2N1cyhib29sIHJlc3RvcmVQcmV2aW91c1NlbGVjdGlvbiwgRm9jdXNE
aXJlY3Rpb24pIE9WRVJSSURFOwogICAgIHZpcnR1YWwgSFRNTEZvcm1FbGVtZW50KiB2aXJ0dWFs
Rm9ybSgpIGNvbnN0IE9WRVJSSURFOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxl
Y3RFbGVtZW50LmNwcAppbmRleCBkN2E2ZjRkOTE2YmI2NWJiOTVjZjEwMTQ0ZjgxMDI2MzIyZTc5
ZjVlLi5hMTkwYWVjZDA0MDJmODc0N2VmYWZjY2NhODQ5YmI3OWRiMjE1YWRlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcApAQCAtOTAwLDEzICs5MDAsMTMgQEAg
aW50IEhUTUxTZWxlY3RFbGVtZW50OjpsaXN0VG9PcHRpb25JbmRleChpbnQgbGlzdEluZGV4KSBj
b25zdAogICAgIHJldHVybiBvcHRpb25JbmRleDsKIH0KIAotdm9pZCBIVE1MU2VsZWN0RWxlbWVu
dDo6ZGlzcGF0Y2hGb2N1c0V2ZW50KFBhc3NSZWZQdHI8Tm9kZT4gb2xkRm9jdXNlZE5vZGUpCit2
b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpkaXNwYXRjaEZvY3VzRXZlbnQoUGFzc1JlZlB0cjxOb2Rl
PiBvbGRGb2N1c2VkTm9kZSwgRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uKQogewogICAgIC8vIFNh
dmUgdGhlIHNlbGVjdGlvbiBzbyBpdCBjYW4gYmUgY29tcGFyZWQgdG8gdGhlIG5ldyBzZWxlY3Rp
b24gd2hlbgogICAgIC8vIGRpc3BhdGNoaW5nIGNoYW5nZSBldmVudHMgZHVyaW5nIGJsdXIgZXZl
bnQgZGlzcGF0Y2guCiAgICAgaWYgKHVzZXNNZW51TGlzdCgpKQogICAgICAgICBzYXZlTGFzdFNl
bGVjdGlvbigpOwotICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGU6OmRpc3BhdGNo
Rm9jdXNFdmVudChvbGRGb2N1c2VkTm9kZSk7CisgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudFdp
dGhTdGF0ZTo6ZGlzcGF0Y2hGb2N1c0V2ZW50KG9sZEZvY3VzZWROb2RlLCBkaXJlY3Rpb24pOwog
fQogCiB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpkaXNwYXRjaEJsdXJFdmVudChQYXNzUmVmUHRy
PE5vZGU+IG5ld0ZvY3VzZWROb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MU2VsZWN0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVu
dC5oCmluZGV4IGEyZjI2NTBmNjAzMDZmODc0ZTcwYTg0NTIwZThmNjkxMWJlNDQxMjQuLmMzYjBh
MGI5ZmI3NmE5MDg3YjdjMGMyYmQ4ZmZlNzFkZTcwZmJmMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxTZWxlY3RFbGVtZW50LmgKQEAgLTExNCw3ICsxMTQsNyBAQCBwcml2YXRlOgogICAgIHZp
cnR1YWwgYm9vbCBpc0tleWJvYXJkRm9jdXNhYmxlKEtleWJvYXJkRXZlbnQqKSBjb25zdDsKICAg
ICB2aXJ0dWFsIGJvb2wgaXNNb3VzZUZvY3VzYWJsZSgpIGNvbnN0OwogCi0gICAgdmlydHVhbCB2
b2lkIGRpc3BhdGNoRm9jdXNFdmVudChQYXNzUmVmUHRyPE5vZGU+IG9sZEZvY3VzZWROb2RlKTsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hGb2N1c0V2ZW50KFBhc3NSZWZQdHI8Tm9kZT4gb2xk
Rm9jdXNlZE5vZGUsIEZvY3VzRGlyZWN0aW9uKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQg
ZGlzcGF0Y2hCbHVyRXZlbnQoUGFzc1JlZlB0cjxOb2RlPiBuZXdGb2N1c2VkTm9kZSk7CiAgICAg
CiAgICAgdmlydHVhbCBib29sIGNhblN0YXJ0U2VsZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJv
bEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudC5jcHAKaW5kZXggOTk5ODVjOTUwN2ExNjRmZTVmMDE2Y2JjN2Y2YmNkOTQxZmFlNGU4Ny4u
NjJmNGExNjJmY2UzMWM5ODVhMzM0NTc5OTAxNTg1OGYzYzEwMDBhMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAKQEAgLTg0LDEy
ICs4NCwxMiBAQCBOb2RlOjpJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0IEhUTUxUZXh0Rm9y
bUNvbnRyb2xFbGVtZW50OjppbnNlcnRlZEludG8oQ29udAogICAgIHJldHVybiBJbnNlcnRpb25E
b25lOwogfQogCi12b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpkaXNwYXRjaEZvY3Vz
RXZlbnQoUGFzc1JlZlB0cjxOb2RlPiBvbGRGb2N1c2VkTm9kZSkKK3ZvaWQgSFRNTFRleHRGb3Jt
Q29udHJvbEVsZW1lbnQ6OmRpc3BhdGNoRm9jdXNFdmVudChQYXNzUmVmUHRyPE5vZGU+IG9sZEZv
Y3VzZWROb2RlLCBGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24pCiB7CiAgICAgaWYgKHN1cHBvcnRz
UGxhY2Vob2xkZXIoKSkKICAgICAgICAgdXBkYXRlUGxhY2Vob2xkZXJWaXNpYmlsaXR5KGZhbHNl
KTsKLSAgICBoYW5kbGVGb2N1c0V2ZW50KCk7Ci0gICAgSFRNTEZvcm1Db250cm9sRWxlbWVudFdp
dGhTdGF0ZTo6ZGlzcGF0Y2hGb2N1c0V2ZW50KG9sZEZvY3VzZWROb2RlKTsKKyAgICBoYW5kbGVG
b2N1c0V2ZW50KGRpcmVjdGlvbik7CisgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0
ZTo6ZGlzcGF0Y2hGb2N1c0V2ZW50KG9sZEZvY3VzZWROb2RlLCBkaXJlY3Rpb24pOwogfQogCiB2
b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpkaXNwYXRjaEJsdXJFdmVudChQYXNzUmVm
UHRyPE5vZGU+IG5ld0ZvY3VzZWROb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VGV4dEZvcm1Db250cm9sRWxlbWVudC5oCmluZGV4IGI5YjQzZDVmYWE3NmVlMjAxZmFlZmNlYWE0
ZjUwOGYwOWZhM2RmZWEuLjM3ZDZhMzFhNmQzOGY5MGVhZmQ0OTUwOTBjZDE0MmY0ZmQ1NGM2Y2Yg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50
LmgKQEAgLTExOCw3ICsxMTgsNyBAQCBwcml2YXRlOgogICAgIGludCBjb21wdXRlU2VsZWN0aW9u
RW5kKCkgY29uc3Q7CiAgICAgVGV4dEZpZWxkU2VsZWN0aW9uRGlyZWN0aW9uIGNvbXB1dGVTZWxl
Y3Rpb25EaXJlY3Rpb24oKSBjb25zdDsKIAotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaEZvY3Vz
RXZlbnQoUGFzc1JlZlB0cjxOb2RlPiBvbGRGb2N1c2VkTm9kZSk7CisgICAgdmlydHVhbCB2b2lk
IGRpc3BhdGNoRm9jdXNFdmVudChQYXNzUmVmUHRyPE5vZGU+IG9sZEZvY3VzZWROb2RlLCBGb2N1
c0RpcmVjdGlvbikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoQmx1ckV2ZW50
KFBhc3NSZWZQdHI8Tm9kZT4gbmV3Rm9jdXNlZE5vZGUpOwogICAgIHZpcnR1YWwgYm9vbCBjaGls
ZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0JikgY29uc3Qg
T1ZFUlJJREU7CiAKQEAgLTEyNyw3ICsxMjcsNyBAQCBwcml2YXRlOgogICAgIC8vIFJldHVybnMg
dHJ1ZSBpZiBzdWdnZXN0ZWQgdmFsdWUgaXMgZW1wdHkuIFVzZWQgdG8gY2hlY2sgcGxhY2Vob2xk
ZXIgdmlzaWJpbGl0eS4KICAgICB2aXJ0dWFsIGJvb2wgaXNFbXB0eVN1Z2dlc3RlZFZhbHVlKCkg
Y29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIC8vIENhbGxlZCBpbiBkaXNwYXRjaEZvY3VzRXZl
bnQoKSwgYWZ0ZXIgcGxhY2Vob2xkZXIgcHJvY2VzcywgYmVmb3JlIGNhbGxpbmcgcGFyZW50J3Mg
ZGlzcGF0Y2hGb2N1c0V2ZW50KCkuCi0gICAgdmlydHVhbCB2b2lkIGhhbmRsZUZvY3VzRXZlbnQo
KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRm9jdXNFdmVudChGb2N1c0RpcmVjdGlvbikg
eyB9CiAgICAgLy8gQ2FsbGVkIGluIGRpc3BhdGNoQmx1ckV2ZW50KCksIGFmdGVyIHBsYWNlaG9s
ZGVyIHByb2Nlc3MsIGJlZm9yZSBjYWxsaW5nIHBhcmVudCdzIGRpc3BhdGNoQmx1ckV2ZW50KCku
CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZUJsdXJFdmVudCgpIHsgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lu
cHV0VHlwZS5jcHAKaW5kZXggNDgwZjI4ZTFkOWQxMDNkODk0MzRhZmQxY2M2Mjg2MzM5YWQwYWRm
Yi4uODIwZTVjODJmZjRlMTYwMTBkMmRhYjBjMGRiYWRkMWFiYTM1N2NlYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSW5wdXRUeXBlLmNwcApAQCAtNDcwLDkgKzQ3MCw5IEBAIHZvaWQgSW5wdXRUeXBlOjpibHVy
KCkKICAgICBlbGVtZW50KCktPmRlZmF1bHRCbHVyKCk7CiB9CiAKLXZvaWQgSW5wdXRUeXBlOjpm
b2N1cyhib29sIHJlc3RvcmVQcmV2aW91c1NlbGVjdGlvbikKK3ZvaWQgSW5wdXRUeXBlOjpmb2N1
cyhib29sIHJlc3RvcmVQcmV2aW91c1NlbGVjdGlvbiwgRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9u
KQogewotICAgIGVsZW1lbnQoKS0+ZGVmYXVsdEZvY3VzKHJlc3RvcmVQcmV2aW91c1NlbGVjdGlv
bik7CisgICAgZWxlbWVudCgpLT5kZWZhdWx0Rm9jdXMocmVzdG9yZVByZXZpb3VzU2VsZWN0aW9u
LCBkaXJlY3Rpb24pOwogfQogCiB2b2lkIElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9JbnB1dFR5cGUuaAppbmRleCA5YTc2NzA5YTEwZGQ2MmMwM2M1YTk4ZTJlMWNi
M2YxY2U2YjEwZjIxLi40NWRlYjdkNzFiNTQ0YmRhYTBmYmQ3OTkyNTIwMzEyZWYzMGE5ODIwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKQEAgLTIxNSw3ICsyMTUsNyBAQCBwdWJsaWM6CiAjZW5k
aWYKIAogICAgIHZpcnR1YWwgdm9pZCBibHVyKCk7Ci0gICAgdmlydHVhbCB2b2lkIGZvY3VzKGJv
b2wgcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uKTsKKyAgICB2aXJ0dWFsIHZvaWQgZm9jdXMoYm9v
bCByZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24sIEZvY3VzRGlyZWN0aW9uKTsKIAogICAgIC8vIFNo
YWRvdyB0cmVlIGhhbmRsaW5nCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9j
dXNDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNw
cAppbmRleCA3MTc5Yjc5MGE1Zjg4YzQ1MzgzMTYwOGE2OGE3YjYzYTllM2U4ZDI5Li5hYWQwYzcx
YWQzMjMxM2MyN2E3MzVmYmFmOWEyNjVkYjMzNjU5YjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9G
b2N1c0NvbnRyb2xsZXIuY3BwCkBAIC0xMjcsNyArMTI3LDcgQEAgc3RhdGljIGlubGluZSB2b2lk
IGRpc3BhdGNoRXZlbnRzT25XaW5kb3dBbmRGb2N1c2VkTm9kZShEb2N1bWVudCogZG9jdW1lbnQs
IGJvb2wKICAgICAgICAgZG9jdW1lbnQtPmZvY3VzZWROb2RlKCktPmRpc3BhdGNoQmx1ckV2ZW50
KDApOwogICAgIGRvY3VtZW50LT5kaXNwYXRjaFdpbmRvd0V2ZW50KEV2ZW50OjpjcmVhdGUoZm9j
dXNlZCA/IGV2ZW50TmFtZXMoKS5mb2N1c0V2ZW50IDogZXZlbnROYW1lcygpLmJsdXJFdmVudCwg
ZmFsc2UsIGZhbHNlKSk7CiAgICAgaWYgKGZvY3VzZWQgJiYgZG9jdW1lbnQtPmZvY3VzZWROb2Rl
KCkpCi0gICAgICAgIGRvY3VtZW50LT5mb2N1c2VkTm9kZSgpLT5kaXNwYXRjaEZvY3VzRXZlbnQo
MCk7CisgICAgICAgIGRvY3VtZW50LT5mb2N1c2VkTm9kZSgpLT5kaXNwYXRjaEZvY3VzRXZlbnQo
MCwgRm9jdXNEaXJlY3Rpb25Ob25lKTsKIH0KIAogc3RhdGljIGlubGluZSBib29sIGhhc0N1c3Rv
bUZvY3VzTG9naWMoTm9kZSogbm9kZSkKQEAgLTM1Myw3ICszNTMsNyBAQCBib29sIEZvY3VzQ29u
dHJvbGxlcjo6YWR2YW5jZUZvY3VzSW5Eb2N1bWVudE9yZGVyKEZvY3VzRGlyZWN0aW9uIGRpcmVj
dGlvbiwgS2V5YgogICAgICAgICAgICAgZnJhbWUtPnNlbGVjdGlvbigpLT5zZXRTZWxlY3Rpb24o
bmV3U2VsZWN0aW9uKTsKICAgICB9CiAKLSAgICBzdGF0aWNfY2FzdDxFbGVtZW50Kj4obm9kZS5n
ZXQoKSktPmZvY3VzKGZhbHNlKTsKKyAgICBzdGF0aWNfY2FzdDxFbGVtZW50Kj4obm9kZS5nZXQo
KSktPmZvY3VzKGZhbHNlLCBkaXJlY3Rpb24pOwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC01
NzgsNyArNTc4LDcgQEAgc3RhdGljIHZvaWQgY2xlYXJTZWxlY3Rpb25JZk5lZWRlZChGcmFtZSog
b2xkRm9jdXNlZEZyYW1lLCBGcmFtZSogbmV3Rm9jdXNlZEZyYW0KICAgICBzLT5jbGVhcigpOwog
fQogCi1ib29sIEZvY3VzQ29udHJvbGxlcjo6c2V0Rm9jdXNlZE5vZGUoTm9kZSogbm9kZSwgUGFz
c1JlZlB0cjxGcmFtZT4gbmV3Rm9jdXNlZEZyYW1lKQorYm9vbCBGb2N1c0NvbnRyb2xsZXI6OnNl
dEZvY3VzZWROb2RlKE5vZGUqIG5vZGUsIFBhc3NSZWZQdHI8RnJhbWU+IG5ld0ZvY3VzZWRGcmFt
ZSwgRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uKQogewogICAgIFJlZlB0cjxGcmFtZT4gb2xkRm9j
dXNlZEZyYW1lID0gZm9jdXNlZEZyYW1lKCk7CiAgICAgUmVmUHRyPERvY3VtZW50PiBvbGREb2N1
bWVudCA9IG9sZEZvY3VzZWRGcmFtZSA/IG9sZEZvY3VzZWRGcmFtZS0+ZG9jdW1lbnQoKSA6IDA7
CkBAIC02MTcsNyArNjE3LDcgQEAgYm9vbCBGb2N1c0NvbnRyb2xsZXI6OnNldEZvY3VzZWROb2Rl
KE5vZGUqIG5vZGUsIFBhc3NSZWZQdHI8RnJhbWU+IG5ld0ZvY3VzZWRGcmEKICAgICAvLyBTZXR0
aW5nIHRoZSBmb2N1c2VkIG5vZGUgY2FuIHJlc3VsdCBpbiBsb3Npbmcgb3VyIGxhc3QgcmVmdCB0
byBub2RlIHdoZW4gSlMgZXZlbnQgaGFuZGxlcnMgZmlyZS4KICAgICBSZWZQdHI8Tm9kZT4gcHJv
dGVjdCA9IG5vZGU7CiAgICAgaWYgKG5ld0RvY3VtZW50KSB7Ci0gICAgICAgIGJvb2wgc3VjY2Vz
c2Z1bGx5Rm9jdXNlZCA9IG5ld0RvY3VtZW50LT5zZXRGb2N1c2VkTm9kZShub2RlKTsKKyAgICAg
ICAgYm9vbCBzdWNjZXNzZnVsbHlGb2N1c2VkID0gbmV3RG9jdW1lbnQtPnNldEZvY3VzZWROb2Rl
KG5vZGUsIGRpcmVjdGlvbik7CiAgICAgICAgIGlmICghc3VjY2Vzc2Z1bGx5Rm9jdXNlZCkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CkBAIC04MzEsNyArODMxLDcgQEAgYm9vbCBG
b2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1c0RpcmVjdGlvbmFsbHlJbkNvbnRhaW5lcihOb2Rl
KiBjb250YWluZXIsIGNvbnMKICAgICBFbGVtZW50KiBlbGVtZW50ID0gdG9FbGVtZW50KGZvY3Vz
Q2FuZGlkYXRlLmZvY3VzYWJsZU5vZGUpOwogICAgIEFTU0VSVChlbGVtZW50KTsKIAotICAgIGVs
ZW1lbnQtPmZvY3VzKGZhbHNlKTsKKyAgICBlbGVtZW50LT5mb2N1cyhmYWxzZSwgZGlyZWN0aW9u
KTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9Gb2N1c0NvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVy
LmgKaW5kZXggNGY1OTg2ZDk2ZDIyNzhkMzQyMDA4ODdlNGZlYmY1N2MyNjJjNjI4Yy4uYTMzM2Y3
ZDc1NjVlMDdlZDkzMmI1YjNhYThmMmEyZmUxYzc2MGExOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zv
Y3VzQ29udHJvbGxlci5oCkBAIC03MCw3ICs3MCw3IEBAIHB1YmxpYzoKICAgICBib29sIHNldElu
aXRpYWxGb2N1cyhGb2N1c0RpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCopOwogICAgIGJvb2wgYWR2
YW5jZUZvY3VzKEZvY3VzRGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50KiwgYm9vbCBpbml0aWFsRm9j
dXMgPSBmYWxzZSk7CiAgICAgICAgIAotICAgIGJvb2wgc2V0Rm9jdXNlZE5vZGUoTm9kZSosIFBh
c3NSZWZQdHI8RnJhbWU+KTsKKyAgICBib29sIHNldEZvY3VzZWROb2RlKE5vZGUqLCBQYXNzUmVm
UHRyPEZyYW1lPiwgRm9jdXNEaXJlY3Rpb24gPSBGb2N1c0RpcmVjdGlvbk5vbmUpOwogCiAgICAg
dm9pZCBzZXRBY3RpdmUoYm9vbCk7CiAgICAgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0IHsgcmV0dXJu
IG1faXNBY3RpdmU7IH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>