User Tools

Site Tools


charlottesville:foia

FOIA — Freedom of Information Act

Back to Charlottesville Process Guide

This page documents the full workflow for Virginia FOIA — both requesting records as a citizen and responding to requests as city staff. All processes are grounded in the Virginia Freedom of Information Act, §§ 2.2-3700 through 2.2-3715 (Code of Virginia) and Charlottesville's local implementation through the City Attorney's Office.

This page is designed with SpiffWorkflow in mind. Every BPMN diagram on this page maps directly to executable process definitions, with roles, form tasks, and decision gateways that can be wired to SpiffWorkflow service tasks, user task forms, and lane-based role assignments.


Quick Reference

Item Detail
Governing Law Virginia FOIA, §§ 2.2-3700 – 2.2-3715
City Contact City Attorney's Office, 605 E Main St (P.O. Box 911)
Phone 434-970-3131
Fax 434-970-3890
Online Portal Submit a FOIA Request (charlottesville.gov)
Response Deadline 5 working days from receipt (§ 2.2-3704.B)
Extension Additional 7 working days if response not possible (§ 2.2-3704.B.4)
Cost Threshold Notify requester if cost likely to exceed $200; deposit may be required (§ 2.2-3704.H)
Enforcement Petition for mandamus / injunction; court hearing within 7 days of filing (§ 2.2-3713.C)
Penalty (Willful) $500–$2,000 per violation; $2,000–$5,000 for repeat (§ 2.2-3714.A)

Policy and Scope (§ 2.2-3700)

Virginia FOIA establishes a presumption of openness: all public records and meetings are presumed open unless a specific exemption is properly invoked. The law is to be interpreted liberally in favor of access, with exemptions construed narrowly. Any local ordinance conflicting with FOIA is void.

Who may request: Citizens of the Commonwealth, media representatives (newspapers, magazines, radio, TV).

What is covered: Any “writing or recording” — paper, electronic file, audio/video, any format — prepared or owned by a public body or its officers, employees, or agents in the transaction of public business.

Key principle: A requester need not cite FOIA in their request, need not explain why they want the records, and the agency bears the burden of proving any exemption applies.

FOIA Officer Requirement (§ 2.2-3704.2)

Every local public body must designate a FOIA Officer who:

For Charlottesville, the FOIA Officer is housed in the City Attorney's Office. Constitutional officers (Commissioner of Revenue, Treasurer, Commonwealth's Attorney, Sheriff, Clerk of Court) each designate their own FOIA officers.


II. Records Request — Citizen Process

This is the primary process for any citizen, journalist, or organization seeking records from the City of Charlottesville. The process covers all channels of submission, response types, cost handling, and the path to court enforcement.

SpiffWorkflow Notes

This process maps to a multi-lane workflow in SpiffWorkflow:

  • Lane: Requester — draft, submit, respond to cost estimate, receive records or denial, decide whether to petition
  • Lane: FOIA Officer — log, clock, route, review, respond
  • Lane: City Attorney — legal review of exemptions
  • Service Task: automated clock/deadline enforcement triggering escalation if no response within 5 working days
  • User Task Forms: foia-request-schema.json captures record description, preferred delivery format, requester contact info
Cjw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+CjxicG1uOmRlZmluaXRpb25zIHhtbG5zOmJwbW49Imh0dHA6Ly93d3cub21nLm9yZy9zcGVjL0JQTU4vMjAxMDA1MjQvTU9ERUwiIHhtbG5zOmJwbW5kaT0iaHR0cDovL3d3dy5vbWcub3JnL3NwZWMvQlBNTi8yMDEwMDUyNC9ESSIgeG1sbnM6ZGM9Imh0dHA6Ly93d3cub21nLm9yZy9zcGVjL0RELzIwMTAwNTI0L0RDIiB4bWxuczpkaT0iaHR0cDovL3d3dy5vbWcub3JnL3NwZWMvREQvMjAxMDA1MjQvREkiIHhtbG5zOnNwaWZmd29ya2Zsb3c9Imh0dHA6Ly9zcGlmZndvcmtmbG93Lm9yZy9icG1uL3NjaGVtYS8xLjAvY29yZSIgaWQ9IkZPSUFfQ29yZSIgdGFyZ2V0TmFtZXNwYWNlPSJodHRwOi8vYnBtbi5pby9zY2hlbWEvYnBtbiIgZXhwb3J0ZXI9IkNhbXVuZGEgTW9kZWxlciIgZXhwb3J0ZXJWZXJzaW9uPSIzLjAuMC1kZXYiPgogIDxicG1uOnByb2Nlc3MgaWQ9ImZvaWFfY29yZV9wcm9jZXNzIiBuYW1lPSJGT0lBIFJlY29yZHMgUmVxdWVzdCDigJQgQ29yZSBGbG93IiBpc0V4ZWN1dGFibGU9InRydWUiPgogICAgPGJwbW46c3RhcnRFdmVudCBpZD0iU0VfZm9pYSIgbmFtZT0iUmVxdWVzdGVyIElkZW50aWZpZXMgTmVlZCBmb3IgUHVibGljIFJlY29yZHMiPgogICAgICA8YnBtbjpvdXRnb2luZz5GbG93X2YxPC9icG1uOm91dGdvaW5nPgogICAgPC9icG1uOnN0YXJ0RXZlbnQ+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfZjEiIHNvdXJjZVJlZj0iU0VfZm9pYSIgdGFyZ2V0UmVmPSJUYXNrX2ZfZHJhZnQiLz4KICAgIDxicG1uOnVzZXJUYXNrIGlkPSJUYXNrX2ZfZHJhZnQiIG5hbWU9IkRyYWZ0IEZPSUEgUmVxdWVzdCAoSWRlbnRpZnkgUmVjb3JkcyB3aXRoIFJlYXNvbmFibGUgU3BlY2lmaWNpdHkpIj4KICAgICAgPGJwbW46ZXh0ZW5zaW9uRWxlbWVudHM+CiAgICAgICAgPHNwaWZmd29ya2Zsb3c6cHJvcGVydGllcz4KICAgICAgICAgIDxzcGlmZndvcmtmbG93OnByb3BlcnR5IG5hbWU9ImZvcm1Kc29uU2NoZW1hRmlsZW5hbWUiIHZhbHVlPSJmb2lhLXJlcXVlc3Qtc2NoZW1hLmpzb24iLz4KICAgICAgICAgIDxzcGlmZndvcmtmbG93OnByb3BlcnR5IG5hbWU9ImZvcm1VaVNjaGVtYUZpbGVuYW1lIiB2YWx1ZT0iZm9pYS1yZXF1ZXN0LXVpc2NoZW1hLmpzb24iLz4KICAgICAgICA8L3NwaWZmd29ya2Zsb3c6cHJvcGVydGllcz4KICAgICAgPC9icG1uOmV4dGVuc2lvbkVsZW1lbnRzPgogICAgICA8YnBtbjppbmNvbWluZz5GbG93X2YxPC9icG1uOmluY29taW5nPgogICAgICA8YnBtbjpvdXRnb2luZz5GbG93X2YyPC9icG1uOm91dGdvaW5nPgogICAgPC9icG1uOnVzZXJUYXNrPgogICAgPGJwbW46c2VxdWVuY2VGbG93IGlkPSJGbG93X2YyIiBzb3VyY2VSZWY9IlRhc2tfZl9kcmFmdCIgdGFyZ2V0UmVmPSJHV19mX2NoYW5uZWwiLz4KICAgIDxicG1uOmV4Y2x1c2l2ZUdhdGV3YXkgaWQ9IkdXX2ZfY2hhbm5lbCIgbmFtZT0iU3VibWlzc2lvbiBDaGFubmVsPyIgZGVmYXVsdD0iRmxvd19mX29ubGluZSI+CiAgICAgIDxicG1uOmluY29taW5nPkZsb3dfZjI8L2JwbW46aW5jb21pbmc+CiAgICAgIDxicG1uOm91dGdvaW5nPkZsb3dfZl9vbmxpbmU8L2JwbW46b3V0Z29pbmc+CiAgICAgIDxicG1uOm91dGdvaW5nPkZsb3dfZl9tYWlsPC9icG1uOm91dGdvaW5nPgogICAgICA8YnBtbjpvdXRnb2luZz5GbG93X2ZfaW5wZXJzb248L2JwbW46b3V0Z29pbmc+CiAgICA8L2JwbW46ZXhjbHVzaXZlR2F0ZXdheT4KICAgIDxicG1uOnNlcXVlbmNlRmxvdyBpZD0iRmxvd19mX29ubGluZSIgbmFtZT0iT25saW5lIFBvcnRhbCIgc291cmNlUmVmPSJHV19mX2NoYW5uZWwiIHRhcmdldFJlZj0iVGFza19mX3N1Ym1pdF9vbmxpbmUiLz4KICAgIDxicG1uOnNlcXVlbmNlRmxvdyBpZD0iRmxvd19mX21haWwiIG5hbWU9Ik1haWwgLyBGYXgiIHNvdXJjZVJlZj0iR1dfZl9jaGFubmVsIiB0YXJnZXRSZWY9IlRhc2tfZl9zdWJtaXRfbWFpbCI+CiAgICAgIDxicG1uOmNvbmRpdGlvbkV4cHJlc3Npb24+aXNNYWlsPC9icG1uOmNvbmRpdGlvbkV4cHJlc3Npb24+CiAgICA8L2JwbW46c2VxdWVuY2VGbG93PgogICAgPGJwbW46c2VxdWVuY2VGbG93IGlkPSJGbG93X2ZfaW5wZXJzb24iIG5hbWU9IkluIFBlcnNvbiIgc291cmNlUmVmPSJHV19mX2NoYW5uZWwiIHRhcmdldFJlZj0iVGFza19mX3N1Ym1pdF9pbnBlcnNvbiI+CiAgICAgIDxicG1uOmNvbmRpdGlvbkV4cHJlc3Npb24+aXNJblBlcnNvbjwvYnBtbjpjb25kaXRpb25FeHByZXNzaW9uPgogICAgPC9icG1uOnNlcXVlbmNlRmxvdz4KICAgIDxicG1uOnVzZXJUYXNrIGlkPSJUYXNrX2Zfc3VibWl0X29ubGluZSIgbmFtZT0iU3VibWl0IHZpYSBDaXR5IE9ubGluZSBSZWNvcmRzIFBvcnRhbCI+CiAgICAgIDxicG1uOmluY29taW5nPkZsb3dfZl9vbmxpbmU8L2JwbW46aW5jb21pbmc+CiAgICAgIDxicG1uOm91dGdvaW5nPkZsb3dfZm8xPC9icG1uOm91dGdvaW5nPgogICAgPC9icG1uOnVzZXJUYXNrPgogICAgPGJwbW46bWFudWFsVGFzayBpZD0iVGFza19mX3N1Ym1pdF9tYWlsIiBuYW1lPSJNYWlsIC8gRmF4IHRvIENpdHkgQXR0b3JuZXkgKFAuTy4gQm94IDkxMSwgRmF4IDQzNC05NzAtMzg5MCkiPgogICAgICA8YnBtbjppbmNvbWluZz5GbG93X2ZfbWFpbDwvYnBtbjppbmNvbWluZz4KICAgICAgPGJwbW46b3V0Z29pbmc+Rmxvd19mbzI8L2JwbW46b3V0Z29pbmc+CiAgICA8L2JwbW46bWFudWFsVGFzaz4KICAgIDxicG1uOm1hbnVhbFRhc2sgaWQ9IlRhc2tfZl9zdWJtaXRfaW5wZXJzb24iIG5hbWU9IlZpc2l0IENpdHkgQXR0b3JuZXkncyBPZmZpY2UgKDYwNSBFIE1haW4gU3QpIj4KICAgICAgPGJwbW46aW5jb21pbmc+Rmxvd19mX2lucGVyc29uPC9icG1uOmluY29taW5nPgogICAgICA8YnBtbjpvdXRnb2luZz5GbG93X2ZvMzwvYnBtbjpvdXRnb2luZz4KICAgIDwvYnBtbjptYW51YWxUYXNrPgogICAgPGJwbW46ZXhjbHVzaXZlR2F0ZXdheSBpZD0iR1dfZl9yZWNlaXZlZCIgbmFtZT0iUmVxdWVzdCBSZWNlaXZlZCBieSBGT0lBIE9mZmljZXIiPgogICAgICA8YnBtbjppbmNvbWluZz5GbG93X2ZvMTwvYnBtbjppbmNvbWluZz4KICAgICAgPGJwbW46aW5jb21pbmc+Rmxvd19mbzI8L2JwbW46aW5jb21pbmc+CiAgICAgIDxicG1uOmluY29taW5nPkZsb3dfZm8zPC9icG1uOmluY29taW5nPgogICAgICA8YnBtbjpvdXRnb2luZz5GbG93X2YzPC9icG1uOm91dGdvaW5nPgogICAgPC9icG1uOmV4Y2x1c2l2ZUdhdGV3YXk+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfZm8xIiBzb3VyY2VSZWY9IlRhc2tfZl9zdWJtaXRfb25saW5lIiB0YXJnZXRSZWY9IkdXX2ZfcmVjZWl2ZWQiLz4KICAgIDxicG1uOnNlcXVlbmNlRmxvdyBpZD0iRmxvd19mbzIiIHNvdXJjZVJlZj0iVGFza19mX3N1Ym1pdF9tYWlsIiB0YXJnZXRSZWY9IkdXX2ZfcmVjZWl2ZWQiLz4KICAgIDxicG1uOnNlcXVlbmNlRmxvdyBpZD0iRmxvd19mbzMiIHNvdXJjZVJlZj0iVGFza19mX3N1Ym1pdF9pbnBlcnNvbiIgdGFyZ2V0UmVmPSJHV19mX3JlY2VpdmVkIi8+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfZjMiIHNvdXJjZVJlZj0iR1dfZl9yZWNlaXZlZCIgdGFyZ2V0UmVmPSJUYXNrX2ZfY2xvY2siLz4KICAgIDxicG1uOnVzZXJUYXNrIGlkPSJUYXNrX2ZfY2xvY2siIG5hbWU9IjUtV29ya2luZy1EYXkgQ2xvY2sgU3RhcnRzICjCpyAyLjItMzcwNC5CKSI+CiAgICAgIDxicG1uOmluY29taW5nPkZsb3dfZjM8L2JwbW46aW5jb21pbmc+CiAgICAgIDxicG1uOm91dGdvaW5nPkZsb3dfZjQ8L2JwbW46b3V0Z29pbmc+CiAgICA8L2JwbW46dXNlclRhc2s+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfZjQiIHNvdXJjZVJlZj0iVGFza19mX2Nsb2NrIiB0YXJnZXRSZWY9IlRhc2tfZl9yZXZpZXciLz4KICAgIDxicG1uOnVzZXJUYXNrIGlkPSJUYXNrX2ZfcmV2aWV3IiBuYW1lPSJGT0lBIE9mZmljZXIgUmV2aWV3cyBSZXF1ZXN0ICZhbXA7IFNlYXJjaGVzIFJlY29yZHMiPgogICAgICA8YnBtbjppbmNvbWluZz5GbG93X2Y0PC9icG1uOmluY29taW5nPgogICAgICA8YnBtbjpvdXRnb2luZz5GbG93X2Y1PC9icG1uOm91dGdvaW5nPgogICAgPC9icG1uOnVzZXJUYXNrPgogICAgPGJwbW46c2VxdWVuY2VGbG93IGlkPSJGbG93X2Y1IiBzb3VyY2VSZWY9IlRhc2tfZl9yZXZpZXciIHRhcmdldFJlZj0iR1dfZl9jb3N0Ii8+CiAgICA8YnBtbjpleGNsdXNpdmVHYXRld2F5IGlkPSJHV19mX2Nvc3QiIG5hbWU9IkVzdGltYXRlZCBDb3N0ICZndDsgJDIwMD8iIGRlZmF1bHQ9IkZsb3dfZl9ub19kZXBvc2l0Ij4KICAgICAgPGJwbW46aW5jb21pbmc+Rmxvd19mNTwvYnBtbjppbmNvbWluZz4KICAgICAgPGJwbW46b3V0Z29pbmc+Rmxvd19mX2RlcG9zaXQ8L2JwbW46b3V0Z29pbmc+CiAgICAgIDxicG1uOm91dGdvaW5nPkZsb3dfZl9ub19kZXBvc2l0PC9icG1uOm91dGdvaW5nPgogICAgPC9icG1uOmV4Y2x1c2l2ZUdhdGV3YXk+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfZl9kZXBvc2l0IiBuYW1lPSJZZXMg4oCUIE5vdGlmeSBSZXF1ZXN0ZXIiIHNvdXJjZVJlZj0iR1dfZl9jb3N0IiB0YXJnZXRSZWY9IlRhc2tfZl9jb3N0X25vdGlmeSI+CiAgICAgIDxicG1uOmNvbmRpdGlvbkV4cHJlc3Npb24+Y29zdEV4Y2VlZHMyMDA8L2JwbW46Y29uZGl0aW9uRXhwcmVzc2lvbj4KICAgIDwvYnBtbjpzZXF1ZW5jZUZsb3c+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfZl9ub19kZXBvc2l0IiBuYW1lPSJObyIgc291cmNlUmVmPSJHV19mX2Nvc3QiIHRhcmdldFJlZj0iVGFza19mX2RldGVybWluZSIvPgogICAgPGJwbW46dXNlclRhc2sgaWQ9IlRhc2tfZl9jb3N0X25vdGlmeSIgbmFtZT0iTm90aWZ5IFJlcXVlc3RlciBvZiBFc3RpbWF0ZWQgQ29zdDsgUmVxdWVzdCBEZXBvc2l0ICjCpyAyLjItMzcwNC5IKSI+CiAgICAgIDxicG1uOmluY29taW5nPkZsb3dfZl9kZXBvc2l0PC9icG1uOmluY29taW5nPgogICAgICA8YnBtbjpvdXRnb2luZz5GbG93X2ZfZGVwb3NpdDI8L2JwbW46b3V0Z29pbmc+CiAgICA8L2JwbW46dXNlclRhc2s+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfZl9kZXBvc2l0MiIgc291cmNlUmVmPSJUYXNrX2ZfY29zdF9ub3RpZnkiIHRhcmdldFJlZj0iVGFza19mX2RldGVybWluZSIvPgogICAgPGJwbW46dXNlclRhc2sgaWQ9IlRhc2tfZl9kZXRlcm1pbmUiIG5hbWU9IkRldGVybWluZSBBcHBsaWNhYmlsaXR5IG9mIEV4ZW1wdGlvbnMgKMKnwqcgMi4yLTM3MDUuMSDigJMgMzcwNS44KSI+CiAgICAgIDxicG1uOmluY29taW5nPkZsb3dfZl9ub19kZXBvc2l0PC9icG1uOmluY29taW5nPgogICAgICA8YnBtbjppbmNvbWluZz5GbG93X2ZfZGVwb3NpdDI8L2JwbW46aW5jb21pbmc+CiAgICAgIDxicG1uOm91dGdvaW5nPkZsb3dfZjY8L2JwbW46b3V0Z29pbmc+CiAgICA8L2JwbW46dXNlclRhc2s+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfZjYiIHNvdXJjZVJlZj0iVGFza19mX2RldGVybWluZSIgdGFyZ2V0UmVmPSJHV19mX3Jlc3BvbnNlIi8+CiAgICA8YnBtbjpleGNsdXNpdmVHYXRld2F5IGlkPSJHV19mX3Jlc3BvbnNlIiBuYW1lPSJSZXNwb25zZSBUeXBlPyIgZGVmYXVsdD0iRmxvd19mX2Z1bGwiPgogICAgICA8YnBtbjppbmNvbWluZz5GbG93X2Y2PC9icG1uOmluY29taW5nPgogICAgICA8YnBtbjpvdXRnb2luZz5GbG93X2ZfZnVsbDwvYnBtbjpvdXRnb2luZz4KICAgICAgPGJwbW46b3V0Z29pbmc+Rmxvd19mX3BhcnRpYWw8L2JwbW46b3V0Z29pbmc+CiAgICAgIDxicG1uOm91dGdvaW5nPkZsb3dfZl93aXRoaGVsZDwvYnBtbjpvdXRnb2luZz4KICAgICAgPGJwbW46b3V0Z29pbmc+Rmxvd19mX25vdGZvdW5kPC9icG1uOm91dGdvaW5nPgogICAgICA8YnBtbjpvdXRnb2luZz5GbG93X2ZfZXh0ZW5zaW9uPC9icG1uOm91dGdvaW5nPgogICAgPC9icG1uOmV4Y2x1c2l2ZUdhdGV3YXk+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfZl9mdWxsIiBuYW1lPSJGdWxsIERpc2Nsb3N1cmUiIHNvdXJjZVJlZj0iR1dfZl9yZXNwb25zZSIgdGFyZ2V0UmVmPSJUYXNrX2ZfcHJvZHVjZSIvPgogICAgPGJwbW46c2VxdWVuY2VGbG93IGlkPSJGbG93X2ZfcGFydGlhbCIgbmFtZT0iUGFydGlhbCDigJQgUmVkYWN0IEV4ZW1wdCBQb3J0aW9ucyIgc291cmNlUmVmPSJHV19mX3Jlc3BvbnNlIiB0YXJnZXRSZWY9IlRhc2tfZl9yZWRhY3QiPgogICAgICA8YnBtbjpjb25kaXRpb25FeHByZXNzaW9uPmlzUGFydGlhbDwvYnBtbjpjb25kaXRpb25FeHByZXNzaW9uPgogICAgPC9icG1uOnNlcXVlbmNlRmxvdz4KICAgIDxicG1uOnNlcXVlbmNlRmxvdyBpZD0iRmxvd19mX3dpdGhoZWxkIiBuYW1lPSJGdWxseSBXaXRoaGVsZCIgc291cmNlUmVmPSJHV19mX3Jlc3BvbnNlIiB0YXJnZXRSZWY9IlRhc2tfZl9kZW55Ij4KICAgICAgPGJwbW46Y29uZGl0aW9uRXhwcmVzc2lvbj5pc1dpdGhoZWxkPC9icG1uOmNvbmRpdGlvbkV4cHJlc3Npb24+CiAgICA8L2JwbW46c2VxdWVuY2VGbG93PgogICAgPGJwbW46c2VxdWVuY2VGbG93IGlkPSJGbG93X2Zfbm90Zm91bmQiIG5hbWU9IlJlY29yZHMgTm90IEZvdW5kIiBzb3VyY2VSZWY9IkdXX2ZfcmVzcG9uc2UiIHRhcmdldFJlZj0iVGFza19mX25vdGZvdW5kIj4KICAgICAgPGJwbW46Y29uZGl0aW9uRXhwcmVzc2lvbj5pc05vdEZvdW5kPC9icG1uOmNvbmRpdGlvbkV4cHJlc3Npb24+CiAgICA8L2JwbW46c2VxdWVuY2VGbG93PgogICAgPGJwbW46c2VxdWVuY2VGbG93IGlkPSJGbG93X2ZfZXh0ZW5zaW9uIiBuYW1lPSJFeHRlbnNpb24gTmVlZGVkICg3IGFkZC4gZGF5cykiIHNvdXJjZVJlZj0iR1dfZl9yZXNwb25zZSIgdGFyZ2V0UmVmPSJUYXNrX2ZfZXh0ZW5kIj4KICAgICAgPGJwbW46Y29uZGl0aW9uRXhwcmVzc2lvbj5uZWVkc0V4dGVuc2lvbjwvYnBtbjpjb25kaXRpb25FeHByZXNzaW9uPgogICAgPC9icG1uOnNlcXVlbmNlRmxvdz4KICAgIDxicG1uOnVzZXJUYXNrIGlkPSJUYXNrX2ZfcHJvZHVjZSIgbmFtZT0iUHJvZHVjZSBSZWNvcmRzIOKAlCBQcm92aWRlIENvcGllcyBvciBJbnNwZWN0aW9uIj4KICAgICAgPGJwbW46aW5jb21pbmc+Rmxvd19mX2Z1bGw8L2JwbW46aW5jb21pbmc+CiAgICAgIDxicG1uOm91dGdvaW5nPkZsb3dfZl9kb25lPC9icG1uOm91dGdvaW5nPgogICAgPC9icG1uOnVzZXJUYXNrPgogICAgPGJwbW46dXNlclRhc2sgaWQ9IlRhc2tfZl9yZWRhY3QiIG5hbWU9IlJlZGFjdCBFeGVtcHQgUG9ydGlvbnMgKMKnIDIuMi0zNzA0LjAxKTsgQ2l0ZSBDb2RlIFNlY3Rpb24gZm9yIEVhY2ggV2l0aGhvbGRpbmciPgogICAgICA8YnBtbjppbmNvbWluZz5GbG93X2ZfcGFydGlhbDwvYnBtbjppbmNvbWluZz4KICAgICAgPGJwbW46b3V0Z29pbmc+Rmxvd19mX2RvbmUyPC9icG1uOm91dGdvaW5nPgogICAgPC9icG1uOnVzZXJUYXNrPgogICAgPGJwbW46dXNlclRhc2sgaWQ9IlRhc2tfZl9kZW55IiBuYW1lPSJJc3N1ZSBXcml0dGVuIERlbmlhbCDigJQgQ2l0ZSBTcGVjaWZpYyBFeGVtcHRpb24gQ29kZSBTZWN0aW9uIGZvciBFYWNoIFdpdGhoZWxkIENhdGVnb3J5Ij4KICAgICAgPGJwbW46aW5jb21pbmc+Rmxvd19mX3dpdGhoZWxkPC9icG1uOmluY29taW5nPgogICAgICA8YnBtbjpvdXRnb2luZz5GbG93X2ZfZG9uZTM8L2JwbW46b3V0Z29pbmc+CiAgICA8L2JwbW46dXNlclRhc2s+CiAgICA8YnBtbjptYW51YWxUYXNrIGlkPSJUYXNrX2Zfbm90Zm91bmQiIG5hbWU9IlJlc3BvbmQ6IFJlY29yZHMgTm90IEZvdW5kIG9yIERvbid0IEV4aXN0OyBSZWZlciB0byBPdGhlciBDdXN0b2RpYW4gaWYgS25vd24iPgogICAgICA8YnBtbjppbmNvbWluZz5GbG93X2Zfbm90Zm91bmQ8L2JwbW46aW5jb21pbmc+CiAgICAgIDxicG1uOm91dGdvaW5nPkZsb3dfZl9kb25lNDwvYnBtbjpvdXRnb2luZz4KICAgIDwvYnBtbjptYW51YWxUYXNrPgogICAgPGJwbW46dXNlclRhc2sgaWQ9IlRhc2tfZl9leHRlbmQiIG5hbWU9Ik5vdGlmeSBSZXF1ZXN0ZXI6IEV4dGVuc2lvbiDigJQgU3BlY2lmeSBDb25kaXRpb25zIE1ha2luZyBSZXNwb25zZSBJbXBvc3NpYmxlICjCpyAyLjItMzcwNC5CLjQpIj4KICAgICAgPGJwbW46aW5jb21pbmc+Rmxvd19mX2V4dGVuc2lvbjwvYnBtbjppbmNvbWluZz4KICAgICAgPGJwbW46b3V0Z29pbmc+Rmxvd19mX2V4dDI8L2JwbW46b3V0Z29pbmc+CiAgICA8L2JwbW46dXNlclRhc2s+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfZl9leHQyIiBzb3VyY2VSZWY9IlRhc2tfZl9leHRlbmQiIHRhcmdldFJlZj0iVGFza19mX2RldGVybWluZSIvPgogICAgPGJwbW46ZXhjbHVzaXZlR2F0ZXdheSBpZD0iR1dfZl9zYXRpc2ZpZWQiIG5hbWU9IlJlcXVlc3RlciBTYXRpc2ZpZWQ/Ij4KICAgICAgPGJwbW46aW5jb21pbmc+Rmxvd19mX2RvbmU8L2JwbW46aW5jb21pbmc+CiAgICAgIDxicG1uOmluY29taW5nPkZsb3dfZl9kb25lMjwvYnBtbjppbmNvbWluZz4KICAgICAgPGJwbW46aW5jb21pbmc+Rmxvd19mX2RvbmUzPC9icG1uOmluY29taW5nPgogICAgICA8YnBtbjppbmNvbWluZz5GbG93X2ZfZG9uZTQ8L2JwbW46aW5jb21pbmc+CiAgICAgIDxicG1uOm91dGdvaW5nPkZsb3dfZl95ZXM8L2JwbW46b3V0Z29pbmc+CiAgICAgIDxicG1uOm91dGdvaW5nPkZsb3dfZl9hcHBlYWw8L2JwbW46b3V0Z29pbmc+CiAgICA8L2JwbW46ZXhjbHVzaXZlR2F0ZXdheT4KICAgIDxicG1uOnNlcXVlbmNlRmxvdyBpZD0iRmxvd19mX2RvbmUiIHNvdXJjZVJlZj0iVGFza19mX3Byb2R1Y2UiIHRhcmdldFJlZj0iR1dfZl9zYXRpc2ZpZWQiLz4KICAgIDxicG1uOnNlcXVlbmNlRmxvdyBpZD0iRmxvd19mX2RvbmUyIiBzb3VyY2VSZWY9IlRhc2tfZl9yZWRhY3QiIHRhcmdldFJlZj0iR1dfZl9zYXRpc2ZpZWQiLz4KICAgIDxicG1uOnNlcXVlbmNlRmxvdyBpZD0iRmxvd19mX2RvbmUzIiBzb3VyY2VSZWY9IlRhc2tfZl9kZW55IiB0YXJnZXRSZWY9IkdXX2Zfc2F0aXNmaWVkIi8+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfZl9kb25lNCIgc291cmNlUmVmPSJUYXNrX2Zfbm90Zm91bmQiIHRhcmdldFJlZj0iR1dfZl9zYXRpc2ZpZWQiLz4KICAgIDxicG1uOnNlcXVlbmNlRmxvdyBpZD0iRmxvd19mX3llcyIgbmFtZT0iWWVzIiBzb3VyY2VSZWY9IkdXX2Zfc2F0aXNmaWVkIiB0YXJnZXRSZWY9IkVFX2ZvaWFfZG9uZSI+CiAgICAgIDxicG1uOmNvbmRpdGlvbkV4cHJlc3Npb24+aXNTYXRpc2ZpZWQ8L2JwbW46Y29uZGl0aW9uRXhwcmVzc2lvbj4KICAgIDwvYnBtbjpzZXF1ZW5jZUZsb3c+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfZl9hcHBlYWwiIG5hbWU9Ik5vIOKAlCBEaXNwdXRlIiBzb3VyY2VSZWY9IkdXX2Zfc2F0aXNmaWVkIiB0YXJnZXRSZWY9IlRhc2tfZl9wZXRpdGlvbiIvPgogICAgPGJwbW46bWFudWFsVGFzayBpZD0iVGFza19mX3BldGl0aW9uIiBuYW1lPSJGaWxlIFBldGl0aW9uIGZvciBNYW5kYW11cyAvIEluanVuY3Rpb24gaW4gR2VuZXJhbCBEaXN0cmljdCBvciBDaXJjdWl0IENvdXJ0ICjCpyAyLjItMzcxMykiPgogICAgICA8YnBtbjppbmNvbWluZz5GbG93X2ZfYXBwZWFsPC9icG1uOmluY29taW5nPgogICAgICA8YnBtbjpvdXRnb2luZz5GbG93X2ZfY291cnQ8L2JwbW46b3V0Z29pbmc+CiAgICA8L2JwbW46bWFudWFsVGFzaz4KICAgIDxicG1uOmVuZEV2ZW50IGlkPSJFRV9mb2lhX2RvbmUiIG5hbWU9IlJlcXVlc3QgRnVsZmlsbGVkIj4KICAgICAgPGJwbW46aW5jb21pbmc+Rmxvd19mX3llczwvYnBtbjppbmNvbWluZz4KICAgIDwvYnBtbjplbmRFdmVudD4KICAgIDxicG1uOmVuZEV2ZW50IGlkPSJFRV9mb2lhX2NvdXJ0IiBuYW1lPSJDb3VydCBQcm9jZWVkaW5nIEluaXRpYXRlZCI+CiAgICAgIDxicG1uOmluY29taW5nPkZsb3dfZl9jb3VydDwvYnBtbjppbmNvbWluZz4KICAgIDwvYnBtbjplbmRFdmVudD4KICAgIDxicG1uOnNlcXVlbmNlRmxvdyBpZD0iRmxvd19mX2NvdXJ0IiBzb3VyY2VSZWY9IlRhc2tfZl9wZXRpdGlvbiIgdGFyZ2V0UmVmPSJFRV9mb2lhX2NvdXJ0Ii8+CiAgPC9icG1uOnByb2Nlc3M+CiAgPGJwbW5kaTpCUE1ORGlhZ3JhbSBpZD0iQlBNTkRpYWdyYW1fZm9pYV9jb3JlIj4KICAgIDxicG1uZGk6QlBNTlBsYW5lIGlkPSJCUE1OUGxhbmVfZm9pYV9jb3JlIiBicG1uRWxlbWVudD0iZm9pYV9jb3JlX3Byb2Nlc3MiPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iU0VfZm9pYV9kaSIgYnBtbkVsZW1lbnQ9IlNFX2ZvaWEiPjxkYzpCb3VuZHMgeD0iMTUyIiB5PSIyOTIiIHdpZHRoPSIzNiIgaGVpZ2h0PSIzNiIvPjwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IlRhc2tfZl9kcmFmdF9kaSIgYnBtbkVsZW1lbnQ9IlRhc2tfZl9kcmFmdCI+PGRjOkJvdW5kcyB4PSIyNDAiIHk9IjI3MCIgd2lkdGg9IjE1MCIgaGVpZ2h0PSI4MCIvPjwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IkdXX2ZfY2hhbm5lbF9kaSIgYnBtbkVsZW1lbnQ9IkdXX2ZfY2hhbm5lbCIgaXNNYXJrZXJWaXNpYmxlPSJ0cnVlIj48ZGM6Qm91bmRzIHg9IjQ2MCIgeT0iMjg1IiB3aWR0aD0iNTAiIGhlaWdodD0iNTAiLz48YnBtbmRpOkJQTU5MYWJlbD48ZGM6Qm91bmRzIHg9IjQzOCIgeT0iMzQyIiB3aWR0aD0iOTUiIGhlaWdodD0iMTQiLz48L2JwbW5kaTpCUE1OTGFiZWw+PC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iVGFza19mX3N1Ym1pdF9vbmxpbmVfZGkiIGJwbW5FbGVtZW50PSJUYXNrX2Zfc3VibWl0X29ubGluZSI+PGRjOkJvdW5kcyB4PSI1ODAiIHk9IjE2MCIgd2lkdGg9IjE1MCIgaGVpZ2h0PSI4MCIvPjwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IlRhc2tfZl9zdWJtaXRfbWFpbF9kaSIgYnBtbkVsZW1lbnQ9IlRhc2tfZl9zdWJtaXRfbWFpbCI+PGRjOkJvdW5kcyB4PSI1ODAiIHk9IjI3MCIgd2lkdGg9IjE1MCIgaGVpZ2h0PSI4MCIvPjwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IlRhc2tfZl9zdWJtaXRfaW5wZXJzb25fZGkiIGJwbW5FbGVtZW50PSJUYXNrX2Zfc3VibWl0X2lucGVyc29uIj48ZGM6Qm91bmRzIHg9IjU4MCIgeT0iMzkwIiB3aWR0aD0iMTUwIiBoZWlnaHQ9IjgwIi8+PC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iR1dfZl9yZWNlaXZlZF9kaSIgYnBtbkVsZW1lbnQ9IkdXX2ZfcmVjZWl2ZWQiIGlzTWFya2VyVmlzaWJsZT0idHJ1ZSI+PGRjOkJvdW5kcyB4PSI4MTAiIHk9IjI4NSIgd2lkdGg9IjUwIiBoZWlnaHQ9IjUwIi8+PC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iVGFza19mX2Nsb2NrX2RpIiBicG1uRWxlbWVudD0iVGFza19mX2Nsb2NrIj48ZGM6Qm91bmRzIHg9IjkyMCIgeT0iMjcwIiB3aWR0aD0iMTYwIiBoZWlnaHQ9IjgwIi8+PC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iVGFza19mX3Jldmlld19kaSIgYnBtbkVsZW1lbnQ9IlRhc2tfZl9yZXZpZXciPjxkYzpCb3VuZHMgeD0iMTE1MCIgeT0iMjcwIiB3aWR0aD0iMTYwIiBoZWlnaHQ9IjgwIi8+PC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iR1dfZl9jb3N0X2RpIiBicG1uRWxlbWVudD0iR1dfZl9jb3N0IiBpc01hcmtlclZpc2libGU9InRydWUiPjxkYzpCb3VuZHMgeD0iMTM4MCIgeT0iMjg1IiB3aWR0aD0iNTAiIGhlaWdodD0iNTAiLz48YnBtbmRpOkJQTU5MYWJlbD48ZGM6Qm91bmRzIHg9IjEzNTUiIHk9IjM0MiIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxNCIvPjwvYnBtbmRpOkJQTU5MYWJlbD48L2JwbW5kaTpCUE1OU2hhcGU+CiAgICAgIDxicG1uZGk6QlBNTlNoYXBlIGlkPSJUYXNrX2ZfY29zdF9ub3RpZnlfZGkiIGJwbW5FbGVtZW50PSJUYXNrX2ZfY29zdF9ub3RpZnkiPjxkYzpCb3VuZHMgeD0iMTUwMCIgeT0iMTYwIiB3aWR0aD0iMTYwIiBoZWlnaHQ9IjgwIi8+PC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iVGFza19mX2RldGVybWluZV9kaSIgYnBtbkVsZW1lbnQ9IlRhc2tfZl9kZXRlcm1pbmUiPjxkYzpCb3VuZHMgeD0iMTUwMCIgeT0iMjcwIiB3aWR0aD0iMTYwIiBoZWlnaHQ9IjgwIi8+PC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iR1dfZl9yZXNwb25zZV9kaSIgYnBtbkVsZW1lbnQ9IkdXX2ZfcmVzcG9uc2UiIGlzTWFya2VyVmlzaWJsZT0idHJ1ZSI+PGRjOkJvdW5kcyB4PSIxNzMwIiB5PSIyODUiIHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCIvPjxicG1uZGk6QlBNTkxhYmVsPjxkYzpCb3VuZHMgeD0iMTcxMyIgeT0iMzQyIiB3aWR0aD0iODQiIGhlaWdodD0iMTQiLz48L2JwbW5kaTpCUE1OTGFiZWw+PC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iVGFza19mX3Byb2R1Y2VfZGkiIGJwbW5FbGVtZW50PSJUYXNrX2ZfcHJvZHVjZSI+PGRjOkJvdW5kcyB4PSIxODUwIiB5PSI5MCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSI4MCIvPjwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IlRhc2tfZl9yZWRhY3RfZGkiIGJwbW5FbGVtZW50PSJUYXNrX2ZfcmVkYWN0Ij48ZGM6Qm91bmRzIHg9IjE4NTAiIHk9IjIwMCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSI4MCIvPjwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IlRhc2tfZl9kZW55X2RpIiBicG1uRWxlbWVudD0iVGFza19mX2RlbnkiPjxkYzpCb3VuZHMgeD0iMTg1MCIgeT0iMzEwIiB3aWR0aD0iMTYwIiBoZWlnaHQ9IjgwIi8+PC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iVGFza19mX25vdGZvdW5kX2RpIiBicG1uRWxlbWVudD0iVGFza19mX25vdGZvdW5kIj48ZGM6Qm91bmRzIHg9IjE4NTAiIHk9IjQyMCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSI4MCIvPjwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IlRhc2tfZl9leHRlbmRfZGkiIGJwbW5FbGVtZW50PSJUYXNrX2ZfZXh0ZW5kIj48ZGM6Qm91bmRzIHg9IjE4NTAiIHk9IjUzMCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSI4MCIvPjwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IkdXX2Zfc2F0aXNmaWVkX2RpIiBicG1uRWxlbWVudD0iR1dfZl9zYXRpc2ZpZWQiIGlzTWFya2VyVmlzaWJsZT0idHJ1ZSI+PGRjOkJvdW5kcyB4PSIyMDkwIiB5PSIyODUiIHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCIvPjxicG1uZGk6QlBNTkxhYmVsPjxkYzpCb3VuZHMgeD0iMjA2NSIgeT0iMzQyIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjE0Ii8+PC9icG1uZGk6QlBNTkxhYmVsPjwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IlRhc2tfZl9wZXRpdGlvbl9kaSIgYnBtbkVsZW1lbnQ9IlRhc2tfZl9wZXRpdGlvbiI+PGRjOkJvdW5kcyB4PSIyMjEwIiB5PSIzODAiIHdpZHRoPSIxNjAiIGhlaWdodD0iODAiLz48L2JwbW5kaTpCUE1OU2hhcGU+CiAgICAgIDxicG1uZGk6QlBNTlNoYXBlIGlkPSJFRV9mb2lhX2RvbmVfZGkiIGJwbW5FbGVtZW50PSJFRV9mb2lhX2RvbmUiPjxkYzpCb3VuZHMgeD0iMjI0MiIgeT0iMTkyIiB3aWR0aD0iMzYiIGhlaWdodD0iMzYiLz48L2JwbW5kaTpCUE1OU2hhcGU+CiAgICAgIDxicG1uZGk6QlBNTlNoYXBlIGlkPSJFRV9mb2lhX2NvdXJ0X2RpIiBicG1uRWxlbWVudD0iRUVfZm9pYV9jb3VydCI+PGRjOkJvdW5kcyB4PSIyNDQwIiB5PSI0MDIiIHdpZHRoPSIzNiIgaGVpZ2h0PSIzNiIvPjwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1ORWRnZSBpZD0iRmxvd19mMV9kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfZjEiPjxkaTp3YXlwb2ludCB4PSIxODgiIHk9IjMxMCIvPjxkaTp3YXlwb2ludCB4PSIyNDAiIHk9IjMxMCIvPjwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93X2YyX2RpIiBicG1uRWxlbWVudD0iRmxvd19mMiI+PGRpOndheXBvaW50IHg9IjM5MCIgeT0iMzEwIi8+PGRpOndheXBvaW50IHg9IjQ2MCIgeT0iMzEwIi8+PC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfZl9vbmxpbmVfZGkiIGJwbW5FbGVtZW50PSJGbG93X2Zfb25saW5lIj48ZGk6d2F5cG9pbnQgeD0iNDg1IiB5PSIyODUiLz48ZGk6d2F5cG9pbnQgeD0iNDg1IiB5PSIyMDAiLz48ZGk6d2F5cG9pbnQgeD0iNTgwIiB5PSIyMDAiLz48YnBtbmRpOkJQTU5MYWJlbD48ZGM6Qm91bmRzIHg9IjQ5MCIgeT0iMjM4IiB3aWR0aD0iNjgiIGhlaWdodD0iMTQiLz48L2JwbW5kaTpCUE1OTGFiZWw+PC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfZl9tYWlsX2RpIiBicG1uRWxlbWVudD0iRmxvd19mX21haWwiPjxkaTp3YXlwb2ludCB4PSI1MTAiIHk9IjMxMCIvPjxkaTp3YXlwb2ludCB4PSI1ODAiIHk9IjMxMCIvPjxicG1uZGk6QlBNTkxhYmVsPjxkYzpCb3VuZHMgeD0iNTI1IiB5PSIyOTIiIHdpZHRoPSI0NSIgaGVpZ2h0PSIxNCIvPjwvYnBtbmRpOkJQTU5MYWJlbD48L2JwbW5kaTpCUE1ORWRnZT4KICAgICAgPGJwbW5kaTpCUE1ORWRnZSBpZD0iRmxvd19mX2lucGVyc29uX2RpIiBicG1uRWxlbWVudD0iRmxvd19mX2lucGVyc29uIj48ZGk6d2F5cG9pbnQgeD0iNDg1IiB5PSIzMzUiLz48ZGk6d2F5cG9pbnQgeD0iNDg1IiB5PSI0MzAiLz48ZGk6d2F5cG9pbnQgeD0iNTgwIiB5PSI0MzAiLz48YnBtbmRpOkJQTU5MYWJlbD48ZGM6Qm91bmRzIHg9IjQ5MCIgeT0iMzc4IiB3aWR0aD0iNDgiIGhlaWdodD0iMTQiLz48L2JwbW5kaTpCUE1OTGFiZWw+PC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfZm8xX2RpIiBicG1uRWxlbWVudD0iRmxvd19mbzEiPjxkaTp3YXlwb2ludCB4PSI3MzAiIHk9IjIwMCIvPjxkaTp3YXlwb2ludCB4PSI4MzUiIHk9IjIwMCIvPjxkaTp3YXlwb2ludCB4PSI4MzUiIHk9IjI4NSIvPjwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93X2ZvMl9kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfZm8yIj48ZGk6d2F5cG9pbnQgeD0iNzMwIiB5PSIzMTAiLz48ZGk6d2F5cG9pbnQgeD0iODEwIiB5PSIzMTAiLz48L2JwbW5kaTpCUE1ORWRnZT4KICAgICAgPGJwbW5kaTpCUE1ORWRnZSBpZD0iRmxvd19mbzNfZGkiIGJwbW5FbGVtZW50PSJGbG93X2ZvMyI+PGRpOndheXBvaW50IHg9IjczMCIgeT0iNDMwIi8+PGRpOndheXBvaW50IHg9IjgzNSIgeT0iNDMwIi8+PGRpOndheXBvaW50IHg9IjgzNSIgeT0iMzM1Ii8+PC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfZjNfZGkiIGJwbW5FbGVtZW50PSJGbG93X2YzIj48ZGk6d2F5cG9pbnQgeD0iODYwIiB5PSIzMTAiLz48ZGk6d2F5cG9pbnQgeD0iOTIwIiB5PSIzMTAiLz48L2JwbW5kaTpCUE1ORWRnZT4KICAgICAgPGJwbW5kaTpCUE1ORWRnZSBpZD0iRmxvd19mNF9kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfZjQiPjxkaTp3YXlwb2ludCB4PSIxMDgwIiB5PSIzMTAiLz48ZGk6d2F5cG9pbnQgeD0iMTE1MCIgeT0iMzEwIi8+PC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfZjVfZGkiIGJwbW5FbGVtZW50PSJGbG93X2Y1Ij48ZGk6d2F5cG9pbnQgeD0iMTMxMCIgeT0iMzEwIi8+PGRpOndheXBvaW50IHg9IjEzODAiIHk9IjMxMCIvPjwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93X2ZfZGVwb3NpdF9kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfZl9kZXBvc2l0Ij48ZGk6d2F5cG9pbnQgeD0iMTQwNSIgeT0iMjg1Ii8+PGRpOndheXBvaW50IHg9IjE0MDUiIHk9IjIwMCIvPjxkaTp3YXlwb2ludCB4PSIxNTAwIiB5PSIyMDAiLz48YnBtbmRpOkJQTU5MYWJlbD48ZGM6Qm91bmRzIHg9IjE0MTAiIHk9IjIzOCIgd2lkdGg9Ijg0IiBoZWlnaHQ9IjE0Ii8+PC9icG1uZGk6QlBNTkxhYmVsPjwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93X2Zfbm9fZGVwb3NpdF9kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfZl9ub19kZXBvc2l0Ij48ZGk6d2F5cG9pbnQgeD0iMTQzMCIgeT0iMzEwIi8+PGRpOndheXBvaW50IHg9IjE1MDAiIHk9IjMxMCIvPjxicG1uZGk6QlBNTkxhYmVsPjxkYzpCb3VuZHMgeD0iMTQ1MyIgeT0iMjkyIiB3aWR0aD0iMTUiIGhlaWdodD0iMTQiLz48L2JwbW5kaTpCUE1OTGFiZWw+PC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfZl9kZXBvc2l0Ml9kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfZl9kZXBvc2l0MiI+PGRpOndheXBvaW50IHg9IjE1ODAiIHk9IjI0MCIvPjxkaTp3YXlwb2ludCB4PSIxNTgwIiB5PSIyNzAiLz48L2JwbW5kaTpCUE1ORWRnZT4KICAgICAgPGJwbW5kaTpCUE1ORWRnZSBpZD0iRmxvd19mNl9kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfZjYiPjxkaTp3YXlwb2ludCB4PSIxNjYwIiB5PSIzMTAiLz48ZGk6d2F5cG9pbnQgeD0iMTczMCIgeT0iMzEwIi8+PC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfZl9mdWxsX2RpIiBicG1uRWxlbWVudD0iRmxvd19mX2Z1bGwiPjxkaTp3YXlwb2ludCB4PSIxNzU1IiB5PSIyODUiLz48ZGk6d2F5cG9pbnQgeD0iMTc1NSIgeT0iMTMwIi8+PGRpOndheXBvaW50IHg9IjE4NTAiIHk9IjEzMCIvPjxicG1uZGk6QlBNTkxhYmVsPjxkYzpCb3VuZHMgeD0iMTc2MiIgeT0iMjAyIiB3aWR0aD0iNzQiIGhlaWdodD0iMTQiLz48L2JwbW5kaTpCUE1OTGFiZWw+PC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfZl9wYXJ0aWFsX2RpIiBicG1uRWxlbWVudD0iRmxvd19mX3BhcnRpYWwiPjxkaTp3YXlwb2ludCB4PSIxNzU1IiB5PSIyODUiLz48ZGk6d2F5cG9pbnQgeD0iMTc1NSIgeT0iMjQwIi8+PGRpOndheXBvaW50IHg9IjE4NTAiIHk9IjI0MCIvPjxicG1uZGk6QlBNTkxhYmVsPjxkYzpCb3VuZHMgeD0iMTc2MCIgeT0iMjU3IiB3aWR0aD0iNjgiIGhlaWdodD0iMTQiLz48L2JwbW5kaTpCUE1OTGFiZWw+PC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfZl93aXRoaGVsZF9kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfZl93aXRoaGVsZCI+PGRpOndheXBvaW50IHg9IjE3ODAiIHk9IjMxMCIvPjxkaTp3YXlwb2ludCB4PSIxODUwIiB5PSIzNTAiLz48YnBtbmRpOkJQTU5MYWJlbD48ZGM6Qm91bmRzIHg9IjE3OTUiIHk9IjMyMyIgd2lkdGg9IjQ2IiBoZWlnaHQ9IjE0Ii8+PC9icG1uZGk6QlBNTkxhYmVsPjwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93X2Zfbm90Zm91bmRfZGkiIGJwbW5FbGVtZW50PSJGbG93X2Zfbm90Zm91bmQiPjxkaTp3YXlwb2ludCB4PSIxNzU1IiB5PSIzMzUiLz48ZGk6d2F5cG9pbnQgeD0iMTc1NSIgeT0iNDYwIi8+PGRpOndheXBvaW50IHg9IjE4NTAiIHk9IjQ2MCIvPjxicG1uZGk6QlBNTkxhYmVsPjxkYzpCb3VuZHMgeD0iMTc2MCIgeT0iMzkzIiB3aWR0aD0iNjgiIGhlaWdodD0iMTQiLz48L2JwbW5kaTpCUE1OTGFiZWw+PC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfZl9leHRlbnNpb25fZGkiIGJwbW5FbGVtZW50PSJGbG93X2ZfZXh0ZW5zaW9uIj48ZGk6d2F5cG9pbnQgeD0iMTc1NSIgeT0iMzM1Ii8+PGRpOndheXBvaW50IHg9IjE3NTUiIHk9IjU3MCIvPjxkaTp3YXlwb2ludCB4PSIxODUwIiB5PSI1NzAiLz48YnBtbmRpOkJQTU5MYWJlbD48ZGM6Qm91bmRzIHg9IjE3NjAiIHk9IjQ5MCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjE0Ii8+PC9icG1uZGk6QlBNTkxhYmVsPjwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93X2ZfZXh0Ml9kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfZl9leHQyIj48ZGk6d2F5cG9pbnQgeD0iMjAxMCIgeT0iNTcwIi8+PGRpOndheXBvaW50IHg9IjIwNTAiIHk9IjU3MCIvPjxkaTp3YXlwb2ludCB4PSIyMDUwIiB5PSIzMTAiLz48ZGk6d2F5cG9pbnQgeD0iMTY2MCIgeT0iMzEwIi8+PC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfZl9kb25lX2RpIiBicG1uRWxlbWVudD0iRmxvd19mX2RvbmUiPjxkaTp3YXlwb2ludCB4PSIyMDEwIiB5PSIxMzAiLz48ZGk6d2F5cG9pbnQgeD0iMjExNSIgeT0iMTMwIi8+PGRpOndheXBvaW50IHg9IjIxMTUiIHk9IjI4NSIvPjwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93X2ZfZG9uZTJfZGkiIGJwbW5FbGVtZW50PSJGbG93X2ZfZG9uZTIiPjxkaTp3YXlwb2ludCB4PSIyMDEwIiB5PSIyNDAiLz48ZGk6d2F5cG9pbnQgeD0iMjExNSIgeT0iMjQwIi8+PGRpOndheXBvaW50IHg9IjIxMTUiIHk9IjI4NSIvPjwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93X2ZfZG9uZTNfZGkiIGJwbW5FbGVtZW50PSJGbG93X2ZfZG9uZTMiPjxkaTp3YXlwb2ludCB4PSIyMDEwIiB5PSIzNTAiLz48ZGk6d2F5cG9pbnQgeD0iMjExNSIgeT0iMzUwIi8+PGRpOndheXBvaW50IHg9IjIxMTUiIHk9IjMzNSIvPjwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93X2ZfZG9uZTRfZGkiIGJwbW5FbGVtZW50PSJGbG93X2ZfZG9uZTQiPjxkaTp3YXlwb2ludCB4PSIyMDEwIiB5PSI0NjAiLz48ZGk6d2F5cG9pbnQgeD0iMjExNSIgeT0iNDYwIi8+PGRpOndheXBvaW50IHg9IjIxMTUiIHk9IjMzNSIvPjwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93X2ZfeWVzX2RpIiBicG1uRWxlbWVudD0iRmxvd19mX3llcyI+PGRpOndheXBvaW50IHg9IjIxNDAiIHk9IjI4NSIvPjxkaTp3YXlwb2ludCB4PSIyMTQwIiB5PSIyMTAiLz48ZGk6d2F5cG9pbnQgeD0iMjI0MiIgeT0iMjEwIi8+PGJwbW5kaTpCUE1OTGFiZWw+PGRjOkJvdW5kcyB4PSIyMTgwIiB5PSIyNDIiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxNCIvPjwvYnBtbmRpOkJQTU5MYWJlbD48L2JwbW5kaTpCUE1ORWRnZT4KICAgICAgPGJwbW5kaTpCUE1ORWRnZSBpZD0iRmxvd19mX2FwcGVhbF9kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfZl9hcHBlYWwiPjxkaTp3YXlwb2ludCB4PSIyMTQwIiB5PSIzMzUiLz48ZGk6d2F5cG9pbnQgeD0iMjE0MCIgeT0iNDIwIi8+PGRpOndheXBvaW50IHg9IjIyMTAiIHk9IjQyMCIvPjxicG1uZGk6QlBNTkxhYmVsPjxkYzpCb3VuZHMgeD0iMjE0NiIgeT0iMzcyIiB3aWR0aD0iNTYiIGhlaWdodD0iMTQiLz48L2JwbW5kaTpCUE1OTGFiZWw+PC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfZl9jb3VydF9kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfZl9jb3VydCI+PGRpOndheXBvaW50IHg9IjIzNzAiIHk9IjQyMCIvPjxkaTp3YXlwb2ludCB4PSIyNDQwIiB5PSI0MjAiLz48L2JwbW5kaTpCUE1ORWRnZT4KICAgIDwvYnBtbmRpOkJQTU5QbGFuZT4KICA8L2JwbW5kaTpCUE1ORGlhZ3JhbT4KPC9icG1uOmRlZmluaXRpb25zPgo=

Key decision points:

  • Submission channel — Online portal preferred; mail/fax to City Attorney; in-person at 605 E Main St
  • 5-day clock — Starts on the day of receipt; weekends and holidays do not count
  • Cost > $200 — Agency must notify requester; can require deposit before proceeding; clock tolls while awaiting requester response
  • Response types — Full production, partial with redactions (citing specific code section per category), full denial (citing specific code section per category), records not found, or extension notice
  • Extension — Must be issued within the 5-day window; grants 7 additional days; must specify the specific conditions making timely response impossible

III. Internal City Staff Processing

This diagram represents the FOIA Officer and city staff workflow for handling an incoming records request. It is designed to run as a parallel or sub-process triggered when the Requester lane submits a request in the core process above.

SpiffWorkflow Notes

  • Process ID: foiainternalprocess — can be called as a Call Activity from foiacoreprocess
  • Lane: FOIA Officer (City Attorney's Office) — intake, logging, routing, delivery, closure
  • Lane: Department Custodian — search, gather, stage records for review
  • Lane: City Attorney — legal review for exemptions; redaction decisions
  • Tracking fields (form schema): request number, receipt date, department(s) routed to, response type, response date, fees collected, disposition
  • Timer Boundary Events: Day 3 alert (review progress); Day 5 hard deadline; Day 12 extended deadline
  • Service Tasks: generate request ID, send automated acknowledgement email, push to records management system
Cjw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+CjxicG1uOmRlZmluaXRpb25zIHhtbG5zOmJwbW49Imh0dHA6Ly93d3cub21nLm9yZy9zcGVjL0JQTU4vMjAxMDA1MjQvTU9ERUwiIHhtbG5zOmJwbW5kaT0iaHR0cDovL3d3dy5vbWcub3JnL3NwZWMvQlBNTi8yMDEwMDUyNC9ESSIgeG1sbnM6ZGM9Imh0dHA6Ly93d3cub21nLm9yZy9zcGVjL0RELzIwMTAwNTI0L0RDIiB4bWxuczpkaT0iaHR0cDovL3d3dy5vbWcub3JnL3NwZWMvREQvMjAxMDA1MjQvREkiIHhtbG5zOnNwaWZmd29ya2Zsb3c9Imh0dHA6Ly9zcGlmZndvcmtmbG93Lm9yZy9icG1uL3NjaGVtYS8xLjAvY29yZSIgaWQ9IkZPSUFfSW50ZXJuYWwiIHRhcmdldE5hbWVzcGFjZT0iaHR0cDovL2JwbW4uaW8vc2NoZW1hL2JwbW4iIGV4cG9ydGVyPSJDYW11bmRhIE1vZGVsZXIiIGV4cG9ydGVyVmVyc2lvbj0iMy4wLjAtZGV2Ij4KICA8YnBtbjpwcm9jZXNzIGlkPSJmb2lhX2ludGVybmFsX3Byb2Nlc3MiIG5hbWU9IkZPSUEgSW50ZXJuYWwgU3RhZmYgUHJvY2Vzc2luZyIgaXNFeGVjdXRhYmxlPSJ0cnVlIj4KICAgIDxicG1uOnN0YXJ0RXZlbnQgaWQ9IlNFX2ludCIgbmFtZT0iUmVxdWVzdCBSZWNlaXZlZCBieSBGT0lBIE9mZmljZXIiPgogICAgICA8YnBtbjpvdXRnb2luZz5GbG93X2kxPC9icG1uOm91dGdvaW5nPgogICAgPC9icG1uOnN0YXJ0RXZlbnQ+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfaTEiIHNvdXJjZVJlZj0iU0VfaW50IiB0YXJnZXRSZWY9IlRhc2tfaV9sb2ciLz4KICAgIDxicG1uOnVzZXJUYXNrIGlkPSJUYXNrX2lfbG9nIiBuYW1lPSJMb2cgUmVxdWVzdCBpbiBUcmFja2luZyBTeXN0ZW07IEFzc2lnbiBSZXF1ZXN0IE51bWJlcjsgUmVjb3JkIFJlY2VpcHQgRGF0ZSI+CiAgICAgIDxicG1uOmV4dGVuc2lvbkVsZW1lbnRzPgogICAgICAgIDxzcGlmZndvcmtmbG93OnByb3BlcnRpZXM+CiAgICAgICAgICA8c3BpZmZ3b3JrZmxvdzpwcm9wZXJ0eSBuYW1lPSJmb3JtSnNvblNjaGVtYUZpbGVuYW1lIiB2YWx1ZT0iZm9pYS1pbnRha2Utc2NoZW1hLmpzb24iLz4KICAgICAgICA8L3NwaWZmd29ya2Zsb3c6cHJvcGVydGllcz4KICAgICAgPC9icG1uOmV4dGVuc2lvbkVsZW1lbnRzPgogICAgICA8YnBtbjppbmNvbWluZz5GbG93X2kxPC9icG1uOmluY29taW5nPgogICAgICA8YnBtbjpvdXRnb2luZz5GbG93X2kyPC9icG1uOm91dGdvaW5nPgogICAgPC9icG1uOnVzZXJUYXNrPgogICAgPGJwbW46c2VxdWVuY2VGbG93IGlkPSJGbG93X2kyIiBzb3VyY2VSZWY9IlRhc2tfaV9sb2ciIHRhcmdldFJlZj0iVGFza19pX3JvdXRlIi8+CiAgICA8YnBtbjp1c2VyVGFzayBpZD0iVGFza19pX3JvdXRlIiBuYW1lPSJSb3V0ZSBSZXF1ZXN0IHRvIFJlc3BvbnNpYmxlIERlcGFydG1lbnQocykgYW5kIEN1c3RvZGlhbihzKSI+CiAgICAgIDxicG1uOmluY29taW5nPkZsb3dfaTI8L2JwbW46aW5jb21pbmc+CiAgICAgIDxicG1uOm91dGdvaW5nPkZsb3dfaTM8L2JwbW46b3V0Z29pbmc+CiAgICA8L2JwbW46dXNlclRhc2s+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfaTMiIHNvdXJjZVJlZj0iVGFza19pX3JvdXRlIiB0YXJnZXRSZWY9IlRhc2tfaV9zZWFyY2giLz4KICAgIDxicG1uOnVzZXJUYXNrIGlkPSJUYXNrX2lfc2VhcmNoIiBuYW1lPSJEZXBhcnRtZW50IEN1c3RvZGlhbiBTZWFyY2hlcyBSZWNvcmRzIChQaHlzaWNhbCBhbmQgRWxlY3Ryb25pYykiPgogICAgICA8YnBtbjppbmNvbWluZz5GbG93X2kzPC9icG1uOmluY29taW5nPgogICAgICA8YnBtbjpvdXRnb2luZz5GbG93X2k0PC9icG1uOm91dGdvaW5nPgogICAgPC9icG1uOnVzZXJUYXNrPgogICAgPGJwbW46c2VxdWVuY2VGbG93IGlkPSJGbG93X2k0IiBzb3VyY2VSZWY9IlRhc2tfaV9zZWFyY2giIHRhcmdldFJlZj0iVGFza19pX2xlZ2FsIi8+CiAgICA8YnBtbjp1c2VyVGFzayBpZD0iVGFza19pX2xlZ2FsIiBuYW1lPSJDaXR5IEF0dG9ybmV5IFJldmlld3MgZm9yIEFwcGxpY2FibGUgRXhlbXB0aW9ucyAowqfCpyAyLjItMzcwNS4x4oCTMzcwNS44KSI+CiAgICAgIDxicG1uOmluY29taW5nPkZsb3dfaTQ8L2JwbW46aW5jb21pbmc+CiAgICAgIDxicG1uOm91dGdvaW5nPkZsb3dfaTU8L2JwbW46b3V0Z29pbmc+CiAgICA8L2JwbW46dXNlclRhc2s+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfaTUiIHNvdXJjZVJlZj0iVGFza19pX2xlZ2FsIiB0YXJnZXRSZWY9IkdXX2lfZXhlbXB0Ii8+CiAgICA8YnBtbjpleGNsdXNpdmVHYXRld2F5IGlkPSJHV19pX2V4ZW1wdCIgbmFtZT0iRXhlbXB0aW9ucyBBcHBseT8iIGRlZmF1bHQ9IkZsb3dfaV9ub19leGVtcHQiPgogICAgICA8YnBtbjppbmNvbWluZz5GbG93X2k1PC9icG1uOmluY29taW5nPgogICAgICA8YnBtbjpvdXRnb2luZz5GbG93X2lfZnVsbF9leGVtcHQ8L2JwbW46b3V0Z29pbmc+CiAgICAgIDxicG1uOm91dGdvaW5nPkZsb3dfaV9wYXJ0aWFsX2V4ZW1wdDwvYnBtbjpvdXRnb2luZz4KICAgICAgPGJwbW46b3V0Z29pbmc+Rmxvd19pX25vX2V4ZW1wdDwvYnBtbjpvdXRnb2luZz4KICAgIDwvYnBtbjpleGNsdXNpdmVHYXRld2F5PgogICAgPGJwbW46c2VxdWVuY2VGbG93IGlkPSJGbG93X2lfZnVsbF9leGVtcHQiIG5hbWU9IkZ1bGx5IEV4ZW1wdCIgc291cmNlUmVmPSJHV19pX2V4ZW1wdCIgdGFyZ2V0UmVmPSJUYXNrX2lfZGVuaWFsIj4KICAgICAgPGJwbW46Y29uZGl0aW9uRXhwcmVzc2lvbj5pc0Z1bGx5RXhlbXB0PC9icG1uOmNvbmRpdGlvbkV4cHJlc3Npb24+CiAgICA8L2JwbW46c2VxdWVuY2VGbG93PgogICAgPGJwbW46c2VxdWVuY2VGbG93IGlkPSJGbG93X2lfcGFydGlhbF9leGVtcHQiIG5hbWU9IlBhcnRpYWxseSBFeGVtcHQiIHNvdXJjZVJlZj0iR1dfaV9leGVtcHQiIHRhcmdldFJlZj0iVGFza19pX3JlZGFjdCI+CiAgICAgIDxicG1uOmNvbmRpdGlvbkV4cHJlc3Npb24+aXNQYXJ0aWFsbHlFeGVtcHQ8L2JwbW46Y29uZGl0aW9uRXhwcmVzc2lvbj4KICAgIDwvYnBtbjpzZXF1ZW5jZUZsb3c+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfaV9ub19leGVtcHQiIG5hbWU9Ik5vIEV4ZW1wdGlvbnMiIHNvdXJjZVJlZj0iR1dfaV9leGVtcHQiIHRhcmdldFJlZj0iVGFza19pX3ByZXBhcmUiLz4KICAgIDxicG1uOnVzZXJUYXNrIGlkPSJUYXNrX2lfZGVuaWFsIiBuYW1lPSJQcmVwYXJlIFdyaXR0ZW4gRGVuaWFsIExldHRlciDigJQgQ2l0ZSBTcGVjaWZpYyBFeGVtcHRpb24gcGVyIENhdGVnb3J5ICjCpyAyLjItMzcwNC5CLjEpOyBEb2N1bWVudCBpbiBGaWxlIj4KICAgICAgPGJwbW46aW5jb21pbmc+Rmxvd19pX2Z1bGxfZXhlbXB0PC9icG1uOmluY29taW5nPgogICAgICA8YnBtbjpvdXRnb2luZz5GbG93X2lkMTwvYnBtbjpvdXRnb2luZz4KICAgIDwvYnBtbjp1c2VyVGFzaz4KICAgIDxicG1uOnVzZXJUYXNrIGlkPSJUYXNrX2lfcmVkYWN0IiBuYW1lPSJSZWRhY3QgRXhlbXB0IFBvcnRpb25zICjCpyAyLjItMzcwNC4wMSk7IENpdGUgQ29kZSBTZWN0aW9uIGZvciBFYWNoIFJlZGFjdGVkIENhdGVnb3J5OyBEb2N1bWVudCBEZWNpc2lvbnMiPgogICAgICA8YnBtbjppbmNvbWluZz5GbG93X2lfcGFydGlhbF9leGVtcHQ8L2JwbW46aW5jb21pbmc+CiAgICAgIDxicG1uOm91dGdvaW5nPkZsb3dfaWQyPC9icG1uOm91dGdvaW5nPgogICAgPC9icG1uOnVzZXJUYXNrPgogICAgPGJwbW46dXNlclRhc2sgaWQ9IlRhc2tfaV9wcmVwYXJlIiBuYW1lPSJQcmVwYXJlIEZ1bGwgUmVjb3JkIFNldCBmb3IgUHJvZHVjdGlvbiI+CiAgICAgIDxicG1uOmluY29taW5nPkZsb3dfaV9ub19leGVtcHQ8L2JwbW46aW5jb21pbmc+CiAgICAgIDxicG1uOm91dGdvaW5nPkZsb3dfaWQzPC9icG1uOm91dGdvaW5nPgogICAgPC9icG1uOnVzZXJUYXNrPgogICAgPGJwbW46ZXhjbHVzaXZlR2F0ZXdheSBpZD0iR1dfaV9tZXJnZSIgbmFtZT0iIj4KICAgICAgPGJwbW46aW5jb21pbmc+Rmxvd19pZDE8L2JwbW46aW5jb21pbmc+CiAgICAgIDxicG1uOmluY29taW5nPkZsb3dfaWQyPC9icG1uOmluY29taW5nPgogICAgICA8YnBtbjppbmNvbWluZz5GbG93X2lkMzwvYnBtbjppbmNvbWluZz4KICAgICAgPGJwbW46b3V0Z29pbmc+Rmxvd19pNjwvYnBtbjpvdXRnb2luZz4KICAgIDwvYnBtbjpleGNsdXNpdmVHYXRld2F5PgogICAgPGJwbW46c2VxdWVuY2VGbG93IGlkPSJGbG93X2lkMSIgc291cmNlUmVmPSJUYXNrX2lfZGVuaWFsIiB0YXJnZXRSZWY9IkdXX2lfbWVyZ2UiLz4KICAgIDxicG1uOnNlcXVlbmNlRmxvdyBpZD0iRmxvd19pZDIiIHNvdXJjZVJlZj0iVGFza19pX3JlZGFjdCIgdGFyZ2V0UmVmPSJHV19pX21lcmdlIi8+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfaWQzIiBzb3VyY2VSZWY9IlRhc2tfaV9wcmVwYXJlIiB0YXJnZXRSZWY9IkdXX2lfbWVyZ2UiLz4KICAgIDxicG1uOnNlcXVlbmNlRmxvdyBpZD0iRmxvd19pNiIgc291cmNlUmVmPSJHV19pX21lcmdlIiB0YXJnZXRSZWY9IkdXX2lfdGltaW5nIi8+CiAgICA8YnBtbjpleGNsdXNpdmVHYXRld2F5IGlkPSJHV19pX3RpbWluZyIgbmFtZT0iV2l0aGluIDUtRGF5IFdpbmRvdz8iIGRlZmF1bHQ9IkZsb3dfaV9vbl90aW1lIj4KICAgICAgPGJwbW46aW5jb21pbmc+Rmxvd19pNjwvYnBtbjppbmNvbWluZz4KICAgICAgPGJwbW46b3V0Z29pbmc+Rmxvd19pX29uX3RpbWU8L2JwbW46b3V0Z29pbmc+CiAgICAgIDxicG1uOm91dGdvaW5nPkZsb3dfaV9sYXRlPC9icG1uOm91dGdvaW5nPgogICAgPC9icG1uOmV4Y2x1c2l2ZUdhdGV3YXk+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfaV9vbl90aW1lIiBuYW1lPSJZZXMiIHNvdXJjZVJlZj0iR1dfaV90aW1pbmciIHRhcmdldFJlZj0iVGFza19pX2RlbGl2ZXIiLz4KICAgIDxicG1uOnNlcXVlbmNlRmxvdyBpZD0iRmxvd19pX2xhdGUiIG5hbWU9Ik5vIOKAlCBFeHRlbnNpb24gTm90aWNlIFJlcXVpcmVkIiBzb3VyY2VSZWY9IkdXX2lfdGltaW5nIiB0YXJnZXRSZWY9IlRhc2tfaV9leHRlbmQiPgogICAgICA8YnBtbjpjb25kaXRpb25FeHByZXNzaW9uPmlzTGF0ZTwvYnBtbjpjb25kaXRpb25FeHByZXNzaW9uPgogICAgPC9icG1uOnNlcXVlbmNlRmxvdz4KICAgIDxicG1uOnVzZXJUYXNrIGlkPSJUYXNrX2lfZXh0ZW5kIiBuYW1lPSJJc3N1ZSBFeHRlbnNpb24gTm90aWNlIFdpdGhpbiA1IERheXMg4oCUIFNwZWNpZnkgQ29uZGl0aW9uczsgNyBBZGQuIERheXMgR3JhbnRlZCAowqcgMi4yLTM3MDQuQi40KSI+CiAgICAgIDxicG1uOmluY29taW5nPkZsb3dfaV9sYXRlPC9icG1uOmluY29taW5nPgogICAgICA8YnBtbjpvdXRnb2luZz5GbG93X2lfZXh0PC9icG1uOm91dGdvaW5nPgogICAgPC9icG1uOnVzZXJUYXNrPgogICAgPGJwbW46c2VxdWVuY2VGbG93IGlkPSJGbG93X2lfZXh0IiBzb3VyY2VSZWY9IlRhc2tfaV9leHRlbmQiIHRhcmdldFJlZj0iVGFza19pX2RlbGl2ZXIiLz4KICAgIDxicG1uOnVzZXJUYXNrIGlkPSJUYXNrX2lfZGVsaXZlciIgbmFtZT0iRGVsaXZlciBSZWNvcmRzIC8gV3JpdHRlbiBSZXNwb25zZSB0byBSZXF1ZXN0ZXI7IENvbGxlY3QgQW55IEFwcGxpY2FibGUgRmVlcyI+CiAgICAgIDxicG1uOmluY29taW5nPkZsb3dfaV9vbl90aW1lPC9icG1uOmluY29taW5nPgogICAgICA8YnBtbjppbmNvbWluZz5GbG93X2lfZXh0PC9icG1uOmluY29taW5nPgogICAgICA8YnBtbjpvdXRnb2luZz5GbG93X2k3PC9icG1uOm91dGdvaW5nPgogICAgPC9icG1uOnVzZXJUYXNrPgogICAgPGJwbW46c2VxdWVuY2VGbG93IGlkPSJGbG93X2k3IiBzb3VyY2VSZWY9IlRhc2tfaV9kZWxpdmVyIiB0YXJnZXRSZWY9IlRhc2tfaV9jbG9zZSIvPgogICAgPGJwbW46dXNlclRhc2sgaWQ9IlRhc2tfaV9jbG9zZSIgbmFtZT0iQ2xvc2UgUmVxdWVzdCBpbiBUcmFja2luZyBTeXN0ZW07IFJldGFpbiBBbGwgUmVjb3JkcyBwZXIgUmV0ZW50aW9uIFNjaGVkdWxlIj4KICAgICAgPGJwbW46aW5jb21pbmc+Rmxvd19pNzwvYnBtbjppbmNvbWluZz4KICAgICAgPGJwbW46b3V0Z29pbmc+Rmxvd19pODwvYnBtbjpvdXRnb2luZz4KICAgIDwvYnBtbjp1c2VyVGFzaz4KICAgIDxicG1uOmVuZEV2ZW50IGlkPSJFRV9pbnQiIG5hbWU9IlJlcXVlc3QgQ2xvc2VkIj4KICAgICAgPGJwbW46aW5jb21pbmc+Rmxvd19pODwvYnBtbjppbmNvbWluZz4KICAgIDwvYnBtbjplbmRFdmVudD4KICAgIDxicG1uOnNlcXVlbmNlRmxvdyBpZD0iRmxvd19pOCIgc291cmNlUmVmPSJUYXNrX2lfY2xvc2UiIHRhcmdldFJlZj0iRUVfaW50Ii8+CiAgPC9icG1uOnByb2Nlc3M+CiAgPGJwbW5kaTpCUE1ORGlhZ3JhbSBpZD0iQlBNTkRpYWdyYW1fZm9pYV9pbnQiPgogICAgPGJwbW5kaTpCUE1OUGxhbmUgaWQ9IkJQTU5QbGFuZV9mb2lhX2ludCIgYnBtbkVsZW1lbnQ9ImZvaWFfaW50ZXJuYWxfcHJvY2VzcyI+CiAgICAgIDxicG1uZGk6QlBNTlNoYXBlIGlkPSJTRV9pbnRfZGkiIGJwbW5FbGVtZW50PSJTRV9pbnQiPjxkYzpCb3VuZHMgeD0iMTUyIiB5PSIyMjIiIHdpZHRoPSIzNiIgaGVpZ2h0PSIzNiIvPjwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IlRhc2tfaV9sb2dfZGkiIGJwbW5FbGVtZW50PSJUYXNrX2lfbG9nIj48ZGM6Qm91bmRzIHg9IjI0MCIgeT0iMjAwIiB3aWR0aD0iMTYwIiBoZWlnaHQ9IjgwIi8+PC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iVGFza19pX3JvdXRlX2RpIiBicG1uRWxlbWVudD0iVGFza19pX3JvdXRlIj48ZGM6Qm91bmRzIHg9IjQ2MCIgeT0iMjAwIiB3aWR0aD0iMTUwIiBoZWlnaHQ9IjgwIi8+PC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iVGFza19pX3NlYXJjaF9kaSIgYnBtbkVsZW1lbnQ9IlRhc2tfaV9zZWFyY2giPjxkYzpCb3VuZHMgeD0iNjcwIiB5PSIyMDAiIHdpZHRoPSIxNTAiIGhlaWdodD0iODAiLz48L2JwbW5kaTpCUE1OU2hhcGU+CiAgICAgIDxicG1uZGk6QlBNTlNoYXBlIGlkPSJUYXNrX2lfbGVnYWxfZGkiIGJwbW5FbGVtZW50PSJUYXNrX2lfbGVnYWwiPjxkYzpCb3VuZHMgeD0iODgwIiB5PSIyMDAiIHdpZHRoPSIxNjAiIGhlaWdodD0iODAiLz48L2JwbW5kaTpCUE1OU2hhcGU+CiAgICAgIDxicG1uZGk6QlBNTlNoYXBlIGlkPSJHV19pX2V4ZW1wdF9kaSIgYnBtbkVsZW1lbnQ9IkdXX2lfZXhlbXB0IiBpc01hcmtlclZpc2libGU9InRydWUiPjxkYzpCb3VuZHMgeD0iMTExMCIgeT0iMjE1IiB3aWR0aD0iNTAiIGhlaWdodD0iNTAiLz48YnBtbmRpOkJQTU5MYWJlbD48ZGM6Qm91bmRzIHg9IjEwOTAiIHk9IjI3MiIgd2lkdGg9IjkwIiBoZWlnaHQ9IjE0Ii8+PC9icG1uZGk6QlBNTkxhYmVsPjwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IlRhc2tfaV9kZW5pYWxfZGkiIGJwbW5FbGVtZW50PSJUYXNrX2lfZGVuaWFsIj48ZGM6Qm91bmRzIHg9IjEyMzAiIHk9IjgwIiB3aWR0aD0iMTkwIiBoZWlnaHQ9IjgwIi8+PC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iVGFza19pX3JlZGFjdF9kaSIgYnBtbkVsZW1lbnQ9IlRhc2tfaV9yZWRhY3QiPjxkYzpCb3VuZHMgeD0iMTIzMCIgeT0iMjAwIiB3aWR0aD0iMTkwIiBoZWlnaHQ9IjgwIi8+PC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iVGFza19pX3ByZXBhcmVfZGkiIGJwbW5FbGVtZW50PSJUYXNrX2lfcHJlcGFyZSI+PGRjOkJvdW5kcyB4PSIxMjMwIiB5PSIzMzAiIHdpZHRoPSIxOTAiIGhlaWdodD0iODAiLz48L2JwbW5kaTpCUE1OU2hhcGU+CiAgICAgIDxicG1uZGk6QlBNTlNoYXBlIGlkPSJHV19pX21lcmdlX2RpIiBicG1uRWxlbWVudD0iR1dfaV9tZXJnZSIgaXNNYXJrZXJWaXNpYmxlPSJ0cnVlIj48ZGM6Qm91bmRzIHg9IjE0OTAiIHk9IjIxNSIgd2lkdGg9IjUwIiBoZWlnaHQ9IjUwIi8+PC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iR1dfaV90aW1pbmdfZGkiIGJwbW5FbGVtZW50PSJHV19pX3RpbWluZyIgaXNNYXJrZXJWaXNpYmxlPSJ0cnVlIj48ZGM6Qm91bmRzIHg9IjE2MTAiIHk9IjIxNSIgd2lkdGg9IjUwIiBoZWlnaHQ9IjUwIi8+PGJwbW5kaTpCUE1OTGFiZWw+PGRjOkJvdW5kcyB4PSIxNTg1IiB5PSIyNzIiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTQiLz48L2JwbW5kaTpCUE1OTGFiZWw+PC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iVGFza19pX2V4dGVuZF9kaSIgYnBtbkVsZW1lbnQ9IlRhc2tfaV9leHRlbmQiPjxkYzpCb3VuZHMgeD0iMTcyMCIgeT0iMzQwIiB3aWR0aD0iMTkwIiBoZWlnaHQ9IjgwIi8+PC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iVGFza19pX2RlbGl2ZXJfZGkiIGJwbW5FbGVtZW50PSJUYXNrX2lfZGVsaXZlciI+PGRjOkJvdW5kcyB4PSIxNzMwIiB5PSIyMDAiIHdpZHRoPSIxNzAiIGhlaWdodD0iODAiLz48L2JwbW5kaTpCUE1OU2hhcGU+CiAgICAgIDxicG1uZGk6QlBNTlNoYXBlIGlkPSJUYXNrX2lfY2xvc2VfZGkiIGJwbW5FbGVtZW50PSJUYXNrX2lfY2xvc2UiPjxkYzpCb3VuZHMgeD0iMTk2MCIgeT0iMjAwIiB3aWR0aD0iMTYwIiBoZWlnaHQ9IjgwIi8+PC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iRUVfaW50X2RpIiBicG1uRWxlbWVudD0iRUVfaW50Ij48ZGM6Qm91bmRzIHg9IjIxOTIiIHk9IjIyMiIgd2lkdGg9IjM2IiBoZWlnaHQ9IjM2Ii8+PC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93X2kxX2RpIiBicG1uRWxlbWVudD0iRmxvd19pMSI+PGRpOndheXBvaW50IHg9IjE4OCIgeT0iMjQwIi8+PGRpOndheXBvaW50IHg9IjI0MCIgeT0iMjQwIi8+PC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfaTJfZGkiIGJwbW5FbGVtZW50PSJGbG93X2kyIj48ZGk6d2F5cG9pbnQgeD0iNDAwIiB5PSIyNDAiLz48ZGk6d2F5cG9pbnQgeD0iNDYwIiB5PSIyNDAiLz48L2JwbW5kaTpCUE1ORWRnZT4KICAgICAgPGJwbW5kaTpCUE1ORWRnZSBpZD0iRmxvd19pM19kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfaTMiPjxkaTp3YXlwb2ludCB4PSI2MTAiIHk9IjI0MCIvPjxkaTp3YXlwb2ludCB4PSI2NzAiIHk9IjI0MCIvPjwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93X2k0X2RpIiBicG1uRWxlbWVudD0iRmxvd19pNCI+PGRpOndheXBvaW50IHg9IjgyMCIgeT0iMjQwIi8+PGRpOndheXBvaW50IHg9Ijg4MCIgeT0iMjQwIi8+PC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfaTVfZGkiIGJwbW5FbGVtZW50PSJGbG93X2k1Ij48ZGk6d2F5cG9pbnQgeD0iMTA0MCIgeT0iMjQwIi8+PGRpOndheXBvaW50IHg9IjExMTAiIHk9IjI0MCIvPjwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93X2lfZnVsbF9leGVtcHRfZGkiIGJwbW5FbGVtZW50PSJGbG93X2lfZnVsbF9leGVtcHQiPjxkaTp3YXlwb2ludCB4PSIxMTM1IiB5PSIyMTUiLz48ZGk6d2F5cG9pbnQgeD0iMTEzNSIgeT0iMTIwIi8+PGRpOndheXBvaW50IHg9IjEyMzAiIHk9IjEyMCIvPjxicG1uZGk6QlBNTkxhYmVsPjxkYzpCb3VuZHMgeD0iMTE0MCIgeT0iMTYzIiB3aWR0aD0iNjAiIGhlaWdodD0iMTQiLz48L2JwbW5kaTpCUE1OTGFiZWw+PC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfaV9wYXJ0aWFsX2V4ZW1wdF9kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfaV9wYXJ0aWFsX2V4ZW1wdCI+PGRpOndheXBvaW50IHg9IjExNjAiIHk9IjI0MCIvPjxkaTp3YXlwb2ludCB4PSIxMjMwIiB5PSIyNDAiLz48YnBtbmRpOkJQTU5MYWJlbD48ZGM6Qm91bmRzIHg9IjExNjUiIHk9IjIyMiIgd2lkdGg9IjYwIiBoZWlnaHQ9IjE0Ii8+PC9icG1uZGk6QlBNTkxhYmVsPjwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93X2lfbm9fZXhlbXB0X2RpIiBicG1uRWxlbWVudD0iRmxvd19pX25vX2V4ZW1wdCI+PGRpOndheXBvaW50IHg9IjExMzUiIHk9IjI2NSIvPjxkaTp3YXlwb2ludCB4PSIxMTM1IiB5PSIzNzAiLz48ZGk6d2F5cG9pbnQgeD0iMTIzMCIgeT0iMzcwIi8+PGJwbW5kaTpCUE1OTGFiZWw+PGRjOkJvdW5kcyB4PSIxMTQwIiB5PSIzMTMiIHdpZHRoPSI2OCIgaGVpZ2h0PSIxNCIvPjwvYnBtbmRpOkJQTU5MYWJlbD48L2JwbW5kaTpCUE1ORWRnZT4KICAgICAgPGJwbW5kaTpCUE1ORWRnZSBpZD0iRmxvd19pZDFfZGkiIGJwbW5FbGVtZW50PSJGbG93X2lkMSI+PGRpOndheXBvaW50IHg9IjE0MjAiIHk9IjEyMCIvPjxkaTp3YXlwb2ludCB4PSIxNTE1IiB5PSIxMjAiLz48ZGk6d2F5cG9pbnQgeD0iMTUxNSIgeT0iMjE1Ii8+PC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfaWQyX2RpIiBicG1uRWxlbWVudD0iRmxvd19pZDIiPjxkaTp3YXlwb2ludCB4PSIxNDIwIiB5PSIyNDAiLz48ZGk6d2F5cG9pbnQgeD0iMTQ5MCIgeT0iMjQwIi8+PC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfaWQzX2RpIiBicG1uRWxlbWVudD0iRmxvd19pZDMiPjxkaTp3YXlwb2ludCB4PSIxNDIwIiB5PSIzNzAiLz48ZGk6d2F5cG9pbnQgeD0iMTUxNSIgeT0iMzcwIi8+PGRpOndheXBvaW50IHg9IjE1MTUiIHk9IjI2NSIvPjwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93X2k2X2RpIiBicG1uRWxlbWVudD0iRmxvd19pNiI+PGRpOndheXBvaW50IHg9IjE1NDAiIHk9IjI0MCIvPjxkaTp3YXlwb2ludCB4PSIxNjEwIiB5PSIyNDAiLz48L2JwbW5kaTpCUE1ORWRnZT4KICAgICAgPGJwbW5kaTpCUE1ORWRnZSBpZD0iRmxvd19pX29uX3RpbWVfZGkiIGJwbW5FbGVtZW50PSJGbG93X2lfb25fdGltZSI+PGRpOndheXBvaW50IHg9IjE2NjAiIHk9IjI0MCIvPjxkaTp3YXlwb2ludCB4PSIxNzMwIiB5PSIyNDAiLz48YnBtbmRpOkJQTU5MYWJlbD48ZGM6Qm91bmRzIHg9IjE2ODUiIHk9IjIyMiIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE0Ii8+PC9icG1uZGk6QlBNTkxhYmVsPjwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93X2lfbGF0ZV9kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfaV9sYXRlIj48ZGk6d2F5cG9pbnQgeD0iMTYzNSIgeT0iMjY1Ii8+PGRpOndheXBvaW50IHg9IjE2MzUiIHk9IjM4MCIvPjxkaTp3YXlwb2ludCB4PSIxNzIwIiB5PSIzODAiLz48YnBtbmRpOkJQTU5MYWJlbD48ZGM6Qm91bmRzIHg9IjE2NDAiIHk9IjMyMCIgd2lkdGg9IjY4IiBoZWlnaHQ9IjE0Ii8+PC9icG1uZGk6QlBNTkxhYmVsPjwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93X2lfZXh0X2RpIiBicG1uRWxlbWVudD0iRmxvd19pX2V4dCI+PGRpOndheXBvaW50IHg9IjE4MTUiIHk9IjM4MCIvPjxkaTp3YXlwb2ludCB4PSIxODE1IiB5PSIyODAiLz48L2JwbW5kaTpCUE1ORWRnZT4KICAgICAgPGJwbW5kaTpCUE1ORWRnZSBpZD0iRmxvd19pN19kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfaTciPjxkaTp3YXlwb2ludCB4PSIxOTAwIiB5PSIyNDAiLz48ZGk6d2F5cG9pbnQgeD0iMTk2MCIgeT0iMjQwIi8+PC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfaThfZGkiIGJwbW5FbGVtZW50PSJGbG93X2k4Ij48ZGk6d2F5cG9pbnQgeD0iMjEyMCIgeT0iMjQwIi8+PGRpOndheXBvaW50IHg9IjIxOTIiIHk9IjI0MCIvPjwvYnBtbmRpOkJQTU5FZGdlPgogICAgPC9icG1uZGk6QlBNTlBsYW5lPgogIDwvYnBtbmRpOkJQTU5EaWFncmFtPgo8L2JwbW46ZGVmaW5pdGlvbnM+Cg==

Records Search Standards

The custodian must search all formats — paper files, email, shared drives, databases, text messages on government devices, voicemail, and any other medium where public records may be stored. Virginia courts have held that a reasonable search is required even for informally stored records.

Redaction Requirements (§ 2.2-3704.01)

When records contain both exempt and non-exempt information, the public body must redact exempt portions and must produce the non-exempt portions. The written response must:

  1. Identify with reasonable particularity the subject matter of withheld portions
  2. Cite the specific Code section authorizing each withholding (not just “attorney-client privilege” — must cite § 2.2-3705.1(2), etc.)
  3. A blanket denial citing a general category is insufficient and constitutes a FOIA violation

IV. Common Exemptions Reference

The following are the most frequently invoked exemptions for a local government like Charlottesville. Exemptions are discretionary — the city may choose to disclose even exempt records unless disclosure is otherwise prohibited by law.

Exemption Code Section Scope
Personnel records § 2.2-3705.1(1) Individual employee records; but name, position, salary always public
Attorney-client / legal advice § 2.2-3705.1(2) Written legal advice and attorney-client communications
Work product for litigation § 2.2-3705.1(3) Materials prepared for active litigation or closed-meeting investigation
Public safety / security plans § 2.2-3705.2 Vulnerability assessments, security plans for infrastructure
Administrative investigations § 2.2-3705.3 Active internal investigations; not permanent
Law enforcement records § 2.2-3706 / 3706.1 Criminal investigative files, active case materials
Real property appraisals § 2.2-3705.1(8) Pre-transaction appraisals; expires upon deal completion
Procurement negotiation § 2.2-3705.1(12) Active bid/contract negotiations; expires on award decision
Health / social services § 2.2-3705.5 Individual patient/client records
Proprietary / trade secrets § 2.2-3705.6 Vendor trade secrets submitted in confidence

Important: The public body bears the burden of proof to establish any exemption applies (§ 2.2-3713.E). Courts give no deference to the agency's own determination.

Exemption Decision Tree (SpiffWorkflow)

Each exemption category should map to a business rule task or DMN decision table in SpiffWorkflow:

  • Input: record type, requestor type, record age, case status (active/closed)
  • Output: disclose | redact with citation | withhold with citation
  • The DMN table should reference the specific subsection for each output path
  • Redaction decisions should be logged with rationale for audit trail and potential litigation defense

V. Open Meetings Compliance

FOIA also governs public body meetings (§§ 2.2-3707 through 2.2-3712). All meetings of public bodies must be open unless a specific closed-session purpose applies under § 2.2-3711.

Applies to these Charlottesville bodies:

  • City Council
  • Planning Commission
  • Board of Zoning Appeals
  • Board of Architectural Review (BAR)
  • All city advisory boards and commissions
Cjw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+CjxicG1uOmRlZmluaXRpb25zIHhtbG5zOmJwbW49Imh0dHA6Ly93d3cub21nLm9yZy9zcGVjL0JQTU4vMjAxMDA1MjQvTU9ERUwiIHhtbG5zOmJwbW5kaT0iaHR0cDovL3d3dy5vbWcub3JnL3NwZWMvQlBNTi8yMDEwMDUyNC9ESSIgeG1sbnM6ZGM9Imh0dHA6Ly93d3cub21nLm9yZy9zcGVjL0RELzIwMTAwNTI0L0RDIiB4bWxuczpkaT0iaHR0cDovL3d3dy5vbWcub3JnL3NwZWMvREQvMjAxMDA1MjQvREkiIGlkPSJGT0lBX01lZXRpbmdzIiB0YXJnZXROYW1lc3BhY2U9Imh0dHA6Ly9icG1uLmlvL3NjaGVtYS9icG1uIiBleHBvcnRlcj0iQ2FtdW5kYSBNb2RlbGVyIiBleHBvcnRlclZlcnNpb249IjMuMC4wLWRldiI+CiAgPGJwbW46cHJvY2VzcyBpZD0iZm9pYV9tZWV0aW5nc19wcm9jZXNzIiBuYW1lPSJPcGVuIE1lZXRpbmdzIOKAlCBGT0lBIFJlcXVpcmVtZW50cyIgaXNFeGVjdXRhYmxlPSJ0cnVlIj4KICAgIDxicG1uOnN0YXJ0RXZlbnQgaWQ9IlNFX21lZXQiIG5hbWU9IlB1YmxpYyBCb2R5IFNjaGVkdWxlcyBhIE1lZXRpbmciPjxicG1uOm91dGdvaW5nPkZsb3dfbTE8L2JwbW46b3V0Z29pbmc+PC9icG1uOnN0YXJ0RXZlbnQ+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfbTEiIHNvdXJjZVJlZj0iU0VfbWVldCIgdGFyZ2V0UmVmPSJUYXNrX21fbm90aWNlIi8+CiAgICA8YnBtbjp1c2VyVGFzayBpZD0iVGFza19tX25vdGljZSIgbmFtZT0iUG9zdCBNZWV0aW5nIE5vdGljZSDigJQgRGF0ZSwgVGltZSwgTG9jYXRpb24sIEFnZW5kYTsgTWluaW11bSAzIFdvcmtpbmcgRGF5cyBBZHZhbmNlICjCpyAyLjItMzcwNykiPjxicG1uOmluY29taW5nPkZsb3dfbTE8L2JwbW46aW5jb21pbmc+PGJwbW46b3V0Z29pbmc+Rmxvd19tMjwvYnBtbjpvdXRnb2luZz48L2JwbW46dXNlclRhc2s+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfbTIiIHNvdXJjZVJlZj0iVGFza19tX25vdGljZSIgdGFyZ2V0UmVmPSJUYXNrX21fb3BlbiIvPgogICAgPGJwbW46dXNlclRhc2sgaWQ9IlRhc2tfbV9vcGVuIiBuYW1lPSJDb25kdWN0IE9wZW4gUHVibGljIE1lZXRpbmcg4oCUIEFsbCBDaXRpemVucyBNYXkgQXR0ZW5kIj48YnBtbjppbmNvbWluZz5GbG93X20yPC9icG1uOmluY29taW5nPjxicG1uOm91dGdvaW5nPkZsb3dfbTM8L2JwbW46b3V0Z29pbmc+PC9icG1uOnVzZXJUYXNrPgogICAgPGJwbW46c2VxdWVuY2VGbG93IGlkPSJGbG93X20zIiBzb3VyY2VSZWY9IlRhc2tfbV9vcGVuIiB0YXJnZXRSZWY9IkdXX21fY2xvc2VkIi8+CiAgICA8YnBtbjpleGNsdXNpdmVHYXRld2F5IGlkPSJHV19tX2Nsb3NlZCIgbmFtZT0iQ2xvc2VkIFNlc3Npb24gTmVlZGVkPyIgZGVmYXVsdD0iRmxvd19tX25vX2Nsb3NlZCI+PGJwbW46aW5jb21pbmc+Rmxvd19tMzwvYnBtbjppbmNvbWluZz48YnBtbjpvdXRnb2luZz5GbG93X21fY2xvc2VkPC9icG1uOm91dGdvaW5nPjxicG1uOm91dGdvaW5nPkZsb3dfbV9ub19jbG9zZWQ8L2JwbW46b3V0Z29pbmc+PC9icG1uOmV4Y2x1c2l2ZUdhdGV3YXk+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfbV9jbG9zZWQiIG5hbWU9IlllcyIgc291cmNlUmVmPSJHV19tX2Nsb3NlZCIgdGFyZ2V0UmVmPSJUYXNrX21fbW90aW9uIj48YnBtbjpjb25kaXRpb25FeHByZXNzaW9uPm5lZWRzQ2xvc2VkPC9icG1uOmNvbmRpdGlvbkV4cHJlc3Npb24+PC9icG1uOnNlcXVlbmNlRmxvdz4KICAgIDxicG1uOnNlcXVlbmNlRmxvdyBpZD0iRmxvd19tX25vX2Nsb3NlZCIgbmFtZT0iTm8iIHNvdXJjZVJlZj0iR1dfbV9jbG9zZWQiIHRhcmdldFJlZj0iVGFza19tX21pbnV0ZXMiLz4KICAgIDxicG1uOnVzZXJUYXNrIGlkPSJUYXNrX21fbW90aW9uIiBuYW1lPSJQdWJsaWMgQm9keSBWb3RlcyBvbiBNb3Rpb24gdG8gRW50ZXIgQ2xvc2VkIFNlc3Npb24g4oCUIFN0YXRlIFNwZWNpZmljIFN0YXR1dG9yeSBCYXNpcyAowqcgMi4yLTM3MTIpIj48YnBtbjppbmNvbWluZz5GbG93X21fY2xvc2VkPC9icG1uOmluY29taW5nPjxicG1uOm91dGdvaW5nPkZsb3dfbTQ8L2JwbW46b3V0Z29pbmc+PC9icG1uOnVzZXJUYXNrPgogICAgPGJwbW46c2VxdWVuY2VGbG93IGlkPSJGbG93X200IiBzb3VyY2VSZWY9IlRhc2tfbV9tb3Rpb24iIHRhcmdldFJlZj0iVGFza19tX2Nsb3NlZF9zZXNzaW9uIi8+CiAgICA8YnBtbjp1c2VyVGFzayBpZD0iVGFza19tX2Nsb3NlZF9zZXNzaW9uIiBuYW1lPSJDb25kdWN0IENsb3NlZCBTZXNzaW9uIChBdXRob3JpemVkIFB1cnBvc2VzIE9ubHkg4oCUIMKnIDIuMi0zNzExKSI+PGJwbW46aW5jb21pbmc+Rmxvd19tNDwvYnBtbjppbmNvbWluZz48YnBtbjpvdXRnb2luZz5GbG93X201PC9icG1uOm91dGdvaW5nPjwvYnBtbjp1c2VyVGFzaz4KICAgIDxicG1uOnNlcXVlbmNlRmxvdyBpZD0iRmxvd19tNSIgc291cmNlUmVmPSJUYXNrX21fY2xvc2VkX3Nlc3Npb24iIHRhcmdldFJlZj0iVGFza19tX2NlcnRpZnkiLz4KICAgIDxicG1uOnVzZXJUYXNrIGlkPSJUYXNrX21fY2VydGlmeSIgbmFtZT0iUHVibGljIEJvZHkgUmVjb252ZW5lcyBpbiBPcGVuIFNlc3Npb247IFZvdGUgdG8gQ2VydGlmeSBDbG9zZWQgTWVldGluZyBDb21wbGllZCB3aXRoIEZPSUEgKMKnIDIuMi0zNzEyLkQpIj48YnBtbjppbmNvbWluZz5GbG93X201PC9icG1uOmluY29taW5nPjxicG1uOm91dGdvaW5nPkZsb3dfbTY8L2JwbW46b3V0Z29pbmc+PC9icG1uOnVzZXJUYXNrPgogICAgPGJwbW46c2VxdWVuY2VGbG93IGlkPSJGbG93X202IiBzb3VyY2VSZWY9IlRhc2tfbV9jZXJ0aWZ5IiB0YXJnZXRSZWY9IlRhc2tfbV9taW51dGVzIi8+CiAgICA8YnBtbjp1c2VyVGFzayBpZD0iVGFza19tX21pbnV0ZXMiIG5hbWU9IlJlY29yZCBNaW51dGVzIG9mIE9wZW4gU2Vzc2lvbjsgUG9zdCBNaW51dGVzIFdpdGhpbiAzIEJ1c2luZXNzIERheXMgKMKnIDIuMi0zNzA3LjIpIj48YnBtbjppbmNvbWluZz5GbG93X21fbm9fY2xvc2VkPC9icG1uOmluY29taW5nPjxicG1uOmluY29taW5nPkZsb3dfbTY8L2JwbW46aW5jb21pbmc+PGJwbW46b3V0Z29pbmc+Rmxvd19tNzwvYnBtbjpvdXRnb2luZz48L2JwbW46dXNlclRhc2s+CiAgICA8YnBtbjplbmRFdmVudCBpZD0iRUVfbWVldCIgbmFtZT0iTWVldGluZyBQcm9jZXNzIENvbXBsZXRlIj48YnBtbjppbmNvbWluZz5GbG93X203PC9icG1uOmluY29taW5nPjwvYnBtbjplbmRFdmVudD4KICAgIDxicG1uOnNlcXVlbmNlRmxvdyBpZD0iRmxvd19tNyIgc291cmNlUmVmPSJUYXNrX21fbWludXRlcyIgdGFyZ2V0UmVmPSJFRV9tZWV0Ii8+CiAgPC9icG1uOnByb2Nlc3M+CiAgPGJwbW5kaTpCUE1ORGlhZ3JhbSBpZD0iQlBNTkRpYWdyYW1fbWVldCI+CiAgICA8YnBtbmRpOkJQTU5QbGFuZSBpZD0iQlBNTlBsYW5lX21lZXQiIGJwbW5FbGVtZW50PSJmb2lhX21lZXRpbmdzX3Byb2Nlc3MiPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iU0VfbWVldF9kaSIgYnBtbkVsZW1lbnQ9IlNFX21lZXQiPjxkYzpCb3VuZHMgeD0iMTUyIiB5PSIyMjIiIHdpZHRoPSIzNiIgaGVpZ2h0PSIzNiIvPjwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IlRhc2tfbV9ub3RpY2VfZGkiIGJwbW5FbGVtZW50PSJUYXNrX21fbm90aWNlIj48ZGM6Qm91bmRzIHg9IjI0MCIgeT0iMjAwIiB3aWR0aD0iMTcwIiBoZWlnaHQ9IjgwIi8+PC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iVGFza19tX29wZW5fZGkiIGJwbW5FbGVtZW50PSJUYXNrX21fb3BlbiI+PGRjOkJvdW5kcyB4PSI0NzAiIHk9IjIwMCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSI4MCIvPjwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IkdXX21fY2xvc2VkX2RpIiBicG1uRWxlbWVudD0iR1dfbV9jbG9zZWQiIGlzTWFya2VyVmlzaWJsZT0idHJ1ZSI+PGRjOkJvdW5kcyB4PSI3MDAiIHk9IjIxNSIgd2lkdGg9IjUwIiBoZWlnaHQ9IjUwIi8+PGJwbW5kaTpCUE1OTGFiZWw+PGRjOkJvdW5kcyB4PSI2NzQiIHk9IjI3MiIgd2lkdGg9IjEwMiIgaGVpZ2h0PSIxNCIvPjwvYnBtbmRpOkJQTU5MYWJlbD48L2JwbW5kaTpCUE1OU2hhcGU+CiAgICAgIDxicG1uZGk6QlBNTlNoYXBlIGlkPSJUYXNrX21fbW90aW9uX2RpIiBicG1uRWxlbWVudD0iVGFza19tX21vdGlvbiI+PGRjOkJvdW5kcyB4PSI4MjAiIHk9IjgwIiB3aWR0aD0iMTkwIiBoZWlnaHQ9IjgwIi8+PC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iVGFza19tX2Nsb3NlZF9zZXNzaW9uX2RpIiBicG1uRWxlbWVudD0iVGFza19tX2Nsb3NlZF9zZXNzaW9uIj48ZGM6Qm91bmRzIHg9IjEwODAiIHk9IjgwIiB3aWR0aD0iMTgwIiBoZWlnaHQ9IjgwIi8+PC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iVGFza19tX2NlcnRpZnlfZGkiIGJwbW5FbGVtZW50PSJUYXNrX21fY2VydGlmeSI+PGRjOkJvdW5kcyB4PSIxMzMwIiB5PSI4MCIgd2lkdGg9IjIwMCIgaGVpZ2h0PSI4MCIvPjwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IlRhc2tfbV9taW51dGVzX2RpIiBicG1uRWxlbWVudD0iVGFza19tX21pbnV0ZXMiPjxkYzpCb3VuZHMgeD0iMTYxMCIgeT0iMjAwIiB3aWR0aD0iMTgwIiBoZWlnaHQ9IjgwIi8+PC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iRUVfbWVldF9kaSIgYnBtbkVsZW1lbnQ9IkVFX21lZXQiPjxkYzpCb3VuZHMgeD0iMTg2MiIgeT0iMjIyIiB3aWR0aD0iMzYiIGhlaWdodD0iMzYiLz48L2JwbW5kaTpCUE1OU2hhcGU+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfbTFfZGkiIGJwbW5FbGVtZW50PSJGbG93X20xIj48ZGk6d2F5cG9pbnQgeD0iMTg4IiB5PSIyNDAiLz48ZGk6d2F5cG9pbnQgeD0iMjQwIiB5PSIyNDAiLz48L2JwbW5kaTpCUE1ORWRnZT4KICAgICAgPGJwbW5kaTpCUE1ORWRnZSBpZD0iRmxvd19tMl9kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfbTIiPjxkaTp3YXlwb2ludCB4PSI0MTAiIHk9IjI0MCIvPjxkaTp3YXlwb2ludCB4PSI0NzAiIHk9IjI0MCIvPjwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93X20zX2RpIiBicG1uRWxlbWVudD0iRmxvd19tMyI+PGRpOndheXBvaW50IHg9IjYzMCIgeT0iMjQwIi8+PGRpOndheXBvaW50IHg9IjcwMCIgeT0iMjQwIi8+PC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfbV9jbG9zZWRfZGkiIGJwbW5FbGVtZW50PSJGbG93X21fY2xvc2VkIj48ZGk6d2F5cG9pbnQgeD0iNzI1IiB5PSIyMTUiLz48ZGk6d2F5cG9pbnQgeD0iNzI1IiB5PSIxMjAiLz48ZGk6d2F5cG9pbnQgeD0iODIwIiB5PSIxMjAiLz48YnBtbmRpOkJQTU5MYWJlbD48ZGM6Qm91bmRzIHg9IjczMSIgeT0iMTYzIiB3aWR0aD0iMTgiIGhlaWdodD0iMTQiLz48L2JwbW5kaTpCUE1OTGFiZWw+PC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfbV9ub19jbG9zZWRfZGkiIGJwbW5FbGVtZW50PSJGbG93X21fbm9fY2xvc2VkIj48ZGk6d2F5cG9pbnQgeD0iNzUwIiB5PSIyNDAiLz48ZGk6d2F5cG9pbnQgeD0iMTcwMCIgeT0iMjQwIi8+PGJwbW5kaTpCUE1OTGFiZWw+PGRjOkJvdW5kcyB4PSIxMjIwIiB5PSIyMjIiIHdpZHRoPSIxNSIgaGVpZ2h0PSIxNCIvPjwvYnBtbmRpOkJQTU5MYWJlbD48L2JwbW5kaTpCUE1ORWRnZT4KICAgICAgPGJwbW5kaTpCUE1ORWRnZSBpZD0iRmxvd19tNF9kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfbTQiPjxkaTp3YXlwb2ludCB4PSIxMDEwIiB5PSIxMjAiLz48ZGk6d2F5cG9pbnQgeD0iMTA4MCIgeT0iMTIwIi8+PC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfbTVfZGkiIGJwbW5FbGVtZW50PSJGbG93X201Ij48ZGk6d2F5cG9pbnQgeD0iMTI2MCIgeT0iMTIwIi8+PGRpOndheXBvaW50IHg9IjEzMzAiIHk9IjEyMCIvPjwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93X202X2RpIiBicG1uRWxlbWVudD0iRmxvd19tNiI+PGRpOndheXBvaW50IHg9IjE1MzAiIHk9IjEyMCIvPjxkaTp3YXlwb2ludCB4PSIxNzAwIiB5PSIxMjAiLz48ZGk6d2F5cG9pbnQgeD0iMTcwMCIgeT0iMjAwIi8+PC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfbTdfZGkiIGJwbW5FbGVtZW50PSJGbG93X203Ij48ZGk6d2F5cG9pbnQgeD0iMTc5MCIgeT0iMjQwIi8+PGRpOndheXBvaW50IHg9IjE4NjIiIHk9IjI0MCIvPjwvYnBtbmRpOkJQTU5FZGdlPgogICAgPC9icG1uZGk6QlBNTlBsYW5lPgogIDwvYnBtbmRpOkJQTU5EaWFncmFtPgo8L2JwbW46ZGVmaW5pdGlvbnM+Cg==

Closed Session Authorized Purposes (§ 2.2-3711)

Closed sessions may only be held for specifically enumerated purposes, including:

  • Personnel matters (hiring, performance, discipline of specific individuals)
  • Consultation with legal counsel regarding specific legal matters / active litigation
  • Discussion of real property acquisition or disposition where public knowledge would disadvantage the public body
  • Protection of public safety (specific security/emergency plans)
  • Economic development (site selection where disclosure would adversely affect the community)

Important: General policy discussions, even about sensitive topics, may NOT be held in closed session. Voting on any matter may not occur in closed session.

Minutes Requirements (§ 2.2-3707.2)

For local public bodies, minutes of open sessions must be:

  • Recorded at each meeting
  • Made available for public inspection within 3 working days of the meeting
  • Posted on the public body's website within 3 working days (if body has a website)

SpiffWorkflow Notes for Meetings

  • Process ID: foiameetingsprocess — can be triggered on a calendar basis (recurring timer event)
  • Lane: Clerk / Staff — notice posting, minutes recording, website publication
  • Lane: Board/Commission Chair — motion to enter closed session, certification vote
  • Service Task: publish notice to website, send calendar invite to members, post minutes PDF to website
  • Timer Event: 3-working-day deadline for minutes publication; automated reminder at Day 2

VI. Court Enforcement Process

When a public body wrongfully denies records or violates open meetings requirements, any person may seek enforcement through the courts. The FOIA enforcement process is designed to be fast — courts must hear the case within 7 days of filing.

Cjw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+CjxicG1uOmRlZmluaXRpb25zIHhtbG5zOmJwbW49Imh0dHA6Ly93d3cub21nLm9yZy9zcGVjL0JQTU4vMjAxMDA1MjQvTU9ERUwiIHhtbG5zOmJwbW5kaT0iaHR0cDovL3d3dy5vbWcub3JnL3NwZWMvQlBNTi8yMDEwMDUyNC9ESSIgeG1sbnM6ZGM9Imh0dHA6Ly93d3cub21nLm9yZy9zcGVjL0RELzIwMTAwNTI0L0RDIiB4bWxuczpkaT0iaHR0cDovL3d3dy5vbWcub3JnL3NwZWMvREQvMjAxMDA1MjQvREkiIGlkPSJGT0lBX0NvdXJ0IiB0YXJnZXROYW1lc3BhY2U9Imh0dHA6Ly9icG1uLmlvL3NjaGVtYS9icG1uIiBleHBvcnRlcj0iQ2FtdW5kYSBNb2RlbGVyIiBleHBvcnRlclZlcnNpb249IjMuMC4wLWRldiI+CiAgPGJwbW46cHJvY2VzcyBpZD0iZm9pYV9jb3VydF9wcm9jZXNzIiBuYW1lPSJGT0lBIEVuZm9yY2VtZW50IOKAlCBDb3VydCBQcm9jZXNzIiBpc0V4ZWN1dGFibGU9InRydWUiPgogICAgPGJwbW46c3RhcnRFdmVudCBpZD0iU0VfY291cnQiIG5hbWU9IlJlcXVlc3RlcidzIFJpZ2h0cyBEZW5pZWQgb3IgUmVxdWVzdCBVbmFuc3dlcmVkIj48YnBtbjpvdXRnb2luZz5GbG93X2MxPC9icG1uOm91dGdvaW5nPjwvYnBtbjpzdGFydEV2ZW50PgogICAgPGJwbW46c2VxdWVuY2VGbG93IGlkPSJGbG93X2MxIiBzb3VyY2VSZWY9IlNFX2NvdXJ0IiB0YXJnZXRSZWY9IlRhc2tfY19jb3Vuc2VsIi8+CiAgICA8YnBtbjp1c2VyVGFzayBpZD0iVGFza19jX2NvdW5zZWwiIG5hbWU9IlJlcXVlc3RlciBDb25zdWx0cyBBdHRvcm5leSAoT3B0aW9uYWwpIOKAlCBOb3RlOiBBdHRvcm5leSBGZWVzIFJlY292ZXJhYmxlIGlmIFBldGl0aW9uZXIgU3Vic3RhbnRpYWxseSBQcmV2YWlscyAowqcgMi4yLTM3MTMuRCkiPjxicG1uOmluY29taW5nPkZsb3dfYzE8L2JwbW46aW5jb21pbmc+PGJwbW46b3V0Z29pbmc+Rmxvd19jMjwvYnBtbjpvdXRnb2luZz48L2JwbW46dXNlclRhc2s+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfYzIiIHNvdXJjZVJlZj0iVGFza19jX2NvdW5zZWwiIHRhcmdldFJlZj0iVGFza19jX3BldGl0aW9uIi8+CiAgICA8YnBtbjp1c2VyVGFzayBpZD0iVGFza19jX3BldGl0aW9uIiBuYW1lPSJGaWxlIFBldGl0aW9uIGZvciBNYW5kYW11cyBvciBJbmp1bmN0aW9uIHdpdGggQWZmaWRhdml0IFNob3dpbmcgR29vZCBDYXVzZSAowqcgMi4yLTM3MTMuQSkiPjxicG1uOmluY29taW5nPkZsb3dfYzI8L2JwbW46aW5jb21pbmc+PGJwbW46b3V0Z29pbmc+Rmxvd19jMzwvYnBtbjpvdXRnb2luZz48L2JwbW46dXNlclRhc2s+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfYzMiIHNvdXJjZVJlZj0iVGFza19jX3BldGl0aW9uIiB0YXJnZXRSZWY9IkdXX2NfdmVudWUiLz4KICAgIDxicG1uOmV4Y2x1c2l2ZUdhdGV3YXkgaWQ9IkdXX2NfdmVudWUiIG5hbWU9IlZlbnVlPyIgZGVmYXVsdD0iRmxvd19jX2xvY2FsIj48YnBtbjppbmNvbWluZz5GbG93X2MzPC9icG1uOmluY29taW5nPjxicG1uOm91dGdvaW5nPkZsb3dfY19sb2NhbDwvYnBtbjpvdXRnb2luZz48YnBtbjpvdXRnb2luZz5GbG93X2Nfc3RhdGU8L2JwbW46b3V0Z29pbmc+PC9icG1uOmV4Y2x1c2l2ZUdhdGV3YXk+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfY19sb2NhbCIgbmFtZT0iTG9jYWwgQm9keSDigJQgQ2lyY3VpdCBvciBHZW4uIERpc3RyaWN0IENvdXJ0IG9mIENpdHkiIHNvdXJjZVJlZj0iR1dfY192ZW51ZSIgdGFyZ2V0UmVmPSJUYXNrX2Nfc2VydmUiLz4KICAgIDxicG1uOnNlcXVlbmNlRmxvdyBpZD0iRmxvd19jX3N0YXRlIiBuYW1lPSJTdGF0ZSBCb2R5IOKAlCBDaXJjdWl0IC8gR2VuLiBEaXN0cmljdCBvZiBSZXF1ZXN0ZXIncyBSZXNpZGVuY2Ugb3IgUmljaG1vbmQiIHNvdXJjZVJlZj0iR1dfY192ZW51ZSIgdGFyZ2V0UmVmPSJUYXNrX2Nfc2VydmUiPjxicG1uOmNvbmRpdGlvbkV4cHJlc3Npb24+aXNTdGF0ZUJvZHk8L2JwbW46Y29uZGl0aW9uRXhwcmVzc2lvbj48L2JwbW46c2VxdWVuY2VGbG93PgogICAgPGJwbW46dXNlclRhc2sgaWQ9IlRhc2tfY19zZXJ2ZSIgbmFtZT0iU2VydmUgQ29weSBvZiBQZXRpdGlvbiBvbiBQdWJsaWMgQm9keSAoTWluLiAzIFdvcmtpbmcgRGF5cyBCZWZvcmUgSGVhcmluZykiPjxicG1uOmluY29taW5nPkZsb3dfY19sb2NhbDwvYnBtbjppbmNvbWluZz48YnBtbjppbmNvbWluZz5GbG93X2Nfc3RhdGU8L2JwbW46aW5jb21pbmc+PGJwbW46b3V0Z29pbmc+Rmxvd19jNDwvYnBtbjpvdXRnb2luZz48L2JwbW46dXNlclRhc2s+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfYzQiIHNvdXJjZVJlZj0iVGFza19jX3NlcnZlIiB0YXJnZXRSZWY9IlRhc2tfY19oZWFyaW5nIi8+CiAgICA8YnBtbjp1c2VyVGFzayBpZD0iVGFza19jX2hlYXJpbmciIG5hbWU9IkNvdXJ0IEhlYXJpbmcg4oCUIFdpdGhpbiA3IERheXMgb2YgRmlsaW5nICjCpyAyLjItMzcxMy5DKTsgUHVibGljIEJvZHkgQmVhcnMgQnVyZGVuIG9mIFByb29mIHRvIEVzdGFibGlzaCBFeGVtcHRpb24iPjxicG1uOmluY29taW5nPkZsb3dfYzQ8L2JwbW46aW5jb21pbmc+PGJwbW46b3V0Z29pbmc+Rmxvd19jNTwvYnBtbjpvdXRnb2luZz48L2JwbW46dXNlclRhc2s+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfYzUiIHNvdXJjZVJlZj0iVGFza19jX2hlYXJpbmciIHRhcmdldFJlZj0iR1dfY19ydWxpbmciLz4KICAgIDxicG1uOmV4Y2x1c2l2ZUdhdGV3YXkgaWQ9IkdXX2NfcnVsaW5nIiBuYW1lPSJDb3VydCBSdWxpbmc/IiBkZWZhdWx0PSJGbG93X2NfZGlzbWlzc2VkIj48YnBtbjppbmNvbWluZz5GbG93X2M1PC9icG1uOmluY29taW5nPjxicG1uOm91dGdvaW5nPkZsb3dfY19ncmFudGVkPC9icG1uOm91dGdvaW5nPjxicG1uOm91dGdvaW5nPkZsb3dfY19kaXNtaXNzZWQ8L2JwbW46b3V0Z29pbmc+PC9icG1uOmV4Y2x1c2l2ZUdhdGV3YXk+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfY19ncmFudGVkIiBuYW1lPSJWaW9sYXRpb24gRm91bmQiIHNvdXJjZVJlZj0iR1dfY19ydWxpbmciIHRhcmdldFJlZj0iVGFza19jX3JlbWVkeSI+PGJwbW46Y29uZGl0aW9uRXhwcmVzc2lvbj52aW9sYXRpb25Gb3VuZDwvYnBtbjpjb25kaXRpb25FeHByZXNzaW9uPjwvYnBtbjpzZXF1ZW5jZUZsb3c+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfY19kaXNtaXNzZWQiIG5hbWU9IkRpc21pc3NlZCIgc291cmNlUmVmPSJHV19jX3J1bGluZyIgdGFyZ2V0UmVmPSJFRV9jb3VydF9kaXNtaXNzZWQiLz4KICAgIDxicG1uOnVzZXJUYXNrIGlkPSJUYXNrX2NfcmVtZWR5IiBuYW1lPSJDb3VydCBPcmRlcnM6IFJlY29yZHMgRGlzY2xvc2VkOyBNYW5kYW11cyAvIEluanVuY3Rpb24gSXNzdWVkOyBBdHRvcm5leSBGZWVzICZhbXA7IENvc3RzIEF3YXJkZWQ7IENpdmlsIFBlbmFsdHkgJDUwMOKAkyQyLDAwMCBwZXIgV2lsbGZ1bCBWaW9sYXRpb24gKMKnIDIuMi0zNzE0KSI+PGJwbW46aW5jb21pbmc+Rmxvd19jX2dyYW50ZWQ8L2JwbW46aW5jb21pbmc+PGJwbW46b3V0Z29pbmc+Rmxvd19jNjwvYnBtbjpvdXRnb2luZz48L2JwbW46dXNlclRhc2s+CiAgICA8YnBtbjplbmRFdmVudCBpZD0iRUVfY291cnRfZ3JhbnRlZCIgbmFtZT0iUmVxdWVzdGVyIFByZXZhaWxzIOKAlCBSZWNvcmRzIE9yZGVyZWQgUmVsZWFzZWQiPjxicG1uOmluY29taW5nPkZsb3dfYzY8L2JwbW46aW5jb21pbmc+PC9icG1uOmVuZEV2ZW50PgogICAgPGJwbW46ZW5kRXZlbnQgaWQ9IkVFX2NvdXJ0X2Rpc21pc3NlZCIgbmFtZT0iUGV0aXRpb24gRGlzbWlzc2VkIj48YnBtbjppbmNvbWluZz5GbG93X2NfZGlzbWlzc2VkPC9icG1uOmluY29taW5nPjwvYnBtbjplbmRFdmVudD4KICAgIDxicG1uOnNlcXVlbmNlRmxvdyBpZD0iRmxvd19jNiIgc291cmNlUmVmPSJUYXNrX2NfcmVtZWR5IiB0YXJnZXRSZWY9IkVFX2NvdXJ0X2dyYW50ZWQiLz4KICA8L2JwbW46cHJvY2Vzcz4KICA8YnBtbmRpOkJQTU5EaWFncmFtIGlkPSJCUE1ORGlhZ3JhbV9jb3VydCI+CiAgICA8YnBtbmRpOkJQTU5QbGFuZSBpZD0iQlBNTlBsYW5lX2NvdXJ0IiBicG1uRWxlbWVudD0iZm9pYV9jb3VydF9wcm9jZXNzIj4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IlNFX2NvdXJ0X2RpIiBicG1uRWxlbWVudD0iU0VfY291cnQiPjxkYzpCb3VuZHMgeD0iMTUyIiB5PSIyMTIiIHdpZHRoPSIzNiIgaGVpZ2h0PSIzNiIvPjwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IlRhc2tfY19jb3Vuc2VsX2RpIiBicG1uRWxlbWVudD0iVGFza19jX2NvdW5zZWwiPjxkYzpCb3VuZHMgeD0iMjQwIiB5PSIxOTAiIHdpZHRoPSIxNzAiIGhlaWdodD0iODAiLz48L2JwbW5kaTpCUE1OU2hhcGU+CiAgICAgIDxicG1uZGk6QlBNTlNoYXBlIGlkPSJUYXNrX2NfcGV0aXRpb25fZGkiIGJwbW5FbGVtZW50PSJUYXNrX2NfcGV0aXRpb24iPjxkYzpCb3VuZHMgeD0iNDcwIiB5PSIxOTAiIHdpZHRoPSIxNzAiIGhlaWdodD0iODAiLz48L2JwbW5kaTpCUE1OU2hhcGU+CiAgICAgIDxicG1uZGk6QlBNTlNoYXBlIGlkPSJHV19jX3ZlbnVlX2RpIiBicG1uRWxlbWVudD0iR1dfY192ZW51ZSIgaXNNYXJrZXJWaXNpYmxlPSJ0cnVlIj48ZGM6Qm91bmRzIHg9IjcxMCIgeT0iMjA1IiB3aWR0aD0iNTAiIGhlaWdodD0iNTAiLz48YnBtbmRpOkJQTU5MYWJlbD48ZGM6Qm91bmRzIHg9IjcyMyIgeT0iMjYyIiB3aWR0aD0iMzQiIGhlaWdodD0iMTQiLz48L2JwbW5kaTpCUE1OTGFiZWw+PC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iVGFza19jX3NlcnZlX2RpIiBicG1uRWxlbWVudD0iVGFza19jX3NlcnZlIj48ZGM6Qm91bmRzIHg9Ijg0MCIgeT0iMTkwIiB3aWR0aD0iMTcwIiBoZWlnaHQ9IjgwIi8+PC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iVGFza19jX2hlYXJpbmdfZGkiIGJwbW5FbGVtZW50PSJUYXNrX2NfaGVhcmluZyI+PGRjOkJvdW5kcyB4PSIxMDcwIiB5PSIxOTAiIHdpZHRoPSIxODAiIGhlaWdodD0iODAiLz48L2JwbW5kaTpCUE1OU2hhcGU+CiAgICAgIDxicG1uZGk6QlBNTlNoYXBlIGlkPSJHV19jX3J1bGluZ19kaSIgYnBtbkVsZW1lbnQ9IkdXX2NfcnVsaW5nIiBpc01hcmtlclZpc2libGU9InRydWUiPjxkYzpCb3VuZHMgeD0iMTMyMCIgeT0iMjA1IiB3aWR0aD0iNTAiIGhlaWdodD0iNTAiLz48YnBtbmRpOkJQTU5MYWJlbD48ZGM6Qm91bmRzIHg9IjEzMDgiIHk9IjI2MiIgd2lkdGg9Ijc0IiBoZWlnaHQ9IjE0Ii8+PC9icG1uZGk6QlBNTkxhYmVsPjwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IlRhc2tfY19yZW1lZHlfZGkiIGJwbW5FbGVtZW50PSJUYXNrX2NfcmVtZWR5Ij48ZGM6Qm91bmRzIHg9IjE0NTAiIHk9IjgwIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjgwIi8+PC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iRUVfY291cnRfZ3JhbnRlZF9kaSIgYnBtbkVsZW1lbnQ9IkVFX2NvdXJ0X2dyYW50ZWQiPjxkYzpCb3VuZHMgeD0iMTcyMiIgeT0iMTAyIiB3aWR0aD0iMzYiIGhlaWdodD0iMzYiLz48L2JwbW5kaTpCUE1OU2hhcGU+CiAgICAgIDxicG1uZGk6QlBNTlNoYXBlIGlkPSJFRV9jb3VydF9kaXNtaXNzZWRfZGkiIGJwbW5FbGVtZW50PSJFRV9jb3VydF9kaXNtaXNzZWQiPjxkYzpCb3VuZHMgeD0iMTQ1MCIgeT0iMzIyIiB3aWR0aD0iMzYiIGhlaWdodD0iMzYiLz48L2JwbW5kaTpCUE1OU2hhcGU+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfYzFfZGkiIGJwbW5FbGVtZW50PSJGbG93X2MxIj48ZGk6d2F5cG9pbnQgeD0iMTg4IiB5PSIyMzAiLz48ZGk6d2F5cG9pbnQgeD0iMjQwIiB5PSIyMzAiLz48L2JwbW5kaTpCUE1ORWRnZT4KICAgICAgPGJwbW5kaTpCUE1ORWRnZSBpZD0iRmxvd19jMl9kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfYzIiPjxkaTp3YXlwb2ludCB4PSI0MTAiIHk9IjIzMCIvPjxkaTp3YXlwb2ludCB4PSI0NzAiIHk9IjIzMCIvPjwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93X2MzX2RpIiBicG1uRWxlbWVudD0iRmxvd19jMyI+PGRpOndheXBvaW50IHg9IjY0MCIgeT0iMjMwIi8+PGRpOndheXBvaW50IHg9IjcxMCIgeT0iMjMwIi8+PC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfY19sb2NhbF9kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfY19sb2NhbCI+PGRpOndheXBvaW50IHg9Ijc2MCIgeT0iMjMwIi8+PGRpOndheXBvaW50IHg9Ijg0MCIgeT0iMjMwIi8+PGJwbW5kaTpCUE1OTGFiZWw+PGRjOkJvdW5kcyB4PSI3NjUiIHk9IjIxMiIgd2lkdGg9IjY4IiBoZWlnaHQ9IjE0Ii8+PC9icG1uZGk6QlBNTkxhYmVsPjwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93X2Nfc3RhdGVfZGkiIGJwbW5FbGVtZW50PSJGbG93X2Nfc3RhdGUiPjxkaTp3YXlwb2ludCB4PSI3MzUiIHk9IjIwNSIvPjxkaTp3YXlwb2ludCB4PSI3MzUiIHk9IjE1MCIvPjxkaTp3YXlwb2ludCB4PSI5MjUiIHk9IjE1MCIvPjxkaTp3YXlwb2ludCB4PSI5MjUiIHk9IjE5MCIvPjxicG1uZGk6QlBNTkxhYmVsPjxkYzpCb3VuZHMgeD0iNzQwIiB5PSIxNzgiIHdpZHRoPSI4NCIgaGVpZ2h0PSIxNCIvPjwvYnBtbmRpOkJQTU5MYWJlbD48L2JwbW5kaTpCUE1ORWRnZT4KICAgICAgPGJwbW5kaTpCUE1ORWRnZSBpZD0iRmxvd19jNF9kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfYzQiPjxkaTp3YXlwb2ludCB4PSIxMDEwIiB5PSIyMzAiLz48ZGk6d2F5cG9pbnQgeD0iMTA3MCIgeT0iMjMwIi8+PC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfYzVfZGkiIGJwbW5FbGVtZW50PSJGbG93X2M1Ij48ZGk6d2F5cG9pbnQgeD0iMTI1MCIgeT0iMjMwIi8+PGRpOndheXBvaW50IHg9IjEzMjAiIHk9IjIzMCIvPjwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93X2NfZ3JhbnRlZF9kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfY19ncmFudGVkIj48ZGk6d2F5cG9pbnQgeD0iMTM0NSIgeT0iMjA1Ii8+PGRpOndheXBvaW50IHg9IjEzNDUiIHk9IjEyMCIvPjxkaTp3YXlwb2ludCB4PSIxNDUwIiB5PSIxMjAiLz48YnBtbmRpOkJQTU5MYWJlbD48ZGM6Qm91bmRzIHg9IjEzNTIiIHk9IjE1OCIgd2lkdGg9Ijc2IiBoZWlnaHQ9IjE0Ii8+PC9icG1uZGk6QlBNTkxhYmVsPjwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93X2NfZGlzbWlzc2VkX2RpIiBicG1uRWxlbWVudD0iRmxvd19jX2Rpc21pc3NlZCI+PGRpOndheXBvaW50IHg9IjEzNDUiIHk9IjI1NSIvPjxkaTp3YXlwb2ludCB4PSIxMzQ1IiB5PSIzNDAiLz48ZGk6d2F5cG9pbnQgeD0iMTQ1MCIgeT0iMzQwIi8+PGJwbW5kaTpCUE1OTGFiZWw+PGRjOkJvdW5kcyB4PSIxMzUwIiB5PSIyOTMiIHdpZHRoPSI1MCIgaGVpZ2h0PSIxNCIvPjwvYnBtbmRpOkJQTU5MYWJlbD48L2JwbW5kaTpCUE1ORWRnZT4KICAgICAgPGJwbW5kaTpCUE1ORWRnZSBpZD0iRmxvd19jNl9kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfYzYiPjxkaTp3YXlwb2ludCB4PSIxNjUwIiB5PSIxMjAiLz48ZGk6d2F5cG9pbnQgeD0iMTcyMiIgeT0iMTIwIi8+PC9icG1uZGk6QlBNTkVkZ2U+CiAgICA8L2JwbW5kaTpCUE1OUGxhbmU+CiAgPC9icG1uZGk6QlBNTkRpYWdyYW0+CjwvYnBtbjpkZWZpbml0aW9ucz4K
  • Burden of proof: The public body must prove exemption by a preponderance of the evidence — the requester does not have to prove the records are public
  • Attorney fees: If the petitioner “substantially prevails on the merits,” the court shall award reasonable attorney fees and costs from the public body — unless special circumstances make an award unjust
  • Civil penalties (willful violations): $500–$2,000 per violation; $2,000–$5,000 for second/subsequent violations — paid to the Literary Fund (not the requester)
  • Record destruction: Up to $100 per record altered or destroyed to avoid FOIA (§ 2.2-3714.B)
  • Denial is not required to sue: A single instance of denial is sufficient; failure to respond is deemed a denial

Virginia FOIA Advisory Council

The Virginia FOIA Advisory Council provides free advisory opinions on FOIA questions. A public body that relies in good faith on a FOIA Council opinion may have reduced liability even if the court disagrees (§ 2.2-3715). Cities are encouraged to seek advisory opinions for novel or close-call exemption questions.


VII. SpiffWorkflow Implementation Guide

This section maps the FOIA process to a production SpiffWorkflow deployment for the City of Charlottesville.

Process Hierarchy

foia_master_process (Call Activity / Parent)
├── foia_core_process          ← Requester-facing intake and response
│   └── foia_internal_process  ← Called subprocess for staff handling
├── foia_meetings_process      ← Recurring timer-based meeting compliance
└── foia_court_process         ← Triggered if enforcement escalation occurs

Roles / Lanes → SpiffWorkflow Groups

BPMN Lane SpiffWorkflow Group Members
Requester foia-requester Any authenticated citizen / anonymous
FOIA Officer foia-officer City Attorney's Office staff
Department Custodian foia-custodian Records-holding dept. staff (per routing)
City Attorney foia-attorney City Attorney, Deputy City Attorneys
Approver / Supervisor foia-supervisor City Attorney or designee for high-risk denials
Court Liaison foia-court City Attorney litigation staff

Key Service Tasks

Task SpiffWorkflow Connector Notes
Log request, assign ID records-management-api POST to city records system; return requestid | | Send acknowledgement email | email-service | Template: foia-ack.html; include requestid + 5-day deadline date
Notify of cost estimate email-service Template: foia-cost-estimate.html; toll clock until response
Post meeting notice cms-api Push to city website calendar 3+ days before meeting
Publish minutes cms-api Upload PDF; trigger within 3 working days of meeting
Deadline alerts timer-service Day 3: warning; Day 5: escalation to supervisor; Day 12: final deadline
DMN — exemption check camunda-dmn foia-exemptions.dmn table; input: recordtype, casestatus; output: disposition
Audit log entry audit-log-api Log every decision with user, timestamp, rationale, code citation

Form Schemas

foia-request-schema.json (Requester Task):

{
  "title": "FOIA Records Request",
  "type": "object",
  "required": ["requester_name", "requester_address", "record_description"],
  "properties": {
    "requester_name": { "type": "string", "title": "Full Name" },
    "requester_address": { "type": "string", "title": "Legal Address" },
    "requester_email": { "type": "string", "format": "email", "title": "Email (for electronic delivery)" },
    "record_description": { "type": "string", "title": "Description of Records Requested (be specific — date range, type, subject)" },
    "preferred_format": { "type": "string", "enum": ["electronic", "paper_copies", "inspection"], "title": "Preferred Delivery Format" },
    "department_known": { "type": "string", "title": "Department / Office Believed to Hold Records (if known)" }
  }
}

foia-intake-schema.json (FOIA Officer Task):

{
  "title": "FOIA Request Intake",
  "type": "object",
  "required": ["request_id", "receipt_date", "channel", "routed_to"],
  "properties": {
    "request_id": { "type": "string", "title": "Request ID (auto-generated)" },
    "receipt_date": { "type": "string", "format": "date", "title": "Date Received" },
    "deadline_date": { "type": "string", "format": "date", "title": "5-Day Deadline Date (auto-calculated)" },
    "channel": { "type": "string", "enum": ["online", "mail", "fax", "in_person"], "title": "Submission Channel" },
    "routed_to": { "type": "array", "items": { "type": "string" }, "title": "Departments Routed To" },
    "cost_estimate": { "type": "number", "title": "Estimated Cost ($)" },
    "notes": { "type": "string", "title": "Internal Notes" }
  }
}

foia-response-schema.json (Response Task):

{
  "title": "FOIA Response Decision",
  "type": "object",
  "required": ["response_type", "response_date"],
  "properties": {
    "response_type": {
      "type": "string",
      "enum": ["full_disclosure", "partial_with_redactions", "fully_withheld", "not_found", "extension"],
      "title": "Response Type"
    },
    "response_date": { "type": "string", "format": "date", "title": "Date of Response" },
    "exemptions_cited": {
      "type": "array",
      "title": "Exemptions Cited",
      "items": {
        "type": "object",
        "properties": {
          "record_category": { "type": "string" },
          "code_section": { "type": "string" },
          "rationale": { "type": "string" }
        }
      }
    },
    "fees_charged": { "type": "number", "title": "Fees Charged ($)" },
    "delivery_method": { "type": "string", "enum": ["electronic", "paper", "inspection"], "title": "Delivery Method" }
  }
}

DMN: Exemption Decision Table (foia-exemptions.dmn)

recordtype ^ casestatus requestertype ^ Output: disposition ^ Output: citesection
personnelrecord | * | * | redactorwithhold | § 2.2-3705.1(1) | | legaladvice * * withhold § 2.2-3705.1(2)
workproduct | activelitigation * withhold § 2.2-3705.1(3)
lawenforcementinvestigative active * withhold § 2.2-3706.1
lawenforcementinvestigative closed * disclose
propertyappraisal | pretransaction * withhold § 2.2-3705.1(8)
propertyappraisal | posttransaction * disclose
procurement activebid | * | withhold | § 2.2-3705.1(12) | | procurement | awarded | * | disclose | — | | financialaccount * * redactaccountnumbers § 2.2-3705.1(13)
generalcorrespondence | * | * | disclose | — | | salaryrecords * * disclose § 2.2-3705.1(1) — salary always public

Deadline Enforcement (Timer Events)

In SpiffWorkflow, attach Boundary Timer Events to the FOIA Officer's review task:

  • Day 3 timer: Send internal reminder to FOIA Officer: “Request #request_id due in 2 working days”
  • Day 5 timer (non-interrupting → interrupting): If response not complete, escalate to supervisor; trigger foia-supervisor lane task: “Review and approve extension or response”
  • Day 12 timer (extension deadline): Hard stop — court-enforceable deadline; log violation risk flag
  • 30-day timer (cost estimate no-response): If requester does not respond to cost estimate within 30 days, mark request withdrawn (§ 2.2-3704.F)

VIII. Charlottesville-Specific Notes

FOIA and Constitutional Officers

Each constitutional officer maintains their own FOIA program. Records held solely by the Commonwealth's Attorney, Sheriff, Circuit Court Clerk, Commissioner of Revenue, or City Treasurer must be requested from those offices directly — not from the City Attorney.

Police Records

Requests for Charlottesville Police Department records are governed by § 2.2-3706 (general law enforcement records) and § 2.2-3706.1 (criminal incident / investigative files). The standard 5-day clock applies, but for criminal investigative files the extension is 60 working days (not 7). Incident reports and certain 911 audio are generally disclosable once cases are closed.

Email and Electronic Records

City email on city systems is a public record. Text messages on city-issued devices are public records. Personal devices used for city business may contain public records. SpiffWorkflow should include a legal hold / preservation notice sub-process for requests that may implicate active litigation.

Records Retention

Virginia's Library of Virginia General Schedule GS-20 governs city records retention. FOIA responses and the associated request files must be retained for a minimum period. SpiffWorkflow's audit log must align with these schedules — records of FOIA requests themselves are public records.


You could leave a comment if you were logged in.
charlottesville/foia.txt · Last modified: by admin