<?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>127590</bug_id>
          
          <creation_ts>2014-01-24 15:15:12 -0800</creation_ts>
          <short_desc>Prepare scrolling tree to handle &gt; 1 scrolling node</short_desc>
          <delta_ts>2014-01-24 16:00:00 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>andersca</cc>
    
    <cc>bdakin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jamesr</cc>
    
    <cc>luiz</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>tonikitoo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>971774</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-01-24 15:15:12 -0800</bug_when>
    <thetext>Prepare scrolling tree to handle &gt; 1 scrolling node</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971778</commentid>
    <comment_count>1</comment_count>
      <attachid>222161</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-01-24 15:20:29 -0800</bug_when>
    <thetext>Created attachment 222161
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971779</commentid>
    <comment_count>2</comment_count>
      <attachid>222162</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-01-24 15:25:47 -0800</bug_when>
    <thetext>Created attachment 222162
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971783</commentid>
    <comment_count>3</comment_count>
      <attachid>222162</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-01-24 15:32:04 -0800</bug_when>
    <thetext>Comment on attachment 222162
Patch

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

&gt; Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp:172
&gt; +    m_updateMainFrameScrollPositionTimer.startOneShot(0);

Should the timer still have &quot;main frame&quot; in the name?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971787</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-01-24 16:00:00 -0800</bug_when>
    <thetext>https://trac.webkit.org/r162736</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222161</attachid>
            <date>2014-01-24 15:20:29 -0800</date>
            <delta_ts>2014-01-24 15:25:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127590-20140124152028.patch</filename>
            <type>text/plain</type>
            <size>32817</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYyNzA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDIzNDVkYTAzYjdjYTcy
NzYzYmQzZTMyZWI2MzYwMmRhOGVhYmJkNy4uZDA2NzNmOTEzMjkwMTk1ZDg0ODdiODM4MGI1NTNi
ZDZlMDM0MDk1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ5IEBACiAyMDE0LTAxLTI0ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCisgICAgICAgIFByZXBhcmUgc2Ny
b2xsaW5nIHRyZWUgdG8gaGFuZGxlID4gMSBzY3JvbGxpbmcgbm9kZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3NTkwCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2xlYW4gdXAgdGhlIGNvZGUgcGF0aCBj
YWxsZWQgYWZ0ZXIgdGhlIFNjcm9sbGluZ1RyZWUgaGFzIHNjcm9sbGVkIGEgbm9kZSwKKyAgICAg
ICAgdG8gcHJlcGFyZSBmb3IgbXVsdGlwbGUgc2Nyb2xsaW5nIG5vZGVzLgorICAgICAgICAKKyAg
ICAgICAgQ2hhbmdlICJ1cGRhdGVNYWluRnJhbWVTY3JvbGxQb3NpdGlvbiIgdGVybWlub2xvZ3kg
dG8gInVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbCIsCisgICAgICAgIGFuZCBw
YXNzIGFsb25nIHRoZSBTY3JvbGxpbmdOb2RlSUQgdGhhdCBzY3JvbGxlZC4KKyAgICAgICAgCisg
ICAgICAgIE1vdmUgdXBkYXRlTWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24tcmVsYXRlZCBjb2RlIGZy
b20gU2Nyb2xsaW5nQ29vcmRpbmF0b3IgdG8KKyAgICAgICAgQXN5bmNTY3JvbGxpbmdDb29yZGlu
YXRvciwgc2luY2UgdGhpcyBzeW5jLXVwIGlzIG9ubHkgbmVjZXNzYXJ5IHdoZW4gZG9pbmcKKyAg
ICAgICAgYXN5bmMgc2Nyb2xsaW5nLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAg
ICAgICogcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpBc3luY1Njcm9sbGluZ0Nv
b3JkaW5hdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6
OnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpBc3luY1Nj
cm9sbGluZ0Nvb3JkaW5hdG9yOjpzY2hlZHVsZVVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3lu
Y1Njcm9sbCk6CisgICAgICAgIChXZWJDb3JlOjpBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjp1
cGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGxUaW1lckZpcmVkKToKKyAgICAgICAg
KFdlYkNvcmU6OkFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnVwZGF0ZVNjcm9sbFBvc2l0aW9u
QWZ0ZXJBc3luY1Njcm9sbCk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxp
bmdDb29yZGluYXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNTY3JvbGxpbmdDb29yZGlu
YXRvcjo6U2NoZWR1bGVkU2Nyb2xsVXBkYXRlOjpTY2hlZHVsZWRTY3JvbGxVcGRhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6U2NoZWR1bGVkU2Nyb2xs
VXBkYXRlOjptYXRjaGVzVXBkYXRlVHlwZSk6CisgICAgICAgIFBhY2thZ2UgdXAgdGhlIGRhdGEg
cmVsYXRlZCB0byBhIHNjaGVkdWxlZCBzY3JvbGwgaW50byBhIFNjaGVkdWxlZFNjcm9sbFVwZGF0
ZSBzdHJ1Y3QsCisgICAgICAgIGZvciBlYXNpZXIgY29tcGFyaXNvbiBhbmQgY2xlYW5lciBjb2Rl
LgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpTY3JvbGxpbmdDb29yZGluYXRv
cik6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDoKKyAg
ICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmg6CisgICAgICAgICogcGFnZS9z
Y3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRo
cmVhZGVkU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwpOgorICAgICAg
ICAqIHBhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5oOgorICAgICAgICAqIHBh
Z2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlSU9TLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGluZ1RyZWVJT1M6OnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKToKKyAgICAgICAg
KiBwYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZUlPUy5oOgorICAgICAgICAqIHBhZ2Uv
c2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZUlPUy5tbToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlSU9TOjpzZXRTY3JvbGxQb3NpdGlv
bldpdGhvdXRDb250ZW50RWRnZUNvbnN0cmFpbnRzKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVNYWMubW06CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1hYzo6c2V0U2Nyb2xsUG9zaXRpb25XaXRob3V0
Q29udGVudEVkZ2VDb25zdHJhaW50cyk6CisKKzIwMTQtMDEtMjQgIFNpbW9uIEZyYXNlciAgPHNp
bW9uLmZyYXNlckBhcHBsZS5jb20+CisKICAgICAgICAgI2lmZGVmIG91dCBoYW5kbGVXaGVlbEV2
ZW50UGhhc2UgZm9yIGlPUwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTI3NTgzCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA5YmZmMTBmODI4NThmOWM0ZmJjYTQ3Njc0
ZWM4NTRkNThiNDFiOTAwLi5hYmZiOGZmYmRiNzA1NjhlMjViN2UyZDQ2NTRlZjE0MzZiZGZlMjEx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjQgQEAKIDIwMTQtMDEtMjQgIFNpbW9uIEZyYXNlciAg
PHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKKyAgICAgICAgUHJlcGFyZSBzY3JvbGxpbmcgdHJl
ZSB0byBoYW5kbGUgPiAxIHNjcm9sbGluZyBub2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc1OTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIENsZWFuIHVwIHRoZSBjb2RlIHBhdGggY2Fs
bGVkIGFmdGVyIHRoZSBTY3JvbGxpbmdUcmVlIGhhcyBzY3JvbGxlZCBhIG5vZGUsCisgICAgICAg
IHRvIHByZXBhcmUgZm9yIG11bHRpcGxlIHNjcm9sbGluZyBub2Rlcy4KKyAgICAgICAgCisgICAg
ICAgIENoYW5nZSAidXBkYXRlTWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24iIHRlcm1pbm9sb2d5IHRv
ICJ1cGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwiLAorICAgICAgICBhbmQgcGFz
cyBhbG9uZyB0aGUgU2Nyb2xsaW5nTm9kZUlEIHRoYXQgc2Nyb2xsZWQuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbCk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdUcmVlLmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubW06
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpzY3JvbGxQb3Np
dGlvbkNoYW5nZWRGb3JOb2RlKToKKworMjAxNC0wMS0yNCAgU2ltb24gRnJhc2VyICA8c2ltb24u
ZnJhc2VyQGFwcGxlLmNvbT4KKwogICAgICAgICAjaWZkZWYgb3V0IGhhbmRsZVdoZWVsRXZlbnRQ
aGFzZSBmb3IgaU9TCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMjc1ODMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4g
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCAwYjY0Y2EzMTJkMDM5N2JiMmMx
NmNjN2VkOTU4YzkwZGQ2YzQxMWJhLi4zZDIwMDE3NDQ5N2RlODU2MTQ1ZTRkZjhjMWVhNjcwYjkw
YmVmYzRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMjk5Myw3ICsyOTkzLDYgQEAgX19aTjdX
ZWJDb3JlMjJTY3JvbGxpbmdUcmVlRml4ZWROb2RlNmNyZWF0ZUVSTlNfMTNTY3JvbGxpbmdUcmVl
RXkKIF9fWk43V2ViQ29yZTIzU2Nyb2xsaW5nU3RhdGVGaXhlZE5vZGUxN3VwZGF0ZUNvbnN0cmFp
bnRzRVJLTlNfMzJGaXhlZFBvc2l0aW9uVmlld3BvcnRDb25zdHJhaW50c0UKIF9fWk43V2ViQ29y
ZTIzU2Nyb2xsaW5nVHJlZVN0aWNreU5vZGU2Y3JlYXRlRVJOU18xM1Njcm9sbGluZ1RyZWVFeQog
X19aTjdXZWJDb3JlMjRTY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUxN3VwZGF0ZUNvbnN0cmFpbnRz
RVJLTlNfMzNTdGlja3lQb3NpdGlvblZpZXdwb3J0Q29uc3RyYWludHNFCi1fX1pON1dlYkNvcmUy
MFNjcm9sbGluZ0Nvb3JkaW5hdG9yMzVzY2hlZHVsZVVwZGF0ZVNjcm9sbFBvc2l0aW9uRm9yTm9k
ZUV5UktOU184SW50UG9pbnRFYk5TXzMxU2V0T3JTeW5jU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkUK
IF9fWk43V2ViQ29yZTI1QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjE0Y2xlYXJTdGF0ZVRyZWVF
dgogX19aTjdXZWJDb3JlMjVBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yMTdhdHRhY2hUb1N0YXRl
VHJlZUVOU18xN1Njcm9sbGluZ05vZGVUeXBlRXl5CiBfX1pON1dlYkNvcmUyNUFzeW5jU2Nyb2xs
aW5nQ29vcmRpbmF0b3IxOHN5bmNDaGlsZFBvc2l0aW9uc0VSS05TXzEwTGF5b3V0UmVjdEUKQEAg
LTMwMDcsNiArMzAwNiw3IEBAIF9fWk43V2ViQ29yZTI1QXN5bmNTY3JvbGxpbmdDb29yZGluYXRv
cjI5dXBkYXRlVmlld3BvcnRDb25zdHJhaW5lZE5vZGVFeVJLTlNfMTlWCiBfX1pON1dlYkNvcmUy
NUFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IzMHNldFN5bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29u
c0VqCiBfX1pON1dlYkNvcmUyNUFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IzN3Njcm9sbGFibGVB
cmVhU2Nyb2xsYmFyTGF5ZXJEaWRDaGFuZ2VFUE5TXzE0U2Nyb2xsYWJsZUFyZWFFTlNfMjBTY3Jv
bGxiYXJPcmllbnRhdGlvbkUKIF9fWk43V2ViQ29yZTI1QXN5bmNTY3JvbGxpbmdDb29yZGluYXRv
cjQzcmVjb21wdXRlV2hlZWxFdmVudEhhbmRsZXJDb3VudEZvckZyYW1lVmlld0VQTlNfOUZyYW1l
Vmlld0UKK19fWk43V2ViQ29yZTI1QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjQ0c2NoZWR1bGVV
cGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGxFeVJLTlNfOEludFBvaW50RWJOU18z
MVNldE9yU3luY1Njcm9sbGluZ0xheWVyUG9zaXRpb25FCiBfX1pON1dlYkNvcmUyNUFzeW5jU2Ny
b2xsaW5nQ29vcmRpbmF0b3JDMkVQTlNfNFBhZ2VFCiBfX1pON1dlYkNvcmUyNUFzeW5jU2Nyb2xs
aW5nQ29vcmRpbmF0b3JEMkV2CiBfX1pON1dlYkNvcmUyN1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5n
Tm9kZTE0c2V0Rm9vdGVyTGF5ZXJFUktOU18xOUxheWVyUmVwcmVzZW50YXRpb25FCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5h
dG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29v
cmRpbmF0b3IuY3BwCmluZGV4IDE1MGI2ZGVjM2ZmNGZiZjMwZDE1MDM3NDQzMzdiZDAzODY0MjI3
ZDEuLjM3OGYzNDk3MWMxYzg4MTc1MDQ0ZDM4NWQ1MDEwNGRmMTdiZjAxNjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29v
cmRpbmF0b3IuY3BwCkBAIC00Myw2ICs0Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQXN5
bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcihQYWdlKiBw
YWdlKQogICAgIDogU2Nyb2xsaW5nQ29vcmRpbmF0b3IocGFnZSkKKyAgICAsIG1fdXBkYXRlTWFp
bkZyYW1lU2Nyb2xsUG9zaXRpb25UaW1lcih0aGlzLCAmQXN5bmNTY3JvbGxpbmdDb29yZGluYXRv
cjo6dXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRlckFzeW5jU2Nyb2xsVGltZXJGaXJlZCkKICAgICAs
IG1fc2Nyb2xsaW5nU3RhdGVUcmVlKFNjcm9sbGluZ1N0YXRlVHJlZTo6Y3JlYXRlKHRoaXMpKQog
ewogfQpAQCAtMTM1LDcgKzEzNiw3IEBAIGJvb2wgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6
cmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKEZyYW1lVmlldyogZnJhbWVWaWV3CiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAogICAgIGlmIChmcmFtZVZpZXctPmluUHJvZ3JhbW1hdGljU2Nyb2xs
KCkgfHwgZnJhbWVWaWV3LT5mcmFtZSgpLmRvY3VtZW50KCktPmluUGFnZUNhY2hlKCkpCi0gICAg
ICAgIHVwZGF0ZU1haW5GcmFtZVNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uLCBmcmFtZVZp
ZXctPmluUHJvZ3JhbW1hdGljU2Nyb2xsKCksIFNldFNjcm9sbGluZ0xheWVyUG9zaXRpb24pOwor
ICAgICAgICB1cGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwoZnJhbWVWaWV3LT5z
Y3JvbGxMYXllcklEKCksIHNjcm9sbFBvc2l0aW9uLCBmcmFtZVZpZXctPmluUHJvZ3JhbW1hdGlj
U2Nyb2xsKCksIFNldFNjcm9sbGluZ0xheWVyUG9zaXRpb24pOwogCiAgICAgLy8gSWYgdGhpcyBm
cmFtZSB2aWV3J3MgZG9jdW1lbnQgaXMgYmVpbmcgcHV0IGludG8gdGhlIHBhZ2UgY2FjaGUsIHdl
IGRvbid0IHdhbnQgdG8gdXBkYXRlIG91cgogICAgIC8vIG1haW4gZnJhbWUgc2Nyb2xsIHBvc2l0
aW9uLiBKdXN0IGxldCB0aGUgRnJhbWVWaWV3IHRoaW5rIHRoYXQgd2UgZGlkLgpAQCAtMTUwLDYg
KzE1MSw4OCBAQCBib29sIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnJlcXVlc3RTY3JvbGxQ
b3NpdGlvblVwZGF0ZShGcmFtZVZpZXcqIGZyYW1lVmlldwogICAgIHJldHVybiB0cnVlOwogfQog
Cit2b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNjaGVkdWxlVXBkYXRlU2Nyb2xsUG9z
aXRpb25BZnRlckFzeW5jU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCBub2RlSUQsIGNvbnN0IEludFBv
aW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCBwcm9ncmFtbWF0aWNTY3JvbGwsIFNldE9yU3luY1Nj
cm9sbGluZ0xheWVyUG9zaXRpb24gc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbikKK3sKKyAg
ICBTY2hlZHVsZWRTY3JvbGxVcGRhdGUgc2Nyb2xsVXBkYXRlKG5vZGVJRCwgc2Nyb2xsUG9zaXRp
b24sIHByb2dyYW1tYXRpY1Njcm9sbCwgc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbik7Cisg
ICAgCisgICAgaWYgKG1fdXBkYXRlTWFpbkZyYW1lU2Nyb2xsUG9zaXRpb25UaW1lci5pc0FjdGl2
ZSgpKSB7CisgICAgICAgIGlmIChtX3NjaGVkdWxlZFNjcm9sbFVwZGF0ZS5tYXRjaGVzVXBkYXRl
VHlwZShzY3JvbGxVcGRhdGUpKSB7CisgICAgICAgICAgICBtX3NjaGVkdWxlZFNjcm9sbFVwZGF0
ZS5zY3JvbGxQb3NpdGlvbiA9IHNjcm9sbFBvc2l0aW9uOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisgICAgCisgICAgICAgIC8vIElmIHRoZSBwYXJhbWV0ZXJzIGRvbid0IG1hdGNo
IHdoYXQgd2FzIHByZXZpb3NseSBzY2hlZHVsZWQsIGRpc3BhdGNoIGltbWVkaWF0ZWx5LgorICAg
ICAgICBtX3VwZGF0ZU1haW5GcmFtZVNjcm9sbFBvc2l0aW9uVGltZXIuc3RvcCgpOworICAgICAg
ICB1cGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwobV9zY2hlZHVsZWRTY3JvbGxV
cGRhdGUubm9kZUlELCBtX3NjaGVkdWxlZFNjcm9sbFVwZGF0ZS5zY3JvbGxQb3NpdGlvbiwgbV9z
Y2hlZHVsZWRTY3JvbGxVcGRhdGUuaXNQcm9ncmFtbWF0aWNTY3JvbGwsIG1fc2NoZWR1bGVkU2Ny
b2xsVXBkYXRlLnVwZGF0ZUxheWVyUG9zaXRpb25BY3Rpb24pOworICAgICAgICB1cGRhdGVTY3Jv
bGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwobm9kZUlELCBzY3JvbGxQb3NpdGlvbiwgcHJvZ3Jh
bW1hdGljU2Nyb2xsLCBzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIG1fc2NoZWR1bGVkU2Nyb2xsVXBkYXRlID0gc2Nyb2xsVXBkYXRl
OworICAgIG1fdXBkYXRlTWFpbkZyYW1lU2Nyb2xsUG9zaXRpb25UaW1lci5zdGFydE9uZVNob3Qo
MCk7Cit9CisKK3ZvaWQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6dXBkYXRlU2Nyb2xsUG9z
aXRpb25BZnRlckFzeW5jU2Nyb2xsVGltZXJGaXJlZChUaW1lcjxBc3luY1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yPiopCit7CisgICAgdXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRlckFzeW5jU2Nyb2xsKG1f
c2NoZWR1bGVkU2Nyb2xsVXBkYXRlLm5vZGVJRCwgbV9zY2hlZHVsZWRTY3JvbGxVcGRhdGUuc2Ny
b2xsUG9zaXRpb24sIG1fc2NoZWR1bGVkU2Nyb2xsVXBkYXRlLmlzUHJvZ3JhbW1hdGljU2Nyb2xs
LCBtX3NjaGVkdWxlZFNjcm9sbFVwZGF0ZS51cGRhdGVMYXllclBvc2l0aW9uQWN0aW9uKTsKK30K
Kwordm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjp1cGRhdGVTY3JvbGxQb3NpdGlvbkFm
dGVyQXN5bmNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGluZ05vZGVJRCwgY29uc3QgSW50
UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBib29sIHByb2dyYW1tYXRpY1Njcm9sbCwgU2V0T3JTeW5j
U2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbiBzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKQorewor
ICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisKKyAgICBpZiAoIW1fcGFnZSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBtX3BhZ2UtPm1haW5GcmFtZSgp
LnZpZXcoKTsKKyAgICBpZiAoIWZyYW1lVmlldykKKyAgICAgICAgcmV0dXJuOworCisgICAgYm9v
bCBvbGRQcm9ncmFtbWF0aWNTY3JvbGwgPSBmcmFtZVZpZXctPmluUHJvZ3JhbW1hdGljU2Nyb2xs
KCk7CisgICAgZnJhbWVWaWV3LT5zZXRJblByb2dyYW1tYXRpY1Njcm9sbChwcm9ncmFtbWF0aWNT
Y3JvbGwpOworCisgICAgZnJhbWVWaWV3LT5zZXRDb25zdHJhaW5zU2Nyb2xsaW5nVG9Db250ZW50
RWRnZShmYWxzZSk7CisgICAgZnJhbWVWaWV3LT5ub3RpZnlTY3JvbGxQb3NpdGlvbkNoYW5nZWQo
c2Nyb2xsUG9zaXRpb24pOworICAgIGZyYW1lVmlldy0+c2V0Q29uc3RyYWluc1Njcm9sbGluZ1Rv
Q29udGVudEVkZ2UodHJ1ZSk7CisKKyAgICBmcmFtZVZpZXctPnNldEluUHJvZ3JhbW1hdGljU2Ny
b2xsKG9sZFByb2dyYW1tYXRpY1Njcm9sbCk7CisKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCisgICAgaWYgKHNjcm9sbGluZ05vZGVJRCA9PSBmcmFtZVZpZXctPnNjcm9sbExheWVy
SUQoKSkgeworICAgICAgICBpZiAoR3JhcGhpY3NMYXllciogc2Nyb2xsTGF5ZXIgPSBzY3JvbGxM
YXllckZvckZyYW1lVmlldyhmcmFtZVZpZXcpKSB7CisgICAgICAgICAgICBHcmFwaGljc0xheWVy
KiBjb3VudGVyU2Nyb2xsaW5nTGF5ZXIgPSBjb3VudGVyU2Nyb2xsaW5nTGF5ZXJGb3JGcmFtZVZp
ZXcoZnJhbWVWaWV3KTsKKyAgICAgICAgICAgIEdyYXBoaWNzTGF5ZXIqIGhlYWRlckxheWVyID0g
aGVhZGVyTGF5ZXJGb3JGcmFtZVZpZXcoZnJhbWVWaWV3KTsKKyAgICAgICAgICAgIEdyYXBoaWNz
TGF5ZXIqIGZvb3RlckxheWVyID0gZm9vdGVyTGF5ZXJGb3JGcmFtZVZpZXcoZnJhbWVWaWV3KTsK
KyAgICAgICAgICAgIEludFNpemUgc2Nyb2xsT2Zmc2V0Rm9yRml4ZWQgPSBmcmFtZVZpZXctPnNj
cm9sbE9mZnNldEZvckZpeGVkUG9zaXRpb24oKTsKKworICAgICAgICAgICAgaWYgKHByb2dyYW1t
YXRpY1Njcm9sbCB8fCBzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uID09IFNldFNjcm9sbGlu
Z0xheWVyUG9zaXRpb24pIHsKKyAgICAgICAgICAgICAgICBzY3JvbGxMYXllci0+c2V0UG9zaXRp
b24oLWZyYW1lVmlldy0+c2Nyb2xsUG9zaXRpb24oKSk7CisgICAgICAgICAgICAgICAgaWYgKGNv
dW50ZXJTY3JvbGxpbmdMYXllcikKKyAgICAgICAgICAgICAgICAgICAgY291bnRlclNjcm9sbGlu
Z0xheWVyLT5zZXRQb3NpdGlvbihJbnRQb2ludChzY3JvbGxPZmZzZXRGb3JGaXhlZCkpOworICAg
ICAgICAgICAgICAgIGlmIChoZWFkZXJMYXllcikKKyAgICAgICAgICAgICAgICAgICAgaGVhZGVy
TGF5ZXItPnNldFBvc2l0aW9uKEZsb2F0UG9pbnQoc2Nyb2xsT2Zmc2V0Rm9yRml4ZWQud2lkdGgo
KSwgMCkpOworICAgICAgICAgICAgICAgIGlmIChmb290ZXJMYXllcikKKyAgICAgICAgICAgICAg
ICAgICAgZm9vdGVyTGF5ZXItPnNldFBvc2l0aW9uKEZsb2F0UG9pbnQoc2Nyb2xsT2Zmc2V0Rm9y
Rml4ZWQud2lkdGgoKSwgZnJhbWVWaWV3LT50b3RhbENvbnRlbnRzU2l6ZSgpLmhlaWdodCgpIC0g
ZnJhbWVWaWV3LT5mb290ZXJIZWlnaHQoKSkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgICAgICBzY3JvbGxMYXllci0+c3luY1Bvc2l0aW9uKC1mcmFtZVZpZXctPnNjcm9sbFBv
c2l0aW9uKCkpOworICAgICAgICAgICAgICAgIGlmIChjb3VudGVyU2Nyb2xsaW5nTGF5ZXIpCisg
ICAgICAgICAgICAgICAgICAgIGNvdW50ZXJTY3JvbGxpbmdMYXllci0+c3luY1Bvc2l0aW9uKElu
dFBvaW50KHNjcm9sbE9mZnNldEZvckZpeGVkKSk7CisgICAgICAgICAgICAgICAgaWYgKGhlYWRl
ckxheWVyKQorICAgICAgICAgICAgICAgICAgICBoZWFkZXJMYXllci0+c3luY1Bvc2l0aW9uKEZs
b2F0UG9pbnQoc2Nyb2xsT2Zmc2V0Rm9yRml4ZWQud2lkdGgoKSwgMCkpOworICAgICAgICAgICAg
ICAgIGlmIChmb290ZXJMYXllcikKKyAgICAgICAgICAgICAgICAgICAgZm9vdGVyTGF5ZXItPnN5
bmNQb3NpdGlvbihGbG9hdFBvaW50KHNjcm9sbE9mZnNldEZvckZpeGVkLndpZHRoKCksIGZyYW1l
Vmlldy0+dG90YWxDb250ZW50c1NpemUoKS5oZWlnaHQoKSAtIGZyYW1lVmlldy0+Zm9vdGVySGVp
Z2h0KCkpKTsKKworICAgICAgICAgICAgICAgIExheW91dFJlY3Qgdmlld3BvcnRSZWN0ID0gZnJh
bWVWaWV3LT52aWV3cG9ydENvbnN0cmFpbmVkVmlzaWJsZUNvbnRlbnRSZWN0KCk7CisgICAgICAg
ICAgICAgICAgc3luY0NoaWxkUG9zaXRpb25zKHZpZXdwb3J0UmVjdCk7CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICB9CisgICAgLy8gRklYTUU6IGhhbmRsZSBub24tbWFpbiBzY3JvbGxp
bmcgbm9kZXMuCisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShzY3JvbGxpbmdMYXllclBvc2l0aW9u
QWN0aW9uKTsKKyNlbmRpZgorfQorCiB2b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNj
cm9sbGFibGVBcmVhU2Nyb2xsYmFyTGF5ZXJEaWRDaGFuZ2UoU2Nyb2xsYWJsZUFyZWEqIHNjcm9s
bGFibGVBcmVhLCBTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbikKIHsKICAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oCmluZGV4IDE2YzE5YjQ1N2U3YjUx
MWU1YjU4NTg1NjM2YWVjYzYxM2RjNGRiMTAuLmQxZjI2YjliMjg0NjA4Y2ZjOGZmNGVmNzBlZDlj
MWFmNWZjYTllYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0Fz
eW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNs
dWRlICJTY3JvbGxpbmdDb29yZGluYXRvci5oIgogCiAjaW5jbHVkZSAiU2Nyb2xsaW5nVHJlZS5o
IgorI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgpAQCAtNTYsNiArNTcs
OCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNjcm9sbGluZ1N0YXRlVHJlZVByb3BlcnRpZXNDaGFu
Z2VkKCk7CiAKKyAgICB2b2lkIHNjaGVkdWxlVXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRlckFzeW5j
U2Nyb2xsKFNjcm9sbGluZ05vZGVJRCwgY29uc3QgSW50UG9pbnQmLCBib29sIHByb2dyYW1tYXRp
Y1Njcm9sbCwgU2V0T3JTeW5jU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbik7CisKIHByb3RlY3RlZDoK
ICAgICBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yKFBhZ2UqKTsKIApAQCAtNjUsNiArNjgsOCBA
QCBwcm90ZWN0ZWQ6CiAKICAgICBQYXNzUmVmUHRyPFNjcm9sbGluZ1RyZWU+IHJlbGVhc2VTY3Jv
bGxpbmdUcmVlKCkgeyByZXR1cm4gbV9zY3JvbGxpbmdUcmVlLnJlbGVhc2UoKTsgfQogCisgICAg
dm9pZCB1cGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlE
LCBjb25zdCBJbnRQb2ludCYsIGJvb2wgcHJvZ3JhbW1hdGljU2Nyb2xsLCBTZXRPclN5bmNTY3Jv
bGxpbmdMYXllclBvc2l0aW9uKTsKKwogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNBc3lu
Y1Njcm9sbGluZ0Nvb3JkaW5hdG9yKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQog
CkBAIC0xMDcsNiArMTEyLDM5IEBAIHByaXZhdGU6CiAgICAgLy8gRklYTUU6IG1vdmUgc29tZXdo
ZXJlIGVsc2U/CiAgICAgdm9pZCBzZXRTY3JvbGxiYXJQYWludGVyc0Zyb21TY3JvbGxiYXJzRm9y
Tm9kZShTY3JvbGxiYXIqIHZlcnRpY2FsU2Nyb2xsYmFyLCBTY3JvbGxiYXIqIGhvcml6b250YWxT
Y3JvbGxiYXIsIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZSopOwogCisgICAgdm9pZCB1cGRh
dGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGxUaW1lckZpcmVkKFRpbWVyPEFzeW5jU2Ny
b2xsaW5nQ29vcmRpbmF0b3I+Kik7CisKKyAgICBUaW1lcjxBc3luY1Njcm9sbGluZ0Nvb3JkaW5h
dG9yPiBtX3VwZGF0ZU1haW5GcmFtZVNjcm9sbFBvc2l0aW9uVGltZXI7CisKKyAgICBzdHJ1Y3Qg
U2NoZWR1bGVkU2Nyb2xsVXBkYXRlIHsKKyAgICAgICAgU2NoZWR1bGVkU2Nyb2xsVXBkYXRlKCkK
KyAgICAgICAgICAgIDogbm9kZUlEKDApCisgICAgICAgICAgICAsIGlzUHJvZ3JhbW1hdGljU2Ny
b2xsKGZhbHNlKQorICAgICAgICAgICAgLCB1cGRhdGVMYXllclBvc2l0aW9uQWN0aW9uKFN5bmNT
Y3JvbGxpbmdMYXllclBvc2l0aW9uKQorICAgICAgICB7IH0KKworICAgICAgICBTY2hlZHVsZWRT
Y3JvbGxVcGRhdGUoU2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGluZ05vZGVJRCwgSW50UG9pbnQgcG9p
bnQsIGJvb2wgaXNQcm9ncmFtbWF0aWMsIFNldE9yU3luY1Njcm9sbGluZ0xheWVyUG9zaXRpb24g
dWRwYXRlQWN0aW9uKQorICAgICAgICAgICAgOiBub2RlSUQoc2Nyb2xsaW5nTm9kZUlEKQorICAg
ICAgICAgICAgLCBzY3JvbGxQb3NpdGlvbihwb2ludCkKKyAgICAgICAgICAgICwgaXNQcm9ncmFt
bWF0aWNTY3JvbGwoaXNQcm9ncmFtbWF0aWMpCisgICAgICAgICAgICAsIHVwZGF0ZUxheWVyUG9z
aXRpb25BY3Rpb24odWRwYXRlQWN0aW9uKQorICAgICAgICB7IH0KKworICAgICAgICBTY3JvbGxp
bmdOb2RlSUQgbm9kZUlEOworICAgICAgICBJbnRQb2ludCBzY3JvbGxQb3NpdGlvbjsKKyAgICAg
ICAgYm9vbCBpc1Byb2dyYW1tYXRpY1Njcm9sbDsKKyAgICAgICAgU2V0T3JTeW5jU2Nyb2xsaW5n
TGF5ZXJQb3NpdGlvbiB1cGRhdGVMYXllclBvc2l0aW9uQWN0aW9uOworICAgICAgICAKKyAgICAg
ICAgYm9vbCBtYXRjaGVzVXBkYXRlVHlwZShjb25zdCBTY2hlZHVsZWRTY3JvbGxVcGRhdGUmIG90
aGVyKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gbm9kZUlEID09IG90aGVy
Lm5vZGVJRAorICAgICAgICAgICAgICAgICYmIGlzUHJvZ3JhbW1hdGljU2Nyb2xsID09IG90aGVy
LmlzUHJvZ3JhbW1hdGljU2Nyb2xsCisgICAgICAgICAgICAgICAgJiYgdXBkYXRlTGF5ZXJQb3Np
dGlvbkFjdGlvbiA9PSBvdGhlci51cGRhdGVMYXllclBvc2l0aW9uQWN0aW9uOworICAgICAgICB9
CisgICAgfTsKKworICAgIFNjaGVkdWxlZFNjcm9sbFVwZGF0ZSBtX3NjaGVkdWxlZFNjcm9sbFVw
ZGF0ZTsKKwogICAgIE93blB0cjxTY3JvbGxpbmdTdGF0ZVRyZWU+IG1fc2Nyb2xsaW5nU3RhdGVU
cmVlOwogICAgIFJlZlB0cjxTY3JvbGxpbmdUcmVlPiBtX3Njcm9sbGluZ1RyZWU7CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0
b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0
b3IuY3BwCmluZGV4IDFiYmI3ZjM4ZjBlMjcwNjAxOGJiYzI2YzNmNjNjMmJmZTkyMDZmNTQuLjkz
ZGZiMGNlYzRiOWUxOGVjOThiMzFhYzliZTFiYzBmYTMzN2VmNWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAKQEAg
LTY0LDkgKzY0LDYgQEAgUGFzc1JlZlB0cjxTY3JvbGxpbmdDb29yZGluYXRvcj4gU2Nyb2xsaW5n
Q29vcmRpbmF0b3I6OmNyZWF0ZShQYWdlKiBwYWdlKQogCiBTY3JvbGxpbmdDb29yZGluYXRvcjo6
U2Nyb2xsaW5nQ29vcmRpbmF0b3IoUGFnZSogcGFnZSkKICAgICA6IG1fcGFnZShwYWdlKQotICAg
ICwgbV91cGRhdGVNYWluRnJhbWVTY3JvbGxQb3NpdGlvblRpbWVyKHRoaXMsICZTY3JvbGxpbmdD
b29yZGluYXRvcjo6dXBkYXRlTWFpbkZyYW1lU2Nyb2xsUG9zaXRpb25UaW1lckZpcmVkKQotICAg
ICwgbV9zY2hlZHVsZWRVcGRhdGVJc1Byb2dyYW1tYXRpY1Njcm9sbChmYWxzZSkKLSAgICAsIG1f
c2NoZWR1bGVkU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbihTeW5jU2Nyb2xsaW5nTGF5ZXJQ
b3NpdGlvbikKICAgICAsIG1fZm9yY2VTeW5jaHJvbm91c1Njcm9sbExheWVyUG9zaXRpb25VcGRh
dGVzKGZhbHNlKQogewogfQpAQCAtMjYwLDkyICsyNTcsNiBAQCB2b2lkIFNjcm9sbGluZ0Nvb3Jk
aW5hdG9yOjpmcmFtZVZpZXdSb290TGF5ZXJEaWRDaGFuZ2UoRnJhbWVWaWV3KiBmcmFtZVZpZXcp
CiAgICAgdXBkYXRlU3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zKCk7CiB9CiAKLXZvaWQgU2Ny
b2xsaW5nQ29vcmRpbmF0b3I6OnNjaGVkdWxlVXBkYXRlU2Nyb2xsUG9zaXRpb25Gb3JOb2RlKFNj
cm9sbGluZ05vZGVJRCwgY29uc3QgSW50UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBib29sIHByb2dy
YW1tYXRpY1Njcm9sbCwgU2V0T3JTeW5jU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbiBzY3JvbGxpbmdM
YXllclBvc2l0aW9uQWN0aW9uKQotewotICAgIC8vIEZJWE1FOiBuZWVkIHRvIGhhbmRsZSBub24t
bWFpbiBub2Rlcy4KLSAgICBzY2hlZHVsZVVwZGF0ZU1haW5GcmFtZVNjcm9sbFBvc2l0aW9uKHNj
cm9sbFBvc2l0aW9uLCBwcm9ncmFtbWF0aWNTY3JvbGwsIHNjcm9sbGluZ0xheWVyUG9zaXRpb25B
Y3Rpb24pOwotfQotCi12b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpzY2hlZHVsZVVwZGF0ZU1h
aW5GcmFtZVNjcm9sbFBvc2l0aW9uKGNvbnN0IEludFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9v
bCBwcm9ncmFtbWF0aWNTY3JvbGwsIFNldE9yU3luY1Njcm9sbGluZ0xheWVyUG9zaXRpb24gc2Ny
b2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbikKLXsKLSAgICBpZiAobV91cGRhdGVNYWluRnJhbWVT
Y3JvbGxQb3NpdGlvblRpbWVyLmlzQWN0aXZlKCkpIHsKLSAgICAgICAgaWYgKG1fc2NoZWR1bGVk
VXBkYXRlSXNQcm9ncmFtbWF0aWNTY3JvbGwgPT0gcHJvZ3JhbW1hdGljU2Nyb2xsCi0gICAgICAg
ICAgICAmJiBtX3NjaGVkdWxlZFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24gPT0gc2Nyb2xs
aW5nTGF5ZXJQb3NpdGlvbkFjdGlvbikgewotICAgICAgICAgICAgbV9zY2hlZHVsZWRVcGRhdGVT
Y3JvbGxQb3NpdGlvbiA9IHNjcm9sbFBvc2l0aW9uOwotICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICB9Ci0gICAgCi0gICAgICAgIC8vIElmIHRoZSBwYXJhbWV0ZXJzIGRvbid0IG1hdGNoIHdo
YXQgd2FzIHByZXZpb3NseSBzY2hlZHVsZWQsIGRpc3BhdGNoIGltbWVkaWF0ZWx5LgotICAgICAg
ICBtX3VwZGF0ZU1haW5GcmFtZVNjcm9sbFBvc2l0aW9uVGltZXIuc3RvcCgpOwotICAgICAgICB1
cGRhdGVNYWluRnJhbWVTY3JvbGxQb3NpdGlvbihtX3NjaGVkdWxlZFVwZGF0ZVNjcm9sbFBvc2l0
aW9uLCBtX3NjaGVkdWxlZFVwZGF0ZUlzUHJvZ3JhbW1hdGljU2Nyb2xsLCBtX3NjaGVkdWxlZFNj
cm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24pOwotICAgICAgICB1cGRhdGVNYWluRnJhbWVTY3Jv
bGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbiwgcHJvZ3JhbW1hdGljU2Nyb2xsLCBzY3JvbGxpbmdM
YXllclBvc2l0aW9uQWN0aW9uKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIG1fc2No
ZWR1bGVkVXBkYXRlU2Nyb2xsUG9zaXRpb24gPSBzY3JvbGxQb3NpdGlvbjsKLSAgICBtX3NjaGVk
dWxlZFVwZGF0ZUlzUHJvZ3JhbW1hdGljU2Nyb2xsID0gcHJvZ3JhbW1hdGljU2Nyb2xsOwotICAg
IG1fc2NoZWR1bGVkU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiA9IHNjcm9sbGluZ0xheWVy
UG9zaXRpb25BY3Rpb247Ci0gICAgbV91cGRhdGVNYWluRnJhbWVTY3JvbGxQb3NpdGlvblRpbWVy
LnN0YXJ0T25lU2hvdCgwKTsKLX0KLQotdm9pZCBTY3JvbGxpbmdDb29yZGluYXRvcjo6dXBkYXRl
TWFpbkZyYW1lU2Nyb2xsUG9zaXRpb25UaW1lckZpcmVkKFRpbWVyPFNjcm9sbGluZ0Nvb3JkaW5h
dG9yPiopCi17Ci0gICAgdXBkYXRlTWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24obV9zY2hlZHVsZWRV
cGRhdGVTY3JvbGxQb3NpdGlvbiwgbV9zY2hlZHVsZWRVcGRhdGVJc1Byb2dyYW1tYXRpY1Njcm9s
bCwgbV9zY2hlZHVsZWRTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKTsKLX0KLQotdm9pZCBT
Y3JvbGxpbmdDb29yZGluYXRvcjo6dXBkYXRlTWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24oY29uc3Qg
SW50UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBib29sIHByb2dyYW1tYXRpY1Njcm9sbCwgU2V0T3JT
eW5jU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbiBzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKQot
ewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0KLSAgICBpZiAoIW1fcGFnZSkKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBtX3BhZ2UtPm1haW5GcmFt
ZSgpLnZpZXcoKTsKLSAgICBpZiAoIWZyYW1lVmlldykKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
Ym9vbCBvbGRQcm9ncmFtbWF0aWNTY3JvbGwgPSBmcmFtZVZpZXctPmluUHJvZ3JhbW1hdGljU2Ny
b2xsKCk7Ci0gICAgZnJhbWVWaWV3LT5zZXRJblByb2dyYW1tYXRpY1Njcm9sbChwcm9ncmFtbWF0
aWNTY3JvbGwpOwotCi0gICAgZnJhbWVWaWV3LT5zZXRDb25zdHJhaW5zU2Nyb2xsaW5nVG9Db250
ZW50RWRnZShmYWxzZSk7Ci0gICAgZnJhbWVWaWV3LT5ub3RpZnlTY3JvbGxQb3NpdGlvbkNoYW5n
ZWQoc2Nyb2xsUG9zaXRpb24pOwotICAgIGZyYW1lVmlldy0+c2V0Q29uc3RyYWluc1Njcm9sbGlu
Z1RvQ29udGVudEVkZ2UodHJ1ZSk7Ci0KLSAgICBmcmFtZVZpZXctPnNldEluUHJvZ3JhbW1hdGlj
U2Nyb2xsKG9sZFByb2dyYW1tYXRpY1Njcm9sbCk7Ci0KLSNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCi0gICAgaWYgKEdyYXBoaWNzTGF5ZXIqIHNjcm9sbExheWVyID0gc2Nyb2xsTGF5
ZXJGb3JGcmFtZVZpZXcoZnJhbWVWaWV3KSkgewotICAgICAgICBHcmFwaGljc0xheWVyKiBjb3Vu
dGVyU2Nyb2xsaW5nTGF5ZXIgPSBjb3VudGVyU2Nyb2xsaW5nTGF5ZXJGb3JGcmFtZVZpZXcoZnJh
bWVWaWV3KTsKLSAgICAgICAgR3JhcGhpY3NMYXllciogaGVhZGVyTGF5ZXIgPSBoZWFkZXJMYXll
ckZvckZyYW1lVmlldyhmcmFtZVZpZXcpOwotICAgICAgICBHcmFwaGljc0xheWVyKiBmb290ZXJM
YXllciA9IGZvb3RlckxheWVyRm9yRnJhbWVWaWV3KGZyYW1lVmlldyk7Ci0gICAgICAgIEludFNp
emUgc2Nyb2xsT2Zmc2V0Rm9yRml4ZWQgPSBmcmFtZVZpZXctPnNjcm9sbE9mZnNldEZvckZpeGVk
UG9zaXRpb24oKTsKLQotICAgICAgICBpZiAocHJvZ3JhbW1hdGljU2Nyb2xsIHx8IHNjcm9sbGlu
Z0xheWVyUG9zaXRpb25BY3Rpb24gPT0gU2V0U2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbikgewotICAg
ICAgICAgICAgc2Nyb2xsTGF5ZXItPnNldFBvc2l0aW9uKC1mcmFtZVZpZXctPnNjcm9sbFBvc2l0
aW9uKCkpOwotICAgICAgICAgICAgaWYgKGNvdW50ZXJTY3JvbGxpbmdMYXllcikKLSAgICAgICAg
ICAgICAgICBjb3VudGVyU2Nyb2xsaW5nTGF5ZXItPnNldFBvc2l0aW9uKEludFBvaW50KHNjcm9s
bE9mZnNldEZvckZpeGVkKSk7Ci0gICAgICAgICAgICBpZiAoaGVhZGVyTGF5ZXIpCi0gICAgICAg
ICAgICAgICAgaGVhZGVyTGF5ZXItPnNldFBvc2l0aW9uKEZsb2F0UG9pbnQoc2Nyb2xsT2Zmc2V0
Rm9yRml4ZWQud2lkdGgoKSwgMCkpOwotICAgICAgICAgICAgaWYgKGZvb3RlckxheWVyKQotICAg
ICAgICAgICAgICAgIGZvb3RlckxheWVyLT5zZXRQb3NpdGlvbihGbG9hdFBvaW50KHNjcm9sbE9m
ZnNldEZvckZpeGVkLndpZHRoKCksIGZyYW1lVmlldy0+dG90YWxDb250ZW50c1NpemUoKS5oZWln
aHQoKSAtIGZyYW1lVmlldy0+Zm9vdGVySGVpZ2h0KCkpKTsKLSAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgIHNjcm9sbExheWVyLT5zeW5jUG9zaXRpb24oLWZyYW1lVmlldy0+c2Nyb2xsUG9z
aXRpb24oKSk7Ci0gICAgICAgICAgICBpZiAoY291bnRlclNjcm9sbGluZ0xheWVyKQotICAgICAg
ICAgICAgICAgIGNvdW50ZXJTY3JvbGxpbmdMYXllci0+c3luY1Bvc2l0aW9uKEludFBvaW50KHNj
cm9sbE9mZnNldEZvckZpeGVkKSk7Ci0gICAgICAgICAgICBpZiAoaGVhZGVyTGF5ZXIpCi0gICAg
ICAgICAgICAgICAgaGVhZGVyTGF5ZXItPnN5bmNQb3NpdGlvbihGbG9hdFBvaW50KHNjcm9sbE9m
ZnNldEZvckZpeGVkLndpZHRoKCksIDApKTsKLSAgICAgICAgICAgIGlmIChmb290ZXJMYXllcikK
LSAgICAgICAgICAgICAgICBmb290ZXJMYXllci0+c3luY1Bvc2l0aW9uKEZsb2F0UG9pbnQoc2Ny
b2xsT2Zmc2V0Rm9yRml4ZWQud2lkdGgoKSwgZnJhbWVWaWV3LT50b3RhbENvbnRlbnRzU2l6ZSgp
LmhlaWdodCgpIC0gZnJhbWVWaWV3LT5mb290ZXJIZWlnaHQoKSkpOwotCi0gICAgICAgICAgICBM
YXlvdXRSZWN0IHZpZXdwb3J0UmVjdCA9IGZyYW1lVmlldy0+dmlld3BvcnRDb25zdHJhaW5lZFZp
c2libGVDb250ZW50UmVjdCgpOwotICAgICAgICAgICAgc3luY0NoaWxkUG9zaXRpb25zKHZpZXdw
b3J0UmVjdCk7Ci0gICAgICAgIH0KLSAgICB9Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShzY3Jv
bGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKTsKLSNlbmRpZgotfQotCiAjaWYgUExBVEZPUk0oTUFD
KQogdm9pZCBTY3JvbGxpbmdDb29yZGluYXRvcjo6aGFuZGxlV2hlZWxFdmVudFBoYXNlKFBsYXRm
b3JtV2hlZWxFdmVudFBoYXNlIHBoYXNlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKaW5kZXggZmMxZTBiYTNlOTUyYmQ5
Yzk2NjFlM2VlNmRmNjA0YzlhODViZThlZC4uMGUwNWQ2OWZkZDhjOGI4ZDZlZTA3MjMyMjFhOTdm
MWM1ZjcyNmIwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdDb29yZGluYXRvci5oCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiUGxhdGZv
cm1XaGVlbEV2ZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiU2Ny
b2xsVHlwZXMuaCIKLSNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
CiAKICNpZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQpAQCAtMTU5LDEyICsxNTgsNiBAQCBwdWJs
aWM6CiAgICAgLy8gR2VuZXJhdGVkIGEgdW5pcXVlIGlkIGZvciBzY3JvbGwgbGF5ZXJzLgogICAg
IFNjcm9sbGluZ05vZGVJRCB1bmlxdWVTY3JvbGxMYXllcklEKCk7CiAKLSAgICB2b2lkIHNjaGVk
dWxlVXBkYXRlU2Nyb2xsUG9zaXRpb25Gb3JOb2RlKFNjcm9sbGluZ05vZGVJRCwgY29uc3QgSW50
UG9pbnQmLCBib29sIHByb2dyYW1tYXRpY1Njcm9sbCwgU2V0T3JTeW5jU2Nyb2xsaW5nTGF5ZXJQ
b3NpdGlvbik7Ci0KLSAgICAvLyBEaXNwYXRjaGVkIGJ5IHRoZSBzY3JvbGxpbmcgdHJlZSB3aGVu
ZXZlciB0aGUgbWFpbiBmcmFtZSBzY3JvbGwgcG9zaXRpb24gY2hhbmdlcy4KLSAgICB2b2lkIHNj
aGVkdWxlVXBkYXRlTWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24oY29uc3QgSW50UG9pbnQmLCBib29s
IHByb2dyYW1tYXRpY1Njcm9sbCwgU2V0T3JTeW5jU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbik7Ci0g
ICAgdm9pZCB1cGRhdGVNYWluRnJhbWVTY3JvbGxQb3NpdGlvbihjb25zdCBJbnRQb2ludCYsIGJv
b2wgcHJvZ3JhbW1hdGljU2Nyb2xsLCBTZXRPclN5bmNTY3JvbGxpbmdMYXllclBvc2l0aW9uKTsK
LQogICAgIGVudW0gTWFpblRocmVhZFNjcm9sbGluZ1JlYXNvbkZsYWdzIHsKICAgICAgICAgRm9y
Y2VkT25NYWluVGhyZWFkID0gMSA8PCAwLAogICAgICAgICBIYXNTbG93UmVwYWludE9iamVjdHMg
PSAxIDw8IDEsCkBAIC0yMTAsMTMgKzIwMyw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29s
IGhhc1Zpc2libGVTbG93UmVwYWludFZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3RzKEZyYW1lVmll
dyopIGNvbnN0OwogICAgIHZvaWQgdXBkYXRlU3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zKCk7
CiAgICAgCi0gICAgdm9pZCB1cGRhdGVNYWluRnJhbWVTY3JvbGxQb3NpdGlvblRpbWVyRmlyZWQo
VGltZXI8U2Nyb2xsaW5nQ29vcmRpbmF0b3I+Kik7Ci0KLSAgICBUaW1lcjxTY3JvbGxpbmdDb29y
ZGluYXRvcj4gbV91cGRhdGVNYWluRnJhbWVTY3JvbGxQb3NpdGlvblRpbWVyOwotICAgIEludFBv
aW50IG1fc2NoZWR1bGVkVXBkYXRlU2Nyb2xsUG9zaXRpb247Ci0gICAgYm9vbCBtX3NjaGVkdWxl
ZFVwZGF0ZUlzUHJvZ3JhbW1hdGljU2Nyb2xsOwotICAgIFNldE9yU3luY1Njcm9sbGluZ0xheWVy
UG9zaXRpb24gbV9zY2hlZHVsZWRTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOwotCiAgICAg
Ym9vbCBtX2ZvcmNlU3luY2hyb25vdXNTY3JvbGxMYXllclBvc2l0aW9uVXBkYXRlczsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUu
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAppbmRleCBh
NjRlNWVhZDNlYWZjZjU1ZmM5OTQyMjI2MzdiNzcyNGNhYzNkYWJkLi5iNjRiNmEyYmE4MGMxZWU0
YWIwOWE1N2Q5MmQ2YzVlZDY3ZTVjMjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nVHJlZS5oCkBAIC03MSw3ICs3MSw3IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgc2V0TWFpbkZyYW1lUGluU3RhdGUoYm9vbCBwaW5uZWRUb1RoZUxlZnQsIGJvb2wgcGlubmVk
VG9UaGVSaWdodCwgYm9vbCBwaW5uZWRUb1RoZVRvcCwgYm9vbCBwaW5uZWRUb1RoZUJvdHRvbSk7
CiAKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlTWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24oY29uc3Qg
SW50UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBTZXRPclN5bmNTY3JvbGxpbmdMYXllclBvc2l0aW9u
ID0gU3luY1Njcm9sbGluZ0xheWVyUG9zaXRpb24pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2Ny
b2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoU2Nyb2xsaW5nTm9kZUlELCBjb25zdCBJbnRQb2ludCYg
c2Nyb2xsUG9zaXRpb24sIFNldE9yU3luY1Njcm9sbGluZ0xheWVyUG9zaXRpb24gPSBTeW5jU2Ny
b2xsaW5nTGF5ZXJQb3NpdGlvbikgPSAwOwogICAgIEludFBvaW50IG1haW5GcmFtZVNjcm9sbFBv
c2l0aW9uKCk7CiAKICNpZiBQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1MpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVl
LmNwcAppbmRleCA2MjRkM2EyOTMyZWM5ZjFjNTQ3OWZkMDEzYmFlNmM2MTg1ZjY4ZjU0Li44MzE0
ZGUzMDA1NjY1NWFlODVlNzE1NDg4ZDM3NzI3NjlkZjVkY2QyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHAKQEAg
LTEwMCwxNCArMTAwLDE1IEBAIHZvaWQgVGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpjb21taXROZXdU
cmVlU3RhdGUoUGFzc093blB0cjxTY3JvbGxpbmdTdGF0ZVRyZWU+IHNjCiAgICAgU2Nyb2xsaW5n
VHJlZTo6Y29tbWl0TmV3VHJlZVN0YXRlKHNjcm9sbGluZ1N0YXRlVHJlZSk7CiB9CiAKLXZvaWQg
VGhyZWFkZWRTY3JvbGxpbmdUcmVlOjp1cGRhdGVNYWluRnJhbWVTY3JvbGxQb3NpdGlvbihjb25z
dCBJbnRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIFNldE9yU3luY1Njcm9sbGluZ0xheWVyUG9zaXRp
b24gc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbikKK3ZvaWQgVGhyZWFkZWRTY3JvbGxpbmdU
cmVlOjpzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChTY3JvbGxpbmdOb2RlSUQgbm9kZUlELCBj
b25zdCBJbnRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIFNldE9yU3luY1Njcm9sbGluZ0xheWVyUG9z
aXRpb24gc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbikKIHsKICAgICBpZiAoIW1fc2Nyb2xs
aW5nQ29vcmRpbmF0b3IpCiAgICAgICAgIHJldHVybjsKIAotICAgIHNldE1haW5GcmFtZVNjcm9s
bFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uKTsKKyAgICBpZiAobm9kZUlEID09IHJvb3ROb2RlKCkt
PnNjcm9sbGluZ05vZGVJRCgpKQorICAgICAgICBzZXRNYWluRnJhbWVTY3JvbGxQb3NpdGlvbihz
Y3JvbGxQb3NpdGlvbik7CiAKLSAgICBjYWxsT25NYWluVGhyZWFkKGJpbmQoJlNjcm9sbGluZ0Nv
b3JkaW5hdG9yOjpzY2hlZHVsZVVwZGF0ZU1haW5GcmFtZVNjcm9sbFBvc2l0aW9uLCBtX3Njcm9s
bGluZ0Nvb3JkaW5hdG9yLmdldCgpLCBzY3JvbGxQb3NpdGlvbiwgaXNIYW5kbGluZ1Byb2dyYW1t
YXRpY1Njcm9sbCgpLCBzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKSk7CisgICAgY2FsbE9u
TWFpblRocmVhZChiaW5kKCZBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpzY2hlZHVsZVVwZGF0
ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbCwgbV9zY3JvbGxpbmdDb29yZGluYXRvci5n
ZXQoKSwgbm9kZUlELCBzY3JvbGxQb3NpdGlvbiwgaXNIYW5kbGluZ1Byb2dyYW1tYXRpY1Njcm9s
bCgpLCBzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKSk7CiB9CiAKICNpZiBQTEFURk9STShN
QUMpICYmICFQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5oCmluZGV4IGI5ZmIyMTgxNzI3NWRiNjU3NzFi
M2M4ZjRkODk1MmI4YzlkZGM5MGUuLmQwYzhiMTdlNTI0OWJkMDI0Y2YxOGI1M2IyMDM3MzE4ZWRm
YjQ3MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVk
U2Nyb2xsaW5nVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVh
ZGVkU2Nyb2xsaW5nVHJlZS5oCkBAIC02NCw3ICs2NCw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0
dWFsIFBhc3NPd25QdHI8U2Nyb2xsaW5nVHJlZU5vZGU+IGNyZWF0ZU5vZGUoU2Nyb2xsaW5nTm9k
ZVR5cGUsIFNjcm9sbGluZ05vZGVJRCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgdXBk
YXRlTWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24oY29uc3QgSW50UG9pbnQmIHNjcm9sbFBvc2l0aW9u
LCBTZXRPclN5bmNTY3JvbGxpbmdMYXllclBvc2l0aW9uID0gU3luY1Njcm9sbGluZ0xheWVyUG9z
aXRpb24pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZURpZFNj
cm9sbChTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IEludFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgU2V0
T3JTeW5jU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbiA9IFN5bmNTY3JvbGxpbmdMYXllclBvc2l0aW9u
KSBvdmVycmlkZTsKICNpZiBQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1MpCiAgICAgdmly
dHVhbCB2b2lkIGhhbmRsZVdoZWVsRXZlbnRQaGFzZShQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZSkg
b3ZlcnJpZGU7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL2lvcy9TY3JvbGxpbmdUcmVlSU9TLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL2lvcy9TY3JvbGxpbmdUcmVlSU9TLmNwcAppbmRleCA4NTBhOTRkNDkyMmFjNWQ2ZjJkNmQ4
YTZlOTY4OGZhM2RkNTE2MjQ2Li4xNDc5MTZhZmM2MTBhMjIzYTZjOGRkODRkNWJiYTRiNzE4N2Rh
Y2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xs
aW5nVHJlZUlPUy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Nj
cm9sbGluZ1RyZWVJT1MuY3BwCkBAIC04MSwxNCArODEsMTUgQEAgdm9pZCBTY3JvbGxpbmdUcmVl
SU9TOjpjb21taXROZXdUcmVlU3RhdGUoUGFzc093blB0cjxTY3JvbGxpbmdTdGF0ZVRyZWU+IHNj
cm9sbGkKICAgICBTY3JvbGxpbmdUcmVlOjpjb21taXROZXdUcmVlU3RhdGUoc2Nyb2xsaW5nU3Rh
dGVUcmVlKTsKIH0KIAotdm9pZCBTY3JvbGxpbmdUcmVlSU9TOjp1cGRhdGVNYWluRnJhbWVTY3Jv
bGxQb3NpdGlvbihjb25zdCBJbnRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIFNldE9yU3luY1Njcm9s
bGluZ0xheWVyUG9zaXRpb24gc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbikKK3ZvaWQgU2Ny
b2xsaW5nVHJlZUlPUzo6c2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoU2Nyb2xsaW5nTm9kZUlE
IG5vZGVJRCwgY29uc3QgSW50UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBTZXRPclN5bmNTY3JvbGxp
bmdMYXllclBvc2l0aW9uIHNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24pCiB7CiAgICAgaWYg
KCFtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yKQogICAgICAgICByZXR1cm47CiAKLSAgICBzZXRNYWlu
RnJhbWVTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbik7CisgICAgaWYgKG5vZGVJRCA9PSBy
b290Tm9kZSgpLT5zY3JvbGxpbmdOb2RlSUQoKSkKKyAgICAgICAgc2V0TWFpbkZyYW1lU2Nyb2xs
UG9zaXRpb24oc2Nyb2xsUG9zaXRpb24pOwogCi0gICAgY2FsbE9uTWFpblRocmVhZChiaW5kKCZT
Y3JvbGxpbmdDb29yZGluYXRvcjo6c2NoZWR1bGVVcGRhdGVNYWluRnJhbWVTY3JvbGxQb3NpdGlv
biwgbV9zY3JvbGxpbmdDb29yZGluYXRvci5nZXQoKSwgc2Nyb2xsUG9zaXRpb24sIGlzSGFuZGxp
bmdQcm9ncmFtbWF0aWNTY3JvbGwoKSwgc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbikpOwor
ICAgIGNhbGxPbk1haW5UaHJlYWQoYmluZCgmQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6c2No
ZWR1bGVVcGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwsIG1fc2Nyb2xsaW5nQ29v
cmRpbmF0b3IuZ2V0KCksIG5vZGVJRCwgc2Nyb2xsUG9zaXRpb24sIGlzSGFuZGxpbmdQcm9ncmFt
bWF0aWNTY3JvbGwoKSwgc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbikpOwogfQogCiBQYXNz
T3duUHRyPFNjcm9sbGluZ1RyZWVOb2RlPiBTY3JvbGxpbmdUcmVlSU9TOjpjcmVhdGVOb2RlKFNj
cm9sbGluZ05vZGVUeXBlIG5vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQgbm9kZUlEKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVJT1Mu
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlSU9TLmgK
aW5kZXggN2NiYTJmMTg0ZDFlNWFlODMzZWY3MjgzYzljNWMyYjFiNDNlODMwZC4uNTc2MDFiODhm
MGRiNTdiZmRkYzM5NDVlMThkMDk4MmFkMWZlYzlhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVJT1MuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZUlPUy5oCkBAIC01Niw3ICs1Niw3
IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIFBhc3NPd25QdHI8U2Nyb2xsaW5nVHJlZU5vZGU+
IGNyZWF0ZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCkgb3ZlcnJpZGU7
CiAKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlTWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24oY29uc3Qg
SW50UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBTZXRPclN5bmNTY3JvbGxpbmdMYXllclBvc2l0aW9u
ID0gU3luY1Njcm9sbGluZ0xheWVyUG9zaXRpb24pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IEludFBv
aW50JiBzY3JvbGxQb3NpdGlvbiwgU2V0T3JTeW5jU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbiA9IFN5
bmNTY3JvbGxpbmdMYXllclBvc2l0aW9uKSBvdmVycmlkZTsKIAogICAgIFJlZlB0cjxBc3luY1Nj
cm9sbGluZ0Nvb3JkaW5hdG9yPiBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yOwogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZUlPUy5tbQppbmRleCA2YjMyOTYzZWY4ZDVkMWFmNzliNDI1Njkz
MTJiMTU2OGEwMGMyYTdkLi44MjZlY2Q2MDRmOWI3ZDdmZTQwYjA0MjgyZGIwOWNiZmEzZGVjNTU0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGVJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlSU9TLm1tCkBAIC0xMTgsMTIgKzExOCwx
MiBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlSU9TOjpzZXRTY3JvbGxQb3NpdGlv
bldpdGhvdXRDb250ZW50RWRnZUNvbnN0cmFpbgogewogICAgIGlmIChzaG91bGRVcGRhdGVTY3Jv
bGxMYXllclBvc2l0aW9uU3luY2hyb25vdXNseSgpKSB7CiAgICAgICAgIG1fcHJvYmFibGVNYWlu
VGhyZWFkU2Nyb2xsUG9zaXRpb24gPSBzY3JvbGxQb3NpdGlvbjsKLSAgICAgICAgc2Nyb2xsaW5n
VHJlZSgpLnVwZGF0ZU1haW5GcmFtZVNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uLCBTZXRT
Y3JvbGxpbmdMYXllclBvc2l0aW9uKTsKKyAgICAgICAgc2Nyb2xsaW5nVHJlZSgpLnNjcm9sbGlu
Z1RyZWVOb2RlRGlkU2Nyb2xsKHNjcm9sbGluZ05vZGVJRCgpLCBzY3JvbGxQb3NpdGlvbiwgU2V0
U2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBz
ZXRTY3JvbGxMYXllclBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uKTsKLSAgICBzY3JvbGxpbmdUcmVl
KCkudXBkYXRlTWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24pOworICAgIHNj
cm9sbGluZ1RyZWUoKS5zY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChzY3JvbGxpbmdOb2RlSUQo
KSwgc2Nyb2xsUG9zaXRpb24pOwogfQogCiB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
SU9TOjpzZXRTY3JvbGxMYXllclBvc2l0aW9uKGNvbnN0IEludFBvaW50JiBwb3NpdGlvbikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9T
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1hYy5tbQppbmRleCBlYjdkMjAxZGJiNTQzYTc5NmU0
MTlkMGU3Njg4Nzk2ZGVjMzhmYzRlLi44NTdkZThiYjVmY2FiNDcxMDI4ZGM2MDY4Mjc3ZTUyMGJk
NmQ3YzUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFjLm1tCkBAIC0zMTUsMTIg
KzMxNSwxMiBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFjOjpzZXRTY3JvbGxQ
b3NpdGlvbldpdGhvdXRDb250ZW50RWRnZUNvbnN0cmFpbgogCiAgICAgaWYgKHNob3VsZFVwZGF0
ZVNjcm9sbExheWVyUG9zaXRpb25TeW5jaHJvbm91c2x5KCkpIHsKICAgICAgICAgbV9wcm9iYWJs
ZU1haW5UaHJlYWRTY3JvbGxQb3NpdGlvbiA9IHNjcm9sbFBvc2l0aW9uOwotICAgICAgICBzY3Jv
bGxpbmdUcmVlKCkudXBkYXRlTWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24s
IFNldFNjcm9sbGluZ0xheWVyUG9zaXRpb24pOworICAgICAgICBzY3JvbGxpbmdUcmVlKCkuc2Ny
b2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoc2Nyb2xsaW5nTm9kZUlEKCksIHNjcm9sbFBvc2l0aW9u
LCBTZXRTY3JvbGxpbmdMYXllclBvc2l0aW9uKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAog
ICAgIHNldFNjcm9sbExheWVyUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24pOwotICAgIHNjcm9sbGlu
Z1RyZWUoKS51cGRhdGVNYWluRnJhbWVTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbik7Cisg
ICAgc2Nyb2xsaW5nVHJlZSgpLnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKHNjcm9sbGluZ05v
ZGVJRCgpLCBzY3JvbGxQb3NpdGlvbik7CiB9CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGVNYWM6OnNldFNjcm9sbExheWVyUG9zaXRpb24oY29uc3QgSW50UG9pbnQmIHBvc2l0aW9u
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVT
Y3JvbGxpbmdUcmVlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVt
b3RlU2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXggZmI0NjI0ZjI1MzI3N2FmMTFkMWYxMWNkZWFhYzU1
ZmRhZmU4NWZkZi4uMjMxN2QxNTgyMmFmZGY3NWU5NWUzYzg0MTkyMDJhZDVkOGQ0NTk3NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxp
bmdUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90
ZVNjcm9sbGluZ1RyZWUuY3BwCkBAIC03NiwxMCArNzYsOSBAQCB2b2lkIFJlbW90ZVNjcm9sbGlu
Z1RyZWU6OmhhbmRsZVdoZWVsRXZlbnRQaGFzZShQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZSBwaGFz
ZSkKIH0KICNlbmRpZgogCi12b2lkIFJlbW90ZVNjcm9sbGluZ1RyZWU6OnVwZGF0ZU1haW5GcmFt
ZVNjcm9sbFBvc2l0aW9uKGNvbnN0IEludFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgU2V0T3JTeW5j
U2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbikKK3ZvaWQgUmVtb3RlU2Nyb2xsaW5nVHJlZTo6c2Nyb2xs
aW5nVHJlZU5vZGVEaWRTY3JvbGwoU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwgY29uc3QgSW50UG9p
bnQmIHNjcm9sbFBvc2l0aW9uLCBTZXRPclN5bmNTY3JvbGxpbmdMYXllclBvc2l0aW9uKQogewot
ICAgIC8vIEZJWE1FOiBmaXggZm9yIGFsbCBzY3JvbGxpbmcgbm9kZXMuCi0gICAgbV9zY3JvbGxp
bmdDb29yZGluYXRvclByb3h5LnNjcm9sbFBvc2l0aW9uQ2hhbmdlZChyb290Tm9kZSgpLT5zY3Jv
bGxpbmdOb2RlSUQoKSwgc2Nyb2xsUG9zaXRpb24pOworICAgIG1fc2Nyb2xsaW5nQ29vcmRpbmF0
b3JQcm94eS5zY3JvbGxQb3NpdGlvbkNoYW5nZWQobm9kZUlELCBzY3JvbGxQb3NpdGlvbik7CiB9
CiAKIFBhc3NPd25QdHI8U2Nyb2xsaW5nVHJlZU5vZGU+IFJlbW90ZVNjcm9sbGluZ1RyZWU6OmNy
ZWF0ZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUgbm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCBub2Rl
SUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90
ZVNjcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVt
b3RlU2Nyb2xsaW5nVHJlZS5oCmluZGV4IGIwNGZjYzYyNmY4ZjliZTNlYzU4NTVlNmQ4YjNkYzU0
MTg4ZDkwOTMuLjI2OGU1YTJjNmExN2ZkMzk3ZGIwYzZjZDg5ZmM5YWJiNzk2NjQyNTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5n
VHJlZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Ny
b2xsaW5nVHJlZS5oCkBAIC01Miw3ICs1Miw3IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oTUFD
KSAmJiAhUExBVEZPUk0oSU9TKQogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVXaGVlbEV2ZW50UGhh
c2UoV2ViQ29yZTo6UGxhdGZvcm1XaGVlbEV2ZW50UGhhc2UpIG92ZXJyaWRlOwogI2VuZGlmCi0g
ICAgdmlydHVhbCB2b2lkIHVwZGF0ZU1haW5GcmFtZVNjcm9sbFBvc2l0aW9uKGNvbnN0IFdlYkNv
cmU6OkludFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgV2ViQ29yZTo6U2V0T3JTeW5jU2Nyb2xsaW5n
TGF5ZXJQb3NpdGlvbiA9IFdlYkNvcmU6OlN5bmNTY3JvbGxpbmdMYXllclBvc2l0aW9uKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoV2ViQ29y
ZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsUG9zaXRp
b24sIFdlYkNvcmU6OlNldE9yU3luY1Njcm9sbGluZ0xheWVyUG9zaXRpb24gPSBXZWJDb3JlOjpT
eW5jU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIFBhc3NP
d25QdHI8V2ViQ29yZTo6U2Nyb2xsaW5nVHJlZU5vZGU+IGNyZWF0ZU5vZGUoV2ViQ29yZTo6U2Ny
b2xsaW5nTm9kZVR5cGUsIFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCk7CiAgICAgCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvci5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1tCmluZGV4IGM4OTY2YjhlNmYzNjZlNWU4ZDIzZDNkZWQ4
YzJjM2U3YjE3OWI1YjIuLjliZDVjNDg1ZTc5NWJiMDE4NzA1MDZlZmQxZDRmOGQwNzk5OGIyMTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvU2Ny
b2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1tCkBAIC05Myw3ICs5Myw3IEBAIHZv
aWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmJ1aWxkVHJhbnNhY3Rpb24oUmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3JUcmFuCiAvLyBOb3RpZmljYXRpb24gZnJvbSB0aGUgVUkgcHJvY2Vz
cyB0aGF0IHdlIHNjcm9sbGVkLgogdm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcjo6c2Ny
b2xsUG9zaXRpb25DaGFuZ2VkRm9yTm9kZShTY3JvbGxpbmdOb2RlSUQgbm9kZUlELCBjb25zdCBG
bG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbikKIHsKLSAgICBzY2hlZHVsZVVwZGF0ZVNjcm9sbFBv
c2l0aW9uRm9yTm9kZShub2RlSUQsIHJvdW5kZWRJbnRQb2ludChzY3JvbGxQb3NpdGlvbiksIGZh
bHNlIC8qIEZJWE1FICovLCBTeW5jU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbik7CisgICAgc2NoZWR1
bGVVcGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwobm9kZUlELCByb3VuZGVkSW50
UG9pbnQoc2Nyb2xsUG9zaXRpb24pLCBmYWxzZSAvKiBGSVhNRSAqLywgU3luY1Njcm9sbGluZ0xh
eWVyUG9zaXRpb24pOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222162</attachid>
            <date>2014-01-24 15:25:47 -0800</date>
            <delta_ts>2014-01-24 15:32:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127590-20140124152547.patch</filename>
            <type>text/plain</type>
            <size>32817</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYyNzMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTI0NGNkMWVlZDI1NjI5
OWY5ODMyMGY1MzAwZTIyMTk0YzNiNWEyMS4uOWExZDlmOGZlNzkxMTAzOWQ4YjI0MjRhMWMxYmU4
Yzk1MTc0NTgzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ5IEBACiAyMDE0LTAxLTI0ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCisgICAgICAgIFByZXBhcmUgc2Ny
b2xsaW5nIHRyZWUgdG8gaGFuZGxlID4gMSBzY3JvbGxpbmcgbm9kZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3NTkwCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2xlYW4gdXAgdGhlIGNvZGUgcGF0aCBj
YWxsZWQgYWZ0ZXIgdGhlIFNjcm9sbGluZ1RyZWUgaGFzIHNjcm9sbGVkIGEgbm9kZSwKKyAgICAg
ICAgdG8gcHJlcGFyZSBmb3IgbXVsdGlwbGUgc2Nyb2xsaW5nIG5vZGVzLgorICAgICAgICAKKyAg
ICAgICAgQ2hhbmdlICJ1cGRhdGVNYWluRnJhbWVTY3JvbGxQb3NpdGlvbiIgdGVybWlub2xvZ3kg
dG8gInVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbCIsCisgICAgICAgIGFuZCBw
YXNzIGFsb25nIHRoZSBTY3JvbGxpbmdOb2RlSUQgdGhhdCBzY3JvbGxlZC4KKyAgICAgICAgCisg
ICAgICAgIE1vdmUgdXBkYXRlTWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24tcmVsYXRlZCBjb2RlIGZy
b20gU2Nyb2xsaW5nQ29vcmRpbmF0b3IgdG8KKyAgICAgICAgQXN5bmNTY3JvbGxpbmdDb29yZGlu
YXRvciwgc2luY2UgdGhpcyBzeW5jLXVwIGlzIG9ubHkgbmVjZXNzYXJ5IHdoZW4gZG9pbmcKKyAg
ICAgICAgYXN5bmMgc2Nyb2xsaW5nLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAg
ICAgICogcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpBc3luY1Njcm9sbGluZ0Nv
b3JkaW5hdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6
OnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpBc3luY1Nj
cm9sbGluZ0Nvb3JkaW5hdG9yOjpzY2hlZHVsZVVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3lu
Y1Njcm9sbCk6CisgICAgICAgIChXZWJDb3JlOjpBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjp1
cGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGxUaW1lckZpcmVkKToKKyAgICAgICAg
KFdlYkNvcmU6OkFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnVwZGF0ZVNjcm9sbFBvc2l0aW9u
QWZ0ZXJBc3luY1Njcm9sbCk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxp
bmdDb29yZGluYXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNTY3JvbGxpbmdDb29yZGlu
YXRvcjo6U2NoZWR1bGVkU2Nyb2xsVXBkYXRlOjpTY2hlZHVsZWRTY3JvbGxVcGRhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6U2NoZWR1bGVkU2Nyb2xs
VXBkYXRlOjptYXRjaGVzVXBkYXRlVHlwZSk6CisgICAgICAgIFBhY2thZ2UgdXAgdGhlIGRhdGEg
cmVsYXRlZCB0byBhIHNjaGVkdWxlZCBzY3JvbGwgaW50byBhIFNjaGVkdWxlZFNjcm9sbFVwZGF0
ZSBzdHJ1Y3QsCisgICAgICAgIGZvciBlYXNpZXIgY29tcGFyaXNvbiBhbmQgY2xlYW5lciBjb2Rl
LgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpTY3JvbGxpbmdDb29yZGluYXRv
cik6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDoKKyAg
ICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmg6CisgICAgICAgICogcGFnZS9z
Y3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRo
cmVhZGVkU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwpOgorICAgICAg
ICAqIHBhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5oOgorICAgICAgICAqIHBh
Z2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlSU9TLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGluZ1RyZWVJT1M6OnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKToKKyAgICAgICAg
KiBwYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZUlPUy5oOgorICAgICAgICAqIHBhZ2Uv
c2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZUlPUy5tbToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlSU9TOjpzZXRTY3JvbGxQb3NpdGlv
bldpdGhvdXRDb250ZW50RWRnZUNvbnN0cmFpbnRzKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVNYWMubW06CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1hYzo6c2V0U2Nyb2xsUG9zaXRpb25XaXRob3V0
Q29udGVudEVkZ2VDb25zdHJhaW50cyk6CisKKzIwMTQtMDEtMjQgIFNpbW9uIEZyYXNlciAgPHNp
bW9uLmZyYXNlckBhcHBsZS5jb20+CisKICAgICAgICAgI2lmZGVmIG91dCBoYW5kbGVXaGVlbEV2
ZW50UGhhc2UgZm9yIGlPUwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTI3NTgzCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAzNjc2OWEwYjFlZDJlZGJkY2IzYTMxNWFj
NjI5ZjUwZGI0MzRjNGE3Li4yOWE4MWRhYmJiZmYyM2RiNjRjNDI3MzllMWM5Nzg0OThhYzI0OWU3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjQgQEAKIDIwMTQtMDEtMjQgIFNpbW9uIEZyYXNlciAg
PHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKKyAgICAgICAgUHJlcGFyZSBzY3JvbGxpbmcgdHJl
ZSB0byBoYW5kbGUgPiAxIHNjcm9sbGluZyBub2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc1OTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIENsZWFuIHVwIHRoZSBjb2RlIHBhdGggY2Fs
bGVkIGFmdGVyIHRoZSBTY3JvbGxpbmdUcmVlIGhhcyBzY3JvbGxlZCBhIG5vZGUsCisgICAgICAg
IHRvIHByZXBhcmUgZm9yIG11bHRpcGxlIHNjcm9sbGluZyBub2Rlcy4KKyAgICAgICAgCisgICAg
ICAgIENoYW5nZSAidXBkYXRlTWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24iIHRlcm1pbm9sb2d5IHRv
ICJ1cGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwiLAorICAgICAgICBhbmQgcGFz
cyBhbG9uZyB0aGUgU2Nyb2xsaW5nTm9kZUlEIHRoYXQgc2Nyb2xsZWQuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbCk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdUcmVlLmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubW06
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpzY3JvbGxQb3Np
dGlvbkNoYW5nZWRGb3JOb2RlKToKKworMjAxNC0wMS0yNCAgU2ltb24gRnJhc2VyICA8c2ltb24u
ZnJhc2VyQGFwcGxlLmNvbT4KKwogICAgICAgICAjaWZkZWYgb3V0IGhhbmRsZVdoZWVsRXZlbnRQ
aGFzZSBmb3IgaU9TCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMjc1ODMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4g
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCA4YjRhOTJhYjAzZDAxOWM3YzIx
ZGQ5YjU1MzBhMDU4MjMwYjJiMzU5Li44MzRjYWJlMWYzNTIyOWM4NDhiMGZhYjJiYTgyNDZhNTY5
MGJmM2FiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMjk5Miw3ICsyOTkyLDYgQEAgX19aTjdX
ZWJDb3JlMjJTY3JvbGxpbmdUcmVlRml4ZWROb2RlNmNyZWF0ZUVSTlNfMTNTY3JvbGxpbmdUcmVl
RXkKIF9fWk43V2ViQ29yZTIzU2Nyb2xsaW5nU3RhdGVGaXhlZE5vZGUxN3VwZGF0ZUNvbnN0cmFp
bnRzRVJLTlNfMzJGaXhlZFBvc2l0aW9uVmlld3BvcnRDb25zdHJhaW50c0UKIF9fWk43V2ViQ29y
ZTIzU2Nyb2xsaW5nVHJlZVN0aWNreU5vZGU2Y3JlYXRlRVJOU18xM1Njcm9sbGluZ1RyZWVFeQog
X19aTjdXZWJDb3JlMjRTY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUxN3VwZGF0ZUNvbnN0cmFpbnRz
RVJLTlNfMzNTdGlja3lQb3NpdGlvblZpZXdwb3J0Q29uc3RyYWludHNFCi1fX1pON1dlYkNvcmUy
MFNjcm9sbGluZ0Nvb3JkaW5hdG9yMzVzY2hlZHVsZVVwZGF0ZVNjcm9sbFBvc2l0aW9uRm9yTm9k
ZUV5UktOU184SW50UG9pbnRFYk5TXzMxU2V0T3JTeW5jU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkUK
IF9fWk43V2ViQ29yZTI1QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjE0Y2xlYXJTdGF0ZVRyZWVF
dgogX19aTjdXZWJDb3JlMjVBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yMTdhdHRhY2hUb1N0YXRl
VHJlZUVOU18xN1Njcm9sbGluZ05vZGVUeXBlRXl5CiBfX1pON1dlYkNvcmUyNUFzeW5jU2Nyb2xs
aW5nQ29vcmRpbmF0b3IxOHN5bmNDaGlsZFBvc2l0aW9uc0VSS05TXzEwTGF5b3V0UmVjdEUKQEAg
LTMwMDYsNiArMzAwNSw3IEBAIF9fWk43V2ViQ29yZTI1QXN5bmNTY3JvbGxpbmdDb29yZGluYXRv
cjI5dXBkYXRlVmlld3BvcnRDb25zdHJhaW5lZE5vZGVFeVJLTlNfMTlWCiBfX1pON1dlYkNvcmUy
NUFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IzMHNldFN5bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29u
c0VqCiBfX1pON1dlYkNvcmUyNUFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IzN3Njcm9sbGFibGVB
cmVhU2Nyb2xsYmFyTGF5ZXJEaWRDaGFuZ2VFUE5TXzE0U2Nyb2xsYWJsZUFyZWFFTlNfMjBTY3Jv
bGxiYXJPcmllbnRhdGlvbkUKIF9fWk43V2ViQ29yZTI1QXN5bmNTY3JvbGxpbmdDb29yZGluYXRv
cjQzcmVjb21wdXRlV2hlZWxFdmVudEhhbmRsZXJDb3VudEZvckZyYW1lVmlld0VQTlNfOUZyYW1l
Vmlld0UKK19fWk43V2ViQ29yZTI1QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjQ0c2NoZWR1bGVV
cGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGxFeVJLTlNfOEludFBvaW50RWJOU18z
MVNldE9yU3luY1Njcm9sbGluZ0xheWVyUG9zaXRpb25FCiBfX1pON1dlYkNvcmUyNUFzeW5jU2Ny
b2xsaW5nQ29vcmRpbmF0b3JDMkVQTlNfNFBhZ2VFCiBfX1pON1dlYkNvcmUyNUFzeW5jU2Nyb2xs
aW5nQ29vcmRpbmF0b3JEMkV2CiBfX1pON1dlYkNvcmUyN1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5n
Tm9kZTE0c2V0Rm9vdGVyTGF5ZXJFUktOU18xOUxheWVyUmVwcmVzZW50YXRpb25FCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5h
dG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29v
cmRpbmF0b3IuY3BwCmluZGV4IDE1MGI2ZGVjM2ZmNGZiZjMwZDE1MDM3NDQzMzdiZDAzODY0MjI3
ZDEuLjM3OGYzNDk3MWMxYzg4MTc1MDQ0ZDM4NWQ1MDEwNGRmMTdiZjAxNjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29v
cmRpbmF0b3IuY3BwCkBAIC00Myw2ICs0Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQXN5
bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcihQYWdlKiBw
YWdlKQogICAgIDogU2Nyb2xsaW5nQ29vcmRpbmF0b3IocGFnZSkKKyAgICAsIG1fdXBkYXRlTWFp
bkZyYW1lU2Nyb2xsUG9zaXRpb25UaW1lcih0aGlzLCAmQXN5bmNTY3JvbGxpbmdDb29yZGluYXRv
cjo6dXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRlckFzeW5jU2Nyb2xsVGltZXJGaXJlZCkKICAgICAs
IG1fc2Nyb2xsaW5nU3RhdGVUcmVlKFNjcm9sbGluZ1N0YXRlVHJlZTo6Y3JlYXRlKHRoaXMpKQog
ewogfQpAQCAtMTM1LDcgKzEzNiw3IEBAIGJvb2wgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6
cmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKEZyYW1lVmlldyogZnJhbWVWaWV3CiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAogICAgIGlmIChmcmFtZVZpZXctPmluUHJvZ3JhbW1hdGljU2Nyb2xs
KCkgfHwgZnJhbWVWaWV3LT5mcmFtZSgpLmRvY3VtZW50KCktPmluUGFnZUNhY2hlKCkpCi0gICAg
ICAgIHVwZGF0ZU1haW5GcmFtZVNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uLCBmcmFtZVZp
ZXctPmluUHJvZ3JhbW1hdGljU2Nyb2xsKCksIFNldFNjcm9sbGluZ0xheWVyUG9zaXRpb24pOwor
ICAgICAgICB1cGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwoZnJhbWVWaWV3LT5z
Y3JvbGxMYXllcklEKCksIHNjcm9sbFBvc2l0aW9uLCBmcmFtZVZpZXctPmluUHJvZ3JhbW1hdGlj
U2Nyb2xsKCksIFNldFNjcm9sbGluZ0xheWVyUG9zaXRpb24pOwogCiAgICAgLy8gSWYgdGhpcyBm
cmFtZSB2aWV3J3MgZG9jdW1lbnQgaXMgYmVpbmcgcHV0IGludG8gdGhlIHBhZ2UgY2FjaGUsIHdl
IGRvbid0IHdhbnQgdG8gdXBkYXRlIG91cgogICAgIC8vIG1haW4gZnJhbWUgc2Nyb2xsIHBvc2l0
aW9uLiBKdXN0IGxldCB0aGUgRnJhbWVWaWV3IHRoaW5rIHRoYXQgd2UgZGlkLgpAQCAtMTUwLDYg
KzE1MSw4OCBAQCBib29sIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnJlcXVlc3RTY3JvbGxQ
b3NpdGlvblVwZGF0ZShGcmFtZVZpZXcqIGZyYW1lVmlldwogICAgIHJldHVybiB0cnVlOwogfQog
Cit2b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNjaGVkdWxlVXBkYXRlU2Nyb2xsUG9z
aXRpb25BZnRlckFzeW5jU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCBub2RlSUQsIGNvbnN0IEludFBv
aW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCBwcm9ncmFtbWF0aWNTY3JvbGwsIFNldE9yU3luY1Nj
cm9sbGluZ0xheWVyUG9zaXRpb24gc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbikKK3sKKyAg
ICBTY2hlZHVsZWRTY3JvbGxVcGRhdGUgc2Nyb2xsVXBkYXRlKG5vZGVJRCwgc2Nyb2xsUG9zaXRp
b24sIHByb2dyYW1tYXRpY1Njcm9sbCwgc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbik7Cisg
ICAgCisgICAgaWYgKG1fdXBkYXRlTWFpbkZyYW1lU2Nyb2xsUG9zaXRpb25UaW1lci5pc0FjdGl2
ZSgpKSB7CisgICAgICAgIGlmIChtX3NjaGVkdWxlZFNjcm9sbFVwZGF0ZS5tYXRjaGVzVXBkYXRl
VHlwZShzY3JvbGxVcGRhdGUpKSB7CisgICAgICAgICAgICBtX3NjaGVkdWxlZFNjcm9sbFVwZGF0
ZS5zY3JvbGxQb3NpdGlvbiA9IHNjcm9sbFBvc2l0aW9uOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisgICAgCisgICAgICAgIC8vIElmIHRoZSBwYXJhbWV0ZXJzIGRvbid0IG1hdGNo
IHdoYXQgd2FzIHByZXZpb3NseSBzY2hlZHVsZWQsIGRpc3BhdGNoIGltbWVkaWF0ZWx5LgorICAg
ICAgICBtX3VwZGF0ZU1haW5GcmFtZVNjcm9sbFBvc2l0aW9uVGltZXIuc3RvcCgpOworICAgICAg
ICB1cGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwobV9zY2hlZHVsZWRTY3JvbGxV
cGRhdGUubm9kZUlELCBtX3NjaGVkdWxlZFNjcm9sbFVwZGF0ZS5zY3JvbGxQb3NpdGlvbiwgbV9z
Y2hlZHVsZWRTY3JvbGxVcGRhdGUuaXNQcm9ncmFtbWF0aWNTY3JvbGwsIG1fc2NoZWR1bGVkU2Ny
b2xsVXBkYXRlLnVwZGF0ZUxheWVyUG9zaXRpb25BY3Rpb24pOworICAgICAgICB1cGRhdGVTY3Jv
bGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwobm9kZUlELCBzY3JvbGxQb3NpdGlvbiwgcHJvZ3Jh
bW1hdGljU2Nyb2xsLCBzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIG1fc2NoZWR1bGVkU2Nyb2xsVXBkYXRlID0gc2Nyb2xsVXBkYXRl
OworICAgIG1fdXBkYXRlTWFpbkZyYW1lU2Nyb2xsUG9zaXRpb25UaW1lci5zdGFydE9uZVNob3Qo
MCk7Cit9CisKK3ZvaWQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6dXBkYXRlU2Nyb2xsUG9z
aXRpb25BZnRlckFzeW5jU2Nyb2xsVGltZXJGaXJlZChUaW1lcjxBc3luY1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yPiopCit7CisgICAgdXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRlckFzeW5jU2Nyb2xsKG1f
c2NoZWR1bGVkU2Nyb2xsVXBkYXRlLm5vZGVJRCwgbV9zY2hlZHVsZWRTY3JvbGxVcGRhdGUuc2Ny
b2xsUG9zaXRpb24sIG1fc2NoZWR1bGVkU2Nyb2xsVXBkYXRlLmlzUHJvZ3JhbW1hdGljU2Nyb2xs
LCBtX3NjaGVkdWxlZFNjcm9sbFVwZGF0ZS51cGRhdGVMYXllclBvc2l0aW9uQWN0aW9uKTsKK30K
Kwordm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjp1cGRhdGVTY3JvbGxQb3NpdGlvbkFm
dGVyQXN5bmNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGluZ05vZGVJRCwgY29uc3QgSW50
UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBib29sIHByb2dyYW1tYXRpY1Njcm9sbCwgU2V0T3JTeW5j
U2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbiBzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKQorewor
ICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisKKyAgICBpZiAoIW1fcGFnZSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBtX3BhZ2UtPm1haW5GcmFtZSgp
LnZpZXcoKTsKKyAgICBpZiAoIWZyYW1lVmlldykKKyAgICAgICAgcmV0dXJuOworCisgICAgYm9v
bCBvbGRQcm9ncmFtbWF0aWNTY3JvbGwgPSBmcmFtZVZpZXctPmluUHJvZ3JhbW1hdGljU2Nyb2xs
KCk7CisgICAgZnJhbWVWaWV3LT5zZXRJblByb2dyYW1tYXRpY1Njcm9sbChwcm9ncmFtbWF0aWNT
Y3JvbGwpOworCisgICAgZnJhbWVWaWV3LT5zZXRDb25zdHJhaW5zU2Nyb2xsaW5nVG9Db250ZW50
RWRnZShmYWxzZSk7CisgICAgZnJhbWVWaWV3LT5ub3RpZnlTY3JvbGxQb3NpdGlvbkNoYW5nZWQo
c2Nyb2xsUG9zaXRpb24pOworICAgIGZyYW1lVmlldy0+c2V0Q29uc3RyYWluc1Njcm9sbGluZ1Rv
Q29udGVudEVkZ2UodHJ1ZSk7CisKKyAgICBmcmFtZVZpZXctPnNldEluUHJvZ3JhbW1hdGljU2Ny
b2xsKG9sZFByb2dyYW1tYXRpY1Njcm9sbCk7CisKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCisgICAgaWYgKHNjcm9sbGluZ05vZGVJRCA9PSBmcmFtZVZpZXctPnNjcm9sbExheWVy
SUQoKSkgeworICAgICAgICBpZiAoR3JhcGhpY3NMYXllciogc2Nyb2xsTGF5ZXIgPSBzY3JvbGxM
YXllckZvckZyYW1lVmlldyhmcmFtZVZpZXcpKSB7CisgICAgICAgICAgICBHcmFwaGljc0xheWVy
KiBjb3VudGVyU2Nyb2xsaW5nTGF5ZXIgPSBjb3VudGVyU2Nyb2xsaW5nTGF5ZXJGb3JGcmFtZVZp
ZXcoZnJhbWVWaWV3KTsKKyAgICAgICAgICAgIEdyYXBoaWNzTGF5ZXIqIGhlYWRlckxheWVyID0g
aGVhZGVyTGF5ZXJGb3JGcmFtZVZpZXcoZnJhbWVWaWV3KTsKKyAgICAgICAgICAgIEdyYXBoaWNz
TGF5ZXIqIGZvb3RlckxheWVyID0gZm9vdGVyTGF5ZXJGb3JGcmFtZVZpZXcoZnJhbWVWaWV3KTsK
KyAgICAgICAgICAgIEludFNpemUgc2Nyb2xsT2Zmc2V0Rm9yRml4ZWQgPSBmcmFtZVZpZXctPnNj
cm9sbE9mZnNldEZvckZpeGVkUG9zaXRpb24oKTsKKworICAgICAgICAgICAgaWYgKHByb2dyYW1t
YXRpY1Njcm9sbCB8fCBzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uID09IFNldFNjcm9sbGlu
Z0xheWVyUG9zaXRpb24pIHsKKyAgICAgICAgICAgICAgICBzY3JvbGxMYXllci0+c2V0UG9zaXRp
b24oLWZyYW1lVmlldy0+c2Nyb2xsUG9zaXRpb24oKSk7CisgICAgICAgICAgICAgICAgaWYgKGNv
dW50ZXJTY3JvbGxpbmdMYXllcikKKyAgICAgICAgICAgICAgICAgICAgY291bnRlclNjcm9sbGlu
Z0xheWVyLT5zZXRQb3NpdGlvbihJbnRQb2ludChzY3JvbGxPZmZzZXRGb3JGaXhlZCkpOworICAg
ICAgICAgICAgICAgIGlmIChoZWFkZXJMYXllcikKKyAgICAgICAgICAgICAgICAgICAgaGVhZGVy
TGF5ZXItPnNldFBvc2l0aW9uKEZsb2F0UG9pbnQoc2Nyb2xsT2Zmc2V0Rm9yRml4ZWQud2lkdGgo
KSwgMCkpOworICAgICAgICAgICAgICAgIGlmIChmb290ZXJMYXllcikKKyAgICAgICAgICAgICAg
ICAgICAgZm9vdGVyTGF5ZXItPnNldFBvc2l0aW9uKEZsb2F0UG9pbnQoc2Nyb2xsT2Zmc2V0Rm9y
Rml4ZWQud2lkdGgoKSwgZnJhbWVWaWV3LT50b3RhbENvbnRlbnRzU2l6ZSgpLmhlaWdodCgpIC0g
ZnJhbWVWaWV3LT5mb290ZXJIZWlnaHQoKSkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgICAgICBzY3JvbGxMYXllci0+c3luY1Bvc2l0aW9uKC1mcmFtZVZpZXctPnNjcm9sbFBv
c2l0aW9uKCkpOworICAgICAgICAgICAgICAgIGlmIChjb3VudGVyU2Nyb2xsaW5nTGF5ZXIpCisg
ICAgICAgICAgICAgICAgICAgIGNvdW50ZXJTY3JvbGxpbmdMYXllci0+c3luY1Bvc2l0aW9uKElu
dFBvaW50KHNjcm9sbE9mZnNldEZvckZpeGVkKSk7CisgICAgICAgICAgICAgICAgaWYgKGhlYWRl
ckxheWVyKQorICAgICAgICAgICAgICAgICAgICBoZWFkZXJMYXllci0+c3luY1Bvc2l0aW9uKEZs
b2F0UG9pbnQoc2Nyb2xsT2Zmc2V0Rm9yRml4ZWQud2lkdGgoKSwgMCkpOworICAgICAgICAgICAg
ICAgIGlmIChmb290ZXJMYXllcikKKyAgICAgICAgICAgICAgICAgICAgZm9vdGVyTGF5ZXItPnN5
bmNQb3NpdGlvbihGbG9hdFBvaW50KHNjcm9sbE9mZnNldEZvckZpeGVkLndpZHRoKCksIGZyYW1l
Vmlldy0+dG90YWxDb250ZW50c1NpemUoKS5oZWlnaHQoKSAtIGZyYW1lVmlldy0+Zm9vdGVySGVp
Z2h0KCkpKTsKKworICAgICAgICAgICAgICAgIExheW91dFJlY3Qgdmlld3BvcnRSZWN0ID0gZnJh
bWVWaWV3LT52aWV3cG9ydENvbnN0cmFpbmVkVmlzaWJsZUNvbnRlbnRSZWN0KCk7CisgICAgICAg
ICAgICAgICAgc3luY0NoaWxkUG9zaXRpb25zKHZpZXdwb3J0UmVjdCk7CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICB9CisgICAgLy8gRklYTUU6IGhhbmRsZSBub24tbWFpbiBzY3JvbGxp
bmcgbm9kZXMuCisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShzY3JvbGxpbmdMYXllclBvc2l0aW9u
QWN0aW9uKTsKKyNlbmRpZgorfQorCiB2b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNj
cm9sbGFibGVBcmVhU2Nyb2xsYmFyTGF5ZXJEaWRDaGFuZ2UoU2Nyb2xsYWJsZUFyZWEqIHNjcm9s
bGFibGVBcmVhLCBTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbikKIHsKICAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oCmluZGV4IDE2YzE5YjQ1N2U3YjUx
MWU1YjU4NTg1NjM2YWVjYzYxM2RjNGRiMTAuLmQxZjI2YjliMjg0NjA4Y2ZjOGZmNGVmNzBlZDlj
MWFmNWZjYTllYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0Fz
eW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNs
dWRlICJTY3JvbGxpbmdDb29yZGluYXRvci5oIgogCiAjaW5jbHVkZSAiU2Nyb2xsaW5nVHJlZS5o
IgorI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgpAQCAtNTYsNiArNTcs
OCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNjcm9sbGluZ1N0YXRlVHJlZVByb3BlcnRpZXNDaGFu
Z2VkKCk7CiAKKyAgICB2b2lkIHNjaGVkdWxlVXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRlckFzeW5j
U2Nyb2xsKFNjcm9sbGluZ05vZGVJRCwgY29uc3QgSW50UG9pbnQmLCBib29sIHByb2dyYW1tYXRp
Y1Njcm9sbCwgU2V0T3JTeW5jU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbik7CisKIHByb3RlY3RlZDoK
ICAgICBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yKFBhZ2UqKTsKIApAQCAtNjUsNiArNjgsOCBA
QCBwcm90ZWN0ZWQ6CiAKICAgICBQYXNzUmVmUHRyPFNjcm9sbGluZ1RyZWU+IHJlbGVhc2VTY3Jv
bGxpbmdUcmVlKCkgeyByZXR1cm4gbV9zY3JvbGxpbmdUcmVlLnJlbGVhc2UoKTsgfQogCisgICAg
dm9pZCB1cGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlE
LCBjb25zdCBJbnRQb2ludCYsIGJvb2wgcHJvZ3JhbW1hdGljU2Nyb2xsLCBTZXRPclN5bmNTY3Jv
bGxpbmdMYXllclBvc2l0aW9uKTsKKwogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNBc3lu
Y1Njcm9sbGluZ0Nvb3JkaW5hdG9yKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQog
CkBAIC0xMDcsNiArMTEyLDM5IEBAIHByaXZhdGU6CiAgICAgLy8gRklYTUU6IG1vdmUgc29tZXdo
ZXJlIGVsc2U/CiAgICAgdm9pZCBzZXRTY3JvbGxiYXJQYWludGVyc0Zyb21TY3JvbGxiYXJzRm9y
Tm9kZShTY3JvbGxiYXIqIHZlcnRpY2FsU2Nyb2xsYmFyLCBTY3JvbGxiYXIqIGhvcml6b250YWxT
Y3JvbGxiYXIsIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZSopOwogCisgICAgdm9pZCB1cGRh
dGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGxUaW1lckZpcmVkKFRpbWVyPEFzeW5jU2Ny
b2xsaW5nQ29vcmRpbmF0b3I+Kik7CisKKyAgICBUaW1lcjxBc3luY1Njcm9sbGluZ0Nvb3JkaW5h
dG9yPiBtX3VwZGF0ZU1haW5GcmFtZVNjcm9sbFBvc2l0aW9uVGltZXI7CisKKyAgICBzdHJ1Y3Qg
U2NoZWR1bGVkU2Nyb2xsVXBkYXRlIHsKKyAgICAgICAgU2NoZWR1bGVkU2Nyb2xsVXBkYXRlKCkK
KyAgICAgICAgICAgIDogbm9kZUlEKDApCisgICAgICAgICAgICAsIGlzUHJvZ3JhbW1hdGljU2Ny
b2xsKGZhbHNlKQorICAgICAgICAgICAgLCB1cGRhdGVMYXllclBvc2l0aW9uQWN0aW9uKFN5bmNT
Y3JvbGxpbmdMYXllclBvc2l0aW9uKQorICAgICAgICB7IH0KKworICAgICAgICBTY2hlZHVsZWRT
Y3JvbGxVcGRhdGUoU2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGluZ05vZGVJRCwgSW50UG9pbnQgcG9p
bnQsIGJvb2wgaXNQcm9ncmFtbWF0aWMsIFNldE9yU3luY1Njcm9sbGluZ0xheWVyUG9zaXRpb24g
dWRwYXRlQWN0aW9uKQorICAgICAgICAgICAgOiBub2RlSUQoc2Nyb2xsaW5nTm9kZUlEKQorICAg
ICAgICAgICAgLCBzY3JvbGxQb3NpdGlvbihwb2ludCkKKyAgICAgICAgICAgICwgaXNQcm9ncmFt
bWF0aWNTY3JvbGwoaXNQcm9ncmFtbWF0aWMpCisgICAgICAgICAgICAsIHVwZGF0ZUxheWVyUG9z
aXRpb25BY3Rpb24odWRwYXRlQWN0aW9uKQorICAgICAgICB7IH0KKworICAgICAgICBTY3JvbGxp
bmdOb2RlSUQgbm9kZUlEOworICAgICAgICBJbnRQb2ludCBzY3JvbGxQb3NpdGlvbjsKKyAgICAg
ICAgYm9vbCBpc1Byb2dyYW1tYXRpY1Njcm9sbDsKKyAgICAgICAgU2V0T3JTeW5jU2Nyb2xsaW5n
TGF5ZXJQb3NpdGlvbiB1cGRhdGVMYXllclBvc2l0aW9uQWN0aW9uOworICAgICAgICAKKyAgICAg
ICAgYm9vbCBtYXRjaGVzVXBkYXRlVHlwZShjb25zdCBTY2hlZHVsZWRTY3JvbGxVcGRhdGUmIG90
aGVyKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gbm9kZUlEID09IG90aGVy
Lm5vZGVJRAorICAgICAgICAgICAgICAgICYmIGlzUHJvZ3JhbW1hdGljU2Nyb2xsID09IG90aGVy
LmlzUHJvZ3JhbW1hdGljU2Nyb2xsCisgICAgICAgICAgICAgICAgJiYgdXBkYXRlTGF5ZXJQb3Np
dGlvbkFjdGlvbiA9PSBvdGhlci51cGRhdGVMYXllclBvc2l0aW9uQWN0aW9uOworICAgICAgICB9
CisgICAgfTsKKworICAgIFNjaGVkdWxlZFNjcm9sbFVwZGF0ZSBtX3NjaGVkdWxlZFNjcm9sbFVw
ZGF0ZTsKKwogICAgIE93blB0cjxTY3JvbGxpbmdTdGF0ZVRyZWU+IG1fc2Nyb2xsaW5nU3RhdGVU
cmVlOwogICAgIFJlZlB0cjxTY3JvbGxpbmdUcmVlPiBtX3Njcm9sbGluZ1RyZWU7CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0
b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0
b3IuY3BwCmluZGV4IDFiYmI3ZjM4ZjBlMjcwNjAxOGJiYzI2YzNmNjNjMmJmZTkyMDZmNTQuLjkz
ZGZiMGNlYzRiOWUxOGVjOThiMzFhYzliZTFiYzBmYTMzN2VmNWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAKQEAg
LTY0LDkgKzY0LDYgQEAgUGFzc1JlZlB0cjxTY3JvbGxpbmdDb29yZGluYXRvcj4gU2Nyb2xsaW5n
Q29vcmRpbmF0b3I6OmNyZWF0ZShQYWdlKiBwYWdlKQogCiBTY3JvbGxpbmdDb29yZGluYXRvcjo6
U2Nyb2xsaW5nQ29vcmRpbmF0b3IoUGFnZSogcGFnZSkKICAgICA6IG1fcGFnZShwYWdlKQotICAg
ICwgbV91cGRhdGVNYWluRnJhbWVTY3JvbGxQb3NpdGlvblRpbWVyKHRoaXMsICZTY3JvbGxpbmdD
b29yZGluYXRvcjo6dXBkYXRlTWFpbkZyYW1lU2Nyb2xsUG9zaXRpb25UaW1lckZpcmVkKQotICAg
ICwgbV9zY2hlZHVsZWRVcGRhdGVJc1Byb2dyYW1tYXRpY1Njcm9sbChmYWxzZSkKLSAgICAsIG1f
c2NoZWR1bGVkU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbihTeW5jU2Nyb2xsaW5nTGF5ZXJQ
b3NpdGlvbikKICAgICAsIG1fZm9yY2VTeW5jaHJvbm91c1Njcm9sbExheWVyUG9zaXRpb25VcGRh
dGVzKGZhbHNlKQogewogfQpAQCAtMjYwLDkyICsyNTcsNiBAQCB2b2lkIFNjcm9sbGluZ0Nvb3Jk
aW5hdG9yOjpmcmFtZVZpZXdSb290TGF5ZXJEaWRDaGFuZ2UoRnJhbWVWaWV3KiBmcmFtZVZpZXcp
CiAgICAgdXBkYXRlU3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zKCk7CiB9CiAKLXZvaWQgU2Ny
b2xsaW5nQ29vcmRpbmF0b3I6OnNjaGVkdWxlVXBkYXRlU2Nyb2xsUG9zaXRpb25Gb3JOb2RlKFNj
cm9sbGluZ05vZGVJRCwgY29uc3QgSW50UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBib29sIHByb2dy
YW1tYXRpY1Njcm9sbCwgU2V0T3JTeW5jU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbiBzY3JvbGxpbmdM
YXllclBvc2l0aW9uQWN0aW9uKQotewotICAgIC8vIEZJWE1FOiBuZWVkIHRvIGhhbmRsZSBub24t
bWFpbiBub2Rlcy4KLSAgICBzY2hlZHVsZVVwZGF0ZU1haW5GcmFtZVNjcm9sbFBvc2l0aW9uKHNj
cm9sbFBvc2l0aW9uLCBwcm9ncmFtbWF0aWNTY3JvbGwsIHNjcm9sbGluZ0xheWVyUG9zaXRpb25B
Y3Rpb24pOwotfQotCi12b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpzY2hlZHVsZVVwZGF0ZU1h
aW5GcmFtZVNjcm9sbFBvc2l0aW9uKGNvbnN0IEludFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9v
bCBwcm9ncmFtbWF0aWNTY3JvbGwsIFNldE9yU3luY1Njcm9sbGluZ0xheWVyUG9zaXRpb24gc2Ny
b2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbikKLXsKLSAgICBpZiAobV91cGRhdGVNYWluRnJhbWVT
Y3JvbGxQb3NpdGlvblRpbWVyLmlzQWN0aXZlKCkpIHsKLSAgICAgICAgaWYgKG1fc2NoZWR1bGVk
VXBkYXRlSXNQcm9ncmFtbWF0aWNTY3JvbGwgPT0gcHJvZ3JhbW1hdGljU2Nyb2xsCi0gICAgICAg
ICAgICAmJiBtX3NjaGVkdWxlZFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24gPT0gc2Nyb2xs
aW5nTGF5ZXJQb3NpdGlvbkFjdGlvbikgewotICAgICAgICAgICAgbV9zY2hlZHVsZWRVcGRhdGVT
Y3JvbGxQb3NpdGlvbiA9IHNjcm9sbFBvc2l0aW9uOwotICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICB9Ci0gICAgCi0gICAgICAgIC8vIElmIHRoZSBwYXJhbWV0ZXJzIGRvbid0IG1hdGNoIHdo
YXQgd2FzIHByZXZpb3NseSBzY2hlZHVsZWQsIGRpc3BhdGNoIGltbWVkaWF0ZWx5LgotICAgICAg
ICBtX3VwZGF0ZU1haW5GcmFtZVNjcm9sbFBvc2l0aW9uVGltZXIuc3RvcCgpOwotICAgICAgICB1
cGRhdGVNYWluRnJhbWVTY3JvbGxQb3NpdGlvbihtX3NjaGVkdWxlZFVwZGF0ZVNjcm9sbFBvc2l0
aW9uLCBtX3NjaGVkdWxlZFVwZGF0ZUlzUHJvZ3JhbW1hdGljU2Nyb2xsLCBtX3NjaGVkdWxlZFNj
cm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24pOwotICAgICAgICB1cGRhdGVNYWluRnJhbWVTY3Jv
bGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbiwgcHJvZ3JhbW1hdGljU2Nyb2xsLCBzY3JvbGxpbmdM
YXllclBvc2l0aW9uQWN0aW9uKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIG1fc2No
ZWR1bGVkVXBkYXRlU2Nyb2xsUG9zaXRpb24gPSBzY3JvbGxQb3NpdGlvbjsKLSAgICBtX3NjaGVk
dWxlZFVwZGF0ZUlzUHJvZ3JhbW1hdGljU2Nyb2xsID0gcHJvZ3JhbW1hdGljU2Nyb2xsOwotICAg
IG1fc2NoZWR1bGVkU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiA9IHNjcm9sbGluZ0xheWVy
UG9zaXRpb25BY3Rpb247Ci0gICAgbV91cGRhdGVNYWluRnJhbWVTY3JvbGxQb3NpdGlvblRpbWVy
LnN0YXJ0T25lU2hvdCgwKTsKLX0KLQotdm9pZCBTY3JvbGxpbmdDb29yZGluYXRvcjo6dXBkYXRl
TWFpbkZyYW1lU2Nyb2xsUG9zaXRpb25UaW1lckZpcmVkKFRpbWVyPFNjcm9sbGluZ0Nvb3JkaW5h
dG9yPiopCi17Ci0gICAgdXBkYXRlTWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24obV9zY2hlZHVsZWRV
cGRhdGVTY3JvbGxQb3NpdGlvbiwgbV9zY2hlZHVsZWRVcGRhdGVJc1Byb2dyYW1tYXRpY1Njcm9s
bCwgbV9zY2hlZHVsZWRTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKTsKLX0KLQotdm9pZCBT
Y3JvbGxpbmdDb29yZGluYXRvcjo6dXBkYXRlTWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24oY29uc3Qg
SW50UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBib29sIHByb2dyYW1tYXRpY1Njcm9sbCwgU2V0T3JT
eW5jU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbiBzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKQot
ewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0KLSAgICBpZiAoIW1fcGFnZSkKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBtX3BhZ2UtPm1haW5GcmFt
ZSgpLnZpZXcoKTsKLSAgICBpZiAoIWZyYW1lVmlldykKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
Ym9vbCBvbGRQcm9ncmFtbWF0aWNTY3JvbGwgPSBmcmFtZVZpZXctPmluUHJvZ3JhbW1hdGljU2Ny
b2xsKCk7Ci0gICAgZnJhbWVWaWV3LT5zZXRJblByb2dyYW1tYXRpY1Njcm9sbChwcm9ncmFtbWF0
aWNTY3JvbGwpOwotCi0gICAgZnJhbWVWaWV3LT5zZXRDb25zdHJhaW5zU2Nyb2xsaW5nVG9Db250
ZW50RWRnZShmYWxzZSk7Ci0gICAgZnJhbWVWaWV3LT5ub3RpZnlTY3JvbGxQb3NpdGlvbkNoYW5n
ZWQoc2Nyb2xsUG9zaXRpb24pOwotICAgIGZyYW1lVmlldy0+c2V0Q29uc3RyYWluc1Njcm9sbGlu
Z1RvQ29udGVudEVkZ2UodHJ1ZSk7Ci0KLSAgICBmcmFtZVZpZXctPnNldEluUHJvZ3JhbW1hdGlj
U2Nyb2xsKG9sZFByb2dyYW1tYXRpY1Njcm9sbCk7Ci0KLSNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCi0gICAgaWYgKEdyYXBoaWNzTGF5ZXIqIHNjcm9sbExheWVyID0gc2Nyb2xsTGF5
ZXJGb3JGcmFtZVZpZXcoZnJhbWVWaWV3KSkgewotICAgICAgICBHcmFwaGljc0xheWVyKiBjb3Vu
dGVyU2Nyb2xsaW5nTGF5ZXIgPSBjb3VudGVyU2Nyb2xsaW5nTGF5ZXJGb3JGcmFtZVZpZXcoZnJh
bWVWaWV3KTsKLSAgICAgICAgR3JhcGhpY3NMYXllciogaGVhZGVyTGF5ZXIgPSBoZWFkZXJMYXll
ckZvckZyYW1lVmlldyhmcmFtZVZpZXcpOwotICAgICAgICBHcmFwaGljc0xheWVyKiBmb290ZXJM
YXllciA9IGZvb3RlckxheWVyRm9yRnJhbWVWaWV3KGZyYW1lVmlldyk7Ci0gICAgICAgIEludFNp
emUgc2Nyb2xsT2Zmc2V0Rm9yRml4ZWQgPSBmcmFtZVZpZXctPnNjcm9sbE9mZnNldEZvckZpeGVk
UG9zaXRpb24oKTsKLQotICAgICAgICBpZiAocHJvZ3JhbW1hdGljU2Nyb2xsIHx8IHNjcm9sbGlu
Z0xheWVyUG9zaXRpb25BY3Rpb24gPT0gU2V0U2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbikgewotICAg
ICAgICAgICAgc2Nyb2xsTGF5ZXItPnNldFBvc2l0aW9uKC1mcmFtZVZpZXctPnNjcm9sbFBvc2l0
aW9uKCkpOwotICAgICAgICAgICAgaWYgKGNvdW50ZXJTY3JvbGxpbmdMYXllcikKLSAgICAgICAg
ICAgICAgICBjb3VudGVyU2Nyb2xsaW5nTGF5ZXItPnNldFBvc2l0aW9uKEludFBvaW50KHNjcm9s
bE9mZnNldEZvckZpeGVkKSk7Ci0gICAgICAgICAgICBpZiAoaGVhZGVyTGF5ZXIpCi0gICAgICAg
ICAgICAgICAgaGVhZGVyTGF5ZXItPnNldFBvc2l0aW9uKEZsb2F0UG9pbnQoc2Nyb2xsT2Zmc2V0
Rm9yRml4ZWQud2lkdGgoKSwgMCkpOwotICAgICAgICAgICAgaWYgKGZvb3RlckxheWVyKQotICAg
ICAgICAgICAgICAgIGZvb3RlckxheWVyLT5zZXRQb3NpdGlvbihGbG9hdFBvaW50KHNjcm9sbE9m
ZnNldEZvckZpeGVkLndpZHRoKCksIGZyYW1lVmlldy0+dG90YWxDb250ZW50c1NpemUoKS5oZWln
aHQoKSAtIGZyYW1lVmlldy0+Zm9vdGVySGVpZ2h0KCkpKTsKLSAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgIHNjcm9sbExheWVyLT5zeW5jUG9zaXRpb24oLWZyYW1lVmlldy0+c2Nyb2xsUG9z
aXRpb24oKSk7Ci0gICAgICAgICAgICBpZiAoY291bnRlclNjcm9sbGluZ0xheWVyKQotICAgICAg
ICAgICAgICAgIGNvdW50ZXJTY3JvbGxpbmdMYXllci0+c3luY1Bvc2l0aW9uKEludFBvaW50KHNj
cm9sbE9mZnNldEZvckZpeGVkKSk7Ci0gICAgICAgICAgICBpZiAoaGVhZGVyTGF5ZXIpCi0gICAg
ICAgICAgICAgICAgaGVhZGVyTGF5ZXItPnN5bmNQb3NpdGlvbihGbG9hdFBvaW50KHNjcm9sbE9m
ZnNldEZvckZpeGVkLndpZHRoKCksIDApKTsKLSAgICAgICAgICAgIGlmIChmb290ZXJMYXllcikK
LSAgICAgICAgICAgICAgICBmb290ZXJMYXllci0+c3luY1Bvc2l0aW9uKEZsb2F0UG9pbnQoc2Ny
b2xsT2Zmc2V0Rm9yRml4ZWQud2lkdGgoKSwgZnJhbWVWaWV3LT50b3RhbENvbnRlbnRzU2l6ZSgp
LmhlaWdodCgpIC0gZnJhbWVWaWV3LT5mb290ZXJIZWlnaHQoKSkpOwotCi0gICAgICAgICAgICBM
YXlvdXRSZWN0IHZpZXdwb3J0UmVjdCA9IGZyYW1lVmlldy0+dmlld3BvcnRDb25zdHJhaW5lZFZp
c2libGVDb250ZW50UmVjdCgpOwotICAgICAgICAgICAgc3luY0NoaWxkUG9zaXRpb25zKHZpZXdw
b3J0UmVjdCk7Ci0gICAgICAgIH0KLSAgICB9Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShzY3Jv
bGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKTsKLSNlbmRpZgotfQotCiAjaWYgUExBVEZPUk0oTUFD
KQogdm9pZCBTY3JvbGxpbmdDb29yZGluYXRvcjo6aGFuZGxlV2hlZWxFdmVudFBoYXNlKFBsYXRm
b3JtV2hlZWxFdmVudFBoYXNlIHBoYXNlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKaW5kZXggZmMxZTBiYTNlOTUyYmQ5
Yzk2NjFlM2VlNmRmNjA0YzlhODViZThlZC4uMGUwNWQ2OWZkZDhjOGI4ZDZlZTA3MjMyMjFhOTdm
MWM1ZjcyNmIwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdDb29yZGluYXRvci5oCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiUGxhdGZv
cm1XaGVlbEV2ZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiU2Ny
b2xsVHlwZXMuaCIKLSNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
CiAKICNpZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQpAQCAtMTU5LDEyICsxNTgsNiBAQCBwdWJs
aWM6CiAgICAgLy8gR2VuZXJhdGVkIGEgdW5pcXVlIGlkIGZvciBzY3JvbGwgbGF5ZXJzLgogICAg
IFNjcm9sbGluZ05vZGVJRCB1bmlxdWVTY3JvbGxMYXllcklEKCk7CiAKLSAgICB2b2lkIHNjaGVk
dWxlVXBkYXRlU2Nyb2xsUG9zaXRpb25Gb3JOb2RlKFNjcm9sbGluZ05vZGVJRCwgY29uc3QgSW50
UG9pbnQmLCBib29sIHByb2dyYW1tYXRpY1Njcm9sbCwgU2V0T3JTeW5jU2Nyb2xsaW5nTGF5ZXJQ
b3NpdGlvbik7Ci0KLSAgICAvLyBEaXNwYXRjaGVkIGJ5IHRoZSBzY3JvbGxpbmcgdHJlZSB3aGVu
ZXZlciB0aGUgbWFpbiBmcmFtZSBzY3JvbGwgcG9zaXRpb24gY2hhbmdlcy4KLSAgICB2b2lkIHNj
aGVkdWxlVXBkYXRlTWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24oY29uc3QgSW50UG9pbnQmLCBib29s
IHByb2dyYW1tYXRpY1Njcm9sbCwgU2V0T3JTeW5jU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbik7Ci0g
ICAgdm9pZCB1cGRhdGVNYWluRnJhbWVTY3JvbGxQb3NpdGlvbihjb25zdCBJbnRQb2ludCYsIGJv
b2wgcHJvZ3JhbW1hdGljU2Nyb2xsLCBTZXRPclN5bmNTY3JvbGxpbmdMYXllclBvc2l0aW9uKTsK
LQogICAgIGVudW0gTWFpblRocmVhZFNjcm9sbGluZ1JlYXNvbkZsYWdzIHsKICAgICAgICAgRm9y
Y2VkT25NYWluVGhyZWFkID0gMSA8PCAwLAogICAgICAgICBIYXNTbG93UmVwYWludE9iamVjdHMg
PSAxIDw8IDEsCkBAIC0yMTAsMTMgKzIwMyw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29s
IGhhc1Zpc2libGVTbG93UmVwYWludFZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3RzKEZyYW1lVmll
dyopIGNvbnN0OwogICAgIHZvaWQgdXBkYXRlU3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zKCk7
CiAgICAgCi0gICAgdm9pZCB1cGRhdGVNYWluRnJhbWVTY3JvbGxQb3NpdGlvblRpbWVyRmlyZWQo
VGltZXI8U2Nyb2xsaW5nQ29vcmRpbmF0b3I+Kik7Ci0KLSAgICBUaW1lcjxTY3JvbGxpbmdDb29y
ZGluYXRvcj4gbV91cGRhdGVNYWluRnJhbWVTY3JvbGxQb3NpdGlvblRpbWVyOwotICAgIEludFBv
aW50IG1fc2NoZWR1bGVkVXBkYXRlU2Nyb2xsUG9zaXRpb247Ci0gICAgYm9vbCBtX3NjaGVkdWxl
ZFVwZGF0ZUlzUHJvZ3JhbW1hdGljU2Nyb2xsOwotICAgIFNldE9yU3luY1Njcm9sbGluZ0xheWVy
UG9zaXRpb24gbV9zY2hlZHVsZWRTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOwotCiAgICAg
Ym9vbCBtX2ZvcmNlU3luY2hyb25vdXNTY3JvbGxMYXllclBvc2l0aW9uVXBkYXRlczsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUu
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAppbmRleCBh
NjRlNWVhZDNlYWZjZjU1ZmM5OTQyMjI2MzdiNzcyNGNhYzNkYWJkLi5iNjRiNmEyYmE4MGMxZWU0
YWIwOWE1N2Q5MmQ2YzVlZDY3ZTVjMjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nVHJlZS5oCkBAIC03MSw3ICs3MSw3IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgc2V0TWFpbkZyYW1lUGluU3RhdGUoYm9vbCBwaW5uZWRUb1RoZUxlZnQsIGJvb2wgcGlubmVk
VG9UaGVSaWdodCwgYm9vbCBwaW5uZWRUb1RoZVRvcCwgYm9vbCBwaW5uZWRUb1RoZUJvdHRvbSk7
CiAKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlTWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24oY29uc3Qg
SW50UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBTZXRPclN5bmNTY3JvbGxpbmdMYXllclBvc2l0aW9u
ID0gU3luY1Njcm9sbGluZ0xheWVyUG9zaXRpb24pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2Ny
b2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoU2Nyb2xsaW5nTm9kZUlELCBjb25zdCBJbnRQb2ludCYg
c2Nyb2xsUG9zaXRpb24sIFNldE9yU3luY1Njcm9sbGluZ0xheWVyUG9zaXRpb24gPSBTeW5jU2Ny
b2xsaW5nTGF5ZXJQb3NpdGlvbikgPSAwOwogICAgIEludFBvaW50IG1haW5GcmFtZVNjcm9sbFBv
c2l0aW9uKCk7CiAKICNpZiBQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1MpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVl
LmNwcAppbmRleCA2MjRkM2EyOTMyZWM5ZjFjNTQ3OWZkMDEzYmFlNmM2MTg1ZjY4ZjU0Li44MzE0
ZGUzMDA1NjY1NWFlODVlNzE1NDg4ZDM3NzI3NjlkZjVkY2QyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHAKQEAg
LTEwMCwxNCArMTAwLDE1IEBAIHZvaWQgVGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpjb21taXROZXdU
cmVlU3RhdGUoUGFzc093blB0cjxTY3JvbGxpbmdTdGF0ZVRyZWU+IHNjCiAgICAgU2Nyb2xsaW5n
VHJlZTo6Y29tbWl0TmV3VHJlZVN0YXRlKHNjcm9sbGluZ1N0YXRlVHJlZSk7CiB9CiAKLXZvaWQg
VGhyZWFkZWRTY3JvbGxpbmdUcmVlOjp1cGRhdGVNYWluRnJhbWVTY3JvbGxQb3NpdGlvbihjb25z
dCBJbnRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIFNldE9yU3luY1Njcm9sbGluZ0xheWVyUG9zaXRp
b24gc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbikKK3ZvaWQgVGhyZWFkZWRTY3JvbGxpbmdU
cmVlOjpzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChTY3JvbGxpbmdOb2RlSUQgbm9kZUlELCBj
b25zdCBJbnRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIFNldE9yU3luY1Njcm9sbGluZ0xheWVyUG9z
aXRpb24gc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbikKIHsKICAgICBpZiAoIW1fc2Nyb2xs
aW5nQ29vcmRpbmF0b3IpCiAgICAgICAgIHJldHVybjsKIAotICAgIHNldE1haW5GcmFtZVNjcm9s
bFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uKTsKKyAgICBpZiAobm9kZUlEID09IHJvb3ROb2RlKCkt
PnNjcm9sbGluZ05vZGVJRCgpKQorICAgICAgICBzZXRNYWluRnJhbWVTY3JvbGxQb3NpdGlvbihz
Y3JvbGxQb3NpdGlvbik7CiAKLSAgICBjYWxsT25NYWluVGhyZWFkKGJpbmQoJlNjcm9sbGluZ0Nv
b3JkaW5hdG9yOjpzY2hlZHVsZVVwZGF0ZU1haW5GcmFtZVNjcm9sbFBvc2l0aW9uLCBtX3Njcm9s
bGluZ0Nvb3JkaW5hdG9yLmdldCgpLCBzY3JvbGxQb3NpdGlvbiwgaXNIYW5kbGluZ1Byb2dyYW1t
YXRpY1Njcm9sbCgpLCBzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKSk7CisgICAgY2FsbE9u
TWFpblRocmVhZChiaW5kKCZBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpzY2hlZHVsZVVwZGF0
ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbCwgbV9zY3JvbGxpbmdDb29yZGluYXRvci5n
ZXQoKSwgbm9kZUlELCBzY3JvbGxQb3NpdGlvbiwgaXNIYW5kbGluZ1Byb2dyYW1tYXRpY1Njcm9s
bCgpLCBzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKSk7CiB9CiAKICNpZiBQTEFURk9STShN
QUMpICYmICFQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5oCmluZGV4IGI5ZmIyMTgxNzI3NWRiNjU3NzFi
M2M4ZjRkODk1MmI4YzlkZGM5MGUuLmQwYzhiMTdlNTI0OWJkMDI0Y2YxOGI1M2IyMDM3MzE4ZWRm
YjQ3MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVk
U2Nyb2xsaW5nVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVh
ZGVkU2Nyb2xsaW5nVHJlZS5oCkBAIC02NCw3ICs2NCw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0
dWFsIFBhc3NPd25QdHI8U2Nyb2xsaW5nVHJlZU5vZGU+IGNyZWF0ZU5vZGUoU2Nyb2xsaW5nTm9k
ZVR5cGUsIFNjcm9sbGluZ05vZGVJRCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgdXBk
YXRlTWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24oY29uc3QgSW50UG9pbnQmIHNjcm9sbFBvc2l0aW9u
LCBTZXRPclN5bmNTY3JvbGxpbmdMYXllclBvc2l0aW9uID0gU3luY1Njcm9sbGluZ0xheWVyUG9z
aXRpb24pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZURpZFNj
cm9sbChTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IEludFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgU2V0
T3JTeW5jU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbiA9IFN5bmNTY3JvbGxpbmdMYXllclBvc2l0aW9u
KSBvdmVycmlkZTsKICNpZiBQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1MpCiAgICAgdmly
dHVhbCB2b2lkIGhhbmRsZVdoZWVsRXZlbnRQaGFzZShQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZSkg
b3ZlcnJpZGU7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL2lvcy9TY3JvbGxpbmdUcmVlSU9TLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL2lvcy9TY3JvbGxpbmdUcmVlSU9TLmNwcAppbmRleCA4NTBhOTRkNDkyMmFjNWQ2ZjJkNmQ4
YTZlOTY4OGZhM2RkNTE2MjQ2Li4xNDc5MTZhZmM2MTBhMjIzYTZjOGRkODRkNWJiYTRiNzE4N2Rh
Y2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xs
aW5nVHJlZUlPUy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Nj
cm9sbGluZ1RyZWVJT1MuY3BwCkBAIC04MSwxNCArODEsMTUgQEAgdm9pZCBTY3JvbGxpbmdUcmVl
SU9TOjpjb21taXROZXdUcmVlU3RhdGUoUGFzc093blB0cjxTY3JvbGxpbmdTdGF0ZVRyZWU+IHNj
cm9sbGkKICAgICBTY3JvbGxpbmdUcmVlOjpjb21taXROZXdUcmVlU3RhdGUoc2Nyb2xsaW5nU3Rh
dGVUcmVlKTsKIH0KIAotdm9pZCBTY3JvbGxpbmdUcmVlSU9TOjp1cGRhdGVNYWluRnJhbWVTY3Jv
bGxQb3NpdGlvbihjb25zdCBJbnRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIFNldE9yU3luY1Njcm9s
bGluZ0xheWVyUG9zaXRpb24gc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbikKK3ZvaWQgU2Ny
b2xsaW5nVHJlZUlPUzo6c2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoU2Nyb2xsaW5nTm9kZUlE
IG5vZGVJRCwgY29uc3QgSW50UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBTZXRPclN5bmNTY3JvbGxp
bmdMYXllclBvc2l0aW9uIHNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24pCiB7CiAgICAgaWYg
KCFtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yKQogICAgICAgICByZXR1cm47CiAKLSAgICBzZXRNYWlu
RnJhbWVTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbik7CisgICAgaWYgKG5vZGVJRCA9PSBy
b290Tm9kZSgpLT5zY3JvbGxpbmdOb2RlSUQoKSkKKyAgICAgICAgc2V0TWFpbkZyYW1lU2Nyb2xs
UG9zaXRpb24oc2Nyb2xsUG9zaXRpb24pOwogCi0gICAgY2FsbE9uTWFpblRocmVhZChiaW5kKCZT
Y3JvbGxpbmdDb29yZGluYXRvcjo6c2NoZWR1bGVVcGRhdGVNYWluRnJhbWVTY3JvbGxQb3NpdGlv
biwgbV9zY3JvbGxpbmdDb29yZGluYXRvci5nZXQoKSwgc2Nyb2xsUG9zaXRpb24sIGlzSGFuZGxp
bmdQcm9ncmFtbWF0aWNTY3JvbGwoKSwgc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbikpOwor
ICAgIGNhbGxPbk1haW5UaHJlYWQoYmluZCgmQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6c2No
ZWR1bGVVcGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwsIG1fc2Nyb2xsaW5nQ29v
cmRpbmF0b3IuZ2V0KCksIG5vZGVJRCwgc2Nyb2xsUG9zaXRpb24sIGlzSGFuZGxpbmdQcm9ncmFt
bWF0aWNTY3JvbGwoKSwgc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbikpOwogfQogCiBQYXNz
T3duUHRyPFNjcm9sbGluZ1RyZWVOb2RlPiBTY3JvbGxpbmdUcmVlSU9TOjpjcmVhdGVOb2RlKFNj
cm9sbGluZ05vZGVUeXBlIG5vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQgbm9kZUlEKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVJT1Mu
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlSU9TLmgK
aW5kZXggN2NiYTJmMTg0ZDFlNWFlODMzZWY3MjgzYzljNWMyYjFiNDNlODMwZC4uNTc2MDFiODhm
MGRiNTdiZmRkYzM5NDVlMThkMDk4MmFkMWZlYzlhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVJT1MuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZUlPUy5oCkBAIC01Niw3ICs1Niw3
IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIFBhc3NPd25QdHI8U2Nyb2xsaW5nVHJlZU5vZGU+
IGNyZWF0ZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCkgb3ZlcnJpZGU7
CiAKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlTWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24oY29uc3Qg
SW50UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBTZXRPclN5bmNTY3JvbGxpbmdMYXllclBvc2l0aW9u
ID0gU3luY1Njcm9sbGluZ0xheWVyUG9zaXRpb24pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IEludFBv
aW50JiBzY3JvbGxQb3NpdGlvbiwgU2V0T3JTeW5jU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbiA9IFN5
bmNTY3JvbGxpbmdMYXllclBvc2l0aW9uKSBvdmVycmlkZTsKIAogICAgIFJlZlB0cjxBc3luY1Nj
cm9sbGluZ0Nvb3JkaW5hdG9yPiBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yOwogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZUlPUy5tbQppbmRleCA2YjMyOTYzZWY4ZDVkMWFmNzliNDI1Njkz
MTJiMTU2OGEwMGMyYTdkLi44MjZlY2Q2MDRmOWI3ZDdmZTQwYjA0MjgyZGIwOWNiZmEzZGVjNTU0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGVJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlSU9TLm1tCkBAIC0xMTgsMTIgKzExOCwx
MiBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlSU9TOjpzZXRTY3JvbGxQb3NpdGlv
bldpdGhvdXRDb250ZW50RWRnZUNvbnN0cmFpbgogewogICAgIGlmIChzaG91bGRVcGRhdGVTY3Jv
bGxMYXllclBvc2l0aW9uU3luY2hyb25vdXNseSgpKSB7CiAgICAgICAgIG1fcHJvYmFibGVNYWlu
VGhyZWFkU2Nyb2xsUG9zaXRpb24gPSBzY3JvbGxQb3NpdGlvbjsKLSAgICAgICAgc2Nyb2xsaW5n
VHJlZSgpLnVwZGF0ZU1haW5GcmFtZVNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uLCBTZXRT
Y3JvbGxpbmdMYXllclBvc2l0aW9uKTsKKyAgICAgICAgc2Nyb2xsaW5nVHJlZSgpLnNjcm9sbGlu
Z1RyZWVOb2RlRGlkU2Nyb2xsKHNjcm9sbGluZ05vZGVJRCgpLCBzY3JvbGxQb3NpdGlvbiwgU2V0
U2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBz
ZXRTY3JvbGxMYXllclBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uKTsKLSAgICBzY3JvbGxpbmdUcmVl
KCkudXBkYXRlTWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24pOworICAgIHNj
cm9sbGluZ1RyZWUoKS5zY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChzY3JvbGxpbmdOb2RlSUQo
KSwgc2Nyb2xsUG9zaXRpb24pOwogfQogCiB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
SU9TOjpzZXRTY3JvbGxMYXllclBvc2l0aW9uKGNvbnN0IEludFBvaW50JiBwb3NpdGlvbikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9T
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1hYy5tbQppbmRleCBlYjdkMjAxZGJiNTQzYTc5NmU0
MTlkMGU3Njg4Nzk2ZGVjMzhmYzRlLi44NTdkZThiYjVmY2FiNDcxMDI4ZGM2MDY4Mjc3ZTUyMGJk
NmQ3YzUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFjLm1tCkBAIC0zMTUsMTIg
KzMxNSwxMiBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFjOjpzZXRTY3JvbGxQ
b3NpdGlvbldpdGhvdXRDb250ZW50RWRnZUNvbnN0cmFpbgogCiAgICAgaWYgKHNob3VsZFVwZGF0
ZVNjcm9sbExheWVyUG9zaXRpb25TeW5jaHJvbm91c2x5KCkpIHsKICAgICAgICAgbV9wcm9iYWJs
ZU1haW5UaHJlYWRTY3JvbGxQb3NpdGlvbiA9IHNjcm9sbFBvc2l0aW9uOwotICAgICAgICBzY3Jv
bGxpbmdUcmVlKCkudXBkYXRlTWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24s
IFNldFNjcm9sbGluZ0xheWVyUG9zaXRpb24pOworICAgICAgICBzY3JvbGxpbmdUcmVlKCkuc2Ny
b2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoc2Nyb2xsaW5nTm9kZUlEKCksIHNjcm9sbFBvc2l0aW9u
LCBTZXRTY3JvbGxpbmdMYXllclBvc2l0aW9uKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAog
ICAgIHNldFNjcm9sbExheWVyUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24pOwotICAgIHNjcm9sbGlu
Z1RyZWUoKS51cGRhdGVNYWluRnJhbWVTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbik7Cisg
ICAgc2Nyb2xsaW5nVHJlZSgpLnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKHNjcm9sbGluZ05v
ZGVJRCgpLCBzY3JvbGxQb3NpdGlvbik7CiB9CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGVNYWM6OnNldFNjcm9sbExheWVyUG9zaXRpb24oY29uc3QgSW50UG9pbnQmIHBvc2l0aW9u
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVT
Y3JvbGxpbmdUcmVlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVt
b3RlU2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXggZmI0NjI0ZjI1MzI3N2FmMTFkMWYxMWNkZWFhYzU1
ZmRhZmU4NWZkZi4uMjMxN2QxNTgyMmFmZGY3NWU5NWUzYzg0MTkyMDJhZDVkOGQ0NTk3NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxp
bmdUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90
ZVNjcm9sbGluZ1RyZWUuY3BwCkBAIC03NiwxMCArNzYsOSBAQCB2b2lkIFJlbW90ZVNjcm9sbGlu
Z1RyZWU6OmhhbmRsZVdoZWVsRXZlbnRQaGFzZShQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZSBwaGFz
ZSkKIH0KICNlbmRpZgogCi12b2lkIFJlbW90ZVNjcm9sbGluZ1RyZWU6OnVwZGF0ZU1haW5GcmFt
ZVNjcm9sbFBvc2l0aW9uKGNvbnN0IEludFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgU2V0T3JTeW5j
U2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbikKK3ZvaWQgUmVtb3RlU2Nyb2xsaW5nVHJlZTo6c2Nyb2xs
aW5nVHJlZU5vZGVEaWRTY3JvbGwoU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwgY29uc3QgSW50UG9p
bnQmIHNjcm9sbFBvc2l0aW9uLCBTZXRPclN5bmNTY3JvbGxpbmdMYXllclBvc2l0aW9uKQogewot
ICAgIC8vIEZJWE1FOiBmaXggZm9yIGFsbCBzY3JvbGxpbmcgbm9kZXMuCi0gICAgbV9zY3JvbGxp
bmdDb29yZGluYXRvclByb3h5LnNjcm9sbFBvc2l0aW9uQ2hhbmdlZChyb290Tm9kZSgpLT5zY3Jv
bGxpbmdOb2RlSUQoKSwgc2Nyb2xsUG9zaXRpb24pOworICAgIG1fc2Nyb2xsaW5nQ29vcmRpbmF0
b3JQcm94eS5zY3JvbGxQb3NpdGlvbkNoYW5nZWQobm9kZUlELCBzY3JvbGxQb3NpdGlvbik7CiB9
CiAKIFBhc3NPd25QdHI8U2Nyb2xsaW5nVHJlZU5vZGU+IFJlbW90ZVNjcm9sbGluZ1RyZWU6OmNy
ZWF0ZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUgbm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCBub2Rl
SUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90
ZVNjcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVt
b3RlU2Nyb2xsaW5nVHJlZS5oCmluZGV4IGIwNGZjYzYyNmY4ZjliZTNlYzU4NTVlNmQ4YjNkYzU0
MTg4ZDkwOTMuLjI2OGU1YTJjNmExN2ZkMzk3ZGIwYzZjZDg5ZmM5YWJiNzk2NjQyNTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5n
VHJlZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Ny
b2xsaW5nVHJlZS5oCkBAIC01Miw3ICs1Miw3IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oTUFD
KSAmJiAhUExBVEZPUk0oSU9TKQogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVXaGVlbEV2ZW50UGhh
c2UoV2ViQ29yZTo6UGxhdGZvcm1XaGVlbEV2ZW50UGhhc2UpIG92ZXJyaWRlOwogI2VuZGlmCi0g
ICAgdmlydHVhbCB2b2lkIHVwZGF0ZU1haW5GcmFtZVNjcm9sbFBvc2l0aW9uKGNvbnN0IFdlYkNv
cmU6OkludFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgV2ViQ29yZTo6U2V0T3JTeW5jU2Nyb2xsaW5n
TGF5ZXJQb3NpdGlvbiA9IFdlYkNvcmU6OlN5bmNTY3JvbGxpbmdMYXllclBvc2l0aW9uKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoV2ViQ29y
ZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsUG9zaXRp
b24sIFdlYkNvcmU6OlNldE9yU3luY1Njcm9sbGluZ0xheWVyUG9zaXRpb24gPSBXZWJDb3JlOjpT
eW5jU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIFBhc3NP
d25QdHI8V2ViQ29yZTo6U2Nyb2xsaW5nVHJlZU5vZGU+IGNyZWF0ZU5vZGUoV2ViQ29yZTo6U2Ny
b2xsaW5nTm9kZVR5cGUsIFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCk7CiAgICAgCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvci5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1tCmluZGV4IGM4OTY2YjhlNmYzNjZlNWU4ZDIzZDNkZWQ4
YzJjM2U3YjE3OWI1YjIuLjliZDVjNDg1ZTc5NWJiMDE4NzA1MDZlZmQxZDRmOGQwNzk5OGIyMTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvU2Ny
b2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1tCkBAIC05Myw3ICs5Myw3IEBAIHZv
aWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmJ1aWxkVHJhbnNhY3Rpb24oUmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3JUcmFuCiAvLyBOb3RpZmljYXRpb24gZnJvbSB0aGUgVUkgcHJvY2Vz
cyB0aGF0IHdlIHNjcm9sbGVkLgogdm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcjo6c2Ny
b2xsUG9zaXRpb25DaGFuZ2VkRm9yTm9kZShTY3JvbGxpbmdOb2RlSUQgbm9kZUlELCBjb25zdCBG
bG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbikKIHsKLSAgICBzY2hlZHVsZVVwZGF0ZVNjcm9sbFBv
c2l0aW9uRm9yTm9kZShub2RlSUQsIHJvdW5kZWRJbnRQb2ludChzY3JvbGxQb3NpdGlvbiksIGZh
bHNlIC8qIEZJWE1FICovLCBTeW5jU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbik7CisgICAgc2NoZWR1
bGVVcGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwobm9kZUlELCByb3VuZGVkSW50
UG9pbnQoc2Nyb2xsUG9zaXRpb24pLCBmYWxzZSAvKiBGSVhNRSAqLywgU3luY1Njcm9sbGluZ0xh
eWVyUG9zaXRpb24pOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>
<flag name="review"
          id="246130"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>