From 6ec79f686f0d8e72f7f3bd084c01500ec592605b Mon Sep 17 00:00:00 2001 From: Alexander Rosenberg Date: Sat, 23 May 2026 15:27:37 -0700 Subject: [PATCH] Initial commit --- LICENSE | 661 +++++++++++++++++++++++++++++++++++++++++++++++++ assignment.pdf | Bin 0 -> 63975 bytes 2 files changed, 661 insertions(+) create mode 100644 LICENSE create mode 100644 assignment.pdf diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..be3f7b2 --- /dev/null +++ b/LICENSE @@ -0,0 +1,661 @@ + 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/assignment.pdf b/assignment.pdf new file mode 100644 index 0000000000000000000000000000000000000000..a51319b12bda957f530237ee5d4ca9103c6a0bd1 GIT binary patch literal 63975 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

6eecYGHiIR>}L8?rFj&qK}|0lReE{(mK1G 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