1 Stages

There are several stages of the project:

  1. identify as many measures as possible that assess externalizing problems and related constructs (and obtain the freely available ones)
    • fill out the Measures tab of the Existing Measures and Items spreadsheet
    • add the instrument (as documents/PDFs) to the Instruments folder
    • add the source reference(s) (as documents/PDFs) to the Source References folder
    • add the scoring manual(s) (as documents/PDFs) to the Scoring folder
  2. obtain as many measures as possible that are not freely available
    • i.e., add additional instruments to the Instruments folder
  3. identify the scales and subscales for each measure
  4. identify the items for each scale and subscale for each measure
    • i.e., fill out the Items tab of the Existing Measures and Items spreadsheet
  5. identify the facet assessed by each item
    • i.e., fill in the facet column of the Items tab of the Existing Measures and Items spreadsheet
  6. select and edit the items to ensure each facet is assessed comprehensively at each age
  7. have the focus groups of experts review, refine, and rate the construct relevance of the items at each age
  8. select the final item pool for each age
  9. recruit participants to test the item pools
  10. select items for the final measure at a given age for a given rater type based on testing
  11. recruit a nationally representative sample of participants whose informants who will rate them on the measure
  12. generate age- and sex-based norms
  13. develop a computerized adaptive test
  14. develop a computerized scoring system
  15. develop translated versions

2 Instructions for all Spreadsheets

  • Use Roboto font size 10
  • Use an en dash (; i.e., not a hyphen) to indicate a range:
    • e.g., 1–18 (not 1-18)
    • an en dash is technically correct; in addition, spreadsheets often read 3-7 as March 7th, but they correctly read 3–7

3 Stage 1: Identify Measures

This stage involves 1) identifying as many measures as possible that assess externalizing problems and related constructs and 2) obtaining the freely available ones. To achieve this, conduct a thorough literature search using the suggested search terms (below). As you identify measures, fill out the Measures tab of the Existing Measures and Items spreadsheet and (if the instrument is freely available) add the instrument to the Instruments folder.

3.1 Search Terms

The following are search terms to use for identifting measures that assess externalizing problems and related constructs:

  • externalizing
  • antisocial
  • disruptive
  • conduct problems
  • callous-unemotional
  • aggression
  • oppositionality
  • inattention
  • hyperactivity
  • ADHD
  • conduct disorder
  • oppositional defiant disorder
  • antisocial personality disorder

3.2 Fill out the Measures tab

Fill out the Measures tab of the Existing Measures and Items spreadsheet, located here. If there are multiple editions of the same measure, select (and specify) the most recent edition (e.g., Behavior Rating Inventory of Executive Function–2 for the 2nd Edition of the BRIEF).

3.2.1 Data Dictionary

  • measureName: the full official measure name

  • abbreviation: the (capitalized) abbreviation of the measure name; duplicates are allowed

  • measureClass: the broader assessment family/system; if multiple measures are from the same assessment family/system (e.g., both the Child Behavior Checklist and Teacher’s Report Form are part of the Achenbach System of Empirically Based Assessment) provide a short label for the measure class; if the measure is not part of a broader measure class, use the lowercase version of the abbreviation

    • should be lowercase with no punctuation
    • only measures that are part of the same measure class should have the same label for measureClass; if measures from a different measure class have the same label for measureClass, this may have to include a disambuating element (such as the author name or year of publication) so measures from different measure classes are not given the same label
  • instrument: the lowercase version of the abbreviation

    • should be lowercase with no punctuation
    • this may have to include a disambuating element (such as the author name or year of publication) so that there are no duplicates in the measure column
  • measure: a calculated field that combines the measureClass and the instrument into one field, separated by an underscore; there should be no duplicates (duplicates are highlighted in red); this field is the unique identifier of the measure

    • do not enter this manually; drag the formula from other cells in the column to calculate
  • type: the type of measure; one of:

    • questionnaire
    • interview
    • observation
    • other
  • rater: the rater for whom the measure was designed to be completed; one of:

    • parent
    • teacher
    • caregiver: caregivers who are not parents or teachers (e.g., other family members or care providers)
    • self
    • peer
    • nurse
    • clinician
    • nurse
    • sibling
    • other: any informant who knows the child well
  • ageLowerYears: the lower limit of the ratee’s age range for which the measure was designed to be completed (in years)

  • ageUpperYears: the upper limit of the ratee’s age range for which the measure was designed to be completed (in years); if no upper limit is specified in the documentation for the instrument, use the oldest age in the original sample. If the oldest age is not available and the scale was designed to be used without an upper age limit, specify 99.

  • ageLowerMonths: the lower limit of the ratee’s age range for which the measure was designed to be completed (in months)—especially relevant for infants/toddlers

    • this is calculated automatically using a formula based on ageLowerYears, so you should not enter this unless the measure specifies ratee’s age range in months rather than years
  • ageUpperMonths: the upper limit of the ratee’s age range for which the measure was designed to be completed (in months)—especially relevant for infants/toddlers

    • this is calculated automatically using a formula based on ageUpperYears, so you should not enter this unless the measure specifies ratee’s age range in months rather than years
  • responseOptions: the response options for each item

    • Use a semicolon (;) to separate response options
    • For example: 0=Not True (as far as you know); 1=Somewhat or Sometimes True; 2=Very True or Often True
  • proprietary: whether the measure is proprietary; one of:

    • yes
    • no
  • notes: any notes on the measure

  • url: the URL for the measure (i.e., where to access or purchase it); you can include multiple URLs if they would be useful (separate them with a semicolon)

  • keyReferences: any key references for the measure, including seminal references, references that include the items, etc.; you can include multiple key references if they would be useful (separate them with a semicolon)

  • instrumentPDF: whether or not we have the PDF of the instrument (indicate yes with an x); if we are unable to obtain it, specify why not (e.g., need to order or cannot find)

  • sourceRefPDF: whether or not we have the PDF of the source reference (indicate yes with an x); if we are unable to obtain it, specify why not (e.g., need to request or cannot find)

  • availableToOrder: whether the instrument is available to order from publisher or instrument creator (indicate yes with an x if instrument is available to order); if we are unable to obtain it, leave blank

3.2.2 How Rows are Sorted

The rows in the Measures tab of the Existing Measures and Items spreadsheet are sorted by the measure column, which sorts first by measureClass and then by instrument. When adding rows for new measures, place the new row in the appropriate location accordingly.

3.2.3 How to Indicate Measures from the Same “Measure Class”

As described in the Data Dictionary, the “measure class” is the broader assessment family or system. Multiple instruments can belong to the same measure class (e.g., both the Child Behavior Checklist and Teacher’s Report Form are part of the Achenbach System of Empirically Based Assessment). If there are multiple measures within the same measure class, use borders to indicate that measures have the same measure class. For instance, the first assessment in a given measure class should have a top border, and the last assessment in a given measure class should have a bottom border.

3.3 Add instruments to the Instruments folder

If the instrument is freely available—i.e., publicly available or provided in a publication—add the instrument to the Instruments folder, located here. Save the PDF using the capitalized abbreviation of the measure name.

3.4 Add source reference(s) to the Source References folder

If the instrument is freely available—i.e., publicly available or provided in a publication—add the source reference(s) to the Source References folder, located here. Save the source reference(s) using the following format, depending on the number of authors:

  • one author: “Author, Year, Abbreviation.pdf”
    • e.g.: “Achenbach, 2000, CBCL.pdf”
  • two authors: “Author1 & Author2, Year, Abbreviation.pdf”
    • e.g.: “Achenbach & Rescorla, 2000, CBCL.pdf”
  • three or more authors: “Author1 et al, Year, Abbreviation.pdf”
    • e.g.: “Achenbach et al, 2000, CBCL.pdf”

3.5 Add scoring manual(s) to the Scoring folder

If the instrument is freely available—i.e., publicly available or provided in a publication—add the scoring manual(s) (as documents/PDFs) to the Scoring folder, located here. Save the PDF using the capitalized abbreviation of the measure name.

4 Stage 2: Obtain Measures

This stage involves obtaining as many measures as possible that are not freely available—e.g., measures that are proprietary (e.g., by purchasing them) or are not provided in publications (e.g., by contacting the authors). After obtaining measures, complete steps of Stage 1 with the newly obtained measures, including:

  • add the instrument (as documents/PDFs) to the Instruments folder (described here)
  • add the source reference(s) (as documents/PDFs) to the Source References folder (described here)
  • add the scoring manual(s) (as documents/PDFs) to the Scoring folder (described here)

5 Stage 3: Identify the Scales and Subscales for Each Measure

This stage involves identifying the scales and subscales for each measure. For a measure, identify the names of the scales and subscales as specified by the authors. Fill out the Scales and Subscales tab of the Existing Measures and Items spreadsheet. Follow the Camel case naming convention when adding the names of the scales and subscales to the Measures table (e.g., “Rule Breaking Behavior” = ruleBreakingBehavior). If a scale or subscale does not have a clear name, use the naming convention to label with 1–3 words that best describe the scale or subscale.

5.1 Data Dictionary

  • measure: the unique identifier of the measure; combines the measureClass and the instrument into one field; should be the same value as the measure in the Measures tab of the Existing Measures and Items spreadsheet; see the Data Dictionary for the Measures tab for a detailed description of the column
  • higherOrderScale: the higher-order scale(s) (if any) for the measure; a higher-order scale is a scale that subsumes multiple subscales; should be “n/a” if the measure does not have a higher-order scale
  • subscale: the subscale(s) of the measure;

6 Stage 4: Identify the Items

This stage involves identifying the items for each scale and subscale for each measure. To do this, fill out the Items tab of the Existing Measures and Items spreadsheet by transcribing the items from the PDF of each measure that is located in the Instruments folder.

6.1 Data Dictionary

  • itemWording: the wording of the item
  • facet: the facet that is assessed by the item
  • reverseScored: whether the item is reverse scored; one of:
    • yes
    • no
  • measure: the unique identifier of the measure that the item is from; combines the measureClass and the instrument into one field; should be the same value as the measure in the Measures tab of the Existing Measures and Items spreadsheet; see the Data Dictionary for the Measures tab for a detailed description of the column
  • itemNumber: the number of the item on measure1
  • higherOrderScale: the higher-order scale of the item on measure; see the Data Dictionary for the Scales and Subscales tab for a detailed description of the column
  • itemSortOrder: the sort order (ascending) for an item in a given measure; the sort order should reflect the order that we want the items presented—either based on subscale groupings or based on the order in which they are present in the instrument
  • subscale: the subscale of the item on measure; see the Data Dictionary for the Scales and Subscales tab for a detailed description of the column
  • sinceSeptember2024: Whether the item was added after September 2024; enter an x to indicate yes.

7 Stage 5: Identify the Facet Assessed by Each item

To prevent multiple people from coding the same scale, write your name in the itemFacet column next to each measure you are working on in ‘Measures’. Using the list of ‘Facets’, identify the facet of each item’s for the scale you have selected to work on here: ‘Items’ You can leave comments in [‘Items’] for yourself to address. If questions come up for the group to discuss or if you have ideas for revising the facets, you can use Slack. Mark an x by any scales you’ve completed (i.e., which have all the item facets identified) in the itemFacet column in ‘Measures’.

LS0tCnRpdGxlOiAiUHJvamVjdCBNYW51YWwiCi0tLQoKYGBge3Igc2V0dXAsIGluY2x1ZGUgPSBGQUxTRX0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KGVjaG8gPSBUUlVFLAogICAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSBUUlVFKQpgYGAKCiMgU3RhZ2VzIHsjc3RhZ2VzfQoKVGhlcmUgYXJlIHNldmVyYWwgc3RhZ2VzIG9mIHRoZSBwcm9qZWN0OgoKMS4gaWRlbnRpZnkgYXMgbWFueSBtZWFzdXJlcyBhcyBwb3NzaWJsZSB0aGF0IGFzc2VzcyBleHRlcm5hbGl6aW5nIHByb2JsZW1zIGFuZCByZWxhdGVkIGNvbnN0cnVjdHMgKGFuZCBvYnRhaW4gdGhlIGZyZWVseSBhdmFpbGFibGUgb25lcykKICAgIC0gZmlsbCBvdXQgdGhlIFtgTWVhc3VyZXNgXShodHRwczovL2RvY3MuZ29vZ2xlLmNvbS9zcHJlYWRzaGVldHMvZC8xbHVkdVpheXlWbU9OZHhCQ2N2ck1HVnYxdnNoaEh6UTdlRU9MZzFhYU14RS9lZGl0I2dpZD0wKSB0YWIgb2YgdGhlIGBFeGlzdGluZyBNZWFzdXJlcyBhbmQgSXRlbXNgIHNwcmVhZHNoZWV0CiAgICAtIGFkZCB0aGUgaW5zdHJ1bWVudCAoYXMgZG9jdW1lbnRzL1BERnMpIHRvIHRoZSBbYEluc3RydW1lbnRzYF0oaHR0cHM6Ly9kcml2ZS5nb29nbGUuY29tL2RyaXZlL3UvMC9mb2xkZXJzLzFVTDlfOXRiS1BRZUtOTGZ0bEJUZFdJOWtWY3FFbjUxZikgZm9sZGVyCiAgICAtIGFkZCB0aGUgc291cmNlIHJlZmVyZW5jZShzKSAoYXMgZG9jdW1lbnRzL1BERnMpIHRvIHRoZSBbYFNvdXJjZSBSZWZlcmVuY2VzYF0oaHR0cHM6Ly9kcml2ZS5nb29nbGUuY29tL2RyaXZlL3UvMC9mb2xkZXJzLzF5V2hSdnI0cEhiUklwWWhpVnZ2Z2hrNGczd0dxMC1HVikgZm9sZGVyCiAgICAtIGFkZCB0aGUgc2NvcmluZyBtYW51YWwocykgKGFzIGRvY3VtZW50cy9QREZzKSB0byB0aGUgW2BTY29yaW5nYF0oaHR0cHM6Ly9kcml2ZS5nb29nbGUuY29tL2RyaXZlL3UvMC9mb2xkZXJzLzFwdElsN0cya3NQZGozWVpWeFlpUEdqZ2pheXdfYm9yWSkgZm9sZGVyCjEuIG9idGFpbiBhcyBtYW55IG1lYXN1cmVzIGFzIHBvc3NpYmxlIHRoYXQgYXJlIG5vdCBmcmVlbHkgYXZhaWxhYmxlCiAgICAtIGkuZS4sIGFkZCBhZGRpdGlvbmFsIGluc3RydW1lbnRzIHRvIHRoZSBbYEluc3RydW1lbnRzYF0oaHR0cHM6Ly9kcml2ZS5nb29nbGUuY29tL2RyaXZlL3UvMC9mb2xkZXJzLzFVTDlfOXRiS1BRZUtOTGZ0bEJUZFdJOWtWY3FFbjUxZikgZm9sZGVyCjEuIGlkZW50aWZ5IHRoZSBzY2FsZXMgYW5kIHN1YnNjYWxlcyBmb3IgZWFjaCBtZWFzdXJlCiAgICAtIGkuZS4sIGZpbGwgb3V0IHRoZSBbYFNjYWxlcyBhbmQgU3Vic2NhbGVzYF0oaHR0cHM6Ly9kb2NzLmdvb2dsZS5jb20vc3ByZWFkc2hlZXRzL2QvMWx1ZHVaYXl5Vm1PTmR4QkNjdnJNR1Z2MXZzaGhIelE3ZUVPTGcxYWFNeEUvZWRpdCNnaWQ9NjE4MzU5OTY2KSB0YWIgb2YgdGhlIGBFeGlzdGluZyBNZWFzdXJlcyBhbmQgSXRlbXNgIHNwcmVhZHNoZWV0CjEuIGlkZW50aWZ5IHRoZSBpdGVtcyBmb3IgZWFjaCBzY2FsZSBhbmQgc3Vic2NhbGUgZm9yIGVhY2ggbWVhc3VyZQogICAgLSBpLmUuLCBmaWxsIG91dCB0aGUgW2BJdGVtc2BdKGh0dHBzOi8vZG9jcy5nb29nbGUuY29tL3NwcmVhZHNoZWV0cy9kLzFsdWR1WmF5eVZtT05keEJDY3ZyTUdWdjF2c2hoSHpRN2VFT0xnMWFhTXhFL2VkaXQjZ2lkPTE5MzA5ODEzMTYpIHRhYiBvZiB0aGUgYEV4aXN0aW5nIE1lYXN1cmVzIGFuZCBJdGVtc2Agc3ByZWFkc2hlZXQKMS4gaWRlbnRpZnkgdGhlIGZhY2V0IGFzc2Vzc2VkIGJ5IGVhY2ggaXRlbQogICAgLSBpLmUuLCBmaWxsIGluIHRoZSBgZmFjZXRgIGNvbHVtbiBvZiB0aGUgW2BJdGVtc2BdKGh0dHBzOi8vZG9jcy5nb29nbGUuY29tL3NwcmVhZHNoZWV0cy9kLzFsdWR1WmF5eVZtT05keEJDY3ZyTUdWdjF2c2hoSHpRN2VFT0xnMWFhTXhFL2VkaXQjZ2lkPTE5MzA5ODEzMTYpIHRhYiBvZiB0aGUgYEV4aXN0aW5nIE1lYXN1cmVzIGFuZCBJdGVtc2Agc3ByZWFkc2hlZXQKMS4gc2VsZWN0IGFuZCBlZGl0IHRoZSBpdGVtcyB0byBlbnN1cmUgZWFjaCBmYWNldCBpcyBhc3Nlc3NlZCBjb21wcmVoZW5zaXZlbHkgYXQgZWFjaCBhZ2UKMS4gaGF2ZSB0aGUgZm9jdXMgZ3JvdXBzIG9mIGV4cGVydHMgcmV2aWV3LCByZWZpbmUsIGFuZCByYXRlIHRoZSBjb25zdHJ1Y3QgcmVsZXZhbmNlIG9mIHRoZSBpdGVtcyBhdCBlYWNoIGFnZQoxLiBzZWxlY3QgdGhlIGZpbmFsIGl0ZW0gcG9vbCBmb3IgZWFjaCBhZ2UKMS4gcmVjcnVpdCBwYXJ0aWNpcGFudHMgdG8gdGVzdCB0aGUgaXRlbSBwb29scwoxLiBzZWxlY3QgaXRlbXMgZm9yIHRoZSBmaW5hbCBtZWFzdXJlIGF0IGEgZ2l2ZW4gYWdlIGZvciBhIGdpdmVuIHJhdGVyIHR5cGUgYmFzZWQgb24gdGVzdGluZwoxLiByZWNydWl0IGEgbmF0aW9uYWxseSByZXByZXNlbnRhdGl2ZSBzYW1wbGUgb2YgcGFydGljaXBhbnRzIHdob3NlIGluZm9ybWFudHMgd2hvIHdpbGwgcmF0ZSB0aGVtIG9uIHRoZSBtZWFzdXJlCjEuIGdlbmVyYXRlIGFnZS0gYW5kIHNleC1iYXNlZCBub3JtcwoxLiBkZXZlbG9wIGEgY29tcHV0ZXJpemVkIGFkYXB0aXZlIHRlc3QKMS4gZGV2ZWxvcCBhIGNvbXB1dGVyaXplZCBzY29yaW5nIHN5c3RlbQoxLiBkZXZlbG9wIHRyYW5zbGF0ZWQgdmVyc2lvbnMKCiMgSW5zdHJ1Y3Rpb25zIGZvciBhbGwgU3ByZWFkc2hlZXRzCgotIFVzZSBSb2JvdG8gZm9udCBzaXplIDEwCi0gVXNlIGFuIGVuIGRhc2ggKGDigJNgOyBpLmUuLCBub3QgYSBoeXBoZW4pIHRvIGluZGljYXRlIGEgcmFuZ2U6CiAgICAtIGUuZy4sIDHigJMxOCAobm90IDEtMTgpCgktIGFuIGVuIGRhc2ggaXMgdGVjaG5pY2FsbHkgY29ycmVjdDsgaW4gYWRkaXRpb24sIHNwcmVhZHNoZWV0cyBvZnRlbiByZWFkIDMtNyBhcyBNYXJjaCA3dGgsIGJ1dCB0aGV5IGNvcnJlY3RseSByZWFkIDPigJM3CgojIFN0YWdlIDE6IElkZW50aWZ5IE1lYXN1cmVzIHsjaWRlbnRpZnlNZWFzdXJlc30KClRoaXMgc3RhZ2UgaW52b2x2ZXMgMSkgaWRlbnRpZnlpbmcgYXMgbWFueSBtZWFzdXJlcyBhcyBwb3NzaWJsZSB0aGF0IGFzc2VzcyBleHRlcm5hbGl6aW5nIHByb2JsZW1zIGFuZCByZWxhdGVkIGNvbnN0cnVjdHMgYW5kIDIpIG9idGFpbmluZyB0aGUgZnJlZWx5IGF2YWlsYWJsZSBvbmVzLgpUbyBhY2hpZXZlIHRoaXMsIGNvbmR1Y3QgYSB0aG9yb3VnaCBsaXRlcmF0dXJlIHNlYXJjaCB1c2luZyB0aGUgc3VnZ2VzdGVkIHNlYXJjaCB0ZXJtcyAoW2JlbG93XSgjc2VhcmNoVGVybXMpKS4KQXMgeW91IGlkZW50aWZ5IG1lYXN1cmVzLCBmaWxsIG91dCB0aGUgYE1lYXN1cmVzYCB0YWIgb2YgdGhlIGBFeGlzdGluZyBNZWFzdXJlcyBhbmQgSXRlbXNgIHNwcmVhZHNoZWV0IGFuZCAoaWYgdGhlIGluc3RydW1lbnQgaXMgZnJlZWx5IGF2YWlsYWJsZSkgYWRkIHRoZSBpbnN0cnVtZW50IHRvIHRoZSBgSW5zdHJ1bWVudHNgIGZvbGRlci4KCiMjIFNlYXJjaCBUZXJtcyB7I3NlYXJjaFRlcm1zfQoKVGhlIGZvbGxvd2luZyBhcmUgc2VhcmNoIHRlcm1zIHRvIHVzZSBmb3IgaWRlbnRpZnRpbmcgbWVhc3VyZXMgdGhhdCBhc3Nlc3MgZXh0ZXJuYWxpemluZyBwcm9ibGVtcyBhbmQgcmVsYXRlZCBjb25zdHJ1Y3RzOgoKLSBleHRlcm5hbGl6aW5nCi0gYW50aXNvY2lhbAotIGRpc3J1cHRpdmUKLSBjb25kdWN0IHByb2JsZW1zCi0gY2FsbG91cy11bmVtb3Rpb25hbAotIGFnZ3Jlc3Npb24KLSBvcHBvc2l0aW9uYWxpdHkKLSBpbmF0dGVudGlvbgotIGh5cGVyYWN0aXZpdHkKLSBBREhECi0gY29uZHVjdCBkaXNvcmRlcgotIG9wcG9zaXRpb25hbCBkZWZpYW50IGRpc29yZGVyCi0gYW50aXNvY2lhbCBwZXJzb25hbGl0eSBkaXNvcmRlcgoKIyMgRmlsbCBvdXQgdGhlIGBNZWFzdXJlc2AgdGFiIHsjbWVhc3VyZXNUYWJ9CgpGaWxsIG91dCB0aGUgYE1lYXN1cmVzYCB0YWIgb2YgdGhlIGBFeGlzdGluZyBNZWFzdXJlcyBhbmQgSXRlbXNgIHNwcmVhZHNoZWV0LCBsb2NhdGVkIFtoZXJlXShodHRwczovL2RvY3MuZ29vZ2xlLmNvbS9zcHJlYWRzaGVldHMvZC8xbHVkdVpheXlWbU9OZHhCQ2N2ck1HVnYxdnNoaEh6UTdlRU9MZzFhYU14RS9lZGl0I2dpZD0wKS4KSWYgdGhlcmUgYXJlIG11bHRpcGxlIGVkaXRpb25zIG9mIHRoZSBzYW1lIG1lYXN1cmUsIHNlbGVjdCAoYW5kIHNwZWNpZnkpIHRoZSBtb3N0IHJlY2VudCBlZGl0aW9uIChlLmcuLCBgQmVoYXZpb3IgUmF0aW5nIEludmVudG9yeSBvZiBFeGVjdXRpdmUgRnVuY3Rpb27igJMyYCBmb3IgdGhlIDJuZCBFZGl0aW9uIG9mIHRoZSBCUklFRikuCgojIyMgRGF0YSBEaWN0aW9uYXJ5IHsjZGF0YURpY3Rpb25hcnktbWVhc3VyZXN9CgotIGBtZWFzdXJlTmFtZWA6IHRoZSBmdWxsIG9mZmljaWFsIG1lYXN1cmUgbmFtZQotIGBhYmJyZXZpYXRpb25gOiB0aGUgKGNhcGl0YWxpemVkKSBhYmJyZXZpYXRpb24gb2YgdGhlIG1lYXN1cmUgbmFtZTsgZHVwbGljYXRlcyBhcmUgYWxsb3dlZAotIGBtZWFzdXJlQ2xhc3NgOiB0aGUgYnJvYWRlciBhc3Nlc3NtZW50IGZhbWlseS9zeXN0ZW07IGlmIG11bHRpcGxlIG1lYXN1cmVzIGFyZSBmcm9tIHRoZSBzYW1lIGFzc2Vzc21lbnQgZmFtaWx5L3N5c3RlbSAoZS5nLiwgYm90aCB0aGUgQ2hpbGQgQmVoYXZpb3IgQ2hlY2tsaXN0IGFuZCBUZWFjaGVyJ3MgUmVwb3J0IEZvcm0gYXJlIHBhcnQgb2YgdGhlIEFjaGVuYmFjaCBTeXN0ZW0gb2YgRW1waXJpY2FsbHkgQmFzZWQgQXNzZXNzbWVudCkgcHJvdmlkZSBhIHNob3J0IGxhYmVsIGZvciB0aGUgbWVhc3VyZSBjbGFzczsgaWYgdGhlIG1lYXN1cmUgaXMgbm90IHBhcnQgb2YgYSBicm9hZGVyIG1lYXN1cmUgY2xhc3MsIHVzZSB0aGUgbG93ZXJjYXNlIHZlcnNpb24gb2YgdGhlIGFiYnJldmlhdGlvbgogICAgLSBzaG91bGQgYmUgbG93ZXJjYXNlIHdpdGggbm8gcHVuY3R1YXRpb24KICAgIC0gb25seSBtZWFzdXJlcyB0aGF0IGFyZSBwYXJ0IG9mIHRoZSBzYW1lIG1lYXN1cmUgY2xhc3Mgc2hvdWxkIGhhdmUgdGhlIHNhbWUgbGFiZWwgZm9yIGBtZWFzdXJlQ2xhc3NgOyBpZiBtZWFzdXJlcyBmcm9tIGEgZGlmZmVyZW50IG1lYXN1cmUgY2xhc3MgaGF2ZSB0aGUgc2FtZSBsYWJlbCBmb3IgYG1lYXN1cmVDbGFzc2AsIHRoaXMgbWF5IGhhdmUgdG8gaW5jbHVkZSBhIGRpc2FtYnVhdGluZyBlbGVtZW50IChzdWNoIGFzIHRoZSBhdXRob3IgbmFtZSBvciB5ZWFyIG9mIHB1YmxpY2F0aW9uKSBzbyBtZWFzdXJlcyBmcm9tIGRpZmZlcmVudCBtZWFzdXJlIGNsYXNzZXMgYXJlIG5vdCBnaXZlbiB0aGUgc2FtZSBsYWJlbAotIGBpbnN0cnVtZW50YDogdGhlIGxvd2VyY2FzZSB2ZXJzaW9uIG9mIHRoZSBhYmJyZXZpYXRpb24KICAgIC0gc2hvdWxkIGJlIGxvd2VyY2FzZSB3aXRoIG5vIHB1bmN0dWF0aW9uCiAgICAtIHRoaXMgbWF5IGhhdmUgdG8gaW5jbHVkZSBhIGRpc2FtYnVhdGluZyBlbGVtZW50IChzdWNoIGFzIHRoZSBhdXRob3IgbmFtZSBvciB5ZWFyIG9mIHB1YmxpY2F0aW9uKSBzbyB0aGF0IHRoZXJlIGFyZSBubyBkdXBsaWNhdGVzIGluIHRoZSBgbWVhc3VyZWAgY29sdW1uCi0gYG1lYXN1cmVgOiBhIGNhbGN1bGF0ZWQgZmllbGQgdGhhdCBjb21iaW5lcyB0aGUgYG1lYXN1cmVDbGFzc2AgYW5kIHRoZSBgaW5zdHJ1bWVudGAgaW50byBvbmUgZmllbGQsIHNlcGFyYXRlZCBieSBhbiB1bmRlcnNjb3JlOyB0aGVyZSBzaG91bGQgYmUgbm8gZHVwbGljYXRlcyAoZHVwbGljYXRlcyBhcmUgaGlnaGxpZ2h0ZWQgaW4gcmVkKTsgdGhpcyBmaWVsZCBpcyB0aGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIG1lYXN1cmUKICAgIC0gZG8gKipub3QqKiBlbnRlciB0aGlzIG1hbnVhbGx5OyBkcmFnIHRoZSBmb3JtdWxhIGZyb20gb3RoZXIgY2VsbHMgaW4gdGhlIGNvbHVtbiB0byBjYWxjdWxhdGUKLSBgdHlwZWA6IHRoZSB0eXBlIG9mIG1lYXN1cmU7IG9uZSBvZjoKICAgIC0gYHF1ZXN0aW9ubmFpcmVgCiAgICAtIGBpbnRlcnZpZXdgCiAgICAtIGBvYnNlcnZhdGlvbmAKICAgIC0gYG90aGVyYAotIHJhdGVyOiB0aGUgcmF0ZXIgZm9yIHdob20gdGhlIG1lYXN1cmUgd2FzIGRlc2lnbmVkIHRvIGJlIGNvbXBsZXRlZDsgb25lIG9mOgogICAgLSBgcGFyZW50YAogICAgLSBgdGVhY2hlcmAKICAgIC0gYGNhcmVnaXZlcmA6IGNhcmVnaXZlcnMgd2hvIGFyZSBub3QgcGFyZW50cyBvciB0ZWFjaGVycyAoZS5nLiwgb3RoZXIgZmFtaWx5IG1lbWJlcnMgb3IgY2FyZSBwcm92aWRlcnMpCiAgICAtIGBzZWxmYAogICAgLSBgcGVlcmAKICAgIC0gYG51cnNlYAogICAgLSBgY2xpbmljaWFuYAogICAgLSBgbnVyc2VgCiAgICAtIGBzaWJsaW5nYAogICAgLSBgb3RoZXJgOiBhbnkgaW5mb3JtYW50IHdobyBrbm93cyB0aGUgY2hpbGQgd2VsbAotIGBhZ2VMb3dlclllYXJzYDogdGhlIGxvd2VyIGxpbWl0IG9mIHRoZSByYXRlZSdzIGFnZSByYW5nZSBmb3Igd2hpY2ggdGhlIG1lYXN1cmUgd2FzIGRlc2lnbmVkIHRvIGJlIGNvbXBsZXRlZCAoaW4geWVhcnMpCi0gYGFnZVVwcGVyWWVhcnNgOiB0aGUgdXBwZXIgbGltaXQgb2YgdGhlIHJhdGVlJ3MgYWdlIHJhbmdlIGZvciB3aGljaCB0aGUgbWVhc3VyZSB3YXMgZGVzaWduZWQgdG8gYmUgY29tcGxldGVkIChpbiB5ZWFycyk7IGlmIG5vIHVwcGVyIGxpbWl0IGlzIHNwZWNpZmllZCBpbiB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGluc3RydW1lbnQsIHVzZSB0aGUgb2xkZXN0IGFnZSBpbiB0aGUgb3JpZ2luYWwgc2FtcGxlLiBJZiB0aGUgb2xkZXN0IGFnZSBpcyBub3QgYXZhaWxhYmxlIGFuZCB0aGUgc2NhbGUgd2FzIGRlc2lnbmVkIHRvIGJlIHVzZWQgd2l0aG91dCBhbiB1cHBlciBhZ2UgbGltaXQsIHNwZWNpZnkgYDk5YC4KLSBgYWdlTG93ZXJNb250aHNgOiB0aGUgbG93ZXIgbGltaXQgb2YgdGhlIHJhdGVlJ3MgYWdlIHJhbmdlIGZvciB3aGljaCB0aGUgbWVhc3VyZSB3YXMgZGVzaWduZWQgdG8gYmUgY29tcGxldGVkIChpbiBtb250aHMp4oCUZXNwZWNpYWxseSByZWxldmFudCBmb3IgaW5mYW50cy90b2RkbGVycwogICAgLSB0aGlzIGlzIGNhbGN1bGF0ZWQgYXV0b21hdGljYWxseSB1c2luZyBhIGZvcm11bGEgYmFzZWQgb24gYGFnZUxvd2VyWWVhcnNgLCBzbyB5b3Ugc2hvdWxkIG5vdCBlbnRlciB0aGlzIHVubGVzcyB0aGUgbWVhc3VyZSBzcGVjaWZpZXMgcmF0ZWUncyBhZ2UgcmFuZ2UgaW4gbW9udGhzIHJhdGhlciB0aGFuIHllYXJzCi0gYGFnZVVwcGVyTW9udGhzYDogdGhlIHVwcGVyIGxpbWl0IG9mIHRoZSByYXRlZSdzIGFnZSByYW5nZSBmb3Igd2hpY2ggdGhlIG1lYXN1cmUgd2FzIGRlc2lnbmVkIHRvIGJlIGNvbXBsZXRlZCAoaW4gbW9udGhzKeKAlGVzcGVjaWFsbHkgcmVsZXZhbnQgZm9yIGluZmFudHMvdG9kZGxlcnMKICAgIC0gdGhpcyBpcyBjYWxjdWxhdGVkIGF1dG9tYXRpY2FsbHkgdXNpbmcgYSBmb3JtdWxhIGJhc2VkIG9uIGBhZ2VVcHBlclllYXJzYCwgc28geW91IHNob3VsZCBub3QgZW50ZXIgdGhpcyB1bmxlc3MgdGhlIG1lYXN1cmUgc3BlY2lmaWVzIHJhdGVlJ3MgYWdlIHJhbmdlIGluIG1vbnRocyByYXRoZXIgdGhhbiB5ZWFycwotIGByZXNwb25zZU9wdGlvbnNgOiB0aGUgcmVzcG9uc2Ugb3B0aW9ucyBmb3IgZWFjaCBpdGVtCiAgICAtIFVzZSBhIHNlbWljb2xvbiAoYDtgKSB0byBzZXBhcmF0ZSByZXNwb25zZSBvcHRpb25zCiAgICAtIEZvciBleGFtcGxlOiBgMD1Ob3QgVHJ1ZSAoYXMgZmFyIGFzIHlvdSBrbm93KTsgMT1Tb21ld2hhdCBvciBTb21ldGltZXMgVHJ1ZTsgMj1WZXJ5IFRydWUgb3IgT2Z0ZW4gVHJ1ZWAKLSBgcHJvcHJpZXRhcnlgOiB3aGV0aGVyIHRoZSBtZWFzdXJlIGlzIHByb3ByaWV0YXJ5OyBvbmUgb2Y6CiAgICAtIGB5ZXNgCiAgICAtIGBub2AKLSBgbm90ZXNgOiBhbnkgbm90ZXMgb24gdGhlIG1lYXN1cmUKLSBgdXJsYDogdGhlIFVSTCBmb3IgdGhlIG1lYXN1cmUgKGkuZS4sIHdoZXJlIHRvIGFjY2VzcyBvciBwdXJjaGFzZSBpdCk7IHlvdSBjYW4gaW5jbHVkZSBtdWx0aXBsZSBVUkxzIGlmIHRoZXkgd291bGQgYmUgdXNlZnVsIChzZXBhcmF0ZSB0aGVtIHdpdGggYSBzZW1pY29sb24pCi0gYGtleVJlZmVyZW5jZXNgOiBhbnkga2V5IHJlZmVyZW5jZXMgZm9yIHRoZSBtZWFzdXJlLCBpbmNsdWRpbmcgc2VtaW5hbCByZWZlcmVuY2VzLCByZWZlcmVuY2VzIHRoYXQgaW5jbHVkZSB0aGUgaXRlbXMsIGV0Yy47IHlvdSBjYW4gaW5jbHVkZSBtdWx0aXBsZSBrZXkgcmVmZXJlbmNlcyBpZiB0aGV5IHdvdWxkIGJlIHVzZWZ1bCAoc2VwYXJhdGUgdGhlbSB3aXRoIGEgc2VtaWNvbG9uKQotIGBpbnN0cnVtZW50UERGYDogd2hldGhlciBvciBub3Qgd2UgaGF2ZSB0aGUgUERGIG9mIHRoZSBpbnN0cnVtZW50IChpbmRpY2F0ZSB5ZXMgd2l0aCBhbiBgeGApOyBpZiB3ZSBhcmUgdW5hYmxlIHRvIG9idGFpbiBpdCwgc3BlY2lmeSB3aHkgbm90IChlLmcuLCBgbmVlZCB0byBvcmRlcmAgb3IgYGNhbm5vdCBmaW5kYCkKLSBgc291cmNlUmVmUERGYDogd2hldGhlciBvciBub3Qgd2UgaGF2ZSB0aGUgUERGIG9mIHRoZSBzb3VyY2UgcmVmZXJlbmNlIChpbmRpY2F0ZSB5ZXMgd2l0aCBhbiBgeGApOyBpZiB3ZSBhcmUgdW5hYmxlIHRvIG9idGFpbiBpdCwgc3BlY2lmeSB3aHkgbm90IChlLmcuLCBgbmVlZCB0byByZXF1ZXN0YCBvciBgY2Fubm90IGZpbmRgKQoKLSBgYXZhaWxhYmxlVG9PcmRlcmA6IHdoZXRoZXIgdGhlIGluc3RydW1lbnQgaXMgYXZhaWxhYmxlIHRvIG9yZGVyIGZyb20gcHVibGlzaGVyIG9yIGluc3RydW1lbnQgY3JlYXRvciAoaW5kaWNhdGUgeWVzIHdpdGggYW4gYHhgIGlmIGluc3RydW1lbnQgaXMgYXZhaWxhYmxlIHRvIG9yZGVyKTsgaWYgd2UgYXJlIHVuYWJsZSB0byBvYnRhaW4gaXQsIGxlYXZlIGJsYW5rCgojIyMgSG93IFJvd3MgYXJlIFNvcnRlZAoKVGhlIHJvd3MgaW4gdGhlIGBNZWFzdXJlc2AgdGFiIG9mIHRoZSBgRXhpc3RpbmcgTWVhc3VyZXMgYW5kIEl0ZW1zYCBzcHJlYWRzaGVldCBhcmUgc29ydGVkIGJ5IHRoZSBgbWVhc3VyZWAgY29sdW1uLCB3aGljaCBzb3J0cyBmaXJzdCBieSBgbWVhc3VyZUNsYXNzYCBhbmQgdGhlbiBieSBgaW5zdHJ1bWVudGAuCldoZW4gYWRkaW5nIHJvd3MgZm9yIG5ldyBtZWFzdXJlcywgcGxhY2UgdGhlIG5ldyByb3cgaW4gdGhlIGFwcHJvcHJpYXRlIGxvY2F0aW9uIGFjY29yZGluZ2x5LgoKIyMjIEhvdyB0byBJbmRpY2F0ZSBNZWFzdXJlcyBmcm9tIHRoZSBTYW1lICJNZWFzdXJlIENsYXNzIiB7I21lYXN1cmVDbGFzc30KCkFzIGRlc2NyaWJlZCBpbiB0aGUgW0RhdGEgRGljdGlvbmFyeV0oI2RhdGFEaWN0aW9uYXJ5LW1lYXN1cmVzKSwgdGhlICJtZWFzdXJlIGNsYXNzIiBpcyB0aGUgYnJvYWRlciBhc3Nlc3NtZW50IGZhbWlseSBvciBzeXN0ZW0uCk11bHRpcGxlIGluc3RydW1lbnRzIGNhbiBiZWxvbmcgdG8gdGhlIHNhbWUgbWVhc3VyZSBjbGFzcyAoZS5nLiwgYm90aCB0aGUgQ2hpbGQgQmVoYXZpb3IgQ2hlY2tsaXN0IGFuZCBUZWFjaGVyJ3MgUmVwb3J0IEZvcm0gYXJlIHBhcnQgb2YgdGhlIEFjaGVuYmFjaCBTeXN0ZW0gb2YgRW1waXJpY2FsbHkgQmFzZWQgQXNzZXNzbWVudCkuCklmIHRoZXJlIGFyZSBtdWx0aXBsZSBtZWFzdXJlcyB3aXRoaW4gdGhlIHNhbWUgbWVhc3VyZSBjbGFzcywgdXNlIGJvcmRlcnMgdG8gaW5kaWNhdGUgdGhhdCBtZWFzdXJlcyBoYXZlIHRoZSBzYW1lIG1lYXN1cmUgY2xhc3MuCkZvciBpbnN0YW5jZSwgdGhlIGZpcnN0IGFzc2Vzc21lbnQgaW4gYSBnaXZlbiBtZWFzdXJlIGNsYXNzIHNob3VsZCBoYXZlIGEgdG9wIGJvcmRlciwgYW5kIHRoZSBsYXN0IGFzc2Vzc21lbnQgaW4gYSBnaXZlbiBtZWFzdXJlIGNsYXNzIHNob3VsZCBoYXZlIGEgYm90dG9tIGJvcmRlci4KCiMjIEFkZCBpbnN0cnVtZW50cyB0byB0aGUgYEluc3RydW1lbnRzYCBmb2xkZXIgeyNhZGRJbnN0cnVtZW50c30KCklmIHRoZSBpbnN0cnVtZW50IGlzIGZyZWVseSBhdmFpbGFibGXigJRpLmUuLCBwdWJsaWNseSBhdmFpbGFibGUgb3IgcHJvdmlkZWQgaW4gYSBwdWJsaWNhdGlvbuKAlGFkZCB0aGUgaW5zdHJ1bWVudCB0byB0aGUgYEluc3RydW1lbnRzYCBmb2xkZXIsIGxvY2F0ZWQgW2hlcmVdKGh0dHBzOi8vZHJpdmUuZ29vZ2xlLmNvbS9kcml2ZS91LzAvZm9sZGVycy8xVUw5Xzl0YktQUWVLTkxmdGxCVGRXSTlrVmNxRW41MWYpLgpTYXZlIHRoZSBQREYgdXNpbmcgdGhlIGNhcGl0YWxpemVkIGFiYnJldmlhdGlvbiBvZiB0aGUgbWVhc3VyZSBuYW1lLgoKIyMgQWRkIHNvdXJjZSByZWZlcmVuY2UocykgdG8gdGhlIGBTb3VyY2UgUmVmZXJlbmNlc2AgZm9sZGVyIHsjYWRkU291cmNlUmVmc30KCklmIHRoZSBpbnN0cnVtZW50IGlzIGZyZWVseSBhdmFpbGFibGXigJRpLmUuLCBwdWJsaWNseSBhdmFpbGFibGUgb3IgcHJvdmlkZWQgaW4gYSBwdWJsaWNhdGlvbuKAlGFkZCB0aGUgc291cmNlIHJlZmVyZW5jZShzKSB0byB0aGUgYFNvdXJjZSBSZWZlcmVuY2VzYCBmb2xkZXIsIGxvY2F0ZWQgW2hlcmVdKGh0dHBzOi8vZHJpdmUuZ29vZ2xlLmNvbS9kcml2ZS91LzAvZm9sZGVycy8xeVdoUnZyNHBIYlJJcFloaVZ2dmdoazRnM3dHcTAtR1YpLgpTYXZlIHRoZSBzb3VyY2UgcmVmZXJlbmNlKHMpIHVzaW5nIHRoZSBmb2xsb3dpbmcgZm9ybWF0LCBkZXBlbmRpbmcgb24gdGhlIG51bWJlciBvZiBhdXRob3JzOgoKLSBvbmUgYXV0aG9yOiAiQXV0aG9yLCBZZWFyLCBBYmJyZXZpYXRpb24ucGRmIgogICAgLSBlLmcuOiAiQWNoZW5iYWNoLCAyMDAwLCBDQkNMLnBkZiIKLSB0d28gYXV0aG9yczogIkF1dGhvcjEgJiBBdXRob3IyLCBZZWFyLCBBYmJyZXZpYXRpb24ucGRmIgogICAgLSBlLmcuOiAiQWNoZW5iYWNoICYgUmVzY29ybGEsIDIwMDAsIENCQ0wucGRmIgotIHRocmVlIG9yIG1vcmUgYXV0aG9yczogIkF1dGhvcjEgZXQgYWwsIFllYXIsIEFiYnJldmlhdGlvbi5wZGYiCiAgICAtIGUuZy46ICJBY2hlbmJhY2ggZXQgYWwsIDIwMDAsIENCQ0wucGRmIgoKIyMgQWRkIHNjb3JpbmcgbWFudWFsKHMpIHRvIHRoZSBgU2NvcmluZ2AgZm9sZGVyIHsjc2NvcmluZ30KCklmIHRoZSBpbnN0cnVtZW50IGlzIGZyZWVseSBhdmFpbGFibGXigJRpLmUuLCBwdWJsaWNseSBhdmFpbGFibGUgb3IgcHJvdmlkZWQgaW4gYSBwdWJsaWNhdGlvbuKAlGFkZCB0aGUgc2NvcmluZyBtYW51YWwocykgKGFzIGRvY3VtZW50cy9QREZzKSB0byB0aGUgYFNjb3JpbmdgIGZvbGRlciwgbG9jYXRlZCBbaGVyZV0oaHR0cHM6Ly9kcml2ZS5nb29nbGUuY29tL2RyaXZlL3UvMC9mb2xkZXJzLzFwdElsN0cya3NQZGozWVpWeFlpUEdqZ2pheXdfYm9yWSkuClNhdmUgdGhlIFBERiB1c2luZyB0aGUgY2FwaXRhbGl6ZWQgYWJicmV2aWF0aW9uIG9mIHRoZSBtZWFzdXJlIG5hbWUuCgojIFN0YWdlIDI6IE9idGFpbiBNZWFzdXJlcyB7I29idGFpbk1lYXN1cmVzfQoKVGhpcyBzdGFnZSBpbnZvbHZlcyBvYnRhaW5pbmcgYXMgbWFueSBtZWFzdXJlcyBhcyBwb3NzaWJsZSB0aGF0IGFyZSBub3QgZnJlZWx5IGF2YWlsYWJsZeKAlGUuZy4sIG1lYXN1cmVzIHRoYXQgYXJlIHByb3ByaWV0YXJ5IChlLmcuLCBieSBwdXJjaGFzaW5nIHRoZW0pIG9yIGFyZSBub3QgcHJvdmlkZWQgaW4gcHVibGljYXRpb25zIChlLmcuLCBieSBjb250YWN0aW5nIHRoZSBhdXRob3JzKS4KQWZ0ZXIgb2J0YWluaW5nIG1lYXN1cmVzLCBjb21wbGV0ZSBzdGVwcyBvZiBTdGFnZSAxIHdpdGggdGhlIG5ld2x5IG9idGFpbmVkIG1lYXN1cmVzLCBpbmNsdWRpbmc6CgotIGFkZCB0aGUgaW5zdHJ1bWVudCAoYXMgZG9jdW1lbnRzL1BERnMpIHRvIHRoZSBbYEluc3RydW1lbnRzYF0oaHR0cHM6Ly9kcml2ZS5nb29nbGUuY29tL2RyaXZlL3UvMC9mb2xkZXJzLzFVTDlfOXRiS1BRZUtOTGZ0bEJUZFdJOWtWY3FFbjUxZikgZm9sZGVyIChkZXNjcmliZWQgW2hlcmVdKCNhZGRJbnN0cnVtZW50cykpCi0gYWRkIHRoZSBzb3VyY2UgcmVmZXJlbmNlKHMpIChhcyBkb2N1bWVudHMvUERGcykgdG8gdGhlIFtgU291cmNlIFJlZmVyZW5jZXNgXShodHRwczovL2RyaXZlLmdvb2dsZS5jb20vZHJpdmUvdS8wL2ZvbGRlcnMvMXlXaFJ2cjRwSGJSSXBZaGlWdnZnaGs0ZzN3R3EwLUdWKSBmb2xkZXIgKGRlc2NyaWJlZCBbaGVyZV0oI2FkZFNvdXJjZVJlZnMpKQotIGFkZCB0aGUgc2NvcmluZyBtYW51YWwocykgKGFzIGRvY3VtZW50cy9QREZzKSB0byB0aGUgW2BTY29yaW5nYF0oaHR0cHM6Ly9kcml2ZS5nb29nbGUuY29tL2RyaXZlL3UvMC9mb2xkZXJzLzFwdElsN0cya3NQZGozWVpWeFlpUEdqZ2pheXdfYm9yWSkgZm9sZGVyIChkZXNjcmliZWQgW2hlcmVdKCNzY29yaW5nKSkKCiMgU3RhZ2UgMzogSWRlbnRpZnkgdGhlIFNjYWxlcyBhbmQgU3Vic2NhbGVzIGZvciBFYWNoIE1lYXN1cmUgeyNzY2FsZXNTdWJzY2FsZXN9CgpUaGlzIHN0YWdlIGludm9sdmVzIGlkZW50aWZ5aW5nIHRoZSBzY2FsZXMgYW5kIHN1YnNjYWxlcyBmb3IgZWFjaCBtZWFzdXJlLgpGb3IgYSBtZWFzdXJlLCBpZGVudGlmeSB0aGUgbmFtZXMgb2YgdGhlIHNjYWxlcyBhbmQgc3Vic2NhbGVzIGFzIHNwZWNpZmllZCBieSB0aGUgYXV0aG9ycy4KRmlsbCBvdXQgdGhlIFtgU2NhbGVzIGFuZCBTdWJzY2FsZXNgXShodHRwczovL2RvY3MuZ29vZ2xlLmNvbS9zcHJlYWRzaGVldHMvZC8xbHVkdVpheXlWbU9OZHhCQ2N2ck1HVnYxdnNoaEh6UTdlRU9MZzFhYU14RS9lZGl0I2dpZD02MTgzNTk5NjYpIHRhYiBvZiB0aGUgYEV4aXN0aW5nIE1lYXN1cmVzIGFuZCBJdGVtc2Agc3ByZWFkc2hlZXQuCkZvbGxvdyB0aGUgQ2FtZWwgY2FzZSBuYW1pbmcgY29udmVudGlvbiB3aGVuIGFkZGluZyB0aGUgbmFtZXMgb2YgdGhlIHNjYWxlcyBhbmQgc3Vic2NhbGVzIHRvIHRoZSBNZWFzdXJlcyB0YWJsZSAoZS5nLiwgIlJ1bGUgQnJlYWtpbmcgQmVoYXZpb3IiID0gYHJ1bGVCcmVha2luZ0JlaGF2aW9yYCkuCklmIGEgc2NhbGUgb3Igc3Vic2NhbGUgZG9lcyBub3QgaGF2ZSBhIGNsZWFyIG5hbWUsIHVzZSB0aGUgbmFtaW5nIGNvbnZlbnRpb24gdG8gbGFiZWwgd2l0aCAx4oCTMyB3b3JkcyB0aGF0IGJlc3QgZGVzY3JpYmUgdGhlIHNjYWxlIG9yIHN1YnNjYWxlLgoKIyMgRGF0YSBEaWN0aW9uYXJ5IHsjZGF0YURpY3Rpb25hcnktc3Vic2NhbGVzfQoKLSBgbWVhc3VyZWA6IHRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgbWVhc3VyZTsgY29tYmluZXMgdGhlIGBtZWFzdXJlQ2xhc3NgIGFuZCB0aGUgYGluc3RydW1lbnRgIGludG8gb25lIGZpZWxkOyBzaG91bGQgYmUgdGhlIHNhbWUgdmFsdWUgYXMgdGhlIGBtZWFzdXJlYCBpbiB0aGUgW2BNZWFzdXJlc2BdKGh0dHBzOi8vZG9jcy5nb29nbGUuY29tL3NwcmVhZHNoZWV0cy9kLzFsdWR1WmF5eVZtT05keEJDY3ZyTUdWdjF2c2hoSHpRN2VFT0xnMWFhTXhFL2VkaXQjZ2lkPTApIHRhYiBvZiB0aGUgYEV4aXN0aW5nIE1lYXN1cmVzIGFuZCBJdGVtc2Agc3ByZWFkc2hlZXQ7IHNlZSB0aGUgW0RhdGEgRGljdGlvbmFyeSBmb3IgdGhlIE1lYXN1cmVzIHRhYl0oI2RhdGFEaWN0aW9uYXJ5LW1lYXN1cmVzKSBmb3IgYSBkZXRhaWxlZCBkZXNjcmlwdGlvbiBvZiB0aGUgY29sdW1uCi0gYGhpZ2hlck9yZGVyU2NhbGVgOiB0aGUgaGlnaGVyLW9yZGVyIHNjYWxlKHMpIChpZiBhbnkpIGZvciB0aGUgbWVhc3VyZTsgYSBoaWdoZXItb3JkZXIgc2NhbGUgaXMgYSBzY2FsZSB0aGF0IHN1YnN1bWVzIG11bHRpcGxlIHN1YnNjYWxlczsgc2hvdWxkIGJlICJuL2EiIGlmIHRoZSBtZWFzdXJlIGRvZXMgbm90IGhhdmUgYSBoaWdoZXItb3JkZXIgc2NhbGUKLSBgc3Vic2NhbGVgOiB0aGUgc3Vic2NhbGUocykgb2YgdGhlIG1lYXN1cmU7CgojIFN0YWdlIDQ6IElkZW50aWZ5IHRoZSBJdGVtcyB7I2lkZW50aWZ5SXRlbXN9CgpUaGlzIHN0YWdlIGludm9sdmVzIGlkZW50aWZ5aW5nIHRoZSBpdGVtcyBmb3IgZWFjaCBzY2FsZSBhbmQgc3Vic2NhbGUgZm9yIGVhY2ggbWVhc3VyZS4KVG8gZG8gdGhpcywgZmlsbCBvdXQgdGhlIFtgSXRlbXNgXShodHRwczovL2RvY3MuZ29vZ2xlLmNvbS9zcHJlYWRzaGVldHMvZC8xbHVkdVpheXlWbU9OZHhCQ2N2ck1HVnYxdnNoaEh6UTdlRU9MZzFhYU14RS9lZGl0I2dpZD0xOTMwOTgxMzE2KSB0YWIgb2YgdGhlIGBFeGlzdGluZyBNZWFzdXJlcyBhbmQgSXRlbXNgIHNwcmVhZHNoZWV0IGJ5IHRyYW5zY3JpYmluZyB0aGUgaXRlbXMgZnJvbSB0aGUgUERGIG9mIGVhY2ggbWVhc3VyZSB0aGF0IGlzIGxvY2F0ZWQgaW4gdGhlIFtgSW5zdHJ1bWVudHNgXShodHRwczovL2RyaXZlLmdvb2dsZS5jb20vZHJpdmUvdS8wL2ZvbGRlcnMvMVVMOV85dGJLUFFlS05MZnRsQlRkV0k5a1ZjcUVuNTFmKSBmb2xkZXIuCgojIyBEYXRhIERpY3Rpb25hcnkgeyNkYXRhRGljdGlvbmFyeS1pdGVtc30KCi0gYGl0ZW1Xb3JkaW5nYDogdGhlIHdvcmRpbmcgb2YgdGhlIGl0ZW0KLSBgZmFjZXRgOiB0aGUgZmFjZXQgdGhhdCBpcyBhc3Nlc3NlZCBieSB0aGUgaXRlbQotIGByZXZlcnNlU2NvcmVkYDogd2hldGhlciB0aGUgaXRlbSBpcyByZXZlcnNlIHNjb3JlZDsgb25lIG9mOgogICAgLSBgeWVzYAogICAgLSBgbm9gCi0gYG1lYXN1cmVgOiB0aGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIG1lYXN1cmUgdGhhdCB0aGUgaXRlbSBpcyBmcm9tOyBjb21iaW5lcyB0aGUgYG1lYXN1cmVDbGFzc2AgYW5kIHRoZSBgaW5zdHJ1bWVudGAgaW50byBvbmUgZmllbGQ7IHNob3VsZCBiZSB0aGUgc2FtZSB2YWx1ZSBhcyB0aGUgYG1lYXN1cmVgIGluIHRoZSBbYE1lYXN1cmVzYF0oaHR0cHM6Ly9kb2NzLmdvb2dsZS5jb20vc3ByZWFkc2hlZXRzL2QvMWx1ZHVaYXl5Vm1PTmR4QkNjdnJNR1Z2MXZzaGhIelE3ZUVPTGcxYWFNeEUvZWRpdCNnaWQ9MCkgdGFiIG9mIHRoZSBgRXhpc3RpbmcgTWVhc3VyZXMgYW5kIEl0ZW1zYCBzcHJlYWRzaGVldDsgc2VlIHRoZSBbRGF0YSBEaWN0aW9uYXJ5IGZvciB0aGUgTWVhc3VyZXMgdGFiXSgjZGF0YURpY3Rpb25hcnktbWVhc3VyZXMpIGZvciBhIGRldGFpbGVkIGRlc2NyaXB0aW9uIG9mIHRoZSBjb2x1bW4KLSBgaXRlbU51bWJlcmA6IHRoZSBudW1iZXIgb2YgdGhlIGl0ZW0gb24gYG1lYXN1cmUxYAotIGBoaWdoZXJPcmRlclNjYWxlYDogdGhlIGhpZ2hlci1vcmRlciBzY2FsZSBvZiB0aGUgaXRlbSBvbiBgbWVhc3VyZWA7IHNlZSB0aGUgW0RhdGEgRGljdGlvbmFyeSBmb3IgdGhlIFNjYWxlcyBhbmQgU3Vic2NhbGVzIHRhYl0oI2RhdGFEaWN0aW9uYXJ5LXN1YnNjYWxlcykgZm9yIGEgZGV0YWlsZWQgZGVzY3JpcHRpb24gb2YgdGhlIGNvbHVtbgotIGBpdGVtU29ydE9yZGVyYDogdGhlIHNvcnQgb3JkZXIgKGFzY2VuZGluZykgZm9yIGFuIGl0ZW0gaW4gYSBnaXZlbiBtZWFzdXJlOyB0aGUgc29ydCBvcmRlciBzaG91bGQgcmVmbGVjdCB0aGUgb3JkZXIgdGhhdCB3ZSB3YW50IHRoZSBpdGVtcyBwcmVzZW50ZWTigJRlaXRoZXIgYmFzZWQgb24gc3Vic2NhbGUgZ3JvdXBpbmdzIG9yIGJhc2VkIG9uIHRoZSBvcmRlciBpbiB3aGljaCB0aGV5IGFyZSBwcmVzZW50IGluIHRoZSBpbnN0cnVtZW50Ci0gYHN1YnNjYWxlYDogdGhlIHN1YnNjYWxlIG9mIHRoZSBpdGVtIG9uIGBtZWFzdXJlYDsgc2VlIHRoZSBbRGF0YSBEaWN0aW9uYXJ5IGZvciB0aGUgU2NhbGVzIGFuZCBTdWJzY2FsZXMgdGFiXSgjZGF0YURpY3Rpb25hcnktc3Vic2NhbGVzKSBmb3IgYSBkZXRhaWxlZCBkZXNjcmlwdGlvbiBvZiB0aGUgY29sdW1uCi0gYHNpbmNlU2VwdGVtYmVyMjAyNGA6IFdoZXRoZXIgdGhlIGl0ZW0gd2FzIGFkZGVkIGFmdGVyIFNlcHRlbWJlciAyMDI0OyBlbnRlciBhbiB4IHRvIGluZGljYXRlIHllcy4KCjwhLS0KVGhlIGZvbGxvd2luZyBjb2x1bW5zIGFyZSBmaWxsZWQgb3V0IG9ubHkgaWYgdGhlIHNhbWUgaXRlbSBhcHBlYXJzIG9uIG11bHRpcGxlIG1lYXN1cmVzIHdpdGhpbiB0aGUgc2FtZSBbbWVhc3VyZSBjbGFzc10oI21lYXN1cmVDbGFzcyk6CgotIGBtZWFzdXJlMmAKLSBgbWVhc3VyZTJpdGVtTnVtYmVyYAotIGBtZWFzdXJlMkhpZ2hlck9yZGVyU2NhbGVgCi0gYG1lYXN1cmUyU3Vic2NhbGVgCi0gYG1lYXN1cmUzYAotIGBtZWFzdXJlM2l0ZW1OdW1iZXJgCi0gYG1lYXN1cmUzSGlnaGVyT3JkZXJTY2FsZWAKLSBgbWVhc3VyZTNTdWJzY2FsZWAKLSBgbWVhc3VyZTRgCi0gYG1lYXN1cmU0aXRlbU51bWJlcmAKLSBgbWVhc3VyZTRIaWdoZXJPcmRlclNjYWxlYAotIGBtZWFzdXJlNFN1YnNjYWxlYAotIGBtZWFzdXJlNWAKLSBgbWVhc3VyZTVpdGVtTnVtYmVyYAotIGBtZWFzdXJlNUhpZ2hlck9yZGVyU2NhbGVgCi0gYG1lYXN1cmU1U3Vic2NhbGVgCi0tPgoKIyBTdGFnZSA1OiBJZGVudGlmeSB0aGUgRmFjZXQgQXNzZXNzZWQgYnkgRWFjaCBpdGVtIHsjaWRlbnRpZnlJdGVtRmFjZXRzfQoKVG8gcHJldmVudCBtdWx0aXBsZSBwZW9wbGUgZnJvbSBjb2RpbmcgdGhlIHNhbWUgc2NhbGUsIHdyaXRlIHlvdXIgbmFtZSBpbiB0aGUgaXRlbUZhY2V0IGNvbHVtbiBuZXh0IHRvIGVhY2ggbWVhc3VyZSB5b3UgYXJlIHdvcmtpbmcgb24gaW4gWydNZWFzdXJlcyddKGh0dHBzOi8vZG9jcy5nb29nbGUuY29tL3NwcmVhZHNoZWV0cy9kLzFsdWR1WmF5eVZtT05keEJDY3ZyTUdWdjF2c2hoSHpRN2VFT0xnMWFhTXhFL2VkaXQjZ2lkPTApLgpVc2luZyB0aGUgbGlzdCBvZiBbJ0ZhY2V0cyddKGh0dHBzOi8vZG9jcy5nb29nbGUuY29tL3NwcmVhZHNoZWV0cy9kLzFsdWR1WmF5eVZtT05keEJDY3ZyTUdWdjF2c2hoSHpRN2VFT0xnMWFhTXhFL2VkaXQjZ2lkPTYzOTM4NzY4MyksIGlkZW50aWZ5IHRoZSBmYWNldCBvZiBlYWNoIGl0ZW0ncyBmb3IgdGhlIHNjYWxlIHlvdSBoYXZlIHNlbGVjdGVkIHRvIHdvcmsgb24gaGVyZTogWydJdGVtcyddKGh0dHBzOi8vZG9jcy5nb29nbGUuY29tL3NwcmVhZHNoZWV0cy9kLzFsdWR1WmF5eVZtT05keEJDY3ZyTUdWdjF2c2hoSHpRN2VFT0xnMWFhTXhFL2VkaXQjZ2lkPTE5MzA5ODEzMTYpCllvdSBjYW4gbGVhdmUgY29tbWVudHMgaW4gWydJdGVtcyddIGZvciB5b3Vyc2VsZiB0byBhZGRyZXNzLgpJZiBxdWVzdGlvbnMgY29tZSB1cCBmb3IgdGhlIGdyb3VwIHRvIGRpc2N1c3Mgb3IgaWYgeW91IGhhdmUgaWRlYXMgZm9yIHJldmlzaW5nIHRoZSBmYWNldHMsIHlvdSBjYW4gdXNlIFNsYWNrLgpNYXJrIGFuIHggYnkgYW55IHNjYWxlcyB5b3UndmUgY29tcGxldGVkIChpLmUuLCB3aGljaCBoYXZlIGFsbCB0aGUgaXRlbSBmYWNldHMgaWRlbnRpZmllZCkgaW4gdGhlIGl0ZW1GYWNldCBjb2x1bW4gaW4gWydNZWFzdXJlcyddKGh0dHBzOi8vZG9jcy5nb29nbGUuY29tL3NwcmVhZHNoZWV0cy9kLzFsdWR1WmF5eVZtT05keEJDY3ZyTUdWdjF2c2hoSHpRN2VFT0xnMWFhTXhFL2VkaXQjZ2lkPTApLgo=



Developmental Psychopathology Lab