Skip to main content
ARS Home » Pacific West Area » Kimberly, Idaho » Northwest Irrigation and Soils Research » Docs » Proceedings of the 1996 PAM Conference

Proceedings of the 1996 PAM Conference
headline bar

PEgzPk1hbmFnaW5nIElycmlnYXRpb24taW5kdWNlZCBFcm9zaW9uIGFuZCBJbmZpbHRyYXRpb24gd2l0aCBQb2x5YWNyeWxhbWlkZSZuYnNwOyhQQU0pIAo8L0gzPjxCUj4gCjxQPkNvbGxlZ2Ugb2YgU291dGhlcm4gSWRhaG8gLS0gVHdpbiBGYWxscywgSUQgLS0gTWF5IDYtOCwgMTk5NiAKPC9QPiAKPEhSPiAKPFA+UGxlYXNlIE5vdGU6IEEgcHJpbnRlZCBjb3B5IG9mIHRoZSBwcm9jZWVkaW5ncyBpcyBubyBsb25nZXIgYXZhaWxhYmxlLiAKICBIb3dldmVyLCBlYWNoIGFydGljbGUgaXMgbm93IGF2YWlsYWJsZSBhcyBhIFBERiBmaWxlIHRvIGJlIHZpZXdlZCBhbmQvb3IgCiAgcHJpbnRlZC4gQSBsaW5rIHRvIGVhY2ggYXJ0aWNsZSBpcyBwcm92aWRlZCBhdCB0aGUgZW5kIG9mIGVhY2ggYWJzdHJhY3QuIAo8L1A+IAo8SFI+IAo8UCBjbGFzcz1jZW50ZXI+IAogIDxBIGhyZWY9Ii9TUDJVc2VyRmlsZXMvUGxhY2UvNTM2ODAwMDAvcHJlc2VudGF0aW9ucy8xOTk2c2xpZGVzL3BhbWNvdmVyLmpwZyI+PElNRyBjbGFzcz1jZW50ZXIgdGl0bGU9IkNsaWNrIGhlcmUgdG8gc2VlIGFuIGVubGFyZ2VkIHZpZXcgb2YgdGhlIGNvdmVyLiBDbGljayB5b3VyIGJhY2sgYnV0dG9uIHRvIHJldHVybi4iIAogICAgYWx0PSJDbGljayBoZXJlIHRvIHNlZSBhbiBlbmxhcmdlZCB2aWV3IG9mIHRoZSBjb3Zlci4gQ2xpY2sgeW91ciBiYWNrIGJ1dHRvbiB0byByZXR1cm4uIiAKICAgIHNyYz0iL1NQMlVzZXJGaWxlcy9QbGFjZS81MzY4MDAwMC9wcmVzZW50YXRpb25zLzE5OTZzbGlkZXMvcGFtY292ZXJfdGh1bWIuanBnIj48YnIgLz5Db3ZlciBQaG90byAKPC9QPiAKPEEgbmFtZT0iVGFibGUgb2YgQ29udGVudHMiPjwvQT4gCjxIMj5UYWJsZSBvZiBDb250ZW50cyAKPC9IMj4gCjxVTD4gCiAgPExJPiAKICAgIDxIMz5PcmFsIFByZXNlbnRhdGlvbnM6IAogICAgPC9IMz4gCiAgICA8VUw+IAogICAgICA8TEk+IAogICAgICAgIDxBIGhyZWY9IiNUaGUlMjBOYXRpb25hbCUyMElycmlnYXRpb24iPlRoZSBOYXRpb25hbCBJcnJpZ2F0aW9uIEltcHJvdmVtZW50IEluaXRpYXRpdmU8L0E+LCA8ST5ULiBMeW5vdHQ8L0k+IAo8TEk+IAogIDxBIGhyZWY9IiNBJTIwUEFNJTIwUHJpbWVyIj5BIFBBTSBQcmltZXI6IEEgQnJpZWYgSGlzdG9yeSBvZiBQQU0gYW5kIFBBTS1yZWxhdGVkIElzc3VlczwvQT4sIDxJPlIuRS4gU29qa2EgYW5kIFIuRC4gTGVudHo8L0k+IAo8TEk+IAogIDxBIGhyZWY9IiNGaXZlJTIwWWVhciUyMFJlc2VhcmNoIj5GaXZlLVllYXIgUmVzZWFyY2ggU3VtbWFyeSBVc2luZyBQQU0gaW4gRnVycm93IElycmlnYXRpb248L0E+LCA8ST5SLkQuIExlbnR6IGFuZCBSLkUuIFNvamthPC9JPiAKPExJPiAKICA8QSBocmVmPSIjQW4lMjBJbnRlZ3JhdGVkJTIwQXBwcm9hY2giPkFuIEludGVncmF0ZWQgQXBwcm9hY2ggRm9yIFdhdGVyIFF1YWxpdHk6IFRoZSBQQU0gQ29ubmVjdGlvbi0tV2VzdCBTdGFuaXNsYXVzIAogICAgSFVBLCBDYWxpZm9ybmlhPC9BPiwgPEk+TS4gTWNFbGhpbmV5IGFuZCBQLiBPc3RlcmxpPC9JPiAKPExJPiAKICA8QSBocmVmPSIjTWljcm9iaWFsJTIwRWNvbG9neSUyMFBvbHlhY3J5bGFtaWRlIj5NaWNyb2JpYWwgRWNvbG9neSBvZiBQb2x5YWNyeWxhbWlkZSBBcHBsaWNhdGlvbiBpbiBBZ3JpY3VsdHVyYWwgU29pbHM8L0E+LCA8ST5NLkUuIFdhdHdvb2QgYW5kIEouTC4gS2F5LVNob2VtYWtlPC9JPiAKPExJPiAKICA8QSBocmVmPSIjUHJvZHVjdCUyMFN0ZXdhcmRzaGlwIj5Qcm9kdWN0IFN0ZXdhcmRzaGlwIENvbnNpZGVyYXRpb25zIGluIHRoZSB1c2Ugb2YgUG9seWFjcnlsYW1pZGUgaW4gU29pbCAKICAgIEVyb3Npb248L0E+LCA8ST5SLiBEZXNraW48L0k+IAo8TEk+IAogIDxBIGhyZWY9IiNSZWR1Y3Rpb24lMjBvZiUyME51dHJpZW50Ij5SZWR1Y3Rpb24gb2YgTnV0cmllbnQgYW5kIFBlc3RpY2lkZSBMb3NzZXMgdGhyb3VnaCB0aGUgQXBwbGljYXRpb24gb2YgCiAgICBQb2x5YWNyeWxhbWlkZSBpbiBzdXJmYWNlIElycmlnYXRlZCBDcm9wczwvQT4sIDxJPkcuIEJhaHIgYW5kIFQuIFN0aWViZXI8L0k+IAo8TEk+IAogIDxBIGhyZWY9IiNBZ3JpY3VsdHVyZSUyMElycmlnYXRpb24lMjBQQU0iPkFncmljdWx0dXJlIElycmlnYXRpb24gUG9seWFjcnlsYW1pZGUgQXBwbGljYXRpb24gU3RhbmRhcmQ8L0E+LCA8ST5ULkwuIFNwb2Zmb3JkIGFuZCBLLkwuIFBmZWlmZmVyPC9JPiAKPExJPiAKICA8QSBocmVmPSIjT24lMjBGYXJtJTIwQ29tcGFyaXNvbiI+T24tRmFybSBDb21wYXJpc29uIG9mIFBvbHlhY3J5bGFtaWRlIGFuZCBTdHJhdyBNdWxjaCBvbiBEcnkgQmVhbiBZaWVsZCwgCiAgICBJcnJpZ2F0aW9uIFBlcmZvcm1hbmNlIGFuZCBFcm9zaW9uPC9BPiwgPEk+Qi5BLiBLaW5nLCBCLiBJemFkaSwgTS5TLiBBc2hyYWYsIFIuSC4gQnJvb2tzIGFuZCBXLkguIE5laWJsaW5nPC9JPiAKPExJPiAKICA8QSBocmVmPSIjTmVlZCUyMGZvciUyMFNvbHV0aW9uIj5OZWVkIGZvciBTb2x1dGlvbiBvciBFeGNoYW5nZWFibGUgQ2FsY2l1bSBhbmQvb3IgQ3JpdGljYWwgRUMgTGV2ZWwgZm9yIAogICAgRmxvY2N1bGF0aW9uIG9mIENsYXkgYnkgUG9seWFjcnlsYW1pZGVzPC9BPiwgPEk+QS4gV2FsbGFjZSBhbmQgRy5BLiBXYWxsYWNlPC9JPiAKPExJPiAKICA8QSBocmVmPSIjTGFuZCUyMFRyZWF0bWVudCI+TGFuZCBUcmVhdG1lbnQgRWZmZWN0cyBvbiBTb2lsIEVyb3Npb248L0E+LCA8ST5KLksuIE1pdGNoZWxsLCBDLiBSYXk8L0k+IAo8TEk+IAogIDxBIGhyZWY9IiNQQU0lMjBDb25mb3JtYXRpb24lMjBFZmZlY3RzIj5QQU0gQ29uZm9ybWF0aW9uIEVmZmVjdHMgb24gRnVycm93IEVyb3Npb24gTWl0aWdhdGlvbiBFZmZpY2FjeTwvQT4sIDxJPlIuRC4gTGVudHosIFIuRS4gU29qa2E8L0k+IAo8TEk+IAogIDxBIGhyZWY9IiNTY3JlZW5pbmclMjBvZiUyMFBvbHltZXJzIj5TY3JlZW5pbmcgb2YgUG9seW1lcnMgdG8gRGV0ZXJtaW5lIHRoZWlyIFBvdGVudGlhbCB1c2UgaW4gRXJvc2lvbiBDb250cm9sIAogICAgb24gQ29uc3RydWN0aW9uIFNpdGVzPC9BPiwgPEk+QS4gUm9hPC9JPiAKPExJPiAKICA8QSBocmVmPSIjSW5mbHVlbmNlJTIwb2YlMjBTdHJ1Y3R1cmUiPkluZmx1ZW5jZSBvZiBTdHJ1Y3R1cmUgYW5kIEZvcm11bGF0aW9uIG9uIHRoZSBFZmZpY2FjeSBvZiBQb2x5YWNyeWxhbWlkZXMgCiAgICBhcyBTb2lsIFN0YWJpbGl6ZXJzPC9BPiwgPEk+UC4gQ2hhbWJlcmxhaW4qIGFuZCBSLiBDb2xlPC9JPiAKPExJPiAKICA8QSBocmVmPSIjUHJhY3RpY2FsJTIwRmllbGQlMjBBcHBsaWNhdGlvbiI+UHJhY3RpY2FsIEZpZWxkIEFwcGxpY2F0aW9uIGFuZCBQQU0gVHJhbnNwb3J0IGluIFN1cmZhY2UgSXJyaWdhdGlvbjwvQT4sIDxJPlQuRC4gU3RpZWJlciBhbmQgSC4gQ2hhcG1hbi1TdXBraXM8L0k+IAo8TEk+IAogIDxBIGhyZWY9IiNFZmZlY3RpdmUlMjBWaXNjb3NpdHkiPkVmZmVjdGl2ZSBWaXNjb3NpdHkgb2YgUEFNIFNvbHV0aW9ucyBUaHJvdWdoIFBvcm91cyBNZWRpYTwvQT4sIDxJPkouIExldGV5PC9JPiAKPExJPiAKICA8QSBocmVmPSIjTmV0JTIwJiUyMFRlbnNpb24iPk5ldCBhbmQgVGVuc2lvbiBJbmZpbHRyYXRpb24gRWZmZWN0cyBvZiBQQU0gaW4gRnVycm93IElycmlnYXRpb248L0E+LCA8ST5SLkUuIFNvamthKiwgUi5ELiBMZW50eiwgQy5XLiBSb3NzIGFuZCBULkouIFRyb3V0PC9JPiAKPExJPiAKICA8QSBocmVmPSIjRmF0ZSUyMG9mJTIwQWNyeWxhbWlkZSI+RmF0ZSBvZiBBY3J5bGFtaWRlIE1vbm9tZXIgRm9sbG93aW5nIEFwcGxpY2F0aW9uIG9mIFBvbHlhY3J5bGFtaWRlIHRvIAogICAgQ3JvcGxhbmQ8L0E+LCA8ST5GLlcuIEJhcnZlbmlrLCBSLkUuIFNvamthLCBSLkQuIExlbnR6LCBGLkYuIEFuZHJhd2VzIGFuZCBMLlMuIE1lc3NuZXI8L0k+IAo8TEk+IAogIDxBIGhyZWY9IiNUaGUlMjBQaHlzaWNhbCUyMEVmZmVjdHMiPlRoZSBQaHlzaWNhbCBFZmZlY3RzIG9mIFBvbHlhY3J5bGFtaWRlIG9uIE5hdHVyYWwgUmVzb3VyY2VzPC9BPiwgPEk+TC5KLiBEYXdzb24sIFQuTC4gU3BvZmZvcmQ8L0k+ICAKPC9MST4gCiAgICA8L1VMPiAKICAgIDxMST4gCiAgICAgIDxIMz5Qb3N0ZXIgUHJlc2VudGF0aW9uczogCiAgICAgIDwvSDM+IAogICAgICA8VUw+IAogICAgICAgIDxMST4gCiAgICAgICAgICA8QSBocmVmPSIjUEFNJTIwc3ByYXklMjBlZmZlY3RzIj5QQU0gU3ByYXkgRWZmZWN0cyBvbiBTdWdhcmJlZXQgRW1lcmdlbmNlPC9BPiwgPEk+Ry5BLiBMZWhyc2NoLCBELkMuIEtpbmNhaWQsIGFuZCBSLkQuIExlbnR6PC9JPiAKPExJPiAKICA8QSBocmVmPSIjRGVtb25zdHJhdGlvbiUyMG9mJTIwUEFNJTIwdG8lMjBSZWR1Y2UiPkRlbW9uc3RyYXRpb24gb2YgUG9seWFjcnlsYW1pZGUgKFBBTSkgdG8gUmVkdWNlIEVyb3Npb24gb24gT25pb25zIGluIHRoZSAKICAgIEFya2Fuc2FzIFJpdmVyIFZhbGxleSBvZiBDb2xvcmFkbzwvQT4sIDxJPkouQy4gVmFsbGlhbnQ8L0k+ICAKPC9MST4gCiAgICAgIDwvVUw+IAogICAgICA8L0xJPiAKPC9VTD4gCjxIUj4gCjxIMj5PcmFsIFByZXNlbnRhdGlvbnMgCjwvSDI+IAo8SFI+IAo8SDQ+IAogIDxBIG5hbWU9IlRoZSBOYXRpb25hbCBJcnJpZ2F0aW9uIj5UaGUgTmF0aW9uYWwgSXJyaWdhdGlvbiBJbXByb3ZlbWVudCBJbml0aWF0aXZlPC9BPiAKPC9IND4gCjxQPlRlcnJ5IEx5bm90dC0tLTxJPk5BQ0Qgb2ZmaWNlIG9mIHRoZSBJcnJpZ2F0ZWQgQWcuIEluaXRpYXRpdmUsIExha2V3b29kLCBDTzwvST4gCjwvUD4gCjxQPk92ZXIgdGhlIHBhc3Qgc2V2ZXJhbCB5ZWFycywgcHVibGljIGFuZCBwcml2YXRlIHNlY3RvciByZXByZXNlbnRhdGl2ZXMgCiAgaGF2ZSBiZWVuIHB1cnN1aW5nIGEgbW9yZSBmb2N1c2VkIGFwcHJvYWNoIHRvIGFkZHJlc3MgdGhlIG5lZWQgZm9yIGJldHRlciAKICB3YXRlciBhbmQgbGFuZCBtYW5hZ2VtZW50IGluIGlycmlnYXRpb24gYW5kIG5vbi1pcnJpZ2F0aW9uIGFwcGxpY2F0aW9ucy4gCiAgT3V0IG9mIHRoZXNlIGVmZm9ydHMgaGFzIHNwcnVuZyBhIE5hdGlvbmFsIElycmlnYXRpb24gSW1wcm92ZW1lbnQgSW5pdGlhdGl2ZSwgCiAgYSBwdWJsaWMvcHJpdmF0ZSBwYXJ0bmVyc2hpcCBlZmZvcnQsIHVuZGVyIHRoZSBnZW5lcmFsIGRpcmVjdGlvbiBvZiB0aGUgCiAgTmF0aW9uYWwgQXNzb2NpYXRpb24gb2YgQ29uc2VydmF0aW9uIERpc3RyaWN0cy4gIAo8L1A+IAo8UD5UaGUgdmlzaW9uIGZvciB0aGUgSW5pdGlhdGl2ZSBpcyB0aGF0IHdhdGVyIGZvciBpcnJpZ2F0aW9uIGlzIGJlaW5nIHVzZWQgCiAgaW4gaGFybW9ueSB3aXRoIG90aGVyIGRlbWFuZHMgaW4gdGhlIG1vc3QgZWZmaWNpZW50IGFuZCBlbnZpcm9ubWVudGFsbHkgCiAgYWNjZXB0YWJsZSBtYW5uZXIgcG9zc2libGUuIEl0IGlzIHJlY29nbml6ZWQgdGhhdCBzb21lIGlycmlnYXRlZCBhcmVhcyAKICBoYXZlIGRldmVsb3BlZCB3YXRlciBxdWFsaXR5IGFuZCBvdGhlciBlbnZpcm9ubWVudGFsIHByb2JsZW1zLiBDb25zZXF1ZW50bHksIAogIGEgcHJpb3JpdHkgdG8gcmVzb2x2ZSB0aGVzZSBwcm9ibGVtcyBhbmQgcHJlc3N1cmUgdG8gbWluaW1pemUgd2F0ZXIgdXNhZ2UgCiAgYW5kIG5lZ2F0ZSByZXN1bHRpbmcgZW52aXJvbm1lbnRhbCBpbXBhY3RzIGlzIGludGVuc2lmeWluZyBmb3IgbWFueSBhZ3JpY3VsdHVyYWwgCiAgYW5kIG5vbi1hZ3JpY3VsdHVyYWwgaXJyaWdhdG9ycy4gQXBwbGljYXRpb24gb2YgcHJvdmVuIGFuZCBlbWVyZ2luZyB0ZWNobm9sb2dpZXMgCiAgYW5kIHByYWN0aWNlcyB0byBjb25zZXJ2ZSB3YXRlciBhbmQgdG9wc29pbCwgdG8gaW1wcm92ZSBhbmQgcHJvdGVjdCB3YXRlciAKICBxdWFsaXR5LCB0byBpbXByb3ZlIGFuZCBtYWludGFpbiBoYWJpdGF0IGZvciBmaXNoIGFuZCB3aWxkbGlmZSwgYW5kIHRvIAogIHJlZHVjZSBpcnJpZ2F0aW9uLWluZHVjZWQgZXJvc2lvbiBhcmUgcHJpbWFyeSBvYmplY3RpdmVzIG9mIHRoZSBJbml0aWF0aXZlLiAKPC9QPiAKPFA+VGhlIEluaXRpYXRpdmUgaXMgYSBwdWJsaWMgYW5kIHByaXZhdGUgcGFydG5lcnNoaXAgb2Ygb3JnYW5pemF0aW9ucywgYnVzaW5lc3NlcywgCiAgYXNzb2NpYXRpb25zLCBhbmQgYWdlbmNpZXMgd29ya2luZyBpbiBhIGNvb3JkaW5hdGVkIGFuZCBjb29wZXJhdGl2ZSBlZmZvcnQgCiAgdG8gYXNzaXN0IHJ1cmFsIGFuZCB1cmJhbiBpcnJpZ2F0b3JzIGluIGltcHJvdmluZyBhbmQgbWFpbnRhaW5pbmcgdGhlIGVudmlyb25tZW50IAogIHdoaWxlIGVuc3VyaW5nIGVmZmVjdGl2ZSB3YXRlciBhbmQgbGFuZCBtYW5hZ2VtZW50IHByYWN0aWNlcyBhbmQgc3VzdGFpbmFibGUgCiAgYWdyaWN1bHR1cmUuIEFzIHRoZSByZXN1bHQgb2YgYSBzdXJ2ZXkgY29uZHVjdGVkIGluIHRoZSBmaXJzdCBwaGFzZSBvZiAKICB0aGUgSW5pdGlhdGl2ZSwgYSBzaWduaWZpY2FudCBhbW91bnQgb2YgcHJvbWlzaW5nIGFjdGl2aXRpZXMgZnJvbSBhIHRlY2huaWNhbCwgCiAgZmluYW5jaWFsLCByZXNlYXJjaCwgYW5kIGVkdWNhdGlvbmFsIHBlcnNwZWN0aXZlIGFyZSBiZWluZyBhY2NvbXBsaXNoZWQsIAogIHByaW1hcmlseSBhdCB0aGUgbG9jYWwgbGV2ZWwuIEEgImZyYW1ld29yayIgc3VtbWFyaXppbmcgdGhpcyBhbmQgb3RoZXIgCiAgZ2VybWFuZSBpbmZvcm1hdGlvbiBpcyBiZWluZyBkZXZlbG9wZWQgdG8gcHJvdmlkZSByZWFkaWx5IHVzYWJsZSBtYXRlcmlhbCAKICBhYm91dCB3YXRlciBhbmQgbGFuZCBpbXByb3ZlbWVudCBwcmFjdGljZXMgZm9jdXNlZCBvbiBlbnZpcm9ubWVudGFsIHByb3RlY3Rpb24sIAogIGVjb3N5c3RlbSBoZWFsdGgsIGFuZCBzdXN0YWluYWJsZSBhZ3JpY3VsdHVyYWwgcHJvZHVjdGlvbi4gCjwvUD4gCjxQPkFuIG92ZXJyaWRpbmcgdGhlbWUgaXMgdG8gbm90ICJyZWludmVudCB0aGUgd2hlZWwiLiBSYXRoZXIsIGxlYXJuaW5nIGFib3V0IAogIGFuZCBjb252ZXlpbmcgaW5mb3JtYXRpb24gb24gc3VjY2VzcyBzdG9yaWVzIGlzIHRoZSBjZW50cmFsIHRoZW1lIG9mIHRoZXNlIAogIGVmZm9ydHMuIEVtcGhhc2lzIGlzIGJlaW5nIGdpdmVuIHRvIHRoZSB1c2Ugb2YgcGFydG5lcnNoaXBzIGZvcm1lZCBwcmltYXJpbHkgCiAgYXQgdGhlIGxvY2FsIGxldmVsLiBEZXZlbG9waW5nIG1lYW5zIHRvIHJlaW5mb3JjZSBvbmdvaW5nIGFjdGl2aXRpZXMsIHByb3ZpZGluZyAKICBpbmNlbnRpdmVzIHRvIGdldCBvdGhlciBlZmZvcnRzIGluaXRpYXRlZCwgYW5kIGJyb2FkZW5pbmcgdGhlIGtub3dsZWRnZSAKICBhYm91dCBkaXNzZW1pbmF0aW9uIG9mIGV4aXN0aW5nIGRhdGEgYW5kIGluZm9ybWF0aW9uIGZyb20gdGhlIHZhc3Qgc3RvcmVob3VzZXMgCiAgb2YgZ292ZXJubWVudCBhZ2VuY2llcywgYXNzb2NpYXRpb25zLCBhbmQgdGhlIHByaXZhdGUgY29ycG9yYXRlIHNlY3RvciAKICBhcmUgbWFqb3IgZWZmb3J0cyB1bmRlcndheS4gT3RoZXIgZm9ybXMgb2YgYXNzaXN0YW5jZSwgaW5jbHVkaW5nIHRoZSBwcm92aXNpb24gCiAgb2YgdGVjaG5pY2FsIGV4cGVydGlzZSBhbmQgZ3VpZGFuY2UsIGFuZCB0aGUgYXR0YWlubWVudCBvZiBwdWJsaWMgYW5kIHByaXZhdGUgCiAgZnVuZGluZyBmb3IgcGlsb3QgZGVtb25zdHJhdGlvbiBwcm9qZWN0cyBvZiBpcnJpZ2F0aW9uIHdhdGVyIGFuZCBsYW5kIGltcHJvdmVtZW50cywgCiAgYXJlIG1ham9yIGFudGljaXBhdGVkIEluaXRpYXRpdmUgYWN0aXZpdGllcy4gCjwvUD4gCjxQPkV4Y2hhbmdpbmcgY29nZW50IGluZm9ybWF0aW9uIGFib3V0IGVmZmVjdGl2ZSBpcnJpZ2F0aW9uIHdhdGVyIGFuZCBsYW5kIAogIHByYWN0aWNlcyB3aWxsIGJlIHJlYWxpemVkIGlmIHRoaXMgSW5pdGlhdGl2ZSBhdHRhaW5zIGl0cyBnb2FscyBhbmQgb2JqZWN0aXZlcy4gCiAgVGhlIE5hdGlvbmFsIEFzc29jaWF0aW9uIG9mIENvbnNlcnZhdGlvbiBEaXN0cmljdHMgaXMgY29udGludWluZyB0byBzdHJvbmdseSAKICBzdXBwb3J0IHRoZXNlIGVmZm9ydHMuIFdpdGggY29udGludWVkIGludGVyZXN0IGZyb20gdGhlIG90aGVyIGtleSBvcmdhbml6YXRpb25zIAogIGFuZCBlbnRpdGllcyBpbiBib3RoIHRoZSBwdWJsaWMgYW5kIHByaXZhdGUgc2VjdG9yLCBhbmQgdGhlIGdlbmVyYXRpb24gCiAgb2YgaW50ZXJlc3Qgb2Ygb3RoZXJzIGludm9sdmVkIGluIGlycmlnYXRpb24gd2F0ZXIgYW5kIGxhbmQgcHJhY3RpY2VzLCAKICB0aGUgb3ZlcmFsbCB2aXNpb24gZm9yIHRoZSBOYXRpb25hbCBJcnJpZ2F0aW9uIEluaXRpYXRpdmUgd2lsbCBiZSByZWFsaXplZC4gCjwvUD4gCjxBIGhyZWY9Ii9TUDJVc2VyRmlsZXMvUGxhY2UvNTM2ODAwMDAvcHVicy9uYXRpb25hbF9pcnJfaW1wX2luaS5wZGYiPkNsaWNrIGhlcmUgZm9yIHRoZSBjb21wbGV0ZSBhcnRpY2xlIGluIFBERiBmb3JtYXQuPC9BPiAKPFA+PEZPTlQgc2l6ZT0tMT4gCiAgPEEgaHJlZj0iI1RhYmxlJTIwb2YlMjBDb250ZW50cyI+QmFjayB0byBUYWJsZSBvZiBDb250ZW50czwvQT48L0ZPTlQ+IAo8L1A+IAo8SFI+IAo8SDQ+IAogIDxBIG5hbWU9IkEgUEFNIFByaW1lciI+QSBQQU0gUHJpbWVyOiBBIEJyaWVmIEhpc3Rvcnkgb2YgUEFNIGFuZCBQQU0tcmVsYXRlZCBJc3N1ZXM8L0E+IAo8L0g0PiggCjxBIGhyZWY9Ii9SZXNlYXJjaC9kb2NzLmh0bT9kb2NpZD0xODg3NiI+Q2xpY2sgaGVyZSBmb3IgYSBsaW5rIHRvIHRoZSBjb21wbGV0ZSBwYXBlciBpbiBIVE1MIGZvcm1hdC48L0E+KSAKPFA+Ui5FLiBTb2prYSBhbmQgUi5ELiBMZW50ei0tLTxJPlVTREEtQVJTLCBOb3J0aHdlc3QgSXJyaWdhdGlvbiBhbmQgU29pbHMgUmVzZWFyY2ggbGFib3JhdG9yeSwgS2ltYmVybHksIAogIElkYWhvPC9JPiAgCjwvUD4gCjxQPlBvbHlhY3J5bGFtaWRlIChQQU0pIGFuZCBvdGhlciBzeW50aGV0aWMgc29pbCBhbWVuZG1lbnQgcG9seW1lcnMgZmlyc3QgCiAgc2F3IHdpZGUgdXNlIGFzIHJvYWQgYW5kIHJ1bndheSBzdGFiaWxpemVycyBpbiBXb3JsZCBXYXIgSUkuIEluIHRoZSAxOTUwcyAKICBhbmQgNjBzIG51bWVyb3VzIHBvbHltZXJzIHdlcmUgdGVzdGVkIGZvciBhZ3JpY3VsdHVyZS4gVXNlLXN0cmF0ZWd5IHJlcXVpcmVkIAogIGh1bmRyZWRzIG9mIHBvdW5kcyBwZXIgYWNyZSwgdG8gb3B0aW1pemUgc29pbCBhZ2dyZWdhdGlvbiBpbiB0aGUgcGxvdyBsYXllci4gCiAgSGlnaCByYXRlcyByZXN0cmljdGVkIHVzZSB0byBoaWdoIHJldHVybiBhcHBsaWNhdGlvbnMuIFRoZSAxOTcwcyBhbmQgODBzIAogIHNhdyBvY2Nhc2lvbmFsIHJlbmV3YWwgb2YgaW50ZXJlc3QgaW4gYW1lbmRtZW50cyBhcyBuZXcgcG9seW1lcnMgd2VyZSBkZXZlbG9wZWQuIAogIFBBTXMgYmVjYW1lIGF2YWlsYWJsZSBpbiBtb3JlIHNvcGhpc3RpY2F0ZWQgY29wb2x5bWVyIGZvcm11bGF0aW9ucyBhbmQgCiAgbG9uZ2VyIGNoYWluIGxlbmd0aHMuIEEgMTk3NSBVU1NSIHJlcG9ydCBkZXNjcmliZWQgdXNpbmcgYSBwb2x5bWVyIGRpc3NvbHZlZCAKICBpbiBpcnJpZ2F0aW9uIHdhdGVyIHRvIHByZXZlbnQgZXJvc2lvbi4gVGhlIHJlcG9ydCBnYXZlIGZldyBkZXRhaWxzIGFuZCAKICB3YXMgbm90IHdpZGVseSByZWFkLiBJbiB0aGUgMTk4MCdzIFBBTS10cmVhdGVkIHNvaWwgYW5kIFBBTS10cmVhdGVkIHdhdGVyIAogIHdlcmUgdXNlZCBpbiBzb2lsIGNvbHVtbiBzdHVkaWVzLCByYWluIHNpbXVsYXRvcnMgYW5kIGJlbmNodG9wIHJpbGwgc2ltdWxhdG9ycy4gCiAgQSAxOTkxIGZpZWxkIHRlc3Qgb2YgUEFNIGluIEZ1cnJvdyBpcnJpZ2F0aW9uIHdhdGVyIGxlYWQgdG8gdXNlIGF0IHZlcnkgCiAgbG93IGFwcGxpY2F0aW9uIHJhdGVzIGZvciBlcm9zaW9uIGNvbnRyb2wgYW5kIGJldHRlciBpbmZpbHRyYXRpb24uIEhpZ2ggCiAgbW9sZWN1bGFyIHdlaWdodCBtb2RlcmF0ZWx5IGFuaW9uaWMgUEFNIGNvcG9seW1lcnMsIHJlZ2FyZGVkIHNhZmUgZm9yIHNlbnNpdGl2ZSAKICB1c2VzIGJ5IEVQQSBhbmQgRkRBIGFyZSByZWNvZ25pemVkIGJ5IE5SQ1MgZm9yIHNvaWwgY29uc2VydmF0aW9uIHVzZSB1bmRlciAKICBwcmVzY3JpYmVkIHByb3RvY29scy4gRGF0YSBhbmQgaW5zaWdodHMgYXJlIGdpdmVuIHRvIHByb3ZpZGUgYSBjb21tb24gdW5kZXJzdGFuZGluZyAKICBvZiBiYWNrZ3JvdW5kIGFuZCBnZW5lcmFsIHByaW5jaXBsZXMgb2YgUEFNLXVzZS4gCjwvUD4gCjxBIGhyZWY9Ii9TUDJVc2VyRmlsZXMvUGxhY2UvNTM2ODAwMDAvcHVicy9hX3BhbV9wcmltZXIucGRmIj5DbGljayBoZXJlIGZvciB0aGUgY29tcGxldGUgYXJ0aWNsZSBpbiBQREYgZm9ybWF0LjwvQT4gCjxQPjxGT05UIHNpemU9LTE+IAogIDxBIGhyZWY9IiNUYWJsZSUyMG9mJTIwQ29udGVudHMiPkJhY2sgdG8gVGFibGUgb2YgQ29udGVudHM8L0E+PC9GT05UPiAKPC9QPiAKPEhSPiAKPEg0PiAKICA8QSBuYW1lPSJGaXZlIFllYXIgUmVzZWFyY2giPkZpdmUtWWVhciBSZXNlYXJjaCBTdW1tYXJ5IFVzaW5nIFBBTSBpbiBGdXJyb3cgSXJyaWdhdGlvbjwvQT4gCjwvSDQ+IAo8UD5SLkQuIExlbnR6IGFuZCBSLkUuIFNvamthLS0tVVNEQS1BUlMsIEtpbWJlcmx5LCBJZGFoby4gIAo8L1A+IAo8UD5GdXJyb3ctaXJyaWdhdGlvbi1pbmR1Y2VkIHNvaWwgZXJvc2lvbiBpcyBhIHNlcmlvdXMgdGhyZWF0IHRvIHN1c3RhaW5hYmxlIAogIGFncmljdWx0dXJlIGdsb2JhbGx5LiBGaWVsZCBzdHVkaWVzIGhhdmUgZGVtb25zdHJhdGVkIHRoYXQgc21hbGwgY29uY2VudHJhdGlvbnMgCiAgb2YgcG9seWFjcnlsYW1pZGUgKFBBTSkgaW4gaXJyaWdhdGlvbiB3YXRlciBncmVhdGx5IHJlZHVjZXMgc29pbCBsb3NzIGZyb20gCiAgaXJyaWdhdGVkIGZ1cnJvd3MgYW5kIGluY3JlYXNlcyBpbnRha2UuIFRoZSBQQU0gdXNlZCBmb3IgdGhpcyBhcHBsaWNhdGlvbiAKICBpcyBkZXNjcmliZWQsIGFuZCBzYWZldHkgY29uY2VybnMgZGlzY3Vzc2VkLiBXaGVuIHVzZWQgYXQgcmVjb21tZW5kZWQgcmF0ZXMgCiAgUEFNIGlzIG5vbi10b3hpYyAsIGFuZCBpdCBoYXMgcHJldmlvdXMgRVBBIGFuZCBGREEgYXBwcm92YWwgZm9yIHVzZSBpbiAKICBmb29kIGFuZCB3YXRlciBhZGRpdGl2ZSBhcHBsaWNhdGlvbnMuIFBBTSBlZmZlY3RzIG9uIGZ1cnJvdyBpcnJpZ2F0aW9uIAogIHByb2Nlc3NlcyBhcmUgc3VtbWFyaXplZC4gT3B0aW1hbCBQQU0gdHJlYXRtZW50cyByZWR1Y2UgZnVycm93IHNvaWwgbG9zcyAKICBieSA5NCUsIGluY3JlYXNlIG5ldCBpbmZpbHRyYXRpb24gMTUlLCBpbmNyZWFzZSBsYXRlcmFsIHdldHRpbmcgZXh0ZW50IAogIDI1JSwgcmVkdWNlIHRvdGFsIHBob3NwaGF0ZSBsb3NzZXMgZnJvbSBmaWVsZHMgYnkgNzUlLCBhbmQgcmVkdWNlIGZpZWxkIAogIGxvc3NlcyBvZiBzb21lIHBlc3RpY2lkZXMuIFBBTSdzIGVyb3Npb24gY29udHJvbCBlZmZpY2FjeSBkZWNyZWFzZXMgYXMgCiAgc29kaXVtIGFkc29ycHRpb24gcmF0aW8gb2YgdGhlIGlycmlnYXRpb24gd2F0ZXIgaW5jcmVhc2VzLCBidXQgZ2VuZXJhbGx5IAogIGl0IGVmZmljYWN5IGluY3JlYXNlcyB3aXRoIGluY3JlYXNpbmcgZGl2YWxlbnQgY2F0aW9uIGNvbmNlbnRyYXRpb24uIFN0dWRpZXMgCiAgdGhhdCBleGFtaW5lZCB0aGUgZmF0ZSBvZiBQQU0gYWRkZWQgdG8gZnVycm93IHN0cmVhbXMgaXMgc3VtbWFyaXplZC4gRHVyaW5nIAogIFBBTSBhcHBsaWNhdGlvbiwgcnVub2ZmIGZyb20gc29sdXRpb24tdHJlYXRlZCBmdXJyb3dzIGNvbnRhaW5lZCA2LTEwIG1nL0wgCiAgUEFNLCB3aGlsZSBydW5vZmYgZnJvbSBkcnktUEFNIHRyZWF0ZWQgZnVycm93cyBjb250YWluZWQgMS02IG1nL0wuIFdoaWxlIAogIFBBTSB3YXMgYmVpbmcgaW5qZWN0ZWQgaW50byBzdHJlYW1zLCBpdHMgY29uY2VudHJhdGlvbiBkZWNyZWFzZWQgd2l0aCBkaXN0YW5jZSAKICBkb3duc3RyZWFtIGZyb20gdGhlIGFwcGxpY2F0aW9uIHBvaW50LiBUaGUgUEFNIGNvbmNlbnRyYXRpb24gaW4gc29sdXRpb24tdHJlYXRlZCAKICBmdXJyb3dzIGRlY3JlYXNlZCB0byB0aGUgbWluaW11bSBkZXRlY3Rpb24gbGltaXQgbGVzcyB0aGFuIDMwIG1pbnV0ZXMgYWZ0ZXIgCiAgUEFNIGluamVjdGlvbiB3YXMgY3VydGFpbGVkLiBJbiBhbm90aGVyIHN0dWR5LCBvZmYtc3RhbmRhcmQgUEFNIHRyZWF0bWVudHMgCiAgd2VyZSBzaG93biB0byBiZSBlcXVhbGx5IGVmZmVjdGl2ZSBhcyBzdGFuZGFyZCBhcHByb2FjaGVzLCBmb3IgY29udHJvbGxpbmcgCiAgZnVycm93IGVyb3Npb24uICAKPC9QPiAKPEEgaHJlZj0iL1NQMlVzZXJGaWxlcy9QbGFjZS81MzY4MDAwMC9wdWJzL2ZpdmV5ZWFyX3N1bW1hcnlfcGFtX2Zyd19pcnIucGRmIj5DbGljayBoZXJlIGZvciB0aGUgY29tcGxldGUgYXJ0aWNsZSBpbiBQREYgZm9ybWF0LjwvQT4gCjxQPjxGT05UIHNpemU9LTE+IAogIDxBIGhyZWY9IiNUYWJsZSUyMG9mJTIwQ29udGVudHMiPkJhY2sgdG8gVGFibGUgb2YgQ29udGVudHM8L0E+PC9GT05UPiAKPC9QPiAKPEhSPiAKPEg0PiAKICA8QSBuYW1lPSJBbiBJbnRlZ3JhdGVkIEFwcHJvYWNoIj5BbiBJbnRlZ3JhdGVkIEFwcHJvYWNoIEZvciBXYXRlciBRdWFsaXR5OiBUaGUgUEFNIENvbm5lY3Rpb24tLVdlc3QgU3RhbmlzbGF1cyAKICAgIEhVQSwgQ2FsaWZvcm5pYTwvQT4gCjwvSDQ+IAo8UD5NLiBNY0VsaGluZXkgYW5kIFAuIE9zdGVybGktLS08ST5VU0RBLU5SQ1MsIE1vZGVzdG8sIENhLiwgYW5kIFVuaXYuIG9mIENhbGlmb3JuaWEsIENvb3BlcmF0aXZlIEV4dGVuc2lvbiwgCiAgTW9kZXN0bywgQ2EuPC9JPiAgCjwvUD4gCjxQPklycmlnYXRpb24taW5kdWNlZCBlcm9zaW9uIGluIFRoZSBXZXN0IFN0YW5pc2xhdXMgSHlkcm9sb2dpYyBVbml0IEFyZWEgCiAgKEhVQSkgY2FuIHBvdGVudGlhbGx5IGNvbnRyaWJ1dGUgYSBtaWxsaW9uIHRvbnMgb2Ygc2VkaW1lbnQgdG8gdGhlIGltcGFpcmVkIAogIFNhbiBKb2FxdWluIFJpdmVyIGFubnVhbGx5LiBUaGUgSFVBIHByb2plY3Qgd2FzIGVzdGFibGlzaGVkIGJ5IFVTREEncyAxOTkwIAogICJXYXRlciBRdWFsaXR5IEluaXRpYXRpdmUiIHRvIHByb21vdGUgdGhlIGltcGxlbWVudGF0aW9uIG9mIEJlc3QgTWFuYWdlbWVudCAKICBQcmFjdGljZXMgdXNpbmcgYW4gaW50ZWdyYXRlZCBhcHByb2FjaCBvZiBpbmZvcm1hdGlvbiBhbmQgZWR1Y2F0aW9uLCB0ZWNobmljYWwgCiAgYXNzaXN0YW5jZSwgYW5kIGNvc3Qtc2hhcmluZy4gVGhlIEhVQSBoYXMgc2VydmVkIGFzIHRoZSB0ZXN0IHNpdGUgZm9yIHRoZSAKICBpbm5vdmF0aXZlIGV2YWx1YXRpb24gYW5kIHVzZSBvZiBQQU0gZm9yIHJlZHVjaW5nIHNpZ25pZmljYW50IGFtb3VudHMgb2YgCiAgc2VkaW1lbnQgYW5kIHBlc3RpY2lkZSByZXNpZHVlcyBsZWF2aW5nIGlycmlnYXRlZCBmaWVsZHMgaW4gdGhlIHdhdGVyc2hlZC4gCiAgRmllbGQgdHJpYWwgcmVzdWx0cyBpbiB0aGUgSFVBIGluZGljYXRlIGEgOTUtOTggcGVyY2VudCByZWR1Y3Rpb24gaW4gc29pbCAKICBsb3NzIGFuZCBhIGNvcnJlc3BvbmRpbmcgcmVkdWN0aW9uIGluIHBlc3RpY2lkZSByZXNpZHVlcyBsZWF2aW5nIHRoZSBmaWVsZHMgCiAgdGhyb3VnaCBmdXJyb3cgaXJyaWdhdGlvbi4gQWRkaXRpb25hbGx5LCBhIDEwLTQwIHBlcmNlbnQgaW5jcmVhc2UgaW4gaW5maWx0cmF0aW9uIAogIHdhcyBvYnNlcnZlZCBpbiB0cmVhdGVkIGZ1cnJvd3MuICAKPC9QPiAKPFA+VVNEQSBBUlMgc2NpZW50aXN0cyBhdCBLaW1iZXJseSwgSWRhaG8sIGFuZCBzY2llbnRpc3RzIGZyb20gVW5pdmVyc2l0eSAKICBvZiBDYWxpZm9ybmlhIGFuZCB0aGUgUEFNIEluZHVzdHJ5IGhhdmUgcGxheWVkIGtleSByb2xlcyBpbiBhc3Npc3Rpbmcgd2l0aCAKICB0aGUgZXN0YWJsaXNobWVudCBvZiB0aGUgaW50ZXJpbSBOUkNTIHN0YW5kYXJkIGFuZCBzcGVjaWZpY2F0aW9uIGluIENhbGlmb3JuaWEuICAKPC9QPiAKPEEgaHJlZj0iL1NQMlVzZXJGaWxlcy9QbGFjZS81MzY4MDAwMC9wdWJzL2ludGVncmF0ZWRfYXBwX2Zvcl93YXRlcl9xbHR5LnBkZiI+Q2xpY2sgaGVyZSBmb3IgdGhlIGNvbXBsZXRlIGFydGljbGUgaW4gUERGIGZvcm1hdC48L0E+IAo8UD48Rk9OVCBzaXplPS0xPiAKICA8QSBocmVmPSIjVGFibGUlMjBvZiUyMENvbnRlbnRzIj5CYWNrIHRvIFRhYmxlIG9mIENvbnRlbnRzPC9BPjwvRk9OVD4gCjwvUD4gCjxIUj4gCjxIND4gCiAgPEEgbmFtZT0iTWljcm9iaWFsIEVjb2xvZ3kgUG9seWFjcnlsYW1pZGUiPk1pY3JvYmlhbCBFY29sb2d5IG9mIFBvbHlhY3J5bGFtaWRlIEFwcGxpY2F0aW9uIGluIEFncmljdWx0dXJhbCBTb2lscy48L0E+IAo8L0g0PiAKPFA+TS5FLiBXYXR3b29kIGFuZCBKLkwuIEtheS1TaG9lbWFrZS0tLTxJPkRlcHQuIG9mIEJpb2xvZ2ljYWwgU2NpZW5jZXMsIElkYWhvIFN0YXRlIFVuaXZlcnNpdHksIFBvY2F0ZWxsbywgSUQuPC9JPiAgCjwvUD4gCjxQPkxpdHRsZSBpcyBrbm93biByZWdhcmRpbmcgdGhlIG1pY3JvYmlvbG9naWNhbCBmYXRlIG9mIFBBTSBpbiBhZ3JpY3VsdHVyYWwgCiAgZmllbGRzLiBXZSBoeXBvdGhlc2l6ZWQgdGhhdCBQQU0gdHJlYXRtZW50IHdvdWxkIHJlc3VsdCBpbiBjaGFuZ2VzIGluIHNvaWwgCiAgbWljcm9iaWFsIGNvbW11bml0aWVzLiBQQU0gdHJlYXRlZCBhbmQgdW50cmVhdGVkIHNvaWxzIHdlcmUgY29sbGVjdGVkIGZyb20gCiAgYmVhbiBhbmQgcG90YXRvIGZpZWxkcyBhdCB0aGUgVVNEQSBBUlMgU2l0ZSBpbiBLaW1iZXJseSwgSUQuIFNvaWxzIHdlcmUgCiAgYW5hbHl6ZWQgdG8gZGV0ZXJtaW5lIHRoZSBpbXBhY3Qgb2YgUEFNIGFkZGl0aW9ucyBvbiBzb2lsIGJhY3RlcmlhbCBudW1iZXJzLCAKICB0aGUgcG90ZW50aWFsIGZvciBQQU0gYmlvdHJhbnMtZm9ybWF0aW9uIGFzIGEgQyBvciBOIHNvdXJjZSwgYW5kIGltcGFjdCAKICBvZiBQQU0gdHJlYXRtZW50IG9uIGlub3JnYW5pYyBOIHBvb2xzLiBGZXcgZGlmZmVyZW5jZXMgd2VyZSBvYnNlcnZlZCBiZXR3ZWVuIAogIHRyZWF0ZWQgYW5kIHVudHJlYXRlZCBzb2lscyB3aXRoIHJlc3BlY3QgdG8gYmFjdGVyaWFsIG51bWJlcnMuIFBBTSB0cmVhdGVkIAogIHBvdGF0byBmaWVsZCBzb2lsIHNob3dlZCBzaWduaWZpY2FudGx5IGhpZ2hlciBsZXZlbHMgb2YgTk8gCjxTVUI+MzwvU1VCPiAKPFNVUD4tPC9TVVA+KDMuNjcgIAo8VT4rIAo8L1U+MC4yMiBwcG0pIGFuZCBOSCAKPFNVQj4zPC9TVUI+KDAuMTMgIAo8VT4rIAo8L1U+MC4wMyBwcG0pIHRoYW4gdW50cmVhdGVkIHNvaWwgKDEuMDcgIAo8VT4rIAo8L1U+MC4yMyBwcG0gYW5kIDAuMDUgIAo8VT4rIAo8L1U+MC4wMDIgcHBtIGZvciBOTyAKPFNVQj4zPC9TVUI+IAo8U1VQPi08L1NVUD5hbmQgTkggCjxTVUI+MzwvU1VCPiwgcmVzcGVjdGl2ZWx5KS4gRm9yIGJlYW4gZmllbGQgc29pbCB0aGVyZSB3YXMgbm8gZGlmZmVyZW5jZSBiZXR3ZWVuIHRyZWF0ZWQgCmFuZCB1bnRyZWF0ZWQgc29pbCBOIHBvb2xzLiBFbnJpY2htZW50IGN1bHR1cmVzIGdlbmVyYXRlZCBmcm9tIFBBTSB0cmVhdGVkIAphbmQgdW50cmVhdGVkIHNvaWxzIHdlcmUgYWJsZSB0byB1dGlsaXplIFBBTSBhcyBzb2xlIE4gc291cmNlOyBubyBlbnJpY2htZW50IApjdWx0dXJlcyB3ZXJlIGFibGUgdG8gZGVyaXZlIEMgZnJvbSBQQU0uIFNvaWwgbWljcm9iaWFsIGNvbnNvcnRpYSB1dGlsaXplZCAKYWNyeWxhbWlkZSBhbmQgYWNyeWxpYyBhY2lkLiAgCjwvUD4gCjxBIGhyZWY9Ii9TUDJVc2VyRmlsZXMvUGxhY2UvNTM2ODAwMDAvcHVicy9taWNyb2JpYWxfZWNsZ3lfcGFtX2FwcF9hZ19zb2lscy5wZGYiPkNsaWNrIGhlcmUgZm9yIHRoZSBjb21wbGV0ZSBhcnRpY2xlIGluIFBERiBmb3JtYXQuPC9BPiAKPFA+PEZPTlQgc2l6ZT0tMT4gCiAgPEEgaHJlZj0iI1RhYmxlJTIwb2YlMjBDb250ZW50cyI+QmFjayB0byBUYWJsZSBvZiBDb250ZW50czwvQT48L0ZPTlQ+IAo8L1A+IAo8SFI+IAo8SDQ+IAogIDxBIG5hbWU9IlByb2R1Y3QgU3Rld2FyZHNoaXAiPlByb2R1Y3QgU3Rld2FyZHNoaXAgQ29uc2lkZXJhdGlvbnMgaW4gdGhlIHVzZSBvZiBQb2x5YWNyeWxhbWlkZSBpbiBTb2lsIAogICAgRXJvc2lvbjwvQT4gCjwvSDQ+IAo8UD5SLiBEZXNraW4tLS08ST5EQUJULiBDWVRFQyBJbmR1c3RyaWVzIEluYy4sIFdlc3QgUGF0ZXJzb24sIE5KPC9JPiAgCjwvUD4gCjxQPlByb2R1Y3QgU3Rld2FyZHNoaXAgaXMgYSBnbG9iYWwgdGVybSB0aGF0IGFyaXNlcyBmcm9tIFJlc3BvbnNpYmxlIENhcmUgCiAgaW5pdGlhdGl2ZXMgb3JpZ2luYXRpbmcgaW4gdGhlIFVTLCBDYW5hZGEgYW5kIEV1cm9wZS4gUHJvZHVjdCBTdGV3YXJkc2hpcCAKICBpcyBhbiBleHRlbnNpb24gb2YgUHJvZHVjdCBzYWZldHkgcHJvZ3JhbXMsIHRoZSBwcmluY2lwbGVzIG9mIHdoaWNoIGFyZSAKICBhcHBsaWVkIHRvIGFsbCBhc3BlY3RzIG9mIHRoZSBwcm9kdWN0IGxpZmUgY3ljbGUuIFRoZSBlc3NlbmNlIG9mIFByb2R1Y3QgCiAgU3Rld2FyZHNoaXAgaXMgdGhlIHJlc3BvbnNpYmxlIGFuZCBldGhpY2FsIG1hbmFnZW1lbnQgb2Ygb3VyIHByb2R1Y3RzIGZyb20gCiAgZGVzaWduIHRvIGZpbmFsIGRpc3Bvc2l0aW9uIG9yIGZyb20gY3JhZGxlIHRvIGdyYXZlLiBJdCBpbnZvbHZlcyB0aGUgY29tcHJlaGVuc2l2ZSAKICBpbnRlZ3JhdGlvbiBvZiBoZWFsdGggc2FmZXR5IGFuZCBlbnZpcm9ubWVudGFsIGNvbnNpZGVyYXRpb25zIGludG8gYWxsIAogIGFzcGVjdHMgb2YgYnVzaW5lc3MgYW5kIGZvY3VzZXMgb24gdGhlIHByb2R1Y3QgbGlmZSBjeWNsZS4gQXQgdGhlIGhlYXJ0IAogIG9mIFByb2R1Y3QgU3Rld2FyZHNoaXAgaXMgdGhlIHByb2R1Y3QgTGlmZSBDeWNsZSB3aGljaCBpcyBjb250aW51b3VzIGFuZCAKICBpbmNsdWRlcyBjdXN0b21lciBuZWVkLCByYXcgbWF0ZXJpYWxzIGFjcXVpc2l0aW9uLCBwcm9kdWN0IGRlc2lnbiBhbmQgZGV2ZWxvcG1lbnQsIAogIG1hbnVmYWN0dXJpbmcsIHByb2R1Y3QgZGlzdHJpYnV0aW9uLCBwcm9kdWN0IHVzYWdlLCByZWN5Y2xlIGFuZCByZXVzZSBhbmQgCiAgZGlzcG9zYWwuICAKPC9QPiAKPFA+QSBjb21wcmVoZW5zaXZlIFByb2R1Y3QgU3Rld2FyZHNoaXAgcHJvZ3JhbSBpbmNsdWRlcyBoYXphcmQgY2xhc3NpZmljYXRpb24gCiAgYXQgaXRzIGNvcmUuIEluIGV2YWx1YXRpbmcgcmlzayBvZiBhIHByb2R1Y3QsIG9uZSB0YWtlcyBpbnRvIGFjY291bnQgaGF6YXJkIAogIGFuZCBleHBvc3VyZSwgYXMgdGhleSBib3RoIGNvbXByaXNlIHJpc2suIEhhemFyZCBpcyBhIG1hdGVyaWFscyBpbnRyaW5zaWMgCiAgcG90ZW50aWFsIHRvIGNhdXNlIGhhcm0uIFRoaXMgbWF5IGluY2x1ZGUgaGVhbHRoLCBwaHlzaWNhbCBvciBlbnZpcm9ubWVudGFsIAogIGhhemFyZC4gRXhwb3N1cmUgaXMgdGhlIGNvbnRhY3QgYSBtYXRlcmlhbCBtYWtlcyB3aXRoIGh1bWFuLCBhbmltYWwsIG9yIAogIHBsYW50IGxpZmUgb3Igd2l0aCBhaXIsIHdhdGVyIG9yIHNvaWwuIFJpc2sgaXMgdGhlIGNvbWJpbmF0aW9uIG9mIGhhemFyZCAKICBhbmQgZXhwb3N1cmUgdGhhdCBlc3RhYmxpc2hlcyB0aGUgcHJvYmFiaWxpdHkgb2YgYW4gb2NjdXJyZW5jZSBvZiBhbiB1bndhbnRlZCAKICBhZHZlcnNlIGVmZmVjdCBvbiBodW1hbiBoZWFsdGggb3IgdGhlIGVudmlyb25tZW50LiAgCjwvUD4gCjxQPlRoaXMgcGFwZXIgZGVzY3JpYmVzIHRoZSBhZGhlcmVuY2UgdG8gdGhlIHByaW5jaXBsZXMgb2YgUHJvZHVjdCBTdGV3YXJkc2hpcCAKICBpbiB0aGUgdXNlIG9mIFBvbHlhY3J5bGFtaWRlcyBpbiBzb2lsIGVyb3Npb24gYXBwbGljYXRpb24uIEFuaW9uaWMgUEFNJ3MgCiAgaGF2ZSBsb3cgdG94aWNpdHkgdG8gYXF1YXRpYyBvcmdhbmlzbXMgYW5kIGRvIG5vdCBjYXVzZSBhZHZlcnNlIGVmZmVjdHMgCiAgb24gcGxhbnRzLCB3b3Jtcywgc29pbCBudXRyaWVudHMgb2Ygbml0cmlmeWluZyBiYWN0ZXJpYS4gVGhlIHBvbHltZXIgaXMgCiAgbm9uLXRveGljIGFuZCBkb2VzIG5vdCBkZWdyYWRlIHRvIGZyZWUgbW9ub21lci4gIAo8L1A+IAo8QSBocmVmPSIvU1AyVXNlckZpbGVzL1BsYWNlLzUzNjgwMDAwL3B1YnMvcHJvZHVjdF9zdHdzaGlwX2Nvbl91c2Vfb2ZfcGFtLnBkZiI+Q2xpY2sgaGVyZSBmb3IgdGhlIGNvbXBsZXRlIGFydGljbGUgaW4gUERGIGZvcm1hdC48L0E+IAo8UD4gCiAgPEEgaHJlZj0iI1RhYmxlJTIwb2YlMjBDb250ZW50cyI+QmFjayB0byBUYWJsZSBvZiBDb250ZW50czwvQT4gCjwvUD4gCjxIUj4gCjxIND4gCiAgPEEgbmFtZT0iUmVkdWN0aW9uIG9mIE51dHJpZW50Ij5SZWR1Y3Rpb24gb2YgTnV0cmllbnQgYW5kIFBlc3RpY2lkZSBMb3NzZXMgdGhyb3VnaCB0aGUgQXBwbGljYXRpb24gb2YgCiAgICBQb2x5YWNyeWxhbWlkZSBpbiBzdXJmYWNlIElycmlnYXRlZCBDcm9wczwvQT4gCjwvSDQ+IAo8UD5HYXJ5IEJhaHIgYW5kIFRpbSBTdGllYmVyLS0tPEk+SWRhaG8gRGVwYXJ0bWVudCBvZiBBZ3JpY3VsdHVyZSBhbmQgVW5pdmVyc2l0eSBvZiBJZGFobywgQ29vcC4gRXh0LiBTZXJ2aWNlLCAKICBCb2lzZSwgSUQ8L0k+ICAKPC9QPiAKPFA+VGhlIGJlbmVmaXRzIG9mIHBvbHlhY3J5bGFtaWRlIChQQU0pIGZvciByZXRhaW5pbmcgc29pbCwgbnV0cmllbnRzLCBhbmQgCiAgcGVzdGljaWRlcyB3YXMgZXZhbHVhdGVkIG9uIHRocmVlIHNvdXRod2VzdCBJZGFobyBncm93ZXIgbWFuYWdlZCBmaWVsZHMuIAogIFNVUEVSRkxPQyAKPFNVUD5SPC9TVVA+QTgzNiAKPFNVUD4zIDwvU1VQPndhcyBhcHBsaWVkIGluIHRoZSBpcnJpZ2F0aW9uIHdhdGVyIGR1cmluZyB0aGUgZnVycm93IGFkdmFuY2UgcGhhc2Ugb2YgCmlycmlnYXRpb24gYXQgMS4wIHRvIDEuMjUgcG91bmRzIHBlciBhY3JlLiBXYXRlciBpbmZsb3cgYW5kIG91dGZsb3cgcmF0ZSwgCmZ1cnJvdyBhZHZhbmNlIHRpbWUsIGxhdGVyYWwgc3ViYmluZywgYW5kIHNlZGltZW50IGNvbnRlbnQgd2VyZSBtZWFzdXJlZC4gCldhdGVyIGFuZCBzZWRpbWVudCBzYW1wbGVzIHdlcmUgY29sbGVjdGVkIGF0IDE1IG1pbnV0ZXMsIDQgaCwgYW5kIDIyIGggCmFmdGVyIHJ1bm9mZiBvY2N1cnJlZCBmb3JtIHRoZSBmdXJyb3dzLiBTYW1wbGUgYW5hbHlzaXMgb2YgbnV0cmllbnRzIGluY2x1ZGVkIApLamVsZGFobCBOLCBOTzMtTiwgTjAyLU4sIE5IMy1OLCB0b3RhbCBQLCBhbmQgb3J0aG8gUC4gUGVzdGljaWRlIGFuYWx5c2VzIAppbmNsdWRlZDogdGVyYnVmb3MsIGN5Y2xvYXRlLCBFUFRDLCBicm9tb3h5bmlsLCBjaGxvcnB5cmlmb3MsIG94eWZsdW9yZmVuLCAKYW5kIHBlbmRpbWV0aGFsaW4uICAKPC9QPiAKPFA+UEFNIGFwcGxpY2F0aW9uIHJlZHVjZWQgc2VkaW1lbnQgbG9zcyBmcm9tIDM1IHRvIDk5ICUsIGluY3JlYXNlZCBpbmZpbHRyYXRpb24gCiAgZm9ybSA3IHRvIDQ5JSwgYW5kIGluY3JlYXNlZCBsYXRlcmFsIHNvaWwgd2V0dGluZyBieSAxIHRvIDEzJS4gVG90YWwgTiAKICBhbmQgUCBjb25jZW50cmF0aW9ucyBsZWF2aW5nIHRoZSBmdXJyb3dzIHdhcyByZWR1Y2VkIGJ5IG92ZXIgOTAlIHdpdGggUEFNIAogIHRyZWF0bWVudDsgb3J0aG8gUCB3YXMgcmVkdWNlZCBieSA1MCUuIE5pdHJhdGUtTiBpbiBydW5vZmYgd2F0ZXIgd2FzIGFsc28gCiAgcmVkdWNlZCB0aHJvdWdoIFBBTSBhcHBsaWNhdGlvbiBidXQgYXZlcmFnZSBjb25jZW50cmF0aW9ucyBuZXZlciBleGNlZWRlZCAKICAxLjAgcHBtLiAgCjwvUD4gCjxQPlBBTSB0cmVhdG1lbnQgcmVkdWNlZCBwZXN0aWNpZGUgY29uY2VudHJhdGlvbiBpbiB0YWlsd2F0ZXIgYnkgMCB0byA5OCUgCiAgZGVwZW5kaW5nIG9uIHRoZSBjb21wb3VuZC4gQ29uY2VudHJhdGlvbiBvZiBudXRyaWVudHMgYW5kIHBlc3RpY2lkZXMgd2VyZSAKICBncmVhdGVzdCB3aXRoIGluaXRpYWwgb3V0ZmxvdyB3YXRlciBhbmQgbGVhc3QgYXQgdGhlIGVuZCBvZiB0aGUgaXJyaWdhdGlvbi4gCiAgQ29uY2VudHJhdGlvbiBhbmQgaW5jaWRlbmNlIG9mIHBlc3RpY2lkZXMgaW4gc2VkaW1lbnQgd2VyZSBncmVhdGVyIHRoYW4gCiAgaW4gdGFpbHdhdGVyLiBQQU0gYXBwbGljYXRpb24gcmVkdWNlZCBzZWRpbWVudCBwZXN0aWNpZGUgY29uY2VudHJhdGlvbiwgCiAgYWx0aG91Z2ggc2FtcGxlIGNvbGxlY3Rpb24gd2FzIGxpbWl0ZWQgZm9yIHNvbWUgZmllbGRzLiAgCjwvUD4gCjxQPklmIFBBTSBhcHBsaWNhdGlvbnMgYW5kIGlycmlnYXRpb24gYXJlIG1hbmFnZWQgcHJvcGVybHkgdGhlcmUgY2FuIGJlIHNpZ25pZmljYW50IAogIHJlZHVjdGlvbnMgaW4gc2VkaW1lbnQgbG9zcyB3aGlsZSBwcmV2ZW50aW5nIHNpZ25pZmljYW50IGxvc3NlcyBvZiBudXRyaWVudHMgCiAgYW5kIHBlc3RpY2lkZXMuIEluZmllbGQgY3JvcCBwcm9kdWN0aW9uIGJlbmVmaXRzIGFwcGVhciB0byBiZSBzaWduaWZpY2FudCAKICB3aGlsZSBwcm90ZWN0aW5nIHdhdGVyIHF1YWxpdHkuIEdyb3dlciBpbnZvbHZlbWVudCBkdXJpbmcgdHJpYWxzIGFuZCBmaWVsZCAKICBkZW1vbnN0cmF0aW9uIHRvdXJzIGhhcyBiZWVuIGltcG9ydGFudCBmb3IgcHJhY3RpY2UgYWRvcHRpb24uICAKPC9QPiAKPEEgaHJlZj0iL1NQMlVzZXJGaWxlcy9QbGFjZS81MzY4MDAwMC9wdWJzL3JkY3Rfb2ZfbG9zc2VzX2FwcF9wYW1faXJyX2Nyb3BzLnBkZiI+Q2xpY2sgaGVyZSBmb3IgdGhlIGNvbXBsZXRlIGFydGljbGUgaW4gUERGIGZvcm1hdC48L0E+IAo8UD48Rk9OVCBzaXplPS0xPiAKICA8QSBocmVmPSIjVGFibGUlMjBvZiUyMENvbnRlbnRzIj5CYWNrIHRvIFRhYmxlIG9mIENvbnRlbnRzPC9BPjwvRk9OVD4gCjwvUD4gCjxIUj4gCjxIND4gCiAgPEEgbmFtZT0iQWdyaWN1bHR1cmUgSXJyaWdhdGlvbiBQQU0iPkFncmljdWx0dXJlIElycmlnYXRpb24gUG9seWFjcnlsYW1pZGUgQXBwbGljYXRpb24gU3RhbmRhcmQ8L0E+IAo8L0g0PiAKPFA+VC5MLiBTcG9mZm9yZCBhbmQgSy5MLiBQZmVpZmZlci0tLTxJPlVTREEtTlJDUywgUG9ydGxhbmQsIE9SPC9JPiAgCjwvUD4gCjxQPkFuIGludGVyaW0gY29uc2VydmF0aW9uIHByYWN0aWNlIHN0YW5kYXJkIHdhcyBkZXZlbG9wZWQgYnkgdGhlIE5hdHVyYWwgCiAgUmVzb3VyY2VzIENvbnNlcnZhdGlvbiBTZXJ2aWNlLCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBBUlMsIHRvIGFkZHJlc3MgCiAgZW52aXJvbm1lbnRhbCBzYWZldHkgY29uY2VybnMgb2YgcG9seWFjcnlsYW1pZGUgYXBwbGljYXRpb25zIG9uIHN1cmZhY2UgCiAgaXJyaWdhdGVkIGNyb3BsYW5kcy4gVGhpcyBzdGFuZGFyZCBlc3RhYmxpc2hlcyBjcml0ZXJpYSBmb3IgdGhlIHJlZHVjdGlvbiAKICBvZiBpcnJpZ2F0aW9uIGluZHVjZWQgZXJvc2lvbiBmcm9tIHN1cmZhY2UgaXJyaWdhdGlvbiB1c2luZyBwb2x5YWNyeWxhbWlkZSAKICBtYXRlcmlhbHMgaW4gcXVhbnRpdGllcyB0aGF0IHRyZWF0IHRoZSBwcm9ibGVtIGFuZCBtaW5pbWl6ZSBvZmYgZmllbGQgaW1wYWN0cy4gCiAgQ3VycmVudCByZXNlYXJjaCBhbmQgZG9jdW1lbnRhdGlvbiBvZiBzaXRlIGFuZCBhcHBsaWNhdGlvbiBpbmZvcm1hdGlvbiwgCiAgbWF0ZXJpYWwgZWZmZWN0aXZlbmVzcywgYW5kIG9mZnNpdGUgaW1wYWN0cyB3aWxsIGJlIHVzZWQgdG8gZXZhbHVhdGUsIHJldmlzZSAKICBhbmQgZW5oYW5jZSB0aGlzIHN0YW5kYXJkLiAgCjwvUD4gCjxBIGhyZWY9Ii9TUDJVc2VyRmlsZXMvUGxhY2UvNTM2ODAwMDAvcHVicy9hZ19pcnJfcGFtX2FwcF9zdGQucGRmIj5DbGljayBoZXJlIGZvciB0aGUgY29tcGxldGUgYXJ0aWNsZSBpbiBQREYgZm9ybWF0LjwvQT4gCjxQPjxGT05UIHNpemU9LTE+IAogIDxBIGhyZWY9IiNUYWJsZSUyMG9mJTIwQ29udGVudHMiPkJhY2sgdG8gVGFibGUgb2YgQ29udGVudHM8L0E+PC9GT05UPiAKPC9QPiAKPEhSPiAKPEg0PiAKICA8QSBuYW1lPSJPbiBGYXJtIENvbXBhcmlzb24iPk9uLUZhcm0gQ29tcGFyaXNvbiBvZiBQb2x5YWNyeWxhbWlkZSBhbmQgU3RyYXcgTXVsY2ggb24gRHJ5IEJlYW4gWWllbGQsIAogICAgSXJyaWdhdGlvbiBQZXJmb3JtYW5jZSBhbmQgRXJvc2lvbjwvQT4gCjwvSDQ+IAo8UD5CLkEuIEtpbmcsIEIuIEl6YWRpLCBNLlMuIEFzaHJhZiwgUi5ILiBCcm9va3MgYW5kIFcuSC4gTmVpYmxpbmctLTxJPlVuaXYuIG9mIElkYWhvLCBBYmVyZGVlbiwgVW5pdi4gb2YgSWRhaG8sIE1vc2NvdywgVW5pdi4gb2YgSWRhaG8sIE1vc2NvdywgCiAgVW5pdi4gb2YgSWRhaG8sIEJ1cmxleSBhbmQgVW5pdi4gb2YgSWRhaG8sIFR3aW4gRmFsbHMuPC9JPiAgCjwvUD4gCjxQPlBvbHlhY3J5bGFtaWRlIChQQU0pIGFuZCBzdHJhdyBtdWxjaGluZyB3ZXJlIGV2YWx1YXRlZCBpbiBhbiBvbi1mYXJtIHN0dWR5IAogIHRvIG9idGFpbiBzaXRlLXNwZWNpZmljIGluZm9ybWF0aW9uIG9uIGVyb3Npb24gY29udHJvbCBhbmQgaXJyaWdhdGlvbiBwZXJmb3JtYW5jZS4gCiAgVGhlIHNwZWNpZmljIG9iamVjdGl2ZSB3YXMgdG8gZG9jdW1lbnQgdGhlIHBvdGVudGlhbCBvZiBQYW0gdW5kZXIgY29udGludW91cyAKICBmbG93IGZ1cnJvdyBpcnJpZ2F0aW9uIGFuZCBzdHJhdyBtdWxjaCB1bmRlciBzdXJnZSBmbG93IGZ1cnJvdyBpcnJpZ2F0aW9uIAogIHRvIHJlZHVjZSBzb2lsIGVyb3Npb24gYW5kIGltcHJvdmUgaXJyaWdhdGlvbiBwZXJmb3JtYW5jZSB1bmRlciB0d28gc2xvcGUgCiAgY29uZGl0aW9ucy4gQSByYW5kb21pemVkIGJsb2NrIGV4cGVyaW1lbnRhbCBkZXNpZ24gY29uc2lzdGluZyBvZiB0aHJlZSAKICB0cmVhdG1lbnRzIGFuZCBzaXggcmVwbGljYXRpb25zIHdhcyBlc3RhYmxpc2hlZCBpbiBhIGNvbW1lcmNpYWwgZHJ5IGJlYW4gCiAgZmllbGQgb24gYSAwLjglIGFuZCAxLjYlIHNsb3BlLiBUaGUgdHJlYXRtZW50cyBjb25zaXN0ZWQgb2YgY29udmVudGlvbmFsIAogIGNvbnRpbnVvdXMgZmxvdyBmdXJyb3cgaXJyaWdhdGlvbiAoY29udHJvbCksIGNvbnRpbnVvdXMgZmxvdyB3aXRoIGxpcXVpZCAKICBQQU0gaW5qZWN0aW9uIHVudGlsIHJ1bm9mZiBiZWdhbiwgYW5kIHN0cmF3IG11bGNoIHdpdGggc3VyZ2UgaXJyaWdhdGlvbi4gCiAgVGhlIFBBTSB0cmVhdG1lbnQgcmVkdWNlZCBzZWRpbWVudCBsb3NzIGJ5IDc4JSBhbmQgdGhlIHN0cmF3IHRyZWF0bWVudCAKICByZWR1Y2VkIHNlZGltZW50IGxvc3MgYnkgOTUlIGNvbXBhcmVkIHRvIHRoZSBjb250cm9sLiBEcnkgYmVhbiB5aWVsZCB3YXMgCiAgc2lnbmlmaWNhbnRseSBpbmNyZWFzZWQgYnkgYm90aCB0cmVhdG1lbnRzIGF0IHRoZSB0b3AgYW5kIG1pZGRsZSBvZiB0aGUgCiAgZmllbGQgb24gdGhlIDEuOCUgc2xvcGUgYW5kIHdhcyBub3Qgc2lnbmlmaWNhbnRseSBpbmNyZWFzZWQgb24gdGhlIDAuOCUgCiAgc2xvcGUgY29tcGFyZWQgdG8gdGhlIGNvbnRyb2wuICAKPC9QPiAKPEEgaHJlZj0iL1NQMlVzZXJGaWxlcy9QbGFjZS81MzY4MDAwMC9wdWJzL2Zhcm1fY29tX3BhbV9zdHJhd19pcnJfcGVyX2Vyb3Npb24ucGRmIj5DbGljayBoZXJlIGZvciB0aGUgY29tcGxldGUgYXJ0aWNsZSBpbiBQREYgZm9ybWF0LjwvQT4gCjxQPjxGT05UIHNpemU9LTE+IAogIDxBIGhyZWY9IiNUYWJsZSUyMG9mJTIwQ29udGVudHMiPkJhY2sgdG8gVGFibGUgb2YgQ29udGVudHM8L0E+PC9GT05UPiAKPC9QPiAKPEhSPiAKPEg0PiAKICA8QSBuYW1lPSJOZWVkIGZvciBTb2x1dGlvbiI+TmVlZCBmb3IgU29sdXRpb24gb3IgRXhjaGFuZ2VhYmxlIENhbGNpdW0gYW5kL29yIENyaXRpY2FsIEVDIExldmVsIGZvciAKICAgIEZsb2NjdWxhdGlvbiBvZiBDbGF5IGJ5IFBvbHlhY3J5bGFtaWRlcy48L0E+IAo8L0g0PiAKPFA+QXJ0aHVyIFdhbGxhY2UgYW5kIEdhcm4gQS4gV2FsbGFjZS0tLTxJPldhbGxhY2UgTGFib3JhdG9yaWVzLCBFbCBTZWd1bmRvLCBDQSA5MDI0NS48L0k+ICAKPC9QPiAKPFA+V2UgaGF2ZSBmcmVxdWVudGx5IG9ic2VydmVkIGluIG91ciBmaWVsZCB3b3JrIHRoYXQgY29hcHBsaWNhdGlvbiBvZiBneXBzdW0gCiAgd2l0aCBwb2x5YWNyeWxhbWlkZSBsZWFkcyB0byBpbmNyZWFzZWQgZmxvY2N1bGF0aW9uIG9mIHNvaWwuIFZhcmlvdXMgdGVjaG5pcXVlcyAKICBoYXZlIGJlZW4gdXNlZCBpbiB0aGUgbGFib3JhdG9yeSB0byBldmFsdWF0ZSB0aGUgcG9zc2libGUgaW1wb3J0YW5jZSBvZiAKICBlaXRoZXIgb3IgYm90aCBjYWxjaXVtIGJyaWRnaW5nIGFuZCBzb2x1dGUgY29uY2VudHJhdGlvbiAoRUMpIG9uIHRoZSBmbG9jY3VsYXRpb24gCiAgcHJvY2Vzcy4gQSBjYWxjYXJlb3VzIHNvaWwgb2YgcEggb3ZlciA4IGFuZCBzbGlnaHRseSBzYWxpbmUgd2FzIGxlYWNoZWQgCiAgd2l0aCBkZWlvbml6ZWQgd2F0ZXIgdG8gYW4gRUMgb2YgMC4wOCBkcy9tIGluIHRoZSBsZWFjaGF0ZS4gQW4gYWNpZCBjbGF5IAogIHNvaWwgb2YgcEggbmVhciA0IHdhcyBzdHVkaWVkIHdpdGggYW5kIHdpdGhvdXQgY2F0aW9uIG5ldXRyYWxpemF0aW9uIHdpdGggCiAgQ2EoT0gpIAo8U1VCPjI8L1NVQj4uIFRoZSBFQyBpbiB0aGUgc3lzdGVtcyB3YXMgdmFyaWVkIHdpdGggZ3lwc3VtIGFuZCB3aXRoIE5IIAo8U1VCPjQ8L1NVQj5OTyAKPFNVQj4zPC9TVUI+LiBQb2x5YWNyeWxhbWlkZXMgdXNlZCBoYWQgYXJvdW5kIDIwLCBuZWFyIDIsIGFuZCBuZWFyIDAgYW5pb25pYyBjaGFyZ2VzLiAKRnVsbCBmbG9jY3VsYXRpb24gd2FzIGV4Y2VlZGluZ2x5IGRpZmZpY3VsdCB0byBhY2hpZXZlIGluIHRoZSB2ZXJ5IGxvdyAKc29sdXRlIHNvaWxzLiBUaGVyZSBtYXkgYmUgYSB0d28tY29tcG9uZW50IGVmZmVjdC4gTmV1dHJhbGl6YXRpb24gb2YgdGhlIAphY2lkIHNvaWwgZHJhbWF0aWNhbGx5IGluY3JlYXNlZCBmbG9jY3VsYXRpb24uIEJvdGggZ3lwc3VtIGFuZCBOSCAKPFNVQj40PC9TVUI+Tk8gCjxTVUI+MzwvU1VCPndlcmUgZWZmZWN0aXZlIGluIGVuaGFuY2luZyB0aGUgZmxvY2N1bGF0aW9uIGFuZCBhbG1vc3QgZXF1YWxseS4gVGhlIGFic29sdXRlIApuZWVkIGZvciBjYWxjaXVtIGFzIGEgYnJpZGdpbmcgYWdlbnQgd2FzIG5vdCBlbGltaW5hdGVkIGluIHRoZSB0ZXN0cywgYnV0IAp0aGVyZSB3ZXJlIHN0cm9uZyBpbmRpY2F0aW9ucyBvZiB0aGUgbmVlZCBmb3IgbWluaW1hbCBFQyB0byBvYnRhaW4gbW9zdCAKZWZmZWN0aXZlIGZsb2NjdWxhdGlvbi4gT25seSBzbWFsbCBkaWZmZXJlbmNlcyB3ZXJlIG5vdGVkIGZvciB0aGUgcG9seW1lcnMgCm9mIHZhcmlhYmxlIGNoYXJnZSBpbmRpY2F0aW5nIHRoZSBpbXBvcnRhbmNlIGFuZCBmdW5jdGlvbiBvZiB0aGUgYW1pZGUgCmdyb3VwcyBpbiBmbG9jY3VsYXRpb24gYW5kIHBlcmhhcHMgaW5kaWNhdGluZyB0aGF0IGNhbGNpdW0gYnJpZGdpbmcgaXMgCm5vdCB0aGUgbWFpbiBmYWN0b3IgaW4gZmxvY2N1bGF0aW9uIHdpdGggdGhlc2UgbWF0ZXJpYWxzLiAgCjwvUD4gCjxBIGhyZWY9Ii9TUDJVc2VyRmlsZXMvUGxhY2UvNTM2ODAwMDAvcHVicy9uZWVkX2Zvcl9zbF9leF9jbF9lY2xldmVsX2Zsb2NfY2xheV9wYW0ucGRmIj5DbGljayBoZXJlIGZvciB0aGUgY29tcGxldGUgYXJ0aWNsZSBpbiBQREYgZm9ybWF0LjwvQT4gCjxQPjxGT05UIHNpemU9LTE+IAogIDxBIGhyZWY9IiNUYWJsZSUyMG9mJTIwQ29udGVudHMiPkJhY2sgdG8gVGFibGUgb2YgQ29udGVudHM8L0E+PC9GT05UPiAKPC9QPiAKPEhSPiAKPEg0PiAKICA8QSBuYW1lPSJMYW5kIFRyZWF0bWVudCI+TGFuZCBUcmVhdG1lbnQgRWZmZWN0cyBvbiBTb2lsIEVyb3Npb248L0E+IAo8L0g0PiAKPFA+Si4gS2VudCBNaXRjaGVsbCwgQ2hpdHRhcmFuamFuIFJheS0tLTxJPlVuaXZlcnNpdHkgb2YgSWxsaW5vaXMsIEFnLiBFbmdyLiBEZXB0LiwgSWxsaW5vaXMgU3RhdGUgV2F0ZXIgU3VydmV5LCAKICBVcmJhbmEsIElsbGlub2lzPC9JPiAgCjwvUD4gCjxQPlNtYWxsIGZhbGxvdyBwbG90cyAoMTAnIHggMzUnKSBvbiAzIHRvIDUgcGVyY2VudCBzbG9wZXMgaGF2ZSBiZWVuIG1vbml0b3JlZCAKICBmb3IgcnVub2ZmIGFuZCBzZWRpbWVudCB5aWVsZCBmcm9tIG5hdHVyYWwgcmFpbmZhbGwuIFRoZSBwbG90IHRyZWF0bWVudHMgCiAgaW5jbHVkZSB0d28gbGV2ZWxzIG9mIHBvbHlhY3J5bGFtaWRlcyAoUEFNKSBhcHBsaWNhdGluZyBncmFzcyBzdHJpcCwgYW5kIAogIGEgc2luZ2xlIHN0aWZmIGdyYXNzIHJvdy4gU2lnbmlmaWNhbnQgZGlmZmVyZW5jZXMgaW4gcnVub2ZmIGFuZCBzZWRpbWVudCAKICB5aWVsZCBoYXZlIGJlZW4gb2JzZXJ2ZWQuIAo8L1A+IAo8QSBocmVmPSIvU1AyVXNlckZpbGVzL1BsYWNlLzUzNjgwMDAwL3B1YnMvbGFuZF90cl9lZmZlY3RzX29uX3NvaWxfZXJvc2lvbi5wZGYiPkNsaWNrIGhlcmUgZm9yIHRoZSBjb21wbGV0ZSBhcnRpY2xlIGluIFBERiBmb3JtYXQuPC9BPiAKPFA+PEZPTlQgc2l6ZT0tMT4gCiAgPEEgaHJlZj0iI1RhYmxlJTIwb2YlMjBDb250ZW50cyI+QmFjayB0byBUYWJsZSBvZiBDb250ZW50czwvQT48L0ZPTlQ+IAo8L1A+IAo8SFI+IAo8SDQ+IAogIDxBIG5hbWU9IlBBTSBDb25mb3JtYXRpb24gRWZmZWN0cyI+UEFNIENvbmZvcm1hdGlvbiBFZmZlY3RzIG9uIEZ1cnJvdyBFcm9zaW9uIE1pdGlnYXRpb24gRWZmaWNhY3k8L0E+IAo8L0g0PiAKPFA+Ui4gRC4gTGVudHosIFIuIEUuIFNvamthLS0tVVNEQS1BUlMsIEtpbWJlcmx5LCBJZGFoby4gIAo8L1A+IAo8UD5QcmV2aW91cyBleHBlcmltZW50cyBoYXZlIHNob3duIHRoYXQgYW4gaW5pdGlhbCBhcHBsaWNhdGlvbiBvZiA1LTEwIHBwbSAKICBwb2x5YWNyeWxhbWlkZSwgdG8gZnVycm93IGlycmlnYXRpb24gd2F0ZXIsIGNhbiBzdWJzdGFudGlhbGx5IHJlZHVjZSBzZWRpbWVudCAKICBsb3NzIGluIHRyZWF0ZWQgZnVycm93cy4gT3VyIG9iamVjdGl2ZSB3YXMgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgcG9seWFjcnlsYW1pZGUgCiAgY29uZm9ybWF0aW9uYWwgZmFjdG9ycywgc3VjaCBhcyBjaGFyZ2UgdHlwZSwgY2hhcmdlIGRlbnNpdHksIGFuZCBtb2xlY3VsYXIgCiAgd2VpZ2h0IChNVykgaW5mbHVlbmNlIFBBTSdzIGFiaWxpdHkgdG8gY29udHJvbCBmdXJyb3cgZXJvc2lvbi4gVHdvIHN0dWRpZXMgCiAgd2VyZSBjb25kdWN0ZWQgb24gYSAwLjYgaGEgcGxvdCBsb2NhdGVkIG5lYXIgS2ltYmVybHksIElkYWhvLiBTb2lsIHdhcyAKICBQb3J0bmV1ZiBzaWx0IGxvYW0gKGNvYXJzZS1zaWx0eSwgbWl4ZWQsIG1lc2ljLCBEdXJpeGVyb2xsaWMgQ2FsY2lvcnRoaWQpLiAKICBUaGUgc3R1ZHkgYXJlYSB3YXMgcGxhbnRlZCB0byBmaWVsZCBjb3JuIGluIHJvd3Mgc3BhY2VkIGF0IDAuNzYgbSBpbnRlcnZhbHMsIAogIG9yIGJlYW5zIHNwYWNlZCBhdCAwLjU2IG0uIE9ubHkgd2hlZWwgdHJhY2sgZnVycm93cyB3ZXJlIGlycmlnYXRlZC4gRnVycm93IAogIGxlbmd0aCB3YXMgMTc2IG0gYW5kIHNsb3BlIHdhcyAxLjUlLiBJbmZsb3cgcmF0ZSB3YXMgMjMgTCBtaW4gCjxTVVA+LTE8L1NVUD5kdXJpbmcgZnVycm93IGFkdmFuY2UsIGFuZCAxNSBMIG1pbiAKPFNVUD4tMTwvU1VQPmZvciB0aGUgYmFsYW5jZSBvZiB0aGUgaXJyaWdhdGlvbi4gUG9seWFjcnlsYW1pZGVzIHdpdGggY29udHJhc3RpbmcgY2hhcmdlIAp0eXBlIChuZXV0cmFsLCBhbmlvbmljLCBjYXRpb25pYylhbmQgY2hhcmdlIGRlbnNpdHkgKDAsIDgsIDE5LCAzNSUpIHdlcmUgCmVtcGxveWVkIGluIHRoZSBmaXJzdCBzdHVkeS4gUG9seW1lcnMgd2VyZSBhcHBsaWVkIGF0IGEgY29uY2VudHJhdGlvbiBvZiAKMTAgcHBtIGR1cmluZyB0aGUgaW5pdGlhbCAzMCBtaW4gb2YgZWFjaCB0cmVhdGVkIGlycmlnYXRpb24sIGFuZCBhIDEwIG1pbiAKYWRkaXRpb25hbCBhcHBsaWNhdGlvbiB3YXMgaW50cm9kdWNlZCBldmVyeSA0IGhycyAodHdpY2UpIGR1cmluZyB0aGUgcmVtYWluZGVyIApvZiB0aGUgaXJyaWdhdGlvbi4gT25seSB0aGUgZmlyc3QgYW5kIHRoaXJkIGlycmlnYXRpb25zIHdlcmUgdHJlYXRlZC4gSW4gCnRoZSBzZWNvbmQgc3R1ZHksIGFuaW9uaWMgUEFNcyB3aXRoIHZhcnlpbmcgbW9sZWN1bGFyIHdlaWdodHMgKDYsIDEzLCAxNSAKbWlsbGlvbiBkYWx0b25zKSB3ZXJlIGFwcGxpZWQgdG8gaXJyaWdhdGlvbiBpbmZsb3dzIGF0IDEwIHBwbSBvbmx5IGR1cmluZyAKdGhlIGZ1cnJvdyBhZHZhbmNlLCBhbmQgYWxsIGlycmlnYXRpb25zIHdlcmUgdHJlYXRlZC4gQW5pb25pYyBhbmQgbmV1dHJhbCAKUEFNcyB3ZXJlIG1vcmUgZWZmZWN0aXZlIHRoYW4gY2F0aW9uaWNzIGZvciBlcm9zaW9uIGNvbnRyb2wuIEhpZ2ggdG8gbW9kZXJhdGUgCmNoYXJnZSBkZW5zaXR5ICgxOS0zNSUpIFBBTXMgd2VyZSBtb3JlIGVmZmVjdGl2ZSB0aGFuIGxvdyBjaGFyZ2UgZGVuc2l0eSAKY291bnRlcnBhcnRzLiBBbW9uZyBhbmlvbmljIFBBTXMsIHRob3NlIGhhdmluZyBNV3MgJmd0OyAxMiBtaWxsaW9uIGRhbHRvbnMgCmNvbnRyb2xsZWQgZXJvc2lvbiBzbGlnaHRseSBtb3JlIGVmZmVjdGl2ZWx5IHRoYW4gdGhvc2Ugb2YgNiBtaWxsaW9uIGRhbHRvbiAKTVcuICAKPC9QPiAKPEEgaHJlZj0iL1NQMlVzZXJGaWxlcy9QbGFjZS81MzY4MDAwMC9wdWJzL3BhbV9jb25fZWZmZWN0c19mcndfZXJzX2VmZmljYWN5LnBkZiI+Q2xpY2sgaGVyZSBmb3IgdGhlIGNvbXBsZXRlIGFydGljbGUgaW4gUERGIGZvcm1hdC48L0E+IAo8UD48Rk9OVCBzaXplPS0xPiAKICA8QSBocmVmPSIjVGFibGUlMjBvZiUyMENvbnRlbnRzIj5CYWNrIHRvIFRhYmxlIG9mIENvbnRlbnRzPC9BPjwvRk9OVD4gCjwvUD4gCjxIUj4gCjxIND4gCiAgPEEgbmFtZT0iU2NyZWVuaW5nIG9mIFBvbHltZXJzIj5TY3JlZW5pbmcgb2YgUG9seW1lcnMgdG8gRGV0ZXJtaW5lIHRoZWlyIFBvdGVudGlhbCB1c2UgaW4gRXJvc2lvbiBDb250cm9sIAogICAgb24gQ29uc3RydWN0aW9uIFNpdGVzPC9BPiAKPC9IND4gCjxQPkFpY2FyZG8gUm9hLS0tPEk+RGFuZSBDb3VudHkgTGFuZCBDb25zZXJ2YXRpb24sIE1hZGlzb24sIFdJPC9JPiAgCjwvUD4gCjxQPkNvbnZlbnRpb25hbCBhZ3JpY3VsdHVyZSBhcHBlYXJzIHRvIGJlIGRlY3JlYXNpbmcgaW4gZW5lcmd5IGVmZmljaWVuY3kgCiAgYW5kIGhhdmUgc29tZSBhZHZlcnNlIGVmZmVjdHMgb24gdGhlIGVudmlyb25tZW50LiBUZWNobm9sb2d5IHRoYXQgcHJvdGVjdHMgCiAgdGhlIGVudmlyb25tZW50IGlzIGRlc2lyYWJsZSB0byBiZSB0ZXN0ZWQuIEVyb3Npb24gY29udHJvbCBuZWVkcyB0byBiZSAKICBhZGRyZXNzZWQgaW4gYSBzZXJpb3VzIHNjaWVudGlmaWMgd2F5IGluIG9yZGVyIHRvIG1haW50YWluIHRoZSBsZXZlbCBvZiAKICBmb29kIHByb2R1Y3Rpb24gdG8gZmVlZCB0aGUgcGVvcGxlLiBTb2lsIGVyb3Npb24gcmVkdWNlcyB0aGUgcHJvZHVjdGl2ZSAKICBwb3RlbnRpYWwgb2YgbW9zdCBhZ3JpY3VsdHVyYWwgbGFuZHMsIGFuZCB0aGUgcmVzdWx0aW5nIHNlZGltZW50IGRlY3JlYXNlcyAKICB0aGUgdXRpbGl0eSBvZiByZWNlaXZpbmcgd2F0ZXJzLiBQb2x5YWNyeWxhbWlkZXMgKFBBTXMpIGhhdmUgYmVlbiBmb3VuZCAKICB0byBoYXZlIHNpZ25pZmljYW50IGNhcGFjaXR5IG9mIHNvaWwgYmluZGluZyBmb3IgaGlnaGx5IGVyb2RpbGUgc29pbHMsIAogIGFuZCB0aGVyZWZvcmUsIGZvciByZWR1Y2luZyBlcm9zaW9uLiBQQU1zIG1heSBiZSB1c2VkIHRvIHN0YWJpbGl6ZSBjcml0aWNhbCAKICBzaXRlcyBhZ2FpbnN0IGVyb3Npb24gdW50aWwgc3VjaCBzaXRlcyBjYW4gYmUgbW9yZSBwZXJtYW5lbnRseSBzdGFiaWxpemVkIAogIHRocm91Z2ggdmVnZXRhdGlvbi4gVGhlIHB1cnBvc2Ugb2YgdGhpcyBzdHVkeSB3YXMgdG8gZXZhbHVhdGUgYW5kIGRlbW9uc3RyYXRlIAogIHRoZSB1c2Ugb2YgUEFNcyBvbiBzdGFiaWxpdHkgb2YgYWdncmVnYXRlcyBhbmQgdGhlIGFiaWxpdHkgdG8gY2xhcmlmeSBzdXNwZW5kZWQgCiAgc29saWRzIGZyb20gY29udGFtaW5hdGVkIHdhdGVycy4gVGhlIGZpcnN0IHRlc3Qgd2FzIGJhc2VkIG9uIHN0YWJpbGl0eSAKICBvZiBhZ2dyZWdhdGVzIGFuZCBwZXJjZW50YWdlIG9mIHJldGVudGlvbiBvZiBzb2lsIG9uIHNpZXZlcyBvZiBkaWZmZXJlbnQgCiAgb3BlbmluZ3MuIEEgc2Vjb25kIHRlc3Qgd2FzIHRoZSBzZXR0bGluZyByYXRlcyBiYXNlZCBvbiB0aGUgZmFjdCB0aGF0IHRoZSAKICB2ZWxvY2l0eSBvZiBzZWRpbWVudGF0aW9uIGlzIGEgZnVuY3Rpb24gb2YgdGhlIHNvaWwgcGFydGljbGUgc2l6ZS4gQmFzZWQgCiAgdXBvbiB0aGUgbGFib3JhdG9yeSByZXN1bHRzLCBmaXZlIHBvbHltZXJzIHdlcmUgc2VsZWN0ZWQgZm9yIGZ1cnRoZXIgc3R1ZHkgCiAgb24gYSBjb21tZXJjaWFsIHRlc3QuICAKPC9QPiAKPEEgaHJlZj0iL1NQMlVzZXJGaWxlcy9QbGFjZS81MzY4MDAwMC9wdWJzL3Njcl9wb2x5bWVyc19wdGxfdXNlX2Vyc19jb250X3NpdGVzLnBkZiI+Q2xpY2sgaGVyZSBmb3IgdGhlIGNvbXBsZXRlIGFydGljbGUgaW4gUERGIGZvcm1hdC48L0E+IAo8UD48Rk9OVCBzaXplPS0xPiAKICA8QSBocmVmPSIjVGFibGUlMjBvZiUyMENvbnRlbnRzIj5CYWNrIHRvIFRhYmxlIG9mIENvbnRlbnRzPC9BPjwvRk9OVD4gCjwvUD4gCjxIUj4gCjxIND4gCiAgPEEgbmFtZT0iSW5mbHVlbmNlIG9mIFN0cnVjdHVyZSI+SW5mbHVlbmNlIG9mIFN0cnVjdHVyZSBhbmQgRm9ybXVsYXRpb24gb24gdGhlIEVmZmljYWN5IG9mIFBvbHlhY3J5bGFtaWRlcyAKICAgIGFzIFNvaWwgU3RhYmlsaXplcnM8L0E+IAo8L0g0PiAKPFA+UC4gQ2hhbWJlcmxhaW4qIGFuZCBSLiBDb2xlLS0tPEk+QWxsaWVkIENvbGxvaWRzIEx0ZCwgQnJhZGZvcmQsIEVuZ2xhbmQgYW5kIEFsbGllZCBDb2xsb2lkcyBJbmMsIFN1ZmZvbGssIAogIFZBLjwvST4gIAo8L1A+IAo8UD5Qb2x5YWNyeWxhbWlkZXMgbWF5IHJlZHVjZSBzb2lsIGVyb3Npb24gYnkgYSBjb21iaW5hdGlvbiBvZiBmYWN0b3JzIGluY2x1ZGluZyAKICBjcnVtYiBzdGFiaWxpemF0aW9uIGFuZCBmbG9jY3VsYXRpb24gb2Ygc3VzcGVuZGVkIHBhcnRpY2xlcywgd2hpbHN0IHdhdGVyIAogIGluZmlsdHJhdGlvbiBtYXkgYmUgaW5mbHVlbmNlZCBieSBzdXJmYWNlIHN0YWJpbGl6YXRpb24gYW5kIGJ5IHRoZSBwcm9wZXJ0aWVzIAogIG9mIGRlcG9zaXRlZCBmbG9jcy4gIAo8L1A+IAo8UD5UaGUgb2JqZWN0aXZlIG9mIHRoaXMgc3R1ZHkgd2FzIHRvIGludmVzdGlnYXRlIHRoZSBpbmZsdWVuY2Ugb2YgUEFNJ3MgCiAgb2YgZGlmZmVyaW5nIGFuaW9uaWMgY2hhcmFjdGVyIGFuZCBtb2xlY3VsYXIgd2VpZ2h0IG9uIHNvbWUgb2YgdGhlIGFib3ZlIAogIGZhY3RvcnMuICAKPC9QPiAKPFA+TGFib3JhdG9yeSBkYXRhIHdpbGwgYmUgcHJlc2VudGVkIGZvciBhIHJhbmdlIG9mIHNvaWwgdHlwZXMgdG8gaWxsdXN0cmF0ZSAKICB0aGUgaW5mbHVlbmNlIG9mIHBvbHltZXIgc3RydWN0dXJlIG9uIHRocmVlIGZhY3RvcnM6IGNydW1iIHN0YWJpbGl0eSBhcyAKICBkZXRlcm1pbmVkIGJ5IGNsYXkgZGlzcGVyc2lvbiwgc3BlZWQgYW5kIGNvbXBsZXRlbmVzcyBvZiBmbG9jY3VsYXRpb24gYXMgCiAgZGV0ZXJtaW5lZCBieSBjbGFyaXR5IHRlc3RzLCBhbmQgd2F0ZXIgcmV0ZW50aW9uIGFuZCBwb3Jvc2l0eSBvZiBzb2lsIGZsb2NzLiAgCjwvUD4gCjxQPlRoZSBpbXBsaWNhdGlvbnMgb2YgdGhlIGFib3ZlIHJlc3VsdHMgd2lsbCBiZSBkaXNjdXNzZWQsIHdpdGggcGFydGljdWxhciAKICByZWxldmFuY2UgdG8gY3VycmVudCBmaWVsZCBwcmFjdGljZSBhbmQgdG8gZGV2ZWxvcG1lbnQgb2YgaW1wcm92ZWQgZm9ybXVsYXRpb25zLiAgCjwvUD4gCjxBIGhyZWY9Ii9TUDJVc2VyRmlsZXMvUGxhY2UvNTM2ODAwMDAvcHVicy9pbmZfc3RyX2Zvcm1fZWZmX3BhbV9zb2lsX3N0YWIucGRmIj5DbGljayBoZXJlIGZvciB0aGUgY29tcGxldGUgYXJ0aWNsZSBpbiBQREYgZm9ybWF0LjwvQT4gCjxQPjxGT05UIHNpemU9LTE+IAogIDxBIGhyZWY9IiNUYWJsZSUyMG9mJTIwQ29udGVudHMiPkJhY2sgdG8gVGFibGUgb2YgQ29udGVudHM8L0E+PC9GT05UPiAKPC9QPiAKPEhSPiAKPEg0PiAKICA8QSBuYW1lPSJQcmFjdGljYWwgRmllbGQgQXBwbGljYXRpb24iPlByYWN0aWNhbCBGaWVsZCBBcHBsaWNhdGlvbiBhbmQgUEFNIFRyYW5zcG9ydCBpbiBTdXJmYWNlIElycmlnYXRpb248L0E+IAo8L0g0PiAKPFA+VC4gRC4gU3RpZWJlciBhbmQgSGVpZGkgQ2hhcG1hbi1TdXBraXMtLS08ST5Vbml2ZXJzaXR5IG9mIElkYWhvPC9JPiAgCjwvUD4gCjxQPlByb2R1Y2VycyBhcmUgcmFwaWRseSBhZG9wdGluZyBQQU0gdGVjaG5vbG9neSBpbiBzb3V0aHdlc3QgSWRhaG8uIFNvbWUgCiAgYXBwbGljYXRpb24gcHJvYmxlbXMgaGF2ZSBiZWVuIGVuY291bnRlcmVkIGFuZCBQQU0gbG9zc2VzIGluIHRhaWx3YXRlciAKICBoYXMgYmVlbiByYWlzZWQgYXMgYW4gaXNzdWUuIEFwcGxpY2F0aW9uIG1ldGhvZHMgd2VyZSBldmFsdWF0ZWQgb24gZWxldmVuIAogIGZpZWxkcyBhbmQgUEFNIHRhaWx3YXRlciBsb3NzZXMgd2VyZSBtZWFzdXJlZCBvbiBzaXggZmllbGRzLiBBbmFseXRpY2FsIAogIHByb2NlZHVyZXMgZm9yIGRldGVybWluaW5nIFBBTSBjb25jZW50cmF0aW9uIGluIGNvbGxlY3RlZCBzYW1wbGVzIHdhcyBhZGFwdGVkIAogIHRvIGEgSGFjaCAyMDAwIHNwZWN0cm9waG90b21ldGVyLiBDYWxpYnJhdGlvbiBjdXJ2ZXMgdXNpbmcgc3RhbmRhcmRzIChyIAo8U1VQPjI8L1NVUD49IDAuOTgpIHdlcmUgZ2VuZXJhdGVkIGZvciB0aGlzIHRlc3QuIExvc3NlcyBvZiBhcHBsaWVkIFBBTSB0byBtdWQgY29udmV5YW5jZSAKZGl0Y2hlcyByYW5nZWQgZnJvbSAxNiB0byAzNCBwZXJjZW50IHdoaWxlIGxvc3NlcyBpbiBjb25jcmV0ZSBzeXN0ZW1zIHdlcmUgCmdlbmVyYWxseSBsZXNzIHRoYW4gNSBwZXJjZW50LiBMb3dlciBxdWFydGVyIGF2ZXJhZ2UgYXBwbGljYXRpb24gdW5pZm9ybWl0eSAKd2FzIDg5IHBlcmNlbnQgZm9yIGxpcXVpZCBhbmQgNjUgcGVyY2VudCBmb3IgZHJ5IGFwcGxpY2F0aW9uIG1ldGhvZHMuIFBBTSAKbG9zc2VzIGluIGlycmlnYXRpb24gcnVub2ZmIGF2ZXJhZ2VkIDUgcGVyY2VudCBmb3IgbGlxdWlkIGFuZCAxNSBwZXJjZW50IApmb3IgZHJ5IG1ldGhvZHMgd2hlbiBhbiBhZHZhbmNlIHBoYXNlIHdhdGVyIHRyZWF0bWVudCBhcHByb2FjaCB3YXMgdXRpbGl6ZWQuIApUb3RhbCBzZWFzb25hbCBQQU0gbG9zc2VzIGZyb20gZml2ZSBhcHBsaWNhdGlvbnMgKDEgbGIvYWNyZSByYXRlKSB3b3VsZCAKcmFuZ2UgZnJvbSAwLjI1IHRvIDAuNzUgcG91bmRzIFBBTSBwZXIgYWNyZS4gSXJyaWdhdGlvbiBtYW5hZ2VtZW50IHByYWN0aWNlcyAKdGhhdCBsaW1pdCBydW5vZmYgdG8gbGVzcyB0aGFuIDI1IHBlcmNlbnQgb2YgdG90YWwgYXBwbGllZCB3YXRlciB3aWxsIGdyZWF0bHkgCnJlZHVjZSBsb3NzZXMgb2Ygc2VkaW1lbnQsIG51dHJpZW50cywgYW5kIFBBTSBpbiBmdXJyb3cgcnVub2ZmLiAgCjwvUD4gCjxBIGhyZWY9Ii9TUDJVc2VyRmlsZXMvUGxhY2UvNTM2ODAwMDAvcHVicy9wcmFjX2ZpZWxkX2FwcF9wYW1fdHJfc3VyX2lyci5wZGYiPkNsaWNrIGhlcmUgZm9yIHRoZSBjb21wbGV0ZSBhcnRpY2xlIGluIFBERiBmb3JtYXQuPC9BPiAKPFA+PEZPTlQgc2l6ZT0tMT4gCiAgPEEgaHJlZj0iI1RhYmxlJTIwb2YlMjBDb250ZW50cyI+QmFjayB0byBUYWJsZSBvZiBDb250ZW50czwvQT48L0ZPTlQ+IAo8L1A+IAo8SFI+IAo8SDQ+IAogIDxBIG5hbWU9IkVmZmVjdGl2ZSBWaXNjb3NpdHkiPkVmZmVjdGl2ZSBWaXNjb3NpdHkgb2YgUEFNIFNvbHV0aW9ucyBUaHJvdWdoIFBvcm91cyBNZWRpYS48L0E+IAo8L0g0PiAKPFA+Si4gTGV0ZXktLS08ST5Vbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEgUml2ZXJzaWRlLjwvST4gIAo8L1A+IAo8UD5TYXR1cmF0ZWQgaHlkcmF1bGljIGNvbmR1Y3Rpdml0eSwgSywgb2Ygc29pbHMgZGVwZW5kcyBvbiB0aGUgcG9yZSBzaXplIAogIGRpc3RyaWJ1dGlvbiBhbmQgdGhlIGRlbnNpdHkgYW5kIHZpc2Nvc2l0eSBvZiB0aGUgc29sdXRpb24uIFBBTSBzb2x1dGlvbnMgCiAgY2FuIGVuaGFuY2Ugc29pbCBmbG9jY3VsYXRpb24gYW5kIGFnZ3JlZ2F0ZSBzdGFiaWxpdHkgd2l0aCBhIGNvbnNlcXVlbnQgCiAgZWZmZWN0IG9mIGluY3JlYXNlZCBwb3JlIHNpemUgYW5kIGh5ZHJhdWxpYyBjb25kdWN0aXZpdHkuIExhYm9yYXRvcnkgc3R1ZGllcyAKICByZXZlYWxlZCB0aGF0IGFkZGl0aW9uIG9mIFBBTSB0byB3YXRlciBpbmNyZWFzZXMgdGhlIGVmZmVjdGl2ZSB2aXNjb3NpdHkgCiAgb2YgdGhlIHNvbHV0aW9uIGFzIGl0IGZsb3dzIHRocm91Z2ggcG9yb3VzIG1lZGlhIGFuZCB0aGF0IHRoZSBlZmZlY3QgaXMgCiAgb2YgZ3JlYXRlciBtYWduaXR1ZGUgaW4gZmluZXIgbWF0ZXJpYWxzLiBUaGUgaW5jcmVhc2VkIGVmZmVjdGl2ZSB2aXNjb3NpdHkgCiAgcGFydGlhbGx5IG9mZnNldHMgdGhlIGluY3JlYXNlZCBwb3JlIHNpemUgZWZmZWN0IGFuZCBzaG91bGQgYmUgY29uc2lkZXJlZCAKICBpbiBkZXZlbG9waW5nIHRoZSBvcHRpbWFsIFBBTSB0cmVhdG1lbnQgc3RyYXRlZ3kuICAKPC9QPiAKPEEgaHJlZj0iL1NQMlVzZXJGaWxlcy9QbGFjZS81MzY4MDAwMC9wdWJzL2VmZmVjdGl2ZV92aXNjb3NpdHlfcGFtX3NvbHV0aW9ucy5wZGYiPkNsaWNrIGhlcmUgZm9yIHRoZSBjb21wbGV0ZSBhcnRpY2xlIGluIFBERiBmb3JtYXQuPC9BPiAKPFA+PEZPTlQgc2l6ZT0tMT4gCiAgPEEgaHJlZj0iI1RhYmxlJTIwb2YlMjBDb250ZW50cyI+QmFjayB0byBUYWJsZSBvZiBDb250ZW50czwvQT48L0ZPTlQ+IAo8L1A+IAo8SFI+IAo8SDQ+IAogIDxBIG5hbWU9Ik5ldCAmIFRlbnNpb24iPk5ldCBhbmQgVGVuc2lvbiBJbmZpbHRyYXRpb24gRWZmZWN0cyBvZiBQQU0gaW4gRnVycm93IElycmlnYXRpb248L0E+IAo8L0g0PiAKPFA+Ui5FLiBTb2prYSosIFIuRC4gTGVudHosIEMuVy4gUm9zcyBhbmQgVC5KLiBUcm91dC0tLTxJPlVTREEtQVJTLCBOb3J0aHdlc3QgSXJyaWdhdGlvbiBhbmQgU29pbHMgUmVzZWFyY2ggTGFib3JhdG9yeSwgS2ltYmVybHksIAogIElEOyBMYW5kY2FyZSBOZXcgWmVhbGFuZCwgTHRkLCBQYWxtZXJzdG9uIE5vcnRoLCBOZXcgWmVhbGFuZDsgVVNEQS1BUlMgCiAgSXJyaWdhdGlvbiBNYW5hZ2VtZW50IFJlc2VhcmNoIFVuaXQsIEZyZXNubywgQ0E8L0k+ICAKPC9QPiAKPFA+VXNpbmcgcG9seWFjcnlsYW1pZGUgKFBBTSkgZm9sbG93aW5nIHRoZSBOUkNTIGNvbnNlcnZhdGlvbiBwcmFjdGljZSBzdGFuZGFyZCAKICBpbmNyZWFzZXMgbmV0IGluZmlsdHJhdGlvbi4gUEFNIHByZXZlbnRzIGRldGFjaG1lbnQsIHRyYW5zcG9ydCwgYW5kIGRlcG9zaXRpb24gCiAgb2Ygc29pbCBpbiBmdXJyb3dzLiBGdXJ0aGVybW9yZSwgYW55IHNlZGltZW50IGVudHJhaW5lZCBpbiB0aGUgZmxvdyBpcyAKICBmbG9jY3VsYXRlZCBieSBQQU0gYW5kIHNldHRsZXMgdG8gdGhlIGZ1cnJvdyBib3R0b20gaW4gbG9vc2UgcGVydmlvdXMgc3RydWN0dXJlcy4gCiAgV2UgaHlwb3RoZXNpemVkIHRoYXQgZGVwb3NpdGlvbmFsIHN1cmZhY2Ugc2VhbHMgdGhhdCBibG9jayBwb3JlcyBhdCB0aGUgCiAgc29pbCB3YXRlciBpbnRlcmZhY2UgYXJlIGdyZWF0bHkgcmVkdWNlZC4gT24gSWRhaG8gUG9ydG5ldWYgc2lsdCBsb2FtcyAKICAoY29hcnNlLXNpbHR5LCBtaXhlZCwgbWVzaWMgRGlyaXhlcm9sbGljIENhbGNpb3J0aGlkKSBuZXQgaW5maWx0cmF0aW9uIAogIGhhcyBnZW5lcmFsbHkgaW5jcmVhc2VkIDE1JS4gTmV0IGluY3JlYXNlcyBvbiBmaW5lciB0ZXh0dXJlZCBzb2lscyBhcmUgCiAgaGlnaGVyLiBSZXNlYXJjaCBpbiAxOTk1IHV0aWxpemluZyB0ZW5zaW9uLWluZmlsdHJvbWV0cnkgY29uZmlybWVkIHRoYXQgCiAgUEFNJ3MgbWFpbnRlbmFuY2Ugb2Ygb3BlbiBwb3JlcyB0byB0aGUgZnVycm93IHN1cmZhY2UgcHJvdmlkZXMgdGhlIGluZmlsdHJhdGlvbiAKICBpbmNyZWFzZSBtZWNoYW5pc20uIEluZmlsdHJhdGlvbiByYXRlcyBhdCA0MCBhbmQgMTAwIG1tIHRlbnNpb24gaW4gUEFNLXRyZWF0ZWQgCiAgZnVycm93cyB3ZXJlIHJvdWdobHkgZG91YmxlIHRoZSByYXRlcyBvZiBjb250cm9sIGZ1cnJvd3MuIEluIGFub3RoZXIgc3R1ZHksIAogIHJlY2lyY3VsYXRpbmcgaW5maWx0cm9tZXRlciBkYXRhIHNob3dlZCBhIDMwJSBpbmZpbHRyYXRpb24gaW5jcmVhc2Ugd2l0aCAKICBpbmZpbHRyYXRpb24gaW52ZXJzZWx5IHJlbGF0ZWQgdG8gbWF4aW11bSBzZWRpbWVudCBjb25jZW50cmF0aW9uIGluIHRoZSAKICBmbG93LiAgCjwvUD4gCjxBIGhyZWY9Ii9TUDJVc2VyRmlsZXMvUGxhY2UvNTM2ODAwMDAvcHVicy9uZXRfdGVuc2lvbl9pbmZpbHRyYXRpb24ucGRmIj5DbGljayBoZXJlIGZvciB0aGUgY29tcGxldGUgYXJ0aWNsZSBpbiBQREYgZm9ybWF0LjwvQT4gCjxQPjxGT05UIHNpemU9LTE+IAogIDxBIGhyZWY9IiNUYWJsZSUyMG9mJTIwQ29udGVudHMiPkJhY2sgdG8gVGFibGUgb2YgQ29udGVudHM8L0E+PC9GT05UPiAKPC9QPiAKPEhSPiAKPEg0PiAKICA8QSBuYW1lPSJGYXRlIG9mIEFjcnlsYW1pZGUiPkZhdGUgb2YgQWNyeWxhbWlkZSBNb25vbWVyIEZvbGxvd2luZyBBcHBsaWNhdGlvbiBvZiBQb2x5YWNyeWxhbWlkZSB0byAKICAgIENyb3BsYW5kLjwvQT4gCjwvSDQ+IAo8UD5GLlcuIEJhcnZlbmlrLCBSLkUuIFNvamthLCBSLkQuIExlbnR6LCBGLkYuIEFuZHJhd2VzIGFuZCBMLlMuIE1lc3NuZXIgCjxTVVA+LS0tPC9TVVA+PEk+Q3l0ZWMgSW5kdXN0cmllcywgU3RhbWZvcmQsIENULCBhbmQgVVNEQS1BUlMsIEtpbWJlcmx5LCBJRC48L0k+ICAKPC9QPiAKPFA+QWx0aG91Z2ggcG9seWFjcnlsYW1pZGVzIChQQU1zKSBleGhpYml0IGxpdHRsZSB0b3hpY2l0eSBhbmQgZG8gbm90IGRlZ3JhZGUgCiAgdG8gcmVsZWFzZSBhY3J5bGFtaWRlIChBTUQpIG1vbm9tZXIsIGNvbW1lcmNpYWwgUEFNcyBtYXkgY29udGFpbiB1cCB0byAKICAwLjA1JSByZXNpZHVhbCBBTUQgZnJvbSBtYW51ZmFjdHVyaW5nLiBQQU1zIGFyZSB1c2VkIGluIHRyZWF0bWVudCBvZiBwb3RhYmxlIAogIHdhdGVyLCB3YXN0ZXdhdGVyIGRpc2NoYXJnaW5nIHRvIHN1cmZhY2Ugc3RyZWFtcywgYW5kIEZEQSBzYW5jdGlvbmVkIGZvb2QgCiAgY29udGFjdCBhcHBsaWNhdGlvbnMuIFRoZSBlbnZpcm9ubWVudGFsIGZhdGUgb2YgQU1EIG1vbm9tZXIgd2lsbCBiZSByZXZpZXdlZCAKICBpbiB0aGlzIHBhcGVyLiBBTUQgaXMgbm90IGFkc29yYmVkIHNpZ25pZmljYW50bHkgYnkgc29pbCwgYW5kIGlzIGNoZW1pY2FsbHkgCiAgYW5kIGJpb2xvZ2ljYWxseSBsYWJpbGUgaW4gbmF0dXJhbCBlbnZpcm9ubWVudHMsIGVzcGVjaWFsbHkgdW5kZXIgYWVyb2JpYyAKICBjb25kaXRpb25zLiBUaGVyZSBpcyBubyBsaXRlcmF0dXJlIGV2aWRlbmNlIG9mIEFNRCB1cHRha2UgYnkgcGxhbnRzLCBleGNlcHQgCiAgZm9yIHJpY2UgZ3Jvd24gaHlkcm9wb25pY2FsbHkgaW4gdGhlIHByZXNlbmNlIG9mIGV4dHJlbWVseSBoaWdoIEFNRCBsZXZlbHMuIAogIEluIGFkZGl0aW9uLCByZWNlbnQgd29yayB3aXRoIGZpZWxkIGNyb3BzIHNob3dlZCBubyB1cHRha2UuIFBvdGF0b2VzLCBiZWFucywgCiAgY29ybiBhbmQgc3VnYXIgYmVldHMsIHdlcmUgZ3Jvd24gaW4gdGhlIHByZXNlbmNlIG9mIHZlcnkgaGlnaCBkb3NhZ2VzIG9mIAogIFBBTSwgYW5kIEFNRCB3YXMgYW5hbHl6ZWQgYnkgZ2FzIGNocm9tYXRvZ3JhcGh5LiBBTUQgd2FzIG5vdCBkZXRlY3RlZCBpbiAKICB0aGUgY3JvcHMgKGRldGVjdGlvbiBsaW1pdCAmbHQ7MTAwIHBwYikuIFJlYWN0aXZpdHkgb2YgQU1EIHdhcyBkZW1vbnN0cmF0ZWQgCiAgYnkgc3Bpa2luZyBzdHVkaWVzLCBpbiB3aGljaCBmcmVzaGx5IGFkZGVkIEFNRCByYXBpZGx5IGRyb3BwZWQgdG8gdW5kZXRlY3RhYmxlIAogIGxldmVscy4gIAo8L1A+IAo8QSBocmVmPSIvU1AyVXNlckZpbGVzL1BsYWNlLzUzNjgwMDAwL3B1YnMvZmF0ZV9hY3J5bGFtaWRlX2FwcF9wYW1fY3JvcGxhbmQucGRmIj5DbGljayBoZXJlIGZvciB0aGUgY29tcGxldGUgYXJ0aWNsZSBpbiBQREYgZm9ybWF0LjwvQT4gCjxQPjxGT05UIHNpemU9LTE+IAogIDxBIGhyZWY9IiNUYWJsZSUyMG9mJTIwQ29udGVudHMiPkJhY2sgdG8gVGFibGUgb2YgQ29udGVudHM8L0E+PC9GT05UPiAKPC9QPiAKPEhSPiAKPEg0PiAKICA8QSBuYW1lPSJUaGUgUGh5c2ljYWwgRWZmZWN0cyI+VGhlIFBoeXNpY2FsIEVmZmVjdHMgb2YgUG9seWFjcnlsYW1pZGUgb24gTmF0dXJhbCBSZXNvdXJjZXM8L0E+IAo8L0g0PiAKPFA+TC5KLiBEYXdzb24sIFQuTC4gU3BvZmZvcmQtLS08ST5VU0RBLU5SQ1MsIE1hZGlzb24sIFdJLCBVU0RBLU5SQ1MsIFBvcnRsYW5kLCBPUjwvST4gIAo8L1A+IAo8UD5UaGUgcGh5c2ljYWwgZWZmZWN0IHBvbHlhY3J5bGFtaWRlIChQQU0pIGhhcyBvbiBpcnJpZ2F0aW9uIGluZHVjZWQgZXJvc2lvbiAKICBpcyB2ZXJ5IGdyYXBoaWMgYW5kIGludHVpdGl2ZWx5IGEgZ29vZCBlZmZlY3QuIExlc3MgZHJhbWF0aWNhbGx5LCBwb2x5YWNyeWxhbWlkZSAKICBhbHNvIGVmZmVjdHMgbWFueSBhc3BlY3RzIG9mIHRoZSBzb2lsLCB3YXRlciwgYW5kIGFuaW1hbCByZXNvdXJjZXMuIE1hbnksIAogIGJ1dCBub3QgYWxsIGVmZmVjdHMgYXJlIGRlc2lyYWJsZS4gIAo8L1A+IAo8UD5UaHJvdWdoIGF3YXJlbmVzcyBhbmQgbWFuYWdlbWVudCwgdGhlIGRlc2lyYWJsZSBlZmZlY3RzIGNhbiBiZSBhY2NlbnRlZCAKICBhbmQgdGhlIHVuZGVzaXJhYmxlIGVmZmVjdHMgbWluaW1pemVkLiAgCjwvUD4gCjxQPkJ5IGNvbnNpZGVyaW5nIGlmIGFuZCBob3cgUEFNIGNhbiBlZmZlY3QgcG90ZW50aWFsIHJlc291cmNlIGNvbmNlcm5zIHNob3duIAogIG9uIHRoZSBDb25zZXJ2YXRpb24gUHJhY3RpY2UgUGh5c2ljYWwgRWZmZWN0cyBtYXRyaXggZGV2ZWxvcGVkIGJ5IHRoZSBOUkNTLCAKICBhd2FyZW5lc3MgY2FuIGJlIGVuaGFuY2VkIGluIHRoZSBsZXNzIGludHVpdGl2ZSBhcmVhcy4gIAo8L1A+IAo8UD5QQU0gY2FuIGhhdmUgcGh5c2ljYWwgZWZmZWN0cyBvbiAzMyBuYXR1cmFsIHJlc291cmNlcyBjb25jZXJucywgcmFyZWx5IAogIGlmIGV2ZXIgYWxsIGF0IG9uZSBzaXRlLCBhbmQgYWxsIGF0IG9uZSB0aW1lLiAgCjwvUD4gCjxBIGhyZWY9Ii9TUDJVc2VyRmlsZXMvUGxhY2UvNTM2ODAwMDAvcHVicy9waHlzaWNhbF9lZmZlY3RfcGFtX25hdHVyYWxfcmVzb3VyY2VzLnBkZiI+Q2xpY2sgaGVyZSBmb3IgdGhlIGNvbXBsZXRlIGFydGljbGUgaW4gUERGIGZvcm1hdC48L0E+IAo8UD48Rk9OVCBzaXplPS0xPiAKICA8QSBocmVmPSIjVGFibGUlMjBvZiUyMENvbnRlbnRzIj5CYWNrIHRvIFRhYmxlIG9mIENvbnRlbnRzPC9BPjwvRk9OVD4gCjwvUD4gCjxIUj4gCjxIMj5Qb3N0ZXIgUHJlc2VudGF0aW9ucyAKPC9IMj4gCjxIUj4gCjxIND4gCiAgPEEgbmFtZT0iUEFNIHNwcmF5IGVmZmVjdHMiPlBBTSBTcHJheSBFZmZlY3RzIG9uIFN1Z2FyYmVldCBFbWVyZ2VuY2U8L0E+IAo8L0g0PiAKPFA+Ry5BLiBMZWhyc2NoLCBELkMuIEtpbmNhaWQsIGFuZCBSLkQuIExlbnR6LS0tPEk+VVNEQS1BUlMsIEtpbWJlcmx5LCBJRC48L0k+ICAKPC9QPiAKPFA+UG9seWFjcnlsYW1pZGUgKFBBTSkgc3RhYmlsaXplcyBzdXJmYWNlIHNvaWwgdW5kZXIgZnVycm93IGlycmlnYXRpb24gYW5kIAogIG1heSBhbHNvIHJlZHVjZSBhZ2dyZWdhdGUgc2xha2luZyBjYXVzZWQgYnkgc3ByaW5rbGVyIGRyb3AgaW1wYWN0LCB0aHVzIAogIG1pbmltaXppbmcgY3J1c3QgZm9ybWF0aW9uIGFuZCBpbmNyZWFzaW5nIHN1Z2FyYmVldCAoQmV0YSB2dWxnYXJpcyBMLikgCiAgZW1lcmdlbmNlLiBXZSBldmFsdWF0ZWQgdGhlIGVmZmVjdHMgb2YgYSBtb2RlcmF0ZWx5IGFuaW9uaWMgUEFNIGFuZCBzcHJpbmtsZXIgCiAgZHJvcGxldCBlbmVyZ3kgb24gc3VnYXIgYmVldCBlbWVyZ2VuY2UgaW4gdGhlIGZpZWxkLiBJbiA0MDQgTCBvZiBzb2x1dGlvbiAKICBoYSAKPFNVUD4xPC9TVVA+LCByYXRlcyBvZiAxMCBhbmQgMjUga2cgUEFNIGhhIAo8U1VQPjE8L1NVUD53ZXJlIHNwcmF5ZWQgaW4gMjUtbW0td2lkZSBiYW5kcyBvdmVyIG5ld2x5IHBsYW50ZWQgcm93cyBpbiBhIFBvcnRuZXVmIApzaWx0IGxvYW0gKER1cml4ZXJvbGxpYyBDYWxjaW9ydGhpZCkgbmVhciBLaW1iZXJseSwgSUQsIG9uIDI1IEp1bHkgMTk5NS4gCkEgbGluZWFyLW1vdmUgaXJyaWdhdGlvbiBzeXN0ZW0gYXBwbGllZCB3YXRlciBhdCBkcm9wbGV0IGVuZXJnaWVzIG9mIDUgCmFuZCAxNSBKIGtnIAo8U1VQPjE8L1NVUD50byB0aGUgcGxvdHMgZml2ZSB0aW1lcy4gQXQgdGhlIGFib3ZlIHJhdGVzLCB0aGUgUEFNIHdlIHN0dWRpZWQgZGlkIG5vdCAKaW5jcmVhc2Ugc3VnYXJiZWV0IGVtZXJnZW5jZS4gSW4gZmFjdCwgZW1lcmdlbmNlIHdhcyBncmVhdGVzdCwgYWxiZWl0IHNsaWdodGx5LCAKaW4gcGxvdHMgc3ByYXllZCB3aXRoIG9ubHkgdGFwIHdhdGVyLiBFbWVyZ2VuY2Ugd2FzIHNsaWdodGx5IGJldHRlciAoUCZsdDswLjAxNikgCmluIHRhcCB3YXRlci10cmVhdGVkIGFuZCBjb250cm9sIChub3QgdHJlYXRlZCkgcGxvdHMsIDMyLjglLCB0aGFuIGluIFBBTS10cmVhdGVkIApwbG90cywgMjkuOCUuIFRoaXMgZmluZGluZyB3YXMgbGlrZWx5IHJlbGF0ZWQgdG8gUEFNJ3MgaW5hYmlsaXR5LCBhcyBhcHBsaWVkLCAKdG8gc3RhYmlsaXplIHN1cmZhY2Ugc29pbCBhZ2dyZWdhdGVzIHVuZGVyIGhpZ2ggZHJvcGxldCBlbmVyZ2llcy4gV2hlbiAKZHJvcGxldCBlbmVyZ2llcyBpbmNyZWFzZWQgdGhyZWUtZm9sZCwgZW1lcmdlbmNlIGRlY3JlYXNlZCBieSBvdmVyIDEyJS4gClRvIGluY3JlYXNlIHN1Z2FyYmVldCBlbWVyZ2VuY2UsIHJlZHVjZSBkcm9wbGV0IGVuZXJneSBzdHJpa2luZyB0aGUgc29pbCAKc3VyZmFjZSBhZnRlciBwbGFudGluZy4gIAo8L1A+IAo8QSBocmVmPSIvU1AyVXNlckZpbGVzL1BsYWNlLzUzNjgwMDAwL3B1YnMvcGFtX3NwcmF5X2VmZmVjdF9zdWdhcmJlZXRfZW1lcmdlbmNlLnBkZiI+Q2xpY2sgaGVyZSBmb3IgdGhlIGNvbXBsZXRlIGFydGljbGUgaW4gUERGIGZvcm1hdC48L0E+IAo8UD48Rk9OVCBzaXplPS0xPiAKICA8QSBocmVmPSIjVGFibGUlMjBvZiUyMENvbnRlbnRzIj5CYWNrIHRvIFRhYmxlIG9mIENvbnRlbnRzPC9BPjwvRk9OVD4gCjwvUD4gCjxIUj4gCjxIND4gCiAgPEEgbmFtZT0iRGVtb25zdHJhdGlvbiBvZiBQQU0gdG8gUmVkdWNlIj5EZW1vbnN0cmF0aW9uIG9mIFBvbHlhY3J5bGFtaWRlIChQQU0pIHRvIFJlZHVjZSBFcm9zaW9uIG9uIE9uaW9ucyBpbiB0aGUgCiAgICBBcmthbnNhcyBSaXZlciBWYWxsZXkgb2YgQ29sb3JhZG88L0E+IAo8L0g0PiAKPFA+Si5DLiBWYWxsaWFudC0tLTxJPkNvbG9yYWRvIFN0YXRlIFVuaXYuIEV4dGVuc2lvbiwgUm9ja3kgRm9yZDwvST4uICAKPC9QPiAKPFA+U29pbCBsb3NzIGR1ZSB0byBlcm9zaW9uIGNhbiBiZSBoaWdoIHdoZW4gb25pb25zIGFyZSBmdXJyb3ctaXJyaWdhdGVkIAogIGZyb20gNyB0byAxNSB0aW1lcyBkdXJpbmcgdGhlIGdyb3dpbmcgc2Vhc29uIGluIHRoZSBBcmthbnNhcyBSaXZlciBWYWxsZXkgCiAgb2YgQ29sb3JhZG8uIFBvbHlhY3J5bGFtaWRlIChQQU0pIHRyZWF0ZWQgaXJyaWdhdGlvbiB3YXRlciB3YXMgYXBwbGllZCAKICB0byBvbmlvbnMgb24gdGhyZWUgZGF0ZXMgaW4gMTk5NSB0byByZWR1Y2Ugc29pbCBsb3NzIGFuZCBpbXByb3ZlIHF1YWxpdHkgCiAgb2YgcmV0dXJuIGZsb3cgdG8gdGhlIHJpdmVyLiBPbiB0aGUgZmlyc3QgZGF0ZSwgc29pbCBsb3NzIHdhcyByZWR1Y2VkIDgzJSwgCiAgZnJvbSA0NzcgcG91bmRzIHBlciBhY3JlIG9uIHRoZSB1bnRyZWF0ZWQgYXJlYXMgdG8gODAgcG91bmRzIHBlciBhY3JlIG9uIAogIHRoZSBQQU0tdHJlYXRlZCBhcmVhcy4gVGhpcyByZWR1Y3Rpb24gaW4gc29pbCBsb3NzIHdhcyBvYnRhaW5lZCBldmVuIHRob3VnaCAKICB0aGUgZmxvdyByYXRlIHdhcyBpbmNyZWFzZWQgZnJvbSAxNi41IEdQTSBwZXIgZnVycm93IG9uIHRoZSB1bnRyZWF0ZWQgYXJlYXMgCiAgdG8gMjkuMCBHUE0gcGVyIGZ1cnJvdyBvbiBQQU0tdHJlYXRlZCBhcmVhcy4gT24gdGhlIHR3byBvdGhlciBkYXRlcywgYXBwbHlpbmcgCiAgMTYuNSBHUE0gcGVyIGZ1cnJvdyBvbiBhbGwgYXJlYXMsIFBBTSByZWR1Y2VkIHNvaWwgbG9zcyAyOSUgYW5kIDc3JSwgcmVzcGVjdGl2ZWx5LiAKICBSZWR1Y3Rpb24gaW4gc29pbCBsb3NzIG9uIHRoZSAxNDAwIGZvb3QgbG9uZyBmaWVsZCBvZiBzaWx0eSBjbGF5IGxvYW0gc29pbCAKICBhdmVyYWdlZCA1OC41JSBvbiBmaXZlIGlycmlnYXRpb25zIGluZGljYXRpbmcgYSBjYXJyeW92ZXIgZWZmZWN0IG9mIFBBTSAKICB3aGVuIHVudHJlYXRlZCBpcnJpZ2F0aW9uIHdhdGVyIHdhcyB1c2VkIG9uIGFsbCBhcmVhcy4gVG90YWwgcnVub2ZmIHdhcyAKICByZWR1Y2VkIGZyb20gMy43IG9uIHRoZSB1bnRyZWF0ZWQgYXJlYXMgdG8gMi41IGluY2hlcyBwZXIgYWNyZSBvbiB0aGUgUEFNLXRyZWF0ZWQgCiAgYXJlYXMgaW5kaWNhdGluZyBhIGdyZWF0ZXIgbGF0ZXJhbCBtb3ZlbWVudCBhbmQvb3IgYSBoaWdoZXIgaW5maWx0cmF0aW9uIAogIHJhdGUgZHVlIHRvIHRoZSBQQU0uIFNpbWlsYXIgb25pb24geWllbGRzIG9mIDYyOCBhbmQgNjExIHNhY2tzICg1MCBwb3VuZCkgCiAgcGVyIGFjcmUgd2VyZSBwcm9kdWNlZCBvbiB0aGUgdW50cmVhdGVkIGFuZCBQQU0tdHJlYXRlZCBhcmVhcy4gIAo8L1A+IAo8QSBocmVmPSIvU1AyVXNlckZpbGVzL1BsYWNlLzUzNjgwMDAwL3B1YnMvZGVtX3BhbV9yZWR1Y2VfZXJvc2lvbl9jb2xvcmFkby5wZGYiPkNsaWNrIGhlcmUgZm9yIHRoZSBjb21wbGV0ZSBhcnRpY2xlIGluIFBERiBmb3JtYXQuPC9BPiAKPFA+PEZPTlQgc2l6ZT0tMT4gCiAgPEEgaHJlZj0iI1RhYmxlJTIwb2YlMjBDb250ZW50cyI+QmFjayB0byBUYWJsZSBvZiBDb250ZW50czwvQT48L0ZPTlQ+IAo8L1A+IAo8SFI+IAo8SDM+UHJvY2VlZGluZ3Mgb3JkZXIgaW5mb3JtYXRpb246IAo8L0gzPiAKPFA+QSBwcmludGVkIGNvcHkgb2YgdGhlIHByb2NlZWRpbmdzIGlzIG5vIGxvbmdlciBhdmFpbGFibGUuIEhvd2V2ZXIsIGVhY2ggCiAgYXJ0aWNsZSBpcyBub3cgYXZhaWxhYmxlIGFzIGEgUERGIGZpbGUgdG8gYmUgdmlld2VkIGFuZC9vciBwcmludGVkLiBBIGxpbmsgCiAgdG8gZWFjaCBhcnRpY2xlIGlzIHByb3ZpZGVkIGF0IHRoZSBlbmQgb2YgZWFjaCBhYnN0cmFjdC4gCjwvUD4gCjxIUj4gCjxQIGFsaWduPWNlbnRlcj5MYXN0IHVwZGF0ZWQgb24gMjAgSnVuZSAyMDAyIGJ5IEppbSBGb2Vyc3RlciBhbmQgTHlubiBIZWluZW1hbm4gCjwvUD4=