commit f1b3814c7fc46f90446402a043fe698045fe352f
Author: Ethan Nguyen
Date: Mon Apr 19 18:46:27 2021 -0400
Initial commit
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..ed110d8
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,121 @@
+# Django #
+*.log
+*.pot
+*.pyc
+__pycache__
+db.sqlite3
+media
+
+# Backup files #
+*.bak
+
+# If you are using PyCharm #
+.idea/**/workspace.xml
+.idea/**/tasks.xml
+.idea/dictionaries
+.idea/**/dataSources/
+.idea/**/dataSources.ids
+.idea/**/dataSources.xml
+.idea/**/dataSources.local.xml
+.idea/**/sqlDataSources.xml
+.idea/**/dynamic.xml
+.idea/**/uiDesigner.xml
+.idea/**/gradle.xml
+.idea/**/libraries
+*.iws /out/
+
+# Python #
+*.py[cod]
+*$py.class
+
+# Distribution / packaging
+.Python build/
+develop-eggs/
+dist/
+downloads/
+eggs/
+.eggs/
+lib/
+lib64/
+parts/
+sdist/
+var/
+wheels/
+*.egg-info/
+.installed.cfg
+*.egg
+*.manifest
+*.spec
+
+# Installer logs
+pip-log.txt
+pip-delete-this-directory.txt
+
+# Unit test / coverage reports
+htmlcov/
+.tox/
+.coverage
+.coverage.*
+.cache
+.pytest_cache/
+nosetests.xml
+coverage.xml
+*.cover
+.hypothesis/
+
+# Jupyter Notebook
+.ipynb_checkpoints
+
+# pyenv
+.python-version
+
+# celery
+celerybeat-schedule.*
+
+# SageMath parsed files
+*.sage.py
+
+# Environments
+.env
+.venv
+env/
+venv/
+ENV/
+env.bak/
+venv.bak/
+
+# mkdocs documentation
+/site
+
+# mypy
+.mypy_cache/
+
+# Sublime Text #
+*.tmlanguage.cache
+*.tmPreferences.cache
+*.stTheme.cache
+*.sublime-workspace
+*.sublime-project
+
+# sftp configuration file
+sftp-config.json
+
+# Package control specific files Package
+Control.last-run
+Control.ca-list
+Control.ca-bundle
+Control.system-ca-bundle
+GitHub.sublime-settings
+
+# Visual Studio Code #
+.vscode/*
+!.vscode/settings.json
+!.vscode/tasks.json
+!.vscode/launch.json
+!.vscode/extensions.json
+.history
+
+tjdests/settings/secret.py
+/.idea/
+/tjdests/serve/
+secret.py
diff --git a/LICENSE.md b/LICENSE.md
new file mode 100644
index 0000000..cba6f6a
--- /dev/null
+++ b/LICENSE.md
@@ -0,0 +1,660 @@
+### GNU AFFERO GENERAL PUBLIC LICENSE
+
+Version 3, 19 November 2007
+
+Copyright (C) 2007 Free Software Foundation, Inc.
+
+
+Everyone is permitted to copy and distribute verbatim copies of this
+license document, but changing it is not allowed.
+
+### Preamble
+
+The GNU Affero General Public License is a free, copyleft license for
+software and other kinds of works, specifically designed to ensure
+cooperation with the community in the case of network server software.
+
+The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+our General Public Licenses are intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains
+free software for all its users.
+
+When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+Developers that use our General Public Licenses protect your rights
+with two steps: (1) assert copyright on the software, and (2) offer
+you this License which gives you legal permission to copy, distribute
+and/or modify the software.
+
+A secondary benefit of defending all users' freedom is that
+improvements made in alternate versions of the program, if they
+receive widespread use, become available for other developers to
+incorporate. Many developers of free software are heartened and
+encouraged by the resulting cooperation. However, in the case of
+software used on network servers, this result may fail to come about.
+The GNU General Public License permits making a modified version and
+letting the public access it on a server without ever releasing its
+source code to the public.
+
+The GNU Affero General Public License is designed specifically to
+ensure that, in such cases, the modified source code becomes available
+to the community. It requires the operator of a network server to
+provide the source code of the modified version running there to the
+users of that server. Therefore, public use of a modified version, on
+a publicly accessible server, gives the public access to the source
+code of the modified version.
+
+An older license, called the Affero General Public License and
+published by Affero, was designed to accomplish similar goals. This is
+a different license, not a version of the Affero GPL, but Affero has
+released a new version of the Affero GPL which permits relicensing
+under this license.
+
+The precise terms and conditions for copying, distribution and
+modification follow.
+
+### TERMS AND CONDITIONS
+
+#### 0. Definitions.
+
+"This License" refers to version 3 of the GNU Affero General Public
+License.
+
+"Copyright" also means copyright-like laws that apply to other kinds
+of works, such as semiconductor masks.
+
+"The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of
+an exact copy. The resulting work is called a "modified version" of
+the earlier work or a work "based on" the earlier work.
+
+A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user
+through a computer network, with no transfer of a copy, is not
+conveying.
+
+An interactive user interface displays "Appropriate Legal Notices" to
+the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+#### 1. Source Code.
+
+The "source code" for a work means the preferred form of the work for
+making modifications to it. "Object code" means any non-source form of
+a work.
+
+A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+The Corresponding Source need not include anything that users can
+regenerate automatically from other parts of the Corresponding Source.
+
+The Corresponding Source for a work in source code form is that same
+work.
+
+#### 2. Basic Permissions.
+
+All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+You may make, run and propagate covered works that you do not convey,
+without conditions so long as your license otherwise remains in force.
+You may convey covered works to others for the sole purpose of having
+them make modifications exclusively for you, or provide you with
+facilities for running those works, provided that you comply with the
+terms of this License in conveying all material for which you do not
+control copyright. Those thus making or running the covered works for
+you must do so exclusively on your behalf, under your direction and
+control, on terms that prohibit them from making any copies of your
+copyrighted material outside their relationship with you.
+
+Conveying under any other circumstances is permitted solely under the
+conditions stated below. Sublicensing is not allowed; section 10 makes
+it unnecessary.
+
+#### 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such
+circumvention is effected by exercising rights under this License with
+respect to the covered work, and you disclaim any intention to limit
+operation or modification of the work as a means of enforcing, against
+the work's users, your or third parties' legal rights to forbid
+circumvention of technological measures.
+
+#### 4. Conveying Verbatim Copies.
+
+You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+#### 5. Conveying Modified Source Versions.
+
+You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these
+conditions:
+
+- a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+- b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under
+ section 7. This requirement modifies the requirement in section 4
+ to "keep intact all notices".
+- c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+- d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+#### 6. Conveying Non-Source Forms.
+
+You may convey a covered work in object code form under the terms of
+sections 4 and 5, provided that you also convey the machine-readable
+Corresponding Source under the terms of this License, in one of these
+ways:
+
+- a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+- b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the Corresponding
+ Source from a network server at no charge.
+- c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+- d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+- e) Convey the object code using peer-to-peer transmission,
+ provided you inform other peers where the object code and
+ Corresponding Source of the work are being offered to the general
+ public at no charge under subsection 6d.
+
+A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal,
+family, or household purposes, or (2) anything designed or sold for
+incorporation into a dwelling. In determining whether a product is a
+consumer product, doubtful cases shall be resolved in favor of
+coverage. For a particular product received by a particular user,
+"normally used" refers to a typical or common use of that class of
+product, regardless of the status of the particular user or of the way
+in which the particular user actually uses, or expects or is expected
+to use, the product. A product is a consumer product regardless of
+whether the product has substantial commercial, industrial or
+non-consumer uses, unless such uses represent the only significant
+mode of use of the product.
+
+"Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to
+install and execute modified versions of a covered work in that User
+Product from a modified version of its Corresponding Source. The
+information must suffice to ensure that the continued functioning of
+the modified object code is in no case prevented or interfered with
+solely because modification has been made.
+
+If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or
+updates for a work that has been modified or installed by the
+recipient, or for the User Product in which it has been modified or
+installed. Access to a network may be denied when the modification
+itself materially and adversely affects the operation of the network
+or violates the rules and protocols for communication across the
+network.
+
+Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+#### 7. Additional Terms.
+
+"Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders
+of that material) supplement the terms of this License with terms:
+
+- a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+- b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+- c) Prohibiting misrepresentation of the origin of that material,
+ or requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+- d) Limiting the use for publicity purposes of names of licensors
+ or authors of the material; or
+- e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+- f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions
+ of it) with contractual assumptions of liability to the recipient,
+ for any liability that these contractual assumptions directly
+ impose on those licensors and authors.
+
+All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions; the
+above requirements apply either way.
+
+#### 8. Termination.
+
+You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+However, if you cease all violation of this License, then your license
+from a particular copyright holder is reinstated (a) provisionally,
+unless and until the copyright holder explicitly and finally
+terminates your license, and (b) permanently, if the copyright holder
+fails to notify you of the violation by some reasonable means prior to
+60 days after the cessation.
+
+Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+#### 9. Acceptance Not Required for Having Copies.
+
+You are not required to accept this License in order to receive or run
+a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+#### 10. Automatic Licensing of Downstream Recipients.
+
+Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+#### 11. Patents.
+
+A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+A contributor's "essential patent claims" are all patent claims owned
+or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+A patent license is "discriminatory" if it does not include within the
+scope of its coverage, prohibits the exercise of, or is conditioned on
+the non-exercise of one or more of the rights that are specifically
+granted under this License. You may not convey a covered work if you
+are a party to an arrangement with a third party that is in the
+business of distributing software, under which you make payment to the
+third party based on the extent of your activity of conveying the
+work, and under which the third party grants, to any of the parties
+who would receive the covered work from you, a discriminatory patent
+license (a) in connection with copies of the covered work conveyed by
+you (or copies made from those copies), or (b) primarily for and in
+connection with specific products or compilations that contain the
+covered work, unless you entered into that arrangement, or that patent
+license was granted, prior to 28 March 2007.
+
+Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+#### 12. No Surrender of Others' Freedom.
+
+If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under
+this License and any other pertinent obligations, then as a
+consequence you may not convey it at all. For example, if you agree to
+terms that obligate you to collect a royalty for further conveying
+from those to whom you convey the Program, the only way you could
+satisfy both those terms and this License would be to refrain entirely
+from conveying the Program.
+
+#### 13. Remote Network Interaction; Use with the GNU General Public License.
+
+Notwithstanding any other provision of this License, if you modify the
+Program, your modified version must prominently offer all users
+interacting with it remotely through a computer network (if your
+version supports such interaction) an opportunity to receive the
+Corresponding Source of your version by providing access to the
+Corresponding Source from a network server at no charge, through some
+standard or customary means of facilitating copying of software. This
+Corresponding Source shall include the Corresponding Source for any
+work covered by version 3 of the GNU General Public License that is
+incorporated pursuant to the following paragraph.
+
+Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the work with which it is combined will remain governed by version
+3 of the GNU General Public License.
+
+#### 14. Revised Versions of this License.
+
+The Free Software Foundation may publish revised and/or new versions
+of the GNU Affero General Public License from time to time. Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies that a certain numbered version of the GNU Affero General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU Affero General Public License, you may choose any version ever
+published by the Free Software Foundation.
+
+If the Program specifies that a proxy can decide which future versions
+of the GNU Affero General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+#### 15. Disclaimer of Warranty.
+
+THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT
+WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND
+PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE
+DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR
+CORRECTION.
+
+#### 16. Limitation of Liability.
+
+IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR
+CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT
+NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR
+LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM
+TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER
+PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+#### 17. Interpretation of Sections 15 and 16.
+
+If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+END OF TERMS AND CONDITIONS
+
+### How to Apply These Terms to Your New Programs
+
+If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these
+terms.
+
+To do so, attach the following notices to the program. It is safest to
+attach them to the start of each source file to most effectively state
+the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+
+ Copyright (C)
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as
+ published by the Free Software Foundation, either version 3 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Affero General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see .
+
+Also add information on how to contact you by electronic and paper
+mail.
+
+If your software can interact with users remotely through a computer
+network, you should also make sure that it provides a way for users to
+get its source. For example, if your program is a web application, its
+interface could display a "Source" link that leads users to an archive
+of the code. There are many ways you could offer source, and different
+solutions will be better for different programs; see section 13 for
+the specific requirements.
+
+You should also get your employer (if you work as a programmer) or
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. For more information on this, and how to apply and follow
+the GNU AGPL, see .
diff --git a/Pipfile b/Pipfile
new file mode 100644
index 0000000..81c3cde
--- /dev/null
+++ b/Pipfile
@@ -0,0 +1,29 @@
+[[source]]
+url = "https://pypi.org/simple"
+verify_ssl = true
+name = "pypi"
+
+[packages]
+django = "~=3.2"
+social-auth-app-django = "~=4.0.0"
+whitenoise = "~=5.2"
+django-crispy-forms = "~=1.11.2"
+crispy-bootstrap5 = "~=0.3.1"
+django-extensions = "~=3.1.2"
+ipython = "~=7.22.0"
+django-bootstrap-pagination = "~=1.7.1"
+
+[dev-packages]
+autopep8 = "~=1.5.6"
+black = "==20.8b1"
+coverage = "~=5.5"
+django-stubs = "~=1.7.0"
+flake8 = "~=3.9.0"
+isort = "~=5.8.0"
+mypy = "~=0.812"
+pylint = "~=2.7.4"
+pylint-django = "~=2.4.2"
+typed-ast = "~=1.4.2" # Required by black, but Pipenv doesn't pull it in correctly on 3.8
+
+[requires]
+python_version = "3.9"
diff --git a/Pipfile.lock b/Pipfile.lock
new file mode 100644
index 0000000..f4972cf
--- /dev/null
+++ b/Pipfile.lock
@@ -0,0 +1,734 @@
+{
+ "_meta": {
+ "hash": {
+ "sha256": "18a19c14dc35df0516a99446a4e14571ea626b0eae6ff13b342cce4550ce15c3"
+ },
+ "pipfile-spec": 6,
+ "requires": {
+ "python_version": "3.9"
+ },
+ "sources": [
+ {
+ "name": "pypi",
+ "url": "https://pypi.org/simple",
+ "verify_ssl": true
+ }
+ ]
+ },
+ "default": {
+ "asgiref": {
+ "hashes": [
+ "sha256:92906c611ce6c967347bbfea733f13d6313901d54dcca88195eaeb52b2a8e8ee",
+ "sha256:d1216dfbdfb63826470995d31caed36225dcaf34f182e0fa257a4dd9e86f1b78"
+ ],
+ "markers": "python_version >= '3.6'",
+ "version": "==3.3.4"
+ },
+ "backcall": {
+ "hashes": [
+ "sha256:5cbdbf27be5e7cfadb448baf0aa95508f91f2bbc6c6437cd9cd06e2a4c215e1e",
+ "sha256:fbbce6a29f263178a1f7915c1940bde0ec2b2a967566fe1c65c1dfb7422bd255"
+ ],
+ "version": "==0.2.0"
+ },
+ "certifi": {
+ "hashes": [
+ "sha256:1a4995114262bffbc2413b159f2a1a480c969de6e6eb13ee966d470af86af59c",
+ "sha256:719a74fb9e33b9bd44cc7f3a8d94bc35e4049deebe19ba7d8e108280cfd59830"
+ ],
+ "version": "==2020.12.5"
+ },
+ "cffi": {
+ "hashes": [
+ "sha256:005a36f41773e148deac64b08f233873a4d0c18b053d37da83f6af4d9087b813",
+ "sha256:0857f0ae312d855239a55c81ef453ee8fd24136eaba8e87a2eceba644c0d4c06",
+ "sha256:1071534bbbf8cbb31b498d5d9db0f274f2f7a865adca4ae429e147ba40f73dea",
+ "sha256:158d0d15119b4b7ff6b926536763dc0714313aa59e320ddf787502c70c4d4bee",
+ "sha256:1f436816fc868b098b0d63b8920de7d208c90a67212546d02f84fe78a9c26396",
+ "sha256:2894f2df484ff56d717bead0a5c2abb6b9d2bf26d6960c4604d5c48bbc30ee73",
+ "sha256:29314480e958fd8aab22e4a58b355b629c59bf5f2ac2492b61e3dc06d8c7a315",
+ "sha256:34eff4b97f3d982fb93e2831e6750127d1355a923ebaeeb565407b3d2f8d41a1",
+ "sha256:35f27e6eb43380fa080dccf676dece30bef72e4a67617ffda586641cd4508d49",
+ "sha256:3d3dd4c9e559eb172ecf00a2a7517e97d1e96de2a5e610bd9b68cea3925b4892",
+ "sha256:43e0b9d9e2c9e5d152946b9c5fe062c151614b262fda2e7b201204de0b99e482",
+ "sha256:48e1c69bbacfc3d932221851b39d49e81567a4d4aac3b21258d9c24578280058",
+ "sha256:51182f8927c5af975fece87b1b369f722c570fe169f9880764b1ee3bca8347b5",
+ "sha256:58e3f59d583d413809d60779492342801d6e82fefb89c86a38e040c16883be53",
+ "sha256:5de7970188bb46b7bf9858eb6890aad302577a5f6f75091fd7cdd3ef13ef3045",
+ "sha256:65fa59693c62cf06e45ddbb822165394a288edce9e276647f0046e1ec26920f3",
+ "sha256:69e395c24fc60aad6bb4fa7e583698ea6cc684648e1ffb7fe85e3c1ca131a7d5",
+ "sha256:6c97d7350133666fbb5cf4abdc1178c812cb205dc6f41d174a7b0f18fb93337e",
+ "sha256:6e4714cc64f474e4d6e37cfff31a814b509a35cb17de4fb1999907575684479c",
+ "sha256:72d8d3ef52c208ee1c7b2e341f7d71c6fd3157138abf1a95166e6165dd5d4369",
+ "sha256:8ae6299f6c68de06f136f1f9e69458eae58f1dacf10af5c17353eae03aa0d827",
+ "sha256:8b198cec6c72df5289c05b05b8b0969819783f9418e0409865dac47288d2a053",
+ "sha256:99cd03ae7988a93dd00bcd9d0b75e1f6c426063d6f03d2f90b89e29b25b82dfa",
+ "sha256:9cf8022fb8d07a97c178b02327b284521c7708d7c71a9c9c355c178ac4bbd3d4",
+ "sha256:9de2e279153a443c656f2defd67769e6d1e4163952b3c622dcea5b08a6405322",
+ "sha256:9e93e79c2551ff263400e1e4be085a1210e12073a31c2011dbbda14bda0c6132",
+ "sha256:9ff227395193126d82e60319a673a037d5de84633f11279e336f9c0f189ecc62",
+ "sha256:a465da611f6fa124963b91bf432d960a555563efe4ed1cc403ba5077b15370aa",
+ "sha256:ad17025d226ee5beec591b52800c11680fca3df50b8b29fe51d882576e039ee0",
+ "sha256:afb29c1ba2e5a3736f1c301d9d0abe3ec8b86957d04ddfa9d7a6a42b9367e396",
+ "sha256:b85eb46a81787c50650f2392b9b4ef23e1f126313b9e0e9013b35c15e4288e2e",
+ "sha256:bb89f306e5da99f4d922728ddcd6f7fcebb3241fc40edebcb7284d7514741991",
+ "sha256:cbde590d4faaa07c72bf979734738f328d239913ba3e043b1e98fe9a39f8b2b6",
+ "sha256:cd2868886d547469123fadc46eac7ea5253ea7fcb139f12e1dfc2bbd406427d1",
+ "sha256:d42b11d692e11b6634f7613ad8df5d6d5f8875f5d48939520d351007b3c13406",
+ "sha256:f2d45f97ab6bb54753eab54fffe75aaf3de4ff2341c9daee1987ee1837636f1d",
+ "sha256:fd78e5fee591709f32ef6edb9a015b4aa1a5022598e36227500c8f4e02328d9c"
+ ],
+ "version": "==1.14.5"
+ },
+ "chardet": {
+ "hashes": [
+ "sha256:0d6f53a15db4120f2b08c94f11e7d93d2c911ee118b6b30a04ec3ee8310179fa",
+ "sha256:f864054d66fd9118f2e67044ac8981a54775ec5b67aed0441892edb553d21da5"
+ ],
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
+ "version": "==4.0.0"
+ },
+ "crispy-bootstrap5": {
+ "hashes": [
+ "sha256:79e518fdf4d94e64ec2f1abfd85eed348724e9cb432cec3dfaf531177603d17d",
+ "sha256:ec62daf8d50271031c53a484b43e10bccc0cebde34f253a3c784964658df5826"
+ ],
+ "index": "pypi",
+ "version": "==0.3.1"
+ },
+ "cryptography": {
+ "hashes": [
+ "sha256:0f1212a66329c80d68aeeb39b8a16d54ef57071bf22ff4e521657b27372e327d",
+ "sha256:1e056c28420c072c5e3cb36e2b23ee55e260cb04eee08f702e0edfec3fb51959",
+ "sha256:240f5c21aef0b73f40bb9f78d2caff73186700bf1bc6b94285699aff98cc16c6",
+ "sha256:26965837447f9c82f1855e0bc8bc4fb910240b6e0d16a664bb722df3b5b06873",
+ "sha256:37340614f8a5d2fb9aeea67fd159bfe4f5f4ed535b1090ce8ec428b2f15a11f2",
+ "sha256:3d10de8116d25649631977cb37da6cbdd2d6fa0e0281d014a5b7d337255ca713",
+ "sha256:3d8427734c781ea5f1b41d6589c293089704d4759e34597dce91014ac125aad1",
+ "sha256:7ec5d3b029f5fa2b179325908b9cd93db28ab7b85bb6c1db56b10e0b54235177",
+ "sha256:8e56e16617872b0957d1c9742a3f94b43533447fd78321514abbe7db216aa250",
+ "sha256:de4e5f7f68220d92b7637fc99847475b59154b7a1b3868fb7385337af54ac9ca",
+ "sha256:eb8cc2afe8b05acbd84a43905832ec78e7b3873fb124ca190f574dca7389a87d",
+ "sha256:ee77aa129f481be46f8d92a1a7db57269a2f23052d5f2433b4621bb457081cc9"
+ ],
+ "markers": "python_version >= '3.6'",
+ "version": "==3.4.7"
+ },
+ "decorator": {
+ "hashes": [
+ "sha256:6f201a6c4dac3d187352661f508b9364ec8091217442c9478f1f83c003a0f060",
+ "sha256:945d84890bb20cc4a2f4a31fc4311c0c473af65ea318617f13a7257c9a58bc98"
+ ],
+ "markers": "python_version >= '3.5'",
+ "version": "==5.0.7"
+ },
+ "defusedxml": {
+ "hashes": [
+ "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69",
+ "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61"
+ ],
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
+ "version": "==0.7.1"
+ },
+ "django": {
+ "hashes": [
+ "sha256:0604e84c4fb698a5e53e5857b5aea945b2f19a18f25f10b8748dbdf935788927",
+ "sha256:21f0f9643722675976004eb683c55d33c05486f94506672df3d6a141546f389d"
+ ],
+ "index": "pypi",
+ "version": "==3.2"
+ },
+ "django-bootstrap-pagination": {
+ "hashes": [
+ "sha256:47e742679cf109e12f10ae09d5263433f94440818cf7b023e90a3f5252849639",
+ "sha256:69d826d92217325611cb86e49944d8261e3c92eaa4deafea5a605d79fd363883"
+ ],
+ "index": "pypi",
+ "version": "==1.7.1"
+ },
+ "django-crispy-forms": {
+ "hashes": [
+ "sha256:3db71ab06d17ec9d0195c086d3ad454da300ac268752ac3a4f63d72f7a490254",
+ "sha256:88efa857ce6111bd696cc4f74057539a3456102fe9c3a3ece8868e1e4579e70a"
+ ],
+ "index": "pypi",
+ "version": "==1.11.2"
+ },
+ "django-extensions": {
+ "hashes": [
+ "sha256:081828e985485662f62a22340c1506e37989d14b927652079a5b7cd84a82368b",
+ "sha256:17f85f4dcdd5eea09b8c4f0bad8f0370bf2db6d03e61b431fa7103fee29888de"
+ ],
+ "index": "pypi",
+ "version": "==3.1.2"
+ },
+ "idna": {
+ "hashes": [
+ "sha256:b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6",
+ "sha256:b97d804b1e9b523befed77c48dacec60e6dcb0b5391d57af6a65a312a90648c0"
+ ],
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
+ "version": "==2.10"
+ },
+ "ipython": {
+ "hashes": [
+ "sha256:9c900332d4c5a6de534b4befeeb7de44ad0cc42e8327fa41b7685abde58cec74",
+ "sha256:c0ce02dfaa5f854809ab7413c601c4543846d9da81010258ecdab299b542d199"
+ ],
+ "index": "pypi",
+ "version": "==7.22.0"
+ },
+ "ipython-genutils": {
+ "hashes": [
+ "sha256:72dd37233799e619666c9f639a9da83c34013a73e8bbc79a7a6348d93c61fab8",
+ "sha256:eb2e116e75ecef9d4d228fdc66af54269afa26ab4463042e33785b887c628ba8"
+ ],
+ "version": "==0.2.0"
+ },
+ "jedi": {
+ "hashes": [
+ "sha256:18456d83f65f400ab0c2d3319e48520420ef43b23a086fdc05dff34132f0fb93",
+ "sha256:92550a404bad8afed881a137ec9a461fed49eca661414be45059329614ed0707"
+ ],
+ "markers": "python_version >= '3.6'",
+ "version": "==0.18.0"
+ },
+ "oauthlib": {
+ "hashes": [
+ "sha256:bee41cc35fcca6e988463cacc3bcb8a96224f470ca547e697b604cc697b2f889",
+ "sha256:df884cd6cbe20e32633f1db1072e9356f53638e4361bef4e8b03c9127c9328ea"
+ ],
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
+ "version": "==3.1.0"
+ },
+ "parso": {
+ "hashes": [
+ "sha256:12b83492c6239ce32ff5eed6d3639d6a536170723c6f3f1506869f1ace413398",
+ "sha256:a8c4922db71e4fdb90e0d0bc6e50f9b273d3397925e5e60a717e719201778d22"
+ ],
+ "markers": "python_version >= '3.6'",
+ "version": "==0.8.2"
+ },
+ "pexpect": {
+ "hashes": [
+ "sha256:0b48a55dcb3c05f3329815901ea4fc1537514d6ba867a152b581d69ae3710937",
+ "sha256:fc65a43959d153d0114afe13997d439c22823a27cefceb5ff35c2178c6784c0c"
+ ],
+ "markers": "sys_platform != 'win32'",
+ "version": "==4.8.0"
+ },
+ "pickleshare": {
+ "hashes": [
+ "sha256:87683d47965c1da65cdacaf31c8441d12b8044cdec9aca500cd78fc2c683afca",
+ "sha256:9649af414d74d4df115d5d718f82acb59c9d418196b7b4290ed47a12ce62df56"
+ ],
+ "version": "==0.7.5"
+ },
+ "prompt-toolkit": {
+ "hashes": [
+ "sha256:bf00f22079f5fadc949f42ae8ff7f05702826a97059ffcc6281036ad40ac6f04",
+ "sha256:e1b4f11b9336a28fa11810bc623c357420f69dfdb6d2dac41ca2c21a55c033bc"
+ ],
+ "markers": "python_full_version >= '3.6.1'",
+ "version": "==3.0.18"
+ },
+ "ptyprocess": {
+ "hashes": [
+ "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35",
+ "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"
+ ],
+ "version": "==0.7.0"
+ },
+ "pycparser": {
+ "hashes": [
+ "sha256:2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0",
+ "sha256:7582ad22678f0fcd81102833f60ef8d0e57288b6b5fb00323d101be910e35705"
+ ],
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
+ "version": "==2.20"
+ },
+ "pygments": {
+ "hashes": [
+ "sha256:2656e1a6edcdabf4275f9a3640db59fd5de107d88e8663c5d4e9a0fa62f77f94",
+ "sha256:534ef71d539ae97d4c3a4cf7d6f110f214b0e687e92f9cb9d2a3b0d3101289c8"
+ ],
+ "markers": "python_version >= '3.5'",
+ "version": "==2.8.1"
+ },
+ "pyjwt": {
+ "hashes": [
+ "sha256:a5c70a06e1f33d81ef25eecd50d50bd30e34de1ca8b2b9fa3fe0daaabcf69bf7",
+ "sha256:b70b15f89dc69b993d8a8d32c299032d5355c82f9b5b7e851d1a6d706dffe847"
+ ],
+ "markers": "python_version >= '3.6'",
+ "version": "==2.0.1"
+ },
+ "python3-openid": {
+ "hashes": [
+ "sha256:33fbf6928f401e0b790151ed2b5290b02545e8775f982485205a066f874aaeaf",
+ "sha256:6626f771e0417486701e0b4daff762e7212e820ca5b29fcc0d05f6f8736dfa6b"
+ ],
+ "version": "==3.2.0"
+ },
+ "pytz": {
+ "hashes": [
+ "sha256:83a4a90894bf38e243cf052c8b58f381bfe9a7a483f6a9cab140bc7f702ac4da",
+ "sha256:eb10ce3e7736052ed3623d49975ce333bcd712c7bb19a58b9e2089d4057d0798"
+ ],
+ "version": "==2021.1"
+ },
+ "requests": {
+ "hashes": [
+ "sha256:27973dd4a904a4f13b263a19c866c13b92a39ed1c964655f025f3f8d3d75b804",
+ "sha256:c210084e36a42ae6b9219e00e48287def368a26d03a048ddad7bfee44f75871e"
+ ],
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
+ "version": "==2.25.1"
+ },
+ "requests-oauthlib": {
+ "hashes": [
+ "sha256:7f71572defaecd16372f9006f33c2ec8c077c3cfa6f5911a9a90202beb513f3d",
+ "sha256:b4261601a71fd721a8bd6d7aa1cc1d6a8a93b4a9f5e96626f8e4d91e8beeaa6a",
+ "sha256:fa6c47b933f01060936d87ae9327fead68768b69c6c9ea2109c48be30f2d4dbc"
+ ],
+ "version": "==1.3.0"
+ },
+ "six": {
+ "hashes": [
+ "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259",
+ "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"
+ ],
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
+ "version": "==1.15.0"
+ },
+ "social-auth-app-django": {
+ "hashes": [
+ "sha256:2c69e57df0b30c9c1823519c5f1992cbe4f3f98fdc7d95c840e091a752708840",
+ "sha256:567ad0e028311541d7dfed51d3bf2c60440a6fd236d5d4d06c5a618b3d6c57c5",
+ "sha256:df5212370bd250108987c4748419a1a1d0cec750878856c2644c36aaa0fd3e58"
+ ],
+ "index": "pypi",
+ "version": "==4.0.0"
+ },
+ "social-auth-core": {
+ "hashes": [
+ "sha256:5ab43b3b15dce5f059db69cc3082c216574739f0edbc98629c8c6e8769c67eb4",
+ "sha256:983b53167ac56e7ba4909db555602a6e7a98c97ca47183bb222eb85ba627bf2b"
+ ],
+ "markers": "python_version >= '3.6'",
+ "version": "==4.1.0"
+ },
+ "sqlparse": {
+ "hashes": [
+ "sha256:017cde379adbd6a1f15a61873f43e8274179378e95ef3fede90b5aa64d304ed0",
+ "sha256:0f91fd2e829c44362cbcfab3e9ae12e22badaa8a29ad5ff599f9ec109f0454e8"
+ ],
+ "markers": "python_version >= '3.5'",
+ "version": "==0.4.1"
+ },
+ "traitlets": {
+ "hashes": [
+ "sha256:178f4ce988f69189f7e523337a3e11d91c786ded9360174a3d9ca83e79bc5396",
+ "sha256:69ff3f9d5351f31a7ad80443c2674b7099df13cc41fc5fa6e2f6d3b0330b0426"
+ ],
+ "markers": "python_version >= '3.7'",
+ "version": "==5.0.5"
+ },
+ "urllib3": {
+ "hashes": [
+ "sha256:2f4da4594db7e1e110a944bb1b551fdf4e6c136ad42e4234131391e21eb5b0df",
+ "sha256:e7b021f7241115872f92f43c6508082facffbd1c048e3c6e2bb9c2a157e28937"
+ ],
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4'",
+ "version": "==1.26.4"
+ },
+ "wcwidth": {
+ "hashes": [
+ "sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784",
+ "sha256:c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83"
+ ],
+ "version": "==0.2.5"
+ },
+ "whitenoise": {
+ "hashes": [
+ "sha256:05ce0be39ad85740a78750c86a93485c40f08ad8c62a6006de0233765996e5c7",
+ "sha256:05d00198c777028d72d8b0bbd234db605ef6d60e9410125124002518a48e515d"
+ ],
+ "index": "pypi",
+ "version": "==5.2.0"
+ }
+ },
+ "develop": {
+ "appdirs": {
+ "hashes": [
+ "sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41",
+ "sha256:a841dacd6b99318a741b166adb07e19ee71a274450e68237b4650ca1055ab128"
+ ],
+ "version": "==1.4.4"
+ },
+ "asgiref": {
+ "hashes": [
+ "sha256:92906c611ce6c967347bbfea733f13d6313901d54dcca88195eaeb52b2a8e8ee",
+ "sha256:d1216dfbdfb63826470995d31caed36225dcaf34f182e0fa257a4dd9e86f1b78"
+ ],
+ "markers": "python_version >= '3.6'",
+ "version": "==3.3.4"
+ },
+ "astroid": {
+ "hashes": [
+ "sha256:ad63b8552c70939568966811a088ef0bc880f99a24a00834abd0e3681b514f91",
+ "sha256:bea3f32799fbb8581f58431c12591bc20ce11cbc90ad82e2ea5717d94f2080d5"
+ ],
+ "markers": "python_version >= '3.6'",
+ "version": "==2.5.3"
+ },
+ "autopep8": {
+ "hashes": [
+ "sha256:5454e6e9a3d02aae38f866eec0d9a7de4ab9f93c10a273fb0340f3d6d09f7514",
+ "sha256:f01b06a6808bc31698db907761e5890eb2295e287af53f6693b39ce55454034a"
+ ],
+ "index": "pypi",
+ "version": "==1.5.6"
+ },
+ "black": {
+ "hashes": [
+ "sha256:1c02557aa099101b9d21496f8a914e9ed2222ef70336404eeeac8edba836fbea"
+ ],
+ "index": "pypi",
+ "version": "==20.8b1"
+ },
+ "click": {
+ "hashes": [
+ "sha256:d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a",
+ "sha256:dacca89f4bfadd5de3d7489b7c8a566eee0d3676333fbb50030263894c38c0dc"
+ ],
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
+ "version": "==7.1.2"
+ },
+ "coverage": {
+ "hashes": [
+ "sha256:004d1880bed2d97151facef49f08e255a20ceb6f9432df75f4eef018fdd5a78c",
+ "sha256:01d84219b5cdbfc8122223b39a954820929497a1cb1422824bb86b07b74594b6",
+ "sha256:040af6c32813fa3eae5305d53f18875bedd079960822ef8ec067a66dd8afcd45",
+ "sha256:06191eb60f8d8a5bc046f3799f8a07a2d7aefb9504b0209aff0b47298333302a",
+ "sha256:13034c4409db851670bc9acd836243aeee299949bd5673e11844befcb0149f03",
+ "sha256:13c4ee887eca0f4c5a247b75398d4114c37882658300e153113dafb1d76de529",
+ "sha256:184a47bbe0aa6400ed2d41d8e9ed868b8205046518c52464fde713ea06e3a74a",
+ "sha256:18ba8bbede96a2c3dde7b868de9dcbd55670690af0988713f0603f037848418a",
+ "sha256:1aa846f56c3d49205c952d8318e76ccc2ae23303351d9270ab220004c580cfe2",
+ "sha256:217658ec7187497e3f3ebd901afdca1af062b42cfe3e0dafea4cced3983739f6",
+ "sha256:24d4a7de75446be83244eabbff746d66b9240ae020ced65d060815fac3423759",
+ "sha256:2910f4d36a6a9b4214bb7038d537f015346f413a975d57ca6b43bf23d6563b53",
+ "sha256:2949cad1c5208b8298d5686d5a85b66aae46d73eec2c3e08c817dd3513e5848a",
+ "sha256:2a3859cb82dcbda1cfd3e6f71c27081d18aa251d20a17d87d26d4cd216fb0af4",
+ "sha256:2cafbbb3af0733db200c9b5f798d18953b1a304d3f86a938367de1567f4b5bff",
+ "sha256:2e0d881ad471768bf6e6c2bf905d183543f10098e3b3640fc029509530091502",
+ "sha256:30c77c1dc9f253283e34c27935fded5015f7d1abe83bc7821680ac444eaf7793",
+ "sha256:3487286bc29a5aa4b93a072e9592f22254291ce96a9fbc5251f566b6b7343cdb",
+ "sha256:372da284cfd642d8e08ef606917846fa2ee350f64994bebfbd3afb0040436905",
+ "sha256:41179b8a845742d1eb60449bdb2992196e211341818565abded11cfa90efb821",
+ "sha256:44d654437b8ddd9eee7d1eaee28b7219bec228520ff809af170488fd2fed3e2b",
+ "sha256:4a7697d8cb0f27399b0e393c0b90f0f1e40c82023ea4d45d22bce7032a5d7b81",
+ "sha256:51cb9476a3987c8967ebab3f0fe144819781fca264f57f89760037a2ea191cb0",
+ "sha256:52596d3d0e8bdf3af43db3e9ba8dcdaac724ba7b5ca3f6358529d56f7a166f8b",
+ "sha256:53194af30d5bad77fcba80e23a1441c71abfb3e01192034f8246e0d8f99528f3",
+ "sha256:5fec2d43a2cc6965edc0bb9e83e1e4b557f76f843a77a2496cbe719583ce8184",
+ "sha256:6c90e11318f0d3c436a42409f2749ee1a115cd8b067d7f14c148f1ce5574d701",
+ "sha256:74d881fc777ebb11c63736622b60cb9e4aee5cace591ce274fb69e582a12a61a",
+ "sha256:7501140f755b725495941b43347ba8a2777407fc7f250d4f5a7d2a1050ba8e82",
+ "sha256:796c9c3c79747146ebd278dbe1e5c5c05dd6b10cc3bcb8389dfdf844f3ead638",
+ "sha256:869a64f53488f40fa5b5b9dcb9e9b2962a66a87dab37790f3fcfb5144b996ef5",
+ "sha256:8963a499849a1fc54b35b1c9f162f4108017b2e6db2c46c1bed93a72262ed083",
+ "sha256:8d0a0725ad7c1a0bcd8d1b437e191107d457e2ec1084b9f190630a4fb1af78e6",
+ "sha256:900fbf7759501bc7807fd6638c947d7a831fc9fdf742dc10f02956ff7220fa90",
+ "sha256:92b017ce34b68a7d67bd6d117e6d443a9bf63a2ecf8567bb3d8c6c7bc5014465",
+ "sha256:970284a88b99673ccb2e4e334cfb38a10aab7cd44f7457564d11898a74b62d0a",
+ "sha256:972c85d205b51e30e59525694670de6a8a89691186012535f9d7dbaa230e42c3",
+ "sha256:9a1ef3b66e38ef8618ce5fdc7bea3d9f45f3624e2a66295eea5e57966c85909e",
+ "sha256:af0e781009aaf59e25c5a678122391cb0f345ac0ec272c7961dc5455e1c40066",
+ "sha256:b6d534e4b2ab35c9f93f46229363e17f63c53ad01330df9f2d6bd1187e5eaacf",
+ "sha256:b7895207b4c843c76a25ab8c1e866261bcfe27bfaa20c192de5190121770672b",
+ "sha256:c0891a6a97b09c1f3e073a890514d5012eb256845c451bd48f7968ef939bf4ae",
+ "sha256:c2723d347ab06e7ddad1a58b2a821218239249a9e4365eaff6649d31180c1669",
+ "sha256:d1f8bf7b90ba55699b3a5e44930e93ff0189aa27186e96071fac7dd0d06a1873",
+ "sha256:d1f9ce122f83b2305592c11d64f181b87153fc2c2bbd3bb4a3dde8303cfb1a6b",
+ "sha256:d314ed732c25d29775e84a960c3c60808b682c08d86602ec2c3008e1202e3bb6",
+ "sha256:d636598c8305e1f90b439dbf4f66437de4a5e3c31fdf47ad29542478c8508bbb",
+ "sha256:deee1077aae10d8fa88cb02c845cfba9b62c55e1183f52f6ae6a2df6a2187160",
+ "sha256:ebe78fe9a0e874362175b02371bdfbee64d8edc42a044253ddf4ee7d3c15212c",
+ "sha256:f030f8873312a16414c0d8e1a1ddff2d3235655a2174e3648b4fa66b3f2f1079",
+ "sha256:f0b278ce10936db1a37e6954e15a3730bea96a0997c26d7fee88e6c396c2086d",
+ "sha256:f11642dddbb0253cc8853254301b51390ba0081750a8ac03f20ea8103f0c56b6"
+ ],
+ "index": "pypi",
+ "version": "==5.5"
+ },
+ "django": {
+ "hashes": [
+ "sha256:0604e84c4fb698a5e53e5857b5aea945b2f19a18f25f10b8748dbdf935788927",
+ "sha256:21f0f9643722675976004eb683c55d33c05486f94506672df3d6a141546f389d"
+ ],
+ "index": "pypi",
+ "version": "==3.2"
+ },
+ "django-stubs": {
+ "hashes": [
+ "sha256:30a7d99c694acf79c5d93d69a5a8e4b54d2a8c11dd672aa869006789e2189fa6",
+ "sha256:ddd190aca5b9adb4d30760d5c64f67cb3658703f5f42c3bb0c2c71ff4d752c39"
+ ],
+ "index": "pypi",
+ "version": "==1.7.0"
+ },
+ "flake8": {
+ "hashes": [
+ "sha256:1aa8990be1e689d96c745c5682b687ea49f2e05a443aff1f8251092b0014e378",
+ "sha256:3b9f848952dddccf635be78098ca75010f073bfe14d2c6bda867154bea728d2a"
+ ],
+ "index": "pypi",
+ "version": "==3.9.1"
+ },
+ "isort": {
+ "hashes": [
+ "sha256:0a943902919f65c5684ac4e0154b1ad4fac6dcaa5d9f3426b732f1c8b5419be6",
+ "sha256:2bb1680aad211e3c9944dbce1d4ba09a989f04e238296c87fe2139faa26d655d"
+ ],
+ "index": "pypi",
+ "version": "==5.8.0"
+ },
+ "lazy-object-proxy": {
+ "hashes": [
+ "sha256:17e0967ba374fc24141738c69736da90e94419338fd4c7c7bef01ee26b339653",
+ "sha256:1fee665d2638491f4d6e55bd483e15ef21f6c8c2095f235fef72601021e64f61",
+ "sha256:22ddd618cefe54305df49e4c069fa65715be4ad0e78e8d252a33debf00f6ede2",
+ "sha256:24a5045889cc2729033b3e604d496c2b6f588c754f7a62027ad4437a7ecc4837",
+ "sha256:410283732af311b51b837894fa2f24f2c0039aa7f220135192b38fcc42bd43d3",
+ "sha256:4732c765372bd78a2d6b2150a6e99d00a78ec963375f236979c0626b97ed8e43",
+ "sha256:489000d368377571c6f982fba6497f2aa13c6d1facc40660963da62f5c379726",
+ "sha256:4f60460e9f1eb632584c9685bccea152f4ac2130e299784dbaf9fae9f49891b3",
+ "sha256:5743a5ab42ae40caa8421b320ebf3a998f89c85cdc8376d6b2e00bd12bd1b587",
+ "sha256:85fb7608121fd5621cc4377a8961d0b32ccf84a7285b4f1d21988b2eae2868e8",
+ "sha256:9698110e36e2df951c7c36b6729e96429c9c32b3331989ef19976592c5f3c77a",
+ "sha256:9d397bf41caad3f489e10774667310d73cb9c4258e9aed94b9ec734b34b495fd",
+ "sha256:b579f8acbf2bdd9ea200b1d5dea36abd93cabf56cf626ab9c744a432e15c815f",
+ "sha256:b865b01a2e7f96db0c5d12cfea590f98d8c5ba64ad222300d93ce6ff9138bcad",
+ "sha256:bf34e368e8dd976423396555078def5cfc3039ebc6fc06d1ae2c5a65eebbcde4",
+ "sha256:c6938967f8528b3668622a9ed3b31d145fab161a32f5891ea7b84f6b790be05b",
+ "sha256:d1c2676e3d840852a2de7c7d5d76407c772927addff8d742b9808fe0afccebdf",
+ "sha256:d7124f52f3bd259f510651450e18e0fd081ed82f3c08541dffc7b94b883aa981",
+ "sha256:d900d949b707778696fdf01036f58c9876a0d8bfe116e8d220cfd4b15f14e741",
+ "sha256:ebfd274dcd5133e0afae738e6d9da4323c3eb021b3e13052d8cbd0e457b1256e",
+ "sha256:ed361bb83436f117f9917d282a456f9e5009ea12fd6de8742d1a4752c3017e93",
+ "sha256:f5144c75445ae3ca2057faac03fda5a902eff196702b0a24daf1d6ce0650514b"
+ ],
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'",
+ "version": "==1.6.0"
+ },
+ "mccabe": {
+ "hashes": [
+ "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42",
+ "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"
+ ],
+ "version": "==0.6.1"
+ },
+ "mypy": {
+ "hashes": [
+ "sha256:0d0a87c0e7e3a9becdfbe936c981d32e5ee0ccda3e0f07e1ef2c3d1a817cf73e",
+ "sha256:25adde9b862f8f9aac9d2d11971f226bd4c8fbaa89fb76bdadb267ef22d10064",
+ "sha256:28fb5479c494b1bab244620685e2eb3c3f988d71fd5d64cc753195e8ed53df7c",
+ "sha256:2f9b3407c58347a452fc0736861593e105139b905cca7d097e413453a1d650b4",
+ "sha256:33f159443db0829d16f0a8d83d94df3109bb6dd801975fe86bacb9bf71628e97",
+ "sha256:3f2aca7f68580dc2508289c729bd49ee929a436208d2b2b6aab15745a70a57df",
+ "sha256:499c798053cdebcaa916eef8cd733e5584b5909f789de856b482cd7d069bdad8",
+ "sha256:4eec37370483331d13514c3f55f446fc5248d6373e7029a29ecb7b7494851e7a",
+ "sha256:552a815579aa1e995f39fd05dde6cd378e191b063f031f2acfe73ce9fb7f9e56",
+ "sha256:5873888fff1c7cf5b71efbe80e0e73153fe9212fafdf8e44adfe4c20ec9f82d7",
+ "sha256:61a3d5b97955422964be6b3baf05ff2ce7f26f52c85dd88db11d5e03e146a3a6",
+ "sha256:674e822aa665b9fd75130c6c5f5ed9564a38c6cea6a6432ce47eafb68ee578c5",
+ "sha256:7ce3175801d0ae5fdfa79b4f0cfed08807af4d075b402b7e294e6aa72af9aa2a",
+ "sha256:9743c91088d396c1a5a3c9978354b61b0382b4e3c440ce83cf77994a43e8c521",
+ "sha256:9f94aac67a2045ec719ffe6111df543bac7874cee01f41928f6969756e030564",
+ "sha256:a26f8ec704e5a7423c8824d425086705e381b4f1dfdef6e3a1edab7ba174ec49",
+ "sha256:abf7e0c3cf117c44d9285cc6128856106183938c68fd4944763003decdcfeb66",
+ "sha256:b09669bcda124e83708f34a94606e01b614fa71931d356c1f1a5297ba11f110a",
+ "sha256:cd07039aa5df222037005b08fbbfd69b3ab0b0bd7a07d7906de75ae52c4e3119",
+ "sha256:d23e0ea196702d918b60c8288561e722bf437d82cb7ef2edcd98cfa38905d506",
+ "sha256:d65cc1df038ef55a99e617431f0553cd77763869eebdf9042403e16089fe746c",
+ "sha256:d7da2e1d5f558c37d6e8c1246f1aec1e7349e4913d8fb3cb289a35de573fe2eb"
+ ],
+ "index": "pypi",
+ "version": "==0.812"
+ },
+ "mypy-extensions": {
+ "hashes": [
+ "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d",
+ "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"
+ ],
+ "version": "==0.4.3"
+ },
+ "pathspec": {
+ "hashes": [
+ "sha256:86379d6b86d75816baba717e64b1a3a3469deb93bb76d613c9ce79edc5cb68fd",
+ "sha256:aa0cb481c4041bf52ffa7b0d8fa6cd3e88a2ca4879c533c9153882ee2556790d"
+ ],
+ "version": "==0.8.1"
+ },
+ "pycodestyle": {
+ "hashes": [
+ "sha256:514f76d918fcc0b55c6680472f0a37970994e07bbb80725808c17089be302068",
+ "sha256:c389c1d06bf7904078ca03399a4816f974a1d590090fecea0c63ec26ebaf1cef"
+ ],
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
+ "version": "==2.7.0"
+ },
+ "pyflakes": {
+ "hashes": [
+ "sha256:7893783d01b8a89811dd72d7dfd4d84ff098e5eed95cfa8905b22bbffe52efc3",
+ "sha256:f5bc8ecabc05bb9d291eb5203d6810b49040f6ff446a756326104746cc00c1db"
+ ],
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
+ "version": "==2.3.1"
+ },
+ "pylint": {
+ "hashes": [
+ "sha256:209d712ec870a0182df034ae19f347e725c1e615b2269519ab58a35b3fcbbe7a",
+ "sha256:bd38914c7731cdc518634a8d3c5585951302b6e2b6de60fbb3f7a0220e21eeee"
+ ],
+ "index": "pypi",
+ "version": "==2.7.4"
+ },
+ "pylint-django": {
+ "hashes": [
+ "sha256:a5a4515209a6237d1d390a4a307d53f53baaf4f058ecf4bb556c775d208f6b0d",
+ "sha256:dc5ed27bb7662d73444ccd15a0b3964ed6ced6cc2712b85db616102062d2ec35"
+ ],
+ "index": "pypi",
+ "version": "==2.4.3"
+ },
+ "pylint-plugin-utils": {
+ "hashes": [
+ "sha256:2f30510e1c46edf268d3a195b2849bd98a1b9433229bb2ba63b8d776e1fc4d0a",
+ "sha256:57625dcca20140f43731311cd8fd879318bf45a8b0fd17020717a8781714a25a"
+ ],
+ "version": "==0.6"
+ },
+ "pytz": {
+ "hashes": [
+ "sha256:83a4a90894bf38e243cf052c8b58f381bfe9a7a483f6a9cab140bc7f702ac4da",
+ "sha256:eb10ce3e7736052ed3623d49975ce333bcd712c7bb19a58b9e2089d4057d0798"
+ ],
+ "version": "==2021.1"
+ },
+ "regex": {
+ "hashes": [
+ "sha256:01afaf2ec48e196ba91b37451aa353cb7eda77efe518e481707e0515025f0cd5",
+ "sha256:11d773d75fa650cd36f68d7ca936e3c7afaae41b863b8c387a22aaa78d3c5c79",
+ "sha256:18c071c3eb09c30a264879f0d310d37fe5d3a3111662438889ae2eb6fc570c31",
+ "sha256:1e1c20e29358165242928c2de1482fb2cf4ea54a6a6dea2bd7a0e0d8ee321500",
+ "sha256:281d2fd05555079448537fe108d79eb031b403dac622621c78944c235f3fcf11",
+ "sha256:314d66636c494ed9c148a42731b3834496cc9a2c4251b1661e40936814542b14",
+ "sha256:32e65442138b7b76dd8173ffa2cf67356b7bc1768851dded39a7a13bf9223da3",
+ "sha256:339456e7d8c06dd36a22e451d58ef72cef293112b559010db3d054d5560ef439",
+ "sha256:3916d08be28a1149fb97f7728fca1f7c15d309a9f9682d89d79db75d5e52091c",
+ "sha256:3a9cd17e6e5c7eb328517969e0cb0c3d31fd329298dd0c04af99ebf42e904f82",
+ "sha256:47bf5bf60cf04d72bf6055ae5927a0bd9016096bf3d742fa50d9bf9f45aa0711",
+ "sha256:4c46e22a0933dd783467cf32b3516299fb98cfebd895817d685130cc50cd1093",
+ "sha256:4c557a7b470908b1712fe27fb1ef20772b78079808c87d20a90d051660b1d69a",
+ "sha256:52ba3d3f9b942c49d7e4bc105bb28551c44065f139a65062ab7912bef10c9afb",
+ "sha256:563085e55b0d4fb8f746f6a335893bda5c2cef43b2f0258fe1020ab1dd874df8",
+ "sha256:598585c9f0af8374c28edd609eb291b5726d7cbce16be6a8b95aa074d252ee17",
+ "sha256:619d71c59a78b84d7f18891fe914446d07edd48dc8328c8e149cbe0929b4e000",
+ "sha256:67bdb9702427ceddc6ef3dc382455e90f785af4c13d495f9626861763ee13f9d",
+ "sha256:6d1b01031dedf2503631d0903cb563743f397ccaf6607a5e3b19a3d76fc10480",
+ "sha256:741a9647fcf2e45f3a1cf0e24f5e17febf3efe8d4ba1281dcc3aa0459ef424dc",
+ "sha256:7c2a1af393fcc09e898beba5dd59196edaa3116191cc7257f9224beaed3e1aa0",
+ "sha256:7d9884d86dd4dd489e981d94a65cd30d6f07203d90e98f6f657f05170f6324c9",
+ "sha256:90f11ff637fe8798933fb29f5ae1148c978cccb0452005bf4c69e13db951e765",
+ "sha256:919859aa909429fb5aa9cf8807f6045592c85ef56fdd30a9a3747e513db2536e",
+ "sha256:96fcd1888ab4d03adfc9303a7b3c0bd78c5412b2bfbe76db5b56d9eae004907a",
+ "sha256:97f29f57d5b84e73fbaf99ab3e26134e6687348e95ef6b48cfd2c06807005a07",
+ "sha256:980d7be47c84979d9136328d882f67ec5e50008681d94ecc8afa8a65ed1f4a6f",
+ "sha256:a91aa8619b23b79bcbeb37abe286f2f408d2f2d6f29a17237afda55bb54e7aac",
+ "sha256:ade17eb5d643b7fead300a1641e9f45401c98eee23763e9ed66a43f92f20b4a7",
+ "sha256:b9c3db21af35e3b3c05764461b262d6f05bbca08a71a7849fd79d47ba7bc33ed",
+ "sha256:bd28bc2e3a772acbb07787c6308e00d9626ff89e3bfcdebe87fa5afbfdedf968",
+ "sha256:bf5824bfac591ddb2c1f0a5f4ab72da28994548c708d2191e3b87dd207eb3ad7",
+ "sha256:c0502c0fadef0d23b128605d69b58edb2c681c25d44574fc673b0e52dce71ee2",
+ "sha256:c38c71df845e2aabb7fb0b920d11a1b5ac8526005e533a8920aea97efb8ec6a4",
+ "sha256:ce15b6d103daff8e9fee13cf7f0add05245a05d866e73926c358e871221eae87",
+ "sha256:d3029c340cfbb3ac0a71798100ccc13b97dddf373a4ae56b6a72cf70dfd53bc8",
+ "sha256:e512d8ef5ad7b898cdb2d8ee1cb09a8339e4f8be706d27eaa180c2f177248a10",
+ "sha256:e8e5b509d5c2ff12f8418006d5a90e9436766133b564db0abaec92fd27fcee29",
+ "sha256:ee54ff27bf0afaf4c3b3a62bcd016c12c3fdb4ec4f413391a90bd38bc3624605",
+ "sha256:fa4537fb4a98fe8fde99626e4681cc644bdcf2a795038533f9f711513a862ae6",
+ "sha256:fd45ff9293d9274c5008a2054ecef86a9bfe819a67c7be1afb65e69b405b3042"
+ ],
+ "version": "==2021.4.4"
+ },
+ "sqlparse": {
+ "hashes": [
+ "sha256:017cde379adbd6a1f15a61873f43e8274179378e95ef3fede90b5aa64d304ed0",
+ "sha256:0f91fd2e829c44362cbcfab3e9ae12e22badaa8a29ad5ff599f9ec109f0454e8"
+ ],
+ "markers": "python_version >= '3.5'",
+ "version": "==0.4.1"
+ },
+ "toml": {
+ "hashes": [
+ "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b",
+ "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"
+ ],
+ "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'",
+ "version": "==0.10.2"
+ },
+ "typed-ast": {
+ "hashes": [
+ "sha256:01ae5f73431d21eead5015997ab41afa53aa1fbe252f9da060be5dad2c730ace",
+ "sha256:067a74454df670dcaa4e59349a2e5c81e567d8d65458d480a5b3dfecec08c5ff",
+ "sha256:0fb71b8c643187d7492c1f8352f2c15b4c4af3f6338f21681d3681b3dc31a266",
+ "sha256:1b3ead4a96c9101bef08f9f7d1217c096f31667617b58de957f690c92378b528",
+ "sha256:2068531575a125b87a41802130fa7e29f26c09a2833fea68d9a40cf33902eba6",
+ "sha256:209596a4ec71d990d71d5e0d312ac935d86930e6eecff6ccc7007fe54d703808",
+ "sha256:2c726c276d09fc5c414693a2de063f521052d9ea7c240ce553316f70656c84d4",
+ "sha256:398e44cd480f4d2b7ee8d98385ca104e35c81525dd98c519acff1b79bdaac363",
+ "sha256:52b1eb8c83f178ab787f3a4283f68258525f8d70f778a2f6dd54d3b5e5fb4341",
+ "sha256:5feca99c17af94057417d744607b82dd0a664fd5e4ca98061480fd8b14b18d04",
+ "sha256:7538e495704e2ccda9b234b82423a4038f324f3a10c43bc088a1636180f11a41",
+ "sha256:760ad187b1041a154f0e4d0f6aae3e40fdb51d6de16e5c99aedadd9246450e9e",
+ "sha256:777a26c84bea6cd934422ac2e3b78863a37017618b6e5c08f92ef69853e765d3",
+ "sha256:95431a26309a21874005845c21118c83991c63ea800dd44843e42a916aec5899",
+ "sha256:9ad2c92ec681e02baf81fdfa056fe0d818645efa9af1f1cd5fd6f1bd2bdfd805",
+ "sha256:9c6d1a54552b5330bc657b7ef0eae25d00ba7ffe85d9ea8ae6540d2197a3788c",
+ "sha256:aee0c1256be6c07bd3e1263ff920c325b59849dc95392a05f258bb9b259cf39c",
+ "sha256:af3d4a73793725138d6b334d9d247ce7e5f084d96284ed23f22ee626a7b88e39",
+ "sha256:b36b4f3920103a25e1d5d024d155c504080959582b928e91cb608a65c3a49e1a",
+ "sha256:b9574c6f03f685070d859e75c7f9eeca02d6933273b5e69572e5ff9d5e3931c3",
+ "sha256:bff6ad71c81b3bba8fa35f0f1921fb24ff4476235a6e94a26ada2e54370e6da7",
+ "sha256:c190f0899e9f9f8b6b7863debfb739abcb21a5c054f911ca3596d12b8a4c4c7f",
+ "sha256:c907f561b1e83e93fad565bac5ba9c22d96a54e7ea0267c708bffe863cbe4075",
+ "sha256:cae53c389825d3b46fb37538441f75d6aecc4174f615d048321b716df2757fb0",
+ "sha256:dd4a21253f42b8d2b48410cb31fe501d32f8b9fbeb1f55063ad102fe9c425e40",
+ "sha256:dde816ca9dac1d9c01dd504ea5967821606f02e510438120091b84e852367428",
+ "sha256:f2362f3cb0f3172c42938946dbc5b7843c2a28aec307c49100c8b38764eb6927",
+ "sha256:f328adcfebed9f11301eaedfa48e15bdece9b519fb27e6a8c01aa52a17ec31b3",
+ "sha256:f8afcf15cc511ada719a88e013cec87c11aff7b91f019295eb4530f96fe5ef2f",
+ "sha256:fb1bbeac803adea29cedd70781399c99138358c26d05fcbd23c13016b7f5ec65"
+ ],
+ "index": "pypi",
+ "version": "==1.4.3"
+ },
+ "typing-extensions": {
+ "hashes": [
+ "sha256:7cb407020f00f7bfc3cb3e7881628838e69d8f3fcab2f64742a5e76b2f841918",
+ "sha256:99d4073b617d30288f569d3f13d2bd7548c3a7e4c8de87db09a9d29bb3a4a60c",
+ "sha256:dafc7639cde7f1b6e1acc0f457842a83e722ccca8eef5270af2d74792619a89f"
+ ],
+ "version": "==3.7.4.3"
+ },
+ "wrapt": {
+ "hashes": [
+ "sha256:b62ffa81fb85f4332a4f609cab4ac40709470da05643a082ec1eb88e6d9b97d7"
+ ],
+ "version": "==1.12.1"
+ }
+ }
+}
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..6060c69
--- /dev/null
+++ b/README.md
@@ -0,0 +1,23 @@
+tjdests
+===
+
+TJ Destinations, ala Ethan.
+
+THIS WEBSITE IS NOT, IN ANY WAY, AFFILIATED WITH NOR ENDORSED BY THE
+THOMAS JEFFERSON HIGH SCHOOL FOR SCIENCE AND TECHNOLOGY (TJHSST),
+THE TJHSST COMPUTER SYSTEMS LAB, FAIRFAX COUNTY PUBLIC SCHOOLS,
+OR ANY SUBSIDIARY, AFFILIATE, DEPARTMENT, OR PARTNER THEREOF.
+
+---
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of version 3 of the GNU Affero General Public
+License as published by the Free Software Foundation.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Affero General Public License for more details.
+
+You should have received a copy of the GNU Affero General Public License
+along with this program. If not, see .
diff --git a/ceeb.csv b/ceeb.csv
new file mode 100644
index 0000000..ee49bab
--- /dev/null
+++ b/ceeb.csv
@@ -0,0 +1,3279 @@
+CEEB,College Name,City,State
+0065,ALASKA BIBLE COLLEGE,GLENNALLEN,AK
+0062,ALASKA PACIFIC UNIVERSITY,ANCHORAGE,AK
+0066,ANCHORAGE COMMUNITY COLLEGE,ANCHORAGE,AK
+0063,ISLANDS COMMUNITY COLLEGE,SITKA,AK
+0069,KENAI PENINSULA COMMUNITY COLLEGE,SOLDOTNA,AK
+0070,KETCHIKAN COMMUNITY COLLEGE,KETCHIKAN,AK
+0649,KODIAK COMMUNITY COLLEGE,KODIAK,AK
+0650,KUSKOKWIM COMMUNITY COLLEGE,BETHEL,AK
+0072,MATANUSKA-SUSITNA COMMUNITY COLLEGE,PALMER,AK
+0652,NORTHWEST COMMUNITY COLLEGE,NOME,AK
+0651,PRINCE WILLIAM SOUND COMMUNITY COLLEGE,VALDEZ,AK
+0074,SHELDON JACKSON COLLEGE,SITKA,AK
+0653,TANANA VALLEY COMMUNITY COLLEGE,FAIRBANKS,AK
+0153,UNIVERSITY OF ALASKA SOUTHEAST,JUNEAU,AK
+0137,UNIVERSITY OF ALASKA-ANCHORAGE,ANCHORAGE,AK
+0064,UNIVERSITY OF ALASKA-FAIRBANKS,FAIRBANKS,AK
+5518,20TH CENTURY COLLEGE,MOBILE,AL
+0548,AFROTC/RRUF,MAXWELL AFB,AL
+0002,ALABAMA A & M UNIVERSITY,NORMAL,AL
+0019,ALABAMA BIBLE INSTITUTE,GUIN,AL
+0049,ALABAMA CHRISTIAN COLLEGE,HUNTSVILLE,AL
+0008,ALABAMA STATE UNIVERSITY,MONTGOMERY,AL
+0080,ALBERT P BREWER STATE JUNIOR COLLEGE,FAYETTE,AL
+0010,ATHENS STATE COLLEGE,ATHENS,AL
+0011,AUBURN UNIVERSITY,AUBURN UNIVERSITY,AL
+0057,AUBURN UNIVERSITY AT MONTGOMERY,MONTGOMERY,AL
+0013,BIRMINGHAM BAPTIST HOSPITAL,BIRMINGHAM,AL
+0001,CENTRAL ALABAMA COMMUNITY COLLEGE,ALEXANDER CITY,AL
+0073,CHATTAHOOCHEE VALLEY STATE COMM COLL,PHENIX CITY,AL
+0051,COMMUNITY COLLEGE OF THE AIR FORCE,MAXWELL AFB,AL
+0079,CONCORDIA COLLEGE,SELMA,AL
+0045,ENTERPRISE STATE JUNIOR COLLEGE,ENTERPRISE,AL
+0003,FAULKNER UNIVERSITY,MONTGOMERY,AL
+0077,GADSDEN STATE JUNIOR COLLEGE,GADSDEN,AL
+0076,GEORGE C WALLACE STATE COMM COLLEGE,DOTHAN,AL
+0082,GEORGE CORLEY WALLACE STATE COMM COLL,SELMA,AL
+5126,HERZING INSTITUTE OF ALABAMA,BIRMINGHAM,AL
+0005,HOLY NAME OF JESUS HOSP SCH OF NURSING,GADSDEN,AL
+0018,HUNTINGDON COLLEGE,MONTGOMERY,AL
+0006,INTERNATIONAL BIBLE COLLEGE,FLORENCE,AL
+0020,JACKSONVILLE STATE UNIVERSITY,JACKSONVILLE,AL
+0035,JAMES H FAULKNER STATE JUNIOR COLLEGE,BAY MINETTE,AL
+0039,JEFFERSON DAVIS STATE JUNIOR COLLEGE,BREWTON,AL
+0047,JEFFERSON STATE COMMUNITY COLLEGE,BIRMINGHAM,AL
+0075,JOHN C CALHOUN STATE COMMUNITY COLLEGE,DECATUR,AL
+0022,JUDSON COLLEGE,MARION,AL
+0025,LOMAX-HANNON JUNIOR COLLEGE,GREENVILLE,AL
+0081,LURLEEN B WALLACE STATE JUNIOR COLLEGE,ANDALUSIA,AL
+0026,MARION MILITARY INSTITUTE,MARION,AL
+0028,MILES COLLEGE,BIRMINGHAM,AL
+0150,NAT'L EDUC CENTER-NIT CAMPUS-ALABAMA,HOMEWOOD,AL
+0061,NORTHEAST ALABAMA STATE JUNIOR COLLEGE,RAINSVILLE,AL
+0027,NORTHWEST-SHOALS COMMUNITY COLLEGE,PHIL CAMPBELL,AL
+0030,OAKWOOD COLLEGE,HUNTSVILLE,AL
+0055,PATRICK HENRY STATE JUNIOR COLLEGE,MONROEVILLE,AL
+0016,SAMFORD UNIVERSITY,BIRMINGHAM,AL
+0033,SELMA UNIVERSITY,SELMA,AL
+0007,SHELTON STATE COMMUNITY COLLEGE,TUSCALOOSA,AL
+0036,SNEAD STATE JUNIOR COLLEGE,BOAZ,AL
+0037,"SONAT FOUNDATION INC, THE",BIRMINGHAM,AL
+0038,SOUTHEASTERN BIBLE COLLEGE,BIRMINGHAM,AL
+0040,SOUTHERN UNION STATE JUNIOR COLLEGE,WADLEY,AL
+0071,SOUTHERN VOCATIONAL COLLEGE,TUSKEGEE,AL
+0042,SPRING HILL COLLEGE,MOBILE,AL
+0043,ST VINCENT'S SCHOOL OF NURSING,BIRMINGHAM,AL
+0044,STILLMAN COLLEGE,TUSCALOOSA,AL
+0031,SYLACAUGA HOSPITAL SCHOOL OF NURSING,SYLACAUGA,AL
+0046,TALLADEGA COLLEGE,TALLADEGA,AL
+0021,TENNESSEE VALLEY COLLEGE,DECATUR,AL
+0078,THEODORE ALFRED LAWSON STATE COMM COLL,BIRMINGHAM,AL
+0015,TROY STATE UNIVERSITY-DOTHAN/FT RUCKER,DOTHAN,AL
+0133,TROY STATE UNIVERSITY-MONTGOMERY,MONTGOMERY,AL
+0048,TROY STATE UNIVERSITY-TROY,TROY,AL
+0050,TUSKEGEE UNIVERSITY,TUSKEGEE,AL
+0060,UNIV OF ALABAMA CTR GADSDEN-UPPER DIV,GADSDEN,AL
+0052,UNIVERSITY OF ALABAMA,TUSCALOOSA,AL
+0056,UNIVERSITY OF ALABAMA IN BIRMINGHAM,BIRMINGHAM,AL
+0053,UNIVERSITY OF ALABAMA-HUNTSVILLE,HUNTSVILLE,AL
+0029,UNIVERSITY OF MOBILE,MOBILE,AL
+0004,UNIVERSITY OF MONTEVALLO,MONTEVALLO,AL
+0014,UNIVERSITY OF NORTH ALABAMA,FLORENCE,AL
+0059,UNIVERSITY OF SOUTH ALABAMA,MOBILE,AL
+0024,UNIVERSITY OF WEST ALABAMA,LIVINGSTON,AL
+0034,US SPORTS ACADEMY,DAPHNE,AL
+0054,WALKER COLLEGE,JASPER,AL
+0083,WALLACE STATE COMMUNITY COLLEGE,HANCEVILLE,AL
+0111,ARKANSAS BAPTIST COLLEGE,LITTLE ROCK,AR
+0152,ARKANSAS BIBLE COLLEGE,HOT SPRINGS,AR
+0157,ARKANSAS CHRISTIAN COLLEGE,FT SMITH,AR
+0141,ARKANSAS COLLEGE OF TECHNOLOGY,LITTLE ROCK,AR
+0116,ARKANSAS STATE UNIVERSITY,STATE UNIVERSITY,AR
+0117,ARKANSAS STATE UNIVERSITY-BEEBE BRANCH,BEEBE,AR
+0114,ARKANSAS TECH UNIVERSITY,RUSSELLVILLE,AR
+0131,BAPTIST SYSTEM SCHOOL OF NURSING,LITTLE ROCK,AR
+4717,CAPITAL CITY JUNIOR COLLEGE,LITTLE ROCK,AR
+0119,CENTRAL BAPTIST COLLEGE,CONWAY,AR
+0123,CITADEL BIBLE COLLEGE,OZARK,AR
+0121,CROWLEY'S RIDGE COLLEGE,PARAGOULD,AR
+0109,EAST ARKANSAS COMMUNITY COLLEGE,FORREST CITY,AR
+0115,GARLAND COUNTY COMMUNITY COLLEGE,HOT SPRINGS,AR
+0124,HARDING UNIVERSITY,SEARCY,AR
+0126,HENDERSON STATE UNIVERSITY,ARKADELPHIA,AR
+0128,HENDRIX COLLEGE,CONWAY,AR
+0161,JEFFERSON SCHOOL OF NURSING,PINE BLUFF,AR
+0130,JOHN BROWN UNIVERSITY,SILOAM SPRINGS,AR
+0112,LYON COLLEGE,BATESVILLE,AR
+0129,MISSISSIPPI COUNTY COMMUNITY COLLEGE,BLYTHEVILLE,AR
+0113,NORTH ARKANSAS COMMUNITY COLLEGE,HARRISON,AR
+0017,NORTHWEST ARKANSAS COMMUNITY COLL,ROGERS,AR
+0134,OUACHITA BAPTIST UNIVERSITY,ARKADELPHIA,AR
+0187,PETIT JEAN TECHNICAL COLLEGE,MORRILTON,AR
+0136,PHILANDER SMITH COLLEGE,LITTLE ROCK,AR
+0125,PHILLIPS COUNTY COMMUNITY COLLEGE,HELENA,AR
+0127,RICH MOUNTAIN COMMUNITY COLLEGE,MENA,AR
+0138,SHORTER COLLEGE,NORTH LITTLE ROCK,AR
+0139,SOUTH ARKANSAS COMMUNITY COLLEGE,EL DORADO,AR
+0145,SOUTH CENTRAL CAREER COLLEGE,LITTLE ROCK,AR
+0190,SOUTHEAST ARKANSAS TECHNICAL COLLEGE,PINE BLUFF,AR
+0142,SOUTHERN ARKANSAS UNIVERSITY,MAGNOLIA,AR
+0149,SOUTHERN ARKANSAS UNIVERSITY-EL DORADO,EL DORADO,AR
+0143,SOUTHERN ARKANSAS UNIVERSITY-TECH BRNCH,EAST CAMDEN,AR
+0140,SOUTHERN BAPTIST COLLEGE,WALNUT RIDGE,AR
+4718,ST VINCENT INFIRMARY SCH/RADIOLOGIC TECH,LITTLE ROCK,AR
+0144,UNIVERSITY OF ARKANSAS,FAYETTEVILLE,AR
+0110,UNIVERSITY OF ARKANSAS AT MONTICELLO,MONTICELLO,AR
+0108,UNIVERSITY OF ARKANSAS AT PINE BLUFF,PINE BLUFF,AR
+0132,UNIVERSITY OF ARKANSAS-LITTLE ROCK,LITTLE ROCK,AR
+0118,UNIVERSITY OF CENTRAL ARKANSAS,CONWAY,AR
+0120,UNIVERSITY OF THE OZARKS,CLARKSVILLE,AR
+0122,WESTARK COMMUNITY COLLEGE,FORT SMITH,AR
+0084,AMERICAN GRAD SCH OF INTERNATIONAL MGMT,GLENDALE,AZ
+0180,ARIZONA CAREER COLLEGE,PHOENIX,AZ
+0102,ARIZONA COLLEGE OF THE BIBLE,PHOENIX,AZ
+0088,ARIZONA STATE UNIVERSITY,TEMPE,AZ
+0099,ARIZONA WESTERN COLLEGE,YUMA,AZ
+0085,CENTRAL ARIZONA COLLEGE,COOLIDGE,AZ
+0068,CHANDLER-GILBERT COMMUNITY COLLEGE,CHANDLER,AZ
+0089,COCHISE COLLEGE,DOUGLAS,AZ
+0058,COCONINO COUNTY COMMUNITY COLLEGE,FLAGSTAFF,AZ
+0146,"COLLEGE OF GANADO, THE",GANADO,AZ
+0812,DEVRY INSTITUTE OF TECHNOLOGY2,PHOENIX,AZ
+0090,EASTERN ARIZONA COLLEGE,THATCHER,AZ
+0095,EMBRY-RIDDLE AERONAUTICAL UNIVERSITY,PRESCOTT,AZ
+0151,ESTRELLA MOUNTAIN COMM COLLEGE,ESTRELLA MOUNTAIN,AZ
+0100,GATEWAY COMMUNITY COLLEGE,PHOENIX,AZ
+0091,GLENDALE COMMUNITY COLLEGE,GLENDALE,AZ
+0092,GRAND CANYON COLLEGE,PHOENIX,AZ
+0178,INTERNATIONAL BAPTIST COLLEGE,TEMPE,AZ
+0093,MESA COMMUNITY COLLEGE,MESA,AZ
+0148,MOHAVE COMMUNITY COLLEGE,KINGMAN,AZ
+0104,NAVAJO COMMUNITY COLLEGE,TSAILE,AZ
+0086,NORTHERN ARIZONA UNIVERSITY,FLAGSTAFF,AZ
+0107,NORTHLAND PIONEER COLLEGE,HOLBROOK,AZ
+0087,PARADISE VALLEY COMMUNITY COLLEGE,PHOENIX,AZ
+0094,PHOENIX COLLEGE,PHOENIX,AZ
+0101,PIMA COMMUNITY COLLEGE,TUCSON,AZ
+0135,PRESCOTT COLLEGE,PRESCOTT,AZ
+0103,RIO SALADO COMMUNITY COLLEGE,PHOENIX,AZ
+0105,SCOTTSDALE COMMUNITY COLLEGE,SCOTTSDALE,AZ
+0552,SOUTH MOUNTAIN COMMUNITY COLLEGE,PHOENIX,AZ
+0106,SOUTHWESTERN COLLEGE,PHOENIX,AZ
+0096,UNIVERSITY OF ARIZONA,TUCSON,AZ
+0067,UNIVERSITY OF PHOENIX,PHOENIX,AZ
+0097,WESTERN INTERNATIONAL UNIVERSITY,PHOENIX,AZ
+0098,YAVAPAI COLLEGE,PRESCOTT,AZ
+0155,ACADEMY OF ART COLLEGE,SAN FRANCISCO,CA
+0156,ALLAN HANCOCK COLLEGE,SANTA MARIA,CA
+0159,AMBASSADOR COLLEGE,PASADENA,CA
+0167,AMERICAN ACADEMY OF DRAMATIC ARTS,PASADENA,CA
+0163,AMERICAN COLLEGE FOR THE APP ARTS,LOS ANGELES,CA
+0158,AMERICAN RIVER COLLEGE,SACRAMENTO,CA
+0351,ANAHEIM CHRISTIAN COLLEGE,ANAHEIM,CA
+0160,ANTELOPE VALLEY COLLEGE,LANCASTER,CA
+0162,ARMSTRONG UNIVERSITY,BERKELEY,CA
+0164,ART CENTER COLLEGE OF DESIGN,PASADENA,CA
+0166,AZUSA PACIFIC UNIVERSITY,AZUSA,CA
+0168,BAKERSFIELD COLLEGE,BAKERSFIELD,CA
+0169,BARSTOW COLLEGE,BARSTOW,CA
+0171,BETHANY BIBLE COLLEGE,SANTA CRUZ,CA
+0172,BIOLA UNIVERSITY,LA MIRADA,CA
+0170,BROOKS COLLEGE,LONG BEACH,CA
+0179,BROOKS INSTITUTE OF PHOTOGRAPHY,SANTA BARBARA,CA
+0165,BUTTE COLLEGE,OROVILLE,CA
+0173,CABRILLO COLLEGE,APTOS,CA
+0175,CALIFORNIA BAPTIST COLLEGE,RIVERSIDE,CA
+0215,CALIFORNIA BIBLE COLLEGE,BURLINGAME,CA
+0189,CALIFORNIA CHRISTIAN COLLEGE,FRESNO,CA
+0176,CALIFORNIA COLLEGE OF ARTS AND CRAFTS,OAKLAND,CA
+0177,CALIFORNIA COLLEGE OF PODIATRIC MEDICINE,SAN FRANCISCO,CA
+0185,CALIFORNIA CULINARY ACADEMY,SAN FRANCISCO,CA
+0182,CALIFORNIA INSTITUTE OF TECHNOLOGY,PASADENA,CA
+0181,CALIFORNIA INSTITUTE OF THE ARTS,VALENCIA,CA
+0183,CALIFORNIA LUTHERAN COLLEGE,THOUSAND OAKS,CA
+0184,CALIFORNIA MARITIME ACADEMY,VALLEJO,CA
+0188,CALIFORNIA POLYTECHNIC STATE UNIVERSITY,SAN LUIS OBISPO,CA
+0202,CALIFORNIA STATE POLYTECH UNIVERSITY,POMONA,CA
+0201,CALIFORNIA STATE UNIV-BAKERSFIELD,BAKERSFIELD,CA
+0212,CALIFORNIA STATE UNIV-CHICO,CHICO,CA
+0203,CALIFORNIA STATE UNIV-DOMINGUEZ HILLS,CARSON,CA
+0266,CALIFORNIA STATE UNIV-FRESNO,FRESNO,CA
+0355,CALIFORNIA STATE UNIV-FULLERTON,FULLERTON,CA
+0154,CALIFORNIA STATE UNIV-HAYWARD,HAYWARD,CA
+0302,CALIFORNIA STATE UNIV-LONG BEACH,LONG BEACH,CA
+0320,CALIFORNIA STATE UNIV-LOS ANGELES,LOS ANGELES,CA
+0400,CALIFORNIA STATE UNIV-NORTHRIDGE,NORTHRIDGE,CA
+0382,CALIFORNIA STATE UNIV-SACRAMENTO,SACRAMENTO,CA
+0205,CALIFORNIA STATE UNIV-SAN BERNARDINO,SAN BERNARDINO,CA
+0385,CALIFORNIA STATE UNIV-SAN MARCOS,SAN MARCOS,CA
+0435,CALIFORNIA STATE UNIV-STANISLAUS,TURLOCK,CA
+0439,CALIFORNIA WESTERN SCHOOL OF LAW,SAN DIEGO,CA
+0213,CANADA COLLEGE,REDWOOD CITY,CA
+0206,CERRITOS COLLEGE,NORWALK,CA
+0192,CERRO COSO COMMUNITY COLLEGE,RIDGECREST,CA
+0207,CHABOT COLLEGE,HAYWARD,CA
+0208,CHAFFEY COLLEGE,ALTA LOMA,CA
+0210,CHAPMAN UNIVERSITY,ORANGE,CA
+0222,CHARLES R DREW POSTGRAD MEDICAL SCHOOL,LOS ANGELES,CA
+0211,CHRISTIAN HERITAGE COLLEGE,EL CAJON,CA
+0218,CITRUS COLLEGE,AZUSA,CA
+0220,CITY COLLEGE OF SAN FRANCISCO,SAN FRANCISCO,CA
+0224,CLAREMONT MCKENNA COLLEGE,CLAREMONT,CA
+0193,COASTLINE COMMUNITY COLLEGE,FOUNTAIN VALLEY,CA
+0228,COGSWELL COLLEGE,CUPERTINO,CA
+0231,COLEMAN COLLEGE,LA MESA,CA
+0238,COLLEGE OF ALAMEDA,ALAMEDA,CA
+0232,COLLEGE OF MARIN,KENTFIELD,CA
+0236,COLLEGE OF NOTRE DAME,BELMONT,CA
+0244,COLLEGE OF SAN MATEO,SAN MATEO,CA
+0419,COLLEGE OF THE CANYONS,VALENCIA,CA
+0229,COLLEGE OF THE DESERT,PALM DESERT,CA
+0245,COLLEGE OF THE REDWOODS,EUREKA,CA
+0246,COLLEGE OF THE SEQUOIAS,VISALIA,CA
+0247,COLLEGE OF THE SISKIYOUS,WEED,CA
+0249,COLUMBIA COLLEGE,COLUMBIA,CA
+0248,COMPTON COMMUNITY COLLEGE,COMPTON,CA
+0227,CONCORDIA UNIVERSITY,IRVINE,CA
+0250,CONTRA COSTA COLLEGE,SAN PABLO,CA
+0242,COSUMNES RIVER COLLEGE,SACRAMENTO,CA
+0275,CRAFTON HILLS COLLEGE,YUCAIPA,CA
+0415,CUESTA COLLEGE,SAN LUIS OBISPO,CA
+0217,CUYAMACA COLLEGE,EL CAJON,CA
+0251,CYPRESS COLLEGE,CYPRESS,CA
+0253,DE ANZA COLLEGE,CUPERTINO,CA
+0259,DEFENSE LANGUAGE INSTITUTE,MONTEREY,CA
+0261,DEVRY INSTITUTE OF TECHNOLOGY,POMONA,CA
+0254,DIABLO VALLEY COLLEGE,PLEASANT HILL,CA
+0256,DOMINICAN COLLEGE OF SAN RAFAEL,SAN RAFAEL,CA
+0381,DOMINICAN SCH PHILOSOPHY & THEOLOGY,BERKELEY,CA
+0257,DON BOSCO TECHNICAL INSTITUTE,ROSEMEAD,CA
+0255,D-Q UNIVERSITY,DAVIS,CA
+0258,EAST LOS ANGELES COLLEGE,MONTEREY PARK,CA
+0260,EL CAMINO COLLEGE,TORRANCE,CA
+0234,EVERGREEN VALLEY COLLEGE,SAN JOSE,CA
+0235,FASHION INST OF DESIGN & MERCHANDISING,LOS ANGELES,CA
+0267,FEATHER RIVER COLLEGE,QUINCY,CA
+0263,FOOTHILL COLLEGE,LOS ALTOS HILLS,CA
+0264,FRESNO CITY COLLEGE,FRESNO,CA
+0357,FRESNO PACIFIC COLLEGE,FRESNO,CA
+0271,FULLER THEOLOGICAL SEMINARY,PASADENA,CA
+0270,FULLERTON COLLEGE,FULLERTON,CA
+0390,GAVILAN COLLEGE,GILROY,CA
+0274,GLENDALE COMMUNITY COLLEGE,GLENDALE,CA
+0278,GOLDEN GATE UNIVERSITY,SAN FRANCISCO,CA
+0277,GOLDEN WEST COLLEGE,HUNTINGTON BEACH,CA
+0279,GROSSMONT COLLEGE,EL CAJON,CA
+0280,HARTNELL COLLEGE,SALINAS,CA
+0282,HARVEY MUDD COLLEGE,CLAREMONT,CA
+0285,HEALD BUSINESS COLLEGE,SAN FRANCISCO,CA
+0283,HEALD INSTITUTE OF TECHNOLOGY,SAN FRANCISCO,CA
+0284,HEBREW UNION COLLEGE,LOS ANGELES,CA
+0230,HOLY NAMES COLLEGE,OAKLAND,CA
+0286,HUMBOLDT STATE UNIVERSITY,ARCATA,CA
+0288,HUMPHREYS COLLEGE,STOCKTON,CA
+0292,IMPERIAL VALLEY COLLEGE,IMPERIAL,CA
+0289,INDIAN VALLEY COLLEGES,NOVATO,CA
+0290,IRVINE VALLEY COLLEGE,IRVINE,CA
+0291,JOHN F KENNEDY UNIVERSITY,ORINDA,CA
+0376,KINGS RIVER COMMUNITY COLLEGE,REEDLEY,CA
+0294,LA SIERRA UNIVERSITY,RIVERSIDE,CA
+0308,LAKE TAHOE COMMUNITY COLLEGE,SOUTH LAKE TAHOE,CA
+0301,LOMA LINDA UNIVERSITY,LOMA LINDA,CA
+0300,LONG BEACH CITY COLLEGE,LONG BEACH,CA
+0303,LOS ANGELES BAPTIST COLLEGE,NEWHALL,CA
+0304,LOS ANGELES CITY COLLEGE,LOS ANGELES,CA
+0312,LOS ANGELES HARBOR COLLEGE,WILMINGTON,CA
+0313,LOS ANGELES METROPOLITAN COLLEGE,LOS ANGELES,CA
+0314,LOS ANGELES MISSION COLLEGE,SAN FERNANDO,CA
+0318,LOS ANGELES PIERCE COLLEGE,WOODLAND HILLS,CA
+0319,LOS ANGELES SOUTHWEST COLLEGE,LOS ANGELES,CA
+0322,LOS ANGELES TRADE-TECH COLLEGE,LOS ANGELES,CA
+0324,LOS ANGELES VALLEY COLLEGE,VAN NUYS,CA
+0325,LOS MEDANOS COLLEGE,PITTSBURG,CA
+0326,LOYOLA MARYMOUNT UNIVERSITY,LOS ANGELES,CA
+0316,MARYMOUNT PALOS VERDES COLLEGE,RANCHO PALOS VERDES,CA
+0273,MENDOCINO COLLEGE,UKIAH,CA
+0330,MENLO COLLEGE,ATHERTON,CA
+0333,MERCED COLLEGE,MERCED,CA
+0348,MERRITT COLLEGE,OAKLAND,CA
+0332,MILLS COLLEGE,OAKLAND,CA
+0352,MIRACOSTA COLLEGE,OCEANSIDE,CA
+0323,MISSION COLLEGE,SANTA CLARA,CA
+0334,MODESTO JUNIOR COLLEGE,MODESTO,CA
+0339,MONTEREY INST OF INTERNATIONAL STUDIES,MONTEREY,CA
+0336,MONTEREY PENINSULA COLLEGE,MONTEREY,CA
+0335,MOORPARK COLLEGE,MOORPARK,CA
+0340,MOUNT SAN ANTONIO COLLEGE,WALNUT,CA
+0341,MOUNT SAN JACINTO COLLEGE,SAN JACINTO,CA
+0338,MOUNT ST MARY'S COLLEGE,LOS ANGELES,CA
+0342,NAPA VALLEY COLLEGE,NAPA,CA
+0344,NATIONAL UNIVERSITY,SAN DIEGO,CA
+0345,NAVAL POSTGRADUATE SCHOOL,MONTEREY,CA
+0353,NEW COLLEGE OF CALIFORNIA,SAN FRANCISCO,CA
+0346,NORTHROP UNIVERSITY,INGLEWOOD,CA
+0350,OCCIDENTAL COLLEGE,LOS ANGELES,CA
+0265,OHLONE COLLEGE,FREMONT,CA
+0354,ORANGE COAST COLLEGE,COSTA MESA,CA
+0359,OTIS ART INSTITUTE OF PARSONS SCH DESGN,LOS ANGELES,CA
+0358,OXNARD COLLEGE,OXNARD,CA
+0356,PACIFIC CHRISTIAN COLLEGE,FULLERTON,CA
+0360,PACIFIC OAKS COLLEGE & CHILDREN'S SCHOOL,PASADENA,CA
+0361,PACIFIC STATES UNIVERSITY,LOS ANGELES,CA
+0362,PACIFIC UNION COLLEGE,ANGWIN,CA
+0364,PALO VERDE COLLEGE,BLYTHE,CA
+0366,PALOMAR COLLEGE,SAN MARCOS,CA
+0368,PASADENA CITY COLLEGE,PASADENA,CA
+0373,PEPPERDINE UNIVERSITY AT MALIBU,MALIBU,CA
+0375,PERALTA COLLEGE,OAKLAND,CA
+0363,PITZER COLLEGE,CLAREMONT,CA
+0370,POINT LOMA NAZARENE COLLEGE,SAN DIEGO,CA
+0372,POMONA COLLEGE,CLAREMONT,CA
+0374,PORTERVILLE COLLEGE,PORTERVILLE,CA
+0416,RANCHO SANTIAGO COLLEGE,SANTA ANA,CA
+0379,RIO HONDO COLLEGE,WHITTIER,CA
+0378,RIVERSIDE COMMUNITY COLLEGE,RIVERSIDE,CA
+0380,SACRAMENTO CITY COLLEGE,SACRAMENTO,CA
+0383,SADDLEBACK COLLEGE,MISSION VIEJO,CA
+0412,SAMUEL MERRITT COLLEGE OF NURSING,OAKLAND,CA
+0392,SAN BERNARDINO VALLEY COLLEGE,SAN BERNARDINO,CA
+0396,SAN DIEGO CITY COLLEGE,SAN DIEGO,CA
+0337,SAN DIEGO MESA COLLEGE,SAN DIEGO,CA
+0331,SAN DIEGO MIRAMAR COLLEGE,SAN DIEGO,CA
+0398,SAN DIEGO STATE UNIVERSITY,SAN DIEGO,CA
+0186,SAN FRANCISCO ART INSTITUTE,SAN FRANCISCO,CA
+0405,SAN FRANCISCO COLLEGE-MORTUARY SCIENCE,SAN FRANCISCO,CA
+0403,SAN FRANCISCO CONSERVATORY OF MUSIC,SAN FRANCISCO,CA
+0404,SAN FRANCISCO STATE UNIVERSITY,SAN FRANCISCO,CA
+0433,SAN JOAQUIN COLLEGE OF LAW,FRESNO,CA
+0436,SAN JOAQUIN DELTA COLLEGE,STOCKTON,CA
+0417,SAN JOSE BIBLE COLLEGE,SAN JOSE,CA
+0408,SAN JOSE CITY COLLEGE,SAN JOSE,CA
+0410,SAN JOSE STATE UNIVERSITY,SAN JOSE,CA
+0418,SANTA BARBARA CITY COLLEGE,SANTA BARBARA,CA
+0421,SANTA CLARA UNIVERSITY,SANTA CLARA,CA
+0420,SANTA MONICA COLLEGE,SANTA MONICA,CA
+0422,SANTA ROSA JUNIOR COLLEGE,SANTA ROSA,CA
+0426,SCRIPPS COLLEGE,CLAREMONT,CA
+0428,SHASTA COLLEGE,REDDING,CA
+0429,SIERRA COLLEGE,ROCKLIN,CA
+0430,SIMPSON COLLEGE,SAN FRANCISCO,CA
+0440,SKYLINE COLLEGE,SAN BRUNO,CA
+0474,SOLANO COMMUNITY COLLEGE,SUISUN CITY,CA
+0431,SONOMA STATE UNIVERSITY,ROHNERT PARK,CA
+0432,SOUTHERN CALIFORNIA COLLEGE,COSTA MESA,CA
+0437,SOUTHWESTERN COLLEGE,CHULA VISTA,CA
+0384,ST JOHN'S COLLEGE,CAMARILLO,CA
+0388,ST JOSEPH'S COLLEGE,MOUNTAIN VIEW,CA
+0386,ST MARY'S COLLEGE OF CALIFORNIA,MORAGA,CA
+0434,STANFORD UNIVERSITY,STANFORD,CA
+0438,TAFT COLLEGE,TAFT,CA
+0424,THE MASTERS COLLEGE,NEWHALL,CA
+0425,THOMAS AQUINAS COLLEGE,SANTA PAULA,CA
+0443,U S INTERNATIONAL UNIVERSITY,SAN DIEGO,CA
+0452,UNIV OF CALIFORNIA-SANTA BARBARA,SANTA BARBARA,CA
+0444,UNIVERSITY OF CALIFORNIA-BERKELEY,BERKELEY,CA
+0454,UNIVERSITY OF CALIFORNIA-DAVIS,DAVIS,CA
+0446,UNIVERSITY OF CALIFORNIA-IRVINE,IRVINE,CA
+0448,UNIVERSITY OF CALIFORNIA-LOS ANGELES,LOS ANGELES,CA
+0456,UNIVERSITY OF CALIFORNIA-RIVERSIDE,RIVERSIDE,CA
+0459,UNIVERSITY OF CALIFORNIA-SAN DIEGO,LA JOLLA,CA
+0460,UNIVERSITY OF CALIFORNIA-SANTA CRUZ,SANTA CRUZ,CA
+0442,UNIVERSITY OF CENTRAL CALIFORNIA,SACRAMENTO,CA
+0462,UNIVERSITY OF JUDAISM/LEE COLLEGE,LOS ANGELES,CA
+0295,UNIVERSITY OF LA VERNE,LA VERNE,CA
+0464,UNIVERSITY OF REDLANDS,REDLANDS,CA
+0394,UNIVERSITY OF SAN DIEGO,SAN DIEGO,CA
+0466,UNIVERSITY OF SAN FRANCISCO,SAN FRANCISCO,CA
+0468,UNIVERSITY OF SANTA CLARA,SANTA CLARA,CA
+0470,UNIVERSITY OF SOUTHERN CALIFORNIA,LOS ANGELES,CA
+0240,UNIVERSITY OF THE PACIFIC,STOCKTON,CA
+0449,UNIVERSITY OF WEST L A SCHOOL OF LAW,CULVER CITY,CA
+0476,VENTURA COLLEGE,VENTURA,CA
+0475,VICTOR VALLEY COLLEGE,VICTORVILLE,CA
+0174,VISTA COLLEGE,BERKELEY,CA
+0472,WEST COAST CHRISTIAN COLLEGE,FRESNO,CA
+0484,WEST COAST UNIVERSITY,LOS ANGELES,CA
+0226,WEST HILLS COLLEGE,COALINGA,CA
+0483,WEST LOS ANGELES COLLEGE,CULVER CITY,CA
+0479,WEST VALLEY COLLEGE,SARATOGA,CA
+0262,WESTERN STATES COLLEGE OF ENGINEERING,INGLEWOOD,CA
+0478,WESTMONT COLLEGE,SANTA BARBARA,CA
+0480,WHITTIER COLLEGE,WHITTIER,CA
+0481,WOODBURY UNIVERSITY,BURBANK,CA
+0487,WORLD COLLEGE WEST,PETALUMA,CA
+0482,YUBA COLLEGE,MARYSVILLE,CA
+0496,ADAMS STATE COLLEGE,ALAMOSA,CO
+0505,AIMS COMMUNITY COLLEGE,GREELEY,CO
+0497,ARAPAHOE COMMUNITY COLLEGE,LITTLETON,CO
+0513,BETH-EL SCHOOL OF NURSING MEMORIAL HOSP,COLORADO SPRINGS,CO
+0553,CHERRY CREEK BAPTIST COLLEGE,ENGLEWOOD,CO
+0541,CIBAR SYSTEMS INSTITUTE,COLORADO SPRINGS,CO
+0543,COLORADO CHRISTIAN UNIVERSITY,LAKEWOOD,CO
+0498,COLORADO COLLEGE,COLORADO SPRINGS,CO
+0499,COLORADO MOUNTAIN COLL-ALPINE CAMPUS,STEAMBOAT SPRINGS,CO
+0501,COLORADO MOUNTAIN COLL-SPRG VALLEY CAMP,GLENWOOD SPRINGS,CO
+0503,COLORADO MOUNTAIN COLL-TIMBERLINE CAMP,LEADVILLE,CO
+0525,COLORADO NORTHWESTERN COMMUNITY COLLEGE,RANGELY,CO
+0500,COLORADO SCHOOL OF MINES,GOLDEN,CO
+0504,COLORADO STATE UNIVERSITY,FORT COLLINS,CO
+0515,COLORADO TECHNICAL UNIVERSITY,COLORADO SPRINGS,CO
+0512,COMMUNITY COLLEGE OF AURORA,AURORA,CO
+0511,COMMUNITY COLLEGE OF DENVER,DENVER,CO
+0537,DENVER BAPTIST BIBLE COLLEGE,BROOMFIELD,CO
+0510,FORT LEWIS COLLEGE,DURANGO,CO
+0507,FRONT RANGE COMMUNITY COLLEGE,WESTMINSTER,CO
+0521,INTERIOR DESIGN INSTITUTE OF DENVER,DENVER,CO
+0517,INTERMOUNTAIN BIBLE COLLEGE,GRAND JUNCTION,CO
+0514,LAMAR COMMUNITY COLLEGE,LAMAR,CO
+0516,LORETTO HEIGHTS COLLEGE,DENVER,CO
+0518,MESA STATE COLLEGE,GRAND JUNCTION,CO
+0519,METROPOLITAN STATE COLLEGE OF DENVER,DENVER,CO
+0544,MORGAN COMMUNITY COLLEGE,FORT MORGAN,CO
+0545,NATIONAL AMERICAN UNIVERSITY,DENVER,CO
+0546,NATIONAL TECHNOLOGICAL UNIVERSITY,FORT COLLINS,CO
+0547,NAZARENE BIBLE COLLEGE,COLORADO SPRINGS,CO
+0520,NORTHEASTERN JUNIOR COLLEGE,STERLING,CO
+0522,OTERO JUNIOR COLLEGE,LA JUNTA,CO
+0531,PARKS COLLEGE,DENVER,CO
+0509,PIKES PEAK COMMUNITY COLLEGE,COLORADO SPRINGS,CO
+0540,PRESBYTERIAN-ST LUKES SCHOOL OF NURSING,DENVER,CO
+0492,PUEBLO COMMUNITY COLLEGE,PUEBLO,CO
+0508,RED ROCKS COMMUNITY COLLEGE,GOLDEN,CO
+0526,REGIS COLLEGE,DENVER,CO
+0523,ROCKMONT COLLEGE,DENVER,CO
+0527,ROCKY MOUNTAIN BIOLOGICAL LABORATORY,CRESTED BUTTE,CO
+0528,TRINIDAD STATE JUNIOR COLLEGE,TRINIDAD,CO
+0529,U COLORADO HEALTH SCI CTR SCH/DENTISTRY,DENVER,CO
+0530,U S AIR FORCE ACADEMY,US AIR FORCE ACADEMY,CO
+0535,UNIV OF COLORADO-COLORADO SPRINGS,COLORADO SPRINGS,CO
+0532,UNIVERSITY OF COLORADO-BOULDER,BOULDER,CO
+0533,UNIVERSITY OF COLORADO-DENVER,DENVER,CO
+0534,UNIVERSITY OF DENVER,DENVER,CO
+0502,UNIVERSITY OF NORTHERN COLORADO,GREELEY,CO
+0524,UNIVERSITY OF SOUTHERN COLORADO,PUEBLO,CO
+0542,WESTERN BIBLE COLLEGE,MORRISON,CO
+0536,WESTERN STATE COLLEGE OF COLORADO,GUNNISON,CO
+0549,ALBERTUS MAGNUS COLLEGE,NEW HAVEN,CT
+0581,ANNHURST COLLEGE,SOUTH WOODSTOCK,CT
+0583,ASNUNTUCK COMMUNITY-TECHNICAL COLLEGE,ENFIELD,CT
+0551,BRIARWOOD COLLEGE,SOUTHINGTON,CT
+0567,CAPITAL COMMUNITY COLLEGE,HARTFORD,CT
+0596,CENTRAL CONNECTICUT STATE UNIVERSITY,NEW BRITAIN,CT
+0550,CHARTER OAK STATE COLLEGE,NEWINGTON,CT
+0556,CONNECTICUT COLLEGE,NEW LONDON,CT
+0616,EASTERN CONNECTICUT STATE UNIVERSITY,WILLIMANTIC,CT
+0560,FAIRFIELD UNIVERSITY,FAIRFIELD,CT
+0590,GATEWAY COMMUNITY TECHNICAL COLLEGE,NEW HAVEN,CT
+0561,GREATER HARTFORD COMMUNITY COLLEGE,HARTFORD,CT
+0568,HARTFORD COLLEGE FOR WOMEN,HARTFORD,CT
+0563,HOUSATONIC COMMUNITY COLLEGE,BRIDGEPORT,CT
+0555,KATHARINE GIBBS SCHOOL,NORWALK,CT
+0569,MANCHESTER COMMUNITY-TECHNICAL COLLEGE,MANCHESTER,CT
+0584,MIDDLESEX COMMUNITY COLLEGE,MIDDLETOWN,CT
+0572,MITCHELL COLLEGE,NEW LONDON,CT
+0574,MT SACRED HEART COLLEGE,HAMDEN,CT
+0570,NAGATUCK VALLEY COMM-TECHNICAL COLLEGE,WATERBURY,CT
+0578,NORTHWESTERN CONNECTICUT COMM COLLEGE,WINSTED,CT
+0577,NORWALK COMMUNITY-TECHNICAL COLLEGE,NORWALK,CT
+0580,POST COLLEGE,WATERBURY,CT
+0554,QUINEBAUG VALLEY COMMUNITY COLLEGE,DANIELSON,CT
+0582,QUINNIPIAC COLLEGE,HAMDEN,CT
+0589,SACRED HEART UNIVERSITY,BRIDGEPORT,CT
+0593,SOUTHERN CONNECTICUT STATE UNIVERSITY,NEW HAVEN,CT
+0595,THREE RIVER COMMUNITY-TECHNICAL COLLEGE,NORWICH,CT
+0598,TRINITY COLLEGE,HARTFORD,CT
+0608,TUNXIS COMMUNITY COLLEGE,FARMINGTON,CT
+0600,U S COAST GUARD ACADEMY,NEW LONDON,CT
+0602,UNIVERSITY OF BRIDGEPORT,BRIDGEPORT,CT
+0604,UNIVERSITY OF CONNECTICUT,STORRS,CT
+0606,UNIVERSITY OF HARTFORD,WEST HARTFORD,CT
+0576,UNIVERSITY OF NEW HAVEN,WEST HAVEN,CT
+0579,WATERBURY STATE TECHNICAL COLLEGE,WATERBURY,CT
+0614,WESLEYAN UNIVERSITY,MIDDLETOWN,CT
+0558,WESTERN CONNECTICUT STATE UNIVERSITY,DANBURY,CT
+0623,YALE PHYSICIAN ASSOCIATE PROGRAM,NEW HAVEN,CT
+0618,YALE UNIVERSITY,NEW HAVEN,CT
+0648,AMERICAN UNIVERSITY,WASHINGTON,DC
+0654,CATHOLIC UNIVERSITY OF AMERICA,WASHINGTON,DC
+0657,DEFENSE INTELLIGENCE SCHOOL,WASHINGTON,DC
+0662,GALLAUDET COLLEGE,WASHINGTON,DC
+0664,"GEORGE WASHINGTON UNIVERSITY, THE",WASHINGTON,DC
+0668,GEORGETOWN UNIVERSITY,WASHINGTON,DC
+0674,HOWARD UNIVERSITY,WASHINGTON,DC
+4107,MILITARY PHYSICIAN ASSISTANT PROGRAM,WASHINGTON,DC
+0660,MIU COLLEGE OF NATURAL LAW,WASHINGTON,DC
+0680,MODERN SCHOOL OF MUSIC,WASHINGTON,DC
+0682,MOUNT VERNON COLLEGE,WASHINGTON,DC
+0689,NATIONAL JOB CORP,WASHINGTON,DC
+0692,SOUTHEASTERN UNIVERSITY,WASHINGTON,DC
+0694,STRAYER COLLEGE,WASHINGTON,DC
+0696,TRINITY COLLEGE,WASHINGTON,DC
+0695,UNIV OF THE DISTRICT OF COLUMBIA,WASHINGTON,DC
+0629,BRANDYWINE COLLEGE OF WIDENER UNIV,WILMINGTON,DE
+0630,DELAWARE STATE UNIVERSITY,DOVER,DE
+0631,DELAWARE TECH & COMM COLL-SOUTHERN CAMP,GEORGETOWN,DE
+0633,DELAWARE TECH & COMM COLL-STANTON CAMPUS,NEWARK,DE
+0637,DELAWARE TECH & COMM COLL-TERRY CAMPUS,DOVER,DE
+0632,GOLDEY BEACOM COLLEGE,WILMINGTON,DE
+0634,UNIVERSITY OF DELAWARE,NEWARK,DE
+0636,WESLEY COLLEGE,DOVER,DE
+0635,WILMINGTON COLLEGE,NEW CASTLE,DE
+0718,BARRY UNIVERSITY,MIAMI,FL
+0720,BETHUNE-COOKMAN COLLEGE,DAYTONA BEACH,FL
+0769,BREVARD COMMUNITY COLLEGE,COCOA,FL
+0768,BROWARD COMMUNITY COLLEGE,FORT LAUDERDALE,FL
+0708,BROWARD COMMUNITY COLLEGE-HOLLYWOOD,FORT LAUDERDALE,FL
+0699,BROWARD COMMUNITY COLLEGE-POMPANO BEACH,FORT LAUDERDALE,FL
+0742,CENTRAL FLORIDA BIBLE COLLEGE,ORLANDO,FL
+0721,CENTRAL FLORIDA COMMUNITY COLLEGE,OCALA,FL
+0722,CHIPOLA JUNIOR COLLEGE,MARIANNA,FL
+0715,CLEARWATER CHRISTIAN COLLEGE,CLEARWATER,FL
+0706,COLLEGE OF BOCA RATON,BOCA RATON,FL
+0763,COLLEGE OF THE PALM BEACHES,WEST PALM BEACH,FL
+0723,DAYTONA BEACH COMMUNITY COLLEGE,DAYTONA BEACH,FL
+0731,ECKERD COLLEGE,ST PETERSBURG,FL
+0727,EDISON COMMUNITY COLLEGE,FORT MYERS,FL
+0724,EDWARD WATERS COLLEGE,JACKSONVILLE,FL
+0725,EMBRY-RIDDLE AERONAUTICAL UNIV,DAYTONA BEACH,FL
+0772,FLAGLER COLLEGE,ST AUGUSTINE,FL
+0726,FLORIDA A&M UNIVERSITY,TALLAHASSEE,FL
+0729,FLORIDA ATLANTIC UNIVERSITY,BOCA RATON,FL
+0712,FLORIDA BAPTIST COLLEGE,LAKELAND,FL
+0702,FLORIDA BIBLE COLLEGE,KISSIMMEE,FL
+0728,FLORIDA COLLEGE,TEMPLE TERRACE,FL
+0717,FLORIDA COMMUNITY COLLEGE,JACKSONVILLE,FL
+0795,FLORIDA GULF COAST UNIVERSITY,FT MYERS,FL
+0700,FLORIDA INSTITUTE OF TECH-JENSEN BEACH,JENSEN BEACH,FL
+0716,FLORIDA INSTITUTE OF TECH-MELBOURNE,MELBOURNE,FL
+0776,FLORIDA INTERNATIONAL UNIVERSITY,MIAMI,FL
+0747,FLORIDA KEYS COMMUNITY COLLEGE,KEY WEST,FL
+0730,FLORIDA MEMORIAL COLLEGE,MIAMI,FL
+0732,FLORIDA SOUTHERN COLLEGE,LAKELAND,FL
+0734,FLORIDA STATE UNIVERSITY,TALLAHASSEE,FL
+0775,FORT LAUDERDALE COLLEGE,FT LAUDERDALE,FL
+0738,GULF COAST COMMUNITY COLLEGE,PANAMA CITY,FL
+0703,HERITAGE COLLEGE,ORLANDO,FL
+0704,HILLSBOROUGH COMMUNITY COLLEGE,TAMPA,FL
+0774,INDIAN RIVER COMMUNITY COLLEGE,FORT PIERCE,FL
+0701,INTERNATIONAL FINE ARTS COLLEGE,MIAMI,FL
+0740,JACKSONVILLE UNIVERSITY,JACKSONVILLE,FL
+0765,JONES COLLEGE,JACKSONVILLE,FL
+0766,LAKE CITY COMMUNITY COLLEGE,LAKE CITY,FL
+0737,LAKE-SUMTER COMMUNITY COLLEGE,LEESBURG,FL
+0751,LANDMARK BAPTIST COLLEGE,HAINES CITY,FL
+0761,LYNN UNIVERSITY,BOCA RATON,FL
+0741,MANATEE COMMUNITY COLLEGE,BRADENTON,FL
+0749,MIAMI CHRISTIAN COLLEGE,MIAMI,FL
+0770,MIAMI-DADE COMMUNITY COLLEGE,MIAMI,FL
+0750,NEW COLL OF THE UNIV OF SOUTH FLORIDA,SARASOTA,FL
+0743,NORTH FLORIDA JUNIOR COLLEGE,MADISON,FL
+0764,NOVA SOUTHEASTERN UNIVERSITY,FT LAUDERDALE,FL
+0745,OKALOOSA-WALTON JUNIOR COLLEGE,NICEVILLE,FL
+0767,ORLANDO COLLEGE,ORLANDO,FL
+0739,PALM BEACH ATLANTIC COLLEGE,WEST PALM BEACH,FL
+0744,PALM BEACH COMMUNITY COLLEGE,LAKE WORTH,FL
+3021,PASCO-HERNANDO COMMUNITY COLLEGE,DADE CITY,FL
+0707,PENSACOLA CHRISTIAN COLLEGE,PENSACOLA,FL
+0746,PENSACOLA JUNIOR COLLEGE,PENSACOLA,FL
+0757,POLK COMMUNITY COLLEGE,WINTER HAVEN,FL
+4981,PROSPECT HALL COLLEGE,HOLLYWOOD,FL
+0748,ROLLINS COLLEGE,WINTER PARK,FL
+0778,SANTA FE COMMUNITY COLLEGE,GAINESVILLE,FL
+0787,SANTA ROSA CHRISTIAN COLLEGE,MILTON,FL
+0779,SEMINOLE COMMUNITY COLLEGE,SANFORD,FL
+0759,SOUTH FLORIDA COMMUNITY COLLEGE,AVON PARK,FL
+0754,SOUTHEASTERN COLL OF ASSEMBLIES OF GOD,LAKELAND,FL
+0679,SPURGEON BAPTIST BIBLE COLLEGE,MULBERRY,FL
+0753,ST JOHN'S RIVER COMMUNITY COLLEGE,PALATKA,FL
+0755,ST LEO COLLEGE,SAINT LEO,FL
+0791,ST PETERSBURG JR COLLEGE-CLEARWATER,ST PETERSBURG,FL
+0752,ST PETERSBURG JR COLLEGE-ST PETERSBURG,ST PETERSBURG,FL
+0793,ST PETERSBURG JR COLLEGE-TARPON SPRINGS,ST PETERSBURG,FL
+0719,ST THOMAS UNIVERSITY,MIAMI,FL
+0756,STETSON UNIVERSITY,DE LAND,FL
+0714,SUWANNEE-HAMILTON AREA VOC-TECH CENTER,LIVE OAK,FL
+0713,TALLAHASSEE COMMUNITY COLLEGE,TALLAHASSEE,FL
+5147,TAMPA COLLEGE,TAMPA,FL
+4876,TRINITY COLLEGE,DUNEDIN,FL
+0735,UNIVERSITY OF CENTRAL FLORIDA,ORLANDO,FL
+0758,UNIVERSITY OF FLORIDA,GAINESVILLE,FL
+0760,UNIVERSITY OF MIAMI,CORAL GABLES,FL
+0711,UNIVERSITY OF NORTH FLORIDA,JACKSONVILLE,FL
+0733,UNIVERSITY OF SOUTH FLORIDA,TAMPA,FL
+0762,UNIVERSITY OF TAMPA,TAMPA,FL
+0771,UNIVERSITY OF WEST FLORIDA,PENSACOLA,FL
+0736,VALENCIA COMMUNITY COLLEGE,ORLANDO,FL
+0777,WARNER SOUTHERN COLLEGE,LAKE WALES,FL
+0773,WEBBER COLLEGE,BABSON PARK,FL
+0781,ABRAHAM BALDWIN AGRICULTURAL COLLEGE,TIFTON,GA
+0780,AGNES SCOTT COLLEGE,DECATUR,GA
+0782,ALBANY STATE COLLEGE,ALBANY,GA
+0788,AMERICAN COLL FOR APPLIED ARTS,ALTANTA,GA
+0784,ANDREW COLLEGE,CUTHBERT,GA
+0786,ARMSTRONG ATLANTIC STATE UNIVERSITY,SAVANNAH,GA
+0789,ART INSTITUTE OF ATLANTA,ATLANTA,GA
+0785,ATLANTA CHRISTIAN COLLEGE,EAST POINT,GA
+0829,ATLANTA COLLEGE OF ART,ATLANTA,GA
+0831,ATLANTA METROPOLITAN COLLEGE,ATLANTA,GA
+0790,ATLANTA UNIVERSITY,ATLANTA,GA
+0796,AUGUSTA STATE UNIVERSITY,AUGUSTA,GA
+0797,BAINBRIDGE JUNIOR COLLEGE,BAINBRIDGE,GA
+0709,BAPTIST UNIVERSITY OF AMERICA,DECATUR,GA
+0710,BAUDER FASHION COLLEGE,ATLANTA,GA
+0798,BERRY COLLEGE,MOUNT BERRY,GA
+0800,BRENAU UNIVERSITY,GAINESVILLE,GA
+0801,BREWTON-PARKER COLLEGE,MT VERNON,GA
+0802,BRUNSWICK JUNIOR COLLEGE,BRUNSWICK,GA
+0804,CLARK ATLANTA UNIVERSITY,ATLANTA,GA
+0803,CLAYTON STATE COLLEGE,MORROW,GA
+0807,COLUMBUS COLLEGE,COLUMBUS,GA
+3951,COVENANT COLLEGE,LOOKOUT MOUNTAIN,GA
+0809,DALTON JUNIOR COLLEGE,DALTON,GA
+0783,DARTON COLLEGE,ALBANY,GA
+0813,EAST GEORGIA COLLEGE,SWAINSBORO,GA
+0808,EMMANUEL COLLEGE,FRANKLIN SPRINGS,GA
+0810,EMORY UNIVERSITY,ATLANTA,GA
+0811,FLOYD COLLEGE,ROME,GA
+0814,FORT VALLEY STATE COLLEGE,FORT VALLEY,GA
+0815,GAINESVILLE COLLEGE,GAINESVILLE,GA
+0821,GEORGIA BAPTIST COLLEGE,FAIRBURN,GA
+0828,GEORGIA COLLEGE AT MILLEDGEVILLE,MILLEDGEVILLE,GA
+0818,GEORGIA INSTITUTE OF TECHNOLOGY,ATLANTA,GA
+0822,GEORGIA MILITARY COLLEGE,MILLEDGEVILLE,GA
+0806,GEORGIA PERIMETER COLLEGE,CLARKSTON,GA
+0830,GEORGIA SOUTHERN UNIVERSITY,STATESBORO,GA
+0824,GEORGIA SOUTHWESTERN COLLEGE,AMERICUS,GA
+0826,GEORGIA STATE UNIVERSITY,ATLANTA,GA
+0832,GORDON JUNIOR COLLEGE,BARNESVILLE,GA
+0835,INSTITUTE OF PAPER SCIENCE & TECHNOLOGY,ATLANTA,GA
+0833,KENNESAW STATE UNIVERSITY,MARIETTA,GA
+0834,LAGRANGE COLLEGE,LAGRANGE,GA
+0837,MACON JUNIOR COLLEGE,MACON,GA
+0817,MASSEY BUSINESS COLLEGE,ATLANTA,GA
+0836,MEDICAL COLLEGE OF GEORGIA,AUGUSTA,GA
+0864,MERCER UNIVERSITY SCHOOL OF PHARMACY,ATLANTA,GA
+0846,MERCER UNIVERSITY-ATLANTA,ATLANTA,GA
+0838,MERCER UNIVERSITY-MACON,MACON,GA
+0840,MIDDLE GEORGIA COLLEGE,COCHRAN,GA
+0792,MOREHOUSE COLLEGE,ATLANTA,GA
+0844,MORRIS BROWN COLLEGE,ATLANTA,GA
+0848,NORTH GEORGIA COLLEGE,DAHLONEGA,GA
+0850,OGLETHORPE UNIVERSITY,ATLANTA,GA
+0851,OXFORD COLLEGE OF EMORY UNIVERSITY,OXFORD,GA
+0852,PAINE COLLEGE,AUGUSTA,GA
+0853,PIEDMONT COLLEGE,DEMOREST,GA
+0856,REINHARDT COLLEGE,WALESKA,GA
+0855,"SAVANNAH COLLEGE OF ART & DESIGN, THE",SAVANNAH,GA
+0858,SAVANNAH STATE UNIVERSITY,SAVANNAH,GA
+0854,SAVANNAH TECHNICAL INSTITUTE,SAVANNAH,GA
+0860,SHORTER COLLEGE,ROME,GA
+0862,SOUTH GEORGIA COLLEGE,DOUGLAS,GA
+0865,SOUTHERN COLLEGE OF TECHNOLOGY,MARIETTA,GA
+0794,SPELMAN COLLEGE,ATLANTA,GA
+0878,STATE UNIVERSITY OF WEST GEORGIA,CARROLLTON,GA
+0866,TIFT COLLEGE,FORSYTH,GA
+0868,TOCCOA FALLS COLLEGE,TOCCOA FALLS,GA
+0870,TRUETT-MCCONNELL COLLEGE,CLEVELAND,GA
+0872,UNIVERSITY OF GEORGIA,ATHENS,GA
+0874,VALDOSTA STATE COLLEGE,VALDOSTA,GA
+0875,WAYCROSS COLLEGE,WAYCROSS,GA
+0876,WESLEYAN COLLEGE,MACON,GA
+0880,YOUNG HARRIS COLLEGE,YOUNG HARRIS,GA
+0899,BRIGHAM YOUNG UNIVERSITY-HAWAII CAMPUS,LAIE,HI
+0898,CHAMINADE UNIVERSITY OF HONOLULU,HONOLULU,HI
+0904,HAWAII COMMUNITY COLLEGE,HILO,HI
+0903,HAWAII LOA COLLEGE,KANEOHE,HI
+0900,HAWAII PACIFIC COLLEGE,HONOLULU,HI
+0905,HONOLULU COMMUNITY COLLEGE,HONOLULU,HI
+0911,KANSAI GAIDAI HAWAII COLLEGE,HONOLULU,HI
+0906,KAPIOLANI COMMUNITY COLLEGE,HONOLULU,HI
+0907,KAUAI COMMUNITY COLLEGE,LIHUE,HI
+0908,LEEWARD COMMUNITY COLLEGE,PEARL CITY,HI
+0909,MAUI COMMUNITY COLLEGE,KAHULUI,HI
+0902,UNIVERSITY OF HAWAII AT MANOA,HONOLULU,HI
+0901,UNIVERSITY OF HAWAII-HILO,HILO,HI
+0910,WINDWARD COMMUNITY COLLEGE,KANEOHE,HI
+1273,ALLEN MEMORIAL HOSP LUTHERAN SCH/NURSING,WATERLOO,IA
+1267,AMERICAN INSTITUTE OF BUSINESS,DES MOINES,IA
+5184,AMERICAN INSTITUTE OF COMMERCE,BETTENDORF,IA
+1376,BIOMED PROJECT AT UNI/PRICE LAB SCHOOL,CEDAR FALLS,IA
+1276,BRIAR CLIFF COLLEGE,SIOUX CITY,IA
+1278,BUENA VISTA UNIVERSITY,STORM LAKE,IA
+1284,CENTRAL COLLEGE,PELLA,IA
+1290,CLARKE COLLEGE,DUBUQUE,IA
+1292,CLINTON COMMUNITY COLLEGE,CLINTON,IA
+1294,COE COLLEGE,CEDAR RAPIDS,IA
+1296,CORNELL COLLEGE,MOUNT VERNON,IA
+4071,DALLAS THEOLOGICAL SEMINARY,DALLAS,IA
+1335,DENISON JOB CORPS,DENISON,IA
+1272,DES MOINES AREA COMM COLL-ANKENY,ANKENY,IA
+1274,DES MOINES AREA COMM COLL-BOONE,BOONE,IA
+1277,DES MOINES AREA COMM COLL-CARROLL,CARROLL,IA
+1281,DES MOINES AREA COMM COLL-NEWTON,NEWTON,IA
+1279,DES MOINES AREA COMM COLL-URBAN,DES MOINES,IA
+1286,DIVINE WORD COLLEGE,EPWORTH,IA
+1301,DORDT COLLEGE,SIOUX CENTER,IA
+1302,DRAKE UNIVERSITY,DES MOINES,IA
+1306,ELLSWORTH COMMUNITY COLLEGE,IOWA FALLS,IA
+1311,EMMAUS BIBLE COLLEGE,DUBUQUE,IA
+1315,FAITH BAPTIST BIBLE COLLEGE,ANKENY,IA
+1313,FINLEY HOSPITAL SCHOOL OF NURSING,DUBUQUE,IA
+1314,GRACELAND COLLEGE,LAMONI,IA
+1316,GRAND VIEW COLLEGE,DES MOINES,IA
+1318,GRINNELL COLLEGE,GRINNELL,IA
+1303,HAMILTON COLLEGE-CEDAR RAPIDS,CEDAR RAPIDS,IA
+1305,HAMILTON COLLEGE-DES MOINES,DES MOINES,IA
+1321,HAMILTON COLLEGE-MASON CITY,MASON CITY,IA
+1309,HAWKEYE COMMUNITY COLLEGE,WATERLOO,IA
+1282,INDIAN HILLS COMM COLL-CENTERVILLE,CENTERVILLE,IA
+1269,INDIAN HILLS COMM COLL-OTTUMWA,OTTUMWA,IA
+1304,IOWA CENTRAL COMM COLL-EAGLE GROVE,EAGLE GROVE,IA
+1312,IOWA CENTRAL COMM COLL-FORT DODGE,FORT DODGE,IA
+1368,IOWA CENTRAL COMM COLL-WEBSTER CTY,WEBSTER CITY,IA
+1308,IOWA LAKES COMM COLL-EMMETSBURG,EMMETSBURG,IA
+1310,IOWA LAKES COMM COLL-ESTHERVILLE,ESTHERVILLE,IA
+1319,IOWA LUTHERAN SCHOOL OF NURSING,DES MOINES,IA
+1323,IOWA METHODIST SCHOOL OF NURSING,DES MOINES,IA
+1289,IOWA METHODIST SCHOOL/RADIOLOGIC TECH,DES MOINES,IA
+1320,IOWA STATE UNIVERSITY,AMES,IA
+1324,IOWA WESLEYAN COLLEGE,MOUNT PLEASANT,IA
+1288,IOWA WESTERN COMM COLL-CLARINDA,CLARINDA,IA
+1327,IOWA WESTERN COMM COLL-CO BLUFFS,COUNCIL BLUFFS,IA
+1325,J E M H SCHOOL OF NURSING,COUNCIL BLUFFS,IA
+1261,J E M H SCHOOL OF RADIOLOGIC TECHNOLOGY,COUNCIL BLUFFS,IA
+1275,KIRKWOOD COMMUNITY COLLEGE,CEDAR RAPIDS,IA
+1328,LORAS COLLEGE,DUBUQUE,IA
+1330,LUTHER COLLEGE,DECORAH,IA
+1317,MAHARISHI UNIVERSITY OF MANAGEMENT,FAIRFIELD,IA
+1367,MARIAN HEALTH CTR SCH/RADIOLOGIC TECH,SIOUX CITY,IA
+1332,MARSHALLTOWN COMMUNITY COLLEGE,MARSHALLTOWN,IA
+1334,MARYCREST INTERNATIONAL UNIVERSITY,DAVENPORT,IA
+1347,MERCY COLLEGE OF HEALTH SCIENCES,DES MOINES,IA
+1339,MERCY-ST LUKE'S HOSP SCH/RADIOLOGIC TECH,CEDAR RAPIDS,IA
+1337,MIDWESTERN COLLEGE,DENISON,IA
+1338,MORNINGSIDE COLLEGE,SIOUX CITY,IA
+1340,MOUNT MERCY COLLEGE,CEDAR RAPIDS,IA
+1342,MOUNT ST CLARE COLLEGE,CLINTON,IA
+1344,MUSCATINE COMMUNITY COLLEGE,MUSCATINE,IA
+1379,NATIONAL EDUC CENTER-NIT CAMPUS-IOWA,WEST DES MOINES,IA
+1336,NORTH IOWA AREA COMMUNITY COLLEGE,MASON CITY,IA
+1265,NORTHEAST IOWA COMM COLLEGE-CALMAR,CALMAR,IA
+1365,NORTHEAST IOWA COMM COLLEGE-PEOSTA,PEOSTA,IA
+1375,NORTHWEST IOWA COMMUNITY COLLEGE,SHELDON,IA
+1346,NORTHWESTERN COLLEGE,ORANGE CITY,IA
+1366,OPEN BIBLE COLLEGE,DES MOINES,IA
+1348,OTTUMWA HEIGHTS COLLEGE,OTTUMWA,IA
+1349,PALMER COLLEGE OF CHIROPRACTIC,DAVENPORT,IA
+1351,PALMER JUNIOR COLLEGE,DAVENPORT,IA
+1350,PARSONS COLLEGE,FAIRFIELD,IA
+1264,SCHOITZ MEDICAL CTR SCH/RADIOLOGIC TECH,WATERLOO,IA
+1307,SCOTT COMMUNITY COLLEGE,BETTENDORF,IA
+1354,SIMPSON COLLEGE,INDIANOLA,IA
+1353,SIOUX EMPIRE COLLEGE,HAWARDEN,IA
+1280,SOUTHEASTERN COMM COLL-BURLINGTON,WEST BURLINGTON,IA
+1326,SOUTHEASTERN COMM COLL-KEOKUK,KEOKUK,IA
+1298,SOUTHWESTERN COMMUNITY COLLEGE,CRESTON,IA
+1352,ST AMBROSE UNIVERSITY,DAVENPORT,IA
+1380,ST ANTHONY SCHOOL OF NURSING,CARROLL,IA
+1381,ST FRANCIS SCHOOL OF RADIOLOGIC TECH,WATERLOO,IA
+1270,ST JOSEPH MERCY HOSP SCH/RADIOLOGIC TECH,MASON CITY,IA
+1357,ST JOSEPH MERCY SCHOOL OF NURSING,SIOUX CITY,IA
+1377,ST LUKE'S MEDICAL CENTER SCH OF NURSING,SIOUX CITY,IA
+1355,ST LUKE'S SCHOOL OF NURSING,CEDAR RAPIDS,IA
+1358,UNIVERSITY OF DUBUQUE,DUBUQUE,IA
+1356,UNIVERSITY OF IOWA,IOWA CITY,IA
+1322,UNIVERSITY OF NORTHERN IOWA,CEDAR FALLS,IA
+1329,UNIVERSITY OF OSTEOPATHIC MEDICINE,DES MOINES,IA
+1360,UPPER IOWA UNIVERSITY,FAYETTE,IA
+1361,VENNARD COLLEGE,UNIVERSITY PARK,IA
+1362,WALDORF COLLEGE,FOREST CITY,IA
+1364,WARTBURG COLLEGE,WAVERLY,IA
+1369,WESTERN IOWA TECH COMM COLLEGE,SIOUX CITY,IA
+1370,WESTMAR UNIVERSITY,LEMARS,IA
+1372,WILLIAM PENN COLLEGE,OSKALOOSA,IA
+0914,BOISE STATE UNIVERSITY,BOISE,ID
+0916,"COLLEGE OF IDAHO, THE",CALDWELL,ID
+0915,COLLEGE OF SOUTHERN IDAHO,TWIN FALLS,ID
+0919,EAST IDAHO VOCATIONAL TECHNICAL SCHOOL,IDAHO FALLS,ID
+0918,IDAHO STATE UNIVERSITY,POCATELLO,ID
+0920,LEWIS-CLARK STATE COLLEGE,LEWISTON,ID
+0922,NORTH IDAHO COLLEGE,COEUR D'ALENE,ID
+0924,NORTHWEST NAZARENE COLLEGE,NAMPA,ID
+0926,RICKS COLLEGE,REXBURG,ID
+0928,UNIVERSITY OF IDAHO,MOSCOW,ID
+0941,AERO-SPACE INSTITUTE,CHICAGO,IL
+0944,AMERICAN CONSERVATORY OF MUSIC,CHICAGO,IL
+0999,AMERICAN ISLAMIC COLLEGE,CHICAGO,IL
+0946,AUGUSTANA COLLEGE,ROCK ISLAND,IL
+0949,AUGUSTANA HOSPITAL SCHOOL OF NURSING,CHICAGO,IL
+0950,AURORA UNIVERSITY,AURORA,IL
+0952,BARAT COLLEGE,LAKE FOREST,IL
+0954,BELLEVILLE AREA COLLEGE,BELLEVILLE,IL
+1132,BENEDICTINE UNIVERSITY,LISLE,IL
+1082,BLACK HAWK COLLEGE,MOLINE,IL
+1083,BLACK HAWK COLLEGE-EAST CAMPUS,KEWANEE,IL
+0958,BLACKBURN COLLEGE,CARLINVILLE,IL
+0956,BLESSING HOSPITAL SCHOOL OF NURSING,QUINCY,IL
+0965,BLOOMINGTON-NORMAL SCH OF RADIOGRAPHY,NORMAL,IL
+0960,BRADLEY UNIVERSITY,PEORIA,IL
+1170,CARL SANDBURG COLLEGE,GALESBURG,IL
+0997,CENTRAL ILLINOIS BAPTIST BIBLE INST,LINCOLN,IL
+0934,CHICAGO CITY-WIDE COLLEGE,CHICAGO,IL
+4711,CHICAGO COLLEGE OF COMMERCE,CHICAGO,IL
+0935,CHICAGO NATIONAL COLLEGE OF NAPRAPATHY,CHICAGO,IL
+0992,CHICAGO STATE UNIVERSITY,CHICAGO,IL
+1103,CHICAGO URBAN SKILLS INSTITUTE,CHICAGO,IL
+1003,COLLEGE OF DU PAGE,GLEN ELLYN,IL
+1005,COLLEGE OF LAKE COUNTY,GRAYSLAKE,IL
+1000,COLLEGE OF ST FRANCIS,JOLIET,IL
+1002,COLUMBIA COLLEGE,CHICAGO,IL
+1004,CONCORDIA UNIVERSITY,RIVER FOREST,IL
+1010,DANVILLE AREA COMMUNITY COLLEGE,DANVILLE,IL
+1012,DE PAUL UNIVERSITY,CHICAGO,IL
+1023,DEVRY INSTITUTE OF TECHNOLOGY,ADDISON,IL
+1014,DEVRY INSTITUTE OF TECHNOLOGY1,EVANSTON,IL
+0962,DEVRY INSTITUTE OF TECHNOLOGY3,EVANSTON,IL
+0147,DEVRY INSTITUTE OF TECHNOLOGY4,EVANSTON,IL
+0194,DEVRY INSTITUTE OF TECHNOLOGY5,EVANSTON,IL
+3309,DEVRY INSTITUTE OF TECHNOLOGY7,EVANSTON,IL
+2274,DEVRY INSTITUTE OF TECHNOLOGY8,EVANSTON,IL
+2558,DEVRY INSTITUTE OF TECHNOLOGY9,EVANSTON,IL
+1021,DEVRY INSTITUTE OF TECHNOLOGY-CHICAGO,CHICAGO,IL
+1126,DOMINICAN UNIVERSITY,RIVER FOREST,IL
+1105,DR WILLIAM M SCHOLL COLL OF PODIATRIC MD,CHICAGO,IL
+1016,EASTERN ILLINOIS UNIVERSITY,CHARLESTON,IL
+0984,EAST-WEST UNIVERSITY,CHICAGO,IL
+1018,ELGIN COMMUNITY COLLEGE,ELGIN,IL
+1020,ELMHURST COLLEGE,ELMHURST,IL
+1022,EUREKA COLLEGE,EUREKA,IL
+1013,EVANGELICAL SCHOOL OF NURSING,OAKLAWN,IL
+0998,FELLOWSHIP BAPTIST COLLEGE,EAST PEORIA,IL
+0995,FRONTIER COMMUNITY COLLEGE,FAIRFIELD,IL
+1030,GEORGE WILLIAMS COLLEGE,DOWNERS GROVE,IL
+1031,GOVERNORS STATE UNIVERSITY,UNIVERSITY PARK,IL
+1171,GRAHAM HOSPITAL SCHOOL OF NURSING,CANTON,IL
+1032,GREENVILLE COLLEGE,GREENVILLE,IL
+0975,HAROLD WASHINGTON COLLEGE,CHICAGO,IL
+0970,HARRY S TRUMAN COLLEGE,CHICAGO,IL
+0976,HEARTLAND COMMUNITY COLLEGE,BLOOMINGTON,IL
+1045,HEBREW THEOLOGICAL COLLEGE,SKOKIE,IL
+1029,HIGHLAND COMMUNITY COLLEGE,FREEPORT,IL
+1035,ILLINOIS CENTRAL COLLEGE,EAST PEORIA,IL
+1034,ILLINOIS COLLEGE,JACKSONVILLE,IL
+1036,ILLINOIS COLLEGE OF OPTOMETRY,CHICAGO,IL
+1040,ILLINOIS INSTITUTE OF TECHNOLOGY,CHICAGO,IL
+1039,ILLINOIS MASONIC MED CTR SCH OF NURS,CHICAGO,IL
+1042,ILLINOIS STATE UNIVERSITY,NORMAL,IL
+1111,ILLINOIS TECHNICAL COLLEGE,CHICAGO,IL
+1056,ILLINOIS VALLEY COMMUNITY COLLEGE,OGLESBY,IL
+1044,ILLINOIS WESLEYAN UNIVERSITY,BLOOMINGTON,IL
+1046,INTERNATIONAL ACADEMY OF MERCH & DSGN,CHICAGO,IL
+1017,JOHN A LOGAN COLLEGE,CARTERVILLE,IL
+1019,JOHN WOOD COMMUNITY COLLEGE,QUINCY,IL
+1048,JOLIET JUNIOR COLLEGE,JOLIET,IL
+1101,JUDSON COLLEGE,ELGIN,IL
+1053,KANKAKEE COMMUNITY COLLEGE,KANKAKEE,IL
+0964,KASKASKIA COLLEGE,CENTRALIA,IL
+1050,KENDALL COLLEGE,EVANSTON,IL
+0978,KENNEDY KING COLLEGE,CHICAGO,IL
+1051,KISHWAUKEE COLLEGE,MALTA,IL
+1052,KNOX COLLEGE,GALESBURG,IL
+1063,LA SALLE EXTENSION UNIVERSITY,WILMETTE,IL
+1054,LAKE FOREST COLLEGE,LAKE FOREST,IL
+1055,LAKE LAND COLLEGE,MATTOON,IL
+1059,LAKEVIEW MED CTR SCH OF RADIOLOGIC TECH,DANVILLE,IL
+1057,LAKEVIEW MEDICAL CENTER SCH OF NURSING,DANVILLE,IL
+1038,LEWIS AND CLARK COMMUNITY COLLEGE,GODFREY,IL
+1058,LEWIS UNIVERSITY,ROMEOVILLE,IL
+1060,LINCOLN CHRISTIAN COLLEGE,LINCOLN,IL
+1062,LINCOLN COLLEGE,LINCOLN,IL
+1061,LINCOLN LAND COMMUNITY COLLEGE,SPRINGFIELD,IL
+1067,LINCOLN TRAIL COLLEGE,ROBINSON,IL
+1064,LOYOLA UNIVERSITY OF CHICAGO,CHICAGO,IL
+1072,LUTHERAN GENERAL/DEACONESS HOSP SCH/NRSG,PARK RIDGE,IL
+1065,LUTHERAN HOSPITAL SCHOOL FOR NURSES,MOLINE,IL
+1066,LUTHERAN SCHOOL OF THEOLOGY AT CHICAGO,CHICAGO,IL
+1073,MACCORMAC JUNIOR COLLEGE,CHICAGO,IL
+1068,MACMURRAY COLLEGE,JACKSONVILLE,IL
+0972,MALCOLM X COLLEGE,CHICAGO,IL
+1070,MALLINCKRODT COLLEGE,WILMETTE,IL
+1075,MCHENRY COUNTY COLLEGE,CRYSTAL LAKE,IL
+1076,MCKENDREE COLLEGE,LEBANON,IL
+1081,MENNONITE COLLEGE OF NURSING,BLOOMINGTON,IL
+1078,"METHODIST MED CTR OF ILL, SCH OF NURSING",PEORIA,IL
+1086,MIDWEST COLLEGE OF ENGINEERING,LOMBARD,IL
+1080,MILLIKIN UNIVERSITY,DECATUR,IL
+1085,MOLINE PUBLIC HOSP SCHOOL OF NURSING,MOLINE,IL
+1084,MONMOUTH COLLEGE,MONMOUTH,IL
+1027,MONTAY COLLEGE,CHICAGO,IL
+1088,MOODY BIBLE INSTITUTE,CHICAGO,IL
+1087,MORAINE VALLEY COMMUNITY COLLEGE,PALOS HILLS,IL
+0987,MORRISON INSTITUTE OF TECHNOLOGY,MORRISON,IL
+1090,MORTON COLLEGE,CICERO,IL
+0945,MT VERNON CHRISTIAN COLLEGE,MT VERNON,IL
+1092,MUNDELEIN COLLEGE,CHICAGO,IL
+1095,NATIONAL COLLEGE OF CHIROPRACTIC,LOMBARD,IL
+1094,NATIONAL-LOUIS UNIVERSITY,EVANSTON,IL
+1131,NILES COLLEGE-LOYOLA UNIVERSITY,CHICAGO,IL
+1096,NORTH CENTRAL COLLEGE,NAPERVILLE,IL
+1098,NORTH PARK UNIVERSITY,CHICAGO,IL
+0993,NORTHEASTERN ILLINOIS UNIVERSITY,CHICAGO,IL
+1102,NORTHERN ILLINOIS UNIVERSITY,DE KALB,IL
+1153,NORTHWESTERN U PROGRAMS IN NURSING EDUC,CHICAGO,IL
+1097,NORTHWESTERN U TRAFFIC INSTITUTE,EVANSTON,IL
+1106,NORTHWESTERN UNIVERSITY,EVANSTON,IL
+1104,OAKTON COMMUNITY COLLEGE,DES PLAINES,IL
+0974,OLIVE-HARVEY COLLEGE,CHICAGO,IL
+1112,OLIVET NAZARENE COLLEGE,KANKAKEE,IL
+1113,OLNEY CENTRAL COLLEGE,OLNEY,IL
+1110,OREGON BIBLE COLLEGE,OREGON,IL
+1015,PARKLAND COLLEGE,CHAMPAIGN,IL
+1114,PARKS COLLEGE OF ST LOUIS UNIVERSITY,CAHOKIA,IL
+0959,PRAIRIE STATE COLLEGE,CHICAGO HEIGHTS,IL
+1118,PRINCIPIA COLLEGE,ELSAH,IL
+1120,QUINCY UNIVERSITY,QUINCY,IL
+1119,"RAVENSWOOD HOSP MED CTR, SCH OF NURSING",CHICAGO,IL
+1129,RAY COLLEGE OF DESIGN,CHICAGO,IL
+1091,REND LAKE COLLEGE,INA,IL
+0971,RICHARD J DALEY COLLEGE,CHICAGO,IL
+1008,RICHLAND COMMUNITY COLLEGE,DECATUR,IL
+1121,ROBERT MORRIS COLLEGE,CHICAGO,IL
+1128,ROCK ISLAND FRANCISCAN HOSPITAL,ROCK ISLAND,IL
+1123,ROCK VALLEY COLLEGE,ROCKFORD,IL
+1122,ROCKFORD COLLEGE,ROCKFORD,IL
+1125,ROCKFORD MEMORIAL SCHOOL OF NURSING,ROCKFORD,IL
+1124,ROOSEVELT UNIVERSITY,CHICAGO,IL
+1117,RUSH UNIVERSITY,CHICAGO,IL
+1172,S I U SCHOOL OF DENTAL MEDICINE,ALTON,IL
+1127,SAUK VALLEY COMMUNITY COLLEGE,DIXON,IL
+1136,SCHOOL OF THE ART INST OF CHICAGO,CHICAGO,IL
+1173,SHAWNEE COLLEGE,ULLIN,IL
+1142,SHIMER COLLEGE,WAUKEGAN,IL
+1149,SOUTH CHICAGO COMM HOSP SCH OF NURSING,CHICAGO,IL
+1168,SOUTH CHICAGO HOSP SCH RADIOLOGIC TECH,CHICAGO,IL
+1148,SOUTH SUBURBAN COLLEGE,SOUTH HOLLAND,IL
+1161,SOUTHEASTERN ILLINOIS COLLEGE,HARRISBURG,IL
+1144,SOUTHERN ILLINOIS UNIV-CARBONDALE,CARBONDALE,IL
+1147,SOUTHERN ILLINOIS UNIV-EDWARDSVILLE,EDWARDSVILLE,IL
+1130,SPERTUS COLLEGE OF JUDAICA,CHICAGO,IL
+0961,SPOON RIVER COLLEGE,CANTON,IL
+1146,SPRINGFIELD COLLEGE IN ILLINOIS,SPRINGFIELD,IL
+1166,ST ANNE'S HOSPITAL SCHOOL OF NURSING,CHICAGO,IL
+0968,ST AUGUSTINE COLLEGE,CHICAGO,IL
+1143,ST FRANCIS HOSPITAL SCHOOL OF NURSING,EVANSTON,IL
+1138,ST FRANCIS HOSPITAL SCHOOL OF NURSING,PEORIA,IL
+1089,ST FRANCIS MED CTR-SCH RADIOLOGIC TECH,PEORIA,IL
+1077,ST JOHNS HOSP SCHOOL-RESPIRATORY THERAPY,SPRINGFIELD,IL
+1167,ST JOHN'S HOSPITAL SCHOOL OF NURSING,SPRINGFIELD,IL
+1135,ST JOSEPH HOSPITAL SCHOOL OF NURSING,JOLIET,IL
+1133,ST MARY OF NAZARETH SCH OF NURSING,CHICAGO,IL
+1134,ST XAVIER COLLEGE,CHICAGO,IL
+1140,STATE COMMUNITY COLLEGE,EAST ST LOUIS,IL
+1074,SWEDISH-AMERICAN SCH OF RADIOLOGIC TECH,ROCKFORD,IL
+1165,TRINITY CHRISTIAN COLLEGE,PALOS HEIGHTS,IL
+1157,TRINITY EVANGELICAL DIVINITY SCHOOL,DEERFIELD,IL
+1150,TRINITY INTERNATIONAL UNIVERSITY,DEERFIELD,IL
+1151,TRITON COLLEGE,RIVER GROVE,IL
+1152,UNIVERSITY OF CHICAGO,CHICAGO,IL
+1155,UNIVERSITY OF ILLINOIS AT CHICAGO,CHICAGO,IL
+1109,UNIVERSITY OF ILLINOIS HLTH SCIENCES CTR,CHICAGO,IL
+1137,UNIVERSITY OF ILLINOIS-SPRINGFIELD,SPRINGFIELD,IL
+1154,UNIVERSITY OF ILLINOIS-URBANA CHAMPAIGN,URBANA,IL
+1156,VANDERCOOK COLLEGE OF MUSIC,CHICAGO,IL
+1162,WABASH VALLEY COLLEGE,MT CARMEL,IL
+1159,WAUBONSEE COMMUNITY COLLEGE,SUGAR GROVE,IL
+5032,WEST SUBURBAN COLLEGE OF NURSING,OAK PARK,IL
+1158,WESTERN ILLINOIS UNIVERSITY,MACOMB,IL
+1160,WHEATON COLLEGE,WHEATON,IL
+0980,WILBUR WRIGHT COLLEGE,CHICAGO,IL
+1163,WILLIAM RAINEY HARPER COLLEGE,PALATINE,IL
+1169,WORSHAM COLLEGE OF MORTUARY SCIENCE,SKOKIE,IL
+1175,ANCILLA COLLEGE,DONALDSON,IN
+1174,ANDERSON UNIVERSITY,ANDERSON,IN
+1176,BALL STATE UNIVERSITY,MUNCIE,IN
+1178,BETHEL COLLEGE,MISHAWAKA,IN
+1180,BUTLER UNIVERSITY,INDIANAPOLIS,IN
+1245,CALUMET COLLEGE,WHITING,IN
+1246,CONCORDIA THEOLOGICAL SEMINARY,FORT WAYNE,IN
+1181,DAVENPORT COLLEGE,GRANGER,IN
+1183,DEACONESS HOSPITAL SCHOOL OF NURSING,EVANSVILLE,IN
+1184,DEPAUW UNIVERSITY,GREENCASTLE,IN
+1186,EARLHAM COLLEGE,RICHMOND,IN
+1190,FAIRHAVEN COLLEGE,CHESTERTON,IN
+1194,FRANKLIN COLLEGE,FRANKLIN,IN
+1196,GOSHEN COLLEGE,GOSHEN,IN
+1198,GRACE COLLEGE,WINONA LAKE,IN
+1197,GRACE THEOLOGICAL SEMINARY,WINONA LAKE,IN
+1200,HANOVER COLLEGE,HANOVER,IN
+1203,HOLY CROSS JUNIOR COLLEGE,NOTRE DAME,IN
+1202,HUNTINGTON COLLEGE,HUNTINGTON,IN
+1199,HYLES-ANDERSON COLLEGE,CROWN POINT,IN
+1208,INDIANA INSTITUTE OF TECHNOLOGY,FORT WAYNE,IN
+1206,INDIANA STATE UNIVERSITY,TERRE HAUTE,IN
+1219,INDIANA UNIVERSITY AT KOKOMO,KOKOMO,IN
+1225,INDIANA UNIVERSITY AT SOUTH BEND,SOUTH BEND,IN
+1216,INDIANA UNIVERSITY EAST,RICHMOND,IN
+1218,INDIANA UNIVERSITY NORTHWEST,GARY,IN
+1229,INDIANA UNIVERSITY SOUTHEAST,NEW ALBANY,IN
+1210,INDIANA UNIVERSITY-BLOOMINGTON,BLOOMINGTON,IN
+1217,INDIANA UNIV-PURDUE UNIV AT FORT WAYNE,FORT WAYNE,IN
+1214,INDIANA UNIV-PURDUE UNIV AT INDIANAPOLIS,INDIANAPOLIS,IN
+1226,INDIANA WESLEYAN UNIVERSITY,MARION,IN
+1223,IVY TECH STATE COLLEGE-CENTRAL INDIANA,INDIANAPOLIS,IN
+1209,IVY TECH STATE COLLEGE-KOKOMO,KOKOMO,IN
+1211,IVY TECH STATE COLLEGE-LAFAYETTE,LAFAYETTE,IN
+1215,IVY TECH STATE COLLEGE-NORTHEAST,FORT WAYNE,IN
+1213,IVY TECH STATE COLLEGE-SOUTHWEST,EVANSVILLE,IN
+1236,LOCKYEAR COLLEGE,EVANSVILLE,IN
+1239,LUTHERAN COLL OF HEALTH PROFESSIONS,FORT WAYNE,IN
+1222,MANCHESTER COLLEGE,NORTH MANCHESTER,IN
+1224,MARIAN COLLEGE,INDIANAPOLIS,IN
+1227,MARTIN UNIVERSITY,INDIANAPOLIS,IN
+1205,MID-AMERICA COLLEGE OF FUNERAL SERVICE,JEFFERSONVILLE,IN
+1228,OAKLAND CITY COLLEGE,OAKLAND CITY,IN
+1237,PARKVIEW-METHODIST SCHOOL OF NURSING,FORT WAYNE,IN
+1230,PURDUE UNIVERSITY,WEST LAFAYETTE,IN
+1233,PURDUE UNIVERSITY-CALUMET,HAMMOND,IN
+1231,PURDUE UNIVERSITY-NORTH CENTRAL CAMPUS,WESTVILLE,IN
+1232,ROSE-HULMAN INSTITUTE OF TECH,TERRE HAUTE,IN
+1241,ST ELIZABETH SCHOOL OF NURSING,LAFAYETTE,IN
+1238,ST FRANCIS COLLEGE,FORT WAYNE,IN
+1240,ST JOSEPH'S COLLEGE,RENSSELAER,IN
+1242,ST MARY-OF-THE-WOODS COLLEGE,ST MARY-OF-THE-WOODS,IN
+1244,ST MARY'S COLLEGE,NOTRE DAME,IN
+1192,SUMMIT CHRISTIAN COLLEGE,FORT WAYNE,IN
+1248,TAYLOR UNIVERSITY,UPLAND,IN
+1250,TRI-STATE UNIVERSITY,ANGOLA,IN
+1188,UNIVERSITY OF EVANSVILLE,EVANSVILLE,IN
+1204,UNIVERSITY OF INDIANAPOLIS,INDIANAPOLIS,IN
+1252,UNIVERSITY OF NOTRE DAME,NOTRE DAME,IN
+1207,UNIVERSITY OF SOUTHERN INDIANA,EVANSVILLE,IN
+1256,VALPARAISO UNIVERSITY,VALPARAISO,IN
+1258,VINCENNES UNIVERSITY,VINCENNES,IN
+1260,WABASH COLLEGE,CRAWFORDSVILLE,IN
+1424,ALLEN COUNTY COMMUNITY COLLEGE,IOLA,KS
+1383,ASBURY HOSPITAL SCHOOL OF NURSING,SALINA,KS
+1386,BAKER UNIVERSITY,BALDWIN CITY,KS
+1411,BARCLAY COLLEGE,HAVILAND,KS
+1387,BARTON COUNTY COMMUNITY COLLEGE,GREAT BEND,KS
+1444,BENEDICTINE COLLEGE,ATCHISON,KS
+1388,BETHANY COLLEGE,LINDSBORG,KS
+1390,BETHEL COLLEGE,NORTH NEWTON,KS
+4757,"BROWN MACKIE COLLEGE, THE",SALINA,KS
+1406,BUTLER COUNTY COMMUNITY COLLEGE,EL DORADO,KS
+1394,CENTRAL COLLEGE,MCPHERSON,KS
+1401,CLOUD COUNTY COMMUNITY COLLEGE,CONCORDIA,KS
+1398,COFFEYVILLE COMMUNITY COLLEGE,COFFEYVILLE,KS
+1399,COLBY COMMUNITY COLLEGE,COLBY,KS
+1384,COWLEY COUNTY COMMUNITY COLLEGE,ARKANSAS CITY,KS
+1402,DODGE CITY COMMUNITY COLLEGE,DODGE CITY,KS
+1404,DONNELLY COLLEGE,KANSAS CITY,KS
+1430,EMPORIA STATE UNIVERSITY,EMPORIA,KS
+1408,FORT HAYS STATE UNIVERSITY,HAYS,KS
+1410,FORT SCOTT COMMUNITY COLLEGE,FORT SCOTT,KS
+1412,FRIENDS UNIVERSITY,WICHITA,KS
+1414,GARDEN CITY COMMUNITY COLLEGE,GARDEN CITY,KS
+1415,HASKELL INDIAN JUNIOR COLLEGE,LAWRENCE,KS
+1416,HESSTON COLLEGE,HESSTON,KS
+1418,HIGHLAND COMMUNITY COLLEGE,HIGHLAND,KS
+1420,HUTCHINSON COMMUNITY COLLEGE,HUTCHINSON,KS
+1422,INDEPENDENCE COMMUNITY COLLEGE,INDEPENDENCE,KS
+1425,JOHNSON COUNTY COMMUNITY COLLEGE,OVERLAND PARK,KS
+1478,KANSAS CITY COLLEGE & BIBLE SCHOOL,OVERLAND PARK,KS
+1426,KANSAS CITY KANSAS COMMUNITY COLLEGE,KANSAS CITY,KS
+1428,KANSAS STATE UNIVERSITY,MANHATTAN,KS
+1453,KANSAS TECHNICAL INSTITUTE,SALINA,KS
+1434,KANSAS WESLEYAN UNIVERSITY,SALINA,KS
+1448,LABETTE COMMUNITY COLLEGE,PARSONS,KS
+1436,MANHATTAN CHRISTIAN COLLEGE,MANHATTAN,KS
+1438,MARYMOUNT COLLEGE,SALINA,KS
+1440,MCPHERSON COLLEGE,MCPHERSON,KS
+1445,MID-AMERICA NAZARENE COLLEGE,OLATHE,KS
+1396,NEOSHO COUNTY COMMUNITY COLLEGE,CHANUTE,KS
+1451,NORTH CENTRAL KANSAS AREA VOC TECH,BELOIT,KS
+1446,OTTAWA UNIVERSITY,OTTAWA,KS
+1449,PITTSBURG STATE UNIVERSITY,PITTSBURG,KS
+1450,PRATT COMMUNITY COLLEGE & AREA VOC SCH,PRATT,KS
+1455,SAINT MARY'S COLLEGE,SAINT MARYS,KS
+1439,SEWARD COUNTY COMMUNITY COLLEGE,LIBERAL,KS
+1464,SOUTHWESTERN COLLEGE,WINFIELD,KS
+1397,ST FRANCIS SCHOOL OF RADIOLOGY,WICHITA,KS
+1456,ST JOHN'S COLLEGE,WINFIELD,KS
+1458,ST MARY COLLEGE,LEAVENWORTH,KS
+1460,ST MARY OF THE PLAINS COLLEGE,DODGE CITY,KS
+1466,STERLING COLLEGE,STERLING,KS
+1467,STORMONT-VAIL SCHOOL OF NURSING,TOPEKA,KS
+1468,TABOR COLLEGE,HILLSBORO,KS
+1470,UNIVERSITY OF KANSAS,LAWRENCE,KS
+1474,WASHBURN UNIVERSITY,TOPEKA,KS
+1462,"WAY COLLEGE OF EMPORIA, THE",EMPORIA,KS
+1441,WESLEY MEDICAL CTR-SCH RADIOLOGIC TECH,WICHITA,KS
+1472,WICHITA STATE UNIVERSITY,WICHITA,KS
+1502,ALICE LLOYD COLLEGE,PIPPA PASSES,KY
+1486,ASBURY COLLEGE,WILMORE,KY
+1564,ASHLAND COMMUNITY COLLEGE,ASHLAND,KY
+1490,BELLARMINE COLLEGE,LOUISVILLE,KY
+1492,BEREA COLLEGE,BEREA,KY
+1498,BRESCIA COLLEGE,OWENSBORO,KY
+1500,CAMPBELLSVILLE COLLEGE,CAMPBELLSVILLE,KY
+1506,CENTRE COLLEGE,DANVILLE,KY
+1510,CUMBERLAND COLLEGE,WILLIAMSBURG,KY
+1512,EASTERN KENTUCKY UNIVERSITY,RICHMOND,KY
+1513,ELIZABETHTOWN COMMUNITY COLLEGE,ELIZABETHTOWN,KY
+1514,GEORGETOWN COLLEGE,GEORGETOWN,KY
+1572,HAZARD COMMUNITY COLLEGE,HAZARD,KY
+1557,HENDERSON COMMUNITY COLLEGE,HENDERSON,KY
+1569,HOPKINSVILLE COMMUNITY COLLEGE,HOPKINSVILLE,KY
+1571,JEFFERSON COMM COLLEGE-DOWNTOWN CAMPUS,LOUISVILLE,KY
+1495,JEFFERSON COMM COLLEGE-SOUTHWEST CAMPUS,LOUISVILLE,KY
+1523,KENTUCKY CHRISTIAN COLLEGE,GRAYSON,KY
+1516,KENTUCKY STATE UNIVERSITY,FRANKFORT,KY
+1518,KENTUCKY WESLEYAN COLLEGE,OWENSBORO,KY
+1520,LEES COLLEGE,JACKSON,KY
+1544,LEXINGTON BAPTIST COLLEGE,LEXINGTON,KY
+1531,LEXINGTON COMMUNITY COLLEGE,LEXINGTON,KY
+1525,LEXINGTON THEOLOGICAL SEMINARY,LEXINGTON,KY
+1522,LINDSEY WILSON COLLEGE,COLUMBIA,KY
+1533,MADISONVILLE COMMUNITY COLLEGE,MADISONVILLE,KY
+1527,MAYSVILLE COMMUNITY COLLEGE,MAYSVILLE,KY
+1524,MID-CONTINENT BAPTIST BIBLE COLLEGE,MAYFIELD,KY
+1528,MIDWAY COLLEGE,MIDWAY,KY
+1530,MOREHEAD STATE UNIVERSITY,MOREHEAD,KY
+1532,MURRAY STATE UNIVERSITY,MURRAY,KY
+1567,NATIONAL EDUC CENTER-KENTUCKY COLL TECH,LOUISVILLE,KY
+1566,NORTHERN KENTUCKY UNIVERSITY,HIGHLAND HEIGHTS,KY
+1561,OWENSBORO COMMUNITY COLLEGE,OWENSBORO,KY
+1538,PADUCAH COMMUNITY COLLEGE,PADUCAH,KY
+1540,PIKEVILLE COLLEGE,PIKEVILLE,KY
+1541,PRESTONSBURG COMMUNITY COLLEGE,PRESTONSBURG,KY
+1570,SOMERSET COMMUNITY COLLEGE,SOMERSET,KY
+1555,SOUTHEAST COMMUNITY COLLEGE,CUMBERLAND,KY
+1507,SOUTHERN BAPTIST THEOLOGICAL SEMINARY,LOUISVILLE,KY
+1505,SOUTHERN OHIO COLL-NORTHERN KENTUCKY CMP,FLORENCE,KY
+1534,SPALDING UNIVERSITY,LOUISVILLE,KY
+1542,ST CATHERINE COLLEGE,SAINT CATHARINE,KY
+1548,SUE BENNETT COLLEGE,LONDON,KY
+5535,SULLIVAN COLLEGE,LOUISVILLE,KY
+1560,THOMAS MORE COLLEGE,CRESTVIEW HILLS,KY
+1550,TRANSYLVANIA UNIVERSITY,LEXINGTON,KY
+1552,UNION COLLEGE,BARBOURVILLE,KY
+1554,UNIVERSITY OF KENTUCKY,LEXINGTON,KY
+1568,UNIVERSITY OF KENTUCKY CTR AT FORT KNOX,FT KNOX,KY
+1556,UNIVERSITY OF LOUISVILLE,LOUISVILLE,KY
+1497,WATTERSON COLLEGE,LOUISVILLE,KY
+1562,WESTERN KENTUCKY UNIVERSITY,BOWLING GREEN,KY
+1619,BATON ROUGE GEN HOSP SCHOOL OF NURSING,BATON ROUGE,LA
+1625,BATON ROUGE GEN HOSP-SCH OF RAD TECH,BATON ROUGE,LA
+1599,BATON ROUGE VOCATIONAL-TECHNICAL INST,BATON ROUGE,LA
+1573,BOSSIER PARISH COMMUNITY COLLEGE,BOSSIER CITY,LA
+1576,CENTENARY COLLEGE OF LOUISIANA,SHREVEPORT,LA
+1579,CHARITY HOSPITAL SCHOOL OF NURSING,NEW ORLEANS,LA
+1617,CHARITY HOSPITAL SURG TECH PROG,NEW ORLEANS,LA
+1577,DELGADO COMMUNITY COLLEGE-CITY PARK CAMP,NEW ORLEANS,LA
+1629,DELGADO COMMUNITY COLLEGE-WEST BANK CAMP,NEW ORLEANS,LA
+1578,DILLARD UNIVERSITY,NEW ORLEANS,LA
+1582,GRAMBLING STATE UNIVERSITY,GRAMBLING,LA
+1626,JIMMY SWAGGART BIBLE COLLEGE,BATON ROUGE,LA
+1586,LOUISIANA COLLEGE,PINEVILLE,LA
+1590,LOUISIANA STATE UNIV & A & M COLL,BATON ROUGE,LA
+1589,LOUISIANA STATE UNIV AT ALEXANDRIA,ALEXANDRIA,LA
+1601,LOUISIANA STATE UNIV SCH OF DENTISTRY,NEW ORLEANS,LA
+1620,LOUISIANA STATE UNIV SCH OF MEDICINE,SHREVEPORT,LA
+1587,LOUISIANA STATE UNIVERSITY AT EUNICE,EUNICE,LA
+1593,LOUISIANA STATE UNIVERSITY-SHREVEPORT,SHREVEPORT,LA
+1624,LOUISIANA STATE U-SCH OF ALLIED HEALTH,NEW ORLEANS,LA
+1632,LOUISIANA STATE U-SCH OF ALLIED HEALTH,SHREVEPORT,LA
+1588,LOUISIANA TECH UNIVERSITY,RUSTON,LA
+1592,LOYOLA UNIVERSITY,NEW ORLEANS,LA
+1594,MCNEESE STATE UNIVERSITY,LAKE CHARLES,LA
+1596,NEW ORLEANS BAPTIST THEOLOGICAL SEMINARY,NEW ORLEANS,LA
+1616,NEWCOMB COLLEGE OF TULANE UNIVERSITY,NEW ORLEANS,LA
+1580,NICHOLLS STATE UNIVERSITY,THIBODAUX,LA
+1598,NORTHEAST LOUISIANA UNIVERSITY,MONROE,LA
+1575,NORTHWESTERN STATE UNIV OF LA-LEESVILLE,LEESVILLE,LA
+1600,NORTHWESTERN STATE UNIV OF LOUISIANA,NATCHITOCHES,LA
+1584,OCHSNER SCHOOL OF ALLIED HEALTH SCIENCE,NEW ORLEANS,LA
+1574,OUR LADY OF HOLY CROSS COLLEGE,NEW ORLEANS,LA
+1621,OUR LADY OF THE LAKE SCHOOL OF NURSING,BATON ROUGE,LA
+1628,RAPIDES GEN HOSP SCHOOL/RADIOLOGIC TECH,ALEXANDRIA,LA
+1623,SHREVEPORT JOB CORP CENTER,SHREVEPORT,LA
+1608,SOUTHEASTERN LOUISIANA UNIVERSITY,HAMMOND,LA
+1610,SOUTHERN UNIVERSITY,BATON ROUGE,LA
+1611,SOUTHERN UNIVERSITY AT NEW ORLEANS,NEW ORLEANS,LA
+1613,SOUTHERN UNIVERSITY-SHREVEPORT,SHREVEPORT,LA
+1605,ST BERNARD PARISH COMMUNITY COLLEGE,CHALMETTE,LA
+1604,ST JOSEPH SEMINARY COLLEGE,ST BENEDICT,LA
+1615,TOURO INFIRMARY SCHOOL OF NURSING,NEW ORLEANS,LA
+1614,TULANE UNIVERSITY OF LOUISIANA,NEW ORLEANS,LA
+1612,UNIV OF SOUTHWESTERN LOUISIANA,LAFAYETTE,LA
+1591,UNIVERSITY OF NEW ORLEANS,NEW ORLEANS,LA
+1607,WILLIAM CAREY COLLEGE SCHOOL OF NURSING,NEW ORLEANS,LA
+1618,XAVIER UNIVERSITY,NEW ORLEANS,LA
+1772,AMERICAN INTERNATIONAL COLLEGE,SPRINGFIELD,MA
+1774,AMHERST COLLEGE,AMHERST,MA
+1769,ANNA MARIA COLLEGE FOR MEN AND WOMEN,PAXTON,MA
+1782,ASSUMPTION COLLEGE,WORCESTER,MA
+1784,ATLANTIC UNION COLLEGE,SOUTH LANCASTER,MA
+1780,BABSON COLLEGE,WELLESLEY,MA
+2680,BAPTIST BIBLE COLLEGE EAST,BOSTON,MA
+1785,BAY PATH JUNIOR COLLEGE,LONGMEADOW,MA
+1791,BAY STATE JUNIOR COLLEGE,BOSTON,MA
+1849,BECKER JUNIOR COLLEGE-LEICESTER,LEICESTER,MA
+1787,BECKER JUNIOR COLLEGE-WORCESTER,WORCESTER,MA
+1783,BENTLEY COLLEGE,WALTHAM,MA
+1789,BERKLEE COLLEGE OF MUSIC,BOSTON,MA
+1786,BERKSHIRE CHRISTIAN COLLEGE,LENOX,MA
+1792,BERKSHIRE COMMUNITY COLLEGE,PITTSFIELD,MA
+1781,BOSTON ARCHITECTURAL CENTER,BOSTON,MA
+1788,BOSTON COLLEGE,CHESTNUT HILL,MA
+1790,BOSTON CONSERVATORY OF MUSIC,BOSTON,MA
+1794,BOSTON UNIVERSITY,BOSTON,MA
+1800,BRADFORD COLLEGE,BRADFORD,MA
+1802,BRANDEIS UNIVERSITY,WALTHAM,MA
+1900,BRIDGEWATER STATE COLLEGE,BRIDGEWATER,MA
+1803,BRISTOL COMMUNITY COLLEGE,FALL RIVER,MA
+1799,BUNKER HILL COMMUNITY COLLEGE,BOSTON,MA
+1804,BURDETT SCHOOL,BOSTON,MA
+1805,CAMBRIDGE COLLEGE,CAMBRIDGE,MA
+1807,CAPE COD COMMUNITY COLLEGE,WEST BARNSTABLE,MA
+1940,CENTRAL NEW ENGLAND COLLEGE,WORCESTER,MA
+1809,CHAMBERLAYNE JUNIOR COLLEGE,BOSTON,MA
+1808,CLARK UNIVERSITY,WORCESTER,MA
+1810,COLLEGE OF THE HOLY CROSS,WORCESTER,MA
+1814,CURRY COLLEGE,MILTON,MA
+1816,DEAN COLLEGE,FRANKLIN,MA
+1818,EASTERN NAZARENE COLLEGE,WOLLASTON,MA
+1812,ELMS COLLEGE,CHICOPEE,MA
+1820,EMERSON COLLEGE,BOSTON,MA
+1822,EMMANUEL COLLEGE,BOSTON,MA
+1824,ENDICOTT COLLEGE,BEVERLY,MA
+1825,ESSEX AGRIC & TECH INSTITUTE,HATHORNE,MA
+1828,FISHER COLLEGE,BOSTON,MA
+1902,FITCHBURG STATE COLLEGE,FITCHBURG,MA
+1904,FRAMINGHAM STATE COLLEGE,FRAMINGHAM,MA
+1834,FRANKLIN INSTITUTE OF BOSTON,BOSTON,MA
+1838,GORDON COLLEGE,WENHAM,MA
+1839,GREENFIELD COMMUNITY COLLEGE,GREENFIELD,MA
+1842,HAMPSHIRE COLLEGE,AMHERST,MA
+1845,HARVARD UNIVERSITY,CAMBRIDGE,MA
+1840,HARVARD-RADCLIFFE,CAMBRIDGE,MA
+1841,HEBREW COLLEGE,BROOKLINE,MA
+1843,HELLENIC COLLEGE AND HOLY CROSS,BROOKLINE,MA
+1844,HOLYOKE COMMUNITY COLLEGE,HOLYOKE,MA
+1806,KATHARINE GIBBS SCHOOL,BOSTON,MA
+1848,LASELL COLLEGE,NEWTON,MA
+1850,LESLEY COLLEGE,CAMBRIDGE,MA
+1861,MASSACHUSETTS BAY COMMUNITY COLLEGE,WELLESLEY HILLS,MA
+1860,MASSACHUSETTS COLL PHARMACY/ALLIED HLTH,BOSTON,MA
+1846,MASSACHUSETTS COLLEGE OF ART,BOSTON,MA
+1858,MASSACHUSETTS INSTITUTE OF TECHNOLOGY,CAMBRIDGE,MA
+1856,MASSACHUSETTS MARITIME ACADEMY,BUZZARDS BAY,MA
+1862,MASSASOIT COMMUNITY COLLEGE,BROCKTON,MA
+1864,MERRIMACK COLLEGE,NORTH ANDOVER,MA
+1865,MIDDLESEX COMMUNITY COLLEGE,BEDFORD,MA
+1847,MONTSERRAT SCHOOL OF VISUAL ART,BEVERLY,MA
+1866,MOUNT HOLYOKE COLLEGE,SOUTH HADLEY,MA
+1868,MOUNT IDA COLLEGE,NEWTON,MA
+1867,MOUNT WACHUSETT COMMUNITY COLLEGE,GARDNER,MA
+1872,NEW ENGLAND CONSERVATORY OF MUSIC,BOSTON,MA
+1873,NEW ENGLAND INSTITUTE,BOSTON,MA
+1871,NEWBURY COLLEGE,BROOKLINE,MA
+1878,NICHOLS COLLEGE,DUDLEY,MA
+1908,NORTH ADAMS STATE COLLEGE,NORTH ADAMS,MA
+1875,NORTH SHORE COMMUNITY COLLEGE,DANVERS,MA
+1880,NORTHEASTERN UNIVERSITY,BOSTON,MA
+1877,NORTHERN ESSEX COMMUNITY COLLEGE,HAVERHILL,MA
+1882,PINE MANOR COLLEGE,CHESTNUT HILL,MA
+1888,QUINCY COLLEGE,QUINCY,MA
+1885,QUINSIGAMOND COMMUNITY COLLEGE,WORCESTER,MA
+1886,REGIS COLLEGE,WESTON,MA
+1887,ROXBURY COMMUNITY COLLEGE,ROXBURY,MA
+1910,SALEM STATE COLLEGE,SALEM,MA
+1895,SCHOOL OF THE MUSEUM OF FINE ARTS,BOSTON,MA
+1892,SIMMONS COLLEGE,BOSTON,MA
+1893,SIMON'S ROCK OF BARD COLLEGE,GREAT BARRINGTON,MA
+1894,SMITH COLLEGE,NORTHAMPTON,MA
+1896,SPRINGFIELD COLLEGE,SPRINGFIELD,MA
+1898,SPRINGFIELD TECHNICAL COMMUNITY COLLEGE,SPRINGFIELD,MA
+1890,ST HYACINTH COLLEGE & SEMINARY,GRANBY,MA
+1889,ST VINCENT HOSPITAL SCHOOL OF NURSING,WORCESTER,MA
+1918,STONEHILL COLLEGE,NORTH EASTON,MA
+1920,SUFFOLK UNIVERSITY,BOSTON,MA
+1922,TUFTS UNIVERSITY,MEDFORD,MA
+1924,UNIVERSITY OF MASSACHUSETTS-AMHERST,AMHERST,MA
+1925,UNIVERSITY OF MASSACHUSETTS-BOSTON,BOSTON,MA
+1906,UNIVERSITY OF MASSACHUSETTS-DARTMOUTH,NORTH DARTMOUTH,MA
+1854,UNIVERSITY OF MASSACHUSETTS-LOWELL,LOWELL,MA
+1926,WELLESLEY COLLEGE,WELLESLEY,MA
+1928,WENTWORTH INSTITUTE OF TECHNOLOGY,BOSTON,MA
+1930,WESTERN NEW ENGLAND COLLEGE,SPRINGFIELD,MA
+1912,WESTFIELD STATE COLLEGE,WESTFIELD,MA
+1932,WHEATON COLLEGE,NORTON,MA
+1934,WHEELOCK COLLEGE,BOSTON,MA
+1936,WILLIAMS COLLEGE,WILLIAMSTOWN,MA
+1942,WORCESTER POLYTECHNIC INSTITUTE,WORCESTER,MA
+1914,WORCESTER STATE COLLEGE,WORCESTER,MA
+1679,ALLEGANY COMMUNITY COLLEGE,CUMBERLAND,MD
+1678,ANNE ARUNDEL COMMUNITY COLLEGE,ARNOLD,MD
+1693,ANTIETAM BIBLE COLLEGE,HAGERSTOWN,MD
+1682,BALTIMORE CITY COMMUNITY COLLEGE,BALTIMORE,MD
+1712,BOWIE STATE COLLEGE,BOWIE,MD
+1683,CAPITOL INSTITUTE OF TECHNOLOGY,LAUREL,MD
+1680,CARROLL COMMUNITY COLLEGE,WESTMINSTER,MD
+1684,CATONSVILLE COMMUNITY COLLEGE,CATONSVILLE,MD
+1681,CECIL COMMUNITY COLLEGE,NORTH EAST,MD
+1685,CHARLES COUNTY COMMUNITY COLLEGE,LA PLATA,MD
+1691,CHESAPEAKE COLLEGE,WYE MILLS,MD
+1727,COLLEGE OF NOTRE DAME OF MARYLAND,BALTIMORE,MD
+1687,COLUMBIA UNION COLLEGE,TAKOMA PARK,MD
+1688,COPPIN STATE COLLEGE,BALTIMORE,MD
+1686,DUNDALK COMMUNITY COLLEGE,BALTIMORE,MD
+1706,EASTERN CHRISTIAN COLLEGE,BEL AIR,MD
+1692,ESSEX COMMUNITY COLLEGE,BALTIMORE,MD
+1694,FREDERICK COMMUNITY COLLEGE,FREDERICK,MD
+1714,FROSTBURG STATE COLLEGE,FROSTBURG,MD
+1695,GARRETT COMMUNITY COLLEGE,MCHENRY,MD
+1696,GOUCHER COLLEGE,BALTIMORE,MD
+1698,HAGERSTOWN JUNIOR COLLEGE,HAGERSTOWN,MD
+1700,HARFORD COMMUNITY COLLEGE,BEL AIR,MD
+1702,HOOD COLLEGE,FREDERICK,MD
+1703,HOWARD COMMUNITY COLLEGE,COLUMBIA,MD
+1704,JOHNS HOPKINS UNIVERSITY,BALTIMORE,MD
+1708,LOYOLA COLLEGE,BALTIMORE,MD
+5089,MARYLAND GENERAL HOSP SCHOOL OF NURSING,BALTIMORE,MD
+1710,MARYLAND INSTITUTE COLLEGE OF ART,BALTIMORE,MD
+1725,MONTGOMERY COLLEGE-GERMANTOWN CAMPUS,GERMANTOWN,MD
+1723,MONTGOMERY COLLEGE-ROCKVILLE CAMPUS,ROCKVILLE,MD
+1720,MONTGOMERY COLLEGE-TAKOMA PARK CAMPUS,TAKOMA PARK,MD
+1722,MORGAN STATE UNIVERSITY,BALTIMORE,MD
+1726,MOUNT SAINT MARYS COLLEGE,EMMITSBURG,MD
+1730,PEABODY INST OF JOHNS HOPKINS UNIVERSITY,BALTIMORE,MD
+1731,PRINCE GEORGES COMMUNITY COLLEGE,LARGO,MD
+1716,SALISBURY STATE COLLEGE,SALISBURY,MD
+1732,ST JOHN'S COLLEGE,ANNAPOLIS,MD
+1735,ST JOSEPH HOSPITAL SCHOOL OF NURSING,BALTIMORE,MD
+1736,ST MARYS COLLEGE OF MARYLAND,ST MARYS CITY,MD
+1718,TOWSON STATE UNIVERSITY,TOWSON,MD
+1742,U S NAVAL ACADEMY,ANNAPOLIS,MD
+1749,UNION MEMORIAL HOSPITAL-SCH OF NURSING,BALTIMORE,MD
+1746,UNIV OF MARYLAND-COLLEGE PARK,COLLEGE PARK,MD
+1752,UNIV OF MARYLAND-EASTERN SHORE,PRINCESS ANNE,MD
+1750,UNIVERSITY OF BALTIMORE,BALTIMORE,MD
+1757,UNIVERSITY OF MARYLAND UNIV COLLEGE,COLLEGE PARK,MD
+1751,UNIVERSITY OF MARYLAND-BALTIMORE COUNTY,BALTIMORE,MD
+1753,VILLA JULIE COLLEGE,STEVENSON,MD
+1755,WASHINGTON BIBLE COLLEGE,LANHAM,MD
+1754,WASHINGTON COLLEGE,CHESTERTOWN,MD
+1756,WESTERN MARYLAND COLLEGE,WESTMINSTER,MD
+1760,WOR-WIC TECH COMMUNITY COLLEGE,SALISBURY,MD
+1667,BANGOR COMM COLL/UNIV OF MAINE AT ORONO,BANGOR,ME
+1633,BANGOR THEOLOGICAL SEMINARY,BANGOR,ME
+1634,BATES COLLEGE,LEWISTON,ME
+1636,BOWDOIN COLLEGE,BRUNSWICK,ME
+1635,CASCO BAY COLLEGE,PORTLAND,ME
+1639,CENTRAL MAINE TECHNICAL COLLEGE,AUBURN,ME
+1638,COLBY COLLEGE,WATERVILLE,ME
+1637,COLLEGE OF THE ATLANTIC,BAR HARBOR,ME
+1646,HUSSON COLLEGE,BANGOR,ME
+1648,MAINE MARITIME ACADEMY,CASTINE,ME
+1650,NORTHERN MAINE VOCATIONAL TECH INST,PRESQUE,ME
+1652,PORTLAND SCHOOL OF ART,PORTLAND,ME
+1651,SOUTHERN MAINE VOCATIONAL TECH INST,SOUTH PORTLAND,ME
+1659,ST JOSEPH'S COLLEGE,NORTH WINDHAM,ME
+1663,THOMAS COLLEGE,WATERVILLE,ME
+1665,UNITY COLLEGE,UNITY,ME
+1641,UNIVERSITY OF MAINE AT AUGUSTA,AUGUSTA,ME
+1640,UNIVERSITY OF MAINE AT FARMINGTON,FARMINGTON,ME
+1642,UNIVERSITY OF MAINE AT FORT KENT,FORT KENT,ME
+1666,UNIVERSITY OF MAINE AT MACHIAS,MACHIAS,ME
+1664,UNIVERSITY OF MAINE AT ORONO,ORONO,ME
+1630,UNIVERSITY OF MAINE AT PRESQUE ISLE,PRESQUE ISLE,ME
+1660,UNIVERSITY OF NEW ENGLAND,BIDDEFORD,ME
+1644,UNIVERSITY OF SOUTHERN MAINE,GORHAM,ME
+1668,WESTBROOK COLLEGE,PORTLAND,ME
+1954,ADRIAN COLLEGE,ADRIAN,MI
+1956,ALBION COLLEGE,ALBION,MI
+1958,ALMA COLLEGE,ALMA,MI
+1960,ALPENA COMMUNITY COLLEGE,ALPENA,MI
+1992,ANDREWS UNIVERSITY,BERRIEN SPRINGS,MI
+1962,AQUINAS COLLEGE,GRAND RAPIDS,MI
+5011,BAKER COLLEGE,FLINT,MI
+2071,BAY DE NOC COMMUNITY COLLEGE,ESCANABA,MI
+2079,BRONSON HOSPITAL SCH RADIOLOGIC TECH,KALAMAZOO,MI
+5013,BRONSON HOSPITAL SCHOOL OF NURSING,KALAMAZOO,MI
+1968,CALVIN COLLEGE,GRAND RAPIDS,MI
+1989,CENTER FOR CREATIVE STUDIES-COLL OF ART,DETROIT,MI
+1972,CENTRAL MICHIGAN UNIVERSITY,MT PLEASANT,MI
+1996,CHARLES STEWART MOTT COMMUNITY COLLEGE,FLINT,MI
+1974,CLEARY COLLEGE,YPSILANTI,MI
+1977,CONCORDIA COLLEGE,ANN ARBOR,MI
+2002,CORNERSTONE COLLEGE,GRAND RAPIDS,MI
+1981,DAVENPORT COLL OF BUSINESS-GRAND RAPIDS,GRAND RAPIDS,MI
+4773,DAVENPORT COLL OF BUSINESS-KALAMAZOO,KALAMAZOO,MI
+1984,DAVENPORT COLL OF BUSINESS-LANSING,LANSING,MI
+1966,DELTA COLLEGE,UNIVERSITY CENTER,MI
+1987,DETROIT COLLEGE OF BUSINESS,DEARBORN,MI
+1944,DETROIT ENGINEERING INSTITUTE,DETROIT,MI
+1990,EASTERN MICHIGAN UNIVERSITY,YPSILANTI,MI
+1994,FERRIS STATE UNIVERSITY,BIG RAPIDS,MI
+1999,GLEN OAKS COMMUNITY COLLEGE,CENTREVILLE,MI
+2000,GOGEBIC COMMUNITY COLLEGE,IRONWOOD,MI
+2001,GRACE BIBLE COLLEGE,GRAND RAPIDS,MI
+2004,GRAND RAPIDS COMMUNITY COLLEGE,GRAND RAPIDS,MI
+2005,GRAND VALLEY STATE UNIVERSITY,ALLENDALE,MI
+2009,GREAT LAKES BIBLE COLLEGE,LANSING,MI
+2015,GREAT LAKES JUNIOR COLLEGE,SAGINAW,MI
+1978,GREAT LAKES MARITIME ACADEMY,TRAVERSE CITY,MI
+2006,HENRY FORD COMMUNITY COLLEGE,DEARBORN,MI
+2008,HIGHLAND PARK COMMUNITY COLLEGE,HIGHLAND PARK,MI
+2010,HILLSDALE COLLEGE,HILLSDALE,MI
+2012,HOPE COLLEGE,HOLLAND,MI
+2013,HURLEY MEDICAL CENTER SCHOOL OF NURSING,FLINT,MI
+1997,JACKSON BUSINESS INSTITUTE,JACKSON,MI
+2014,JACKSON COMMUNITY COLLEGE,JACKSON,MI
+2011,JORDAN COLLEGE,CEDAR SPRINGS,MI
+2018,KALAMAZOO COLLEGE,KALAMAZOO,MI
+2016,KALAMAZOO VALLEY COMMUNITY COLLEGE,KALAMAZOO,MI
+1964,KELLOGG COMMUNITY COLLEGE,BATTLE CREEK,MI
+1983,KENDALL SCHOOL OF DESIGN,GRAND RAPIDS,MI
+1998,KETTERING UNIVERSITY,FLINT,MI
+2017,KIRTLAND COMMUNITY COLLEGE,ROSCOMMON,MI
+1976,LAKE MICHIGAN COLLEGE,BENTON HARBOR,MI
+2031,LAKE SUPERIOR STATE COLLEGE,SAULT STE MARIE,MI
+2019,LANSING COMMUNITY COLLEGE,LANSING,MI
+2020,LAWRENCE INSTITUTE OF TECHNOLOGY,SOUTHFIELD,MI
+2003,LEWIS COLLEGE OF BUSINESS,DETROIT,MI
+2054,MACOMB COMMUNITY COLLEGE,WARREN,MI
+2022,MADONNA COLLEGE,LIVONIA,MI
+1955,MARYGLADE SEMINARY/THE UNIV OF DETROIT,DETROIT,MI
+2024,MARYGROVE COLLEGE,DETROIT,MI
+2027,MERCY CENTRAL SCHOOL OF NURSING,GRAND RAPIDS,MI
+2026,MERCY COLLEGE OF DETROIT,DETROIT,MI
+2072,MICHIGAN CHRISTIAN COLLEGE,ROCHESTER,MI
+2032,MICHIGAN STATE UNIVERSITY,EAST LANSING,MI
+1953,MICHIGAN TECHNICAL INSTITUTE,ANN ARBOR,MI
+2030,MICHIGAN TECHNOLOGICAL UNIVERSITY,HOUGHTON,MI
+1973,MID MICHIGAN COMMUNITY COLLEGE,HARRISON,MI
+2039,MONROE COUNTY COMMUNITY COLLEGE,MONROE,MI
+2029,MONTCALM COMMUNITY COLLEGE,SIDNEY,MI
+2021,MOTT COMMUNITY COLLEGE,FLINT,MI
+1957,MUSKEGON BUSINESS COLLEGE,MUSKEGON,MI
+2034,MUSKEGON COMMUNITY COLLEGE,MUSKEGON,MI
+2036,NAZARETH COLLEGE IN KALAMAZOO,NAZARETH,MI
+2037,NORTH CENTRAL MICHIGAN COLLEGE,PETOSKEY,MI
+2045,NORTHEASTERN SCHOOL OF COMMERCE,BAY CITY,MI
+2038,NORTHERN MICHIGAN UNIVERSITY,MARQUETTE,MI
+2040,NORTHWESTERN MICHIGAN COLLEGE,TRAVERSE CITY,MI
+2041,NORTHWOOD UNIVERSITY,MIDLAND,MI
+2043,OAKLAND COMMUNITY COLLEGE,BLOOMFIELD HILLS,MI
+2033,OAKLAND UNIVERSITY,ROCHESTER,MI
+2042,OLIVET COLLEGE,OLIVET,MI
+2049,REFORMED BIBLE COLLEGE,GRAND RAPIDS,MI
+2048,SACRED HEART SEMINARY,DETROIT,MI
+2057,SAGINAW VALLEY STATE COLLEGE,UNIVERSITY CENTER,MI
+2070,SCHOOLCRAFT COLLEGE,LIVONIA,MI
+2052,SIENA HEIGHTS COLLEGE,ADRIAN,MI
+2055,SOUTHWESTERN MICHIGAN COLLEGE,DOWAGIAC,MI
+2056,SPRING ARBOR COLLEGE,SPRING ARBOR,MI
+2046,ST CLAIR COUNTY COMMUNITY COLLEGE,PORT HURON,MI
+2047,ST JOHN HOSPITAL SCH OF RADIOLOGIC TECH,DETROIT,MI
+2059,ST JOSEPH HOSPITAL SCH OF RADIOGRAPHY,MT CLEMENS,MI
+2053,ST MARY'S COLLEGE,ORCHARD LAKE,MI
+5038,ST MARY'S HOSP SCH OF RADIOLOGIC TECH,GRAND RAPIDS,MI
+2058,SUOMI COLLEGE,HANCOCK,MI
+2060,UNIVERSITY OF DETROIT,DETROIT,MI
+2062,UNIVERSITY OF MICHIGAN-ANN ARBOR,ANN ARBOR,MI
+2074,UNIVERSITY OF MICHIGAN-DEARBORN,DEARBORN,MI
+2063,UNIVERSITY OF MICHIGAN-FLINT,FLINT,MI
+2065,WALSH COLLEGE OF ACCOUNTANCY/BUSINESS,TROY,MI
+2067,WASHTENAW COMMUNITY COLLEGE,ANN ARBOR,MI
+2068,WAYNE COUNTY COMMUNITY COLLEGE,DETROIT,MI
+2064,WAYNE STATE UNIVERSITY,DETROIT,MI
+2075,WEST SHORE COMMUNITY COLLEGE,SCOTTVILLE,MI
+2066,WESTERN MICHIGAN UNIVERSITY,KALAMAZOO,MI
+1980,WILLIAM TYNDALE COLLEGE,FARMINGTON HILLS,MI
+2083,ALEXANDRIA TECHNICAL COLLEGE,ALEXANDRIA,MN
+2109,ANOKA-RAMSEY COMM COLL-CAMBRIDGE,CAMBRIDGE,MN
+2093,ANOKA-RAMSEY COMMUNITY COLLEGE,COON RAPIDS,MN
+2080,AUGSBURG COLLEGE,MINNEAPOLIS,MN
+2084,BEMIDJI STATE UNIVERSITY,BEMIDJI,MN
+2110,BETHANY FELLOWSHIP MISSIONARY TRNG CTR,BLOOMINGTON,MN
+2086,BETHANY LUTHERAN COLLEGE,MANKATO,MN
+2088,BETHEL COLLEGE,ST PAUL,MN
+2089,BETHEL THEOLOGICAL SEMINARY,ST PAUL,MN
+2092,CARLETON COLLEGE,NORTHFIELD,MN
+2090,CENTRAL LAKES COLLEGE,BRAINERD,MN
+2125,CENTURY COLLEGE,WHITE BEAR LAKE,MN
+2091,COLLEGE OF ASSOCIATED ARTS,ST PAUL,MN
+2094,COLLEGE OF ST BENEDICT,ST JOSEPH,MN
+2096,COLLEGE OF ST CATHERINE,ST PAUL,MN
+2098,COLLEGE OF ST SCHOLASTICA,DULUTH,MN
+2100,COLLEGE OF ST TERESA,WINONA,MN
+2104,CONCORDIA COLLEGE-MOORHEAD,MOORHEAD,MN
+2106,CONCORDIA COLLEGE-ST PAUL,ST PAUL,MN
+2107,CROSIER SEMINARY JUNIOR COLLEGE,ONAMIA,MN
+2152,CROWN COLLEGE,ST BONIFACIUS,MN
+5150,EAST GRAND FORKS AREA VOC TECH INST,EAST GRAND FORKS,MN
+2119,FAIRVIEW DEACONESS HOSP SCHOOL NURSING,MINNEAPOLIS,MN
+2111,FERGUS FALLS COMMUNITY COLLEGE,FERGUS FALLS,MN
+2113,FON DU LAC TRIBAL AND COMM COLLEGE,CLOQUET,MN
+2112,GUSTAVUS ADOLPHUS COLLEGE,ST PETER,MN
+2114,HAMLINE UNIVERSITY,ST PAUL,MN
+2115,HENNEPIN TECHNICAL COLLEGE,BROOKLYN PARK,MN
+2116,HIBBING COMMUNITY COLLEGE,HIBBING,MN
+2103,INVER HILLS COMMUNITY COLLEGE,INVER GROVE HTS,MN
+2118,ITASCA COMMUNITY COLLEGE,GRAND RAPIDS,MN
+2120,LAKE SUPERIOR COLLEGE,DULUTH,MN
+2121,LEA COLLEGE ON LAKE CHAPEAU,ALBERT LEA,MN
+2131,LOWTHIAN COLLEGE,MINNEAPOLIS,MN
+2122,MACALESTER COLLEGE,ST PAUL,MN
+2127,MARTIN LUTHER COLLEGE,NEW ULM,MN
+2128,MAYO GRADUATE SCHOOL,ROCHESTER,MN
+5119,MEDICAL INSTITUTE OF MINNESOTA,MINNEAPOLIS,MN
+2158,MESABI COMMUNITY COLLEGE,VIRGINIA,MN
+2160,METROPOLITAN STATE UNIVESITY,MINNEAPOLIS,MN
+2130,MINNEAPOLIS COLLEGE OF ART & DESIGN,MINNEAPOLIS,MN
+2147,MINNEAPOLIS COMMUNITY & TECHNICAL COLL,MINNEAPOLIS,MN
+2132,MINNESOTA BIBLE COLLEGE,ROCHESTER,MN
+2126,MINNESOTA STATE UNIVERSITY-MANKATO,MANKATO,MN
+2164,MINNESOTA WEST COMM & TECH COLLEGE-WORTH,WORTHINGTON,MN
+2134,MOORHEAD STATE UNIVERSITY,MOORHEAD,MN
+2124,NATIONAL AMERICAN UNIVERSITY,ST PAUL,MN
+2123,NORMANDALE COMMUNITY COLLEGE,BLOOMINGTON,MN
+2136,NORTH CENTRAL BIBLE COLLEGE,MINNEAPOLIS,MN
+2137,NORTH HENNEPIN COMMUNITY COLLEGE,MINNEAPOLIS,MN
+2159,NORTHLAND COMMUNITY COLLEGE,THIEF RIVER FALLS,MN
+2105,NORTHWEST TECHNICAL INSTITUTE,EDEN PRAIRIE,MN
+2138,NORTHWESTERN COLLEGE,ST. PAUL,MN
+2139,NORTHWESTERN COLLEGE OF CHIROPRACTIC,BLOOMINGTON,MN
+2167,OAK HILLS BIBLE INSTITUTE,BEMIDJI,MN
+2170,PILLSBURY BAPTIST BIBLE COLLEGE,OWATONNA,MN
+2117,RAINY RIVER COMMUNITY COLLEGE,INTERNATIONAL FALLS,MN
+2161,RIDGEWATER COLLEGE,WILLMAR,MN
+2082,RIVERLAND COMMUNITY COLLEGE,AUSTIN,MN
+2142,ROCHESTER COMMUNITY & TECH COLLEGE,ROCHESTER,MN
+2145,SAINT CLOUD TECHNICAL COLLEGE,ST CLOUD,MN
+2140,SOUTH CENTRAL TECHNICAL COLLEGE,NORTH MANKATO,MN
+2151,SOUTHWEST STATE UNIVERSITY,MARSHALL,MN
+2141,SOUTHWESTERN TECHNICAL COLLEGE,GRANITE FALLS,MN
+2144,ST CLOUD STATE UNIVERSITY,ST CLOUD,MN
+2146,ST JOHN'S UNIVERSITY,COLLEGEVILLE,MN
+2153,ST LUKES HOSPITAL SCHOOL OF NURSING,DULUTH,MN
+2149,ST MARY'S JUNIOR COLLEGE,MINNEAPOLIS,MN
+2148,ST MARY'S UNIVERSITY OF MINNESOTA,WINONA,MN
+2150,ST OLAF COLLEGE,NORTHFIELD,MN
+2143,ST PAUL TECHNICAL COLLEGE,ST PAUL,MN
+2154,ST. JOSEPH'S HOSPITAL SCHOOL,MANKATO,MN
+2081,THIEF RIVER FALLS AG-VO TECH INSTITUTE,THIEF RIVER FALLS,MN
+2097,UNIV OF MINNESOTA TECH COLLEGE-WASECA,WASECA,MN
+2156,UNIV OF MINNESOTA-MINNEAPOLIS,MINNEAPOLIS,MN
+2129,UNIVERSITY OF MINNESOTA-CROOKSTON,CROOKSTON,MN
+2157,UNIVERSITY OF MINNESOTA-DULUTH,DULUTH,MN
+2155,UNIVERSITY OF MINNESOTA-MORRIS,MORRIS,MN
+2102,UNIVERSITY OF ST THOMAS,ST PAUL,MN
+2108,VERMILION COMMUNITY COLLEGE,ELY,MN
+2165,WALDEN UNIVERSITY,MINNEAPOLIS,MN
+2163,WINONA AREA TECHNICAL INSTITUTE,WINONA,MN
+2162,WINONA STATE UNIVERSITY,WINONA,MN
+2278,AVILA COLLEGE,KANSAS CITY,MO
+2283,BAPTIST BIBLE COLLEGE,SPRINGFIELD,MO
+2284,BARNES HOSPITAL SCHOOL OF NURSING,ST LOUIS,MO
+2312,CALVARY BIBLE COLLEGE,KANSAS CITY,MO
+2266,CARDINAL GLENNON COLLEGE,ST LOUIS,MO
+2268,CENTRAL BIBLE COLLEGE,SPRINGFIELD,MO
+2269,CENTRAL CHRISTIAN COLLEGE OF BIBLE,MOBERLY,MO
+2270,CENTRAL METHODIST COLLEGE,FAYETTE,MO
+2272,CENTRAL MISSOURI STATE UNIVERSITY,WARRENSBURG,MO
+2281,COLLEGE OF THE OZARKS,POINT LOOKOUT,MO
+2276,COLUMBIA COLLEGE,COLUMBIA,MO
+2280,CONCEPTION SEMINARY COLLEGE,CONCEPTION,MO
+2287,CONCORDIA SEMINARY,ST LOUIS,MO
+2286,COTTEY COLLEGE,NEVADA,MO
+2285,COVENANT THEOLOGICAL SEMINARY,ST LOUIS,MO
+2351,COX MEDICAL CENTER SCHOOL OF RADIOLOGY,SPRINGFIELD,MO
+2289,CROWDER COLLEGE,NEOSHO,MO
+2290,CULVER-STOCKTON COLLEGE,CANTON,MO
+2293,DEACONESS COLLEGE OF NURSING,ST LOUIS,MO
+2291,DEVRY INSTITUTE OF TECHNOLOGY,KANSAS CITY,MO
+2292,DRURY COLLEGE,SPRINGFIELD,MO
+2294,EAST CENTRAL COLLEGE,UNION,MO
+2296,EVANGEL COLLEGE,SPRINGFIELD,MO
+2298,FONTBONNE COLLEGE,ST LOUIS,MO
+2301,GATEWAY BIBLE COLLEGE,ST LOUIS,MO
+2303,GATEWAY COLLEGE OF EVANGELISM,FLORISSANT,MO
+2320,HANNIBAL-LAGRANGE COLLEGE,HANNIBAL,MO
+2302,HARRIS-STOWE STATE COLLEGE,ST LOUIS,MO
+2313,JEFFERSON COLLEGE,HILLSBORO,MO
+2305,JEWISH HOSPITAL SCHOOL OF NURSING,ST LOUIS,MO
+2300,JOB CORPS CENTER,EXCELSIOR SPRINGS,MO
+2277,KANSAS CITY ART INSTITUTE,KANSAS CITY,MO
+2316,KEMPER MILITARY SCHOOL AND COLLEGE,BOONVILLE,MO
+2322,LINCOLN UNIVERSITY,JEFFERSON CITY,MO
+2324,LINDENWOOD COLLEGE,ST CHARLES,MO
+5105,LINN TECHNICAL COLLEGE,LINN,MO
+2318,LOGAN COLLEGE OF CHIROPRACTIC,CHESTERFIELD,MO
+2307,LONGVIEW COMMUNITY COLLEGE,LEE'S SUMMIT,MO
+2310,LUTHERAN MEDICAL CENTER SCH OF NURSING,ST LOUIS,MO
+2331,MAPLE WOODS COMMUNITY COLLEGE,KANSAS CITY,MO
+2326,MARYVILLE UNIVERSITY-ST LOUIS,ST LOUIS,MO
+2348,METRO BUSINESS COLLEGE,ST LOUIS,MO
+2306,MINERAL AREA COLLEGE,FLAT RIVER,MO
+2323,MISSOURI BAPTIST COLLEGE-ST LOUIS CAMPUS,ST LOUIS,MO
+2329,MISSOURI BAPTIST HOSPITAL SCHOOL-NURSING,ST LOUIS,MO
+2304,MISSOURI SOUTHERN STATE COLLEGE,JOPLIN,MO
+2330,MISSOURI VALLEY COLLEGE,MARSHALL,MO
+2344,MISSOURI WESTERN STATE COLLEGE,ST JOSEPH,MO
+2332,MOBERLY AREA JUNIOR COLLEGE,MOBERLY,MO
+2378,NORTH CENTRAL MISSOURI COLLEGE,TRENTON,MO
+2338,NORTHWEST MISSOURI STATE UNIV,MARYVILLE,MO
+2279,OZARK CHRISTIAN COLLEGE,JOPLIN,MO
+2282,OZARKS TECHNICAL COMMUNITY COLLEGE,SPRINGFIELD,MO
+2340,PARK COLLEGE,PARKVILLE,MO
+2341,PENN VALLEY COMMUNITY COLLEGE,KANSAS CITY,MO
+2343,PIONEER COMMUNITY COLLEGE,KANSAS CITY,MO
+2347,RESEARCH COLLEGE OF NURSING,KANSAS CITY,MO
+2342,ROCKHURST COLLEGE,KANSAS CITY,MO
+2371,RUTLEDGE COLLEGE,SPRINGFIELD,MO
+2364,SCHOOL OF THE OZARKS,POINT LOOKOUT,MO
+2366,SOUTHEAST MISSOURI STATE UNIVERSITY,CAPE GIRARDEAU,MO
+2368,SOUTHWEST BAPTIST UNIVERSITY,BOLIVAR,MO
+2370,SOUTHWEST MISSOURI STATE UNIV,SPRINGFIELD,MO
+2353,ST CHARLES COUNTY COMM COLLEGE,ST CHARLES,MO
+2359,ST JOHN'S HOSPITAL SCHOOL OF NURSING,SPRINGFIELD,MO
+2271,ST JOHN'S REGIONAL HLTH CTR SCH/RAD TECH,SPRINGFIELD,MO
+2334,ST LOUIS CHRISTIAN COLLEGE,FLORISSANT,MO
+2346,ST LOUIS COLLEGE OF PHARMACY,ST LOUIS,MO
+2297,ST LOUIS COMM COLL AT FLORISSANT VALLEY,ST LOUIS,MO
+2299,ST LOUIS COMM COLL AT FOREST PARK,ST LOUIS,MO
+2328,ST LOUIS COMM COLL AT MERAMEC,KIRKWOOD,MO
+2352,ST LOUIS UNIVERSITY,ST LOUIS,MO
+2357,ST LUKE'S HOSPITAL SCHOOL OF NURSING,KANSAS CITY,MO
+2354,ST LUKE'S HOSPITAL SCHOOL OF NURSING,ST LOUIS,MO
+2360,ST MARY'S COLLEGE OF O'FALLON,O'FALLON,MO
+2362,ST PAUL'S COLLEGE,CONCORDIA,MO
+2356,STATE FAIR COMMUNITY COLLEGE,SEDALIA,MO
+2374,STEPHENS COLLEGE,COLUMBIA,MO
+2376,TARKIO COLLEGE,TARKIO,MO
+2372,THREE RIVERS COMMUNITY COLLEGE,POPLAR BLUFF,MO
+2336,TRUMAN STATE UNIVERSITY,KIRKSVILLE,MO
+2382,UNIVERSITY OF MISSOURI-COLUMBIA,COLUMBIA,MO
+2380,UNIVERSITY OF MISSOURI-KANSAS CITY,KANSAS CITY,MO
+2398,UNIVERSITY OF MISSOURI-ROLLA,ROLLA,MO
+2383,UNIVERSITY OF MISSOURI-ST LOUIS,ST LOUIS,MO
+2386,WASHINGTON UNIVERSITY,ST LOUIS,MO
+2388,WEBSTER UNIVERSITY,ST LOUIS,MO
+2390,WENTWORTH MILITARY ACADEMY,LEXINGTON,MO
+2392,WESTMINSTER COLLEGE,FULTON,MO
+2394,WILLIAM JEWELL COLLEGE,LIBERTY,MO
+2396,WILLIAM WOODS COLLEGE,FULTON,MO
+2176,ALCORN STATE UNIVERSITY,LORMAN,MS
+2180,BELHAVEN COLLEGE,JACKSON,MS
+2182,BLUE MOUNTAIN COLLEGE,BLUE MOUNTAIN,MS
+2184,CLARKE COLLEGE,NEWTON,MS
+2186,COAHOMA JUNIOR COLLEGE,CLARKSDALE,MS
+2188,COPIAH-LINCOLN JUNIOR COLLEGE,WESSON,MS
+2189,COPIAH-LINCOLN JUNIOR COLLEGE-NATCHEZ,NATCHEZ,MS
+2190,DELTA STATE UNIVERSITY,CLEVELAND,MS
+2192,EAST CENTRAL JUNIOR COLLEGE,DECATUR,MS
+2194,EAST MISSISSIPPI COMMUNITY COLLEGE,SCOOBA,MS
+2196,GOLDEN TRIANGLE VOC TECH CENTER,COLUMBUS,MS
+2177,HINDS JUNIOR COLLEGE-JACKSON CAMPUS,JACKSON,MS
+2262,HINDS JUNIOR COLLEGE-RANKIN BRANCH,PEARL,MS
+2198,HINDS JUNIOR COLLEGE-RAYMOND CAMPUS,RAYMOND,MS
+2223,HINDS JUNIOR COLLEGE-UTICA CAMPUS,UTICA,MS
+2261,HINDS JUNIOR COLLEGE-VICKSBURG/WARREN,VICKSBURG,MS
+2200,HOLMES COMMUNITY COLLEGE,GOODMAN,MS
+2202,ITAWAMBA JUNIOR COLLEGE,FULTON,MS
+2204,JACKSON STATE UNIVERSITY,JACKSON,MS
+2206,JONES COUNTY JUNIOR COLLEGE,ELLISVILLE,MS
+2211,MAGNOLIA BIBLE COLLEGE,KOSCIUSKO,MS
+2208,MARY HOLMES COLLEGE,WEST POINT,MS
+2209,MATTY HERSEE HOSP SCHOOL OF NURSING,MERIDIAN,MS
+2210,MERIDIAN JUNIOR COLLEGE,MERIDIAN,MS
+2230,MID-SOUTH CHRISTIAN COLLEGE,SENATOBIA,MS
+2212,MILLSAPS COLLEGE,JACKSON,MS
+2215,MISSISSIPPI BAPT MED CTR SCH/RAD TECH,JACKSON,MS
+2214,MISSISSIPPI COLLEGE,CLINTON,MS
+2244,MISSISSIPPI DELTA JUNIOR COLLEGE,MOORHEAD,MS
+2220,MISSISSIPPI STATE UNIVERSITY,MISSISSIPPI STATE,MS
+2260,MISSISSIPPI UNIVERSITIES CENTER,JACKSON,MS
+2222,MISSISSIPPI UNIVERSITY FOR WOMEN,COLUMBUS,MS
+2224,MISSISSIPPI VALLEY STATE UNIVERSITY,ITTA BENA,MS
+2203,MS GULF COAST JC-JACKSON COUNTY CAMPUS,GAUTIER,MS
+2205,MS GULF COAST JC-JEFFERSON DAVIS CAMPUS,GULFPORT,MS
+2234,MS GULF COAST JC-PERKINSTON CAMPUS,PERKINSTON,MS
+2259,NATCHEZ COLLEGE,NATCHEZ,MS
+2226,NORTHEAST MISSISSIPPI COMMUNITY COLLEGE,BOONEVILLE,MS
+2228,NORTHWEST MISSISSIPPI COMMUNITY COLLEGE,SENATOBIA,MS
+2232,PEARL RIVER JUNIOR COLLEGE,POPLARVILLE,MS
+2233,PHILLIPS JUNIOR COLLEGE,GULFPORT,MS
+2238,PRENTISS INSTITUTE,PRENTISS,MS
+2240,RUST COLLEGE,HOLLY SPRINGS,MS
+2241,SOUTHEASTERN BAPTIST COLLEGE,LAUREL,MS
+2242,SOUTHWEST MISSISSIPPI JUNIOR COLLEGE,SUMMIT,MS
+2248,TOUGALOO COLLEGE,TOUGALOO,MS
+2250,UNIVERSITY OF MISSISSIPPI,UNIVERSITY,MS
+2251,UNIVERSITY OF MISSISSIPPI MEDICAL CTR,JACKSON,MS
+2218,UNIVERSITY SOUTHERN MISSISSIPPI,HATTIESBURG,MS
+2217,UNIVERSITY SOUTHERN MISSISSIPPI-GULF PK,HATTIESBURG,MS
+2219,UNIVERSITY SOUTHERN MISSISSIPPI-NATCHEZ,HATTIESBURG,MS
+2253,WESLEY COLLEGE,FLORENCE,MS
+2254,WILLIAM CAREY COLLEGE,HATTIESBURG,MS
+2256,WOOD JUNIOR COLLEGE,MATHISTON,MS
+2433,BIG SKY BIBLE COLLEGE,LEWISTOWN,MT
+2408,CARROLL COLLEGE,HELENA,MT
+2414,DAWSON COMMUNITY COLLEGE,GLENDIVE,MT
+2403,DULL KNIFE COLLEGE,LAME DEER,MT
+2417,FLATHEAD VALLEY COMMUNITY COLLEGE,KALISPELL,MT
+2419,FORT PECK COMMUNITY COLLEGE,POPLAR,MT
+2412,MILES COMMUNITY COLLEGE,MILES CITY,MT
+2420,MONTANA STATE UNIVERSITY,BOZEMAN,MT
+2416,MONTANA STATE UNIVERSITY-BILLINGS,BILLINGS,MT
+2418,MONTANA TECH OF THE UNIV OF MONTANA,BUTTE,MT
+2424,NORTHERN MONTANA COLLEGE,HAVRE,MT
+2426,ROCKY MOUNTAIN COLLEGE,BILLINGS,MT
+2410,UNIVERSITY OF GREAT FALLS,GREAT FALLS,MT
+2422,UNIVERSITY OF MONTANA,MISSOULA,MT
+2428,WESTERN MONTANA COLLEGE,DILLON,MT
+2427,YELLOWSTONE BAPTIST COLL/BIBLE INSTITUTE,BILLINGS,MT
+3061,ANSON TECHNICAL COLLEGE,ANSONVILLE,NC
+3062,APPALACHIAN STATE UNIVERSITY,BOONE,NC
+3063,ASHEVILLE BUNCOMBE TECHNICAL INSTITUTE,ASHEVILLE,NC
+3066,ATLANTIC CHRISTIAN COLLEGE,WILSON,NC
+3068,BARBER-SCOTIA COLLEGE,CONCORD,NC
+3070,BELMONT ABBEY COLLEGE,BELMONT,NC
+3072,BENNETT COLLEGE,GREENSBORO,NC
+3074,BREVARD COLLEGE,BREVARD,NC
+3075,CALDWELL COMM COLL & TECH INST,HUDSON,NC
+3076,CAMPBELL UNIVERSITY,BUIES CREEK,NC
+0377,CAPE FEAR COMMUNITY COLLEGE,WILMINGTON,NC
+3078,CARTERET COMMUNITY COLLEGE,MOREHEAD CITY,NC
+3080,CATAWBA COLLEGE,SALISBURY,NC
+3079,CATAWBA VALLEY TECHNICAL COLLEGE,HICKORY,NC
+3082,CENTRAL CAROLINA COMMUNITY COLLEGE,SANFORD,NC
+3081,CENTRAL PIEDMONT COMMUNITY COLLEGE,CHARLOTTE,NC
+3084,CHOWAN COLLEGE,MURFREESBORO,NC
+3089,CLEVELAND TECHNICAL COLLEGE,SHELBY,NC
+3083,COASTAL CAROLINA COMMUNITY COLLEGE,JACKSONVILLE,NC
+3085,COLLEGE OF THE ALBEMARLE,ELIZABETH CITY,NC
+3182,CRAVEN COMMUNITY COLLEGE,NEW BERN,NC
+3086,DAVIDSON COLLEGE,DAVIDSON,NC
+3087,DAVIDSON COUNTY COMMUNITY COLLEGE,LEXINGTON,NC
+3088,DUKE UNIVERSITY,DURHAM,NC
+5563,DURHAM TECHNICAL COMMUNITY COLLEGE,DURHAM,NC
+3094,EAST CAROLINA UNIVERSITY,GREENVILLE,NC
+3058,EAST COAST BIBLE COLLEGE,CHARLOTTE,NC
+3095,ELIZABETH CITY STATE UNIVERSITY,ELIZABETH CITY,NC
+3096,ELON COLLEGE,ELON COLLEGE,NC
+3098,FAYETTEVILLE STATE UNIVERSITY,FAYETTEVILLE,NC
+3181,FAYETTEVILLE TECHNICAL COMMUNITY COLLEGE,FAYETTEVILLE,NC
+3099,FORSYTH TECHNICAL INSTITUTE,WINSTON-SALEM,NC
+3102,GARDNER-WEBB COLLEGE,BOILING SPRINGS,NC
+3165,GASTON COLLEGE,DALLAS,NC
+3104,GREENSBORO COLLEGE,GREENSBORO,NC
+3106,GUILFORD COLLEGE,GREENSBORO,NC
+5134,GUILFORD TECHNICAL COMMUNITY COLLEGE,JAMESTOWN,NC
+3091,HALIFAX COMMUNITY COLLEGE,WELDON,NC
+3090,HERITAGE SCHOOL/EVANGELISM&COMMUNICATION,CHARLOTTE,NC
+3108,HIGH POINT COLLEGE,HIGH POINT,NC
+3109,ISOTHERMAL COMMUNITY COLLEGE,SPINDALE,NC
+3111,JAMES SPRUNT TECHNICAL COLLEGE,KENANSVILLE,NC
+3110,JOHN WESLEY COLLEGE,HIGH POINT,NC
+3112,JOHNSON C SMITH UNIVERSITY,CHARLOTTE,NC
+3113,JOHNSTON COMMUNITY COLLEGE,SMITHFIELD,NC
+3114,KING'S COLLEGE,CHARLOTTE,NC
+3116,LEES-MCRAE COLLEGE,BANNER ELK,NC
+3117,LENOIR COMMUNITY COLLEGE,KINSTON,NC
+3118,LENOIR-RHYNE COLLEGE,HICKORY,NC
+3120,LIVINGSTONE COLLEGE,SALISBURY,NC
+3122,LOUISBURG COLLEGE,LOUISBURG,NC
+3123,MANNA CHRISTIAN COLLEGE,FAYETTEVILLE,NC
+3124,MARS HILL COLLEGE,MARS HILL,NC
+3125,MCDOWELL TECHNICAL COLLEGE,MARION,NC
+3126,MEREDITH COLLEGE,RALEIGH,NC
+3127,METHODIST COLLEGE,FAYETTEVILLE,NC
+3128,MITCHELL COMMUNITY COLLEGE,STATESVILLE,NC
+3129,MONTGOMERY TECHNICAL COLLEGE,TROY,NC
+3130,MONTREAT-ANDERSON COLLEGE,MONTREAT,NC
+3131,MOUNT OLIVE COLLEGE,MOUNT OLIVE,NC
+3060,NORTH CAROLINA AGRIC & TECH STATE UNIV,GREENSBORO,NC
+3132,NORTH CAROLINA CENTRAL UNIVERSITY,DURHAM,NC
+3133,NORTH CAROLINA SCHOOL OF THE ARTS,WINSTON-SALEM,NC
+3164,NORTH CAROLINA STATE UNIV-RALEIGH,RALEIGH,NC
+3135,NORTH CAROLINA WESLEYAN COLLEGE,ROCKY MOUNT,NC
+3136,PEACE COLLEGE,RALEIGH,NC
+3138,PEMBROKE STATE UNIVERSITY,PEMBROKE,NC
+3140,PFEIFFER COLLEGE,MISENHEIMER,NC
+3142,PIEDMONT BIBLE COLLEGE,WINSTON-SALEM,NC
+3141,PITT COMMUNITY COLLEGE,GREENVILLE,NC
+3148,QUEENS COLLEGE,CHARLOTTE,NC
+3147,RANDOLPH TECHNICAL COLLEGE,ASHEBORO,NC
+3144,ROANOKE-CHOWAN TECHNICAL COLLEGE,AHOSKIE,NC
+3139,ROBESON TECHNICAL COLLEGE,LUMBERTON,NC
+3143,ROCKINGHAM COMMUNITY COLLEGE,WENTWORTH,NC
+3145,ROWAN TECHNICAL COLLEGE,SALISBURY,NC
+3150,SACRED HEART COLLEGE,BELMONT,NC
+3156,SALEM COLLEGE,WINSTON-SALEM,NC
+3151,SALISBURY BUSINESS COLLEGE,SALISBURY,NC
+3153,SAMPSON COMMUNITY COLLEGE,CLINTON,NC
+3149,SANDHILLS COMMUNITY COLLEGE,CARTHAGE,NC
+3158,SHAW UNIVERSITY,RALEIGH,NC
+3159,SOUTHEASTERN COMMUNITY COLLEGE,WHITEVILLE,NC
+3160,SOUTHWESTERN COMMUNITY COLLEGE,SYLVA,NC
+3146,ST ANDREWS PRESBYTERIAN COLLEGE,LAURINBURG,NC
+3152,ST AUGUSTINE'S COLLEGE,RALEIGH,NC
+3154,ST MARY'S COLLEGE,RALEIGH,NC
+3161,SURRY COMMUNITY COLLEGE,DOBSON,NC
+3157,"TECHNICAL COLLEGE OF ALAMANCE, THE",HAW RIVER,NC
+3059,TRI-COUNTY COMMUNITY COLLEGE,MURPHY,NC
+3064,UNIV OF NORTH CAROLINA AT ASHEVILLE,ASHEVILLE,NC
+3163,UNIV OF NORTH CAROLINA AT CHARLOTTE,CHARLOTTE,NC
+3166,UNIV OF NORTH CAROLINA AT GREENSBORO,GREENSBORO,NC
+3174,UNIV OF NORTH CAROLINA AT WILMINGTON,WILMINGTON,NC
+3162,UNIVERSITY OF NORTH CAROLINA,CHAPEL HILL,NC
+3167,VANCE GRANVILLE COMMUNITY COLLEGE,HENDERSON,NC
+3168,WAKE FOREST UNIVERSITY,WINSTON-SALEM,NC
+3177,WAKE TECHNICAL COMMUNITY COLLEGE,RALEIGH,NC
+3170,WARREN WILSON COLLEGE,ASHEVILLE,NC
+3171,WAYNE COMMUNITY COLLEGE,GOLDSBORO,NC
+3172,WESTERN CAROLINA UNIVERSITY,CULLOWHEE,NC
+3173,WESTERN PIEDMONT COMMUNITY COLLEGE,MORGANTON,NC
+3175,WILKES COMMUNITY COLLEGE,WILKESBORO,NC
+3179,WILSON TECHNICAL COMMUNITY COLLEGE,WILSON,NC
+3176,WINGATE COLLEGE,WINGATE,NC
+3180,WINSTON-SALEM BIBLE COLLEGE,WINSTON-SALEM,NC
+3178,WINSTON-SALEM STATE UNIVERSITY,WINSTON-SALEM,NC
+3196,BISMARCK STATE COLLEGE,BISMARCK,ND
+4809,CAPITAL COMMERCIAL COLLEGE,BISMARCK,ND
+3210,DICKINSON STATE UNIVERSITY,DICKINSON,ND
+3194,FORT BERTHOLD COMMUNITY COLLEGE,NEW TOWN,ND
+3200,JAMESTOWN COLLEGE,JAMESTOWN,ND
+3198,LAKE REGION COMMUNITY COLLEGE,DEVILS LAKE,ND
+0032,LITTLE HOOP COMMUNITY COLLEGE,FORT TOTTEN,ND
+3212,MAYVILLE STATE UNIVERSITY,MAYVILLE,ND
+3208,MEDCENTER ONE QR RADIOLOGIC TECH PROG,BISMARCK,ND
+3197,MEDCENTER ONE SCHOOL OF NURSING,BISMARCK,ND
+3214,MINOT STATE UNIVERSITY,MINOT,ND
+3204,MINOT STATE UNIVERSITY-BOTTINEAU CENTER,BOTTINEAU,ND
+3206,NORTH DAKOTA STATE COLL OF SCIENCE,WAHPETON,ND
+3202,NORTH DAKOTA STATE UNIVERSITY,FARGO,ND
+3207,NORTHWEST BIBLE COLLEGE,MINOT,ND
+3220,ST LUKES HOSPITAL SCHOOL OF NURSING,FARGO,ND
+3215,TRINITY BIBLE COLLEGE,ELLENDALE,ND
+3221,TRINITY SCHOOL OF NURSING,MINOT,ND
+3191,TURTLE MOUNTAIN COMMUNITY COLLEGE,BELCOURT,ND
+3193,UNITED TRIBES EDUCATIONAL TECHNICAL CTR,BISMARCK,ND
+3201,UNIVERSITY OF MARY,BISMARCK,ND
+3218,UNIVERSITY OF NORTH DAKOTA,GRAND FORKS,ND
+3217,UNIVERSITY OF NORTH DAKOTA - LAKE REGION,DEVILS LAKE,ND
+3219,UNIVERSITY OF NORTH DAKOTA-WILLISTON,WILLISTON,ND
+3216,VALLEY CITY STATE COLLEGE,VALLEY CITY,ND
+2435,ARCHBISHOP BERGAN MERCY HOSPITAL,OMAHA,NE
+2437,BELLEVUE UNIVERSITY,BELLEVUE,NE
+2438,BRYAN MEMORIAL HOSPITAL SCH OF NURSING,LINCOLN,NE
+2434,CENTRAL COMM COLLEGE-GRAND ISLAND,GRAND ISLAND,NE
+2439,CENTRAL COMMUNITY COLLEGE-HASTINGS CMPS,HASTINGS,NE
+2475,CENTRAL COMMUNITY COLLEGE-PLATTE CAMPUS,COLUMBUS,NE
+2466,CHADRON STATE COLLEGE,CHADRON,NE
+2436,CLARKSON COLLEGE,OMAHA,NE
+2440,COLLEGE OF SAINT MARY,OMAHA,NE
+2442,CONCORDIA UNIVERSITY,SEWARD,NE
+2444,CREIGHTON UNIVERSITY,OMAHA,NE
+2446,DANA COLLEGE,BLAIR,NE
+2448,DOANE COLLEGE,CRETE,NE
+2454,GRACE COLLEGE OF THE BIBLE,OMAHA,NE
+2456,HASTINGS COLLEGE,HASTINGS,NE
+4788,LINCOLN SCHOOL OF COMMERCE,LINCOLN,NE
+2459,MARY LANNING MEMORIAL HOSP SCH/NURSING,HASTINGS,NE
+2460,MCCOOK COMMUNITY COLLEGE,MCCOOK,NE
+2465,METHODIST SCHOOL OF NURSING,OMAHA,NE
+2447,METROPOLITAN COMMUNITY COLLEGE,OMAHA,NE
+2462,MIDLAND LUTHERAN COLLEGE,FREMONT,NE
+2491,MID-PLAINS COMMUNITY COLLEGE,NORTH PLATTE,NE
+2473,NEBRASKA CHRISTIAN COLLEGE,NORFOLK,NE
+2471,NEBRASKA COLL OF TECH AGRICULTURE,CURTIS,NE
+5572,NEBRASKA COLLEGE OF BUSINESS,OMAHA,NE
+2477,NEBRASKA INDIAN COMMUNITY COLLEGE,WINNEBAGO,NE
+2474,NEBRASKA WESLEYAN UNIVERSITY,LINCOLN,NE
+2476,NORTHEAST COMMUNITY COLLEGE,NORFOLK,NE
+2470,PERU STATE COLLEGE,PERU,NE
+2463,PLATTE VALLEY BIBLE COLLEGE,SCOTTSBLUFF,NE
+2441,SOUTHEAST COMM COLL-BEATRICE CAMPUS,BEATRICE,NE
+2452,SOUTHEAST COMM COLL-FAIRBURY CAMPUS,FAIRBURY,NE
+4787,SOUTHEAST COMM COLL-LINCOLN CAMPUS,LINCOLN,NE
+4789,SOUTHEAST COMM COLL-MILFORD CAMPUS,MILFORD,NE
+2480,UNION COLLEGE,LINCOLN,NE
+2468,UNIVERSITY OF NEBRASKA AT KEARNEY,KEARNEY,NE
+2482,UNIVERSITY OF NEBRASKA AT LINCOLN,LINCOLN,NE
+2487,UNIVERSITY OF NEBRASKA MEDICAL CENTER,OMAHA,NE
+2458,UNIVERSITY OF NEBRASKA SCH OF TECH/AGRIC,CURTIS,NE
+2464,UNIVERSITY OF NEBRASKA-OMAHA,OMAHA,NE
+2472,WAYNE STATE COLLEGE,WAYNE,NE
+2488,WEST NEBRASKA GEN HOSPITAL SCH/NURSING,SCOTTSBLUFF,NE
+2478,WESTERN NEBRASKA COMMUNITY COLLEGE,SCOTTSBLUFF,NE
+2490,WESTERN NEBRASKA TECHNICAL COLLEGE,SIDNEY,NE
+2484,YORK COLLEGE,YORK,NE
+2506,COLBY-SAWYER COLLEGE,NEW LONDON,NH
+2512,COLLEGE FOR LIFELONG LEARNING,LEE,NH
+2525,DANIEL WEBSTER COLLEGE,NASHUA,NH
+2508,DARTMOUTH COLLEGE,HANOVER,NH
+2509,FRANKLIN PIERCE COLLEGE,RINDGE,NH
+2515,HAWTHORNE COLLEGE,ANTRIM,NH
+2503,HESSER COLLEGE,MANCHESTER,NH
+2510,KEENE STATE COLLEGE,KEENE,NH
+2511,MAGDALEN COLLEGE,BEDFORD,NH
+2502,MCINTOSH COLLEGE,DOVER,NH
+2513,NEW ENGLAND COLLEGE,HENNIKER,NH
+2514,NEW HAMPSHIRE COLLEGE,MANCHESTER,NH
+2516,NEW HAMPSHIRE TECHNICAL INSTITUTE,CONCORD,NH
+2517,NEW HAMPSHIRE VOC-TECH COLL-BERLIN,BERLIN,NH
+2529,NEW HAMPSHIRE VOC-TECH COLL-CLAREMONT,CLAREMONT,NH
+2527,NEW HAMPSHIRE VOC-TECH COLL-LACONIA,LACONIA,NH
+2507,NEW HAMPSHIRE VOC-TECH COLL-MANCHESTER,MANCHESTER,NH
+2523,NEW HAMPSHIRE VOC-TECH COLL-NASHUA,NASHUA,NH
+2530,NEW HAMPSHIRE VOC-TECH COLL-STRATHAM,STRATHAM,NH
+2521,NOTRE DAME COLLEGE,MANCHESTER,NH
+2518,PLYMOUTH STATE COLLEGE,PLYMOUTH,NH
+2520,RIVIER COLLEGE,NASHUA,NH
+2522,ST ANSELM COLLEGE,MANCHESTER,NH
+2531,THOMAS MORE INSTITUTE OF LIBERAL ARTS,MERRIMACK,NH
+2524,UNIVERSITY OF NEW HAMPSHIRE,DURHAM,NH
+2528,WHITE PINES COLLEGE,CHESTER,NH
+2539,ATLANTIC COMMUNITY COLLEGE,MAYS LANDING,NJ
+2541,BERGEN COMMUNITY COLLEGE,PARAMUS,NJ
+2576,BERKELEY SCHOOL OF GARRETT MOUNTAIN,LITTLE FALLS,NJ
+2686,BERKELEY SCHOOL OF LONG ISLAND,LITTLE FALLS,NJ
+2688,BERKELEY SCHOOL-NEW YORK CITY,LITTLE FALLS,NJ
+2578,BERKELEY SCHOOL-RIDGEWOOD,LITTLE FALLS,NJ
+2695,BERKELEY SCHOOL-WHITE PLAINS,LITTLE FALLS,NJ
+2540,BLOOMFIELD COLLEGE,BLOOMFIELD,NJ
+2553,BROOKDALE COMMUNITY COLLEGE,LINCROFT,NJ
+2543,BURLINGTON COUNTY COLLEGE,PEMBERTON,NJ
+2542,CALDWELL COLLEGE,CALDWELL,NJ
+2545,CAMDEN COUNTY COLLEGE,BLACKWOOD,NJ
+2544,CENTENARY COLLEGE,HACKETTSTOWN,NJ
+2546,COLLEGE OF ST ELIZABETH,CONVENT STATION,NJ
+2549,COUNTY COLLEGE OF MORRIS,RANDOLPH,NJ
+2563,CUMBERLAND COUNTY COLLEGE,VINELAND,NJ
+2548,DON BOSCO COLLEGE,NEWTON,NJ
+2550,DREW UNIVERSITY,MADISON,NJ
+2551,ESSEX COUNTY COLLEGE,NEWARK,NJ
+2574,FAIRLEIGH DICKINSON U-EDWARD WILLIAMS C,HACKENSACK,NJ
+2554,FAIRLEIGH DICKINSON U-FLORHAM/MADISON,MADISON,NJ
+2552,FAIRLEIGH DICKINSON U-RUTHERFORD CAMPUS,RUTHERFORD,NJ
+2556,FAIRLEIGH DICKINSON U-TEANECK CAMPUS,TEANECK,NJ
+2581,FAIRLEIGH DICKINSON U-WAYNE EXTENSION,WAYNE,NJ
+2559,FELICIAN COLLEGE,LODI,NJ
+2562,GEORGIAN COURT COLLEGE,LAKEWOOD,NJ
+2561,GLOUCESTER COUNTY COLLEGE,SEWELL P O,NJ
+2575,HELENE FULD SCHOOL OF NURSING,CAMDEN,NJ
+2577,HUDSON COUNTY COMMUNITY COLLEGE,JERSEY CITY,NJ
+2570,JERSEY CITY STATE COLLEGE,JERSEY CITY,NJ
+2555,KATHARINE GIBBS SCHOOL,MONTCLAIR,NJ
+2582,KEAN COLLEGE OF NEW JERSEY,UNION,NJ
+2568,MERCER COUNTY COMMUNITY COLLEGE,TRENTON,NJ
+2573,MIDDLESEX COUNTY COLLEGE,EDISON,NJ
+2571,MONMOUTH COLLEGE,WEST LONG BRANCH,NJ
+2572,MONTCLAIR STATE COLLEGE,UPPER MONTCLAIR,NJ
+2580,NEW JERSEY INSTITUTE OF TECHNOLOGY,NEWARK,NJ
+2585,OCEAN COUNTY COLLEGE,TOMS RIVER,NJ
+2583,PASSAIC COUNTY COMMUNITY COLLEGE,PATERSON,NJ
+2588,PRINCETON UNIVERSITY,PRINCETON,NJ
+2591,RAMAPO COLLEGE OF NEW JERSEY,MAHWAH,NJ
+2609,RARITAN VALLEY COMMUNITY COLLEGE,SOMMERVILLE,NJ
+2589,RICHARD STOCKTON COLLEGE,POMONA,NJ
+2590,RIDER COLLEGE,LAWRENCEVILLE,NJ
+2560,ROWAN COLLEGE OF NEW JERSEY,GLASSBORO,NJ
+2598,RUTGERS STATE UNIV-CAMDEN COLL ARTS/SC,CAMDEN,NJ
+2596,RUTGERS STATE UNIV-DOUGLASS COLLEGE,NEW BRUNSWICK,NJ
+2597,RUTGERS STATE UNIV-LIVINGSTON COLLEGE,NEW BRUNSWICK,NJ
+2600,RUTGERS STATE UNIV-NEWARK COLL ARTS/SC,NEWARK,NJ
+2592,RUTGERS STATE UNIV-RUTGERS COLLEGE,NEW BRUNSWICK,NJ
+2602,SALEM COMMUNITY COLLEGE,PENNS GROVE,NJ
+2606,SETON HALL UNIVERSITY,SOUTH ORANGE,NJ
+2604,ST PETER'S COLLEGE,JERSEY CITY,NJ
+2610,STEVENS INSTITUTE OF TECHNOLOGY,HOBOKEN,NJ
+2605,SUSSEX COUNTY COMMUNITY COLLEGE,NEWTON,NJ
+2614,THE COLLEGE OF NEW JERSEY,TRENTON,NJ
+2612,THOMAS A EDISON STATE COLLEGE,TRENTON,NJ
+2616,UNION COUNTY COLLEGE,CRANFORD,NJ
+2618,UPSALA COLLEGE-EAST ORANGE CAMPUS,EAST ORANGE,NJ
+2557,UPSALA COLLEGE-WIRTHS CAMPUS,SUSSEX,NJ
+2617,WARREN COUNTY COMMUNITY COLLEGE,WASHINGTON,NJ
+2619,WESTMINSTER CHOIR COLLEGE,PRINCETON,NJ
+2584,WILLIAM PATERSON COLLEGE,WAYNE,NJ
+2629,ALBUQUERQUE JOB CORPS CENTER,ALBUQUERQUE,NM
+5569,ALBUQUERQUE TECH VOC INSTITUTE,ALBUQUERQUE,NM
+2641,ARTESIA CHRISTIAN COLLEGE,ARTESIA,NM
+2624,CLOVIS COMMUNITY COLLEGE,CLOVIS,NM
+2648,COLLEGE OF SANTA FE,SANTA FE,NM
+2633,COLLEGE OF THE SOUTHWEST,HOBBS,NM
+2631,COLVIS COMMUNITY COLLEGE,CLOVIS,NM
+2636,EASTERN NEW MEXICO UNIVERSITY,PORTALES,NM
+2647,EASTERN NEW MEXICO U-ROSWELL COMM COLL,ROSWELL,NM
+2654,INSTITUTE OF AMERICAN INDIAN ARTS,SANTA FE,NM
+2659,LEA REGIONAL HOSP RADIOLOGIC TECH PROG,HOBBS,NM
+2640,NEW MEXICO HIGHLANDS UNIVERSITY,LAS VEGAS,NM
+2642,NEW MEXICO INSTITUTE OF MINING & TECH,SOCORRO,NM
+2643,NEW MEXICO JUNIOR COLLEGE,HOBBS,NM
+2644,NEW MEXICO MILITARY INSTITUTE,ROSWELL,NM
+2657,NEW MEXICO REHABILITATION CENTER,ROSWELL,NM
+2630,NEW MEXICO STATE UNIV. AT ALAMOGORDO,ALAMOGORDO,NM
+2632,NEW MEXICO STATE UNIV-CARLSBAD,CARLSBAD,NM
+2638,NEW MEXICO STATE UNIVERSITY,LAS CRUCES,NM
+2645,NEW MEXICO STATE UNIV-GRANTS,GRANTS,NM
+2639,NORTHERN NEW MEXICO COMMUNITY COLLEGE,ESPANOLA,NM
+2656,NURSING EDUCATION CENTER FOR INDIANS,ALBUQUERQUE,NM
+2637,SAN JUAN COLLEGE,FARMINGTON,NM
+2660,SANTA FE COMMUNITY COLLEGE,SANTA FE,NM
+2649,ST JOHN'S COLLEGE,SANTA FE,NM
+2652,TECHNICAL TRAINING INSTITUTE,LAS CRUCES,NM
+2653,UNIV OF NEW MEXICO-VALENCIA COUNTY,BELEN,NM
+2634,UNIVERSITY OF ALBUQUERQUE,ALBUQUERQUE,NM
+2650,UNIVERSITY OF NEW MEXICO,ALBUQUERQUE,NM
+2651,UNIVERSITY OF NEW MEXICO-LOS ALAMOS,LOS ALAMOS,NM
+2646,WESTERN NEW MEXICO UNIVERSITY,SILVER CITY,NM
+2498,COMM COLLEGE OF SOUTHERN NEVADA,NORTH LAS VEGAS,NV
+0252,DEEP SPRINGS COLLEGE CA,VIA DYER,NV
+2493,GREAT BASIN COLLEGE,ELKO,NV
+2501,OLD COLLEGE,RENO,NV
+2500,RENO BUSINESS COLLEGE,RENO,NV
+2497,SIERRA NEVADA COLLEGE,INCLINE VILLAGE,NV
+2499,TRUCKEE MEADOWS COMMUNITY COLLEGE,RENO,NV
+2496,UNIVERSITY OF NEVADA-LAS VEGAS,LAS VEGAS,NV
+2494,UNIVERSITY OF NEVADA-RENO,RENO,NV
+2495,WESTERN NEVADA COMMUNITY COLLEGE,CARSON CITY,NV
+2664,ADELPHI UNIVERSITY,GARDEN CITY,NY
+2667,ADIRONDACK COMMUNITY COLLEGE,GLENS FALLS,NY
+2661,ALBANY BUSINESS COLLEGE,ALBANY,NY
+2666,ALFRED UNIVERSITY,ALFRED,NY
+2669,AMERICAN ACADEMY MCALLISTER INSTITUTE,NEW YORK,NY
+2663,AMERICAN ACADEMY OF DRAMATIC ARTS,NEW YORK,NY
+2670,ARNOT OGDEN MEMORIAL HOSP SCH/NURSING,ELMIRA,NY
+2674,BARD COLLEGE,ANNANDALE-ON-HUDSON,NY
+0967,BAR-ILAN UNIVERSITY,NEW YORK,NY
+2718,BARNARD COLLEGE-COLUMBIA UNIVERSITY,NEW YORK,NY
+2721,BERNARD M BARUCH COLLEGE,NEW YORK CITY,NY
+2677,BIBLE BAPTIST INSTITUTE AND COLLEGE,HUDSON FALLS,NY
+2679,BORICUA COLLEGE,BROOKLYN,NY
+2678,BOROUGH OF MANHATTAN COMM COLLEGE,NEW YORK CITY,NY
+2684,BROOME COMMUNITY COLLEGE,BINGHAMTON,NY
+2676,BRYANT & STRATTON BUSINESS INSTITUTE,BUFFALO,NY
+2861,BRYANT & STRATTON POWELSON BUSINESS INST,SYRACUSE,NY
+2690,CANISIUS COLLEGE,BUFFALO,NY
+2692,CATHEDRAL COLLEGE-IMMACULATE CONCEPTION,DOUGLASTON,NY
+2668,CAYUGA COUNTY COMMUNITY COLLEGE,AUBURN,NY
+2696,CAZENOVIA COLLEGE,CAZENOVIA,NY
+2706,CITY COLLEGE OF NEW YORK,NEW YORK,NY
+2950,CITY UNIVERSITY OF NEW YORK,NEW YORK,NY
+2698,CLARKSON UNIVERSITY,POTSDAM,NY
+2694,CLINTON COMMUNITY COLLEGE,PLATTSBURGH,NY
+2702,COLGATE UNIVERSITY,HAMILTON,NY
+2985,"COLLEGE OF INSURANCE, THE",NEW YORK,NY
+2823,COLLEGE OF MOUNT ST VINCENT,RIVERDALE,NY
+2712,COLLEGE OF NEW ROCHELLE,NEW ROCHELLE,NY
+2714,COLLEGE OF SAINT ROSE,ALBANY,NY
+2719,COLUMBIA UNIV SCH OF ENGNRG & APPL SCI,NEW YORK,NY
+2716,COLUMBIA UNIV SCHOOL OF GENERAL STUDIES,NEW YORK,NY
+2720,COLUMBIA UNIVERSITY SCHOOL OF NURSING,NEW YORK,NY
+2717,COLUMBIA UNIVERSITY-COLUMBIA COLLEGE,NEW YORK,NY
+2715,COLUMBIA-GREENE COMMUNITY COLLEGE,HUDSON,NY
+2704,COMMUNITY COLLEGE OF THE FINGER LAKES,CANANDAIGUA,NY
+2722,CONCORDIA COLLEGE,BRONXVILLE,NY
+2724,COOPER UNION,NEW YORK,NY
+2726,CORNELL UNIVERSITY,ITHACA,NY
+2727,CORNING COMMUNITY COLLEGE,CORNING,NY
+2865,CROUSE-IRVING MEMORIAL HOSP SCH/NURSING,SYRACUSE,NY
+2867,CULINARY INSTITUTE OF AMERICA,HYDE PARK,NY
+2957,CUNY-BERNARD M. COLLEGE,NEW YORK CITY,NY
+2953,CUNY-BOROUGH OF MANHATTAN COMM COLLEGE,NEW YORK CITY,NY
+2959,CUNY-BROOKLYN COLLEGE,BROOKLYN,NY
+2955,CUNY-COLLEGE OF STATEN ISLAND,STATEN ISLAND,NY
+2951,CUNY-HUNTER COLLEGE,NEW YORK CITY,NY
+2958,CUNY-KINGSBOROUGH COMMUNITY COLLEGE,BROOKLYN,NY
+2969,CUNY-LAGUARDIA COMMUNITY COLLEGE,LONG ISLAND CITY,NY
+2972,CUNY-NEW YORK CITY TECHNICAL COLLEGE,BROOKLYN,NY
+2962,CUNY-QUEENS COLLEGE,FLUSHING,NY
+2966,CUNY-YORK COLLEGE,JAMAICA,NY
+2874,DAEMEN COLLEGE,BUFFALO,NY
+2730,DOMINICAN COLLEGE,ORANGEBURG,NY
+2665,DOWLING COLLEGE,OAKDALE,NY
+2731,DUTCHESS COMMUNITY COLLEGE,POUGHKEEPSIE,NY
+2732,DYOUVILLE COLLEGE,BUFFALO,NY
+2734,EASTMAN SCHOOL OF MUSIC,ROCHESTER,NY
+2735,ELIZABETH SETON COLLEGE,YONKERS,NY
+2739,ELLIS HOSPITAL SCHOOL OF NURSING,SCHNECTADY,NY
+2736,ELMIRA COLLEGE,ELMIRA,NY
+2737,EMPIRE STATE COLLEGE OF SUNY,SARATOGA SPRINGS,NY
+2742,ERIE COMMUNITY COLLEGE-CITY,ORCHARD PARK,NY
+2740,ERIE COMMUNITY COLLEGE-NORTH,WILLIAMSVILLE,NY
+2741,ERIE COMMUNITY COLLEGE-SOUTH,ORCHARD PARK,NY
+2744,FASHION INSTITUTE OF TECHNOLOGY,NEW YORK,NY
+2746,FINCH COLLEGE,NEW YORK,NY
+2745,FIVE TOWNS COLLEGE,SEAFORD,NY
+2748,FORDHAM UNIVERSITY,BRONX,NY
+2747,FRIENDS WORLD COLLEGE,LLOYD HARBOR,NY
+2749,FULTON-MONTGOMERY COMMUNITY COLLEGE,JOHNSTOWN,NY
+2751,GENESEE COMMUNITY COLLEGE,BATAVIA,NY
+2754,HAMILTON COLLEGE,CLINTON,NY
+2756,HARTWICK COLLEGE,ONEONTA,NY
+2763,HERBERT H LEHMAN COLLEGE-CUNY,BRONX,NY
+2765,HERKIMER COUNTY COMMUNITY COLLEGE,HERKIMER,NY
+2759,HILBERT COLLEGE,HAMBURG,NY
+2758,HOBART & WILLIAM SMITH COLLEGES,GENEVA,NY
+2760,HOFSTRA UNIVERSITY,HEMPSTEAD,NY
+2766,HOUGHTON COLLEGE,HOUGHTON,NY
+2768,HUDSON VALLEY COMMUNITY COLLEGE,TROY,NY
+2770,IONA COLLEGE,NEW ROCHELLE,NY
+2772,ITHACA COLLEGE,ITHACA,NY
+2774,JAMESTOWN COMMUNITY COLLEGE,JAMESTOWN,NY
+2775,JEFFERSON COMMUNITY COLLEGE,WATERTOWN,NY
+2776,JEWISH THEOLOGICAL SEMINARY OF AMERICA,NEW YORK,NY
+2781,JOHN JAY COLL OF CRIMINAL JUSTICE-CUNY,NEW YORK,NY
+2778,"JUILLIARD SCHOOL, THE",NEW YORK,NY
+2779,JUNIOR COLLEGE OF ALBANY,ALBANY,NY
+2787,KATHARINE GIBBS SCHOOL,MELVILLE HUNTINGTON,NY
+2700,KATHARINE GIBBS SCHOOL,NEW YORK,NY
+2782,KEUKA COLLEGE,KEUKA PARK,NY
+2784,KING'S COLLEGE,BRIARCLIFF MANOR,NY
+2790,LEMOYNE COLLEGE,SYRACUSE,NY
+2685,LONG ISLAND U-ARNOLD/MARIE SCHWARTZ COLL,BROOKLYN,NY
+2687,LONG ISLAND U-C W POST CAMPUS,GREENVALE,NY
+2792,LONG ISLAND UNIVERSITY-BROOKLYN CAMPUS,BROOKLYN,NY
+2907,LONG ISLAND U-SOUTHAMPTON CAMPUS,SOUTHAMPTON,NY
+2796,MANHATTAN COLLEGE,RIVERDALE,NY
+2809,MANHATTAN SCHOOL OF MUSIC,NEW YORK,NY
+2800,MANHATTANVILLE COLLEGE,PURCHASE,NY
+2803,MARIA COLLEGE OF ALBANY,ALBANY,NY
+2802,MARIA REGINA COLLEGE,SYRACUSE,NY
+2804,MARIST COLLEGE,POUGHKEEPSIE,NY
+2810,MARYMOUNT COLLEGE,TARRYTOWN,NY
+2811,MARYMOUNT MANHATTAN COLLEGE,NEW YORK,NY
+2799,MATER DEI COLLEGE,OGDENSBURG,NY
+2822,MEDAILLE COLLEGE,BUFFALO,NY
+2824,MEMORIAL HOSPITAL SCHOOL OF NURSING,ALBANY,NY
+2814,MERCY COLLEGE,DOBBS FERRY,NY
+2818,MOHAWK VALLEY COMMUNITY COLLEGE,UTICA,NY
+2820,MOLLOY COLLEGE,ROCKVILLE CENTRE,NY
+2827,MONROE COLLEGE,BRONX,NY
+2821,MONROE COMMUNITY COLLEGE,ROCHESTER,NY
+2819,MOUNT ST MARY COLLEGE,NEWBURGH,NY
+2825,NASSAU COMMUNITY COLLEGE,GARDEN CITY,NY
+2826,NAZARETH COLLEGE OF ROCHESTER,ROCHESTER,NY
+2828,NEW SCHOOL FOR SOCIAL RESEARCH,NEW YORK,NY
+2830,NEW YORK CITY TECHNICAL COLLEGE,BROOKLYN,NY
+2832,NEW YORK INSTITUTE OF TECHNOLOGY,OLD WESTBURY,NY
+2829,NEW YORK SCHOOL OF INTERIOR DESIGN,NEW YORK,NY
+2838,NEW YORK UNIVERSITY,NEW YORK,NY
+2843,NIAGARA COUNTY COMMUNITY COLLEGE,SANBORN,NY
+2842,NIAGARA UNIVERSITY,NIAGARA UNIV,NY
+2864,NORTH COUNTRY COMMUNITY COLLEGE,SARANAC LAKE,NY
+2846,NYACK COLLEGE,NYACK,NY
+2847,ONONDAGA COMMUNITY COLLEGE,SYRACUSE,NY
+2848,ORANGE COUNTY COMMUNITY COLLEGE,MIDDLETOWN,NY
+2852,PACE UNIVERSITY AT NEW YORK CITY,NEW YORK,NY
+2855,PACE UNIVERSITY AT PLEASANTVILLE,PLEASANTVILLE,NY
+2752,PACE UNIVERSITY AT WHITE PLAINS,WHITE PLAINS,NY
+2854,PARSONS SCHOOL OF DESIGN,NEW YORK,NY
+2858,PAUL SMITH'S COLLEGE OF ARTS & SCIENCES,PAUL SMITHS,NY
+2860,POLYTECHNIC INSTITUTE OF NEW YORK,BROOKLYN,NY
+2710,PRACTICAL BIBLE TRAINING SCHOOL,BIBLE SCHOOL PARK,NY
+2862,PRATT INSTITUTE,BROOKLYN,NY
+2863,QUEENSBOROUGH COMMUNITY COLLEGE,BAYSIDE,NY
+2866,RENSSELAER POLYTECHNIC INSTITUTE,TROY,NY
+2868,ROBERTS WESLEYAN COLLEGE,ROCHESTER,NY
+2870,ROCHESTER INSTITUTE OF TECHNOLOGY,ROCHESTER,NY
+2873,ROCKLAND COMMUNITY COLLEGE,SUFFERN,NY
+2876,RUSSELL SAGE COLLEGE,TROY,NY
+2880,SAMARITAN HOSPITAL SCHOOL OF NURSING,TROY,NY
+2904,SARAH LAWRENCE COLLEGE,BRONXVILLE,NY
+2892,SCHENECTADY COUNTY COMMUNITY COLLEGE,SCHENECTADY,NY
+2895,SCHOOL OF VISUAL ARTS,NEW YORK,NY
+2878,SIENA COLLEGE,LOUDONVILLE,NY
+2905,SIMMONS SCHOOL OF MORTUARY SCIENCE,SYRACUSE,NY
+2906,SKIDMORE COLLEGE,SARATOGA SPRINGS,NY
+2882,ST BONAVENTURE UNIVERSITY,ST BONAVENTURE,NY
+2989,ST ELIZABETH HOSPITAL SCHOOL OF NURSING,UTICA,NY
+2884,ST FRANCIS COLLEGE,BROOKLYN,NY
+2886,ST JOHN FISHER COLLEGE,ROCHESTER,NY
+2888,ST JOHN'S UNIVERSITY,JAMAICA,NY
+2844,ST JOHNS UNIVERSITY OF STATEN ISLAND,STATEN ISLAND,NY
+2890,ST JOSEPH'S COLLEGE,BROOKLYN,NY
+2896,ST LAWRENCE UNIVERSITY,CANTON,NY
+2689,ST MARY'S HOSPITAL SCHOOL OF NURSING,AMSTERDAM,NY
+2897,ST THOMAS AQUINAS COLLEGE,SPARKILL,NY
+2926,STATE UNIV OF NEW YORK AT ALBANY,ALBANY,NY
+2978,STATE UNIV OF NEW YORK AT BUFFALO,BUFFALO,NY
+2956,STATE UNIV OF NEW YORK-BINGHAMTON,BINGHAMTON,NY
+2952,STATE UNIV OF NEW YORK-STONY BROOK,STONY BROOK,NY
+2910,STATE UNIV OF NY AG TECH COLL-ALFRED,ALFRED,NY
+2912,STATE UNIV OF NY AG TECH COLL-CANTON,CANTON,NY
+2914,STATE UNIV OF NY AG TECH COLL-COBLESKLL,COBLESKILL,NY
+2916,STATE UNIV OF NY AG TECH COLL-DELHI,DELHI,NY
+2930,STATE UNIV OF NY COLL AT BUFFALO,BUFFALO,NY
+2932,STATE UNIV OF NY COLL AT CORTLAND,CORTLAND,NY
+2934,STATE UNIV OF NY COLL AT FREDONIA,FREDONIA,NY
+2936,STATE UNIV OF NY COLL AT GENESEO,GENESEO,NY
+2938,STATE UNIV OF NY COLL AT NEW PALTZ,NEW PALTZ,NY
+2939,STATE UNIV OF NY COLL AT OLD WESTBURY,OLD WESTBURY,NY
+2940,STATE UNIV OF NY COLL AT ONEONTA,ONEONTA,NY
+2942,STATE UNIV OF NY COLL AT OSWEGO,OSWEGO,NY
+2944,STATE UNIV OF NY COLL AT PLATTSBURGH,PLATTSBURGH,NY
+2946,STATE UNIV OF NY COLL AT POTSDAM,POTSDAM,NY
+2931,STATE UNIV OF NY COLL AT PURCHASE,PURCHASE,NY
+2947,STATE UNIV OF NY COLL AT UTICA/ROME,UTICA,NY
+2948,STATE UNIV OF NY COLL ENVIRON/FORESTRY,SYRACUSE,NY
+2918,STATE UNIV OF NY COLL OF TECH-FARMINGDLE,FARMINGDALE,NY
+2954,STATE UNIV OF NY MARITIME COLLEGE,"FORT SCHUYLER, BRONX",NY
+2981,STATE UNIV OF NY UPSTATE MEDICAL CENTER,SYRACUSE,NY
+2833,SUFFOLK COUNTY COMM COLL-EASTERN CAMPUS,SELDEN,NY
+2997,SUFFOLK COUNTY COMM COLL-WESTERN CAMPUS,SELDEN,NY
+2965,SUFFOLK COUNTY COMMUNITY COLLEGE,SELDEN,NY
+2967,SULLIVAN COUNTY COMMUNITY COLLEGE,LOCH SHELDRAKE,NY
+2968,SYRACUSE UNIVERSITY,SYRACUSE,NY
+2963,TOMPKINS-CORTLAND COMMUNITY COLLEGE,DRYDEN,NY
+2961,TOURO COLLEGE,NEW YORK,NY
+2964,TROCAIRE COLLEGE,BUFFALO,NY
+2974,U S MERCHANT MARINE ACADEMY,KINGS POINT,NY
+2976,U S MILITARY ACADEMY,WEST POINT,NY
+2971,ULSTER COUNTY COMMUNITY COLLEGE,STONE RIDGE,NY
+2970,UNION COLLEGE,SCHENECTADY,NY
+2980,UNIVERSITY OF ROCHESTER,ROCHESTER,NY
+2960,UNIVERSITY OF THE STATE OF NEW YORK,ALBANY,NY
+2973,UTICA COLLEGE OF SYRACUSE UNIV,UTICA,NY
+2975,UTICA SCHOOL OF COMMERCE,UTICA,NY
+2982,VASSAR COLLEGE,POUGHKEEPSIE,NY
+2983,VILLA MARIA COLLEGE OF BUFFALO,BUFFALO,NY
+2986,WADHAMS HALL SEMINARY-COLLEGE,OGDENSBURG,NY
+2984,WAGNER COLLEGE,STATEN ISLAND,NY
+2987,WEBB INSTITUTE OF NAVAL ARCH,GLEN COVE,NY
+2988,WELLS COLLEGE,AURORA,NY
+2990,WESTCHESTER COMMUNITY COLLEGE,VALHALLA,NY
+2761,WILLIAM SMITH COLLEGE,GENEVA,NY
+2991,WORD OF LIFE BIBLE INSTITUTE,POTTERSVILLE,NY
+2992,YESHIVA UNIVERSITY,NEW YORK,NY
+1827,AIR FORCE INSTITUTE OF TECHNOLOGY,WRIGHT PATTERSON AFB,OH
+3597,AKRON CITY HOSP FIRESTONE SCHOOL/NURSING,AKRON,OH
+3227,ALLEGHENY WESLEYAN COLLEGE,SALEM,OH
+3232,ANTIOCH COLLEGE,YELLOW SPRINGS,OH
+3234,ASHLAND UNIVERSITY,ASHLAND,OH
+3229,AULTMAN HOSPITAL SCH OF RADIOLOGIC TECH,CANTON,OH
+3228,AULTMAN HOSPITAL SCHOOL OF NURSING,CANTON,OH
+3236,BALDWIN WALLACE COLLEGE,BEREA,OH
+3230,BELMONT TECHNICAL COLLEGE,ST CLAIRSVILLE,OH
+3269,BETHESDA HOSPITAL SCHOOL OF NURSING,CINCINNATI,OH
+3233,BLISS COLLEGE,COLUMBUS,OH
+3238,BLUFFTON COLLEGE,BLUFFTON,OH
+3292,BORROMEO COLLEGE OF OHIO,WICKLIFFE,OH
+3240,BOWLING GREEN STATE UNIVERSITY,BOWLING GREEN,OH
+3242,CAPITAL UNIVERSITY,COLUMBUS,OH
+3244,CASE WESTERN RESERVE UNIVERSITY,CLEVELAND,OH
+3245,CEDARVILLE COLLEGE,CEDARVILLE,OH
+3365,CENTRAL OHIO TECHNICAL COLLEGE,NEWARK,OH
+3246,CENTRAL STATE UNIVERSITY,WILBERFORCE,OH
+3252,CHRIST HOSPITAL SCHOOL OF NURSING,CINCINNATI,OH
+3376,CHRISTIAN UNION SCHOOL OF THE BIBLE,GREENFIELD,OH
+3248,CINCINNATI BIBLE COLLEGE,CINCINNATI,OH
+3251,"CINCINNATI COLL OF MORTUARY SCIENCE,THE",CINCINNATI,OH
+5570,CINCINNATI TECHNICAL COLLEGE,CINCINNATI,OH
+3249,CIRCLEVILLE BIBLE COLLEGE,CIRCLEVILLE,OH
+3247,CLARK STATE COMMUNITY COLLEGE,SPRINGFIELD,OH
+3243,"CLEVELAND INSTITUTE OF ART, THE",CLEVELAND,OH
+3250,CLEVELAND INSTITUTE OF MUSIC,CLEVELAND,OH
+3301,CLEVELAND METRO GENERAL HOSP OF NURSING,CLEVELAND,OH
+3270,CLEVELAND STATE UNIVERSITY,CLEVELAND,OH
+3254,COLLEGE OF MOUNT ST JOSEPH,MOUNT ST JOSEPH,OH
+3260,COLLEGE OF WOOSTER,WOOSTER,OH
+3281,COLUMBUS COLLEGE OF ART & DESIGN,COLUMBUS,OH
+3261,COLUMBUS STATE COMMUNITY COLLEGE,COLUMBUS,OH
+3333,COMMUNITY HOSPITAL SCHOOL OF NURSING,SPRINGFIELD,OH
+3259,CUYAHOGA COMM COLLEGE-EASTERN CAMPUS,WARRENSVILLE TOWNSHI,OH
+3265,CUYAHOGA COMM COLLEGE-WESTERN CAMPUS,PARMA,OH
+3263,CUYAHOGA COMM COLL-METROPOLITAN CAMPUS,CLEVELAND,OH
+3285,DEACONESS HOSPITAL SCHOOL OF NURSING,CINCINNATI,OH
+3264,DEFIANCE COLLEGE,DEFIANCE,OH
+3266,DENISON UNIVERSITY,GRANVILLE,OH
+3262,DEVRY INSTITUTE OF TECHNOLOGY,COLUMBUS,OH
+3268,DYKE COLLEGE,CLEVELAND,OH
+3377,EDISON STATE COMMUNITY COLLEGE,PIQUA,OH
+3271,FAIRVIEW GENERAL HOSP SCHOOL OF NURSING,CLEVELAND,OH
+3258,FRANCISCAN UNIVERSITY OF STEUBENVILLE,STEUBENVILLE,OH
+3275,FRANKLIN UNIVERSITY,COLUMBUS,OH
+3325,GOD'S BIBLE SCHOOL AND COLLEGE,CINCINNATI,OH
+3375,GOOD SAMARITAN HOSPITAL SCH OF NURSING,CINCINNATI,OH
+3278,HEIDELBERG COLLEGE,TIFFIN,OH
+3327,HERITAGE BAPTIST UNIVERSITY,NORTH JACKSON,OH
+3280,HIRAM COLLEGE,HIRAM,OH
+3352,HOCKING TECHNICAL COLLEGE,NELSONVILLE,OH
+3369,HURON ROAD HOSPITAL SCHOOL OF NURSING,CLEVELAND,OH
+3373,JEFFERSON TECHNICAL COLLEGE,STEUBENVILLE,OH
+3282,JOHN CARROLL UNIVERSITY,UNIVERSITY HEIGHTS,OH
+3773,KENT STATE UNIV-ASHTABULA CAMPUS,ASHTABULA,OH
+3225,KENT STATE UNIV-EAST LIVERPOOL CAMPUS,EAST LIVERPOOL,OH
+3284,KENT STATE UNIVERSITY,KENT,OH
+3224,KENT STATE UNIV-GEAUGA CAMPUS,BURTON,OH
+3283,KENT STATE UNIV-PLANISEK BRANCH CAMPUS,KENT,OH
+3354,KENT STATE UNIV-SALEM CAMPUS,SALEM,OH
+3226,KENT STATE UNIV-STARK CAMPUS,CANTON,OH
+3343,KENT STATE UNIV-TRUMBULL CAMPUS,WARREN,OH
+3361,KENT STATE UNIV-TUSCARAWAS CAMPUS,NEW PHILDELPHIA,OH
+3286,KENYON COLLEGE,GAMBIER,OH
+3279,KETTERING COLLEGE OF MEDICAL ARTS,KETTERING,OH
+3288,LAKE ERIE COLLEGE,PAINESVILLE,OH
+3277,LAKELAND COMMUNITY COLLEGE,MENTOR,OH
+3359,LIMA TECHNICAL COLLEGE,LIMA,OH
+3287,LORAIN COUNTY COMMUNITY COLLEGE,ELYRIA,OH
+3598,LOURDES COLLEGE,SYLVANIA,OH
+3291,M B JOHNSON SCHOOL OF NURSING,ELYRIA,OH
+3289,MALONE COLLEGE,CANTON,OH
+3307,MANSFIELD GENERAL HOSP SCH OF NURSING,MANSFIELD,OH
+3599,MARIETTA BIBLE COLLEGE,MARIETTA,OH
+3290,MARIETTA COLLEGE,MARIETTA,OH
+3351,MARION TECHNICAL COLLEGE,MARION,OH
+3294,MIAMI UNIVERSITY,OXFORD,OH
+3303,MIAMI UNIVERSITY-HAMILTON CAMPUS,HAMILTON,OH
+3299,MIAMI UNIVERSITY-MIDDLETOWN CAMPUS,MIDDLETOWN,OH
+3296,MIAMI-JACOBS JUNIOR COLLEGE OF BUSINESS,DAYTON,OH
+3297,MOUNT CARMEL SCHOOL OF NURSING,COLUMBUS,OH
+3298,MOUNT UNION COLLEGE,ALLIANCE,OH
+3372,MOUNT VERNON NAZARENE COLLEGE,MOUNT VERNON,OH
+3305,MUSKINGUM AREA TECHNICAL COLLEGE,ZANESVILLE,OH
+3300,MUSKINGUM COLLEGE,NEW CONCORD,OH
+3255,NATIONAL EDUC CENTER-NIT CAMPUS-OHIO,CUYAHOGA FALLS,OH
+3374,NORTH CENTRAL TECHNICAL COLLEGE,MANSFIELD,OH
+3315,NORTHEASTERN OHIO U COLLEGE OF MEDICINE,ROOTSTOWN,OH
+3356,NORTHWEST TECHNICAL COLLEGE,ARCHBOLD,OH
+3302,NOTRE DAME COLLEGE OF OHIO,CLEVELAND,OH
+3304,OBERLIN COLLEGE,OBERLIN,OH
+3256,OHIO DOMINICAN COLLEGE,COLUMBUS,OH
+3310,OHIO NORTHERN UNIVERSITY,ADA,OH
+3311,OHIO STATE UNIV AGRIC TECH INSTITUTE,WOOSTER,OH
+3312,OHIO STATE UNIVERSITY,COLUMBUS,OH
+3320,OHIO STATE UNIVERSITY-LIMA,LIMA,OH
+3337,OHIO STATE UNIVERSITY-NEWARK,NEWARK,OH
+3314,OHIO UNIVERSITY,ATHENS,OH
+3317,OHIO UNIVERSITY-BELMONT CAMPUS,ST CLAIRSVILLE,OH
+3313,OHIO UNIVERSITY-CHILLICOTHE CAMPUS,CHILLICOTHE,OH
+3370,OHIO UNIVERSITY-IRONTON CAMPUS,IRONTON,OH
+3326,OHIO UNIVERSITY-LANCASTER CAMPUS,LANCASTER,OH
+3322,OHIO UNIVERSITY-ZANESVILLE CAMPUS,ZANESVILLE,OH
+3329,OHIO VALLEY HOSPITAL SCHOOL OF NURSING,STEUBENVILLE,OH
+3316,OHIO WESLEYAN UNIVERSITY,DELAWARE,OH
+3318,OTTERBEIN COLLEGE,WESTERVILLE,OH
+3323,OWENS COMMUNITY COLLEGE,TOLEDO,OH
+3321,PONTIFICAL COLLEGE JOSEPHINUM,COLUMBUS,OH
+3328,PROVIDENCE HOSP SCH OF RADIOLOGIC TECH,SANDUSKY,OH
+3319,PROVIDENCE HOSPITAL SCHOOL OF NURSING,SANDUSKY,OH
+3222,RIVERSIDE METH HOSP SCH/RADIOLOGIC TECH,COLUMBUS,OH
+3336,SHAWNEE STATE UNIVERSITY,PORTSMOUTH,OH
+3332,SINCLAIR COMMUNITY COLLEGE,DAYTON,OH
+3253,SOUTHERN OHIO COLLEGE,CINCINNATI,OH
+3276,SOUTHERN STATE COMMUNITY COLLEGE,HILLSBORO,OH
+3257,ST ALEXIS HOSPITAL SCHOOL OF NURSING,CLEVELAND,OH
+3341,ST ELIZABETH HOSPITAL SCHOOL OF NURSING,YOUNGSTOWN,OH
+3331,ST THOMAS HOSPITAL SCHOOL OF NURSING,AKRON,OH
+3330,ST VINCENT CHARITY HOSPITAL SCH/NURSING,CLEVELAND,OH
+5077,ST VINCENT MEDICAL CENTER SCH/NURSING,TOLEDO,OH
+3345,STARK TECHNICAL COLLEGE,CANTON,OH
+3347,TEMPLE BAPTIST COLLEGE,CINCINNATI,OH
+3353,TERRA TECHNICAL COLLEGE,FREMONT,OH
+3231,THE ART ACADEMY OF CINCINNATI,CINCINNATI,OH
+3334,TIFFIN UNIVERSITY,TIFFIN,OH
+3350,TOLEDO HOSPITAL SCHOOL OF NURSING,TOLEDO,OH
+3335,TRUMBULL MEMORIAL HOSPITAL SCH/NURSING,WARREN,OH
+3338,UNIVERSITY OF AKRON,AKRON,OH
+3340,UNIVERSITY OF CINCINNATI,CINCINNATI,OH
+3342,UNIVERSITY OF DAYTON,DAYTON,OH
+3272,UNIVERSITY OF FINDLAY,FINDLAY,OH
+3324,UNIVERSITY OF RIO GRANDE,RIO GRANDE,OH
+3344,UNIVERSITY OF TOLEDO,TOLEDO,OH
+3346,URBANA UNIVERSITY,URBANA,OH
+3348,URSULINE COLLEGE,PEPPER PIKE,OH
+3349,WALSH UNIVERSITY,CANTON,OH
+3367,WASHINGTON TECHNICAL COLLEGE,MARIETTA,OH
+3267,WAYNE GENERAL & TECHNICAL COLLEGE,ORRVILLE,OH
+3360,WILBERFORCE UNIVERSITY,WILBERFORCE,OH
+3362,WILMINGTON COLLEGE,WILMINGTON,OH
+3364,WITTENBERG UNIVERSITY,SPRINGFIELD,OH
+3295,WRIGHT STATE UNIVERSITY,DAYTON,OH
+3366,XAVIER UNIVERSITY,CINCINNATI,OH
+3368,YOUNGSTOWN STATE UNIVERSITY,YOUNGSTOWN,OH
+3380,BACONE COLLEGE,MUSKOGEE,OK
+3387,BARTLESVILLE WESLEYAN COLLEGE,BARTLESVILLE,OK
+3386,CAMERON UNIVERSITY,LAWTON,OK
+3430,CARL ALBERT STATE COLLEGE,POTEAU,OK
+3388,CENTRAL OKLAHOMA AVT SCHOOL,DRUMRIGHT,OK
+3392,CONNORS STATE COLLEGE,WARNER,OK
+3394,EAST CENTRAL UNIVERSITY,ADA,OK
+3396,EASTERN OKLAHOMA STATE COLLEGE,WILBURTON,OK
+3413,HILLSDALE FREE WILL BAPTIST COLLEGE,MOORE,OK
+3400,LANGSTON UNIVERSITY,LANGSTON,OK
+4097,MID-AMERICA BIBLE COLLEGE,OKLAHOMA CITY,OK
+3402,MURRAY STATE COLLEGE,TISHOMINGO,OK
+3446,NATIONAL EDUC CENTER-NIT CAMPUS-OKLA,OKLAHOMA CITY,OK
+3406,NORTHEASTERN OKLAHOMA A&M COLLEGE,MIAMI,OK
+3408,NORTHEASTERN STATE UNIVERSITY,TAHLEQUAH,OK
+3410,NORTHERN OKLAHOMA COLLEGE,TONKAWA,OK
+3412,NORTHWESTERN OKLAHOMA STATE UNIVERSITY,ALVA,OK
+3381,OKLAHOMA BAPTIST COLLEGE AND INSTITUTE,OKLAHOMA CITY,OK
+3414,OKLAHOMA BAPTIST UNIVERSITY,SHAWNEE,OK
+3415,OKLAHOMA CHRISTIAN COLLEGE,OKLAHOMA CITY,OK
+3431,OKLAHOMA CITY COMMUNITY COLLEGE,OKLAHOMA CITY,OK
+3416,OKLAHOMA CITY UNIVERSITY,OKLAHOMA CITY,OK
+3422,OKLAHOMA COLLEGE OF BUSINESS&TECHNOLOGY,TULSA,OK
+3417,OKLAHOMA MISSIONARY BAPT COLL INST & SEM,MARLOW,OK
+3426,OKLAHOMA PANHANDLE STATE UNIVERSITY,GOODWELL,OK
+3425,OKLAHOMA STATE UNIVERSITY,OKMULGEE,OK
+3424,OKLAHOMA STATE UNIVERSITY,STILLWATER,OK
+3423,OKLAHOMA STATE UNIVERSITY TECH INST,OKLAHOMA CITY,OK
+3427,ORAL ROBERTS UNIVERSITY,TULSA,OK
+3428,PHILLIPS UNIVERSITY,ENID,OK
+3398,REDLANDS COMMUNITY COLLEGE,EL RENO,OK
+3420,ROGERS UNIVERSITY,CLAREMORE,OK
+3403,ROSE STATE COLLEGE,MIDWEST CITY,OK
+3434,SAYRE JUNIOR COLLEGE,SAYRE,OK
+3436,SEMINOLE STATE COLLEGE,SEMINOLE,OK
+3438,SOUTHEASTERN OKLAHOMA STATE UNIVERSITY,DURANT,OK
+3384,SOUTHERN NAZARENE UNIVERSITY,BETHANY,OK
+3437,SOUTHERN NAZARENE UNIVERSITY,BETHANY,OK
+3439,SOUTHWESTERN COLL CHRISTIAN MINISTRIES,BETHANY,OK
+3440,SOUTHWESTERN OKLAHOMA STATE UNIVERSITY,WEATHERFORD,OK
+3443,SPARTAN SCHOOL OF AERONAUTICS,TULSA,OK
+3432,ST GREGORY'S COLLEGE,SHAWNEE,OK
+3441,TULSA COMMUNITY COLLEGE,TULSA,OK
+3390,UNIVERSITY OF CENTRAL OKLAHOMA,EDMOND,OK
+3442,UNIVERSITY OF OKLAHOMA,NORMAN,OK
+3418,UNIVERSITY OF SCIENCE & ARTS OF OKLA,CHICKASHA,OK
+3444,UNIVERSITY OF TULSA,TULSA,OK
+3378,WESTERN OKLAHOMA STATE COLLEGE,ALTUS,OK
+3455,BLUE MOUNTAIN COMMUNITY COLLEGE,PENDLETON,OR
+3457,CENTRAL OREGON COMMUNITY COLLEGE,BEND,OR
+3493,CHEMEKETA COMMUNITY COLLEGE,SALEM,OR
+3465,CLACKAMAS COMMUNITY COLLEGE,OREGON CITY,OR
+3461,CLATSOP COMMUNITY COLLEGE,ASTORIA,OR
+3459,COLUMBIA CHRISTIAN COLLEGE,PORTLAND,OR
+3458,CONCORDIA UNIVERSITY,PORTLAND,OR
+3460,EASTERN OREGON STATE COLLEGE,LA GRANDE,OR
+3468,EUGENE BIBLE COLLEGE,EUGENE,OR
+3462,GEORGE FOX COLLEGE,NEWBERG,OR
+3467,JUDSON BAPTIST COLLEGE,THE DALLES,OR
+3463,LANE COMMUNITY COLLEGE,EUGENE,OR
+3464,LEWIS AND CLARK COLLEGE,PORTLAND,OR
+3466,LINFIELD COLLEGE,MCMINNVILLE,OR
+3510,LINFIELD-GOOD SAMARITAN BACC SCH/NRSING,PORTLAND,OR
+3469,LINN-BENTON COMMUNITY COLLEGE,ALBANY,OR
+3472,MOUNT ANGEL SEMINARY,ST BENEDICT,OR
+3473,MOUNT HOOD COMMUNITY COLLEGE,GRESHAM,OR
+3476,MULTNOMAH SCHOOL OF THE BIBLE,PORTLAND,OR
+3478,NORTHWEST CHRISTIAN COLLEGE,EUGENE,OR
+3481,OREGON GRADUATE INSTITUTE,PORTLAND,OR
+3491,OREGON HEALTH SCIENCES UNIVERSITY,PORTLAND,OR
+3484,OREGON INSTITUTE OF TECHNOLOGY,KLAMATH FALLS,OR
+3482,OREGON STATE UNIVERSITY,CORVALLIS,OR
+3477,PACIFIC NORTHWEST COLLEGE OF ART,PORTLAND,OR
+3488,PACIFIC UNIVERSITY,FOREST GROVE,OR
+3489,PORTLAND COMMUNITY COLLEGE,PORTLAND,OR
+3492,PORTLAND STATE UNIVERSITY,PORTLAND,OR
+3494,REED COLLEGE,PORTLAND,OR
+3490,ROGUE COMMUNITY COLLEGE,GRANTS PASS,OR
+3496,SOUTHERN OREGON STATE COLLEGE,ASHLAND,OR
+3495,SOUTHWESTERN OREGON COMMUNITY COLLEGE,COOS BAY,OR
+3497,TREASURE VALLEY COMMUNITY COLLEGE,ONTARIO,OR
+3502,UMPQUA COMMUNITY COLLEGE,ROSEBURG,OR
+3498,UNIVERSITY OF OREGON,EUGENE,OR
+3500,UNIVERSITY OF PORTLAND,PORTLAND,OR
+3486,WARNER PACIFIC COLLEGE,PORTLAND,OR
+0477,WESTERN BAPTIST COLLEGE,SALEM,OR
+3479,WESTERN CONSERVATIVE BAPTIST SEMINARY,PORTLAND,OR
+3480,WESTERN OREGON STATE COLLEGE,MONMOUTH,OR
+3504,WILLAMETTE UNIVERSITY,SALEM,OR
+3727,"ACADEMY OF THE NEW CHURCH COLLEGE, THE",BRYN ATHYN,PA
+3518,ALBRIGHT COLLEGE,READING,PA
+3520,ALLEGHENY COLLEGE,MEADVILLE,PA
+3525,ALLENTOWN COLL OF ST FRANCIS DE SALES,CENTER VALLEY,PA
+3522,ALLIANCE COLLEGE,CAMBRIDGE SPRINGS,PA
+3521,ALVERNIA COLLEGE,READING,PA
+0690,ASSOC. OF CHRISTIAN SCHOOLS INTERNAT'L,NEWTOWN SQUARE,PA
+3523,BAPTIST BIBLE COLLEGE OF PA,CLARKS SUMMIT,PA
+3524,BEAVER COLLEGE,GLENSIDE,PA
+3692,BLOOMSBURG UNIVERSITY OF PENNSYLVANIA,BLOOMSBURG,PA
+3526,BRYN MAWR COLLEGE,BRYN MAWR,PA
+3528,BUCKNELL UNIVERSITY,LEWISBURG,PA
+3529,BUCKS COUNTY COMMUNITY COLLEGE,NEWTOWN,PA
+3527,BUTLER COUNTY COMMUNITY COLLEGE,BUTLER,PA
+3532,CABRINI COLLEGE,RADNOR,PA
+3694,CALIFORNIA UNIVERSITY OF PENNSYLVANIA,CALIFORNIA,PA
+3638,CARLOW COLLEGE,PITTSBURGH,PA
+3534,CARNEGIE-MELLON UNIVERSITY,PITTSBURGH,PA
+3536,CEDAR CREST COLLEGE,ALLENTOWN,PA
+3538,CHATHAM COLLEGE,PITTSBURGH,PA
+3540,CHESTNUT HILL COLLEGE,PHILADELPHIA,PA
+3696,CHEYNEY UNIVERSITY OF PENNSYLVANIA,CHEYNEY,PA
+3698,CLARION UNIV OF PENNSYLVANIA,CLARION,PA
+3699,CLARION UNIV OF PENNSYLVANIA-VENANGO,OIL CITY,PA
+3539,COLLEGE OF MISERICORDIA,DALLAS,PA
+3541,COMMUNITY COLL ALLEGHENY COUNTY-ALLEGH,PITTSBURGH,PA
+3547,COMMUNITY COLL ALLEGHENY COUNTY-BOYCE,PITTSBURGH,PA
+3548,COMMUNITY COLL ALLEGHENY COUNTY-NORTH,PITTSBURGH,PA
+3549,COMMUNITY COLL ALLEGHENY COUNTY-SOUTH,PITTSBURGH,PA
+3545,COMMUNITY COLLEGE OF BEAVER COUNTY,MONACA,PA
+3543,COMMUNITY COLLEGE OF PHILADELPHIA,PHILADELPHIA,PA
+3542,DELAWARE COUNTY COMMUNITY COLLEGE,MEDIA,PA
+3551,DELAWARE VALLEY COLLEGE,DOYLESTOWN,PA
+3550,DICKINSON COLLEGE,CARLISLE,PA
+3556,DREXEL UNIVERSITY,PHILADELPHIA,PA
+3560,DUQUESNE UNIVERSITY,PITTSBURGH,PA
+3700,EAST STROUDSBURG UNIVERSITY,EAST STROUDSBURG,PA
+3562,EASTERN COLLEGE,SAINT DAVIDS,PA
+3702,EDINBORO UNIVERSITY OF PENNSYLVANIA,EDINBORO,PA
+3568,ELIZABETHTOWN COLLEGE,ELIZABETHTOWN,PA
+3574,FRANKLIN AND MARSHALL COLLEGE,LANCASTER,PA
+3576,GANNON UNIVERSITY,ERIE,PA
+3578,GENEVA COLLEGE,BEAVER FALLS,PA
+3580,GETTYSBURG COLLEGE,GETTYSBURG,PA
+3582,GROVE CITY COLLEGE,GROVE CITY,PA
+3583,GWYNEDD-MERCY COLLEGE,GWYNEDD VALLEY,PA
+3586,HAHNEMANN UNIVERSITY,PHILADELPHIA,PA
+3588,HARCUM JUNIOR COLLEGE,BRYN MAWR,PA
+3589,HARRISBURG AREA COMMUNITY COLLEGE,HARRISBURG,PA
+3590,HAVERFORD COLLEGE,HAVERFORD,PA
+3592,HOLY FAMILY COLLEGE,PHILADELPHIA,PA
+3596,IMMACULATA COLLEGE,IMMACULATA,PA
+3704,INDIANA UNIVERSITY OF PENNSYLVANIA,INDIANA,PA
+3600,JUNIATA COLLEGE,HUNTINGDON,PA
+3602,KEYSTONE JUNIOR COLLEGE,LA PLUME,PA
+3604,KINGS COLLEGE,WILKES-BARRE,PA
+3706,KUTZTOWN UNIVERSITY OF PENNSYLVANIA,KUTZTOWN,PA
+3607,LA ROCHE COLLEGE,PITTSBURGH,PA
+3608,LA SALLE UNIVERSITY,PHILADELPHIA,PA
+3605,LACKAWANNA JUNIOR COLLEGE,SCRANTON,PA
+3606,LAFAYETTE COLLEGE,EASTON,PA
+3707,LANCASTER BIBLE COLLEGE,LANCASTER,PA
+3709,LANKENAU HOSPITAL SCHOOL OF NURSING,PHILADELPHIA,PA
+3610,LEBANON VALLEY COLLEGE,ANNVILLE,PA
+3611,LEHIGH CARBON COMMUNITY COLLEGE,SCHNECKSVILLE,PA
+3612,LEHIGH UNIVERSITY,BETHLEHEM,PA
+3614,LINCOLN UNIVERSITY,LINCOLN UNIV,PA
+3708,LOCK HAVEN UNIVERSITY OF PENNSYLVANIA,LOCK HAVEN,PA
+3616,LUZERNE COUNTY COMMUNITY COLLEGE,NANTICOKE,PA
+3622,LYCOMING COLLEGE,WILLIAMSPORT,PA
+3625,MANNA BIBLE INSTITUTE,PHILADELPHIA,PA
+3628,MANOR JUNIOR COLLEGE,JENKINTOWN,PA
+3710,MANSFIELD UNIVERSITY OF PENNSYLVANIA,MANSFIELD,PA
+3626,MARYWOOD COLLEGE,SCRANTON,PA
+3629,MERCYHURST COLLEGE,ERIE,PA
+3630,MESSIAH COLLEGE,GRANTHAM,PA
+3712,MILLERSVILLE UNIVERSITY OF PENNSYLVANIA,MILLERSVILLE,PA
+3641,MONTGOMERY COUNTY COMMUNITY COLLEGE,BLUE BELL,PA
+3632,MOORE COLLEGE OF ART,PHILADELPHIA,PA
+3634,MORAVIAN COLLEGE,BETHLEHEM,PA
+3635,MOUNT ALOYSIUS JUNIOR COLLEGE,CRESSON,PA
+3640,MUHLENBERG COLLEGE,ALLENTOWN,PA
+3649,NEUMANN COLLEGE,ASTON,PA
+3644,NEW SCHOOL OF MUSIC,PHILADELPHIA,PA
+3645,NORTHAMPTON COUNTY AREA COMM COLLEGE,BETHLEHEM,PA
+3647,NORTHEASTERN CHRISTIAN JUNIOR COLLEGE,VILLANOVA,PA
+3659,PEIRCE JUNIOR COLLEGE,PHILADELPHIA,PA
+3654,PENNSYLVANIA COLLEGE OF OPTOMETRY,PHILADELPHIA,PA
+3757,PENNSYLVANIA COLLEGE OF TECHNOLOGY,WILLIAMSPORT,PA
+3648,PENNSYLVANIA STATE U-NEW KENSINGTON,NEW KENSINGTON,PA
+3656,PENNSYLVANIA STATE UNIVERSITY,UNIVERSITY PARK,PA
+3662,PENNSYLVANIA STATE U-SHENANGO VALLEY,SHARON,PA
+3658,PHILADELPHIA COLLEGE OF BIBLE,LANGHORNE,PA
+3668,PHILADELPHIA COLLEGE OF TEXTILES & SCI,PHILADELPHIA,PA
+3670,PHILADELPHIA SCHOOL OF OFFICE TRAINING,PHILADELPHIA,PA
+3660,PINEBROOK JUNIOR COLLEGE,COOPERSBURG,PA
+3530,POINT PARK COLLEGE,PITTSBURGH,PA
+3718,READING AREA COMMUNITY COLLEGE,READING,PA
+3674,ROBERT MORRIS COLLEGE,CORAOPOLIS,PA
+3675,ROBERT MORRIS COLLEGE-PITTSBURGH CENTER,CORAOPOLIS,PA
+3676,ROSEMONT COLLEGE,ROSEMONT,PA
+3688,SETON HILL COLLEGE,GREENSBURG,PA
+3714,SHIPPENSBURG UNIVERSITY OF PENNSYLVANIA,SHIPPENSBURG,PA
+3716,SLIPPERY ROCK UNIV OF PENNSYLVANIA,SLIPPERY ROCK,PA
+3717,SPRING GARDEN COLLEGE,PHILADELPHIA,PA
+3682,ST FRANCIS COLLEGE,LORETTO,PA
+3684,ST JOSEPH'S UNIVERSITY,PHILADELPHIA,PA
+3686,ST VINCENT COLLEGE,LATROBE,PA
+3720,SUSQUEHANNA UNIVERSITY,SELINSGROVE,PA
+3722,SWARTHMORE COLLEGE,SWARTHMORE,PA
+3724,TEMPLE UNIVERSITY,PHILADELPHIA,PA
+3730,THIEL COLLEGE,GREENVILLE,PA
+3566,UNITED WESLEYAN COLLEGE,ALLENTOWN,PA
+3732,UNIVERSITY OF PENNSYLVANIA,PHILADELPHIA,PA
+3734,UNIVERSITY OF PITTSBURGH,PITTSBURGH,PA
+3731,UNIVERSITY OF PITTSBURGH AT BRADFORD,BRADFORD,PA
+3733,UNIVERSITY OF PITTSBURGH AT GREENSBURG,GREENSBURG,PA
+3735,UNIVERSITY OF PITTSBURGH AT JOHNSTOWN,JOHNSTOWN,PA
+3737,UNIVERSITY OF PITTSBURGH AT TITUSVILLE,TITUSVILLE,PA
+3736,UNIVERSITY OF SCRANTON,SCRANTON,PA
+3664,UNIVERSITY OF THE ARTS,PHILADELPHIA,PA
+3738,URSINUS COLLEGE,COLLEGEVILLE,PA
+3740,VALLEY FORGE MILITARY JUNIOR COLLEGE,WAYNE,PA
+3742,VILLA MARIA COLLEGE,ERIE,PA
+3744,VILLANOVA UNIVERSITY,VILLANOVA,PA
+3746,WASHINGTON & JEFFERSON COLLEGE,WASHINGTON,PA
+3748,WAYNESBURG COLLEGE,WAYNESBURG,PA
+3750,WEST CHESTER UNIVERSITY OF PENNSYLVANIA,WEST CHESTER,PA
+3752,WESTMINSTER COLLEGE,NEW WILMINGTON,PA
+3754,WESTMORELAND COUNTY COMMUNITY COLLEGE,YOUNGWOOD,PA
+3652,WIDENER UNIVERSITY,CHESTER,PA
+3756,WILKES UNIVERSITY,WILKES-BARRE,PA
+3758,WILSON COLLEGE,CHAMBERSBURG,PA
+3762,YORK COLLEGE OF PENNSYLVANIA,YORK,PA
+5800,AMERICAN COLLEGE OF PUERTO RICO,BAYAMON,PR
+5801,ANA G MENDEZ EDUC FOUNDATION,RIO PIEDRAS,PR
+5802,ANTILLIAN COLLEGE,MAYAGUEZ,PR
+5803,BAYAMON CENTRAL UNIVERSITY,BAYAMON,PR
+5804,CAGUAS CITY COLLEGE,CAGUAS,PR
+5805,CARIBBEAN CENTER FOR ADVANCED STUDIES,SANTURCE,PR
+5806,CARIBBEAN UNIVERSITY COLLEGE,BAYAMON,PR
+5808,CENTER FOR ADV STUDIES ON PR & CARIBB,SAN JUAN,PR
+5809,CHRISTIAN UNIV COLLEGE OF THE AMERICAS,RIO PIEDRAS,PR
+5819,COLEGIO UNIVERSITARIO DEL ESTE,RIO PIEDRAS,PR
+5810,CONSERVATORY OF MUSIC OF PUERTO RICO,SAN JUAN,PR
+5811,ELECTRONIC DATA PROCESSING COLLEGE OF PR,HATO REY,PR
+5812,EVANGELICAL SEMINARY OF PUERTO RICO,HATO REY,PR
+5813,HUERTAS JUNIOR COLLEGE,CAGUAS,PR
+5814,ICPR (INST COMERICAL DE PR) JUNIOR COLL,HATO REY,PR
+5815,INST TECNICO COMERCIAL JUNIOR COLLEGE,RIO PIEDRAS,PR
+5816,INTER AMERICAN UNIVERSITY OF PUERTO RICO,SAN JUAN,PR
+5817,INTRNTNL INST OF AMERICAS OF WORLD UNIV,HATO REY,PR
+5818,METROPOLITAN UNIVERSITY,RIO PIEDRAS,PR
+5807,PONTIFICIA UNIV. CATOLICA DE PUERTO RICO,PONCE,PR
+5820,RAMIREZ COLLEGE OF BUSINESS & TECHNOLOGY,SANTURCE,PR
+5821,TECHNICAL COLLEGE OF SAN JUAN,SANTURCE,PR
+5822,TURABO UNIVERSITY COLLEGE,CAGUAS,PR
+5826,UNIV OF PUERTO RICO - BAYAMON,BAYAMON,PR
+5824,UNIV OF PUERTO RICO-AGUADILLA REG COLL,AGUADILLA,PR
+5825,UNIV OF PUERTO RICO-ARECIBO,ARECIBO,PR
+5827,UNIV OF PUERTO RICO-CAROLINA REGIONAL,CAROLINA,PR
+5828,UNIV OF PUERTO RICO-CAYEY UNIV COLL,CAYEY,PR
+5829,UNIV OF PUERTO RICO-HUMACAO,HUMACAO,PR
+5830,UNIV OF PUERTO RICO-LA MONTANA,UTUADO,PR
+5831,UNIV OF PUERTO RICO-MAYAGUEZ,MAYAGUEZ,PR
+5832,UNIV OF PUERTO RICO-MEDICAL SCIENCES,SAN JUAN,PR
+5833,UNIV OF PUERTO RICO-PONCE TECH UNIV COLL,PONCE,PR
+5834,UNIV OF PUERTO RICO-RIO PIEDRAS,RIO PIEDRAS,PR
+5823,UNIV POLITECNICA DE PUERTO RICO,HATO REY,PR
+5835,UNIVERSITY OF THE SACRED HEART,SANTURCE,PR
+3808,BARRINGTON COLLEGE,BARRINGTON,RI
+3800,BROWN UNIVERSITY,PROVIDENCE,RI
+3802,BRYANT COLLEGE,SMITHFIELD,RI
+3811,COMMUNITY COLLEGE OF RHODE ISLAND,WARWICK,RI
+3804,JOHNSON & WALES COLLEGE,PROVIDENCE,RI
+3805,KATHARINE GIBBS SCHOOL,PROVIDENCE,RI
+3806,PROVIDENCE COLLEGE,PROVIDENCE,RI
+3810,RHODE ISLAND COLLEGE,PROVIDENCE,RI
+3812,RHODE ISLAND SCHOOL OF DESIGN,PROVIDENCE,RI
+3814,ROGER WILLIAMS COLLEGE,BRISTOL,RI
+3816,SALVE REGINA UNIVERSITY,NEWPORT,RI
+3818,UNIVERSITY OF RHODE ISLAND,KINGSTON,RI
+3824,AIKEN TECHNICAL COLLEGE,AIKEN,SC
+3830,ALLEN UNIVERSITY,COLUMBIA,SC
+3832,ANDERSON COLLEGE,ANDERSON,SC
+3834,BENEDICT COLLEGE,COLUMBIA,SC
+3836,BOB JONES UNIVERSITY,GREENVILLE,SC
+3841,CENTRAL CAROLINA TECHNICAL COLLEGE,SUMTER,SC
+3837,CENTRAL WESLEYAN COLLEGE,CENTRAL,SC
+3833,CHARLESTON SOUTHERN UNIVERSITY,CHARLESTON,SC
+3839,CHESTERFIELD-MARLBORO TECHNICAL COLLEGE,CHERAW,SC
+3838,"CITADEL OF SOUTH CAROLINA, THE",CHARLESTON,SC
+3840,CLAFLIN COLLEGE,ORANGEBURG,SC
+3842,CLEMSON UNIVERSITY,CLEMSON,SC
+3843,COASTAL CAROLINA UNIVERSITY,CONWAY,SC
+3844,COKER COLLEGE,HARTSVILLE,SC
+3846,COLLEGE OF CHARLESTON,CHARLESTON,SC
+3848,COLUMBIA BIBLE COLLEGE,COLUMBIA,SC
+3850,COLUMBIA COLLEGE,COLUMBIA,SC
+3852,CONVERSE COLLEGE,SPARTANBURG,SC
+3854,ERSKINE COLLEGE,DUE WEST,SC
+3857,FLORENCE-DARLINGTON TECHNICAL COLLEGE,FLORENCE,SC
+3856,FRANCIS MARION UNIVERSITY,FLORENCE,SC
+3858,FURMAN UNIVERSITY,GREENVILLE,SC
+3827,GREENVILLE TECHNICAL COLLEGE,GREENVILLE,SC
+3863,HOLMES COLLEGE OF THE BIBLE,GREENVILLE,SC
+3864,HORRY-GEORGETOWN TECHNICAL COLLEGE,CONWAY,SC
+3860,LANDER COLLEGE,GREENWOOD,SC
+3862,LIMESTONE COLLEGE,GAFFNEY,SC
+3869,MIDLANDS TECHNICAL COLLEGE,COLUMBIA,SC
+3868,MORRIS COLLEGE,SUMTER,SC
+3870,NEWBERRY COLLEGE,NEWBERRY,SC
+3872,NORTH GREENVILLE COLLEGE,TIGERVILLE,SC
+3865,ORANGEBURG-CALHOUN TECHNICAL COLLEGE,ORANGEBURG,SC
+3829,PIEDMONT TECHNICAL COLLEGE,GREENWOOD,SC
+3874,PRESBYTERIAN COLLEGE,CLINTON,SC
+3876,SOUTH CAROLINA STATE COLLEGE,ORANGEBURG,SC
+3893,SOUTHERN METHODIST COLLEGE,ORANGEBURG,SC
+3878,SPARTANBURG METHODIST COLLEGE,SPARTANBURG,SC
+3825,SPARTANBURG TECHNICAL COLLEGE,SPARTANBURG,SC
+3888,TECHNICAL COLLEGE OF THE LOWCOUNTRY,BEAUFORT,SC
+3883,TRI-COUNTY TECHNICAL COLLEGE,PENDLETON,SC
+3831,TRIDENT TECHNICAL COLLEGE-NORTH CAMPUS,NORTH CHARLESTON,SC
+3871,TRIDENT TECHNICAL COLL-PALMER CAMPUS,CHARLESTON,SC
+3880,UNIV OF SOUTH CAROLINA,COLUMBIA,SC
+3879,UNIV OF SOUTH CAROLINA-AIKEN,AIKEN,SC
+3835,UNIV OF SOUTH CAROLINA-BEAUFORT,BEAUFORT,SC
+3892,UNIV OF SOUTH CAROLINA-FT JACKSON,COLUMBIA,SC
+3859,UNIV OF SOUTH CAROLINA-LANCASTER,LANCASTER,SC
+3881,UNIV OF SOUTH CAROLINA-SALKEHATCHIE,ALLENDALE,SC
+3889,UNIV OF SOUTH CAROLINA-SPARTANBURG,SPARTANBURG,SC
+3885,UNIV OF SOUTH CAROLINA-SUMTER,SUMTER,SC
+3875,UNIV OF SOUTH CAROLINA-UNION,UNION,SC
+3882,VOORHEES COLLEGE,DENMARK,SC
+3884,WINTHROP COLLEGE,ROCK HILL,SC
+3886,WOFFORD COLLEGE,SPARTANBURG,SC
+3887,YORK TECHNICAL COLLEGE,ROCK HILL,SC
+3902,AUGUSTANA COLLEGE,SIOUX FALLS,SD
+3904,BLACK HILLS STATE UNIVERSITY,SPEARFISH,SD
+3905,CHEYENNE RIVER COMMUNITY COLLEGE,EAGLE BUTTE,SD
+3912,COLORADO TECHNICAL UNIVERSITY-S DAKOTA,HURON,SD
+3903,"COMMUNITY COLLEGE, THE",SIOUX FALLS,SD
+3910,DAKOTA STATE UNIVERSITY,MADISON,SD
+3906,DAKOTA WESLEYAN UNIVERSITY,MITCHELL,SD
+3908,FREEMAN JUNIOR COLLEGE,FREEMAN,SD
+3913,KILIAN COMMUNITY COLLEGE,SIOUX FALLS,SD
+3809,LAKE AREA TECHNICAL INSTITUTE,WATERTOWN,SD
+3917,MCKENNAN HOSP SCHOOL OF RADIOLOGIC TECH,SIOUX FALLS,SD
+3925,MITCHELL TECHNICAL INSTITUTE,MITCHELL,SD
+3914,MOUNT MARTY COLLEGE,YANKTON,SD
+3915,NATIONAL AMERICAN UNIVERSITY,RAPID CITY,SD
+4840,NETTLETON COLLEGE,SIOUX FALLS,SD
+3916,NORTHERN STATE UNIVERSITY,ABERDEEN,SD
+3923,OGLALA LAKOTA COLLEGE,KYLE,SD
+3918,PRESENTATION COLLEGE,ABERDEEN,SD
+3919,RAPID CITY REGIONAL SCHOOL OF NURSING,RAPID CITY,SD
+3911,SACRED HEART HOSP SCHOOL/RADIOLOGIC TECH,YANKTON,SD
+3921,SINTE GLESKA COLLEGE,ROSEBUD,SD
+3899,SIOUX VALLEY HOSP SCHOOL/RADIOLOGIC TECH,SIOUX FALLS,SD
+3922,SOUTH DAKOTA SCHOOL OF MINES & TECH,RAPID CITY,SD
+3924,SOUTH DAKOTA STATE UNIVERSITY,BROOKINGS,SD
+3900,SOUTHEAST VOCATIONAL TECHNICAL INSTITUTE,SIOUX FALLS,SD
+3937,ST JOSEPH HOSPITAL SCHOOL OF RADIOLOGY,MITCHELL,SD
+3920,UNIVERSITY OF SIOUX FALLS,SIOUX FALLS,SD
+3928,UNIVERSITY OF SOUTH DAKOTA,VERMILLION,SD
+3929,UNIVERSITY OF SOUTH DAKOTA-SPRINGFIELD,SPRINGFIELD,SD
+3901,WESTERN DAKOTA TECHNICAL INSTITUTE,RAPID CITY,SD
+3930,YANKTON COLLEGE,YANKTON,SD
+3941,AMERICAN BAPTIST COLL OF ABT SEMINARY,NASHVILLE,TN
+3942,AQUINAS JUNIOR COLLEGE,NASHVILLE,TN
+3944,AUSTIN PEAY STATE UNIVERSITY,CLARKSVILLE,TN
+3949,BAPTIST HOSPITAL SCHOOL OF NURSING,MEMPHIS,TN
+4040,BARONESS ERLANGER HOSPITAL SCH/NURSING,CHATTANOOGA,TN
+3946,BELMONT COLLEGE,NASHVILLE,TN
+3948,BETHEL COLLEGE,MCKENZIE,TN
+4038,BRYAN COLLEGE,DAYTON,TN
+3950,CARSON-NEWMAN COLLEGE,JEFFERSON CITY,TN
+4041,CHATTANOOGA STATE TECH COMM COLL,CHATTANOOGA,TN
+3952,CHRISTIAN BROTHERS COLLEGE,MEMPHIS,TN
+3975,CLARKSVILLE BAPTIST COLLEGE,CLARKSVILLE,TN
+3955,CLEVELAND STATE COMMUNITY COLLEGE,CLEVELAND,TN
+3953,COLUMBIA STATE COMMUNITY COLLEGE,COLUMBIA,TN
+3957,COOPER INSTITUTE INC,KNOXVILLE,TN
+3954,CUMBERLAND UNIVERSITY,LEBANON,TN
+3956,DAVID LIPSCOMB COLLEGE,NASHVILLE,TN
+3969,DYERSBURG STATE COMMUNITY COLLEGE,DYERSBURG,TN
+4039,EAST TENNESSEE BAPTIST HOSP SCH/NURSING,KNOXVILLE,TN
+3958,EAST TENNESSEE STATE UNIVERSITY,JOHNSON CITY,TN
+4842,EDMONDSON JUNIOR COLLEGE,CHATTANOOGA,TN
+4044,FAITH BAPTIST BIBLE INST/COLL/SEMINARY,OLIVER SPRINGS,TN
+3960,FISK UNIVERSITY,NASHVILLE,TN
+3963,FORT SANDERS SCHOOL OF NURSING,KNOXVILLE,TN
+3961,FREE WILL BAPTIST BIBLE COLLEGE,NASHVILLE,TN
+3962,FREED-HARDEMAN COLLEGE,HENDERSON,TN
+3966,HIWASSEE COLLEGE,MADISONVILLE,TN
+3967,JACKSON STATE COMMUNITY COLLEGE,JACKSON,TN
+3965,JOHN A GUPTON COLLEGE,NASHVILLE,TN
+3968,JOHNSON BIBLE COLLEGE,KNOXVILLE,TN
+3970,KING COLLEGE,BRISTOL,TN
+5559,KNOXVILLE BUSINESS COLLEGE,KNOXVILLE,TN
+3972,KNOXVILLE COLLEGE,KNOXVILLE,TN
+3974,LAMBUTH COLLEGE,JACKSON,TN
+3976,LANE COLLEGE,JACKSON,TN
+3978,LEE COLLEGE,CLEVELAND,TN
+3980,LEMOYNE-OWEN COLLEGE,MEMPHIS,TN
+3982,LINCOLN MEMORIAL UNIVERSITY,HARROGATE,TN
+3986,MARTIN METHODIST COLLEGE,PULASKI,TN
+3988,MARYVILLE UNIVERSITY OF SAINT LOUIS,MARYVILLE,TN
+3991,MEMPHIS COLLEGE OF ART,MEMPHIS,TN
+3993,METHODIST HOSPITAL SCHOOL OF NURSING,MEMPHIS,TN
+3994,MIDDLE TENNESSEE STATE UNIVERSITY,MURFREESBORO,TN
+3995,MID-SOUTH BIBLE COLLEGE,MEMPHIS,TN
+3996,MILLIGAN COLLEGE,MILLIGAN COLLEGE,TN
+3998,MORRISTOWN COLLEGE,MORRISTOWN,TN
+4003,MOTLOW STATE COMMUNITY COLLEGE,TULLAHOMA,TN
+3983,NASHVILLE STATE TECHNICAL INSTITUTE,NASHVILLE,TN
+4021,PELLISSIPPI STATE TECH COMM COLLEGE,KNOXVILLE,TN
+4008,RHODES COLLEGE,MEMPHIS,TN
+3985,ROANE STATE COMMUNITY COLLEGE,LAFOLLETTE,TN
+4004,SHELBY STATE COMMUNITY COLLEGE,MEMPHIS,TN
+4006,SOUTHERN COLLEGE,COLLEGEDALE,TN
+4009,SOUTHERN COLLEGE OF OPTOMETRY,MEMPHIS,TN
+4023,ST JOSEPH HOSP SCHOOL OF RADIOLOGIC TECH,MEMPHIS,TN
+4007,ST JOSEPH HOSPITAL SCHOOL OF NURSING,MEMPHIS,TN
+4011,ST MARYS MEDICAL CENTER SCH OF NURSING,KNOXVILLE,TN
+4005,STATE TECHNICAL INSTITUTE AT MEMPHIS,MEMPHIS,TN
+4010,TENNESSEE STATE UNIVERSITY,NASHVILLE,TN
+4012,TENNESSEE TECHNOLOGICAL UNIVERSITY,COOKEVILLE,TN
+4013,TENNESSEE TEMPLE UNIVERSITY,CHATTANOOGA,TN
+4014,TENNESSEE WESLEYAN COLLEGE,ATHENS,TN
+4017,TOMLINSON COLLEGE,CLEVELAND,TN
+4016,TREVECCA NAZARENE COLLEGE,NASHVILLE,TN
+4019,TRI-CITIES STATE TECHNICAL INSTITUTE,BLOUNTVILLE,TN
+4018,TUSCULUM COLLEGE,GREENEVILLE,TN
+4020,UNION UNIVERSITY,JACKSON,TN
+4022,UNIV OF TENNESSEE-CHATTANOOGA,CHATTANOOGA,TN
+3992,UNIVERSITY OF MEMPHIS,MEMPHIS,TN
+4030,UNIVERSITY OF TENNESSEE-CTR HEALTH SCI,MEMPHIS,TN
+4026,UNIVERSITY OF TENNESSEE-KNOXVILLE,KNOXVILLE,TN
+4032,UNIVERSITY OF TENNESSEE-MARTIN,MARTIN,TN
+4024,UNIVERSITY OF THE SOUTH,SEWANEE,TN
+4036,VANDERBILT UNIVERSITY,NASHVILLE,TN
+4037,VOLUNTEER STATE COMMUNITY COLLEGE,GALLATIN,TN
+4028,WALTERS STATE COMMUNITY COLLEGE,MORRISTOWN,TN
+4042,"WM R MOORE SCHOOL OF TECHNOLOGY, THE",MEMPHIS,TN
+4050,ABILENE CHRISTIAN UNIVERSITY,ABILENE,TX
+4054,ALVIN COMMUNITY COLLEGE,ALVIN,TX
+4056,AMARILLO COLLEGE,AMARILLO,TX
+4051,AMBASSADOR UNIVERSITY,BIG SANDY,TX
+4073,AMBER UNIVERSITY,GARLAND,TX
+4055,AMERICAN TECHNOLOGICAL UNIVERSITY,KILLEEN,TX
+4057,ANGELINA COLLEGE,LUFKIN,TX
+4164,ANGELO STATE UNIVERSITY,SAN ANGELO,TX
+4058,AUSTIN COLLEGE,SHERMAN,TX
+4059,AUSTIN COMMUNITY COLLEGE,AUSTIN,TX
+4061,BAUDER FASHION COLLEGE,ARLINGTON,TX
+4063,BAYLOR COLLEGE OF DENTISTRY,DALLAS,TX
+4062,BAYLOR UNIVERSITY,WACO,TX
+4064,BEE COUNTY COLLEGE,BEEVILLE,TX
+4066,BISHOP COLLEGE,DALLAS,TX
+4068,BLINN COLLEGE,BRENHAM,TX
+4067,BRAZOSPORT COLLEGE,LAKE JACKSON,TX
+4053,BROOKHAVEN COLLEGE,FARMERS BRANCH,TX
+4087,CEDAR VALLEY COLLEGE,LANCASTER,TX
+4081,CENTRAL TEXAS COLLEGE,KILLEEN,TX
+4074,CISCO JUNIOR COLLEGE,CISCO,TX
+4076,CLARENDON COLLEGE,CLARENDON,TX
+4084,COLLEGE OF THE MAINLAND,TEXAS CITY,TX
+4072,COLLIN COUNTY COMMUNITY COLLEGE,MCKINNEY,TX
+4069,COMMONWEALTH COLLEGE OF FUNERAL SERVICE,HOUSTON,TX
+4124,CONCORDIA LUTHERAN COLLEGE,AUSTIN,TX
+4080,DALLAS BAPTIST UNIVERSITY,DALLAS,TX
+4075,DALLAS CHRISTIAN COLLEGE,DALLAS,TX
+4077,DALLAS INSTITUTE OF FUNERAL SERVICE,DALLAS,TX
+4082,DEL MAR COLLEGE,CORPUS CHRISTI,TX
+4083,DEVRY INSTITUTE OF TECHNOLOGY,IRVING,TX
+4086,EAST TEXAS BAPTIST UNIVERSITY,MARSHALL,TX
+4085,EASTFIELD COLLEGE,MESQUITE,TX
+4079,EL CENTRO COLLEGE,DALLAS,TX
+4090,EL PASO COMMUNITY COLLEGE,EL PASO,TX
+4115,FAITH CHRISTIAN COLLEGE,PASADENA,TX
+4092,FRANK PHILLIPS COLLEGE,BORGER,TX
+4103,GALVESTON COLLEGE,GALVESTON,TX
+4095,GRAYSON COUNTY COLLEGE,DENISON,TX
+4096,HARDIN-SIMMONS UNIVERSITY,ABILENE,TX
+4249,HENDERSON COUNTY JR COLLEGE-ANDERSON,PALESTINE,TX
+4237,HENDERSON COUNTY JR COLLEGE-TERRELL CTR,TERRELL,TX
+4047,HENDRICK MEDICAL CENTER SCHOOL/RAD TECH,ABILENE,TX
+4099,HILL JUNIOR COLLEGE,HILLSBORO,TX
+4101,HOUSTON BAPTIST UNIVERSITY,HOUSTON,TX
+4105,HOUSTON COMMUNITY COLLEGE SYSTEM,HOUSTON,TX
+4100,HOWARD COLLEGE,BIG SPRING,TX
+4102,HOWARD PAYNE UNIVERSITY,BROWNWOOD,TX
+4104,HUSTON-TILLOTSON COLLEGE,AUSTIN,TX
+4106,INCARNATE WORD COLLEGE,SAN ANTONIO,TX
+4119,"INTERNATIONAL INSTITUTE, THE",LEWISVILLE,TX
+4111,JACKI NELL EXECUTIVE SECRETARIAL SCH,AUSTIN,TX
+4108,JACKSONVILLE COLLEGE,JACKSONVILLE,TX
+4110,JARVIS CHRISTIAN COLLEGE,HAWKINS,TX
+4112,KILGORE COLLEGE,KILGORE,TX
+4260,KINGWOOD COLLEGE,KINGWOOD,TX
+4114,LAMAR UNIVERSITY,BEAUMONT,TX
+4116,LAREDO JUNIOR COLLEGE,LAREDO,TX
+4118,LEE COLLEGE,BAYTOWN,TX
+4120,LETOURNEAU UNIVERSITY,LONGVIEW,TX
+4122,LON MORRIS COLLEGE,JACKSONVILLE,TX
+4123,LUBBOCK CHRISTIAN COLLEGE,LUBBOCK,TX
+4131,MCLENNAN COMMUNITY COLLEGE,WACO,TX
+4130,MCMURRY COLLEGE,ABILENE,TX
+4127,MIDLAND COLLEGE,MIDLAND,TX
+4132,MIDWESTERN STATE UNIVERSITY,WICHITA FALLS,TX
+4133,MISS WADES FASHION MERCHANDISING COLLEGE,DALLAS,TX
+4230,MONTGOMERY COLLEGE,CONROE,TX
+4089,MOUNTAIN VIEW COLLEGE,DALLAS,TX
+4235,NATIONAL EDUC CENTER-NIT CAMPUS-TEXAS,DALLAS,TX
+4134,NAVARRO COLLEGE,CORSICANA,TX
+4094,NORTH CENTRAL TEXAS COLLEGE,GAINESVILLE,TX
+4147,NORTH EAST TEXAS COMMUNITY COLLEGE,MOUNT PLEASANT,TX
+4139,NORTH HARRIS COLLEGE,HOUSTON,TX
+4141,NORTH LAKE COLLEGE,IRVING,TX
+4135,NORTHWOOD UNIVERSITY,CEDAR HILL,TX
+4138,ODESSA COLLEGE,ODESSA,TX
+4140,OUR LADY OF THE LAKE UNIVERSITY,SAN ANTONIO,TX
+4143,PALO ALTO COLLEGE,SAN ANTONIO,TX
+4144,PANOLA JUNIOR COLLEGE,CARTHAGE,TX
+4146,PARIS JUNIOR COLLEGE,PARIS,TX
+4148,PAUL QUINN COLLEGE,WACO,TX
+4202,PRAIRIE VIEW A & M UNIVERSITY,PRAIRIE VIEW,TX
+4150,RANGER JUNIOR COLLEGE,RANGER,TX
+4152,RICE UNIVERSITY,HOUSTON,TX
+4153,RICHLAND COLLEGE,DALLAS,TX
+4162,SAM HOUSTON STATE UNIVERSITY,HUNTSVILLE,TX
+4166,SAN ANTONIO COLLEGE,SAN ANTONIO,TX
+4167,SAN JACINTO COLLEGE-CENTRAL CAMPUS,PASADENA,TX
+4165,SAN JACINTO COLLEGE-NORTH CAMPUS,HOUSTON,TX
+4154,SAN JACINTO COLLEGE-SOUTH CAMPUS,HOUSTON,TX
+4168,SCHREINER COLLEGE,KERRVILLE,TX
+4169,SOUTH PLAINS COLLEGE,LEVELLAND,TX
+4174,SOUTHERN METHODIST UNIVERSITY,DALLAS,TX
+4176,SOUTHWEST TEXAS JUNIOR COLLEGE,UVALDE,TX
+4178,SOUTHWEST TEXAS STATE UNIVERSITY,SAN MARCOS,TX
+4184,SOUTHWESTERN ADVENTIST COLLEGE,KEENE,TX
+4182,SOUTHWESTERN ASSEMBLIES OF GOD COLLEGE,WAXAHACHIE,TX
+4183,SOUTHWESTERN CHRISTIAN COLLEGE,TERRELL,TX
+4186,SOUTHWESTERN UNIVERSITY,GEORGETOWN,TX
+4156,ST EDWARDS UNIVERSITY,AUSTIN,TX
+4158,ST MARY'S UNIVERSITY,SAN ANTONIO,TX
+4160,ST PHILIP'S COLLEGE,SAN ANTONIO,TX
+4188,STEPHEN F AUSTIN STATE UNIVERSITY,NACOGDOCHES,TX
+4190,SUL ROSS STATE UNIVERSITY,ALPINE,TX
+4204,TARLETON STATE UNIVERSITY,STEPHENVILLE,TX
+4193,TARRANT COUNTY JR COLL-NORTHEAST CAMPUS,HURST,TX
+4195,TARRANT COUNTY JR COLL-NORTHWEST CAMPUS,FORT WORTH,TX
+4191,TARRANT COUNTY JR COLL-SOUTH CAMPUS,FORT WORTH,TX
+4192,TEMPLE JUNIOR COLLEGE,TEMPLE,TX
+4194,TEXARKANA COMMUNITY COLLEGE,TEXARKANA,TX
+4196,TEXAS A & I UNIVERSITY-LAREDO,LAREDO,TX
+4198,TEXAS A & M UNIVERSITY,COLLEGE STATION,TX
+4088,TEXAS A & M UNIVERSITY-COMMERCE,COMMERCE,TX
+4091,TEXAS A & M UNIVERSITY-CORPUS CHRISTI,CORPUS CHRISTI,TX
+4197,TEXAS A & M UNIVERSITY-GALVESTON,GALVESTON,TX
+4212,TEXAS A & M UNIVERSITY-KINGSVILLE,KINGSVILLE,TX
+4125,TEXAS BAPTIST BIBLE INSTITUTE,DALLAS,TX
+4253,TEXAS BAPTIST COLLEGE,LONGVIEW,TX
+4205,TEXAS CHIROPRACTIC COLLEGE,PASADENA,TX
+4206,TEXAS CHRISTIAN UNIVERSITY,FORT WORTH,TX
+4210,TEXAS COLLEGE,TYLER,TX
+4214,TEXAS LUTHERAN COLLEGE,SEGUIN,TX
+4216,TEXAS SOUTHERN UNIVERSITY,HOUSTON,TX
+4218,TEXAS SOUTHMOST COLLEGE,BROWNSVILLE,TX
+5156,TEXAS STATE TECHNICAL INST-SWEETWATER,SWEETWATER,TX
+4227,TEXAS TECH UNIV HLTH SCI SCH OF NURSING,LUBBOCK,TX
+4220,TEXAS TECH UNIVERSITY,LUBBOCK,TX
+4222,TEXAS WESLEYAN COLLEGE,FORT WORTH,TX
+4224,TEXAS WOMAN'S UNIVERSITY,DENTON,TX
+4225,TOMBALL COLLEGE,KINGWOOD,TX
+4226,TRINITY UNIVERSITY,SAN ANTONIO,TX
+4098,TRINITY VALLEY COMMUNITY COLLEGE,ATHENS,TX
+4228,TYLER JUNIOR COLLEGE,TYLER,TX
+4247,UNIV OF TEXAS HEALTH SCI CTR-SAN ANTONIO,SAN ANTONIO,TX
+4245,UNIV OF TEXAS HLTH SCI CTR-DENTAL,HOUSTON,TX
+4233,UNIV OF TEXAS-HOUSTON HEALTH SCI CTR,HOUSTON,TX
+4229,UNIVERSITY OF CORPUS CHRISTI,CORPUS CHRISTI,TX
+4234,UNIVERSITY OF DALLAS,IRVING,TX
+4171,UNIVERSITY OF HOUSTON-CLEAR LAKE,HOUSTON,TX
+4170,UNIVERSITY OF HOUSTON-DOWNTOWN COLLEGE,HOUSTON,TX
+4236,UNIVERSITY OF HOUSTON-UNIV PARK,HOUSTON,TX
+4128,UNIVERSITY OF MARY HARDIN-BAYLOR,BELTON,TX
+4136,UNIVERSITY OF NORTH TEXAS,DENTON,TX
+4238,UNIVERSITY OF ST THOMAS,HOUSTON,TX
+4200,UNIVERSITY OF TEXAS AT ARLINGTON,ARLINGTON,TX
+4240,UNIVERSITY OF TEXAS AT AUSTIN,AUSTIN,TX
+4243,"UNIVERSITY OF TEXAS AT DALLAS, THE",RICHARDSON,TX
+4223,UNIVERSITY OF TEXAS AT EL PASO,EL PASO,TX
+4239,UNIVERSITY OF TEXAS AT SAN ANTONIO,SAN ANTONIO,TX
+4231,UNIVERSITY OF TEXAS AT TYLER,TYLER,TX
+4221,UNIVERSITY OF TEXAS MEDICAL BRANCH,GALVESTON,TX
+4241,UNIVERSITY OF TEXAS SOUTHWESTERN MED CTR,DALLAS,TX
+4251,UNIVERSITY OF TEXAS-BROWNSVILLE,BROWNSVILLE,TX
+4142,UNIVERSITY OF TEXAS-PAN AMERICAN,EDINBURG,TX
+4232,VALLEY BAPTIST SCHOOL OF VOC NURSING,HARLINGEN,TX
+4242,VERNON REGIONAL JUNIOR COLLEGE,VERNON,TX
+4244,VICTORIA COLLEGE,VICTORIA,TX
+4246,WAYLAND BAPTIST UNIVERSITY,PLAINVIEW,TX
+4248,WEATHERFORD COLLEGE,WEATHERFORD,TX
+4250,WEST TEXAS A & M UNIVERSITY,CANYON,TX
+4172,WESTERN TEXAS COLLEGE,SNYDER,TX
+4252,WHARTON COUNTY JUNIOR COLLEGE,WHARTON,TX
+4254,WILEY COLLEGE,MARSHALL,TX
+4078,WOODCREST COLLEGE,DALLAS,TX
+4266,BRIGHAM YOUNG UNIVERSITY,PROVO,UT
+4268,COLLEGE OF EASTERN UTAH,PRICE,UT
+4272,DIXIE COLLEGE,ST GEORGE,UT
+4270,LDS BUSINESS COLLEGE,SALT LAKE CITY,UT
+4275,SALT LAKE COMMUNITY COLLEGE,SALT LAKE CITY,UT
+4273,SNOW COLLEGE,EPHRAIM,UT
+4271,SOUTHERN UTAH UNIVERSITY,CEDAR CITY,UT
+4286,STEVENS HENAGER COLLEGE-OGDEN,OGDEN,UT
+4288,STEVENS HENAGER COLLEGE-PROVO,PROVO,UT
+4294,STEVENS HENAGER COLLEGE-SALT LAKE CITY,SALT LAKE CITY,UT
+4274,UNIVERSITY OF UTAH,SALT LAKE CITY,UT
+4276,UTAH STATE UNIVERSITY,LOGAN,UT
+4278,UTAH TECHNICAL COLLEGE AT PROVO,PROVO,UT
+4290,UTAH TECHNICAL COLLEGE AT SALT LAKE,SALT LAKE CITY,UT
+4291,UTAH VALLEY STATE COLLEGE,OREM,UT
+4282,WEBER STATE COLLEGE,OGDEN,UT
+4284,WESTMINSTER COLLEGE-SALT LAKE CITY,SALT LAKE CITY,UT
+4335,ATLANTIC BAPTIST BIBLE COLLEGE,CHESTER,VA
+4338,AVERETT COLLEGE,DANVILLE,VA
+4341,BLUE RIDGE COMMUNITY COLLEGE,WEYERS CAVE,VA
+4340,BLUEFIELD COLLEGE,BLUEFIELD,VA
+4342,BRIDGEWATER COLLEGE,BRIDGEWATER,VA
+4354,CENTRAL VIRGINIA COMMUNITY COLLEGE,LYNCHBURG,VA
+4339,CHRISTENDOM COLLEGE,FRONT ROYAL,VA
+4345,CHRISTOPHER NEWPORT COLLEGE,NEWPORT NEWS,VA
+4343,CLINCH VALLEY COLLEGE,WISE,VA
+4344,COLLEGE OF WILLIAM AND MARY,WILLIAMSBURG,VA
+4367,COMMONWEALTH COLLEGE,VIRGINIA BEACH,VA
+4349,DABNEY LANCASTER COMMUNITY COLLEGE,CLIFTON FORGE,VA
+4355,DANVILLE COMMUNITY COLLEGE,DANVILLE,VA
+4348,EASTERN MENNONITE COLLEGE,HARRISONBURG,VA
+4350,EMORY & HENRY COLLEGE,EMORY,VA
+4352,FERRUM COLLEGE,FERRUM,VA
+4357,GEORGE MASON UNIVERSITY,FAIRFAX,VA
+4359,GERMANNA COMMUNITY COLLEGE,LOCUST GROVE,VA
+4356,HAMPDEN-SYDNEY COLLEGE,HAMPDEN-SYDNEY,VA
+4358,HAMPTON UNIVERSITY,HAMPTON,VA
+4360,HOLLINS COLLEGE,HOLLINS COLLEGE,VA
+4362,J SARGENT REYNOLDS COMMUNITY COLLEGE,RICHMOND,VA
+4370,JAMES MADISON UNIVERSITY,HARRISONBURG,VA
+4363,JOHN TYLER COMMUNITY COLLEGE,CHESTER,VA
+4364,LIBERTY UNIVERSITY,LYNCHBURG,VA
+4366,LONGWOOD COLLEGE,FARMVILLE,VA
+4377,LORD FAIRFAX COMMUNITY COLLEGE,MIDDLETOWN,VA
+4368,LYNCHBURG COLLEGE,LYNCHBURG,VA
+4374,MARY BALDWIN COLLEGE,STAUNTON,VA
+4414,MARY WASHINGTON COLLEGE,FREDERICKSBURG,VA
+4378,MARYMOUNT UNIVERSITY,ARLINGTON,VA
+4376,MOUNTAIN EMPIRE COMMUNITY COLLEGE,BIG STONE GAP,VA
+4382,NATIONAL BUSINESS COLLEGE,ROANOKE,VA
+4361,NEW RIVER COMMUNITY COLLEGE,DUBLIN,VA
+4425,NORFOLK STATE UNIVERSITY,NORFOLK,VA
+4411,NORTHERN VIRGINIA COMMUNITY COLLEGE,ANNANDALE,VA
+4347,OLD DOMINION UNIVERSITY,NORFOLK,VA
+4415,PATRICK HENRY COMMUNITY COLLEGE,MARTINSVILLE,VA
+4419,PAUL D CAMP COMMUNITY COLLEGE,FRANKLIN,VA
+4417,PETERSBURG SCHOOL OF NURSING,PETERSBURG,VA
+4384,PIEDMONT VIRGINIA COMMUNITY COLLEGE,CHARLOTTESVILLE,VA
+4422,RADFORD UNIVERSITY,RADFORD,VA
+4386,RANDOLPH-MACON COLLEGE,ASHLAND,VA
+4388,RANDOLPH-MACON WOMAN'S COLLEGE,LYNCHBURG,VA
+4390,RAPPAHANNOCK COMMUNITY COLLEGE,GLENNS,VA
+4391,REGENT UNIVERSITY,VIRGINIA BEACH,VA
+4346,RICHARD BLAND COLLEGE,PETERSBURG,VA
+4392,ROANOKE COLLEGE,SALEM,VA
+4396,SHENANDOAH COLL & CONSERVATORY OF MUSIC,WINCHESTER,VA
+4327,SOUTHEASTERN FREE WILL BAPTIST COLLEGE,VIRGINIA BEACH,VA
+4400,SOUTHERN SEMINARY JUNIOR COLLEGE,BUENA VISTA,VA
+4337,SOUTHSIDE VA COMM COLL-CHRISTANNA CMPUS,ALBERTA,VA
+4401,SOUTHWEST VIRGINIA COMMUNITY COLLEGE,RICHLANDS,VA
+4394,ST PAUL'S COLLEGE,LAWRENCEVILLE,VA
+4406,SWEET BRIAR COLLEGE,SWEET BRIAR,VA
+4407,THOMAS NELSON COMMUNITY COLLEGE,HAMPTON,VA
+4353,TIDEWATER COMM COLLEGE-FREDERICK CAMPUS,PORTSMOUTH,VA
+4365,TIDEWATER COMMUNITY COLL AT VIRGINIA BCH,VIRGINIA BEACH,VA
+4410,UNIVERSITY OF RICHMOND,RICHMOND,VA
+4412,UNIVERSITY OF VIRGINIA,CHARLOTTESVILLE,VA
+4379,VIRGINIA COMMONWEALTH UNIVERSITY,RICHMOND,VA
+4433,VIRGINIA HIGHLANDS COMMUNITY COLLEGE,ABINGDON,VA
+4416,VIRGINIA INTERMONT COLLEGE,BRISTOL,VA
+4418,VIRGINIA MILITARY INSTITUTE,LEXINGTON,VA
+4420,VIRGINIA POLYTECHNIC INST & STATE UNIV,BLACKSBURG,VA
+4426,VIRGINIA SEMINARY AND COLLEGE,LYNCHBURG,VA
+4424,VIRGINIA STATE UNIVERSITY,PETERSBURG,VA
+4428,VIRGINIA UNION UNIVERSITY,RICHMOND,VA
+4429,VIRGINIA WESLEYAN COLLEGE,NORFOLK,VA
+4351,VIRGINIA WESTERN COMMUNITY COLLEGE,ROANOKE,VA
+4430,WASHINGTON AND LEE UNIVERSITY,LEXINGTON,VA
+4431,WYTHEVILLE COMMUNITY COLLEGE,WYTHEVILLE,VA
+4296,BENNINGTON COLLEGE,BENNINGTON,VT
+4329,BURLINGTON COLLEGE,BURLINGTON,VT
+4314,CASTLETON STATE COLLEGE,CASTLETON,VT
+4298,CHAMPLAIN COLLEGE,BURLINGTON,VT
+4320,COLLEGE OF ST JOSEPH THE PROVIDER,RUTLAND,VT
+4299,COMMUNITY COLLEGE OF VERMONT,WATERBURY,VT
+4300,GODDARD COLLEGE,PLAINFIELD,VT
+4302,GREEN MOUNTAIN COLLEGE,POULTNEY,VT
+4316,JOHNSON STATE COLLEGE,JOHNSON,VT
+4317,LANDMARK COLLEGE,PUTNEY,VT
+4318,LYNDON STATE COLLEGE,LYNDONVILLE,VT
+4304,MARLBORO COLLEGE,MARLBORO,VT
+4306,MIDDLEBURY COLLEGE,MIDDLEBURY,VT
+4308,NORWICH UNIVERSITY,NORTHFIELD,VT
+4309,ROYALTON COLLEGE,SOUTH ROYALTON,VT
+4311,SCHOOL FOR INTERNATIONAL TRNG,BRATTLEBORO,VT
+4310,SOUTHERN VERMONT COLLEGE,BENNINGTON,VT
+4312,ST MICHAEL'S COLLEGE,WINOOSKI,VT
+4325,TRINITY COLLEGE,BURLINGTON,VT
+4322,UNIVERSITY OF VERMONT,BURLINGTON,VT
+4328,VERMONT COLLEGE-NORWICH UNIVERSITY,NORTHFIELD,VT
+4321,VERMONT LAW SCHOOL,SOUTH ROYALTON,VT
+4323,VERMONT TECHNICAL COLLEGE,RANDOLPH CENTER,VT
+4443,ART INSTITUTE OF SEATTLE,SEATTLE,WA
+4441,BELLEVUE COMMUNITY COLLEGE,BELLEVUE,WA
+4442,BIG BEND COMMUNITY COLLEGE,MOSES LAKE,WA
+4444,CENTRAL WASHINGTON UNIVERSITY,ELLENSBURG,WA
+4446,CENTRALIA COLLEGE,CENTRALIA,WA
+4449,CITY UNIVERSITY,BELLEVUE,WA
+4448,CLARK COMMUNITY COLLEGE,VANCOUVER,WA
+4452,COLUMBIA BASIN COLLEGE,PASCO,WA
+4454,EASTERN WASHINGTON UNIVERSITY,CHENEY,WA
+4455,EDMONDS COMMUNITY COLLEGE,LYNNWOOD,WA
+4456,EVERETT COMMUNITY COLLEGE,EVERETT,WA
+4457,EVERGREEN STATE COLLEGE,OLYMPIA,WA
+4458,GONZAGA UNIVERSITY,SPOKANE,WA
+4460,GRAYS HARBOR COLLEGE,ABERDEEN,WA
+4461,GREEN RIVER COMMUNITY COLLEGE,AUBURN,WA
+4462,HERITAGE COLLEGE,TOPPENISH,WA
+4463,HIGHLINE COMMUNITY COLLEGE,MIDWAY,WA
+4464,LOWER COLUMBIA COLLEGE,LONGVIEW,WA
+4467,NORTH SEATTLE COMMUNITY COLLEGE,SEATTLE,WA
+4466,NORTHWEST COLLEGE,KIRKLAND,WA
+4468,OLYMPIC COLLEGE,BREMERTON,WA
+4470,PACIFIC LUTHERAN UNIVERSITY,TACOMA,WA
+4472,PENINSULA COLLEGE,PORT ANGELES,WA
+4469,PIERCE COLLEGE,TACOMA,WA
+4471,PUGET SOUND CHRISTIAN COLLEGE,EDMONDS,WA
+4475,SEATTLE CENTRAL COMMUNITY COLLEGE,SEATTLE,WA
+4476,SEATTLE PACIFIC UNIVERSITY,SEATTLE,WA
+4478,SEATTLE UNIVERSITY,SEATTLE,WA
+4479,SHORELINE COMMUNITY COLLEGE,SEATTLE,WA
+4480,SKAGIT VALLEY COLLEGE,MOUNT VERNON,WA
+4483,SOUTH PUGET SOUND COMM COLLEGE,OLYMPIA,WA
+4473,SOUTH SEATTLE COMMUNITY COLLEGE,SEATTLE,WA
+4481,SPOKANE COMMUNITY COLLEGE,SPOKANE,WA
+4477,SPOKANE FALLS COMMUNITY COLLEGE,SPOKANE,WA
+4474,ST MARTIN'S COLLEGE,LACEY,WA
+4485,TACOMA COMMUNITY COLLEGE,TACOMA,WA
+4450,UNIVERSITY OF PUGET SOUND,TACOMA,WA
+4484,UNIVERSITY OF WASHINGTON,SEATTLE,WA
+4486,WALLA WALLA COLLEGE,COLLEGE PLACE,WA
+4487,WALLA WALLA COMMUNITY COLLEGE,WALLA WALLA,WA
+4482,WASHINGTON STATE UNIVERSITY,PULLMAN,WA
+4488,WENATCHEE VALLEY COLLEGE,WENATCHEE,WA
+4490,WESTERN WASHINGTON UNIVERSITY,BELLINGHAM,WA
+4491,WHATCOM COMMUNITY COLLEGE,BELLINGHAM,WA
+4492,WHITMAN COLLEGE,WALLA WALLA,WA
+4494,WHITWORTH COLLEGE,SPOKANE,WA
+4496,YAKIMA VALLEY COMMUNITY COLLEGE,YAKIMA,WA
+4558,ALVERNO COLLEGE,MILWAUKEE,WI
+4563,BELLIN COLLEGE OF NURSING,GREEN BAY,WI
+4564,BELOIT COLLEGE,BELOIT,WI
+4593,BLACKHAWK TECHNICAL INSTITUTE,JANESVILLE,WI
+4568,CARDINAL STRITCH UNIVERSITY,MILWAUKEE,WI
+4570,CARROLL COLLEGE,WAUKESHA,WI
+4571,CARTHAGE COLLEGE,KENOSHA,WI
+4576,COLLEGE OF THE MENOMINEE NATION,KESHENA,WI
+4575,COLUMBIA COLLEGE OF NURSING/CARROLL COL,WAUKESHA,WI
+4574,CONCORDIA COLLEGE,MEQUON,WI
+4581,DISTRICT ONE TECHNICAL INSTITUTE,EAU CLAIRE,WI
+4582,EDGEWOOD COLLEGE,MADISON,WI
+4556,FOX VALLEY TECHNICAL INSTITUTE,APPLETON,WI
+4633,GATEWAY TECHNICAL INSTITUTE,RACINE,WI
+4635,HOLY FAMILY HOSPITAL SCHOOL OF NURSING,MANITOWOC,WI
+4589,IMMANUEL LUTHERAN COLLEGE,EAU CLAIRE,WI
+4592,LAKELAND COLLEGE,SHEBOYGAN,WI
+4618,LAKESHORE TECHNICAL INSTITUTE,CLEVELAND,WI
+4596,LAWRENCE UNIVERSITY,APPLETON,WI
+4615,MADISON AREA TECHNICAL COLLEGE,MADISON,WI
+4607,MADISON BUSINESS COLLEGE,MADISON,WI
+4604,MARANATHA BAPTIST BIBLE COLLEGE,WATERTOWN,WI
+4606,MARIAN COLLEGE OF FOND DU LAC,FOND DU LAC,WI
+4610,MARQUETTE UNIVERSITY,MILWAUKEE,WI
+4683,MID-STATE TECHNICAL COLLEGE,WISCONSIN RAPIDS,WI
+4614,MILWAUKEE AREA TECHNICAL COLLEGE,MILWAUKEE,WI
+4601,MILWAUKEE COUNTY MEDICAL COMPLEX-NRSING,MILWAUKEE,WI
+4616,MILWAUKEE SCHOOL OF ENGINEERING,MILWAUKEE,WI
+4583,MORAINE PARK TECH INST-FOND DU LAC CMP,FOND DU LAC,WI
+4599,MORAINE PARK TECH INST-WEST BEND CAMPUS,WEST BEND,WI
+4620,MOUNT MARY COLLEGE,MILWAUKEE,WI
+4621,MOUNT SENARIO COLLEGE,LADYSMITH,WI
+4646,NICOLET AREA TECHNICAL COLLEGE,RHINELANDER,WI
+4663,NORTH CENTRAL TECHNICAL INSTITUTE,WAUSAU,WI
+4585,NORTHEAST WISCONSIN TECHNICAL INSTITUTE,GREEN BAY,WI
+4623,NORTHLAND BAPTIST BIBLE COLLEGE,DUNBAR,WI
+4624,NORTHLAND COLLEGE,ASHLAND,WI
+4626,NORTHWESTERN COLLEGE,WATERTOWN,WI
+4636,RIPON COLLEGE,RIPON,WI
+4586,SILVER LAKE COLLEGE,MANITOWOC,WI
+4639,SOUTHWEST WISCONSIN TECHNICAL COLLEGE,FENNIMORE,WI
+4647,ST JOSEPHS HOSPITAL SCHOOL OF NURSING,MARSHFIELD,WI
+4644,ST NORBERT COLLEGE,DE PERE,WI
+4628,STRATTON COLLEGE,MILWAUKEE,WI
+4657,UNIV OF WISCONSIN CENTER-BARABOO SAUK,BARABOO,WI
+4653,UNIV OF WISCONSIN CENTER-BARRON COUNTY,RICE LAKE,WI
+4673,UNIV OF WISCONSIN CENTER-FOND DU LAC,FOND DU LAC,WI
+4687,UNIV OF WISCONSIN CENTER-FOX VALLEY,MENASHA,WI
+4692,UNIV OF WISCONSIN CENTER-MANITOWOC CTY,MANITOWOC,WI
+4696,UNIV OF WISCONSIN CENTER-MARATHON CTY,WAUSAU,WI
+4693,UNIV OF WISCONSIN CENTER-MARINETTE CTY,MARINETTE,WI
+4697,UNIV OF WISCONSIN CENTER-MARSHFIELD WD,MARSHFIELD,WI
+4634,UNIV OF WISCONSIN CENTER-RICHLAND,RICHLAND CENTER,WI
+4689,UNIV OF WISCONSIN CENTER-ROCK COUNTY,JANESVILLE,WI
+4695,UNIV OF WISCONSIN CENTER-SHEBOYGAN,SHEBOYGAN,WI
+4659,UNIV OF WISCONSIN CENTER-WASHINGTON CTY,WEST BEND,WI
+4698,UNIV OF WISCONSIN CENTER-WAUKESHA CTY,WAUKESHA,WI
+4670,UNIV OF WISCONSIN-EAU CLAIRE,EAU CLAIRE,WI
+4688,UNIV OF WISCONSIN-GREEN BAY,GREEN BAY,WI
+4672,UNIV OF WISCONSIN-LA CROSSE,LA CROSSE,WI
+4656,UNIV OF WISCONSIN-MADISON,MADISON,WI
+4658,UNIV OF WISCONSIN-MILWAUKEE,MILWAUKEE,WI
+4674,UNIV OF WISCONSIN-OSHKOSH,OSHKOSH,WI
+4690,UNIV OF WISCONSIN-PARKSIDE,KENOSHA,WI
+4676,UNIV OF WISCONSIN-PLATTEVILLE,PLATTEVILLE,WI
+4678,UNIV OF WISCONSIN-RIVER FALLS,RIVER FALLS,WI
+4680,UNIV OF WISCONSIN-STEVENS POINT,STEVENS POINT,WI
+4652,UNIV OF WISCONSIN-STOUT,MENOMONIE,WI
+4682,UNIV OF WISCONSIN-SUPERIOR,SUPERIOR,WI
+4684,UNIV OF WISCONSIN-WHITEWATER,WHITEWATER,WI
+4675,UNIVERSITY OF WISCONSIN-EXTENSION,MADISON,WI
+4662,VITERBO COLLEGE,LACROSSE,WI
+4671,WAUKESHA COUNTY TECHNICAL COLLEGE,PEWAUKEE,WI
+4573,WESTERN WISCONSIN TECHNICAL COLLEGE,LACROSSE,WI
+4560,WISCONSIN INDIANHEAD TECH INST-ASHLAND,ASHLAND,WI
+4665,WISCONSIN INDIANHEAD TECH INST-NEW RCHMD,NEW RICHMOND,WI
+4677,WISCONSIN INDIANHEAD TECH INST-RICE LAKE,RICE LAKE,WI
+4661,WISCONSIN INDIANHEAD TECH INST-SUPERIOR,SUPERIOR,WI
+4699,WISCONSIN LUTHERAN COLLEGE,MILWAUKEE,WI
+4557,WISCONSIN SCHOOL OF ELECTRONICS,MADISON,WI
+4508,ALDERSON-BROADDUS COLLEGE,PHILIPPI,WV
+4507,APPALACHIAN BIBLE COLLEGE,BRADLEY,WV
+4510,BECKLEY COLLEGE,BECKLEY,WV
+4512,BETHANY COLLEGE,BETHANY,WV
+4514,BLUEFIELD STATE COLLEGE,BLUEFIELD,WV
+4516,CONCORD COLLEGE,ATHENS,WV
+4518,DAVIS AND ELKINS COLLEGE,ELKINS,WV
+4520,FAIRMONT STATE COLLEGE,FAIRMONT,WV
+4522,GLENVILLE STATE COLLEGE,GLENVILLE,WV
+4526,MARSHALL UNIVERSITY,HUNTINGTON,WV
+4550,NATIONAL EDUC CENTER-NIT CAMPUS-WV,CROSS LANES,WV
+4548,OHIO VALLEY COLLEGE,PARKERSBURG,WV
+4554,OHIO VALLEY GENERAL HOSP SCH OF NURSING,WHEELING,WV
+4542,PARKERSBURG COMMUNITY COLLEGE,PARKERSBURG,WV
+4529,POTOMAC STATE COLLEGE OF WEST VA UNIV,KEYSER,WV
+4530,SALEM-TEIKYO UNIVERSITY,SALEM,WV
+4532,SHEPHERD COLLEGE,SHEPHERDSTOWN,WV
+4527,SOUTHERN WEST VIRGINIA COM COL-WILLIAMSN,WILLIAMSON,WV
+4525,SOUTHERN WEST VIRGINIA COMM COLL-LOGAN,LOGAN,WV
+4551,ST MARY'S SCHOOL OF NURSING,HUNTINGTON,WV
+4523,TRI-STATE BAPTIST COLLEGE,CHARLES TOWN,WV
+4528,UNIVERSITY OF CHARLESTON,CHARLESTON,WV
+4534,WEST LIBERTY STATE COLLEGE,WEST LIBERTY,WV
+4537,WEST VIRGINIA CAREER COLLEGE,CHARLESTON,WV
+4536,WEST VIRGINIA INSTITUTE OF TECHNOLOGY,MONTGOMERY,WV
+4535,WEST VIRGINIA NORTHERN COMMUNITY COLL,WHEELING,WV
+4538,WEST VIRGINIA STATE COLLEGE,INSTITUTE,WV
+4506,WEST VIRGINIA STATE POLICE ACADEMY,INSTITUTE,WV
+4540,WEST VIRGINIA UNIVERSITY,MORGANTOWN,WV
+4544,WEST VIRGINIA WESLEYAN COLLEGE,BUCKHANNON,WV
+4546,WHEELING JESUIT COLLEGE,WHEELING,WV
+4553,WOOD COUNTY VOC SCH/PRACTICAL NURSING,PARKERSBURG,WV
+4998,CASPER COLLEGE,CASPER,WY
+4999,CENTRAL WYOMING COLLEGE,RIVERTON,WY
+5000,EASTERN WYOMING COLLEGE,TORRINGTON,WY
+5003,LARAMIE COUNTY COMMUNITY COLLEGE,CHEYENNE,WY
+5004,NORTHWEST COLLEGE,POWELL,WY
+5002,SHERIDAN COLLEGE,SHERIDAN,WY
+5006,UNIVERSITY OF WYOMING,LARAMIE,WY
+5005,WESTERN WYOMING COMMUNITY COLLEGE,ROCK SPRINGS,WY
\ No newline at end of file
diff --git a/manage.py b/manage.py
new file mode 100755
index 0000000..10646a4
--- /dev/null
+++ b/manage.py
@@ -0,0 +1,22 @@
+#!/usr/bin/env python
+"""Django's command-line utility for administrative tasks."""
+import os
+import sys
+
+
+def main():
+ """Run administrative tasks."""
+ os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'tjdests.settings')
+ try:
+ from django.core.management import execute_from_command_line
+ except ImportError as exc:
+ raise ImportError(
+ "Couldn't import Django. Are you sure it's installed and "
+ "available on your PYTHONPATH environment variable? Did you "
+ "forget to activate a virtual environment?"
+ ) from exc
+ execute_from_command_line(sys.argv)
+
+
+if __name__ == '__main__':
+ main()
diff --git a/tjdests/__init__.py b/tjdests/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/tjdests/apps/__init__.py b/tjdests/apps/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/tjdests/apps/authentication/__init__.py b/tjdests/apps/authentication/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/tjdests/apps/authentication/admin.py b/tjdests/apps/authentication/admin.py
new file mode 100644
index 0000000..c444238
--- /dev/null
+++ b/tjdests/apps/authentication/admin.py
@@ -0,0 +1,5 @@
+from django.contrib import admin
+
+from .models import User
+
+admin.site.register(User)
diff --git a/tjdests/apps/authentication/decorators.py b/tjdests/apps/authentication/decorators.py
new file mode 100644
index 0000000..69dfa3c
--- /dev/null
+++ b/tjdests/apps/authentication/decorators.py
@@ -0,0 +1,15 @@
+import functools
+
+from django.http import HttpRequest
+from django.shortcuts import redirect
+
+
+def require_accept_tos(func):
+ @functools.wraps(func)
+ def wrapper(request: HttpRequest, *args, **kwargs):
+ if request.user.is_authenticated and not request.user.accepted_terms:
+ return redirect("authentication:tos")
+
+ return func(request, *args, **kwargs)
+
+ return wrapper
\ No newline at end of file
diff --git a/tjdests/apps/authentication/forms.py b/tjdests/apps/authentication/forms.py
new file mode 100644
index 0000000..55920b8
--- /dev/null
+++ b/tjdests/apps/authentication/forms.py
@@ -0,0 +1,47 @@
+from django import forms
+from django.contrib.auth import password_validation
+
+from crispy_forms.helper import FormHelper
+from crispy_forms.layout import Submit
+
+
+class TOSForm(forms.Form):
+ def __init__(self, *args, **kwargs):
+ super().__init__(*args, **kwargs)
+ self.helper = FormHelper()
+ self.helper.form_method = 'post'
+
+ self.helper.add_input(Submit('submit', 'Submit'))
+
+ accept_tos = forms.BooleanField(required=True, label="I accept the terms of the GNU Affero General Public License as displayed above,"
+ " and I understand that the terms that provide this software WITHOUT ANY WARRANTY;"
+ " without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.")
+
+ password = forms.CharField(widget=forms.PasswordInput, required=True)
+ password_confirm = forms.CharField(widget=forms.PasswordInput, required=True)
+
+ understand_no_reset = forms.BooleanField(required=True, label="I understand that there is NO PASSWORD RESET functionality once I no longer have access to Ion.")
+
+ def clean(self):
+ cleaned_data = super(TOSForm, self).clean()
+ password1 = cleaned_data.get('password')
+ password2 = cleaned_data.get('password_confirm')
+
+ if password1 and password1 != password2:
+ raise forms.ValidationError({"password": ["The two passwords do not match.",]})
+
+ # Validate checkboxes checked
+ accept_tos = cleaned_data.get("accept_tos")
+ understand_no_reset = cleaned_data.get("understand_no_reset")
+
+ if not accept_tos:
+ raise forms.ValidationError({"accept_tos": ["You must accept the license terms to continue.",]})
+
+ if not understand_no_reset:
+ raise forms.ValidationError({"understand_no_reset": ["You must acknowledge that there is no password reset to continue.",]})
+
+ # Validate the password for complexity, etc.
+ validators = password_validation.get_default_password_validators()
+ password_validation.validate_password(password1, None, validators)
+
+
diff --git a/tjdests/apps/authentication/migrations/0001_initial.py b/tjdests/apps/authentication/migrations/0001_initial.py
new file mode 100644
index 0000000..b99525a
--- /dev/null
+++ b/tjdests/apps/authentication/migrations/0001_initial.py
@@ -0,0 +1,46 @@
+# Generated by Django 3.2 on 2021-04-19 15:03
+
+import django.contrib.auth.models
+import django.contrib.auth.validators
+from django.db import migrations, models
+import django.utils.timezone
+
+
+class Migration(migrations.Migration):
+
+ initial = True
+
+ dependencies = [
+ ]
+
+ operations = [
+ migrations.CreateModel(
+ name='User',
+ fields=[
+ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('password', models.CharField(max_length=128, verbose_name='password')),
+ ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')),
+ ('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')),
+ ('username', models.CharField(error_messages={'unique': 'A user with that username already exists.'}, help_text='Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.', max_length=150, unique=True, validators=[django.contrib.auth.validators.UnicodeUsernameValidator()], verbose_name='username')),
+ ('first_name', models.CharField(blank=True, max_length=150, verbose_name='first name')),
+ ('last_name', models.CharField(blank=True, max_length=150, verbose_name='last name')),
+ ('email', models.EmailField(blank=True, max_length=254, verbose_name='email address')),
+ ('is_staff', models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status')),
+ ('is_active', models.BooleanField(default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')),
+ ('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')),
+ ('accepted_terms', models.BooleanField(default=False)),
+ ('graduation_year', models.PositiveSmallIntegerField(null=True)),
+ ('is_senior', models.BooleanField(default=False)),
+ ('publish_data', models.BooleanField(default=False, verbose_name='Publish my data')),
+ ('biography', models.TextField(blank=True)),
+ ],
+ options={
+ 'verbose_name': 'user',
+ 'verbose_name_plural': 'users',
+ 'abstract': False,
+ },
+ managers=[
+ ('objects', django.contrib.auth.models.UserManager()),
+ ],
+ ),
+ ]
diff --git a/tjdests/apps/authentication/migrations/0002_initial.py b/tjdests/apps/authentication/migrations/0002_initial.py
new file mode 100644
index 0000000..48a28b8
--- /dev/null
+++ b/tjdests/apps/authentication/migrations/0002_initial.py
@@ -0,0 +1,33 @@
+# Generated by Django 3.2 on 2021-04-19 15:03
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+ initial = True
+
+ dependencies = [
+ ('auth', '0012_alter_user_first_name_max_length'),
+ ('authentication', '0001_initial'),
+ ('destinations', '0001_initial'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='user',
+ name='attending_decision',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='attending_college', to='destinations.decision', verbose_name='College attending'),
+ ),
+ migrations.AddField(
+ model_name='user',
+ name='groups',
+ field=models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.Group', verbose_name='groups'),
+ ),
+ migrations.AddField(
+ model_name='user',
+ name='user_permissions',
+ field=models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.Permission', verbose_name='user permissions'),
+ ),
+ ]
diff --git a/tjdests/apps/authentication/migrations/0003_alter_user_publish_data.py b/tjdests/apps/authentication/migrations/0003_alter_user_publish_data.py
new file mode 100644
index 0000000..98038fe
--- /dev/null
+++ b/tjdests/apps/authentication/migrations/0003_alter_user_publish_data.py
@@ -0,0 +1,18 @@
+# Generated by Django 3.2 on 2021-04-19 16:00
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('authentication', '0002_initial'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='user',
+ name='publish_data',
+ field=models.BooleanField(default=False, help_text='Unless this is set, your data will not appear publicly.', verbose_name='Publish my data'),
+ ),
+ ]
diff --git a/tjdests/apps/authentication/migrations/0004_auto_20210419_1713.py b/tjdests/apps/authentication/migrations/0004_auto_20210419_1713.py
new file mode 100644
index 0000000..a351a05
--- /dev/null
+++ b/tjdests/apps/authentication/migrations/0004_auto_20210419_1713.py
@@ -0,0 +1,25 @@
+# Generated by Django 3.2 on 2021-04-19 17:13
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('destinations', '0005_alter_decision_admission_status'),
+ ('authentication', '0003_alter_user_publish_data'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='user',
+ name='is_student',
+ field=models.BooleanField(default=False),
+ ),
+ migrations.AlterField(
+ model_name='user',
+ name='attending_decision',
+ field=models.ForeignKey(blank=True, help_text="Can't see your college? Make sure you've added a decision with an admit status.", null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='attending_college', to='destinations.decision', verbose_name='College attending'),
+ ),
+ ]
diff --git a/tjdests/apps/authentication/migrations/__init__.py b/tjdests/apps/authentication/migrations/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/tjdests/apps/authentication/models.py b/tjdests/apps/authentication/models.py
new file mode 100644
index 0000000..bc7134e
--- /dev/null
+++ b/tjdests/apps/authentication/models.py
@@ -0,0 +1,22 @@
+from django.db import models
+from django.contrib.auth.models import AbstractUser
+
+from ..destinations.models import Decision, TestScore
+
+class User(AbstractUser):
+ accepted_terms = models.BooleanField(default=False)
+ graduation_year = models.PositiveSmallIntegerField(null=True)
+
+ is_senior = models.BooleanField(default=False)
+ is_student = models.BooleanField(default=False)
+
+ # The rest are used only if a senior
+ publish_data = models.BooleanField(default=False, verbose_name="Publish my data", help_text="Unless this is set, your data will not appear publicly.")
+ biography = models.TextField(blank=True)
+
+ attending_decision = models.ForeignKey(Decision, on_delete=models.SET_NULL, null=True, blank=True,
+ verbose_name="College attending", related_name="attending_college",
+ help_text="Can't see your college? Make sure you've added a decision with an admit status.")
+
+ def __str__(self):
+ return f"{self.first_name} {self.last_name}"
diff --git a/tjdests/apps/authentication/oauth.py b/tjdests/apps/authentication/oauth.py
new file mode 100644
index 0000000..d3523c3
--- /dev/null
+++ b/tjdests/apps/authentication/oauth.py
@@ -0,0 +1,38 @@
+from django.conf import settings
+from social_core.backends.oauth import BaseOAuth2
+
+
+class IonOauth2(BaseOAuth2):
+ name = "ion"
+ AUTHORIZATION_URL = "https://ion.tjhsst.edu/oauth/authorize"
+ ACCESS_TOKEN_URL = "https://ion.tjhsst.edu/oauth/token"
+ ACCESS_TOKEN_METHOD = "POST"
+ EXTRA_DATA = [("refresh_token", "refresh_token", True), ("expires_in", "expires")]
+
+ def get_scope(self):
+ return ["read"]
+
+ def get_user_details(self, response):
+ profile = self.get_json(
+ "https://ion.tjhsst.edu/api/profile", params={"access_token": response["access_token"]}
+ )
+ # fields used to populate/update User model
+
+ if not profile["graduation_year"]:
+ profile["graduation_year"] = 0
+
+ return {
+ "id": profile["id"],
+ "username": profile["ion_username"],
+ "first_name": profile["first_name"],
+ "last_name": profile["last_name"],
+ "full_name": profile["full_name"],
+ "email": profile["tj_email"],
+ "is_student": profile["is_student"],
+ "is_teacher": profile["is_teacher"],
+ "graduation_year": profile["graduation_year"],
+ "is_senior": int(profile["graduation_year"]) == settings.SENIOR_GRAD_YEAR
+ }
+
+ def get_user_id(self, details, response):
+ return details["id"]
\ No newline at end of file
diff --git a/tjdests/apps/authentication/urls.py b/tjdests/apps/authentication/urls.py
new file mode 100644
index 0000000..8f6b535
--- /dev/null
+++ b/tjdests/apps/authentication/urls.py
@@ -0,0 +1,12 @@
+from django.contrib.auth.views import LogoutView
+from django.urls import path
+from . import views
+
+app_name = "authentication"
+
+urlpatterns = [
+ path("", views.index_view, name="index"),
+ path("login", views.LoginViewCustom.as_view(), name="login"),
+ path("logout", LogoutView.as_view(), name="logout"),
+ path("tos", views.accept_tos_view, name="tos"),
+]
\ No newline at end of file
diff --git a/tjdests/apps/authentication/views.py b/tjdests/apps/authentication/views.py
new file mode 100644
index 0000000..d76dd11
--- /dev/null
+++ b/tjdests/apps/authentication/views.py
@@ -0,0 +1,50 @@
+from django.contrib.auth import login, logout
+from django.contrib.auth.decorators import login_required
+from django.contrib.auth.views import LoginView
+from django.contrib import messages
+from django.http import HttpRequest, HttpResponse
+from django.shortcuts import render, redirect
+from django.urls import reverse
+
+from tjdests.apps.authentication.decorators import require_accept_tos
+from tjdests.apps.authentication.forms import TOSForm
+
+
+def index_view(request: HttpRequest) -> HttpResponse:
+ return render(request, "authentication/index.html")
+
+@login_required
+def accept_tos_view(request: HttpRequest) -> HttpResponse:
+ assert request.user.is_authenticated
+
+ if not request.user.is_student:
+ logout(request)
+ messages.error(request, "You must be a student to access this site.")
+ return redirect(reverse("authentication:index"))
+
+ if request.user.accepted_terms:
+ return redirect(reverse("authentication:index"))
+
+ if request.method == "POST":
+ form = TOSForm(request.POST)
+
+ if form.is_valid():
+ request.user.accepted_terms = form.cleaned_data.get("accept_tos")
+ request.user.set_password(form.cleaned_data.get("password"))
+ request.user.save()
+
+ login(request, request.user, backend='django.contrib.auth.backends.ModelBackend')
+
+ messages.success(request, "You have logged in.")
+
+ return redirect(reverse("authentication:index"))
+ else:
+ form = TOSForm()
+
+ context = {"form": form}
+
+ return render(request, "authentication/accept_tos.html", context=context)
+
+class LoginViewCustom(LoginView):
+ template_name = "authentication/login.html"
+
diff --git a/tjdests/apps/context_processors.py b/tjdests/apps/context_processors.py
new file mode 100644
index 0000000..eaa9498
--- /dev/null
+++ b/tjdests/apps/context_processors.py
@@ -0,0 +1,4 @@
+from django.conf import settings
+
+def settings_renderer(request):
+ return {"settings": settings}
diff --git a/tjdests/apps/destinations/__init__.py b/tjdests/apps/destinations/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/tjdests/apps/destinations/admin.py b/tjdests/apps/destinations/admin.py
new file mode 100644
index 0000000..c68d2b8
--- /dev/null
+++ b/tjdests/apps/destinations/admin.py
@@ -0,0 +1,7 @@
+from django.contrib import admin
+
+from .models import College, TestScore, Decision
+
+admin.site.register(College)
+admin.site.register(TestScore)
+admin.site.register(Decision)
diff --git a/tjdests/apps/destinations/management/__init__.py b/tjdests/apps/destinations/management/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/tjdests/apps/destinations/management/commands/__init__.py b/tjdests/apps/destinations/management/commands/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/tjdests/apps/destinations/management/commands/import_ceeb.py b/tjdests/apps/destinations/management/commands/import_ceeb.py
new file mode 100644
index 0000000..7cd0cce
--- /dev/null
+++ b/tjdests/apps/destinations/management/commands/import_ceeb.py
@@ -0,0 +1,28 @@
+import argparse
+import csv
+
+from django.core.management.base import BaseCommand
+
+from ...models import College
+
+class Command(BaseCommand):
+ help = "Imports a CSV of CEEB codes as colleges"
+
+ def add_arguments(self, parser: argparse.ArgumentParser):
+ parser.add_argument("file_name", type=str)
+
+ def handle(self, *args, **options):
+ """CSV format:
+
+ CEEB, College Name, City, State
+ """
+ with open(options["file_name"], "r") as file:
+ reader = csv.DictReader(file)
+
+ for line in reader:
+ result = College.objects.update_or_create(ceeb_code=line["CEEB"], defaults={"name": line["College Name"], "location": f"{line['City']}, {line['State']}"})
+
+ if result[1]:
+ self.stdout.write(f"Added university {result[0].name}.", style_func=self.style.SUCCESS)
+ else:
+ self.stdout.write(f"Did not update university {result[0].name}.", style_func=self.style.WARNING)
diff --git a/tjdests/apps/destinations/migrations/0001_initial.py b/tjdests/apps/destinations/migrations/0001_initial.py
new file mode 100644
index 0000000..c75fd69
--- /dev/null
+++ b/tjdests/apps/destinations/migrations/0001_initial.py
@@ -0,0 +1,44 @@
+# Generated by Django 3.2 on 2021-04-19 15:03
+
+from django.conf import settings
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+ initial = True
+
+ dependencies = [
+ migrations.swappable_dependency(settings.AUTH_USER_MODEL),
+ ]
+
+ operations = [
+ migrations.CreateModel(
+ name='College',
+ fields=[
+ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('ceeb_code', models.PositiveSmallIntegerField(verbose_name='CEEB Code')),
+ ('name', models.CharField(max_length=250)),
+ ('location', models.CharField(max_length=250)),
+ ],
+ ),
+ migrations.CreateModel(
+ name='TestScore',
+ fields=[
+ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('exam_type', models.CharField(choices=[('ACT_ENGL', 'ACT English (Grammar)'), ('ACT_MATH', 'ACT Math'), ('ACT_READ', 'ACT Reading'), ('ACT_SCI', 'ACT Science'), ('ACT_COMP', 'ACT Composite'), ('SAT_EBRW', 'SAT Verbal'), ('SAT_MATH', 'SAT Math'), ('SAT_TOTAL', 'SAT Total'), ('SAT2_MATH1', 'SAT Subject Test Math 1'), ('SAT2_MATH2', 'SAT Subject Test Math 2'), ('SAT2_BIO', 'SAT Subject Test Biology'), ('SAT2_CHEM', 'SAT Subject Test Chemistry'), ('SAT2_PHYS', 'SAT Subject Test Physics'), ('SAT2_ENGL', 'SAT Subject Test English'), ('SAT2_USH', 'SAT Subject Test U.S. History'), ('SAT2_WH', 'SAT Subject Test World History'), ('SAT2_ES', 'SAT Subject Test Spanish'), ('SAT2_ESL', 'SAT Subject Test Spanish with Listening'), ('SAT2_FR', 'SAT Subject Test French'), ('SAT2_FRL', 'SAT Subject Test French with Listening'), ('SAT2_ZHL', 'SAT Subject Test Chinese with Listening'), ('SAT2_IT', 'SAT Subject Test Italian'), ('SAT2_DE', 'SAT Subject Test German'), ('SAT2_DEL', 'SAT Subject Test German with Listening'), ('SAT2_HE', 'SAT Subject Test Modern Hebrew'), ('SAT2_LA', 'SAT Subject Test Latin'), ('SAT2_JAL', 'SAT Subject Test Japanese with Listening'), ('SAT2_KOL', 'SAT Subject Test Korean with Listening'), ('AP_RSRCH', 'AP Research'), ('AP_SMNR', 'AP Seminar'), ('AP_ART2D', 'AP Art and Design: 2-D Design'), ('AP_ART3D', 'AP Art and Design: 3-D Design'), ('AP_ARTDRAW', 'AP Art and Design: Drawing'), ('AP_ARTHIST', 'AP Art History'), ('AP_BIO', 'AP Biology'), ('AP_CALCAB', 'AP Calculus AB'), ('AP_CALCBC', 'AP Calculus BC'), ('AP_CHEM', 'AP Chemistry'), ('AP_ZHLANG', 'AP Chinese Language and Culture'), ('AP_CSA', 'AP Computer Science A'), ('AP_CSP', 'AP Computer Science Principles'), ('AP_ENLANG', 'AP English Language and Composition'), ('AP_ENLIT', 'AP English Literature and Composition'), ('AP_ENVSCI', 'AP Environmental Science'), ('AP_EUROHIST', 'AP European History'), ('AP_FRLANG', 'AP French Language and Culture'), ('AP_DELANG', 'AP German Language and Culture'), ('AP_GOVCOMP', 'AP Comparative Government and Politics'), ('AP_GOVUS', 'AP U.S. Government and Politics'), ('AP_HUG', 'AP Human Geography'), ('AP_ITLANG', 'AP Italian Language and Culture'), ('AP_JALANG', 'AP Japanese Language and Culture'), ('AP_LATIN', 'AP Latin'), ('AP_MACRO', 'AP Macroeconomics'), ('AP_MICRO', 'AP Microeconomics'), ('AP_MUSTHRY', 'AP Music Theory'), ('AP_PHYSICS1', 'AP Physics 1: Algebra-Based'), ('AP_PHYSICS2', 'AP Physics 2: Algebra-Based'), ('AP_PHYSICSCEM', 'AP Physics C: Electricity and Magnetism'), ('AP_PHYSICSCM', 'AP Physics C: Mechanics'), ('AP_PSYCH', 'AP Psychology'), ('AP_ESLANG', 'AP Spanish Language and Culture'), ('AP_ESLIT', 'AP Spanish Literature and Culture'), ('AP_STAT', 'AP Statistics'), ('AP_USH', 'AP US History'), ('AP_WHM', 'AP World History: Modern')], max_length=20)),
+ ('exam_score', models.PositiveSmallIntegerField()),
+ ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
+ ],
+ ),
+ migrations.CreateModel(
+ name='Decision',
+ fields=[
+ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('decision_type', models.CharField(choices=[('ED', 'Early Decision'), ('ED2', 'Early Decision 2'), ('EA', 'Early Action'), ('EA2', 'Early Action 2'), ('RD', 'Regular Decision'), ('RL', 'Rolling')], max_length=20, null=True)),
+ ('college', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='destinations.college')),
+ ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
+ ],
+ ),
+ ]
diff --git a/tjdests/apps/destinations/migrations/0002_decision_admitted.py b/tjdests/apps/destinations/migrations/0002_decision_admitted.py
new file mode 100644
index 0000000..0e81d52
--- /dev/null
+++ b/tjdests/apps/destinations/migrations/0002_decision_admitted.py
@@ -0,0 +1,18 @@
+# Generated by Django 3.2 on 2021-04-19 15:38
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('destinations', '0001_initial'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='decision',
+ name='admitted',
+ field=models.BooleanField(default=False),
+ ),
+ ]
diff --git a/tjdests/apps/destinations/migrations/0003_alter_decision_admitted.py b/tjdests/apps/destinations/migrations/0003_alter_decision_admitted.py
new file mode 100644
index 0000000..34d2d3e
--- /dev/null
+++ b/tjdests/apps/destinations/migrations/0003_alter_decision_admitted.py
@@ -0,0 +1,18 @@
+# Generated by Django 3.2 on 2021-04-19 15:47
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('destinations', '0002_decision_admitted'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='decision',
+ name='admitted',
+ field=models.CharField(choices=[('ADMIT', 'Admitted'), ('WAITLIST', 'Waitlisted'), ('WAITLIST_ADMIT', 'Waitlist-Admitted'), ('WAITLIST_DENY', 'Waitlist-Denied'), ('DEFER', 'Deferred'), ('DEFER_ADMIT', 'Deferred-Admitted'), ('DEFER_DENY', 'Deferred-Denied'), ('DENY', 'Denied')], default='DENY', max_length=20),
+ ),
+ ]
diff --git a/tjdests/apps/destinations/migrations/0004_rename_admitted_decision_admission_status.py b/tjdests/apps/destinations/migrations/0004_rename_admitted_decision_admission_status.py
new file mode 100644
index 0000000..972b2e4
--- /dev/null
+++ b/tjdests/apps/destinations/migrations/0004_rename_admitted_decision_admission_status.py
@@ -0,0 +1,18 @@
+# Generated by Django 3.2 on 2021-04-19 16:00
+
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('destinations', '0003_alter_decision_admitted'),
+ ]
+
+ operations = [
+ migrations.RenameField(
+ model_name='decision',
+ old_name='admitted',
+ new_name='admission_status',
+ ),
+ ]
diff --git a/tjdests/apps/destinations/migrations/0005_alter_decision_admission_status.py b/tjdests/apps/destinations/migrations/0005_alter_decision_admission_status.py
new file mode 100644
index 0000000..9fcf797
--- /dev/null
+++ b/tjdests/apps/destinations/migrations/0005_alter_decision_admission_status.py
@@ -0,0 +1,18 @@
+# Generated by Django 3.2 on 2021-04-19 17:13
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('destinations', '0004_rename_admitted_decision_admission_status'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='decision',
+ name='admission_status',
+ field=models.CharField(choices=[('ADMIT', 'Admitted'), ('WAITLIST', 'Waitlisted'), ('WAITLIST_ADMIT', 'Waitlist-Admitted'), ('WAITLIST_DENY', 'Waitlist-Denied'), ('DEFER', 'Deferred'), ('DEFER_ADMIT', 'Deferred-Admitted'), ('DEFER_DENY', 'Deferred-Denied'), ('DENY', 'Denied')], max_length=20),
+ ),
+ ]
diff --git a/tjdests/apps/destinations/migrations/0006_alter_college_ceeb_code.py b/tjdests/apps/destinations/migrations/0006_alter_college_ceeb_code.py
new file mode 100644
index 0000000..d74bcb2
--- /dev/null
+++ b/tjdests/apps/destinations/migrations/0006_alter_college_ceeb_code.py
@@ -0,0 +1,18 @@
+# Generated by Django 3.2 on 2021-04-19 18:40
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('destinations', '0005_alter_decision_admission_status'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='college',
+ name='ceeb_code',
+ field=models.CharField(max_length=10, verbose_name='CEEB Code'),
+ ),
+ ]
diff --git a/tjdests/apps/destinations/migrations/__init__.py b/tjdests/apps/destinations/migrations/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/tjdests/apps/destinations/models.py b/tjdests/apps/destinations/models.py
new file mode 100644
index 0000000..976a162
--- /dev/null
+++ b/tjdests/apps/destinations/models.py
@@ -0,0 +1,217 @@
+from django.db import models
+
+
+class College(models.Model):
+ """Represents a college."""
+
+ ceeb_code = models.CharField(max_length=10, null=False, verbose_name="CEEB Code")
+ name = models.CharField(max_length=250, null=False, blank=False)
+ location = models.CharField(max_length=250, null=False, blank=False)
+
+ def __str__(self):
+ return f"{self.name} - {self.location} ({self.ceeb_code})"
+
+
+class Decision(models.Model):
+ """Represents a college decision."""
+
+ EARLY_DECISION = "ED"
+ EARLY_DECISION_2 = "ED2"
+ EARLY_ACTION = "EA"
+ EARLY_ACTION_2 = "EA2"
+ REGULAR_DECISION = "RD"
+ ROLLING = "RL"
+
+ DECISION_TYPE_CHOICES = [
+ (EARLY_DECISION, "Early Decision"),
+ (EARLY_DECISION_2, "Early Decision 2"),
+ (EARLY_ACTION, "Early Action"),
+ (EARLY_ACTION_2, "Early Action 2"),
+ (REGULAR_DECISION, "Regular Decision"),
+ (ROLLING, "Rolling"),
+ ]
+
+ user = models.ForeignKey("authentication.User", on_delete=models.CASCADE)
+
+ decision_type = models.CharField(max_length=20, choices=DECISION_TYPE_CHOICES, null=True)
+
+ ADMIT = "ADMIT"
+ WAITLIST_ADMIT = "WAITLIST_ADMIT"
+ WAITLIST_DENY = "WAITLIST_DENY"
+ WAITLIST = "WAITLIST"
+ DEFER_ADMIT = "DEFER_ADMIT"
+ DEFER_DENY = "DEFER_DENY"
+ DEFER = "DEFER"
+ DENY = "DENY"
+
+ ADMIT_TYPE_CHOICES = [
+ (ADMIT, "Admitted"),
+ (WAITLIST, "Waitlisted"),
+ (WAITLIST_ADMIT, "Waitlist-Admitted"),
+ (WAITLIST_DENY, "Waitlist-Denied"),
+ (DEFER, "Deferred"),
+ (DEFER_ADMIT, "Deferred-Admitted"),
+ (DEFER_DENY, "Deferred-Denied"),
+ (DENY, "Denied"),
+ ]
+
+ admission_status = models.CharField(max_length=20, choices=ADMIT_TYPE_CHOICES)
+ college = models.ForeignKey(College, on_delete=models.CASCADE)
+
+ def __str__(self):
+ return f"{self.college.name} - {self.get_decision_type_display()}: {self.get_admission_status_display()}"
+
+
+class TestScore(models.Model):
+ """Represents a test score."""
+
+ # Test score types for validation purposes
+ ACT_ENGL = "ACT_ENGL"
+ ACT_MATH = "ACT_MATH"
+ ACT_READ = "ACT_READ"
+ ACT_SCI = "ACT_SCI"
+ ACT_COMP = "ACT_COMP"
+
+ # SAT
+ SAT_EBRW = "SAT_EBRW"
+ SAT_MATH = "SAT_MATH"
+ SAT_TOTAL = "SAT_TOTAL"
+
+ # SAT Subject Tests
+ SAT2_MATH1 = "SAT2_MATH1"
+ SAT2_MATH2 = "SAT2_MATH2"
+ SAT2_BIO = "SAT2_BIO"
+ SAT2_CHEM = "SAT2_CHEM"
+ SAT2_PHYS = "SAT2_PHYS"
+ SAT2_ENGL = "SAT2_ENGL"
+ SAT2_USH = "SAT2_USH"
+ SAT2_WH = "SAT2_WH"
+ SAT2_ES = "SAT2_ES"
+ SAT2_ESL = "SAT2_ESL"
+ SAT2_FR = "SAT2_FR"
+ SAT2_FRL = "SAT2_FRL"
+ SAT2_ZHL = "SAT2_ZHL"
+ SAT2_IT = "SAT2_IT"
+ SAT2_DE = "SAT2_DE"
+ SAT2_DEL = "SAT2_DEL"
+ SAT2_HE = "SAT2_HE"
+ SAT2_LA = "SAT2_LA"
+ SAT2_JAL = "SAT2_JAL"
+ SAT2_KOL = "SAT2_KOL"
+
+ # AP Exams
+ AP_RSRCH = "AP_RSRCH"
+ AP_SMNR = "AP_SMNR"
+ AP_ART2D = "AP_ART2D"
+ AP_ART3D = "AP_ART3D"
+ AP_ARTDRAW = "AP_ARTDRAW"
+ AP_ARTHIST = "AP_ARTHIST"
+ AP_BIO = "AP_BIO"
+ AP_CALCAB = "AP_CALCAB"
+ AP_CALCBC = "AP_CALCBC"
+ AP_CHEM = "AP_CHEM"
+ AP_ZHLANG = "AP_ZHLANG"
+ AP_CSA = "AP_CSA"
+ AP_CSP = "AP_CSP"
+ AP_ENLANG = "AP_ENLANG"
+ AP_ENLIT = "AP_ENLIT"
+ AP_ENVSCI = "AP_ENVSCI"
+ AP_EUROHIST = "AP_EUROHIST"
+ AP_FRLANG = "AP_FRLANG"
+ AP_DELANG = "AP_DELANG"
+ AP_GOVCOMP = "AP_GOVCOMP"
+ AP_GOVUS = "AP_GOVUS"
+ AP_HUG = "AP_HUG"
+ AP_ITLANG = "AP_ITLANG"
+ AP_JALANG = "AP_JALANG"
+ AP_LATIN = "AP_LATIN"
+ AP_MACRO = "AP_MACRO"
+ AP_MICRO = "AP_MICRO"
+ AP_MUSTHRY = "AP_MUSTHRY"
+ AP_PHYSICS1 = "AP_PHYSICS1"
+ AP_PHYSICS2 = "AP_PHYSICS2"
+ AP_PHYSICSCEM = "AP_PHYSICSCEM"
+ AP_PHYSICSCM = "AP_PHYSICSCM"
+ AP_PSYCH = "AP_PSYCH"
+ AP_ESLANG = "AP_ESLANG"
+ AP_ESLIT = "AP_ESLIT"
+ AP_STAT = "AP_STAT"
+ AP_USH = "AP_USH"
+ AP_WHM = "AP_WHM"
+
+ TEST_TYPES = [
+ (ACT_ENGL, "ACT English (Grammar)"),
+ (ACT_MATH, "ACT Math"),
+ (ACT_READ, "ACT Reading"),
+ (ACT_SCI, "ACT Science"),
+ (ACT_COMP, "ACT Composite"),
+ (SAT_EBRW, "SAT Verbal"),
+ (SAT_MATH, "SAT Math"),
+ (SAT_TOTAL, "SAT Total"),
+ (SAT2_MATH1, "SAT Subject Test Math 1"),
+ (SAT2_MATH2, "SAT Subject Test Math 2"),
+ (SAT2_BIO, "SAT Subject Test Biology"),
+ (SAT2_CHEM, "SAT Subject Test Chemistry"),
+ (SAT2_PHYS, "SAT Subject Test Physics"),
+ (SAT2_ENGL, "SAT Subject Test English"),
+ (SAT2_USH, "SAT Subject Test U.S. History"),
+ (SAT2_WH, "SAT Subject Test World History"),
+ (SAT2_ES, "SAT Subject Test Spanish"),
+ (SAT2_ESL, "SAT Subject Test Spanish with Listening"),
+ (SAT2_FR, "SAT Subject Test French"),
+ (SAT2_FRL, "SAT Subject Test French with Listening"),
+ (SAT2_ZHL, "SAT Subject Test Chinese with Listening"),
+ (SAT2_IT, "SAT Subject Test Italian"),
+ (SAT2_DE, "SAT Subject Test German"),
+ (SAT2_DEL, "SAT Subject Test German with Listening"),
+ (SAT2_HE, "SAT Subject Test Modern Hebrew"),
+ (SAT2_LA, "SAT Subject Test Latin"),
+ (SAT2_JAL, "SAT Subject Test Japanese with Listening"),
+ (SAT2_KOL, "SAT Subject Test Korean with Listening"),
+ (AP_RSRCH, "AP Research"),
+ (AP_SMNR, "AP Seminar"),
+ (AP_ART2D, "AP Art and Design: 2-D Design"),
+ (AP_ART3D, "AP Art and Design: 3-D Design"),
+ (AP_ARTDRAW, "AP Art and Design: Drawing"),
+ (AP_ARTHIST, "AP Art History"),
+ (AP_BIO, "AP Biology"),
+ (AP_CALCAB, "AP Calculus AB"),
+ (AP_CALCBC, "AP Calculus BC"),
+ (AP_CHEM, "AP Chemistry"),
+ (AP_ZHLANG, "AP Chinese Language and Culture"),
+ (AP_CSA, "AP Computer Science A"),
+ (AP_CSP, "AP Computer Science Principles"),
+ (AP_ENLANG, "AP English Language and Composition"),
+ (AP_ENLIT, "AP English Literature and Composition"),
+ (AP_ENVSCI, "AP Environmental Science"),
+ (AP_EUROHIST, "AP European History"),
+ (AP_FRLANG, "AP French Language and Culture"),
+ (AP_DELANG, "AP German Language and Culture"),
+ (AP_GOVCOMP, "AP Comparative Government and Politics"),
+ (AP_GOVUS, "AP U.S. Government and Politics"),
+ (AP_HUG, "AP Human Geography"),
+ (AP_ITLANG, "AP Italian Language and Culture"),
+ (AP_JALANG, "AP Japanese Language and Culture"),
+ (AP_LATIN, "AP Latin"),
+ (AP_MACRO, "AP Macroeconomics"),
+ (AP_MICRO, "AP Microeconomics"),
+ (AP_MUSTHRY, "AP Music Theory"),
+ (AP_PHYSICS1, "AP Physics 1: Algebra-Based"),
+ (AP_PHYSICS2, "AP Physics 2: Algebra-Based"),
+ (AP_PHYSICSCEM, "AP Physics C: Electricity and Magnetism"),
+ (AP_PHYSICSCM, "AP Physics C: Mechanics"),
+ (AP_PSYCH, "AP Psychology"),
+ (AP_ESLANG, "AP Spanish Language and Culture"),
+ (AP_ESLIT, "AP Spanish Literature and Culture"),
+ (AP_STAT, "AP Statistics"),
+ (AP_USH, "AP US History"),
+ (AP_WHM, "AP World History: Modern"),
+ ]
+
+ user = models.ForeignKey("authentication.User", on_delete=models.CASCADE)
+
+ exam_type = models.CharField(max_length=20, choices=TEST_TYPES, null=False)
+ exam_score = models.PositiveSmallIntegerField(null=False)
+
+ def __str__(self):
+ return f"{self.get_exam_type_display()}: {self.exam_score}"
diff --git a/tjdests/apps/destinations/urls.py b/tjdests/apps/destinations/urls.py
new file mode 100644
index 0000000..24f1a96
--- /dev/null
+++ b/tjdests/apps/destinations/urls.py
@@ -0,0 +1,9 @@
+from django.urls import path
+from . import views
+
+app_name = "destinations"
+
+urlpatterns = [
+ path("", views.StudentDestinationListView.as_view(), name="students"),
+ path("colleges", views.CollegeDestinationListView.as_view(), name="colleges"),
+]
\ No newline at end of file
diff --git a/tjdests/apps/destinations/views.py b/tjdests/apps/destinations/views.py
new file mode 100644
index 0000000..aad9f2e
--- /dev/null
+++ b/tjdests/apps/destinations/views.py
@@ -0,0 +1,71 @@
+from django.contrib.auth.mixins import UserPassesTestMixin, LoginRequiredMixin
+from django.db.models import Count, Q
+from django.shortcuts import get_object_or_404
+from django.views.generic import ListView
+
+from .models import College, Decision
+from ..authentication.models import User
+
+
+class StudentDestinationListView(LoginRequiredMixin, UserPassesTestMixin, ListView):
+ model = User
+ paginate_by = 20
+
+ def get_queryset(self):
+ queryset = User.objects.filter(publish_data=True, is_senior=True).order_by("last_name", "first_name")
+
+ college_id = self.request.GET.get("college", None)
+ if college_id is not None:
+ get_object_or_404(College, id=college_id)
+ queryset = queryset.filter(decision__college__id=college_id)
+
+ return queryset
+
+ def get_context_data(self, *, object_list=None, **kwargs):
+ context = super(StudentDestinationListView, self).get_context_data(**kwargs)
+
+ college_id = self.request.GET.get("college", None)
+ if college_id is not None:
+ context["college"] = get_object_or_404(College, id=college_id)
+
+ return context
+
+ def test_func(self):
+ return self.request.user.accepted_terms
+
+ template_name = "destinations/student_list.html"
+
+
+class CollegeDestinationListView(LoginRequiredMixin, UserPassesTestMixin, ListView):
+ model = College
+ paginate_by = 20
+ queryset = College.objects.annotate(count_decisions=Count("decision", filter=Q(decision__user__publish_data=True)),
+ count_admit=Count("decision",
+ filter=Q(decision__admission_status=Decision.ADMIT,
+ decision__user__publish_data=True)),
+ count_waitlist=Count("decision",
+ filter=Q(decision__admission_status=Decision.WAITLIST,
+ decision__user__publish_data=True)),
+ count_waitlist_admit=Count("decision", filter=Q(
+ decision__admission_status=Decision.WAITLIST_ADMIT,
+ decision__user__publish_data=True)),
+ count_waitlist_deny=Count("decision", filter=Q(
+ decision__admission_status=Decision.WAITLIST_DENY,
+ decision__user__publish_data=True)),
+ count_defer=Count("decision",
+ filter=Q(decision__admission_status=Decision.DEFER,
+ decision__user__publish_data=True)),
+ count_defer_admit=Count("decision", filter=Q(
+ decision__admission_status=Decision.DEFER_ADMIT,
+ decision__user__publish_data=True)),
+ count_defer_deny=Count("decision",
+ filter=Q(decision__admission_status=Decision.DEFER_DENY,
+ decision__user__publish_data=True)),
+ count_deny=Count("decision", filter=Q(decision__admission_status=Decision.DENY,
+ decision__user__publish_data=True)),
+ ).filter(count_decisions__gte=1).order_by("name")
+
+ def test_func(self):
+ return self.request.user.accepted_terms
+
+ template_name = "destinations/college_list.html"
diff --git a/tjdests/apps/profile/__init__.py b/tjdests/apps/profile/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/tjdests/apps/profile/forms.py b/tjdests/apps/profile/forms.py
new file mode 100644
index 0000000..fc1220c
--- /dev/null
+++ b/tjdests/apps/profile/forms.py
@@ -0,0 +1,28 @@
+from django import forms
+
+from tjdests.apps.authentication.models import User
+
+from crispy_forms.helper import FormHelper
+from crispy_forms.layout import Submit
+
+from tjdests.apps.destinations.models import Decision
+
+
+class ProfilePublishForm(forms.ModelForm):
+ def __init__(self, *args, **kwargs):
+ super().__init__(*args, **kwargs)
+ self.helper = FormHelper()
+ self.helper.form_method = 'post'
+
+ self.helper.add_input(Submit('submit', 'Submit'))
+
+ self.fields["attending_decision"].queryset = Decision.objects.filter(user=self.instance, admission_status__in=[Decision.ADMIT, Decision.WAITLIST_ADMIT, Decision.DEFER_ADMIT])
+
+ class Meta:
+ model = User
+ fields = ["publish_data", "biography", "attending_decision"]
+
+class DecisionForm(forms.ModelForm):
+ class Meta:
+ model = Decision
+ fields = ["college", "decision_type", "admission_status"]
diff --git a/tjdests/apps/profile/urls.py b/tjdests/apps/profile/urls.py
new file mode 100644
index 0000000..b10fc10
--- /dev/null
+++ b/tjdests/apps/profile/urls.py
@@ -0,0 +1,14 @@
+from django.urls import path
+from . import views
+
+app_name = "profile"
+
+urlpatterns = [
+ path("", views.profile_view, name="index"),
+ path("testscore/add", views.TestScoreCreateView.as_view(), name="testscores_add"),
+ path("testscore/edit/", views.TestScoreUpdateView.as_view(), name="testscores_edit"),
+ path("testscore/delete/", views.TestScoreDeleteView.as_view(), name="testscores_delete"),
+ path("decision/add", views.DecisionCreateView.as_view(), name="decision_add"),
+ path("decision/edit/", views.DecisionUpdateView.as_view(), name="decision_edit"),
+ path("decision/delete/", views.DecisionDeleteView.as_view(), name="decision_delete"),
+]
\ No newline at end of file
diff --git a/tjdests/apps/profile/views.py b/tjdests/apps/profile/views.py
new file mode 100644
index 0000000..d2a240b
--- /dev/null
+++ b/tjdests/apps/profile/views.py
@@ -0,0 +1,141 @@
+from django.contrib import messages
+from django.contrib.auth.decorators import login_required
+from django.contrib.auth.mixins import UserPassesTestMixin, LoginRequiredMixin
+from django.contrib.messages.views import SuccessMessageMixin
+from django.http import HttpRequest
+from django.shortcuts import render
+from django.urls import reverse
+from django.views.generic import CreateView, UpdateView, DeleteView
+
+from tjdests.apps.authentication.decorators import require_accept_tos
+from tjdests.apps.destinations.models import TestScore, Decision
+
+from .forms import ProfilePublishForm, DecisionForm
+
+
+@login_required
+@require_accept_tos
+def profile_view(request: HttpRequest):
+ test_scores = TestScore.objects.filter(user=request.user)
+ decisions = Decision.objects.filter(user=request.user)
+
+ # A POST request would mean that the user is saving their profile publication status
+ if request.method == "POST":
+ profile_form = ProfilePublishForm(request.POST, instance=request.user)
+ if profile_form.is_valid():
+ profile_form.save()
+
+ messages.success(request, "Your preferences have been changed.")
+ else:
+ profile_form = ProfilePublishForm(instance=request.user)
+
+ context = {"test_scores_list": test_scores, "decisions_list": decisions, "profile_form": profile_form}
+
+ return render(request, "profile/profile.html", context=context)
+
+
+class TestScoreCreateView(LoginRequiredMixin, SuccessMessageMixin, UserPassesTestMixin, CreateView):
+ model = TestScore
+ fields = ["exam_type", "exam_score"]
+ template_name = "profile/testscore_form.html"
+ success_message = "Test score created successfully."
+
+ def form_valid(self, form):
+ form.instance.user = self.request.user
+ return super().form_valid(form)
+
+ def test_func(self):
+ return self.request.user.is_senior and self.request.user.accepted_terms
+
+ def get_success_url(self):
+ return reverse("profile:index")
+
+
+class TestScoreUpdateView(LoginRequiredMixin, SuccessMessageMixin, UserPassesTestMixin, UpdateView):
+ model = TestScore
+ fields = ["exam_type", "exam_score"]
+ template_name = "profile/testscore_form.html"
+ success_message = "Test score updated successfully."
+
+ def form_valid(self, form):
+ form.instance.user = self.request.user
+ return super().form_valid(form)
+
+ def get_queryset(self):
+ owner = self.request.user
+ return self.model.objects.filter(user=owner)
+
+ def test_func(self):
+ return self.request.user.is_senior and self.request.user.accepted_terms
+
+ def get_success_url(self):
+ return reverse("profile:index")
+
+
+class TestScoreDeleteView(LoginRequiredMixin, SuccessMessageMixin, UserPassesTestMixin, DeleteView):
+ model = TestScore
+ template_name = "profile/testscore_delete.html"
+ success_message = "Test score deleted successfully."
+
+ def get_queryset(self):
+ owner = self.request.user
+ return self.model.objects.filter(user=owner)
+
+ def test_func(self):
+ return self.request.user.is_senior and self.request.user.accepted_terms
+
+ def get_success_url(self):
+ return reverse("profile:index")
+
+class DecisionCreateView(LoginRequiredMixin, SuccessMessageMixin, UserPassesTestMixin, CreateView):
+ model = Decision
+ fields = ["college", "decision_type", "admission_status"]
+ template_name = "profile/decision_form.html"
+ success_message = "Decision created successfully."
+
+ def form_valid(self, form):
+ form.instance.user = self.request.user
+ return super().form_valid(form)
+
+ def test_func(self):
+ return self.request.user.is_senior and self.request.user.accepted_terms
+
+ def get_success_url(self):
+ return reverse("profile:index")
+
+
+class DecisionUpdateView(LoginRequiredMixin, SuccessMessageMixin, UserPassesTestMixin, UpdateView):
+ model = Decision
+ fields = ["college", "decision_type", "admission_status"]
+ template_name = "profile/decision_form.html"
+ success_message = "Decision created successfully."
+
+ def form_valid(self, form):
+ form.instance.user = self.request.user
+ return super().form_valid(form)
+
+ def get_queryset(self):
+ owner = self.request.user
+ return self.model.objects.filter(user=owner)
+
+ def test_func(self):
+ return self.request.user.is_senior and self.request.user.accepted_terms
+
+ def get_success_url(self):
+ return reverse("profile:index")
+
+
+class DecisionDeleteView(LoginRequiredMixin, SuccessMessageMixin, UserPassesTestMixin, DeleteView):
+ model = Decision
+ template_name = "profile/decision_delete.html"
+ success_message = "Decision deleted successfully."
+
+ def get_queryset(self):
+ owner = self.request.user
+ return self.model.objects.filter(user=owner)
+
+ def test_func(self):
+ return self.request.user.is_senior and self.request.user.accepted_terms
+
+ def get_success_url(self):
+ return reverse("profile:index")
diff --git a/tjdests/asgi.py b/tjdests/asgi.py
new file mode 100644
index 0000000..5075bff
--- /dev/null
+++ b/tjdests/asgi.py
@@ -0,0 +1,16 @@
+"""
+ASGI config for tjdests project.
+
+It exposes the ASGI callable as a module-level variable named ``application``.
+
+For more information on this file, see
+https://docs.djangoproject.com/en/3.2/howto/deployment/asgi/
+"""
+
+import os
+
+from django.core.asgi import get_asgi_application
+
+os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'tjdests.settings')
+
+application = get_asgi_application()
diff --git a/tjdests/settings/__init__.py b/tjdests/settings/__init__.py
new file mode 100644
index 0000000..7687d07
--- /dev/null
+++ b/tjdests/settings/__init__.py
@@ -0,0 +1,160 @@
+"""
+Django settings for tjdests project.
+
+Generated by 'django-admin startproject' using Django 3.2.
+
+For more information on this file, see
+https://docs.djangoproject.com/en/3.2/topics/settings/
+
+For the full list of settings and their values, see
+https://docs.djangoproject.com/en/3.2/ref/settings/
+"""
+import logging
+import os
+from pathlib import Path
+
+# Build paths inside the project like this: BASE_DIR / 'subdir'.
+BASE_DIR = Path(__file__).resolve().parent.parent
+
+
+# Quick-start development settings - unsuitable for production
+# See https://docs.djangoproject.com/en/3.2/howto/deployment/checklist/
+
+# SECURITY WARNING: keep the secret key used in production secret!
+SECRET_KEY = 'django-insecure-7nju0o%j&gz7&v^05iuq*tn$_iwvtjh1cq26@is(u2d4snkum5'
+
+# SECURITY WARNING: don't run with debug turned on in production!
+DEBUG = True
+
+ALLOWED_HOSTS = []
+
+
+# Application definition
+
+INSTALLED_APPS = [
+ 'django.contrib.admin',
+ 'django.contrib.auth',
+ 'django.contrib.contenttypes',
+ 'django.contrib.sessions',
+ 'django.contrib.messages',
+ 'django.contrib.staticfiles',
+ "crispy_forms",
+ "crispy_bootstrap5",
+ "social_django",
+ "django_extensions",
+ "bootstrap_pagination",
+ 'tjdests.apps.authentication',
+ 'tjdests.apps.destinations',
+ "tjdests.apps.profile",
+]
+
+MIDDLEWARE = [
+ 'django.middleware.security.SecurityMiddleware',
+ 'django.contrib.sessions.middleware.SessionMiddleware',
+ 'django.middleware.common.CommonMiddleware',
+ 'django.middleware.csrf.CsrfViewMiddleware',
+ 'django.contrib.auth.middleware.AuthenticationMiddleware',
+ 'django.contrib.messages.middleware.MessageMiddleware',
+ 'django.middleware.clickjacking.XFrameOptionsMiddleware',
+]
+
+ROOT_URLCONF = 'tjdests.urls'
+
+TEMPLATES = [
+ {
+ 'BACKEND': 'django.template.backends.django.DjangoTemplates',
+ 'DIRS': [BASE_DIR / 'templates']
+ ,
+ 'APP_DIRS': True,
+ 'OPTIONS': {
+ 'context_processors': [
+ 'django.template.context_processors.debug',
+ 'django.template.context_processors.request',
+ 'django.contrib.auth.context_processors.auth',
+ 'django.contrib.messages.context_processors.messages',
+ 'tjdests.apps.context_processors.settings_renderer',
+ ],
+ },
+ },
+]
+
+WSGI_APPLICATION = 'tjdests.wsgi.application'
+
+
+# Database
+# https://docs.djangoproject.com/en/3.2/ref/settings/#databases
+
+DATABASES = {
+ 'default': {
+ 'ENGINE': 'django.db.backends.sqlite3',
+ 'NAME': BASE_DIR / 'db.sqlite3',
+ }
+}
+
+
+# Password validation
+# https://docs.djangoproject.com/en/3.2/ref/settings/#auth-password-validators
+
+AUTH_PASSWORD_VALIDATORS = [
+ {
+ 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
+ },
+ {
+ 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
+ },
+ {
+ 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
+ },
+ {
+ 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
+ },
+]
+
+AUTH_USER_MODEL = "authentication.User"
+
+AUTHENTICATION_BACKENDS = ("tjdests.apps.authentication.oauth.IonOauth2", "django.contrib.auth.backends.ModelBackend",)
+
+SOCIAL_AUTH_REDIRECT_IS_HTTPS = False
+SOCIAL_AUTH_ION_KEY = ""
+SOCIAL_AUTH_ION_SECRET = ""
+
+
+# Internationalization
+# https://docs.djangoproject.com/en/3.2/topics/i18n/
+
+LANGUAGE_CODE = 'en-us'
+
+TIME_ZONE = 'UTC'
+
+USE_I18N = True
+
+USE_L10N = True
+
+USE_TZ = True
+
+
+# Static files (CSS, JavaScript, Images)
+# https://docs.djangoproject.com/en/3.2/howto/static-files/
+
+STATIC_URL = '/static/'
+STATIC_ROOT = os.path.join(BASE_DIR, "serve/")
+STATICFILES_DIRS = (os.path.join(BASE_DIR, "static/"),)
+
+# Default primary key field type
+# https://docs.djangoproject.com/en/3.2/ref/settings/#default-auto-field
+
+DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
+
+LOGIN_REDIRECT_URL = "authentication:tos"
+LOGOUT_REDIRECT_URL = "authentication:index"
+
+LOGIN_URL = "authentication:login"
+
+CRISPY_ALLOWED_TEMPLATE_PACKS = "bootstrap5"
+CRISPY_TEMPLATE_PACK = "bootstrap5"
+
+try:
+ from .secret import *
+except ImportError:
+ logging.warning("Error importing secret.py")
+ pass
diff --git a/tjdests/settings/secret.sample.py b/tjdests/settings/secret.sample.py
new file mode 100644
index 0000000..6a4d781
--- /dev/null
+++ b/tjdests/settings/secret.sample.py
@@ -0,0 +1,17 @@
+# Deployed senior graduation year
+# e.g. if deploying in spring 2021, then 2021
+SENIOR_GRAD_YEAR = 2021
+
+# Branding name
+BRANDING_NAME = "TJ Destinations"
+
+# DEBUG and authorized hosts
+DEBUG = True
+ALLOWED_HOSTS = []
+
+# secret
+SECRET_KEY = 'supersecret'
+
+# OAuth
+SOCIAL_AUTH_ION_KEY = "ionkey"
+SOCIAL_AUTH_ION_SECRET = "ionsecret"
diff --git a/tjdests/static/bootstrap.bundle.min.js b/tjdests/static/bootstrap.bundle.min.js
new file mode 100644
index 0000000..2168d63
--- /dev/null
+++ b/tjdests/static/bootstrap.bundle.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap v5.0.0-beta3 (https://getbootstrap.com/)
+ * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ */
+!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).bootstrap=e()}(this,(function(){"use strict";const t=t=>{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t},e=t=>{let e=t.getAttribute("data-bs-target");if(!e||"#"===e){let i=t.getAttribute("href");if(!i||!i.includes("#")&&!i.startsWith("."))return null;i.includes("#")&&!i.startsWith("#")&&(i="#"+i.split("#")[1]),e=i&&"#"!==i?i.trim():null}return e},i=t=>{const i=e(t);return i&&document.querySelector(i)?i:null},s=t=>{const i=e(t);return i?document.querySelector(i):null},n=t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:i}=window.getComputedStyle(t);const s=Number.parseFloat(e),n=Number.parseFloat(i);return s||n?(e=e.split(",")[0],i=i.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(i))):0},o=t=>{t.dispatchEvent(new Event("transitionend"))},r=t=>(t[0]||t).nodeType,a=(t,e)=>{let i=!1;const s=e+5;t.addEventListener("transitionend",(function e(){i=!0,t.removeEventListener("transitionend",e)})),setTimeout(()=>{i||o(t)},s)},l=(t,e,i)=>{Object.keys(i).forEach(s=>{const n=i[s],o=e[s],a=o&&r(o)?"element":null==(l=o)?""+l:{}.toString.call(l).match(/\s([a-z]+)/i)[1].toLowerCase();var l;if(!new RegExp(n).test(a))throw new TypeError(t.toUpperCase()+": "+`Option "${s}" provided type "${a}" `+`but expected type "${n}".`)})},c=t=>{if(!t)return!1;if(t.style&&t.parentNode&&t.parentNode.style){const e=getComputedStyle(t),i=getComputedStyle(t.parentNode);return"none"!==e.display&&"none"!==i.display&&"hidden"!==e.visibility}return!1},d=t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains("disabled")||(void 0!==t.disabled?t.disabled:t.hasAttribute("disabled")&&"false"!==t.getAttribute("disabled")),h=t=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?h(t.parentNode):null},f=()=>function(){},u=t=>t.offsetHeight,p=()=>{const{jQuery:t}=window;return t&&!document.body.hasAttribute("data-bs-no-jquery")?t:null},g=()=>"rtl"===document.documentElement.dir,m=(t,e)=>{var i;i=()=>{const i=p();if(i){const s=i.fn[t];i.fn[t]=e.jQueryInterface,i.fn[t].Constructor=e,i.fn[t].noConflict=()=>(i.fn[t]=s,e.jQueryInterface)}},"loading"===document.readyState?document.addEventListener("DOMContentLoaded",i):i()},_=new Map;var b={set(t,e,i){_.has(t)||_.set(t,new Map);const s=_.get(t);s.has(e)||0===s.size?s.set(e,i):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(s.keys())[0]}.`)},get:(t,e)=>_.has(t)&&_.get(t).get(e)||null,remove(t,e){if(!_.has(t))return;const i=_.get(t);i.delete(e),0===i.size&&_.delete(t)}};const v=/[^.]*(?=\..*)\.|.*/,y=/\..*/,w=/::\d+$/,E={};let T=1;const A={mouseenter:"mouseover",mouseleave:"mouseout"},L=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function O(t,e){return e&&`${e}::${T++}`||t.uidEvent||T++}function k(t){const e=O(t);return t.uidEvent=e,E[e]=E[e]||{},E[e]}function D(t,e,i=null){const s=Object.keys(t);for(let n=0,o=s.length;n{!function(t,e,i,s){const n=e[i]||{};Object.keys(n).forEach(o=>{if(o.includes(s)){const s=n[o];S(t,e,i,s.originalHandler,s.delegationSelector)}})}(t,l,i,e.slice(1))});const d=l[r]||{};Object.keys(d).forEach(i=>{const s=i.replace(w,"");if(!a||e.includes(s)){const e=d[i];S(t,l,r,e.originalHandler,e.delegationSelector)}})},trigger(t,e,i){if("string"!=typeof e||!t)return null;const s=p(),n=e.replace(y,""),o=e!==n,r=L.has(n);let a,l=!0,c=!0,d=!1,h=null;return o&&s&&(a=s.Event(e,i),s(t).trigger(a),l=!a.isPropagationStopped(),c=!a.isImmediatePropagationStopped(),d=a.isDefaultPrevented()),r?(h=document.createEvent("HTMLEvents"),h.initEvent(n,l,!0)):h=new CustomEvent(e,{bubbles:l,cancelable:!0}),void 0!==i&&Object.keys(i).forEach(t=>{Object.defineProperty(h,t,{get:()=>i[t]})}),d&&h.preventDefault(),c&&t.dispatchEvent(h),h.defaultPrevented&&void 0!==a&&a.preventDefault(),h}};class j{constructor(t){(t="string"==typeof t?document.querySelector(t):t)&&(this._element=t,b.set(this._element,this.constructor.DATA_KEY,this))}dispose(){b.remove(this._element,this.constructor.DATA_KEY),this._element=null}static getInstance(t){return b.get(t,this.DATA_KEY)}static get VERSION(){return"5.0.0-beta3"}}class P extends j{static get DATA_KEY(){return"bs.alert"}close(t){const e=t?this._getRootElement(t):this._element,i=this._triggerCloseEvent(e);null===i||i.defaultPrevented||this._removeElement(e)}_getRootElement(t){return s(t)||t.closest(".alert")}_triggerCloseEvent(t){return N.trigger(t,"close.bs.alert")}_removeElement(t){if(t.classList.remove("show"),!t.classList.contains("fade"))return void this._destroyElement(t);const e=n(t);N.one(t,"transitionend",()=>this._destroyElement(t)),a(t,e)}_destroyElement(t){t.parentNode&&t.parentNode.removeChild(t),N.trigger(t,"closed.bs.alert")}static jQueryInterface(t){return this.each((function(){let e=b.get(this,"bs.alert");e||(e=new P(this)),"close"===t&&e[t](this)}))}static handleDismiss(t){return function(e){e&&e.preventDefault(),t.close(this)}}}N.on(document,"click.bs.alert.data-api",'[data-bs-dismiss="alert"]',P.handleDismiss(new P)),m("alert",P);class I extends j{static get DATA_KEY(){return"bs.button"}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}static jQueryInterface(t){return this.each((function(){let e=b.get(this,"bs.button");e||(e=new I(this)),"toggle"===t&&e[t]()}))}}function M(t){return"true"===t||"false"!==t&&(t===Number(t).toString()?Number(t):""===t||"null"===t?null:t)}function R(t){return t.replace(/[A-Z]/g,t=>"-"+t.toLowerCase())}N.on(document,"click.bs.button.data-api",'[data-bs-toggle="button"]',t=>{t.preventDefault();const e=t.target.closest('[data-bs-toggle="button"]');let i=b.get(e,"bs.button");i||(i=new I(e)),i.toggle()}),m("button",I);const B={setDataAttribute(t,e,i){t.setAttribute("data-bs-"+R(e),i)},removeDataAttribute(t,e){t.removeAttribute("data-bs-"+R(e))},getDataAttributes(t){if(!t)return{};const e={};return Object.keys(t.dataset).filter(t=>t.startsWith("bs")).forEach(i=>{let s=i.replace(/^bs/,"");s=s.charAt(0).toLowerCase()+s.slice(1,s.length),e[s]=M(t.dataset[i])}),e},getDataAttribute:(t,e)=>M(t.getAttribute("data-bs-"+R(e))),offset(t){const e=t.getBoundingClientRect();return{top:e.top+document.body.scrollTop,left:e.left+document.body.scrollLeft}},position:t=>({top:t.offsetTop,left:t.offsetLeft})},H={find:(t,e=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(e,t)),findOne:(t,e=document.documentElement)=>Element.prototype.querySelector.call(e,t),children:(t,e)=>[].concat(...t.children).filter(t=>t.matches(e)),parents(t,e){const i=[];let s=t.parentNode;for(;s&&s.nodeType===Node.ELEMENT_NODE&&3!==s.nodeType;)s.matches(e)&&i.push(s),s=s.parentNode;return i},prev(t,e){let i=t.previousElementSibling;for(;i;){if(i.matches(e))return[i];i=i.previousElementSibling}return[]},next(t,e){let i=t.nextElementSibling;for(;i;){if(i.matches(e))return[i];i=i.nextElementSibling}return[]}},W={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},U={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},$="next",F="prev",z="left",K="right";class Y extends j{constructor(t,e){super(t),this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(e),this._indicatorsElement=H.findOne(".carousel-indicators",this._element),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent),this._addEventListeners()}static get Default(){return W}static get DATA_KEY(){return"bs.carousel"}next(){this._isSliding||this._slide($)}nextWhenVisible(){!document.hidden&&c(this._element)&&this.next()}prev(){this._isSliding||this._slide(F)}pause(t){t||(this._isPaused=!0),H.findOne(".carousel-item-next, .carousel-item-prev",this._element)&&(o(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null}cycle(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config&&this._config.interval&&!this._isPaused&&(this._updateInterval(),this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))}to(t){this._activeElement=H.findOne(".active.carousel-item",this._element);const e=this._getItemIndex(this._activeElement);if(t>this._items.length-1||t<0)return;if(this._isSliding)return void N.one(this._element,"slid.bs.carousel",()=>this.to(t));if(e===t)return this.pause(),void this.cycle();const i=t>e?$:F;this._slide(i,this._items[t])}dispose(){N.off(this._element,".bs.carousel"),this._items=null,this._config=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null,super.dispose()}_getConfig(t){return t={...W,...t},l("carousel",t,U),t}_handleSwipe(){const t=Math.abs(this.touchDeltaX);if(t<=40)return;const e=t/this.touchDeltaX;this.touchDeltaX=0,e&&this._slide(e>0?K:z)}_addEventListeners(){this._config.keyboard&&N.on(this._element,"keydown.bs.carousel",t=>this._keydown(t)),"hover"===this._config.pause&&(N.on(this._element,"mouseenter.bs.carousel",t=>this.pause(t)),N.on(this._element,"mouseleave.bs.carousel",t=>this.cycle(t))),this._config.touch&&this._touchSupported&&this._addTouchEventListeners()}_addTouchEventListeners(){const t=t=>{!this._pointerEvent||"pen"!==t.pointerType&&"touch"!==t.pointerType?this._pointerEvent||(this.touchStartX=t.touches[0].clientX):this.touchStartX=t.clientX},e=t=>{this.touchDeltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-this.touchStartX},i=t=>{!this._pointerEvent||"pen"!==t.pointerType&&"touch"!==t.pointerType||(this.touchDeltaX=t.clientX-this.touchStartX),this._handleSwipe(),"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout(t=>this.cycle(t),500+this._config.interval))};H.find(".carousel-item img",this._element).forEach(t=>{N.on(t,"dragstart.bs.carousel",t=>t.preventDefault())}),this._pointerEvent?(N.on(this._element,"pointerdown.bs.carousel",e=>t(e)),N.on(this._element,"pointerup.bs.carousel",t=>i(t)),this._element.classList.add("pointer-event")):(N.on(this._element,"touchstart.bs.carousel",e=>t(e)),N.on(this._element,"touchmove.bs.carousel",t=>e(t)),N.on(this._element,"touchend.bs.carousel",t=>i(t)))}_keydown(t){/input|textarea/i.test(t.target.tagName)||("ArrowLeft"===t.key?(t.preventDefault(),this._slide(z)):"ArrowRight"===t.key&&(t.preventDefault(),this._slide(K)))}_getItemIndex(t){return this._items=t&&t.parentNode?H.find(".carousel-item",t.parentNode):[],this._items.indexOf(t)}_getItemByOrder(t,e){const i=t===$,s=t===F,n=this._getItemIndex(e),o=this._items.length-1;if((s&&0===n||i&&n===o)&&!this._config.wrap)return e;const r=(n+(s?-1:1))%this._items.length;return-1===r?this._items[this._items.length-1]:this._items[r]}_triggerSlideEvent(t,e){const i=this._getItemIndex(t),s=this._getItemIndex(H.findOne(".active.carousel-item",this._element));return N.trigger(this._element,"slide.bs.carousel",{relatedTarget:t,direction:e,from:s,to:i})}_setActiveIndicatorElement(t){if(this._indicatorsElement){const e=H.findOne(".active",this._indicatorsElement);e.classList.remove("active"),e.removeAttribute("aria-current");const i=H.find("[data-bs-target]",this._indicatorsElement);for(let e=0;e{r.classList.remove(h,f),r.classList.add("active"),s.classList.remove("active",f,h),this._isSliding=!1,setTimeout(()=>{N.trigger(this._element,"slid.bs.carousel",{relatedTarget:r,direction:p,from:o,to:l})},0)}),a(s,t)}else s.classList.remove("active"),r.classList.add("active"),this._isSliding=!1,N.trigger(this._element,"slid.bs.carousel",{relatedTarget:r,direction:p,from:o,to:l});c&&this.cycle()}}_directionToOrder(t){return[K,z].includes(t)?g()?t===K?F:$:t===K?$:F:t}_orderToDirection(t){return[$,F].includes(t)?g()?t===$?z:K:t===$?K:z:t}static carouselInterface(t,e){let i=b.get(t,"bs.carousel"),s={...W,...B.getDataAttributes(t)};"object"==typeof e&&(s={...s,...e});const n="string"==typeof e?e:s.slide;if(i||(i=new Y(t,s)),"number"==typeof e)i.to(e);else if("string"==typeof n){if(void 0===i[n])throw new TypeError(`No method named "${n}"`);i[n]()}else s.interval&&s.ride&&(i.pause(),i.cycle())}static jQueryInterface(t){return this.each((function(){Y.carouselInterface(this,t)}))}static dataApiClickHandler(t){const e=s(this);if(!e||!e.classList.contains("carousel"))return;const i={...B.getDataAttributes(e),...B.getDataAttributes(this)},n=this.getAttribute("data-bs-slide-to");n&&(i.interval=!1),Y.carouselInterface(e,i),n&&b.get(e,"bs.carousel").to(n),t.preventDefault()}}N.on(document,"click.bs.carousel.data-api","[data-bs-slide], [data-bs-slide-to]",Y.dataApiClickHandler),N.on(window,"load.bs.carousel.data-api",()=>{const t=H.find('[data-bs-ride="carousel"]');for(let e=0,i=t.length;et===this._element);null!==n&&o.length&&(this._selector=n,this._triggerArray.push(e))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}static get Default(){return q}static get DATA_KEY(){return"bs.collapse"}toggle(){this._element.classList.contains("show")?this.hide():this.show()}show(){if(this._isTransitioning||this._element.classList.contains("show"))return;let t,e;this._parent&&(t=H.find(".show, .collapsing",this._parent).filter(t=>"string"==typeof this._config.parent?t.getAttribute("data-bs-parent")===this._config.parent:t.classList.contains("collapse")),0===t.length&&(t=null));const i=H.findOne(this._selector);if(t){const s=t.find(t=>i!==t);if(e=s?b.get(s,"bs.collapse"):null,e&&e._isTransitioning)return}if(N.trigger(this._element,"show.bs.collapse").defaultPrevented)return;t&&t.forEach(t=>{i!==t&&X.collapseInterface(t,"hide"),e||b.set(t,"bs.collapse",null)});const s=this._getDimension();this._element.classList.remove("collapse"),this._element.classList.add("collapsing"),this._element.style[s]=0,this._triggerArray.length&&this._triggerArray.forEach(t=>{t.classList.remove("collapsed"),t.setAttribute("aria-expanded",!0)}),this.setTransitioning(!0);const o="scroll"+(s[0].toUpperCase()+s.slice(1)),r=n(this._element);N.one(this._element,"transitionend",()=>{this._element.classList.remove("collapsing"),this._element.classList.add("collapse","show"),this._element.style[s]="",this.setTransitioning(!1),N.trigger(this._element,"shown.bs.collapse")}),a(this._element,r),this._element.style[s]=this._element[o]+"px"}hide(){if(this._isTransitioning||!this._element.classList.contains("show"))return;if(N.trigger(this._element,"hide.bs.collapse").defaultPrevented)return;const t=this._getDimension();this._element.style[t]=this._element.getBoundingClientRect()[t]+"px",u(this._element),this._element.classList.add("collapsing"),this._element.classList.remove("collapse","show");const e=this._triggerArray.length;if(e>0)for(let t=0;t{this.setTransitioning(!1),this._element.classList.remove("collapsing"),this._element.classList.add("collapse"),N.trigger(this._element,"hidden.bs.collapse")}),a(this._element,i)}setTransitioning(t){this._isTransitioning=t}dispose(){super.dispose(),this._config=null,this._parent=null,this._triggerArray=null,this._isTransitioning=null}_getConfig(t){return(t={...q,...t}).toggle=Boolean(t.toggle),l("collapse",t,V),t}_getDimension(){return this._element.classList.contains("width")?"width":"height"}_getParent(){let{parent:t}=this._config;r(t)?void 0===t.jquery&&void 0===t[0]||(t=t[0]):t=H.findOne(t);const e=`[data-bs-toggle="collapse"][data-bs-parent="${t}"]`;return H.find(e,t).forEach(t=>{const e=s(t);this._addAriaAndCollapsedClass(e,[t])}),t}_addAriaAndCollapsedClass(t,e){if(!t||!e.length)return;const i=t.classList.contains("show");e.forEach(t=>{i?t.classList.remove("collapsed"):t.classList.add("collapsed"),t.setAttribute("aria-expanded",i)})}static collapseInterface(t,e){let i=b.get(t,"bs.collapse");const s={...q,...B.getDataAttributes(t),..."object"==typeof e&&e?e:{}};if(!i&&s.toggle&&"string"==typeof e&&/show|hide/.test(e)&&(s.toggle=!1),i||(i=new X(t,s)),"string"==typeof e){if(void 0===i[e])throw new TypeError(`No method named "${e}"`);i[e]()}}static jQueryInterface(t){return this.each((function(){X.collapseInterface(this,t)}))}}N.on(document,"click.bs.collapse.data-api",'[data-bs-toggle="collapse"]',(function(t){("A"===t.target.tagName||t.delegateTarget&&"A"===t.delegateTarget.tagName)&&t.preventDefault();const e=B.getDataAttributes(this),s=i(this);H.find(s).forEach(t=>{const i=b.get(t,"bs.collapse");let s;i?(null===i._parent&&"string"==typeof e.parent&&(i._config.parent=e.parent,i._parent=i._getParent()),s="toggle"):s=e,X.collapseInterface(t,s)})})),m("collapse",X);var Q="top",G="bottom",Z="right",J="left",tt=[Q,G,Z,J],et=tt.reduce((function(t,e){return t.concat([e+"-start",e+"-end"])}),[]),it=[].concat(tt,["auto"]).reduce((function(t,e){return t.concat([e,e+"-start",e+"-end"])}),[]),st=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function nt(t){return t?(t.nodeName||"").toLowerCase():null}function ot(t){if(null==t)return window;if("[object Window]"!==t.toString()){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function rt(t){return t instanceof ot(t).Element||t instanceof Element}function at(t){return t instanceof ot(t).HTMLElement||t instanceof HTMLElement}function lt(t){return"undefined"!=typeof ShadowRoot&&(t instanceof ot(t).ShadowRoot||t instanceof ShadowRoot)}var ct={name:"applyStyles",enabled:!0,phase:"write",fn:function(t){var e=t.state;Object.keys(e.elements).forEach((function(t){var i=e.styles[t]||{},s=e.attributes[t]||{},n=e.elements[t];at(n)&&nt(n)&&(Object.assign(n.style,i),Object.keys(s).forEach((function(t){var e=s[t];!1===e?n.removeAttribute(t):n.setAttribute(t,!0===e?"":e)})))}))},effect:function(t){var e=t.state,i={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,i.popper),e.styles=i,e.elements.arrow&&Object.assign(e.elements.arrow.style,i.arrow),function(){Object.keys(e.elements).forEach((function(t){var s=e.elements[t],n=e.attributes[t]||{},o=Object.keys(e.styles.hasOwnProperty(t)?e.styles[t]:i[t]).reduce((function(t,e){return t[e]="",t}),{});at(s)&&nt(s)&&(Object.assign(s.style,o),Object.keys(n).forEach((function(t){s.removeAttribute(t)})))}))}},requires:["computeStyles"]};function dt(t){return t.split("-")[0]}function ht(t){var e=t.getBoundingClientRect();return{width:e.width,height:e.height,top:e.top,right:e.right,bottom:e.bottom,left:e.left,x:e.left,y:e.top}}function ft(t){var e=ht(t),i=t.offsetWidth,s=t.offsetHeight;return Math.abs(e.width-i)<=1&&(i=e.width),Math.abs(e.height-s)<=1&&(s=e.height),{x:t.offsetLeft,y:t.offsetTop,width:i,height:s}}function ut(t,e){var i=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(i&<(i)){var s=e;do{if(s&&t.isSameNode(s))return!0;s=s.parentNode||s.host}while(s)}return!1}function pt(t){return ot(t).getComputedStyle(t)}function gt(t){return["table","td","th"].indexOf(nt(t))>=0}function mt(t){return((rt(t)?t.ownerDocument:t.document)||window.document).documentElement}function _t(t){return"html"===nt(t)?t:t.assignedSlot||t.parentNode||(lt(t)?t.host:null)||mt(t)}function bt(t){return at(t)&&"fixed"!==pt(t).position?t.offsetParent:null}function vt(t){for(var e=ot(t),i=bt(t);i&>(i)&&"static"===pt(i).position;)i=bt(i);return i&&("html"===nt(i)||"body"===nt(i)&&"static"===pt(i).position)?e:i||function(t){for(var e=-1!==navigator.userAgent.toLowerCase().indexOf("firefox"),i=_t(t);at(i)&&["html","body"].indexOf(nt(i))<0;){var s=pt(i);if("none"!==s.transform||"none"!==s.perspective||"paint"===s.contain||-1!==["transform","perspective"].indexOf(s.willChange)||e&&"filter"===s.willChange||e&&s.filter&&"none"!==s.filter)return i;i=i.parentNode}return null}(t)||e}function yt(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}var wt=Math.max,Et=Math.min,Tt=Math.round;function At(t,e,i){return wt(t,Et(e,i))}function Lt(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function Ot(t,e){return e.reduce((function(e,i){return e[i]=t,e}),{})}var kt={name:"arrow",enabled:!0,phase:"main",fn:function(t){var e,i=t.state,s=t.name,n=t.options,o=i.elements.arrow,r=i.modifiersData.popperOffsets,a=dt(i.placement),l=yt(a),c=[J,Z].indexOf(a)>=0?"height":"width";if(o&&r){var d=function(t,e){return Lt("number"!=typeof(t="function"==typeof t?t(Object.assign({},e.rects,{placement:e.placement})):t)?t:Ot(t,tt))}(n.padding,i),h=ft(o),f="y"===l?Q:J,u="y"===l?G:Z,p=i.rects.reference[c]+i.rects.reference[l]-r[l]-i.rects.popper[c],g=r[l]-i.rects.reference[l],m=vt(o),_=m?"y"===l?m.clientHeight||0:m.clientWidth||0:0,b=p/2-g/2,v=d[f],y=_-h[c]-d[u],w=_/2-h[c]/2+b,E=At(v,w,y),T=l;i.modifiersData[s]=((e={})[T]=E,e.centerOffset=E-w,e)}},effect:function(t){var e=t.state,i=t.options.element,s=void 0===i?"[data-popper-arrow]":i;null!=s&&("string"!=typeof s||(s=e.elements.popper.querySelector(s)))&&ut(e.elements.popper,s)&&(e.elements.arrow=s)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]},Dt={top:"auto",right:"auto",bottom:"auto",left:"auto"};function xt(t){var e,i=t.popper,s=t.popperRect,n=t.placement,o=t.offsets,r=t.position,a=t.gpuAcceleration,l=t.adaptive,c=t.roundOffsets,d=!0===c?function(t){var e=t.x,i=t.y,s=window.devicePixelRatio||1;return{x:Tt(Tt(e*s)/s)||0,y:Tt(Tt(i*s)/s)||0}}(o):"function"==typeof c?c(o):o,h=d.x,f=void 0===h?0:h,u=d.y,p=void 0===u?0:u,g=o.hasOwnProperty("x"),m=o.hasOwnProperty("y"),_=J,b=Q,v=window;if(l){var y=vt(i),w="clientHeight",E="clientWidth";y===ot(i)&&"static"!==pt(y=mt(i)).position&&(w="scrollHeight",E="scrollWidth"),y=y,n===Q&&(b=G,p-=y[w]-s.height,p*=a?1:-1),n===J&&(_=Z,f-=y[E]-s.width,f*=a?1:-1)}var T,A=Object.assign({position:r},l&&Dt);return a?Object.assign({},A,((T={})[b]=m?"0":"",T[_]=g?"0":"",T.transform=(v.devicePixelRatio||1)<2?"translate("+f+"px, "+p+"px)":"translate3d("+f+"px, "+p+"px, 0)",T)):Object.assign({},A,((e={})[b]=m?p+"px":"",e[_]=g?f+"px":"",e.transform="",e))}var Ct={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(t){var e=t.state,i=t.options,s=i.gpuAcceleration,n=void 0===s||s,o=i.adaptive,r=void 0===o||o,a=i.roundOffsets,l=void 0===a||a,c={placement:dt(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:n};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,xt(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:r,roundOffsets:l})))),null!=e.modifiersData.arrow&&(e.styles.arrow=Object.assign({},e.styles.arrow,xt(Object.assign({},c,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})},data:{}},St={passive:!0},Nt={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(t){var e=t.state,i=t.instance,s=t.options,n=s.scroll,o=void 0===n||n,r=s.resize,a=void 0===r||r,l=ot(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return o&&c.forEach((function(t){t.addEventListener("scroll",i.update,St)})),a&&l.addEventListener("resize",i.update,St),function(){o&&c.forEach((function(t){t.removeEventListener("scroll",i.update,St)})),a&&l.removeEventListener("resize",i.update,St)}},data:{}},jt={left:"right",right:"left",bottom:"top",top:"bottom"};function Pt(t){return t.replace(/left|right|bottom|top/g,(function(t){return jt[t]}))}var It={start:"end",end:"start"};function Mt(t){return t.replace(/start|end/g,(function(t){return It[t]}))}function Rt(t){var e=ot(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function Bt(t){return ht(mt(t)).left+Rt(t).scrollLeft}function Ht(t){var e=pt(t),i=e.overflow,s=e.overflowX,n=e.overflowY;return/auto|scroll|overlay|hidden/.test(i+n+s)}function Wt(t,e){var i;void 0===e&&(e=[]);var s=function t(e){return["html","body","#document"].indexOf(nt(e))>=0?e.ownerDocument.body:at(e)&&Ht(e)?e:t(_t(e))}(t),n=s===(null==(i=t.ownerDocument)?void 0:i.body),o=ot(s),r=n?[o].concat(o.visualViewport||[],Ht(s)?s:[]):s,a=e.concat(r);return n?a:a.concat(Wt(_t(r)))}function Ut(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function $t(t,e){return"viewport"===e?Ut(function(t){var e=ot(t),i=mt(t),s=e.visualViewport,n=i.clientWidth,o=i.clientHeight,r=0,a=0;return s&&(n=s.width,o=s.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(r=s.offsetLeft,a=s.offsetTop)),{width:n,height:o,x:r+Bt(t),y:a}}(t)):at(e)?function(t){var e=ht(t);return e.top=e.top+t.clientTop,e.left=e.left+t.clientLeft,e.bottom=e.top+t.clientHeight,e.right=e.left+t.clientWidth,e.width=t.clientWidth,e.height=t.clientHeight,e.x=e.left,e.y=e.top,e}(e):Ut(function(t){var e,i=mt(t),s=Rt(t),n=null==(e=t.ownerDocument)?void 0:e.body,o=wt(i.scrollWidth,i.clientWidth,n?n.scrollWidth:0,n?n.clientWidth:0),r=wt(i.scrollHeight,i.clientHeight,n?n.scrollHeight:0,n?n.clientHeight:0),a=-s.scrollLeft+Bt(t),l=-s.scrollTop;return"rtl"===pt(n||i).direction&&(a+=wt(i.clientWidth,n?n.clientWidth:0)-o),{width:o,height:r,x:a,y:l}}(mt(t)))}function Ft(t){return t.split("-")[1]}function zt(t){var e,i=t.reference,s=t.element,n=t.placement,o=n?dt(n):null,r=n?Ft(n):null,a=i.x+i.width/2-s.width/2,l=i.y+i.height/2-s.height/2;switch(o){case Q:e={x:a,y:i.y-s.height};break;case G:e={x:a,y:i.y+i.height};break;case Z:e={x:i.x+i.width,y:l};break;case J:e={x:i.x-s.width,y:l};break;default:e={x:i.x,y:i.y}}var c=o?yt(o):null;if(null!=c){var d="y"===c?"height":"width";switch(r){case"start":e[c]=e[c]-(i[d]/2-s[d]/2);break;case"end":e[c]=e[c]+(i[d]/2-s[d]/2)}}return e}function Kt(t,e){void 0===e&&(e={});var i=e,s=i.placement,n=void 0===s?t.placement:s,o=i.boundary,r=void 0===o?"clippingParents":o,a=i.rootBoundary,l=void 0===a?"viewport":a,c=i.elementContext,d=void 0===c?"popper":c,h=i.altBoundary,f=void 0!==h&&h,u=i.padding,p=void 0===u?0:u,g=Lt("number"!=typeof p?p:Ot(p,tt)),m="popper"===d?"reference":"popper",_=t.elements.reference,b=t.rects.popper,v=t.elements[f?m:d],y=function(t,e,i){var s="clippingParents"===e?function(t){var e=Wt(_t(t)),i=["absolute","fixed"].indexOf(pt(t).position)>=0&&at(t)?vt(t):t;return rt(i)?e.filter((function(t){return rt(t)&&ut(t,i)&&"body"!==nt(t)})):[]}(t):[].concat(e),n=[].concat(s,[i]),o=n[0],r=n.reduce((function(e,i){var s=$t(t,i);return e.top=wt(s.top,e.top),e.right=Et(s.right,e.right),e.bottom=Et(s.bottom,e.bottom),e.left=wt(s.left,e.left),e}),$t(t,o));return r.width=r.right-r.left,r.height=r.bottom-r.top,r.x=r.left,r.y=r.top,r}(rt(v)?v:v.contextElement||mt(t.elements.popper),r,l),w=ht(_),E=zt({reference:w,element:b,strategy:"absolute",placement:n}),T=Ut(Object.assign({},b,E)),A="popper"===d?T:w,L={top:y.top-A.top+g.top,bottom:A.bottom-y.bottom+g.bottom,left:y.left-A.left+g.left,right:A.right-y.right+g.right},O=t.modifiersData.offset;if("popper"===d&&O){var k=O[n];Object.keys(L).forEach((function(t){var e=[Z,G].indexOf(t)>=0?1:-1,i=[Q,G].indexOf(t)>=0?"y":"x";L[t]+=k[i]*e}))}return L}function Yt(t,e){void 0===e&&(e={});var i=e,s=i.placement,n=i.boundary,o=i.rootBoundary,r=i.padding,a=i.flipVariations,l=i.allowedAutoPlacements,c=void 0===l?it:l,d=Ft(s),h=d?a?et:et.filter((function(t){return Ft(t)===d})):tt,f=h.filter((function(t){return c.indexOf(t)>=0}));0===f.length&&(f=h);var u=f.reduce((function(e,i){return e[i]=Kt(t,{placement:i,boundary:n,rootBoundary:o,padding:r})[dt(i)],e}),{});return Object.keys(u).sort((function(t,e){return u[t]-u[e]}))}var qt={name:"flip",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,s=t.name;if(!e.modifiersData[s]._skip){for(var n=i.mainAxis,o=void 0===n||n,r=i.altAxis,a=void 0===r||r,l=i.fallbackPlacements,c=i.padding,d=i.boundary,h=i.rootBoundary,f=i.altBoundary,u=i.flipVariations,p=void 0===u||u,g=i.allowedAutoPlacements,m=e.options.placement,_=dt(m),b=l||(_!==m&&p?function(t){if("auto"===dt(t))return[];var e=Pt(t);return[Mt(t),e,Mt(e)]}(m):[Pt(m)]),v=[m].concat(b).reduce((function(t,i){return t.concat("auto"===dt(i)?Yt(e,{placement:i,boundary:d,rootBoundary:h,padding:c,flipVariations:p,allowedAutoPlacements:g}):i)}),[]),y=e.rects.reference,w=e.rects.popper,E=new Map,T=!0,A=v[0],L=0;L=0,C=x?"width":"height",S=Kt(e,{placement:O,boundary:d,rootBoundary:h,altBoundary:f,padding:c}),N=x?D?Z:J:D?G:Q;y[C]>w[C]&&(N=Pt(N));var j=Pt(N),P=[];if(o&&P.push(S[k]<=0),a&&P.push(S[N]<=0,S[j]<=0),P.every((function(t){return t}))){A=O,T=!1;break}E.set(O,P)}if(T)for(var I=function(t){var e=v.find((function(e){var i=E.get(e);if(i)return i.slice(0,t).every((function(t){return t}))}));if(e)return A=e,"break"},M=p?3:1;M>0&&"break"!==I(M);M--);e.placement!==A&&(e.modifiersData[s]._skip=!0,e.placement=A,e.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function Vt(t,e,i){return void 0===i&&(i={x:0,y:0}),{top:t.top-e.height-i.y,right:t.right-e.width+i.x,bottom:t.bottom-e.height+i.y,left:t.left-e.width-i.x}}function Xt(t){return[Q,Z,G,J].some((function(e){return t[e]>=0}))}var Qt={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(t){var e=t.state,i=t.name,s=e.rects.reference,n=e.rects.popper,o=e.modifiersData.preventOverflow,r=Kt(e,{elementContext:"reference"}),a=Kt(e,{altBoundary:!0}),l=Vt(r,s),c=Vt(a,n,o),d=Xt(l),h=Xt(c);e.modifiersData[i]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:d,hasPopperEscaped:h},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":d,"data-popper-escaped":h})}},Gt={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var e=t.state,i=t.options,s=t.name,n=i.offset,o=void 0===n?[0,0]:n,r=it.reduce((function(t,i){return t[i]=function(t,e,i){var s=dt(t),n=[J,Q].indexOf(s)>=0?-1:1,o="function"==typeof i?i(Object.assign({},e,{placement:t})):i,r=o[0],a=o[1];return r=r||0,a=(a||0)*n,[J,Z].indexOf(s)>=0?{x:a,y:r}:{x:r,y:a}}(i,e.rects,o),t}),{}),a=r[e.placement],l=a.x,c=a.y;null!=e.modifiersData.popperOffsets&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=c),e.modifiersData[s]=r}},Zt={name:"popperOffsets",enabled:!0,phase:"read",fn:function(t){var e=t.state,i=t.name;e.modifiersData[i]=zt({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})},data:{}},Jt={name:"preventOverflow",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,s=t.name,n=i.mainAxis,o=void 0===n||n,r=i.altAxis,a=void 0!==r&&r,l=i.boundary,c=i.rootBoundary,d=i.altBoundary,h=i.padding,f=i.tether,u=void 0===f||f,p=i.tetherOffset,g=void 0===p?0:p,m=Kt(e,{boundary:l,rootBoundary:c,padding:h,altBoundary:d}),_=dt(e.placement),b=Ft(e.placement),v=!b,y=yt(_),w="x"===y?"y":"x",E=e.modifiersData.popperOffsets,T=e.rects.reference,A=e.rects.popper,L="function"==typeof g?g(Object.assign({},e.rects,{placement:e.placement})):g,O={x:0,y:0};if(E){if(o||a){var k="y"===y?Q:J,D="y"===y?G:Z,x="y"===y?"height":"width",C=E[y],S=E[y]+m[k],N=E[y]-m[D],j=u?-A[x]/2:0,P="start"===b?T[x]:A[x],I="start"===b?-A[x]:-T[x],M=e.elements.arrow,R=u&&M?ft(M):{width:0,height:0},B=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},H=B[k],W=B[D],U=At(0,T[x],R[x]),$=v?T[x]/2-j-U-H-L:P-U-H-L,F=v?-T[x]/2+j+U+W+L:I+U+W+L,z=e.elements.arrow&&vt(e.elements.arrow),K=z?"y"===y?z.clientTop||0:z.clientLeft||0:0,Y=e.modifiersData.offset?e.modifiersData.offset[e.placement][y]:0,q=E[y]+$-Y-K,V=E[y]+F-Y;if(o){var X=At(u?Et(S,q):S,C,u?wt(N,V):N);E[y]=X,O[y]=X-C}if(a){var tt="x"===y?Q:J,et="x"===y?G:Z,it=E[w],st=it+m[tt],nt=it-m[et],ot=At(u?Et(st,q):st,it,u?wt(nt,V):nt);E[w]=ot,O[w]=ot-it}}e.modifiersData[s]=O}},requiresIfExists:["offset"]};function te(t,e,i){void 0===i&&(i=!1);var s,n,o=mt(e),r=ht(t),a=at(e),l={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(a||!a&&!i)&&(("body"!==nt(e)||Ht(o))&&(l=(s=e)!==ot(s)&&at(s)?{scrollLeft:(n=s).scrollLeft,scrollTop:n.scrollTop}:Rt(s)),at(e)?((c=ht(e)).x+=e.clientLeft,c.y+=e.clientTop):o&&(c.x=Bt(o))),{x:r.left+l.scrollLeft-c.x,y:r.top+l.scrollTop-c.y,width:r.width,height:r.height}}var ee={placement:"bottom",modifiers:[],strategy:"absolute"};function ie(){for(var t=arguments.length,e=new Array(t),i=0;i"applyStyles"===t.name&&!1===t.enabled);this._popper=re(e,this._menu,i),s&&B.setDataAttribute(this._menu,"popper","static")}"ontouchstart"in document.documentElement&&!t.closest(".navbar-nav")&&[].concat(...document.body.children).forEach(t=>N.on(t,"mouseover",null,(function(){}))),this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.toggle("show"),this._element.classList.toggle("show"),N.trigger(this._element,"shown.bs.dropdown",e)}}hide(){if(this._element.disabled||this._element.classList.contains("disabled")||!this._menu.classList.contains("show"))return;const t={relatedTarget:this._element};N.trigger(this._element,"hide.bs.dropdown",t).defaultPrevented||(this._popper&&this._popper.destroy(),this._menu.classList.toggle("show"),this._element.classList.toggle("show"),B.removeDataAttribute(this._menu,"popper"),N.trigger(this._element,"hidden.bs.dropdown",t))}dispose(){N.off(this._element,".bs.dropdown"),this._menu=null,this._popper&&(this._popper.destroy(),this._popper=null),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_addEventListeners(){N.on(this._element,"click.bs.dropdown",t=>{t.preventDefault(),this.toggle()})}_getConfig(t){if(t={...this.constructor.Default,...B.getDataAttributes(this._element),...t},l("dropdown",t,this.constructor.DefaultType),"object"==typeof t.reference&&!r(t.reference)&&"function"!=typeof t.reference.getBoundingClientRect)throw new TypeError("dropdown".toUpperCase()+': Option "reference" provided type "object" without a required "getBoundingClientRect" method.');return t}_getMenuElement(){return H.next(this._element,".dropdown-menu")[0]}_getPlacement(){const t=this._element.parentNode;if(t.classList.contains("dropend"))return ue;if(t.classList.contains("dropstart"))return pe;const e="end"===getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();return t.classList.contains("dropup")?e?de:ce:e?fe:he}_detectNavbar(){return null!==this._element.closest(".navbar")}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map(t=>Number.parseInt(t,10)):"function"==typeof t?e=>t(e,this._element):t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return"static"===this._config.display&&(t.modifiers=[{name:"applyStyles",enabled:!1}]),{...t,..."function"==typeof this._config.popperConfig?this._config.popperConfig(t):this._config.popperConfig}}static dropdownInterface(t,e){let i=b.get(t,"bs.dropdown");if(i||(i=new _e(t,"object"==typeof e?e:null)),"string"==typeof e){if(void 0===i[e])throw new TypeError(`No method named "${e}"`);i[e]()}}static jQueryInterface(t){return this.each((function(){_e.dropdownInterface(this,t)}))}static clearMenus(t){if(t){if(2===t.button||"keyup"===t.type&&"Tab"!==t.key)return;if(/input|select|textarea|form/i.test(t.target.tagName))return}const e=H.find('[data-bs-toggle="dropdown"]');for(let i=0,s=e.length;it.composedPath().includes(e)))continue;if("keyup"===t.type&&"Tab"===t.key&&o.contains(t.target))continue}N.trigger(e[i],"hide.bs.dropdown",n).defaultPrevented||("ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach(t=>N.off(t,"mouseover",null,(function(){}))),e[i].setAttribute("aria-expanded","false"),s._popper&&s._popper.destroy(),o.classList.remove("show"),e[i].classList.remove("show"),B.removeDataAttribute(o,"popper"),N.trigger(e[i],"hidden.bs.dropdown",n))}}}static getParentFromElement(t){return s(t)||t.parentNode}static dataApiKeydownHandler(t){if(/input|textarea/i.test(t.target.tagName)?"Space"===t.key||"Escape"!==t.key&&("ArrowDown"!==t.key&&"ArrowUp"!==t.key||t.target.closest(".dropdown-menu")):!le.test(t.key))return;if(t.preventDefault(),t.stopPropagation(),this.disabled||this.classList.contains("disabled"))return;const e=_e.getParentFromElement(this),i=this.classList.contains("show");if("Escape"===t.key)return(this.matches('[data-bs-toggle="dropdown"]')?this:H.prev(this,'[data-bs-toggle="dropdown"]')[0]).focus(),void _e.clearMenus();if(!i&&("ArrowUp"===t.key||"ArrowDown"===t.key))return void(this.matches('[data-bs-toggle="dropdown"]')?this:H.prev(this,'[data-bs-toggle="dropdown"]')[0]).click();if(!i||"Space"===t.key)return void _e.clearMenus();const s=H.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",e).filter(c);if(!s.length)return;let n=s.indexOf(t.target);"ArrowUp"===t.key&&n>0&&n--,"ArrowDown"===t.key&&nthis.hide(t)),N.on(this._dialog,"mousedown.dismiss.bs.modal",()=>{N.one(this._element,"mouseup.dismiss.bs.modal",t=>{t.target===this._element&&(this._ignoreBackdropClick=!0)})}),this._showBackdrop(()=>this._showElement(t)))}hide(t){if(t&&t.preventDefault(),!this._isShown||this._isTransitioning)return;if(N.trigger(this._element,"hide.bs.modal").defaultPrevented)return;this._isShown=!1;const e=this._isAnimated();if(e&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),N.off(document,"focusin.bs.modal"),this._element.classList.remove("show"),N.off(this._element,"click.dismiss.bs.modal"),N.off(this._dialog,"mousedown.dismiss.bs.modal"),e){const t=n(this._element);N.one(this._element,"transitionend",t=>this._hideModal(t)),a(this._element,t)}else this._hideModal()}dispose(){[window,this._element,this._dialog].forEach(t=>N.off(t,".bs.modal")),super.dispose(),N.off(document,"focusin.bs.modal"),this._config=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._isTransitioning=null,this._scrollbarWidth=null}handleUpdate(){this._adjustDialog()}_getConfig(t){return t={...be,...t},l("modal",t,ve),t}_showElement(t){const e=this._isAnimated(),i=H.findOne(".modal-body",this._dialog);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0,i&&(i.scrollTop=0),e&&u(this._element),this._element.classList.add("show"),this._config.focus&&this._enforceFocus();const s=()=>{this._config.focus&&this._element.focus(),this._isTransitioning=!1,N.trigger(this._element,"shown.bs.modal",{relatedTarget:t})};if(e){const t=n(this._dialog);N.one(this._dialog,"transitionend",s),a(this._dialog,t)}else s()}_enforceFocus(){N.off(document,"focusin.bs.modal"),N.on(document,"focusin.bs.modal",t=>{document===t.target||this._element===t.target||this._element.contains(t.target)||this._element.focus()})}_setEscapeEvent(){this._isShown?N.on(this._element,"keydown.dismiss.bs.modal",t=>{this._config.keyboard&&"Escape"===t.key?(t.preventDefault(),this.hide()):this._config.keyboard||"Escape"!==t.key||this._triggerBackdropTransition()}):N.off(this._element,"keydown.dismiss.bs.modal")}_setResizeEvent(){this._isShown?N.on(window,"resize.bs.modal",()=>this._adjustDialog()):N.off(window,"resize.bs.modal")}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._showBackdrop(()=>{document.body.classList.remove("modal-open"),this._resetAdjustments(),this._resetScrollbar(),N.trigger(this._element,"hidden.bs.modal")})}_removeBackdrop(){this._backdrop.parentNode.removeChild(this._backdrop),this._backdrop=null}_showBackdrop(t){const e=this._isAnimated();if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className="modal-backdrop",e&&this._backdrop.classList.add("fade"),document.body.appendChild(this._backdrop),N.on(this._element,"click.dismiss.bs.modal",t=>{this._ignoreBackdropClick?this._ignoreBackdropClick=!1:t.target===t.currentTarget&&("static"===this._config.backdrop?this._triggerBackdropTransition():this.hide())}),e&&u(this._backdrop),this._backdrop.classList.add("show"),!e)return void t();const i=n(this._backdrop);N.one(this._backdrop,"transitionend",t),a(this._backdrop,i)}else if(!this._isShown&&this._backdrop){this._backdrop.classList.remove("show");const i=()=>{this._removeBackdrop(),t()};if(e){const t=n(this._backdrop);N.one(this._backdrop,"transitionend",i),a(this._backdrop,t)}else i()}else t()}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(N.trigger(this._element,"hidePrevented.bs.modal").defaultPrevented)return;const t=this._element.scrollHeight>document.documentElement.clientHeight;t||(this._element.style.overflowY="hidden"),this._element.classList.add("modal-static");const e=n(this._dialog);N.off(this._element,"transitionend"),N.one(this._element,"transitionend",()=>{this._element.classList.remove("modal-static"),t||(N.one(this._element,"transitionend",()=>{this._element.style.overflowY=""}),a(this._element,e))}),a(this._element,e),this._element.focus()}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight;(!this._isBodyOverflowing&&t&&!g()||this._isBodyOverflowing&&!t&&g())&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),(this._isBodyOverflowing&&!t&&!g()||!this._isBodyOverflowing&&t&&g())&&(this._element.style.paddingRight=this._scrollbarWidth+"px")}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}_checkScrollbar(){const t=document.body.getBoundingClientRect();this._isBodyOverflowing=Math.round(t.left+t.right)t+this._scrollbarWidth),this._setElementAttributes(".sticky-top","marginRight",t=>t-this._scrollbarWidth),this._setElementAttributes("body","paddingRight",t=>t+this._scrollbarWidth)),document.body.classList.add("modal-open")}_setElementAttributes(t,e,i){H.find(t).forEach(t=>{if(t!==document.body&&window.innerWidth>t.clientWidth+this._scrollbarWidth)return;const s=t.style[e],n=window.getComputedStyle(t)[e];B.setDataAttribute(t,e,s),t.style[e]=i(Number.parseFloat(n))+"px"})}_resetScrollbar(){this._resetElementAttributes(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top","paddingRight"),this._resetElementAttributes(".sticky-top","marginRight"),this._resetElementAttributes("body","paddingRight")}_resetElementAttributes(t,e){H.find(t).forEach(t=>{const i=B.getDataAttribute(t,e);void 0===i&&t===document.body?t.style[e]="":(B.removeDataAttribute(t,e),t.style[e]=i)})}_getScrollbarWidth(){const t=document.createElement("div");t.className="modal-scrollbar-measure",document.body.appendChild(t);const e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e}static jQueryInterface(t,e){return this.each((function(){let i=b.get(this,"bs.modal");const s={...be,...B.getDataAttributes(this),..."object"==typeof t&&t?t:{}};if(i||(i=new ye(this,s)),"string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t](e)}}))}}N.on(document,"click.bs.modal.data-api",'[data-bs-toggle="modal"]',(function(t){const e=s(this);"A"!==this.tagName&&"AREA"!==this.tagName||t.preventDefault(),N.one(e,"show.bs.modal",t=>{t.defaultPrevented||N.one(e,"hidden.bs.modal",()=>{c(this)&&this.focus()})});let i=b.get(e,"bs.modal");if(!i){const t={...B.getDataAttributes(e),...B.getDataAttributes(this)};i=new ye(e,t)}i.toggle(this)})),m("modal",ye);const we=()=>{const t=document.documentElement.clientWidth;return Math.abs(window.innerWidth-t)},Ee=(t,e,i)=>{const s=we();H.find(t).forEach(t=>{if(t!==document.body&&window.innerWidth>t.clientWidth+s)return;const n=t.style[e],o=window.getComputedStyle(t)[e];B.setDataAttribute(t,e,n),t.style[e]=i(Number.parseFloat(o))+"px"})},Te=(t,e)=>{H.find(t).forEach(t=>{const i=B.getDataAttribute(t,e);void 0===i&&t===document.body?t.style.removeProperty(e):(B.removeDataAttribute(t,e),t.style[e]=i)})},Ae={backdrop:!0,keyboard:!0,scroll:!1},Le={backdrop:"boolean",keyboard:"boolean",scroll:"boolean"};class Oe extends j{constructor(t,e){super(t),this._config=this._getConfig(e),this._isShown=!1,this._addEventListeners()}static get Default(){return Ae}static get DATA_KEY(){return"bs.offcanvas"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||N.trigger(this._element,"show.bs.offcanvas",{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._element.style.visibility="visible",this._config.backdrop&&document.body.classList.add("offcanvas-backdrop"),this._config.scroll||((t=we())=>{document.body.style.overflow="hidden",Ee(".fixed-top, .fixed-bottom, .is-fixed","paddingRight",e=>e+t),Ee(".sticky-top","marginRight",e=>e-t),Ee("body","paddingRight",e=>e+t)})(),this._element.classList.add("offcanvas-toggling"),this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add("show"),setTimeout(()=>{this._element.classList.remove("offcanvas-toggling"),N.trigger(this._element,"shown.bs.offcanvas",{relatedTarget:t}),this._enforceFocusOnElement(this._element)},n(this._element)))}hide(){this._isShown&&(N.trigger(this._element,"hide.bs.offcanvas").defaultPrevented||(this._element.classList.add("offcanvas-toggling"),N.off(document,"focusin.bs.offcanvas"),this._element.blur(),this._isShown=!1,this._element.classList.remove("show"),setTimeout(()=>{this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._element.style.visibility="hidden",this._config.backdrop&&document.body.classList.remove("offcanvas-backdrop"),this._config.scroll||(document.body.style.overflow="auto",Te(".fixed-top, .fixed-bottom, .is-fixed","paddingRight"),Te(".sticky-top","marginRight"),Te("body","paddingRight")),N.trigger(this._element,"hidden.bs.offcanvas"),this._element.classList.remove("offcanvas-toggling")},n(this._element))))}_getConfig(t){return t={...Ae,...B.getDataAttributes(this._element),..."object"==typeof t?t:{}},l("offcanvas",t,Le),t}_enforceFocusOnElement(t){N.off(document,"focusin.bs.offcanvas"),N.on(document,"focusin.bs.offcanvas",e=>{document===e.target||t===e.target||t.contains(e.target)||t.focus()}),t.focus()}_addEventListeners(){N.on(this._element,"click.dismiss.bs.offcanvas",'[data-bs-dismiss="offcanvas"]',()=>this.hide()),N.on(document,"keydown",t=>{this._config.keyboard&&"Escape"===t.key&&this.hide()}),N.on(document,"click.bs.offcanvas.data-api",t=>{const e=H.findOne(i(t.target));this._element.contains(t.target)||e===this._element||this.hide()})}static jQueryInterface(t){return this.each((function(){const e=b.get(this,"bs.offcanvas")||new Oe(this,"object"==typeof t?t:{});if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}N.on(document,"click.bs.offcanvas.data-api",'[data-bs-toggle="offcanvas"]',(function(t){const e=s(this);if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),d(this))return;N.one(e,"hidden.bs.offcanvas",()=>{c(this)&&this.focus()});const i=H.findOne(".offcanvas.show, .offcanvas-toggling");i&&i!==e||(b.get(e,"bs.offcanvas")||new Oe(e)).toggle(this)})),N.on(window,"load.bs.offcanvas.data-api",()=>{H.find(".offcanvas.show").forEach(t=>(b.get(t,"bs.offcanvas")||new Oe(t)).show())}),m("offcanvas",Oe);const ke=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),De=/^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/i,xe=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i,Ce=(t,e)=>{const i=t.nodeName.toLowerCase();if(e.includes(i))return!ke.has(i)||Boolean(De.test(t.nodeValue)||xe.test(t.nodeValue));const s=e.filter(t=>t instanceof RegExp);for(let t=0,e=s.length;t{Ce(t,a)||i.removeAttribute(t.nodeName)})}return s.body.innerHTML}const Ne=new RegExp("(^|\\s)bs-tooltip\\S+","g"),je=new Set(["sanitize","allowList","sanitizeFn"]),Pe={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(array|string|function)",container:"(string|element|boolean)",fallbackPlacements:"array",boundary:"(string|element)",customClass:"(string|function)",sanitize:"boolean",sanitizeFn:"(null|function)",allowList:"object",popperConfig:"(null|object|function)"},Ie={AUTO:"auto",TOP:"top",RIGHT:g()?"left":"right",BOTTOM:"bottom",LEFT:g()?"right":"left"},Me={animation:!0,template:'
',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:[0,0],container:!1,fallbackPlacements:["top","right","bottom","left"],boundary:"clippingParents",customClass:"",sanitize:!0,sanitizeFn:null,allowList:{"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},popperConfig:null},Re={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"};class Be extends j{constructor(t,e){if(void 0===ae)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(t),this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.config=this._getConfig(e),this.tip=null,this._setListeners()}static get Default(){return Me}static get NAME(){return"tooltip"}static get DATA_KEY(){return"bs.tooltip"}static get Event(){return Re}static get EVENT_KEY(){return".bs.tooltip"}static get DefaultType(){return Pe}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(t){if(this._isEnabled)if(t){const e=this._initializeOnDelegatedTarget(t);e._activeTrigger.click=!e._activeTrigger.click,e._isWithActiveTrigger()?e._enter(null,e):e._leave(null,e)}else{if(this.getTipElement().classList.contains("show"))return void this._leave(null,this);this._enter(null,this)}}dispose(){clearTimeout(this._timeout),N.off(this._element,this.constructor.EVENT_KEY),N.off(this._element.closest(".modal"),"hide.bs.modal",this._hideModalHandler),this.tip&&this.tip.parentNode&&this.tip.parentNode.removeChild(this.tip),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._popper&&this._popper.destroy(),this._popper=null,this.config=null,this.tip=null,super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this.isWithContent()||!this._isEnabled)return;const e=N.trigger(this._element,this.constructor.Event.SHOW),i=h(this._element),s=null===i?this._element.ownerDocument.documentElement.contains(this._element):i.contains(this._element);if(e.defaultPrevented||!s)return;const o=this.getTipElement(),r=t(this.constructor.NAME);o.setAttribute("id",r),this._element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&o.classList.add("fade");const l="function"==typeof this.config.placement?this.config.placement.call(this,o,this._element):this.config.placement,c=this._getAttachment(l);this._addAttachmentClass(c);const d=this._getContainer();b.set(o,this.constructor.DATA_KEY,this),this._element.ownerDocument.documentElement.contains(this.tip)||(d.appendChild(o),N.trigger(this._element,this.constructor.Event.INSERTED)),this._popper?this._popper.update():this._popper=re(this._element,o,this._getPopperConfig(c)),o.classList.add("show");const f="function"==typeof this.config.customClass?this.config.customClass():this.config.customClass;f&&o.classList.add(...f.split(" ")),"ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach(t=>{N.on(t,"mouseover",(function(){}))});const u=()=>{const t=this._hoverState;this._hoverState=null,N.trigger(this._element,this.constructor.Event.SHOWN),"out"===t&&this._leave(null,this)};if(this.tip.classList.contains("fade")){const t=n(this.tip);N.one(this.tip,"transitionend",u),a(this.tip,t)}else u()}hide(){if(!this._popper)return;const t=this.getTipElement(),e=()=>{this._isWithActiveTrigger()||("show"!==this._hoverState&&t.parentNode&&t.parentNode.removeChild(t),this._cleanTipClass(),this._element.removeAttribute("aria-describedby"),N.trigger(this._element,this.constructor.Event.HIDDEN),this._popper&&(this._popper.destroy(),this._popper=null))};if(!N.trigger(this._element,this.constructor.Event.HIDE).defaultPrevented){if(t.classList.remove("show"),"ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach(t=>N.off(t,"mouseover",f)),this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1,this.tip.classList.contains("fade")){const i=n(t);N.one(t,"transitionend",e),a(t,i)}else e();this._hoverState=""}}update(){null!==this._popper&&this._popper.update()}isWithContent(){return Boolean(this.getTitle())}getTipElement(){if(this.tip)return this.tip;const t=document.createElement("div");return t.innerHTML=this.config.template,this.tip=t.children[0],this.tip}setContent(){const t=this.getTipElement();this.setElementContent(H.findOne(".tooltip-inner",t),this.getTitle()),t.classList.remove("fade","show")}setElementContent(t,e){if(null!==t)return"object"==typeof e&&r(e)?(e.jquery&&(e=e[0]),void(this.config.html?e.parentNode!==t&&(t.innerHTML="",t.appendChild(e)):t.textContent=e.textContent)):void(this.config.html?(this.config.sanitize&&(e=Se(e,this.config.allowList,this.config.sanitizeFn)),t.innerHTML=e):t.textContent=e)}getTitle(){let t=this._element.getAttribute("data-bs-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this._element):this.config.title),t}updateAttachment(t){return"right"===t?"end":"left"===t?"start":t}_initializeOnDelegatedTarget(t,e){const i=this.constructor.DATA_KEY;return(e=e||b.get(t.delegateTarget,i))||(e=new this.constructor(t.delegateTarget,this._getDelegateConfig()),b.set(t.delegateTarget,i,e)),e}_getOffset(){const{offset:t}=this.config;return"string"==typeof t?t.split(",").map(t=>Number.parseInt(t,10)):"function"==typeof t?e=>t(e,this._element):t}_getPopperConfig(t){const e={placement:t,modifiers:[{name:"flip",options:{altBoundary:!0,fallbackPlacements:this.config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this.config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"onChange",enabled:!0,phase:"afterWrite",fn:t=>this._handlePopperPlacementChange(t)}],onFirstUpdate:t=>{t.options.placement!==t.placement&&this._handlePopperPlacementChange(t)}};return{...e,..."function"==typeof this.config.popperConfig?this.config.popperConfig(e):this.config.popperConfig}}_addAttachmentClass(t){this.getTipElement().classList.add("bs-tooltip-"+this.updateAttachment(t))}_getContainer(){return!1===this.config.container?document.body:r(this.config.container)?this.config.container:H.findOne(this.config.container)}_getAttachment(t){return Ie[t.toUpperCase()]}_setListeners(){this.config.trigger.split(" ").forEach(t=>{if("click"===t)N.on(this._element,this.constructor.Event.CLICK,this.config.selector,t=>this.toggle(t));else if("manual"!==t){const e="hover"===t?this.constructor.Event.MOUSEENTER:this.constructor.Event.FOCUSIN,i="hover"===t?this.constructor.Event.MOUSELEAVE:this.constructor.Event.FOCUSOUT;N.on(this._element,e,this.config.selector,t=>this._enter(t)),N.on(this._element,i,this.config.selector,t=>this._leave(t))}}),this._hideModalHandler=()=>{this._element&&this.hide()},N.on(this._element.closest(".modal"),"hide.bs.modal",this._hideModalHandler),this.config.selector?this.config={...this.config,trigger:"manual",selector:""}:this._fixTitle()}_fixTitle(){const t=this._element.getAttribute("title"),e=typeof this._element.getAttribute("data-bs-original-title");(t||"string"!==e)&&(this._element.setAttribute("data-bs-original-title",t||""),!t||this._element.getAttribute("aria-label")||this._element.textContent||this._element.setAttribute("aria-label",t),this._element.setAttribute("title",""))}_enter(t,e){e=this._initializeOnDelegatedTarget(t,e),t&&(e._activeTrigger["focusin"===t.type?"focus":"hover"]=!0),e.getTipElement().classList.contains("show")||"show"===e._hoverState?e._hoverState="show":(clearTimeout(e._timeout),e._hoverState="show",e.config.delay&&e.config.delay.show?e._timeout=setTimeout(()=>{"show"===e._hoverState&&e.show()},e.config.delay.show):e.show())}_leave(t,e){e=this._initializeOnDelegatedTarget(t,e),t&&(e._activeTrigger["focusout"===t.type?"focus":"hover"]=e._element.contains(t.relatedTarget)),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState="out",e.config.delay&&e.config.delay.hide?e._timeout=setTimeout(()=>{"out"===e._hoverState&&e.hide()},e.config.delay.hide):e.hide())}_isWithActiveTrigger(){for(const t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1}_getConfig(t){const e=B.getDataAttributes(this._element);return Object.keys(e).forEach(t=>{je.has(t)&&delete e[t]}),t&&"object"==typeof t.container&&t.container.jquery&&(t.container=t.container[0]),"number"==typeof(t={...this.constructor.Default,...e,..."object"==typeof t&&t?t:{}}).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),l("tooltip",t,this.constructor.DefaultType),t.sanitize&&(t.template=Se(t.template,t.allowList,t.sanitizeFn)),t}_getDelegateConfig(){const t={};if(this.config)for(const e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t}_cleanTipClass(){const t=this.getTipElement(),e=t.getAttribute("class").match(Ne);null!==e&&e.length>0&&e.map(t=>t.trim()).forEach(e=>t.classList.remove(e))}_handlePopperPlacementChange(t){const{state:e}=t;e&&(this.tip=e.elements.popper,this._cleanTipClass(),this._addAttachmentClass(this._getAttachment(e.placement)))}static jQueryInterface(t){return this.each((function(){let e=b.get(this,"bs.tooltip");const i="object"==typeof t&&t;if((e||!/dispose|hide/.test(t))&&(e||(e=new Be(this,i)),"string"==typeof t)){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}m("tooltip",Be);const He=new RegExp("(^|\\s)bs-popover\\S+","g"),We={...Be.Default,placement:"right",offset:[0,8],trigger:"click",content:"",template:'
The GNU Affero General Public License is a free, copyleft license
+ for software and other kinds of works, specifically designed to ensure
+ cooperation with the community in the case of network server software.
+
+
The licenses for most software and other practical works are
+ designed to take away your freedom to share and change the works. By
+ contrast, our General Public Licenses are intended to guarantee your
+ freedom to share and change all versions of a program--to make sure it
+ remains free software for all its users.
+
+
When we speak of free software, we are referring to freedom, not
+ price. Our General Public Licenses are designed to make sure that you
+ have the freedom to distribute copies of free software (and charge for
+ them if you wish), that you receive source code or can get it if you
+ want it, that you can change the software or use pieces of it in new
+ free programs, and that you know you can do these things.
+
+
Developers that use our General Public Licenses protect your rights
+ with two steps: (1) assert copyright on the software, and (2) offer
+ you this License which gives you legal permission to copy, distribute
+ and/or modify the software.
+
+
A secondary benefit of defending all users' freedom is that
+ improvements made in alternate versions of the program, if they
+ receive widespread use, become available for other developers to
+ incorporate. Many developers of free software are heartened and
+ encouraged by the resulting cooperation. However, in the case of
+ software used on network servers, this result may fail to come about.
+ The GNU General Public License permits making a modified version and
+ letting the public access it on a server without ever releasing its
+ source code to the public.
+
+
The GNU Affero General Public License is designed specifically to
+ ensure that, in such cases, the modified source code becomes available
+ to the community. It requires the operator of a network server to
+ provide the source code of the modified version running there to the
+ users of that server. Therefore, public use of a modified version, on
+ a publicly accessible server, gives the public access to the source
+ code of the modified version.
+
+
An older license, called the Affero General Public License and
+ published by Affero, was designed to accomplish similar goals. This is
+ a different license, not a version of the Affero GPL, but Affero has
+ released a new version of the Affero GPL which permits relicensing under
+ this license.
+
+
The precise terms and conditions for copying, distribution and
+ modification follow.
+
+
TERMS AND CONDITIONS
+
+
0. Definitions.
+
+
"This License" refers to version 3 of the GNU Affero General Public
+ License.
+
+
"Copyright" also means copyright-like laws that apply to other kinds
+ of works, such as semiconductor masks.
+
+
"The Program" refers to any copyrightable work licensed under this
+ License. Each licensee is addressed as "you". "Licensees" and
+ "recipients" may be individuals or organizations.
+
+
To "modify" a work means to copy from or adapt all or part of the work
+ in a fashion requiring copyright permission, other than the making of an
+ exact copy. The resulting work is called a "modified version" of the
+ earlier work or a work "based on" the earlier work.
+
+
A "covered work" means either the unmodified Program or a work based
+ on the Program.
+
+
To "propagate" a work means to do anything with it that, without
+ permission, would make you directly or secondarily liable for
+ infringement under applicable copyright law, except executing it on a
+ computer or modifying a private copy. Propagation includes copying,
+ distribution (with or without modification), making available to the
+ public, and in some countries other activities as well.
+
+
To "convey" a work means any kind of propagation that enables other
+ parties to make or receive copies. Mere interaction with a user through
+ a computer network, with no transfer of a copy, is not conveying.
+
+
An interactive user interface displays "Appropriate Legal Notices"
+ to the extent that it includes a convenient and prominently visible
+ feature that (1) displays an appropriate copyright notice, and (2)
+ tells the user that there is no warranty for the work (except to the
+ extent that warranties are provided), that licensees may convey the
+ work under this License, and how to view a copy of this License. If
+ the interface presents a list of user commands or options, such as a
+ menu, a prominent item in the list meets this criterion.
+
+
1. Source Code.
+
+
The "source code" for a work means the preferred form of the work
+ for making modifications to it. "Object code" means any non-source
+ form of a work.
+
+
A "Standard Interface" means an interface that either is an official
+ standard defined by a recognized standards body, or, in the case of
+ interfaces specified for a particular programming language, one that
+ is widely used among developers working in that language.
+
+
The "System Libraries" of an executable work include anything, other
+ than the work as a whole, that (a) is included in the normal form of
+ packaging a Major Component, but which is not part of that Major
+ Component, and (b) serves only to enable use of the work with that
+ Major Component, or to implement a Standard Interface for which an
+ implementation is available to the public in source code form. A
+ "Major Component", in this context, means a major essential component
+ (kernel, window system, and so on) of the specific operating system
+ (if any) on which the executable work runs, or a compiler used to
+ produce the work, or an object code interpreter used to run it.
+
+
The "Corresponding Source" for a work in object code form means all
+ the source code needed to generate, install, and (for an executable
+ work) run the object code and to modify the work, including scripts to
+ control those activities. However, it does not include the work's
+ System Libraries, or general-purpose tools or generally available free
+ programs which are used unmodified in performing those activities but
+ which are not part of the work. For example, Corresponding Source
+ includes interface definition files associated with source files for
+ the work, and the source code for shared libraries and dynamically
+ linked subprograms that the work is specifically designed to require,
+ such as by intimate data communication or control flow between those
+ subprograms and other parts of the work.
+
+
The Corresponding Source need not include anything that users
+ can regenerate automatically from other parts of the Corresponding
+ Source.
+
+
The Corresponding Source for a work in source code form is that
+ same work.
+
+
2. Basic Permissions.
+
+
All rights granted under this License are granted for the term of
+ copyright on the Program, and are irrevocable provided the stated
+ conditions are met. This License explicitly affirms your unlimited
+ permission to run the unmodified Program. The output from running a
+ covered work is covered by this License only if the output, given its
+ content, constitutes a covered work. This License acknowledges your
+ rights of fair use or other equivalent, as provided by copyright law.
+
+
You may make, run and propagate covered works that you do not
+ convey, without conditions so long as your license otherwise remains
+ in force. You may convey covered works to others for the sole purpose
+ of having them make modifications exclusively for you, or provide you
+ with facilities for running those works, provided that you comply with
+ the terms of this License in conveying all material for which you do
+ not control copyright. Those thus making or running the covered works
+ for you must do so exclusively on your behalf, under your direction
+ and control, on terms that prohibit them from making any copies of
+ your copyrighted material outside their relationship with you.
+
+
Conveying under any other circumstances is permitted solely under
+ the conditions stated below. Sublicensing is not allowed; section 10
+ makes it unnecessary.
+
+
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+
No covered work shall be deemed part of an effective technological
+ measure under any applicable law fulfilling obligations under article
+ 11 of the WIPO copyright treaty adopted on 20 December 1996, or
+ similar laws prohibiting or restricting circumvention of such
+ measures.
+
+
When you convey a covered work, you waive any legal power to forbid
+ circumvention of technological measures to the extent such circumvention
+ is effected by exercising rights under this License with respect to
+ the covered work, and you disclaim any intention to limit operation or
+ modification of the work as a means of enforcing, against the work's
+ users, your or third parties' legal rights to forbid circumvention of
+ technological measures.
+
+
4. Conveying Verbatim Copies.
+
+
You may convey verbatim copies of the Program's source code as you
+ receive it, in any medium, provided that you conspicuously and
+ appropriately publish on each copy an appropriate copyright notice;
+ keep intact all notices stating that this License and any
+ non-permissive terms added in accord with section 7 apply to the code;
+ keep intact all notices of the absence of any warranty; and give all
+ recipients a copy of this License along with the Program.
+
+
You may charge any price or no price for each copy that you convey,
+ and you may offer support or warranty protection for a fee.
+
+
5. Conveying Modified Source Versions.
+
+
You may convey a work based on the Program, or the modifications to
+ produce it from the Program, in the form of source code under the
+ terms of section 4, provided that you also meet all of these conditions:
+
+
+
+
a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+
b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+
c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+
d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+
+
+
A compilation of a covered work with other separate and independent
+ works, which are not by their nature extensions of the covered work,
+ and which are not combined with it such as to form a larger program,
+ in or on a volume of a storage or distribution medium, is called an
+ "aggregate" if the compilation and its resulting copyright are not
+ used to limit the access or legal rights of the compilation's users
+ beyond what the individual works permit. Inclusion of a covered work
+ in an aggregate does not cause this License to apply to the other
+ parts of the aggregate.
+
+
6. Conveying Non-Source Forms.
+
+
You may convey a covered work in object code form under the terms
+ of sections 4 and 5, provided that you also convey the
+ machine-readable Corresponding Source under the terms of this License,
+ in one of these ways:
+
+
+
+
a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+
b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+
c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+
d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+
e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+
+
+
A separable portion of the object code, whose source code is excluded
+ from the Corresponding Source as a System Library, need not be
+ included in conveying the object code work.
+
+
A "User Product" is either (1) a "consumer product", which means any
+ tangible personal property which is normally used for personal, family,
+ or household purposes, or (2) anything designed or sold for incorporation
+ into a dwelling. In determining whether a product is a consumer product,
+ doubtful cases shall be resolved in favor of coverage. For a particular
+ product received by a particular user, "normally used" refers to a
+ typical or common use of that class of product, regardless of the status
+ of the particular user or of the way in which the particular user
+ actually uses, or expects or is expected to use, the product. A product
+ is a consumer product regardless of whether the product has substantial
+ commercial, industrial or non-consumer uses, unless such uses represent
+ the only significant mode of use of the product.
+
+
"Installation Information" for a User Product means any methods,
+ procedures, authorization keys, or other information required to install
+ and execute modified versions of a covered work in that User Product from
+ a modified version of its Corresponding Source. The information must
+ suffice to ensure that the continued functioning of the modified object
+ code is in no case prevented or interfered with solely because
+ modification has been made.
+
+
If you convey an object code work under this section in, or with, or
+ specifically for use in, a User Product, and the conveying occurs as
+ part of a transaction in which the right of possession and use of the
+ User Product is transferred to the recipient in perpetuity or for a
+ fixed term (regardless of how the transaction is characterized), the
+ Corresponding Source conveyed under this section must be accompanied
+ by the Installation Information. But this requirement does not apply
+ if neither you nor any third party retains the ability to install
+ modified object code on the User Product (for example, the work has
+ been installed in ROM).
+
+
The requirement to provide Installation Information does not include a
+ requirement to continue to provide support service, warranty, or updates
+ for a work that has been modified or installed by the recipient, or for
+ the User Product in which it has been modified or installed. Access to a
+ network may be denied when the modification itself materially and
+ adversely affects the operation of the network or violates the rules and
+ protocols for communication across the network.
+
+
Corresponding Source conveyed, and Installation Information provided,
+ in accord with this section must be in a format that is publicly
+ documented (and with an implementation available to the public in
+ source code form), and must require no special password or key for
+ unpacking, reading or copying.
+
+
7. Additional Terms.
+
+
"Additional permissions" are terms that supplement the terms of this
+ License by making exceptions from one or more of its conditions.
+ Additional permissions that are applicable to the entire Program shall
+ be treated as though they were included in this License, to the extent
+ that they are valid under applicable law. If additional permissions
+ apply only to part of the Program, that part may be used separately
+ under those permissions, but the entire Program remains governed by
+ this License without regard to the additional permissions.
+
+
When you convey a copy of a covered work, you may at your option
+ remove any additional permissions from that copy, or from any part of
+ it. (Additional permissions may be written to require their own
+ removal in certain cases when you modify the work.) You may place
+ additional permissions on material, added by you to a covered work,
+ for which you have or can give appropriate copyright permission.
+
+
Notwithstanding any other provision of this License, for material you
+ add to a covered work, you may (if authorized by the copyright holders of
+ that material) supplement the terms of this License with terms:
+
+
+
+
a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+
b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+
c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+
d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+
e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+
f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+
+
+
All other non-permissive additional terms are considered "further
+ restrictions" within the meaning of section 10. If the Program as you
+ received it, or any part of it, contains a notice stating that it is
+ governed by this License along with a term that is a further restriction,
+ you may remove that term. If a license document contains a further
+ restriction but permits relicensing or conveying under this License, you
+ may add to a covered work material governed by the terms of that license
+ document, provided that the further restriction does not survive such
+ relicensing or conveying.
+
+
If you add terms to a covered work in accord with this section, you
+ must place, in the relevant source files, a statement of the
+ additional terms that apply to those files, or a notice indicating
+ where to find the applicable terms.
+
+
Additional terms, permissive or non-permissive, may be stated in the
+ form of a separately written license, or stated as exceptions;
+ the above requirements apply either way.
+
+
8. Termination.
+
+
You may not propagate or modify a covered work except as expressly
+ provided under this License. Any attempt otherwise to propagate or
+ modify it is void, and will automatically terminate your rights under
+ this License (including any patent licenses granted under the third
+ paragraph of section 11).
+
+
However, if you cease all violation of this License, then your
+ license from a particular copyright holder is reinstated (a)
+ provisionally, unless and until the copyright holder explicitly and
+ finally terminates your license, and (b) permanently, if the copyright
+ holder fails to notify you of the violation by some reasonable means
+ prior to 60 days after the cessation.
+
+
Moreover, your license from a particular copyright holder is
+ reinstated permanently if the copyright holder notifies you of the
+ violation by some reasonable means, this is the first time you have
+ received notice of violation of this License (for any work) from that
+ copyright holder, and you cure the violation prior to 30 days after
+ your receipt of the notice.
+
+
Termination of your rights under this section does not terminate the
+ licenses of parties who have received copies or rights from you under
+ this License. If your rights have been terminated and not permanently
+ reinstated, you do not qualify to receive new licenses for the same
+ material under section 10.
+
+
9. Acceptance Not Required for Having Copies.
+
+
You are not required to accept this License in order to receive or
+ run a copy of the Program. Ancillary propagation of a covered work
+ occurring solely as a consequence of using peer-to-peer transmission
+ to receive a copy likewise does not require acceptance. However,
+ nothing other than this License grants you permission to propagate or
+ modify any covered work. These actions infringe copyright if you do
+ not accept this License. Therefore, by modifying or propagating a
+ covered work, you indicate your acceptance of this License to do so.
+
+
10. Automatic Licensing of Downstream Recipients.
+
+
Each time you convey a covered work, the recipient automatically
+ receives a license from the original licensors, to run, modify and
+ propagate that work, subject to this License. You are not responsible
+ for enforcing compliance by third parties with this License.
+
+
An "entity transaction" is a transaction transferring control of an
+ organization, or substantially all assets of one, or subdividing an
+ organization, or merging organizations. If propagation of a covered
+ work results from an entity transaction, each party to that
+ transaction who receives a copy of the work also receives whatever
+ licenses to the work the party's predecessor in interest had or could
+ give under the previous paragraph, plus a right to possession of the
+ Corresponding Source of the work from the predecessor in interest, if
+ the predecessor has it or can get it with reasonable efforts.
+
+
You may not impose any further restrictions on the exercise of the
+ rights granted or affirmed under this License. For example, you may
+ not impose a license fee, royalty, or other charge for exercise of
+ rights granted under this License, and you may not initiate litigation
+ (including a cross-claim or counterclaim in a lawsuit) alleging that
+ any patent claim is infringed by making, using, selling, offering for
+ sale, or importing the Program or any portion of it.
+
+
11. Patents.
+
+
A "contributor" is a copyright holder who authorizes use under this
+ License of the Program or a work on which the Program is based. The
+ work thus licensed is called the contributor's "contributor version".
+
+
A contributor's "essential patent claims" are all patent claims
+ owned or controlled by the contributor, whether already acquired or
+ hereafter acquired, that would be infringed by some manner, permitted
+ by this License, of making, using, or selling its contributor version,
+ but do not include claims that would be infringed only as a
+ consequence of further modification of the contributor version. For
+ purposes of this definition, "control" includes the right to grant
+ patent sublicenses in a manner consistent with the requirements of
+ this License.
+
+
Each contributor grants you a non-exclusive, worldwide, royalty-free
+ patent license under the contributor's essential patent claims, to
+ make, use, sell, offer for sale, import and otherwise run, modify and
+ propagate the contents of its contributor version.
+
+
In the following three paragraphs, a "patent license" is any express
+ agreement or commitment, however denominated, not to enforce a patent
+ (such as an express permission to practice a patent or covenant not to
+ sue for patent infringement). To "grant" such a patent license to a
+ party means to make such an agreement or commitment not to enforce a
+ patent against the party.
+
+
If you convey a covered work, knowingly relying on a patent license,
+ and the Corresponding Source of the work is not available for anyone
+ to copy, free of charge and under the terms of this License, through a
+ publicly available network server or other readily accessible means,
+ then you must either (1) cause the Corresponding Source to be so
+ available, or (2) arrange to deprive yourself of the benefit of the
+ patent license for this particular work, or (3) arrange, in a manner
+ consistent with the requirements of this License, to extend the patent
+ license to downstream recipients. "Knowingly relying" means you have
+ actual knowledge that, but for the patent license, your conveying the
+ covered work in a country, or your recipient's use of the covered work
+ in a country, would infringe one or more identifiable patents in that
+ country that you have reason to believe are valid.
+
+
If, pursuant to or in connection with a single transaction or
+ arrangement, you convey, or propagate by procuring conveyance of, a
+ covered work, and grant a patent license to some of the parties
+ receiving the covered work authorizing them to use, propagate, modify
+ or convey a specific copy of the covered work, then the patent license
+ you grant is automatically extended to all recipients of the covered
+ work and works based on it.
+
+
A patent license is "discriminatory" if it does not include within
+ the scope of its coverage, prohibits the exercise of, or is
+ conditioned on the non-exercise of one or more of the rights that are
+ specifically granted under this License. You may not convey a covered
+ work if you are a party to an arrangement with a third party that is
+ in the business of distributing software, under which you make payment
+ to the third party based on the extent of your activity of conveying
+ the work, and under which the third party grants, to any of the
+ parties who would receive the covered work from you, a discriminatory
+ patent license (a) in connection with copies of the covered work
+ conveyed by you (or copies made from those copies), or (b) primarily
+ for and in connection with specific products or compilations that
+ contain the covered work, unless you entered into that arrangement,
+ or that patent license was granted, prior to 28 March 2007.
+
+
Nothing in this License shall be construed as excluding or limiting
+ any implied license or other defenses to infringement that may
+ otherwise be available to you under applicable patent law.
+
+
12. No Surrender of Others' Freedom.
+
+
If conditions are imposed on you (whether by court order, agreement or
+ otherwise) that contradict the conditions of this License, they do not
+ excuse you from the conditions of this License. If you cannot convey a
+ covered work so as to satisfy simultaneously your obligations under this
+ License and any other pertinent obligations, then as a consequence you may
+ not convey it at all. For example, if you agree to terms that obligate you
+ to collect a royalty for further conveying from those to whom you convey
+ the Program, the only way you could satisfy both those terms and this
+ License would be to refrain entirely from conveying the Program.
+
+
13. Remote Network Interaction; Use with the GNU General Public License.
+
+
Notwithstanding any other provision of this License, if you modify the
+ Program, your modified version must prominently offer all users
+ interacting with it remotely through a computer network (if your version
+ supports such interaction) an opportunity to receive the Corresponding
+ Source of your version by providing access to the Corresponding Source
+ from a network server at no charge, through some standard or customary
+ means of facilitating copying of software. This Corresponding Source
+ shall include the Corresponding Source for any work covered by version 3
+ of the GNU General Public License that is incorporated pursuant to the
+ following paragraph.
+
+
Notwithstanding any other provision of this License, you have permission
+ to link or combine any covered work with a work licensed under version 3
+ of the GNU General Public License into a single combined work, and to
+ convey the resulting work. The terms of this License will continue to
+ apply to the part which is the covered work, but the work with which it is
+ combined will remain governed by version 3 of the GNU General Public
+ License.
+
+
14. Revised Versions of this License.
+
+
The Free Software Foundation may publish revised and/or new versions of
+ the GNU Affero General Public License from time to time. Such new
+ versions will be similar in spirit to the present version, but may differ
+ in detail to address new problems or concerns.
+
+
Each version is given a distinguishing version number. If the
+ Program specifies that a certain numbered version of the GNU Affero
+ General Public License "or any later version" applies to it, you have
+ the option of following the terms and conditions either of that
+ numbered version or of any later version published by the Free
+ Software Foundation. If the Program does not specify a version number
+ of the GNU Affero General Public License, you may choose any version
+ ever published by the Free Software Foundation.
+
+
If the Program specifies that a proxy can decide which future
+ versions of the GNU Affero General Public License can be used, that
+ proxy's public statement of acceptance of a version permanently
+ authorizes you to choose that version for the Program.
+
+
Later license versions may give you additional or different
+ permissions. However, no additional obligations are imposed on any
+ author or copyright holder as a result of your choosing to follow a
+ later version.
+
+
15. Disclaimer of Warranty.
+
+
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+ APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+ HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+ OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+ IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+
16. Limitation of Liability.
+
+
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+ WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+ THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+ GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+ USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+ DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+ PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+ EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+ SUCH DAMAGES.
+
+
17. Interpretation of Sections 15 and 16.
+
+
If the disclaimer of warranty and limitation of liability provided
+ above cannot be given local legal effect according to their terms,
+ reviewing courts shall apply local law that most closely approximates
+ an absolute waiver of all civil liability in connection with the
+ Program, unless a warranty or assumption of liability accompanies a
+ copy of the Program in return for a fee.
+
+
END OF TERMS AND CONDITIONS
+
+
How to Apply These Terms to Your New Programs
+
+
If you develop a new program, and you want it to be of the greatest
+ possible use to the public, the best way to achieve this is to make it
+ free software which everyone can redistribute and change under these terms.
+
+
To do so, attach the following notices to the program. It is safest
+ to attach them to the start of each source file to most effectively
+ state the exclusion of warranty; and each file should have at least
+ the "copyright" line and a pointer to where the full notice is found.
+
+
<one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as
+ published by the Free Software Foundation, either version 3 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Affero General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+
+
Also add information on how to contact you by electronic and paper mail.
+
+
If your software can interact with users remotely through a computer
+ network, you should also make sure that it provides a way for users to
+ get its source. For example, if your program is a web application, its
+ interface could display a "Source" link that leads users to an archive
+ of the code. There are many ways you could offer source, and different
+ solutions will be better for different programs; see section 13 for the
+ specific requirements.
+
+
You should also get your employer (if you work as a programmer) or school,
+ if any, to sign a "copyright disclaimer" for the program, if necessary.
+ For more information on this, and how to apply and follow the GNU AGPL, see
+ <https://www.gnu.org/licenses/>.
Welcome to {{ settings.SENIOR_GRAD_YEAR }} {{ settings.BRANDING_NAME }}
+
+
+ This is intended to be a resource for:
+
+
the class of {{ settings.SENIOR_GRAD_YEAR }} to share its progress in the admissions process with one another.
+
the class of {{ settings.SENIOR_GRAD_YEAR }} to share its achievements and college destinations with others.
+
other classes as they prepare to apply for college.
+
+
+
+ {% if request.user.is_authenticated %}
+ {% if request.user.is_senior %}
+
You may add destination information by navigating to your profile.
+ {% endif %}
+
You may browse student destinations using the links above.
+ {% else %}
+
You must sign in to see student destinations.
+ {% endif %}
+
+
IMPORTANT
+
+ THIS WEBSITE IS NOT, IN ANY WAY, AFFILIATED WITH NOR ENDORSED BY THE
+ THOMAS JEFFERSON HIGH SCHOOL FOR SCIENCE AND TECHNOLOGY (TJHSST), THE
+ TJHSST COMPUTER SYSTEMS LAB, FAIRFAX COUNTY PUBLIC SCHOOLS,
+ OR ANY SUBSIDIARY, AFFILIATE, DEPARTMENT, OR PARTNER THEREOF.
+
+
+ Your use of this website is subject to the terms outlined in
+ version 3 of the GNU Affero General Public license; notably the terms
+ that provide this software WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE; and the terms that limit the liability of
+ any copyright holder(s) of this work. See the
+ GNU Affero General Public License for more details.
+
+ Is this your first time here? If so, you will need to log in using Ion to establish an account first.
+ After you have set a permanent password, you may log in using it, if you wish, or if you can no longer
+ access your Ion account.
+