<?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>155190</bug_id>
          
          <creation_ts>2016-03-08 13:39:51 -0800</creation_ts>
          <short_desc>Web Inspector: Add Heap domain start/stop tracking commands</short_desc>
          <delta_ts>2016-05-03 03:03:54 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>155188</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>bburg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mattbaker</cc>
    
    <cc>msaboff</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>saam</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1172175</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-03-08 13:39:51 -0800</bug_when>
    <thetext>* SUMMARY
Add Heap domain start/stop tracking commands.

* NOTES
- start/stop should take a heap snapshot</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1172176</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-03-08 13:40:39 -0800</bug_when>
    <thetext>&lt;rdar://problem/25042708&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1172181</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-03-08 13:43:37 -0800</bug_when>
    <thetext>&lt;rdar://problem/25042808&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1172182</commentid>
    <comment_count>3</comment_count>
      <attachid>273327</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-03-08 13:43:41 -0800</bug_when>
    <thetext>Created attachment 273327
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1172187</commentid>
    <comment_count>4</comment_count>
      <attachid>273329</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-03-08 13:44:09 -0800</bug_when>
    <thetext>Created attachment 273329
[PATCH] For Bots (Part 1 and 2)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1172264</commentid>
    <comment_count>5</comment_count>
      <attachid>273354</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-03-08 15:40:35 -0800</bug_when>
    <thetext>Created attachment 273354
[PATCH] For Bots (Part 1 and 2)

Better part 1 and 2 patch while this is blocked.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1172304</commentid>
    <comment_count>6</comment_count>
      <attachid>273327</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2016-03-08 16:43:32 -0800</bug_when>
    <thetext>Comment on attachment 273327
[PATCH] Proposed Fix

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

r=me on the code. However I don&apos;t see the point of having start/stop with no update. What is being tracked exactly, memory pressure? allocations?

&gt; Source/WebInspectorUI/UserInterface/Protocol/HeapObserver.js:39
&gt; +        // FIXME: Heap Allocations Timeline.

Please delete or clean up the commented code for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1172315</commentid>
    <comment_count>7</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-03-08 17:04:24 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Comment on attachment 273327 [details]
&gt; [PATCH] Proposed Fix
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=273327&amp;action=review
&gt; 
&gt; r=me on the code. However I don&apos;t see the point of having start/stop with no
&gt; update. What is being tracked exactly, memory pressure? allocations?

Eventually there will be an update for tracking all allocations during the recording. That is separate from snapshots and I plan on working on that after the initial UI for snapshots makes it in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1172326</commentid>
    <comment_count>8</comment_count>
      <attachid>273370</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-03-08 17:59:32 -0800</bug_when>
    <thetext>Created attachment 273370
[PATCH] For Landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1172332</commentid>
    <comment_count>9</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-03-08 18:07:18 -0800</bug_when>
    <thetext>&lt;http://trac.webkit.org/changeset/197826&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>273327</attachid>
            <date>2016-03-08 13:43:41 -0800</date>
            <delta_ts>2016-05-03 03:03:54 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>tracking-2.patch</filename>
            <type>text/plain</type>
            <size>10037</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxNDY3MWUwLi45NTg3ZDI4MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE1IEBACiAyMDE2LTAz
LTA4ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKKyAgICAgICAgV2Vi
IEluc3BlY3RvcjogQWRkIEhlYXAgZG9tYWluIHN0YXJ0L3N0b3AgdHJhY2tpbmcgY29tbWFuZHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NTE5MAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVj
dG9yL2hlYXAvdHJhY2tpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0
b3IvaGVhcC90cmFja2luZy5odG1sOiBBZGRlZC4KKworMjAxNi0wMy0wOCAgSm9zZXBoIFBlY29y
YXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEFkZCBh
IHdheSB0byBjcmVhdGUgYSBIZWFwIFNuYXBzaG90CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTUxODgKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2hlYXAvdHJhY2tpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2hlYXAvdHJhY2tpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjI3ZDA0OWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvaGVhcC90cmFja2luZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhh
dCBIZWFwLnN0YXJ0VHJhY2tpbmcgYW5kIEhlYXAuc3RvcFRyYWNraW5nIHRyaWdnZXIgdHJhY2tp
bmdTdGFydCBhbmQgdHJhY2tpbmdDb21wbGV0ZSBldmVudHMgd2l0aCBleHBlY3RlZCBkYXRhLgor
CisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogSGVhcC5zdGFydFRyYWNraW5nIGFuZCBIZWFwLnN0
b3BUcmFja2luZworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFN0YXJ0QW5kU3RvcFRyYWNraW5nSW5j
bHVkZVNuYXBzaG90cworSGVhcC50cmFja2luZ1N0YXJ0CitQQVNTOiBTaG91bGQgaGF2ZSBhIHRp
bWVzdGFtcCB3aGVuIHN0YXJ0aW5nLgorUEFTUzogU2hvdWxkIGhhdmUgc25hcHNob3REYXRhIHdo
ZW4gc3RhcnRpbmcuCitIZWFwLnRyYWNraW5nQ29tcGxldGUKK1BBU1M6IFNob3VsZCBoYXZlIGEg
dGltZXN0YW1wIHdoZW4gc3RvcHBpbmcuCitQQVNTOiBTaG91bGQgaGF2ZSBzbmFwc2hvdERhdGEg
d2hlbiBzdG9wcGluZy4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2hlYXAv
dHJhY2tpbmcuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9oZWFwL3RyYWNraW5nLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjA1YjNjYgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9oZWFwL3RyYWNraW5nLmh0bWwKQEAgLTAsMCAr
MSwzOCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBsZXQgc3VpdGUgPSBQcm90
b2NvbFRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiSGVhcC5zdGFydFRyYWNraW5nIGFuZCBIZWFwLnN0
b3BUcmFja2luZyIpOworCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAi
U3RhcnRBbmRTdG9wVHJhY2tpbmdJbmNsdWRlU25hcHNob3RzIiwKKyAgICAgICAgdGVzdDogZnVu
Y3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICBJbnNwZWN0b3JQcm90b2NvbC5h
d2FpdEV2ZW50KHtldmVudDogIkhlYXAudHJhY2tpbmdTdGFydCJ9KS50aGVuKChtZXNzYWdlT2Jq
ZWN0KSA9PiB7CisgICAgICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiSGVhcC50cmFja2lu
Z1N0YXJ0Iik7CisgICAgICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmV4cGVjdFRoYXQodHlwZW9m
IG1lc3NhZ2VPYmplY3QucGFyYW1zLnRpbWVzdGFtcCA9PT0gIm51bWJlciIsICJTaG91bGQgaGF2
ZSBhIHRpbWVzdGFtcCB3aGVuIHN0YXJ0aW5nLiIpOworICAgICAgICAgICAgICAgIFByb3RvY29s
VGVzdC5leHBlY3RUaGF0KHR5cGVvZiBtZXNzYWdlT2JqZWN0LnBhcmFtcy5zbmFwc2hvdERhdGEg
PT09ICJzdHJpbmciLCAiU2hvdWxkIGhhdmUgc25hcHNob3REYXRhIHdoZW4gc3RhcnRpbmcuIik7
CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yUHJvdG9jb2wuc2VuZENvbW1hbmQoIkhlYXAuc3Rv
cFRyYWNraW5nIiwge30pOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIEluc3BlY3Rv
clByb3RvY29sLmF3YWl0RXZlbnQoe2V2ZW50OiAiSGVhcC50cmFja2luZ0NvbXBsZXRlIn0pLnRo
ZW4oKG1lc3NhZ2VPYmplY3QpID0+IHsKKyAgICAgICAgICAgICAgICBQcm90b2NvbFRlc3QubG9n
KCJIZWFwLnRyYWNraW5nQ29tcGxldGUiKTsKKyAgICAgICAgICAgICAgICBQcm90b2NvbFRlc3Qu
ZXhwZWN0VGhhdCh0eXBlb2YgbWVzc2FnZU9iamVjdC5wYXJhbXMudGltZXN0YW1wID09PSAibnVt
YmVyIiwgIlNob3VsZCBoYXZlIGEgdGltZXN0YW1wIHdoZW4gc3RvcHBpbmcuIik7CisgICAgICAg
ICAgICAgICAgUHJvdG9jb2xUZXN0LmV4cGVjdFRoYXQodHlwZW9mIG1lc3NhZ2VPYmplY3QucGFy
YW1zLnNuYXBzaG90RGF0YSA9PT0gInN0cmluZyIsICJTaG91bGQgaGF2ZSBzbmFwc2hvdERhdGEg
d2hlbiBzdG9wcGluZy4iKTsKKyAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAg
ICB9KTsKKworICAgICAgICAgICAgSW5zcGVjdG9yUHJvdG9jb2wuc2VuZENvbW1hbmQoIkhlYXAu
c3RhcnRUcmFja2luZyIsIHt9KTsKKyAgICAgICAgfQorICAgIH0pOworCisgICAgc3VpdGUucnVu
VGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9h
ZD0icnVuVGVzdCgpIj4KKzxwPlRlc3RzIHRoYXQgSGVhcC5zdGFydFRyYWNraW5nIGFuZCBIZWFw
LnN0b3BUcmFja2luZyB0cmlnZ2VyIHRyYWNraW5nU3RhcnQgYW5kIHRyYWNraW5nQ29tcGxldGUg
ZXZlbnRzIHdpdGggZXhwZWN0ZWQgZGF0YS48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwppbmRleCA0ZjMzZDkxLi41MjdjNjAwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFu
Z2VMb2cKQEAgLTEsNSArMSwxOSBAQAogMjAxNi0wMy0wOCAgSm9zZXBoIFBlY29yYXJvICA8cGVj
b3Jhcm9AYXBwbGUuY29tPgogCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IEFkZCBIZWFwIGRvbWFp
biBzdGFydC9zdG9wIHRyYWNraW5nIGNvbW1hbmRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTUxOTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySGVhcEFn
ZW50LmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6SW5zcGVjdG9ySGVhcEFnZW50Ojp3aWxsRGVz
dHJveUZyb250ZW5kQW5kQmFja2VuZCk6CisgICAgICAgIChJbnNwZWN0b3I6Okluc3BlY3Rvckhl
YXBBZ2VudDo6c3RhcnRUcmFja2luZyk6CisgICAgICAgIChJbnNwZWN0b3I6Okluc3BlY3Rvckhl
YXBBZ2VudDo6c3RvcFRyYWNraW5nKToKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvckhlYXBBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9wcm90b2NvbC9IZWFwLmpzb246
CisKKzIwMTYtMDMtMDggIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKwog
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBBZGQgYSB3YXkgdG8gY3JlYXRlIGEgSGVhcCBTbmFwc2hv
dAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1MTg4
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvckhlYXBBZ2VudC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JIZWFwQWdlbnQuY3BwCmluZGV4IGEwNTlkOGUuLmYzNzZmMTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvckhl
YXBBZ2VudC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9ySGVhcEFnZW50LmNwcApAQCAtNTUsNiArNTUsNyBAQCB2b2lkIEluc3BlY3Rvckhl
YXBBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEZyb250ZW5kUm91dGVyKiwgQmFj
a2VuZERpcwogdm9pZCBJbnNwZWN0b3JIZWFwQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRC
YWNrZW5kKERpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAgRXJyb3JTdHJpbmcgaWdub3JlZDsKKyAg
ICBzdG9wVHJhY2tpbmcoaWdub3JlZCk7CiAgICAgZGlzYWJsZShpZ25vcmVkKTsKIH0KIApAQCAt
MTA4LDYgKzEwOSwzNCBAQCB2b2lkIEluc3BlY3RvckhlYXBBZ2VudDo6c25hcHNob3QoRXJyb3JT
dHJpbmcmLCBkb3VibGUqIHRpbWVzdGFtcCwgU3RyaW5nKiBzbmFwcwogICAgIH0pOwogfQogCit2
b2lkIEluc3BlY3RvckhlYXBBZ2VudDo6c3RhcnRUcmFja2luZyhFcnJvclN0cmluZyYgZXJyb3JT
dHJpbmcpCit7CisgICAgaWYgKG1fdHJhY2tpbmcpCisgICAgICAgIHJldHVybjsKKworICAgIG1f
dHJhY2tpbmcgPSB0cnVlOworCisgICAgZG91YmxlIHRpbWVzdGFtcDsKKyAgICBTdHJpbmcgc25h
cHNob3REYXRhOworICAgIHNuYXBzaG90KGVycm9yU3RyaW5nLCAmdGltZXN0YW1wLCAmc25hcHNo
b3REYXRhKTsKKworICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT50cmFja2luZ1N0YXJ0KHRpbWVz
dGFtcCwgc25hcHNob3REYXRhKTsKK30KKwordm9pZCBJbnNwZWN0b3JIZWFwQWdlbnQ6OnN0b3BU
cmFja2luZyhFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcpCit7CisgICAgaWYgKCFtX3RyYWNraW5n
KQorICAgICAgICByZXR1cm47CisKKyAgICBtX3RyYWNraW5nID0gZmFsc2U7CisKKyAgICBkb3Vi
bGUgdGltZXN0YW1wOworICAgIFN0cmluZyBzbmFwc2hvdERhdGE7CisgICAgc25hcHNob3QoZXJy
b3JTdHJpbmcsICZ0aW1lc3RhbXAsICZzbmFwc2hvdERhdGEpOworCisgICAgbV9mcm9udGVuZERp
c3BhdGNoZXItPnRyYWNraW5nQ29tcGxldGUodGltZXN0YW1wLCBzbmFwc2hvdERhdGEpOworfQor
CiBzdGF0aWMgSW5zcGVjdG9yOjpQcm90b2NvbDo6SGVhcDo6R2FyYmFnZUNvbGxlY3Rpb246OlR5
cGUgcHJvdG9jb2xUeXBlRm9ySGVhcE9wZXJhdGlvbihIZWFwT3BlcmF0aW9uIG9wZXJhdGlvbikK
IHsKICAgICBzd2l0Y2ggKG9wZXJhdGlvbikgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySGVhcEFnZW50LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JIZWFwQWdlbnQuaAppbmRleCBl
M2Q4YTdkLi40YmE2MWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JIZWFwQWdlbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JIZWFwQWdlbnQuaApAQCAtNTIsNiArNTIsOCBA
QCBwdWJsaWM6CiAgICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAg
dm9pZCBnYyhFcnJvclN0cmluZyYpIG92ZXJyaWRlOwogICAgIHZvaWQgc25hcHNob3QoRXJyb3JT
dHJpbmcmLCBkb3VibGUqIHRpbWVzdGFtcCwgU3RyaW5nKiBzbmFwc2hvdERhdGEpIG92ZXJyaWRl
OworICAgIHZvaWQgc3RhcnRUcmFja2luZyhFcnJvclN0cmluZyYpIG92ZXJyaWRlOworICAgIHZv
aWQgc3RvcFRyYWNraW5nKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7CiAKICAgICAvLyBIZWFwT2Jz
ZXJ2ZXIKICAgICB2b2lkIHdpbGxHYXJiYWdlQ29sbGVjdCgpIG92ZXJyaWRlOwpAQCAtNjUsNiAr
NjcsNyBAQCBwcml2YXRlOgogICAgIEluc3BlY3RvckVudmlyb25tZW50JiBtX2Vudmlyb25tZW50
OwogCiAgICAgYm9vbCBtX2VuYWJsZWQgeyBmYWxzZSB9OworICAgIGJvb2wgbV90cmFja2luZyB7
IGZhbHNlIH07CiAgICAgZG91YmxlIG1fZ2NTdGFydFRpbWUgeyBOQU4gfTsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvSGVhcC5qc29u
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9IZWFwLmpzb24KaW5k
ZXggMGUyYmFlNy4uMjhjOGFhMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9wcm90b2NvbC9IZWFwLmpzb24KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9wcm90b2NvbC9IZWFwLmpzb24KQEAgLTM4LDYgKzM4LDE0IEBACiAgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJ0aW1lc3RhbXAiLCAidHlwZSI6ICJudW1iZXIiIH0sCiAgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJzbmFwc2hvdERhdGEiLCAiJHJlZiI6ICJIZWFwU25hcHNob3RE
YXRhIiB9CiAgICAgICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAg
ICJuYW1lIjogInN0YXJ0VHJhY2tpbmciLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlN0
YXJ0IHRyYWNraW5nIGhlYXAgY2hhbmdlcy4gVGhpcyB3aWxsIHByb2R1Y2UgYSBgdHJhY2tpbmdT
dGFydGAgZXZlbnQuIgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6
ICJzdG9wVHJhY2tpbmciLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlN0b3AgdHJhY2tp
bmcgaGVhcCBjaGFuZ2VzLiBUaGlzIHdpbGwgcHJvZHVjZSBhIGB0cmFja2luZ0NvbXBsZXRlYCBl
dmVudC4iCiAgICAgICAgIH0KICAgICBdLAogICAgICJldmVudHMiOiBbCkBAIC00Nyw2ICs1NSwy
MiBAQAogICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCiAgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJjb2xsZWN0aW9uIiwgInR5cGUiOiAiR2FyYmFnZUNvbGxlY3Rpb24iIH0KICAgICAgICAg
ICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAidHJhY2tp
bmdTdGFydCIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVHJhY2tpbmcgc3RhcnRlZC4i
LAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJ0aW1lc3RhbXAiLCAidHlwZSI6ICJudW1iZXIiIH0sCisgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJzbmFwc2hvdERhdGEiLCAiJHJlZiI6ICJIZWFwU25hcHNob3REYXRhIiwgImRlc2NyaXB0
aW9uIjogIlNuYXBzaG90IGF0IHRoZSBzdGFydCBvZiB0cmFja2luZy4iIH0KKyAgICAgICAgICAg
IF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAidHJhY2tpbmdD
b21wbGV0ZSIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVHJhY2tpbmcgc3RvcHBlZC4i
LAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJ0aW1lc3RhbXAiLCAidHlwZSI6ICJudW1iZXIiIH0sCisgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJzbmFwc2hvdERhdGEiLCAiJHJlZiI6ICJIZWFwU25hcHNob3REYXRhIiwgImRlc2NyaXB0
aW9uIjogIlNuYXBzaG90IGF0IHRoZSBlbmQgb2YgdHJhY2tpbmcuIiB9CisgICAgICAgICAgICBd
CiAgICAgICAgIH0KICAgICBdCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCBkZWY2ZjNm
Li5jY2IxMWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxNyBAQAogMjAx
Ni0wMy0wOCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCisgICAgICAg
IFdlYiBJbnNwZWN0b3I6IEFkZCBIZWFwIGRvbWFpbiBzdGFydC9zdG9wIHRyYWNraW5nIGNvbW1h
bmRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTUx
OTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvUHJvdG9jb2wvSGVhcE9ic2VydmVyLmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkhlYXBPYnNlcnZlci5wcm90b3R5cGUudHJhY2tpbmdTdGFydCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuSGVhcE9ic2VydmVyLnByb3RvdHlwZS50cmFja2luZ0NvbXBsZXRlKToKKyAgICAg
ICAgVG8gYmUgdXNlZCB3aGVuIHdlIGhhdmUgYSBIZWFwQWxsb2NhdGlvbnNJbnN0cnVtZW50IGFu
ZCB0aW1lbGluZS4KKworMjAxNi0wMy0wOCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBw
bGUuY29tPgorCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEFkZCBhIHdheSB0byBjcmVhdGUgYSBI
ZWFwIFNuYXBzaG90CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNTUxODgKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvUHJvdG9jb2wvSGVhcE9ic2VydmVyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvUHJvdG9jb2wvSGVhcE9ic2VydmVyLmpzCmluZGV4IGYwNGIzMDAuLmFlMzEw
ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3Rv
Y29sL0hlYXBPYnNlcnZlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Qcm90b2NvbC9IZWFwT2JzZXJ2ZXIuanMKQEAgLTMxLDQgKzMxLDIwIEBAIFdlYkluc3Bl
Y3Rvci5IZWFwT2JzZXJ2ZXIgPSBjbGFzcyBIZWFwT2JzZXJ2ZXIKICAgICB7CiAgICAgICAgIFdl
Ykluc3BlY3Rvci5oZWFwTWFuYWdlci5nYXJiYWdlQ29sbGVjdGVkKGNvbGxlY3Rpb24pOwogICAg
IH0KKworICAgIHRyYWNraW5nU3RhcnQodGltZXN0YW1wLCBzbmFwc2hvdERhdGEpCisgICAgewor
ICAgICAgICBsZXQgcGF5bG9hZCA9IEpTT04ucGFyc2Uoc25hcHNob3REYXRhKTsKKyAgICAgICAg
bGV0IHNuYXBzaG90ID0gV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdC5mcm9tUGF5bG9hZChwYXls
b2FkKTsKKyAgICAgICAgLy8gRklYTUU6IEhlYXAgQWxsb2NhdGlvbnMgVGltZWxpbmUuCisgICAg
ICAgIC8vIFdlYkluc3BlY3Rvci50aW1lbGluZU1hbmFnZXIuaGVhcFRyYWNraW5nU3RhcnRlZCh0
aW1lc3RhbXAsIHNuYXBzaG90KTsKKyAgICB9CisKKyAgICB0cmFja2luZ0NvbXBsZXRlKHRpbWVz
dGFtcCwgc25hcHNob3REYXRhKQorICAgIHsKKyAgICAgICAgbGV0IHBheWxvYWQgPSBKU09OLnBh
cnNlKHNuYXBzaG90RGF0YSk7CisgICAgICAgIGxldCBzbmFwc2hvdCA9IFdlYkluc3BlY3Rvci5I
ZWFwU25hcHNob3QuZnJvbVBheWxvYWQocGF5bG9hZCk7CisgICAgICAgIC8vIEZJWE1FOiBIZWFw
IEFsbG9jYXRpb25zIFRpbWVsaW5lLgorICAgICAgICAvLyBXZWJJbnNwZWN0b3IudGltZWxpbmVN
YW5hZ2VyLmhlYXBUcmFja2luZ0NvbXBsZXRlZCh0aW1lc3RhbXAsIHNuYXBzaG90KTsKKyAgICB9
CiB9Owo=
</data>
<flag name="review"
          id="297926"
          type_id="1"
          status="+"
          setter="bburg"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>273329</attachid>
            <date>2016-03-08 13:44:09 -0800</date>
            <delta_ts>2016-03-08 15:40:35 -0800</delta_ts>
            <desc>[PATCH] For Bots (Part 1 and 2)</desc>
            <filename>for-bots.patch</filename>
            <type>text/plain</type>
            <size>30467</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhODlkNmRhLi45NTg3ZDI4MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE2LTAz
LTA4ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2Vi
IEluc3BlY3RvcjogQWRkIEhlYXAgZG9tYWluIHN0YXJ0L3N0b3AgdHJhY2tpbmcgY29tbWFuZHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NTE5MAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVj
dG9yL2hlYXAvdHJhY2tpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0
b3IvaGVhcC90cmFja2luZy5odG1sOiBBZGRlZC4KKworMjAxNi0wMy0wOCAgSm9zZXBoIFBlY29y
YXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IEFkZCBh
IHdheSB0byBjcmVhdGUgYSBIZWFwIFNuYXBzaG90CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTUxODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9oZWFwL3NuYXBzaG90LWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2hlYXAvc25hcHNob3QuaHRtbDogQWRk
ZWQuCisKIDIwMTYtMDMtMDggIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAK
ICAgICAgICAgU2tpcCBzdmcvYW5pbWF0aW9ucy9hbmltYXRlLW1hcmtlci1vcmllbnQtZnJvbS1h
bmdsZS10by1hdXRvc3RhcnRyZXZlcnNlLmh0bWwgb24gaW9zLXNpbXVsYXRvcgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2hlYXAvc25hcHNob3QtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2hlYXAvc25hcHNob3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc3ODUxNGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvaGVhcC9zbmFwc2hvdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
MSBAQAorVGVzdCBmb3IgdGhlIEhlYXAuc25hcHNob3QgY29tbWFuZC4KKworCis9PSBSdW5uaW5n
IHRlc3Qgc3VpdGU6IEhlYXAuc25hcHNob3QKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBUcmlnZ2Vy
U25hcHNob3QKK1BBU1M6IFNob3VsZCBub3QgaGF2ZSBhbiBlcnJvciBjcmVhdGluZyBhIHNuYXBz
aG90LgorUEFTUzogU25hcHNob3Qgc2l6ZSBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIDFrYi4KK1BB
U1M6IFNuYXBzaG90IG9iamVjdCBjb3VudCBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIDEwMC4KK1BB
U1M6IFNuYXBzaG90IHNob3VsZCBpbmNsdWRlIGEgY2xhc3MgY2F0ZWdvcnkgZm9yICdXaW5kb3cn
LgorUEFTUzogU25hcHNob3cgc2hvdWxkIGluY2x1ZGUgYXQgbGVhc3Qgb25lICdXaW5kb3cnIGlu
c3RhbmNlLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvaGVhcC9zbmFwc2hv
dC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2hlYXAvc25hcHNob3QuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZDdhZDM5Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2hlYXAvc25hcHNob3QuaHRtbApAQCAtMCwwICsxLDM0IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0
cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JU
ZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIkhlYXAuc25hcHNob3QiKTsKKworICAgIHN1aXRlLmFkZFRl
c3RDYXNlKHsKKyAgICAgICAgbmFtZTogIlRyaWdnZXJTbmFwc2hvdCIsCisgICAgICAgIGRlc2Ny
aXB0aW9uOiAiQ2FsbGluZyBIZWFwLnNuYXBzaG90IHNob3VsZCBjcmVhdGUgYSBoZWFwIHNuYXBz
aG90LiIsCisgICAgICAgIHRlc3Q6IChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgICAg
IEhlYXBBZ2VudC5zbmFwc2hvdCgoZXJyb3IsIHRpbWVzdGFtcCwgc25hcHNob3RTdHJpbmdEYXRh
KSA9PiB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KCFlcnJvciwg
IlNob3VsZCBub3QgaGF2ZSBhbiBlcnJvciBjcmVhdGluZyBhIHNuYXBzaG90LiIpOworICAgICAg
ICAgICAgICAgIGxldCBwYXlsb2FkID0gSlNPTi5wYXJzZShzbmFwc2hvdFN0cmluZ0RhdGEpOwor
ICAgICAgICAgICAgICAgIGxldCBzbmFwc2hvdCA9IFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3Qu
ZnJvbVBheWxvYWQocGF5bG9hZCk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBl
Y3RUaGF0KHNuYXBzaG90LnRvdGFsU2l6ZSA+IDEwMjQsICJTbmFwc2hvdCBzaXplIHNob3VsZCBi
ZSBncmVhdGVyIHRoYW4gMWtiLiIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhw
ZWN0VGhhdChzbmFwc2hvdC50b3RhbE9iamVjdENvdW50ID4gMTAwLCAiU25hcHNob3Qgb2JqZWN0
IGNvdW50IHNob3VsZCBiZSBncmVhdGVyIHRoYW4gMTAwLiIpOworICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuZXhwZWN0VGhhdChzbmFwc2hvdC5jYXRlZ29yaWVzLmdldCgiV2luZG93Iiks
ICJTbmFwc2hvdCBzaG91bGQgaW5jbHVkZSBhIGNsYXNzIGNhdGVnb3J5IGZvciAnV2luZG93Jy4i
KTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoc25hcHNob3QuaW5z
dGFuY2VzV2l0aENsYXNzTmFtZSgiV2luZG93IikubGVuZ3RoID4gMCwgIlNuYXBzaG93IHNob3Vs
ZCBpbmNsdWRlIGF0IGxlYXN0IG9uZSAnV2luZG93JyBpbnN0YW5jZS4iKTsKKyAgICAgICAgICAg
ICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIH0pOworCisg
ICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPlRlc3QgZm9yIHRoZSBIZWFwLnNuYXBzaG90
IGNvbW1hbmQuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2hlYXAvdHJhY2tpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2hlYXAvdHJhY2tpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjI3ZDA0OWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvaGVhcC90cmFja2luZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhh
dCBIZWFwLnN0YXJ0VHJhY2tpbmcgYW5kIEhlYXAuc3RvcFRyYWNraW5nIHRyaWdnZXIgdHJhY2tp
bmdTdGFydCBhbmQgdHJhY2tpbmdDb21wbGV0ZSBldmVudHMgd2l0aCBleHBlY3RlZCBkYXRhLgor
CisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogSGVhcC5zdGFydFRyYWNraW5nIGFuZCBIZWFwLnN0
b3BUcmFja2luZworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFN0YXJ0QW5kU3RvcFRyYWNraW5nSW5j
bHVkZVNuYXBzaG90cworSGVhcC50cmFja2luZ1N0YXJ0CitQQVNTOiBTaG91bGQgaGF2ZSBhIHRp
bWVzdGFtcCB3aGVuIHN0YXJ0aW5nLgorUEFTUzogU2hvdWxkIGhhdmUgc25hcHNob3REYXRhIHdo
ZW4gc3RhcnRpbmcuCitIZWFwLnRyYWNraW5nQ29tcGxldGUKK1BBU1M6IFNob3VsZCBoYXZlIGEg
dGltZXN0YW1wIHdoZW4gc3RvcHBpbmcuCitQQVNTOiBTaG91bGQgaGF2ZSBzbmFwc2hvdERhdGEg
d2hlbiBzdG9wcGluZy4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2hlYXAv
dHJhY2tpbmcuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9oZWFwL3RyYWNraW5nLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjA1YjNjYgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9oZWFwL3RyYWNraW5nLmh0bWwKQEAgLTAsMCAr
MSwzOCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBsZXQgc3VpdGUgPSBQcm90
b2NvbFRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiSGVhcC5zdGFydFRyYWNraW5nIGFuZCBIZWFwLnN0
b3BUcmFja2luZyIpOworCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAi
U3RhcnRBbmRTdG9wVHJhY2tpbmdJbmNsdWRlU25hcHNob3RzIiwKKyAgICAgICAgdGVzdDogZnVu
Y3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICBJbnNwZWN0b3JQcm90b2NvbC5h
d2FpdEV2ZW50KHtldmVudDogIkhlYXAudHJhY2tpbmdTdGFydCJ9KS50aGVuKChtZXNzYWdlT2Jq
ZWN0KSA9PiB7CisgICAgICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiSGVhcC50cmFja2lu
Z1N0YXJ0Iik7CisgICAgICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmV4cGVjdFRoYXQodHlwZW9m
IG1lc3NhZ2VPYmplY3QucGFyYW1zLnRpbWVzdGFtcCA9PT0gIm51bWJlciIsICJTaG91bGQgaGF2
ZSBhIHRpbWVzdGFtcCB3aGVuIHN0YXJ0aW5nLiIpOworICAgICAgICAgICAgICAgIFByb3RvY29s
VGVzdC5leHBlY3RUaGF0KHR5cGVvZiBtZXNzYWdlT2JqZWN0LnBhcmFtcy5zbmFwc2hvdERhdGEg
PT09ICJzdHJpbmciLCAiU2hvdWxkIGhhdmUgc25hcHNob3REYXRhIHdoZW4gc3RhcnRpbmcuIik7
CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yUHJvdG9jb2wuc2VuZENvbW1hbmQoIkhlYXAuc3Rv
cFRyYWNraW5nIiwge30pOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIEluc3BlY3Rv
clByb3RvY29sLmF3YWl0RXZlbnQoe2V2ZW50OiAiSGVhcC50cmFja2luZ0NvbXBsZXRlIn0pLnRo
ZW4oKG1lc3NhZ2VPYmplY3QpID0+IHsKKyAgICAgICAgICAgICAgICBQcm90b2NvbFRlc3QubG9n
KCJIZWFwLnRyYWNraW5nQ29tcGxldGUiKTsKKyAgICAgICAgICAgICAgICBQcm90b2NvbFRlc3Qu
ZXhwZWN0VGhhdCh0eXBlb2YgbWVzc2FnZU9iamVjdC5wYXJhbXMudGltZXN0YW1wID09PSAibnVt
YmVyIiwgIlNob3VsZCBoYXZlIGEgdGltZXN0YW1wIHdoZW4gc3RvcHBpbmcuIik7CisgICAgICAg
ICAgICAgICAgUHJvdG9jb2xUZXN0LmV4cGVjdFRoYXQodHlwZW9mIG1lc3NhZ2VPYmplY3QucGFy
YW1zLnNuYXBzaG90RGF0YSA9PT0gInN0cmluZyIsICJTaG91bGQgaGF2ZSBzbmFwc2hvdERhdGEg
d2hlbiBzdG9wcGluZy4iKTsKKyAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAg
ICB9KTsKKworICAgICAgICAgICAgSW5zcGVjdG9yUHJvdG9jb2wuc2VuZENvbW1hbmQoIkhlYXAu
c3RhcnRUcmFja2luZyIsIHt9KTsKKyAgICAgICAgfQorICAgIH0pOworCisgICAgc3VpdGUucnVu
VGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9h
ZD0icnVuVGVzdCgpIj4KKzxwPlRlc3RzIHRoYXQgSGVhcC5zdGFydFRyYWNraW5nIGFuZCBIZWFw
LnN0b3BUcmFja2luZyB0cmlnZ2VyIHRyYWNraW5nU3RhcnQgYW5kIHRyYWNraW5nQ29tcGxldGUg
ZXZlbnRzIHdpdGggZXhwZWN0ZWQgZGF0YS48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwppbmRleCAyZWUwODAwLi41MjdjNjAwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxNi0wMy0wOCAgSm9zZXBoIFBlY29yYXJvICA8cGVj
b3Jhcm9AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IEFkZCBIZWFwIGRvbWFp
biBzdGFydC9zdG9wIHRyYWNraW5nIGNvbW1hbmRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTUxOTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySGVhcEFn
ZW50LmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6SW5zcGVjdG9ySGVhcEFnZW50Ojp3aWxsRGVz
dHJveUZyb250ZW5kQW5kQmFja2VuZCk6CisgICAgICAgIChJbnNwZWN0b3I6Okluc3BlY3Rvckhl
YXBBZ2VudDo6c3RhcnRUcmFja2luZyk6CisgICAgICAgIChJbnNwZWN0b3I6Okluc3BlY3Rvckhl
YXBBZ2VudDo6c3RvcFRyYWNraW5nKToKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvckhlYXBBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9wcm90b2NvbC9IZWFwLmpzb246
CisKKzIwMTYtMDMtMDggIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBBZGQgYSB3YXkgdG8gY3JlYXRlIGEgSGVhcCBTbmFwc2hv
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1MTg4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvckhlYXBBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9w
cm90b2NvbC9IZWFwLmpzb246CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JI
ZWFwQWdlbnQuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpJbnNwZWN0b3JIZWFwQWdlbnQ6OnNu
YXBzaG90KToKKyAgICAgICAgVGFrZSBhIGhlYXAgc25hcHNob3QgYW5kIHJldHVybiB0aGUgSlNP
TiBzdHJpbmcgcmVzdWx0LgorCisgICAgICAgICogaW5zcGVjdG9yL3Byb3RvY29sL0RlYnVnZ2Vy
Lmpzb246CisgICAgICAgIFJlbW92ZSB1bnVzZWQgb3B0aW9uYWwgaW5mZXJyZWROYW1lLiBPdXIg
ZGlzcGxheU5hbWUgd291bGQgYmUgaW5mZXJyZWQuCisKIDIwMTYtMDMtMDggIE1pY2hhZWwgU2Fi
b2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CiAKICAgICAgICAgW0VTNl0gUmVndWxhciBFeHByZXNz
aW9uIGNhbm9uaWNhbGl6YXRpb24gdGFibGVzIGZvciBVbmljb2RlIG5lZWQgdG8gYmUgdXBkYXRl
ZCB0byB1c2UgVW5pY29kZSBDYXNlRm9sZGluZy50eHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckhlYXBBZ2VudC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JIZWFwQWdlbnQuY3Bw
CmluZGV4IDJjYmMzZjMuLmYzNzZmMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckhlYXBBZ2VudC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySGVhcEFnZW50LmNwcApAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LCAyMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYs
NiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkluc3BlY3RvckhlYXBB
Z2VudC5oIgogCisjaW5jbHVkZSAiSGVhcFByb2ZpbGVyLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9y
RW52aXJvbm1lbnQuaCIKICNpbmNsdWRlICJWTS5oIgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+
CkBAIC01NCw2ICs1NSw3IEBAIHZvaWQgSW5zcGVjdG9ySGVhcEFnZW50OjpkaWRDcmVhdGVGcm9u
dGVuZEFuZEJhY2tlbmQoRnJvbnRlbmRSb3V0ZXIqLCBCYWNrZW5kRGlzCiB2b2lkIEluc3BlY3Rv
ckhlYXBBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoRGlzY29ubmVjdFJlYXNv
bikKIHsKICAgICBFcnJvclN0cmluZyBpZ25vcmVkOworICAgIHN0b3BUcmFja2luZyhpZ25vcmVk
KTsKICAgICBkaXNhYmxlKGlnbm9yZWQpOwogfQogCkBAIC03NSw2ICs3Nyw4IEBAIHZvaWQgSW5z
cGVjdG9ySGVhcEFnZW50OjpkaXNhYmxlKEVycm9yU3RyaW5nJikKICAgICBtX2VuYWJsZWQgPSBm
YWxzZTsKIAogICAgIG1fZW52aXJvbm1lbnQudm0oKS5oZWFwLnJlbW92ZU9ic2VydmVyKHRoaXMp
OworCisgICAgY2xlYXJIZWFwU25hcHNob3RzKCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9ySGVhcEFn
ZW50OjpnYyhFcnJvclN0cmluZyYpCkBAIC04NSw2ICs4OSw1NCBAQCB2b2lkIEluc3BlY3Rvckhl
YXBBZ2VudDo6Z2MoRXJyb3JTdHJpbmcmKQogICAgIHZtLmhlYXAuY29sbGVjdEFsbEdhcmJhZ2Uo
KTsKIH0KIAordm9pZCBJbnNwZWN0b3JIZWFwQWdlbnQ6OnNuYXBzaG90KEVycm9yU3RyaW5nJiwg
ZG91YmxlKiB0aW1lc3RhbXAsIFN0cmluZyogc25hcHNob3REYXRhKQoreworICAgIFZNJiB2bSA9
IG1fZW52aXJvbm1lbnQudm0oKTsKKyAgICBKU0xvY2tIb2xkZXIgbG9jayh2bSk7CisKKyAgICBI
ZWFwU25hcHNob3RCdWlsZGVyIHNuYXBzaG90QnVpbGRlcih2bS5lbnN1cmVIZWFwUHJvZmlsZXIo
KSk7CisgICAgc25hcHNob3RCdWlsZGVyLmJ1aWxkU25hcHNob3QoKTsKKworICAgICp0aW1lc3Rh
bXAgPSBtX2Vudmlyb25tZW50LmV4ZWN1dGlvblN0b3B3YXRjaCgpLT5lbGFwc2VkVGltZSgpOwor
ICAgICpzbmFwc2hvdERhdGEgPSBzbmFwc2hvdEJ1aWxkZXIuanNvbihbJl0gKGNvbnN0IEhlYXBT
bmFwc2hvdE5vZGUmIG5vZGUpIHsKKyAgICAgICAgaWYgKFN0cnVjdHVyZSogc3RydWN0dXJlID0g
bm9kZS5jZWxsLT5zdHJ1Y3R1cmUodm0pKSB7CisgICAgICAgICAgICBpZiAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCA9IHN0cnVjdHVyZS0+Z2xvYmFsT2JqZWN0KCkpIHsKKyAgICAgICAg
ICAgICAgICBpZiAoIW1fZW52aXJvbm1lbnQuY2FuQWNjZXNzSW5zcGVjdGVkU2NyaXB0U3RhdGUo
Z2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCkpKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgfSk7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySGVhcEFnZW50OjpzdGFydFRyYWNraW5nKEVycm9y
U3RyaW5nJiBlcnJvclN0cmluZykKK3sKKyAgICBpZiAobV90cmFja2luZykKKyAgICAgICAgcmV0
dXJuOworCisgICAgbV90cmFja2luZyA9IHRydWU7CisKKyAgICBkb3VibGUgdGltZXN0YW1wOwor
ICAgIFN0cmluZyBzbmFwc2hvdERhdGE7CisgICAgc25hcHNob3QoZXJyb3JTdHJpbmcsICZ0aW1l
c3RhbXAsICZzbmFwc2hvdERhdGEpOworCisgICAgbV9mcm9udGVuZERpc3BhdGNoZXItPnRyYWNr
aW5nU3RhcnQodGltZXN0YW1wLCBzbmFwc2hvdERhdGEpOworfQorCit2b2lkIEluc3BlY3Rvckhl
YXBBZ2VudDo6c3RvcFRyYWNraW5nKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZykKK3sKKyAgICBp
ZiAoIW1fdHJhY2tpbmcpCisgICAgICAgIHJldHVybjsKKworICAgIG1fdHJhY2tpbmcgPSBmYWxz
ZTsKKworICAgIGRvdWJsZSB0aW1lc3RhbXA7CisgICAgU3RyaW5nIHNuYXBzaG90RGF0YTsKKyAg
ICBzbmFwc2hvdChlcnJvclN0cmluZywgJnRpbWVzdGFtcCwgJnNuYXBzaG90RGF0YSk7CisKKyAg
ICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+dHJhY2tpbmdDb21wbGV0ZSh0aW1lc3RhbXAsIHNuYXBz
aG90RGF0YSk7Cit9CisKIHN0YXRpYyBJbnNwZWN0b3I6OlByb3RvY29sOjpIZWFwOjpHYXJiYWdl
Q29sbGVjdGlvbjo6VHlwZSBwcm90b2NvbFR5cGVGb3JIZWFwT3BlcmF0aW9uKEhlYXBPcGVyYXRp
b24gb3BlcmF0aW9uKQogewogICAgIHN3aXRjaCAob3BlcmF0aW9uKSB7CkBAIC0xMzYsNCArMTg4
LDEwIEBAIHZvaWQgSW5zcGVjdG9ySGVhcEFnZW50OjpkaWRHYXJiYWdlQ29sbGVjdChIZWFwT3Bl
cmF0aW9uIG9wZXJhdGlvbikKICAgICBtX2djU3RhcnRUaW1lID0gTkFOOwogfQogCit2b2lkIElu
c3BlY3RvckhlYXBBZ2VudDo6Y2xlYXJIZWFwU25hcHNob3RzKCkKK3sKKyAgICBpZiAoSGVhcFBy
b2ZpbGVyKiBoZWFwUHJvZmlsZXIgPSBtX2Vudmlyb25tZW50LnZtKCkuaGVhcFByb2ZpbGVyKCkp
CisgICAgICAgIGhlYXBQcm9maWxlci0+Y2xlYXJTbmFwc2hvdHMoKTsKK30KKwogfSAvLyBuYW1l
c3BhY2UgSW5zcGVjdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JIZWFwQWdlbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckhlYXBBZ2VudC5oCmluZGV4IGIxOTc0ZTMuLjRiYTYx
ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvckhlYXBBZ2VudC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckhlYXBBZ2VudC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIElu
c3BlY3RvckhlYXBBZ2VudF9oCiAjZGVmaW5lIEluc3BlY3RvckhlYXBBZ2VudF9oCiAKKyNpbmNs
dWRlICJIZWFwU25hcHNob3QuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hl
cnMuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZERpc3BhdGNoZXJzLmgiCiAjaW5jbHVk
ZSAiaGVhcC9IZWFwT2JzZXJ2ZXIuaCIKQEAgLTUwLDE2ICs1MSwyMyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBlbmFibGUoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2b2lkIGRpc2FibGUoRXJy
b3JTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2b2lkIGdjKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7
CisgICAgdm9pZCBzbmFwc2hvdChFcnJvclN0cmluZyYsIGRvdWJsZSogdGltZXN0YW1wLCBTdHJp
bmcqIHNuYXBzaG90RGF0YSkgb3ZlcnJpZGU7CisgICAgdm9pZCBzdGFydFRyYWNraW5nKEVycm9y
U3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBzdG9wVHJhY2tpbmcoRXJyb3JTdHJpbmcmKSBv
dmVycmlkZTsKIAogICAgIC8vIEhlYXBPYnNlcnZlcgogICAgIHZvaWQgd2lsbEdhcmJhZ2VDb2xs
ZWN0KCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRHYXJiYWdlQ29sbGVjdChKU0M6OkhlYXBPcGVy
YXRpb24pIG92ZXJyaWRlOwogCiBwcml2YXRlOgorICAgIHZvaWQgY2xlYXJIZWFwU25hcHNob3Rz
KCk7CisKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SGVhcEZyb250ZW5kRGlzcGF0Y2hlcj4gbV9mcm9u
dGVuZERpc3BhdGNoZXI7CiAgICAgUmVmUHRyPEhlYXBCYWNrZW5kRGlzcGF0Y2hlcj4gbV9iYWNr
ZW5kRGlzcGF0Y2hlcjsKICAgICBJbnNwZWN0b3JFbnZpcm9ubWVudCYgbV9lbnZpcm9ubWVudDsK
KwogICAgIGJvb2wgbV9lbmFibGVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1fdHJhY2tpbmcgeyBm
YWxzZSB9OwogICAgIGRvdWJsZSBtX2djU3RhcnRUaW1lIHsgTkFOIH07CiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0RlYnVnZ2VyLmpz
b24gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0RlYnVnZ2VyLmpz
b24KaW5kZXggZDBmOWRjMC4uNGYxYmQ5OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9wcm90b2NvbC9EZWJ1Z2dlci5qc29uCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvRGVidWdnZXIuanNvbgpAQCAtNjAsNyArNjAsNiBA
QAogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibG9jYXRpb24iLCAiJHJlZiI6ICJMb2NhdGlv
biIsICJkZXNjcmlwdGlvbiI6ICJMb2NhdGlvbiBvZiB0aGUgZnVuY3Rpb24uIiB9LAogICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAibmFtZSIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6
IHRydWUsICJkZXNjcmlwdGlvbiI6ICJOYW1lIG9mIHRoZSBmdW5jdGlvbi4gTm90IHByZXNlbnQg
Zm9yIGFub255bW91cyBmdW5jdGlvbnMuIiB9LAogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
ZGlzcGxheU5hbWUiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3Jp
cHRpb24iOiAiRGlzcGxheSBuYW1lIG9mIHRoZSBmdW5jdGlvbihzcGVjaWZpZWQgaW4gJ2Rpc3Bs
YXlOYW1lJyBwcm9wZXJ0eSBvbiB0aGUgZnVuY3Rpb24gb2JqZWN0KS4iIH0sCi0gICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJpbmZlcnJlZE5hbWUiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9u
YWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiTmFtZSBvZiB0aGUgZnVuY3Rpb24gaW5mZXJyZWQg
ZnJvbSBpdHMgaW5pdGlhbCBhc3NpZ25tZW50LiIgfSwKICAgICAgICAgICAgICAgICB7ICJuYW1l
IjogInNjb3BlQ2hhaW4iLCAidHlwZSI6ICJhcnJheSIsICJvcHRpb25hbCI6IHRydWUsICJpdGVt
cyI6IHsgIiRyZWYiOiAiU2NvcGUiIH0sICJkZXNjcmlwdGlvbiI6ICJTY29wZSBjaGFpbiBmb3Ig
dGhpcyBjbG9zdXJlLiIgfQogICAgICAgICAgICAgXSwKICAgICAgICAgICAgICJkZXNjcmlwdGlv
biI6ICJJbmZvcm1hdGlvbiBhYm91dCB0aGUgZnVuY3Rpb24uIgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9IZWFwLmpzb24gYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0hlYXAuanNvbgppbmRleCBlYWMzMzQ2Li4y
OGM4YWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3Rv
Y29sL0hlYXAuanNvbgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3Rv
Y29sL0hlYXAuanNvbgpAQCAtMTEsNiArMTEsMTEgQEAKICAgICAgICAgICAgICAgICB7ICJuYW1l
IjogInN0YXJ0VGltZSIsICJ0eXBlIjogIm51bWJlciIgfSwKICAgICAgICAgICAgICAgICB7ICJu
YW1lIjogImVuZFRpbWUiLCAidHlwZSI6ICJudW1iZXIiIH0KICAgICAgICAgICAgIF0KKyAgICAg
ICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImlkIjogIkhlYXBTbmFwc2hvdERhdGEiLAor
ICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkphdmFTY3JpcHRDb3JlIEhlYXBTbmFwc2hvdCBK
U09OIGRhdGEuIiwKKyAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIKICAgICAgICAgfQogICAg
IF0sCiAgICAgImNvbW1hbmRzIjogWwpAQCAtMjUsNiArMzAsMjIgQEAKICAgICAgICAgewogICAg
ICAgICAgICAgIm5hbWUiOiAiZ2MiLAogICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRyaWdn
ZXIgYSBmdWxsIGdhcmJhZ2UgY29sbGVjdGlvbi4iCisgICAgICAgIH0sCisgICAgICAgIHsKKyAg
ICAgICAgICAgICJuYW1lIjogInNuYXBzaG90IiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6
ICJUYWtlIGEgaGVhcCBzbmFwc2hvdC4iLAorICAgICAgICAgICAgInJldHVybnMiOiBbCisgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJ0aW1lc3RhbXAiLCAidHlwZSI6ICJudW1iZXIiIH0sCisg
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzbmFwc2hvdERhdGEiLCAiJHJlZiI6ICJIZWFwU25h
cHNob3REYXRhIiB9CisgICAgICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAg
ICAgICAgICJuYW1lIjogInN0YXJ0VHJhY2tpbmciLAorICAgICAgICAgICAgImRlc2NyaXB0aW9u
IjogIlN0YXJ0IHRyYWNraW5nIGhlYXAgY2hhbmdlcy4gVGhpcyB3aWxsIHByb2R1Y2UgYSBgdHJh
Y2tpbmdTdGFydGAgZXZlbnQuIgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAi
bmFtZSI6ICJzdG9wVHJhY2tpbmciLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlN0b3Ag
dHJhY2tpbmcgaGVhcCBjaGFuZ2VzLiBUaGlzIHdpbGwgcHJvZHVjZSBhIGB0cmFja2luZ0NvbXBs
ZXRlYCBldmVudC4iCiAgICAgICAgIH0KICAgICBdLAogICAgICJldmVudHMiOiBbCkBAIC0zNCw2
ICs1NSwyMiBAQAogICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCiAgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJjb2xsZWN0aW9uIiwgInR5cGUiOiAiR2FyYmFnZUNvbGxlY3Rpb24iIH0KICAg
ICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAi
dHJhY2tpbmdTdGFydCIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVHJhY2tpbmcgc3Rh
cnRlZC4iLAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJ0aW1lc3RhbXAiLCAidHlwZSI6ICJudW1iZXIiIH0sCisgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJzbmFwc2hvdERhdGEiLCAiJHJlZiI6ICJIZWFwU25hcHNob3REYXRhIiwgImRl
c2NyaXB0aW9uIjogIlNuYXBzaG90IGF0IHRoZSBzdGFydCBvZiB0cmFja2luZy4iIH0KKyAgICAg
ICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAidHJh
Y2tpbmdDb21wbGV0ZSIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVHJhY2tpbmcgc3Rv
cHBlZC4iLAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJ0aW1lc3RhbXAiLCAidHlwZSI6ICJudW1iZXIiIH0sCisgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJzbmFwc2hvdERhdGEiLCAiJHJlZiI6ICJIZWFwU25hcHNob3REYXRhIiwgImRl
c2NyaXB0aW9uIjogIlNuYXBzaG90IGF0IHRoZSBlbmQgb2YgdHJhY2tpbmcuIiB9CisgICAgICAg
ICAgICBdCiAgICAgICAgIH0KICAgICBdCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCBm
ZTNmMjdlLi5jY2IxMWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEsNSArMSw0OCBA
QAogMjAxNi0wMy0wOCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCisg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IEFkZCBIZWFwIGRvbWFpbiBzdGFydC9zdG9wIHRyYWNraW5n
IGNvbW1hbmRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNTUxOTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvUHJvdG9jb2wvSGVhcE9ic2VydmVyLmpzOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkhlYXBPYnNlcnZlci5wcm90b3R5cGUudHJhY2tpbmdTdGFydCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuSGVhcE9ic2VydmVyLnByb3RvdHlwZS50cmFja2luZ0NvbXBsZXRlKToK
KyAgICAgICAgVG8gYmUgdXNlZCB3aGVuIHdlIGhhdmUgYSBIZWFwQWxsb2NhdGlvbnNJbnN0cnVt
ZW50IGFuZCB0aW1lbGluZS4KKworMjAxNi0wMy0wOCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jh
cm9AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IEFkZCBhIHdheSB0byBjcmVh
dGUgYSBIZWFwIFNuYXBzaG90CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNTUxODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTWFpbi5odG1sOgorICAgICAgICAqIFVzZXJJbnRl
cmZhY2UvVGVzdC5odG1sOgorICAgICAgICBBZGQgbmV3IE1vZGVsIHJlc291cmNlcy4KKworICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL0hlYXBTbmFwc2hvdC5qczogQWRkZWQuCisgICAg
ICAgIChXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90Q2xhc3NDYXRlZ29yeSk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5IZWFwU25h
cHNob3QuZnJvbVBheWxvYWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdC5w
cm90b3R5cGUuZ2V0IHJvb3ROb2RlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5IZWFwU25hcHNo
b3QucHJvdG90eXBlLmdldCBub2Rlcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFNuYXBz
aG90LnByb3RvdHlwZS5nZXQgaWRlbnRpZmllcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVh
cFNuYXBzaG90LnByb3RvdHlwZS5nZXQgaW5zdGFuY2VzKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5IZWFwU25hcHNob3QucHJvdG90eXBlLmdldCBjYXRlZ29yaWVzKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5IZWFwU25hcHNob3QucHJvdG90eXBlLmdldCB0b3RhbFNpemUpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdC5wcm90b3R5cGUuZ2V0IHRvdGFsT2JqZWN0Q291bnQp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdC5wcm90b3R5cGUuaW5zdGFuY2Vz
V2l0aENsYXNzTmFtZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90LnByb3Rv
dHlwZS5ub2RlV2l0aE9iamVjdElkZW50aWZpZXIpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
TW9kZWxzL0hlYXBTbmFwc2hvdEVkZ2UuanM6IEFkZGVkLgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkhlYXBTbmFwc2hvdEVkZ2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdEVk
Z2UucHJvdG90eXBlLnN0cmluZ2lmeSk6CisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMv
SGVhcFNuYXBzaG90Tm9kZS5qczogQWRkZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFNu
YXBzaG90Tm9kZSk6CisgICAgICAgIERhdGEgc3RydWN0dXJlcyBmb3IgYSBIZWFwU25hcHNob3Qu
CisKKzIwMTYtMDMtMDggIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKwog
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBJbWFnZXMgYmVpbmcgYmxvY2tlZCBieSBDU1AgMi4wCiAg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTUxODIKICAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI1MDQwNjQwPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9VdGlsaXRpZXMuanMgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL1V0aWxpdGllcy5qcwppbmRleCA4ZTQxODE1Li4y
MGJkYmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9C
YXNlL1V0aWxpdGllcy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9CYXNlL1V0aWxpdGllcy5qcwpAQCAtOTQsNiArOTQsMTcgQEAgT2JqZWN0LmRlZmluZVByb3Bl
cnR5KE9iamVjdC5wcm90b3R5cGUsICJ2YWx1ZUZvckNhc2VJbnNlbnNpdGl2ZUtleSIsCiAgICAg
fQogfSk7CiAKK09iamVjdC5kZWZpbmVQcm9wZXJ0eShNYXAsICJmcm9tT2JqZWN0IiwKK3sKKyAg
ICB2YWx1ZTogZnVuY3Rpb24ob2JqZWN0KQorICAgIHsKKyAgICAgICAgbGV0IG1hcCA9IG5ldyBN
YXA7CisgICAgICAgIGZvciAobGV0IGtleSBpbiBvYmplY3QpCisgICAgICAgICAgICBtYXAuc2V0
KGtleSwgb2JqZWN0W2tleV0pOworICAgICAgICByZXR1cm4gbWFwOworICAgIH0KK30pOworCiBP
YmplY3QuZGVmaW5lUHJvcGVydHkoTWFwLnByb3RvdHlwZSwgInRha2UiLAogewogICAgIHZhbHVl
OiBmdW5jdGlvbihrZXkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9NYWluLmh0bWwgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9N
YWluLmh0bWwKaW5kZXggYTM0NmU4NC4uNWQyNDdkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbApAQCAtMzA4LDYgKzMwOCw5IEBACiAgICAgPHNj
cmlwdCBzcmM9Ik1vZGVscy9HYXJiYWdlQ29sbGVjdGlvbi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNj
cmlwdCBzcmM9Ik1vZGVscy9HZW9tZXRyeS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9
Ik1vZGVscy9HcmFkaWVudC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9I
ZWFwU25hcHNob3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvSGVhcFNu
YXBzaG90RWRnZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9IZWFwU25h
cHNob3ROb2RlLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0luZGV4ZWRE
YXRhYmFzZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9JbmRleGVkRGF0
YWJhc2VPYmplY3RTdG9yZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9J
bmRleGVkRGF0YWJhc2VPYmplY3RTdG9yZUluZGV4LmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9IZWFwU25hcHNob3Qu
anMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvSGVhcFNuYXBz
aG90LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM4ZTQxNTMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMv
SGVhcFNuYXBzaG90LmpzCkBAIC0wLDAgKzEsMTU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworV2ViSW5zcGVj
dG9yLkhlYXBTbmFwc2hvdENsYXNzQ2F0ZWdvcnkgPSBjbGFzcyBIZWFwU25hcHNob3RDbGFzc0Nh
dGVnb3J5Cit7CisgICAgY29uc3RydWN0b3IoY2xhc3NOYW1lKQorICAgIHsKKyAgICAgICAgdGhp
cy5jbGFzc05hbWUgPSBjbGFzc05hbWU7CisgICAgICAgIHRoaXMuc2l6ZSA9IDA7CisgICAgICAg
IHRoaXMuY291bnQgPSAwOworICAgICAgICB0aGlzLmludGVybmFsQ291bnQgPSAwOworICAgIH0K
K307CisKK1dlYkluc3BlY3Rvci5IZWFwU25hcHNob3QgPSBjbGFzcyBIZWFwU25hcHNob3QgZXh0
ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0Cit7CisgICAgY29uc3RydWN0b3Iocm9vdE5vZGUsIG5v
ZGVzLCBub2RlTWFwKQorICAgIHsKKyAgICAgICAgc3VwZXIoKTsKKworICAgICAgICBjb25zb2xl
LmFzc2VydCghcm9vdE5vZGUgfHwgcm9vdE5vZGUgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuSGVh
cFNuYXBzaG90Tm9kZSk7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KG5vZGVzIGluc3RhbmNlb2Yg
QXJyYXkpOworCisgICAgICAgIHRoaXMuX3Jvb3ROb2RlID0gcm9vdE5vZGU7CisgICAgICAgIHRo
aXMuX25vZGVzID0gbm9kZXM7CisgICAgICAgIHRoaXMuX25vZGVNYXAgPSBub2RlTWFwOworCisg
ICAgICAgIHRoaXMuX2lkZW50aWZpZXIgPSBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90Ll9uZXh0
QXZhaWxhYmxlU25hcHNob3RJZGVudGlmaWVyKys7CisgICAgICAgIHRoaXMuX2luc3RhbmNlcyA9
IG5vZGVzOworCisgICAgICAgIGxldCBjYXRlZ29yaWVzID0ge307CisgICAgICAgIGZvciAobGV0
IGkgPSAwOyBpIDwgbm9kZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGxldCB7Y2xhc3NO
YW1lLCBzaXplLCBpbnRlcm5hbH0gPSBub2Rlc1tpXTsKKworICAgICAgICAgICAgbGV0IGNhdGVn
b3J5ID0gY2F0ZWdvcmllc1tjbGFzc05hbWVdOworICAgICAgICAgICAgaWYgKCFjYXRlZ29yeSkK
KyAgICAgICAgICAgICAgICBjYXRlZ29yeSA9IGNhdGVnb3JpZXNbY2xhc3NOYW1lXSA9IG5ldyBX
ZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90Q2xhc3NDYXRlZ29yeShjbGFzc05hbWUpOworCisgICAg
ICAgICAgICBjYXRlZ29yeS5zaXplICs9IHNpemU7CisgICAgICAgICAgICBjYXRlZ29yeS5jb3Vu
dCsrOworICAgICAgICAgICAgaWYgKGludGVybmFsKQorICAgICAgICAgICAgICAgIGNhdGVnb3J5
LmludGVybmFsQ291bnQrKzsKKyAgICAgICAgfQorICAgICAgICB0aGlzLl9jYXRlZ29yaWVzID0g
TWFwLmZyb21PYmplY3QoY2F0ZWdvcmllcyk7CisKKyAgICAgICAgdGhpcy5fdG90YWxTaXplID0g
MDsKKyAgICAgICAgdGhpcy5fdG90YWxPYmplY3RDb3VudCA9IDA7CisgICAgICAgIGZvciAobGV0
IHtjb3VudCwgc2l6ZX0gb2YgdGhpcy5fY2F0ZWdvcmllcy52YWx1ZXMoKSkgeworICAgICAgICAg
ICAgdGhpcy5fdG90YWxTaXplICs9IHNpemU7CisgICAgICAgICAgICB0aGlzLl90b3RhbE9iamVj
dENvdW50ICs9IGNvdW50OworICAgICAgICB9CisgICAgfQorCisgICAgLy8gU3RhdGljCisKKyAg
ICBzdGF0aWMgZnJvbVBheWxvYWQocGF5bG9hZCkKKyAgICB7CisgICAgICAgIGxldCB7dmVyc2lv
biwgbm9kZXMsIG5vZGVDbGFzc05hbWVzLCBlZGdlcywgZWRnZVR5cGVzfSA9IHBheWxvYWQ7Cisg
ICAgICAgIGNvbnNvbGUuYXNzZXJ0KHZlcnNpb24gPT09IDEsICJPbmx5IGtub3cgaG93IHRvIGhh
bmRsZSBKYXZhU2NyaXB0Q29yZSBIZWFwIFNuYXBzaG90IEZvcm1hdCBWZXJzaW9uIDEiKTsKKyAg
ICAgICAgY29uc29sZS5hc3NlcnQoZWRnZVR5cGVzLmV2ZXJ5KCh0eXBlKSA9PiB0eXBlIGluIFdl
Ykluc3BlY3Rvci5IZWFwU25hcHNob3RFZGdlLkVkZ2VUeXBlKSwgIlVuZXhwZWN0ZWQgZWRnZSB0
eXBlIiwgZWRnZVR5cGVzKTsKKworICAgICAgICBsZXQgbm9kZU1hcCA9IG5ldyBNYXA7CisKKyAg
ICAgICAgLy8gVHVybiBub2RlcyBpbnRvIHJlYWwgbm9kZXMuCisgICAgICAgIGZvciAobGV0IGkg
PSAwLCBsZW5ndGggPSBub2Rlcy5sZW5ndGg7IGkgPCBsZW5ndGg7ICsraSkgeworICAgICAgICAg
ICAgbGV0IG5vZGVQYXlsb2FkID0gbm9kZXNbaV07CisgICAgICAgICAgICBsZXQgaWQgPSBub2Rl
UGF5bG9hZFswXTsKKyAgICAgICAgICAgIGxldCBzaXplID0gbm9kZVBheWxvYWRbMV07CisgICAg
ICAgICAgICBsZXQgY2xhc3NOYW1lSW5kZXggPSBub2RlUGF5bG9hZFsyXTsKKyAgICAgICAgICAg
IGxldCBpbnRlcm5hbCA9IG5vZGVQYXlsb2FkWzNdOworCisgICAgICAgICAgICBsZXQgbm9kZSA9
IG5ldyBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90Tm9kZShpZCwgbm9kZUNsYXNzTmFtZXNbY2xh
c3NOYW1lSW5kZXhdLCBzaXplLCAhIWludGVybmFsKTsKKyAgICAgICAgICAgIG5vZGVNYXAuc2V0
KGlkLCBub2RlKTsKKyAgICAgICAgICAgIG5vZGVzW2ldID0gbm9kZTsKKyAgICAgICAgfQorCisg
ICAgICAgIC8vIFR1cm4gZWRnZXMgaW50byByZWFsIGVkZ2VzIGFuZCBzZXQgdGhlbSBvbiB0aGUg
bm9kZXMuCisgICAgICAgIGZvciAobGV0IGkgPSAwLCBsZW5ndGggPSBlZGdlcy5sZW5ndGg7IGkg
PCBsZW5ndGg7ICsraSkgeworICAgICAgICAgICAgbGV0IGVkZ2VQYXlsb2FkID0gZWRnZXNbaV07
CisgICAgICAgICAgICBsZXQgZnJvbUlkZW50aWZpZXIgPSBlZGdlUGF5bG9hZFswXTsKKyAgICAg
ICAgICAgIGxldCB0b0lkZW50aWZpZXIgPSBlZGdlUGF5bG9hZFsxXTsKKyAgICAgICAgICAgIGxl
dCBlZGdlVHlwZUluZGV4ID0gZWRnZVBheWxvYWRbMl07CisgICAgICAgICAgICBsZXQgZGF0YSA9
IGVkZ2VQYXlsb2FkWzNdOworCisgICAgICAgICAgICBsZXQgZnJvbSA9IG5vZGVNYXAuZ2V0KGZy
b21JZGVudGlmaWVyKTsKKyAgICAgICAgICAgIGxldCB0byA9IG5vZGVNYXAuZ2V0KHRvSWRlbnRp
Zmllcik7CisgICAgICAgICAgICBsZXQgZWRnZSA9IG5ldyBXZWJJbnNwZWN0b3IuSGVhcFNuYXBz
aG90RWRnZShmcm9tLCB0bywgZWRnZVR5cGVzW2VkZ2VUeXBlSW5kZXhdLCBkYXRhKTsKKyAgICAg
ICAgICAgIGZyb20ub3V0Z29pbmdFZGdlcy5wdXNoKGVkZ2UpOworICAgICAgICAgICAgdG8uaW5j
b21pbmdFZGdlcy5wdXNoKGVkZ2UpOworICAgICAgICB9CisKKyAgICAgICAgLy8gUm9vdCBub2Rl
LgorICAgICAgICBsZXQgcm9vdE5vZGUgPSBub2RlTWFwLmdldCgwKTsKKyAgICAgICAgY29uc29s
ZS5hc3NlcnQocm9vdE5vZGUsICJOb2RlIHdpdGggaWRlbnRpZmllciAwIGlzIHRoZSBhcnRpZmlj
aWFsIDxyb290PiBub2RlLiIpOworICAgICAgICBjb25zb2xlLmFzc2VydChyb290Tm9kZS5vdXRn
b2luZ0VkZ2VzLmxlbmd0aCA+IDAsICJUaGlzIGhhZCBiZXR0ZXIgaGF2ZSBjaGlsZHJlbiEiKTsK
KyAgICAgICAgY29uc29sZS5hc3NlcnQocm9vdE5vZGUuaW5jb21pbmdFZGdlcy5sZW5ndGggPT09
IDAsICJUaGlzIGhhZCBiZXR0ZXIgbm90IGhhdmUgYmFjayByZWZlcmVuY2VzISIpOworCisgICAg
ICAgIC8vIE1hcmsgR0Mgcm9vdHMuCisgICAgICAgIGxldCByb290Tm9kZUVkZ2VzID0gcm9vdE5v
ZGUub3V0Z29pbmdFZGdlczsKKyAgICAgICAgZm9yIChsZXQgaSA9IDAsIGxlbmd0aCA9IHJvb3RO
b2RlRWRnZXMubGVuZ3RoOyBpIDwgbGVuZ3RoOyArK2kpCisgICAgICAgICAgICByb290Tm9kZUVk
Z2VzW2ldLnRvLmdjUm9vdCA9IHRydWU7CisKKyAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0
b3IuSGVhcFNuYXBzaG90KHJvb3ROb2RlLCBub2Rlcywgbm9kZU1hcCk7CisgICAgfQorCisgICAg
Ly8gUHVibGljCisKKyAgICBnZXQgcm9vdE5vZGUoKSB7IHJldHVybiB0aGlzLl9yb290Tm9kZTsg
fQorICAgIGdldCBub2RlcygpIHsgcmV0dXJuIHRoaXMuX25vZGVzOyB9CisgICAgZ2V0IGlkZW50
aWZpZXIoKSB7IHJldHVybiB0aGlzLl9pZGVudGlmaWVyOyB9CisgICAgZ2V0IGluc3RhbmNlcygp
IHsgcmV0dXJuIHRoaXMuX2luc3RhbmNlczsgfQorICAgIGdldCBjYXRlZ29yaWVzKCkgeyByZXR1
cm4gdGhpcy5fY2F0ZWdvcmllczsgfQorICAgIGdldCB0b3RhbFNpemUoKSB7IHJldHVybiB0aGlz
Ll90b3RhbFNpemU7IH0KKyAgICBnZXQgdG90YWxPYmplY3RDb3VudCgpIHsgcmV0dXJuIHRoaXMu
X3RvdGFsT2JqZWN0Q291bnQ7IH0KKworICAgIGluc3RhbmNlc1dpdGhDbGFzc05hbWUoY2xhc3NO
YW1lKQorICAgIHsKKyAgICAgICAgbGV0IHJlc3VsdHMgPSBbXTsKKyAgICAgICAgZm9yIChsZXQg
aSA9IDA7IGkgPCB0aGlzLl9pbnN0YW5jZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGxl
dCBjZWxsID0gdGhpcy5faW5zdGFuY2VzW2ldOworICAgICAgICAgICAgaWYgKGNlbGwuY2xhc3NO
YW1lID09PSBjbGFzc05hbWUpCisgICAgICAgICAgICAgICAgcmVzdWx0cy5wdXNoKGNlbGwpOwor
ICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHRzOworICAgIH0KKworICAgIG5vZGVXaXRo
T2JqZWN0SWRlbnRpZmllcihpZCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9ub2RlTWFw
LmdldChpZCk7CisgICAgfQorfTsKKworV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdC5fbmV4dEF2
YWlsYWJsZVNuYXBzaG90SWRlbnRpZmllciA9IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9IZWFwT2JzZXJ2ZXIuanMgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvSGVhcFNuYXBzaG90RWRnZS5qcwpz
aW1pbGFyaXR5IGluZGV4IDcxJQpjb3B5IGZyb20gU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvUHJvdG9jb2wvSGVhcE9ic2VydmVyLmpzCmNvcHkgdG8gU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0hlYXBTbmFwc2hvdEVkZ2UuanMKaW5kZXggZjA0
YjMwMC4uYmYyYzc5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvUHJvdG9jb2wvSGVhcE9ic2VydmVyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL01vZGVscy9IZWFwU25hcHNob3RFZGdlLmpzCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMywxMiArMjMsMjAgQEAKICAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi1XZWJJbnNwZWN0b3IuSGVh
cE9ic2VydmVyID0gY2xhc3MgSGVhcE9ic2VydmVyCitXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90
RWRnZSA9IGNsYXNzIEhlYXBTbmFwc2hvdEVkZ2UKIHsKLSAgICAvLyBFdmVudHMgZGVmaW5lZCBi
eSB0aGUgIkhlYXAiIGRvbWFpbi4KLQotICAgIGdhcmJhZ2VDb2xsZWN0ZWQoY29sbGVjdGlvbikK
KyAgICBjb25zdHJ1Y3Rvcihmcm9tLCB0bywgdHlwZSwgZGF0YSkKICAgICB7Ci0gICAgICAgIFdl
Ykluc3BlY3Rvci5oZWFwTWFuYWdlci5nYXJiYWdlQ29sbGVjdGVkKGNvbGxlY3Rpb24pOworICAg
ICAgICB0aGlzLmZyb20gPSBmcm9tOworICAgICAgICB0aGlzLnRvID0gdG87CisgICAgICAgIHRo
aXMudHlwZSA9IHR5cGU7CisgICAgICAgIHRoaXMuZGF0YSA9IGRhdGE7CiAgICAgfQogfTsKKwor
V2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdEVkZ2UuRWRnZVR5cGUgPSB7CisgICAgSW50ZXJuYWw6
ICJJbnRlcm5hbCIsICAgICAgIC8vIE5vIGRhdGEuCisgICAgUHJvcGVydHk6ICJQcm9wZXJ0eSIs
ICAgICAgIC8vIGRhdGEgaXMgc3RyaW5nIHByb3BlcnR5IG5hbWUuCisgICAgSW5kZXg6ICJJbmRl
eCIsICAgICAgICAgICAgIC8vIGRhdGEgaXMgbnVtZXJpYyBpbmRleC4KKyAgICBWYXJpYWJsZTog
IlZhcmlhYmxlIiwgICAgICAgLy8gZGF0YSBpcyBzdHJpbmcgdmFyaWFibGUgbmFtZS4KK307CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9I
ZWFwT2JzZXJ2ZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2Rl
bHMvSGVhcFNuYXBzaG90Tm9kZS5qcwpzaW1pbGFyaXR5IGluZGV4IDc3JQpjb3B5IGZyb20gU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvSGVhcE9ic2VydmVyLmpz
CmNvcHkgdG8gU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0hlYXBT
bmFwc2hvdE5vZGUuanMKaW5kZXggZjA0YjMwMC4uODYyYWZhYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvSGVhcE9ic2VydmVyLmpzCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9IZWFwU25hcHNo
b3ROb2RlLmpzCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0yMywxMiArMjMsMTYgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
ICAqLwogCi1XZWJJbnNwZWN0b3IuSGVhcE9ic2VydmVyID0gY2xhc3MgSGVhcE9ic2VydmVyCitX
ZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90Tm9kZSA9IGNsYXNzIEhlYXBTbmFwc2hvdE5vZGUKIHsK
LSAgICAvLyBFdmVudHMgZGVmaW5lZCBieSB0aGUgIkhlYXAiIGRvbWFpbi4KLQotICAgIGdhcmJh
Z2VDb2xsZWN0ZWQoY29sbGVjdGlvbikKKyAgICBjb25zdHJ1Y3RvcihpZGVudGlmaWVyLCBjbGFz
c05hbWUsIHNpemUsIGludGVybmFsKQogICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLmhlYXBN
YW5hZ2VyLmdhcmJhZ2VDb2xsZWN0ZWQoY29sbGVjdGlvbik7CisgICAgICAgIHRoaXMuaWQgPSBp
ZGVudGlmaWVyOworICAgICAgICB0aGlzLmNsYXNzTmFtZSA9IGNsYXNzTmFtZTsKKyAgICAgICAg
dGhpcy5zaXplID0gc2l6ZTsgCisgICAgICAgIHRoaXMuaW50ZXJuYWwgPSBpbnRlcm5hbDsKKyAg
ICAgICAgdGhpcy5nY1Jvb3QgPSBmYWxzZTsKKyAgICAgICAgdGhpcy5vdXRnb2luZ0VkZ2VzID0g
W107CisgICAgICAgIHRoaXMuaW5jb21pbmdFZGdlcyA9IFtdOwogICAgIH0KIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9IZWFwT2Jz
ZXJ2ZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9I
ZWFwT2JzZXJ2ZXIuanMKaW5kZXggZjA0YjMwMC4uYWUzMTBkNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvSGVhcE9ic2VydmVyLmpzCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0hlYXBPYnNl
cnZlci5qcwpAQCAtMzEsNCArMzEsMjAgQEAgV2ViSW5zcGVjdG9yLkhlYXBPYnNlcnZlciA9IGNs
YXNzIEhlYXBPYnNlcnZlcgogICAgIHsKICAgICAgICAgV2ViSW5zcGVjdG9yLmhlYXBNYW5hZ2Vy
LmdhcmJhZ2VDb2xsZWN0ZWQoY29sbGVjdGlvbik7CiAgICAgfQorCisgICAgdHJhY2tpbmdTdGFy
dCh0aW1lc3RhbXAsIHNuYXBzaG90RGF0YSkKKyAgICB7CisgICAgICAgIGxldCBwYXlsb2FkID0g
SlNPTi5wYXJzZShzbmFwc2hvdERhdGEpOworICAgICAgICBsZXQgc25hcHNob3QgPSBXZWJJbnNw
ZWN0b3IuSGVhcFNuYXBzaG90LmZyb21QYXlsb2FkKHBheWxvYWQpOworICAgICAgICAvLyBGSVhN
RTogSGVhcCBBbGxvY2F0aW9ucyBUaW1lbGluZS4KKyAgICAgICAgLy8gV2ViSW5zcGVjdG9yLnRp
bWVsaW5lTWFuYWdlci5oZWFwVHJhY2tpbmdTdGFydGVkKHRpbWVzdGFtcCwgc25hcHNob3QpOwor
ICAgIH0KKworICAgIHRyYWNraW5nQ29tcGxldGUodGltZXN0YW1wLCBzbmFwc2hvdERhdGEpCisg
ICAgeworICAgICAgICBsZXQgcGF5bG9hZCA9IEpTT04ucGFyc2Uoc25hcHNob3REYXRhKTsKKyAg
ICAgICAgbGV0IHNuYXBzaG90ID0gV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdC5mcm9tUGF5bG9h
ZChwYXlsb2FkKTsKKyAgICAgICAgLy8gRklYTUU6IEhlYXAgQWxsb2NhdGlvbnMgVGltZWxpbmUu
CisgICAgICAgIC8vIFdlYkluc3BlY3Rvci50aW1lbGluZU1hbmFnZXIuaGVhcFRyYWNraW5nQ29t
cGxldGVkKHRpbWVzdGFtcCwgc25hcHNob3QpOworICAgIH0KIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0Lmh0bWwgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0Lmh0bWwKaW5kZXggZWEzYTE2My4uMDlhYmNiZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC5odG1s
CisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QuaHRtbApAQCAt
MTEyLDYgKzExMiw5IEBACiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9GcmFtZS5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9HYXJiYWdlQ29sbGVjdGlvbi5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9HZW9tZXRyeS5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdCBzcmM9Ik1vZGVscy9IZWFwU25hcHNob3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSJNb2RlbHMvSGVhcFNuYXBzaG90RWRnZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9Ik1vZGVscy9IZWFwU25hcHNob3ROb2RlLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0
IHNyYz0iTW9kZWxzL0luZGV4ZWREYXRhYmFzZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBz
cmM9Ik1vZGVscy9JbmRleGVkRGF0YWJhc2VPYmplY3RTdG9yZS5qcyI+PC9zY3JpcHQ+CiAgICAg
PHNjcmlwdCBzcmM9Ik1vZGVscy9JbmRleGVkRGF0YWJhc2VPYmplY3RTdG9yZUluZGV4LmpzIj48
L3NjcmlwdD4KQEAgLTExOSw2ICsxMjIsOSBAQAogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvTGF5
b3V0SW5zdHJ1bWVudC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9MYXlv
dXRUaW1lbGluZVJlY29yZC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9M
YXp5U291cmNlQ29kZUxvY2F0aW9uLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iTW9k
ZWxzL01lbW9yeUNhdGVnb3J5LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iTW9kZWxz
L01lbW9yeUluc3RydW1lbnQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMv
TWVtb3J5VGltZWxpbmVSZWNvcmQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2Rl
bHMvTmV0d29ya0luc3RydW1lbnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2Rl
bHMvTmV0d29ya1RpbWVsaW5lLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxz
L09iamVjdFByZXZpZXcuanMiPjwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>273354</attachid>
            <date>2016-03-08 15:40:35 -0800</date>
            <delta_ts>2016-03-08 17:59:32 -0800</delta_ts>
            <desc>[PATCH] For Bots (Part 1 and 2)</desc>
            <filename>for-bots-2.patch</filename>
            <type>text/plain</type>
            <size>30508</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhODlkNmRhLi45NTg3ZDI4MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE2LTAz
LTA4ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2Vi
IEluc3BlY3RvcjogQWRkIEhlYXAgZG9tYWluIHN0YXJ0L3N0b3AgdHJhY2tpbmcgY29tbWFuZHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NTE5MAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVj
dG9yL2hlYXAvdHJhY2tpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0
b3IvaGVhcC90cmFja2luZy5odG1sOiBBZGRlZC4KKworMjAxNi0wMy0wOCAgSm9zZXBoIFBlY29y
YXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IEFkZCBh
IHdheSB0byBjcmVhdGUgYSBIZWFwIFNuYXBzaG90CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTUxODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9oZWFwL3NuYXBzaG90LWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2hlYXAvc25hcHNob3QuaHRtbDogQWRk
ZWQuCisKIDIwMTYtMDMtMDggIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAK
ICAgICAgICAgU2tpcCBzdmcvYW5pbWF0aW9ucy9hbmltYXRlLW1hcmtlci1vcmllbnQtZnJvbS1h
bmdsZS10by1hdXRvc3RhcnRyZXZlcnNlLmh0bWwgb24gaW9zLXNpbXVsYXRvcgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2hlYXAvc25hcHNob3QtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2hlYXAvc25hcHNob3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc3ODUxNGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvaGVhcC9zbmFwc2hvdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
MSBAQAorVGVzdCBmb3IgdGhlIEhlYXAuc25hcHNob3QgY29tbWFuZC4KKworCis9PSBSdW5uaW5n
IHRlc3Qgc3VpdGU6IEhlYXAuc25hcHNob3QKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBUcmlnZ2Vy
U25hcHNob3QKK1BBU1M6IFNob3VsZCBub3QgaGF2ZSBhbiBlcnJvciBjcmVhdGluZyBhIHNuYXBz
aG90LgorUEFTUzogU25hcHNob3Qgc2l6ZSBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIDFrYi4KK1BB
U1M6IFNuYXBzaG90IG9iamVjdCBjb3VudCBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIDEwMC4KK1BB
U1M6IFNuYXBzaG90IHNob3VsZCBpbmNsdWRlIGEgY2xhc3MgY2F0ZWdvcnkgZm9yICdXaW5kb3cn
LgorUEFTUzogU25hcHNob3cgc2hvdWxkIGluY2x1ZGUgYXQgbGVhc3Qgb25lICdXaW5kb3cnIGlu
c3RhbmNlLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvaGVhcC9zbmFwc2hv
dC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2hlYXAvc25hcHNob3QuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZDdhZDM5Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2hlYXAvc25hcHNob3QuaHRtbApAQCAtMCwwICsxLDM0IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0
cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JU
ZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIkhlYXAuc25hcHNob3QiKTsKKworICAgIHN1aXRlLmFkZFRl
c3RDYXNlKHsKKyAgICAgICAgbmFtZTogIlRyaWdnZXJTbmFwc2hvdCIsCisgICAgICAgIGRlc2Ny
aXB0aW9uOiAiQ2FsbGluZyBIZWFwLnNuYXBzaG90IHNob3VsZCBjcmVhdGUgYSBoZWFwIHNuYXBz
aG90LiIsCisgICAgICAgIHRlc3Q6IChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgICAg
IEhlYXBBZ2VudC5zbmFwc2hvdCgoZXJyb3IsIHRpbWVzdGFtcCwgc25hcHNob3RTdHJpbmdEYXRh
KSA9PiB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KCFlcnJvciwg
IlNob3VsZCBub3QgaGF2ZSBhbiBlcnJvciBjcmVhdGluZyBhIHNuYXBzaG90LiIpOworICAgICAg
ICAgICAgICAgIGxldCBwYXlsb2FkID0gSlNPTi5wYXJzZShzbmFwc2hvdFN0cmluZ0RhdGEpOwor
ICAgICAgICAgICAgICAgIGxldCBzbmFwc2hvdCA9IFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3Qu
ZnJvbVBheWxvYWQocGF5bG9hZCk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBl
Y3RUaGF0KHNuYXBzaG90LnRvdGFsU2l6ZSA+IDEwMjQsICJTbmFwc2hvdCBzaXplIHNob3VsZCBi
ZSBncmVhdGVyIHRoYW4gMWtiLiIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhw
ZWN0VGhhdChzbmFwc2hvdC50b3RhbE9iamVjdENvdW50ID4gMTAwLCAiU25hcHNob3Qgb2JqZWN0
IGNvdW50IHNob3VsZCBiZSBncmVhdGVyIHRoYW4gMTAwLiIpOworICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuZXhwZWN0VGhhdChzbmFwc2hvdC5jYXRlZ29yaWVzLmdldCgiV2luZG93Iiks
ICJTbmFwc2hvdCBzaG91bGQgaW5jbHVkZSBhIGNsYXNzIGNhdGVnb3J5IGZvciAnV2luZG93Jy4i
KTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoc25hcHNob3QuaW5z
dGFuY2VzV2l0aENsYXNzTmFtZSgiV2luZG93IikubGVuZ3RoID4gMCwgIlNuYXBzaG93IHNob3Vs
ZCBpbmNsdWRlIGF0IGxlYXN0IG9uZSAnV2luZG93JyBpbnN0YW5jZS4iKTsKKyAgICAgICAgICAg
ICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIH0pOworCisg
ICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPlRlc3QgZm9yIHRoZSBIZWFwLnNuYXBzaG90
IGNvbW1hbmQuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2hlYXAvdHJhY2tpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2hlYXAvdHJhY2tpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjI3ZDA0OWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvaGVhcC90cmFja2luZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhh
dCBIZWFwLnN0YXJ0VHJhY2tpbmcgYW5kIEhlYXAuc3RvcFRyYWNraW5nIHRyaWdnZXIgdHJhY2tp
bmdTdGFydCBhbmQgdHJhY2tpbmdDb21wbGV0ZSBldmVudHMgd2l0aCBleHBlY3RlZCBkYXRhLgor
CisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogSGVhcC5zdGFydFRyYWNraW5nIGFuZCBIZWFwLnN0
b3BUcmFja2luZworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFN0YXJ0QW5kU3RvcFRyYWNraW5nSW5j
bHVkZVNuYXBzaG90cworSGVhcC50cmFja2luZ1N0YXJ0CitQQVNTOiBTaG91bGQgaGF2ZSBhIHRp
bWVzdGFtcCB3aGVuIHN0YXJ0aW5nLgorUEFTUzogU2hvdWxkIGhhdmUgc25hcHNob3REYXRhIHdo
ZW4gc3RhcnRpbmcuCitIZWFwLnRyYWNraW5nQ29tcGxldGUKK1BBU1M6IFNob3VsZCBoYXZlIGEg
dGltZXN0YW1wIHdoZW4gc3RvcHBpbmcuCitQQVNTOiBTaG91bGQgaGF2ZSBzbmFwc2hvdERhdGEg
d2hlbiBzdG9wcGluZy4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2hlYXAv
dHJhY2tpbmcuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9oZWFwL3RyYWNraW5nLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjA1YjNjYgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9oZWFwL3RyYWNraW5nLmh0bWwKQEAgLTAsMCAr
MSwzOCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBsZXQgc3VpdGUgPSBQcm90
b2NvbFRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiSGVhcC5zdGFydFRyYWNraW5nIGFuZCBIZWFwLnN0
b3BUcmFja2luZyIpOworCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAi
U3RhcnRBbmRTdG9wVHJhY2tpbmdJbmNsdWRlU25hcHNob3RzIiwKKyAgICAgICAgdGVzdDogZnVu
Y3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICBJbnNwZWN0b3JQcm90b2NvbC5h
d2FpdEV2ZW50KHtldmVudDogIkhlYXAudHJhY2tpbmdTdGFydCJ9KS50aGVuKChtZXNzYWdlT2Jq
ZWN0KSA9PiB7CisgICAgICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiSGVhcC50cmFja2lu
Z1N0YXJ0Iik7CisgICAgICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmV4cGVjdFRoYXQodHlwZW9m
IG1lc3NhZ2VPYmplY3QucGFyYW1zLnRpbWVzdGFtcCA9PT0gIm51bWJlciIsICJTaG91bGQgaGF2
ZSBhIHRpbWVzdGFtcCB3aGVuIHN0YXJ0aW5nLiIpOworICAgICAgICAgICAgICAgIFByb3RvY29s
VGVzdC5leHBlY3RUaGF0KHR5cGVvZiBtZXNzYWdlT2JqZWN0LnBhcmFtcy5zbmFwc2hvdERhdGEg
PT09ICJzdHJpbmciLCAiU2hvdWxkIGhhdmUgc25hcHNob3REYXRhIHdoZW4gc3RhcnRpbmcuIik7
CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yUHJvdG9jb2wuc2VuZENvbW1hbmQoIkhlYXAuc3Rv
cFRyYWNraW5nIiwge30pOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIEluc3BlY3Rv
clByb3RvY29sLmF3YWl0RXZlbnQoe2V2ZW50OiAiSGVhcC50cmFja2luZ0NvbXBsZXRlIn0pLnRo
ZW4oKG1lc3NhZ2VPYmplY3QpID0+IHsKKyAgICAgICAgICAgICAgICBQcm90b2NvbFRlc3QubG9n
KCJIZWFwLnRyYWNraW5nQ29tcGxldGUiKTsKKyAgICAgICAgICAgICAgICBQcm90b2NvbFRlc3Qu
ZXhwZWN0VGhhdCh0eXBlb2YgbWVzc2FnZU9iamVjdC5wYXJhbXMudGltZXN0YW1wID09PSAibnVt
YmVyIiwgIlNob3VsZCBoYXZlIGEgdGltZXN0YW1wIHdoZW4gc3RvcHBpbmcuIik7CisgICAgICAg
ICAgICAgICAgUHJvdG9jb2xUZXN0LmV4cGVjdFRoYXQodHlwZW9mIG1lc3NhZ2VPYmplY3QucGFy
YW1zLnNuYXBzaG90RGF0YSA9PT0gInN0cmluZyIsICJTaG91bGQgaGF2ZSBzbmFwc2hvdERhdGEg
d2hlbiBzdG9wcGluZy4iKTsKKyAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAg
ICB9KTsKKworICAgICAgICAgICAgSW5zcGVjdG9yUHJvdG9jb2wuc2VuZENvbW1hbmQoIkhlYXAu
c3RhcnRUcmFja2luZyIsIHt9KTsKKyAgICAgICAgfQorICAgIH0pOworCisgICAgc3VpdGUucnVu
VGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9h
ZD0icnVuVGVzdCgpIj4KKzxwPlRlc3RzIHRoYXQgSGVhcC5zdGFydFRyYWNraW5nIGFuZCBIZWFw
LnN0b3BUcmFja2luZyB0cmlnZ2VyIHRyYWNraW5nU3RhcnQgYW5kIHRyYWNraW5nQ29tcGxldGUg
ZXZlbnRzIHdpdGggZXhwZWN0ZWQgZGF0YS48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwppbmRleCAyZWUwODAwLi41MjdjNjAwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxNi0wMy0wOCAgSm9zZXBoIFBlY29yYXJvICA8cGVj
b3Jhcm9AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IEFkZCBIZWFwIGRvbWFp
biBzdGFydC9zdG9wIHRyYWNraW5nIGNvbW1hbmRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTUxOTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySGVhcEFn
ZW50LmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6SW5zcGVjdG9ySGVhcEFnZW50Ojp3aWxsRGVz
dHJveUZyb250ZW5kQW5kQmFja2VuZCk6CisgICAgICAgIChJbnNwZWN0b3I6Okluc3BlY3Rvckhl
YXBBZ2VudDo6c3RhcnRUcmFja2luZyk6CisgICAgICAgIChJbnNwZWN0b3I6Okluc3BlY3Rvckhl
YXBBZ2VudDo6c3RvcFRyYWNraW5nKToKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvckhlYXBBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9wcm90b2NvbC9IZWFwLmpzb246
CisKKzIwMTYtMDMtMDggIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBBZGQgYSB3YXkgdG8gY3JlYXRlIGEgSGVhcCBTbmFwc2hv
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1MTg4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvckhlYXBBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9w
cm90b2NvbC9IZWFwLmpzb246CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JI
ZWFwQWdlbnQuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpJbnNwZWN0b3JIZWFwQWdlbnQ6OnNu
YXBzaG90KToKKyAgICAgICAgVGFrZSBhIGhlYXAgc25hcHNob3QgYW5kIHJldHVybiB0aGUgSlNP
TiBzdHJpbmcgcmVzdWx0LgorCisgICAgICAgICogaW5zcGVjdG9yL3Byb3RvY29sL0RlYnVnZ2Vy
Lmpzb246CisgICAgICAgIFJlbW92ZSB1bnVzZWQgb3B0aW9uYWwgaW5mZXJyZWROYW1lLiBPdXIg
ZGlzcGxheU5hbWUgd291bGQgYmUgaW5mZXJyZWQuCisKIDIwMTYtMDMtMDggIE1pY2hhZWwgU2Fi
b2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CiAKICAgICAgICAgW0VTNl0gUmVndWxhciBFeHByZXNz
aW9uIGNhbm9uaWNhbGl6YXRpb24gdGFibGVzIGZvciBVbmljb2RlIG5lZWQgdG8gYmUgdXBkYXRl
ZCB0byB1c2UgVW5pY29kZSBDYXNlRm9sZGluZy50eHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckhlYXBBZ2VudC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JIZWFwQWdlbnQuY3Bw
CmluZGV4IDJjYmMzZjMuLjZiNDllYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckhlYXBBZ2VudC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySGVhcEFnZW50LmNwcApAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LCAyMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYs
NyArMjYsOSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkluc3BlY3RvckhlYXBB
Z2VudC5oIgogCisjaW5jbHVkZSAiSGVhcFByb2ZpbGVyLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9y
RW52aXJvbm1lbnQuaCIKKyNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVkZSAiVk0uaCIK
ICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9TdG9wd2F0Y2guaD4KQEAg
LTU0LDYgKzU2LDcgQEAgdm9pZCBJbnNwZWN0b3JIZWFwQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5k
QW5kQmFja2VuZChGcm9udGVuZFJvdXRlciosIEJhY2tlbmREaXMKIHZvaWQgSW5zcGVjdG9ySGVh
cEFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChEaXNjb25uZWN0UmVhc29uKQog
ewogICAgIEVycm9yU3RyaW5nIGlnbm9yZWQ7CisgICAgc3RvcFRyYWNraW5nKGlnbm9yZWQpOwog
ICAgIGRpc2FibGUoaWdub3JlZCk7CiB9CiAKQEAgLTc1LDYgKzc4LDggQEAgdm9pZCBJbnNwZWN0
b3JIZWFwQWdlbnQ6OmRpc2FibGUoRXJyb3JTdHJpbmcmKQogICAgIG1fZW5hYmxlZCA9IGZhbHNl
OwogCiAgICAgbV9lbnZpcm9ubWVudC52bSgpLmhlYXAucmVtb3ZlT2JzZXJ2ZXIodGhpcyk7CisK
KyAgICBjbGVhckhlYXBTbmFwc2hvdHMoKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JIZWFwQWdlbnQ6
OmdjKEVycm9yU3RyaW5nJikKQEAgLTg1LDYgKzkwLDU0IEBAIHZvaWQgSW5zcGVjdG9ySGVhcEFn
ZW50OjpnYyhFcnJvclN0cmluZyYpCiAgICAgdm0uaGVhcC5jb2xsZWN0QWxsR2FyYmFnZSgpOwog
fQogCit2b2lkIEluc3BlY3RvckhlYXBBZ2VudDo6c25hcHNob3QoRXJyb3JTdHJpbmcmLCBkb3Vi
bGUqIHRpbWVzdGFtcCwgU3RyaW5nKiBzbmFwc2hvdERhdGEpCit7CisgICAgVk0mIHZtID0gbV9l
bnZpcm9ubWVudC52bSgpOworICAgIEpTTG9ja0hvbGRlciBsb2NrKHZtKTsKKworICAgIEhlYXBT
bmFwc2hvdEJ1aWxkZXIgc25hcHNob3RCdWlsZGVyKHZtLmVuc3VyZUhlYXBQcm9maWxlcigpKTsK
KyAgICBzbmFwc2hvdEJ1aWxkZXIuYnVpbGRTbmFwc2hvdCgpOworCisgICAgKnRpbWVzdGFtcCA9
IG1fZW52aXJvbm1lbnQuZXhlY3V0aW9uU3RvcHdhdGNoKCktPmVsYXBzZWRUaW1lKCk7CisgICAg
KnNuYXBzaG90RGF0YSA9IHNuYXBzaG90QnVpbGRlci5qc29uKFsmXSAoY29uc3QgSGVhcFNuYXBz
aG90Tm9kZSYgbm9kZSkgeworICAgICAgICBpZiAoU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBub2Rl
LmNlbGwtPnN0cnVjdHVyZSh2bSkpIHsKKyAgICAgICAgICAgIGlmIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0ID0gc3RydWN0dXJlLT5nbG9iYWxPYmplY3QoKSkgeworICAgICAgICAgICAg
ICAgIGlmICghbV9lbnZpcm9ubWVudC5jYW5BY2Nlc3NJbnNwZWN0ZWRTY3JpcHRTdGF0ZShnbG9i
YWxPYmplY3QtPmdsb2JhbEV4ZWMoKSkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
KTsKK30KKwordm9pZCBJbnNwZWN0b3JIZWFwQWdlbnQ6OnN0YXJ0VHJhY2tpbmcoRXJyb3JTdHJp
bmcmIGVycm9yU3RyaW5nKQoreworICAgIGlmIChtX3RyYWNraW5nKQorICAgICAgICByZXR1cm47
CisKKyAgICBtX3RyYWNraW5nID0gdHJ1ZTsKKworICAgIGRvdWJsZSB0aW1lc3RhbXA7CisgICAg
U3RyaW5nIHNuYXBzaG90RGF0YTsKKyAgICBzbmFwc2hvdChlcnJvclN0cmluZywgJnRpbWVzdGFt
cCwgJnNuYXBzaG90RGF0YSk7CisKKyAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+dHJhY2tpbmdT
dGFydCh0aW1lc3RhbXAsIHNuYXBzaG90RGF0YSk7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySGVhcEFn
ZW50OjpzdG9wVHJhY2tpbmcoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nKQoreworICAgIGlmICgh
bV90cmFja2luZykKKyAgICAgICAgcmV0dXJuOworCisgICAgbV90cmFja2luZyA9IGZhbHNlOwor
CisgICAgZG91YmxlIHRpbWVzdGFtcDsKKyAgICBTdHJpbmcgc25hcHNob3REYXRhOworICAgIHNu
YXBzaG90KGVycm9yU3RyaW5nLCAmdGltZXN0YW1wLCAmc25hcHNob3REYXRhKTsKKworICAgIG1f
ZnJvbnRlbmREaXNwYXRjaGVyLT50cmFja2luZ0NvbXBsZXRlKHRpbWVzdGFtcCwgc25hcHNob3RE
YXRhKTsKK30KKwogc3RhdGljIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkhlYXA6OkdhcmJhZ2VDb2xs
ZWN0aW9uOjpUeXBlIHByb3RvY29sVHlwZUZvckhlYXBPcGVyYXRpb24oSGVhcE9wZXJhdGlvbiBv
cGVyYXRpb24pCiB7CiAgICAgc3dpdGNoIChvcGVyYXRpb24pIHsKQEAgLTEzNiw0ICsxODksMTAg
QEAgdm9pZCBJbnNwZWN0b3JIZWFwQWdlbnQ6OmRpZEdhcmJhZ2VDb2xsZWN0KEhlYXBPcGVyYXRp
b24gb3BlcmF0aW9uKQogICAgIG1fZ2NTdGFydFRpbWUgPSBOQU47CiB9CiAKK3ZvaWQgSW5zcGVj
dG9ySGVhcEFnZW50OjpjbGVhckhlYXBTbmFwc2hvdHMoKQoreworICAgIGlmIChIZWFwUHJvZmls
ZXIqIGhlYXBQcm9maWxlciA9IG1fZW52aXJvbm1lbnQudm0oKS5oZWFwUHJvZmlsZXIoKSkKKyAg
ICAgICAgaGVhcFByb2ZpbGVyLT5jbGVhclNuYXBzaG90cygpOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBJbnNwZWN0b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckhlYXBBZ2VudC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9ySGVhcEFnZW50LmgKaW5kZXggYjE5NzRlMy4uNGJhNjFmMSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9ySGVhcEFnZW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9ySGVhcEFnZW50LmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgSW5zcGVj
dG9ySGVhcEFnZW50X2gKICNkZWZpbmUgSW5zcGVjdG9ySGVhcEFnZW50X2gKIAorI2luY2x1ZGUg
IkhlYXBTbmFwc2hvdC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVycy5o
IgogI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kRGlzcGF0Y2hlcnMuaCIKICNpbmNsdWRlICJo
ZWFwL0hlYXBPYnNlcnZlci5oIgpAQCAtNTAsMTYgKzUxLDIzIEBAIHB1YmxpYzoKICAgICB2b2lk
IGVuYWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlzYWJsZShFcnJvclN0
cmluZyYpIG92ZXJyaWRlOwogICAgIHZvaWQgZ2MoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKKyAg
ICB2b2lkIHNuYXBzaG90KEVycm9yU3RyaW5nJiwgZG91YmxlKiB0aW1lc3RhbXAsIFN0cmluZyog
c25hcHNob3REYXRhKSBvdmVycmlkZTsKKyAgICB2b2lkIHN0YXJ0VHJhY2tpbmcoRXJyb3JTdHJp
bmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIHN0b3BUcmFja2luZyhFcnJvclN0cmluZyYpIG92ZXJy
aWRlOwogCiAgICAgLy8gSGVhcE9ic2VydmVyCiAgICAgdm9pZCB3aWxsR2FyYmFnZUNvbGxlY3Qo
KSBvdmVycmlkZTsKICAgICB2b2lkIGRpZEdhcmJhZ2VDb2xsZWN0KEpTQzo6SGVhcE9wZXJhdGlv
bikgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CisgICAgdm9pZCBjbGVhckhlYXBTbmFwc2hvdHMoKTsK
KwogICAgIHN0ZDo6dW5pcXVlX3B0cjxIZWFwRnJvbnRlbmREaXNwYXRjaGVyPiBtX2Zyb250ZW5k
RGlzcGF0Y2hlcjsKICAgICBSZWZQdHI8SGVhcEJhY2tlbmREaXNwYXRjaGVyPiBtX2JhY2tlbmRE
aXNwYXRjaGVyOwogICAgIEluc3BlY3RvckVudmlyb25tZW50JiBtX2Vudmlyb25tZW50OworCiAg
ICAgYm9vbCBtX2VuYWJsZWQgeyBmYWxzZSB9OworICAgIGJvb2wgbV90cmFja2luZyB7IGZhbHNl
IH07CiAgICAgZG91YmxlIG1fZ2NTdGFydFRpbWUgeyBOQU4gfTsKIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvRGVidWdnZXIuanNvbiBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvRGVidWdnZXIuanNvbgpp
bmRleCBkMGY5ZGMwLi40ZjFiZDk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL3Byb3RvY29sL0RlYnVnZ2VyLmpzb24KKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9wcm90b2NvbC9EZWJ1Z2dlci5qc29uCkBAIC02MCw3ICs2MCw2IEBACiAg
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJsb2NhdGlvbiIsICIkcmVmIjogIkxvY2F0aW9uIiwg
ImRlc2NyaXB0aW9uIjogIkxvY2F0aW9uIG9mIHRoZSBmdW5jdGlvbi4iIH0sCiAgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJuYW1lIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1
ZSwgImRlc2NyaXB0aW9uIjogIk5hbWUgb2YgdGhlIGZ1bmN0aW9uLiBOb3QgcHJlc2VudCBmb3Ig
YW5vbnltb3VzIGZ1bmN0aW9ucy4iIH0sCiAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJkaXNw
bGF5TmFtZSIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlv
biI6ICJEaXNwbGF5IG5hbWUgb2YgdGhlIGZ1bmN0aW9uKHNwZWNpZmllZCBpbiAnZGlzcGxheU5h
bWUnIHByb3BlcnR5IG9uIHRoZSBmdW5jdGlvbiBvYmplY3QpLiIgfSwKLSAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogImluZmVycmVkTmFtZSIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6
IHRydWUsICJkZXNjcmlwdGlvbiI6ICJOYW1lIG9mIHRoZSBmdW5jdGlvbiBpbmZlcnJlZCBmcm9t
IGl0cyBpbml0aWFsIGFzc2lnbm1lbnQuIiB9LAogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
c2NvcGVDaGFpbiIsICJ0eXBlIjogImFycmF5IiwgIm9wdGlvbmFsIjogdHJ1ZSwgIml0ZW1zIjog
eyAiJHJlZiI6ICJTY29wZSIgfSwgImRlc2NyaXB0aW9uIjogIlNjb3BlIGNoYWluIGZvciB0aGlz
IGNsb3N1cmUuIiB9CiAgICAgICAgICAgICBdLAogICAgICAgICAgICAgImRlc2NyaXB0aW9uIjog
IkluZm9ybWF0aW9uIGFib3V0IHRoZSBmdW5jdGlvbi4iCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0hlYXAuanNvbiBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvSGVhcC5qc29uCmluZGV4IGVhYzMzNDYuLjI4Yzhh
YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wv
SGVhcC5qc29uCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wv
SGVhcC5qc29uCkBAIC0xMSw2ICsxMSwxMSBAQAogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
c3RhcnRUaW1lIiwgInR5cGUiOiAibnVtYmVyIiB9LAogICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAiZW5kVGltZSIsICJ0eXBlIjogIm51bWJlciIgfQogICAgICAgICAgICAgXQorICAgICAgICB9
LAorICAgICAgICB7CisgICAgICAgICAgICAiaWQiOiAiSGVhcFNuYXBzaG90RGF0YSIsCisgICAg
ICAgICAgICAiZGVzY3JpcHRpb24iOiAiSmF2YVNjcmlwdENvcmUgSGVhcFNuYXBzaG90IEpTT04g
ZGF0YS4iLAorICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIgogICAgICAgICB9CiAgICAgXSwK
ICAgICAiY29tbWFuZHMiOiBbCkBAIC0yNSw2ICszMCwyMiBAQAogICAgICAgICB7CiAgICAgICAg
ICAgICAibmFtZSI6ICJnYyIsCiAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVHJpZ2dlciBh
IGZ1bGwgZ2FyYmFnZSBjb2xsZWN0aW9uLiIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAg
ICAgICAgIm5hbWUiOiAic25hcHNob3QiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRh
a2UgYSBoZWFwIHNuYXBzaG90LiIsCisgICAgICAgICAgICAicmV0dXJucyI6IFsKKyAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogInRpbWVzdGFtcCIsICJ0eXBlIjogIm51bWJlciIgfSwKKyAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogInNuYXBzaG90RGF0YSIsICIkcmVmIjogIkhlYXBTbmFwc2hv
dERhdGEiIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAg
ICAgIm5hbWUiOiAic3RhcnRUcmFja2luZyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAi
U3RhcnQgdHJhY2tpbmcgaGVhcCBjaGFuZ2VzLiBUaGlzIHdpbGwgcHJvZHVjZSBhIGB0cmFja2lu
Z1N0YXJ0YCBldmVudC4iCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1l
IjogInN0b3BUcmFja2luZyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiU3RvcCB0cmFj
a2luZyBoZWFwIGNoYW5nZXMuIFRoaXMgd2lsbCBwcm9kdWNlIGEgYHRyYWNraW5nQ29tcGxldGVg
IGV2ZW50LiIKICAgICAgICAgfQogICAgIF0sCiAgICAgImV2ZW50cyI6IFsKQEAgLTM0LDYgKzU1
LDIyIEBACiAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKICAgICAgICAgICAgICAgICB7ICJu
YW1lIjogImNvbGxlY3Rpb24iLCAidHlwZSI6ICJHYXJiYWdlQ29sbGVjdGlvbiIgfQogICAgICAg
ICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJ0cmFj
a2luZ1N0YXJ0IiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUcmFja2luZyBzdGFydGVk
LiIsCisgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1l
IjogInRpbWVzdGFtcCIsICJ0eXBlIjogIm51bWJlciIgfSwKKyAgICAgICAgICAgICAgICB7ICJu
YW1lIjogInNuYXBzaG90RGF0YSIsICIkcmVmIjogIkhlYXBTbmFwc2hvdERhdGEiLCAiZGVzY3Jp
cHRpb24iOiAiU25hcHNob3QgYXQgdGhlIHN0YXJ0IG9mIHRyYWNraW5nLiIgfQorICAgICAgICAg
ICAgXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJ0cmFja2lu
Z0NvbXBsZXRlIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUcmFja2luZyBzdG9wcGVk
LiIsCisgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1l
IjogInRpbWVzdGFtcCIsICJ0eXBlIjogIm51bWJlciIgfSwKKyAgICAgICAgICAgICAgICB7ICJu
YW1lIjogInNuYXBzaG90RGF0YSIsICIkcmVmIjogIkhlYXBTbmFwc2hvdERhdGEiLCAiZGVzY3Jp
cHRpb24iOiAiU25hcHNob3QgYXQgdGhlIGVuZCBvZiB0cmFja2luZy4iIH0KKyAgICAgICAgICAg
IF0KICAgICAgICAgfQogICAgIF0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDkwZWVk
ZWMuLjQxNDVjYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ4IEBACiAy
MDE2LTAzLTA4ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKKyAgICAg
ICAgV2ViIEluc3BlY3RvcjogQWRkIEhlYXAgZG9tYWluIHN0YXJ0L3N0b3AgdHJhY2tpbmcgY29t
bWFuZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1
NTE5MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
VXNlckludGVyZmFjZS9Qcm90b2NvbC9IZWFwT2JzZXJ2ZXIuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuSGVhcE9ic2VydmVyLnByb3RvdHlwZS50cmFja2luZ1N0YXJ0KToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5IZWFwT2JzZXJ2ZXIucHJvdG90eXBlLnRyYWNraW5nQ29tcGxldGUpOgorICAg
ICAgICBUbyBiZSB1c2VkIHdoZW4gd2UgaGF2ZSBhIEhlYXBBbGxvY2F0aW9uc0luc3RydW1lbnQg
YW5kIHRpbWVsaW5lLgorCisyMDE2LTAzLTA4ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0Bh
cHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogQWRkIGEgd2F5IHRvIGNyZWF0ZSBh
IEhlYXAgU25hcHNob3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1NTE4OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogVXNlckludGVyZmFjZS9NYWluLmh0bWw6CisgICAgICAgICogVXNlckludGVyZmFj
ZS9UZXN0Lmh0bWw6CisgICAgICAgIEFkZCBuZXcgTW9kZWwgcmVzb3VyY2VzLgorCisgICAgICAg
ICogVXNlckludGVyZmFjZS9Nb2RlbHMvSGVhcFNuYXBzaG90LmpzOiBBZGRlZC4KKyAgICAgICAg
KFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RDbGFzc0NhdGVnb3J5KToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5IZWFwU25hcHNob3QpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hv
dC5mcm9tUGF5bG9hZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90LnByb3Rv
dHlwZS5nZXQgcm9vdE5vZGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdC5w
cm90b3R5cGUuZ2V0IG5vZGVzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3Qu
cHJvdG90eXBlLmdldCBpZGVudGlmaWVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5IZWFwU25h
cHNob3QucHJvdG90eXBlLmdldCBpbnN0YW5jZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhl
YXBTbmFwc2hvdC5wcm90b3R5cGUuZ2V0IGNhdGVnb3JpZXMpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkhlYXBTbmFwc2hvdC5wcm90b3R5cGUuZ2V0IHRvdGFsU2l6ZSk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuSGVhcFNuYXBzaG90LnByb3RvdHlwZS5nZXQgdG90YWxPYmplY3RDb3VudCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90LnByb3RvdHlwZS5pbnN0YW5jZXNXaXRo
Q2xhc3NOYW1lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3QucHJvdG90eXBl
Lm5vZGVXaXRoT2JqZWN0SWRlbnRpZmllcik6CisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2Rl
bHMvSGVhcFNuYXBzaG90RWRnZS5qczogQWRkZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVh
cFNuYXBzaG90RWRnZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90RWRnZS5w
cm90b3R5cGUuc3RyaW5naWZ5KToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9IZWFw
U25hcHNob3ROb2RlLmpzOiBBZGRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5IZWFwU25hcHNo
b3ROb2RlKToKKyAgICAgICAgRGF0YSBzdHJ1Y3R1cmVzIGZvciBhIEhlYXBTbmFwc2hvdC4KKwor
MjAxNi0wMy0wOCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCiAgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IE1pc2NlbGxhbmVvdXMgaW5zcGVjdG9yIGZpeGVzIGZvciB0eXBv
cyAvIHN0YWxlIGNvZGUKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1NTE5MwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9CYXNlL1V0aWxpdGllcy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL0Jhc2UvVXRpbGl0aWVzLmpzCmluZGV4IDhlNDE4MTUuLjIwYmRiYmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvVXRpbGl0aWVzLmpz
CisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvVXRpbGl0aWVz
LmpzCkBAIC05NCw2ICs5NCwxNyBAQCBPYmplY3QuZGVmaW5lUHJvcGVydHkoT2JqZWN0LnByb3Rv
dHlwZSwgInZhbHVlRm9yQ2FzZUluc2Vuc2l0aXZlS2V5IiwKICAgICB9CiB9KTsKIAorT2JqZWN0
LmRlZmluZVByb3BlcnR5KE1hcCwgImZyb21PYmplY3QiLAoreworICAgIHZhbHVlOiBmdW5jdGlv
bihvYmplY3QpCisgICAgeworICAgICAgICBsZXQgbWFwID0gbmV3IE1hcDsKKyAgICAgICAgZm9y
IChsZXQga2V5IGluIG9iamVjdCkKKyAgICAgICAgICAgIG1hcC5zZXQoa2V5LCBvYmplY3Rba2V5
XSk7CisgICAgICAgIHJldHVybiBtYXA7CisgICAgfQorfSk7CisKIE9iamVjdC5kZWZpbmVQcm9w
ZXJ0eShNYXAucHJvdG90eXBlLCAidGFrZSIsCiB7CiAgICAgdmFsdWU6IGZ1bmN0aW9uKGtleSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uaHRt
bCBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbAppbmRleCBh
MzQ2ZTg0Li41ZDI0N2QyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9NYWluLmh0bWwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvTWFpbi5odG1sCkBAIC0zMDgsNiArMzA4LDkgQEAKICAgICA8c2NyaXB0IHNyYz0iTW9kZWxz
L0dhcmJhZ2VDb2xsZWN0aW9uLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxz
L0dlb21ldHJ5LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0dyYWRpZW50
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0hlYXBTbmFwc2hvdC5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9IZWFwU25hcHNob3RFZGdlLmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0hlYXBTbmFwc2hvdE5vZGUuanMiPjwv
c2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvSW5kZXhlZERhdGFiYXNlLmpzIj48L3Nj
cmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0luZGV4ZWREYXRhYmFzZU9iamVjdFN0b3Jl
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0luZGV4ZWREYXRhYmFzZU9i
amVjdFN0b3JlSW5kZXguanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0hlYXBTbmFwc2hvdC5qcyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9IZWFwU25hcHNob3QuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzhlNDE1MwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9IZWFwU25hcHNob3QuanMK
QEAgLTAsMCArMSwxNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90
Q2xhc3NDYXRlZ29yeSA9IGNsYXNzIEhlYXBTbmFwc2hvdENsYXNzQ2F0ZWdvcnkKK3sKKyAgICBj
b25zdHJ1Y3RvcihjbGFzc05hbWUpCisgICAgeworICAgICAgICB0aGlzLmNsYXNzTmFtZSA9IGNs
YXNzTmFtZTsKKyAgICAgICAgdGhpcy5zaXplID0gMDsKKyAgICAgICAgdGhpcy5jb3VudCA9IDA7
CisgICAgICAgIHRoaXMuaW50ZXJuYWxDb3VudCA9IDA7CisgICAgfQorfTsKKworV2ViSW5zcGVj
dG9yLkhlYXBTbmFwc2hvdCA9IGNsYXNzIEhlYXBTbmFwc2hvdCBleHRlbmRzIFdlYkluc3BlY3Rv
ci5PYmplY3QKK3sKKyAgICBjb25zdHJ1Y3Rvcihyb290Tm9kZSwgbm9kZXMsIG5vZGVNYXApCisg
ICAgeworICAgICAgICBzdXBlcigpOworCisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFyb290Tm9k
ZSB8fCByb290Tm9kZSBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3ROb2RlKTsK
KyAgICAgICAgY29uc29sZS5hc3NlcnQobm9kZXMgaW5zdGFuY2VvZiBBcnJheSk7CisKKyAgICAg
ICAgdGhpcy5fcm9vdE5vZGUgPSByb290Tm9kZTsKKyAgICAgICAgdGhpcy5fbm9kZXMgPSBub2Rl
czsKKyAgICAgICAgdGhpcy5fbm9kZU1hcCA9IG5vZGVNYXA7CisKKyAgICAgICAgdGhpcy5faWRl
bnRpZmllciA9IFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3QuX25leHRBdmFpbGFibGVTbmFwc2hv
dElkZW50aWZpZXIrKzsKKyAgICAgICAgdGhpcy5faW5zdGFuY2VzID0gbm9kZXM7CisKKyAgICAg
ICAgbGV0IGNhdGVnb3JpZXMgPSB7fTsKKyAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBub2Rl
cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgbGV0IHtjbGFzc05hbWUsIHNpemUsIGludGVy
bmFsfSA9IG5vZGVzW2ldOworCisgICAgICAgICAgICBsZXQgY2F0ZWdvcnkgPSBjYXRlZ29yaWVz
W2NsYXNzTmFtZV07CisgICAgICAgICAgICBpZiAoIWNhdGVnb3J5KQorICAgICAgICAgICAgICAg
IGNhdGVnb3J5ID0gY2F0ZWdvcmllc1tjbGFzc05hbWVdID0gbmV3IFdlYkluc3BlY3Rvci5IZWFw
U25hcHNob3RDbGFzc0NhdGVnb3J5KGNsYXNzTmFtZSk7CisKKyAgICAgICAgICAgIGNhdGVnb3J5
LnNpemUgKz0gc2l6ZTsKKyAgICAgICAgICAgIGNhdGVnb3J5LmNvdW50Kys7CisgICAgICAgICAg
ICBpZiAoaW50ZXJuYWwpCisgICAgICAgICAgICAgICAgY2F0ZWdvcnkuaW50ZXJuYWxDb3VudCsr
OworICAgICAgICB9CisgICAgICAgIHRoaXMuX2NhdGVnb3JpZXMgPSBNYXAuZnJvbU9iamVjdChj
YXRlZ29yaWVzKTsKKworICAgICAgICB0aGlzLl90b3RhbFNpemUgPSAwOworICAgICAgICB0aGlz
Ll90b3RhbE9iamVjdENvdW50ID0gMDsKKyAgICAgICAgZm9yIChsZXQge2NvdW50LCBzaXplfSBv
ZiB0aGlzLl9jYXRlZ29yaWVzLnZhbHVlcygpKSB7CisgICAgICAgICAgICB0aGlzLl90b3RhbFNp
emUgKz0gc2l6ZTsKKyAgICAgICAgICAgIHRoaXMuX3RvdGFsT2JqZWN0Q291bnQgKz0gY291bnQ7
CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBTdGF0aWMKKworICAgIHN0YXRpYyBmcm9tUGF5
bG9hZChwYXlsb2FkKQorICAgIHsKKyAgICAgICAgbGV0IHt2ZXJzaW9uLCBub2Rlcywgbm9kZUNs
YXNzTmFtZXMsIGVkZ2VzLCBlZGdlVHlwZXN9ID0gcGF5bG9hZDsKKyAgICAgICAgY29uc29sZS5h
c3NlcnQodmVyc2lvbiA9PT0gMSwgIk9ubHkga25vdyBob3cgdG8gaGFuZGxlIEphdmFTY3JpcHRD
b3JlIEhlYXAgU25hcHNob3QgRm9ybWF0IFZlcnNpb24gMSIpOworICAgICAgICBjb25zb2xlLmFz
c2VydChlZGdlVHlwZXMuZXZlcnkoKHR5cGUpID0+IHR5cGUgaW4gV2ViSW5zcGVjdG9yLkhlYXBT
bmFwc2hvdEVkZ2UuRWRnZVR5cGUpLCAiVW5leHBlY3RlZCBlZGdlIHR5cGUiLCBlZGdlVHlwZXMp
OworCisgICAgICAgIGxldCBub2RlTWFwID0gbmV3IE1hcDsKKworICAgICAgICAvLyBUdXJuIG5v
ZGVzIGludG8gcmVhbCBub2Rlcy4KKyAgICAgICAgZm9yIChsZXQgaSA9IDAsIGxlbmd0aCA9IG5v
ZGVzLmxlbmd0aDsgaSA8IGxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBsZXQgbm9kZVBheWxv
YWQgPSBub2Rlc1tpXTsKKyAgICAgICAgICAgIGxldCBpZCA9IG5vZGVQYXlsb2FkWzBdOworICAg
ICAgICAgICAgbGV0IHNpemUgPSBub2RlUGF5bG9hZFsxXTsKKyAgICAgICAgICAgIGxldCBjbGFz
c05hbWVJbmRleCA9IG5vZGVQYXlsb2FkWzJdOworICAgICAgICAgICAgbGV0IGludGVybmFsID0g
bm9kZVBheWxvYWRbM107CisKKyAgICAgICAgICAgIGxldCBub2RlID0gbmV3IFdlYkluc3BlY3Rv
ci5IZWFwU25hcHNob3ROb2RlKGlkLCBub2RlQ2xhc3NOYW1lc1tjbGFzc05hbWVJbmRleF0sIHNp
emUsICEhaW50ZXJuYWwpOworICAgICAgICAgICAgbm9kZU1hcC5zZXQoaWQsIG5vZGUpOworICAg
ICAgICAgICAgbm9kZXNbaV0gPSBub2RlOworICAgICAgICB9CisKKyAgICAgICAgLy8gVHVybiBl
ZGdlcyBpbnRvIHJlYWwgZWRnZXMgYW5kIHNldCB0aGVtIG9uIHRoZSBub2Rlcy4KKyAgICAgICAg
Zm9yIChsZXQgaSA9IDAsIGxlbmd0aCA9IGVkZ2VzLmxlbmd0aDsgaSA8IGxlbmd0aDsgKytpKSB7
CisgICAgICAgICAgICBsZXQgZWRnZVBheWxvYWQgPSBlZGdlc1tpXTsKKyAgICAgICAgICAgIGxl
dCBmcm9tSWRlbnRpZmllciA9IGVkZ2VQYXlsb2FkWzBdOworICAgICAgICAgICAgbGV0IHRvSWRl
bnRpZmllciA9IGVkZ2VQYXlsb2FkWzFdOworICAgICAgICAgICAgbGV0IGVkZ2VUeXBlSW5kZXgg
PSBlZGdlUGF5bG9hZFsyXTsKKyAgICAgICAgICAgIGxldCBkYXRhID0gZWRnZVBheWxvYWRbM107
CisKKyAgICAgICAgICAgIGxldCBmcm9tID0gbm9kZU1hcC5nZXQoZnJvbUlkZW50aWZpZXIpOwor
ICAgICAgICAgICAgbGV0IHRvID0gbm9kZU1hcC5nZXQodG9JZGVudGlmaWVyKTsKKyAgICAgICAg
ICAgIGxldCBlZGdlID0gbmV3IFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RFZGdlKGZyb20sIHRv
LCBlZGdlVHlwZXNbZWRnZVR5cGVJbmRleF0sIGRhdGEpOworICAgICAgICAgICAgZnJvbS5vdXRn
b2luZ0VkZ2VzLnB1c2goZWRnZSk7CisgICAgICAgICAgICB0by5pbmNvbWluZ0VkZ2VzLnB1c2go
ZWRnZSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBSb290IG5vZGUuCisgICAgICAgIGxldCBy
b290Tm9kZSA9IG5vZGVNYXAuZ2V0KDApOworICAgICAgICBjb25zb2xlLmFzc2VydChyb290Tm9k
ZSwgIk5vZGUgd2l0aCBpZGVudGlmaWVyIDAgaXMgdGhlIGFydGlmaWNpYWwgPHJvb3Q+IG5vZGUu
Iik7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHJvb3ROb2RlLm91dGdvaW5nRWRnZXMubGVuZ3Ro
ID4gMCwgIlRoaXMgaGFkIGJldHRlciBoYXZlIGNoaWxkcmVuISIpOworICAgICAgICBjb25zb2xl
LmFzc2VydChyb290Tm9kZS5pbmNvbWluZ0VkZ2VzLmxlbmd0aCA9PT0gMCwgIlRoaXMgaGFkIGJl
dHRlciBub3QgaGF2ZSBiYWNrIHJlZmVyZW5jZXMhIik7CisKKyAgICAgICAgLy8gTWFyayBHQyBy
b290cy4KKyAgICAgICAgbGV0IHJvb3ROb2RlRWRnZXMgPSByb290Tm9kZS5vdXRnb2luZ0VkZ2Vz
OworICAgICAgICBmb3IgKGxldCBpID0gMCwgbGVuZ3RoID0gcm9vdE5vZGVFZGdlcy5sZW5ndGg7
IGkgPCBsZW5ndGg7ICsraSkKKyAgICAgICAgICAgIHJvb3ROb2RlRWRnZXNbaV0udG8uZ2NSb290
ID0gdHJ1ZTsKKworICAgICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3Qo
cm9vdE5vZGUsIG5vZGVzLCBub2RlTWFwKTsKKyAgICB9CisKKyAgICAvLyBQdWJsaWMKKworICAg
IGdldCByb290Tm9kZSgpIHsgcmV0dXJuIHRoaXMuX3Jvb3ROb2RlOyB9CisgICAgZ2V0IG5vZGVz
KCkgeyByZXR1cm4gdGhpcy5fbm9kZXM7IH0KKyAgICBnZXQgaWRlbnRpZmllcigpIHsgcmV0dXJu
IHRoaXMuX2lkZW50aWZpZXI7IH0KKyAgICBnZXQgaW5zdGFuY2VzKCkgeyByZXR1cm4gdGhpcy5f
aW5zdGFuY2VzOyB9CisgICAgZ2V0IGNhdGVnb3JpZXMoKSB7IHJldHVybiB0aGlzLl9jYXRlZ29y
aWVzOyB9CisgICAgZ2V0IHRvdGFsU2l6ZSgpIHsgcmV0dXJuIHRoaXMuX3RvdGFsU2l6ZTsgfQor
ICAgIGdldCB0b3RhbE9iamVjdENvdW50KCkgeyByZXR1cm4gdGhpcy5fdG90YWxPYmplY3RDb3Vu
dDsgfQorCisgICAgaW5zdGFuY2VzV2l0aENsYXNzTmFtZShjbGFzc05hbWUpCisgICAgeworICAg
ICAgICBsZXQgcmVzdWx0cyA9IFtdOworICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMu
X2luc3RhbmNlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgbGV0IGNlbGwgPSB0aGlzLl9p
bnN0YW5jZXNbaV07CisgICAgICAgICAgICBpZiAoY2VsbC5jbGFzc05hbWUgPT09IGNsYXNzTmFt
ZSkKKyAgICAgICAgICAgICAgICByZXN1bHRzLnB1c2goY2VsbCk7CisgICAgICAgIH0KKyAgICAg
ICAgcmV0dXJuIHJlc3VsdHM7CisgICAgfQorCisgICAgbm9kZVdpdGhPYmplY3RJZGVudGlmaWVy
KGlkKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX25vZGVNYXAuZ2V0KGlkKTsKKyAgICB9
Cit9OworCitXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90Ll9uZXh0QXZhaWxhYmxlU25hcHNob3RJ
ZGVudGlmaWVyID0gMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1Byb3RvY29sL0hlYXBPYnNlcnZlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL01vZGVscy9IZWFwU25hcHNob3RFZGdlLmpzCnNpbWlsYXJpdHkgaW5kZXgg
NzElCmNvcHkgZnJvbSBTb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2Nv
bC9IZWFwT2JzZXJ2ZXIuanMKY29weSB0byBTb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Nb2RlbHMvSGVhcFNuYXBzaG90RWRnZS5qcwppbmRleCBmMDRiMzAwLi5iZjJjNzlhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9I
ZWFwT2JzZXJ2ZXIuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
TW9kZWxzL0hlYXBTbmFwc2hvdEVkZ2UuanMKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTIzLDEyICsyMywyMCBAQAogICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgogICovCiAKLVdlYkluc3BlY3Rvci5IZWFwT2JzZXJ2ZXIgPSBjbGFz
cyBIZWFwT2JzZXJ2ZXIKK1dlYkluc3BlY3Rvci5IZWFwU25hcHNob3RFZGdlID0gY2xhc3MgSGVh
cFNuYXBzaG90RWRnZQogewotICAgIC8vIEV2ZW50cyBkZWZpbmVkIGJ5IHRoZSAiSGVhcCIgZG9t
YWluLgotCi0gICAgZ2FyYmFnZUNvbGxlY3RlZChjb2xsZWN0aW9uKQorICAgIGNvbnN0cnVjdG9y
KGZyb20sIHRvLCB0eXBlLCBkYXRhKQogICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLmhlYXBN
YW5hZ2VyLmdhcmJhZ2VDb2xsZWN0ZWQoY29sbGVjdGlvbik7CisgICAgICAgIHRoaXMuZnJvbSA9
IGZyb207CisgICAgICAgIHRoaXMudG8gPSB0bzsKKyAgICAgICAgdGhpcy50eXBlID0gdHlwZTsK
KyAgICAgICAgdGhpcy5kYXRhID0gZGF0YTsKICAgICB9CiB9OworCitXZWJJbnNwZWN0b3IuSGVh
cFNuYXBzaG90RWRnZS5FZGdlVHlwZSA9IHsKKyAgICBJbnRlcm5hbDogIkludGVybmFsIiwgICAg
ICAgLy8gTm8gZGF0YS4KKyAgICBQcm9wZXJ0eTogIlByb3BlcnR5IiwgICAgICAgLy8gZGF0YSBp
cyBzdHJpbmcgcHJvcGVydHkgbmFtZS4KKyAgICBJbmRleDogIkluZGV4IiwgICAgICAgICAgICAg
Ly8gZGF0YSBpcyBudW1lcmljIGluZGV4LgorICAgIFZhcmlhYmxlOiAiVmFyaWFibGUiLCAgICAg
ICAvLyBkYXRhIGlzIHN0cmluZyB2YXJpYWJsZSBuYW1lLgorfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0hlYXBPYnNlcnZlci5qcyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9IZWFwU25hcHNob3RO
b2RlLmpzCnNpbWlsYXJpdHkgaW5kZXggNzclCmNvcHkgZnJvbSBTb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9IZWFwT2JzZXJ2ZXIuanMKY29weSB0byBTb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvSGVhcFNuYXBzaG90Tm9kZS5qcwpp
bmRleCBmMDRiMzAwLi44NjJhZmFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Qcm90b2NvbC9IZWFwT2JzZXJ2ZXIuanMKKysrIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0hlYXBTbmFwc2hvdE5vZGUuanMKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIzLDEyICsyMywx
NiBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLVdlYkluc3Bl
Y3Rvci5IZWFwT2JzZXJ2ZXIgPSBjbGFzcyBIZWFwT2JzZXJ2ZXIKK1dlYkluc3BlY3Rvci5IZWFw
U25hcHNob3ROb2RlID0gY2xhc3MgSGVhcFNuYXBzaG90Tm9kZQogewotICAgIC8vIEV2ZW50cyBk
ZWZpbmVkIGJ5IHRoZSAiSGVhcCIgZG9tYWluLgotCi0gICAgZ2FyYmFnZUNvbGxlY3RlZChjb2xs
ZWN0aW9uKQorICAgIGNvbnN0cnVjdG9yKGlkZW50aWZpZXIsIGNsYXNzTmFtZSwgc2l6ZSwgaW50
ZXJuYWwpCiAgICAgewotICAgICAgICBXZWJJbnNwZWN0b3IuaGVhcE1hbmFnZXIuZ2FyYmFnZUNv
bGxlY3RlZChjb2xsZWN0aW9uKTsKKyAgICAgICAgdGhpcy5pZCA9IGlkZW50aWZpZXI7CisgICAg
ICAgIHRoaXMuY2xhc3NOYW1lID0gY2xhc3NOYW1lOworICAgICAgICB0aGlzLnNpemUgPSBzaXpl
OyAKKyAgICAgICAgdGhpcy5pbnRlcm5hbCA9IGludGVybmFsOworICAgICAgICB0aGlzLmdjUm9v
dCA9IGZhbHNlOworICAgICAgICB0aGlzLm91dGdvaW5nRWRnZXMgPSBbXTsKKyAgICAgICAgdGhp
cy5pbmNvbWluZ0VkZ2VzID0gW107CiAgICAgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0hlYXBPYnNlcnZlci5qcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0hlYXBPYnNlcnZlci5qcwpp
bmRleCBmMDRiMzAwLi5hZTMxMGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Qcm90b2NvbC9IZWFwT2JzZXJ2ZXIuanMKKysrIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvSGVhcE9ic2VydmVyLmpzCkBAIC0zMSw0
ICszMSwyMCBAQCBXZWJJbnNwZWN0b3IuSGVhcE9ic2VydmVyID0gY2xhc3MgSGVhcE9ic2VydmVy
CiAgICAgewogICAgICAgICBXZWJJbnNwZWN0b3IuaGVhcE1hbmFnZXIuZ2FyYmFnZUNvbGxlY3Rl
ZChjb2xsZWN0aW9uKTsKICAgICB9CisKKyAgICB0cmFja2luZ1N0YXJ0KHRpbWVzdGFtcCwgc25h
cHNob3REYXRhKQorICAgIHsKKyAgICAgICAgbGV0IHBheWxvYWQgPSBKU09OLnBhcnNlKHNuYXBz
aG90RGF0YSk7CisgICAgICAgIGxldCBzbmFwc2hvdCA9IFdlYkluc3BlY3Rvci5IZWFwU25hcHNo
b3QuZnJvbVBheWxvYWQocGF5bG9hZCk7CisgICAgICAgIC8vIEZJWE1FOiBIZWFwIEFsbG9jYXRp
b25zIFRpbWVsaW5lLgorICAgICAgICAvLyBXZWJJbnNwZWN0b3IudGltZWxpbmVNYW5hZ2VyLmhl
YXBUcmFja2luZ1N0YXJ0ZWQodGltZXN0YW1wLCBzbmFwc2hvdCk7CisgICAgfQorCisgICAgdHJh
Y2tpbmdDb21wbGV0ZSh0aW1lc3RhbXAsIHNuYXBzaG90RGF0YSkKKyAgICB7CisgICAgICAgIGxl
dCBwYXlsb2FkID0gSlNPTi5wYXJzZShzbmFwc2hvdERhdGEpOworICAgICAgICBsZXQgc25hcHNo
b3QgPSBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90LmZyb21QYXlsb2FkKHBheWxvYWQpOworICAg
ICAgICAvLyBGSVhNRTogSGVhcCBBbGxvY2F0aW9ucyBUaW1lbGluZS4KKyAgICAgICAgLy8gV2Vi
SW5zcGVjdG9yLnRpbWVsaW5lTWFuYWdlci5oZWFwVHJhY2tpbmdDb21wbGV0ZWQodGltZXN0YW1w
LCBzbmFwc2hvdCk7CisgICAgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1Rlc3QuaHRtbCBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1Rlc3QuaHRtbAppbmRleCBlYTNhMTYzLi4wOWFiY2JkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0Lmh0bWwKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC5odG1sCkBAIC0xMTIsNiArMTEyLDkgQEAK
ICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0ZyYW1lLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0
IHNyYz0iTW9kZWxzL0dhcmJhZ2VDb2xsZWN0aW9uLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0
IHNyYz0iTW9kZWxzL0dlb21ldHJ5LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iTW9k
ZWxzL0hlYXBTbmFwc2hvdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9I
ZWFwU25hcHNob3RFZGdlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0hl
YXBTbmFwc2hvdE5vZGUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvSW5k
ZXhlZERhdGFiYXNlLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0luZGV4
ZWREYXRhYmFzZU9iamVjdFN0b3JlLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9k
ZWxzL0luZGV4ZWREYXRhYmFzZU9iamVjdFN0b3JlSW5kZXguanMiPjwvc2NyaXB0PgpAQCAtMTE5
LDYgKzEyMiw5IEBACiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9MYXlvdXRJbnN0cnVtZW50Lmpz
Ij48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0xheW91dFRpbWVsaW5lUmVjb3Jk
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0xhenlTb3VyY2VDb2RlTG9j
YXRpb24uanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvTWVtb3J5Q2F0ZWdv
cnkuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvTWVtb3J5SW5zdHJ1bWVu
dC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9NZW1vcnlUaW1lbGluZVJl
Y29yZC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9OZXR3b3JrSW5zdHJ1
bWVudC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9OZXR3b3JrVGltZWxp
bmUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvT2JqZWN0UHJldmlldy5q
cyI+PC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>273370</attachid>
            <date>2016-03-08 17:59:32 -0800</date>
            <delta_ts>2016-03-08 18:02:29 -0800</delta_ts>
            <desc>[PATCH] For Landing</desc>
            <filename>for-landing-3.patch</filename>
            <type>text/plain</type>
            <size>9853</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2MTBmMDc3Li5mOTdjOThhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTUgQEAKIDIwMTYtMDMt
MDggIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAorICAgICAgICBXZWIg
SW5zcGVjdG9yOiBBZGQgSGVhcCBkb21haW4gc3RhcnQvc3RvcCB0cmFja2luZyBjb21tYW5kcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1MTkwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgQnJpYW4gQnVyZy4KKworICAgICAgICAqIGluc3BlY3Rvci9o
ZWFwL3RyYWNraW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2hl
YXAvdHJhY2tpbmcuaHRtbDogQWRkZWQuCisKKzIwMTYtMDMtMDggIEpvc2VwaCBQZWNvcmFybyAg
PHBlY29yYXJvQGFwcGxlLmNvbT4KKwogICAgICAgICBXZWIgSW5zcGVjdG9yOiBBZGQgYSB3YXkg
dG8gY3JlYXRlIGEgSGVhcCBTbmFwc2hvdAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTU1MTg4CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9oZWFwL3RyYWNraW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9o
ZWFwL3RyYWNraW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi4yN2QwNDlmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2hl
YXAvdHJhY2tpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIHRoYXQgSGVh
cC5zdGFydFRyYWNraW5nIGFuZCBIZWFwLnN0b3BUcmFja2luZyB0cmlnZ2VyIHRyYWNraW5nU3Rh
cnQgYW5kIHRyYWNraW5nQ29tcGxldGUgZXZlbnRzIHdpdGggZXhwZWN0ZWQgZGF0YS4KKworCis9
PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IEhlYXAuc3RhcnRUcmFja2luZyBhbmQgSGVhcC5zdG9wVHJh
Y2tpbmcKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBTdGFydEFuZFN0b3BUcmFja2luZ0luY2x1ZGVT
bmFwc2hvdHMKK0hlYXAudHJhY2tpbmdTdGFydAorUEFTUzogU2hvdWxkIGhhdmUgYSB0aW1lc3Rh
bXAgd2hlbiBzdGFydGluZy4KK1BBU1M6IFNob3VsZCBoYXZlIHNuYXBzaG90RGF0YSB3aGVuIHN0
YXJ0aW5nLgorSGVhcC50cmFja2luZ0NvbXBsZXRlCitQQVNTOiBTaG91bGQgaGF2ZSBhIHRpbWVz
dGFtcCB3aGVuIHN0b3BwaW5nLgorUEFTUzogU2hvdWxkIGhhdmUgc25hcHNob3REYXRhIHdoZW4g
c3RvcHBpbmcuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9oZWFwL3RyYWNr
aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvaGVhcC90cmFja2luZy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIwNWIzY2IKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvaGVhcC90cmFja2luZy5odG1sCkBAIC0wLDAgKzEsMzgg
QEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpCit7CisgICAgbGV0IHN1aXRlID0gUHJvdG9jb2xU
ZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIkhlYXAuc3RhcnRUcmFja2luZyBhbmQgSGVhcC5zdG9wVHJh
Y2tpbmciKTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIlN0YXJ0
QW5kU3RvcFRyYWNraW5nSW5jbHVkZVNuYXBzaG90cyIsCisgICAgICAgIHRlc3Q6IGZ1bmN0aW9u
KHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgSW5zcGVjdG9yUHJvdG9jb2wuYXdhaXRF
dmVudCh7ZXZlbnQ6ICJIZWFwLnRyYWNraW5nU3RhcnQifSkudGhlbigobWVzc2FnZU9iamVjdCkg
PT4geworICAgICAgICAgICAgICAgIFByb3RvY29sVGVzdC5sb2coIkhlYXAudHJhY2tpbmdTdGFy
dCIpOworICAgICAgICAgICAgICAgIFByb3RvY29sVGVzdC5leHBlY3RUaGF0KHR5cGVvZiBtZXNz
YWdlT2JqZWN0LnBhcmFtcy50aW1lc3RhbXAgPT09ICJudW1iZXIiLCAiU2hvdWxkIGhhdmUgYSB0
aW1lc3RhbXAgd2hlbiBzdGFydGluZy4iKTsKKyAgICAgICAgICAgICAgICBQcm90b2NvbFRlc3Qu
ZXhwZWN0VGhhdCh0eXBlb2YgbWVzc2FnZU9iamVjdC5wYXJhbXMuc25hcHNob3REYXRhID09PSAi
c3RyaW5nIiwgIlNob3VsZCBoYXZlIHNuYXBzaG90RGF0YSB3aGVuIHN0YXJ0aW5nLiIpOworICAg
ICAgICAgICAgICAgIEluc3BlY3RvclByb3RvY29sLnNlbmRDb21tYW5kKCJIZWFwLnN0b3BUcmFj
a2luZyIsIHt9KTsKKyAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICBJbnNwZWN0b3JQcm90
b2NvbC5hd2FpdEV2ZW50KHtldmVudDogIkhlYXAudHJhY2tpbmdDb21wbGV0ZSJ9KS50aGVuKCht
ZXNzYWdlT2JqZWN0KSA9PiB7CisgICAgICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiSGVh
cC50cmFja2luZ0NvbXBsZXRlIik7CisgICAgICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmV4cGVj
dFRoYXQodHlwZW9mIG1lc3NhZ2VPYmplY3QucGFyYW1zLnRpbWVzdGFtcCA9PT0gIm51bWJlciIs
ICJTaG91bGQgaGF2ZSBhIHRpbWVzdGFtcCB3aGVuIHN0b3BwaW5nLiIpOworICAgICAgICAgICAg
ICAgIFByb3RvY29sVGVzdC5leHBlY3RUaGF0KHR5cGVvZiBtZXNzYWdlT2JqZWN0LnBhcmFtcy5z
bmFwc2hvdERhdGEgPT09ICJzdHJpbmciLCAiU2hvdWxkIGhhdmUgc25hcHNob3REYXRhIHdoZW4g
c3RvcHBpbmcuIik7CisgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgfSk7
CisKKyAgICAgICAgICAgIEluc3BlY3RvclByb3RvY29sLnNlbmRDb21tYW5kKCJIZWFwLnN0YXJ0
VHJhY2tpbmciLCB7fSk7CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIHN1aXRlLnJ1blRlc3RD
YXNlc0FuZEZpbmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1
blRlc3QoKSI+Cis8cD5UZXN0cyB0aGF0IEhlYXAuc3RhcnRUcmFja2luZyBhbmQgSGVhcC5zdG9w
VHJhY2tpbmcgdHJpZ2dlciB0cmFja2luZ1N0YXJ0IGFuZCB0cmFja2luZ0NvbXBsZXRlIGV2ZW50
cyB3aXRoIGV4cGVjdGVkIGRhdGEuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9D
aGFuZ2VMb2cKaW5kZXggMGE3YTg1NjYuLjM1MmI4OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxv
ZwpAQCAtMSw1ICsxLDE5IEBACiAyMDE2LTAzLTA4ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFy
b0BhcHBsZS5jb20+CiAKKyAgICAgICAgV2ViIEluc3BlY3RvcjogQWRkIEhlYXAgZG9tYWluIHN0
YXJ0L3N0b3AgdHJhY2tpbmcgY29tbWFuZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE1NTE5MAorCisgICAgICAgIFJldmlld2VkIGJ5IEJyaWFuIEJ1
cmcuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckhlYXBBZ2VudC5jcHA6
CisgICAgICAgIChJbnNwZWN0b3I6Okluc3BlY3RvckhlYXBBZ2VudDo6d2lsbERlc3Ryb3lGcm9u
dGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAoSW5zcGVjdG9yOjpJbnNwZWN0b3JIZWFwQWdlbnQ6
OnN0YXJ0VHJhY2tpbmcpOgorICAgICAgICAoSW5zcGVjdG9yOjpJbnNwZWN0b3JIZWFwQWdlbnQ6
OnN0b3BUcmFja2luZyk6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JIZWFw
QWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvdG9jb2wvSGVhcC5qc29uOgorCisyMDE2
LTAzLTA4ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKICAgICAgICAg
V2ViIEluc3BlY3RvcjogQWRkIGEgd2F5IHRvIGNyZWF0ZSBhIEhlYXAgU25hcHNob3QKICAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NTE4OAogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JI
ZWFwQWdlbnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9ySGVhcEFnZW50LmNwcAppbmRleCA1YmMzYzI0Li42YjQ5ZWExIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JIZWFwQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
ckhlYXBBZ2VudC5jcHAKQEAgLTU2LDYgKzU2LDcgQEAgdm9pZCBJbnNwZWN0b3JIZWFwQWdlbnQ6
OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChGcm9udGVuZFJvdXRlciosIEJhY2tlbmREaXMK
IHZvaWQgSW5zcGVjdG9ySGVhcEFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChE
aXNjb25uZWN0UmVhc29uKQogewogICAgIEVycm9yU3RyaW5nIGlnbm9yZWQ7CisgICAgc3RvcFRy
YWNraW5nKGlnbm9yZWQpOwogICAgIGRpc2FibGUoaWdub3JlZCk7CiB9CiAKQEAgLTEwOSw2ICsx
MTAsMzQgQEAgdm9pZCBJbnNwZWN0b3JIZWFwQWdlbnQ6OnNuYXBzaG90KEVycm9yU3RyaW5nJiwg
ZG91YmxlKiB0aW1lc3RhbXAsIFN0cmluZyogc25hcHMKICAgICB9KTsKIH0KIAordm9pZCBJbnNw
ZWN0b3JIZWFwQWdlbnQ6OnN0YXJ0VHJhY2tpbmcoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nKQor
eworICAgIGlmIChtX3RyYWNraW5nKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3RyYWNraW5n
ID0gdHJ1ZTsKKworICAgIGRvdWJsZSB0aW1lc3RhbXA7CisgICAgU3RyaW5nIHNuYXBzaG90RGF0
YTsKKyAgICBzbmFwc2hvdChlcnJvclN0cmluZywgJnRpbWVzdGFtcCwgJnNuYXBzaG90RGF0YSk7
CisKKyAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+dHJhY2tpbmdTdGFydCh0aW1lc3RhbXAsIHNu
YXBzaG90RGF0YSk7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySGVhcEFnZW50OjpzdG9wVHJhY2tpbmco
RXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nKQoreworICAgIGlmICghbV90cmFja2luZykKKyAgICAg
ICAgcmV0dXJuOworCisgICAgbV90cmFja2luZyA9IGZhbHNlOworCisgICAgZG91YmxlIHRpbWVz
dGFtcDsKKyAgICBTdHJpbmcgc25hcHNob3REYXRhOworICAgIHNuYXBzaG90KGVycm9yU3RyaW5n
LCAmdGltZXN0YW1wLCAmc25hcHNob3REYXRhKTsKKworICAgIG1fZnJvbnRlbmREaXNwYXRjaGVy
LT50cmFja2luZ0NvbXBsZXRlKHRpbWVzdGFtcCwgc25hcHNob3REYXRhKTsKK30KKwogc3RhdGlj
IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkhlYXA6OkdhcmJhZ2VDb2xsZWN0aW9uOjpUeXBlIHByb3Rv
Y29sVHlwZUZvckhlYXBPcGVyYXRpb24oSGVhcE9wZXJhdGlvbiBvcGVyYXRpb24pCiB7CiAgICAg
c3dpdGNoIChvcGVyYXRpb24pIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckhlYXBBZ2VudC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySGVhcEFnZW50LmgKaW5kZXggZTNkOGE3ZC4u
NGJhNjFmMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9ySGVhcEFnZW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9ySGVhcEFnZW50LmgKQEAgLTUyLDYgKzUyLDggQEAgcHVibGlj
OgogICAgIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOwogICAgIHZvaWQgZ2Mo
RXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2b2lkIHNuYXBzaG90KEVycm9yU3RyaW5nJiwg
ZG91YmxlKiB0aW1lc3RhbXAsIFN0cmluZyogc25hcHNob3REYXRhKSBvdmVycmlkZTsKKyAgICB2
b2lkIHN0YXJ0VHJhY2tpbmcoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIHN0b3BU
cmFja2luZyhFcnJvclN0cmluZyYpIG92ZXJyaWRlOwogCiAgICAgLy8gSGVhcE9ic2VydmVyCiAg
ICAgdm9pZCB3aWxsR2FyYmFnZUNvbGxlY3QoKSBvdmVycmlkZTsKQEAgLTY1LDYgKzY3LDcgQEAg
cHJpdmF0ZToKICAgICBJbnNwZWN0b3JFbnZpcm9ubWVudCYgbV9lbnZpcm9ubWVudDsKIAogICAg
IGJvb2wgbV9lbmFibGVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1fdHJhY2tpbmcgeyBmYWxzZSB9
OwogICAgIGRvdWJsZSBtX2djU3RhcnRUaW1lIHsgTkFOIH07CiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0hlYXAuanNvbiBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvSGVhcC5qc29uCmluZGV4IDBlMmJh
ZTcuLjI4YzhhYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
cHJvdG9jb2wvSGVhcC5qc29uCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
cHJvdG9jb2wvSGVhcC5qc29uCkBAIC0zOCw2ICszOCwxNCBAQAogICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAidGltZXN0YW1wIiwgInR5cGUiOiAibnVtYmVyIiB9LAogICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAic25hcHNob3REYXRhIiwgIiRyZWYiOiAiSGVhcFNuYXBzaG90RGF0YSIgfQog
ICAgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6
ICJzdGFydFRyYWNraW5nIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJTdGFydCB0cmFj
a2luZyBoZWFwIGNoYW5nZXMuIFRoaXMgd2lsbCBwcm9kdWNlIGEgYHRyYWNraW5nU3RhcnRgIGV2
ZW50LiIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAic3RvcFRy
YWNraW5nIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJTdG9wIHRyYWNraW5nIGhlYXAg
Y2hhbmdlcy4gVGhpcyB3aWxsIHByb2R1Y2UgYSBgdHJhY2tpbmdDb21wbGV0ZWAgZXZlbnQuIgog
ICAgICAgICB9CiAgICAgXSwKICAgICAiZXZlbnRzIjogWwpAQCAtNDcsNiArNTUsMjIgQEAKICAg
ICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY29s
bGVjdGlvbiIsICJ0eXBlIjogIkdhcmJhZ2VDb2xsZWN0aW9uIiB9CiAgICAgICAgICAgICBdCisg
ICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInRyYWNraW5nU3RhcnQi
LAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRyYWNraW5nIHN0YXJ0ZWQuIiwKKyAgICAg
ICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidGltZXN0
YW1wIiwgInR5cGUiOiAibnVtYmVyIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic25h
cHNob3REYXRhIiwgIiRyZWYiOiAiSGVhcFNuYXBzaG90RGF0YSIsICJkZXNjcmlwdGlvbiI6ICJT
bmFwc2hvdCBhdCB0aGUgc3RhcnQgb2YgdHJhY2tpbmcuIiB9CisgICAgICAgICAgICBdCisgICAg
ICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInRyYWNraW5nQ29tcGxldGUi
LAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRyYWNraW5nIHN0b3BwZWQuIiwKKyAgICAg
ICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidGltZXN0
YW1wIiwgInR5cGUiOiAibnVtYmVyIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic25h
cHNob3REYXRhIiwgIiRyZWYiOiAiSGVhcFNuYXBzaG90RGF0YSIsICJkZXNjcmlwdGlvbiI6ICJT
bmFwc2hvdCBhdCB0aGUgZW5kIG9mIHRyYWNraW5nLiIgfQorICAgICAgICAgICAgXQogICAgICAg
ICB9CiAgICAgXQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXggMjJlZGU0Zi4uNTU1ODhi
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTcgQEAKIDIwMTYtMDMtMDgg
IEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAorICAgICAgICBXZWIgSW5z
cGVjdG9yOiBBZGQgSGVhcCBkb21haW4gc3RhcnQvc3RvcCB0cmFja2luZyBjb21tYW5kcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1MTkwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgQnJpYW4gQnVyZy4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
UHJvdG9jb2wvSGVhcE9ic2VydmVyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhlYXBPYnNl
cnZlci5wcm90b3R5cGUudHJhY2tpbmdTdGFydCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVh
cE9ic2VydmVyLnByb3RvdHlwZS50cmFja2luZ0NvbXBsZXRlKToKKyAgICAgICAgVG8gYmUgdXNl
ZCB3aGVuIHdlIGhhdmUgYSBIZWFwQWxsb2NhdGlvbnNJbnN0cnVtZW50IGFuZCB0aW1lbGluZS4K
KworMjAxNi0wMy0wOCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCiAg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IE1ha2UgZGVidWdnaW5nIFRlc3QuaHRtbCBlYXNpZXIKICAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NTIwNwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9I
ZWFwT2JzZXJ2ZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90
b2NvbC9IZWFwT2JzZXJ2ZXIuanMKaW5kZXggZjA0YjMwMC4uMzg4MzlmMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvSGVhcE9ic2VydmVy
LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0hl
YXBPYnNlcnZlci5qcwpAQCAtMzEsNCArMzEsMTggQEAgV2ViSW5zcGVjdG9yLkhlYXBPYnNlcnZl
ciA9IGNsYXNzIEhlYXBPYnNlcnZlcgogICAgIHsKICAgICAgICAgV2ViSW5zcGVjdG9yLmhlYXBN
YW5hZ2VyLmdhcmJhZ2VDb2xsZWN0ZWQoY29sbGVjdGlvbik7CiAgICAgfQorCisgICAgdHJhY2tp
bmdTdGFydCh0aW1lc3RhbXAsIHNuYXBzaG90RGF0YSkKKyAgICB7CisgICAgICAgIGxldCBwYXls
b2FkID0gSlNPTi5wYXJzZShzbmFwc2hvdERhdGEpOworICAgICAgICBsZXQgc25hcHNob3QgPSBX
ZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90LmZyb21QYXlsb2FkKHBheWxvYWQpOworICAgICAgICAv
LyBGSVhNRTogSGVhcCBBbGxvY2F0aW9ucyBUaW1lbGluZS4KKyAgICB9CisKKyAgICB0cmFja2lu
Z0NvbXBsZXRlKHRpbWVzdGFtcCwgc25hcHNob3REYXRhKQorICAgIHsKKyAgICAgICAgbGV0IHBh
eWxvYWQgPSBKU09OLnBhcnNlKHNuYXBzaG90RGF0YSk7CisgICAgICAgIGxldCBzbmFwc2hvdCA9
IFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3QuZnJvbVBheWxvYWQocGF5bG9hZCk7CisgICAgICAg
IC8vIEZJWE1FOiBIZWFwIEFsbG9jYXRpb25zIFRpbWVsaW5lLgorICAgIH0KIH07Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>