<?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>177620</bug_id>
          
          <creation_ts>2017-09-28 14:22:28 -0700</creation_ts>
          <short_desc>Remove TextRun::setCharactersLength() and TextRun::charactersLength()</short_desc>
          <delta_ts>2017-09-28 16:09:51 -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>Layout and Rendering</component>
          <version>WebKit Local 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>
          
          <blocked>177607</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Daniel Bates">dbates</reporter>
          <assigned_to name="Daniel Bates">dbates</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1354285</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-09-28 14:22:28 -0700</bug_when>
    <thetext>Remove TextRun::setCharactersLength() and TextRun::charactersLength().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1354287</commentid>
    <comment_count>1</comment_count>
      <attachid>322114</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-09-28 14:24:39 -0700</bug_when>
    <thetext>Created attachment 322114
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1354298</commentid>
    <comment_count>2</comment_count>
      <attachid>322117</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-09-28 14:32:46 -0700</bug_when>
    <thetext>Created attachment 322117
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1354316</commentid>
    <comment_count>3</comment_count>
      <attachid>322121</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-09-28 15:01:54 -0700</bug_when>
    <thetext>Created attachment 322121
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1354336</commentid>
    <comment_count>4</comment_count>
      <attachid>322127</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-09-28 15:29:08 -0700</bug_when>
    <thetext>Created attachment 322127
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1354344</commentid>
    <comment_count>5</comment_count>
      <attachid>322131</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-09-28 15:43:17 -0700</bug_when>
    <thetext>Created attachment 322131
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1354353</commentid>
    <comment_count>6</comment_count>
      <attachid>322131</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-09-28 16:08:31 -0700</bug_when>
    <thetext>Comment on attachment 322131
Patch

Clearing flags on attachment: 322131

Committed r222637: &lt;http://trac.webkit.org/changeset/222637&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1354354</commentid>
    <comment_count>7</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-09-28 16:08:32 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1354355</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-09-28 16:08:59 -0700</bug_when>
    <thetext>&lt;rdar://problem/34726958&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>322114</attachid>
            <date>2017-09-28 14:24:39 -0700</date>
            <delta_ts>2017-09-28 14:32:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177620-20170928142438.patch</filename>
            <type>text/plain</type>
            <size>11966</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyNjEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjBlNDQxOTQ3YjkzNDA0
Nzk0MGUzMmM0M2MyMjc1MDlmNjEzZmRmMi4uNzQxMzcwM2VjYmEyNTQ2Zjc4MTA4NTRmYzg4ZmMx
MGRmNTk3ZGY2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQzIEBACiAyMDE3LTA5LTI4ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAorICAgICAgICBSZW1vdmUgVGV4dFJ1bjo6
c2V0Q2hhcmFjdGVyc0xlbmd0aCgpIGFuZCBUZXh0UnVuOjpjaGFyYWN0ZXJzTGVuZ3RoKCkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NzYyMAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBwdXJwb3Nl
IG9mIFRleHRSdW46OnNldENoYXJhY3RlcnNMZW5ndGgoKSBhbmQgVGV4dFJ1bjo6Y2hhcmFjdGVy
c0xlbmd0aCgpIHByZWRhdGUgdGhlCisgICAgICAgIHVzZSBvZiBXaWR0aEl0ZXJhdG9yIHRvIHNh
ZmVseSBpdGVyYXRlIG92ZXIgY2hhcmFjdGVycyBpbiBhIFRleHRSdW4gdGhhdCBtYXkgY29udGFp
bgorICAgICAgICBzdXJyb2dhdGUgaGFsdmVzIGR1ZSB0byBob3cgaXQgd2FzIGNyZWF0ZWQgKHdp
dGhvdXQgdGhvdWdodCBvZiBzdXJyb2dhdGUgcGFpcnMpLiBIaXN0b3JpY2FsbHkKKyAgICAgICAg
VGV4dFJ1bjo6Y2hhcmFjdGVyc0xlbmd0aCgpIGNvbXBsZW1lbnRlZCBUZXh0UnVuOjpsZW5ndGgo
KSBhbmQgcmVwcmVzZW50ZWQgdGhlIGxlbmd0aCBvZiB0aGUKKyAgICAgICAgdGV4dCB0byByZW5k
ZXIgaWdub3JpbmcgYW5kIHJlc3BlY3RpbmcgdHJ1bmNhdGlvbiwgcmVzcGVjdGl2ZWx5LiBXZSBu
b3QgbG9uZ2VyIG5lZWQgZWl0aGVyCisgICAgICAgIG9mIHRoZXNlIG1lbWJlciBmdW5jdGlvbnMg
d2l0aCB0aGUgYWR2ZW50IG9mIFdpZHRoSXRlcmF0b3IuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9Db21wbGV4VGV4dENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4
dExheW91dDo6Y29uc3RydWN0VGV4dFJ1bik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
VGV4dFJ1bi5oOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFJ1bjo6VGV4dFJ1bik6CisgICAgICAg
IChXZWJDb3JlOjpUZXh0UnVuOjpjaGFyYWN0ZXJzTGVuZ3RoIGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlRleHRSdW46OnNldENoYXJhY3RlcnNMZW5ndGgpOiBEZWxldGVkLgor
ICAgICAgICAqIHJlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OklubGluZVRleHRCb3g6OmNyZWF0ZVRleHRSdW4gY29uc3QpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6OndpZHRoRnJv
bUNhY2hlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Om1heFdvcmRGcmFnbWVudFdpZHRoKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lk
dGhzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6OndpZHRoIGNvbnN0KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvbGluZS9CcmVha2luZ0NvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6
OnRleHRXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjp0cnlIeXBoZW5hdGluZyk6CisgICAgICAg
ICogcmVuZGVyaW5nL3N2Zy9TVkdJbmxpbmVUZXh0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0lubGluZVRleHRCb3g6OmNvbnN0cnVjdFRleHRSdW4gY29uc3QpOgorICAgICAgICAqIHJl
bmRlcmluZy9zdmcvU1ZHVGV4dE1ldHJpY3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4
dE1ldHJpY3M6OmNvbnN0cnVjdFRleHRSdW4pOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvU1ZH
VGV4dE1ldHJpY3NCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RleHRNZXRyaWNz
QnVpbGRlcjo6Y3VycmVudENoYXJhY3RlclN0YXJ0c1N1cnJvZ2F0ZVBhaXIgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHVGV4dE1ldHJpY3NCdWlsZGVyOjphZHZhbmNlKToKKworMjAxNy0w
OS0yOCAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CisKICAgICAgICAgRXh0cmFj
dCBsb2dpYyB0byBjb21wdXRlIHRleHQgdG8gcmVuZGVyIGludG8gY29tbW9uIGZ1bmN0aW9uCiAg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzc2MDcKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29tcGxleFRleHRD
b250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbXBsZXhU
ZXh0Q29udHJvbGxlci5jcHAKaW5kZXggOTA3YmRjNWQwOWFhYWMzNzQ2ZTE4YjU1MjE3NjY5YTlk
NDA5ZDNkNS4uNGIyOTQ2NTVhN2Y1NzFmZmVlMGI4NTk5OGIxZDVjZDQyZjVjYzA4MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29tcGxleFRleHRDb250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db21wbGV4VGV4
dENvbnRyb2xsZXIuY3BwCkBAIC03OCw4ICs3OCw2IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIFRl
eHRSdW4gY29uc3RydWN0VGV4dFJ1bihSZW5kZXJUZXh0JiB0ZXh0LCBmbG9hdCB4UG9zKQogICAg
IHsKICAgICAgICAgVGV4dFJ1biBydW4gPSBSZW5kZXJCbG9jazo6Y29uc3RydWN0VGV4dFJ1bih0
ZXh0LCB0ZXh0LnN0eWxlKCkpOwotICAgICAgICBydW4uc2V0Q2hhcmFjdGVyc0xlbmd0aCh0ZXh0
LnRleHRMZW5ndGgoKSk7Ci0gICAgICAgIEFTU0VSVChydW4uY2hhcmFjdGVyc0xlbmd0aCgpID49
IHJ1bi5sZW5ndGgoKSk7CiAgICAgICAgIHJ1bi5zZXRYUG9zKHhQb3MpOwogICAgICAgICByZXR1
cm4gcnVuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1RleHRSdW4uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RleHRSdW4u
aAppbmRleCAyOTExY2JhYjY2N2JmYWRkZGFjNzc0ODFmNWE4YzIxNzU1ZDhiM2YzLi5kMmI1YzFm
YzIxNDUyMjI4MjViY2Y0OTJmNzhiMGM3MWVhMmNjMDM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UZXh0UnVuLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvVGV4dFJ1bi5oCkBAIC00Niw3ICs0Niw2IEBAIGNsYXNzIFRleHRSdW4g
ewogcHVibGljOgogICAgIGV4cGxpY2l0IFRleHRSdW4oU3RyaW5nVmlldyB0ZXh0LCBmbG9hdCB4
cG9zID0gMCwgZmxvYXQgZXhwYW5zaW9uID0gMCwgRXhwYW5zaW9uQmVoYXZpb3IgZXhwYW5zaW9u
QmVoYXZpb3IgPSBEZWZhdWx0RXhwYW5zaW9uLCBUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbiA9IExU
UiwgYm9vbCBkaXJlY3Rpb25hbE92ZXJyaWRlID0gZmFsc2UsIGJvb2wgY2hhcmFjdGVyU2NhbkZv
ckNvZGVQYXRoID0gdHJ1ZSkKICAgICAgICAgOiBtX3RleHQodGV4dCkKLSAgICAgICAgLCBtX2No
YXJhY3RlcnNMZW5ndGgodGV4dC5sZW5ndGgoKSkKICAgICAgICAgLCBtX3RhYlNpemUoMCkKICAg
ICAgICAgLCBtX3hwb3MoeHBvcykKICAgICAgICAgLCBtX2hvcml6b250YWxHbHlwaFN0cmV0Y2go
MSkKQEAgLTgzLDEzICs4MiwxMSBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzOEJpdCgpIGNvbnN0
IHsgcmV0dXJuIG1fdGV4dC5pczhCaXQoKTsgfQogICAgIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0
IHsgcmV0dXJuIG1fdGV4dC5sZW5ndGgoKTsgfQotICAgIHVuc2lnbmVkIGNoYXJhY3RlcnNMZW5n
dGgoKSBjb25zdCB7IHJldHVybiBtX2NoYXJhY3RlcnNMZW5ndGg7IH0KICAgICBTdHJpbmcgc3Ry
aW5nKCkgY29uc3QgeyByZXR1cm4gbV90ZXh0LnRvU3RyaW5nKCk7IH0KIAogICAgIHZvaWQgc2V0
VGV4dChjb25zdCBMQ2hhciogYywgdW5zaWduZWQgbGVuKSB7IG1fdGV4dCA9IFN0cmluZ1ZpZXco
YywgbGVuKTsgfQogICAgIHZvaWQgc2V0VGV4dChjb25zdCBVQ2hhciogYywgdW5zaWduZWQgbGVu
KSB7IG1fdGV4dCA9IFN0cmluZ1ZpZXcoYywgbGVuKTsgfQogICAgIHZvaWQgc2V0VGV4dChTdHJp
bmdWaWV3IHN0cmluZ1ZpZXcpIHsgbV90ZXh0ID0gc3RyaW5nVmlldzsgfQotICAgIHZvaWQgc2V0
Q2hhcmFjdGVyc0xlbmd0aCh1bnNpZ25lZCBjaGFyYWN0ZXJzTGVuZ3RoKSB7IG1fY2hhcmFjdGVy
c0xlbmd0aCA9IGNoYXJhY3RlcnNMZW5ndGg7IH0KIAogICAgIGZsb2F0IGhvcml6b250YWxHbHlw
aFN0cmV0Y2goKSBjb25zdCB7IHJldHVybiBtX2hvcml6b250YWxHbHlwaFN0cmV0Y2g7IH0KICAg
ICB2b2lkIHNldEhvcml6b250YWxHbHlwaFN0cmV0Y2goZmxvYXQgc2NhbGUpIHsgbV9ob3Jpem9u
dGFsR2x5cGhTdHJldGNoID0gc2NhbGU7IH0KQEAgLTExNyw3ICsxMTQsNiBAQCBwdWJsaWM6CiAK
IHByaXZhdGU6CiAgICAgU3RyaW5nVmlldyBtX3RleHQ7Ci0gICAgdW5zaWduZWQgbV9jaGFyYWN0
ZXJzTGVuZ3RoOyAvLyBNYXJrcyB0aGUgZW5kIG9mIHRoZSBjaGFyYWN0ZXJzIGJ1ZmZlci4gRGVm
YXVsdCBlcXVhbHMgdG8gbGVuZ3RoIG9mIG1fdGV4dC4KIAogICAgIHVuc2lnbmVkIG1fdGFiU2l6
ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3gu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCmluZGV4IDAy
MWRjYWIxZDlmZDU0MDhlNjQzM2RkMzY1MmMxMDQ4NjIzNGZmOTEuLmM0NGM2Y2VjZWQ0NzdlNmEz
MjhjNTJhNDhiMjlmNzg0MTgzMzQ0MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9JbmxpbmVUZXh0Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5s
aW5lVGV4dEJveC5jcHAKQEAgLTEwOTAsMTAgKzEwOTAsNiBAQCBUZXh0UnVuIElubGluZVRleHRC
b3g6OmNyZWF0ZVRleHRSdW4oU3RyaW5nQW5kTGVuZ3RoSWdub3JpbmdUcnVuY2F0aW9uJiBzdHJp
bmcpCiAgICAgY29uc3QgYXV0byYgc3R5bGUgPSBsaW5lU3R5bGUoKTsKICAgICBUZXh0UnVuIHRl
eHRSdW4geyBzdHJpbmcuc3RyaW5nLCB0ZXh0UG9zKCksIGV4cGFuc2lvbigpLCBleHBhbnNpb25C
ZWhhdmlvcigpLCBkaXJlY3Rpb24oKSwgZGlyT3ZlcnJpZGUoKSB8fCBzdHlsZS5ydGxPcmRlcmlu
ZygpID09IFZpc3VhbE9yZGVyLCAhcmVuZGVyZXIoKS5jYW5Vc2VTaW1wbGVGb250Q29kZVBhdGgo
KSB9OwogICAgIHRleHRSdW4uc2V0VGFiU2l6ZSghc3R5bGUuY29sbGFwc2VXaGl0ZVNwYWNlKCks
IHN0eWxlLnRhYlNpemUoKSk7Ci0KLSAgICAvLyBQcm9wYWdhdGUgdGhlIG1heGltdW0gbGVuZ3Ro
IG9mIHRoZSBjaGFyYWN0ZXJzIGJ1ZmZlciB0byB0aGUgVGV4dFJ1biwgZXZlbiB3aGVuIHdlJ3Jl
IG9ubHkgcHJvY2Vzc2luZyBhIHN1YnN0cmluZy4KLSAgICB0ZXh0UnVuLnNldENoYXJhY3RlcnNM
ZW5ndGgoc3RyaW5nLmxlbmd0aElnbm9yaW5nVHJ1bmNhdGlvbik7Ci0gICAgQVNTRVJUKHRleHRS
dW4uY2hhcmFjdGVyc0xlbmd0aCgpID49IHRleHRSdW4ubGVuZ3RoKCkpOwogICAgIHJldHVybiB0
ZXh0UnVuOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKaW5kZXgg
ZTlkMThhZTU4NTBlOGFjZDc0ZGUyMGY4YjcwODE4MDkyMzU1MDQ1ZS4uNDAzZDE4ODdjY2ZhM2Yx
YjMxNjcwNDkyODU4OGU1MDM2YWYxOWM4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0LmNwcApAQCAtNTE0LDkgKzUxNCw2IEBAIEFMV0FZU19JTkxJTkUgZmxvYXQgUmVuZGVy
VGV4dDo6d2lkdGhGcm9tQ2FjaGUoY29uc3QgRm9udENhc2NhZGUmIGYsIHVuc2lnbmVkIHN0CiAg
ICAgfQogCiAgICAgVGV4dFJ1biBydW4gPSBSZW5kZXJCbG9jazo6Y29uc3RydWN0VGV4dFJ1bigq
dGhpcywgc3RhcnQsIGxlbiwgc3R5bGUpOwotICAgIHJ1bi5zZXRDaGFyYWN0ZXJzTGVuZ3RoKHRl
eHRMZW5ndGgoKSAtIHN0YXJ0KTsKLSAgICBBU1NFUlQocnVuLmNoYXJhY3RlcnNMZW5ndGgoKSA+
PSBydW4ubGVuZ3RoKCkpOwotCiAgICAgcnVuLnNldENoYXJhY3RlclNjYW5Gb3JDb2RlUGF0aCgh
Y2FuVXNlU2ltcGxlRm9udENvZGVQYXRoKCkpOwogICAgIHJ1bi5zZXRUYWJTaXplKCFzdHlsZS5j
b2xsYXBzZVdoaXRlU3BhY2UoKSwgc3R5bGUudGFiU2l6ZSgpKTsKICAgICBydW4uc2V0WFBvcyh4
UG9zKTsKQEAgLTc4MSw3ICs3NzgsNiBAQCBzdGF0aWMgZmxvYXQgbWF4V29yZEZyYWdtZW50V2lk
dGgoUmVuZGVyVGV4dCYgcmVuZGVyZXIsIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZQogICAgICAg
ICBmcmFnbWVudFdpdGhIeXBoZW4uYXBwZW5kKHN0eWxlLmh5cGhlblN0cmluZygpKTsKIAogICAg
ICAgICBUZXh0UnVuIHJ1biA9IFJlbmRlckJsb2NrOjpjb25zdHJ1Y3RUZXh0UnVuKGZyYWdtZW50
V2l0aEh5cGhlbi50b1N0cmluZygpLCBzdHlsZSk7Ci0gICAgICAgIHJ1bi5zZXRDaGFyYWN0ZXJz
TGVuZ3RoKGZyYWdtZW50V2l0aEh5cGhlbi5sZW5ndGgoKSk7CiAgICAgICAgIHJ1bi5zZXRDaGFy
YWN0ZXJTY2FuRm9yQ29kZVBhdGgoIXJlbmRlcmVyLmNhblVzZVNpbXBsZUZvbnRDb2RlUGF0aCgp
KTsKICAgICAgICAgZmxvYXQgZnJhZ21lbnRXaWR0aCA9IGZvbnQud2lkdGgocnVuLCAmZmFsbGJh
Y2tGb250cywgJmdseXBoT3ZlcmZsb3cpOwogCkBAIC0xMDA3LDggKzEwMDMsNiBAQCB2b2lkIFJl
bmRlclRleHQ6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKGZsb2F0IGxlYWRXaWR0aCwg
SGFzaFNldDxjb25zdCBGbwogICAgICAgICAgICAgICAgIGN1cnJNYXhXaWR0aCA9IDA7CiAgICAg
ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIFRleHRSdW4gcnVuID0gUmVuZGVyQmxv
Y2s6OmNvbnN0cnVjdFRleHRSdW4oKnRoaXMsIGksIDEsIHN0eWxlKTsKLSAgICAgICAgICAgICAg
ICBydW4uc2V0Q2hhcmFjdGVyc0xlbmd0aChsZW4gLSBpKTsKLSAgICAgICAgICAgICAgICBBU1NF
UlQocnVuLmNoYXJhY3RlcnNMZW5ndGgoKSA+PSBydW4ubGVuZ3RoKCkpOwogICAgICAgICAgICAg
ICAgIHJ1bi5zZXRUYWJTaXplKCFzdHlsZS5jb2xsYXBzZVdoaXRlU3BhY2UoKSwgc3R5bGUudGFi
U2l6ZSgpKTsKICAgICAgICAgICAgICAgICBydW4uc2V0WFBvcyhsZWFkV2lkdGggKyBjdXJyTWF4
V2lkdGgpOwogCkBAIC0xMzk1LDEyICsxMzg5LDEwIEBAIGZsb2F0IFJlbmRlclRleHQ6OndpZHRo
KHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIGxlbiwgY29uc3QgRm9udENhc2NhZGUmIGYsIGZsb2F0
CiAgICAgICAgICAgICB3ID0gd2lkdGhGcm9tQ2FjaGUoZiwgZnJvbSwgbGVuLCB4UG9zLCBmYWxs
YmFja0ZvbnRzLCBnbHlwaE92ZXJmbG93LCBzdHlsZSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAg
VGV4dFJ1biBydW4gPSBSZW5kZXJCbG9jazo6Y29uc3RydWN0VGV4dFJ1bigqdGhpcywgZnJvbSwg
bGVuLCBzdHlsZSk7Ci0gICAgICAgIHJ1bi5zZXRDaGFyYWN0ZXJzTGVuZ3RoKHRleHRMZW5ndGgo
KSAtIGZyb20pOwotICAgICAgICBBU1NFUlQocnVuLmNoYXJhY3RlcnNMZW5ndGgoKSA+PSBydW4u
bGVuZ3RoKCkpOwotCiAgICAgICAgIHJ1bi5zZXRDaGFyYWN0ZXJTY2FuRm9yQ29kZVBhdGgoIWNh
blVzZVNpbXBsZUZvbnRDb2RlUGF0aCgpKTsKICAgICAgICAgcnVuLnNldFRhYlNpemUoIXN0eWxl
LmNvbGxhcHNlV2hpdGVTcGFjZSgpLCBzdHlsZS50YWJTaXplKCkpOwogICAgICAgICBydW4uc2V0
WFBvcyh4UG9zKTsKKwogICAgICAgICB3ID0gZi53aWR0aChydW4sIGZhbGxiYWNrRm9udHMsIGds
eXBoT3ZlcmZsb3cpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL2xpbmUvQnJlYWtpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbGlu
ZS9CcmVha2luZ0NvbnRleHQuaAppbmRleCBkZmQzZTVlNWE5MWRlM2M3ZjY2MzlhMzI2ZDdlMmU0
M2QwNGQ2NmUxLi4wNTY2MDFlNWRmNWRkNTM5MzQ3MjRlYTdkZWI4YzgzZGRiMjAwNDJjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbGluZS9CcmVha2luZ0NvbnRleHQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbGluZS9CcmVha2luZ0NvbnRleHQuaApAQCAt
NjI4LDkgKzYyOCw2IEBAIEFMV0FZU19JTkxJTkUgZmxvYXQgdGV4dFdpZHRoKFJlbmRlclRleHQm
IHRleHQsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIGxlbiwgY29uCiAgICAgICAgIHJldHVybiBG
b250Q2FzY2FkZTo6d2lkdGgoKmxheW91dCwgZnJvbSwgbGVuLCAmZmFsbGJhY2tGb250cyk7CiAK
ICAgICBUZXh0UnVuIHJ1biA9IFJlbmRlckJsb2NrOjpjb25zdHJ1Y3RUZXh0UnVuKHRleHQsIGZy
b20sIGxlbiwgc3R5bGUpOwotICAgIHJ1bi5zZXRDaGFyYWN0ZXJzTGVuZ3RoKHRleHQudGV4dExl
bmd0aCgpIC0gZnJvbSk7Ci0gICAgQVNTRVJUKHJ1bi5jaGFyYWN0ZXJzTGVuZ3RoKCkgPj0gcnVu
Lmxlbmd0aCgpKTsKLQogICAgIHJ1bi5zZXRDaGFyYWN0ZXJTY2FuRm9yQ29kZVBhdGgoIXRleHQu
Y2FuVXNlU2ltcGxlRm9udENvZGVQYXRoKCkpOwogICAgIHJ1bi5zZXRUYWJTaXplKCFjb2xsYXBz
ZVdoaXRlU3BhY2UsIHN0eWxlLnRhYlNpemUoKSk7CiAgICAgcnVuLnNldFhQb3MoeFBvcyk7CkBA
IC02NzUsOSArNjcyLDYgQEAgaW5saW5lIHZvaWQgdHJ5SHlwaGVuYXRpbmcoUmVuZGVyVGV4dCYg
dGV4dCwgY29uc3QgRm9udENhc2NhZGUmIGZvbnQsIGNvbnN0IEF0b20KIAogICAgIGNvbnN0IFJl
bmRlclN0eWxlJiBzdHlsZSA9IHRleHQuc3R5bGUoKTsKICAgICBUZXh0UnVuIHJ1biA9IFJlbmRl
ckJsb2NrOjpjb25zdHJ1Y3RUZXh0UnVuKHRleHQsIGxhc3RTcGFjZSwgcG9zIC0gbGFzdFNwYWNl
LCBzdHlsZSk7Ci0gICAgcnVuLnNldENoYXJhY3RlcnNMZW5ndGgodGV4dC50ZXh0TGVuZ3RoKCkg
LSBsYXN0U3BhY2UpOwotICAgIEFTU0VSVChydW4uY2hhcmFjdGVyc0xlbmd0aCgpID49IHJ1bi5s
ZW5ndGgoKSk7Ci0KICAgICBydW4uc2V0VGFiU2l6ZSghY29sbGFwc2VXaGl0ZVNwYWNlLCBzdHls
ZS50YWJTaXplKCkpOwogICAgIHJ1bi5zZXRYUG9zKHhQb3MgKyBsYXN0U3BhY2VXb3JkU3BhY2lu
Zyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHSW5saW5l
VGV4dEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR0lubGluZVRleHRC
b3guY3BwCmluZGV4IDY4YTkyOWM3YzIzZjQxYjJjODI1MGU5NGQwN2I4MDcwNzg5NmZiZGMuLmQx
YTJhZDhhNTJkNzczNDAyMzIzMjVmNzY4NWVlNmQ0NmI5MmU4MzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHSW5saW5lVGV4dEJveC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdJbmxpbmVUZXh0Qm94LmNwcApAQCAtMzk2LDEwICsz
OTYsNiBAQCBUZXh0UnVuIFNWR0lubGluZVRleHRCb3g6OmNvbnN0cnVjdFRleHRSdW4oY29uc3Qg
UmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBTVkdUZQogCiAgICAgLy8gV2UgaGFuZGxlIGxldHRl
ciAmIHdvcmQgc3BhY2luZyBvdXJzZWx2ZXMuCiAgICAgcnVuLmRpc2FibGVTcGFjaW5nKCk7Ci0K
LSAgICAvLyBQcm9wYWdhdGUgdGhlIG1heGltdW0gbGVuZ3RoIG9mIHRoZSBjaGFyYWN0ZXJzIGJ1
ZmZlciB0byB0aGUgVGV4dFJ1biwgZXZlbiB3aGVuIHdlJ3JlIG9ubHkgcHJvY2Vzc2luZyBhIHN1
YnN0cmluZy4KLSAgICBydW4uc2V0Q2hhcmFjdGVyc0xlbmd0aChyZW5kZXJlcigpLnRleHRMZW5n
dGgoKSAtIGZyYWdtZW50LmNoYXJhY3Rlck9mZnNldCk7Ci0gICAgQVNTRVJUKHJ1bi5jaGFyYWN0
ZXJzTGVuZ3RoKCkgPj0gcnVuLmxlbmd0aCgpKTsKICAgICByZXR1cm4gcnVuOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRNZXRyaWNzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHVGV4dE1ldHJpY3MuY3BwCmluZGV4IDc2
MjdmZTU1MzM3NjVlNWRiMGUxODQ5MzQ1MjE2NzFhZGY4MzUyYjguLjc4ZTA2YjUzN2MzMTM5ZjYw
ZjAzYjI2YzhlNzY5Mzc1NzE2YWY1ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvU1ZHVGV4dE1ldHJpY3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvU1ZHVGV4dE1ldHJpY3MuY3BwCkBAIC03MywxMCArNzMsNiBAQCBUZXh0UnVuIFNWR1Rl
eHRNZXRyaWNzOjpjb25zdHJ1Y3RUZXh0UnVuKFJlbmRlclNWR0lubGluZVRleHQmIHRleHQsIHVu
c2lnbmVkIHBvcwogCiAgICAgLy8gV2UgaGFuZGxlIGxldHRlciAmIHdvcmQgc3BhY2luZyBvdXJz
ZWx2ZXMuCiAgICAgcnVuLmRpc2FibGVTcGFjaW5nKCk7Ci0KLSAgICAvLyBQcm9wYWdhdGUgdGhl
IG1heGltdW0gbGVuZ3RoIG9mIHRoZSBjaGFyYWN0ZXJzIGJ1ZmZlciB0byB0aGUgVGV4dFJ1biwg
ZXZlbiB3aGVuIHdlJ3JlIG9ubHkgcHJvY2Vzc2luZyBhIHN1YnN0cmluZy4KLSAgICBydW4uc2V0
Q2hhcmFjdGVyc0xlbmd0aCh0ZXh0LnRleHRMZW5ndGgoKSAtIHBvc2l0aW9uKTsKLSAgICBBU1NF
UlQocnVuLmNoYXJhY3RlcnNMZW5ndGgoKSA+PSBydW4ubGVuZ3RoKCkpOwogICAgIHJldHVybiBy
dW47CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHVGV4
dE1ldHJpY3NCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHVGV4
dE1ldHJpY3NCdWlsZGVyLmNwcAppbmRleCBiYjI1OTNkMzhiZDZjODIxYTQzNGI1YTg0NTEzOGU3
MmY4OGQ0YzNlLi4yZWZiMjdlZWMxZjk4ODRjZmE5Yzc4ZjAyMjAwMDRjMDc5ZjBmYWQ5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRNZXRyaWNzQnVpbGRl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdUZXh0TWV0cmljc0J1
aWxkZXIuY3BwCkBAIC0zOCwxMyArMzgsMTMgQEAgU1ZHVGV4dE1ldHJpY3NCdWlsZGVyOjpTVkdU
ZXh0TWV0cmljc0J1aWxkZXIoKQogCiBpbmxpbmUgYm9vbCBTVkdUZXh0TWV0cmljc0J1aWxkZXI6
OmN1cnJlbnRDaGFyYWN0ZXJTdGFydHNTdXJyb2dhdGVQYWlyKCkgY29uc3QKIHsKLSAgICByZXR1
cm4gVTE2X0lTX0xFQUQobV9ydW5bbV90ZXh0UG9zaXRpb25dKSAmJiAobV90ZXh0UG9zaXRpb24g
KyAxKSA8IG1fcnVuLmNoYXJhY3RlcnNMZW5ndGgoKSAmJiBVMTZfSVNfVFJBSUwobV9ydW5bbV90
ZXh0UG9zaXRpb24gKyAxXSk7CisgICAgcmV0dXJuIFUxNl9JU19MRUFEKG1fcnVuW21fdGV4dFBv
c2l0aW9uXSkgJiYgKG1fdGV4dFBvc2l0aW9uICsgMSkgPCBtX3J1bi5sZW5ndGgoKSAmJiBVMTZf
SVNfVFJBSUwobV9ydW5bbV90ZXh0UG9zaXRpb24gKyAxXSk7CiB9CiAKIGJvb2wgU1ZHVGV4dE1l
dHJpY3NCdWlsZGVyOjphZHZhbmNlKCkKIHsKICAgICBtX3RleHRQb3NpdGlvbiArPSBtX2N1cnJl
bnRNZXRyaWNzLmxlbmd0aCgpOwotICAgIGlmIChtX3RleHRQb3NpdGlvbiA+PSBtX3J1bi5jaGFy
YWN0ZXJzTGVuZ3RoKCkpCisgICAgaWYgKG1fdGV4dFBvc2l0aW9uID49IG1fcnVuLmxlbmd0aCgp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAobV9pc0NvbXBsZXhUZXh0KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>322117</attachid>
            <date>2017-09-28 14:32:46 -0700</date>
            <delta_ts>2017-09-28 15:01:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177620-20170928143246.patch</filename>
            <type>text/plain</type>
            <size>11914</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyNjEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTRiMGYzMDRkYTJjYjI4
Y2Y4MTRiMTY1NDVmMzVlZmE2NWNiMDBmYS4uOTUzN2FmMzdkOGM2NGQyMmRiYjdlN2MzYjVjNjFh
NmNmMzI3Y2E2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDE3LTA5LTI4ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgVGV4dFJ1bjo6
c2V0Q2hhcmFjdGVyc0xlbmd0aCgpIGFuZCBUZXh0UnVuOjpjaGFyYWN0ZXJzTGVuZ3RoKCkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NzYyMAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBwdXJwb3Nl
IG9mIFRleHRSdW46OnNldENoYXJhY3RlcnNMZW5ndGgoKSBhbmQgVGV4dFJ1bjo6Y2hhcmFjdGVy
c0xlbmd0aCgpIHByZWRhdGUgdGhlCisgICAgICAgIHVzZSBvZiBXaWR0aEl0ZXJhdG9yIHRvIHNh
ZmVseSBpdGVyYXRlIG92ZXIgY2hhcmFjdGVycyBpbiBhIFRleHRSdW4gdGhhdCBtYXkgY29udGFp
bgorICAgICAgICBzdXJyb2dhdGUgaGFsdmVzIGR1ZSB0byBob3cgaXQgd2FzIGNyZWF0ZWQgKHdp
dGhvdXQgdGhvdWdodCBvZiBzdXJyb2dhdGUgcGFpcnMpLiBIaXN0b3JpY2FsbHkKKyAgICAgICAg
VGV4dFJ1bjo6Y2hhcmFjdGVyc0xlbmd0aCgpIGNvbXBsZW1lbnRlZCBUZXh0UnVuOjpsZW5ndGgo
KSBhbmQgcmVwcmVzZW50ZWQgdGhlIGxlbmd0aCBvZiB0aGUKKyAgICAgICAgdGV4dCB0byByZW5k
ZXIgaWdub3JpbmcgYW5kIHJlc3BlY3RpbmcgdHJ1bmNhdGlvbiwgcmVzcGVjdGl2ZWx5LiBXZSBu
b3QgbG9uZ2VyIG5lZWQgZWl0aGVyCisgICAgICAgIG9mIHRoZXNlIG1lbWJlciBmdW5jdGlvbnMg
d2l0aCB0aGUgYWR2ZW50IG9mIFdpZHRoSXRlcmF0b3IuCisKKyAgICAgICAgTm8gZnVuY3Rpb25h
bGl0eSBjaGFuZ2VkLiBTbywgbm8gbmV3IHRlc3RzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRM
YXlvdXQ6OmNvbnN0cnVjdFRleHRSdW4pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1Rl
eHRSdW4uaDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRSdW46OlRleHRSdW4pOgorICAgICAgICAo
V2ViQ29yZTo6VGV4dFJ1bjo6Y2hhcmFjdGVyc0xlbmd0aCBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpUZXh0UnVuOjpzZXRDaGFyYWN0ZXJzTGVuZ3RoKTogRGVsZXRlZC4KKyAg
ICAgICAgKiByZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bmxpbmVUZXh0Qm94Ojpjb25zdHJ1Y3RUZXh0UnVuIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Ojp3aWR0aEZy
b21DYWNoZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjptYXhXb3JkRnJhZ21lbnRXaWR0aCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Ojpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdp
ZHRocyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Ojp3aWR0aCBjb25zdCk6CisgICAg
ICAgICogcmVuZGVyaW5nL2xpbmUvQnJlYWtpbmdDb250ZXh0Lmg6CisgICAgICAgIChXZWJDb3Jl
Ojp0ZXh0V2lkdGgpOgorICAgICAgICAoV2ViQ29yZTo6dHJ5SHlwaGVuYXRpbmcpOgorICAgICAg
ICAqIHJlbmRlcmluZy9zdmcvU1ZHSW5saW5lVGV4dEJveC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdJbmxpbmVUZXh0Qm94Ojpjb25zdHJ1Y3RUZXh0UnVuIGNvbnN0KToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3ZnL1NWR1RleHRNZXRyaWNzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Rl
eHRNZXRyaWNzOjpjb25zdHJ1Y3RUZXh0UnVuKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1NW
R1RleHRNZXRyaWNzQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXh0TWV0cmlj
c0J1aWxkZXI6OmN1cnJlbnRDaGFyYWN0ZXJTdGFydHNTdXJyb2dhdGVQYWlyIGNvbnN0KTogVXNl
IFRleHRSdW46Omxlbmd0aCgpLgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4dE1ldHJpY3NCdWls
ZGVyOjphZHZhbmNlKToKKwogMjAxNy0wOS0yOCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIEFYOiBEZWZlciBSZW5kZXJMaXN0Qm94IHNlbGVjdGlvbkNoYW5nZWQg
ZXZlbnQgdW50aWwgYWZ0ZXIgbGF5b3V0IGlzIGRvbmUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db21wbGV4VGV4dENvbnRyb2xsZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcAppbmRl
eCA5MDdiZGM1ZDA5YWFhYzM3NDZlMThiNTUyMTc2NjlhOWQ0MDlkM2Q1Li40YjI5NDY1NWE3ZjU3
MWZmZWUwYjg1OTk4YjFkNWNkNDJmNWNjMDgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Db21wbGV4VGV4dENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHAKQEAgLTc4
LDggKzc4LDYgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgVGV4dFJ1biBjb25zdHJ1Y3RUZXh0UnVu
KFJlbmRlclRleHQmIHRleHQsIGZsb2F0IHhQb3MpCiAgICAgewogICAgICAgICBUZXh0UnVuIHJ1
biA9IFJlbmRlckJsb2NrOjpjb25zdHJ1Y3RUZXh0UnVuKHRleHQsIHRleHQuc3R5bGUoKSk7Ci0g
ICAgICAgIHJ1bi5zZXRDaGFyYWN0ZXJzTGVuZ3RoKHRleHQudGV4dExlbmd0aCgpKTsKLSAgICAg
ICAgQVNTRVJUKHJ1bi5jaGFyYWN0ZXJzTGVuZ3RoKCkgPj0gcnVuLmxlbmd0aCgpKTsKICAgICAg
ICAgcnVuLnNldFhQb3MoeFBvcyk7CiAgICAgICAgIHJldHVybiBydW47CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFJ1bi5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFJ1bi5oCmluZGV4IDI5MTFjYmFiNjY3YmZh
ZGRkYWM3NzQ4MWY1YThjMjE3NTVkOGIzZjMuLmQyYjVjMWZjMjE0NTIyMjgyNWJjZjQ5MmY3OGIw
YzcxZWEyY2MwMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1RleHRSdW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UZXh0UnVu
LmgKQEAgLTQ2LDcgKzQ2LDYgQEAgY2xhc3MgVGV4dFJ1biB7CiBwdWJsaWM6CiAgICAgZXhwbGlj
aXQgVGV4dFJ1bihTdHJpbmdWaWV3IHRleHQsIGZsb2F0IHhwb3MgPSAwLCBmbG9hdCBleHBhbnNp
b24gPSAwLCBFeHBhbnNpb25CZWhhdmlvciBleHBhbnNpb25CZWhhdmlvciA9IERlZmF1bHRFeHBh
bnNpb24sIFRleHREaXJlY3Rpb24gZGlyZWN0aW9uID0gTFRSLCBib29sIGRpcmVjdGlvbmFsT3Zl
cnJpZGUgPSBmYWxzZSwgYm9vbCBjaGFyYWN0ZXJTY2FuRm9yQ29kZVBhdGggPSB0cnVlKQogICAg
ICAgICA6IG1fdGV4dCh0ZXh0KQotICAgICAgICAsIG1fY2hhcmFjdGVyc0xlbmd0aCh0ZXh0Lmxl
bmd0aCgpKQogICAgICAgICAsIG1fdGFiU2l6ZSgwKQogICAgICAgICAsIG1feHBvcyh4cG9zKQog
ICAgICAgICAsIG1faG9yaXpvbnRhbEdseXBoU3RyZXRjaCgxKQpAQCAtODMsMTMgKzgyLDExIEBA
IHB1YmxpYzoKIAogICAgIGJvb2wgaXM4Qml0KCkgY29uc3QgeyByZXR1cm4gbV90ZXh0LmlzOEJp
dCgpOyB9CiAgICAgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV90ZXh0Lmxlbmd0
aCgpOyB9Ci0gICAgdW5zaWduZWQgY2hhcmFjdGVyc0xlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1f
Y2hhcmFjdGVyc0xlbmd0aDsgfQogICAgIFN0cmluZyBzdHJpbmcoKSBjb25zdCB7IHJldHVybiBt
X3RleHQudG9TdHJpbmcoKTsgfQogCiAgICAgdm9pZCBzZXRUZXh0KGNvbnN0IExDaGFyKiBjLCB1
bnNpZ25lZCBsZW4pIHsgbV90ZXh0ID0gU3RyaW5nVmlldyhjLCBsZW4pOyB9CiAgICAgdm9pZCBz
ZXRUZXh0KGNvbnN0IFVDaGFyKiBjLCB1bnNpZ25lZCBsZW4pIHsgbV90ZXh0ID0gU3RyaW5nVmll
dyhjLCBsZW4pOyB9CiAgICAgdm9pZCBzZXRUZXh0KFN0cmluZ1ZpZXcgc3RyaW5nVmlldykgeyBt
X3RleHQgPSBzdHJpbmdWaWV3OyB9Ci0gICAgdm9pZCBzZXRDaGFyYWN0ZXJzTGVuZ3RoKHVuc2ln
bmVkIGNoYXJhY3RlcnNMZW5ndGgpIHsgbV9jaGFyYWN0ZXJzTGVuZ3RoID0gY2hhcmFjdGVyc0xl
bmd0aDsgfQogCiAgICAgZmxvYXQgaG9yaXpvbnRhbEdseXBoU3RyZXRjaCgpIGNvbnN0IHsgcmV0
dXJuIG1faG9yaXpvbnRhbEdseXBoU3RyZXRjaDsgfQogICAgIHZvaWQgc2V0SG9yaXpvbnRhbEds
eXBoU3RyZXRjaChmbG9hdCBzY2FsZSkgeyBtX2hvcml6b250YWxHbHlwaFN0cmV0Y2ggPSBzY2Fs
ZTsgfQpAQCAtMTE3LDcgKzExNCw2IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBTdHJpbmdW
aWV3IG1fdGV4dDsKLSAgICB1bnNpZ25lZCBtX2NoYXJhY3RlcnNMZW5ndGg7IC8vIE1hcmtzIHRo
ZSBlbmQgb2YgdGhlIGNoYXJhY3RlcnMgYnVmZmVyLiBEZWZhdWx0IGVxdWFscyB0byBsZW5ndGgg
b2YgbV90ZXh0LgogCiAgICAgdW5zaWduZWQgbV90YWJTaXplOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAKaW5kZXggNWMyYjYzYTI5MWVjZjhjNTYzMDYxNjMy
NTMzYjc4MjI1NDA0NjBlMC4uZWU4NTE3OWU2ODIxMDAxYTg4YmQxNTJkYWMwMzdmYzYyOTY1MWM3
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcApAQCAtMTEw
MiwxMCArMTEwMiw2IEBAIFRleHRSdW4gSW5saW5lVGV4dEJveDo6Y29uc3RydWN0VGV4dFJ1bihj
b25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIFN0cmluZ1ZpZXcgc3RyCiAKICAgICBUZXh0UnVuIHJ1
bihzdHJpbmcsIHRleHRQb3MoKSwgZXhwYW5zaW9uKCksIGV4cGFuc2lvbkJlaGF2aW9yKCksIGRp
cmVjdGlvbigpLCBkaXJPdmVycmlkZSgpIHx8IHN0eWxlLnJ0bE9yZGVyaW5nKCkgPT0gVmlzdWFs
T3JkZXIsICFyZW5kZXJlcigpLmNhblVzZVNpbXBsZUZvbnRDb2RlUGF0aCgpKTsKICAgICBydW4u
c2V0VGFiU2l6ZSghc3R5bGUuY29sbGFwc2VXaGl0ZVNwYWNlKCksIHN0eWxlLnRhYlNpemUoKSk7
Ci0KLSAgICAvLyBQcm9wYWdhdGUgdGhlIG1heGltdW0gbGVuZ3RoIG9mIHRoZSBjaGFyYWN0ZXJz
IGJ1ZmZlciB0byB0aGUgVGV4dFJ1biwgZXZlbiB3aGVuIHdlJ3JlIG9ubHkgcHJvY2Vzc2luZyBh
IHN1YnN0cmluZy4KLSAgICBydW4uc2V0Q2hhcmFjdGVyc0xlbmd0aChtYXhpbXVtTGVuZ3RoKTsK
LSAgICBBU1NFUlQocnVuLmNoYXJhY3RlcnNMZW5ndGgoKSA+PSBydW4ubGVuZ3RoKCkpOwogICAg
IHJldHVybiBydW47CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcApp
bmRleCBlOWQxOGFlNTg1MGU4YWNkNzRkZTIwZjhiNzA4MTgwOTIzNTUwNDVlLi40MDNkMTg4N2Nj
ZmEzZjFiMzE2NzA0OTI4NTg4ZTUwMzZhZjE5YzhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRleHQuY3BwCkBAIC01MTQsOSArNTE0LDYgQEAgQUxXQVlTX0lOTElORSBmbG9hdCBS
ZW5kZXJUZXh0Ojp3aWR0aEZyb21DYWNoZShjb25zdCBGb250Q2FzY2FkZSYgZiwgdW5zaWduZWQg
c3QKICAgICB9CiAKICAgICBUZXh0UnVuIHJ1biA9IFJlbmRlckJsb2NrOjpjb25zdHJ1Y3RUZXh0
UnVuKCp0aGlzLCBzdGFydCwgbGVuLCBzdHlsZSk7Ci0gICAgcnVuLnNldENoYXJhY3RlcnNMZW5n
dGgodGV4dExlbmd0aCgpIC0gc3RhcnQpOwotICAgIEFTU0VSVChydW4uY2hhcmFjdGVyc0xlbmd0
aCgpID49IHJ1bi5sZW5ndGgoKSk7Ci0KICAgICBydW4uc2V0Q2hhcmFjdGVyU2NhbkZvckNvZGVQ
YXRoKCFjYW5Vc2VTaW1wbGVGb250Q29kZVBhdGgoKSk7CiAgICAgcnVuLnNldFRhYlNpemUoIXN0
eWxlLmNvbGxhcHNlV2hpdGVTcGFjZSgpLCBzdHlsZS50YWJTaXplKCkpOwogICAgIHJ1bi5zZXRY
UG9zKHhQb3MpOwpAQCAtNzgxLDcgKzc3OCw2IEBAIHN0YXRpYyBmbG9hdCBtYXhXb3JkRnJhZ21l
bnRXaWR0aChSZW5kZXJUZXh0JiByZW5kZXJlciwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlCiAg
ICAgICAgIGZyYWdtZW50V2l0aEh5cGhlbi5hcHBlbmQoc3R5bGUuaHlwaGVuU3RyaW5nKCkpOwog
CiAgICAgICAgIFRleHRSdW4gcnVuID0gUmVuZGVyQmxvY2s6OmNvbnN0cnVjdFRleHRSdW4oZnJh
Z21lbnRXaXRoSHlwaGVuLnRvU3RyaW5nKCksIHN0eWxlKTsKLSAgICAgICAgcnVuLnNldENoYXJh
Y3RlcnNMZW5ndGgoZnJhZ21lbnRXaXRoSHlwaGVuLmxlbmd0aCgpKTsKICAgICAgICAgcnVuLnNl
dENoYXJhY3RlclNjYW5Gb3JDb2RlUGF0aCghcmVuZGVyZXIuY2FuVXNlU2ltcGxlRm9udENvZGVQ
YXRoKCkpOwogICAgICAgICBmbG9hdCBmcmFnbWVudFdpZHRoID0gZm9udC53aWR0aChydW4sICZm
YWxsYmFja0ZvbnRzLCAmZ2x5cGhPdmVyZmxvdyk7CiAKQEAgLTEwMDcsOCArMTAwMyw2IEBAIHZv
aWQgUmVuZGVyVGV4dDo6Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoZmxvYXQgbGVhZFdp
ZHRoLCBIYXNoU2V0PGNvbnN0IEZvCiAgICAgICAgICAgICAgICAgY3Vyck1heFdpZHRoID0gMDsK
ICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgVGV4dFJ1biBydW4gPSBSZW5k
ZXJCbG9jazo6Y29uc3RydWN0VGV4dFJ1bigqdGhpcywgaSwgMSwgc3R5bGUpOwotICAgICAgICAg
ICAgICAgIHJ1bi5zZXRDaGFyYWN0ZXJzTGVuZ3RoKGxlbiAtIGkpOwotICAgICAgICAgICAgICAg
IEFTU0VSVChydW4uY2hhcmFjdGVyc0xlbmd0aCgpID49IHJ1bi5sZW5ndGgoKSk7CiAgICAgICAg
ICAgICAgICAgcnVuLnNldFRhYlNpemUoIXN0eWxlLmNvbGxhcHNlV2hpdGVTcGFjZSgpLCBzdHls
ZS50YWJTaXplKCkpOwogICAgICAgICAgICAgICAgIHJ1bi5zZXRYUG9zKGxlYWRXaWR0aCArIGN1
cnJNYXhXaWR0aCk7CiAKQEAgLTEzOTUsMTIgKzEzODksMTAgQEAgZmxvYXQgUmVuZGVyVGV4dDo6
d2lkdGgodW5zaWduZWQgZnJvbSwgdW5zaWduZWQgbGVuLCBjb25zdCBGb250Q2FzY2FkZSYgZiwg
ZmxvYXQKICAgICAgICAgICAgIHcgPSB3aWR0aEZyb21DYWNoZShmLCBmcm9tLCBsZW4sIHhQb3Ms
IGZhbGxiYWNrRm9udHMsIGdseXBoT3ZlcmZsb3csIHN0eWxlKTsKICAgICB9IGVsc2UgewogICAg
ICAgICBUZXh0UnVuIHJ1biA9IFJlbmRlckJsb2NrOjpjb25zdHJ1Y3RUZXh0UnVuKCp0aGlzLCBm
cm9tLCBsZW4sIHN0eWxlKTsKLSAgICAgICAgcnVuLnNldENoYXJhY3RlcnNMZW5ndGgodGV4dExl
bmd0aCgpIC0gZnJvbSk7Ci0gICAgICAgIEFTU0VSVChydW4uY2hhcmFjdGVyc0xlbmd0aCgpID49
IHJ1bi5sZW5ndGgoKSk7Ci0KICAgICAgICAgcnVuLnNldENoYXJhY3RlclNjYW5Gb3JDb2RlUGF0
aCghY2FuVXNlU2ltcGxlRm9udENvZGVQYXRoKCkpOwogICAgICAgICBydW4uc2V0VGFiU2l6ZSgh
c3R5bGUuY29sbGFwc2VXaGl0ZVNwYWNlKCksIHN0eWxlLnRhYlNpemUoKSk7CiAgICAgICAgIHJ1
bi5zZXRYUG9zKHhQb3MpOworCiAgICAgICAgIHcgPSBmLndpZHRoKHJ1biwgZmFsbGJhY2tGb250
cywgZ2x5cGhPdmVyZmxvdyk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvbGluZS9CcmVha2luZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9saW5lL0JyZWFraW5nQ29udGV4dC5oCmluZGV4IGRmZDNlNWU1YTkxZGUzYzdmNjYzOWEzMjZk
N2UyZTQzZDA0ZDY2ZTEuLjA1NjYwMWU1ZGY1ZGQ1MzkzNDcyNGVhN2RlYjhjODNkZGIyMDA0MmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9saW5lL0JyZWFraW5nQ29udGV4
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9saW5lL0JyZWFraW5nQ29udGV4dC5o
CkBAIC02MjgsOSArNjI4LDYgQEAgQUxXQVlTX0lOTElORSBmbG9hdCB0ZXh0V2lkdGgoUmVuZGVy
VGV4dCYgdGV4dCwgdW5zaWduZWQgZnJvbSwgdW5zaWduZWQgbGVuLCBjb24KICAgICAgICAgcmV0
dXJuIEZvbnRDYXNjYWRlOjp3aWR0aCgqbGF5b3V0LCBmcm9tLCBsZW4sICZmYWxsYmFja0ZvbnRz
KTsKIAogICAgIFRleHRSdW4gcnVuID0gUmVuZGVyQmxvY2s6OmNvbnN0cnVjdFRleHRSdW4odGV4
dCwgZnJvbSwgbGVuLCBzdHlsZSk7Ci0gICAgcnVuLnNldENoYXJhY3RlcnNMZW5ndGgodGV4dC50
ZXh0TGVuZ3RoKCkgLSBmcm9tKTsKLSAgICBBU1NFUlQocnVuLmNoYXJhY3RlcnNMZW5ndGgoKSA+
PSBydW4ubGVuZ3RoKCkpOwotCiAgICAgcnVuLnNldENoYXJhY3RlclNjYW5Gb3JDb2RlUGF0aCgh
dGV4dC5jYW5Vc2VTaW1wbGVGb250Q29kZVBhdGgoKSk7CiAgICAgcnVuLnNldFRhYlNpemUoIWNv
bGxhcHNlV2hpdGVTcGFjZSwgc3R5bGUudGFiU2l6ZSgpKTsKICAgICBydW4uc2V0WFBvcyh4UG9z
KTsKQEAgLTY3NSw5ICs2NzIsNiBAQCBpbmxpbmUgdm9pZCB0cnlIeXBoZW5hdGluZyhSZW5kZXJU
ZXh0JiB0ZXh0LCBjb25zdCBGb250Q2FzY2FkZSYgZm9udCwgY29uc3QgQXRvbQogCiAgICAgY29u
c3QgUmVuZGVyU3R5bGUmIHN0eWxlID0gdGV4dC5zdHlsZSgpOwogICAgIFRleHRSdW4gcnVuID0g
UmVuZGVyQmxvY2s6OmNvbnN0cnVjdFRleHRSdW4odGV4dCwgbGFzdFNwYWNlLCBwb3MgLSBsYXN0
U3BhY2UsIHN0eWxlKTsKLSAgICBydW4uc2V0Q2hhcmFjdGVyc0xlbmd0aCh0ZXh0LnRleHRMZW5n
dGgoKSAtIGxhc3RTcGFjZSk7Ci0gICAgQVNTRVJUKHJ1bi5jaGFyYWN0ZXJzTGVuZ3RoKCkgPj0g
cnVuLmxlbmd0aCgpKTsKLQogICAgIHJ1bi5zZXRUYWJTaXplKCFjb2xsYXBzZVdoaXRlU3BhY2Us
IHN0eWxlLnRhYlNpemUoKSk7CiAgICAgcnVuLnNldFhQb3MoeFBvcyArIGxhc3RTcGFjZVdvcmRT
cGFjaW5nKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdJ
bmxpbmVUZXh0Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHSW5saW5l
VGV4dEJveC5jcHAKaW5kZXggNjhhOTI5YzdjMjNmNDFiMmM4MjUwZTk0ZDA3YjgwNzA3ODk2ZmJk
Yy4uZDFhMmFkOGE1MmQ3NzM0MDIzMjMyNWY3Njg1ZWU2ZDQ2YjkyZTgzNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdJbmxpbmVUZXh0Qm94LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR0lubGluZVRleHRCb3guY3BwCkBAIC0zOTYs
MTAgKzM5Niw2IEBAIFRleHRSdW4gU1ZHSW5saW5lVGV4dEJveDo6Y29uc3RydWN0VGV4dFJ1bihj
b25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IFNWR1RlCiAKICAgICAvLyBXZSBoYW5kbGUg
bGV0dGVyICYgd29yZCBzcGFjaW5nIG91cnNlbHZlcy4KICAgICBydW4uZGlzYWJsZVNwYWNpbmco
KTsKLQotICAgIC8vIFByb3BhZ2F0ZSB0aGUgbWF4aW11bSBsZW5ndGggb2YgdGhlIGNoYXJhY3Rl
cnMgYnVmZmVyIHRvIHRoZSBUZXh0UnVuLCBldmVuIHdoZW4gd2UncmUgb25seSBwcm9jZXNzaW5n
IGEgc3Vic3RyaW5nLgotICAgIHJ1bi5zZXRDaGFyYWN0ZXJzTGVuZ3RoKHJlbmRlcmVyKCkudGV4
dExlbmd0aCgpIC0gZnJhZ21lbnQuY2hhcmFjdGVyT2Zmc2V0KTsKLSAgICBBU1NFUlQocnVuLmNo
YXJhY3RlcnNMZW5ndGgoKSA+PSBydW4ubGVuZ3RoKCkpOwogICAgIHJldHVybiBydW47CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHVGV4dE1ldHJpY3Mu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdUZXh0TWV0cmljcy5jcHAKaW5k
ZXggNzYyN2ZlNTUzMzc2NWU1ZGIwZTE4NDkzNDUyMTY3MWFkZjgzNTJiOC4uNzhlMDZiNTM3YzMx
MzlmNjBmMDNiMjZjOGU3NjkzNzU3MTZhZjVlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9TVkdUZXh0TWV0cmljcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9TVkdUZXh0TWV0cmljcy5jcHAKQEAgLTczLDEwICs3Myw2IEBAIFRleHRSdW4g
U1ZHVGV4dE1ldHJpY3M6OmNvbnN0cnVjdFRleHRSdW4oUmVuZGVyU1ZHSW5saW5lVGV4dCYgdGV4
dCwgdW5zaWduZWQgcG9zCiAKICAgICAvLyBXZSBoYW5kbGUgbGV0dGVyICYgd29yZCBzcGFjaW5n
IG91cnNlbHZlcy4KICAgICBydW4uZGlzYWJsZVNwYWNpbmcoKTsKLQotICAgIC8vIFByb3BhZ2F0
ZSB0aGUgbWF4aW11bSBsZW5ndGggb2YgdGhlIGNoYXJhY3RlcnMgYnVmZmVyIHRvIHRoZSBUZXh0
UnVuLCBldmVuIHdoZW4gd2UncmUgb25seSBwcm9jZXNzaW5nIGEgc3Vic3RyaW5nLgotICAgIHJ1
bi5zZXRDaGFyYWN0ZXJzTGVuZ3RoKHRleHQudGV4dExlbmd0aCgpIC0gcG9zaXRpb24pOwotICAg
IEFTU0VSVChydW4uY2hhcmFjdGVyc0xlbmd0aCgpID49IHJ1bi5sZW5ndGgoKSk7CiAgICAgcmV0
dXJuIHJ1bjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9T
VkdUZXh0TWV0cmljc0J1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9T
VkdUZXh0TWV0cmljc0J1aWxkZXIuY3BwCmluZGV4IGJiMjU5M2QzOGJkNmM4MjFhNDM0YjVhODQ1
MTM4ZTcyZjg4ZDRjM2UuLjJlZmIyN2VlYzFmOTg4NGNmYTljNzhmMDIyMDAwNGMwNzlmMGZhZDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHVGV4dE1ldHJpY3NC
dWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRNZXRy
aWNzQnVpbGRlci5jcHAKQEAgLTM4LDEzICszOCwxMyBAQCBTVkdUZXh0TWV0cmljc0J1aWxkZXI6
OlNWR1RleHRNZXRyaWNzQnVpbGRlcigpCiAKIGlubGluZSBib29sIFNWR1RleHRNZXRyaWNzQnVp
bGRlcjo6Y3VycmVudENoYXJhY3RlclN0YXJ0c1N1cnJvZ2F0ZVBhaXIoKSBjb25zdAogewotICAg
IHJldHVybiBVMTZfSVNfTEVBRChtX3J1blttX3RleHRQb3NpdGlvbl0pICYmIChtX3RleHRQb3Np
dGlvbiArIDEpIDwgbV9ydW4uY2hhcmFjdGVyc0xlbmd0aCgpICYmIFUxNl9JU19UUkFJTChtX3J1
blttX3RleHRQb3NpdGlvbiArIDFdKTsKKyAgICByZXR1cm4gVTE2X0lTX0xFQUQobV9ydW5bbV90
ZXh0UG9zaXRpb25dKSAmJiAobV90ZXh0UG9zaXRpb24gKyAxKSA8IG1fcnVuLmxlbmd0aCgpICYm
IFUxNl9JU19UUkFJTChtX3J1blttX3RleHRQb3NpdGlvbiArIDFdKTsKIH0KIAogYm9vbCBTVkdU
ZXh0TWV0cmljc0J1aWxkZXI6OmFkdmFuY2UoKQogewogICAgIG1fdGV4dFBvc2l0aW9uICs9IG1f
Y3VycmVudE1ldHJpY3MubGVuZ3RoKCk7Ci0gICAgaWYgKG1fdGV4dFBvc2l0aW9uID49IG1fcnVu
LmNoYXJhY3RlcnNMZW5ndGgoKSkKKyAgICBpZiAobV90ZXh0UG9zaXRpb24gPj0gbV9ydW4ubGVu
Z3RoKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmIChtX2lzQ29tcGxleFRleHQp
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>322121</attachid>
            <date>2017-09-28 15:01:54 -0700</date>
            <delta_ts>2017-09-28 15:29:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177620-20170928150153.patch</filename>
            <type>text/plain</type>
            <size>13706</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyNjEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTRiMGYzMDRkYTJjYjI4
Y2Y4MTRiMTY1NDVmMzVlZmE2NWNiMDBmYS4uMDk5YmQ1NDQyM2VkYWYxNmJlNmMxNzlkYTIyMjcz
NDVkOGNjODNhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE3LTA5LTI4ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgVGV4dFJ1bjo6
c2V0Q2hhcmFjdGVyc0xlbmd0aCgpIGFuZCBUZXh0UnVuOjpjaGFyYWN0ZXJzTGVuZ3RoKCkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NzYyMAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBwdXJwb3Nl
IG9mIFRleHRSdW46OnNldENoYXJhY3RlcnNMZW5ndGgoKSBhbmQgVGV4dFJ1bjo6Y2hhcmFjdGVy
c0xlbmd0aCgpIHByZWRhdGUgdGhlCisgICAgICAgIHVzZSBvZiBXaWR0aEl0ZXJhdG9yIHRvIHNh
ZmVseSBpdGVyYXRlIG92ZXIgY2hhcmFjdGVycyBpbiBhIFRleHRSdW4gdGhhdCBtYXkgY29udGFp
bgorICAgICAgICBzdXJyb2dhdGUgaGFsdmVzIGR1ZSB0byBob3cgaXQgd2FzIGNyZWF0ZWQgKHdp
dGhvdXQgdGhvdWdodCBvZiBzdXJyb2dhdGUgcGFpcnMpLiBIaXN0b3JpY2FsbHkKKyAgICAgICAg
VGV4dFJ1bjo6Y2hhcmFjdGVyc0xlbmd0aCgpIGNvbXBsZW1lbnRlZCBUZXh0UnVuOjpsZW5ndGgo
KSBhbmQgcmVwcmVzZW50ZWQgdGhlIGxlbmd0aCBvZiB0aGUKKyAgICAgICAgdGV4dCB0byByZW5k
ZXIgaWdub3JpbmcgYW5kIHJlc3BlY3RpbmcgdHJ1bmNhdGlvbiwgcmVzcGVjdGl2ZWx5LiBXZSBu
b3QgbG9uZ2VyIG5lZWQgZWl0aGVyCisgICAgICAgIG9mIHRoZXNlIG1lbWJlciBmdW5jdGlvbnMg
d2l0aCB0aGUgYWR2ZW50IG9mIFdpZHRoSXRlcmF0b3IuCisKKyAgICAgICAgTm8gZnVuY3Rpb25h
bGl0eSBjaGFuZ2VkLiBTbywgbm8gbmV3IHRlc3RzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRM
YXlvdXQ6OmNvbnN0cnVjdFRleHRSdW4pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1Rl
eHRSdW4uaDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRSdW46OlRleHRSdW4pOgorICAgICAgICAo
V2ViQ29yZTo6VGV4dFJ1bjo6Y2hhcmFjdGVyc0xlbmd0aCBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpUZXh0UnVuOjpzZXRDaGFyYWN0ZXJzTGVuZ3RoKTogRGVsZXRlZC4KKyAg
ICAgICAgKiByZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bmxpbmVUZXh0Qm94Ojpjb25zdHJ1Y3RUZXh0UnVuIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJp
bmcvSW5saW5lVGV4dEJveC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6OndpZHRoRnJvbUNhY2hlIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6Om1heFdvcmRGcmFnbWVudFdpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRleHQ6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRleHQ6OndpZHRoIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvbGlu
ZS9CcmVha2luZ0NvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OnRleHRXaWR0aCk6CisgICAg
ICAgIChXZWJDb3JlOjp0cnlIeXBoZW5hdGluZyk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9T
VkdJbmxpbmVUZXh0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0lubGluZVRleHRCb3g6
OmNvbnN0cnVjdFRleHRSdW4gY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvU1ZHVGV4
dE1ldHJpY3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4dE1ldHJpY3M6OmNvbnN0cnVj
dFRleHRSdW4pOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvU1ZHVGV4dE1ldHJpY3NCdWlsZGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RleHRNZXRyaWNzQnVpbGRlcjo6Y3VycmVudENo
YXJhY3RlclN0YXJ0c1N1cnJvZ2F0ZVBhaXIgY29uc3QpOiBVc2UgVGV4dFJ1bjo6bGVuZ3RoKCku
CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXh0TWV0cmljc0J1aWxkZXI6OmFkdmFuY2UpOiBEaXR0
by4KKwogMjAxNy0wOS0yOCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIEFYOiBEZWZlciBSZW5kZXJMaXN0Qm94IHNlbGVjdGlvbkNoYW5nZWQgZXZlbnQgdW50aWwg
YWZ0ZXIgbGF5b3V0IGlzIGRvbmUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Db21wbGV4VGV4dENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcAppbmRleCA5MDdiZGM1ZDA5
YWFhYzM3NDZlMThiNTUyMTc2NjlhOWQ0MDlkM2Q1Li40YjI5NDY1NWE3ZjU3MWZmZWUwYjg1OTk4
YjFkNWNkNDJmNWNjMDgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Db21wbGV4VGV4dENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHAKQEAgLTc4LDggKzc4LDYgQEAg
cHJpdmF0ZToKICAgICBzdGF0aWMgVGV4dFJ1biBjb25zdHJ1Y3RUZXh0UnVuKFJlbmRlclRleHQm
IHRleHQsIGZsb2F0IHhQb3MpCiAgICAgewogICAgICAgICBUZXh0UnVuIHJ1biA9IFJlbmRlckJs
b2NrOjpjb25zdHJ1Y3RUZXh0UnVuKHRleHQsIHRleHQuc3R5bGUoKSk7Ci0gICAgICAgIHJ1bi5z
ZXRDaGFyYWN0ZXJzTGVuZ3RoKHRleHQudGV4dExlbmd0aCgpKTsKLSAgICAgICAgQVNTRVJUKHJ1
bi5jaGFyYWN0ZXJzTGVuZ3RoKCkgPj0gcnVuLmxlbmd0aCgpKTsKICAgICAgICAgcnVuLnNldFhQ
b3MoeFBvcyk7CiAgICAgICAgIHJldHVybiBydW47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFJ1bi5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvVGV4dFJ1bi5oCmluZGV4IDI5MTFjYmFiNjY3YmZhZGRkYWM3NzQ4MWY1
YThjMjE3NTVkOGIzZjMuLmQyYjVjMWZjMjE0NTIyMjgyNWJjZjQ5MmY3OGIwYzcxZWEyY2MwMzkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RleHRSdW4uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UZXh0UnVuLmgKQEAgLTQ2LDcg
KzQ2LDYgQEAgY2xhc3MgVGV4dFJ1biB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgVGV4dFJ1bihT
dHJpbmdWaWV3IHRleHQsIGZsb2F0IHhwb3MgPSAwLCBmbG9hdCBleHBhbnNpb24gPSAwLCBFeHBh
bnNpb25CZWhhdmlvciBleHBhbnNpb25CZWhhdmlvciA9IERlZmF1bHRFeHBhbnNpb24sIFRleHRE
aXJlY3Rpb24gZGlyZWN0aW9uID0gTFRSLCBib29sIGRpcmVjdGlvbmFsT3ZlcnJpZGUgPSBmYWxz
ZSwgYm9vbCBjaGFyYWN0ZXJTY2FuRm9yQ29kZVBhdGggPSB0cnVlKQogICAgICAgICA6IG1fdGV4
dCh0ZXh0KQotICAgICAgICAsIG1fY2hhcmFjdGVyc0xlbmd0aCh0ZXh0Lmxlbmd0aCgpKQogICAg
ICAgICAsIG1fdGFiU2l6ZSgwKQogICAgICAgICAsIG1feHBvcyh4cG9zKQogICAgICAgICAsIG1f
aG9yaXpvbnRhbEdseXBoU3RyZXRjaCgxKQpAQCAtODMsMTMgKzgyLDExIEBAIHB1YmxpYzoKIAog
ICAgIGJvb2wgaXM4Qml0KCkgY29uc3QgeyByZXR1cm4gbV90ZXh0LmlzOEJpdCgpOyB9CiAgICAg
dW5zaWduZWQgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV90ZXh0Lmxlbmd0aCgpOyB9Ci0gICAg
dW5zaWduZWQgY2hhcmFjdGVyc0xlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fY2hhcmFjdGVyc0xl
bmd0aDsgfQogICAgIFN0cmluZyBzdHJpbmcoKSBjb25zdCB7IHJldHVybiBtX3RleHQudG9TdHJp
bmcoKTsgfQogCiAgICAgdm9pZCBzZXRUZXh0KGNvbnN0IExDaGFyKiBjLCB1bnNpZ25lZCBsZW4p
IHsgbV90ZXh0ID0gU3RyaW5nVmlldyhjLCBsZW4pOyB9CiAgICAgdm9pZCBzZXRUZXh0KGNvbnN0
IFVDaGFyKiBjLCB1bnNpZ25lZCBsZW4pIHsgbV90ZXh0ID0gU3RyaW5nVmlldyhjLCBsZW4pOyB9
CiAgICAgdm9pZCBzZXRUZXh0KFN0cmluZ1ZpZXcgc3RyaW5nVmlldykgeyBtX3RleHQgPSBzdHJp
bmdWaWV3OyB9Ci0gICAgdm9pZCBzZXRDaGFyYWN0ZXJzTGVuZ3RoKHVuc2lnbmVkIGNoYXJhY3Rl
cnNMZW5ndGgpIHsgbV9jaGFyYWN0ZXJzTGVuZ3RoID0gY2hhcmFjdGVyc0xlbmd0aDsgfQogCiAg
ICAgZmxvYXQgaG9yaXpvbnRhbEdseXBoU3RyZXRjaCgpIGNvbnN0IHsgcmV0dXJuIG1faG9yaXpv
bnRhbEdseXBoU3RyZXRjaDsgfQogICAgIHZvaWQgc2V0SG9yaXpvbnRhbEdseXBoU3RyZXRjaChm
bG9hdCBzY2FsZSkgeyBtX2hvcml6b250YWxHbHlwaFN0cmV0Y2ggPSBzY2FsZTsgfQpAQCAtMTE3
LDcgKzExNCw2IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBTdHJpbmdWaWV3IG1fdGV4dDsK
LSAgICB1bnNpZ25lZCBtX2NoYXJhY3RlcnNMZW5ndGg7IC8vIE1hcmtzIHRoZSBlbmQgb2YgdGhl
IGNoYXJhY3RlcnMgYnVmZmVyLiBEZWZhdWx0IGVxdWFscyB0byBsZW5ndGggb2YgbV90ZXh0Lgog
CiAgICAgdW5zaWduZWQgbV90YWJTaXplOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5s
aW5lVGV4dEJveC5jcHAKaW5kZXggNWMyYjYzYTI5MWVjZjhjNTYzMDYxNjMyNTMzYjc4MjI1NDA0
NjBlMC4uYTIwOGI1NjgwZDJmNDY1MDFhMmJlZjc2MDMwYjM2NzU1YjVmMGM4MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcApAQCAtMTA5MiwyMCArMTA5Miwx
NCBAQCBTdHJpbmcgSW5saW5lVGV4dEJveDo6aHlwaGVuYXRlZFN0cmluZ0ZvclRleHRSdW4oY29u
c3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBzdGQ6OgogVGV4dFJ1biBJbmxpbmVUZXh0Qm94Ojpjb25z
dHJ1Y3RUZXh0UnVuKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgU3RyaW5nVmlldyBhbHRlcm5h
dGVTdHJpbmdUb1JlbmRlciwgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gYWx0ZXJuYXRlTGVuZ3Ro
KSBjb25zdAogewogICAgIGlmIChhbHRlcm5hdGVTdHJpbmdUb1JlbmRlci5pc051bGwoKSkKLSAg
ICAgICAgcmV0dXJuIGNvbnN0cnVjdFRleHRSdW4oc3R5bGUsIHN1YnN0cmluZ1RvUmVuZGVyKGFs
dGVybmF0ZUxlbmd0aCksIHJlbmRlcmVyKCkudGV4dExlbmd0aCgpIC0gc3RhcnQoKSk7Ci0gICAg
cmV0dXJuIGNvbnN0cnVjdFRleHRSdW4oc3R5bGUsIGFsdGVybmF0ZVN0cmluZ1RvUmVuZGVyLCBh
bHRlcm5hdGVTdHJpbmdUb1JlbmRlci5sZW5ndGgoKSk7CisgICAgICAgIHJldHVybiBjb25zdHJ1
Y3RUZXh0UnVuKHN0eWxlLCBzdWJzdHJpbmdUb1JlbmRlcihhbHRlcm5hdGVMZW5ndGgpKTsKKyAg
ICByZXR1cm4gY29uc3RydWN0VGV4dFJ1bihzdHlsZSwgYWx0ZXJuYXRlU3RyaW5nVG9SZW5kZXIp
OwogfQogCi1UZXh0UnVuIElubGluZVRleHRCb3g6OmNvbnN0cnVjdFRleHRSdW4oY29uc3QgUmVu
ZGVyU3R5bGUmIHN0eWxlLCBTdHJpbmdWaWV3IHN0cmluZywgdW5zaWduZWQgbWF4aW11bUxlbmd0
aCkgY29uc3QKK1RleHRSdW4gSW5saW5lVGV4dEJveDo6Y29uc3RydWN0VGV4dFJ1bihjb25zdCBS
ZW5kZXJTdHlsZSYgc3R5bGUsIFN0cmluZ1ZpZXcgc3RyaW5nKSBjb25zdAogewotICAgIEFTU0VS
VChtYXhpbXVtTGVuZ3RoID49IHN0cmluZy5sZW5ndGgoKSk7Ci0KICAgICBUZXh0UnVuIHJ1bihz
dHJpbmcsIHRleHRQb3MoKSwgZXhwYW5zaW9uKCksIGV4cGFuc2lvbkJlaGF2aW9yKCksIGRpcmVj
dGlvbigpLCBkaXJPdmVycmlkZSgpIHx8IHN0eWxlLnJ0bE9yZGVyaW5nKCkgPT0gVmlzdWFsT3Jk
ZXIsICFyZW5kZXJlcigpLmNhblVzZVNpbXBsZUZvbnRDb2RlUGF0aCgpKTsKICAgICBydW4uc2V0
VGFiU2l6ZSghc3R5bGUuY29sbGFwc2VXaGl0ZVNwYWNlKCksIHN0eWxlLnRhYlNpemUoKSk7Ci0K
LSAgICAvLyBQcm9wYWdhdGUgdGhlIG1heGltdW0gbGVuZ3RoIG9mIHRoZSBjaGFyYWN0ZXJzIGJ1
ZmZlciB0byB0aGUgVGV4dFJ1biwgZXZlbiB3aGVuIHdlJ3JlIG9ubHkgcHJvY2Vzc2luZyBhIHN1
YnN0cmluZy4KLSAgICBydW4uc2V0Q2hhcmFjdGVyc0xlbmd0aChtYXhpbXVtTGVuZ3RoKTsKLSAg
ICBBU1NFUlQocnVuLmNoYXJhY3RlcnNMZW5ndGgoKSA+PSBydW4ubGVuZ3RoKCkpOwogICAgIHJl
dHVybiBydW47CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Jbmxp
bmVUZXh0Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5oCmlu
ZGV4IGE2YjUxNzZhY2RmMmY4ZWEwYWQ5YzcxYWIwNTg0OTJjYTMxZTdlMjYuLmY4Y2E5MDFkZTQ4
YWNkMmU1MjM1Y2EwMTYxODk3YWFiOGQwMWE5MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0lubGluZVRleHRCb3guaApAQCAtMTEwLDcgKzExMCw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5n
VmlldyBzdWJzdHJpbmdUb1JlbmRlcihzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBvdmVycmlkaW5n
TGVuZ3RoID0geyB9KSBjb25zdDsKICAgICBTdHJpbmcgaHlwaGVuYXRlZFN0cmluZ0ZvclRleHRS
dW4oY29uc3QgUmVuZGVyU3R5bGUmLCBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBhbHRlcm5hdGVM
ZW5ndGggPSB7IH0pIGNvbnN0OwogICAgIFRleHRSdW4gY29uc3RydWN0VGV4dFJ1bihjb25zdCBS
ZW5kZXJTdHlsZSYsIFN0cmluZ1ZpZXcgYWx0ZXJuYXRlU3RyaW5nVG9SZW5kZXIgPSB7IH0sIHN0
ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IGFsdGVybmF0ZUxlbmd0aCA9IHsgfSkgY29uc3Q7Ci0gICAg
VGV4dFJ1biBjb25zdHJ1Y3RUZXh0UnVuKGNvbnN0IFJlbmRlclN0eWxlJiwgU3RyaW5nVmlldywg
dW5zaWduZWQgbWF4aW11bUxlbmd0aCkgY29uc3Q7CisgICAgVGV4dFJ1biBjb25zdHJ1Y3RUZXh0
UnVuKGNvbnN0IFJlbmRlclN0eWxlJiwgU3RyaW5nVmlldykgY29uc3Q7CiAKIHB1YmxpYzoKICAg
ICBGbG9hdFJlY3QgY2FsY3VsYXRlQm91bmRhcmllcygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IEZsb2F0UmVjdCh4KCksIHkoKSwgd2lkdGgoKSwgaGVpZ2h0KCkpOyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKaW5kZXggZTlkMThhZTU4NTBlOGFjZDc0ZGUyMGY4Yjcw
ODE4MDkyMzU1MDQ1ZS4uNDAzZDE4ODdjY2ZhM2YxYjMxNjcwNDkyODU4OGU1MDM2YWYxOWM4ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcApAQCAtNTE0LDkgKzUxNCw2
IEBAIEFMV0FZU19JTkxJTkUgZmxvYXQgUmVuZGVyVGV4dDo6d2lkdGhGcm9tQ2FjaGUoY29uc3Qg
Rm9udENhc2NhZGUmIGYsIHVuc2lnbmVkIHN0CiAgICAgfQogCiAgICAgVGV4dFJ1biBydW4gPSBS
ZW5kZXJCbG9jazo6Y29uc3RydWN0VGV4dFJ1bigqdGhpcywgc3RhcnQsIGxlbiwgc3R5bGUpOwot
ICAgIHJ1bi5zZXRDaGFyYWN0ZXJzTGVuZ3RoKHRleHRMZW5ndGgoKSAtIHN0YXJ0KTsKLSAgICBB
U1NFUlQocnVuLmNoYXJhY3RlcnNMZW5ndGgoKSA+PSBydW4ubGVuZ3RoKCkpOwotCiAgICAgcnVu
LnNldENoYXJhY3RlclNjYW5Gb3JDb2RlUGF0aCghY2FuVXNlU2ltcGxlRm9udENvZGVQYXRoKCkp
OwogICAgIHJ1bi5zZXRUYWJTaXplKCFzdHlsZS5jb2xsYXBzZVdoaXRlU3BhY2UoKSwgc3R5bGUu
dGFiU2l6ZSgpKTsKICAgICBydW4uc2V0WFBvcyh4UG9zKTsKQEAgLTc4MSw3ICs3NzgsNiBAQCBz
dGF0aWMgZmxvYXQgbWF4V29yZEZyYWdtZW50V2lkdGgoUmVuZGVyVGV4dCYgcmVuZGVyZXIsIGNv
bnN0IFJlbmRlclN0eWxlJiBzdHlsZQogICAgICAgICBmcmFnbWVudFdpdGhIeXBoZW4uYXBwZW5k
KHN0eWxlLmh5cGhlblN0cmluZygpKTsKIAogICAgICAgICBUZXh0UnVuIHJ1biA9IFJlbmRlckJs
b2NrOjpjb25zdHJ1Y3RUZXh0UnVuKGZyYWdtZW50V2l0aEh5cGhlbi50b1N0cmluZygpLCBzdHls
ZSk7Ci0gICAgICAgIHJ1bi5zZXRDaGFyYWN0ZXJzTGVuZ3RoKGZyYWdtZW50V2l0aEh5cGhlbi5s
ZW5ndGgoKSk7CiAgICAgICAgIHJ1bi5zZXRDaGFyYWN0ZXJTY2FuRm9yQ29kZVBhdGgoIXJlbmRl
cmVyLmNhblVzZVNpbXBsZUZvbnRDb2RlUGF0aCgpKTsKICAgICAgICAgZmxvYXQgZnJhZ21lbnRX
aWR0aCA9IGZvbnQud2lkdGgocnVuLCAmZmFsbGJhY2tGb250cywgJmdseXBoT3ZlcmZsb3cpOwog
CkBAIC0xMDA3LDggKzEwMDMsNiBAQCB2b2lkIFJlbmRlclRleHQ6OmNvbXB1dGVQcmVmZXJyZWRM
b2dpY2FsV2lkdGhzKGZsb2F0IGxlYWRXaWR0aCwgSGFzaFNldDxjb25zdCBGbwogICAgICAgICAg
ICAgICAgIGN1cnJNYXhXaWR0aCA9IDA7CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAg
ICAgICAgIFRleHRSdW4gcnVuID0gUmVuZGVyQmxvY2s6OmNvbnN0cnVjdFRleHRSdW4oKnRoaXMs
IGksIDEsIHN0eWxlKTsKLSAgICAgICAgICAgICAgICBydW4uc2V0Q2hhcmFjdGVyc0xlbmd0aChs
ZW4gLSBpKTsKLSAgICAgICAgICAgICAgICBBU1NFUlQocnVuLmNoYXJhY3RlcnNMZW5ndGgoKSA+
PSBydW4ubGVuZ3RoKCkpOwogICAgICAgICAgICAgICAgIHJ1bi5zZXRUYWJTaXplKCFzdHlsZS5j
b2xsYXBzZVdoaXRlU3BhY2UoKSwgc3R5bGUudGFiU2l6ZSgpKTsKICAgICAgICAgICAgICAgICBy
dW4uc2V0WFBvcyhsZWFkV2lkdGggKyBjdXJyTWF4V2lkdGgpOwogCkBAIC0xMzk1LDEyICsxMzg5
LDEwIEBAIGZsb2F0IFJlbmRlclRleHQ6OndpZHRoKHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIGxl
biwgY29uc3QgRm9udENhc2NhZGUmIGYsIGZsb2F0CiAgICAgICAgICAgICB3ID0gd2lkdGhGcm9t
Q2FjaGUoZiwgZnJvbSwgbGVuLCB4UG9zLCBmYWxsYmFja0ZvbnRzLCBnbHlwaE92ZXJmbG93LCBz
dHlsZSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgVGV4dFJ1biBydW4gPSBSZW5kZXJCbG9jazo6
Y29uc3RydWN0VGV4dFJ1bigqdGhpcywgZnJvbSwgbGVuLCBzdHlsZSk7Ci0gICAgICAgIHJ1bi5z
ZXRDaGFyYWN0ZXJzTGVuZ3RoKHRleHRMZW5ndGgoKSAtIGZyb20pOwotICAgICAgICBBU1NFUlQo
cnVuLmNoYXJhY3RlcnNMZW5ndGgoKSA+PSBydW4ubGVuZ3RoKCkpOwotCiAgICAgICAgIHJ1bi5z
ZXRDaGFyYWN0ZXJTY2FuRm9yQ29kZVBhdGgoIWNhblVzZVNpbXBsZUZvbnRDb2RlUGF0aCgpKTsK
ICAgICAgICAgcnVuLnNldFRhYlNpemUoIXN0eWxlLmNvbGxhcHNlV2hpdGVTcGFjZSgpLCBzdHls
ZS50YWJTaXplKCkpOwogICAgICAgICBydW4uc2V0WFBvcyh4UG9zKTsKKwogICAgICAgICB3ID0g
Zi53aWR0aChydW4sIGZhbGxiYWNrRm9udHMsIGdseXBoT3ZlcmZsb3cpOwogICAgIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2xpbmUvQnJlYWtpbmdDb250ZXh0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbGluZS9CcmVha2luZ0NvbnRleHQuaAppbmRleCBk
ZmQzZTVlNWE5MWRlM2M3ZjY2MzlhMzI2ZDdlMmU0M2QwNGQ2NmUxLi4wNTY2MDFlNWRmNWRkNTM5
MzQ3MjRlYTdkZWI4YzgzZGRiMjAwNDJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvbGluZS9CcmVha2luZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvbGluZS9CcmVha2luZ0NvbnRleHQuaApAQCAtNjI4LDkgKzYyOCw2IEBAIEFMV0FZU19JTkxJ
TkUgZmxvYXQgdGV4dFdpZHRoKFJlbmRlclRleHQmIHRleHQsIHVuc2lnbmVkIGZyb20sIHVuc2ln
bmVkIGxlbiwgY29uCiAgICAgICAgIHJldHVybiBGb250Q2FzY2FkZTo6d2lkdGgoKmxheW91dCwg
ZnJvbSwgbGVuLCAmZmFsbGJhY2tGb250cyk7CiAKICAgICBUZXh0UnVuIHJ1biA9IFJlbmRlckJs
b2NrOjpjb25zdHJ1Y3RUZXh0UnVuKHRleHQsIGZyb20sIGxlbiwgc3R5bGUpOwotICAgIHJ1bi5z
ZXRDaGFyYWN0ZXJzTGVuZ3RoKHRleHQudGV4dExlbmd0aCgpIC0gZnJvbSk7Ci0gICAgQVNTRVJU
KHJ1bi5jaGFyYWN0ZXJzTGVuZ3RoKCkgPj0gcnVuLmxlbmd0aCgpKTsKLQogICAgIHJ1bi5zZXRD
aGFyYWN0ZXJTY2FuRm9yQ29kZVBhdGgoIXRleHQuY2FuVXNlU2ltcGxlRm9udENvZGVQYXRoKCkp
OwogICAgIHJ1bi5zZXRUYWJTaXplKCFjb2xsYXBzZVdoaXRlU3BhY2UsIHN0eWxlLnRhYlNpemUo
KSk7CiAgICAgcnVuLnNldFhQb3MoeFBvcyk7CkBAIC02NzUsOSArNjcyLDYgQEAgaW5saW5lIHZv
aWQgdHJ5SHlwaGVuYXRpbmcoUmVuZGVyVGV4dCYgdGV4dCwgY29uc3QgRm9udENhc2NhZGUmIGZv
bnQsIGNvbnN0IEF0b20KIAogICAgIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSA9IHRleHQuc3R5
bGUoKTsKICAgICBUZXh0UnVuIHJ1biA9IFJlbmRlckJsb2NrOjpjb25zdHJ1Y3RUZXh0UnVuKHRl
eHQsIGxhc3RTcGFjZSwgcG9zIC0gbGFzdFNwYWNlLCBzdHlsZSk7Ci0gICAgcnVuLnNldENoYXJh
Y3RlcnNMZW5ndGgodGV4dC50ZXh0TGVuZ3RoKCkgLSBsYXN0U3BhY2UpOwotICAgIEFTU0VSVChy
dW4uY2hhcmFjdGVyc0xlbmd0aCgpID49IHJ1bi5sZW5ndGgoKSk7Ci0KICAgICBydW4uc2V0VGFi
U2l6ZSghY29sbGFwc2VXaGl0ZVNwYWNlLCBzdHlsZS50YWJTaXplKCkpOwogICAgIHJ1bi5zZXRY
UG9zKHhQb3MgKyBsYXN0U3BhY2VXb3JkU3BhY2luZyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHSW5saW5lVGV4dEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1NWR0lubGluZVRleHRCb3guY3BwCmluZGV4IDY4YTkyOWM3YzIzZjQx
YjJjODI1MGU5NGQwN2I4MDcwNzg5NmZiZGMuLmQxYTJhZDhhNTJkNzczNDAyMzIzMjVmNzY4NWVl
NmQ0NmI5MmU4MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZH
SW5saW5lVGV4dEJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdJ
bmxpbmVUZXh0Qm94LmNwcApAQCAtMzk2LDEwICszOTYsNiBAQCBUZXh0UnVuIFNWR0lubGluZVRl
eHRCb3g6OmNvbnN0cnVjdFRleHRSdW4oY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBT
VkdUZQogCiAgICAgLy8gV2UgaGFuZGxlIGxldHRlciAmIHdvcmQgc3BhY2luZyBvdXJzZWx2ZXMu
CiAgICAgcnVuLmRpc2FibGVTcGFjaW5nKCk7Ci0KLSAgICAvLyBQcm9wYWdhdGUgdGhlIG1heGlt
dW0gbGVuZ3RoIG9mIHRoZSBjaGFyYWN0ZXJzIGJ1ZmZlciB0byB0aGUgVGV4dFJ1biwgZXZlbiB3
aGVuIHdlJ3JlIG9ubHkgcHJvY2Vzc2luZyBhIHN1YnN0cmluZy4KLSAgICBydW4uc2V0Q2hhcmFj
dGVyc0xlbmd0aChyZW5kZXJlcigpLnRleHRMZW5ndGgoKSAtIGZyYWdtZW50LmNoYXJhY3Rlck9m
ZnNldCk7Ci0gICAgQVNTRVJUKHJ1bi5jaGFyYWN0ZXJzTGVuZ3RoKCkgPj0gcnVuLmxlbmd0aCgp
KTsKICAgICByZXR1cm4gcnVuOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1NWR1RleHRNZXRyaWNzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvU1ZHVGV4dE1ldHJpY3MuY3BwCmluZGV4IDc2MjdmZTU1MzM3NjVlNWRiMGUxODQ5MzQ1MjE2
NzFhZGY4MzUyYjguLjc4ZTA2YjUzN2MzMTM5ZjYwZjAzYjI2YzhlNzY5Mzc1NzE2YWY1ZWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHVGV4dE1ldHJpY3MuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHVGV4dE1ldHJpY3MuY3BwCkBA
IC03MywxMCArNzMsNiBAQCBUZXh0UnVuIFNWR1RleHRNZXRyaWNzOjpjb25zdHJ1Y3RUZXh0UnVu
KFJlbmRlclNWR0lubGluZVRleHQmIHRleHQsIHVuc2lnbmVkIHBvcwogCiAgICAgLy8gV2UgaGFu
ZGxlIGxldHRlciAmIHdvcmQgc3BhY2luZyBvdXJzZWx2ZXMuCiAgICAgcnVuLmRpc2FibGVTcGFj
aW5nKCk7Ci0KLSAgICAvLyBQcm9wYWdhdGUgdGhlIG1heGltdW0gbGVuZ3RoIG9mIHRoZSBjaGFy
YWN0ZXJzIGJ1ZmZlciB0byB0aGUgVGV4dFJ1biwgZXZlbiB3aGVuIHdlJ3JlIG9ubHkgcHJvY2Vz
c2luZyBhIHN1YnN0cmluZy4KLSAgICBydW4uc2V0Q2hhcmFjdGVyc0xlbmd0aCh0ZXh0LnRleHRM
ZW5ndGgoKSAtIHBvc2l0aW9uKTsKLSAgICBBU1NFUlQocnVuLmNoYXJhY3RlcnNMZW5ndGgoKSA+
PSBydW4ubGVuZ3RoKCkpOwogICAgIHJldHVybiBydW47CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHVGV4dE1ldHJpY3NCdWlsZGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHVGV4dE1ldHJpY3NCdWlsZGVyLmNwcAppbmRleCBi
YjI1OTNkMzhiZDZjODIxYTQzNGI1YTg0NTEzOGU3MmY4OGQ0YzNlLi4yZWZiMjdlZWMxZjk4ODRj
ZmE5Yzc4ZjAyMjAwMDRjMDc5ZjBmYWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1NWR1RleHRNZXRyaWNzQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9TVkdUZXh0TWV0cmljc0J1aWxkZXIuY3BwCkBAIC0zOCwxMyArMzgsMTMg
QEAgU1ZHVGV4dE1ldHJpY3NCdWlsZGVyOjpTVkdUZXh0TWV0cmljc0J1aWxkZXIoKQogCiBpbmxp
bmUgYm9vbCBTVkdUZXh0TWV0cmljc0J1aWxkZXI6OmN1cnJlbnRDaGFyYWN0ZXJTdGFydHNTdXJy
b2dhdGVQYWlyKCkgY29uc3QKIHsKLSAgICByZXR1cm4gVTE2X0lTX0xFQUQobV9ydW5bbV90ZXh0
UG9zaXRpb25dKSAmJiAobV90ZXh0UG9zaXRpb24gKyAxKSA8IG1fcnVuLmNoYXJhY3RlcnNMZW5n
dGgoKSAmJiBVMTZfSVNfVFJBSUwobV9ydW5bbV90ZXh0UG9zaXRpb24gKyAxXSk7CisgICAgcmV0
dXJuIFUxNl9JU19MRUFEKG1fcnVuW21fdGV4dFBvc2l0aW9uXSkgJiYgKG1fdGV4dFBvc2l0aW9u
ICsgMSkgPCBtX3J1bi5sZW5ndGgoKSAmJiBVMTZfSVNfVFJBSUwobV9ydW5bbV90ZXh0UG9zaXRp
b24gKyAxXSk7CiB9CiAKIGJvb2wgU1ZHVGV4dE1ldHJpY3NCdWlsZGVyOjphZHZhbmNlKCkKIHsK
ICAgICBtX3RleHRQb3NpdGlvbiArPSBtX2N1cnJlbnRNZXRyaWNzLmxlbmd0aCgpOwotICAgIGlm
IChtX3RleHRQb3NpdGlvbiA+PSBtX3J1bi5jaGFyYWN0ZXJzTGVuZ3RoKCkpCisgICAgaWYgKG1f
dGV4dFBvc2l0aW9uID49IG1fcnVuLmxlbmd0aCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
ICAgICBpZiAobV9pc0NvbXBsZXhUZXh0KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>322127</attachid>
            <date>2017-09-28 15:29:08 -0700</date>
            <delta_ts>2017-09-28 15:43:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177620-20170928152907.patch</filename>
            <type>text/plain</type>
            <size>14092</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyNjEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTRiMGYzMDRkYTJjYjI4
Y2Y4MTRiMTY1NDVmMzVlZmE2NWNiMDBmYS4uZDE5YmNhZjg1NGRmM2Y5NzM0NDI1MzZlOTk2ZGQ2
MTFjYjcyNzJlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE3LTA5LTI4ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgVGV4dFJ1bjo6
c2V0Q2hhcmFjdGVyc0xlbmd0aCgpIGFuZCBUZXh0UnVuOjpjaGFyYWN0ZXJzTGVuZ3RoKCkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NzYyMAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBwdXJwb3Nl
IG9mIFRleHRSdW46OnNldENoYXJhY3RlcnNMZW5ndGgoKSBhbmQgVGV4dFJ1bjo6Y2hhcmFjdGVy
c0xlbmd0aCgpIHByZWRhdGUgdGhlCisgICAgICAgIHVzZSBvZiBXaWR0aEl0ZXJhdG9yIHRvIHNh
ZmVseSBpdGVyYXRlIG92ZXIgY2hhcmFjdGVycyBpbiBhIFRleHRSdW4gdGhhdCBtYXkgY29udGFp
bgorICAgICAgICBzdXJyb2dhdGUgaGFsdmVzIGR1ZSB0byBob3cgaXQgd2FzIGNyZWF0ZWQgKHdp
dGhvdXQgdGhvdWdodCBvZiBzdXJyb2dhdGUgcGFpcnMpLiBIaXN0b3JpY2FsbHkKKyAgICAgICAg
VGV4dFJ1bjo6Y2hhcmFjdGVyc0xlbmd0aCgpIGNvbXBsZW1lbnRlZCBUZXh0UnVuOjpsZW5ndGgo
KSBhbmQgcmVwcmVzZW50ZWQgdGhlIGxlbmd0aCBvZiB0aGUKKyAgICAgICAgdGV4dCB0byByZW5k
ZXIgaWdub3JpbmcgYW5kIHJlc3BlY3RpbmcgdHJ1bmNhdGlvbiwgcmVzcGVjdGl2ZWx5LiBXZSBu
b3QgbG9uZ2VyIG5lZWQgZWl0aGVyCisgICAgICAgIG9mIHRoZXNlIG1lbWJlciBmdW5jdGlvbnMg
d2l0aCB0aGUgYWR2ZW50IG9mIFdpZHRoSXRlcmF0b3IuCisKKyAgICAgICAgTm8gZnVuY3Rpb25h
bGl0eSBjaGFuZ2VkLiBTbywgbm8gbmV3IHRlc3RzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRM
YXlvdXQ6OmNvbnN0cnVjdFRleHRSdW4pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1Rl
eHRSdW4uaDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRSdW46OlRleHRSdW4pOgorICAgICAgICAo
V2ViQ29yZTo6VGV4dFJ1bjo6Y2hhcmFjdGVyc0xlbmd0aCBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpUZXh0UnVuOjpzZXRDaGFyYWN0ZXJzTGVuZ3RoKTogRGVsZXRlZC4KKyAg
ICAgICAgKiByZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bmxpbmVUZXh0Qm94Ojpjb25zdHJ1Y3RUZXh0UnVuIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJp
bmcvSW5saW5lVGV4dEJveC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lVGV4dEJveDo6Y29u
c3RydWN0VGV4dFJ1bik6IERlbGV0ZWQgb3ZlcmxvYWQgdGhhdCB0b29rIGNvbnN0IFJlbmRlclN0
eWxlJiBzdHlsZQorICAgICAgICBhbmQgU3RyaW5nVmlldy4KKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Ojp3aWR0aEZyb21D
YWNoZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjptYXhXb3JkRnJhZ21lbnRXaWR0aCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Ojpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRo
cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Ojp3aWR0aCBjb25zdCk6CisgICAgICAg
ICogcmVuZGVyaW5nL2xpbmUvQnJlYWtpbmdDb250ZXh0Lmg6CisgICAgICAgIChXZWJDb3JlOjp0
ZXh0V2lkdGgpOgorICAgICAgICAoV2ViQ29yZTo6dHJ5SHlwaGVuYXRpbmcpOgorICAgICAgICAq
IHJlbmRlcmluZy9zdmcvU1ZHSW5saW5lVGV4dEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdJbmxpbmVUZXh0Qm94Ojpjb25zdHJ1Y3RUZXh0UnVuIGNvbnN0KToKKyAgICAgICAgKiByZW5k
ZXJpbmcvc3ZnL1NWR1RleHRNZXRyaWNzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RleHRN
ZXRyaWNzOjpjb25zdHJ1Y3RUZXh0UnVuKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1NWR1Rl
eHRNZXRyaWNzQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXh0TWV0cmljc0J1
aWxkZXI6OmN1cnJlbnRDaGFyYWN0ZXJTdGFydHNTdXJyb2dhdGVQYWlyIGNvbnN0KTogVXNlIFRl
eHRSdW46Omxlbmd0aCgpLgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4dE1ldHJpY3NCdWlsZGVy
OjphZHZhbmNlKTogRGl0dG8uCisKIDIwMTctMDktMjggIFphbGFuIEJ1anRhcyAgPHphbGFuQGFw
cGxlLmNvbT4KIAogICAgICAgICBBWDogRGVmZXIgUmVuZGVyTGlzdEJveCBzZWxlY3Rpb25DaGFu
Z2VkIGV2ZW50IHVudGlsIGFmdGVyIGxheW91dCBpcyBkb25lLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHAK
aW5kZXggOTA3YmRjNWQwOWFhYWMzNzQ2ZTE4YjU1MjE3NjY5YTlkNDA5ZDNkNS4uNGIyOTQ2NTVh
N2Y1NzFmZmVlMGI4NTk5OGIxZDVjZDQyZjVjYzA4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db21wbGV4VGV4dENvbnRyb2xsZXIuY3BwCkBA
IC03OCw4ICs3OCw2IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIFRleHRSdW4gY29uc3RydWN0VGV4
dFJ1bihSZW5kZXJUZXh0JiB0ZXh0LCBmbG9hdCB4UG9zKQogICAgIHsKICAgICAgICAgVGV4dFJ1
biBydW4gPSBSZW5kZXJCbG9jazo6Y29uc3RydWN0VGV4dFJ1bih0ZXh0LCB0ZXh0LnN0eWxlKCkp
OwotICAgICAgICBydW4uc2V0Q2hhcmFjdGVyc0xlbmd0aCh0ZXh0LnRleHRMZW5ndGgoKSk7Ci0g
ICAgICAgIEFTU0VSVChydW4uY2hhcmFjdGVyc0xlbmd0aCgpID49IHJ1bi5sZW5ndGgoKSk7CiAg
ICAgICAgIHJ1bi5zZXRYUG9zKHhQb3MpOwogICAgICAgICByZXR1cm4gcnVuOwogICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RleHRSdW4uaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RleHRSdW4uaAppbmRleCAyOTExY2JhYjY2
N2JmYWRkZGFjNzc0ODFmNWE4YzIxNzU1ZDhiM2YzLi5kMmI1YzFmYzIxNDUyMjI4MjViY2Y0OTJm
NzhiMGM3MWVhMmNjMDM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9UZXh0UnVuLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGV4
dFJ1bi5oCkBAIC00Niw3ICs0Niw2IEBAIGNsYXNzIFRleHRSdW4gewogcHVibGljOgogICAgIGV4
cGxpY2l0IFRleHRSdW4oU3RyaW5nVmlldyB0ZXh0LCBmbG9hdCB4cG9zID0gMCwgZmxvYXQgZXhw
YW5zaW9uID0gMCwgRXhwYW5zaW9uQmVoYXZpb3IgZXhwYW5zaW9uQmVoYXZpb3IgPSBEZWZhdWx0
RXhwYW5zaW9uLCBUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbiA9IExUUiwgYm9vbCBkaXJlY3Rpb25h
bE92ZXJyaWRlID0gZmFsc2UsIGJvb2wgY2hhcmFjdGVyU2NhbkZvckNvZGVQYXRoID0gdHJ1ZSkK
ICAgICAgICAgOiBtX3RleHQodGV4dCkKLSAgICAgICAgLCBtX2NoYXJhY3RlcnNMZW5ndGgodGV4
dC5sZW5ndGgoKSkKICAgICAgICAgLCBtX3RhYlNpemUoMCkKICAgICAgICAgLCBtX3hwb3MoeHBv
cykKICAgICAgICAgLCBtX2hvcml6b250YWxHbHlwaFN0cmV0Y2goMSkKQEAgLTgzLDEzICs4Miwx
MSBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzOEJpdCgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dC5p
czhCaXQoKTsgfQogICAgIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dC5s
ZW5ndGgoKTsgfQotICAgIHVuc2lnbmVkIGNoYXJhY3RlcnNMZW5ndGgoKSBjb25zdCB7IHJldHVy
biBtX2NoYXJhY3RlcnNMZW5ndGg7IH0KICAgICBTdHJpbmcgc3RyaW5nKCkgY29uc3QgeyByZXR1
cm4gbV90ZXh0LnRvU3RyaW5nKCk7IH0KIAogICAgIHZvaWQgc2V0VGV4dChjb25zdCBMQ2hhciog
YywgdW5zaWduZWQgbGVuKSB7IG1fdGV4dCA9IFN0cmluZ1ZpZXcoYywgbGVuKTsgfQogICAgIHZv
aWQgc2V0VGV4dChjb25zdCBVQ2hhciogYywgdW5zaWduZWQgbGVuKSB7IG1fdGV4dCA9IFN0cmlu
Z1ZpZXcoYywgbGVuKTsgfQogICAgIHZvaWQgc2V0VGV4dChTdHJpbmdWaWV3IHN0cmluZ1ZpZXcp
IHsgbV90ZXh0ID0gc3RyaW5nVmlldzsgfQotICAgIHZvaWQgc2V0Q2hhcmFjdGVyc0xlbmd0aCh1
bnNpZ25lZCBjaGFyYWN0ZXJzTGVuZ3RoKSB7IG1fY2hhcmFjdGVyc0xlbmd0aCA9IGNoYXJhY3Rl
cnNMZW5ndGg7IH0KIAogICAgIGZsb2F0IGhvcml6b250YWxHbHlwaFN0cmV0Y2goKSBjb25zdCB7
IHJldHVybiBtX2hvcml6b250YWxHbHlwaFN0cmV0Y2g7IH0KICAgICB2b2lkIHNldEhvcml6b250
YWxHbHlwaFN0cmV0Y2goZmxvYXQgc2NhbGUpIHsgbV9ob3Jpem9udGFsR2x5cGhTdHJldGNoID0g
c2NhbGU7IH0KQEAgLTExNyw3ICsxMTQsNiBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgU3Ry
aW5nVmlldyBtX3RleHQ7Ci0gICAgdW5zaWduZWQgbV9jaGFyYWN0ZXJzTGVuZ3RoOyAvLyBNYXJr
cyB0aGUgZW5kIG9mIHRoZSBjaGFyYWN0ZXJzIGJ1ZmZlci4gRGVmYXVsdCBlcXVhbHMgdG8gbGVu
Z3RoIG9mIG1fdGV4dC4KIAogICAgIHVuc2lnbmVkIG1fdGFiU2l6ZTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCmluZGV4IDVjMmI2M2EyOTFlY2Y4YzU2MzA2
MTYzMjUzM2I3ODIyNTQwNDYwZTAuLmVmNmQzYThmMTFiMTFjNTc2YmQ4NmI3YzIwMzQzNDc3MWIx
NTZmNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAKQEAg
LTEwOTEsMjIgKzEwOTEsMTQgQEAgU3RyaW5nIElubGluZVRleHRCb3g6Omh5cGhlbmF0ZWRTdHJp
bmdGb3JUZXh0UnVuKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgc3RkOjoKIAogVGV4dFJ1biBJ
bmxpbmVUZXh0Qm94Ojpjb25zdHJ1Y3RUZXh0UnVuKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwg
U3RyaW5nVmlldyBhbHRlcm5hdGVTdHJpbmdUb1JlbmRlciwgc3RkOjpvcHRpb25hbDx1bnNpZ25l
ZD4gYWx0ZXJuYXRlTGVuZ3RoKSBjb25zdAogeworICAgIGF1dG8gYWN0dWFsbHlDb25zdHJ1Y3RU
ZXh0UnVuID0gWyZdIChTdHJpbmdWaWV3IHN0cmluZykgeworICAgICAgICBUZXh0UnVuIHJ1bihz
dHJpbmcsIHRleHRQb3MoKSwgZXhwYW5zaW9uKCksIGV4cGFuc2lvbkJlaGF2aW9yKCksIGRpcmVj
dGlvbigpLCBkaXJPdmVycmlkZSgpIHx8IHN0eWxlLnJ0bE9yZGVyaW5nKCkgPT0gVmlzdWFsT3Jk
ZXIsICFyZW5kZXJlcigpLmNhblVzZVNpbXBsZUZvbnRDb2RlUGF0aCgpKTsKKyAgICAgICAgcnVu
LnNldFRhYlNpemUoIXN0eWxlLmNvbGxhcHNlV2hpdGVTcGFjZSgpLCBzdHlsZS50YWJTaXplKCkp
OworICAgICAgICByZXR1cm4gcnVuOworICAgIH07CiAgICAgaWYgKGFsdGVybmF0ZVN0cmluZ1Rv
UmVuZGVyLmlzTnVsbCgpKQotICAgICAgICByZXR1cm4gY29uc3RydWN0VGV4dFJ1bihzdHlsZSwg
c3Vic3RyaW5nVG9SZW5kZXIoYWx0ZXJuYXRlTGVuZ3RoKSwgcmVuZGVyZXIoKS50ZXh0TGVuZ3Ro
KCkgLSBzdGFydCgpKTsKLSAgICByZXR1cm4gY29uc3RydWN0VGV4dFJ1bihzdHlsZSwgYWx0ZXJu
YXRlU3RyaW5nVG9SZW5kZXIsIGFsdGVybmF0ZVN0cmluZ1RvUmVuZGVyLmxlbmd0aCgpKTsKLX0K
LQotVGV4dFJ1biBJbmxpbmVUZXh0Qm94Ojpjb25zdHJ1Y3RUZXh0UnVuKGNvbnN0IFJlbmRlclN0
eWxlJiBzdHlsZSwgU3RyaW5nVmlldyBzdHJpbmcsIHVuc2lnbmVkIG1heGltdW1MZW5ndGgpIGNv
bnN0Ci17Ci0gICAgQVNTRVJUKG1heGltdW1MZW5ndGggPj0gc3RyaW5nLmxlbmd0aCgpKTsKLQot
ICAgIFRleHRSdW4gcnVuKHN0cmluZywgdGV4dFBvcygpLCBleHBhbnNpb24oKSwgZXhwYW5zaW9u
QmVoYXZpb3IoKSwgZGlyZWN0aW9uKCksIGRpck92ZXJyaWRlKCkgfHwgc3R5bGUucnRsT3JkZXJp
bmcoKSA9PSBWaXN1YWxPcmRlciwgIXJlbmRlcmVyKCkuY2FuVXNlU2ltcGxlRm9udENvZGVQYXRo
KCkpOwotICAgIHJ1bi5zZXRUYWJTaXplKCFzdHlsZS5jb2xsYXBzZVdoaXRlU3BhY2UoKSwgc3R5
bGUudGFiU2l6ZSgpKTsKLQotICAgIC8vIFByb3BhZ2F0ZSB0aGUgbWF4aW11bSBsZW5ndGggb2Yg
dGhlIGNoYXJhY3RlcnMgYnVmZmVyIHRvIHRoZSBUZXh0UnVuLCBldmVuIHdoZW4gd2UncmUgb25s
eSBwcm9jZXNzaW5nIGEgc3Vic3RyaW5nLgotICAgIHJ1bi5zZXRDaGFyYWN0ZXJzTGVuZ3RoKG1h
eGltdW1MZW5ndGgpOwotICAgIEFTU0VSVChydW4uY2hhcmFjdGVyc0xlbmd0aCgpID49IHJ1bi5s
ZW5ndGgoKSk7Ci0gICAgcmV0dXJuIHJ1bjsKKyAgICAgICAgcmV0dXJuIGFjdHVhbGx5Q29uc3Ry
dWN0VGV4dFJ1bihzdWJzdHJpbmdUb1JlbmRlcihhbHRlcm5hdGVMZW5ndGgpKTsKKyAgICByZXR1
cm4gYWN0dWFsbHlDb25zdHJ1Y3RUZXh0UnVuKGFsdGVybmF0ZVN0cmluZ1RvUmVuZGVyKTsKIH0K
IAogaW5saW5lIGNvbnN0IFJlbmRlckNvbWJpbmVUZXh0KiBJbmxpbmVUZXh0Qm94Ojpjb21iaW5l
ZFRleHQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGlu
ZVRleHRCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmgKaW5k
ZXggYTZiNTE3NmFjZGYyZjhlYTBhZDljNzFhYjA1ODQ5MmNhMzFlN2UyNi4uNDhmZDM4NTFjOGQw
MTE1MmZhZTk5MDgxNTc3MGRlMTYyNTUwMDNhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0lubGluZVRleHRCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
SW5saW5lVGV4dEJveC5oCkBAIC0xMTAsNyArMTEwLDYgQEAgcHJpdmF0ZToKICAgICBTdHJpbmdW
aWV3IHN1YnN0cmluZ1RvUmVuZGVyKHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IG92ZXJyaWRpbmdM
ZW5ndGggPSB7IH0pIGNvbnN0OwogICAgIFN0cmluZyBoeXBoZW5hdGVkU3RyaW5nRm9yVGV4dFJ1
bihjb25zdCBSZW5kZXJTdHlsZSYsIHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IGFsdGVybmF0ZUxl
bmd0aCA9IHsgfSkgY29uc3Q7CiAgICAgVGV4dFJ1biBjb25zdHJ1Y3RUZXh0UnVuKGNvbnN0IFJl
bmRlclN0eWxlJiwgU3RyaW5nVmlldyBhbHRlcm5hdGVTdHJpbmdUb1JlbmRlciA9IHsgfSwgc3Rk
OjpvcHRpb25hbDx1bnNpZ25lZD4gYWx0ZXJuYXRlTGVuZ3RoID0geyB9KSBjb25zdDsKLSAgICBU
ZXh0UnVuIGNvbnN0cnVjdFRleHRSdW4oY29uc3QgUmVuZGVyU3R5bGUmLCBTdHJpbmdWaWV3LCB1
bnNpZ25lZCBtYXhpbXVtTGVuZ3RoKSBjb25zdDsKIAogcHVibGljOgogICAgIEZsb2F0UmVjdCBj
YWxjdWxhdGVCb3VuZGFyaWVzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gRmxvYXRSZWN0KHgo
KSwgeSgpLCB3aWR0aCgpLCBoZWlnaHQoKSk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0LmNwcAppbmRleCBlOWQxOGFlNTg1MGU4YWNkNzRkZTIwZjhiNzA4MTgwOTIzNTUwNDVl
Li40MDNkMTg4N2NjZmEzZjFiMzE2NzA0OTI4NTg4ZTUwMzZhZjE5YzhlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCkBAIC01MTQsOSArNTE0LDYgQEAgQUxXQVlTX0lO
TElORSBmbG9hdCBSZW5kZXJUZXh0Ojp3aWR0aEZyb21DYWNoZShjb25zdCBGb250Q2FzY2FkZSYg
ZiwgdW5zaWduZWQgc3QKICAgICB9CiAKICAgICBUZXh0UnVuIHJ1biA9IFJlbmRlckJsb2NrOjpj
b25zdHJ1Y3RUZXh0UnVuKCp0aGlzLCBzdGFydCwgbGVuLCBzdHlsZSk7Ci0gICAgcnVuLnNldENo
YXJhY3RlcnNMZW5ndGgodGV4dExlbmd0aCgpIC0gc3RhcnQpOwotICAgIEFTU0VSVChydW4uY2hh
cmFjdGVyc0xlbmd0aCgpID49IHJ1bi5sZW5ndGgoKSk7Ci0KICAgICBydW4uc2V0Q2hhcmFjdGVy
U2NhbkZvckNvZGVQYXRoKCFjYW5Vc2VTaW1wbGVGb250Q29kZVBhdGgoKSk7CiAgICAgcnVuLnNl
dFRhYlNpemUoIXN0eWxlLmNvbGxhcHNlV2hpdGVTcGFjZSgpLCBzdHlsZS50YWJTaXplKCkpOwog
ICAgIHJ1bi5zZXRYUG9zKHhQb3MpOwpAQCAtNzgxLDcgKzc3OCw2IEBAIHN0YXRpYyBmbG9hdCBt
YXhXb3JkRnJhZ21lbnRXaWR0aChSZW5kZXJUZXh0JiByZW5kZXJlciwgY29uc3QgUmVuZGVyU3R5
bGUmIHN0eWxlCiAgICAgICAgIGZyYWdtZW50V2l0aEh5cGhlbi5hcHBlbmQoc3R5bGUuaHlwaGVu
U3RyaW5nKCkpOwogCiAgICAgICAgIFRleHRSdW4gcnVuID0gUmVuZGVyQmxvY2s6OmNvbnN0cnVj
dFRleHRSdW4oZnJhZ21lbnRXaXRoSHlwaGVuLnRvU3RyaW5nKCksIHN0eWxlKTsKLSAgICAgICAg
cnVuLnNldENoYXJhY3RlcnNMZW5ndGgoZnJhZ21lbnRXaXRoSHlwaGVuLmxlbmd0aCgpKTsKICAg
ICAgICAgcnVuLnNldENoYXJhY3RlclNjYW5Gb3JDb2RlUGF0aCghcmVuZGVyZXIuY2FuVXNlU2lt
cGxlRm9udENvZGVQYXRoKCkpOwogICAgICAgICBmbG9hdCBmcmFnbWVudFdpZHRoID0gZm9udC53
aWR0aChydW4sICZmYWxsYmFja0ZvbnRzLCAmZ2x5cGhPdmVyZmxvdyk7CiAKQEAgLTEwMDcsOCAr
MTAwMyw2IEBAIHZvaWQgUmVuZGVyVGV4dDo6Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMo
ZmxvYXQgbGVhZFdpZHRoLCBIYXNoU2V0PGNvbnN0IEZvCiAgICAgICAgICAgICAgICAgY3Vyck1h
eFdpZHRoID0gMDsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgVGV4dFJ1
biBydW4gPSBSZW5kZXJCbG9jazo6Y29uc3RydWN0VGV4dFJ1bigqdGhpcywgaSwgMSwgc3R5bGUp
OwotICAgICAgICAgICAgICAgIHJ1bi5zZXRDaGFyYWN0ZXJzTGVuZ3RoKGxlbiAtIGkpOwotICAg
ICAgICAgICAgICAgIEFTU0VSVChydW4uY2hhcmFjdGVyc0xlbmd0aCgpID49IHJ1bi5sZW5ndGgo
KSk7CiAgICAgICAgICAgICAgICAgcnVuLnNldFRhYlNpemUoIXN0eWxlLmNvbGxhcHNlV2hpdGVT
cGFjZSgpLCBzdHlsZS50YWJTaXplKCkpOwogICAgICAgICAgICAgICAgIHJ1bi5zZXRYUG9zKGxl
YWRXaWR0aCArIGN1cnJNYXhXaWR0aCk7CiAKQEAgLTEzOTUsMTIgKzEzODksMTAgQEAgZmxvYXQg
UmVuZGVyVGV4dDo6d2lkdGgodW5zaWduZWQgZnJvbSwgdW5zaWduZWQgbGVuLCBjb25zdCBGb250
Q2FzY2FkZSYgZiwgZmxvYXQKICAgICAgICAgICAgIHcgPSB3aWR0aEZyb21DYWNoZShmLCBmcm9t
LCBsZW4sIHhQb3MsIGZhbGxiYWNrRm9udHMsIGdseXBoT3ZlcmZsb3csIHN0eWxlKTsKICAgICB9
IGVsc2UgewogICAgICAgICBUZXh0UnVuIHJ1biA9IFJlbmRlckJsb2NrOjpjb25zdHJ1Y3RUZXh0
UnVuKCp0aGlzLCBmcm9tLCBsZW4sIHN0eWxlKTsKLSAgICAgICAgcnVuLnNldENoYXJhY3RlcnNM
ZW5ndGgodGV4dExlbmd0aCgpIC0gZnJvbSk7Ci0gICAgICAgIEFTU0VSVChydW4uY2hhcmFjdGVy
c0xlbmd0aCgpID49IHJ1bi5sZW5ndGgoKSk7Ci0KICAgICAgICAgcnVuLnNldENoYXJhY3RlclNj
YW5Gb3JDb2RlUGF0aCghY2FuVXNlU2ltcGxlRm9udENvZGVQYXRoKCkpOwogICAgICAgICBydW4u
c2V0VGFiU2l6ZSghc3R5bGUuY29sbGFwc2VXaGl0ZVNwYWNlKCksIHN0eWxlLnRhYlNpemUoKSk7
CiAgICAgICAgIHJ1bi5zZXRYUG9zKHhQb3MpOworCiAgICAgICAgIHcgPSBmLndpZHRoKHJ1biwg
ZmFsbGJhY2tGb250cywgZ2x5cGhPdmVyZmxvdyk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvbGluZS9CcmVha2luZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9saW5lL0JyZWFraW5nQ29udGV4dC5oCmluZGV4IGRmZDNlNWU1YTkxZGUz
YzdmNjYzOWEzMjZkN2UyZTQzZDA0ZDY2ZTEuLjA1NjYwMWU1ZGY1ZGQ1MzkzNDcyNGVhN2RlYjhj
ODNkZGIyMDA0MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9saW5lL0Jy
ZWFraW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9saW5lL0JyZWFr
aW5nQ29udGV4dC5oCkBAIC02MjgsOSArNjI4LDYgQEAgQUxXQVlTX0lOTElORSBmbG9hdCB0ZXh0
V2lkdGgoUmVuZGVyVGV4dCYgdGV4dCwgdW5zaWduZWQgZnJvbSwgdW5zaWduZWQgbGVuLCBjb24K
ICAgICAgICAgcmV0dXJuIEZvbnRDYXNjYWRlOjp3aWR0aCgqbGF5b3V0LCBmcm9tLCBsZW4sICZm
YWxsYmFja0ZvbnRzKTsKIAogICAgIFRleHRSdW4gcnVuID0gUmVuZGVyQmxvY2s6OmNvbnN0cnVj
dFRleHRSdW4odGV4dCwgZnJvbSwgbGVuLCBzdHlsZSk7Ci0gICAgcnVuLnNldENoYXJhY3RlcnNM
ZW5ndGgodGV4dC50ZXh0TGVuZ3RoKCkgLSBmcm9tKTsKLSAgICBBU1NFUlQocnVuLmNoYXJhY3Rl
cnNMZW5ndGgoKSA+PSBydW4ubGVuZ3RoKCkpOwotCiAgICAgcnVuLnNldENoYXJhY3RlclNjYW5G
b3JDb2RlUGF0aCghdGV4dC5jYW5Vc2VTaW1wbGVGb250Q29kZVBhdGgoKSk7CiAgICAgcnVuLnNl
dFRhYlNpemUoIWNvbGxhcHNlV2hpdGVTcGFjZSwgc3R5bGUudGFiU2l6ZSgpKTsKICAgICBydW4u
c2V0WFBvcyh4UG9zKTsKQEAgLTY3NSw5ICs2NzIsNiBAQCBpbmxpbmUgdm9pZCB0cnlIeXBoZW5h
dGluZyhSZW5kZXJUZXh0JiB0ZXh0LCBjb25zdCBGb250Q2FzY2FkZSYgZm9udCwgY29uc3QgQXRv
bQogCiAgICAgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlID0gdGV4dC5zdHlsZSgpOwogICAgIFRl
eHRSdW4gcnVuID0gUmVuZGVyQmxvY2s6OmNvbnN0cnVjdFRleHRSdW4odGV4dCwgbGFzdFNwYWNl
LCBwb3MgLSBsYXN0U3BhY2UsIHN0eWxlKTsKLSAgICBydW4uc2V0Q2hhcmFjdGVyc0xlbmd0aCh0
ZXh0LnRleHRMZW5ndGgoKSAtIGxhc3RTcGFjZSk7Ci0gICAgQVNTRVJUKHJ1bi5jaGFyYWN0ZXJz
TGVuZ3RoKCkgPj0gcnVuLmxlbmd0aCgpKTsKLQogICAgIHJ1bi5zZXRUYWJTaXplKCFjb2xsYXBz
ZVdoaXRlU3BhY2UsIHN0eWxlLnRhYlNpemUoKSk7CiAgICAgcnVuLnNldFhQb3MoeFBvcyArIGxh
c3RTcGFjZVdvcmRTcGFjaW5nKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9TVkdJbmxpbmVUZXh0Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvU1ZHSW5saW5lVGV4dEJveC5jcHAKaW5kZXggNjhhOTI5YzdjMjNmNDFiMmM4MjUwZTk0ZDA3
YjgwNzA3ODk2ZmJkYy4uZDFhMmFkOGE1MmQ3NzM0MDIzMjMyNWY3Njg1ZWU2ZDQ2YjkyZTgzNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdJbmxpbmVUZXh0Qm94
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR0lubGluZVRleHRCb3gu
Y3BwCkBAIC0zOTYsMTAgKzM5Niw2IEBAIFRleHRSdW4gU1ZHSW5saW5lVGV4dEJveDo6Y29uc3Ry
dWN0VGV4dFJ1bihjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IFNWR1RlCiAKICAgICAv
LyBXZSBoYW5kbGUgbGV0dGVyICYgd29yZCBzcGFjaW5nIG91cnNlbHZlcy4KICAgICBydW4uZGlz
YWJsZVNwYWNpbmcoKTsKLQotICAgIC8vIFByb3BhZ2F0ZSB0aGUgbWF4aW11bSBsZW5ndGggb2Yg
dGhlIGNoYXJhY3RlcnMgYnVmZmVyIHRvIHRoZSBUZXh0UnVuLCBldmVuIHdoZW4gd2UncmUgb25s
eSBwcm9jZXNzaW5nIGEgc3Vic3RyaW5nLgotICAgIHJ1bi5zZXRDaGFyYWN0ZXJzTGVuZ3RoKHJl
bmRlcmVyKCkudGV4dExlbmd0aCgpIC0gZnJhZ21lbnQuY2hhcmFjdGVyT2Zmc2V0KTsKLSAgICBB
U1NFUlQocnVuLmNoYXJhY3RlcnNMZW5ndGgoKSA+PSBydW4ubGVuZ3RoKCkpOwogICAgIHJldHVy
biBydW47CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZH
VGV4dE1ldHJpY3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdUZXh0TWV0
cmljcy5jcHAKaW5kZXggNzYyN2ZlNTUzMzc2NWU1ZGIwZTE4NDkzNDUyMTY3MWFkZjgzNTJiOC4u
NzhlMDZiNTM3YzMxMzlmNjBmMDNiMjZjOGU3NjkzNzU3MTZhZjVlZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdUZXh0TWV0cmljcy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdUZXh0TWV0cmljcy5jcHAKQEAgLTczLDEwICs3Myw2
IEBAIFRleHRSdW4gU1ZHVGV4dE1ldHJpY3M6OmNvbnN0cnVjdFRleHRSdW4oUmVuZGVyU1ZHSW5s
aW5lVGV4dCYgdGV4dCwgdW5zaWduZWQgcG9zCiAKICAgICAvLyBXZSBoYW5kbGUgbGV0dGVyICYg
d29yZCBzcGFjaW5nIG91cnNlbHZlcy4KICAgICBydW4uZGlzYWJsZVNwYWNpbmcoKTsKLQotICAg
IC8vIFByb3BhZ2F0ZSB0aGUgbWF4aW11bSBsZW5ndGggb2YgdGhlIGNoYXJhY3RlcnMgYnVmZmVy
IHRvIHRoZSBUZXh0UnVuLCBldmVuIHdoZW4gd2UncmUgb25seSBwcm9jZXNzaW5nIGEgc3Vic3Ry
aW5nLgotICAgIHJ1bi5zZXRDaGFyYWN0ZXJzTGVuZ3RoKHRleHQudGV4dExlbmd0aCgpIC0gcG9z
aXRpb24pOwotICAgIEFTU0VSVChydW4uY2hhcmFjdGVyc0xlbmd0aCgpID49IHJ1bi5sZW5ndGgo
KSk7CiAgICAgcmV0dXJuIHJ1bjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9TVkdUZXh0TWV0cmljc0J1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9TVkdUZXh0TWV0cmljc0J1aWxkZXIuY3BwCmluZGV4IGJiMjU5M2QzOGJkNmM4
MjFhNDM0YjVhODQ1MTM4ZTcyZjg4ZDRjM2UuLjJlZmIyN2VlYzFmOTg4NGNmYTljNzhmMDIyMDAw
NGMwNzlmMGZhZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZH
VGV4dE1ldHJpY3NCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1NWR1RleHRNZXRyaWNzQnVpbGRlci5jcHAKQEAgLTM4LDEzICszOCwxMyBAQCBTVkdUZXh0TWV0
cmljc0J1aWxkZXI6OlNWR1RleHRNZXRyaWNzQnVpbGRlcigpCiAKIGlubGluZSBib29sIFNWR1Rl
eHRNZXRyaWNzQnVpbGRlcjo6Y3VycmVudENoYXJhY3RlclN0YXJ0c1N1cnJvZ2F0ZVBhaXIoKSBj
b25zdAogewotICAgIHJldHVybiBVMTZfSVNfTEVBRChtX3J1blttX3RleHRQb3NpdGlvbl0pICYm
IChtX3RleHRQb3NpdGlvbiArIDEpIDwgbV9ydW4uY2hhcmFjdGVyc0xlbmd0aCgpICYmIFUxNl9J
U19UUkFJTChtX3J1blttX3RleHRQb3NpdGlvbiArIDFdKTsKKyAgICByZXR1cm4gVTE2X0lTX0xF
QUQobV9ydW5bbV90ZXh0UG9zaXRpb25dKSAmJiAobV90ZXh0UG9zaXRpb24gKyAxKSA8IG1fcnVu
Lmxlbmd0aCgpICYmIFUxNl9JU19UUkFJTChtX3J1blttX3RleHRQb3NpdGlvbiArIDFdKTsKIH0K
IAogYm9vbCBTVkdUZXh0TWV0cmljc0J1aWxkZXI6OmFkdmFuY2UoKQogewogICAgIG1fdGV4dFBv
c2l0aW9uICs9IG1fY3VycmVudE1ldHJpY3MubGVuZ3RoKCk7Ci0gICAgaWYgKG1fdGV4dFBvc2l0
aW9uID49IG1fcnVuLmNoYXJhY3RlcnNMZW5ndGgoKSkKKyAgICBpZiAobV90ZXh0UG9zaXRpb24g
Pj0gbV9ydW4ubGVuZ3RoKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmIChtX2lz
Q29tcGxleFRleHQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>322131</attachid>
            <date>2017-09-28 15:43:17 -0700</date>
            <delta_ts>2017-09-28 16:08:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177620-20170928154316.patch</filename>
            <type>text/plain</type>
            <size>14775</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyNjEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTRiMGYzMDRkYTJjYjI4
Y2Y4MTRiMTY1NDVmMzVlZmE2NWNiMDBmYS4uNGE1YWI0MThkODVjM2Q5NDFkMTM2ODg4YjUwYTc5
N2I0ODUyZGE3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE3LTA5LTI4ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgVGV4dFJ1bjo6
c2V0Q2hhcmFjdGVyc0xlbmd0aCgpIGFuZCBUZXh0UnVuOjpjaGFyYWN0ZXJzTGVuZ3RoKCkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NzYyMAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBwdXJwb3Nl
IG9mIFRleHRSdW46OnNldENoYXJhY3RlcnNMZW5ndGgoKSBhbmQgVGV4dFJ1bjo6Y2hhcmFjdGVy
c0xlbmd0aCgpIHByZWRhdGUgdGhlCisgICAgICAgIHVzZSBvZiBXaWR0aEl0ZXJhdG9yIHRvIHNh
ZmVseSBpdGVyYXRlIG92ZXIgY2hhcmFjdGVycyBpbiBhIFRleHRSdW4gdGhhdCBtYXkgY29udGFp
bgorICAgICAgICBzdXJyb2dhdGUgaGFsdmVzIGR1ZSB0byBob3cgaXQgd2FzIGNyZWF0ZWQgKHdp
dGhvdXQgdGhvdWdodCBvZiBzdXJyb2dhdGUgcGFpcnMpLiBIaXN0b3JpY2FsbHkKKyAgICAgICAg
VGV4dFJ1bjo6Y2hhcmFjdGVyc0xlbmd0aCgpIGNvbXBsZW1lbnRlZCBUZXh0UnVuOjpsZW5ndGgo
KSBhbmQgcmVwcmVzZW50ZWQgdGhlIGxlbmd0aCBvZiB0aGUKKyAgICAgICAgdGV4dCB0byByZW5k
ZXIgaWdub3JpbmcgYW5kIHJlc3BlY3RpbmcgdHJ1bmNhdGlvbiwgcmVzcGVjdGl2ZWx5LiBXZSBu
b3QgbG9uZ2VyIG5lZWQgZWl0aGVyCisgICAgICAgIG9mIHRoZXNlIG1lbWJlciBmdW5jdGlvbnMg
d2l0aCB0aGUgYWR2ZW50IG9mIFdpZHRoSXRlcmF0b3IuCisKKyAgICAgICAgTm8gZnVuY3Rpb25h
bGl0eSBjaGFuZ2VkLiBTbywgbm8gbmV3IHRlc3RzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRM
YXlvdXQ6OmNvbnN0cnVjdFRleHRSdW4pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1Rl
eHRSdW4uY3BwOiBSZW1vdmUgb25lIHVuc2lnbmVkIGZpZWxkIGZyb20gRXhwZWN0ZWRUZXh0UnVu
U2l6ZSBhcyB3ZQorICAgICAgICByZWR1Y2VkIHRoZSBzaXplIG9mIFRleHRSdW4gd2l0aCB0aGUg
cmVtb3ZhbCBvZiBUZXh0UnVuOjptX2NoYXJhY3RlcnNMZW5ndGguCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvVGV4dFJ1bi5oOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFJ1bjo6VGV4dFJ1
bik6CisgICAgICAgIChXZWJDb3JlOjpUZXh0UnVuOjpjaGFyYWN0ZXJzTGVuZ3RoIGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRSdW46OnNldENoYXJhY3RlcnNMZW5ndGgp
OiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OklubGluZVRleHRCb3g6OmNvbnN0cnVjdFRleHRSdW4gY29uc3QpOgorICAg
ICAgICAqIHJlbmRlcmluZy9JbmxpbmVUZXh0Qm94Lmg6CisgICAgICAgIChXZWJDb3JlOjpJbmxp
bmVUZXh0Qm94Ojpjb25zdHJ1Y3RUZXh0UnVuKTogRGVsZXRlZCBvdmVybG9hZCB0aGF0IHRvb2sg
Y29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlCisgICAgICAgIGFuZCBTdHJpbmdWaWV3LgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRl
eHQ6OndpZHRoRnJvbUNhY2hlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Om1heFdvcmRGcmFn
bWVudFdpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6OmNvbXB1dGVQcmVmZXJy
ZWRMb2dpY2FsV2lkdGhzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6OndpZHRoIGNv
bnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvbGluZS9CcmVha2luZ0NvbnRleHQuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OnRleHRXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjp0cnlIeXBoZW5hdGlu
Zyk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdJbmxpbmVUZXh0Qm94LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0lubGluZVRleHRCb3g6OmNvbnN0cnVjdFRleHRSdW4gY29uc3QpOgor
ICAgICAgICAqIHJlbmRlcmluZy9zdmcvU1ZHVGV4dE1ldHJpY3MuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHVGV4dE1ldHJpY3M6OmNvbnN0cnVjdFRleHRSdW4pOgorICAgICAgICAqIHJlbmRl
cmluZy9zdmcvU1ZHVGV4dE1ldHJpY3NCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1RleHRNZXRyaWNzQnVpbGRlcjo6Y3VycmVudENoYXJhY3RlclN0YXJ0c1N1cnJvZ2F0ZVBhaXIg
Y29uc3QpOiBVc2UgVGV4dFJ1bjo6bGVuZ3RoKCkuCisgICAgICAgIChXZWJDb3JlOjpTVkdUZXh0
TWV0cmljc0J1aWxkZXI6OmFkdmFuY2UpOiBEaXR0by4KKwogMjAxNy0wOS0yOCAgWmFsYW4gQnVq
dGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIEFYOiBEZWZlciBSZW5kZXJMaXN0Qm94
IHNlbGVjdGlvbkNoYW5nZWQgZXZlbnQgdW50aWwgYWZ0ZXIgbGF5b3V0IGlzIGRvbmUuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db21wbGV4VGV4dENvbnRy
b2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29tcGxleFRleHRD
b250cm9sbGVyLmNwcAppbmRleCA5MDdiZGM1ZDA5YWFhYzM3NDZlMThiNTUyMTc2NjlhOWQ0MDlk
M2Q1Li40YjI5NDY1NWE3ZjU3MWZmZWUwYjg1OTk4YjFkNWNkNDJmNWNjMDgyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db21wbGV4VGV4dENvbnRyb2xsZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbXBsZXhUZXh0Q29u
dHJvbGxlci5jcHAKQEAgLTc4LDggKzc4LDYgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgVGV4dFJ1
biBjb25zdHJ1Y3RUZXh0UnVuKFJlbmRlclRleHQmIHRleHQsIGZsb2F0IHhQb3MpCiAgICAgewog
ICAgICAgICBUZXh0UnVuIHJ1biA9IFJlbmRlckJsb2NrOjpjb25zdHJ1Y3RUZXh0UnVuKHRleHQs
IHRleHQuc3R5bGUoKSk7Ci0gICAgICAgIHJ1bi5zZXRDaGFyYWN0ZXJzTGVuZ3RoKHRleHQudGV4
dExlbmd0aCgpKTsKLSAgICAgICAgQVNTRVJUKHJ1bi5jaGFyYWN0ZXJzTGVuZ3RoKCkgPj0gcnVu
Lmxlbmd0aCgpKTsKICAgICAgICAgcnVuLnNldFhQb3MoeFBvcyk7CiAgICAgICAgIHJldHVybiBy
dW47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
VGV4dFJ1bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UZXh0UnVuLmNw
cAppbmRleCA4ODRjZjliMTk4MGY1ZGFjMWEyZWE5Y2RlY2UxZTk0YWZiNDBhYjUzLi4yNmQ0MDBl
Zjc0NDFhMmUyODJjOTY3NGI0MzYxNmNkNmY1M2Q3NDczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UZXh0UnVuLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9UZXh0UnVuLmNwcApAQCAtMzEsNyArMzEsNiBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBzdHJ1Y3QgRXhwZWN0ZWRUZXh0UnVuU2l6ZSB7CiAgICAgU3RyaW5nVmlldyB0
ZXh0OwogICAgIHVuc2lnbmVkIGludGVnZXIxOwotICAgIHVuc2lnbmVkIGludGVnZXIyOwogICAg
IGZsb2F0IGZsb2F0MTsKICAgICBmbG9hdCBmbG9hdDI7CiAgICAgZmxvYXQgZmxvYXQzOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFJ1bi5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFJ1bi5oCmluZGV4IDI5MTFjYmFiNjY3
YmZhZGRkYWM3NzQ4MWY1YThjMjE3NTVkOGIzZjMuLmQyYjVjMWZjMjE0NTIyMjgyNWJjZjQ5MmY3
OGIwYzcxZWEyY2MwMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1RleHRSdW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UZXh0
UnVuLmgKQEAgLTQ2LDcgKzQ2LDYgQEAgY2xhc3MgVGV4dFJ1biB7CiBwdWJsaWM6CiAgICAgZXhw
bGljaXQgVGV4dFJ1bihTdHJpbmdWaWV3IHRleHQsIGZsb2F0IHhwb3MgPSAwLCBmbG9hdCBleHBh
bnNpb24gPSAwLCBFeHBhbnNpb25CZWhhdmlvciBleHBhbnNpb25CZWhhdmlvciA9IERlZmF1bHRF
eHBhbnNpb24sIFRleHREaXJlY3Rpb24gZGlyZWN0aW9uID0gTFRSLCBib29sIGRpcmVjdGlvbmFs
T3ZlcnJpZGUgPSBmYWxzZSwgYm9vbCBjaGFyYWN0ZXJTY2FuRm9yQ29kZVBhdGggPSB0cnVlKQog
ICAgICAgICA6IG1fdGV4dCh0ZXh0KQotICAgICAgICAsIG1fY2hhcmFjdGVyc0xlbmd0aCh0ZXh0
Lmxlbmd0aCgpKQogICAgICAgICAsIG1fdGFiU2l6ZSgwKQogICAgICAgICAsIG1feHBvcyh4cG9z
KQogICAgICAgICAsIG1faG9yaXpvbnRhbEdseXBoU3RyZXRjaCgxKQpAQCAtODMsMTMgKzgyLDEx
IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXM4Qml0KCkgY29uc3QgeyByZXR1cm4gbV90ZXh0Lmlz
OEJpdCgpOyB9CiAgICAgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV90ZXh0Lmxl
bmd0aCgpOyB9Ci0gICAgdW5zaWduZWQgY2hhcmFjdGVyc0xlbmd0aCgpIGNvbnN0IHsgcmV0dXJu
IG1fY2hhcmFjdGVyc0xlbmd0aDsgfQogICAgIFN0cmluZyBzdHJpbmcoKSBjb25zdCB7IHJldHVy
biBtX3RleHQudG9TdHJpbmcoKTsgfQogCiAgICAgdm9pZCBzZXRUZXh0KGNvbnN0IExDaGFyKiBj
LCB1bnNpZ25lZCBsZW4pIHsgbV90ZXh0ID0gU3RyaW5nVmlldyhjLCBsZW4pOyB9CiAgICAgdm9p
ZCBzZXRUZXh0KGNvbnN0IFVDaGFyKiBjLCB1bnNpZ25lZCBsZW4pIHsgbV90ZXh0ID0gU3RyaW5n
VmlldyhjLCBsZW4pOyB9CiAgICAgdm9pZCBzZXRUZXh0KFN0cmluZ1ZpZXcgc3RyaW5nVmlldykg
eyBtX3RleHQgPSBzdHJpbmdWaWV3OyB9Ci0gICAgdm9pZCBzZXRDaGFyYWN0ZXJzTGVuZ3RoKHVu
c2lnbmVkIGNoYXJhY3RlcnNMZW5ndGgpIHsgbV9jaGFyYWN0ZXJzTGVuZ3RoID0gY2hhcmFjdGVy
c0xlbmd0aDsgfQogCiAgICAgZmxvYXQgaG9yaXpvbnRhbEdseXBoU3RyZXRjaCgpIGNvbnN0IHsg
cmV0dXJuIG1faG9yaXpvbnRhbEdseXBoU3RyZXRjaDsgfQogICAgIHZvaWQgc2V0SG9yaXpvbnRh
bEdseXBoU3RyZXRjaChmbG9hdCBzY2FsZSkgeyBtX2hvcml6b250YWxHbHlwaFN0cmV0Y2ggPSBz
Y2FsZTsgfQpAQCAtMTE3LDcgKzExNCw2IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBTdHJp
bmdWaWV3IG1fdGV4dDsKLSAgICB1bnNpZ25lZCBtX2NoYXJhY3RlcnNMZW5ndGg7IC8vIE1hcmtz
IHRoZSBlbmQgb2YgdGhlIGNoYXJhY3RlcnMgYnVmZmVyLiBEZWZhdWx0IGVxdWFscyB0byBsZW5n
dGggb2YgbV90ZXh0LgogCiAgICAgdW5zaWduZWQgbV90YWJTaXplOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAKaW5kZXggNWMyYjYzYTI5MWVjZjhjNTYzMDYx
NjMyNTMzYjc4MjI1NDA0NjBlMC4uZWY2ZDNhOGYxMWIxMWM1NzZiZDg2YjdjMjAzNDM0NzcxYjE1
NmY2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3gu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcApAQCAt
MTA5MSwyMiArMTA5MSwxNCBAQCBTdHJpbmcgSW5saW5lVGV4dEJveDo6aHlwaGVuYXRlZFN0cmlu
Z0ZvclRleHRSdW4oY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBzdGQ6OgogCiBUZXh0UnVuIElu
bGluZVRleHRCb3g6OmNvbnN0cnVjdFRleHRSdW4oY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBT
dHJpbmdWaWV3IGFsdGVybmF0ZVN0cmluZ1RvUmVuZGVyLCBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVk
PiBhbHRlcm5hdGVMZW5ndGgpIGNvbnN0CiB7CisgICAgYXV0byBhY3R1YWxseUNvbnN0cnVjdFRl
eHRSdW4gPSBbJl0gKFN0cmluZ1ZpZXcgc3RyaW5nKSB7CisgICAgICAgIFRleHRSdW4gcnVuKHN0
cmluZywgdGV4dFBvcygpLCBleHBhbnNpb24oKSwgZXhwYW5zaW9uQmVoYXZpb3IoKSwgZGlyZWN0
aW9uKCksIGRpck92ZXJyaWRlKCkgfHwgc3R5bGUucnRsT3JkZXJpbmcoKSA9PSBWaXN1YWxPcmRl
ciwgIXJlbmRlcmVyKCkuY2FuVXNlU2ltcGxlRm9udENvZGVQYXRoKCkpOworICAgICAgICBydW4u
c2V0VGFiU2l6ZSghc3R5bGUuY29sbGFwc2VXaGl0ZVNwYWNlKCksIHN0eWxlLnRhYlNpemUoKSk7
CisgICAgICAgIHJldHVybiBydW47CisgICAgfTsKICAgICBpZiAoYWx0ZXJuYXRlU3RyaW5nVG9S
ZW5kZXIuaXNOdWxsKCkpCi0gICAgICAgIHJldHVybiBjb25zdHJ1Y3RUZXh0UnVuKHN0eWxlLCBz
dWJzdHJpbmdUb1JlbmRlcihhbHRlcm5hdGVMZW5ndGgpLCByZW5kZXJlcigpLnRleHRMZW5ndGgo
KSAtIHN0YXJ0KCkpOwotICAgIHJldHVybiBjb25zdHJ1Y3RUZXh0UnVuKHN0eWxlLCBhbHRlcm5h
dGVTdHJpbmdUb1JlbmRlciwgYWx0ZXJuYXRlU3RyaW5nVG9SZW5kZXIubGVuZ3RoKCkpOwotfQot
Ci1UZXh0UnVuIElubGluZVRleHRCb3g6OmNvbnN0cnVjdFRleHRSdW4oY29uc3QgUmVuZGVyU3R5
bGUmIHN0eWxlLCBTdHJpbmdWaWV3IHN0cmluZywgdW5zaWduZWQgbWF4aW11bUxlbmd0aCkgY29u
c3QKLXsKLSAgICBBU1NFUlQobWF4aW11bUxlbmd0aCA+PSBzdHJpbmcubGVuZ3RoKCkpOwotCi0g
ICAgVGV4dFJ1biBydW4oc3RyaW5nLCB0ZXh0UG9zKCksIGV4cGFuc2lvbigpLCBleHBhbnNpb25C
ZWhhdmlvcigpLCBkaXJlY3Rpb24oKSwgZGlyT3ZlcnJpZGUoKSB8fCBzdHlsZS5ydGxPcmRlcmlu
ZygpID09IFZpc3VhbE9yZGVyLCAhcmVuZGVyZXIoKS5jYW5Vc2VTaW1wbGVGb250Q29kZVBhdGgo
KSk7Ci0gICAgcnVuLnNldFRhYlNpemUoIXN0eWxlLmNvbGxhcHNlV2hpdGVTcGFjZSgpLCBzdHls
ZS50YWJTaXplKCkpOwotCi0gICAgLy8gUHJvcGFnYXRlIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiB0
aGUgY2hhcmFjdGVycyBidWZmZXIgdG8gdGhlIFRleHRSdW4sIGV2ZW4gd2hlbiB3ZSdyZSBvbmx5
IHByb2Nlc3NpbmcgYSBzdWJzdHJpbmcuCi0gICAgcnVuLnNldENoYXJhY3RlcnNMZW5ndGgobWF4
aW11bUxlbmd0aCk7Ci0gICAgQVNTRVJUKHJ1bi5jaGFyYWN0ZXJzTGVuZ3RoKCkgPj0gcnVuLmxl
bmd0aCgpKTsKLSAgICByZXR1cm4gcnVuOworICAgICAgICByZXR1cm4gYWN0dWFsbHlDb25zdHJ1
Y3RUZXh0UnVuKHN1YnN0cmluZ1RvUmVuZGVyKGFsdGVybmF0ZUxlbmd0aCkpOworICAgIHJldHVy
biBhY3R1YWxseUNvbnN0cnVjdFRleHRSdW4oYWx0ZXJuYXRlU3RyaW5nVG9SZW5kZXIpOwogfQog
CiBpbmxpbmUgY29uc3QgUmVuZGVyQ29tYmluZVRleHQqIElubGluZVRleHRCb3g6OmNvbWJpbmVk
VGV4dCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5l
VGV4dEJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guaAppbmRl
eCBhNmI1MTc2YWNkZjJmOGVhMGFkOWM3MWFiMDU4NDkyY2EzMWU3ZTI2Li40OGZkMzg1MWM4ZDAx
MTUyZmFlOTkwODE1NzcwZGUxNjI1NTAwM2EyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvSW5saW5lVGV4dEJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9J
bmxpbmVUZXh0Qm94LmgKQEAgLTExMCw3ICsxMTAsNiBAQCBwcml2YXRlOgogICAgIFN0cmluZ1Zp
ZXcgc3Vic3RyaW5nVG9SZW5kZXIoc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gb3ZlcnJpZGluZ0xl
bmd0aCA9IHsgfSkgY29uc3Q7CiAgICAgU3RyaW5nIGh5cGhlbmF0ZWRTdHJpbmdGb3JUZXh0UnVu
KGNvbnN0IFJlbmRlclN0eWxlJiwgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gYWx0ZXJuYXRlTGVu
Z3RoID0geyB9KSBjb25zdDsKICAgICBUZXh0UnVuIGNvbnN0cnVjdFRleHRSdW4oY29uc3QgUmVu
ZGVyU3R5bGUmLCBTdHJpbmdWaWV3IGFsdGVybmF0ZVN0cmluZ1RvUmVuZGVyID0geyB9LCBzdGQ6
Om9wdGlvbmFsPHVuc2lnbmVkPiBhbHRlcm5hdGVMZW5ndGggPSB7IH0pIGNvbnN0OwotICAgIFRl
eHRSdW4gY29uc3RydWN0VGV4dFJ1bihjb25zdCBSZW5kZXJTdHlsZSYsIFN0cmluZ1ZpZXcsIHVu
c2lnbmVkIG1heGltdW1MZW5ndGgpIGNvbnN0OwogCiBwdWJsaWM6CiAgICAgRmxvYXRSZWN0IGNh
bGN1bGF0ZUJvdW5kYXJpZXMoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBGbG9hdFJlY3QoeCgp
LCB5KCksIHdpZHRoKCksIGhlaWdodCgpKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRleHQuY3BwCmluZGV4IGU5ZDE4YWU1ODUwZThhY2Q3NGRlMjBmOGI3MDgxODA5MjM1NTA0NWUu
LjQwM2QxODg3Y2NmYTNmMWIzMTY3MDQ5Mjg1ODhlNTAzNmFmMTljOGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKQEAgLTUxNCw5ICs1MTQsNiBAQCBBTFdBWVNfSU5M
SU5FIGZsb2F0IFJlbmRlclRleHQ6OndpZHRoRnJvbUNhY2hlKGNvbnN0IEZvbnRDYXNjYWRlJiBm
LCB1bnNpZ25lZCBzdAogICAgIH0KIAogICAgIFRleHRSdW4gcnVuID0gUmVuZGVyQmxvY2s6OmNv
bnN0cnVjdFRleHRSdW4oKnRoaXMsIHN0YXJ0LCBsZW4sIHN0eWxlKTsKLSAgICBydW4uc2V0Q2hh
cmFjdGVyc0xlbmd0aCh0ZXh0TGVuZ3RoKCkgLSBzdGFydCk7Ci0gICAgQVNTRVJUKHJ1bi5jaGFy
YWN0ZXJzTGVuZ3RoKCkgPj0gcnVuLmxlbmd0aCgpKTsKLQogICAgIHJ1bi5zZXRDaGFyYWN0ZXJT
Y2FuRm9yQ29kZVBhdGgoIWNhblVzZVNpbXBsZUZvbnRDb2RlUGF0aCgpKTsKICAgICBydW4uc2V0
VGFiU2l6ZSghc3R5bGUuY29sbGFwc2VXaGl0ZVNwYWNlKCksIHN0eWxlLnRhYlNpemUoKSk7CiAg
ICAgcnVuLnNldFhQb3MoeFBvcyk7CkBAIC03ODEsNyArNzc4LDYgQEAgc3RhdGljIGZsb2F0IG1h
eFdvcmRGcmFnbWVudFdpZHRoKFJlbmRlclRleHQmIHJlbmRlcmVyLCBjb25zdCBSZW5kZXJTdHls
ZSYgc3R5bGUKICAgICAgICAgZnJhZ21lbnRXaXRoSHlwaGVuLmFwcGVuZChzdHlsZS5oeXBoZW5T
dHJpbmcoKSk7CiAKICAgICAgICAgVGV4dFJ1biBydW4gPSBSZW5kZXJCbG9jazo6Y29uc3RydWN0
VGV4dFJ1bihmcmFnbWVudFdpdGhIeXBoZW4udG9TdHJpbmcoKSwgc3R5bGUpOwotICAgICAgICBy
dW4uc2V0Q2hhcmFjdGVyc0xlbmd0aChmcmFnbWVudFdpdGhIeXBoZW4ubGVuZ3RoKCkpOwogICAg
ICAgICBydW4uc2V0Q2hhcmFjdGVyU2NhbkZvckNvZGVQYXRoKCFyZW5kZXJlci5jYW5Vc2VTaW1w
bGVGb250Q29kZVBhdGgoKSk7CiAgICAgICAgIGZsb2F0IGZyYWdtZW50V2lkdGggPSBmb250Lndp
ZHRoKHJ1biwgJmZhbGxiYWNrRm9udHMsICZnbHlwaE92ZXJmbG93KTsKIApAQCAtMTAwNyw4ICsx
MDAzLDYgQEAgdm9pZCBSZW5kZXJUZXh0Ojpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocyhm
bG9hdCBsZWFkV2lkdGgsIEhhc2hTZXQ8Y29uc3QgRm8KICAgICAgICAgICAgICAgICBjdXJyTWF4
V2lkdGggPSAwOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBUZXh0UnVu
IHJ1biA9IFJlbmRlckJsb2NrOjpjb25zdHJ1Y3RUZXh0UnVuKCp0aGlzLCBpLCAxLCBzdHlsZSk7
Ci0gICAgICAgICAgICAgICAgcnVuLnNldENoYXJhY3RlcnNMZW5ndGgobGVuIC0gaSk7Ci0gICAg
ICAgICAgICAgICAgQVNTRVJUKHJ1bi5jaGFyYWN0ZXJzTGVuZ3RoKCkgPj0gcnVuLmxlbmd0aCgp
KTsKICAgICAgICAgICAgICAgICBydW4uc2V0VGFiU2l6ZSghc3R5bGUuY29sbGFwc2VXaGl0ZVNw
YWNlKCksIHN0eWxlLnRhYlNpemUoKSk7CiAgICAgICAgICAgICAgICAgcnVuLnNldFhQb3MobGVh
ZFdpZHRoICsgY3Vyck1heFdpZHRoKTsKIApAQCAtMTM5NSwxMiArMTM4OSwxMCBAQCBmbG9hdCBS
ZW5kZXJUZXh0Ojp3aWR0aCh1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBsZW4sIGNvbnN0IEZvbnRD
YXNjYWRlJiBmLCBmbG9hdAogICAgICAgICAgICAgdyA9IHdpZHRoRnJvbUNhY2hlKGYsIGZyb20s
IGxlbiwgeFBvcywgZmFsbGJhY2tGb250cywgZ2x5cGhPdmVyZmxvdywgc3R5bGUpOwogICAgIH0g
ZWxzZSB7CiAgICAgICAgIFRleHRSdW4gcnVuID0gUmVuZGVyQmxvY2s6OmNvbnN0cnVjdFRleHRS
dW4oKnRoaXMsIGZyb20sIGxlbiwgc3R5bGUpOwotICAgICAgICBydW4uc2V0Q2hhcmFjdGVyc0xl
bmd0aCh0ZXh0TGVuZ3RoKCkgLSBmcm9tKTsKLSAgICAgICAgQVNTRVJUKHJ1bi5jaGFyYWN0ZXJz
TGVuZ3RoKCkgPj0gcnVuLmxlbmd0aCgpKTsKLQogICAgICAgICBydW4uc2V0Q2hhcmFjdGVyU2Nh
bkZvckNvZGVQYXRoKCFjYW5Vc2VTaW1wbGVGb250Q29kZVBhdGgoKSk7CiAgICAgICAgIHJ1bi5z
ZXRUYWJTaXplKCFzdHlsZS5jb2xsYXBzZVdoaXRlU3BhY2UoKSwgc3R5bGUudGFiU2l6ZSgpKTsK
ICAgICAgICAgcnVuLnNldFhQb3MoeFBvcyk7CisKICAgICAgICAgdyA9IGYud2lkdGgocnVuLCBm
YWxsYmFja0ZvbnRzLCBnbHlwaE92ZXJmbG93KTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9saW5lL0JyZWFraW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL2xpbmUvQnJlYWtpbmdDb250ZXh0LmgKaW5kZXggZGZkM2U1ZTVhOTFkZTNj
N2Y2NjM5YTMyNmQ3ZTJlNDNkMDRkNjZlMS4uMDU2NjAxZTVkZjVkZDUzOTM0NzI0ZWE3ZGViOGM4
M2RkYjIwMDQyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2xpbmUvQnJl
YWtpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2xpbmUvQnJlYWtp
bmdDb250ZXh0LmgKQEAgLTYyOCw5ICs2MjgsNiBAQCBBTFdBWVNfSU5MSU5FIGZsb2F0IHRleHRX
aWR0aChSZW5kZXJUZXh0JiB0ZXh0LCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBsZW4sIGNvbgog
ICAgICAgICByZXR1cm4gRm9udENhc2NhZGU6OndpZHRoKCpsYXlvdXQsIGZyb20sIGxlbiwgJmZh
bGxiYWNrRm9udHMpOwogCiAgICAgVGV4dFJ1biBydW4gPSBSZW5kZXJCbG9jazo6Y29uc3RydWN0
VGV4dFJ1bih0ZXh0LCBmcm9tLCBsZW4sIHN0eWxlKTsKLSAgICBydW4uc2V0Q2hhcmFjdGVyc0xl
bmd0aCh0ZXh0LnRleHRMZW5ndGgoKSAtIGZyb20pOwotICAgIEFTU0VSVChydW4uY2hhcmFjdGVy
c0xlbmd0aCgpID49IHJ1bi5sZW5ndGgoKSk7Ci0KICAgICBydW4uc2V0Q2hhcmFjdGVyU2NhbkZv
ckNvZGVQYXRoKCF0ZXh0LmNhblVzZVNpbXBsZUZvbnRDb2RlUGF0aCgpKTsKICAgICBydW4uc2V0
VGFiU2l6ZSghY29sbGFwc2VXaGl0ZVNwYWNlLCBzdHlsZS50YWJTaXplKCkpOwogICAgIHJ1bi5z
ZXRYUG9zKHhQb3MpOwpAQCAtNjc1LDkgKzY3Miw2IEBAIGlubGluZSB2b2lkIHRyeUh5cGhlbmF0
aW5nKFJlbmRlclRleHQmIHRleHQsIGNvbnN0IEZvbnRDYXNjYWRlJiBmb250LCBjb25zdCBBdG9t
CiAKICAgICBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUgPSB0ZXh0LnN0eWxlKCk7CiAgICAgVGV4
dFJ1biBydW4gPSBSZW5kZXJCbG9jazo6Y29uc3RydWN0VGV4dFJ1bih0ZXh0LCBsYXN0U3BhY2Us
IHBvcyAtIGxhc3RTcGFjZSwgc3R5bGUpOwotICAgIHJ1bi5zZXRDaGFyYWN0ZXJzTGVuZ3RoKHRl
eHQudGV4dExlbmd0aCgpIC0gbGFzdFNwYWNlKTsKLSAgICBBU1NFUlQocnVuLmNoYXJhY3RlcnNM
ZW5ndGgoKSA+PSBydW4ubGVuZ3RoKCkpOwotCiAgICAgcnVuLnNldFRhYlNpemUoIWNvbGxhcHNl
V2hpdGVTcGFjZSwgc3R5bGUudGFiU2l6ZSgpKTsKICAgICBydW4uc2V0WFBvcyh4UG9zICsgbGFz
dFNwYWNlV29yZFNwYWNpbmcpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1NWR0lubGluZVRleHRCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9TVkdJbmxpbmVUZXh0Qm94LmNwcAppbmRleCA2OGE5MjljN2MyM2Y0MWIyYzgyNTBlOTRkMDdi
ODA3MDc4OTZmYmRjLi5kMWEyYWQ4YTUyZDc3MzQwMjMyMzI1Zjc2ODVlZTZkNDZiOTJlODM0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR0lubGluZVRleHRCb3gu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHSW5saW5lVGV4dEJveC5j
cHAKQEAgLTM5NiwxMCArMzk2LDYgQEAgVGV4dFJ1biBTVkdJbmxpbmVUZXh0Qm94Ojpjb25zdHJ1
Y3RUZXh0UnVuKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgY29uc3QgU1ZHVGUKIAogICAgIC8v
IFdlIGhhbmRsZSBsZXR0ZXIgJiB3b3JkIHNwYWNpbmcgb3Vyc2VsdmVzLgogICAgIHJ1bi5kaXNh
YmxlU3BhY2luZygpOwotCi0gICAgLy8gUHJvcGFnYXRlIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiB0
aGUgY2hhcmFjdGVycyBidWZmZXIgdG8gdGhlIFRleHRSdW4sIGV2ZW4gd2hlbiB3ZSdyZSBvbmx5
IHByb2Nlc3NpbmcgYSBzdWJzdHJpbmcuCi0gICAgcnVuLnNldENoYXJhY3RlcnNMZW5ndGgocmVu
ZGVyZXIoKS50ZXh0TGVuZ3RoKCkgLSBmcmFnbWVudC5jaGFyYWN0ZXJPZmZzZXQpOwotICAgIEFT
U0VSVChydW4uY2hhcmFjdGVyc0xlbmd0aCgpID49IHJ1bi5sZW5ndGgoKSk7CiAgICAgcmV0dXJu
IHJ1bjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdU
ZXh0TWV0cmljcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRNZXRy
aWNzLmNwcAppbmRleCA3NjI3ZmU1NTMzNzY1ZTVkYjBlMTg0OTM0NTIxNjcxYWRmODM1MmI4Li43
OGUwNmI1MzdjMzEzOWY2MGYwM2IyNmM4ZTc2OTM3NTcxNmFmNWVkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRNZXRyaWNzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRNZXRyaWNzLmNwcApAQCAtNzMsMTAgKzczLDYg
QEAgVGV4dFJ1biBTVkdUZXh0TWV0cmljczo6Y29uc3RydWN0VGV4dFJ1bihSZW5kZXJTVkdJbmxp
bmVUZXh0JiB0ZXh0LCB1bnNpZ25lZCBwb3MKIAogICAgIC8vIFdlIGhhbmRsZSBsZXR0ZXIgJiB3
b3JkIHNwYWNpbmcgb3Vyc2VsdmVzLgogICAgIHJ1bi5kaXNhYmxlU3BhY2luZygpOwotCi0gICAg
Ly8gUHJvcGFnYXRlIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiB0aGUgY2hhcmFjdGVycyBidWZmZXIg
dG8gdGhlIFRleHRSdW4sIGV2ZW4gd2hlbiB3ZSdyZSBvbmx5IHByb2Nlc3NpbmcgYSBzdWJzdHJp
bmcuCi0gICAgcnVuLnNldENoYXJhY3RlcnNMZW5ndGgodGV4dC50ZXh0TGVuZ3RoKCkgLSBwb3Np
dGlvbik7Ci0gICAgQVNTRVJUKHJ1bi5jaGFyYWN0ZXJzTGVuZ3RoKCkgPj0gcnVuLmxlbmd0aCgp
KTsKICAgICByZXR1cm4gcnVuOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1NWR1RleHRNZXRyaWNzQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1NWR1RleHRNZXRyaWNzQnVpbGRlci5jcHAKaW5kZXggYmIyNTkzZDM4YmQ2Yzgy
MWE0MzRiNWE4NDUxMzhlNzJmODhkNGMzZS4uMmVmYjI3ZWVjMWY5ODg0Y2ZhOWM3OGYwMjIwMDA0
YzA3OWYwZmFkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdU
ZXh0TWV0cmljc0J1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
U1ZHVGV4dE1ldHJpY3NCdWlsZGVyLmNwcApAQCAtMzgsMTMgKzM4LDEzIEBAIFNWR1RleHRNZXRy
aWNzQnVpbGRlcjo6U1ZHVGV4dE1ldHJpY3NCdWlsZGVyKCkKIAogaW5saW5lIGJvb2wgU1ZHVGV4
dE1ldHJpY3NCdWlsZGVyOjpjdXJyZW50Q2hhcmFjdGVyU3RhcnRzU3Vycm9nYXRlUGFpcigpIGNv
bnN0CiB7Ci0gICAgcmV0dXJuIFUxNl9JU19MRUFEKG1fcnVuW21fdGV4dFBvc2l0aW9uXSkgJiYg
KG1fdGV4dFBvc2l0aW9uICsgMSkgPCBtX3J1bi5jaGFyYWN0ZXJzTGVuZ3RoKCkgJiYgVTE2X0lT
X1RSQUlMKG1fcnVuW21fdGV4dFBvc2l0aW9uICsgMV0pOworICAgIHJldHVybiBVMTZfSVNfTEVB
RChtX3J1blttX3RleHRQb3NpdGlvbl0pICYmIChtX3RleHRQb3NpdGlvbiArIDEpIDwgbV9ydW4u
bGVuZ3RoKCkgJiYgVTE2X0lTX1RSQUlMKG1fcnVuW21fdGV4dFBvc2l0aW9uICsgMV0pOwogfQog
CiBib29sIFNWR1RleHRNZXRyaWNzQnVpbGRlcjo6YWR2YW5jZSgpCiB7CiAgICAgbV90ZXh0UG9z
aXRpb24gKz0gbV9jdXJyZW50TWV0cmljcy5sZW5ndGgoKTsKLSAgICBpZiAobV90ZXh0UG9zaXRp
b24gPj0gbV9ydW4uY2hhcmFjdGVyc0xlbmd0aCgpKQorICAgIGlmIChtX3RleHRQb3NpdGlvbiA+
PSBtX3J1bi5sZW5ndGgoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKG1faXND
b21wbGV4VGV4dCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>