[issue1770] Patch for i386 to use bsrl for libc fls().
--===============0469342361==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Venkatesh Srinivas <me@acm.jhu.edu> added the comment:
x86_64 doesn't have DEFS.h.
_____________________________________________________
DragonFly issue tracker <bugs@lists.dragonflybsd.org>
<http://bugs.dragonflybsd.org/issue1770>
_____________________________________________________
--===============0469342361==
Content-Type: application/octet-stream
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="0001-libc-Add-assembler-ffs-fls-ffsl-flsl.patch"
RnJvbSBjYWFlZTc0NWE5YTk4YmI3OTRhNWViYTkyOGRlMTJhYjk1MzA3M2FjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBWZW5rYXRlc2ggU3Jpbml2YXMgPG1lQGVuZGVhdm91ci56YXB0
by5vcmc+CkRhdGU6IFdlZCwgMjYgTWF5IDIwMTAgMDE6MDg6NTQgLTA0MDAKU3ViamVjdDogW1BB
VENIXSBsaWJjOiBBZGQgYXNzZW1ibGVyIGZmcywgZmZzbCwgZmxzLCBmbHNsIHRvIGkzODYgYW5k
IHg4Nl82NC4KCi0tLQogbGliL2xpYmMvaTM4Ni9zdHJpbmcvTWFrZWZpbGUuaW5jICAgfCAgICA2
ICsrLS0KIGxpYi9saWJjL2kzODYvc3RyaW5nL2Zmcy5TICAgICAgICAgIHwgICAgNCArKysKIGxp
Yi9saWJjL2kzODYvc3RyaW5nL2Zmc2wuUyAgICAgICAgIHwgICAgMiArCiBsaWIvbGliYy9pMzg2
L3N0cmluZy9mbHMuUyAgICAgICAgICB8ICAgNDYgKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysKIGxpYi9saWJjL2kzODYvc3RyaW5nL2Zsc2wuUyAgICAgICAgIHwgICAgMiArCiBs
aWIvbGliYy94ODZfNjQvc3RyaW5nL01ha2VmaWxlLmluYyB8ICAgIDQgKy0KIGxpYi9saWJjL3g4
Nl82NC9zdHJpbmcvZmZzLlMgICAgICAgIHwgICAzOCArKysrKysrKysrKysrKysrKysrKysrKysr
KysrCiBsaWIvbGliYy94ODZfNjQvc3RyaW5nL2Zmc2wuUyAgICAgICB8ICAgMzggKysrKysrKysr
KysrKysrKysrKysrKysrKysrKwogbGliL2xpYmMveDg2XzY0L3N0cmluZy9mbHMuUyAgICAgICAg
fCAgIDM4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGxpYi9saWJjL3g4Nl82NC9zdHJp
bmcvZmxzbC5TICAgICAgIHwgICAzOCArKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAxMCBm
aWxlcyBjaGFuZ2VkLCAyMTEgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBt
b2RlIDEwMDY0NCBsaWIvbGliYy9pMzg2L3N0cmluZy9mZnNsLlMKIGNyZWF0ZSBtb2RlIDEwMDY0
NCBsaWIvbGliYy9pMzg2L3N0cmluZy9mbHMuUwogY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYi9saWJj
L2kzODYvc3RyaW5nL2Zsc2wuUwogY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYi9saWJjL3g4Nl82NC9z
dHJpbmcvZmZzLlMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWIvbGliYy94ODZfNjQvc3RyaW5nL2Zm
c2wuUwogY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYi9saWJjL3g4Nl82NC9zdHJpbmcvZmxzLlMKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBsaWIvbGliYy94ODZfNjQvc3RyaW5nL2Zsc2wuUwoKZGlmZiAtLWdp
dCBhL2xpYi9saWJjL2kzODYvc3RyaW5nL01ha2VmaWxlLmluYyBiL2xpYi9saWJjL2kzODYvc3Ry
aW5nL01ha2VmaWxlLmluYwppbmRleCA3YTE0OThhLi5mMzQ5NGNhIDEwMDY0NAotLS0gYS9saWIv
bGliYy9pMzg2L3N0cmluZy9NYWtlZmlsZS5pbmMKKysrIGIvbGliL2xpYmMvaTM4Ni9zdHJpbmcv
TWFrZWZpbGUuaW5jCkBAIC0yLDYgKzIsNiBAQAogIyAkRnJlZUJTRDogc3JjL2xpYi9saWJjL2kz
ODYvc3RyaW5nL01ha2VmaWxlLmluYyx2IDEuOSAxOTk5LzA4LzI3IDIzOjU5OjI5IHBldGVyIEV4
cCAkCiAjICREcmFnb25GbHk6IHNyYy9saWIvbGliYy9pMzg2L3N0cmluZy9NYWtlZmlsZS5pbmMs
diAxLjIgMjAwMy8wNi8xNyAwNDoyNjo0MyBkaWxsb24gRXhwICQKIAotTURTUkNTKz1iY21wLlMg
YmNvcHkuUyBiemVyby5TIGZmcy5TIGluZGV4LlMgbWVtY2hyLlMgbWVtY21wLlMgbWVtY3B5LlMg
XAotCW1lbW1vdmUuUyBtZW1zZXQuUyByaW5kZXguUyBzdHJjYXQuUyBzdHJjaHIuUyBzdHJjbXAu
UyBzdHJjcHkuUyBcCi0Jc3RybGVuLlMgc3RybmNtcC5TIHN0cnJjaHIuUyBzd2FiLlMKK01EU1JD
Uys9YmNtcC5TIGJjb3B5LlMgYnplcm8uUyBmZnMuUyBmZnNsLlMgZmxzLlMgZmxzbC5TIGluZGV4
LlMgbWVtY2hyLlMgXAorCW1lbWNtcC5TIG1lbWNweS5TIG1lbW1vdmUuUyBtZW1zZXQuUyByaW5k
ZXguUyBzdHJjYXQuUyBzdHJjaHIuUyBcCisJc3RyY21wLlMgc3RyY3B5LlMgc3RybGVuLlMgc3Ry
bmNtcC5TIHN0cnJjaHIuUyBzd2FiLlMKZGlmZiAtLWdpdCBhL2xpYi9saWJjL2kzODYvc3RyaW5n
L2Zmcy5TIGIvbGliL2xpYmMvaTM4Ni9zdHJpbmcvZmZzLlMKaW5kZXggNTI4N2ExNi4uZGJlZDhk
YyAxMDA2NDQKLS0tIGEvbGliL2xpYmMvaTM4Ni9zdHJpbmcvZmZzLlMKKysrIGIvbGliL2xpYmMv
aTM4Ni9zdHJpbmcvZmZzLlMKQEAgLTQ0LDcgKzQ0LDExIEBACiAgKglKLlQuIENvbmtsaW4gKGp0
Y0B3aW1zZXkuY29tKSwgV2lubmluZyBTdHJhdGVnaWVzLCBJbmMuCiAgKi8KIAorI2lmZGVmIEZG
U0wKK0VOVFJZKGZmc2wpCisjZWxzZQogRU5UUlkoZmZzKQorI2VuZGlmCiAJYnNmbAk0KCVlc3Ap
LCVlYXgKIAlqeglMMQkgCQkvKiBaRiBpcyBzZXQgaWYgYWxsIGJpdHMgYXJlIDAgKi8KIAlpbmNs
CSVlYXgJCQkvKiBiaXRzIG51bWJlcmVkIGZyb20gMSwgbm90IDAgKi8KZGlmZiAtLWdpdCBhL2xp
Yi9saWJjL2kzODYvc3RyaW5nL2Zmc2wuUyBiL2xpYi9saWJjL2kzODYvc3RyaW5nL2Zmc2wuUwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZmEzNzViCi0tLSAvZGV2L251bGwK
KysrIGIvbGliL2xpYmMvaTM4Ni9zdHJpbmcvZmZzbC5TCkBAIC0wLDAgKzEsMiBAQAorI2RlZmlu
ZSBGRlNMCisjaW5jbHVkZSAiZmZzLlMiCmRpZmYgLS1naXQgYS9saWIvbGliYy9pMzg2L3N0cmlu
Zy9mbHMuUyBiL2xpYi9saWJjL2kzODYvc3RyaW5nL2Zscy5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjU2NDdiZDQKLS0tIC9kZXYvbnVsbAorKysgYi9saWIvbGliYy9pMzg2
L3N0cmluZy9mbHMuUwpAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDEw
IFRoZSBEcmFnb25GbHkgUHJvamVjdAorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0
aG91Z2ggc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1Mg
T1IKKyAqIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKKyAqIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCisgKiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCisg
KiBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQKKyAqIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQor
ICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJERUZTLmgiCisKKy8qCisgKiBmbHModmFsdWUpCisgKiAJRmluZHMgdGhlIGhpZ2hl
c3Qgc2V0IGJpdCBpbiBhIHdvcmQuIEJpdHMgYXJlIG51bWJlcmVkIGZyb20gMTsKKyAqCWEgcmV0
dXJuIG9mIDAgaW5kaWNhdGVzIHRoYXQgdGhlIHdvcmQgd2FzIDAuCisgKi8KKyNpZmRlZiBGTFNM
CitFTlRSWShmbHNsKQorI2Vsc2UKK0VOVFJZKGZscykKKyNlbmRpZgorCWJzcmwJNCglZXNwKSwl
ZWF4CisJanoJTDEKKwlhZGRsCSQxLCVlYXgKKwlyZXQKKworTDE6CXhvcmwJJWVheCwgJWVheAor
CXJldApkaWZmIC0tZ2l0IGEvbGliL2xpYmMvaTM4Ni9zdHJpbmcvZmxzbC5TIGIvbGliL2xpYmMv
aTM4Ni9zdHJpbmcvZmxzbC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMw
NmM0ODUKLS0tIC9kZXYvbnVsbAorKysgYi9saWIvbGliYy9pMzg2L3N0cmluZy9mbHNsLlMKQEAg
LTAsMCArMSwyIEBACisjZGVmaW5lIEZMU0wKKyNpbmNsdWRlICJmbHMuUyIKZGlmZiAtLWdpdCBh
L2xpYi9saWJjL3g4Nl82NC9zdHJpbmcvTWFrZWZpbGUuaW5jIGIvbGliL2xpYmMveDg2XzY0L3N0
cmluZy9NYWtlZmlsZS5pbmMKaW5kZXggYWM1ODVhNC4uZDAwYjQ2MSAxMDA2NDQKLS0tIGEvbGli
L2xpYmMveDg2XzY0L3N0cmluZy9NYWtlZmlsZS5pbmMKKysrIGIvbGliL2xpYmMveDg2XzY0L3N0
cmluZy9NYWtlZmlsZS5pbmMKQEAgLTEsNCArMSw0IEBACiAjICRGcmVlQlNEOiBzcmMvbGliL2xp
YmMvYW1kNjQvc3RyaW5nL01ha2VmaWxlLmluYyx2IDEuNSAyMDA1LzA0LzEwIDE4OjU4OjQ5IGFs
YyBFeHAgJAogCi1NRFNSQ1MrPSBiY21wLlMgYmNvcHkuUyBiemVyby5TIG1lbWNtcC5TIG1lbWNw
eS5TIG1lbW1vdmUuUyBtZW1zZXQuUyBcCi0Jc3RyY2F0LlMgc3RyY21wLlMgc3RyY3B5LlMKK01E
U1JDUys9IGJjbXAuUyBiY29weS5TIGJ6ZXJvLlMgZmZzLlMgZmZzbC5TIGZscy5TIGZsc2wuUyBt
ZW1jbXAuUyBtZW1jcHkuUyBcCisJbWVtbW92ZS5TIG1lbXNldC5TIHN0cmNhdC5TIHN0cmNtcC5T
IHN0cmNweS5TIApkaWZmIC0tZ2l0IGEvbGliL2xpYmMveDg2XzY0L3N0cmluZy9mZnMuUyBiL2xp
Yi9saWJjL3g4Nl82NC9zdHJpbmcvZmZzLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uNmU2ZWI4MgotLS0gL2Rldi9udWxsCisrKyBiL2xpYi9saWJjL3g4Nl82NC9zdHJpbmcv
ZmZzLlMKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxMCBUaGUgRHJh
Z29uRmx5IFByb2plY3QKKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBU
aGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMKKyAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdWdoIHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTCisgKiBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgorICogSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULAorICogSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUCisgKiBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSA8
bWFjaGluZS9hc20uaD4KKworLyoKKyAqIGZmcyh2YWx1ZSkKKyAqIAlGaW5kcyB0aGUgbG93ZXN0
IHNldCBiaXQgaW4gYSB3b3JkLiBCaXRzIGFyZSBudW1iZXJlZCBmcm9tIDE7CisgKglhIHJldHVy
biBvZiAwIGluZGljYXRlcyB0aGF0IHRoZSB3b3JkIHdhcyAwLgorICovCitFTlRSWShmZnMpCisJ
bW92bAkkLTEsICVlY3gKKwlic2ZsCSVlZGksJWVheAorCWNtb3Z6bAklZWN4LCAlZWF4CisJYWRk
bAkkMSwgJWVheAorCXJldApkaWZmIC0tZ2l0IGEvbGliL2xpYmMveDg2XzY0L3N0cmluZy9mZnNs
LlMgYi9saWIvbGliYy94ODZfNjQvc3RyaW5nL2Zmc2wuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi43ODc5NmNiCi0tLSAvZGV2L251bGwKKysrIGIvbGliL2xpYmMveDg2XzY0
L3N0cmluZy9mZnNsLlMKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAx
MCBUaGUgRHJhZ29uRmx5IFByb2plY3QKKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMKKyAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdp
dGhvdWdoIHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNT
IE9SCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCisgKiBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgorICogSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULAor
ICogSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUCisgKiBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
KyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSA8bWFjaGluZS9hc20uaD4KKworLyoKKyAqIGZmc2wodmFsdWUpCisgKiAJRmluZHMg
dGhlIGhpZ2hlc3Qgc2V0IGJpdCBpbiBhIHdvcmQuIEJpdHMgYXJlIG51bWJlcmVkIGZyb20gMTsK
KyAqCWEgcmV0dXJuIG9mIDAgaW5kaWNhdGVzIHRoYXQgdGhlIHdvcmQgd2FzIDAuCisgKi8KK0VO
VFJZKGZmc2wpCisJbW92cQkkLTEsICVyY3gKKwlic2ZxCSVyZGksJXJheAorCWNtb3Z6cQklcmN4
LCAlcmF4CisJYWRkcQkkMSwgJXJheAorCXJldApkaWZmIC0tZ2l0IGEvbGliL2xpYmMveDg2XzY0
L3N0cmluZy9mbHMuUyBiL2xpYi9saWJjL3g4Nl82NC9zdHJpbmcvZmxzLlMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTcxNmJiNgotLS0gL2Rldi9udWxsCisrKyBiL2xpYi9s
aWJjL3g4Nl82NC9zdHJpbmcvZmxzLlMKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoYykgMjAxMCBUaGUgRHJhZ29uRmx5IFByb2plY3QKKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNv
ZnR3YXJlIHdpdGhvdWdoIHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFO
WSBFWFBSRVNTIE9SCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCisgKiBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgorICog
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULAorICogSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUCisgKiBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSA8bWFjaGluZS9hc20uaD4KKworLyoKKyAqIGZscyh2YWx1ZSkKKyAq
IAlGaW5kcyB0aGUgaGlnaGVzdCBzZXQgYml0IGluIGEgd29yZC4gQml0cyBhcmUgbnVtYmVyZWQg
ZnJvbSAxOworICoJYSByZXR1cm4gb2YgMCBpbmRpY2F0ZXMgdGhhdCB0aGUgd29yZCB3YXMgMC4K
KyAqLworRU5UUlkoZmxzKQorCW1vdmwJJC0xLCAlZWN4CisJYnNybAklZWRpLCVlYXgKKwljbW92
emwJJWVjeCwgJWVheAorCWFkZGwJJDEsICVlYXgKKwlyZXQKZGlmZiAtLWdpdCBhL2xpYi9saWJj
L3g4Nl82NC9zdHJpbmcvZmxzbC5TIGIvbGliL2xpYmMveDg2XzY0L3N0cmluZy9mbHNsLlMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTI2NDA0YQotLS0gL2Rldi9udWxsCisr
KyBiL2xpYi9saWJjL3g4Nl82NC9zdHJpbmcvZmxzbC5TCkBAIC0wLDAgKzEsMzggQEAKKy8qCisg
KiBDb3B5cmlnaHQgKGMpIDIwMTAgVGhlIERyYWdvbkZseSBQcm9qZWN0CisgKiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZy
b20gdGhpcyBzb2Z0d2FyZSB3aXRob3VnaCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJ
UycnIEFORCBBTlkgRVhQUkVTUyBPUgorICogSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUworICogT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4KKyAqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwKKyAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAorICogTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAq
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgPG1hY2hpbmUvYXNtLmg+CisKKy8qCisgKiBmbHNs
KHZhbHVlKQorICogCUZpbmRzIHRoZSBoaWdoZXN0IHNldCBiaXQgaW4gYSB3b3JkLiBCaXRzIGFy
ZSBudW1iZXJlZCBmcm9tIDE7CisgKglhIHJldHVybiBvZiAwIGluZGljYXRlcyB0aGF0IHRoZSB3
b3JkIHdhcyAwLgorICovCitFTlRSWShmbHNsKQorCW1vdnEJJC0xLCAlcmN4CisJYnNycQklcmRp
LCVyYXgKKwljbW92enEJJXJjeCwgJXJheAorCWFkZHEJJDEsICVyYXgKKwlyZXQKLS0gCjEuNi4w
LjQKCg==
--===============0469342361==--
討論串 (同標題文章)
完整討論串 (本文為第 6 之 9 篇):