{"data":{"id":"10.5061/dryad.c2fqz61q6","type":"dois","attributes":{"doi":"10.5061/dryad.c2fqz61q6","prefix":"10.5061","suffix":"dryad.c2fqz61q6","identifiers":[],"alternateIdentifiers":[],"creators":[{"name":"Holubowicz, Rafal","nameType":"Personal","givenName":"Rafal","familyName":"Holubowicz","affiliation":["University of California, Irvine"],"nameIdentifiers":[{"schemeUri":"https://orcid.org","nameIdentifier":"https://orcid.org/0000-0002-2555-2069","nameIdentifierScheme":"ORCID"}]},{"name":"Gao, Fangyuan","nameType":"Personal","givenName":"Fangyuan","familyName":"Gao","affiliation":["University of California, Irvine"],"nameIdentifiers":[]},{"name":"Du, Samuel W.","nameType":"Personal","givenName":"Samuel W.","familyName":"Du","affiliation":["University of California, Irvine"],"nameIdentifiers":[]},{"name":"Rodrigues Menezes, Carolline","nameType":"Personal","givenName":"Carolline","familyName":"Rodrigues Menezes","affiliation":["University of California, Irvine"],"nameIdentifiers":[]},{"name":"Zhang, Jianye","nameType":"Personal","givenName":"Jianye","familyName":"Zhang","affiliation":["University of California, Irvine"],"nameIdentifiers":[]},{"name":"Holubowicz, Maria W.","nameType":"Personal","givenName":"Maria W.","familyName":"Holubowicz","affiliation":["University of California, Irvine"],"nameIdentifiers":[]},{"name":"Chen, Paul Z.","nameType":"Personal","givenName":"Paul Z.","familyName":"Chen","affiliation":["Broad Institute"],"nameIdentifiers":[]},{"name":"Armbrust, Niklas","nameType":"Personal","givenName":"Niklas","familyName":"Armbrust","affiliation":["Helmholtz Munich"],"nameIdentifiers":[]},{"name":"Geilenkeuser, Julian","nameType":"Personal","givenName":"Julian","familyName":"Geilenkeuser","affiliation":["Helmholtz Munich"],"nameIdentifiers":[]},{"name":"Liu, David R.","nameType":"Personal","givenName":"David R.","familyName":"Liu","affiliation":["Broad Institute"],"nameIdentifiers":[]},{"name":"Truong, Dong-Jiunn Jeffery","nameType":"Personal","givenName":"Dong-Jiunn Jeffery","familyName":"Truong","affiliation":["Helmholtz Munich"],"nameIdentifiers":[]},{"name":"Westmeyer, Gil Gregor","nameType":"Personal","givenName":"Gil Gregor","familyName":"Westmeyer","affiliation":["Helmholtz Munich"],"nameIdentifiers":[]},{"name":"Palczewska, Grazyna","nameType":"Personal","givenName":"Grazyna","familyName":"Palczewska","affiliation":["University of California, Irvine"],"nameIdentifiers":[]},{"name":"Palczewski, Krzysztof","nameType":"Personal","givenName":"Krzysztof","familyName":"Palczewski","affiliation":["University of California, Irvine"],"nameIdentifiers":[]}],"titles":[{"title":"Scalable purification enables high-quality virus-like particles for therapeutic translation"}],"publisher":"Dryad","container":{},"publicationYear":2026,"subjects":[{"subject":"FOS: Medical biotechnology","schemeUri":"https://web-archive.oecd.org/2012-06-15/138575-38235147.pdf","subjectScheme":"fos"},{"subject":"FOS: Medical biotechnology","schemeUri":"http://www.oecd.org/science/inno/38235147.pdf","subjectScheme":"Fields of Science and Technology (FOS)"},{"subject":"FOS: Biological sciences","schemeUri":"https://web-archive.oecd.org/2012-06-15/138575-38235147.pdf","subjectScheme":"fos"},{"subject":"FOS: Biological sciences","schemeUri":"http://www.oecd.org/science/inno/38235147.pdf","subjectScheme":"Fields of Science and Technology (FOS)"},{"subject":"FOS: Chemical sciences","schemeUri":"https://web-archive.oecd.org/2012-06-15/138575-38235147.pdf","subjectScheme":"fos"},{"subject":"FOS: Chemical sciences","schemeUri":"http://www.oecd.org/science/inno/38235147.pdf","subjectScheme":"Fields of Science and Technology (FOS)"},{"subject":"FOS: Engineering and technology","schemeUri":"https://web-archive.oecd.org/2012-06-15/138575-38235147.pdf","subjectScheme":"fos"},{"subject":"FOS: Engineering and technology","schemeUri":"http://www.oecd.org/science/inno/38235147.pdf","subjectScheme":"Fields of Science and Technology (FOS)"},{"subject":"FOS: Health sciences","schemeUri":"https://web-archive.oecd.org/2012-06-15/138575-38235147.pdf","subjectScheme":"fos"},{"subject":"FOS: Health sciences","schemeUri":"http://www.oecd.org/science/inno/38235147.pdf","subjectScheme":"Fields of Science and Technology (FOS)"},{"subject":"FOS: Industrial biotechnology","schemeUri":"https://web-archive.oecd.org/2012-06-15/138575-38235147.pdf","subjectScheme":"fos"},{"subject":"FOS: Industrial biotechnology","schemeUri":"http://www.oecd.org/science/inno/38235147.pdf","subjectScheme":"Fields of Science and Technology (FOS)"},{"subject":"FOS: Medical and health sciences","schemeUri":"https://web-archive.oecd.org/2012-06-15/138575-38235147.pdf","subjectScheme":"fos"},{"subject":"FOS: Medical and health sciences","schemeUri":"http://www.oecd.org/science/inno/38235147.pdf","subjectScheme":"Fields of Science and Technology (FOS)"},{"subject":"FOS: Nano-technology","schemeUri":"https://web-archive.oecd.org/2012-06-15/138575-38235147.pdf","subjectScheme":"fos"},{"subject":"Liquid chromatography","schemeUri":"https://github.com/PLOS/plos-thesaurus","subjectScheme":"PLOS Subject Area Thesaurus"},{"subject":"CRISPR","schemeUri":"https://github.com/PLOS/plos-thesaurus","subjectScheme":"PLOS Subject Area Thesaurus"},{"subject":"Nanotechnology","schemeUri":"https://github.com/PLOS/plos-thesaurus","subjectScheme":"PLOS Subject Area Thesaurus"},{"subject":"FOS: Nanotechnology","schemeUri":"http://www.oecd.org/science/inno/38235147.pdf","subjectScheme":"Fields of Science and Technology (FOS)"},{"subject":"Ribonucleoproteins","schemeUri":"https://github.com/PLOS/plos-thesaurus","subjectScheme":"PLOS Subject Area Thesaurus"},{"subject":"Vesicles","schemeUri":"https://github.com/PLOS/plos-thesaurus","subjectScheme":"PLOS Subject Area Thesaurus"},{"subject":"prime editor"},{"subject":"base editor"},{"subject":"virus-like particles"},{"subject":"protein delivery"}],"contributors":[],"dates":[{"date":"2025-10-28T19:29:37Z","dateType":"Created"},{"date":"2025-11-05T18:46:07Z","dateType":"Submitted"},{"date":"2026-02-09T00:00:00Z","dateType":"Issued"},{"date":"2026-02-09T00:00:00Z","dateType":"Available"}],"language":"en","types":{"ris":"DATA","bibtex":"misc","citeproc":"dataset","schemaOrg":"Dataset","resourceType":"dataset","resourceTypeGeneral":"Dataset"},"relatedIdentifiers":[{"relationType":"IsCitedBy","relatedIdentifier":"10.1016/j.jbc.2025.110946","relatedIdentifierType":"DOI"}],"relatedItems":[],"sizes":["808821896 bytes"],"formats":[],"version":"6","rightsList":[{"rights":"Creative Commons Zero v1.0 Universal","rightsUri":"https://creativecommons.org/publicdomain/zero/1.0/legalcode","schemeUri":"https://spdx.org/licenses/","rightsIdentifier":"cc0-1.0","rightsIdentifierScheme":"SPDX"}],"descriptions":[{"description":"Emerging molecular therapies introduce enzymatic activity into cells by\n delivering genes, transcripts, or proteins. Owing to their robust\n cell-entry capacity, virus-like particles (VLPs) represent a technology of\n choice in genome editing, where low doses of heterologous proteins and\n nucleic acids are essential. However, clinical translation of VLP vectors\n is hindered by inadequate purification methods. Current approaches,\n relying primarily on ultracentrifugation, suffer from inconsistent product\n quality and poor scalability. Here, we report the development of a broadly\n applicable purification strategy that improves the purity and therapeutic\n efficacy of genome-editing VLPs. Considering the characteristic properties\n of murine leukemia virus (MLV)-derived engineered VLPs (eVLPs) and\n HIV-derived engineered nucleocytosolic vehicles for loading of\n programmable editors (ENVLPEs+), we developed a workflow that involves\n single- and multi-modal chromatographic steps, effectively removing host\n cell proteins and cell-culture contaminants while improving VLP integrity\n and biological activity. Our purified VLPs displayed superior protein\n composition, consistency, and enhanced functional delivery compared to\n VLPs partially purified by conventional ultracentrifugation methods. Mass\n spectrometric analysis revealed a substantial decrease in contaminants,\n with VLP-specific proteins comprising \u0026gt;90% of the final product. In\n vivo studies confirmed improved therapeutic outcomes when\n chromatographically purified VLPs were used. Our scalable purification\n platform addresses critical manufacturing bottlenecks and constitutes a\n starting point for further development of VLP therapeutics, enabling\n robust production of pure VLPs for diverse applications such as genome\n editing, vaccine development, and other uses that require intracellular\n protein delivery.","descriptionType":"Abstract"},{"description":"# Scalable purification enables high-quality virus-like particles for\n therapeutic translation ## Description of the data and file structure The\n data is organized in compressed subdirectories whose names correspond to\n figures in the main directory (Figure_1, Figure_2, Figure_S1, etc.).\n Exception: Figure S3 is the uncropped, unadjusted image of the gel.\n Figure_1.zip Figure_1a: Anti-Cre immunoblot of Cre-eVLP before and after\n purification by sucrose cushion ultracentrifugation. Rafal H 2024-02-25\n 20h25m53s(Chemiluminescence).jpg = Chemiluminescence scan of the\n immunoblot. Rafal H 2024-02-25 20h25m53s(Cy3) = red channel scan of the\n immunoblot. Rafal H 2024-02-25 20h25m53s(Cy5).jpg = blue channel scan of\n the immunoblot. Figure1b_VLP!_170713-2.jpg: A representative electron\n microscopic image of purified eVLPs. Figure_1c,d: Quantification of\n mCherry delivery into HEK 293T cells by fluorescence microscopy.\n Brightfield = brightfield images of the cells. RFP = red fluorescence\n images of the cells. README.md = table of file names, time after\n application of the eVLP and red fluorescence intensity.  Figure_1e: \n RIMG2419.JPG: SDS-PAGE gel images after staining with Coomassie Brilliant\n Blue of Cre-eVLPs produced in DMEM medium supplemented with 10% (or less)\n FBS, and purified by ultracentrifugation. Rafal H 2024-10-09 16h43m59s =\n Immunoblot of the Cre-eVLPs with anti-Cre antibodies. Rafal H 2024-10-09\n 16h55m15s = Immunoblot of the Cre-eVLPs with anti-VSV-G antibodies.\n Chemiluminescence = signal from the antigen, Cy3 = red fluorescence, Cy5 =\n blue fluorescence. Figure_1f.xlsx: Stable-isotope labeled quantification\n of Cre in eVLPs separated by ultracentrifugation. Gag designates a peptide\n specific for MLV Gag, Cre designates a peptide specific for Cre\n recombinase. Given values include molecular weight (MW) in g/mol, charges\n in each peptide, mass-to-charge ratio (m/z), molar concentrations of each\n peptide, signal intensities, and derived protein concentrations in\n samples. Figure_1g.xlsx: Estimation by untargeted mass spectrometry of the\n relative abundance of classes of proteins in eVLPs. Labels are associated\n with FBS concentration in production culture. The detected proteins were\n assigned to VLP constituents, serum proteins, keratins, and host cell\n proteins (\"Other\") based on the descriptions from the Uniprot\n database. A score of 10 and Label Free Quantification (LFQ) of 0.01 were\n used as thresholds to judge the real presence of each protein in the\n samples. Figure_1i: Delivery of functional Cre recombinase into\n HEK293-loxP-GFP-RFP cells via eVLPs purified by ultracentrifugation. The\n VLPs were standardized for Gag-Cre by Western blotting. CH1 = green\n channel, CH2 = red channel. README.md contains the assignment of the\n images to the appropriate concentrations of FBS in production cultures.\n Figure_2.zip Figure2_b: Coomassie-stained SDS-PAGE (RIMG2696.JPG) and\n anti-Cre immunoblot analyses (Rafal H 2025-03-08 00h28m21s) of Cre-eVLPs,\n purified by Capto Core 700. Chemiluminescence = signal from the antigen,\n Cy3 = red fluorescence, Cy5 = blue fluorescence. Figure2_c: Conversion of\n HEK color-switch cells by eVLPs, before and after CC700-purification. The\n eVLPs were standardized by immunoblot. README.md contains the assignment\n of images to data points. Figure2_d: Heparin-Sepharose High Performance\n chromatography. Heparin.TXT = data as exported from Bio-Rad DuoFlow. Time\n = time (sec), Quadtec1 = absorbance at 230 nm, QuadTec 2 = absorbance at\n 260 nm, QuadTec3 = absorbance at 280 nm, Gradient pump = Percentage of\n elution buffer in the system, Conductivity = conductivity of the solution\n (mS/cm), Fraction = corresponding fraction number. Heparin.tsv = Data used\n to plot the chromatogram. Figure2_e: Anti-Cre Western-blot analyses of\n fractions collected from the purifications by heparin. Chemiluminescence =\n signal from Cre, Cy3 = red fluorescence, Cy5 = blue fluorescence.\n Figure_2_f,j,n.xlsx: Abundance analysis of protein classes detected in\n eVLPs concentrated on centrifugal filters, before and after purification\n via heparin- Q-, or DEAE-chromatography. Samples: C = VLP purified by\n Capto Core 700, CH = VLP purified by Capto Core 700 and Heparin, CD = VLP\n purified by Capto Core 700 and DEAE, CQ = VLP purified by Capto Core 700\n and Q. The detected proteins were assigned to VLP constituents (Cre, Gag,\n Pol, VSV-G), serum proteins, keratins, and host cell proteins\n (\"Other\") based on the descriptions from the Uniprot database. A\n score of 10 and a ratio of Label Free Quantification (LFQ) of each protein\n versus LFQ of Cre of 0.01 were used as thresholds to judge the presence of\n each protein in the samples. Figure2_g: Conversion of HEK color-switch\n cells by eVLPs, before and after further purification via heparin\n chromatography. README.md contains the assignment of file names to the\n tested samples. Figure2_h: Q-Sepharose High Performance\n chromatography. 121024 cre evlp cc700 q.TXT = chromatogram file as\n exported from the Bio-Rad DuoFlow chromatography system. Time = time\n (sec), Quadtec1 = absorbance at 230 nm, QuadTec 2 = absorbance at 260 nm,\n QuadTec3 = absorbance at 280 nm, Gradient pump = Percentage of elution\n buffer in the system, Conductivity = conductivity of the solution (mS/cm),\n Fraction = corresponding fraction number. 121024 cre evlp cc700 q.WMF =\n plotted chromatogram. Figure2_i: Anti-Cre Western-blot analyses of\n fractions collected from the purifications by Q. Chemiluminescence =\n signal from Cre, Cy3 = red channel, Cy5 = blue channel.\n Figure2_k: Conversion of HEK color-switch cells by eVLPs, before and after\n further purification via Q chromatography. README.md contains the\n classification of images to data points. Figure2_l: DEAE-Sepharose High\n Performance chromatography. 052824 cre evlp cc700ii deae 5 ml.txt contains\n numerical values as exported from Bio-Rad DuoFlow. Time = time (sec),\n Quadtec1 = absorbance at 230 nm, QuadTec 2 = absorbance at 260 nm,\n QuadTec3 = absorbance at 280 nm, Gradient pump = Percentage of elution\n buffer in the system, Conductivity = conductivity of the solution (mS/cm),\n Fraction = corresponding fraction number. 052824 cre evlp cc700ii deae 5\n ml.WMF = plotted chromatogram.  Figure2_m: Anti-Cre Western-blot analyses\n of fractions collected from the purifications by DEAE. Rafal H 2024-05-30\n 11h37m35s(Chemiluminescence).jpg = signal from Cre. Cy3, Cy5 = red and\n blue fluorescence channels, respectively. Figure2_o: Conversion of HEK\n color-switch cells by eVLPs, before and after further purification via\n DEAE chromatography. README.md contains the classification of images to\n data points. Figure_3.zip:  Figure_3a.xlsx: Stable isotope-labeled peptide\n quantification of Cre in Cre-eVLP preparations purified by\n ultracentrifugation alone. Gag designates a peptide specific for MLV Gag,\n Cre designates a peptide specific for Cre recombinase. Given values\n include molecular weight (MW) in g/mol, charges in each peptide,\n mass-to-charge ratio (m/z), molar concentrations of each peptide, signal\n intensities, and derived protein concentrations in samples. The labels\n correspond to the batch numbers of each eVLP sample.\n Figure_3b.xlsx: Relative abundance of classes of proteins in eVLPs.\n Columns in the Intensity ratio subtable designate the eVLP batch and\n replicate. The detected proteins were assigned to VLP constituents (Cre,\n Gag, Pol, VSV-G), serum proteins, keratins, and host cell proteins\n (\"Other\") based on the descriptions from the Uniprot database. A\n score of 10 and a ratio of Label Free Quantification (LFQ) of each protein\n versus LFQ of Cre of 0.01 were used as thresholds to judge the presence of\n each protein in the samples. Figure_3c: eVLP-preparation #47, resolved on\n a 4.7-ml Capto Core 700 column. 121024 cre evlp cc700 q.WMF = plotted\n chromatogram. 121024 cre evlp cc700 q.TXT = chromatogram. Time = time\n (sec), Quadtec1 = absorbance at 230 nm, QuadTec 2 = absorbance at 260 nm,\n QuadTec3 = absorbance at 280 nm, Gradient pump = Percentage of elution\n buffer in the system, Conductivity = conductivity of the solution (mS/cm),\n Volume = elution volume rounded to 0.1 ml, Fraction = corresponding\n fraction number. Figure_3d: Chromatogram of eVLP #47 collected from the\n CC700 column, concentrated, then applied and eluted from a HiPrep 16/60\n Sephacryl S300HR size-exclusion-chromatography (SEC) column. 121124 cre\n evlp r cc q s300.WMF = plotted chromatogram. 121124 cre evlp r cc q\n s300.TXT = exported chromatogram. Time = time (sec), Quadtec1 = absorbance\n at 230 nm, QuadTec 2 = absorbance at 260 nm, QuadTec3 = absorbance at 280\n nm, Conductivity = conductivity of the solution (mS/cm), Volume = elution\n volume rounded to 0.1 ml, Fraction = corresponding fraction number.\n Figure_3e.xlsx: Classification of detected proteins in eVLP #47 before\n purification (“47”), after CC700 (“47C”), and after additional SEC\n chromatography (“47CS”). Labels are assigned to samples. Columns in the\n Intensity ratio subtable designate the eVLP batch and replicate. The\n detected proteins were assigned to VLP constituents (Cre, Gag, Pol,\n VSV-G), serum proteins, keratins, and host cell proteins\n (\"Other\") based on the descriptions from the Uniprot database. A\n score of 10 and a ratio of Label Free Quantification (LFQ) of each protein\n versus LFQ of Cre of 0.01 were used as thresholds to judge the presence of\n each protein in the samples. Figure_3f.xlsx: Mass-spectrometric protein\n identification of eVLP preparation #19 before and after SEC.  Labels are\n assigned to samples. Columns in the Intensity ratio subtable designate the\n eVLP batch and replicate. The detected proteins were assigned to VLP\n constituents (Cre, Gag, Pol, VSV-G), serum proteins, keratins, and host\n cell proteins (\"Other\") based on the descriptions from the\n Uniprot database. A score of 10 and a ratio of Label Free Quantification\n (LFQ) of each protein versus LFQ of Cre of 0.01 were used as thresholds to\n judge the presence of each protein in the samples. Figure_3h,i.pptx,\n Figure_3h_i.csv: Two-photon images of intact mT/mG mouse eyes 2 weeks\n after injection of Cre eVLP #19, before and after SEC purification. The\n table presents quantification results of the tdTomato-to-eGFP conversion\n in the RPE of Cre-eVLP-treated mT/mG mice. Figure_4.zip:  Figure_4a.txt: \n DEAE ion-exchange chromatogram of Cre-eVLPs prepurified on a 20-ml CC700\n column, eluted with a steep 10 column-volume (CV) gradient (125–562 mM\n NaCl). Time = time (sec), Quadtec1 = absorbance at 230 nm, QuadTec 2 =\n absorbance at 260 nm, QuadTec3 = absorbance at 280 nm, Gradient pump =\n Percentage of elution buffer in the system, Conductivity = conductivity of\n the solution (mS/cm), Volume = elution volume rounded to 0.1 ml, Fraction\n = corresponding fraction number. Figure_4b: Anti-Cre and anti-VSV-G\n immunoblots of fractions of Cre-eVLPs from experiment (A). Rafal H\n 2025-03-08 00h40m24s = anti-Cre, Rafal H 2025-03-08 20h26m32s = anti-VSVG.\n Chemiluminescence = signal from the antigen, Cy3 = red fluorescence, Cy5 =\n blue fluorescence. Figure_4c.txt: DEAE ion-exchange chromatogram of\n Cre-eVLPs purified directly from the cell culture medium. Time = time\n (sec), Quadtec1 = absorbance at 230 nm, QuadTec 2 = absorbance at 260 nm,\n QuadTec3 = absorbance at 280 nm, Gradient pump = Percentage of elution\n buffer in the system, Conductivity = conductivity of the solution (mS/cm),\n Volume = elution volume rounded to 0.1 ml, Fraction = corresponding\n fraction number. Figure_4e,f.xlsx: Classification of proteins detected in\n eVLP preparations by untargeted mass spectrometry. Label-free\n quantification of proteins present in eVLP preparations purified by DEAE\n and ultracentrifugation. Labels are assigned to samples. Columns in the\n Intensity ratio subtable designate the eVLP batch and replicate. The\n detected proteins were assigned to VLP constituents (Cre, Gag, Pol,\n VSV-G), serum proteins, keratins, and host cell proteins\n (\"Other\") based on the descriptions from the Uniprot database. A\n score of 10 and a ratio of Label Free Quantification (LFQ) of each protein\n versus LFQ of Cre of 0.01 were used as thresholds to judge the presence of\n each protein in the samples. Figure_4g: Fluorescence microscopic images of\n HEK color-switch cells, 48 h after application of Cre-eVLPs, purified via\n DEAE chromatography, and ultracentrifuged. The eVLPs were standardized for\n Gag-Cre content via quantitative immunoblot analysis. README.md assigns\n fluorescence micrographs to samples. CH1 = green channel, CH2 = red\n channel. Figure_4h,i,j: Figure_4h.jpg and Figure 4i.jpg: Two-photon scans\n of eyes from mT/mG mice, 6 weeks after subretinal injection of Cre-eVLPs\n that were purified by DEAE chromatography and ultracentrifugation. Scales\n represent dimensions in μm. The data are representative of at least seven\n images. Figure_4h,i.xlsx: Stable-isotope labeled quantification of Cre in\n eVLPs separated by ultracentrifugation. Gag designates a peptide specific\n for MLV Gag, Cre designates a peptide specific for Cre recombinase. Given\n values include molecular weight (MW) in g/mol, charges in each peptide,\n mass-to-charge ratio (m/z), molar concentrations of each peptide, signal\n intensities, and derived protein concentrations in samples. Labels are\n assigned to samples. Figure_4j.xlsx: Estimation of the extent of color\n conversion in the RPE of the eyes of mT/mG mice treated with purified Cre\n eVLPs.  Figure_5.zip: Figure_5a: DEAE ion-exchange chromatogram of\n ABE-eVLPs, prepurified on a 20-ml CC700 column. 032125 abe vlp ccde.WMF =\n plotted chromatogram. 032125 abe vlp ccde.TXT = chromatography data. Time\n = time (sec), Quadtec1 = absorbance at 230 nm, QuadTec 2 = absorbance at\n 260 nm, QuadTec3 = absorbance at 280 nm, Gradient pump = Percentage of\n elution buffer in the system, Conductivity = conductivity of the solution\n (mS/cm), Volume = elution volume rounded to 0.1 ml, Fraction =\n corresponding fraction number. Figure_5b: Anti-Cas9 and anti-VSV-G\n immunoblots of fractions of ABE-eVLPs from experiment (A). Rafal H\n 2025-03-23 01h16m47s and Rafal H 2025-03-23 01h29m01s = anti-Cas9, Rafal H\n 2025-03-24 02h22m55s and Rafal H 2025-03-24 02h30m10s =\n anti-VSV-G. Chemiluminescence = signal from the antigen, Cy3 = red\n fluorescence, Cy5 = blue fluorescence. Figure_5c: DEAE ion-exchange\n chromatogram of ABE-eVLPs, purified directly from the cell culture\n medium. 022825 abe evlp rde.WMF = plotted chromatogram, 022825 abe evlp\n rde.TXT = chromatogram data. Time = time (sec), Quadtec1 = absorbance at\n 230 nm, QuadTec 2 = absorbance at 260 nm, QuadTec3 = absorbance at 280 nm,\n Gradient pump = Percentage of elution buffer in the system, Conductivity =\n conductivity of the solution (mS/cm), Volume = elution volume rounded to\n 0.1 ml, Fraction = corresponding fraction number. Figure_5d: Anti-Cas9 and\n anti-VSV-G immunoblots of fractions of ABE-eVLPs from experiment\n (C). Rafal H 2025-03-18 03h56m27s = anti-Cas9, Rafal H 2025-03-04\n 00h21m53s = anti-VSV-G. Chemiluminescence = signal from the antigen, Cy3 =\n red fluorescence, Cy5 = blue fluorescence. Figure_5e.xlsx; Figure_5g.xlsx:\n Mass spectrometric classification of proteins detected in purified\n ABE-eVLPs. Numbers denote peak numbers; S denotes concentration by\n ultracentrifugation. Labels are assigned to samples. Columns in the\n Intensity ratio subtable designate the eVLP batch and replicate. The\n detected proteins were assigned to VLP constituents (Cas9, TadA, Gag, Pol,\n VSV-G), serum proteins, keratins, and host cell proteins\n (\"Other\") based on the descriptions from the Uniprot database. A\n score of 10 and a ratio of Label Free Quantification (LFQ) of each protein\n versus LFQ of Cre of 0.01 were used as thresholds to judge the presence of\n each protein in the samples. Figure_5f.xlsx; Figure_5h.xlsx: SIL peptide\n quantification of Cas9, TadA, and Gag in pooled fractions from each peak\n of DEAE eluate, concentrated by ultracentrifugation. Labels are assigned\n to samples. Gag designates peptide specific for MLV Gag, Cas9 designates\n peptide specific for Cas9, ABE designates peptide specific to TadA\n deaminase, PE2 designates peptide specific for reverse transcriptase.\n Given values include molecular weight (MW) in g/mol, charges in each\n peptide, mass-to-charge ratio (m/z), molar concentrations of each peptide,\n signal intensities, and derived protein concentrations in samples.\n Figure_5j: Fluorescence microscopic images of rd12 color-switch reporter\n cells 48 h after application of purified ABE-eVLPs. README.md assigns\n images to samples. Figure_6.zip: Figure_6a.xlsx: Representative\n electroretinographic (ERG) traces recorded for rd12 mice treated with\n purified ABE eVLPs. WT = wild-type mouse, rd12 = non-treated rd12 mouse,\n CDS1, DS1, DS2 = rd12 mice treated with specific ABE eVLP.\n Figure_6bc.xlsx: ERG a-wave and b-wave amplitudes recorded for treated\n rd12 mice, and statistical analysis as reported by GraphPad software.\n Figure_6d: Example of the result of targeted amplicon sequencing analysis\n done by CRISPResso2. Amplicon sequencing reads were assigned to alleles of\n treated rd12 mouse with on-target, on-target and bystander, and\n bystander-only adenine deamination. Figure_6e; Figure_6f: Targeted\n amplicon sequencing to assess editing efficiency in the Rpe65 rd12 locus\n in genomic DNA (D) and cDNA (E), isolated from the RPE of ABE-eVLP-treated\n rd12 mice. fastq.gz = compressed reads, .sh = bash commands to run\n CRISPResso analysis. README.md assigns reads to treatments of the mice.\n Figure_7.zip Figure_7a.txt: DEAE ion-exchange chromatogram of PE-eVLPs,\n prepurified on a 20-ml CC700 column. Time = time (sec), Quadtec1 =\n absorbance at 230 nm, QuadTec 2 = absorbance at 260 nm, QuadTec3 =\n absorbance at 280 nm, Gradient pump = Percentage of elution buffer in the\n system, Conductivity = conductivity of the solution (mS/cm), Volume =\n elution volume rounded to 0.1 ml, Fraction = corresponding fraction\n number. Figure_7b: Anti-VSV-G immunoblot of fractions of PE-eVLPs from\n experiment (A). Chemiluminescence = signal from VSV-G, Cy3 = red\n fluorescence, Cy5 = blue fluorescence. Figure_7c.xlsx: Mass spectrometric\n classification of proteins detected in purified PE-eVLPs. Labels are\n assigned to samples. Columns in the Intensity ratio subtable designate the\n eVLP batch and replicate. The detected proteins were assigned to VLP\n constituents (Cas9, MLV RT, Gag, Pol, VSV-G), serum proteins, keratins,\n and host cell proteins (\"Other\") based on the descriptions from\n the Uniprot database. A score of 10 and a ratio of Label Free\n Quantification (LFQ) of each protein versus LFQ of Cre of 0.01 were used\n as thresholds to judge the presence of each protein in the samples.\n Figure_7d; Figure_7e; Figure_7f.xlsx: DEAE ion-exchange chromatogram,\n anti-VSV-G immunoblot, and mass spectrometric classification of proteins\n analogous to (A–C) for PE-eVLPs, purified directly from the cell-culture\n medium. Figure 7d, 030225 pe3b rd12 evlp rde.WMF = plotted\n chromatogram, 030225 pe3b rd12 evlp rde.TXT = chromatography data: Time =\n time (sec), Quadtec1 = absorbance at 230 nm, QuadTec 2 = absorbance at 260\n nm, QuadTec3 = absorbance at 280 nm, Gradient pump = Percentage of elution\n buffer in the system, Conductivity = conductivity of the solution (mS/cm),\n Volume = elution volume rounded to 0.1 ml, Fraction = corresponding\n fraction number. Figure_7e: Chemiluminescence = signal from VSV-G, Cy3 =\n red fluorescence, Cy5 = blue fluorescence. Figure 7f.xlsx, Labels are\n assigned to samples. Columns in the Intensity ratio subtable designate the\n eVLP batch and replicate. The detected proteins were assigned to VLP\n constituents (Cas9, MLV RT, Gag, Pol, VSV-G), serum proteins, keratins,\n and host cell proteins (\"Other\") based on the descriptions from\n the Uniprot database. A score of 10 and a ratio of Label Free\n Quantification (LFQ) of each protein versus LFQ of Cre of 0.01 were used\n as thresholds to judge the presence of each protein in the samples.\n Figure_7g: Fluorescence microscopic images of rd12 color-switch reporter\n cells 48 h after application of purified PE-eVLPs. README.md assigns\n photographs to samples. Figure_7h: Targeted amplicon sequencing to\n document editing efficiency in the Rpe65 rd12 locus in genomic DNA (gDNA)\n and cDNA isolated from the RPE of PE-eVLP-treated rd12 mice. fastq.gz =\n compressed reads, .sh = bash commands to run CRISPResso analysis.\n README.md assigns reads to treatments of the mice. Figure_8.zip:\n Figure_8a: Anti-Cas9 and anti-VSV-G immunoblots of fractions of\n PE-ENVLPEs+ collected from a 20-ml CC700 column. Rafal H 2025-03-21\n 13h13m06s = Cas9, Rafal H 2025-03-22 00h50m51s = Cas9 and\n VSV-G. Chemiluminescence = signal from antigens, Cy3 = red fluorescence,\n Cy5 = blue fluorescence. Figure_8b.txt: DEAE ion-exchange chromatogram of\n PE-ENVLPEs+, prepurified on a 20-ml CC700 column. Time = time (sec),\n Quadtec1 = absorbance at 230 nm, QuadTec 2 = absorbance at 260 nm,\n QuadTec3 = absorbance at 280 nm, Gradient pump = Percentage of elution\n buffer in the system, Conductivity = conductivity of the solution (mS/cm),\n Volume = elution volume rounded to 0.1 ml, Fraction = corresponding\n fraction number. Figure_8c: Anti-Cas9 and anti-VSV-G immunoblots of\n fractions of PE-ENVLPEs+ from experiment (B). Rafal H 2025-03-21 13h38m47s\n = Cas9, Rafal H 2025-03-22 01h02m04s = Cas9 + VSV-G. Chemiluminescence =\n signal from antigens, Cy3 = red fluorescence, Cy5 = blue fluorescence.\n Figure_8d; Figure_8e: DEAE ion-exchange chromatogram and immunoblots\n analogous to (B, C) for PE-ENVLPEs+, purified directly from the\n cell-culture medium. Figure_8d.WMF = plotted chromatogram. Figure_8d.TXT =\n chromatography data, Time = time (sec), Quadtec1 = absorbance at 230 nm,\n QuadTec 2 = absorbance at 260 nm, QuadTec3 = absorbance at 280 nm,\n Gradient pump = Percentage of elution buffer in the system, Conductivity =\n conductivity of the solution (mS/cm), Volume = elution volume rounded to\n 0.1 ml, Fraction = corresponding fraction number. Figure_8e, Rafal H\n 2025-03-15 04h22m38s = Cas9, Rafal H 2025-03-15 23h34m16s = Cas9 +\n VSV-G. Chemiluminescence = signal from antigens, Cy3 = red fluorescence,\n Cy5 = blue fluorescence. Figure_8f.xlsx: Mass spectrometric classification\n of proteins detected in purified PE-ENVLPEs+. Labels are assigned to\n samples. Columns in the Intensity ratio subtable designate the eVLP batch\n and replicate. The detected proteins were assigned to VLP constituents\n (PE2, Csy4, Gag, PCP, Pol, VSV-G), serum proteins, keratins, and host cell\n proteins (\"Other\") based on the descriptions from the Uniprot\n database. A score of 10 and a ratio of Label Free Quantification (LFQ) of\n each protein versus LFQ of Cre of 0.01 were used as thresholds to judge\n the presence of each protein in the samples. Figure_8g: Fluorescence\n microscopic images of TIGER-reporter cells, 48 h after application of\n purified PE-ENVLPEs+. README.md assigns photographs to samples.\n Figure_8h: Untitled-1.jpg: Two-photon fluorescence image of the posterior\n segment of the intact eye of a heterozygous TIGER-reporter mouse treated\n with PE-ENVLPEs+; scale is in μm. Figure_8h.xlsx: Labels are assigned to\n samples. Cas9 designates a peptide specific for Cas9, PE2 designates a\n peptide specific for reverse transcriptase. Given values include molecular\n weight (MW) in g/mol, mass-to-charge ratio (m/z), molar concentrations of\n each peptide, signal intensities, and derived protein concentrations in\n samples. Figure_S1.zip: Figure_S1a: RIMG2221.jpg: Coomassie-stained\n SDS-PAGE of Cre-eVLPs, purified on 4.7 ml HiScreen Capto Core 400.  Rafal\n H 2024-01-24 22h04m36s: anti-Cre immunoblot analyses of Cre-eVLPs,\n purified on 4.7 ml HiScreen Capto Core 400. Chemiluminescence = signal\n from antigens, Cy3 = red fluorescence, Cy5 = blue fluorescence.\n Figure_S1b: RIMG2241.jpg: Coomassie-stained SDS-PAGE of Cre-eVLPs,\n purified on 4.7 ml HiScreen Capto Core 700.  Rafal H 2024-01-30 11h37m39s:\n anti-Cre immunoblot analyses of Cre-eVLPs, purified on 4.7 ml HiScreen\n Capto Core 700. Chemiluminescence = signal from antigens, Cy3 = red\n fluorescence, Cy5 = blue fluorescence. Figure_S2.zip: Fluorescence\n microscopic images of HEK color-switch cells, 48 h after application of\n the eVLPs isolated by ultracentrifugation in independent experiments; eVLP\n #47, before and after sequential chromatographic purification; eVLP #19,\n before and after purification. README.md assigns photographs to samples.\n Figure_S3.JPG: Purification of Cre-eVLPs assessed using silver staining.\n Cre-eVLP samples were subjected to DEAE chromatography with or without\n pre-purification on Capto Core 700 (CC700). The samples were analyzed by\n SDS-PAGE, and the gels were silver-stained. The samples were standardized\n for Gag-Cre by immunoblotting, and a quarter-volume of unpurified medium\n with eVLPs was loaded to avoid saturating the image and losing band\n resolution. Figure_S4.zip: Analysis of ABE-eVLPs targeting Rpe65 rd12,\n purified by DEAE ion-exchange chromatography, with (a) or without (b)\n pre-chromatography on Capto Core 700. The samples were resolved using\n SDS-PAGE and developed by silver staining. Within each gel, the samples\n were standardized for VSV-G, and one-fourth volume of the medium (a) or\n one-fifteenth volume (b) containing eVLPs was loaded to avoid\n oversaturation of the signal. Figure_S5.zip: Rafal H 2025-07-03 12h48m37s:\n Anti-RPE65 immunoblots of lysed eyecups, isolated from ABE-eVLP-treated\n rd12 mice. Rafal H 2025-07-03 19h03m22s: anti-β-actin immunoblots of lysed\n eyecups, isolated from ABE-eVLP-treated rd12 mice. Chemiluminescence =\n signal from antigens, Cy3 = red fluorescence, Cy5 = blue fluorescence.\n Figure_S5b.xlsx: Quantification of 11-cis-retinal in the eye homogenates\n from treated mice. Labels correspond to treatments. Figure_S6.zip: (a, b)\n Analysis of PE-eVLPs targeting Rpe65 rd12. (c, d) Analysis of PE-ENVLPEs+\n targeting the TIGER construct. The samples were resolved using SDS-PAGE\n and developed by silver staining. Within each gel, the samples were\n standardized for VSV-G, and one-fourth volume of the medium (a) or\n one-fifteenth volume (b,c,d) containing eVLPs was loaded to avoid\n saturation with the dye. README.md (this file) MS_fasta.zip contains a\n database of protein sequences used in mass spectrometric analysis in fasta\n format, downloaded from the Uniprot database. ## Sharing/Access\n information Raw mass spectrometry data are available:\n [https://www.ebi.ac.uk/pride/archive/projects/PXD070195](https://www.ebi.ac.uk/pride/archive/projects/PXD070195) ## Code/Software Scripts used to analyze amplicon sequencing results with CRISPResso2 are attached in the respective figure subdirectories.","descriptionType":"TechnicalInfo"}],"geoLocations":[],"fundingReferences":[{"schemeUri":"https://ror.org","funderName":"Knights Templar Eye Foundation","funderIdentifier":"https://ror.org/03mq5pg65","funderIdentifierType":"ROR"},{"awardUri":"https://reporter.nih.gov/project-details/11037617","schemeUri":"https://ror.org","awardTitle":"Editing AMD Risk Alleles in Human Cells","funderName":"National Eye Institute","awardNumber":"1R01EY036994-01","funderIdentifier":"https://ror.org/03wkg3b53","funderIdentifierType":"ROR"},{"awardUri":"https://reporter.nih.gov/project-details/11047716","schemeUri":"https://ror.org","awardTitle":"Precision genome editing in vivo to treat retinal diseases","funderName":"National Eye Institute","awardNumber":"5R01EY034501-03","funderIdentifier":"https://ror.org/03wkg3b53","funderIdentifierType":"ROR"},{"awardUri":"https://reporter.nih.gov/project-details/10631924","schemeUri":"https://ror.org","awardTitle":"Medical Scientist Training Program","funderName":"National Institute of General Medical Sciences","awardNumber":"5T32GM008620-25","funderIdentifier":"https://ror.org/04q48ey07","funderIdentifierType":"ROR"},{"awardUri":"https://reporter.nih.gov/project-details/11000296","schemeUri":"https://ror.org","awardTitle":"microRNA-204 and microRNA-211 regulation of RPE phagocytosis","funderName":"National Eye Institute","awardNumber":"5F30EY033642-04","funderIdentifier":"https://ror.org/03wkg3b53","funderIdentifierType":"ROR"},{"awardUri":"https://reporter.nih.gov/project-details/10222522","schemeUri":"https://ror.org","awardTitle":"Delivery Technologies for In Vivo Genome Editing","funderName":"National Institute of Allergy and Infectious Diseases","awardNumber":"5UG3AI150551-03","funderIdentifier":"https://ror.org/043z4tv69","funderIdentifierType":"ROR"},{"awardUri":"https://reporter.nih.gov/project-details/10459380","schemeUri":"https://ror.org","awardTitle":"Expanding the Scope of Base Editing","funderName":"National Institute of Allergy and Infectious Diseases","awardNumber":"5U01AI142756-05","funderIdentifier":"https://ror.org/043z4tv69","funderIdentifierType":"ROR"},{"awardUri":"https://reporter.nih.gov/project-details/11070341","schemeUri":"https://ror.org","awardTitle":"\n        Integrating Chemistry and Evolution to Illuminate Biology and Enable\n        Novel Therapeutics\n      ","funderName":"National Institute of General Medical Sciences","awardNumber":"5R35GM118062-11","funderIdentifier":"https://ror.org/04q48ey07","funderIdentifierType":"ROR"},{"awardUri":"https://reporter.nih.gov/project-details/11123231","schemeUri":"https://ror.org","awardTitle":"\n        Center for Genomic Editing and Recording: Development and Application of\n        Next-Generation Genome and Epigenome Editing Methods to Advance the\n        Study and Treatment of Human Disease\n      ","funderName":"National Human Genome Research Institute","awardNumber":"5RM1HG009490-09","funderIdentifier":"https://ror.org/00baak391","funderIdentifierType":"ROR"},{"awardUri":"https://reporter.nih.gov/project-details/11163450","schemeUri":"https://ror.org","awardTitle":"Core 3. Ocular Mass Spectrometry, Lipidomics, and Proteomics Core (OMSLPC)","funderName":"National Eye Institute","awardNumber":"5P30EY034070-04","funderIdentifier":"https://ror.org/03wkg3b53","funderIdentifierType":"ROR"},{"schemeUri":"https://ror.org","funderName":"Howard Hughes Medical Institute","funderIdentifier":"https://ror.org/006w34k90","funderIdentifierType":"ROR"},{"schemeUri":"https://ror.org","funderName":"Foundation Fighting Blindness","awardNumber":"TA-GT-0423-0847-UCI-TRAP","funderIdentifier":"https://ror.org/011728q79","funderIdentifierType":"ROR"},{"schemeUri":"https://ror.org","funderName":"Rhodes Trust","funderIdentifier":"https://ror.org/04v48nr57","funderIdentifierType":"ROR"},{"schemeUri":"https://ror.org","funderName":"Natural Sciences and Engineering Research Council of Canada","funderIdentifier":"https://ror.org/01h531d29","funderIdentifierType":"ROR"},{"schemeUri":"https://ror.org","funderName":"Research to Prevent Blindness","funderIdentifier":"https://ror.org/04drjs621","funderIdentifierType":"ROR"},{"schemeUri":"https://ror.org","funderName":"University of California, Irvine Medical Center","funderIdentifier":"https://ror.org/00cm8nm15","funderIdentifierType":"ROR"}],"xml":"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHJlc291cmNlIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtNCIgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtNCBodHRwOi8vc2NoZW1hLmRhdGFjaXRlLm9yZy9tZXRhL2tlcm5lbC00L21ldGFkYXRhLnhzZCI+CiAgPGlkZW50aWZpZXIgaWRlbnRpZmllclR5cGU9IkRPSSI+MTAuNTA2MS9EUllBRC5DMkZRWjYxUTY8L2lkZW50aWZpZXI+CiAgPGNyZWF0b3JzPgogICAgPGNyZWF0b3I+CiAgICAgIDxjcmVhdG9yTmFtZSBuYW1lVHlwZT0iUGVyc29uYWwiPkhvbHVib3dpY3osIFJhZmFsPC9jcmVhdG9yTmFtZT4KICAgICAgPG5hbWVJZGVudGlmaWVyIG5hbWVJZGVudGlmaWVyU2NoZW1lPSJPUkNJRCIgc2NoZW1lVVJJPSJodHRwOi8vb3JjaWQub3JnLyI+MDAwMC0wMDAyLTI1NTUtMjA2OTwvbmFtZUlkZW50aWZpZXI+CiAgICAgIDxhZmZpbGlhdGlvbiBhZmZpbGlhdGlvbklkZW50aWZpZXI9Imh0dHBzOi8vcm9yLm9yZy8wNGd5ZjE3NzEiIGFmZmlsaWF0aW9uSWRlbnRpZmllclNjaGVtZT0iUk9SIiBzY2hlbWVVUkk9Imh0dHBzOi8vcm9yLm9yZyI+VW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhLCBJcnZpbmU8L2FmZmlsaWF0aW9uPgogICAgPC9jcmVhdG9yPgogICAgPGNyZWF0b3I+CiAgICAgIDxjcmVhdG9yTmFtZSBuYW1lVHlwZT0iUGVyc29uYWwiPkdhbywgRmFuZ3l1YW48L2NyZWF0b3JOYW1lPgogICAgICA8YWZmaWxpYXRpb24gYWZmaWxpYXRpb25JZGVudGlmaWVyPSJodHRwczovL3Jvci5vcmcvMDRneWYxNzcxIiBhZmZpbGlhdGlvbklkZW50aWZpZXJTY2hlbWU9IlJPUiIgc2NoZW1lVVJJPSJodHRwczovL3Jvci5vcmciPlVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYSwgSXJ2aW5lPC9hZmZpbGlhdGlvbj4KICAgIDwvY3JlYXRvcj4KICAgIDxjcmVhdG9yPgogICAgICA8Y3JlYXRvck5hbWUgbmFtZVR5cGU9IlBlcnNvbmFsIj5EdSwgU2FtdWVsIFcuPC9jcmVhdG9yTmFtZT4KICAgICAgPGFmZmlsaWF0aW9uIGFmZmlsaWF0aW9uSWRlbnRpZmllcj0iaHR0cHM6Ly9yb3Iub3JnLzA0Z3lmMTc3MSIgYWZmaWxpYXRpb25JZGVudGlmaWVyU2NoZW1lPSJST1IiIHNjaGVtZVVSST0iaHR0cHM6Ly9yb3Iub3JnIj5Vbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEsIElydmluZTwvYWZmaWxpYXRpb24+CiAgICA8L2NyZWF0b3I+CiAgICA8Y3JlYXRvcj4KICAgICAgPGNyZWF0b3JOYW1lIG5hbWVUeXBlPSJQZXJzb25hbCI+Um9kcmlndWVzIE1lbmV6ZXMsIENhcm9sbGluZTwvY3JlYXRvck5hbWU+CiAgICAgIDxhZmZpbGlhdGlvbiBhZmZpbGlhdGlvbklkZW50aWZpZXI9Imh0dHBzOi8vcm9yLm9yZy8wNGd5ZjE3NzEiIGFmZmlsaWF0aW9uSWRlbnRpZmllclNjaGVtZT0iUk9SIiBzY2hlbWVVUkk9Imh0dHBzOi8vcm9yLm9yZyI+VW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhLCBJcnZpbmU8L2FmZmlsaWF0aW9uPgogICAgPC9jcmVhdG9yPgogICAgPGNyZWF0b3I+CiAgICAgIDxjcmVhdG9yTmFtZSBuYW1lVHlwZT0iUGVyc29uYWwiPlpoYW5nLCBKaWFueWU8L2NyZWF0b3JOYW1lPgogICAgICA8YWZmaWxpYXRpb24gYWZmaWxpYXRpb25JZGVudGlmaWVyPSJodHRwczovL3Jvci5vcmcvMDRneWYxNzcxIiBhZmZpbGlhdGlvbklkZW50aWZpZXJTY2hlbWU9IlJPUiIgc2NoZW1lVVJJPSJodHRwczovL3Jvci5vcmciPlVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYSwgSXJ2aW5lPC9hZmZpbGlhdGlvbj4KICAgIDwvY3JlYXRvcj4KICAgIDxjcmVhdG9yPgogICAgICA8Y3JlYXRvck5hbWUgbmFtZVR5cGU9IlBlcnNvbmFsIj5Ib2x1Ym93aWN6LCBNYXJpYSBXLjwvY3JlYXRvck5hbWU+CiAgICAgIDxhZmZpbGlhdGlvbiBhZmZpbGlhdGlvbklkZW50aWZpZXI9Imh0dHBzOi8vcm9yLm9yZy8wNGd5ZjE3NzEiIGFmZmlsaWF0aW9uSWRlbnRpZmllclNjaGVtZT0iUk9SIiBzY2hlbWVVUkk9Imh0dHBzOi8vcm9yLm9yZyI+VW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhLCBJcnZpbmU8L2FmZmlsaWF0aW9uPgogICAgPC9jcmVhdG9yPgogICAgPGNyZWF0b3I+CiAgICAgIDxjcmVhdG9yTmFtZSBuYW1lVHlwZT0iUGVyc29uYWwiPkNoZW4sIFBhdWwgWi48L2NyZWF0b3JOYW1lPgogICAgICA8YWZmaWxpYXRpb24gYWZmaWxpYXRpb25JZGVudGlmaWVyPSJodHRwczovL3Jvci5vcmcvMDVhMHlhMTQyIiBhZmZpbGlhdGlvbklkZW50aWZpZXJTY2hlbWU9IlJPUiIgc2NoZW1lVVJJPSJodHRwczovL3Jvci5vcmciPkJyb2FkIEluc3RpdHV0ZTwvYWZmaWxpYXRpb24+CiAgICA8L2NyZWF0b3I+CiAgICA8Y3JlYXRvcj4KICAgICAgPGNyZWF0b3JOYW1lIG5hbWVUeXBlPSJQZXJzb25hbCI+QXJtYnJ1c3QsIE5pa2xhczwvY3JlYXRvck5hbWU+CiAgICAgIDxhZmZpbGlhdGlvbj5IZWxtaG9sdHogTXVuaWNoPC9hZmZpbGlhdGlvbj4KICAgIDwvY3JlYXRvcj4KICAgIDxjcmVhdG9yPgogICAgICA8Y3JlYXRvck5hbWUgbmFtZVR5cGU9IlBlcnNvbmFsIj5HZWlsZW5rZXVzZXIsIEp1bGlhbjwvY3JlYXRvck5hbWU+CiAgICAgIDxhZmZpbGlhdGlvbj5IZWxtaG9sdHogTXVuaWNoPC9hZmZpbGlhdGlvbj4KICAgIDwvY3JlYXRvcj4KICAgIDxjcmVhdG9yPgogICAgICA8Y3JlYXRvck5hbWUgbmFtZVR5cGU9IlBlcnNvbmFsIj5MaXUsIERhdmlkIFIuPC9jcmVhdG9yTmFtZT4KICAgICAgPGFmZmlsaWF0aW9uIGFmZmlsaWF0aW9uSWRlbnRpZmllcj0iaHR0cHM6Ly9yb3Iub3JnLzA1YTB5YTE0MiIgYWZmaWxpYXRpb25JZGVudGlmaWVyU2NoZW1lPSJST1IiIHNjaGVtZVVSST0iaHR0cHM6Ly9yb3Iub3JnIj5Ccm9hZCBJbnN0aXR1dGU8L2FmZmlsaWF0aW9uPgogICAgPC9jcmVhdG9yPgogICAgPGNyZWF0b3I+CiAgICAgIDxjcmVhdG9yTmFtZSBuYW1lVHlwZT0iUGVyc29uYWwiPlRydW9uZywgRG9uZy1KaXVubiBKZWZmZXJ5PC9jcmVhdG9yTmFtZT4KICAgICAgPGFmZmlsaWF0aW9uPkhlbG1ob2x0eiBNdW5pY2g8L2FmZmlsaWF0aW9uPgogICAgPC9jcmVhdG9yPgogICAgPGNyZWF0b3I+CiAgICAgIDxjcmVhdG9yTmFtZSBuYW1lVHlwZT0iUGVyc29uYWwiPldlc3RtZXllciwgR2lsIEdyZWdvcjwvY3JlYXRvck5hbWU+CiAgICAgIDxhZmZpbGlhdGlvbj5IZWxtaG9sdHogTXVuaWNoPC9hZmZpbGlhdGlvbj4KICAgIDwvY3JlYXRvcj4KICAgIDxjcmVhdG9yPgogICAgICA8Y3JlYXRvck5hbWUgbmFtZVR5cGU9IlBlcnNvbmFsIj5QYWxjemV3c2thLCBHcmF6eW5hPC9jcmVhdG9yTmFtZT4KICAgICAgPGFmZmlsaWF0aW9uIGFmZmlsaWF0aW9uSWRlbnRpZmllcj0iaHR0cHM6Ly9yb3Iub3JnLzA0Z3lmMTc3MSIgYWZmaWxpYXRpb25JZGVudGlmaWVyU2NoZW1lPSJST1IiIHNjaGVtZVVSST0iaHR0cHM6Ly9yb3Iub3JnIj5Vbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEsIElydmluZTwvYWZmaWxpYXRpb24+CiAgICA8L2NyZWF0b3I+CiAgICA8Y3JlYXRvcj4KICAgICAgPGNyZWF0b3JOYW1lIG5hbWVUeXBlPSJQZXJzb25hbCI+UGFsY3pld3NraSwgS3J6eXN6dG9mPC9jcmVhdG9yTmFtZT4KICAgICAgPGFmZmlsaWF0aW9uIGFmZmlsaWF0aW9uSWRlbnRpZmllcj0iaHR0cHM6Ly9yb3Iub3JnLzA0Z3lmMTc3MSIgYWZmaWxpYXRpb25JZGVudGlmaWVyU2NoZW1lPSJST1IiIHNjaGVtZVVSST0iaHR0cHM6Ly9yb3Iub3JnIj5Vbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEsIElydmluZTwvYWZmaWxpYXRpb24+CiAgICA8L2NyZWF0b3I+CiAgPC9jcmVhdG9ycz4KICA8dGl0bGVzPgogICAgPHRpdGxlPgogICAgICBTY2FsYWJsZSBwdXJpZmljYXRpb24gZW5hYmxlcyBoaWdoLXF1YWxpdHkgdmlydXMtbGlrZSBwYXJ0aWNsZXMgZm9yCiAgICAgIHRoZXJhcGV1dGljIHRyYW5zbGF0aW9uCiAgICA8L3RpdGxlPgogIDwvdGl0bGVzPgogIDxwdWJsaXNoZXIgcHVibGlzaGVySWRlbnRpZmllcj0iaHR0cHM6Ly9yb3Iub3JnLzAweDZoNW45NSIgcHVibGlzaGVySWRlbnRpZmllclNjaGVtZT0iUk9SIiBzY2hlbWVVUkk9Imh0dHBzOi8vcm9yLm9yZy8iPkRyeWFkPC9wdWJsaXNoZXI+CiAgPHJlc291cmNlVHlwZSByZXNvdXJjZVR5cGVHZW5lcmFsPSJEYXRhc2V0Ij5kYXRhc2V0PC9yZXNvdXJjZVR5cGU+CiAgPHB1YmxpY2F0aW9uWWVhcj4yMDI2PC9wdWJsaWNhdGlvblllYXI+CiAgPHN1YmplY3RzPgogICAgPHN1YmplY3Qgc3ViamVjdFNjaGVtZT0iZm9zIiBzY2hlbWVVUkk9Imh0dHBzOi8vd2ViLWFyY2hpdmUub2VjZC5vcmcvMjAxMi0wNi0xNS8xMzg1NzUtMzgyMzUxNDcucGRmIj5GT1M6IE1lZGljYWwgYmlvdGVjaG5vbG9neTwvc3ViamVjdD4KICAgIDxzdWJqZWN0IHN1YmplY3RTY2hlbWU9ImZvcyIgc2NoZW1lVVJJPSJodHRwczovL3dlYi1hcmNoaXZlLm9lY2Qub3JnLzIwMTItMDYtMTUvMTM4NTc1LTM4MjM1MTQ3LnBkZiI+Rk9TOiBCaW9sb2dpY2FsIHNjaWVuY2VzPC9zdWJqZWN0PgogICAgPHN1YmplY3Qgc3ViamVjdFNjaGVtZT0iZm9zIiBzY2hlbWVVUkk9Imh0dHBzOi8vd2ViLWFyY2hpdmUub2VjZC5vcmcvMjAxMi0wNi0xNS8xMzg1NzUtMzgyMzUxNDcucGRmIj5GT1M6IENoZW1pY2FsIHNjaWVuY2VzPC9zdWJqZWN0PgogICAgPHN1YmplY3Qgc3ViamVjdFNjaGVtZT0iZm9zIiBzY2hlbWVVUkk9Imh0dHBzOi8vd2ViLWFyY2hpdmUub2VjZC5vcmcvMjAxMi0wNi0xNS8xMzg1NzUtMzgyMzUxNDcucGRmIj5GT1M6IEVuZ2luZWVyaW5nIGFuZCB0ZWNobm9sb2d5PC9zdWJqZWN0PgogICAgPHN1YmplY3Qgc3ViamVjdFNjaGVtZT0iZm9zIiBzY2hlbWVVUkk9Imh0dHBzOi8vd2ViLWFyY2hpdmUub2VjZC5vcmcvMjAxMi0wNi0xNS8xMzg1NzUtMzgyMzUxNDcucGRmIj5GT1M6IEhlYWx0aCBzY2llbmNlczwvc3ViamVjdD4KICAgIDxzdWJqZWN0IHN1YmplY3RTY2hlbWU9ImZvcyIgc2NoZW1lVVJJPSJodHRwczovL3dlYi1hcmNoaXZlLm9lY2Qub3JnLzIwMTItMDYtMTUvMTM4NTc1LTM4MjM1MTQ3LnBkZiI+Rk9TOiBJbmR1c3RyaWFsIGJpb3RlY2hub2xvZ3k8L3N1YmplY3Q+CiAgICA8c3ViamVjdCBzdWJqZWN0U2NoZW1lPSJmb3MiIHNjaGVtZVVSST0iaHR0cHM6Ly93ZWItYXJjaGl2ZS5vZWNkLm9yZy8yMDEyLTA2LTE1LzEzODU3NS0zODIzNTE0Ny5wZGYiPkZPUzogTWVkaWNhbCBhbmQgaGVhbHRoIHNjaWVuY2VzPC9zdWJqZWN0PgogICAgPHN1YmplY3Qgc3ViamVjdFNjaGVtZT0iZm9zIiBzY2hlbWVVUkk9Imh0dHBzOi8vd2ViLWFyY2hpdmUub2VjZC5vcmcvMjAxMi0wNi0xNS8xMzg1NzUtMzgyMzUxNDcucGRmIj5GT1M6IE5hbm8tdGVjaG5vbG9neTwvc3ViamVjdD4KICAgIDxzdWJqZWN0IHN1YmplY3RTY2hlbWU9IlBMT1MgU3ViamVjdCBBcmVhIFRoZXNhdXJ1cyIgc2NoZW1lVVJJPSJodHRwczovL2dpdGh1Yi5jb20vUExPUy9wbG9zLXRoZXNhdXJ1cyI+TGlxdWlkIGNocm9tYXRvZ3JhcGh5PC9zdWJqZWN0PgogICAgPHN1YmplY3Qgc3ViamVjdFNjaGVtZT0iUExPUyBTdWJqZWN0IEFyZWEgVGhlc2F1cnVzIiBzY2hlbWVVUkk9Imh0dHBzOi8vZ2l0aHViLmNvbS9QTE9TL3Bsb3MtdGhlc2F1cnVzIj5DUklTUFI8L3N1YmplY3Q+CiAgICA8c3ViamVjdCBzdWJqZWN0U2NoZW1lPSJQTE9TIFN1YmplY3QgQXJlYSBUaGVzYXVydXMiIHNjaGVtZVVSST0iaHR0cHM6Ly9naXRodWIuY29tL1BMT1MvcGxvcy10aGVzYXVydXMiPk5hbm90ZWNobm9sb2d5PC9zdWJqZWN0PgogICAgPHN1YmplY3Qgc3ViamVjdFNjaGVtZT0iUExPUyBTdWJqZWN0IEFyZWEgVGhlc2F1cnVzIiBzY2hlbWVVUkk9Imh0dHBzOi8vZ2l0aHViLmNvbS9QTE9TL3Bsb3MtdGhlc2F1cnVzIj5SaWJvbnVjbGVvcHJvdGVpbnM8L3N1YmplY3Q+CiAgICA8c3ViamVjdCBzdWJqZWN0U2NoZW1lPSJQTE9TIFN1YmplY3QgQXJlYSBUaGVzYXVydXMiIHNjaGVtZVVSST0iaHR0cHM6Ly9naXRodWIuY29tL1BMT1MvcGxvcy10aGVzYXVydXMiPlZlc2ljbGVzPC9zdWJqZWN0PgogICAgPHN1YmplY3Q+cHJpbWUgZWRpdG9yPC9zdWJqZWN0PgogICAgPHN1YmplY3Q+YmFzZSBlZGl0b3I8L3N1YmplY3Q+CiAgICA8c3ViamVjdD52aXJ1cy1saWtlIHBhcnRpY2xlczwvc3ViamVjdD4KICAgIDxzdWJqZWN0PnByb3RlaW4gZGVsaXZlcnk8L3N1YmplY3Q+CiAgPC9zdWJqZWN0cz4KICA8ZnVuZGluZ1JlZmVyZW5jZXM+CiAgICA8ZnVuZGluZ1JlZmVyZW5jZT4KICAgICAgPGZ1bmRlck5hbWU+S25pZ2h0cyBUZW1wbGFyIEV5ZSBGb3VuZGF0aW9uPC9mdW5kZXJOYW1lPgogICAgICA8ZnVuZGVySWRlbnRpZmllciBmdW5kZXJJZGVudGlmaWVyVHlwZT0iUk9SIj5odHRwczovL3Jvci5vcmcvMDNtcTVwZzY1PC9mdW5kZXJJZGVudGlmaWVyPgogICAgICA8YXdhcmRUaXRsZS8+CiAgICA8L2Z1bmRpbmdSZWZlcmVuY2U+CiAgICA8ZnVuZGluZ1JlZmVyZW5jZT4KICAgICAgPGZ1bmRlck5hbWU+TmF0aW9uYWwgRXllIEluc3RpdHV0ZTwvZnVuZGVyTmFtZT4KICAgICAgPGZ1bmRlcklkZW50aWZpZXIgZnVuZGVySWRlbnRpZmllclR5cGU9IlJPUiI+aHR0cHM6Ly9yb3Iub3JnLzAzd2tnM2I1MzwvZnVuZGVySWRlbnRpZmllcj4KICAgICAgPGF3YXJkTnVtYmVyIGF3YXJkVVJJPSJodHRwczovL3JlcG9ydGVyLm5paC5nb3YvcHJvamVjdC1kZXRhaWxzLzExMDM3NjE3Ij4xUjAxRVkwMzY5OTQtMDE8L2F3YXJkTnVtYmVyPgogICAgICA8YXdhcmRUaXRsZT5FZGl0aW5nIEFNRCBSaXNrIEFsbGVsZXMgaW4gSHVtYW4gQ2VsbHM8L2F3YXJkVGl0bGU+CiAgICA8L2Z1bmRpbmdSZWZlcmVuY2U+CiAgICA8ZnVuZGluZ1JlZmVyZW5jZT4KICAgICAgPGZ1bmRlck5hbWU+TmF0aW9uYWwgRXllIEluc3RpdHV0ZTwvZnVuZGVyTmFtZT4KICAgICAgPGZ1bmRlcklkZW50aWZpZXIgZnVuZGVySWRlbnRpZmllclR5cGU9IlJPUiI+aHR0cHM6Ly9yb3Iub3JnLzAzd2tnM2I1MzwvZnVuZGVySWRlbnRpZmllcj4KICAgICAgPGF3YXJkTnVtYmVyIGF3YXJkVVJJPSJodHRwczovL3JlcG9ydGVyLm5paC5nb3YvcHJvamVjdC1kZXRhaWxzLzExMDQ3NzE2Ij41UjAxRVkwMzQ1MDEtMDM8L2F3YXJkTnVtYmVyPgogICAgICA8YXdhcmRUaXRsZT5QcmVjaXNpb24gZ2Vub21lIGVkaXRpbmcgaW4gdml2byB0byB0cmVhdCByZXRpbmFsIGRpc2Vhc2VzPC9hd2FyZFRpdGxlPgogICAgPC9mdW5kaW5nUmVmZXJlbmNlPgogICAgPGZ1bmRpbmdSZWZlcmVuY2U+CiAgICAgIDxmdW5kZXJOYW1lPk5hdGlvbmFsIEluc3RpdHV0ZSBvZiBHZW5lcmFsIE1lZGljYWwgU2NpZW5jZXM8L2Z1bmRlck5hbWU+CiAgICAgIDxmdW5kZXJJZGVudGlmaWVyIGZ1bmRlcklkZW50aWZpZXJUeXBlPSJST1IiPmh0dHBzOi8vcm9yLm9yZy8wNHE0OGV5MDc8L2Z1bmRlcklkZW50aWZpZXI+CiAgICAgIDxhd2FyZE51bWJlciBhd2FyZFVSST0iaHR0cHM6Ly9yZXBvcnRlci5uaWguZ292L3Byb2plY3QtZGV0YWlscy8xMDYzMTkyNCI+NVQzMkdNMDA4NjIwLTI1PC9hd2FyZE51bWJlcj4KICAgICAgPGF3YXJkVGl0bGU+TWVkaWNhbCBTY2llbnRpc3QgVHJhaW5pbmcgUHJvZ3JhbTwvYXdhcmRUaXRsZT4KICAgIDwvZnVuZGluZ1JlZmVyZW5jZT4KICAgIDxmdW5kaW5nUmVmZXJlbmNlPgogICAgICA8ZnVuZGVyTmFtZT5OYXRpb25hbCBFeWUgSW5zdGl0dXRlPC9mdW5kZXJOYW1lPgogICAgICA8ZnVuZGVySWRlbnRpZmllciBmdW5kZXJJZGVudGlmaWVyVHlwZT0iUk9SIj5odHRwczovL3Jvci5vcmcvMDN3a2czYjUzPC9mdW5kZXJJZGVudGlmaWVyPgogICAgICA8YXdhcmROdW1iZXIgYXdhcmRVUkk9Imh0dHBzOi8vcmVwb3J0ZXIubmloLmdvdi9wcm9qZWN0LWRldGFpbHMvMTEwMDAyOTYiPjVGMzBFWTAzMzY0Mi0wNDwvYXdhcmROdW1iZXI+CiAgICAgIDxhd2FyZFRpdGxlPm1pY3JvUk5BLTIwNCBhbmQgbWljcm9STkEtMjExIHJlZ3VsYXRpb24gb2YgUlBFIHBoYWdvY3l0b3NpczwvYXdhcmRUaXRsZT4KICAgIDwvZnVuZGluZ1JlZmVyZW5jZT4KICAgIDxmdW5kaW5nUmVmZXJlbmNlPgogICAgICA8ZnVuZGVyTmFtZT5OYXRpb25hbCBJbnN0aXR1dGUgb2YgQWxsZXJneSBhbmQgSW5mZWN0aW91cyBEaXNlYXNlczwvZnVuZGVyTmFtZT4KICAgICAgPGZ1bmRlcklkZW50aWZpZXIgZnVuZGVySWRlbnRpZmllclR5cGU9IlJPUiI+aHR0cHM6Ly9yb3Iub3JnLzA0M3o0dHY2OTwvZnVuZGVySWRlbnRpZmllcj4KICAgICAgPGF3YXJkTnVtYmVyIGF3YXJkVVJJPSJodHRwczovL3JlcG9ydGVyLm5paC5nb3YvcHJvamVjdC1kZXRhaWxzLzEwMjIyNTIyIj41VUczQUkxNTA1NTEtMDM8L2F3YXJkTnVtYmVyPgogICAgICA8YXdhcmRUaXRsZT5EZWxpdmVyeSBUZWNobm9sb2dpZXMgZm9yIEluIFZpdm8gR2Vub21lIEVkaXRpbmc8L2F3YXJkVGl0bGU+CiAgICA8L2Z1bmRpbmdSZWZlcmVuY2U+CiAgICA8ZnVuZGluZ1JlZmVyZW5jZT4KICAgICAgPGZ1bmRlck5hbWU+TmF0aW9uYWwgSW5zdGl0dXRlIG9mIEFsbGVyZ3kgYW5kIEluZmVjdGlvdXMgRGlzZWFzZXM8L2Z1bmRlck5hbWU+CiAgICAgIDxmdW5kZXJJZGVudGlmaWVyIGZ1bmRlcklkZW50aWZpZXJUeXBlPSJST1IiPmh0dHBzOi8vcm9yLm9yZy8wNDN6NHR2Njk8L2Z1bmRlcklkZW50aWZpZXI+CiAgICAgIDxhd2FyZE51bWJlciBhd2FyZFVSST0iaHR0cHM6Ly9yZXBvcnRlci5uaWguZ292L3Byb2plY3QtZGV0YWlscy8xMDQ1OTM4MCI+NVUwMUFJMTQyNzU2LTA1PC9hd2FyZE51bWJlcj4KICAgICAgPGF3YXJkVGl0bGU+RXhwYW5kaW5nIHRoZSBTY29wZSBvZiBCYXNlIEVkaXRpbmc8L2F3YXJkVGl0bGU+CiAgICA8L2Z1bmRpbmdSZWZlcmVuY2U+CiAgICA8ZnVuZGluZ1JlZmVyZW5jZT4KICAgICAgPGZ1bmRlck5hbWU+TmF0aW9uYWwgSW5zdGl0dXRlIG9mIEdlbmVyYWwgTWVkaWNhbCBTY2llbmNlczwvZnVuZGVyTmFtZT4KICAgICAgPGZ1bmRlcklkZW50aWZpZXIgZnVuZGVySWRlbnRpZmllclR5cGU9IlJPUiI+aHR0cHM6Ly9yb3Iub3JnLzA0cTQ4ZXkwNzwvZnVuZGVySWRlbnRpZmllcj4KICAgICAgPGF3YXJkTnVtYmVyIGF3YXJkVVJJPSJodHRwczovL3JlcG9ydGVyLm5paC5nb3YvcHJvamVjdC1kZXRhaWxzLzExMDcwMzQxIj41UjM1R00xMTgwNjItMTE8L2F3YXJkTnVtYmVyPgogICAgICA8YXdhcmRUaXRsZT4KICAgICAgICBJbnRlZ3JhdGluZyBDaGVtaXN0cnkgYW5kIEV2b2x1dGlvbiB0byBJbGx1bWluYXRlIEJpb2xvZ3kgYW5kIEVuYWJsZQogICAgICAgIE5vdmVsIFRoZXJhcGV1dGljcwogICAgICA8L2F3YXJkVGl0bGU+CiAgICA8L2Z1bmRpbmdSZWZlcmVuY2U+CiAgICA8ZnVuZGluZ1JlZmVyZW5jZT4KICAgICAgPGZ1bmRlck5hbWU+TmF0aW9uYWwgSHVtYW4gR2Vub21lIFJlc2VhcmNoIEluc3RpdHV0ZTwvZnVuZGVyTmFtZT4KICAgICAgPGZ1bmRlcklkZW50aWZpZXIgZnVuZGVySWRlbnRpZmllclR5cGU9IlJPUiI+aHR0cHM6Ly9yb3Iub3JnLzAwYmFhazM5MTwvZnVuZGVySWRlbnRpZmllcj4KICAgICAgPGF3YXJkTnVtYmVyIGF3YXJkVVJJPSJodHRwczovL3JlcG9ydGVyLm5paC5nb3YvcHJvamVjdC1kZXRhaWxzLzExMTIzMjMxIj41Uk0xSEcwMDk0OTAtMDk8L2F3YXJkTnVtYmVyPgogICAgICA8YXdhcmRUaXRsZT4KICAgICAgICBDZW50ZXIgZm9yIEdlbm9taWMgRWRpdGluZyBhbmQgUmVjb3JkaW5nOiBEZXZlbG9wbWVudCBhbmQgQXBwbGljYXRpb24gb2YKICAgICAgICBOZXh0LUdlbmVyYXRpb24gR2Vub21lIGFuZCBFcGlnZW5vbWUgRWRpdGluZyBNZXRob2RzIHRvIEFkdmFuY2UgdGhlCiAgICAgICAgU3R1ZHkgYW5kIFRyZWF0bWVudCBvZiBIdW1hbiBEaXNlYXNlCiAgICAgIDwvYXdhcmRUaXRsZT4KICAgIDwvZnVuZGluZ1JlZmVyZW5jZT4KICAgIDxmdW5kaW5nUmVmZXJlbmNlPgogICAgICA8ZnVuZGVyTmFtZT5OYXRpb25hbCBFeWUgSW5zdGl0dXRlPC9mdW5kZXJOYW1lPgogICAgICA8ZnVuZGVySWRlbnRpZmllciBmdW5kZXJJZGVudGlmaWVyVHlwZT0iUk9SIj5odHRwczovL3Jvci5vcmcvMDN3a2czYjUzPC9mdW5kZXJJZGVudGlmaWVyPgogICAgICA8YXdhcmROdW1iZXIgYXdhcmRVUkk9Imh0dHBzOi8vcmVwb3J0ZXIubmloLmdvdi9wcm9qZWN0LWRldGFpbHMvMTExNjM0NTAiPjVQMzBFWTAzNDA3MC0wNDwvYXdhcmROdW1iZXI+CiAgICAgIDxhd2FyZFRpdGxlPkNvcmUgMy4gT2N1bGFyIE1hc3MgU3BlY3Ryb21ldHJ5LCBMaXBpZG9taWNzLCBhbmQgUHJvdGVvbWljcyBDb3JlIChPTVNMUEMpPC9hd2FyZFRpdGxlPgogICAgPC9mdW5kaW5nUmVmZXJlbmNlPgogICAgPGZ1bmRpbmdSZWZlcmVuY2U+CiAgICAgIDxmdW5kZXJOYW1lPkhvd2FyZCBIdWdoZXMgTWVkaWNhbCBJbnN0aXR1dGU8L2Z1bmRlck5hbWU+CiAgICAgIDxmdW5kZXJJZGVudGlmaWVyIGZ1bmRlcklkZW50aWZpZXJUeXBlPSJST1IiPmh0dHBzOi8vcm9yLm9yZy8wMDZ3MzRrOTA8L2Z1bmRlcklkZW50aWZpZXI+CiAgICAgIDxhd2FyZFRpdGxlLz4KICAgIDwvZnVuZGluZ1JlZmVyZW5jZT4KICAgIDxmdW5kaW5nUmVmZXJlbmNlPgogICAgICA8ZnVuZGVyTmFtZT5Gb3VuZGF0aW9uIEZpZ2h0aW5nIEJsaW5kbmVzczwvZnVuZGVyTmFtZT4KICAgICAgPGZ1bmRlcklkZW50aWZpZXIgZnVuZGVySWRlbnRpZmllclR5cGU9IlJPUiI+aHR0cHM6Ly9yb3Iub3JnLzAxMTcyOHE3OTwvZnVuZGVySWRlbnRpZmllcj4KICAgICAgPGF3YXJkTnVtYmVyPlRBLUdULTA0MjMtMDg0Ny1VQ0ktVFJBUDwvYXdhcmROdW1iZXI+CiAgICAgIDxhd2FyZFRpdGxlLz4KICAgIDwvZnVuZGluZ1JlZmVyZW5jZT4KICAgIDxmdW5kaW5nUmVmZXJlbmNlPgogICAgICA8ZnVuZGVyTmFtZT5SaG9kZXMgVHJ1c3Q8L2Z1bmRlck5hbWU+CiAgICAgIDxmdW5kZXJJZGVudGlmaWVyIGZ1bmRlcklkZW50aWZpZXJUeXBlPSJST1IiPmh0dHBzOi8vcm9yLm9yZy8wNHY0OG5yNTc8L2Z1bmRlcklkZW50aWZpZXI+CiAgICAgIDxhd2FyZFRpdGxlLz4KICAgIDwvZnVuZGluZ1JlZmVyZW5jZT4KICAgIDxmdW5kaW5nUmVmZXJlbmNlPgogICAgICA8ZnVuZGVyTmFtZT5OYXR1cmFsIFNjaWVuY2VzIGFuZCBFbmdpbmVlcmluZyBSZXNlYXJjaCBDb3VuY2lsIG9mIENhbmFkYTwvZnVuZGVyTmFtZT4KICAgICAgPGZ1bmRlcklkZW50aWZpZXIgZnVuZGVySWRlbnRpZmllclR5cGU9IlJPUiI+aHR0cHM6Ly9yb3Iub3JnLzAxaDUzMWQyOTwvZnVuZGVySWRlbnRpZmllcj4KICAgICAgPGF3YXJkVGl0bGUvPgogICAgPC9mdW5kaW5nUmVmZXJlbmNlPgogICAgPGZ1bmRpbmdSZWZlcmVuY2U+CiAgICAgIDxmdW5kZXJOYW1lPlJlc2VhcmNoIHRvIFByZXZlbnQgQmxpbmRuZXNzPC9mdW5kZXJOYW1lPgogICAgICA8ZnVuZGVySWRlbnRpZmllciBmdW5kZXJJZGVudGlmaWVyVHlwZT0iUk9SIj5odHRwczovL3Jvci5vcmcvMDRkcmpzNjIxPC9mdW5kZXJJZGVudGlmaWVyPgogICAgICA8YXdhcmRUaXRsZS8+CiAgICA8L2Z1bmRpbmdSZWZlcmVuY2U+CiAgICA8ZnVuZGluZ1JlZmVyZW5jZT4KICAgICAgPGZ1bmRlck5hbWU+VW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhLCBJcnZpbmUgTWVkaWNhbCBDZW50ZXI8L2Z1bmRlck5hbWU+CiAgICAgIDxmdW5kZXJJZGVudGlmaWVyIGZ1bmRlcklkZW50aWZpZXJUeXBlPSJST1IiPmh0dHBzOi8vcm9yLm9yZy8wMGNtOG5tMTU8L2Z1bmRlcklkZW50aWZpZXI+CiAgICAgIDxhd2FyZFRpdGxlLz4KICAgIDwvZnVuZGluZ1JlZmVyZW5jZT4KICA8L2Z1bmRpbmdSZWZlcmVuY2VzPgogIDxkYXRlcz4KICAgIDxkYXRlIGRhdGVUeXBlPSJDcmVhdGVkIj4yMDI1LTEwLTI4VDE5OjI5OjM3WjwvZGF0ZT4KICAgIDxkYXRlIGRhdGVUeXBlPSJTdWJtaXR0ZWQiPjIwMjUtMTEtMDVUMTg6NDY6MDdaPC9kYXRlPgogICAgPGRhdGUgZGF0ZVR5cGU9Iklzc3VlZCI+MjAyNi0wMi0wOVQwMDowMDowMFo8L2RhdGU+CiAgICA8ZGF0ZSBkYXRlVHlwZT0iQXZhaWxhYmxlIj4yMDI2LTAyLTA5VDAwOjAwOjAwWjwvZGF0ZT4KICA8L2RhdGVzPgogIDxsYW5ndWFnZT5lbjwvbGFuZ3VhZ2U+CiAgPHJlbGF0ZWRJZGVudGlmaWVycz4KICAgIDxyZWxhdGVkSWRlbnRpZmllciByZWxhdGlvblR5cGU9IklzQ2l0ZWRCeSIgcmVsYXRlZElkZW50aWZpZXJUeXBlPSJET0kiPmh0dHBzOi8vZG9pLm9yZy8xMC4xMDE2L2ouamJjLjIwMjUuMTEwOTQ2PC9yZWxhdGVkSWRlbnRpZmllcj4KICA8L3JlbGF0ZWRJZGVudGlmaWVycz4KICA8c2l6ZXM+CiAgICA8c2l6ZT44MDg4MjE4OTYgYnl0ZXM8L3NpemU+CiAgPC9zaXplcz4KICA8dmVyc2lvbj42PC92ZXJzaW9uPgogIDxyaWdodHNMaXN0PgogICAgPHJpZ2h0cyByaWdodHNVUkk9Imh0dHBzOi8vc3BkeC5vcmcvbGljZW5zZXMvQ0MwLTEuMC5odG1sIj5DcmVhdGl2ZSBDb21tb25zIFplcm8gdjEuMCBVbml2ZXJzYWw8L3JpZ2h0cz4KICA8L3JpZ2h0c0xpc3Q+CiAgPGRlc2NyaXB0aW9ucz4KICAgIDxkZXNjcmlwdGlvbiBkZXNjcmlwdGlvblR5cGU9IkFic3RyYWN0Ij4KICAgICAgRW1lcmdpbmcgbW9sZWN1bGFyIHRoZXJhcGllcyBpbnRyb2R1Y2UgZW56eW1hdGljIGFjdGl2aXR5IGludG8gY2VsbHMgYnkKICAgICAgZGVsaXZlcmluZyBnZW5lcywgdHJhbnNjcmlwdHMsIG9yIHByb3RlaW5zLiBPd2luZyB0byB0aGVpciByb2J1c3QKICAgICAgY2VsbC1lbnRyeSBjYXBhY2l0eSwgdmlydXMtbGlrZSBwYXJ0aWNsZXMgKFZMUHMpIHJlcHJlc2VudCBhIHRlY2hub2xvZ3kgb2YKICAgICAgY2hvaWNlIGluIGdlbm9tZSBlZGl0aW5nLCB3aGVyZSBsb3cgZG9zZXMgb2YgaGV0ZXJvbG9nb3VzIHByb3RlaW5zIGFuZAogICAgICBudWNsZWljIGFjaWRzIGFyZSBlc3NlbnRpYWwuIEhvd2V2ZXIsIGNsaW5pY2FsIHRyYW5zbGF0aW9uIG9mIFZMUCB2ZWN0b3JzCiAgICAgIGlzIGhpbmRlcmVkIGJ5IGluYWRlcXVhdGUgcHVyaWZpY2F0aW9uIG1ldGhvZHMuIEN1cnJlbnQgYXBwcm9hY2hlcywKICAgICAgcmVseWluZyBwcmltYXJpbHkgb24gdWx0cmFjZW50cmlmdWdhdGlvbiwgc3VmZmVyIGZyb20gaW5jb25zaXN0ZW50IHByb2R1Y3QKICAgICAgcXVhbGl0eSBhbmQgcG9vciBzY2FsYWJpbGl0eS4gSGVyZSwgd2UgcmVwb3J0IHRoZSBkZXZlbG9wbWVudCBvZiBhIGJyb2FkbHkKICAgICAgYXBwbGljYWJsZSBwdXJpZmljYXRpb24gc3RyYXRlZ3kgdGhhdCBpbXByb3ZlcyB0aGUgcHVyaXR5IGFuZCB0aGVyYXBldXRpYwogICAgICBlZmZpY2FjeSBvZiBnZW5vbWUtZWRpdGluZyBWTFBzLiBDb25zaWRlcmluZyB0aGUgY2hhcmFjdGVyaXN0aWMgcHJvcGVydGllcwogICAgICBvZiBtdXJpbmUgbGV1a2VtaWEgdmlydXMgKE1MViktZGVyaXZlZCBlbmdpbmVlcmVkIFZMUHMgKGVWTFBzKSBhbmQKICAgICAgSElWLWRlcml2ZWQgZW5naW5lZXJlZCBudWNsZW9jeXRvc29saWMgdmVoaWNsZXMgZm9yIGxvYWRpbmcgb2YKICAgICAgcHJvZ3JhbW1hYmxlIGVkaXRvcnMgKEVOVkxQRXMrKSwgd2UgZGV2ZWxvcGVkIGEgd29ya2Zsb3cgdGhhdCBpbnZvbHZlcwogICAgICBzaW5nbGUtIGFuZCBtdWx0aS1tb2RhbCBjaHJvbWF0b2dyYXBoaWMgc3RlcHMsIGVmZmVjdGl2ZWx5IHJlbW92aW5nIGhvc3QKICAgICAgY2VsbCBwcm90ZWlucyBhbmQgY2VsbC1jdWx0dXJlIGNvbnRhbWluYW50cyB3aGlsZSBpbXByb3ZpbmcgVkxQIGludGVncml0eQogICAgICBhbmQgYmlvbG9naWNhbCBhY3Rpdml0eS4gT3VyIHB1cmlmaWVkIFZMUHMgZGlzcGxheWVkIHN1cGVyaW9yIHByb3RlaW4KICAgICAgY29tcG9zaXRpb24sIGNvbnNpc3RlbmN5LCBhbmQgZW5oYW5jZWQgZnVuY3Rpb25hbCBkZWxpdmVyeSBjb21wYXJlZCB0bwogICAgICBWTFBzIHBhcnRpYWxseSBwdXJpZmllZCBieSBjb252ZW50aW9uYWwgdWx0cmFjZW50cmlmdWdhdGlvbiBtZXRob2RzLiBNYXNzCiAgICAgIHNwZWN0cm9tZXRyaWMgYW5hbHlzaXMgcmV2ZWFsZWQgYSBzdWJzdGFudGlhbCBkZWNyZWFzZSBpbiBjb250YW1pbmFudHMsCiAgICAgIHdpdGggVkxQLXNwZWNpZmljIHByb3RlaW5zIGNvbXByaXNpbmcgJmFtcDtndDs5MCUgb2YgdGhlIGZpbmFsIHByb2R1Y3QuIEluCiAgICAgIHZpdm8gc3R1ZGllcyBjb25maXJtZWQgaW1wcm92ZWQgdGhlcmFwZXV0aWMgb3V0Y29tZXMgd2hlbgogICAgICBjaHJvbWF0b2dyYXBoaWNhbGx5IHB1cmlmaWVkIFZMUHMgd2VyZSB1c2VkLiBPdXIgc2NhbGFibGUgcHVyaWZpY2F0aW9uCiAgICAgIHBsYXRmb3JtIGFkZHJlc3NlcyBjcml0aWNhbCBtYW51ZmFjdHVyaW5nIGJvdHRsZW5lY2tzIGFuZCBjb25zdGl0dXRlcyBhCiAgICAgIHN0YXJ0aW5nIHBvaW50IGZvciBmdXJ0aGVyIGRldmVsb3BtZW50IG9mIFZMUCB0aGVyYXBldXRpY3MsIGVuYWJsaW5nCiAgICAgIHJvYnVzdCBwcm9kdWN0aW9uIG9mIHB1cmUgVkxQcyBmb3IgZGl2ZXJzZSBhcHBsaWNhdGlvbnMgc3VjaCBhcyBnZW5vbWUKICAgICAgZWRpdGluZywgdmFjY2luZSBkZXZlbG9wbWVudCwgYW5kIG90aGVyIHVzZXMgdGhhdCByZXF1aXJlIGludHJhY2VsbHVsYXIKICAgICAgcHJvdGVpbiBkZWxpdmVyeS4KICAgIDwvZGVzY3JpcHRpb24+CiAgICA8ZGVzY3JpcHRpb24gZGVzY3JpcHRpb25UeXBlPSJUZWNobmljYWxJbmZvIj4KICAgICAgIyBTY2FsYWJsZSBwdXJpZmljYXRpb24gZW5hYmxlcyBoaWdoLXF1YWxpdHkgdmlydXMtbGlrZSBwYXJ0aWNsZXMgZm9yCiAgICAgIHRoZXJhcGV1dGljIHRyYW5zbGF0aW9uICMjIERlc2NyaXB0aW9uIG9mIHRoZSBkYXRhIGFuZCBmaWxlIHN0cnVjdHVyZSBUaGUKICAgICAgZGF0YSBpcyBvcmdhbml6ZWQgaW4gY29tcHJlc3NlZCBzdWJkaXJlY3RvcmllcyB3aG9zZSBuYW1lcyBjb3JyZXNwb25kIHRvCiAgICAgIGZpZ3VyZXMgaW4gdGhlIG1haW4gZGlyZWN0b3J5IChGaWd1cmVfMSwgRmlndXJlXzIsIEZpZ3VyZV9TMSwgZXRjLikuCiAgICAgIEV4Y2VwdGlvbjogRmlndXJlIFMzIGlzIHRoZSB1bmNyb3BwZWQsIHVuYWRqdXN0ZWQgaW1hZ2Ugb2YgdGhlIGdlbC4KICAgICAgRmlndXJlXzEuemlwIEZpZ3VyZV8xYTogQW50aS1DcmUgaW1tdW5vYmxvdCBvZiBDcmUtZVZMUCBiZWZvcmUgYW5kIGFmdGVyCiAgICAgIHB1cmlmaWNhdGlvbiBieSBzdWNyb3NlIGN1c2hpb24gdWx0cmFjZW50cmlmdWdhdGlvbi7CoFJhZmFsIEggMjAyNC0wMi0yNQogICAgICAyMGgyNW01M3MoQ2hlbWlsdW1pbmVzY2VuY2UpLmpwZyA9IENoZW1pbHVtaW5lc2NlbmNlIHNjYW4gb2YgdGhlCiAgICAgIGltbXVub2Jsb3QuwqBSYWZhbCBIIDIwMjQtMDItMjUgMjBoMjVtNTNzKEN5MykgPSByZWQgY2hhbm5lbCBzY2FuIG9mIHRoZQogICAgICBpbW11bm9ibG90LsKgUmFmYWwgSCAyMDI0LTAyLTI1IDIwaDI1bTUzcyhDeTUpLmpwZyA9IGJsdWUgY2hhbm5lbCBzY2FuIG9mCiAgICAgIHRoZSBpbW11bm9ibG90LiBGaWd1cmUxYl9WTFAhXzE3MDcxMy0yLmpwZzrCoEEgcmVwcmVzZW50YXRpdmUgZWxlY3Ryb24KICAgICAgbWljcm9zY29waWMgaW1hZ2Ugb2YgcHVyaWZpZWQgZVZMUHMuIEZpZ3VyZV8xYyxkOiBRdWFudGlmaWNhdGlvbiBvZgogICAgICBtQ2hlcnJ5IGRlbGl2ZXJ5IGludG8gSEVLIDI5M1QgY2VsbHMgYnkgZmx1b3Jlc2NlbmNlIG1pY3Jvc2NvcHkuCiAgICAgIEJyaWdodGZpZWxkID0gYnJpZ2h0ZmllbGQgaW1hZ2VzIG9mIHRoZSBjZWxscy4gUkZQID0gcmVkIGZsdW9yZXNjZW5jZQogICAgICBpbWFnZXMgb2YgdGhlIGNlbGxzLiBSRUFETUUubWQgPSB0YWJsZSBvZiBmaWxlIG5hbWVzLCB0aW1lIGFmdGVyCiAgICAgIGFwcGxpY2F0aW9uIG9mIHRoZSBlVkxQIGFuZCByZWQgZmx1b3Jlc2NlbmNlIGludGVuc2l0eS7CoCBGaWd1cmVfMWU6wqAKICAgICAgUklNRzI0MTkuSlBHOiBTRFMtUEFHRSBnZWwgaW1hZ2VzIGFmdGVyIHN0YWluaW5nIHdpdGggQ29vbWFzc2llIEJyaWxsaWFudAogICAgICBCbHVlIG9mIENyZS1lVkxQcyBwcm9kdWNlZCBpbiBETUVNIG1lZGl1bSBzdXBwbGVtZW50ZWQgd2l0aCAxMCUgKG9yIGxlc3MpCiAgICAgIEZCUywgYW5kIHB1cmlmaWVkIGJ5IHVsdHJhY2VudHJpZnVnYXRpb24uIFJhZmFsIEggMjAyNC0xMC0wOSAxNmg0M201OXMgPQogICAgICBJbW11bm9ibG90IG9mIHRoZSBDcmUtZVZMUHMgd2l0aCBhbnRpLUNyZSBhbnRpYm9kaWVzLiBSYWZhbCBIIDIwMjQtMTAtMDkKICAgICAgMTZoNTVtMTVzID0gSW1tdW5vYmxvdCBvZiB0aGUgQ3JlLWVWTFBzIHdpdGggYW50aS1WU1YtRyBhbnRpYm9kaWVzLgogICAgICBDaGVtaWx1bWluZXNjZW5jZSA9IHNpZ25hbCBmcm9tIHRoZSBhbnRpZ2VuLCBDeTMgPSByZWQgZmx1b3Jlc2NlbmNlLCBDeTUgPQogICAgICBibHVlIGZsdW9yZXNjZW5jZS4gRmlndXJlXzFmLnhsc3g6wqBTdGFibGUtaXNvdG9wZSBsYWJlbGVkIHF1YW50aWZpY2F0aW9uCiAgICAgIG9mIENyZSBpbiBlVkxQcyBzZXBhcmF0ZWQgYnkgdWx0cmFjZW50cmlmdWdhdGlvbi4gR2FnIGRlc2lnbmF0ZXMgYSBwZXB0aWRlCiAgICAgIHNwZWNpZmljIGZvciBNTFYgR2FnLCBDcmUgZGVzaWduYXRlcyBhIHBlcHRpZGUgc3BlY2lmaWMgZm9yIENyZQogICAgICByZWNvbWJpbmFzZS4gR2l2ZW4gdmFsdWVzIGluY2x1ZGUgbW9sZWN1bGFyIHdlaWdodCAoTVcpIGluIGcvbW9sLCBjaGFyZ2VzCiAgICAgIGluIGVhY2ggcGVwdGlkZSwgbWFzcy10by1jaGFyZ2UgcmF0aW8gKG0veiksIG1vbGFyIGNvbmNlbnRyYXRpb25zIG9mIGVhY2gKICAgICAgcGVwdGlkZSwgc2lnbmFsIGludGVuc2l0aWVzLCBhbmQgZGVyaXZlZCBwcm90ZWluIGNvbmNlbnRyYXRpb25zIGluCiAgICAgIHNhbXBsZXMuIEZpZ3VyZV8xZy54bHN4OsKgRXN0aW1hdGlvbiBieSB1bnRhcmdldGVkIG1hc3Mgc3BlY3Ryb21ldHJ5IG9mIHRoZQogICAgICByZWxhdGl2ZSBhYnVuZGFuY2Ugb2YgY2xhc3NlcyBvZiBwcm90ZWlucyBpbiBlVkxQcy4gTGFiZWxzIGFyZSBhc3NvY2lhdGVkCiAgICAgIHdpdGggRkJTIGNvbmNlbnRyYXRpb24gaW4gcHJvZHVjdGlvbiBjdWx0dXJlLiBUaGUgZGV0ZWN0ZWQgcHJvdGVpbnMgd2VyZQogICAgICBhc3NpZ25lZCB0byBWTFAgY29uc3RpdHVlbnRzLCBzZXJ1bSBwcm90ZWlucywga2VyYXRpbnMsIGFuZCBob3N0IGNlbGwKICAgICAgcHJvdGVpbnMgKCJPdGhlciIpIGJhc2VkIG9uIHRoZSBkZXNjcmlwdGlvbnMgZnJvbSB0aGUgVW5pcHJvdAogICAgICBkYXRhYmFzZS4gQSBzY29yZSBvZiAxMCBhbmQgTGFiZWwgRnJlZSBRdWFudGlmaWNhdGlvbiAoTEZRKSBvZiAwLjAxIHdlcmUKICAgICAgdXNlZCBhcyB0aHJlc2hvbGRzIHRvIGp1ZGdlIHRoZSByZWFsIHByZXNlbmNlIG9mIGVhY2ggcHJvdGVpbiBpbiB0aGUKICAgICAgc2FtcGxlcy4gRmlndXJlXzFpOsKgRGVsaXZlcnkgb2YgZnVuY3Rpb25hbCBDcmUgcmVjb21iaW5hc2UgaW50bwogICAgICBIRUsyOTMtbG94UC1HRlAtUkZQIGNlbGxzIHZpYSBlVkxQcyBwdXJpZmllZCBieSB1bHRyYWNlbnRyaWZ1Z2F0aW9uLiBUaGUKICAgICAgVkxQcyB3ZXJlIHN0YW5kYXJkaXplZCBmb3IgR2FnLUNyZSBieSBXZXN0ZXJuIGJsb3R0aW5nLiBDSDEgPSBncmVlbgogICAgICBjaGFubmVsLCBDSDIgPSByZWQgY2hhbm5lbC4gUkVBRE1FLm1kIGNvbnRhaW5zIHRoZSBhc3NpZ25tZW50IG9mIHRoZQogICAgICBpbWFnZXMgdG8gdGhlIGFwcHJvcHJpYXRlIGNvbmNlbnRyYXRpb25zIG9mIEZCUyBpbiBwcm9kdWN0aW9uIGN1bHR1cmVzLgogICAgICBGaWd1cmVfMi56aXAgRmlndXJlMl9iOsKgQ29vbWFzc2llLXN0YWluZWQgU0RTLVBBR0UgKFJJTUcyNjk2LkpQRykgYW5kCiAgICAgIGFudGktQ3JlIGltbXVub2Jsb3QgYW5hbHlzZXMgKFJhZmFsIEggMjAyNS0wMy0wOCAwMGgyOG0yMXMpIG9mIENyZS1lVkxQcywKICAgICAgcHVyaWZpZWQgYnkgQ2FwdG8gQ29yZSA3MDAuwqBDaGVtaWx1bWluZXNjZW5jZSA9IHNpZ25hbCBmcm9tIHRoZSBhbnRpZ2VuLAogICAgICBDeTMgPSByZWQgZmx1b3Jlc2NlbmNlLCBDeTUgPSBibHVlIGZsdW9yZXNjZW5jZS4gRmlndXJlMl9jOsKgQ29udmVyc2lvbiBvZgogICAgICBIRUsgY29sb3Itc3dpdGNoIGNlbGxzIGJ5IGVWTFBzLCBiZWZvcmUgYW5kIGFmdGVyIENDNzAwLXB1cmlmaWNhdGlvbi4gVGhlCiAgICAgIGVWTFBzIHdlcmUgc3RhbmRhcmRpemVkIGJ5IGltbXVub2Jsb3QuIFJFQURNRS5tZCBjb250YWlucyB0aGUgYXNzaWdubWVudAogICAgICBvZiBpbWFnZXMgdG8gZGF0YSBwb2ludHMuIEZpZ3VyZTJfZDrCoEhlcGFyaW4tU2VwaGFyb3NlIEhpZ2ggUGVyZm9ybWFuY2UKICAgICAgY2hyb21hdG9ncmFwaHkuIEhlcGFyaW4uVFhUID0gZGF0YSBhcyBleHBvcnRlZCBmcm9tIEJpby1SYWQgRHVvRmxvdy4gVGltZQogICAgICA9IHRpbWUgKHNlYyksIFF1YWR0ZWMxID0gYWJzb3JiYW5jZSBhdCAyMzAgbm0sIFF1YWRUZWMgMiA9IGFic29yYmFuY2UgYXQKICAgICAgMjYwIG5tLCBRdWFkVGVjMyA9IGFic29yYmFuY2UgYXQgMjgwIG5tLCBHcmFkaWVudCBwdW1wID0gUGVyY2VudGFnZSBvZgogICAgICBlbHV0aW9uIGJ1ZmZlciBpbiB0aGUgc3lzdGVtLCBDb25kdWN0aXZpdHkgPSBjb25kdWN0aXZpdHkgb2YgdGhlIHNvbHV0aW9uCiAgICAgIChtUy9jbSksIEZyYWN0aW9uID0gY29ycmVzcG9uZGluZyBmcmFjdGlvbiBudW1iZXIuIEhlcGFyaW4udHN2ID0gRGF0YSB1c2VkCiAgICAgIHRvIHBsb3QgdGhlIGNocm9tYXRvZ3JhbS4gRmlndXJlMl9lOsKgQW50aS1DcmUgV2VzdGVybi1ibG90IGFuYWx5c2VzIG9mCiAgICAgIGZyYWN0aW9ucyBjb2xsZWN0ZWQgZnJvbSB0aGUgcHVyaWZpY2F0aW9ucyBieSBoZXBhcmluLiBDaGVtaWx1bWluZXNjZW5jZSA9CiAgICAgIHNpZ25hbCBmcm9tIENyZSwgQ3kzID0gcmVkIGZsdW9yZXNjZW5jZSwgQ3k1ID0gYmx1ZSBmbHVvcmVzY2VuY2UuCiAgICAgIEZpZ3VyZV8yX2YsaixuLnhsc3g6wqBBYnVuZGFuY2UgYW5hbHlzaXMgb2YgcHJvdGVpbiBjbGFzc2VzIGRldGVjdGVkIGluCiAgICAgIGVWTFBzIGNvbmNlbnRyYXRlZCBvbiBjZW50cmlmdWdhbCBmaWx0ZXJzLCBiZWZvcmUgYW5kIGFmdGVyIHB1cmlmaWNhdGlvbgogICAgICB2aWEgaGVwYXJpbi0gUS0sIG9yIERFQUUtY2hyb21hdG9ncmFwaHkuIFNhbXBsZXM6IEMgPSBWTFAgcHVyaWZpZWQgYnkKICAgICAgQ2FwdG8gQ29yZSA3MDAsIENIID3CoFZMUCBwdXJpZmllZCBieSBDYXB0byBDb3JlIDcwMCBhbmQgSGVwYXJpbiwgQ0QgPcKgVkxQCiAgICAgIHB1cmlmaWVkIGJ5IENhcHRvIENvcmUgNzAwIGFuZCBERUFFLCBDUSA9wqBWTFAgcHVyaWZpZWQgYnkgQ2FwdG8gQ29yZSA3MDAKICAgICAgYW5kIFEuwqBUaGUgZGV0ZWN0ZWQgcHJvdGVpbnMgd2VyZSBhc3NpZ25lZCB0byBWTFAgY29uc3RpdHVlbnRzIChDcmUsIEdhZywKICAgICAgUG9sLCBWU1YtRyksIHNlcnVtIHByb3RlaW5zLCBrZXJhdGlucywgYW5kIGhvc3QgY2VsbCBwcm90ZWlucwogICAgICAoIk90aGVyIikgYmFzZWQgb24gdGhlIGRlc2NyaXB0aW9ucyBmcm9tIHRoZSBVbmlwcm90IGRhdGFiYXNlLiBBCiAgICAgIHNjb3JlIG9mIDEwIGFuZCBhIHJhdGlvIG9mIExhYmVsIEZyZWUgUXVhbnRpZmljYXRpb24gKExGUSkgb2YgZWFjaCBwcm90ZWluCiAgICAgIHZlcnN1cyBMRlEgb2YgQ3JlIG9mIDAuMDEgd2VyZSB1c2VkIGFzIHRocmVzaG9sZHMgdG8ganVkZ2UgdGhlIHByZXNlbmNlIG9mCiAgICAgIGVhY2ggcHJvdGVpbiBpbiB0aGUgc2FtcGxlcy4gRmlndXJlMl9nOsKgQ29udmVyc2lvbiBvZiBIRUsgY29sb3Itc3dpdGNoCiAgICAgIGNlbGxzIGJ5IGVWTFBzLCBiZWZvcmUgYW5kIGFmdGVyIGZ1cnRoZXIgcHVyaWZpY2F0aW9uIHZpYSBoZXBhcmluCiAgICAgIGNocm9tYXRvZ3JhcGh5LiBSRUFETUUubWQgY29udGFpbnMgdGhlIGFzc2lnbm1lbnQgb2YgZmlsZSBuYW1lcyB0byB0aGUKICAgICAgdGVzdGVkIHNhbXBsZXMuIEZpZ3VyZTJfaDrCoFEtU2VwaGFyb3NlIEhpZ2ggUGVyZm9ybWFuY2UKICAgICAgY2hyb21hdG9ncmFwaHkuwqAxMjEwMjQgY3JlIGV2bHAgY2M3MDAgcS5UWFQgPSBjaHJvbWF0b2dyYW0gZmlsZSBhcwogICAgICBleHBvcnRlZCBmcm9tIHRoZSBCaW8tUmFkIER1b0Zsb3cgY2hyb21hdG9ncmFwaHkgc3lzdGVtLiBUaW1lID0gdGltZQogICAgICAoc2VjKSwgUXVhZHRlYzEgPSBhYnNvcmJhbmNlIGF0IDIzMCBubSwgUXVhZFRlYyAyID0gYWJzb3JiYW5jZSBhdCAyNjAgbm0sCiAgICAgIFF1YWRUZWMzID0gYWJzb3JiYW5jZSBhdCAyODAgbm0sIEdyYWRpZW50IHB1bXAgPSBQZXJjZW50YWdlIG9mIGVsdXRpb24KICAgICAgYnVmZmVyIGluIHRoZSBzeXN0ZW0sIENvbmR1Y3Rpdml0eSA9IGNvbmR1Y3Rpdml0eSBvZiB0aGUgc29sdXRpb24gKG1TL2NtKSwKICAgICAgRnJhY3Rpb24gPSBjb3JyZXNwb25kaW5nIGZyYWN0aW9uIG51bWJlci4gMTIxMDI0IGNyZSBldmxwIGNjNzAwIHEuV01GID0KICAgICAgcGxvdHRlZCBjaHJvbWF0b2dyYW0uIEZpZ3VyZTJfaTrCoEFudGktQ3JlIFdlc3Rlcm4tYmxvdCBhbmFseXNlcyBvZgogICAgICBmcmFjdGlvbnMgY29sbGVjdGVkIGZyb20gdGhlIHB1cmlmaWNhdGlvbnMgYnkgUS7CoENoZW1pbHVtaW5lc2NlbmNlID0KICAgICAgc2lnbmFsIGZyb20gQ3JlLCBDeTMgPSByZWQgY2hhbm5lbCwgQ3k1ID0gYmx1ZSBjaGFubmVsLgogICAgICBGaWd1cmUyX2s6wqBDb252ZXJzaW9uIG9mIEhFSyBjb2xvci1zd2l0Y2ggY2VsbHMgYnkgZVZMUHMsIGJlZm9yZSBhbmQgYWZ0ZXIKICAgICAgZnVydGhlciBwdXJpZmljYXRpb24gdmlhIFEgY2hyb21hdG9ncmFwaHkuwqBSRUFETUUubWQgY29udGFpbnMgdGhlCiAgICAgIGNsYXNzaWZpY2F0aW9uIG9mIGltYWdlcyB0byBkYXRhIHBvaW50cy4gRmlndXJlMl9sOsKgREVBRS1TZXBoYXJvc2UgSGlnaAogICAgICBQZXJmb3JtYW5jZSBjaHJvbWF0b2dyYXBoeS7CoDA1MjgyNCBjcmUgZXZscCBjYzcwMGlpIGRlYWUgNSBtbC50eHQgY29udGFpbnMKICAgICAgbnVtZXJpY2FsIHZhbHVlcyBhcyBleHBvcnRlZCBmcm9tIEJpby1SYWQgRHVvRmxvdy7CoFRpbWUgPSB0aW1lIChzZWMpLAogICAgICBRdWFkdGVjMSA9IGFic29yYmFuY2UgYXQgMjMwIG5tLCBRdWFkVGVjIDIgPSBhYnNvcmJhbmNlIGF0IDI2MCBubSwKICAgICAgUXVhZFRlYzMgPSBhYnNvcmJhbmNlIGF0IDI4MCBubSwgR3JhZGllbnQgcHVtcCA9IFBlcmNlbnRhZ2Ugb2YgZWx1dGlvbgogICAgICBidWZmZXIgaW4gdGhlIHN5c3RlbSwgQ29uZHVjdGl2aXR5ID0gY29uZHVjdGl2aXR5IG9mIHRoZSBzb2x1dGlvbiAobVMvY20pLAogICAgICBGcmFjdGlvbiA9IGNvcnJlc3BvbmRpbmcgZnJhY3Rpb24gbnVtYmVyLiAwNTI4MjQgY3JlIGV2bHAgY2M3MDBpaSBkZWFlIDUKICAgICAgbWwuV01GID0gcGxvdHRlZCBjaHJvbWF0b2dyYW0uwqAgRmlndXJlMl9tOsKgQW50aS1DcmUgV2VzdGVybi1ibG90IGFuYWx5c2VzCiAgICAgIG9mIGZyYWN0aW9ucyBjb2xsZWN0ZWQgZnJvbSB0aGUgcHVyaWZpY2F0aW9ucyBieSBERUFFLsKgUmFmYWwgSCAyMDI0LTA1LTMwCiAgICAgIDExaDM3bTM1cyhDaGVtaWx1bWluZXNjZW5jZSkuanBnID0gc2lnbmFsIGZyb20gQ3JlLiBDeTMsIEN5NSA9IHJlZCBhbmQKICAgICAgYmx1ZSBmbHVvcmVzY2VuY2UgY2hhbm5lbHMsIHJlc3BlY3RpdmVseS4gRmlndXJlMl9vOsKgQ29udmVyc2lvbiBvZiBIRUsKICAgICAgY29sb3Itc3dpdGNoIGNlbGxzIGJ5IGVWTFBzLCBiZWZvcmUgYW5kIGFmdGVyIGZ1cnRoZXIgcHVyaWZpY2F0aW9uIHZpYQogICAgICBERUFFIGNocm9tYXRvZ3JhcGh5LiBSRUFETUUubWQgY29udGFpbnMgdGhlIGNsYXNzaWZpY2F0aW9uIG9mIGltYWdlcyB0bwogICAgICBkYXRhIHBvaW50cy4gRmlndXJlXzMuemlwOsKgIEZpZ3VyZV8zYS54bHN4OiBTdGFibGUgaXNvdG9wZS1sYWJlbGVkIHBlcHRpZGUKICAgICAgcXVhbnRpZmljYXRpb24gb2YgQ3JlIGluIENyZS1lVkxQIHByZXBhcmF0aW9ucyBwdXJpZmllZCBieQogICAgICB1bHRyYWNlbnRyaWZ1Z2F0aW9uIGFsb25lLsKgR2FnIGRlc2lnbmF0ZXMgYSBwZXB0aWRlIHNwZWNpZmljIGZvciBNTFYgR2FnLAogICAgICBDcmUgZGVzaWduYXRlcyBhIHBlcHRpZGUgc3BlY2lmaWMgZm9yIENyZSByZWNvbWJpbmFzZS4gR2l2ZW4gdmFsdWVzCiAgICAgIGluY2x1ZGUgbW9sZWN1bGFyIHdlaWdodCAoTVcpIGluIGcvbW9sLCBjaGFyZ2VzIGluIGVhY2ggcGVwdGlkZSwKICAgICAgbWFzcy10by1jaGFyZ2UgcmF0aW8gKG0veiksIG1vbGFyIGNvbmNlbnRyYXRpb25zIG9mIGVhY2ggcGVwdGlkZSwgc2lnbmFsCiAgICAgIGludGVuc2l0aWVzLCBhbmQgZGVyaXZlZCBwcm90ZWluIGNvbmNlbnRyYXRpb25zIGluIHNhbXBsZXMuIFRoZSBsYWJlbHMKICAgICAgY29ycmVzcG9uZCB0byB0aGUgYmF0Y2ggbnVtYmVycyBvZiBlYWNoIGVWTFAgc2FtcGxlLgogICAgICBGaWd1cmVfM2IueGxzeDrCoFJlbGF0aXZlIGFidW5kYW5jZSBvZiBjbGFzc2VzIG9mIHByb3RlaW5zIGluIGVWTFBzLgogICAgICBDb2x1bW5zIGluIHRoZSBJbnRlbnNpdHkgcmF0aW8gc3VidGFibGUgZGVzaWduYXRlIHRoZSBlVkxQIGJhdGNoIGFuZAogICAgICByZXBsaWNhdGUuIFRoZSBkZXRlY3RlZCBwcm90ZWlucyB3ZXJlIGFzc2lnbmVkIHRvIFZMUCBjb25zdGl0dWVudHMgKENyZSwKICAgICAgR2FnLCBQb2wsIFZTVi1HKSwgc2VydW0gcHJvdGVpbnMsIGtlcmF0aW5zLCBhbmQgaG9zdCBjZWxsIHByb3RlaW5zCiAgICAgICgiT3RoZXIiKSBiYXNlZCBvbiB0aGUgZGVzY3JpcHRpb25zIGZyb20gdGhlIFVuaXByb3QgZGF0YWJhc2UuIEEKICAgICAgc2NvcmUgb2YgMTAgYW5kIGEgcmF0aW8gb2YgTGFiZWwgRnJlZSBRdWFudGlmaWNhdGlvbiAoTEZRKSBvZiBlYWNoIHByb3RlaW4KICAgICAgdmVyc3VzIExGUSBvZiBDcmUgb2YgMC4wMSB3ZXJlIHVzZWQgYXMgdGhyZXNob2xkcyB0byBqdWRnZSB0aGUgcHJlc2VuY2Ugb2YKICAgICAgZWFjaCBwcm90ZWluIGluIHRoZSBzYW1wbGVzLiBGaWd1cmVfM2M6wqBlVkxQLXByZXBhcmF0aW9uICM0NywgcmVzb2x2ZWQgb24KICAgICAgYSA0LjctbWwgQ2FwdG8gQ29yZSA3MDAgY29sdW1uLsKgMTIxMDI0IGNyZSBldmxwIGNjNzAwIHEuV01GID0gcGxvdHRlZAogICAgICBjaHJvbWF0b2dyYW0uwqAxMjEwMjQgY3JlIGV2bHAgY2M3MDAgcS5UWFQgPSBjaHJvbWF0b2dyYW0uwqBUaW1lID0gdGltZQogICAgICAoc2VjKSwgUXVhZHRlYzEgPSBhYnNvcmJhbmNlIGF0IDIzMCBubSwgUXVhZFRlYyAyID0gYWJzb3JiYW5jZSBhdCAyNjAgbm0sCiAgICAgIFF1YWRUZWMzID0gYWJzb3JiYW5jZSBhdCAyODAgbm0sIEdyYWRpZW50IHB1bXAgPSBQZXJjZW50YWdlIG9mIGVsdXRpb24KICAgICAgYnVmZmVyIGluIHRoZSBzeXN0ZW0sIENvbmR1Y3Rpdml0eSA9IGNvbmR1Y3Rpdml0eSBvZiB0aGUgc29sdXRpb24gKG1TL2NtKSwKICAgICAgVm9sdW1lID0gZWx1dGlvbiB2b2x1bWUgcm91bmRlZCB0byAwLjEgbWwsIEZyYWN0aW9uID0gY29ycmVzcG9uZGluZwogICAgICBmcmFjdGlvbiBudW1iZXIuIEZpZ3VyZV8zZDogQ2hyb21hdG9ncmFtIG9mIGVWTFAgIzQ3IGNvbGxlY3RlZCBmcm9tIHRoZQogICAgICBDQzcwMCBjb2x1bW4sIGNvbmNlbnRyYXRlZCwgdGhlbiBhcHBsaWVkIGFuZCBlbHV0ZWQgZnJvbSBhIEhpUHJlcCAxNi82MAogICAgICBTZXBoYWNyeWwgUzMwMEhSIHNpemUtZXhjbHVzaW9uLWNocm9tYXRvZ3JhcGh5IChTRUMpIGNvbHVtbi7CoDEyMTEyNCBjcmUKICAgICAgZXZscCByIGNjIHEgczMwMC5XTUYgPSBwbG90dGVkIGNocm9tYXRvZ3JhbS7CoDEyMTEyNCBjcmUgZXZscCByIGNjIHEKICAgICAgczMwMC5UWFQgPSBleHBvcnRlZCBjaHJvbWF0b2dyYW0uwqBUaW1lID0gdGltZSAoc2VjKSwgUXVhZHRlYzEgPSBhYnNvcmJhbmNlCiAgICAgIGF0IDIzMCBubSwgUXVhZFRlYyAyID0gYWJzb3JiYW5jZSBhdCAyNjAgbm0sIFF1YWRUZWMzID0gYWJzb3JiYW5jZSBhdCAyODAKICAgICAgbm0sIENvbmR1Y3Rpdml0eSA9IGNvbmR1Y3Rpdml0eSBvZiB0aGUgc29sdXRpb24gKG1TL2NtKSwgVm9sdW1lID0gZWx1dGlvbgogICAgICB2b2x1bWUgcm91bmRlZCB0byAwLjEgbWwsIEZyYWN0aW9uID0gY29ycmVzcG9uZGluZyBmcmFjdGlvbiBudW1iZXIuCiAgICAgIEZpZ3VyZV8zZS54bHN4OsKgQ2xhc3NpZmljYXRpb24gb2YgZGV0ZWN0ZWQgcHJvdGVpbnMgaW4gZVZMUCAjNDcgYmVmb3JlCiAgICAgIHB1cmlmaWNhdGlvbiAo4oCcNDfigJ0pLCBhZnRlciBDQzcwMCAo4oCcNDdD4oCdKSwgYW5kIGFmdGVyIGFkZGl0aW9uYWwgU0VDCiAgICAgIGNocm9tYXRvZ3JhcGh5ICjigJw0N0NT4oCdKS4gTGFiZWxzIGFyZSBhc3NpZ25lZCB0byBzYW1wbGVzLiBDb2x1bW5zIGluIHRoZQogICAgICBJbnRlbnNpdHkgcmF0aW8gc3VidGFibGUgZGVzaWduYXRlIHRoZSBlVkxQIGJhdGNoIGFuZCByZXBsaWNhdGUuIFRoZQogICAgICBkZXRlY3RlZCBwcm90ZWlucyB3ZXJlIGFzc2lnbmVkIHRvIFZMUCBjb25zdGl0dWVudHMgKENyZSwgR2FnLCBQb2wsCiAgICAgIFZTVi1HKSwgc2VydW0gcHJvdGVpbnMsIGtlcmF0aW5zLCBhbmQgaG9zdCBjZWxsIHByb3RlaW5zCiAgICAgICgiT3RoZXIiKSBiYXNlZCBvbiB0aGUgZGVzY3JpcHRpb25zIGZyb20gdGhlIFVuaXByb3QgZGF0YWJhc2UuIEEKICAgICAgc2NvcmUgb2YgMTAgYW5kIGEgcmF0aW8gb2YgTGFiZWwgRnJlZSBRdWFudGlmaWNhdGlvbiAoTEZRKSBvZiBlYWNoIHByb3RlaW4KICAgICAgdmVyc3VzIExGUSBvZiBDcmUgb2YgMC4wMSB3ZXJlIHVzZWQgYXMgdGhyZXNob2xkcyB0byBqdWRnZSB0aGUgcHJlc2VuY2Ugb2YKICAgICAgZWFjaCBwcm90ZWluIGluIHRoZSBzYW1wbGVzLiBGaWd1cmVfM2YueGxzeDrCoE1hc3Mtc3BlY3Ryb21ldHJpYyBwcm90ZWluCiAgICAgIGlkZW50aWZpY2F0aW9uIG9mIGVWTFAgcHJlcGFyYXRpb24gIzE5IGJlZm9yZSBhbmQgYWZ0ZXIgU0VDLsKgIExhYmVscyBhcmUKICAgICAgYXNzaWduZWQgdG8gc2FtcGxlcy4gQ29sdW1ucyBpbiB0aGUgSW50ZW5zaXR5IHJhdGlvIHN1YnRhYmxlIGRlc2lnbmF0ZSB0aGUKICAgICAgZVZMUCBiYXRjaCBhbmQgcmVwbGljYXRlLiBUaGUgZGV0ZWN0ZWQgcHJvdGVpbnMgd2VyZSBhc3NpZ25lZCB0byBWTFAKICAgICAgY29uc3RpdHVlbnRzIChDcmUsIEdhZywgUG9sLCBWU1YtRyksIHNlcnVtIHByb3RlaW5zLCBrZXJhdGlucywgYW5kIGhvc3QKICAgICAgY2VsbCBwcm90ZWlucyAoIk90aGVyIikgYmFzZWQgb24gdGhlIGRlc2NyaXB0aW9ucyBmcm9tIHRoZQogICAgICBVbmlwcm90IGRhdGFiYXNlLiBBIHNjb3JlIG9mIDEwIGFuZCBhIHJhdGlvIG9mIExhYmVsIEZyZWUgUXVhbnRpZmljYXRpb24KICAgICAgKExGUSkgb2YgZWFjaCBwcm90ZWluIHZlcnN1cyBMRlEgb2YgQ3JlIG9mIDAuMDEgd2VyZSB1c2VkIGFzIHRocmVzaG9sZHMgdG8KICAgICAganVkZ2UgdGhlIHByZXNlbmNlIG9mIGVhY2ggcHJvdGVpbiBpbiB0aGUgc2FtcGxlcy4gRmlndXJlXzNoLGkucHB0eCwKICAgICAgRmlndXJlXzNoX2kuY3N2OsKgVHdvLXBob3RvbiBpbWFnZXMgb2YgaW50YWN0IG1UL21HIG1vdXNlIGV5ZXMgMiB3ZWVrcwogICAgICBhZnRlciBpbmplY3Rpb24gb2YgQ3JlIGVWTFAgIzE5LCBiZWZvcmUgYW5kIGFmdGVyIFNFQyBwdXJpZmljYXRpb24uIFRoZQogICAgICB0YWJsZSBwcmVzZW50cyBxdWFudGlmaWNhdGlvbiByZXN1bHRzIG9mIHRoZSB0ZFRvbWF0by10by1lR0ZQIGNvbnZlcnNpb24KICAgICAgaW4gdGhlIFJQRSBvZiBDcmUtZVZMUC10cmVhdGVkIG1UL21HwqBtaWNlLiBGaWd1cmVfNC56aXA6wqAgRmlndXJlXzRhLnR4dDrCoAogICAgICBERUFFIGlvbi1leGNoYW5nZSBjaHJvbWF0b2dyYW0gb2YgQ3JlLWVWTFBzIHByZXB1cmlmaWVkIG9uIGEgMjAtbWwgQ0M3MDAKICAgICAgY29sdW1uLCBlbHV0ZWQgd2l0aCBhIHN0ZWVwIDEwIGNvbHVtbi12b2x1bWUgKENWKSBncmFkaWVudCAoMTI14oCTNTYyIG1NCiAgICAgIE5hQ2wpLsKgVGltZSA9IHRpbWUgKHNlYyksIFF1YWR0ZWMxID0gYWJzb3JiYW5jZSBhdCAyMzAgbm0sIFF1YWRUZWMgMiA9CiAgICAgIGFic29yYmFuY2UgYXQgMjYwIG5tLCBRdWFkVGVjMyA9IGFic29yYmFuY2UgYXQgMjgwIG5tLCBHcmFkaWVudCBwdW1wID0KICAgICAgUGVyY2VudGFnZSBvZiBlbHV0aW9uIGJ1ZmZlciBpbiB0aGUgc3lzdGVtLCBDb25kdWN0aXZpdHkgPSBjb25kdWN0aXZpdHkgb2YKICAgICAgdGhlIHNvbHV0aW9uIChtUy9jbSksIFZvbHVtZSA9IGVsdXRpb24gdm9sdW1lIHJvdW5kZWQgdG8gMC4xIG1sLCBGcmFjdGlvbgogICAgICA9IGNvcnJlc3BvbmRpbmcgZnJhY3Rpb24gbnVtYmVyLiBGaWd1cmVfNGI6IEFudGktQ3JlIGFuZCBhbnRpLVZTVi1HCiAgICAgIGltbXVub2Jsb3RzIG9mIGZyYWN0aW9ucyBvZiBDcmUtZVZMUHMgZnJvbSBleHBlcmltZW50IChBKS4gUmFmYWwgSAogICAgICAyMDI1LTAzLTA4IDAwaDQwbTI0cyA9IGFudGktQ3JlLMKgUmFmYWwgSCAyMDI1LTAzLTA4IDIwaDI2bTMycyA9IGFudGktVlNWRy4KICAgICAgQ2hlbWlsdW1pbmVzY2VuY2UgPSBzaWduYWwgZnJvbSB0aGUgYW50aWdlbiwgQ3kzID0gcmVkIGZsdW9yZXNjZW5jZSwgQ3k1ID0KICAgICAgYmx1ZSBmbHVvcmVzY2VuY2UuIEZpZ3VyZV80Yy50eHQ6wqBERUFFIGlvbi1leGNoYW5nZSBjaHJvbWF0b2dyYW0gb2YKICAgICAgQ3JlLWVWTFBzIHB1cmlmaWVkIGRpcmVjdGx5IGZyb20gdGhlIGNlbGwgY3VsdHVyZSBtZWRpdW0uwqBUaW1lID0gdGltZQogICAgICAoc2VjKSwgUXVhZHRlYzEgPSBhYnNvcmJhbmNlIGF0IDIzMCBubSwgUXVhZFRlYyAyID0gYWJzb3JiYW5jZSBhdCAyNjAgbm0sCiAgICAgIFF1YWRUZWMzID0gYWJzb3JiYW5jZSBhdCAyODAgbm0sIEdyYWRpZW50IHB1bXAgPSBQZXJjZW50YWdlIG9mIGVsdXRpb24KICAgICAgYnVmZmVyIGluIHRoZSBzeXN0ZW0sIENvbmR1Y3Rpdml0eSA9IGNvbmR1Y3Rpdml0eSBvZiB0aGUgc29sdXRpb24gKG1TL2NtKSwKICAgICAgVm9sdW1lID0gZWx1dGlvbiB2b2x1bWUgcm91bmRlZCB0byAwLjEgbWwsIEZyYWN0aW9uID0gY29ycmVzcG9uZGluZwogICAgICBmcmFjdGlvbiBudW1iZXIuIEZpZ3VyZV80ZSxmLnhsc3g6wqBDbGFzc2lmaWNhdGlvbiBvZiBwcm90ZWlucyBkZXRlY3RlZCBpbgogICAgICBlVkxQIHByZXBhcmF0aW9ucyBieSB1bnRhcmdldGVkIG1hc3Mgc3BlY3Ryb21ldHJ5LiBMYWJlbC1mcmVlCiAgICAgIHF1YW50aWZpY2F0aW9uIG9mIHByb3RlaW5zIHByZXNlbnQgaW4gZVZMUCBwcmVwYXJhdGlvbnMgcHVyaWZpZWQgYnkgREVBRQogICAgICBhbmQgdWx0cmFjZW50cmlmdWdhdGlvbi7CoExhYmVscyBhcmUgYXNzaWduZWQgdG8gc2FtcGxlcy4gQ29sdW1ucyBpbiB0aGUKICAgICAgSW50ZW5zaXR5IHJhdGlvIHN1YnRhYmxlIGRlc2lnbmF0ZSB0aGUgZVZMUCBiYXRjaCBhbmQgcmVwbGljYXRlLiBUaGUKICAgICAgZGV0ZWN0ZWQgcHJvdGVpbnMgd2VyZSBhc3NpZ25lZCB0byBWTFAgY29uc3RpdHVlbnRzIChDcmUsIEdhZywgUG9sLAogICAgICBWU1YtRyksIHNlcnVtIHByb3RlaW5zLCBrZXJhdGlucywgYW5kIGhvc3QgY2VsbCBwcm90ZWlucwogICAgICAoIk90aGVyIikgYmFzZWQgb24gdGhlIGRlc2NyaXB0aW9ucyBmcm9tIHRoZSBVbmlwcm90IGRhdGFiYXNlLiBBCiAgICAgIHNjb3JlIG9mIDEwIGFuZCBhIHJhdGlvIG9mIExhYmVsIEZyZWUgUXVhbnRpZmljYXRpb24gKExGUSkgb2YgZWFjaCBwcm90ZWluCiAgICAgIHZlcnN1cyBMRlEgb2YgQ3JlIG9mIDAuMDEgd2VyZSB1c2VkIGFzIHRocmVzaG9sZHMgdG8ganVkZ2UgdGhlIHByZXNlbmNlIG9mCiAgICAgIGVhY2ggcHJvdGVpbiBpbiB0aGUgc2FtcGxlcy4gRmlndXJlXzRnOsKgRmx1b3Jlc2NlbmNlIG1pY3Jvc2NvcGljIGltYWdlcyBvZgogICAgICBIRUsgY29sb3Itc3dpdGNoIGNlbGxzLCA0OCBoIGFmdGVyIGFwcGxpY2F0aW9uIG9mIENyZS1lVkxQcywgcHVyaWZpZWQgdmlhCiAgICAgIERFQUUgY2hyb21hdG9ncmFwaHksIGFuZCB1bHRyYWNlbnRyaWZ1Z2VkLiBUaGUgZVZMUHMgd2VyZSBzdGFuZGFyZGl6ZWQgZm9yCiAgICAgIEdhZy1DcmUgY29udGVudCB2aWEgcXVhbnRpdGF0aXZlIGltbXVub2Jsb3QgYW5hbHlzaXMuwqBSRUFETUUubWQgYXNzaWducwogICAgICBmbHVvcmVzY2VuY2UgbWljcm9ncmFwaHMgdG8gc2FtcGxlcy4gQ0gxID0gZ3JlZW4gY2hhbm5lbCwgQ0gyID0gcmVkCiAgICAgIGNoYW5uZWwuIEZpZ3VyZV80aCxpLGo6IEZpZ3VyZV80aC5qcGcgYW5kIEZpZ3VyZSA0aS5qcGc6IFR3by1waG90b24gc2NhbnMKICAgICAgb2YgZXllcyBmcm9tIG1UL21HIG1pY2UsIDYgd2Vla3MgYWZ0ZXIgc3VicmV0aW5hbCBpbmplY3Rpb24gb2YgQ3JlLWVWTFBzCiAgICAgIHRoYXQgd2VyZSBwdXJpZmllZCBieSBERUFFIGNocm9tYXRvZ3JhcGh5IGFuZCB1bHRyYWNlbnRyaWZ1Z2F0aW9uLiBTY2FsZXMKICAgICAgcmVwcmVzZW50IGRpbWVuc2lvbnMgaW4gzrxtLiBUaGUgZGF0YSBhcmUgcmVwcmVzZW50YXRpdmUgb2YgYXQgbGVhc3Qgc2V2ZW4KICAgICAgaW1hZ2VzLiBGaWd1cmVfNGgsaS54bHN4OsKgU3RhYmxlLWlzb3RvcGUgbGFiZWxlZCBxdWFudGlmaWNhdGlvbiBvZiBDcmUgaW4KICAgICAgZVZMUHMgc2VwYXJhdGVkIGJ5IHVsdHJhY2VudHJpZnVnYXRpb24uIEdhZyBkZXNpZ25hdGVzIGEgcGVwdGlkZSBzcGVjaWZpYwogICAgICBmb3IgTUxWIEdhZywgQ3JlIGRlc2lnbmF0ZXMgYSBwZXB0aWRlIHNwZWNpZmljIGZvciBDcmUgcmVjb21iaW5hc2UuIEdpdmVuCiAgICAgIHZhbHVlcyBpbmNsdWRlIG1vbGVjdWxhciB3ZWlnaHQgKE1XKSBpbiBnL21vbCwgY2hhcmdlcyBpbiBlYWNoIHBlcHRpZGUsCiAgICAgIG1hc3MtdG8tY2hhcmdlIHJhdGlvIChtL3opLCBtb2xhciBjb25jZW50cmF0aW9ucyBvZiBlYWNoIHBlcHRpZGUsIHNpZ25hbAogICAgICBpbnRlbnNpdGllcywgYW5kIGRlcml2ZWQgcHJvdGVpbiBjb25jZW50cmF0aW9ucyBpbiBzYW1wbGVzLiBMYWJlbHMgYXJlCiAgICAgIGFzc2lnbmVkIHRvIHNhbXBsZXMuIEZpZ3VyZV80ai54bHN4OiBFc3RpbWF0aW9uIG9mIHRoZSBleHRlbnQgb2YgY29sb3IKICAgICAgY29udmVyc2lvbiBpbiB0aGUgUlBFIG9mIHRoZSBleWVzIG9mIG1UL21HIG1pY2UgdHJlYXRlZCB3aXRoIHB1cmlmaWVkIENyZQogICAgICBlVkxQcy7CoCBGaWd1cmVfNS56aXA6IEZpZ3VyZV81YTrCoERFQUUgaW9uLWV4Y2hhbmdlIGNocm9tYXRvZ3JhbSBvZgogICAgICBBQkUtZVZMUHMsIHByZXB1cmlmaWVkIG9uIGEgMjAtbWwgQ0M3MDAgY29sdW1uLsKgMDMyMTI1IGFiZSB2bHAgY2NkZS5XTUYgPQogICAgICBwbG90dGVkIGNocm9tYXRvZ3JhbS7CoDAzMjEyNSBhYmUgdmxwIGNjZGUuVFhUID0gY2hyb21hdG9ncmFwaHkgZGF0YS7CoFRpbWUKICAgICAgPSB0aW1lIChzZWMpLCBRdWFkdGVjMSA9IGFic29yYmFuY2UgYXQgMjMwIG5tLCBRdWFkVGVjIDIgPSBhYnNvcmJhbmNlIGF0CiAgICAgIDI2MCBubSwgUXVhZFRlYzMgPSBhYnNvcmJhbmNlIGF0IDI4MCBubSwgR3JhZGllbnQgcHVtcCA9IFBlcmNlbnRhZ2Ugb2YKICAgICAgZWx1dGlvbiBidWZmZXIgaW4gdGhlIHN5c3RlbSwgQ29uZHVjdGl2aXR5ID0gY29uZHVjdGl2aXR5IG9mIHRoZSBzb2x1dGlvbgogICAgICAobVMvY20pLCBWb2x1bWUgPSBlbHV0aW9uIHZvbHVtZSByb3VuZGVkIHRvIDAuMSBtbCwgRnJhY3Rpb24gPQogICAgICBjb3JyZXNwb25kaW5nIGZyYWN0aW9uIG51bWJlci4gRmlndXJlXzViOsKgQW50aS1DYXM5IGFuZCBhbnRpLVZTVi1HCiAgICAgIGltbXVub2Jsb3RzIG9mIGZyYWN0aW9ucyBvZiBBQkUtZVZMUHMgZnJvbSBleHBlcmltZW50IChBKS7CoFJhZmFsIEgKICAgICAgMjAyNS0wMy0yMyAwMWgxNm00N3MgYW5kwqBSYWZhbCBIIDIwMjUtMDMtMjMgMDFoMjltMDFzID0gYW50aS1DYXM5LMKgUmFmYWwgSAogICAgICAyMDI1LTAzLTI0IDAyaDIybTU1cyBhbmTCoFJhZmFsIEggMjAyNS0wMy0yNCAwMmgzMG0xMHMgPQogICAgICBhbnRpLVZTVi1HLsKgQ2hlbWlsdW1pbmVzY2VuY2UgPSBzaWduYWwgZnJvbSB0aGUgYW50aWdlbiwgQ3kzID0gcmVkCiAgICAgIGZsdW9yZXNjZW5jZSwgQ3k1ID0gYmx1ZSBmbHVvcmVzY2VuY2UuIEZpZ3VyZV81YzrCoERFQUUgaW9uLWV4Y2hhbmdlCiAgICAgIGNocm9tYXRvZ3JhbSBvZiBBQkUtZVZMUHMsIHB1cmlmaWVkIGRpcmVjdGx5IGZyb20gdGhlIGNlbGwgY3VsdHVyZQogICAgICBtZWRpdW0uwqAwMjI4MjUgYWJlIGV2bHAgcmRlLldNRiA9IHBsb3R0ZWQgY2hyb21hdG9ncmFtLMKgMDIyODI1IGFiZSBldmxwCiAgICAgIHJkZS5UWFQgPSBjaHJvbWF0b2dyYW0gZGF0YS7CoFRpbWUgPSB0aW1lIChzZWMpLCBRdWFkdGVjMSA9IGFic29yYmFuY2UgYXQKICAgICAgMjMwIG5tLCBRdWFkVGVjIDIgPSBhYnNvcmJhbmNlIGF0IDI2MCBubSwgUXVhZFRlYzMgPSBhYnNvcmJhbmNlIGF0IDI4MCBubSwKICAgICAgR3JhZGllbnQgcHVtcCA9IFBlcmNlbnRhZ2Ugb2YgZWx1dGlvbiBidWZmZXIgaW4gdGhlIHN5c3RlbSwgQ29uZHVjdGl2aXR5ID0KICAgICAgY29uZHVjdGl2aXR5IG9mIHRoZSBzb2x1dGlvbiAobVMvY20pLCBWb2x1bWUgPSBlbHV0aW9uIHZvbHVtZSByb3VuZGVkIHRvCiAgICAgIDAuMSBtbCwgRnJhY3Rpb24gPSBjb3JyZXNwb25kaW5nIGZyYWN0aW9uIG51bWJlci4gRmlndXJlXzVkOsKgQW50aS1DYXM5IGFuZAogICAgICBhbnRpLVZTVi1HIGltbXVub2Jsb3RzIG9mIGZyYWN0aW9ucyBvZiBBQkUtZVZMUHMgZnJvbSBleHBlcmltZW50CiAgICAgIChDKS7CoFJhZmFsIEggMjAyNS0wMy0xOCAwM2g1Nm0yN3MgPSBhbnRpLUNhczkswqBSYWZhbCBIIDIwMjUtMDMtMDQKICAgICAgMDBoMjFtNTNzID0gYW50aS1WU1YtRy7CoENoZW1pbHVtaW5lc2NlbmNlID0gc2lnbmFsIGZyb20gdGhlIGFudGlnZW4sIEN5MyA9CiAgICAgIHJlZCBmbHVvcmVzY2VuY2UsIEN5NSA9IGJsdWUgZmx1b3Jlc2NlbmNlLiBGaWd1cmVfNWUueGxzeDsgRmlndXJlXzVnLnhsc3g6CiAgICAgIE1hc3Mgc3BlY3Ryb21ldHJpYyBjbGFzc2lmaWNhdGlvbiBvZiBwcm90ZWlucyBkZXRlY3RlZCBpbiBwdXJpZmllZAogICAgICBBQkUtZVZMUHMuIE51bWJlcnMgZGVub3RlIHBlYWsgbnVtYmVyczsgUyBkZW5vdGVzIGNvbmNlbnRyYXRpb24gYnkKICAgICAgdWx0cmFjZW50cmlmdWdhdGlvbi7CoExhYmVscyBhcmUgYXNzaWduZWQgdG8gc2FtcGxlcy4gQ29sdW1ucyBpbiB0aGUKICAgICAgSW50ZW5zaXR5IHJhdGlvIHN1YnRhYmxlIGRlc2lnbmF0ZSB0aGUgZVZMUCBiYXRjaCBhbmQgcmVwbGljYXRlLiBUaGUKICAgICAgZGV0ZWN0ZWQgcHJvdGVpbnMgd2VyZSBhc3NpZ25lZCB0byBWTFAgY29uc3RpdHVlbnRzIChDYXM5LCBUYWRBLCBHYWcsIFBvbCwKICAgICAgVlNWLUcpLCBzZXJ1bSBwcm90ZWlucywga2VyYXRpbnMsIGFuZCBob3N0IGNlbGwgcHJvdGVpbnMKICAgICAgKCJPdGhlciIpIGJhc2VkIG9uIHRoZSBkZXNjcmlwdGlvbnMgZnJvbSB0aGUgVW5pcHJvdCBkYXRhYmFzZS4gQQogICAgICBzY29yZSBvZiAxMCBhbmQgYSByYXRpbyBvZiBMYWJlbCBGcmVlIFF1YW50aWZpY2F0aW9uIChMRlEpIG9mIGVhY2ggcHJvdGVpbgogICAgICB2ZXJzdXMgTEZRIG9mIENyZSBvZiAwLjAxIHdlcmUgdXNlZCBhcyB0aHJlc2hvbGRzIHRvIGp1ZGdlIHRoZSBwcmVzZW5jZSBvZgogICAgICBlYWNoIHByb3RlaW4gaW4gdGhlIHNhbXBsZXMuIEZpZ3VyZV81Zi54bHN4OyBGaWd1cmVfNWgueGxzeDrCoFNJTCBwZXB0aWRlCiAgICAgIHF1YW50aWZpY2F0aW9uIG9mIENhczksIFRhZEEsIGFuZCBHYWcgaW4gcG9vbGVkIGZyYWN0aW9ucyBmcm9tIGVhY2ggcGVhawogICAgICBvZiBERUFFIGVsdWF0ZSwgY29uY2VudHJhdGVkIGJ5IHVsdHJhY2VudHJpZnVnYXRpb24uwqBMYWJlbHMgYXJlIGFzc2lnbmVkCiAgICAgIHRvIHNhbXBsZXMuwqBHYWcgZGVzaWduYXRlcyBwZXB0aWRlIHNwZWNpZmljIGZvciBNTFYgR2FnLCBDYXM5IGRlc2lnbmF0ZXMKICAgICAgcGVwdGlkZSBzcGVjaWZpYyBmb3IgQ2FzOSwgQUJFIGRlc2lnbmF0ZXMgcGVwdGlkZSBzcGVjaWZpYyB0byBUYWRBCiAgICAgIGRlYW1pbmFzZSwgUEUyIGRlc2lnbmF0ZXMgcGVwdGlkZSBzcGVjaWZpYyBmb3IgcmV2ZXJzZSB0cmFuc2NyaXB0YXNlLgogICAgICBHaXZlbiB2YWx1ZXMgaW5jbHVkZSBtb2xlY3VsYXIgd2VpZ2h0IChNVykgaW4gZy9tb2wsIGNoYXJnZXMgaW4gZWFjaAogICAgICBwZXB0aWRlLCBtYXNzLXRvLWNoYXJnZSByYXRpbyAobS96KSwgbW9sYXIgY29uY2VudHJhdGlvbnMgb2YgZWFjaCBwZXB0aWRlLAogICAgICBzaWduYWwgaW50ZW5zaXRpZXMsIGFuZCBkZXJpdmVkIHByb3RlaW4gY29uY2VudHJhdGlvbnMgaW4gc2FtcGxlcy4KICAgICAgRmlndXJlXzVqOsKgRmx1b3Jlc2NlbmNlIG1pY3Jvc2NvcGljIGltYWdlcyBvZiByZDEyIGNvbG9yLXN3aXRjaCByZXBvcnRlcgogICAgICBjZWxscyA0OCBoIGFmdGVyIGFwcGxpY2F0aW9uIG9mIHB1cmlmaWVkIEFCRS1lVkxQcy4gUkVBRE1FLm1kIGFzc2lnbnMKICAgICAgaW1hZ2VzIHRvIHNhbXBsZXMuIEZpZ3VyZV82LnppcDogRmlndXJlXzZhLnhsc3g6wqBSZXByZXNlbnRhdGl2ZQogICAgICBlbGVjdHJvcmV0aW5vZ3JhcGhpYyAoRVJHKSB0cmFjZXMgcmVjb3JkZWQgZm9yIHJkMTIgbWljZSB0cmVhdGVkIHdpdGgKICAgICAgcHVyaWZpZWQgQUJFIGVWTFBzLiBXVCA9IHdpbGQtdHlwZSBtb3VzZSwgcmQxMiA9IG5vbi10cmVhdGVkIHJkMTIgbW91c2UsCiAgICAgIENEUzEsIERTMSwgRFMyID0gcmQxMiBtaWNlIHRyZWF0ZWQgd2l0aCBzcGVjaWZpYyBBQkUgZVZMUC4KICAgICAgRmlndXJlXzZiYy54bHN4OsKgRVJHIGEtd2F2ZSBhbmQgYi13YXZlIGFtcGxpdHVkZXMgcmVjb3JkZWQgZm9yIHRyZWF0ZWQKICAgICAgcmQxMiBtaWNlLCBhbmQgc3RhdGlzdGljYWwgYW5hbHlzaXMgYXMgcmVwb3J0ZWQgYnkgR3JhcGhQYWQgc29mdHdhcmUuCiAgICAgIEZpZ3VyZV82ZDrCoEV4YW1wbGUgb2YgdGhlIHJlc3VsdCBvZiB0YXJnZXRlZCBhbXBsaWNvbiBzZXF1ZW5jaW5nIGFuYWx5c2lzCiAgICAgIGRvbmUgYnkgQ1JJU1BSZXNzbzIuIEFtcGxpY29uIHNlcXVlbmNpbmcgcmVhZHMgd2VyZSBhc3NpZ25lZCB0byBhbGxlbGVzIG9mCiAgICAgIHRyZWF0ZWQgcmQxMiBtb3VzZSB3aXRoIG9uLXRhcmdldCwgb24tdGFyZ2V0IGFuZCBieXN0YW5kZXIsIGFuZAogICAgICBieXN0YW5kZXItb25seSBhZGVuaW5lIGRlYW1pbmF0aW9uLiBGaWd1cmVfNmU7IEZpZ3VyZV82ZjrCoFRhcmdldGVkCiAgICAgIGFtcGxpY29uIHNlcXVlbmNpbmcgdG8gYXNzZXNzIGVkaXRpbmcgZWZmaWNpZW5jeSBpbiB0aGUgUnBlNjUgcmQxMiBsb2N1cwogICAgICBpbiBnZW5vbWljIEROQSAoRCkgYW5kIGNETkEgKEUpLCBpc29sYXRlZCBmcm9tIHRoZSBSUEUgb2YgQUJFLWVWTFAtdHJlYXRlZAogICAgICByZDEyIG1pY2UuIGZhc3RxLmd6ID0gY29tcHJlc3NlZCByZWFkcywgLnNoID0gYmFzaCBjb21tYW5kcyB0byBydW4KICAgICAgQ1JJU1BSZXNzbyBhbmFseXNpcy4gUkVBRE1FLm1kIGFzc2lnbnMgcmVhZHMgdG8gdHJlYXRtZW50cyBvZiB0aGUgbWljZS4KICAgICAgRmlndXJlXzcuemlwIEZpZ3VyZV83YS50eHQ6wqBERUFFIGlvbi1leGNoYW5nZSBjaHJvbWF0b2dyYW0gb2YgUEUtZVZMUHMsCiAgICAgIHByZXB1cmlmaWVkIG9uIGEgMjAtbWwgQ0M3MDAgY29sdW1uLiBUaW1lID0gdGltZSAoc2VjKSwgUXVhZHRlYzEgPQogICAgICBhYnNvcmJhbmNlIGF0IDIzMCBubSwgUXVhZFRlYyAyID0gYWJzb3JiYW5jZSBhdCAyNjAgbm0sIFF1YWRUZWMzID0KICAgICAgYWJzb3JiYW5jZSBhdCAyODAgbm0sIEdyYWRpZW50IHB1bXAgPSBQZXJjZW50YWdlIG9mIGVsdXRpb24gYnVmZmVyIGluIHRoZQogICAgICBzeXN0ZW0sIENvbmR1Y3Rpdml0eSA9IGNvbmR1Y3Rpdml0eSBvZiB0aGUgc29sdXRpb24gKG1TL2NtKSwgVm9sdW1lID0KICAgICAgZWx1dGlvbiB2b2x1bWUgcm91bmRlZCB0byAwLjEgbWwsIEZyYWN0aW9uID0gY29ycmVzcG9uZGluZyBmcmFjdGlvbgogICAgICBudW1iZXIuIEZpZ3VyZV83YjrCoEFudGktVlNWLUcgaW1tdW5vYmxvdCBvZiBmcmFjdGlvbnMgb2YgUEUtZVZMUHMgZnJvbQogICAgICBleHBlcmltZW50IChBKS4gQ2hlbWlsdW1pbmVzY2VuY2UgPSBzaWduYWwgZnJvbSBWU1YtRywgQ3kzID0gcmVkCiAgICAgIGZsdW9yZXNjZW5jZSwgQ3k1ID0gYmx1ZSBmbHVvcmVzY2VuY2UuIEZpZ3VyZV83Yy54bHN4OsKgTWFzcyBzcGVjdHJvbWV0cmljCiAgICAgIGNsYXNzaWZpY2F0aW9uIG9mIHByb3RlaW5zIGRldGVjdGVkIGluIHB1cmlmaWVkIFBFLWVWTFBzLsKgTGFiZWxzIGFyZQogICAgICBhc3NpZ25lZCB0byBzYW1wbGVzLiBDb2x1bW5zIGluIHRoZSBJbnRlbnNpdHkgcmF0aW8gc3VidGFibGUgZGVzaWduYXRlIHRoZQogICAgICBlVkxQIGJhdGNoIGFuZCByZXBsaWNhdGUuIFRoZSBkZXRlY3RlZCBwcm90ZWlucyB3ZXJlIGFzc2lnbmVkIHRvIFZMUAogICAgICBjb25zdGl0dWVudHMgKENhczksIE1MViBSVCwgR2FnLCBQb2wsIFZTVi1HKSwgc2VydW0gcHJvdGVpbnMsIGtlcmF0aW5zLAogICAgICBhbmQgaG9zdCBjZWxsIHByb3RlaW5zICgiT3RoZXIiKSBiYXNlZCBvbiB0aGUgZGVzY3JpcHRpb25zIGZyb20KICAgICAgdGhlIFVuaXByb3QgZGF0YWJhc2UuIEEgc2NvcmUgb2YgMTAgYW5kIGEgcmF0aW8gb2YgTGFiZWwgRnJlZQogICAgICBRdWFudGlmaWNhdGlvbiAoTEZRKSBvZiBlYWNoIHByb3RlaW4gdmVyc3VzIExGUSBvZiBDcmUgb2YgMC4wMSB3ZXJlIHVzZWQKICAgICAgYXMgdGhyZXNob2xkcyB0byBqdWRnZSB0aGUgcHJlc2VuY2Ugb2YgZWFjaCBwcm90ZWluIGluIHRoZSBzYW1wbGVzLgogICAgICBGaWd1cmVfN2Q7IEZpZ3VyZV83ZTsgRmlndXJlXzdmLnhsc3g6wqBERUFFIGlvbi1leGNoYW5nZSBjaHJvbWF0b2dyYW0sCiAgICAgIGFudGktVlNWLUcgaW1tdW5vYmxvdCwgYW5kIG1hc3Mgc3BlY3Ryb21ldHJpYyBjbGFzc2lmaWNhdGlvbiBvZiBwcm90ZWlucwogICAgICBhbmFsb2dvdXMgdG8gKEHigJNDKSBmb3IgUEUtZVZMUHMsIHB1cmlmaWVkIGRpcmVjdGx5IGZyb20gdGhlIGNlbGwtY3VsdHVyZQogICAgICBtZWRpdW0uIEZpZ3VyZSA3ZCzCoDAzMDIyNSBwZTNiIHJkMTIgZXZscCByZGUuV01GID0gcGxvdHRlZAogICAgICBjaHJvbWF0b2dyYW0swqAwMzAyMjUgcGUzYiByZDEyIGV2bHAgcmRlLlRYVCA9IGNocm9tYXRvZ3JhcGh5IGRhdGE6wqBUaW1lID0KICAgICAgdGltZSAoc2VjKSwgUXVhZHRlYzEgPSBhYnNvcmJhbmNlIGF0IDIzMCBubSwgUXVhZFRlYyAyID0gYWJzb3JiYW5jZSBhdCAyNjAKICAgICAgbm0sIFF1YWRUZWMzID0gYWJzb3JiYW5jZSBhdCAyODAgbm0sIEdyYWRpZW50IHB1bXAgPSBQZXJjZW50YWdlIG9mIGVsdXRpb24KICAgICAgYnVmZmVyIGluIHRoZSBzeXN0ZW0sIENvbmR1Y3Rpdml0eSA9IGNvbmR1Y3Rpdml0eSBvZiB0aGUgc29sdXRpb24gKG1TL2NtKSwKICAgICAgVm9sdW1lID0gZWx1dGlvbiB2b2x1bWUgcm91bmRlZCB0byAwLjEgbWwsIEZyYWN0aW9uID0gY29ycmVzcG9uZGluZwogICAgICBmcmFjdGlvbiBudW1iZXIuIEZpZ3VyZV83ZTrCoENoZW1pbHVtaW5lc2NlbmNlID0gc2lnbmFsIGZyb20gVlNWLUcsIEN5MyA9CiAgICAgIHJlZCBmbHVvcmVzY2VuY2UsIEN5NSA9IGJsdWUgZmx1b3Jlc2NlbmNlLiBGaWd1cmUgN2YueGxzeCzCoExhYmVscyBhcmUKICAgICAgYXNzaWduZWQgdG8gc2FtcGxlcy4gQ29sdW1ucyBpbiB0aGUgSW50ZW5zaXR5IHJhdGlvIHN1YnRhYmxlIGRlc2lnbmF0ZSB0aGUKICAgICAgZVZMUCBiYXRjaCBhbmQgcmVwbGljYXRlLiBUaGUgZGV0ZWN0ZWQgcHJvdGVpbnMgd2VyZSBhc3NpZ25lZCB0byBWTFAKICAgICAgY29uc3RpdHVlbnRzIChDYXM5LCBNTFYgUlQsIEdhZywgUG9sLCBWU1YtRyksIHNlcnVtIHByb3RlaW5zLCBrZXJhdGlucywKICAgICAgYW5kIGhvc3QgY2VsbCBwcm90ZWlucyAoIk90aGVyIikgYmFzZWQgb24gdGhlIGRlc2NyaXB0aW9ucyBmcm9tCiAgICAgIHRoZSBVbmlwcm90IGRhdGFiYXNlLiBBIHNjb3JlIG9mIDEwIGFuZCBhIHJhdGlvIG9mIExhYmVsIEZyZWUKICAgICAgUXVhbnRpZmljYXRpb24gKExGUSkgb2YgZWFjaCBwcm90ZWluIHZlcnN1cyBMRlEgb2YgQ3JlIG9mIDAuMDEgd2VyZSB1c2VkCiAgICAgIGFzIHRocmVzaG9sZHMgdG8ganVkZ2UgdGhlIHByZXNlbmNlIG9mIGVhY2ggcHJvdGVpbiBpbiB0aGUgc2FtcGxlcy4KICAgICAgRmlndXJlXzdnOsKgRmx1b3Jlc2NlbmNlIG1pY3Jvc2NvcGljIGltYWdlcyBvZiByZDEyIGNvbG9yLXN3aXRjaCByZXBvcnRlcgogICAgICBjZWxscyA0OCBoIGFmdGVyIGFwcGxpY2F0aW9uIG9mIHB1cmlmaWVkIFBFLWVWTFBzLiBSRUFETUUubWQgYXNzaWducwogICAgICBwaG90b2dyYXBocyB0byBzYW1wbGVzLiBGaWd1cmVfN2g6wqBUYXJnZXRlZCBhbXBsaWNvbiBzZXF1ZW5jaW5nIHRvCiAgICAgIGRvY3VtZW50IGVkaXRpbmcgZWZmaWNpZW5jeSBpbiB0aGUgUnBlNjUgcmQxMiBsb2N1cyBpbiBnZW5vbWljIEROQSAoZ0ROQSkKICAgICAgYW5kIGNETkEgaXNvbGF0ZWQgZnJvbSB0aGUgUlBFIG9mIFBFLWVWTFAtdHJlYXRlZCByZDEyIG1pY2UuIGZhc3RxLmd6ID0KICAgICAgY29tcHJlc3NlZCByZWFkcywgLnNoID0gYmFzaCBjb21tYW5kcyB0byBydW4gQ1JJU1BSZXNzbyBhbmFseXNpcy4KICAgICAgUkVBRE1FLm1kIGFzc2lnbnMgcmVhZHMgdG8gdHJlYXRtZW50cyBvZiB0aGUgbWljZS4gRmlndXJlXzguemlwOgogICAgICBGaWd1cmVfOGE6wqBBbnRpLUNhczkgYW5kIGFudGktVlNWLUcgaW1tdW5vYmxvdHMgb2YgZnJhY3Rpb25zIG9mCiAgICAgIFBFLUVOVkxQRXMrIGNvbGxlY3RlZCBmcm9tIGEgMjAtbWwgQ0M3MDAgY29sdW1uLsKgUmFmYWwgSCAyMDI1LTAzLTIxCiAgICAgIDEzaDEzbTA2cyA9IENhczkswqBSYWZhbCBIIDIwMjUtMDMtMjIgMDBoNTBtNTFzID0gQ2FzOSBhbmQKICAgICAgVlNWLUcuwqBDaGVtaWx1bWluZXNjZW5jZSA9IHNpZ25hbCBmcm9tIGFudGlnZW5zLCBDeTMgPSByZWQgZmx1b3Jlc2NlbmNlLAogICAgICBDeTUgPSBibHVlIGZsdW9yZXNjZW5jZS4gRmlndXJlXzhiLnR4dDrCoERFQUUgaW9uLWV4Y2hhbmdlIGNocm9tYXRvZ3JhbSBvZgogICAgICBQRS1FTlZMUEVzKywgcHJlcHVyaWZpZWQgb24gYSAyMC1tbCBDQzcwMCBjb2x1bW4uwqBUaW1lID0gdGltZSAoc2VjKSwKICAgICAgUXVhZHRlYzEgPSBhYnNvcmJhbmNlIGF0IDIzMCBubSwgUXVhZFRlYyAyID0gYWJzb3JiYW5jZSBhdCAyNjAgbm0sCiAgICAgIFF1YWRUZWMzID0gYWJzb3JiYW5jZSBhdCAyODAgbm0sIEdyYWRpZW50IHB1bXAgPSBQZXJjZW50YWdlIG9mIGVsdXRpb24KICAgICAgYnVmZmVyIGluIHRoZSBzeXN0ZW0sIENvbmR1Y3Rpdml0eSA9IGNvbmR1Y3Rpdml0eSBvZiB0aGUgc29sdXRpb24gKG1TL2NtKSwKICAgICAgVm9sdW1lID0gZWx1dGlvbiB2b2x1bWUgcm91bmRlZCB0byAwLjEgbWwsIEZyYWN0aW9uID0gY29ycmVzcG9uZGluZwogICAgICBmcmFjdGlvbiBudW1iZXIuIEZpZ3VyZV84YzrCoEFudGktQ2FzOSBhbmQgYW50aS1WU1YtRyBpbW11bm9ibG90cyBvZgogICAgICBmcmFjdGlvbnMgb2YgUEUtRU5WTFBFcysgZnJvbSBleHBlcmltZW50IChCKS7CoFJhZmFsIEggMjAyNS0wMy0yMSAxM2gzOG00N3MKICAgICAgPSBDYXM5LMKgUmFmYWwgSCAyMDI1LTAzLTIyIDAxaDAybTA0cyA9IENhczkgKyBWU1YtRy7CoENoZW1pbHVtaW5lc2NlbmNlID0KICAgICAgc2lnbmFsIGZyb20gYW50aWdlbnMsIEN5MyA9IHJlZCBmbHVvcmVzY2VuY2UsIEN5NSA9IGJsdWUgZmx1b3Jlc2NlbmNlLgogICAgICBGaWd1cmVfOGQ7IEZpZ3VyZV84ZTrCoERFQUUgaW9uLWV4Y2hhbmdlIGNocm9tYXRvZ3JhbSBhbmQgaW1tdW5vYmxvdHMKICAgICAgYW5hbG9nb3VzIHRvIChCLCBDKSBmb3IgUEUtRU5WTFBFcyssIHB1cmlmaWVkIGRpcmVjdGx5IGZyb20gdGhlCiAgICAgIGNlbGwtY3VsdHVyZSBtZWRpdW0uwqBGaWd1cmVfOGQuV01GID0gcGxvdHRlZCBjaHJvbWF0b2dyYW0uwqBGaWd1cmVfOGQuVFhUID0KICAgICAgY2hyb21hdG9ncmFwaHkgZGF0YSzCoFRpbWUgPSB0aW1lIChzZWMpLCBRdWFkdGVjMSA9IGFic29yYmFuY2UgYXQgMjMwIG5tLAogICAgICBRdWFkVGVjIDIgPSBhYnNvcmJhbmNlIGF0IDI2MCBubSwgUXVhZFRlYzMgPSBhYnNvcmJhbmNlIGF0IDI4MCBubSwKICAgICAgR3JhZGllbnQgcHVtcCA9IFBlcmNlbnRhZ2Ugb2YgZWx1dGlvbiBidWZmZXIgaW4gdGhlIHN5c3RlbSwgQ29uZHVjdGl2aXR5ID0KICAgICAgY29uZHVjdGl2aXR5IG9mIHRoZSBzb2x1dGlvbiAobVMvY20pLCBWb2x1bWUgPSBlbHV0aW9uIHZvbHVtZSByb3VuZGVkIHRvCiAgICAgIDAuMSBtbCwgRnJhY3Rpb24gPSBjb3JyZXNwb25kaW5nIGZyYWN0aW9uIG51bWJlci4gRmlndXJlXzhlLMKgUmFmYWwgSAogICAgICAyMDI1LTAzLTE1IDA0aDIybTM4cyA9IENhczkswqBSYWZhbCBIIDIwMjUtMDMtMTUgMjNoMzRtMTZzID0gQ2FzOSArCiAgICAgIFZTVi1HLsKgQ2hlbWlsdW1pbmVzY2VuY2UgPSBzaWduYWwgZnJvbSBhbnRpZ2VucywgQ3kzID0gcmVkIGZsdW9yZXNjZW5jZSwKICAgICAgQ3k1ID0gYmx1ZSBmbHVvcmVzY2VuY2UuIEZpZ3VyZV84Zi54bHN4OsKgTWFzcyBzcGVjdHJvbWV0cmljIGNsYXNzaWZpY2F0aW9uCiAgICAgIG9mIHByb3RlaW5zIGRldGVjdGVkIGluIHB1cmlmaWVkIFBFLUVOVkxQRXMrLsKgTGFiZWxzIGFyZSBhc3NpZ25lZCB0bwogICAgICBzYW1wbGVzLiBDb2x1bW5zIGluIHRoZSBJbnRlbnNpdHkgcmF0aW8gc3VidGFibGUgZGVzaWduYXRlIHRoZSBlVkxQIGJhdGNoCiAgICAgIGFuZCByZXBsaWNhdGUuIFRoZSBkZXRlY3RlZCBwcm90ZWlucyB3ZXJlIGFzc2lnbmVkIHRvIFZMUCBjb25zdGl0dWVudHMKICAgICAgKFBFMiwgQ3N5NCwgR2FnLCBQQ1AsIFBvbCwgVlNWLUcpLCBzZXJ1bSBwcm90ZWlucywga2VyYXRpbnMsIGFuZCBob3N0IGNlbGwKICAgICAgcHJvdGVpbnMgKCJPdGhlciIpIGJhc2VkIG9uIHRoZSBkZXNjcmlwdGlvbnMgZnJvbSB0aGUgVW5pcHJvdAogICAgICBkYXRhYmFzZS4gQSBzY29yZSBvZiAxMCBhbmQgYSByYXRpbyBvZiBMYWJlbCBGcmVlIFF1YW50aWZpY2F0aW9uIChMRlEpIG9mCiAgICAgIGVhY2ggcHJvdGVpbiB2ZXJzdXMgTEZRIG9mIENyZSBvZiAwLjAxIHdlcmUgdXNlZCBhcyB0aHJlc2hvbGRzIHRvIGp1ZGdlCiAgICAgIHRoZSBwcmVzZW5jZSBvZiBlYWNoIHByb3RlaW4gaW4gdGhlIHNhbXBsZXMuIEZpZ3VyZV84ZzrCoEZsdW9yZXNjZW5jZQogICAgICBtaWNyb3Njb3BpYyBpbWFnZXMgb2YgVElHRVItcmVwb3J0ZXIgY2VsbHMsIDQ4IGggYWZ0ZXIgYXBwbGljYXRpb24gb2YKICAgICAgcHVyaWZpZWQgUEUtRU5WTFBFcysuwqBSRUFETUUubWQgYXNzaWducyBwaG90b2dyYXBocyB0byBzYW1wbGVzLgogICAgICBGaWd1cmVfOGg6wqBVbnRpdGxlZC0xLmpwZzogVHdvLXBob3RvbiBmbHVvcmVzY2VuY2UgaW1hZ2Ugb2YgdGhlIHBvc3RlcmlvcgogICAgICBzZWdtZW50IG9mIHRoZSBpbnRhY3QgZXllIG9mIGEgaGV0ZXJvenlnb3VzIFRJR0VSLXJlcG9ydGVyIG1vdXNlIHRyZWF0ZWQKICAgICAgd2l0aCBQRS1FTlZMUEVzKzsgc2NhbGUgaXMgaW4gzrxtLiBGaWd1cmVfOGgueGxzeDogTGFiZWxzIGFyZSBhc3NpZ25lZCB0bwogICAgICBzYW1wbGVzLsKgQ2FzOSBkZXNpZ25hdGVzIGEgcGVwdGlkZSBzcGVjaWZpYyBmb3IgQ2FzOSwgUEUyIGRlc2lnbmF0ZXMgYQogICAgICBwZXB0aWRlIHNwZWNpZmljIGZvciByZXZlcnNlIHRyYW5zY3JpcHRhc2UuIEdpdmVuIHZhbHVlcyBpbmNsdWRlIG1vbGVjdWxhcgogICAgICB3ZWlnaHQgKE1XKSBpbiBnL21vbCwgbWFzcy10by1jaGFyZ2UgcmF0aW8gKG0veiksIG1vbGFyIGNvbmNlbnRyYXRpb25zIG9mCiAgICAgIGVhY2ggcGVwdGlkZSwgc2lnbmFsIGludGVuc2l0aWVzLCBhbmQgZGVyaXZlZCBwcm90ZWluIGNvbmNlbnRyYXRpb25zIGluCiAgICAgIHNhbXBsZXMuIEZpZ3VyZV9TMS56aXA6IEZpZ3VyZV9TMWE6IFJJTUcyMjIxLmpwZzogQ29vbWFzc2llLXN0YWluZWQKICAgICAgU0RTLVBBR0Ugb2YgQ3JlLWVWTFBzLCBwdXJpZmllZCBvbiA0LjcgbWwgSGlTY3JlZW4gQ2FwdG8gQ29yZSA0MDAuwqAgUmFmYWwKICAgICAgSCAyMDI0LTAxLTI0IDIyaDA0bTM2czogYW50aS1DcmUgaW1tdW5vYmxvdCBhbmFseXNlcyBvZiBDcmUtZVZMUHMsCiAgICAgIHB1cmlmaWVkIG9uIDQuNyBtbCBIaVNjcmVlbiBDYXB0byBDb3JlIDQwMC4gQ2hlbWlsdW1pbmVzY2VuY2UgPSBzaWduYWwKICAgICAgZnJvbSBhbnRpZ2VucywgQ3kzID0gcmVkIGZsdW9yZXNjZW5jZSwgQ3k1ID0gYmx1ZSBmbHVvcmVzY2VuY2UuCiAgICAgIEZpZ3VyZV9TMWI6IFJJTUcyMjQxLmpwZzogQ29vbWFzc2llLXN0YWluZWQgU0RTLVBBR0Ugb2YgQ3JlLWVWTFBzLAogICAgICBwdXJpZmllZCBvbiA0LjcgbWwgSGlTY3JlZW4gQ2FwdG8gQ29yZSA3MDAuwqAgUmFmYWwgSCAyMDI0LTAxLTMwIDExaDM3bTM5czoKICAgICAgYW50aS1DcmUgaW1tdW5vYmxvdCBhbmFseXNlcyBvZiBDcmUtZVZMUHMsIHB1cmlmaWVkIG9uIDQuNyBtbCBIaVNjcmVlbgogICAgICBDYXB0byBDb3JlIDcwMC4gQ2hlbWlsdW1pbmVzY2VuY2UgPSBzaWduYWwgZnJvbSBhbnRpZ2VucywgQ3kzID0gcmVkCiAgICAgIGZsdW9yZXNjZW5jZSwgQ3k1ID0gYmx1ZSBmbHVvcmVzY2VuY2UuIEZpZ3VyZV9TMi56aXA6wqBGbHVvcmVzY2VuY2UKICAgICAgbWljcm9zY29waWMgaW1hZ2VzIG9mIEhFSyBjb2xvci1zd2l0Y2ggY2VsbHMsIDQ4IGggYWZ0ZXIgYXBwbGljYXRpb24gb2YKICAgICAgdGhlIGVWTFBzIGlzb2xhdGVkIGJ5IHVsdHJhY2VudHJpZnVnYXRpb24gaW4gaW5kZXBlbmRlbnQgZXhwZXJpbWVudHM7IGVWTFAKICAgICAgIzQ3LCBiZWZvcmUgYW5kIGFmdGVyIHNlcXVlbnRpYWwgY2hyb21hdG9ncmFwaGljIHB1cmlmaWNhdGlvbjsgZVZMUCAjMTksCiAgICAgIGJlZm9yZSBhbmQgYWZ0ZXIgcHVyaWZpY2F0aW9uLsKgUkVBRE1FLm1kIGFzc2lnbnMgcGhvdG9ncmFwaHMgdG8gc2FtcGxlcy4KICAgICAgRmlndXJlX1MzLkpQRzrCoFB1cmlmaWNhdGlvbiBvZiBDcmUtZVZMUHMgYXNzZXNzZWQgdXNpbmcgc2lsdmVyIHN0YWluaW5nLgogICAgICBDcmUtZVZMUCBzYW1wbGVzIHdlcmUgc3ViamVjdGVkIHRvIERFQUUgY2hyb21hdG9ncmFwaHkgd2l0aCBvciB3aXRob3V0CiAgICAgIHByZS1wdXJpZmljYXRpb24gb24gQ2FwdG8gQ29yZSA3MDAgKENDNzAwKS4gVGhlIHNhbXBsZXMgd2VyZSBhbmFseXplZCBieQogICAgICBTRFMtUEFHRSwgYW5kIHRoZSBnZWxzIHdlcmUgc2lsdmVyLXN0YWluZWQuIFRoZSBzYW1wbGVzIHdlcmUgc3RhbmRhcmRpemVkCiAgICAgIGZvciBHYWctQ3JlIGJ5IGltbXVub2Jsb3R0aW5nLCBhbmQgYSBxdWFydGVyLXZvbHVtZSBvZiB1bnB1cmlmaWVkIG1lZGl1bQogICAgICB3aXRoIGVWTFBzIHdhcyBsb2FkZWQgdG8gYXZvaWQgc2F0dXJhdGluZyB0aGUgaW1hZ2UgYW5kIGxvc2luZyBiYW5kCiAgICAgIHJlc29sdXRpb24uIEZpZ3VyZV9TNC56aXA6wqBBbmFseXNpcyBvZiBBQkUtZVZMUHMgdGFyZ2V0aW5nIFJwZTY1IHJkMTIsCiAgICAgIHB1cmlmaWVkIGJ5IERFQUUgaW9uLWV4Y2hhbmdlIGNocm9tYXRvZ3JhcGh5LCB3aXRoIChhKSBvciB3aXRob3V0IChiKQogICAgICBwcmUtY2hyb21hdG9ncmFwaHkgb24gQ2FwdG8gQ29yZSA3MDAuIFRoZSBzYW1wbGVzIHdlcmUgcmVzb2x2ZWQgdXNpbmcKICAgICAgU0RTLVBBR0UgYW5kIGRldmVsb3BlZCBieSBzaWx2ZXIgc3RhaW5pbmcuIFdpdGhpbiBlYWNoIGdlbCwgdGhlIHNhbXBsZXMKICAgICAgd2VyZSBzdGFuZGFyZGl6ZWQgZm9yIFZTVi1HLCBhbmQgb25lLWZvdXJ0aCB2b2x1bWUgb2YgdGhlIG1lZGl1bSAoYSkgb3IKICAgICAgb25lLWZpZnRlZW50aCB2b2x1bWUgKGIpIGNvbnRhaW5pbmcgZVZMUHMgd2FzIGxvYWRlZCB0byBhdm9pZAogICAgICBvdmVyc2F0dXJhdGlvbiBvZiB0aGUgc2lnbmFsLiBGaWd1cmVfUzUuemlwOsKgUmFmYWwgSCAyMDI1LTA3LTAzIDEyaDQ4bTM3czoKICAgICAgQW50aS1SUEU2NSBpbW11bm9ibG90cyBvZiBseXNlZCBleWVjdXBzLCBpc29sYXRlZCBmcm9tIEFCRS1lVkxQLXRyZWF0ZWQKICAgICAgcmQxMiBtaWNlLsKgUmFmYWwgSCAyMDI1LTA3LTAzIDE5aDAzbTIyczogYW50aS3Osi1hY3RpbiBpbW11bm9ibG90cyBvZiBseXNlZAogICAgICBleWVjdXBzLCBpc29sYXRlZCBmcm9tIEFCRS1lVkxQLXRyZWF0ZWQgcmQxMiBtaWNlLsKgQ2hlbWlsdW1pbmVzY2VuY2UgPQogICAgICBzaWduYWwgZnJvbSBhbnRpZ2VucywgQ3kzID0gcmVkIGZsdW9yZXNjZW5jZSwgQ3k1ID0gYmx1ZSBmbHVvcmVzY2VuY2UuCiAgICAgIEZpZ3VyZV9TNWIueGxzeDogUXVhbnRpZmljYXRpb24gb2YgMTEtY2lzLXJldGluYWwgaW4gdGhlIGV5ZSBob21vZ2VuYXRlcwogICAgICBmcm9tIHRyZWF0ZWQgbWljZS4gTGFiZWxzIGNvcnJlc3BvbmQgdG8gdHJlYXRtZW50cy4gRmlndXJlX1M2LnppcDrCoChhLCBiKQogICAgICBBbmFseXNpcyBvZiBQRS1lVkxQcyB0YXJnZXRpbmcgUnBlNjUgcmQxMi4gKGMsIGQpIEFuYWx5c2lzIG9mIFBFLUVOVkxQRXMrCiAgICAgIHRhcmdldGluZyB0aGUgVElHRVIgY29uc3RydWN0LiBUaGUgc2FtcGxlcyB3ZXJlIHJlc29sdmVkIHVzaW5nIFNEUy1QQUdFCiAgICAgIGFuZCBkZXZlbG9wZWQgYnkgc2lsdmVyIHN0YWluaW5nLiBXaXRoaW4gZWFjaCBnZWwsIHRoZSBzYW1wbGVzIHdlcmUKICAgICAgc3RhbmRhcmRpemVkIGZvciBWU1YtRywgYW5kIG9uZS1mb3VydGggdm9sdW1lIG9mIHRoZSBtZWRpdW0gKGEpIG9yCiAgICAgIG9uZS1maWZ0ZWVudGggdm9sdW1lIChiLGMsZCkgY29udGFpbmluZyBlVkxQcyB3YXMgbG9hZGVkIHRvIGF2b2lkCiAgICAgIHNhdHVyYXRpb24gd2l0aCB0aGUgZHllLiBSRUFETUUubWQgKHRoaXMgZmlsZSkgTVNfZmFzdGEuemlwIGNvbnRhaW5zIGEKICAgICAgZGF0YWJhc2Ugb2YgcHJvdGVpbiBzZXF1ZW5jZXMgdXNlZCBpbiBtYXNzIHNwZWN0cm9tZXRyaWMgYW5hbHlzaXMgaW4gZmFzdGEKICAgICAgZm9ybWF0LCBkb3dubG9hZGVkIGZyb20gdGhlIFVuaXByb3QgZGF0YWJhc2UuICMjIFNoYXJpbmcvQWNjZXNzCiAgICAgIGluZm9ybWF0aW9uIFJhdyBtYXNzIHNwZWN0cm9tZXRyeSBkYXRhIGFyZSBhdmFpbGFibGU6CiAgICAgIFtodHRwczovL3d3dy5lYmkuYWMudWsvcHJpZGUvYXJjaGl2ZS9wcm9qZWN0cy9QWEQwNzAxOTVdKGh0dHBzOi8vd3d3LmViaS5hYy51ay9wcmlkZS9hcmNoaXZlL3Byb2plY3RzL1BYRDA3MDE5NSkgIyMgQ29kZS9Tb2Z0d2FyZSBTY3JpcHRzIHVzZWQgdG8gYW5hbHl6ZSBhbXBsaWNvbiBzZXF1ZW5jaW5nIHJlc3VsdHMgd2l0aCBDUklTUFJlc3NvMiBhcmUgYXR0YWNoZWQgaW4gdGhlIHJlc3BlY3RpdmUgZmlndXJlIHN1YmRpcmVjdG9yaWVzLgogICAgPC9kZXNjcmlwdGlvbj4KICA8L2Rlc2NyaXB0aW9ucz4KPC9yZXNvdXJjZT4=","url":"https://datadryad.org/dataset/doi:10.5061/dryad.c2fqz61q6","contentUrl":null,"metadataVersion":0,"schemaVersion":"http://datacite.org/schema/kernel-4","source":"mds","isActive":true,"state":"findable","reason":null,"viewCount":59,"viewsOverTime":[{"yearMonth":"2025-11","total":0},{"yearMonth":"2026-02","total":30},{"yearMonth":"2026-03","total":8},{"yearMonth":"2026-05","total":4},{"yearMonth":"2026-07","total":7},{"yearMonth":"2026-08","total":3},{"yearMonth":"2026-09","total":7}],"downloadCount":9,"downloadsOverTime":[{"yearMonth":"2025-11","total":1},{"yearMonth":"2026-02","total":6},{"yearMonth":"2026-03","total":1},{"yearMonth":"2026-05","total":0},{"yearMonth":"2026-07","total":1},{"yearMonth":"2026-08","total":0},{"yearMonth":"2026-09","total":0}],"referenceCount":0,"citationCount":1,"citationsOverTime":[{"year":"2026","total":1}],"partCount":0,"partOfCount":0,"versionCount":0,"versionOfCount":0,"created":"2026-02-09T01:39:55.000Z","registered":"2026-02-09T01:39:56.000Z","published":"2026","updated":"2026-02-09T01:39:56.000Z"},"relationships":{"client":{"data":{"id":"dryad.dryad","type":"clients"}},"provider":{"data":{"id":"dryad","type":"providers"}},"media":{"data":{"id":"10.5061/dryad.c2fqz61q6","type":"media"}},"references":{"data":[]},"citations":{"data":[{"id":"10.1016/j.jbc.2025.110946","type":"dois"}]},"parts":{"data":[]},"partOf":{"data":[]},"versions":{"data":[]},"versionOf":{"data":[]}}}}