summaryrefslogtreecommitdiff
path: root/static/resource
diff options
context:
space:
mode:
Diffstat (limited to 'static/resource')
-rw-r--r--static/resource/age.pub1
-rw-r--r--static/resource/decision_tree.jpgbin0 -> 32125 bytes
-rw-r--r--static/resource/feed-icon-28x28.pngbin0 -> 1683 bytes
-rw-r--r--static/resource/gpg-signify-transition-statement.txt.asc35
-rw-r--r--static/resource/gpg-signify-transition-statement.txt.sig27
-rw-r--r--static/resource/narrative.org375
-rw-r--r--static/resource/signify.pub1
-rw-r--r--static/resource/timestamp-1.txt45
8 files changed, 484 insertions, 0 deletions
diff --git a/static/resource/age.pub b/static/resource/age.pub
new file mode 100644
index 0000000..5eb64e1
--- /dev/null
+++ b/static/resource/age.pub
@@ -0,0 +1 @@
+age18gn5hyfy0nmg82ymrtl23zje300a7pue6430ucss2vslwl0t5gks4645wp
diff --git a/static/resource/decision_tree.jpg b/static/resource/decision_tree.jpg
new file mode 100644
index 0000000..f2b97cc
--- /dev/null
+++ b/static/resource/decision_tree.jpg
Binary files differ
diff --git a/static/resource/feed-icon-28x28.png b/static/resource/feed-icon-28x28.png
new file mode 100644
index 0000000..74ebf71
--- /dev/null
+++ b/static/resource/feed-icon-28x28.png
Binary files differ
diff --git a/static/resource/gpg-signify-transition-statement.txt.asc b/static/resource/gpg-signify-transition-statement.txt.asc
new file mode 100644
index 0000000..7f55660
--- /dev/null
+++ b/static/resource/gpg-signify-transition-statement.txt.asc
@@ -0,0 +1,35 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA512
+
+Date: 2021-12-30
+
+Statement of GPG Key Transition
+
+To replace my GnuPG key, I have set up a new Signify key, and will be transitioning away from my GnuPG key.
+
+The GnuPG key will continue to be valid until 2022-02-01 for the purpose of verifying this transition statement. Please do not use it send me encrypted emails anymore.
+
+This message is signed by both keys to certify the transition.
+
+The old GnuPG key's primary key fingerprint was:
+BF49E81C1D888979B6506B225B4FE8CA89C066C0
+
+The new Signify key is:
+RWTJ8JZMFWhB2Ya9GyXbmOQKSxd/x57IV/oNo6/nl344CR1aqf/OgPXf
+
+If you have my old GnuPG key, you can verify this transition statement with:
+gpg2 --verify gpg-signify-transition-statement.txt.asc
+
+You can verify the new Signify key with:
+signify -V -e -p key.pub -m gpg-signify-transition-statement.txt
+
+Thank you, and sorry for the inconvenience.
+
+Nick
+-----BEGIN PGP SIGNATURE-----
+
+iHUEARYKAB0WIQS/SegcHYiJebZQayJbT+jKicBmwAUCX+0UgAAKCRBbT+jKicBm
+wOjOAQC6NKik3E4ooWBFEXm+0jNoENASyVFRRGNZ1qnaazPZUwEAvD88rtV75Z+9
+NX1JG1iGPgTcfKO1I+m4PblgxXCsbQ8=
+=novT
+-----END PGP SIGNATURE-----
diff --git a/static/resource/gpg-signify-transition-statement.txt.sig b/static/resource/gpg-signify-transition-statement.txt.sig
new file mode 100644
index 0000000..19a074f
--- /dev/null
+++ b/static/resource/gpg-signify-transition-statement.txt.sig
@@ -0,0 +1,27 @@
+untrusted comment: verify with key.pub
+RWTJ8JZMFWhB2eYyA14Q6xQJS/Ak0RrXKrvixXFQujsOcIwD/plAkeOhd6QxO8sQxsiwiG5Zvo6JIi7IQycjB3ycCrs/Yp0lZQQ=
+Date: 2021-12-30
+
+Statement of GPG Key Transition
+
+To replace my GnuPG key, I have set up a new Signify key, and will be transitioning away from my GnuPG key.
+
+The GnuPG key will continue to be valid until 2022-02-01 for the purpose of verifying this transition statement. Please do not use it send me encrypted emails anymore.
+
+This message is signed by both keys to certify the transition.
+
+The old GnuPG key's primary key fingerprint was:
+BF49E81C1D888979B6506B225B4FE8CA89C066C0
+
+The new Signify key is:
+RWTJ8JZMFWhB2Ya9GyXbmOQKSxd/x57IV/oNo6/nl344CR1aqf/OgPXf
+
+If you have my old GnuPG key, you can verify this transition statement with:
+gpg2 --verify gpg-signify-transition-statement.txt.asc
+
+You can verify the new Signify key with:
+signify -V -e -p key.pub -m gpg-signify-transition-statement.txt
+
+Thank you, and sorry for the inconvenience.
+
+Nick
diff --git a/static/resource/narrative.org b/static/resource/narrative.org
new file mode 100644
index 0000000..49b9e62
--- /dev/null
+++ b/static/resource/narrative.org
@@ -0,0 +1,375 @@
+#+TITLE: Struggle to graduate without nonfree software
+#+LANG: en
+#+AUTHOR: Wojciech Kosior
+#+LICENSE: CC0
+
+Due to pandemic many people experienced deaths of their relatives, others became
+jobless. Those are some severe losses, many of which couldn't be prevented.
+At the same time we also witnessed an embrace of proprietary videoconferencing
+platforms, that brought a huge loss of freedom. Most ppl would disagree over
+how severe this loss is, but one is certain - it *could* be prevented.
+
+As a university student, I struggled to avoid losing freedom and pass my courses
+without surrendering to the imposed not-free-as-in-freedom services,
+often by proposing free/libre solutions instead. I didn't expect to win this
+fight - but now I think it may happen. I describe my fight below so as to
+build up and inspire others.
+
+* Studies
+For over 3 years I've been studying informatics at the AGH University of Science
+and Technology in Kraków, Poland. Over that time I was becoming more and more
+determined to avoid nonfree software. That, among others, meant getting
+a librebooted ThinkPad and switching to GNU/Linux distros that only include
+libre packages.
+
+"What about studies?" - one could ask - "Weren't You required to use Windows?
+ Or MS Office? Or some other proprietary tools?"
+
+Actually, a great majority of the jobs could be completed with (or even
+required) free software. In present times there we have the luxury
+of having excellent libre operating systems and libre tools for most tasks,
+including free software implementations of most popular programming languages.
+On those few occasions some nonfree tool was required, I was either able
+to convince given professor to let me do a replacement homework (e.g. doing the
+same exercises under Postgres database instead of Oracle's) or do it at the
+university during other groups' classes. I admit running nonfree software
+on someone else's computer doesn't fully solve the problem of nonfreeness
+and is not something to be proud of. Nevertheless, it just seemed fair.
+
+I was also gradually taking the issue of in-browser javascript
+more seriously. Web pages' js runs in an isolated sandbox, which makes many
+ppl believe it's OK even when it's nonfree. Sandbox might indeed solve
+security issues, but the true problem with proprietary programs lies elsewhere,
+in taking away of user control. Currently, maintaining one's software freedom
+in the field of web browsing is not easy. Numerous sites break with js disabled.
+On many occasions I had to ask colleagues to put me into a Google sheet
+for something studies-related, because I couldn't do that without js
+(also, proprietary js is not the only issue with Google services).
+I only dared to ask them for that, because I knew they were already accessing
+Google sheets.
+
+* Start of the pandemic
+Without bigger problems I completed the 5th semester of my studies. At the
+beginning of 6th - the pandemic began. Universities closed, most students
+traveled home and professors started organizing remote
+lectures and classes. You guessed it - they all chose proprietary platforms.
+The ones used were Cisco Webex, MS Teams, ClickMeeting and, duh, Skype.
+Each of those either doesn't have a free software client or I couldn't find one.
+Of course, the professors expected everyone to be able to easily connect using
+web interface. They didn't realize the problem of nonfree js.
+
+Lectures didn't pose a real problem, since they're not obligatory at the AGH.
+As to lab classes, their form varied from professor to professor. Some only
+described what they want us to do for homework. Then we had to just upload the
+completed homework to UPEL (AGH's modified version of Moodle). Some organized
+non-obligatory consultancies. Many didn't care about actual presence on classes
+and only wanted student to appear at specified time to interactively
+hand homework in. Finally, one expected us all to attend the meetings at lab
+class hours and was very angry about me having issues with it.
+
+What were my actions in those circumstances? I would *very* politely email every
+single professor who announced something would be done via one of the
+problematic platforms. In my mails I usually linked the Costumed Heroes video
+and some free videoconferencing tools (Jami, Jitsi Meet). I often remarked, that
+the service used by them has no free software client available. Centralized
+nature of those services and surveillance being possibly conducted through them
+are also severe issues, but to me - software freedom was the decisive factor.
+
+I'm under impression, that few professors didn't understand the issue or only
+understood it partially. Hence, replies like "the solution would be to run
+the program in a virtual machine" or "You don't need the source code to use the
+service". Fortunately, even though many professors were irritated by my emails,
+most of them eventually agreed to for example use another tool (Jami/Jitsi Meet)
+to receive my homework. I think what helped me a bit is the fact, that they are
+all teaching some field of computer science. Otherwise, the fraction of those
+who don't understand the problem would be way higher. That's why I think it
+could be more difficult on other faculties or in case of lower-level education
+(e.g. schools).
+
+* 6th semester
+As the universities were closing, I was in the middle of doing some kind of
+group homework for machine learning course. It was quite natural, that
+I asked one person doing that homework with me to forward
+what the professor said during Skype sessions. She later continued to do
+me this favor and everything else could be done in free software.
+
+The first real problem was with the artificial intelligence methods course (I shall later
+just call it AI). It was rotational and we managed to have one lab class on-site before
+the pandemic. The homework for this class was to be done in proprietary Framsticks
+application. When emailed, the professor allowed me to do some neural networks
+exercise instead. But I did have double stress, because I then had to ask him to
+provide me with the required materials using some method other than Google Drive
+(which I would be able to download from, but only if someone gave me a link to
+a single file and not to a folder).
+
+Later in march we learned another professor teaching AI wanted us to
+complete an online NVIDIA course and send him a certificate. This was supposed
+to serve as a replacement for a single lab class. The course,
+obviously, required nonfree js. I wrote an email to that professor,
+but did not receive any response.
+
+Also in the early part of the semester, I was supposed to hand in distributed
+systems homework via Webex. When I emailed the professor, he agreed to use Jami
+for that. That was a little victory, but classes of this course were also
+rotational - I knew I would have to ask 3 more professors with subsequent
+homework. The grading system was such, that if one refused,
+I would fail the entire course.
+
+Near the end of March, system programming (i.e. meddling with guts of Linux)
+classes started. Those were obligatory and during Webex meetings students would
+present their homework. The professor didn't want to lose time connecting to other
+services than Webex. At that point, his response didn't give any hope. Especially
+that I knew him from earlier semester and he didn't seem very kind.
+I kept uploading homework exercises to UPEL but I was to live in uncertainty
+through the Easter and long after it.
+
+At some point I emailed two professors about the use of nonfree platforms
+for lectures. One didn't respond at all and the other replied rudely
+and seemed not to understand the issue. That's how I stopped caring about
+lectures.
+
+It was April. I presented second distributed systems homework. But even in cases
+proprietary videoconferencing platforms were not needed,
+there were other difficulties. For example, some lab classes assumed using
+Java packages from Maven repository. Even though I knew given library is
+free software, I would always attempt to avoid using a language-specific
+package manager for it. That's because repositories used by tools like Pip (for Python)
+and Gradle (for Java) allow some sorts nonfree packages and also lack good
+security verification. This deserves its own essay. Eventually, I would
+install libre libraries from there, but only if they were not packaged for my distro
+and there were too many dependencies to install them manually. You can imagine,
+that this costed some time and on my faculty - time is precious.
+
+Also in April, the lazy "do an NVIDIA course" professor sent us a list of
+students who did not send a certificate. Surprisingly, my name was not on the list.
+Instead, I was rated 100% for this exercise. I concluded, that he just wrote down
+surnames of all students who sent him emails with certificates and also mistakenly
+included my surname from my mail... I did not want to be a cheater, so I later
+emailed him about his mistake, but he didn't respond anyway.
+
+More problems with AI were to come. Another professor wanted us to do homework
+in proprietary Choreographe simulator. After learning about the nonfreeness issue,
+he proposed that I use Webots instead and I agreed.
+
+Around that time I was to realize, that the most unkind professor of that semester
+wold the one giving software engineering course. The course had the form of a group
+project, but we were still expected to appear on meetings every week.
+The professor first didn't answer my emails and eventually wrote a long reply
+in which he threatened, that if I miss one more meeting, I'm going to fail the
+course. He wrote why he thinks I'm obliged to connect to ClickMeeting and the
+way he wrote that showed great annoyance or even anger. He did, however, write,
+that he doesn't care whether I connect directly or my voice reaches him through
+colleague's computer. And that's what we did. Me and 1 buddy from my project
+group were connected through Mumble and he was also connected to the meeting
+(as he would anyway). He moved his microphone close to the speaker so that
+I could hear the others and vice-versa. That was so provisional I am very
+surprised it worked!
+
+May. Distributed systems homework presented to 3 professors and 1 left to
+convince. Another AI homework was also supposed to be handed in interactively,
+but the professor first agreed to use Jami and later decided, that he's already
+seen so much AIML stuff, that he doesn't even need my commentary.
+
+End of May was when the situation seemed to be the most overwhelming.
+There was yet no course I knew for sure I would pass, there were still many
+emails to be written and I was already having delays with some homework
+due to lack of time.
+
+In June the semester was theoretically ending, but in practice grades could
+be given until the middle of September. Everyone, who hoped they would be able
+to conduct some classes at the university, now knew it wouldn't be possible.
+One of those ppl was the last professor I had to hand in distributed systems
+homework to. Although he was not eager to use another platform, he agreed
+for Jitsi Meet, which doesn't require installation.
+
+Professor giving network security course also put up with the impossibility
+to organize stationary finals, as he used to. He instead gave us some
+exercise to complete and upload. Unfortunately, we were supposed to use
+Cisco Packet Tracer to simulate networks. The professor was unkind at some
+point earlier, so I was not sure if he would allow me to do some replacement
+task. But he did. The new exercise involved Mininet and nDPI library.
+
+The last AI homework could only be fully done using Jupyter Notebook on Google
+servers. I did what I could on a local Jupyter Notebook instance. I did not
+need to have this 100% completed in order to pass the course.
+
+System programming classes were also finishing in June.
+I wrote another email to the professor. I was afraid he would just say I failed,
+but no. He said he would look at my solutions and decide and *maybe*
+it would be possible to meet at the university in September.
+Hence, I had some hope, but no guarantee.
+
+Now, another, bigger problem - the compilers course included an exam, that was
+supposed to be done through MS Teams. I wrote to the professor preparing it.
+Even though he always seemed to like me, he did not (could not?) give me
+an option to write the exam some other way. I though I would fail then, but
+funnily - Teams failed to handle the load of over 100 students connecting and
+the exam was instead conducted via email (sending photos of solutions).
+
+In that semester we already had seminar classes. The professor wanted
+students to present their prototypes on some meeting, but I didn't have
+mine ready yet, so he allowed me to finish it during summer holidays and
+eventually I avoided the meeting. I also had little contact with my
+thesis supervisor. We were to talk in July and that was the first time
+free software videoconferencing failed me by refusing to work properly
+(there were some issues earlier, but not so severe).
+At least it didn't happen during handing in of some homework...
+
+In summer I also had to do an internship. I first backed out of a well-paid
+(as for internship) offer after learning, that there is no way to
+negotiate a contract, that would allow my code to be released
+as free software. I eventually did another, unpaid internship,
+which had the benefit, that I was able to spend some of its time working
+on my thesis.
+
+In September I finally met with the professor and presented my system
+programming homework. He turned out not to be as unkind as
+he seemed before.
+
+So after all the struggle I finally passed the summer semester and even had
+decent grades. What at some point seemed almost impossible, was now a reality.
+
+* 7th semester
+The winter semester was the last semester of the first-cycle
+studies, so it was shorter - all classes had to finish by the middle of
+December or earlier. Before the semester started in October, university had
+specified some formal rules as to what platforms and tools can be used
+to conduct classes and exams. This was mostly to comply with GDPR.
+Allowed videoconferencing solutions lecturers and teachers can
+officially use were MS Teams, Cisco Webex, ClickMeeting and Google Meet,
+although didn't see anyone use the last one.
+
+This time most professors required presence on meetings.
+The only exception was introduction to security engineering where
+the professor announced there would only be consultancies and uploading
+homework on time equals presence on lab classes.
+
+There was a cryptography course. The professor did not agree to use
+Jitsi Meet citing too big amount of work to bother using another
+platform. Even though he suggested that I write to university
+authorities, I didn't do that, for reasons not related to the topic.
+I just kept writing tests (those were conducted through UPEL, so it
+was not a problem for me) and uploading Jupyter notebooks with completed
+exercises. This course didn't involve anything like interactive handing
+of homework, so the only problem were my "absences".
+
+Situation with computational geometry course was very silimar, with
+the exception, that all homework was to be presented through MS Teams.
+
+Another course I chose was optimization of code for different architectures.
+I knew the professor teaching this. During fortran course on one of the
+earlier semesters he required us to use proprietary ifort compiler.
+On the other hand, he was one of the professors showing appreciation
+for stuff I do well. When I emailed him, he was kind, although
+afraid of using any other platform that those allowed. He suggested
+me to contact student council of our faculty to suggest Jitsi Meet to
+dean and eventually get it hosted by university itself. The professor
+even said, that he would then happily use it for all his classes.
+Unfortunately, student council never responded to my emails.
+I was allowed to gain presence by writing reports instead of
+participating in the meetings. This took more of precious time,
+but I was glad anyway.
+
+For second and final part of the seminar course the professor
+made obligatory consultancies. He initially wanted to stick to allowed
+platforms and even pointed out, that Jitsi Meet also runs on someone
+else's server and hence - is not safer. I then responded with my
+counterpoints and once again asked politely that we use Jitsi Meet.
+I made it clear, that I'd rather fail, than use any proprietary platform
+and he finally agreed.
+
+For optimization of code we were also supposed to be presenting our
+homework interactively, 2 times during the semester. The first time was
+at the beginning of November and the professor wrote, that he agrees
+to use platform not from the official list. He just noted, that he
+doesn't take responsibility for security of any data exchanged
+through it.
+
+Then I had an argument with my supervisor, who got annoyed with
+me (although there were probably other factors, too) and gave an
+ultimatum that I use MS Teams. I didn't agree and my
+supervisor was supposed to inform dean about resignation from
+supervising. Perhaps the dean didn't read the email?
+I'm just guessing. Anyway, I wrote again a few weeks later
+and even borrowed some electronics from my supervisor - almost
+as if the argument never happened.
+
+Around that time someone told on the professors giving security course
+and they started organizing classes via MS Teams, but they still didn't
+require students to do anything during those classes and they allowed
+me to just send them emails at the right time and they marked me present
+based on that. There were also difficulties with Windows VM being required
+for some exploit exercise - but I eventually also avoided Windows, even
+though it required some additional work.
+
+At the beginning of December it was clear, the only problems
+were cryptography and geometry. I wrote another email asking for
+a way to pass the first one. The professor told me to implement some hashing
+algorithm in Jupyter. I suspect he might have needed that as a teaching
+resource. I chose BLAKE2b, implemented it, sent it to him and this way
+passed the course and even got the highest grade for it, despite my
+mistakes in tests. That was surprisingly easy.
+
+I also wrote to the professor giving geometry course. At first, she
+didn't respond. The semester was supposed to end on 15 December
+(although only some of the professors gave final grades that early).
+Before that I wrote another email and I eventually received a determined
+response, that I am being failed for absences. She did not mention
+some of my homework being uploaded late, but I guess that's good for me.
+
+At that point I was going to stop arguing. My supervisor in an email
+got back to the topic of meeting on MS Teams and I responded, that
+I'm not going to pass this semester and thanked for cooperation.
+
+Then, someone convinced me not to hesitate to argue more or seek help
+from university authorities. Or rather, I still didn't want to do the
+second thing, because I already declared to the professor, that I won't.
+But I did write subsequent emails. She agreed for an online meeting
+on 8 January... but on MS Teams only. And I refused again and yet
+again wrote why it is wrong to fail me like that.
+She was not responding to all of my emails and I ended up spending
+a lot of time waiting for replies. She eventually told me again
+to contact the authorities for a permission to use another platform
+and CC'd associate dean in that email. Given that, I no longer felt obligated
+not to inform him about the issue.
+
+As he's always busy, quite a few reminder emails were needed. In the
+meantime, the deadline to upload thesis passed. Actually, that was
+the deadline for those, who wanted to defend in January. Defense
+in March was still possible, it would just be too late to apply
+for second-cycle studies - something I wouldn't be interested in,
+given all the difficulties I faced so far.
+
+The dean eventually responded, but he didn't read into the right email
+in the thread, so another set of reminders was needed. On 13 January
+he finally wrote, that he talked to the professor and she would
+allow me to correct the reports she considered bad.
+No mention of videoconferencing services. Was there another misunderstanding?
+
+The email i received from the professor explained the situation to me.
+The dean pleaded for her to allow me to pass without interactive
+presentation of my homework. So she would then give me a positive
+grade and I would pass the semester, right? In theory only.
+
+She then wrote about how bad my homework is. I never claimed it
+to be perfect, because it was all done in a hurry and I even couldn't fix
+some problems I knew about. But I don't think it was bad either, especially
+considering the mere amount of it.
+She eventually wanted me to correct 2 exercises. So I did.
+I finally uploaded those on 15 January. I had to actually wait 4 more days for
+the grade, but I got it. I finally passed my 7th semester.
+
+Now, there are still some possible pitfalls, e.g. getting statement from my
+supervisor. But after a month of stagnation the case seems to be finally
+heading into the right direction.
+
+When I look behind, I'm actually glad I acted
+how I acted. Perhaps I won't be able to please those who want to see
+me graduate. But I don't think graduating by surrendering to
+nonfree platforms would bring any long-term benefits. Only more compromises.
+Come back in some time to see how this compromise-less effort ends.
+This article will be updated :)
+
+* Notes
+- I called all university teachers professors, although only the Framsticks
+and seminar ones have that title.
diff --git a/static/resource/signify.pub b/static/resource/signify.pub
new file mode 100644
index 0000000..da54489
--- /dev/null
+++ b/static/resource/signify.pub
@@ -0,0 +1 @@
+RWTJ8JZMFWhB2Ya9GyXbmOQKSxd/x57IV/oNo6/nl344CR1aqf/OgPXf
diff --git a/static/resource/timestamp-1.txt b/static/resource/timestamp-1.txt
new file mode 100644
index 0000000..4f48250
--- /dev/null
+++ b/static/resource/timestamp-1.txt
@@ -0,0 +1,45 @@
+tree 1c3569eccb0109da67d15f58d1a74d2c38dd3b3f
+parent 04c9625977a7ad28a0bd4150a198121d8d143cc6
+author Nicholas Johnson <nicholasjohnson@posteo.org> 1636502400 +0000
+committer Nicholas Johnson <nicholasjohnson@posteo.org> 1636502400 +0000
+gpgsig -----BEGIN PGP SIGNATURE-----
+
+ iHUEABYKAB0WIQTA24M2cjnhOx8C5Q/rFUe/DFrSVAUCX8Q2AAAKCRDrFUe/DFrS
+ VKYwAP4pkzBCpyWmXNLeL4CBDimQa6Lq4dzLlhakDkiZatJCcgD/Tr7jNbbv+PeV
+ xizfe0wunT8RTvVpLtS4Hx2sGiCyEgA=
+ =Zx9G
+ -----END PGP SIGNATURE-----
+ -----BEGIN OPENTIMESTAMPS GIT TIMESTAMP-----
+
+ AQHwIKZ0M3RaIiJQ9rQazVBQhSNbxuQ5VSddbNSOGPsbudsdCP/wEANiYun41xWt
+ 2Jsg27FKDR8I8QRhi+XD8AgWRdJJvBcJUv8Ag9/jDS75DI4jImh0dHBzOi8vYnRj
+ LmNhbGVuZGFyLmNhdGFsbGF4eS5jb20I8CCF1SLU5/dyPCa3YcO0vgrmXt5rAUu6
+ M1jREKXwqqcxDwjxIEswtUlnUdjL0oJRaHJbq2iu7ZDy0VvArmcNUqVAK8GRCPEg
+ CWu8w6I9r2rAWgRmHpqIvsyIJv6M9zeZvJFi6L85zRoI8CDzpbaG0nHjf+NQgVGY
+ 2JMe+r0KbO7Flh5QSjkl7lHW3wjwIOYPKdtm5P6LioriewhZtRrRA2WM5SmQV1YZ
+ 7FY7DVeqCPEgrXnl5Y03zTEL7PjKlTR0aMDvDK+hXUEplWta/T+/LFAI8SAmOtbn
+ SLD6Yta/vYbsOpyQTLD/kpq9QWlCcY4df1j+igjxILxbJ04OT68piwAw3stqdykY
+ 71fZmyOibMOJ7BACTQQCCPAgj75wv/R5qQb9HR7+P1rBjAuOO3+GGi2iEr0MrVzp
+ GosI8SB66x5B3F44JmPVPq+I1re2r1mx2STk6oWTTsHT5IfOwQjxWQEAAAABT6Qi
+ UX1oF9NejbGEgegj+JM2S2BRy66eI9pt9HQNSI0AAAAAAP3///8CQUE8AAAAAAAW
+ ABSZOR1FaAmMnptJFyY5RisS+dgriQAAAAAAAAAAImog8ATe0QoACAjxIA5pCUrE
+ 4aLY3sIP/8EXiEs3gS0Xx/yUQDrF6AbO2a1wCAjwINJ9k2c9JPooOuz7O7Gen4ao
+ VCCljy/J81M/bxsPocyYCAjxIPhNhFpWvANWebQMmLgzevdvr4TcF4ftsuK/O6Mt
+ zmHUCAjxIKnvmVOPk4QNWAgN5KM1VgvSxTV8a+U80DKMaZxuhSJ5CAjwILsDNhTx
+ 3IVSKHcxgd+ilZ8rMFPYF67MCIhkQokdgok7CAjwIDwakjR7y1N8lYCuaUHx5m5g
+ zxtsNSH8lW/3tisU2aVeCAjwIIuvD6K6/Bh0zL07RAj6oJyx6q6dLl/Se7aNu7nV
+ QiTcCAjxIMInKQEad7ilxhq+HyXNIBUg/kA4pLn/CSsTxdmNi77UCAjwIG8OsFhx
+ 5Xfj6XjxNEle2n4ODQiEGyhNV5t72rhcggCcCAjwIAWHPs5vGbXGq+S6PSRKnJtS
+ ltq5eBuq0bxrMNldAyitCAjwIJuOqlfMi+/VES3i9EKauEJ5p3TVG1pTDbVdbf88
+ B8b8CAjxIHWzxfzIjOHWEvIgki7SChNKXQRX1Rn/P1ECeOCXS+/qCAgABYiWDXPX
+ GQED36Mr//AQEha5S4UztINmFaswTVRI6AjxBGGL5cPwCBbwxjPwZjVsAIPf4w0u
+ +QyOLCtodHRwczovL2JvYi5idGMuY2FsZW5kYXIub3BlbnRpbWVzdGFtcHMub3Jn
+ //AQi6M/mGb5529M71c04F8hcAjwIHTSXoHjHsWGuRbaRsu3QLNdk6QQY7R8WzWU
+ mOc7+4wxCPAg01jytwMO7K6GA80LZ3mbxI2G51iqk2JQmcJ6L4I9cZII8QRhi+XD
+ 8Ai2QIimGJFT8gCD3+MNLvkMjikoaHR0cHM6Ly9maW5uZXkuY2FsZW5kYXIuZXRl
+ cm5pdHl3YWxsLmNvbfAQkir30fYfxn06h4vQ74OFMAjxIBwV2Gi/pTIhwfaUbdyj
+ IoXfJIFms/F0nKBP6GVz3xl4CPEEYYvlw/AIqlQ3ujOnrdIAg9/jDS75DI4uLWh0
+ dHBzOi8vYWxpY2UuYnRjLmNhbGVuZGFyLm9wZW50aW1lc3RhbXBzLm9yZw==
+ -----END OPENTIMESTAMPS GIT TIMESTAMP-----
+
+Timestamp \ No newline at end of file