Facebook
From Nikolay Valentinovich Repnitskiy, 3 Years ago, written in C++.
Embed
Download Paste or View Raw
Hits: 56
  1. /// Authorship - infinite authentication tool.
  2. /// Nikolay Valentinovich Repnitskiy - License: WTFPLv2+ (wtfpl.net)
  3.  
  4.  
  5. /* Version 4, 12,000-digit multi-way functions. This is computational difficulty
  6. and super-flexibility in endless cryptographic evidence. In literal terminology:
  7. publicly-verifiable authorized-only number modification. Designed for  1+GB RAM.
  8. Please flip through the nine-pager on   github.com/compromise-evident/Authorship
  9. You can generate and publish a personal Authorship number, preferably before you
  10. are subject to censorship or worse. This way the public can trust its ownership.
  11. Once you become a government threat, the public inquires about your well being--
  12. after which--you modify your number. Given that only you can modify your number,
  13. and given that the public or verifying party is here-given the ability to verify
  14. your modification,  we can rest assured that any further correspondence from you
  15. is not impersonation. Additionally you can insert data, messages, links, or hash
  16. for every authentication event meaning information source can be trusted. Uses:
  17. -------------------------------------------------------------------------------
  18.  * Proof of life.
  19.  * User authentication.
  20.  * Canary update authentication.
  21.  * Data, author, and version control authentication.
  22.  * Unretentive suspend-able untraceable anonymous cryptocurrency
  23.    (publicly-verifiable authorized-only withdrawal/ownership hand-over.)
  24.  * Untraceable anonymous fair trade over any network
  25.    (cryptographic solution to the Prisoner’s Dilemma.)
  26.  * New: voter fraud prevention, animal theft management.
  27. --------------------------------------------------------------------------------
  28. Authorship.number   (Storage for another user's  Authorship number,       1.0 kB
  29.                     it will update automatically as they publish.)
  30. Authorship.public   (Number modification information meant to be       ~138.1 MB
  31.                     published. This file will construct a new number.)
  32. Authorship.private  (*SENSITIVE* Dynamic storage for your Authorship   ~243.2 MB
  33.                     info & keys. This produces Authorship.public.)
  34. --------------------------------------------------------------------------------
  35. How to run the program  -  Software package repositories for GNU+Linux operating
  36. systems have all the tools you can imagine. Open a terminal and use this command
  37. as root to install Geany and g++ on your computer: apt install geany g++   Geany
  38. is a fast & lightweight text editor and Integrated Development Environment where
  39. you can write and run code. g++ is the GNU compiler for C++ which allows written
  40. code to run. The compiler operates in the background and displays errors in your
  41. code as you will see in the lower Geany box. Make a new folder somewhere on your
  42. machine. Paste this code into Geany. For clarity in auditing, enable indentation
  43. guides: go to View >> Show Indentation Guides. Save the document as anything.cpp
  44. within the newly-created folder. Use these shortcuts to run the program: F9, F5.
  45. You may paste over this code with other .cpp files, or repeat in a new tab.  */
  46.  
  47. #include <fstream>
  48. #include <iostream>
  49. using namespace std;
  50.  
  51. int main()
  52. {       int user_option;
  53.        
  54.         cout << "\n(Authorship) - infinite authentication tool\n\n"
  55.        
  56.              << " (1) Get Authorship number\n"
  57.              << "        (Generates your first number. This option is\n"
  58.              << "         used once, unless you know what you’re doing.)\n\n"
  59.        
  60.              << " (2) Modify Authorship number\n"
  61.              << "        (Generates your new number. Your old number is then modified to\n"
  62.              << "         represent this new one, as well as any message of your choice.)\n\n"
  63.        
  64.              << " (3) Verify number modification\n"
  65.              << "        (Generates their new number & message using their published file.\n"
  66.              << "         This file's function-compression must match their old number.)\n\n"
  67.        
  68.              << "Enter option: ";
  69.        
  70.         cin >> user_option; //You can run all three ifs holding options  1, 2, and 3 in isolation from one another (self-sustained.)
  71.         if((user_option != 1) && (user_option != 2) && (user_option != 3)) {cout << "\nInvalid, program ended.\n"; return 0;}
  72.        
  73.        
  74.        
  75.        
  76.        
  77.         //________________________________________________________________________________________________________________________
  78.         //                                                                                                                       |
  79.         //                                           1   Get Authorship number                                                   |
  80.         //_______________________________________________________________________________________________________________________|
  81.         if(user_option == 1)
  82.         {       ofstream out_stream;
  83.                
  84.                 //The following block-bunch generates random numbers in array Authorship_private[].
  85.                 cout << "\n>>>>>>>>>>>>>>>>>>>>>>>(Get your first Authorship number)<<<<<<<<<<<<<<<<<<<<<<<\n"
  86.                      << "Enter 8 random digits, repeat 50 times. (Get 243MB worth of keys in 20 minutes.)\n\n";
  87.                
  88.                 unsigned int user_seed[50]; //Fills user_seed with 50 user-defined seeds of size 8.
  89.                 for(int a = 0; a < 50; a++)
  90.                 {       if(a < 9) {cout << " " << (a + 1) << " of 50: ";} //Prints blank to align input status report (aesthetics.)
  91.                         else {cout << (a + 1) << " of 50: ";}
  92.                        
  93.                         cin >> user_seed[a];
  94.                 } //CAUTION: "cin" must exist last, just before the rest of the computation-heavy program begins,
  95.                 //otherwise some things may not be printed and INPUT STREAMS CAN BE SKIPPED such as cin.getline() (see option 2.)
  96.                 //Be extra careful when changing order of user inputs here. The old compiler and hardware used for this build
  97.                 //seems to require all of these sub-optimal methods in order to actually get input, as well as save on memory.
  98.                 //(It's important to build sensitive sofware as such on the worst possible machines as this will run on such
  99.                 //machines elsewhere in the world. Plus, cheap disposable machines like that give you connectivity control
  100.                 //as you can easily strip wifi cards and other sensors.)
  101.                
  102.                
  103.                
  104.                
  105.                
  106.                 static char Authorship_private[256500000]; //This array is filled with random digits then read from and written to left to right
  107.                 //dynamically to save RAM space. It provides random digit input and temporary key storage (to be written to file: Authorship.private.)
  108.                 int read_bookmark = 1000000;  //Bookmarks where to read next from Authorship_private[]. Initial size Prevents read/write collision.
  109.                 int write_bookmark = 0; //Bookmarks where to write next in Authorship_private[].
  110.                 //(Function generation extracts random numbers using read/write bookmarks. Authorship_private[] is first filled with random numbers normally.)
  111.                
  112.                 for(int a = 0; a < 50; a++) //Generates a random location (+10^6) for where to read from Authorship_private[]. This step prevents bookmark
  113.                 {       read_bookmark += (user_seed[a] % 10000); //collision and adds to the randomness strength. Average total value for read_bookmark: 1,250,000.
  114.                 } //The last item in the for loop who generates 13,500 multi-way functions deals with collision again, allowing bookmark proximity of ~30,000.
  115.                
  116.                 srand(time(0));
  117.                 for(int a = 256499999; a >= 0; a--) //Fills Authorship_private[] with random numbers based on Unix time. WRITES RIGHT TO LEFT.
  118.                 {       Authorship_private[a] = (rand() % 10);
  119.                 }
  120.                
  121.                 for(int a = 0; a < 50; a++) //Constructively applies random digits to Authorship_private[] based on the 50 seeds provided by the user.
  122.                 {       srand(user_seed[a]);    //WRITES ALTERNATING BETWEEN LEFT TO RIGHT & RIGHT TO LEFT. Alternation is based on the 50 user seeds.
  123.                        
  124.                         if((user_seed[a] % 2) == 0)
  125.                         {       for(int b = 0; b < 256500000; b++) //WRITES LEFT TO RIGHT.
  126.                                 {       Authorship_private[b] = (Authorship_private[b] + (rand() % 10));
  127.                                         Authorship_private[b] %= 10;
  128.                                 }
  129.                         }
  130.                         else
  131.                         {       for(int b = 256499999; b >= 0; b--) //WRITES RIGHT TO LEFT.
  132.                                 {       Authorship_private[b] = (Authorship_private[b] + (rand() % 10));
  133.                                         Authorship_private[b] %= 10;
  134.                                 }
  135.                         }
  136.                 }
  137.                
  138.                 srand(time(0)); //Constructively applies random numbers to Authorship_private[] once more, based on Unix time. WRITES LEFT TO RIGHT.
  139.                 for(int a = 0; a < 256500000; a++)
  140.                 {       Authorship_private[a] = (Authorship_private[a] + (rand() % 10));
  141.                         Authorship_private[a] %= 10;
  142.                 }
  143.                
  144.                
  145.                
  146.                
  147.                
  148.                 //These declarations are for deductive lossy compression, they produce the Authorship number dynamically.
  149.                 //See the compression block-bunch near the end of the following for loop who generates 13,500 functions.
  150.                 long long int compression_115[100]; //Hops by -115
  151.                 long long int    snapshot_115[100]; //Takes a snapshot of compression_115[] every once in a while.
  152.                
  153.                 long long int compression_116[100]; //Hops by -116
  154.                 long long int    snapshot_116[100]; //Takes a snapshot of compression_116[] every once in a while.
  155.                
  156.                 long long int compression_117[100]; //Hops by -117
  157.                 long long int    snapshot_117[100]; //Takes a snapshot of compression_117[] every once in a while.
  158.                
  159.                 long long int compression_118[100]; //Hops by -118
  160.                 long long int    snapshot_118[100]; //Takes a snapshot of compression_118[] every once in a while.
  161.                
  162.                 long long int compression_119[100]; //Hops by -119
  163.                 long long int    snapshot_119[100]; //Takes a snapshot of compression_119[] every once in a while.
  164.                
  165.                 for(int a = 0; a < 100; a++)
  166.                 {       compression_115[a] = 5555555555;        snapshot_115[a] = 5555555555;
  167.                         compression_116[a] = 5555555555;        snapshot_116[a] = 5555555555;
  168.                         compression_117[a] = 5555555555;        snapshot_117[a] = 5555555555;
  169.                         compression_118[a] = 5555555555;        snapshot_118[a] = 5555555555;
  170.                         compression_119[a] = 5555555555;        snapshot_119[a] = 5555555555;
  171.                 }
  172.                
  173.                 //This is a boolean sieve of Eratosthenes. Zeros are prime, conveniently mapped to their element index. (It is used here like the following
  174.                 //example: if(sieve[my_candidate] == 0) then my_candidate is prime. Otherwise, my_candidate is increased until it is prime. This adjusts
  175.                 //my_candidate for primality in the positive direction.) And values over 99 for 2-digit primes for example are set to the largest prime < 100.)
  176.                 bool sieve[100000] = {1, 1};
  177.                 for(int prime = 2; prime < 317; prime++) //317 is sqrt(100000)
  178.                 {       for(int a = prime + prime; a < 100000; a += prime) {sieve[a] = 1;}
  179.                 }
  180.                
  181.                
  182.                
  183.                
  184.                
  185.                 //The following for loop generates 13,500 multi-way functions in array Authorship_private[].
  186.                 for(int f = 0; f < 13500; f++)
  187.                 {       //The following block-bunch generates sub-function 1 for the current function. (Cool zone.)
  188.                         int transformation_determinant[2000];
  189.                         for(int a = 0; a < 2000; a++) //Fills transformation_determinant[] with random digits.
  190.                         {       transformation_determinant[a] = Authorship_private[read_bookmark];
  191.                                 read_bookmark++;
  192.                         }
  193.                        
  194.                         long long assembled_seed_for_transformation[200] = {0}; //Prepares 200 10-digit seeds from transformation_determinant[]
  195.                         int transformation_determinant_read_bookmark = 0;       //for further key transformation.
  196.                         for(int a = 0; a < 200; a++)
  197.                         {       long long multiplier = 1000000000;
  198.                                 for(int b = 0; b < 10; b++)
  199.                                 {       assembled_seed_for_transformation[a] += (transformation_determinant[transformation_determinant_read_bookmark] * multiplier);
  200.                                         transformation_determinant_read_bookmark++;
  201.                                         multiplier /= 10;
  202.                                 }
  203.                         }
  204.                        
  205.                         int sub_key[2000];
  206.                         int temp_sub_key[2000];
  207.                         for(int a = 0; a < 2000; a++) //Fills sub_key[] with random digits. This sub-key will be transformed and used dynamically.
  208.                         {       sub_key[a] = Authorship_private[read_bookmark];
  209.                                 temp_sub_key[a] = Authorship_private[read_bookmark]; //Makes temp copy of sub-key so as to later append it near the current
  210.                                 read_bookmark++;                                     //ciphertext when complete. (Written to Authorship_private[].)
  211.                         }                                                        //These kind of details prevent read/write_bookmark collision.
  212.                        
  213.                         for(int a = 0; a < 2000; a++) //Generates first sub-ciphertext of current function and writes it to Authorship_private[].
  214.                         {       Authorship_private[write_bookmark] = sub_key[a];
  215.                                 Authorship_private[write_bookmark] += Authorship_private[read_bookmark];
  216.                                 Authorship_private[write_bookmark] %= 10;
  217.                                 read_bookmark++;
  218.                                 write_bookmark++;
  219.                         }
  220.                        
  221.                         Authorship_private[write_bookmark] = '.'; //Separates the entry in Authorship_private[] from the next by one dot because
  222.                         write_bookmark++;                         //the quantity of contiguous primes is not fixed in length. All entries are separated.
  223.                        
  224.                         for(int a = 0; a < 1999; a++) //Transformation determinant transforms sub-key at current stage (preparation for sub-function 2.)
  225.                         {       sub_key[a] += transformation_determinant[a];
  226.                                 sub_key[a] = ((sub_key[a] + transformation_determinant[a + 1]) % 10); //[a + 1] means do up to 1998 or seg fault.
  227.                         }
  228.                         sub_key[1999] = ((sub_key[1999] + transformation_determinant[1000]) % 10); //Last element was not transformed so here it is.
  229.                        
  230.                         for(int a = 0; a < 200; a++) //Additional constructive transformation of sub_key[] based on the extracted 200 seeds from transformation_determinant[].
  231.                         {       srand(assembled_seed_for_transformation[a]); //WRITES ALTERNATING BETWEEN LEFT TO RIGHT & RIGHT TO LEFT. Alternation is based on the 200 seeds.
  232.                                
  233.                                 if((assembled_seed_for_transformation[a] % 2) == 0)
  234.                                 {       for(int b = 0; b < 2000; b++) //WRITES LEFT TO RIGHT.
  235.                                         {       sub_key[b] = (sub_key[b] + (rand() % 10));
  236.                                                 sub_key[b] %= 10;
  237.                                         }
  238.                                 }
  239.                                 else
  240.                                 {       for(int b = 1999; b >= 0; b--) //WRITES RIGHT TO LEFT.
  241.                                         {       sub_key[b] = (sub_key[b] + (rand() % 10));
  242.                                                 sub_key[b] %= 10;
  243.                                         }
  244.                                 }
  245.                         }
  246.                         //(1st of 5 total transformations per function.) Each one is different.
  247.                        
  248.                        
  249.                        
  250.                        
  251.                        
  252.                         //The following block-bunch generates sub-function 2 for the current function. (Hot zone.)
  253.                         int sub_plaintext_SUB2[2000];
  254.                         int prime_lengths_in_order_SUB2[1000]; //Expected contiguous primes: ~667.
  255.                        
  256.                         int length_sum_SUB2 = 0;
  257.                         int element_SUB2 = 0; //Begins writing to prime_lengths_in_order_SUB2[] from element 0 (basic counter.)
  258.                         while(length_sum_SUB2 < 2000)
  259.                         {       if(Authorship_private[read_bookmark] < 5) {     Authorship_private[read_bookmark]++;} //Reassignes (0=1,1=2,2=3,3=4,4=5.)
  260.                                 else //Assignes 5 to: 1, 6 to: 2, 7 to: 3, 8 to: 4, and 9 to: 5. (All prime lengths must be 1-5.)
  261.                                 {       Authorship_private[read_bookmark] += 16;
  262.                                         Authorship_private[read_bookmark] %= 10; //Example: 7: (7+16) = 23, 23 mod 10 = 3. Seven is now 3.
  263.                                 }
  264.                                
  265.                                 length_sum_SUB2 += Authorship_private[read_bookmark];
  266.                                 prime_lengths_in_order_SUB2[element_SUB2] = Authorship_private[read_bookmark]; //Prime lengths are recorded in
  267.                                 element_SUB2++; //prime_lengths_in_order_SUB2[] so as to later append it near the current ciphertext when complete.
  268.                                 read_bookmark++; //    ...(Written to Authorship_private[].)
  269.                         }
  270.                        
  271.                         element_SUB2--;
  272.                         if(length_sum_SUB2 > 2000) //Subtracts from last entry in prime_lengths_in_order_SUB2[] so as to ensure sum(entries) = 2,000.
  273.                         {       int overflow = (length_sum_SUB2 % 10);
  274.                                 prime_lengths_in_order_SUB2[element_SUB2] -= overflow;
  275.                         }
  276.                        
  277.                         int write_bookmark_SUB2 = 0;
  278.                         for(int a = 0; a <= element_SUB2; a++) //Genetates primes of corresponding length & writes them to sub_plaintext_SUB2[].
  279.                         {       if(prime_lengths_in_order_SUB2[a] == 1) //Randomly generates a single-digit prime.
  280.                                 {       if(Authorship_private[read_bookmark] < 5)
  281.                                         {       if(Authorship_private[read_bookmark + 1] < 5) {sub_plaintext_SUB2[write_bookmark_SUB2] = 2;} //The prime 2.
  282.                                                 else {sub_plaintext_SUB2[write_bookmark_SUB2] = 3;} //The prime 3.
  283.                                         }
  284.                                        
  285.                                         else
  286.                                         {       if(Authorship_private[read_bookmark + 1] < 5) {sub_plaintext_SUB2[write_bookmark_SUB2] = 5;} //The prime 5.
  287.                                                 else {sub_plaintext_SUB2[write_bookmark_SUB2] = 7;} //The prime 7.
  288.                                         }
  289.                                        
  290.                                         write_bookmark_SUB2++;
  291.                                         read_bookmark += 2;
  292.                                         continue;
  293.                                 }
  294.                                
  295.                                 if(prime_lengths_in_order_SUB2[a] == 2) //Randomly generates a two-digit prime.
  296.                                 {       int temp_2_digit_prime;
  297.                                         temp_2_digit_prime = Authorship_private[read_bookmark]; //Unloads 2 array elements to make one integer.
  298.                                         if(temp_2_digit_prime == 0) {temp_2_digit_prime++;}
  299.                                         temp_2_digit_prime *= 10;
  300.                                         temp_2_digit_prime += Authorship_private[read_bookmark + 1];
  301.                                        
  302.                                         while(sieve[temp_2_digit_prime] == 1) //Adjusts temp_2_digit_prime for primality (tests current value & searches in pos dir.)
  303.                                         {       if(temp_2_digit_prime > 99) {temp_2_digit_prime = 97; break;} //If exceeds length of 2, sets it to largest 2-digit prime.
  304.                                                 temp_2_digit_prime++;
  305.                                         }
  306.                                        
  307.                                         sub_plaintext_SUB2[write_bookmark_SUB2 + 1] = (temp_2_digit_prime % 10); //Writes prime to sub_plaintext_SUB2[].
  308.                                         temp_2_digit_prime /= 10;
  309.                                         sub_plaintext_SUB2[write_bookmark_SUB2] = temp_2_digit_prime;
  310.                                        
  311.                                         write_bookmark_SUB2 += 2;
  312.                                         read_bookmark += 2;
  313.                                         continue;
  314.                                 }
  315.                                
  316.                                 if(prime_lengths_in_order_SUB2[a] == 3) //Randomly generates a three-digit prime.
  317.                                 {       int temp_3_digit_prime;
  318.                                         temp_3_digit_prime = Authorship_private[read_bookmark]; //Unloads 3 array elements to make one integer.
  319.                                         if(temp_3_digit_prime == 0) {temp_3_digit_prime++;}
  320.                                         temp_3_digit_prime *= 10;
  321.                                         temp_3_digit_prime += Authorship_private[read_bookmark + 1];
  322.                                         temp_3_digit_prime *= 10;
  323.                                         temp_3_digit_prime += Authorship_private[read_bookmark + 2];
  324.                                        
  325.                                         while(sieve[temp_3_digit_prime] == 1) //Adjusts temp_3_digit_prime for primality (tests current value & searches in pos dir.)
  326.                                         {       if(temp_3_digit_prime > 999) {temp_3_digit_prime = 997; break;} //If exceeds length of 3, sets it to largest 3-digit prime.
  327.                                                 temp_3_digit_prime++;
  328.                                         }
  329.                                        
  330.                                         sub_plaintext_SUB2[write_bookmark_SUB2 + 2] = (temp_3_digit_prime % 10); //Writes prime to sub_plaintext_SUB2[].
  331.                                         temp_3_digit_prime /= 10;
  332.                                         sub_plaintext_SUB2[write_bookmark_SUB2 + 1] = (temp_3_digit_prime % 10);
  333.                                         temp_3_digit_prime /= 10;
  334.                                         sub_plaintext_SUB2[write_bookmark_SUB2] = temp_3_digit_prime;
  335.                                        
  336.                                         write_bookmark_SUB2 += 3;
  337.                                         read_bookmark += 3;
  338.                                         continue;
  339.                                 }
  340.                                
  341.                                 if(prime_lengths_in_order_SUB2[a] == 4) //Randomly generates a four-digit prime.
  342.                                 {       int temp_4_digit_prime;
  343.                                         temp_4_digit_prime = Authorship_private[read_bookmark]; //Unloads 4 array elements to make one integer.
  344.                                         if(temp_4_digit_prime == 0) {temp_4_digit_prime++;}
  345.                                         temp_4_digit_prime *= 10;
  346.                                         temp_4_digit_prime += Authorship_private[read_bookmark + 1];
  347.                                         temp_4_digit_prime *= 10;
  348.                                         temp_4_digit_prime += Authorship_private[read_bookmark + 2];
  349.                                         temp_4_digit_prime *= 10;
  350.                                         temp_4_digit_prime += Authorship_private[read_bookmark + 3];
  351.                                        
  352.                                         while(sieve[temp_4_digit_prime] == 1) //Adjusts temp_4_digit_prime for primality (tests current value & searches in pos dir.)
  353.                                         {       if(temp_4_digit_prime > 9999) {temp_4_digit_prime = 9973; break;} //If exceeds length of 4, sets it to largest 4-digit prime.
  354.                                                 temp_4_digit_prime++;
  355.                                         }
  356.                                        
  357.                                         sub_plaintext_SUB2[write_bookmark_SUB2 + 3] = (temp_4_digit_prime % 10); //Writes prime to sub_plaintext_SUB2[].
  358.                                         temp_4_digit_prime /= 10;
  359.                                         sub_plaintext_SUB2[write_bookmark_SUB2 + 2] = (temp_4_digit_prime % 10);
  360.                                         temp_4_digit_prime /= 10;
  361.                                         sub_plaintext_SUB2[write_bookmark_SUB2 + 1] = (temp_4_digit_prime % 10);
  362.                                         temp_4_digit_prime /= 10;
  363.                                         sub_plaintext_SUB2[write_bookmark_SUB2] = temp_4_digit_prime;
  364.                                        
  365.                                         write_bookmark_SUB2 += 4;
  366.                                         read_bookmark += 4;
  367.                                         continue;
  368.                                 }
  369.                                
  370.                                 if(prime_lengths_in_order_SUB2[a] == 5) //Randomly generates a five-digit prime.
  371.                                 {       int temp_5_digit_prime;
  372.                                         temp_5_digit_prime = Authorship_private[read_bookmark]; //Unloads 5 array elements to make one integer.
  373.                                         if(temp_5_digit_prime == 0) {temp_5_digit_prime++;}
  374.                                         temp_5_digit_prime *= 10;
  375.                                         temp_5_digit_prime += Authorship_private[read_bookmark + 1];
  376.                                         temp_5_digit_prime *= 10;
  377.                                         temp_5_digit_prime += Authorship_private[read_bookmark + 2];
  378.                                         temp_5_digit_prime *= 10;
  379.                                         temp_5_digit_prime += Authorship_private[read_bookmark + 3];
  380.                                         temp_5_digit_prime *= 10;
  381.                                         temp_5_digit_prime += Authorship_private[read_bookmark + 4];
  382.                                        
  383.                                         while(sieve[temp_5_digit_prime] == 1) //Adjusts temp_5_digit_prime for primality (tests current value & searches in pos dir.)
  384.                                         {       if(temp_5_digit_prime > 99999) {temp_5_digit_prime = 99991; break;} //If exceeds length of 5, sets it to largest 5-digit prime.
  385.                                                 temp_5_digit_prime++;
  386.                                         }
  387.                                        
  388.                                         sub_plaintext_SUB2[write_bookmark_SUB2 + 4] = (temp_5_digit_prime % 10); //Writes prime to sub_plaintext_SUB2[].
  389.                                         temp_5_digit_prime /= 10;
  390.                                         sub_plaintext_SUB2[write_bookmark_SUB2 + 3] = (temp_5_digit_prime % 10);
  391.                                         temp_5_digit_prime /= 10;
  392.                                         sub_plaintext_SUB2[write_bookmark_SUB2 + 2] = (temp_5_digit_prime % 10);
  393.                                         temp_5_digit_prime /= 10;
  394.                                         sub_plaintext_SUB2[write_bookmark_SUB2 + 1] = (temp_5_digit_prime % 10);
  395.                                         temp_5_digit_prime /= 10;
  396.                                         sub_plaintext_SUB2[write_bookmark_SUB2] = temp_5_digit_prime;
  397.                                        
  398.                                         write_bookmark_SUB2 += 5;
  399.                                         read_bookmark += 5;
  400.                                         continue;
  401.                                 }
  402.                         }
  403.                        
  404.                         for(int a = 0; a < 2000; a++) //Generates second sub-ciphertext of current function and writes it to Authorship_private[].
  405.                         {       Authorship_private[write_bookmark] = sub_key[a];
  406.                                 Authorship_private[write_bookmark] += sub_plaintext_SUB2[a];
  407.                                 Authorship_private[write_bookmark] %= 10;
  408.                                 write_bookmark++;
  409.                         }
  410.                        
  411.                         Authorship_private[write_bookmark] = '.'; //Separates the entry in Authorship_private[] from the next by one dot because
  412.                         write_bookmark++;                         //the quantity of contiguous primes is not fixed in length. All entries are separated.
  413.                        
  414.                         for(int a = 0; a < 1998; a++) //Transformation determinant transforms sub-key at current stage (preparation for sub-function 3.)
  415.                         {       sub_key[a] += transformation_determinant[a];
  416.                                 sub_key[a] = ((sub_key[a] + transformation_determinant[a + 2]) % 10); //[a + 2] means do up to 1997 or seg fault.
  417.                         }
  418.                         sub_key[1998] = ((sub_key[1998] + transformation_determinant[1005]) % 10); //Last two elements were not transformed so here it is.
  419.                         sub_key[1999] = ((sub_key[1999] + transformation_determinant[1010]) % 10);
  420.                        
  421.                         for(int a = 0; a < 200; a++) //Additional constructive transformation of sub_key[] based on the extracted 200 seeds from transformation_determinant[].
  422.                         {       srand(assembled_seed_for_transformation[a]); //WRITES ALTERNATING BETWEEN LEFT TO RIGHT & RIGHT TO LEFT. Alternation is based on the 200 seeds.
  423.                                
  424.                                 if((assembled_seed_for_transformation[a] % 2) == 0)
  425.                                 {       for(int b = 0; b < 2000; b++) //WRITES LEFT TO RIGHT.
  426.                                         {       sub_key[b] = (sub_key[b] + (rand() % 10));
  427.                                                 sub_key[b] %= 10;
  428.                                         }
  429.                                 }
  430.                                 else
  431.                                 {       for(int b = 1999; b >= 0; b--) //WRITES RIGHT TO LEFT.
  432.                                         {       sub_key[b] = (sub_key[b] + (rand() % 10));
  433.                                                 sub_key[b] %= 10;
  434.                                         }
  435.                                 }
  436.                         }
  437.                         //(2nd of 5 total transformations per function.) Each one is different.
  438.                        
  439.                        
  440.                        
  441.                        
  442.                        
  443.                         //The following block-bunch generates sub-function 3 for the current function. (Cool zone.)
  444.                         for(int a = 0; a < 2000; a++) //Generates third sub-ciphertext of current function and writes it to Authorship_private[].
  445.                         {       Authorship_private[write_bookmark] = sub_key[a];
  446.                                 Authorship_private[write_bookmark] += Authorship_private[read_bookmark];
  447.                                 Authorship_private[write_bookmark] %= 10;
  448.                                 read_bookmark++;
  449.                                 write_bookmark++;
  450.                         }
  451.                        
  452.                         Authorship_private[write_bookmark] = '.'; //Separates the entry in Authorship_private[] from the next by one dot because
  453.                         write_bookmark++;                         //the quantity of contiguous primes is not fixed in length. All entries are separated.
  454.                        
  455.                        
  456.                         for(int a = 0; a < 1997; a++) //Transformation determinant transforms sub-key at current stage (preparation for sub-function 4.)
  457.                         {       sub_key[a] += transformation_determinant[a];
  458.                                 sub_key[a] = ((sub_key[a] + transformation_determinant[a + 3]) % 10); //[a + 3] means do up to 1996 or seg fault.
  459.                         }
  460.                         sub_key[1997] = ((sub_key[1997] + transformation_determinant[1015]) % 10); //Last three elements were not transformed so here it is.
  461.                         sub_key[1998] = ((sub_key[1998] + transformation_determinant[1020]) % 10);
  462.                         sub_key[1999] = ((sub_key[1999] + transformation_determinant[1025]) % 10);
  463.                        
  464.                         for(int a = 0; a < 200; a++) //Additional constructive transformation of sub_key[] based on the extracted 200 seeds from transformation_determinant[].
  465.                         {       srand(assembled_seed_for_transformation[a]); //WRITES ALTERNATING BETWEEN LEFT TO RIGHT & RIGHT TO LEFT. Alternation is based on the 200 seeds.
  466.                                
  467.                                 if((assembled_seed_for_transformation[a] % 2) == 0)
  468.                                 {       for(int b = 0; b < 2000; b++) //WRITES LEFT TO RIGHT.
  469.                                         {       sub_key[b] = (sub_key[b] + (rand() % 10));
  470.                                                 sub_key[b] %= 10;
  471.                                         }
  472.                                 }
  473.                                 else
  474.                                 {       for(int b = 1999; b >= 0; b--) //WRITES RIGHT TO LEFT.
  475.                                         {       sub_key[b] = (sub_key[b] + (rand() % 10));
  476.                                                 sub_key[b] %= 10;
  477.                                         }
  478.                                 }
  479.                         }
  480.                         //(3rd of 5 total transformations per function.) Each one is different.
  481.                        
  482.                        
  483.                        
  484.                        
  485.                        
  486.                         //The following block-bunch generates sub-function 4 for the current function. (Hot zone.)
  487.                         int sub_plaintext_SUB4[2000];
  488.                         int prime_lengths_in_order_SUB4[1000]; //Expected contiguous primes: ~667.
  489.                        
  490.                         int length_sum_SUB4 = 0;
  491.                         int element_SUB4 = 0; //Begins writing to prime_lengths_in_order_SUB4[] from element 0 (basic counter.)
  492.                         while(length_sum_SUB4 < 2000)
  493.                         {       if(Authorship_private[read_bookmark] < 5) {     Authorship_private[read_bookmark]++;} //Reassignes (0=1,1=2,2=3,3=4,4=5.)
  494.                                 else //Assignes 5 to: 1, 6 to: 2, 7 to: 3, 8 to: 4, and 9 to: 5. (All prime lengths must be 1-5.)
  495.                                 {       Authorship_private[read_bookmark] += 16;
  496.                                         Authorship_private[read_bookmark] %= 10; //Example: 7: (7+16) = 23, 23 mod 10 = 3. Seven is now 3.
  497.                                 }
  498.                                
  499.                                 length_sum_SUB4 += Authorship_private[read_bookmark];
  500.                                 prime_lengths_in_order_SUB4[element_SUB4] = Authorship_private[read_bookmark]; //Prime lengths are recorded in
  501.                                 element_SUB4++; //prime_lengths_in_order_SUB4[] so as to later append it near the current ciphertext when complete.
  502.                                 read_bookmark++; //    ...(Written to Authorship_private[].)
  503.                         }
  504.                        
  505.                         element_SUB4--;
  506.                         if(length_sum_SUB4 > 2000) //Subtracts from last entry in prime_lengths_in_order_SUB4[] so as to ensure sum(entries) = 2,000.
  507.                         {       int overflow = (length_sum_SUB4 % 10);
  508.                                 prime_lengths_in_order_SUB4[element_SUB4] -= overflow;
  509.                         }
  510.                        
  511.                         int write_bookmark_SUB4 = 0;
  512.                         for(int a = 0; a <= element_SUB4; a++) //Genetates primes of corresponding length & writes them to sub_plaintext_SUB4[].
  513.                         {       if(prime_lengths_in_order_SUB4[a] == 1) //Randomly generates a single-digit prime.
  514.                                 {       if(Authorship_private[read_bookmark] < 5)
  515.                                         {       if(Authorship_private[read_bookmark + 1] < 5) {sub_plaintext_SUB4[write_bookmark_SUB4] = 2;} //The prime 2.
  516.                                                 else {sub_plaintext_SUB4[write_bookmark_SUB4] = 3;} //The prime 3.
  517.                                         }
  518.                                        
  519.                                         else
  520.                                         {       if(Authorship_private[read_bookmark + 1] < 5) {sub_plaintext_SUB4[write_bookmark_SUB4] = 5;} //The prime 5.
  521.                                                 else {sub_plaintext_SUB4[write_bookmark_SUB4] = 7;} //The prime 7.
  522.                                         }
  523.                                        
  524.                                         write_bookmark_SUB4++;
  525.                                         read_bookmark += 2;
  526.                                         continue;
  527.                                 }
  528.                                
  529.                                 if(prime_lengths_in_order_SUB4[a] == 2) //Randomly generates a two-digit prime.
  530.                                 {       int temp_2_digit_prime;
  531.                                         temp_2_digit_prime = Authorship_private[read_bookmark]; //Unloads 2 array elements to make one integer.
  532.                                         if(temp_2_digit_prime == 0) {temp_2_digit_prime++;}
  533.                                         temp_2_digit_prime *= 10;
  534.                                         temp_2_digit_prime += Authorship_private[read_bookmark + 1];
  535.                                        
  536.                                         while(sieve[temp_2_digit_prime] == 1) //Adjusts temp_2_digit_prime for primality (tests current value & searches in pos dir.)
  537.                                         {       if(temp_2_digit_prime > 99) {temp_2_digit_prime = 97; break;} //If exceeds length of 2, sets it to largest 2-digit prime.
  538.                                                 temp_2_digit_prime++;
  539.                                         }
  540.                                        
  541.                                         sub_plaintext_SUB4[write_bookmark_SUB4 + 1] = (temp_2_digit_prime % 10); //Writes prime to sub_plaintext_SUB4[].
  542.                                         temp_2_digit_prime /= 10;
  543.                                         sub_plaintext_SUB4[write_bookmark_SUB4] = temp_2_digit_prime;
  544.                                        
  545.                                         write_bookmark_SUB4 += 2;
  546.                                         read_bookmark += 2;
  547.                                         continue;
  548.                                 }
  549.                                
  550.                                 if(prime_lengths_in_order_SUB4[a] == 3) //Randomly generates a three-digit prime.
  551.                                 {       int temp_3_digit_prime;
  552.                                         temp_3_digit_prime = Authorship_private[read_bookmark]; //Unloads 3 array elements to make one integer.
  553.                                         if(temp_3_digit_prime == 0) {temp_3_digit_prime++;}
  554.                                         temp_3_digit_prime *= 10;
  555.                                         temp_3_digit_prime += Authorship_private[read_bookmark + 1];
  556.                                         temp_3_digit_prime *= 10;
  557.                                         temp_3_digit_prime += Authorship_private[read_bookmark + 2];
  558.                                        
  559.                                         while(sieve[temp_3_digit_prime] == 1) //Adjusts temp_3_digit_prime for primality (tests current value & searches in pos dir.)
  560.                                         {       if(temp_3_digit_prime > 999) {temp_3_digit_prime = 997; break;} //If exceeds length of 3, sets it to largest 3-digit prime.
  561.                                                 temp_3_digit_prime++;
  562.                                         }
  563.                                        
  564.                                         sub_plaintext_SUB4[write_bookmark_SUB4 + 2] = (temp_3_digit_prime % 10); //Writes prime to sub_plaintext_SUB4[].
  565.                                         temp_3_digit_prime /= 10;
  566.                                         sub_plaintext_SUB4[write_bookmark_SUB4 + 1] = (temp_3_digit_prime % 10);
  567.                                         temp_3_digit_prime /= 10;
  568.                                         sub_plaintext_SUB4[write_bookmark_SUB4] = temp_3_digit_prime;
  569.                                        
  570.                                         write_bookmark_SUB4 += 3;
  571.                                         read_bookmark += 3;
  572.                                         continue;
  573.                                 }
  574.                                
  575.                                 if(prime_lengths_in_order_SUB4[a] == 4) //Randomly generates a four-digit prime.
  576.                                 {       int temp_4_digit_prime;
  577.                                         temp_4_digit_prime = Authorship_private[read_bookmark]; //Unloads 4 array elements to make one integer.
  578.                                         if(temp_4_digit_prime == 0) {temp_4_digit_prime++;}
  579.                                         temp_4_digit_prime *= 10;
  580.                                         temp_4_digit_prime += Authorship_private[read_bookmark + 1];
  581.                                         temp_4_digit_prime *= 10;
  582.                                         temp_4_digit_prime += Authorship_private[read_bookmark + 2];
  583.                                         temp_4_digit_prime *= 10;
  584.                                         temp_4_digit_prime += Authorship_private[read_bookmark + 3];
  585.                                        
  586.                                         while(sieve[temp_4_digit_prime] == 1) //Adjusts temp_4_digit_prime for primality (tests current value & searches in pos dir.)
  587.                                         {       if(temp_4_digit_prime > 9999) {temp_4_digit_prime = 9973; break;} //If exceeds length of 4, sets it to largest 4-digit prime.
  588.                                                 temp_4_digit_prime++;
  589.                                         }
  590.                                        
  591.                                         sub_plaintext_SUB4[write_bookmark_SUB4 + 3] = (temp_4_digit_prime % 10); //Writes prime to sub_plaintext_SUB4[].
  592.                                         temp_4_digit_prime /= 10;
  593.                                         sub_plaintext_SUB4[write_bookmark_SUB4 + 2] = (temp_4_digit_prime % 10);
  594.                                         temp_4_digit_prime /= 10;
  595.                                         sub_plaintext_SUB4[write_bookmark_SUB4 + 1] = (temp_4_digit_prime % 10);
  596.                                         temp_4_digit_prime /= 10;
  597.                                         sub_plaintext_SUB4[write_bookmark_SUB4] = temp_4_digit_prime;
  598.                                        
  599.                                         write_bookmark_SUB4 += 4;
  600.                                         read_bookmark += 4;
  601.                                         continue;
  602.                                 }
  603.                                
  604.                                 if(prime_lengths_in_order_SUB4[a] == 5) //Randomly generates a five-digit prime.
  605.                                 {       int temp_5_digit_prime;
  606.                                         temp_5_digit_prime = Authorship_private[read_bookmark]; //Unloads 5 array elements to make one integer.
  607.                                         if(temp_5_digit_prime == 0) {temp_5_digit_prime++;}
  608.                                         temp_5_digit_prime *= 10;
  609.                                         temp_5_digit_prime += Authorship_private[read_bookmark + 1];
  610.                                         temp_5_digit_prime *= 10;
  611.                                         temp_5_digit_prime += Authorship_private[read_bookmark + 2];
  612.                                         temp_5_digit_prime *= 10;
  613.                                         temp_5_digit_prime += Authorship_private[read_bookmark + 3];
  614.                                         temp_5_digit_prime *= 10;
  615.                                         temp_5_digit_prime += Authorship_private[read_bookmark + 4];
  616.                                        
  617.                                         while(sieve[temp_5_digit_prime] == 1) //Adjusts temp_5_digit_prime for primality (tests current value & searches in pos dir.)
  618.                                         {       if(temp_5_digit_prime > 99999) {temp_5_digit_prime = 99991; break;} //If exceeds length of 5, sets it to largest 5-digit prime.
  619.                                                 temp_5_digit_prime++;
  620.                                         }
  621.                                        
  622.                                         sub_plaintext_SUB4[write_bookmark_SUB4 + 4] = (temp_5_digit_prime % 10); //Writes prime to sub_plaintext_SUB4[].
  623.                                         temp_5_digit_prime /= 10;
  624.                                         sub_plaintext_SUB4[write_bookmark_SUB4 + 3] = (temp_5_digit_prime % 10);
  625.                                         temp_5_digit_prime /= 10;
  626.                                         sub_plaintext_SUB4[write_bookmark_SUB4 + 2] = (temp_5_digit_prime % 10);
  627.                                         temp_5_digit_prime /= 10;
  628.                                         sub_plaintext_SUB4[write_bookmark_SUB4 + 1] = (temp_5_digit_prime % 10);
  629.                                         temp_5_digit_prime /= 10;
  630.                                         sub_plaintext_SUB4[write_bookmark_SUB4] = temp_5_digit_prime;
  631.                                        
  632.                                         write_bookmark_SUB4 += 5;
  633.                                         read_bookmark += 5;
  634.                                         continue;
  635.                                 }
  636.                         }
  637.                        
  638.                         for(int a = 0; a < 2000; a++) //Generates fourth sub-ciphertext of current function and writes it to Authorship_private[].
  639.                         {       Authorship_private[write_bookmark] = sub_key[a];
  640.                                 Authorship_private[write_bookmark] += sub_plaintext_SUB4[a];
  641.                                 Authorship_private[write_bookmark] %= 10;
  642.                                 write_bookmark++;
  643.                         }
  644.                        
  645.                         Authorship_private[write_bookmark] = '.'; //Separates the entry in Authorship_private[] from the next by one dot because
  646.                         write_bookmark++;                         //the quantity of contiguous primes is not fixed in length. All entries are separated.
  647.                        
  648.                         for(int a = 0; a < 1996; a++) //Transformation determinant transforms sub-key at current stage (preparation for sub-function 5.)
  649.                         {       sub_key[a] += transformation_determinant[a];
  650.                                 sub_key[a] = ((sub_key[a] + transformation_determinant[a + 4]) % 10); //[a + 4] means do up to 1995 or seg fault.
  651.                         }
  652.                         sub_key[1996] = ((sub_key[1996] + transformation_determinant[1030]) % 10); //Last four elements were not transformed so here it is.
  653.                         sub_key[1997] = ((sub_key[1997] + transformation_determinant[1035]) % 10);
  654.                         sub_key[1998] = ((sub_key[1998] + transformation_determinant[1040]) % 10);
  655.                         sub_key[1999] = ((sub_key[1999] + transformation_determinant[1045]) % 10);
  656.                        
  657.                         for(int a = 0; a < 200; a++) //Additional constructive transformation of sub_key[] based on the extracted 200 seeds from transformation_determinant[].
  658.                         {       srand(assembled_seed_for_transformation[a]); //WRITES ALTERNATING BETWEEN LEFT TO RIGHT & RIGHT TO LEFT. Alternation is based on the 200 seeds.
  659.                                
  660.                                 if((assembled_seed_for_transformation[a] % 2) == 0)
  661.                                 {       for(int b = 0; b < 2000; b++) //WRITES LEFT TO RIGHT.
  662.                                         {       sub_key[b] = (sub_key[b] + (rand() % 10));
  663.                                                 sub_key[b] %= 10;
  664.                                         }
  665.                                 }
  666.                                 else
  667.                                 {       for(int b = 1999; b >= 0; b--) //WRITES RIGHT TO LEFT.
  668.                                         {       sub_key[b] = (sub_key[b] + (rand() % 10));
  669.                                                 sub_key[b] %= 10;
  670.                                         }
  671.                                 }
  672.                         }
  673.                         //(4th of 5 total transformations per function.) Each one is different.
  674.                        
  675.                        
  676.                        
  677.                        
  678.                        
  679.                         //The following block-bunch generates sub-function 5 for the current function. (Cool zone.)
  680.                         for(int a = 0; a < 2000; a++) //Generates fifth sub-ciphertext of current function and writes it to Authorship_private[].
  681.                         {       Authorship_private[write_bookmark] = sub_key[a];
  682.                                 Authorship_private[write_bookmark] += Authorship_private[read_bookmark];
  683.                                 Authorship_private[write_bookmark] %= 10;
  684.                                 read_bookmark++;
  685.                                 write_bookmark++;
  686.                         }
  687.                        
  688.                         Authorship_private[write_bookmark] = '.'; //Separates the entry in Authorship_private[] from the next by one dot because
  689.                         write_bookmark++;                         //the quantity of contiguous primes is not fixed in length. All entries are separated.
  690.                        
  691.                         for(int a = 0; a < 1995; a++) //Transformation determinant transforms sub-key at current stage (preparation for sub-function 6.)
  692.                         {       sub_key[a] += transformation_determinant[a];
  693.                                 sub_key[a] = ((sub_key[a] + transformation_determinant[a + 5]) % 10); //[a + 5] means do up to 1994 or seg fault.
  694.                         }
  695.                         sub_key[1995] = ((sub_key[1995] + transformation_determinant[1050]) % 10); //Last five elements were not transformed so here it is.
  696.                         sub_key[1996] = ((sub_key[1996] + transformation_determinant[1055]) % 10);
  697.                         sub_key[1997] = ((sub_key[1997] + transformation_determinant[1060]) % 10);
  698.                         sub_key[1998] = ((sub_key[1998] + transformation_determinant[1065]) % 10);
  699.                         sub_key[1999] = ((sub_key[1999] + transformation_determinant[1070]) % 10);
  700.                        
  701.                         for(int a = 0; a < 200; a++) //Additional constructive transformation of sub_key[] based on the extracted 200 seeds from transformation_determinant[].
  702.                         {       srand(assembled_seed_for_transformation[a]); //WRITES ALTERNATING BETWEEN LEFT TO RIGHT & RIGHT TO LEFT. Alternation is based on the 200 seeds.
  703.                                
  704.                                 if((assembled_seed_for_transformation[a] % 2) == 0)
  705.                                 {       for(int b = 0; b < 2000; b++) //WRITES LEFT TO RIGHT.
  706.                                         {       sub_key[b] = (sub_key[b] + (rand() % 10));
  707.                                                 sub_key[b] %= 10;
  708.                                         }
  709.                                 }
  710.                                 else
  711.                                 {       for(int b = 1999; b >= 0; b--) //WRITES RIGHT TO LEFT.
  712.                                         {       sub_key[b] = (sub_key[b] + (rand() % 10));
  713.                                                 sub_key[b] %= 10;
  714.                                         }
  715.                                 }
  716.                         }
  717.                         //(5th of 5 total transformations per function.) Each one is different.
  718.                        
  719.                        
  720.                        
  721.                        
  722.                        
  723.                         //The following block-bunch generates sub-function 6 for the current function. (Hot zone.)
  724.                         int sub_plaintext_SUB6[2000];
  725.                         int prime_lengths_in_order_SUB6[1000]; //Expected contiguous primes: ~667.
  726.                        
  727.                         int length_sum_SUB6 = 0;
  728.                         int element_SUB6 = 0; //Begins writing to prime_lengths_in_order_SUB6[] from element 0 (basic counter.)
  729.                         while(length_sum_SUB6 < 2000)
  730.                         {       if(Authorship_private[read_bookmark] < 5) {     Authorship_private[read_bookmark]++;} //Reassignes (0=1,1=2,2=3,3=4,4=5.)
  731.                                 else //Assignes 5 to: 1, 6 to: 2, 7 to: 3, 8 to: 4, and 9 to: 5. (All prime lengths must be 1-5.)
  732.                                 {       Authorship_private[read_bookmark] += 16;
  733.                                         Authorship_private[read_bookmark] %= 10; //Example: 7: (7+16) = 23, 23 mod 10 = 3. Seven is now 3.
  734.                                 }
  735.                                
  736.                                 length_sum_SUB6 += Authorship_private[read_bookmark];
  737.                                 prime_lengths_in_order_SUB6[element_SUB6] = Authorship_private[read_bookmark]; //Prime lengths are recorded in
  738.                                 element_SUB6++; //prime_lengths_in_order_SUB6[] so as to later append it near the current ciphertext when complete.
  739.                                 read_bookmark++; //    ...(Written to Authorship_private[].)
  740.                         }
  741.                        
  742.                         element_SUB6--;
  743.                         if(length_sum_SUB6 > 2000) //Subtracts from last entry in prime_lengths_in_order_SUB6[] so as to ensure sum(entries) = 2,000.
  744.                         {       int overflow = (length_sum_SUB6 % 10);
  745.                                 prime_lengths_in_order_SUB6[element_SUB6] -= overflow;
  746.                         }
  747.                        
  748.                         int write_bookmark_SUB6 = 0;
  749.                         for(int a = 0; a <= element_SUB6; a++) //Genetates primes of corresponding length & writes them to sub_plaintext_SUB6[].
  750.                         {       if(prime_lengths_in_order_SUB6[a] == 1) //Randomly generates a single-digit prime.
  751.                                 {       if(Authorship_private[read_bookmark] < 5)
  752.                                         {       if(Authorship_private[read_bookmark + 1] < 5) {sub_plaintext_SUB6[write_bookmark_SUB6] = 2;} //The prime 2.
  753.                                                 else {sub_plaintext_SUB6[write_bookmark_SUB6] = 3;} //The prime 3.
  754.                                         }
  755.                                        
  756.                                         else
  757.                                         {       if(Authorship_private[read_bookmark + 1] < 5) {sub_plaintext_SUB6[write_bookmark_SUB6] = 5;} //The prime 5.
  758.                                                 else {sub_plaintext_SUB6[write_bookmark_SUB6] = 7;} //The prime 7.
  759.                                         }
  760.                                        
  761.                                         write_bookmark_SUB6++;
  762.                                         read_bookmark += 2;
  763.                                         continue;
  764.                                 }
  765.                                
  766.                                 if(prime_lengths_in_order_SUB6[a] == 2) //Randomly generates a two-digit prime.
  767.                                 {       int temp_2_digit_prime;
  768.                                         temp_2_digit_prime = Authorship_private[read_bookmark]; //Unloads 2 array elements to make one integer.
  769.                                         if(temp_2_digit_prime == 0) {temp_2_digit_prime++;}
  770.                                         temp_2_digit_prime *= 10;
  771.                                         temp_2_digit_prime += Authorship_private[read_bookmark + 1];
  772.                                        
  773.                                         while(sieve[temp_2_digit_prime] == 1) //Adjusts temp_2_digit_prime for primality (tests current value & searches in pos dir.)
  774.                                         {       if(temp_2_digit_prime > 99) {temp_2_digit_prime = 97; break;} //If exceeds length of 2, sets it to largest 2-digit prime.
  775.                                                 temp_2_digit_prime++;
  776.                                         }
  777.                                        
  778.                                         sub_plaintext_SUB6[write_bookmark_SUB6 + 1] = (temp_2_digit_prime % 10); //Writes prime to sub_plaintext_SUB6[].
  779.                                         temp_2_digit_prime /= 10;
  780.                                         sub_plaintext_SUB6[write_bookmark_SUB6] = temp_2_digit_prime;
  781.                                        
  782.                                         write_bookmark_SUB6 += 2;
  783.                                         read_bookmark += 2;
  784.                                         continue;
  785.                                 }
  786.                                
  787.                                 if(prime_lengths_in_order_SUB6[a] == 3) //Randomly generates a three-digit prime.
  788.                                 {       int temp_3_digit_prime;
  789.                                         temp_3_digit_prime = Authorship_private[read_bookmark]; //Unloads 3 array elements to make one integer.
  790.                                         if(temp_3_digit_prime == 0) {temp_3_digit_prime++;}
  791.                                         temp_3_digit_prime *= 10;
  792.                                         temp_3_digit_prime += Authorship_private[read_bookmark + 1];
  793.                                         temp_3_digit_prime *= 10;
  794.                                         temp_3_digit_prime += Authorship_private[read_bookmark + 2];
  795.                                        
  796.                                         while(sieve[temp_3_digit_prime] == 1) //Adjusts temp_3_digit_prime for primality (tests current value & searches in pos dir.)
  797.                                         {       if(temp_3_digit_prime > 999) {temp_3_digit_prime = 997; break;} //If exceeds length of 3, sets it to largest 3-digit prime.
  798.                                                 temp_3_digit_prime++;
  799.                                         }
  800.                                        
  801.                                         sub_plaintext_SUB6[write_bookmark_SUB6 + 2] = (temp_3_digit_prime % 10); //Writes prime to sub_plaintext_SUB6[].
  802.                                         temp_3_digit_prime /= 10;
  803.                                         sub_plaintext_SUB6[write_bookmark_SUB6 + 1] = (temp_3_digit_prime % 10);
  804.                                         temp_3_digit_prime /= 10;
  805.                                         sub_plaintext_SUB6[write_bookmark_SUB6] = temp_3_digit_prime;
  806.                                        
  807.                                         write_bookmark_SUB6 += 3;
  808.                                         read_bookmark += 3;
  809.                                         continue;
  810.                                 }
  811.                                
  812.                                 if(prime_lengths_in_order_SUB6[a] == 4) //Randomly generates a four-digit prime.
  813.                                 {       int temp_4_digit_prime;
  814.                                         temp_4_digit_prime = Authorship_private[read_bookmark]; //Unloads 4 array elements to make one integer.
  815.                                         if(temp_4_digit_prime == 0) {temp_4_digit_prime++;}
  816.                                         temp_4_digit_prime *= 10;
  817.                                         temp_4_digit_prime += Authorship_private[read_bookmark + 1];
  818.                                         temp_4_digit_prime *= 10;
  819.                                         temp_4_digit_prime += Authorship_private[read_bookmark + 2];
  820.                                         temp_4_digit_prime *= 10;
  821.                                         temp_4_digit_prime += Authorship_private[read_bookmark + 3];
  822.                                        
  823.                                         while(sieve[temp_4_digit_prime] == 1) //Adjusts temp_4_digit_prime for primality (tests current value & searches in pos dir.)
  824.                                         {       if(temp_4_digit_prime > 9999) {temp_4_digit_prime = 9973; break;} //If exceeds length of 4, sets it to largest 4-digit prime.
  825.                                                 temp_4_digit_prime++;
  826.                                         }
  827.                                        
  828.                                         sub_plaintext_SUB6[write_bookmark_SUB6 + 3] = (temp_4_digit_prime % 10); //Writes prime to sub_plaintext_SUB6[].
  829.                                         temp_4_digit_prime /= 10;
  830.                                         sub_plaintext_SUB6[write_bookmark_SUB6 + 2] = (temp_4_digit_prime % 10);
  831.                                         temp_4_digit_prime /= 10;
  832.                                         sub_plaintext_SUB6[write_bookmark_SUB6 + 1] = (temp_4_digit_prime % 10);
  833.                                         temp_4_digit_prime /= 10;
  834.                                         sub_plaintext_SUB6[write_bookmark_SUB6] = temp_4_digit_prime;
  835.                                        
  836.                                         write_bookmark_SUB6 += 4;
  837.                                         read_bookmark += 4;
  838.                                         continue;
  839.                                 }
  840.                                
  841.                                 if(prime_lengths_in_order_SUB6[a] == 5) //Randomly generates a five-digit prime.
  842.                                 {       int temp_5_digit_prime;
  843.                                         temp_5_digit_prime = Authorship_private[read_bookmark]; //Unloads 5 array elements to make one integer.
  844.                                         if(temp_5_digit_prime == 0) {temp_5_digit_prime++;}
  845.                                         temp_5_digit_prime *= 10;
  846.                                         temp_5_digit_prime += Authorship_private[read_bookmark + 1];
  847.                                         temp_5_digit_prime *= 10;
  848.                                         temp_5_digit_prime += Authorship_private[read_bookmark + 2];
  849.                                         temp_5_digit_prime *= 10;
  850.                                         temp_5_digit_prime += Authorship_private[read_bookmark + 3];
  851.                                         temp_5_digit_prime *= 10;
  852.                                         temp_5_digit_prime += Authorship_private[read_bookmark + 4];
  853.                                        
  854.                                         while(sieve[temp_5_digit_prime] == 1) //Adjusts temp_5_digit_prime for primality (tests current value & searches in pos dir.)
  855.                                         {       if(temp_5_digit_prime > 99999) {temp_5_digit_prime = 99991; break;} //If exceeds length of 5, sets it to largest 5-digit prime.
  856.                                                 temp_5_digit_prime++;
  857.                                         }
  858.                                        
  859.                                         sub_plaintext_SUB6[write_bookmark_SUB6 + 4] = (temp_5_digit_prime % 10); //Writes prime to sub_plaintext_SUB6[].
  860.                                         temp_5_digit_prime /= 10;
  861.                                         sub_plaintext_SUB6[write_bookmark_SUB6 + 3] = (temp_5_digit_prime % 10);
  862.                                         temp_5_digit_prime /= 10;
  863.                                         sub_plaintext_SUB6[write_bookmark_SUB6 + 2] = (temp_5_digit_prime % 10);
  864.                                         temp_5_digit_prime /= 10;
  865.                                         sub_plaintext_SUB6[write_bookmark_SUB6 + 1] = (temp_5_digit_prime % 10);
  866.                                         temp_5_digit_prime /= 10;
  867.                                         sub_plaintext_SUB6[write_bookmark_SUB6] = temp_5_digit_prime;
  868.                                        
  869.                                         write_bookmark_SUB6 += 5;
  870.                                         read_bookmark += 5;
  871.                                         continue;
  872.                                 }
  873.                         }
  874.                        
  875.                         for(int a = 0; a < 2000; a++) //Generates sixth sub-ciphertext of current function and writes it to Authorship_private[].
  876.                         {       Authorship_private[write_bookmark] = sub_key[a];
  877.                                 Authorship_private[write_bookmark] += sub_plaintext_SUB6[a];
  878.                                 Authorship_private[write_bookmark] %= 10;
  879.                                 write_bookmark++;
  880.                         }
  881.                        
  882.                         Authorship_private[write_bookmark] = '.'; //Separates the entry in Authorship_private[] from the next by one dot because
  883.                         write_bookmark++;                         //the quantity of contiguous primes is not fixed in length. All entries are separated.
  884.                        
  885.                        
  886.                        
  887.                        
  888.                        
  889.                         //The following block-bunch generates the Authorship number dynamically. (Its final form is then produced after the 13,500 functions.)
  890.                         //This sits here (just after the full function is written to array Authorship_private[]) because now temp_write_bookmark fingerprints the
  891.                         //function right to left so as to build the Authorship number. Then solution ingredients are appended to the current function.
  892.                         compression_119[0] += compression_119[99];
  893.                         compression_119[0] %= 10000000000;
  894.                        
  895.                         int temp_write_bookmark;
  896.                         temp_write_bookmark = (write_bookmark - 2);
  897.                        
  898.                         for(int a = 0; a < 100; a++)
  899.                         {       compression_115[a] += Authorship_private[temp_write_bookmark];
  900.                                 compression_115[a] *= 5;
  901.                                 compression_115[a] %= 10000000000;
  902.                                 temp_write_bookmark -= 115;
  903.                         }
  904.                         temp_write_bookmark = (write_bookmark - 2); //Resetting the temporary variable.
  905.                        
  906.                         for(int a = 0; a < 100; a++)
  907.                         {       compression_116[a] += Authorship_private[temp_write_bookmark];
  908.                                 compression_116[a] *= 6;
  909.                                 compression_116[a] %= 10000000000;
  910.                                 temp_write_bookmark -= 116;
  911.                         }
  912.                         temp_write_bookmark = (write_bookmark - 2); //Resetting the temporary variable.
  913.                        
  914.                         for(int a = 0; a < 100; a++)
  915.                         {       compression_117[a] += Authorship_private[temp_write_bookmark];
  916.                                 compression_117[a] *= 7;
  917.                                 compression_117[a] %= 10000000000;
  918.                                 temp_write_bookmark -= 117;
  919.                         }
  920.                         temp_write_bookmark = (write_bookmark - 2); //Resetting the temporary variable.
  921.                        
  922.                         for(int a = 0; a < 100; a++)
  923.                         {       compression_118[a] += Authorship_private[temp_write_bookmark];
  924.                                 compression_118[a] *= 8;
  925.                                 compression_118[a] %= 10000000000;
  926.                                 temp_write_bookmark -= 118;
  927.                         }
  928.                         temp_write_bookmark = (write_bookmark - 2); //Resetting the temporary variable.
  929.                        
  930.                         for(int a = 0; a < 100; a++)
  931.                         {       compression_119[a] += Authorship_private[temp_write_bookmark];
  932.                                 compression_119[a] *= 9;
  933.                                 compression_119[a] %= 10000000000;
  934.                                 temp_write_bookmark -= 119;
  935.                         }
  936.                        
  937.                         //Compression snapshots are active in early stages of Authorship number evolution. They are applied to the compression in the end.
  938.                         if((f == 1000) || (f == 2000) || (f == 3000) || (f == 4000) || (f == 5000) || (f == 6000) || (f == 7000) || (f == 8000))
  939.                         {       for(int a = 0; a < 100; a++)
  940.                                 {       snapshot_115[a] += compression_115[a];
  941.                                         snapshot_115[a] %= 10000000000; //(10^10, results in last ten digits shown.)
  942.                                        
  943.                                         snapshot_116[a] += compression_116[a];
  944.                                         snapshot_116[a] %= 10000000000;
  945.                                        
  946.                                         snapshot_117[a] += compression_117[a];
  947.                                         snapshot_117[a] %= 10000000000;
  948.                                        
  949.                                         snapshot_118[a] += compression_118[a];
  950.                                         snapshot_118[a] %= 10000000000;
  951.                                        
  952.                                         snapshot_119[a] += compression_119[a];
  953.                                         snapshot_119[a] %= 10000000000;
  954.                                 }
  955.                         }
  956.                        
  957.                        
  958.                        
  959.                        
  960.                        
  961.                         //The following block-bunch appends to the current function in Authorship_private[]: solution ingredients.
  962.                         for(int a = 0; a < 2000; a++) //Writes the transformation determinant.
  963.                         {       Authorship_private[write_bookmark] = transformation_determinant[a];
  964.                                 write_bookmark++;
  965.                         }
  966.                        
  967.                         Authorship_private[write_bookmark] = '.'; //Separates the entry in Authorship_private[] from the next by one dot because
  968.                         write_bookmark++;                         //the quantity of contiguous primes is not fixed in length. All entries are separated.
  969.                        
  970.                         for(int a = 0; a < 2000; a++) //Writes the sub-key.
  971.                         {       Authorship_private[write_bookmark] = temp_sub_key[a];
  972.                                 write_bookmark++;
  973.                         }
  974.                        
  975.                         Authorship_private[write_bookmark] = '.'; //Separates the entry in Authorship_private[] from the next by one dot because
  976.                         write_bookmark++;                         //the quantity of contiguous primes is not fixed in length. All entries are separated.
  977.                        
  978.                         for(int a = 0; a <= element_SUB2; a++) //Writes the prime_lengths_in_order_SUB2 (hot zone.)
  979.                         {       Authorship_private[write_bookmark] = prime_lengths_in_order_SUB2[a];
  980.                                 write_bookmark++;
  981.                         }
  982.                        
  983.                         Authorship_private[write_bookmark] = '.'; //Separates the entry in Authorship_private[] from the next by one dot because
  984.                         write_bookmark++;                         //the quantity of contiguous primes is not fixed in length. All entries are separated.
  985.                        
  986.                         for(int a = 0; a <= element_SUB4; a++) //Writes the prime_lengths_in_order_SUB4 (hot zone.)
  987.                         {       Authorship_private[write_bookmark] = prime_lengths_in_order_SUB4[a];
  988.                                 write_bookmark++;
  989.                         }
  990.                        
  991.                         Authorship_private[write_bookmark] = '.'; //Separates the entry in Authorship_private[] from the next by one dot because
  992.                         write_bookmark++;                         //the quantity of contiguous primes is not fixed in length. All entries are separated.
  993.                        
  994.                         for(int a = 0; a <= element_SUB6; a++) //Writes the prime_lengths_in_order_SUB6 (hot zone.)
  995.                         {       Authorship_private[write_bookmark] = prime_lengths_in_order_SUB6[a];
  996.                                 write_bookmark++;
  997.                         }
  998.                        
  999.                         Authorship_private[write_bookmark] = '.'; //Separates the entry in Authorship_private[] from the next by one dot because
  1000.                         write_bookmark++;                         //the quantity of contiguous primes is not fixed in length. All entries are separated.
  1001.                        
  1002.                         if((read_bookmark - write_bookmark) < 30000) //Further collision prevention for read/write bookmarks. After each cycle within this
  1003.                         {       read_bookmark += 1000000; //for loop, read_bookmark increases by ~16,000 while write_bookmark increases by ~18,000 and so the
  1004.                         }                             //write_bookmark eventually catches up. This block forces read_bookmark to jump dynamically.
  1005.                                                   //Consider instead making tiny jumps away from write_bookmark--adjusting only by ~2,000 elements forward.
  1006.                                                   //That would be okay because you're just following along with write_bookmark and Authorship_private[]
  1007.                                                   //fits them all just fine. Now consider jumping only once in a while--distancing in bulk. This is no more
  1008.                                                   //a waste of random numbers than making small jumps. The bookmarks simply and smoothly approach
  1009.                                                   //one another over time. All that space between them must exist one way or another--in bulk or in parts.
  1010.                 }
  1011.                
  1012.                
  1013.                
  1014.                
  1015.                
  1016.                 //Writes everything to the file Authorship.private including the last dot then the null character.
  1017.                 out_stream.open("Authorship.private");
  1018.                
  1019.                 for(int a = 0; a < write_bookmark; a++)
  1020.                 {       if(Authorship_private[a] == '.') {out_stream << '.';}
  1021.                         else {out_stream << int(Authorship_private[a]);}
  1022.                 }
  1023.                 out_stream << '\0'; //These digits will be loaded into RAM one day, null marks when to stop reading them.
  1024.                
  1025.                 out_stream.close();
  1026.                
  1027.                
  1028.                
  1029.                
  1030.                
  1031.                 //Constructively combines the compression tables. compression_119[] will hold it all.
  1032.                 for(int a = 0; a < 100; a++)
  1033.                 {       compression_119[a] += compression_115[a];
  1034.                         if((compression_119[a] % 2) == 0) {compression_119[a] *= 2;}
  1035.                        
  1036.                         compression_119[a] += compression_116[a];
  1037.                         if((compression_119[a] % 2) == 0) {compression_119[a] *= 3;}
  1038.                        
  1039.                         compression_119[a] += compression_117[a];
  1040.                         if((compression_119[a] % 2) == 0) {compression_119[a] *= 5;}
  1041.                        
  1042.                         compression_119[a] += compression_118[a];
  1043.                         if((compression_119[a] % 2) == 0) {compression_119[a] *= 7;}
  1044.                        
  1045.                         compression_119[a] %= 10000000000; //(10^10, results in last ten digits shown.)
  1046.                 }
  1047.                
  1048.                 //Constructively combines the snapshot tables. snapshot_119[] will hold it all.
  1049.                 for(int a = 0; a < 100; a++)
  1050.                 {       snapshot_119[a] += snapshot_115[a];
  1051.                         if((snapshot_119[a] % 2) == 0) {snapshot_119[a] *= 2;}
  1052.                        
  1053.                         snapshot_119[a] += snapshot_116[a];
  1054.                         if((snapshot_119[a] % 2) == 0) {snapshot_119[a] *= 3;}
  1055.                        
  1056.                         snapshot_119[a] += snapshot_117[a];
  1057.                         if((snapshot_119[a] % 2) == 0) {snapshot_119[a] *= 5;}
  1058.                        
  1059.                         snapshot_119[a] += snapshot_118[a];
  1060.                         if((snapshot_119[a] % 2) == 0) {snapshot_119[a] *= 7;}
  1061.                        
  1062.                         snapshot_119[a] %= 10000000000; //(10^10, results in last ten digits shown.)
  1063.                 }
  1064.                
  1065.                 //Applies the snapshots to the last stage in compression. (As the Authorship number evolved over time, snapshots made a record of its early stages.)
  1066.                 for(int a = 0; a < 100; a++)
  1067.                 {       compression_119[a] += snapshot_119[a];
  1068.                         compression_119[a] %= 10000000000; //(10^10, results in last ten digits shown.)
  1069.                 }
  1070.                
  1071.                 for(int a = 0; a < 100; a++) //Ensures each constituent compression integer is 10 digits long. The Authorship number is now complete.
  1072.                 {       if(compression_119[a]   < 1000000000)
  1073.                         {       compression_119[a] += 1000000000;
  1074.                         }
  1075.                 }
  1076.                
  1077.                
  1078.                
  1079.                
  1080.                
  1081.                 //Writes number to the file Authorship.number.
  1082.                 out_stream.open("Authorship.number");
  1083.                
  1084.                 for(int a = 0; a < 100; a++)
  1085.                 {       out_stream << compression_119[a];
  1086.                 }
  1087.                
  1088.                 out_stream.close();
  1089.                
  1090.                
  1091.                
  1092.                
  1093.                
  1094.                 //Overwrites RAM of Authorship_private[].
  1095.                 for(int a = 0; a < 256500000; a++)
  1096.                 {       for(int b = 0; b < 10; b++) {Authorship_private[a] = b;}
  1097.                 }
  1098.                
  1099.                 //Overwrites RAM of user_seed[].
  1100.                 for(int a = 0; a < 50; a++)
  1101.                 {       user_seed[a] = 0; user_seed[a] = 12345678; user_seed[a] = 87654321; user_seed[a] = 99999999;
  1102.                 }
  1103.                
  1104.                
  1105.                
  1106.                
  1107.                
  1108.                 cout << "\n\n\nFinished.\n\n\n"
  1109.                
  1110.                      << "Your number resides in the file Authorship.number in this directory, publish it!\n"
  1111.                      << "Your keys reside in Authorship.private in this directory, cache them guardedly.\n\n\n\n";
  1112.         }
  1113.        
  1114.        
  1115.        
  1116.        
  1117.        
  1118.         //________________________________________________________________________________________________________________________
  1119.         //                                                                                                                       |
  1120.         //                                          2   Modify Authorship number                                                 |
  1121.         //_______________________________________________________________________________________________________________________|
  1122.         if(user_option == 2)
  1123.         {       ifstream in_stream;
  1124.                 ofstream out_stream;
  1125.                
  1126.                 //BASIC LAYOUT:
  1127.                 //1. Generates your new number & keys (same as Authorship option 1 but holds in RAM until step 3.)
  1128.                 //2. Loads given old Authorship.private file into old[].
  1129.                 //3. Overwrites given Authorship.private file with new keys from step 1.
  1130.                 //4. Forces old[] to represent your new number & message.
  1131.                 //5. Writes old[] to now-created file Authorship.public.
  1132.                
  1133.                 cout << "\n>>>>>>>>>>>>>>>>>>>>>>>>>>>(Modify Authorship number)<<<<<<<<<<<<<<<<<<<<<<<<<<<\n"
  1134.                      <<   "Place a COPY of a Authorship.private file in this directory if not already here.\n"
  1135.                      <<   "Enter 8 random digits, repeat 50 times. (Overwrites private file in 20 minutes.)\n"
  1136.                      <<   "Your old keys are then selectively written to your new public file created here.\n\n";
  1137.                
  1138.                 unsigned int user_seed[50]; //Fills user_seed with 50 user-defined seeds of size 8.
  1139.                 for(int a = 0; a < 50; a++)
  1140.                 {       if(a < 9) {cout << " " << (a + 1) << " of 50: ";} //Prints blank to align input status report (aesthetics.)
  1141.                         else {cout << (a + 1) << " of 50: ";}
  1142.                        
  1143.                         cin >> user_seed[a];
  1144.                 }
  1145.                
  1146.                 //Checks if file Authorship.private is present.
  1147.                 in_stream.open("Authorship.private");
  1148.                 if(in_stream.fail() == true) {in_stream.close(); cout << "\nAuthorship.private missing or misspelled, program ended.\n";}
  1149.                 in_stream.close();
  1150.                
  1151.                
  1152.                
  1153.                
  1154.                
  1155.                 static char Authorship_private[256500000]; //This array is filled with random digits then read from and written to left to right
  1156.                 //dynamically to save RAM space. It provides random digit input and temporary key storage (to be written to file: Authorship.private.)
  1157.                 int read_bookmark = 1000000;  //Bookmarks where to read next from Authorship_private[]. Initial size prevents read/write collision.
  1158.                 int write_bookmark = 0; //Bookmarks where to write next in  Authorship_private[].
  1159.                 //(Function generation extracts random numbers using read/write bookmarks. Authorship_private[] is first filled with random numbers normally.)
  1160.                
  1161.                 for(int a = 0; a < 50; a++) //Generates a random location (+10^6) for where to read from Authorship_private[]. This step prevents bookmark
  1162.                 {       read_bookmark += (user_seed[a] % 10000); //collision and adds to the randomness strength. Average total value for read_bookmark: 1,250,000.
  1163.                 } //The last item in the for loop who generates 13,500 multi-way functions deals with collision again, allowing bookmark proximity of ~30,000.
  1164.                
  1165.                 srand(time(0));
  1166.                 for(int a = 256499999; a >= 0; a--) //Fills Authorship_private[] with random numbers based on Unix time. WRITES RIGHT TO LEFT.
  1167.                 {       Authorship_private[a] = (rand() % 10);
  1168.                 }
  1169.                
  1170.                 for(int a = 0; a < 50; a++) //Constructively applies random digits to Authorship_private[] based on the 50 seeds provided by the user.
  1171.                 {       srand(user_seed[a]);    //WRITES ALTERNATING BETWEEN LEFT TO RIGHT & RIGHT TO LEFT. Alternation is based on the 50 user seeds.
  1172.                        
  1173.                         if((user_seed[a] % 2) == 0)
  1174.                         {       for(int b = 0; b < 256500000; b++) //If current user seed is even, WRITES RANDOM NUMBERS LEFT TO RIGHT.
  1175.                                 {       Authorship_private[b] = (Authorship_private[b] + (rand() % 10));
  1176.                                         Authorship_private[b] %= 10;
  1177.                                 }
  1178.                         }
  1179.                         else
  1180.                         {       for(int b = 256499999; b >= 0; b--) //If current user seed is odd, WRITES RANDOM NUMBERS RIGHT TO LEFT.
  1181.                                 {       Authorship_private[b] = (Authorship_private[b] + (rand() % 10));
  1182.                                         Authorship_private[b] %= 10;
  1183.                                 }
  1184.                         }
  1185.                 }
  1186.                
  1187.                 srand(time(0)); //Constructively applies random numbers to Authorship_private[] once more, based on Unix time. WRITES LEFT TO RIGHT.
  1188.                 for(int a = 0; a < 256500000; a++)
  1189.                 {       Authorship_private[a] = (Authorship_private[a] + (rand() % 10));
  1190.                         Authorship_private[a] %= 10;
  1191.                 }
  1192.                
  1193.                
  1194.                
  1195.                
  1196.                
  1197.                 //These declarations are for deductive lossy compression, they produce the Authorship number dynamically.
  1198.                 //See the compression block-bunch near the end of the following for loop who generates 13,500 functions.
  1199.                 long long int compression_115[100]; //Hops by -115
  1200.                 long long int    snapshot_115[100]; //Takes a snapshot of compression_115[] every once in a while.
  1201.                
  1202.                 long long int compression_116[100]; //Hops by -116
  1203.                 long long int    snapshot_116[100]; //Takes a snapshot of compression_116[] every once in a while.
  1204.                
  1205.                 long long int compression_117[100]; //Hops by -117
  1206.                 long long int    snapshot_117[100]; //Takes a snapshot of compression_117[] every once in a while.
  1207.                
  1208.                 long long int compression_118[100]; //Hops by -118
  1209.                 long long int    snapshot_118[100]; //Takes a snapshot of compression_118[] every once in a while.
  1210.                
  1211.                 long long int compression_119[100]; //Hops by -119
  1212.                 long long int    snapshot_119[100]; //Takes a snapshot of compression_119[] every once in a while.
  1213.                
  1214.                 for(int a = 0; a < 100; a++)
  1215.                 {       compression_115[a] = 5555555555;        snapshot_115[a] = 5555555555;
  1216.                         compression_116[a] = 5555555555;        snapshot_116[a] = 5555555555;
  1217.                         compression_117[a] = 5555555555;        snapshot_117[a] = 5555555555;
  1218.                         compression_118[a] = 5555555555;        snapshot_118[a] = 5555555555;
  1219.                         compression_119[a] = 5555555555;        snapshot_119[a] = 5555555555;
  1220.                 }
  1221.                
  1222.                 //This is a boolean sieve of Eratosthenes. Zeros are prime, conveniently mapped to their element index. (It is used here like the following
  1223.                 //example: if(sieve[my_candidate] == 0) then my_candidate is prime. Otherwise, my_candidate is increased until it is prime. This adjusts
  1224.                 //my_candidate for primality in the positive direction.) And values over 99 for 2-digit primes for example are set to the largest prime < 100.)
  1225.                 bool sieve[100000] = {1, 1};
  1226.                 for(int prime = 2; prime < 317; prime++) //317 is sqrt(100000)
  1227.                 {       for(int a = prime + prime; a < 100000; a += prime) {sieve[a] = 1;}
  1228.                 }
  1229.                
  1230.                
  1231.                
  1232.                
  1233.                
  1234.                 //The following for loop generates 13,500 multi-way functions in array Authorship_private[].
  1235.                 for(int f = 0; f < 13500; f++)
  1236.                 {       //The following block-bunch generates sub-function 1 for the current function. (Cool zone.)
  1237.                         int transformation_determinant[2000];
  1238.                         for(int a = 0; a < 2000; a++) //Fills transformation_determinant[] with random digits.
  1239.                         {       transformation_determinant[a] = Authorship_private[read_bookmark];
  1240.                                 read_bookmark++;
  1241.                         }
  1242.                        
  1243.                         long long assembled_seed_for_transformation[200] = {0}; //Prepares 200 10-digit seeds from transformation_determinant[]
  1244.                         int transformation_determinant_read_bookmark = 0;       //for further key transformation.
  1245.                         for(int a = 0; a < 200; a++)
  1246.                         {       long long multiplier = 1000000000;
  1247.                                 for(int b = 0; b < 10; b++)
  1248.                                 {       assembled_seed_for_transformation[a] += (transformation_determinant[transformation_determinant_read_bookmark] * multiplier);
  1249.                                         transformation_determinant_read_bookmark++;
  1250.                                         multiplier /= 10;
  1251.                                 }
  1252.                         }
  1253.                        
  1254.                         int sub_key[2000];
  1255.                         int temp_sub_key[2000];
  1256.                         for(int a = 0; a < 2000; a++) //Fills sub_key[] with random digits. This sub-key will be transformed and used dynamically.
  1257.                         {       sub_key[a] = Authorship_private[read_bookmark];
  1258.                                 temp_sub_key[a] = Authorship_private[read_bookmark]; //Makes temp copy of sub-key so as to later append it near the current
  1259.                                 read_bookmark++;                                     //ciphertext when complete. (Written to Authorship_private[].)
  1260.                         }                                                        //These kind of details prevent read/write_bookmark collision.
  1261.                        
  1262.                         for(int a = 0; a < 2000; a++) //Generates first sub-ciphertext of current function and writes it to Authorship_private[].
  1263.                         {       Authorship_private[write_bookmark] = sub_key[a];
  1264.                                 Authorship_private[write_bookmark] += Authorship_private[read_bookmark];
  1265.                                 Authorship_private[write_bookmark] %= 10;
  1266.                                 read_bookmark++;
  1267.                                 write_bookmark++;
  1268.                         }
  1269.                        
  1270.                         Authorship_private[write_bookmark] = '.'; //Separates the entry in Authorship_private[] from the next by one dot because
  1271.                         write_bookmark++;                         //the quantity of contiguous primes is not fixed in length. All entries are separated.
  1272.                        
  1273.                         for(int a = 0; a < 1999; a++) //Transformation determinant transforms sub-key at current stage (preparation for sub-function 2.)
  1274.                         {       sub_key[a] += transformation_determinant[a];
  1275.                                 sub_key[a] = ((sub_key[a] + transformation_determinant[a + 1]) % 10); //[a + 1] means do up to 1998 or seg fault.
  1276.                         }
  1277.                         sub_key[1999] = ((sub_key[1999] + transformation_determinant[1000]) % 10); //Last element was not transformed so here it is.
  1278.                        
  1279.                         for(int a = 0; a < 200; a++) //Additional constructive transformation of sub_key[] based on the extracted 200 seeds from transformation_determinant[].
  1280.                         {       srand(assembled_seed_for_transformation[a]); //WRITES ALTERNATING BETWEEN LEFT TO RIGHT & RIGHT TO LEFT. Alternation is based on the 200 seeds.
  1281.                                
  1282.                                 if((assembled_seed_for_transformation[a] % 2) == 0)
  1283.                                 {       for(int b = 0; b < 2000; b++) //WRITES LEFT TO RIGHT.
  1284.                                         {       sub_key[b] = (sub_key[b] + (rand() % 10));
  1285.                                                 sub_key[b] %= 10;
  1286.                                         }
  1287.                                 }
  1288.                                 else
  1289.                                 {       for(int b = 1999; b >= 0; b--) //WRITES RIGHT TO LEFT.
  1290.                                         {       sub_key[b] = (sub_key[b] + (rand() % 10));
  1291.                                                 sub_key[b] %= 10;
  1292.                                         }
  1293.                                 }
  1294.                         }
  1295.                         //(1st of 5 total transformations per function.) Each one is different.
  1296.                        
  1297.                        
  1298.                        
  1299.                        
  1300.                        
  1301.                         //The following block-bunch generates sub-function 2 for the current function. (Hot zone.)
  1302.                         int sub_plaintext_SUB2[2000];
  1303.                         int prime_lengths_in_order_SUB2[1000]; //Expected contiguous primes: ~667.
  1304.                        
  1305.                         int length_sum_SUB2 = 0;
  1306.                         int element_SUB2 = 0; //Begins writing to prime_lengths_in_order_SUB2[] from element 0 (basic counter.)
  1307.                         while(length_sum_SUB2 < 2000)
  1308.                         {       if(Authorship_private[read_bookmark] < 5) {     Authorship_private[read_bookmark]++;} //Reassignes (0=1,1=2,2=3,3=4,4=5.)
  1309.                                 else //Assignes 5 to: 1, 6 to: 2, 7 to: 3, 8 to: 4, and 9 to: 5. (All prime lengths must be 1-5.)
  1310.                                 {       Authorship_private[read_bookmark] += 16;
  1311.                                         Authorship_private[read_bookmark] %= 10; //Example: 7: (7+16) = 23, 23 mod 10 = 3. Seven is now 3.
  1312.                                 }
  1313.                                
  1314.                                 length_sum_SUB2 += Authorship_private[read_bookmark];
  1315.                                 prime_lengths_in_order_SUB2[element_SUB2] = Authorship_private[read_bookmark]; //Prime lengths are recorded in
  1316.                                 element_SUB2++; //prime_lengths_in_order_SUB2[] so as to later append it near the current ciphertext when complete.
  1317.                                 read_bookmark++; //    ...(Written to Authorship_private[].)
  1318.                         }
  1319.                        
  1320.                         element_SUB2--;
  1321.                         if(length_sum_SUB2 > 2000) //Subtracts from last entry in prime_lengths_in_order_SUB2[] so as to ensure sum(entries) = 2,000.
  1322.                         {       int overflow = (length_sum_SUB2 % 10);
  1323.                                 prime_lengths_in_order_SUB2[element_SUB2] -= overflow;
  1324.                         }
  1325.                        
  1326.                         int write_bookmark_SUB2 = 0;
  1327.                         for(int a = 0; a <= element_SUB2; a++) //Genetates primes of corresponding length & writes them to sub_plaintext_SUB2[].
  1328.                         {       if(prime_lengths_in_order_SUB2[a] == 1) //Randomly generates a single-digit prime.
  1329.                                 {       if(Authorship_private[read_bookmark] < 5)
  1330.                                         {       if(Authorship_private[read_bookmark + 1] < 5) {sub_plaintext_SUB2[write_bookmark_SUB2] = 2;} //The prime 2.
  1331.                                                 else {sub_plaintext_SUB2[write_bookmark_SUB2] = 3;} //The prime 3.
  1332.                                         }
  1333.                                        
  1334.                                         else
  1335.                                         {       if(Authorship_private[read_bookmark + 1] < 5) {sub_plaintext_SUB2[write_bookmark_SUB2] = 5;} //The prime 5.
  1336.                                                 else {sub_plaintext_SUB2[write_bookmark_SUB2] = 7;} //The prime 7.
  1337.                                         }
  1338.                                        
  1339.                                         write_bookmark_SUB2++;
  1340.                                         read_bookmark += 2;
  1341.                                         continue;
  1342.                                 }
  1343.                                
  1344.                                 if(prime_lengths_in_order_SUB2[a] == 2) //Randomly generates a two-digit prime.
  1345.                                 {       int temp_2_digit_prime;
  1346.                                         temp_2_digit_prime = Authorship_private[read_bookmark]; //Unloads 2 array elements to make one integer.
  1347.                                         if(temp_2_digit_prime == 0) {temp_2_digit_prime++;}
  1348.                                         temp_2_digit_prime *= 10;
  1349.                                         temp_2_digit_prime += Authorship_private[read_bookmark + 1];
  1350.                                        
  1351.                                         while(sieve[temp_2_digit_prime] == 1) //Adjusts temp_2_digit_prime for primality (tests current value & searches in pos dir.)
  1352.                                         {       if(temp_2_digit_prime > 99) {temp_2_digit_prime = 97; break;} //If exceeds length of 2, sets it to largest 2-digit prime.
  1353.                                                 temp_2_digit_prime++;
  1354.                                         }
  1355.                                        
  1356.                                         sub_plaintext_SUB2[write_bookmark_SUB2 + 1] = (temp_2_digit_prime % 10); //Writes prime to sub_plaintext_SUB2[].
  1357.                                         temp_2_digit_prime /= 10;
  1358.                                         sub_plaintext_SUB2[write_bookmark_SUB2] = temp_2_digit_prime;
  1359.                                        
  1360.                                         write_bookmark_SUB2 += 2;
  1361.                                         read_bookmark += 2;
  1362.                                         continue;
  1363.                                 }
  1364.                                
  1365.                                 if(prime_lengths_in_order_SUB2[a] == 3) //Randomly generates a three-digit prime.
  1366.                                 {       int temp_3_digit_prime;
  1367.                                         temp_3_digit_prime = Authorship_private[read_bookmark]; //Unloads 3 array elements to make one integer.
  1368.                                         if(temp_3_digit_prime == 0) {temp_3_digit_prime++;}
  1369.                                         temp_3_digit_prime *= 10;
  1370.                                         temp_3_digit_prime += Authorship_private[read_bookmark + 1];
  1371.                                         temp_3_digit_prime *= 10;
  1372.                                         temp_3_digit_prime += Authorship_private[read_bookmark + 2];
  1373.                                        
  1374.                                         while(sieve[temp_3_digit_prime] == 1) //Adjusts temp_3_digit_prime for primality (tests current value & searches in pos dir.)
  1375.                                         {       if(temp_3_digit_prime > 999) {temp_3_digit_prime = 997; break;} //If exceeds length of 3, sets it to largest 3-digit prime.
  1376.                                                 temp_3_digit_prime++;
  1377.                                         }
  1378.                                        
  1379.                                         sub_plaintext_SUB2[write_bookmark_SUB2 + 2] = (temp_3_digit_prime % 10); //Writes prime to sub_plaintext_SUB2[].
  1380.                                         temp_3_digit_prime /= 10;
  1381.                                         sub_plaintext_SUB2[write_bookmark_SUB2 + 1] = (temp_3_digit_prime % 10);
  1382.                                         temp_3_digit_prime /= 10;
  1383.                                         sub_plaintext_SUB2[write_bookmark_SUB2] = temp_3_digit_prime;
  1384.                                        
  1385.                                         write_bookmark_SUB2 += 3;
  1386.                                         read_bookmark += 3;
  1387.                                         continue;
  1388.                                 }
  1389.                                
  1390.                                 if(prime_lengths_in_order_SUB2[a] == 4) //Randomly generates a four-digit prime.
  1391.                                 {       int temp_4_digit_prime;
  1392.                                         temp_4_digit_prime = Authorship_private[read_bookmark]; //Unloads 4 array elements to make one integer.
  1393.                                         if(temp_4_digit_prime == 0) {temp_4_digit_prime++;}
  1394.                                         temp_4_digit_prime *= 10;
  1395.                                         temp_4_digit_prime += Authorship_private[read_bookmark + 1];
  1396.                                         temp_4_digit_prime *= 10;
  1397.                                         temp_4_digit_prime += Authorship_private[read_bookmark + 2];
  1398.                                         temp_4_digit_prime *= 10;
  1399.                                         temp_4_digit_prime += Authorship_private[read_bookmark + 3];
  1400.                                        
  1401.                                         while(sieve[temp_4_digit_prime] == 1) //Adjusts temp_4_digit_prime for primality (tests current value & searches in pos dir.)
  1402.                                         {       if(temp_4_digit_prime > 9999) {temp_4_digit_prime = 9973; break;} //If exceeds length of 4, sets it to largest 4-digit prime.
  1403.                                                 temp_4_digit_prime++;
  1404.                                         }
  1405.                                        
  1406.                                         sub_plaintext_SUB2[write_bookmark_SUB2 + 3] = (temp_4_digit_prime % 10); //Writes prime to sub_plaintext_SUB2[].
  1407.                                         temp_4_digit_prime /= 10;
  1408.                                         sub_plaintext_SUB2[write_bookmark_SUB2 + 2] = (temp_4_digit_prime % 10);
  1409.                                         temp_4_digit_prime /= 10;
  1410.                                         sub_plaintext_SUB2[write_bookmark_SUB2 + 1] = (temp_4_digit_prime % 10);
  1411.                                         temp_4_digit_prime /= 10;
  1412.                                         sub_plaintext_SUB2[write_bookmark_SUB2] = temp_4_digit_prime;
  1413.                                        
  1414.                                         write_bookmark_SUB2 += 4;
  1415.                                         read_bookmark += 4;
  1416.                                         continue;
  1417.                                 }
  1418.                                
  1419.                                 if(prime_lengths_in_order_SUB2[a] == 5) //Randomly generates a five-digit prime.
  1420.                                 {       int temp_5_digit_prime;
  1421.                                         temp_5_digit_prime = Authorship_private[read_bookmark]; //Unloads 5 array elements to make one integer.
  1422.                                         if(temp_5_digit_prime == 0) {temp_5_digit_prime++;}
  1423.                                         temp_5_digit_prime *= 10;
  1424.                                         temp_5_digit_prime += Authorship_private[read_bookmark + 1];
  1425.                                         temp_5_digit_prime *= 10;
  1426.                                         temp_5_digit_prime += Authorship_private[read_bookmark + 2];
  1427.                                         temp_5_digit_prime *= 10;
  1428.                                         temp_5_digit_prime += Authorship_private[read_bookmark + 3];
  1429.                                         temp_5_digit_prime *= 10;
  1430.                                         temp_5_digit_prime += Authorship_private[read_bookmark + 4];
  1431.                                        
  1432.                                         while(sieve[temp_5_digit_prime] == 1) //Adjusts temp_5_digit_prime for primality (tests current value & searches in pos dir.)
  1433.                                         {       if(temp_5_digit_prime > 99999) {temp_5_digit_prime = 99991; break;} //If exceeds length of 5, sets it to largest 5-digit prime.
  1434.                                                 temp_5_digit_prime++;
  1435.                                         }
  1436.                                        
  1437.                                         sub_plaintext_SUB2[write_bookmark_SUB2 + 4] = (temp_5_digit_prime % 10); //Writes prime to sub_plaintext_SUB2[].
  1438.                                         temp_5_digit_prime /= 10;
  1439.                                         sub_plaintext_SUB2[write_bookmark_SUB2 + 3] = (temp_5_digit_prime % 10);
  1440.                                         temp_5_digit_prime /= 10;
  1441.                                         sub_plaintext_SUB2[write_bookmark_SUB2 + 2] = (temp_5_digit_prime % 10);
  1442.                                         temp_5_digit_prime /= 10;
  1443.                                         sub_plaintext_SUB2[write_bookmark_SUB2 + 1] = (temp_5_digit_prime % 10);
  1444.                                         temp_5_digit_prime /= 10;
  1445.                                         sub_plaintext_SUB2[write_bookmark_SUB2] = temp_5_digit_prime;
  1446.                                        
  1447.                                         write_bookmark_SUB2 += 5;
  1448.                                         read_bookmark += 5;
  1449.                                         continue;
  1450.                                 }
  1451.                         }
  1452.                        
  1453.                         for(int a = 0; a < 2000; a++) //Generates second sub-ciphertext of current function and writes it to Authorship_private[].
  1454.                         {       Authorship_private[write_bookmark] = sub_key[a];
  1455.                                 Authorship_private[write_bookmark] += sub_plaintext_SUB2[a];
  1456.                                 Authorship_private[write_bookmark] %= 10;
  1457.                                 write_bookmark++;
  1458.                         }
  1459.                        
  1460.                         Authorship_private[write_bookmark] = '.'; //Separates the entry in Authorship_private[] from the next by one dot because
  1461.                         write_bookmark++;                         //the quantity of contiguous primes is not fixed in length. All entries are separated.
  1462.                        
  1463.                         for(int a = 0; a < 1998; a++) //Transformation determinant transforms sub-key at current stage (preparation for sub-function 3.)
  1464.                         {       sub_key[a] += transformation_determinant[a];
  1465.                                 sub_key[a] = ((sub_key[a] + transformation_determinant[a + 2]) % 10); //[a + 2] means do up to 1997 or seg fault.
  1466.                         }
  1467.                         sub_key[1998] = ((sub_key[1998] + transformation_determinant[1005]) % 10); //Last two elements were not transformed so here it is.
  1468.                         sub_key[1999] = ((sub_key[1999] + transformation_determinant[1010]) % 10);
  1469.                        
  1470.                         for(int a = 0; a < 200; a++) //Additional constructive transformation of sub_key[] based on the extracted 200 seeds from transformation_determinant[].
  1471.                         {       srand(assembled_seed_for_transformation[a]); //WRITES ALTERNATING BETWEEN LEFT TO RIGHT & RIGHT TO LEFT. Alternation is based on the 200 seeds.
  1472.                                
  1473.                                 if((assembled_seed_for_transformation[a] % 2) == 0)
  1474.                                 {       for(int b = 0; b < 2000; b++) //WRITES LEFT TO RIGHT.
  1475.                                         {       sub_key[b] = (sub_key[b] + (rand() % 10));
  1476.                                                 sub_key[b] %= 10;
  1477.                                         }
  1478.                                 }
  1479.                                 else
  1480.                                 {       for(int b = 1999; b >= 0; b--) //WRITES RIGHT TO LEFT.
  1481.                                         {       sub_key[b] = (sub_key[b] + (rand() % 10));
  1482.                                                 sub_key[b] %= 10;
  1483.                                         }
  1484.                                 }
  1485.                         }
  1486.                         //(2nd of 5 total transformations per function.) Each one is different.
  1487.                        
  1488.                        
  1489.                        
  1490.                        
  1491.                        
  1492.                         //The following block-bunch generates sub-function 3 for the current function. (Cool zone.)
  1493.                         for(int a = 0; a < 2000; a++) //Generates third sub-ciphertext of current function and writes it to Authorship_private[].
  1494.                         {       Authorship_private[write_bookmark] = sub_key[a];
  1495.                                 Authorship_private[write_bookmark] += Authorship_private[read_bookmark];
  1496.                                 Authorship_private[write_bookmark] %= 10;
  1497.                                 read_bookmark++;
  1498.                                 write_bookmark++;
  1499.                         }
  1500.                        
  1501.                         Authorship_private[write_bookmark] = '.'; //Separates the entry in Authorship_private[] from the next by one dot because
  1502.                         write_bookmark++;                         //the quantity of contiguous primes is not fixed in length. All entries are separated.
  1503.                        
  1504.                        
  1505.                         for(int a = 0; a < 1997; a++) //Transformation determinant transforms sub-key at current stage (preparation for sub-function 4.)
  1506.                         {       sub_key[a] += transformation_determinant[a];
  1507.                                 sub_key[a] = ((sub_key[a] + transformation_determinant[a + 3]) % 10); //[a + 3] means do up to 1996 or seg fault.
  1508.                         }
  1509.                         sub_key[1997] = ((sub_key[1997] + transformation_determinant[1015]) % 10); //Last three elements were not transformed so here it is.
  1510.                         sub_key[1998] = ((sub_key[1998] + transformation_determinant[1020]) % 10);
  1511.                         sub_key[1999] = ((sub_key[1999] + transformation_determinant[1025]) % 10);
  1512.                        
  1513.                         for(int a = 0; a < 200; a++) //Additional constructive transformation of sub_key[] based on the extracted 200 seeds from transformation_determinant[].
  1514.                         {       srand(assembled_seed_for_transformation[a]); //WRITES ALTERNATING BETWEEN LEFT TO RIGHT & RIGHT TO LEFT. Alternation is based on the 200 seeds.
  1515.                                
  1516.                                 if((assembled_seed_for_transformation[a] % 2) == 0)
  1517.                                 {       for(int b = 0; b < 2000; b++) //WRITES LEFT TO RIGHT.
  1518.                                         {       sub_key[b] = (sub_key[b] + (rand() % 10));
  1519.                                                 sub_key[b] %= 10;
  1520.                                         }
  1521.                                 }
  1522.                                 else
  1523.                                 {       for(int b = 1999; b >= 0; b--) //WRITES RIGHT TO LEFT.
  1524.                                         {       sub_key[b] = (sub_key[b] + (rand() % 10));
  1525.                                                 sub_key[b] %= 10;
  1526.                                         }
  1527.                                 }
  1528.                         }
  1529.                         //(3rd of 5 total transformations per function.) Each one is different.
  1530.                        
  1531.                        
  1532.                        
  1533.                        
  1534.                        
  1535.                         //The following block-bunch generates sub-function 4 for the current function. (Hot zone.)
  1536.                         int sub_plaintext_SUB4[2000];
  1537.                         int prime_lengths_in_order_SUB4[1000]; //Expected contiguous primes: ~667.
  1538.                        
  1539.                         int length_sum_SUB4 = 0;
  1540.                         int element_SUB4 = 0; //Begins writing to prime_lengths_in_order_SUB4[] from element 0 (basic counter.)
  1541.                         while(length_sum_SUB4 < 2000)
  1542.                         {       if(Authorship_private[read_bookmark] < 5) {     Authorship_private[read_bookmark]++;} //Reassignes (0=1,1=2,2=3,3=4,4=5.)
  1543.                                 else //Assignes 5 to: 1, 6 to: 2, 7 to: 3, 8 to: 4, and 9 to: 5. (All prime lengths must be 1-5.)
  1544.                                 {       Authorship_private[read_bookmark] += 16;
  1545.                                         Authorship_private[read_bookmark] %= 10; //Example: 7: (7+16) = 23, 23 mod 10 = 3. Seven is now 3.
  1546.                                 }
  1547.                                
  1548.                                 length_sum_SUB4 += Authorship_private[read_bookmark];
  1549.                                 prime_lengths_in_order_SUB4[element_SUB4] = Authorship_private[read_bookmark]; //Prime lengths are recorded in
  1550.                                 element_SUB4++; //prime_lengths_in_order_SUB4[] so as to later append it near the current ciphertext when complete.
  1551.                                 read_bookmark++; //    ...(Written to Authorship_private[].)
  1552.                         }
  1553.                        
  1554.                         element_SUB4--;
  1555.                         if(length_sum_SUB4 > 2000) //Subtracts from last entry in prime_lengths_in_order_SUB4[] so as to ensure sum(entries) = 2,000.
  1556.                         {       int overflow = (length_sum_SUB4 % 10);
  1557.                                 prime_lengths_in_order_SUB4[element_SUB4] -= overflow;
  1558.                         }
  1559.                        
  1560.                         int write_bookmark_SUB4 = 0;
  1561.                         for(int a = 0; a <= element_SUB4; a++) //Genetates primes of corresponding length & writes them to sub_plaintext_SUB4[].
  1562.                         {       if(prime_lengths_in_order_SUB4[a] == 1) //Randomly generates a single-digit prime.
  1563.                                 {       if(Authorship_private[read_bookmark] < 5)
  1564.                                         {       if(Authorship_private[read_bookmark + 1] < 5) {sub_plaintext_SUB4[write_bookmark_SUB4] = 2;} //The prime 2.
  1565.                                                 else {sub_plaintext_SUB4[write_bookmark_SUB4] = 3;} //The prime 3.
  1566.                                         }
  1567.                                        
  1568.                                         else
  1569.                                         {       if(Authorship_private[read_bookmark + 1] < 5) {sub_plaintext_SUB4[write_bookmark_SUB4] = 5;} //The prime 5.
  1570.                                                 else {sub_plaintext_SUB4[write_bookmark_SUB4] = 7;} //The prime 7.
  1571.                                         }
  1572.                                        
  1573.                                         write_bookmark_SUB4++;
  1574.                                         read_bookmark += 2;
  1575.                                         continue;
  1576.                                 }
  1577.                                
  1578.                                 if(prime_lengths_in_order_SUB4[a] == 2) //Randomly generates a two-digit prime.
  1579.                                 {       int temp_2_digit_prime;
  1580.                                         temp_2_digit_prime = Authorship_private[read_bookmark]; //Unloads 2 array elements to make one integer.
  1581.                                         if(temp_2_digit_prime == 0) {temp_2_digit_prime++;}
  1582.                                         temp_2_digit_prime *= 10;
  1583.                                         temp_2_digit_prime += Authorship_private[read_bookmark + 1];
  1584.                                        
  1585.                                         while(sieve[temp_2_digit_prime] == 1) //Adjusts temp_2_digit_prime for primality (tests current value & searches in pos dir.)
  1586.                                         {       if(temp_2_digit_prime > 99) {temp_2_digit_prime = 97; break;} //If exceeds length of 2, sets it to largest 2-digit prime.
  1587.                                                 temp_2_digit_prime++;
  1588.                                         }
  1589.                                        
  1590.                                         sub_plaintext_SUB4[write_bookmark_SUB4 + 1] = (temp_2_digit_prime % 10); //Writes prime to sub_plaintext_SUB4[].
  1591.                                         temp_2_digit_prime /= 10;
  1592.                                         sub_plaintext_SUB4[write_bookmark_SUB4] = temp_2_digit_prime;
  1593.                                        
  1594.                                         write_bookmark_SUB4 += 2;
  1595.                                         read_bookmark += 2;
  1596.                                         continue;
  1597.                                 }
  1598.                                
  1599.                                 if(prime_lengths_in_order_SUB4[a] == 3) //Randomly generates a three-digit prime.
  1600.                                 {       int temp_3_digit_prime;
  1601.                                         temp_3_digit_prime = Authorship_private[read_bookmark]; //Unloads 3 array elements to make one integer.
  1602.                                         if(temp_3_digit_prime == 0) {temp_3_digit_prime++;}
  1603.                                         temp_3_digit_prime *= 10;
  1604.                                         temp_3_digit_prime += Authorship_private[read_bookmark + 1];
  1605.                                         temp_3_digit_prime *= 10;
  1606.                                         temp_3_digit_prime += Authorship_private[read_bookmark + 2];
  1607.                                        
  1608.                                         while(sieve[temp_3_digit_prime] == 1) //Adjusts temp_3_digit_prime for primality (tests current value & searches in pos dir.)
  1609.                                         {       if(temp_3_digit_prime > 999) {temp_3_digit_prime = 997; break;} //If exceeds length of 3, sets it to largest 3-digit prime.
  1610.                                                 temp_3_digit_prime++;
  1611.                                         }
  1612.                                        
  1613.                                         sub_plaintext_SUB4[write_bookmark_SUB4 + 2] = (temp_3_digit_prime % 10); //Writes prime to sub_plaintext_SUB4[].
  1614.                                         temp_3_digit_prime /= 10;
  1615.                                         sub_plaintext_SUB4[write_bookmark_SUB4 + 1] = (temp_3_digit_prime % 10);
  1616.                                         temp_3_digit_prime /= 10;
  1617.                                         sub_plaintext_SUB4[write_bookmark_SUB4] = temp_3_digit_prime;
  1618.                                        
  1619.                                         write_bookmark_SUB4 += 3;
  1620.                                         read_bookmark += 3;
  1621.                                         continue;
  1622.                                 }
  1623.                                
  1624.                                 if(prime_lengths_in_order_SUB4[a] == 4) //Randomly generates a four-digit prime.
  1625.                                 {       int temp_4_digit_prime;
  1626.                                         temp_4_digit_prime = Authorship_private[read_bookmark]; //Unloads 4 array elements to make one integer.
  1627.                                         if(temp_4_digit_prime == 0) {temp_4_digit_prime++;}
  1628.                                         temp_4_digit_prime *= 10;
  1629.                                         temp_4_digit_prime += Authorship_private[read_bookmark + 1];
  1630.                                         temp_4_digit_prime *= 10;
  1631.                                         temp_4_digit_prime += Authorship_private[read_bookmark + 2];
  1632.                                         temp_4_digit_prime *= 10;
  1633.                                         temp_4_digit_prime += Authorship_private[read_bookmark + 3];
  1634.                                        
  1635.                                         while(sieve[temp_4_digit_prime] == 1) //Adjusts temp_4_digit_prime for primality (tests current value & searches in pos dir.)
  1636.                                         {       if(temp_4_digit_prime > 9999) {temp_4_digit_prime = 9973; break;} //If exceeds length of 4, sets it to largest 4-digit prime.
  1637.                                                 temp_4_digit_prime++;
  1638.                                         }
  1639.                                        
  1640.                                         sub_plaintext_SUB4[write_bookmark_SUB4 + 3] = (temp_4_digit_prime % 10); //Writes prime to sub_plaintext_SUB4[].
  1641.                                         temp_4_digit_prime /= 10;
  1642.                                         sub_plaintext_SUB4[write_bookmark_SUB4 + 2] = (temp_4_digit_prime % 10);
  1643.                                         temp_4_digit_prime /= 10;
  1644.                                         sub_plaintext_SUB4[write_bookmark_SUB4 + 1] = (temp_4_digit_prime % 10);
  1645.                                         temp_4_digit_prime /= 10;
  1646.                                         sub_plaintext_SUB4[write_bookmark_SUB4] = temp_4_digit_prime;
  1647.                                        
  1648.                                         write_bookmark_SUB4 += 4;
  1649.                                         read_bookmark += 4;
  1650.                                         continue;
  1651.                                 }
  1652.                                
  1653.                                 if(prime_lengths_in_order_SUB4[a] == 5) //Randomly generates a five-digit prime.
  1654.                                 {       int temp_5_digit_prime;
  1655.                                         temp_5_digit_prime = Authorship_private[read_bookmark]; //Unloads 5 array elements to make one integer.
  1656.                                         if(temp_5_digit_prime == 0) {temp_5_digit_prime++;}
  1657.                                         temp_5_digit_prime *= 10;
  1658.                                         temp_5_digit_prime += Authorship_private[read_bookmark + 1];
  1659.                                         temp_5_digit_prime *= 10;
  1660.                                         temp_5_digit_prime += Authorship_private[read_bookmark + 2];
  1661.                                         temp_5_digit_prime *= 10;
  1662.                                         temp_5_digit_prime += Authorship_private[read_bookmark + 3];
  1663.                                         temp_5_digit_prime *= 10;
  1664.                                         temp_5_digit_prime += Authorship_private[read_bookmark + 4];
  1665.                                        
  1666.                                         while(sieve[temp_5_digit_prime] == 1) //Adjusts temp_5_digit_prime for primality (tests current value & searches in pos dir.)
  1667.                                         {       if(temp_5_digit_prime > 99999) {temp_5_digit_prime = 99991; break;} //If exceeds length of 5, sets it to largest 5-digit prime.
  1668.                                                 temp_5_digit_prime++;
  1669.                                         }
  1670.                                        
  1671.                                         sub_plaintext_SUB4[write_bookmark_SUB4 + 4] = (temp_5_digit_prime % 10); //Writes prime to sub_plaintext_SUB4[].
  1672.                                         temp_5_digit_prime /= 10;
  1673.                                         sub_plaintext_SUB4[write_bookmark_SUB4 + 3] = (temp_5_digit_prime % 10);
  1674.                                         temp_5_digit_prime /= 10;
  1675.                                         sub_plaintext_SUB4[write_bookmark_SUB4 + 2] = (temp_5_digit_prime % 10);
  1676.                                         temp_5_digit_prime /= 10;
  1677.                                         sub_plaintext_SUB4[write_bookmark_SUB4 + 1] = (temp_5_digit_prime % 10);
  1678.                                         temp_5_digit_prime /= 10;
  1679.                                         sub_plaintext_SUB4[write_bookmark_SUB4] = temp_5_digit_prime;
  1680.                                        
  1681.                                         write_bookmark_SUB4 += 5;
  1682.                                         read_bookmark += 5;
  1683.                                         continue;
  1684.                                 }
  1685.                         }
  1686.                        
  1687.                         for(int a = 0; a < 2000; a++) //Generates fourth sub-ciphertext of current function and writes it to Authorship_private[].
  1688.                         {       Authorship_private[write_bookmark] = sub_key[a];
  1689.                                 Authorship_private[write_bookmark] += sub_plaintext_SUB4[a];
  1690.                                 Authorship_private[write_bookmark] %= 10;
  1691.                                 write_bookmark++;
  1692.                         }
  1693.                        
  1694.                         Authorship_private[write_bookmark] = '.'; //Separates the entry in Authorship_private[] from the next by one dot because
  1695.                         write_bookmark++;                         //the quantity of contiguous primes is not fixed in length. All entries are separated.
  1696.                        
  1697.                         for(int a = 0; a < 1996; a++) //Transformation determinant transforms sub-key at current stage (preparation for sub-function 5.)
  1698.                         {       sub_key[a] += transformation_determinant[a];
  1699.                                 sub_key[a] = ((sub_key[a] + transformation_determinant[a + 4]) % 10); //[a + 4] means do up to 1995 or seg fault.
  1700.                         }
  1701.                         sub_key[1996] = ((sub_key[1996] + transformation_determinant[1030]) % 10); //Last four elements were not transformed so here it is.
  1702.                         sub_key[1997] = ((sub_key[1997] + transformation_determinant[1035]) % 10);
  1703.                         sub_key[1998] = ((sub_key[1998] + transformation_determinant[1040]) % 10);
  1704.                         sub_key[1999] = ((sub_key[1999] + transformation_determinant[1045]) % 10);
  1705.                        
  1706.                         for(int a = 0; a < 200; a++) //Additional constructive transformation of sub_key[] based on the extracted 200 seeds from transformation_determinant[].
  1707.                         {       srand(assembled_seed_for_transformation[a]); //WRITES ALTERNATING BETWEEN LEFT TO RIGHT & RIGHT TO LEFT. Alternation is based on the 200 seeds.
  1708.                                
  1709.                                 if((assembled_seed_for_transformation[a] % 2) == 0)
  1710.                                 {       for(int b = 0; b < 2000; b++) //WRITES LEFT TO RIGHT.
  1711.                                         {       sub_key[b] = (sub_key[b] + (rand() % 10));
  1712.                                                 sub_key[b] %= 10;
  1713.                                         }
  1714.                                 }
  1715.                                 else
  1716.                                 {       for(int b = 1999; b >= 0; b--) //WRITES RIGHT TO LEFT.
  1717.                                         {       sub_key[b] = (sub_key[b] + (rand() % 10));
  1718.                                                 sub_key[b] %= 10;
  1719.                                         }
  1720.                                 }
  1721.                         }
  1722.                         //(4th of 5 total transformations per function.) Each one is different.
  1723.                        
  1724.                        
  1725.                        
  1726.                        
  1727.                        
  1728.                         //The following block-bunch generates sub-function 5 for the current function. (Cool zone.)
  1729.                         for(int a = 0; a < 2000; a++) //Generates fifth sub-ciphertext of current function and writes it to Authorship_private[].
  1730.                         {       Authorship_private[write_bookmark] = sub_key[a];
  1731.                                 Authorship_private[write_bookmark] += Authorship_private[read_bookmark];
  1732.                                 Authorship_private[write_bookmark] %= 10;
  1733.                                 read_bookmark++;
  1734.                                 write_bookmark++;
  1735.                         }
  1736.                        
  1737.                         Authorship_private[write_bookmark] = '.'; //Separates the entry in Authorship_private[] from the next by one dot because
  1738.                         write_bookmark++;                         //the quantity of contiguous primes is not fixed in length. All entries are separated.
  1739.                        
  1740.                         for(int a = 0; a < 1995; a++) //Transformation determinant transforms sub-key at current stage (preparation for sub-function 6.)
  1741.                         {       sub_key[a] += transformation_determinant[a];
  1742.                                 sub_key[a] = ((sub_key[a] + transformation_determinant[a + 5]) % 10); //[a + 5] means do up to 1994 or seg fault.
  1743.                         }
  1744.                         sub_key[1995] = ((sub_key[1995] + transformation_determinant[1050]) % 10); //Last five elements were not transformed so here it is.
  1745.                         sub_key[1996] = ((sub_key[1996] + transformation_determinant[1055]) % 10);
  1746.                         sub_key[1997] = ((sub_key[1997] + transformation_determinant[1060]) % 10);
  1747.                         sub_key[1998] = ((sub_key[1998] + transformation_determinant[1065]) % 10);
  1748.                         sub_key[1999] = ((sub_key[1999] + transformation_determinant[1070]) % 10);
  1749.                        
  1750.                         for(int a = 0; a < 200; a++) //Additional constructive transformation of sub_key[] based on the extracted 200 seeds from transformation_determinant[].
  1751.                         {       srand(assembled_seed_for_transformation[a]); //WRITES ALTERNATING BETWEEN LEFT TO RIGHT & RIGHT TO LEFT. Alternation is based on the 200 seeds.
  1752.                                
  1753.                                 if((assembled_seed_for_transformation[a] % 2) == 0)
  1754.                                 {       for(int b = 0; b < 2000; b++) //WRITES LEFT TO RIGHT.
  1755.                                         {       sub_key[b] = (sub_key[b] + (rand() % 10));
  1756.                                                 sub_key[b] %= 10;
  1757.                                         }
  1758.                                 }
  1759.                                 else
  1760.                                 {       for(int b = 1999; b >= 0; b--) //WRITES RIGHT TO LEFT.
  1761.                                         {       sub_key[b] = (sub_key[b] + (rand() % 10));
  1762.                                                 sub_key[b] %= 10;
  1763.                                         }
  1764.                                 }
  1765.                         }
  1766.                         //(5th of 5 total transformations per function.) Each one is different.
  1767.                        
  1768.                        
  1769.                        
  1770.                        
  1771.                        
  1772.                         //The following block-bunch generates sub-function 6 for the current function. (Hot zone.)
  1773.                         int sub_plaintext_SUB6[2000];
  1774.                         int prime_lengths_in_order_SUB6[1000]; //Expected contiguous primes: ~667.
  1775.                        
  1776.                         int length_sum_SUB6 = 0;
  1777.                         int element_SUB6 = 0; //Begins writing to prime_lengths_in_order_SUB6[] from element 0 (basic counter.)
  1778.                         while(length_sum_SUB6 < 2000)
  1779.                         {       if(Authorship_private[read_bookmark] < 5) {     Authorship_private[read_bookmark]++;} //Reassignes (0=1,1=2,2=3,3=4,4=5.)
  1780.                                 else //Assignes 5 to: 1, 6 to: 2, 7 to: 3, 8 to: 4, and 9 to: 5. (All prime lengths must be 1-5.)
  1781.                                 {       Authorship_private[read_bookmark] += 16;
  1782.                                         Authorship_private[read_bookmark] %= 10; //Example: 7: (7+16) = 23, 23 mod 10 = 3. Seven is now 3.
  1783.                                 }
  1784.                                
  1785.                                 length_sum_SUB6 += Authorship_private[read_bookmark];
  1786.                                 prime_lengths_in_order_SUB6[element_SUB6] = Authorship_private[read_bookmark]; //Prime lengths are recorded in
  1787.                                 element_SUB6++; //prime_lengths_in_order_SUB6[] so as to later append it near the current ciphertext when complete.
  1788.                                 read_bookmark++; //    ...(Written to Authorship_private[].)
  1789.                         }
  1790.                        
  1791.                         element_SUB6--;
  1792.                         if(length_sum_SUB6 > 2000) //Subtracts from last entry in prime_lengths_in_order_SUB6[] so as to ensure sum(entries) = 2,000.
  1793.                         {       int overflow = (length_sum_SUB6 % 10);
  1794.                                 prime_lengths_in_order_SUB6[element_SUB6] -= overflow;
  1795.                         }
  1796.                        
  1797.                         int write_bookmark_SUB6 = 0;
  1798.                         for(int a = 0; a <= element_SUB6; a++) //Genetates primes of corresponding length & writes them to sub_plaintext_SUB6[].
  1799.                         {       if(prime_lengths_in_order_SUB6[a] == 1) //Randomly generates a single-digit prime.
  1800.                                 {       if(Authorship_private[read_bookmark] < 5)
  1801.                                         {       if(Authorship_private[read_bookmark + 1] < 5) {sub_plaintext_SUB6[write_bookmark_SUB6] = 2;} //The prime 2.
  1802.                                                 else {sub_plaintext_SUB6[write_bookmark_SUB6] = 3;} //The prime 3.
  1803.                                         }
  1804.                                        
  1805.                                         else
  1806.                                         {       if(Authorship_private[read_bookmark + 1] < 5) {sub_plaintext_SUB6[write_bookmark_SUB6] = 5;} //The prime 5.
  1807.                                                 else {sub_plaintext_SUB6[write_bookmark_SUB6] = 7;} //The prime 7.
  1808.                                         }
  1809.                                        
  1810.                                         write_bookmark_SUB6++;
  1811.                                         read_bookmark += 2;
  1812.                                         continue;
  1813.                                 }
  1814.                                
  1815.                                 if(prime_lengths_in_order_SUB6[a] == 2) //Randomly generates a two-digit prime.
  1816.                                 {       int temp_2_digit_prime;
  1817.                                         temp_2_digit_prime = Authorship_private[read_bookmark]; //Unloads 2 array elements to make one integer.
  1818.                                         if(temp_2_digit_prime == 0) {temp_2_digit_prime++;}
  1819.                                         temp_2_digit_prime *= 10;
  1820.                                         temp_2_digit_prime += Authorship_private[read_bookmark + 1];
  1821.                                        
  1822.                                         while(sieve[temp_2_digit_prime] == 1) //Adjusts temp_2_digit_prime for primality (tests current value & searches in pos dir.)
  1823.                                         {       if(temp_2_digit_prime > 99) {temp_2_digit_prime = 97; break;} //If exceeds length of 2, sets it to largest 2-digit prime.
  1824.                                                 temp_2_digit_prime++;
  1825.                                         }
  1826.                                        
  1827.                                         sub_plaintext_SUB6[write_bookmark_SUB6 + 1] = (temp_2_digit_prime % 10); //Writes prime to sub_plaintext_SUB6[].
  1828.                                         temp_2_digit_prime /= 10;
  1829.                                         sub_plaintext_SUB6[write_bookmark_SUB6] = temp_2_digit_prime;
  1830.                                        
  1831.                                         write_bookmark_SUB6 += 2;
  1832.                                         read_bookmark += 2;
  1833.                                         continue;
  1834.                                 }
  1835.                                
  1836.                                 if(prime_lengths_in_order_SUB6[a] == 3) //Randomly generates a three-digit prime.
  1837.                                 {       int temp_3_digit_prime;
  1838.                                         temp_3_digit_prime = Authorship_private[read_bookmark]; //Unloads 3 array elements to make one integer.
  1839.                                         if(temp_3_digit_prime == 0) {temp_3_digit_prime++;}
  1840.                                         temp_3_digit_prime *= 10;
  1841.                                         temp_3_digit_prime += Authorship_private[read_bookmark + 1];
  1842.                                         temp_3_digit_prime *= 10;
  1843.                                         temp_3_digit_prime += Authorship_private[read_bookmark + 2];
  1844.                                        
  1845.                                         while(sieve[temp_3_digit_prime] == 1) //Adjusts temp_3_digit_prime for primality (tests current value & searches in pos dir.)
  1846.                                         {       if(temp_3_digit_prime > 999) {temp_3_digit_prime = 997; break;} //If exceeds length of 3, sets it to largest 3-digit prime.
  1847.                                                 temp_3_digit_prime++;
  1848.                                         }
  1849.                                        
  1850.                                         sub_plaintext_SUB6[write_bookmark_SUB6 + 2] = (temp_3_digit_prime % 10); //Writes prime to sub_plaintext_SUB6[].
  1851.                                         temp_3_digit_prime /= 10;
  1852.                                         sub_plaintext_SUB6[write_bookmark_SUB6 + 1] = (temp_3_digit_prime % 10);
  1853.                                         temp_3_digit_prime /= 10;
  1854.                                         sub_plaintext_SUB6[write_bookmark_SUB6] = temp_3_digit_prime;
  1855.                                        
  1856.                                         write_bookmark_SUB6 += 3;
  1857.                                         read_bookmark += 3;
  1858.                                         continue;
  1859.                                 }
  1860.                                
  1861.                                 if(prime_lengths_in_order_SUB6[a] == 4) //Randomly generates a four-digit prime.
  1862.                                 {       int temp_4_digit_prime;
  1863.                                         temp_4_digit_prime = Authorship_private[read_bookmark]; //Unloads 4 array elements to make one integer.
  1864.                                         if(temp_4_digit_prime == 0) {temp_4_digit_prime++;}
  1865.                                         temp_4_digit_prime *= 10;
  1866.                                         temp_4_digit_prime += Authorship_private[read_bookmark + 1];
  1867.                                         temp_4_digit_prime *= 10;
  1868.                                         temp_4_digit_prime += Authorship_private[read_bookmark + 2];
  1869.                                         temp_4_digit_prime *= 10;
  1870.                                         temp_4_digit_prime += Authorship_private[read_bookmark + 3];
  1871.                                        
  1872.                                         while(sieve[temp_4_digit_prime] == 1) //Adjusts temp_4_digit_prime for primality (tests current value & searches in pos dir.)
  1873.                                         {       if(temp_4_digit_prime > 9999) {temp_4_digit_prime = 9973; break;} //If exceeds length of 4, sets it to largest 4-digit prime.
  1874.                                                 temp_4_digit_prime++;
  1875.                                         }
  1876.                                        
  1877.                                         sub_plaintext_SUB6[write_bookmark_SUB6 + 3] = (temp_4_digit_prime % 10); //Writes prime to sub_plaintext_SUB6[].
  1878.                                         temp_4_digit_prime /= 10;
  1879.                                         sub_plaintext_SUB6[write_bookmark_SUB6 + 2] = (temp_4_digit_prime % 10);
  1880.                                         temp_4_digit_prime /= 10;
  1881.                                         sub_plaintext_SUB6[write_bookmark_SUB6 + 1] = (temp_4_digit_prime % 10);
  1882.                                         temp_4_digit_prime /= 10;
  1883.                                         sub_plaintext_SUB6[write_bookmark_SUB6] = temp_4_digit_prime;
  1884.                                        
  1885.                                         write_bookmark_SUB6 += 4;
  1886.                                         read_bookmark += 4;
  1887.                                         continue;
  1888.                                 }
  1889.                                
  1890.                                 if(prime_lengths_in_order_SUB6[a] == 5) //Randomly generates a five-digit prime.
  1891.                                 {       int temp_5_digit_prime;
  1892.                                         temp_5_digit_prime = Authorship_private[read_bookmark]; //Unloads 5 array elements to make one integer.
  1893.                                         if(temp_5_digit_prime == 0) {temp_5_digit_prime++;}
  1894.                                         temp_5_digit_prime *= 10;
  1895.                                         temp_5_digit_prime += Authorship_private[read_bookmark + 1];
  1896.                                         temp_5_digit_prime *= 10;
  1897.                                         temp_5_digit_prime += Authorship_private[read_bookmark + 2];
  1898.                                         temp_5_digit_prime *= 10;
  1899.                                         temp_5_digit_prime += Authorship_private[read_bookmark + 3];
  1900.                                         temp_5_digit_prime *= 10;
  1901.                                         temp_5_digit_prime += Authorship_private[read_bookmark + 4];
  1902.                                        
  1903.                                         while(sieve[temp_5_digit_prime] == 1) //Adjusts temp_5_digit_prime for primality (tests current value & searches in pos dir.)
  1904.                                         {       if(temp_5_digit_prime > 99999) {temp_5_digit_prime = 99991; break;} //If exceeds length of 5, sets it to largest 5-digit prime.
  1905.                                                 temp_5_digit_prime++;
  1906.                                         }
  1907.                                        
  1908.                                         sub_plaintext_SUB6[write_bookmark_SUB6 + 4] = (temp_5_digit_prime % 10); //Writes prime to sub_plaintext_SUB6[].
  1909.                                         temp_5_digit_prime /= 10;
  1910.                                         sub_plaintext_SUB6[write_bookmark_SUB6 + 3] = (temp_5_digit_prime % 10);
  1911.                                         temp_5_digit_prime /= 10;
  1912.                                         sub_plaintext_SUB6[write_bookmark_SUB6 + 2] = (temp_5_digit_prime % 10);
  1913.                                         temp_5_digit_prime /= 10;
  1914.                                         sub_plaintext_SUB6[write_bookmark_SUB6 + 1] = (temp_5_digit_prime % 10);
  1915.                                         temp_5_digit_prime /= 10;
  1916.                                         sub_plaintext_SUB6[write_bookmark_SUB6] = temp_5_digit_prime;
  1917.                                        
  1918.                                         write_bookmark_SUB6 += 5;
  1919.                                         read_bookmark += 5;
  1920.                                         continue;
  1921.                                 }
  1922.                         }
  1923.                        
  1924.                         for(int a = 0; a < 2000; a++) //Generates sixth sub-ciphertext of current function and writes it to Authorship_private[].
  1925.                         {       Authorship_private[write_bookmark] = sub_key[a];
  1926.                                 Authorship_private[write_bookmark] += sub_plaintext_SUB6[a];
  1927.                                 Authorship_private[write_bookmark] %= 10;
  1928.                                 write_bookmark++;
  1929.                         }
  1930.                        
  1931.                         Authorship_private[write_bookmark] = '.'; //Separates the entry in Authorship_private[] from the next by one dot because
  1932.                         write_bookmark++;                         //the quantity of contiguous primes is not fixed in length. All entries are separated.
  1933.                        
  1934.                        
  1935.                        
  1936.                        
  1937.                        
  1938.                         //The following block-bunch generates the Authorship number dynamically. (Its final form is then produced after the 13,500 functions.)
  1939.                         //This sits here (just after the full function is written to array Authorship_private[]) because now temp_write_bookmark fingerprints the
  1940.                         //function right to left so as to build the Authorship number. Then solution ingredients are appended to the current function.
  1941.                         compression_119[0] += compression_119[99];
  1942.                         compression_119[0] %= 10000000000;
  1943.                        
  1944.                         int temp_write_bookmark;
  1945.                         temp_write_bookmark = (write_bookmark - 2);
  1946.                        
  1947.                         for(int a = 0; a < 100; a++)
  1948.                         {       compression_115[a] += Authorship_private[temp_write_bookmark];
  1949.                                 compression_115[a] *= 5;
  1950.                                 compression_115[a] %= 10000000000;
  1951.                                 temp_write_bookmark -= 115;
  1952.                         }
  1953.                         temp_write_bookmark = (write_bookmark - 2); //Resetting the temporary variable.
  1954.                        
  1955.                         for(int a = 0; a < 100; a++)
  1956.                         {       compression_116[a] += Authorship_private[temp_write_bookmark];
  1957.                                 compression_116[a] *= 6;
  1958.                                 compression_116[a] %= 10000000000;
  1959.                                 temp_write_bookmark -= 116;
  1960.                         }
  1961.                         temp_write_bookmark = (write_bookmark - 2); //Resetting the temporary variable.
  1962.                        
  1963.                         for(int a = 0; a < 100; a++)
  1964.                         {       compression_117[a] += Authorship_private[temp_write_bookmark];
  1965.                                 compression_117[a] *= 7;
  1966.                                 compression_117[a] %= 10000000000;
  1967.                                 temp_write_bookmark -= 117;
  1968.                         }
  1969.                         temp_write_bookmark = (write_bookmark - 2); //Resetting the temporary variable.
  1970.                        
  1971.                         for(int a = 0; a < 100; a++)
  1972.                         {       compression_118[a] += Authorship_private[temp_write_bookmark];
  1973.                                 compression_118[a] *= 8;
  1974.                                 compression_118[a] %= 10000000000;
  1975.                                 temp_write_bookmark -= 118;
  1976.                         }
  1977.                         temp_write_bookmark = (write_bookmark - 2); //Resetting the temporary variable.
  1978.                        
  1979.                         for(int a = 0; a < 100; a++)
  1980.                         {       compression_119[a] += Authorship_private[temp_write_bookmark];
  1981.                                 compression_119[a] *= 9;
  1982.                                 compression_119[a] %= 10000000000;
  1983.                                 temp_write_bookmark -= 119;
  1984.                         }
  1985.                        
  1986.                         //Compression snapshots are active in early stages of Authorship number evolution. They are applied to the compression in the end.
  1987.                         if((f == 1000) || (f == 2000) || (f == 3000) || (f == 4000) || (f == 5000) || (f == 6000) || (f == 7000) || (f == 8000))
  1988.                         {       for(int a = 0; a < 100; a++)
  1989.                                 {       snapshot_115[a] += compression_115[a];
  1990.                                         snapshot_115[a] %= 10000000000; //(10^10, results in last ten digits shown.)
  1991.                                        
  1992.                                         snapshot_116[a] += compression_116[a];
  1993.                                         snapshot_116[a] %= 10000000000;
  1994.                                        
  1995.                                         snapshot_117[a] += compression_117[a];
  1996.                                         snapshot_117[a] %= 10000000000;
  1997.                                        
  1998.                                         snapshot_118[a] += compression_118[a];
  1999.                                         snapshot_118[a] %= 10000000000;
  2000.                                        
  2001.                                         snapshot_119[a] += compression_119[a];
  2002.                                         snapshot_119[a] %= 10000000000;
  2003.                                 }
  2004.                         }
  2005.                        
  2006.                        
  2007.                        
  2008.                        
  2009.                        
  2010.                         //The following block-bunch appends to the current function in Authorship_private[]: solution ingredients.
  2011.                         for(int a = 0; a < 2000; a++) //Writes the transformation determinant.
  2012.                         {       Authorship_private[write_bookmark] = transformation_determinant[a];
  2013.                                 write_bookmark++;
  2014.                         }
  2015.                        
  2016.                         Authorship_private[write_bookmark] = '.'; //Separates the entry in Authorship_private[] from the next by one dot because
  2017.                         write_bookmark++;                         //the quantity of contiguous primes is not fixed in length. All entries are separated.
  2018.                        
  2019.                         for(int a = 0; a < 2000; a++) //Writes the sub-key.
  2020.                         {       Authorship_private[write_bookmark] = temp_sub_key[a];
  2021.                                 write_bookmark++;
  2022.                         }
  2023.                        
  2024.                         Authorship_private[write_bookmark] = '.'; //Separates the entry in Authorship_private[] from the next by one dot because
  2025.                         write_bookmark++;                         //the quantity of contiguous primes is not fixed in length. All entries are separated.
  2026.                        
  2027.                         for(int a = 0; a <= element_SUB2; a++) //Writes the prime_lengths_in_order_SUB2 (hot zone.)
  2028.                         {       Authorship_private[write_bookmark] = prime_lengths_in_order_SUB2[a];
  2029.                                 write_bookmark++;
  2030.                         }
  2031.                        
  2032.                         Authorship_private[write_bookmark] = '.'; //Separates the entry in Authorship_private[] from the next by one dot because
  2033.                         write_bookmark++;                         //the quantity of contiguous primes is not fixed in length. All entries are separated.
  2034.                        
  2035.                         for(int a = 0; a <= element_SUB4; a++) //Writes the prime_lengths_in_order_SUB4 (hot zone.)
  2036.                         {       Authorship_private[write_bookmark] = prime_lengths_in_order_SUB4[a];
  2037.                                 write_bookmark++;
  2038.                         }
  2039.                        
  2040.                         Authorship_private[write_bookmark] = '.'; //Separates the entry in Authorship_private[] from the next by one dot because
  2041.                         write_bookmark++;                         //the quantity of contiguous primes is not fixed in length. All entries are separated.
  2042.                        
  2043.                         for(int a = 0; a <= element_SUB6; a++) //Writes the prime_lengths_in_order_SUB6 (hot zone.)
  2044.                         {       Authorship_private[write_bookmark] = prime_lengths_in_order_SUB6[a];
  2045.                                 write_bookmark++;
  2046.                         }
  2047.                        
  2048.                         Authorship_private[write_bookmark] = '.'; //Separates the entry in Authorship_private[] from the next by one dot because
  2049.                         write_bookmark++;                         //the quantity of contiguous primes is not fixed in length. All entries are separated.
  2050.                        
  2051.                         if((read_bookmark - write_bookmark) < 30000) //Further collision prevention for read/write bookmarks. After each cycle within this
  2052.                         {       read_bookmark += 1000000; //for loop, read_bookmark increases by ~16,000 while write_bookmark increases by ~18,000 and so the
  2053.                         }                             //write_bookmark eventually catches up. This block forces read_bookmark to jump dynamically.
  2054.                                                   //Consider instead making tiny jumps away from write_bookmark--adjusting only by ~2,000 elements forward.
  2055.                                                   //That would be okay because you're just following along with write_bookmark and Authorship_private[]
  2056.                                                   //fits them all just fine. Now consider jumping only once in a while--distancing in bulk. This is no more
  2057.                                                   //a waste of random numbers than making small jumps. The bookmarks simply and smoothly approach
  2058.                                                   //one another over time. All that space between them must exist one way or another--in bulk or in parts.
  2059.                 }
  2060.                
  2061.                
  2062.                
  2063.                
  2064.                
  2065.                 //Loads old file Authorship.private into old[].
  2066.                 static char old[256500000];
  2067.                 in_stream.open("Authorship.private");
  2068.                
  2069.                 for(int a = 0; a < 256500000; a++)
  2070.                 {       in_stream >> old[a];
  2071.                         if(old[a] == '\0') {break;}
  2072.                 }
  2073.                
  2074.                 in_stream.close();
  2075.                
  2076.                
  2077.                
  2078.                
  2079.                
  2080.                 //Overwrites new keys to file Authorship.private including the last dot then the null character.
  2081.                 out_stream.open("Authorship.private");
  2082.                
  2083.                 for(int a = 0; a < write_bookmark; a++)
  2084.                 {       if(Authorship_private[a] == '.') {out_stream << '.';}
  2085.                         else {out_stream << int(Authorship_private[a]);}
  2086.                 }
  2087.                 out_stream << '\0'; //These digits will be loaded into RAM one day, null marks when to stop reading them.
  2088.                
  2089.                 out_stream.close();
  2090.                
  2091.                
  2092.                
  2093.                
  2094.                
  2095.                 //Constructively combines the compression tables. compression_119[] will hold it all.
  2096.                 for(int a = 0; a < 100; a++)
  2097.                 {       compression_119[a] += compression_115[a];
  2098.                         if((compression_119[a] % 2) == 0) {compression_119[a] *= 2;}
  2099.                        
  2100.                         compression_119[a] += compression_116[a];
  2101.                         if((compression_119[a] % 2) == 0) {compression_119[a] *= 3;}
  2102.                        
  2103.                         compression_119[a] += compression_117[a];
  2104.                         if((compression_119[a] % 2) == 0) {compression_119[a] *= 5;}
  2105.                        
  2106.                         compression_119[a] += compression_118[a];
  2107.                         if((compression_119[a] % 2) == 0) {compression_119[a] *= 7;}
  2108.                        
  2109.                         compression_119[a] %= 10000000000; //(10^10, results in last ten digits shown.)
  2110.                 }
  2111.                
  2112.                 //Constructively combines the snapshot tables. snapshot_119[] will hold it all.
  2113.                 for(int a = 0; a < 100; a++)
  2114.                 {       snapshot_119[a] += snapshot_115[a];
  2115.                         if((snapshot_119[a] % 2) == 0) {snapshot_119[a] *= 2;}
  2116.                        
  2117.                         snapshot_119[a] += snapshot_116[a];
  2118.                         if((snapshot_119[a] % 2) == 0) {snapshot_119[a] *= 3;}
  2119.                        
  2120.                         snapshot_119[a] += snapshot_117[a];
  2121.                         if((snapshot_119[a] % 2) == 0) {snapshot_119[a] *= 5;}
  2122.                        
  2123.                         snapshot_119[a] += snapshot_118[a];
  2124.                         if((snapshot_119[a] % 2) == 0) {snapshot_119[a] *= 7;}
  2125.                        
  2126.                         snapshot_119[a] %= 10000000000; //(10^10, results in last ten digits shown.)
  2127.                 }
  2128.                
  2129.                 //Applies the snapshots to the last stage in compression. (As the Authorship number evolved over time, snapshots made a record of its early stages.)
  2130.                 for(int a = 0; a < 100; a++)
  2131.                 {       compression_119[a] += snapshot_119[a];
  2132.                         compression_119[a] %= 10000000000; //(10^10, results in last ten digits shown.)
  2133.                 }
  2134.                
  2135.                 for(int a = 0; a < 100; a++) //Ensures each constituent compression integer is 10 digits long. The Authorship number is now complete.
  2136.                 {       if(compression_119[a]   < 1000000000)
  2137.                         {       compression_119[a] += 1000000000;
  2138.                         }
  2139.                 }
  2140.                
  2141.                
  2142.                
  2143.                
  2144.                
  2145.                 //The following table shows symbol assignment. Every contiguous nine multi-way functions in the list of 13,500 represent something.
  2146.                 //Recall that 5/9 of all special strings of nine are always "1" so as to prevent ambiguity through clever selective censorship.
  2147.                 ///          nine functions     Authorship   user's                   original
  2148.                 ///            solved = 1         number     message                 ASCII # of
  2149.                 /// ref       unsolved = 0       fragment   character                characters
  2150.                 //#  1      0 0 0 0 1 1 1 1 1       00              (blank or space)    (32)
  2151.                 //#  2      0 0 0 1 0 1 1 1 1       01          !                       (33)
  2152.                 //#  3      0 0 0 1 1 0 1 1 1       02          "                       (34)
  2153.                 //#  4      0 0 0 1 1 1 0 1 1       03          #                       (35)
  2154.                 //#  5      0 0 0 1 1 1 1 0 1       04          $                       (36)
  2155.                 //#  6      0 0 0 1 1 1 1 1 0       05          %                       (37)
  2156.                 //#  7      0 0 1 0 0 1 1 1 1       06          &                       (38)
  2157.                 //#  8      0 0 1 0 1 0 1 1 1       07          '                       (39)
  2158.                 //#  9      0 0 1 0 1 1 0 1 1       08          (                       (40)
  2159.                 //# 10      0 0 1 0 1 1 1 0 1       09          )                       (41)
  2160.                 //# 11      0 0 1 0 1 1 1 1 0       10          *                       (42)
  2161.                 //# 12      0 0 1 1 0 0 1 1 1       11          +                       (43)
  2162.                 //# 13      0 0 1 1 0 1 0 1 1       12          ,   (comma)             (44)
  2163.                 //# 14      0 0 1 1 0 1 1 0 1       13          -   (minus)             (45)
  2164.                 //# 15      0 0 1 1 0 1 1 1 0       14          .   (dot)               (46)
  2165.                 //# 16      0 0 1 1 1 0 0 1 1       15          /                       (47)
  2166.                 //# 17      0 0 1 1 1 0 1 0 1       16          0                       (48)
  2167.                 //# 18      0 0 1 1 1 0 1 1 0       17          1   (the number one)    (49)
  2168.                 //# 19      0 0 1 1 1 1 0 0 1       18          2                       (50)
  2169.                 //# 20      0 0 1 1 1 1 0 1 0       19          3                       (51)
  2170.                 //# 21      0 0 1 1 1 1 1 0 0       20          4                       (52)
  2171.                 //# 22      0 1 0 0 0 1 1 1 1       21          5                       (53)
  2172.                 //# 23      0 1 0 0 1 0 1 1 1       22          6                       (54)
  2173.                 //# 24      0 1 0 0 1 1 0 1 1       23          7                       (55)
  2174.                 //# 25      0 1 0 0 1 1 1 0 1       24          8                       (56)
  2175.                 //# 26      0 1 0 0 1 1 1 1 0       25          9                       (57)
  2176.                 //# 27      0 1 0 1 0 0 1 1 1       26          :                       (58)
  2177.                 //# 28      0 1 0 1 0 1 0 1 1       27          ;                       (59)
  2178.                 //# 29      0 1 0 1 0 1 1 0 1       28          <                       (60)
  2179.                 //# 30      0 1 0 1 0 1 1 1 0       29          =                       (61)
  2180.                 //# 31      0 1 0 1 1 0 0 1 1       30          >                       (62)
  2181.                 //# 32      0 1 0 1 1 0 1 0 1       31          ?                       (63)
  2182.                 //# 33      0 1 0 1 1 0 1 1 0       32          @                       (64)
  2183.                 //# 34      0 1 0 1 1 1 0 0 1       33          A                       (65)
  2184.                 //# 35      0 1 0 1 1 1 0 1 0       34          B                       (66)
  2185.                 //# 36      0 1 0 1 1 1 1 0 0       35          C                       (67)
  2186.                 //# 37      0 1 1 0 0 0 1 1 1       36          D                       (68)
  2187.                 //# 38      0 1 1 0 0 1 0 1 1       37          E                       (69)
  2188.                 //# 39      0 1 1 0 0 1 1 0 1       38          F                       (70)
  2189.                 //# 40      0 1 1 0 0 1 1 1 0       39          G                       (71)
  2190.                 //# 41      0 1 1 0 1 0 0 1 1       40          H                       (72)
  2191.                 //# 42      0 1 1 0 1 0 1 0 1       41          I                       (73)
  2192.                 //# 43      0 1 1 0 1 0 1 1 0       42          J                       (74)
  2193.                 //# 44      0 1 1 0 1 1 0 0 1       43          K                       (75)
  2194.                 //# 45      0 1 1 0 1 1 0 1 0       44          L                       (76)
  2195.                 //# 46      0 1 1 0 1 1 1 0 0       45          M                       (77)
  2196.                 //# 47      0 1 1 1 0 0 0 1 1       46          N                       (78)
  2197.                 //# 48      0 1 1 1 0 0 1 0 1       47          O                       (79)
  2198.                 //# 49      0 1 1 1 0 0 1 1 0       48          P                       (80)
  2199.                 //# 50      0 1 1 1 0 1 0 0 1       49          Q                       (81)
  2200.                 //# 51      0 1 1 1 0 1 0 1 0       50          R                       (82)
  2201.                 //# 52      0 1 1 1 0 1 1 0 0       51          S                       (83)
  2202.                 //# 53      0 1 1 1 1 0 0 0 1       52          T                       (84)
  2203.                 //# 54      0 1 1 1 1 0 0 1 0       53          U                       (85)
  2204.                 //# 55      0 1 1 1 1 0 1 0 0       54          V                       (86)
  2205.                 //# 56      0 1 1 1 1 1 0 0 0       55          W                       (87)
  2206.                 //# 57      1 0 0 0 0 1 1 1 1       56          X                       (88)
  2207.                 //# 58      1 0 0 0 1 0 1 1 1       57          Y                       (89)
  2208.                 //# 59      1 0 0 0 1 1 0 1 1       58          Z                       (90)
  2209.                 //# 60      1 0 0 0 1 1 1 0 1       59          [                       (91)
  2210.                 //# 61      1 0 0 0 1 1 1 1 0       60          \                       (92)
  2211.                 //# 62      1 0 0 1 0 0 1 1 1       61          ]                       (93)
  2212.                 //# 63      1 0 0 1 0 1 0 1 1       62          ^                       (94)
  2213.                 //# 64      1 0 0 1 0 1 1 0 1       63          _   (underscore)        (95)
  2214.                 //# 65      1 0 0 1 0 1 1 1 0       64          `   (slant/emphasis)    (96)
  2215.                 //# 66      1 0 0 1 1 0 0 1 1       65          a                       (97)
  2216.                 //# 67      1 0 0 1 1 0 1 0 1       66          b                       (98)
  2217.                 //# 68      1 0 0 1 1 0 1 1 0       67          c                       (99)
  2218.                 //# 69      1 0 0 1 1 1 0 0 1       68          d                      (100)
  2219.                 //# 70      1 0 0 1 1 1 0 1 0       69          e                      (101)
  2220.                 //# 71      1 0 0 1 1 1 1 0 0       70          f                      (102)
  2221.                 //# 72      1 0 1 0 0 0 1 1 1       71          g                      (103)
  2222.                 //# 73      1 0 1 0 0 1 0 1 1       72          h                      (104)
  2223.                 //# 74      1 0 1 0 0 1 1 0 1       73          i                      (105)
  2224.                 //# 75      1 0 1 0 0 1 1 1 0       74          j                      (106)
  2225.                 //# 76      1 0 1 0 1 0 0 1 1       75          k                      (107)
  2226.                 //# 77      1 0 1 0 1 0 1 0 1       76          l   (l as in laminar)  (108)
  2227.                 //# 78      1 0 1 0 1 0 1 1 0       77          m                      (109)
  2228.                 //# 79      1 0 1 0 1 1 0 0 1       78          n                      (110)
  2229.                 //# 80      1 0 1 0 1 1 0 1 0       79          o                      (111)
  2230.                 //# 81      1 0 1 0 1 1 1 0 0       80          p                      (112)
  2231.                 //# 82      1 0 1 1 0 0 0 1 1       81          q                      (113)
  2232.                 //# 83      1 0 1 1 0 0 1 0 1       82          r                      (114)
  2233.                 //# 84      1 0 1 1 0 0 1 1 0       83          s                      (115)
  2234.                 //# 85      1 0 1 1 0 1 0 0 1       84          t                      (116)
  2235.                 //# 86      1 0 1 1 0 1 0 1 0       85          u                      (117)
  2236.                 //# 87      1 0 1 1 0 1 1 0 0       86          v                      (118)
  2237.                 //# 88      1 0 1 1 1 0 0 0 1       87          w                      (119)
  2238.                 //# 89      1 0 1 1 1 0 0 1 0       88          x                      (120)
  2239.                 //# 90      1 0 1 1 1 0 1 0 0       89          y                      (121)
  2240.                 //# 91      1 0 1 1 1 1 0 0 0       90          z                      (122)
  2241.                 //# 92      1 1 0 0 0 0 1 1 1       91          {                      (123)
  2242.                 //# 93      1 1 0 0 0 1 0 1 1       92          |   (Unix pipe)        (124)
  2243.                 //# 94      1 1 0 0 0 1 1 0 1       93          }                      (125)
  2244.                 //# 95      1 1 0 0 0 1 1 1 0       94          ~                      (126) (And this makes 95 printable ASCII characters.)
  2245.                 //# 96      1 1 0 0 1 0 0 1 1       95          no_char
  2246.                 //# 97      1 1 0 0 1 0 1 0 1       96          unassigned
  2247.                 //# 98      1 1 0 0 1 0 1 1 0       97          unassigned
  2248.                 //# 99      1 1 0 0 1 1 0 0 1       98          unassigned
  2249.                 //#100      1 1 0 0 1 1 0 1 0       99          unassigned
  2250.                 //#101      1 1 0 0 1 1 1 0 0       unassigned  unassigned
  2251.                 //#102      1 1 0 1 0 0 0 1 1       unassigned  unassigned
  2252.                 //#103      1 1 0 1 0 0 1 0 1       unassigned  unassigned
  2253.                 //#104      1 1 0 1 0 0 1 1 0       unassigned  unassigned
  2254.                 //#105      1 1 0 1 0 1 0 0 1       unassigned  unassigned
  2255.                 //#106      1 1 0 1 0 1 0 1 0       unassigned  unassigned
  2256.                 //#107      1 1 0 1 0 1 1 0 0       unassigned  unassigned
  2257.                 //#108      1 1 0 1 1 0 0 0 1       unassigned  unassigned
  2258.                 //#109      1 1 0 1 1 0 0 1 0       unassigned  unassigned
  2259.                 //#110      1 1 0 1 1 0 1 0 0       unassigned  unassigned
  2260.                 //#111      1 1 0 1 1 1 0 0 0       unassigned  unassigned
  2261.                 //#112      1 1 1 0 0 0 0 1 1       unassigned  unassigned
  2262.                 //#113      1 1 1 0 0 0 1 0 1       unassigned  unassigned
  2263.                 //#114      1 1 1 0 0 0 1 1 0       unassigned  unassigned
  2264.                 //#115      1 1 1 0 0 1 0 0 1       unassigned  unassigned
  2265.                 //#116      1 1 1 0 0 1 0 1 0       unassigned  unassigned
  2266.                 //#117      1 1 1 0 0 1 1 0 0       unassigned  unassigned
  2267.                 //#118      1 1 1 0 1 0 0 0 1       unassigned  unassigned
  2268.                 //#119      1 1 1 0 1 0 0 1 0       unassigned  unassigned
  2269.                 //#120      1 1 1 0 1 0 1 0 0       unassigned  unassigned
  2270.                 //#121      1 1 1 0 1 1 0 0 0       unassigned  unassigned
  2271.                 //#122      1 1 1 1 0 0 0 0 1       unassigned  unassigned
  2272.                 //#123      1 1 1 1 0 0 0 1 0       unassigned  unassigned
  2273.                 //#124      1 1 1 1 0 0 1 0 0       unassigned  unassigned
  2274.                 //#125      1 1 1 1 0 1 0 0 0       unassigned  unassigned
  2275.                 //#126      1 1 1 1 1 0 0 0 0       unassigned  unassigned
  2276.                
  2277.                 //Combination 96 (reference # 96) is repeated for all remaining contiguous nine functions if no user message exists.
  2278.                 //For messages shorter than 1,000 characters, remaining unused spaces are also filled with combination 96 (1 1 0 0 1 0 0 1 1.)
  2279.                 //(Combination 96 (no_char) is a custom assignment in the Authorship program. It is NOT the null character.)
  2280.                
  2281.                
  2282.                
  2283.                
  2284.                
  2285.                 //Prints the new number incase the user wants to see it, publish it, or send it for trade. Numbers are normally
  2286.                 //handled automatically. This option to see the new number allows any newcommer to begin verifying authentication
  2287.                 //events. Perhaps some verifying party had lost your number and wishes to begin again, here.
  2288.                 cout << "\n\n\n\n\n\n\n\n\n\n\n";
  2289.                 for(int a = 0; a < 100; a++) {cout << compression_119[a];}
  2290.                 cout << "\n\nYour new number is printed above if trading or if some verifying\n"
  2291.                      << "party had lost your number or began verifying at a later time..........\n\n\n";
  2292.                
  2293.                 //The following block-bunch converts the new number and message information into the "5/9 filled special binary combinations."
  2294.                 int pair[500];
  2295.                 int pair_write_bookmark = 4;
  2296.                 for(int a = 0; a < 100; a++) //Converts number into array (loads number as fragments of 2 digits into each element of pair[].)
  2297.                 {       pair[pair_write_bookmark] = compression_119[a] % 100;
  2298.                         compression_119[a] /= 100;
  2299.                         pair[pair_write_bookmark - 1] = compression_119[a] % 100;
  2300.                         compression_119[a] /= 100;
  2301.                         pair[pair_write_bookmark - 2] = compression_119[a] % 100;
  2302.                         compression_119[a] /= 100;
  2303.                         pair[pair_write_bookmark - 3] = compression_119[a] % 100; //(Don't forget, C++ is sensitive to order, parentheses,
  2304.                         compression_119[a] /= 100;                                //and commands (compression_119[a] mod 100 is performed first.)
  2305.                         pair[pair_write_bookmark - 4] = compression_119[a];
  2306.                        
  2307.                         pair_write_bookmark += 5;
  2308.                 }
  2309.                
  2310.                 bool b[13500]; //b for binary, will hold the final binary super-string.
  2311.                 int m = 0; //Write bookmark for b[].
  2312.                 for(int a = 0; a < 500; a++) //Loads binary expansion for number into b[]. (The first 500 groups of nine in b[] will represent the Authorship number, each group giving a digit pair.)
  2313.                 {
  2314.                         //              number
  2315.                         //             fragment      |           |           |           |           |           |           |           |           |
  2316.                              if(pair[a] == 0) {b[m]= 0;  b[m+1]= 0;  b[m+2]= 0;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2317.                         else if(pair[a] == 1) {b[m]= 0;  b[m+1]= 0;  b[m+2]= 0;  b[m+3]= 1;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2318.                         else if(pair[a] == 2) {b[m]= 0;  b[m+1]= 0;  b[m+2]= 0;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 0;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2319.                         else if(pair[a] == 3) {b[m]= 0;  b[m+1]= 0;  b[m+2]= 0;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 0;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2320.                         else if(pair[a] == 4) {b[m]= 0;  b[m+1]= 0;  b[m+2]= 0;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 0;  b[m+8]= 1;  m+=9;}
  2321.                         else if(pair[a] == 5) {b[m]= 0;  b[m+1]= 0;  b[m+2]= 0;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 0;  m+=9;}
  2322.                         else if(pair[a] == 6) {b[m]= 0;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 0;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2323.                         else if(pair[a] == 7) {b[m]= 0;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 0;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2324.                         else if(pair[a] == 8) {b[m]= 0;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 0;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2325.                         else if(pair[a] == 9) {b[m]= 0;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 0;  b[m+8]= 1;  m+=9;}
  2326.                         else if(pair[a] ==10) {b[m]= 0;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 0;  m+=9;}
  2327.                         else if(pair[a] ==11) {b[m]= 0;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 0;  b[m+5]= 0;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2328.                         else if(pair[a] ==12) {b[m]= 0;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 0;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2329.                         else if(pair[a] ==13) {b[m]= 0;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 0;  b[m+8]= 1;  m+=9;}
  2330.                         else if(pair[a] ==14) {b[m]= 0;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 0;  m+=9;}
  2331.                         else if(pair[a] ==15) {b[m]= 0;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 0;  b[m+6]= 0;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2332.                         else if(pair[a] ==16) {b[m]= 0;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 0;  b[m+6]= 1;  b[m+7]= 0;  b[m+8]= 1;  m+=9;}
  2333.                         else if(pair[a] ==17) {b[m]= 0;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 0;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 0;  m+=9;}
  2334.                         else if(pair[a] ==18) {b[m]= 0;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 0;  b[m+7]= 0;  b[m+8]= 1;  m+=9;}
  2335.                         else if(pair[a] ==19) {b[m]= 0;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 0;  b[m+7]= 1;  b[m+8]= 0;  m+=9;}
  2336.                         else if(pair[a] ==20) {b[m]= 0;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 0;  b[m+8]= 0;  m+=9;}
  2337.                         else if(pair[a] ==21) {b[m]= 0;  b[m+1]= 1;  b[m+2]= 0;  b[m+3]= 0;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2338.                         else if(pair[a] ==22) {b[m]= 0;  b[m+1]= 1;  b[m+2]= 0;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 0;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2339.                         else if(pair[a] ==23) {b[m]= 0;  b[m+1]= 1;  b[m+2]= 0;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 0;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2340.                         else if(pair[a] ==24) {b[m]= 0;  b[m+1]= 1;  b[m+2]= 0;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 0;  b[m+8]= 1;  m+=9;}
  2341.                         else if(pair[a] ==25) {b[m]= 0;  b[m+1]= 1;  b[m+2]= 0;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 0;  m+=9;}
  2342.                         else if(pair[a] ==26) {b[m]= 0;  b[m+1]= 1;  b[m+2]= 0;  b[m+3]= 1;  b[m+4]= 0;  b[m+5]= 0;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2343.                         else if(pair[a] ==27) {b[m]= 0;  b[m+1]= 1;  b[m+2]= 0;  b[m+3]= 1;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 0;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2344.                         else if(pair[a] ==28) {b[m]= 0;  b[m+1]= 1;  b[m+2]= 0;  b[m+3]= 1;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 0;  b[m+8]= 1;  m+=9;}
  2345.                         else if(pair[a] ==29) {b[m]= 0;  b[m+1]= 1;  b[m+2]= 0;  b[m+3]= 1;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 0;  m+=9;}
  2346.                         else if(pair[a] ==30) {b[m]= 0;  b[m+1]= 1;  b[m+2]= 0;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 0;  b[m+6]= 0;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2347.                         else if(pair[a] ==31) {b[m]= 0;  b[m+1]= 1;  b[m+2]= 0;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 0;  b[m+6]= 1;  b[m+7]= 0;  b[m+8]= 1;  m+=9;}
  2348.                         else if(pair[a] ==32) {b[m]= 0;  b[m+1]= 1;  b[m+2]= 0;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 0;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 0;  m+=9;}
  2349.                         else if(pair[a] ==33) {b[m]= 0;  b[m+1]= 1;  b[m+2]= 0;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 0;  b[m+7]= 0;  b[m+8]= 1;  m+=9;}
  2350.                         else if(pair[a] ==34) {b[m]= 0;  b[m+1]= 1;  b[m+2]= 0;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 0;  b[m+7]= 1;  b[m+8]= 0;  m+=9;}
  2351.                         else if(pair[a] ==35) {b[m]= 0;  b[m+1]= 1;  b[m+2]= 0;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 0;  b[m+8]= 0;  m+=9;}
  2352.                         else if(pair[a] ==36) {b[m]= 0;  b[m+1]= 1;  b[m+2]= 1;  b[m+3]= 0;  b[m+4]= 0;  b[m+5]= 0;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2353.                         else if(pair[a] ==37) {b[m]= 0;  b[m+1]= 1;  b[m+2]= 1;  b[m+3]= 0;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 0;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2354.                         else if(pair[a] ==38) {b[m]= 0;  b[m+1]= 1;  b[m+2]= 1;  b[m+3]= 0;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 0;  b[m+8]= 1;  m+=9;}
  2355.                         else if(pair[a] ==39) {b[m]= 0;  b[m+1]= 1;  b[m+2]= 1;  b[m+3]= 0;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 0;  m+=9;}
  2356.                         else if(pair[a] ==40) {b[m]= 0;  b[m+1]= 1;  b[m+2]= 1;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 0;  b[m+6]= 0;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2357.                         else if(pair[a] ==41) {b[m]= 0;  b[m+1]= 1;  b[m+2]= 1;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 0;  b[m+6]= 1;  b[m+7]= 0;  b[m+8]= 1;  m+=9;}
  2358.                         else if(pair[a] ==42) {b[m]= 0;  b[m+1]= 1;  b[m+2]= 1;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 0;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 0;  m+=9;}
  2359.                         else if(pair[a] ==43) {b[m]= 0;  b[m+1]= 1;  b[m+2]= 1;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 0;  b[m+7]= 0;  b[m+8]= 1;  m+=9;}
  2360.                         else if(pair[a] ==44) {b[m]= 0;  b[m+1]= 1;  b[m+2]= 1;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 0;  b[m+7]= 1;  b[m+8]= 0;  m+=9;}
  2361.                         else if(pair[a] ==45) {b[m]= 0;  b[m+1]= 1;  b[m+2]= 1;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 0;  b[m+8]= 0;  m+=9;}
  2362.                         else if(pair[a] ==46) {b[m]= 0;  b[m+1]= 1;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 0;  b[m+5]= 0;  b[m+6]= 0;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2363.                         else if(pair[a] ==47) {b[m]= 0;  b[m+1]= 1;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 0;  b[m+5]= 0;  b[m+6]= 1;  b[m+7]= 0;  b[m+8]= 1;  m+=9;}
  2364.                         else if(pair[a] ==48) {b[m]= 0;  b[m+1]= 1;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 0;  b[m+5]= 0;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 0;  m+=9;}
  2365.                         else if(pair[a] ==49) {b[m]= 0;  b[m+1]= 1;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 0;  b[m+7]= 0;  b[m+8]= 1;  m+=9;}
  2366.                         else if(pair[a] ==50) {b[m]= 0;  b[m+1]= 1;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 0;  b[m+7]= 1;  b[m+8]= 0;  m+=9;}
  2367.                         else if(pair[a] ==51) {b[m]= 0;  b[m+1]= 1;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 0;  b[m+8]= 0;  m+=9;}
  2368.                         else if(pair[a] ==52) {b[m]= 0;  b[m+1]= 1;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 0;  b[m+6]= 0;  b[m+7]= 0;  b[m+8]= 1;  m+=9;}
  2369.                         else if(pair[a] ==53) {b[m]= 0;  b[m+1]= 1;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 0;  b[m+6]= 0;  b[m+7]= 1;  b[m+8]= 0;  m+=9;}
  2370.                         else if(pair[a] ==54) {b[m]= 0;  b[m+1]= 1;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 0;  b[m+6]= 1;  b[m+7]= 0;  b[m+8]= 0;  m+=9;}
  2371.                         else if(pair[a] ==55) {b[m]= 0;  b[m+1]= 1;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 0;  b[m+7]= 0;  b[m+8]= 0;  m+=9;}
  2372.                         else if(pair[a] ==56) {b[m]= 1;  b[m+1]= 0;  b[m+2]= 0;  b[m+3]= 0;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2373.                         else if(pair[a] ==57) {b[m]= 1;  b[m+1]= 0;  b[m+2]= 0;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 0;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2374.                         else if(pair[a] ==58) {b[m]= 1;  b[m+1]= 0;  b[m+2]= 0;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 0;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2375.                         else if(pair[a] ==59) {b[m]= 1;  b[m+1]= 0;  b[m+2]= 0;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 0;  b[m+8]= 1;  m+=9;}
  2376.                         else if(pair[a] ==60) {b[m]= 1;  b[m+1]= 0;  b[m+2]= 0;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 0;  m+=9;}
  2377.                         else if(pair[a] ==61) {b[m]= 1;  b[m+1]= 0;  b[m+2]= 0;  b[m+3]= 1;  b[m+4]= 0;  b[m+5]= 0;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2378.                         else if(pair[a] ==62) {b[m]= 1;  b[m+1]= 0;  b[m+2]= 0;  b[m+3]= 1;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 0;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2379.                         else if(pair[a] ==63) {b[m]= 1;  b[m+1]= 0;  b[m+2]= 0;  b[m+3]= 1;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 0;  b[m+8]= 1;  m+=9;}
  2380.                         else if(pair[a] ==64) {b[m]= 1;  b[m+1]= 0;  b[m+2]= 0;  b[m+3]= 1;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 0;  m+=9;}
  2381.                         else if(pair[a] ==65) {b[m]= 1;  b[m+1]= 0;  b[m+2]= 0;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 0;  b[m+6]= 0;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2382.                         else if(pair[a] ==66) {b[m]= 1;  b[m+1]= 0;  b[m+2]= 0;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 0;  b[m+6]= 1;  b[m+7]= 0;  b[m+8]= 1;  m+=9;}
  2383.                         else if(pair[a] ==67) {b[m]= 1;  b[m+1]= 0;  b[m+2]= 0;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 0;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 0;  m+=9;}
  2384.                         else if(pair[a] ==68) {b[m]= 1;  b[m+1]= 0;  b[m+2]= 0;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 0;  b[m+7]= 0;  b[m+8]= 1;  m+=9;}
  2385.                         else if(pair[a] ==69) {b[m]= 1;  b[m+1]= 0;  b[m+2]= 0;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 0;  b[m+7]= 1;  b[m+8]= 0;  m+=9;}
  2386.                         else if(pair[a] ==70) {b[m]= 1;  b[m+1]= 0;  b[m+2]= 0;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 0;  b[m+8]= 0;  m+=9;}
  2387.                         else if(pair[a] ==71) {b[m]= 1;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 0;  b[m+4]= 0;  b[m+5]= 0;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2388.                         else if(pair[a] ==72) {b[m]= 1;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 0;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 0;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2389.                         else if(pair[a] ==73) {b[m]= 1;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 0;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 0;  b[m+8]= 1;  m+=9;}
  2390.                         else if(pair[a] ==74) {b[m]= 1;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 0;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 0;  m+=9;}
  2391.                         else if(pair[a] ==75) {b[m]= 1;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 0;  b[m+6]= 0;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2392.                         else if(pair[a] ==76) {b[m]= 1;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 0;  b[m+6]= 1;  b[m+7]= 0;  b[m+8]= 1;  m+=9;}
  2393.                         else if(pair[a] ==77) {b[m]= 1;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 0;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 0;  m+=9;}
  2394.                         else if(pair[a] ==78) {b[m]= 1;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 0;  b[m+7]= 0;  b[m+8]= 1;  m+=9;}
  2395.                         else if(pair[a] ==79) {b[m]= 1;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 0;  b[m+7]= 1;  b[m+8]= 0;  m+=9;}
  2396.                         else if(pair[a] ==80) {b[m]= 1;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 0;  b[m+8]= 0;  m+=9;}
  2397.                         else if(pair[a] ==81) {b[m]= 1;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 0;  b[m+5]= 0;  b[m+6]= 0;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2398.                         else if(pair[a] ==82) {b[m]= 1;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 0;  b[m+5]= 0;  b[m+6]= 1;  b[m+7]= 0;  b[m+8]= 1;  m+=9;}
  2399.                         else if(pair[a] ==83) {b[m]= 1;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 0;  b[m+5]= 0;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 0;  m+=9;}
  2400.                         else if(pair[a] ==84) {b[m]= 1;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 0;  b[m+7]= 0;  b[m+8]= 1;  m+=9;}
  2401.                         else if(pair[a] ==85) {b[m]= 1;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 0;  b[m+7]= 1;  b[m+8]= 0;  m+=9;}
  2402.                         else if(pair[a] ==86) {b[m]= 1;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 0;  b[m+8]= 0;  m+=9;}
  2403.                         else if(pair[a] ==87) {b[m]= 1;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 0;  b[m+6]= 0;  b[m+7]= 0;  b[m+8]= 1;  m+=9;}
  2404.                         else if(pair[a] ==88) {b[m]= 1;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 0;  b[m+6]= 0;  b[m+7]= 1;  b[m+8]= 0;  m+=9;}
  2405.                         else if(pair[a] ==89) {b[m]= 1;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 0;  b[m+6]= 1;  b[m+7]= 0;  b[m+8]= 0;  m+=9;}
  2406.                         else if(pair[a] ==90) {b[m]= 1;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 0;  b[m+7]= 0;  b[m+8]= 0;  m+=9;}
  2407.                         else if(pair[a] ==91) {b[m]= 1;  b[m+1]= 1;  b[m+2]= 0;  b[m+3]= 0;  b[m+4]= 0;  b[m+5]= 0;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2408.                         else if(pair[a] ==92) {b[m]= 1;  b[m+1]= 1;  b[m+2]= 0;  b[m+3]= 0;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 0;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2409.                         else if(pair[a] ==93) {b[m]= 1;  b[m+1]= 1;  b[m+2]= 0;  b[m+3]= 0;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 0;  b[m+8]= 1;  m+=9;}
  2410.                         else if(pair[a] ==94) {b[m]= 1;  b[m+1]= 1;  b[m+2]= 0;  b[m+3]= 0;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 0;  m+=9;}
  2411.                         else if(pair[a] ==95) {b[m]= 1;  b[m+1]= 1;  b[m+2]= 0;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 0;  b[m+6]= 0;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2412.                         else if(pair[a] ==96) {b[m]= 1;  b[m+1]= 1;  b[m+2]= 0;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 0;  b[m+6]= 1;  b[m+7]= 0;  b[m+8]= 1;  m+=9;}
  2413.                         else if(pair[a] ==97) {b[m]= 1;  b[m+1]= 1;  b[m+2]= 0;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 0;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 0;  m+=9;}
  2414.                         else if(pair[a] ==98) {b[m]= 1;  b[m+1]= 1;  b[m+2]= 0;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 0;  b[m+7]= 0;  b[m+8]= 1;  m+=9;}
  2415.                         else if(pair[a] ==99) {b[m]= 1;  b[m+1]= 1;  b[m+2]= 0;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 0;  b[m+7]= 1;  b[m+8]= 0;  m+=9;} //This is 100th (00 - 99.)
  2416.                         //                           |           |           |           |           |           |           |           |           |
  2417.                        
  2418.                         else {cout << "\n\nCosmic ray corruption.     jx9\n\n"; return 0;}
  2419.                 }
  2420.                
  2421.                 m = 4500; //Sets write head of b[] to where the user message will begin in "5/9 binary" as the last operation (above) did m += 9. b[4500] is the 4,501st element.
  2422.                
  2423.                 //Now b[] is filled with user message information...
  2424.                 //Message or not, remaining b[] elements are filled with reference # 96 (no_char = 1 1 0 0 1 0 0 1 1.)
  2425.                 {       for(int a = 0; a < 1000; a++) //Remaining 1000 groups of nine.)
  2426.                         {       b[m]= 1;  b[m+1]= 1;  b[m+2]= 0;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 0;  b[m+6]= 0;  b[m+7]= 1;  b[m+8]= 1;  m+=9;
  2427.                         }       //    |           |           |           |           |           |           |           |           |
  2428.                 }
  2429.                
  2430.                 cout << "Notes included in public files will be extracted as plaintext upon verification.\n"
  2431.                      << "Enter a message (1,000 characters max, will be truncated) otherwise press enter:\n\n";
  2432.                 char nothing_to_see_here[1];
  2433.                 cin.getline(nothing_to_see_here, 1); //Catching cache.
  2434.                
  2435.                 char message[10000]; //This is TEN thousand in case the user enters too many.
  2436.                 cin.getline(message, 10000); //If enter is pressed, ALL message[] elements are auto-set to null, else remaining are.
  2437.                 message[1000] = '\0'; //Now to safely truncate the message length to its max (1,001st element is set to null.)
  2438.                
  2439.                
  2440.                
  2441.                
  2442.                
  2443.                 if(message[0] != '\0')
  2444.                 {       m = 4500; //Again, sets write head of b[] to where the user message will begin in "5/9 binary." b[4500] is the 4,501st element.
  2445.                         for(int a = 0; message[a] != '\0'; a++) //Loads binary expansion for user's message. (The remaining 1,000 groups of nine in b[] will represent the user message or data.)
  2446.                         {      
  2447.                                 //                  message
  2448.                                 //                 character      |           |           |           |           |           |           |           |           |
  2449.                                      if(message[a] == ' ') {b[m]= 0;  b[m+1]= 0;  b[m+2]= 0;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 1;  m+=9;} //(Blank or space.) Not to be confused with no_char.
  2450.                                 else if(message[a] == '!') {b[m]= 0;  b[m+1]= 0;  b[m+2]= 0;  b[m+3]= 1;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2451.                                 else if(message[a] == '"') {b[m]= 0;  b[m+1]= 0;  b[m+2]= 0;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 0;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2452.                                 else if(message[a] == '#') {b[m]= 0;  b[m+1]= 0;  b[m+2]= 0;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 0;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2453.                                 else if(message[a] == '$') {b[m]= 0;  b[m+1]= 0;  b[m+2]= 0;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 0;  b[m+8]= 1;  m+=9;}
  2454.                                 else if(message[a] == '%') {b[m]= 0;  b[m+1]= 0;  b[m+2]= 0;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 0;  m+=9;}
  2455.                                 else if(message[a] == '&') {b[m]= 0;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 0;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2456.                                 else if(message[a] =='\'') {b[m]= 0;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 0;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2457.                                 else if(message[a] == '(') {b[m]= 0;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 0;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2458.                                 else if(message[a] == ')') {b[m]= 0;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 0;  b[m+8]= 1;  m+=9;}
  2459.                                 else if(message[a] == '*') {b[m]= 0;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 0;  m+=9;}
  2460.                                 else if(message[a] == '+') {b[m]= 0;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 0;  b[m+5]= 0;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2461.                                 else if(message[a] == ',') {b[m]= 0;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 0;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2462.                                 else if(message[a] == '-') {b[m]= 0;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 0;  b[m+8]= 1;  m+=9;}
  2463.                                 else if(message[a] == '.') {b[m]= 0;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 0;  m+=9;}
  2464.                                 else if(message[a] == '/') {b[m]= 0;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 0;  b[m+6]= 0;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2465.                                 else if(message[a] == '0') {b[m]= 0;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 0;  b[m+6]= 1;  b[m+7]= 0;  b[m+8]= 1;  m+=9;}
  2466.                                 else if(message[a] == '1') {b[m]= 0;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 0;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 0;  m+=9;}
  2467.                                 else if(message[a] == '2') {b[m]= 0;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 0;  b[m+7]= 0;  b[m+8]= 1;  m+=9;}
  2468.                                 else if(message[a] == '3') {b[m]= 0;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 0;  b[m+7]= 1;  b[m+8]= 0;  m+=9;}
  2469.                                 else if(message[a] == '4') {b[m]= 0;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 0;  b[m+8]= 0;  m+=9;}
  2470.                                 else if(message[a] == '5') {b[m]= 0;  b[m+1]= 1;  b[m+2]= 0;  b[m+3]= 0;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2471.                                 else if(message[a] == '6') {b[m]= 0;  b[m+1]= 1;  b[m+2]= 0;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 0;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2472.                                 else if(message[a] == '7') {b[m]= 0;  b[m+1]= 1;  b[m+2]= 0;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 0;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2473.                                 else if(message[a] == '8') {b[m]= 0;  b[m+1]= 1;  b[m+2]= 0;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 0;  b[m+8]= 1;  m+=9;}
  2474.                                 else if(message[a] == '9') {b[m]= 0;  b[m+1]= 1;  b[m+2]= 0;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 0;  m+=9;}
  2475.                                 else if(message[a] == ':') {b[m]= 0;  b[m+1]= 1;  b[m+2]= 0;  b[m+3]= 1;  b[m+4]= 0;  b[m+5]= 0;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2476.                                 else if(message[a] == ';') {b[m]= 0;  b[m+1]= 1;  b[m+2]= 0;  b[m+3]= 1;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 0;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2477.                                 else if(message[a] == '<') {b[m]= 0;  b[m+1]= 1;  b[m+2]= 0;  b[m+3]= 1;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 0;  b[m+8]= 1;  m+=9;}
  2478.                                 else if(message[a] == '=') {b[m]= 0;  b[m+1]= 1;  b[m+2]= 0;  b[m+3]= 1;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 0;  m+=9;}
  2479.                                 else if(message[a] == '>') {b[m]= 0;  b[m+1]= 1;  b[m+2]= 0;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 0;  b[m+6]= 0;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2480.                                 else if(message[a] == '?') {b[m]= 0;  b[m+1]= 1;  b[m+2]= 0;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 0;  b[m+6]= 1;  b[m+7]= 0;  b[m+8]= 1;  m+=9;}
  2481.                                 else if(message[a] == '@') {b[m]= 0;  b[m+1]= 1;  b[m+2]= 0;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 0;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 0;  m+=9;}
  2482.                                 else if(message[a] == 'A') {b[m]= 0;  b[m+1]= 1;  b[m+2]= 0;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 0;  b[m+7]= 0;  b[m+8]= 1;  m+=9;}
  2483.                                 else if(message[a] == 'B') {b[m]= 0;  b[m+1]= 1;  b[m+2]= 0;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 0;  b[m+7]= 1;  b[m+8]= 0;  m+=9;}
  2484.                                 else if(message[a] == 'C') {b[m]= 0;  b[m+1]= 1;  b[m+2]= 0;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 0;  b[m+8]= 0;  m+=9;}
  2485.                                 else if(message[a] == 'D') {b[m]= 0;  b[m+1]= 1;  b[m+2]= 1;  b[m+3]= 0;  b[m+4]= 0;  b[m+5]= 0;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2486.                                 else if(message[a] == 'E') {b[m]= 0;  b[m+1]= 1;  b[m+2]= 1;  b[m+3]= 0;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 0;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2487.                                 else if(message[a] == 'F') {b[m]= 0;  b[m+1]= 1;  b[m+2]= 1;  b[m+3]= 0;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 0;  b[m+8]= 1;  m+=9;}
  2488.                                 else if(message[a] == 'G') {b[m]= 0;  b[m+1]= 1;  b[m+2]= 1;  b[m+3]= 0;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 0;  m+=9;}
  2489.                                 else if(message[a] == 'H') {b[m]= 0;  b[m+1]= 1;  b[m+2]= 1;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 0;  b[m+6]= 0;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2490.                                 else if(message[a] == 'I') {b[m]= 0;  b[m+1]= 1;  b[m+2]= 1;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 0;  b[m+6]= 1;  b[m+7]= 0;  b[m+8]= 1;  m+=9;}
  2491.                                 else if(message[a] == 'J') {b[m]= 0;  b[m+1]= 1;  b[m+2]= 1;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 0;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 0;  m+=9;}
  2492.                                 else if(message[a] == 'K') {b[m]= 0;  b[m+1]= 1;  b[m+2]= 1;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 0;  b[m+7]= 0;  b[m+8]= 1;  m+=9;}
  2493.                                 else if(message[a] == 'L') {b[m]= 0;  b[m+1]= 1;  b[m+2]= 1;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 0;  b[m+7]= 1;  b[m+8]= 0;  m+=9;}
  2494.                                 else if(message[a] == 'M') {b[m]= 0;  b[m+1]= 1;  b[m+2]= 1;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 0;  b[m+8]= 0;  m+=9;}
  2495.                                 else if(message[a] == 'N') {b[m]= 0;  b[m+1]= 1;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 0;  b[m+5]= 0;  b[m+6]= 0;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2496.                                 else if(message[a] == 'O') {b[m]= 0;  b[m+1]= 1;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 0;  b[m+5]= 0;  b[m+6]= 1;  b[m+7]= 0;  b[m+8]= 1;  m+=9;}
  2497.                                 else if(message[a] == 'P') {b[m]= 0;  b[m+1]= 1;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 0;  b[m+5]= 0;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 0;  m+=9;}
  2498.                                 else if(message[a] == 'Q') {b[m]= 0;  b[m+1]= 1;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 0;  b[m+7]= 0;  b[m+8]= 1;  m+=9;}
  2499.                                 else if(message[a] == 'R') {b[m]= 0;  b[m+1]= 1;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 0;  b[m+7]= 1;  b[m+8]= 0;  m+=9;}
  2500.                                 else if(message[a] == 'S') {b[m]= 0;  b[m+1]= 1;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 0;  b[m+8]= 0;  m+=9;}
  2501.                                 else if(message[a] == 'T') {b[m]= 0;  b[m+1]= 1;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 0;  b[m+6]= 0;  b[m+7]= 0;  b[m+8]= 1;  m+=9;}
  2502.                                 else if(message[a] == 'U') {b[m]= 0;  b[m+1]= 1;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 0;  b[m+6]= 0;  b[m+7]= 1;  b[m+8]= 0;  m+=9;}
  2503.                                 else if(message[a] == 'V') {b[m]= 0;  b[m+1]= 1;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 0;  b[m+6]= 1;  b[m+7]= 0;  b[m+8]= 0;  m+=9;}
  2504.                                 else if(message[a] == 'W') {b[m]= 0;  b[m+1]= 1;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 0;  b[m+7]= 0;  b[m+8]= 0;  m+=9;}
  2505.                                 else if(message[a] == 'X') {b[m]= 1;  b[m+1]= 0;  b[m+2]= 0;  b[m+3]= 0;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2506.                                 else if(message[a] == 'Y') {b[m]= 1;  b[m+1]= 0;  b[m+2]= 0;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 0;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2507.                                 else if(message[a] == 'Z') {b[m]= 1;  b[m+1]= 0;  b[m+2]= 0;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 0;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2508.                                 else if(message[a] == '[') {b[m]= 1;  b[m+1]= 0;  b[m+2]= 0;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 0;  b[m+8]= 1;  m+=9;}
  2509.                                 else if(message[a] =='\\') {b[m]= 1;  b[m+1]= 0;  b[m+2]= 0;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 0;  m+=9;}
  2510.                                 else if(message[a] == ']') {b[m]= 1;  b[m+1]= 0;  b[m+2]= 0;  b[m+3]= 1;  b[m+4]= 0;  b[m+5]= 0;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2511.                                 else if(message[a] == '^') {b[m]= 1;  b[m+1]= 0;  b[m+2]= 0;  b[m+3]= 1;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 0;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2512.                                 else if(message[a] == '_') {b[m]= 1;  b[m+1]= 0;  b[m+2]= 0;  b[m+3]= 1;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 0;  b[m+8]= 1;  m+=9;}
  2513.                                 else if(message[a] == '`') {b[m]= 1;  b[m+1]= 0;  b[m+2]= 0;  b[m+3]= 1;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 0;  m+=9;}
  2514.                                 else if(message[a] == 'a') {b[m]= 1;  b[m+1]= 0;  b[m+2]= 0;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 0;  b[m+6]= 0;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2515.                                 else if(message[a] == 'b') {b[m]= 1;  b[m+1]= 0;  b[m+2]= 0;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 0;  b[m+6]= 1;  b[m+7]= 0;  b[m+8]= 1;  m+=9;}
  2516.                                 else if(message[a] == 'c') {b[m]= 1;  b[m+1]= 0;  b[m+2]= 0;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 0;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 0;  m+=9;}
  2517.                                 else if(message[a] == 'd') {b[m]= 1;  b[m+1]= 0;  b[m+2]= 0;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 0;  b[m+7]= 0;  b[m+8]= 1;  m+=9;}
  2518.                                 else if(message[a] == 'e') {b[m]= 1;  b[m+1]= 0;  b[m+2]= 0;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 0;  b[m+7]= 1;  b[m+8]= 0;  m+=9;}
  2519.                                 else if(message[a] == 'f') {b[m]= 1;  b[m+1]= 0;  b[m+2]= 0;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 0;  b[m+8]= 0;  m+=9;}
  2520.                                 else if(message[a] == 'g') {b[m]= 1;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 0;  b[m+4]= 0;  b[m+5]= 0;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2521.                                 else if(message[a] == 'h') {b[m]= 1;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 0;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 0;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2522.                                 else if(message[a] == 'i') {b[m]= 1;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 0;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 0;  b[m+8]= 1;  m+=9;}
  2523.                                 else if(message[a] == 'j') {b[m]= 1;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 0;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 0;  m+=9;}
  2524.                                 else if(message[a] == 'k') {b[m]= 1;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 0;  b[m+6]= 0;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2525.                                 else if(message[a] == 'l') {b[m]= 1;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 0;  b[m+6]= 1;  b[m+7]= 0;  b[m+8]= 1;  m+=9;}
  2526.                                 else if(message[a] == 'm') {b[m]= 1;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 0;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 0;  m+=9;}
  2527.                                 else if(message[a] == 'n') {b[m]= 1;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 0;  b[m+7]= 0;  b[m+8]= 1;  m+=9;}
  2528.                                 else if(message[a] == 'o') {b[m]= 1;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 0;  b[m+7]= 1;  b[m+8]= 0;  m+=9;}
  2529.                                 else if(message[a] == 'p') {b[m]= 1;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 0;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 0;  b[m+8]= 0;  m+=9;}
  2530.                                 else if(message[a] == 'q') {b[m]= 1;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 0;  b[m+5]= 0;  b[m+6]= 0;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2531.                                 else if(message[a] == 'r') {b[m]= 1;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 0;  b[m+5]= 0;  b[m+6]= 1;  b[m+7]= 0;  b[m+8]= 1;  m+=9;}
  2532.                                 else if(message[a] == 's') {b[m]= 1;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 0;  b[m+5]= 0;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 0;  m+=9;}
  2533.                                 else if(message[a] == 't') {b[m]= 1;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 0;  b[m+7]= 0;  b[m+8]= 1;  m+=9;}
  2534.                                 else if(message[a] == 'u') {b[m]= 1;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 0;  b[m+7]= 1;  b[m+8]= 0;  m+=9;}
  2535.                                 else if(message[a] == 'v') {b[m]= 1;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 0;  b[m+8]= 0;  m+=9;}
  2536.                                 else if(message[a] == 'w') {b[m]= 1;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 0;  b[m+6]= 0;  b[m+7]= 0;  b[m+8]= 1;  m+=9;}
  2537.                                 else if(message[a] == 'x') {b[m]= 1;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 0;  b[m+6]= 0;  b[m+7]= 1;  b[m+8]= 0;  m+=9;}
  2538.                                 else if(message[a] == 'y') {b[m]= 1;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 0;  b[m+6]= 1;  b[m+7]= 0;  b[m+8]= 0;  m+=9;}
  2539.                                 else if(message[a] == 'z') {b[m]= 1;  b[m+1]= 0;  b[m+2]= 1;  b[m+3]= 1;  b[m+4]= 1;  b[m+5]= 1;  b[m+6]= 0;  b[m+7]= 0;  b[m+8]= 0;  m+=9;}
  2540.                                 else if(message[a] == '{') {b[m]= 1;  b[m+1]= 1;  b[m+2]= 0;  b[m+3]= 0;  b[m+4]= 0;  b[m+5]= 0;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2541.                                 else if(message[a] == '|') {b[m]= 1;  b[m+1]= 1;  b[m+2]= 0;  b[m+3]= 0;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 0;  b[m+7]= 1;  b[m+8]= 1;  m+=9;}
  2542.                                 else if(message[a] == '}') {b[m]= 1;  b[m+1]= 1;  b[m+2]= 0;  b[m+3]= 0;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 0;  b[m+8]= 1;  m+=9;}
  2543.                                 else if(message[a] == '~') {b[m]= 1;  b[m+1]= 1;  b[m+2]= 0;  b[m+3]= 0;  b[m+4]= 0;  b[m+5]= 1;  b[m+6]= 1;  b[m+7]= 1;  b[m+8]= 0;  m+=9;} //This makes all 95 printable ASCII characters (but only printable.)
  2544.                                 //                                |           |           |           |           |           |           |           |           |
  2545.                                
  2546.                                 else {cout << "\n\nCosmic ray corruption.     kv6\n\n"; return 0;}
  2547.                         }
  2548.                 }
  2549.                
  2550.                
  2551.                
  2552.                
  2553.                
  2554.                 //Selectively writes old[] to file Authorship.public SELECTIVENESS IS BASED ON THE CONTENTS OF b[]. (Authorship.public is a new file created now.)
  2555.                 bool hash_digits_table[12006] = {0}; //Prepares a hash-digits distribution table who dictates which items to omit and which to write to file Authorship.public.
  2556.                 for(int marker = 12004, a = 0; a < 100; a++) {hash_digits_table[marker] = 1; marker -= 115;}
  2557.                 for(int marker = 12004, a = 0; a < 100; a++) {hash_digits_table[marker] = 1; marker -= 116;}
  2558.                 for(int marker = 12004, a = 0; a < 100; a++) {hash_digits_table[marker] = 1; marker -= 117;}
  2559.                 for(int marker = 12004, a = 0; a < 100; a++) {hash_digits_table[marker] = 1; marker -= 118;}
  2560.                 for(int marker = 12004, a = 0; a < 100; a++) {hash_digits_table[marker] = 1; marker -= 119;}
  2561.                
  2562.                 //Solution ingredients meant to be destroyed are turned into the single character x. Example with the usual dot separators: 25467132.x.90683471
  2563.                 //The special binary representation has already been established, now the program only writes to file Authorship.public based on b[].
  2564.                 out_stream.open("Authorship.public");
  2565.                 int old_read_bookmark = 0;
  2566.                 for(int revelation = 0; revelation < 13500; revelation++)
  2567.                 {       if(b[revelation] == 0)
  2568.                         {       /// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  2569.                                 for(int a = 0; a < 12006; a++) ///Writes only the hash-digits of the function (495 digits then one separating dot.) //////////////////////
  2570.                                 {       if(hash_digits_table[a] == 0) {old_read_bookmark++;}
  2571.                                         else
  2572.                                         {            if(old[old_read_bookmark] == 48) {out_stream << '0';}
  2573.                                                 else if(old[old_read_bookmark] == 49) {out_stream << '1';}
  2574.                                                 else if(old[old_read_bookmark] == 50) {out_stream << '2';}
  2575.                                                 else if(old[old_read_bookmark] == 51) {out_stream << '3';}
  2576.                                                 else if(old[old_read_bookmark] == 52) {out_stream << '4';}
  2577.                                                 else if(old[old_read_bookmark] == 53) {out_stream << '5';}
  2578.                                                 else if(old[old_read_bookmark] == 54) {out_stream << '6';}
  2579.                                                 else if(old[old_read_bookmark] == 55) {out_stream << '7';}
  2580.                                                 else if(old[old_read_bookmark] == 56) {out_stream << '8';}
  2581.                                                 else if(old[old_read_bookmark] == 57) {out_stream << '9';}
  2582.                                                 else {cout << "\n\nCosmic ray corruption.     ym8\n\n"; return 0;}
  2583.                                                
  2584.                                                 old_read_bookmark++;
  2585.                                         }
  2586.                                 }
  2587.                                
  2588.                                 out_stream << '.';
  2589.                         }
  2590.                        
  2591.                         else
  2592.                         {       /// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  2593.                                 for(int a = 0; a < 12006; a++) ///Writes only the function (six sub-ciphertext and the six separating dots.) /////////////////////////////
  2594.                                 {            if(old[old_read_bookmark] == 48) {out_stream << '0';}
  2595.                                         else if(old[old_read_bookmark] == 49) {out_stream << '1';}
  2596.                                         else if(old[old_read_bookmark] == 50) {out_stream << '2';}
  2597.                                         else if(old[old_read_bookmark] == 51) {out_stream << '3';}
  2598.                                         else if(old[old_read_bookmark] == 52) {out_stream << '4';}
  2599.                                         else if(old[old_read_bookmark] == 53) {out_stream << '5';}
  2600.                                         else if(old[old_read_bookmark] == 54) {out_stream << '6';}
  2601.                                         else if(old[old_read_bookmark] == 55) {out_stream << '7';}
  2602.                                         else if(old[old_read_bookmark] == 56) {out_stream << '8';}
  2603.                                         else if(old[old_read_bookmark] == 57) {out_stream << '9';}
  2604.                                         else if(old[old_read_bookmark] == 46) {out_stream << '.';}
  2605.                                         else {cout << "\n\nCosmic ray corruption.     ij2\n\n"; return 0;}
  2606.                                        
  2607.                                         old_read_bookmark++;
  2608.                                 }
  2609.                         }
  2610.                        
  2611.                         //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  2612.                         if(b[revelation] == 1) ///Appends the solution ingredients to the function. //////////////////////////////////////////////////////////////////
  2613.                         {       for(int a = 0; a < 5; a++)
  2614.                                 {       while(old[old_read_bookmark] != '.')
  2615.                                         {            if(old[old_read_bookmark] == 48) {out_stream << '0';}
  2616.                                                 else if(old[old_read_bookmark] == 49) {out_stream << '1';}
  2617.                                                 else if(old[old_read_bookmark] == 50) {out_stream << '2';}
  2618.                                                 else if(old[old_read_bookmark] == 51) {out_stream << '3';}
  2619.                                                 else if(old[old_read_bookmark] == 52) {out_stream << '4';}
  2620.                                                 else if(old[old_read_bookmark] == 53) {out_stream << '5';}
  2621.                                                 else if(old[old_read_bookmark] == 54) {out_stream << '6';}
  2622.                                                 else if(old[old_read_bookmark] == 55) {out_stream << '7';}
  2623.                                                 else if(old[old_read_bookmark] == 56) {out_stream << '8';}
  2624.                                                 else if(old[old_read_bookmark] == 57) {out_stream << '9';}
  2625.                                                 else {cout << "\n\nCosmic ray corruption.     fz3\n\n"; return 0;}
  2626.                                                
  2627.                                                 old_read_bookmark++;
  2628.                                         }
  2629.                                        
  2630.                                         out_stream << '.';
  2631.                                         old_read_bookmark++;
  2632.                                 }
  2633.                         }
  2634.                        
  2635.                         //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  2636.                         else ///Skips through the solution ingredients of the function. //////////////////////////////////////////////////////////////////////////////
  2637.                         {       for(int a = 0; a < 5; a++)
  2638.                                 {       while(old[old_read_bookmark] != '.')
  2639.                                         {       old_read_bookmark++;
  2640.                                         }
  2641.                                        
  2642.                                         old_read_bookmark++;
  2643.                                 }
  2644.                                
  2645.                                 out_stream << 'x' << '.';
  2646.                         }
  2647.                 }
  2648.                 out_stream << '\0';
  2649.                
  2650.                 out_stream.close();
  2651.                
  2652.                
  2653.                
  2654.                
  2655.                
  2656.                 //Overwrites RAM of old[] and Authorship_private[].
  2657.                 for(int a = 0; a < 256500000; a++)
  2658.                 {       for(int b = 0; b < 10; b++) {old[a] = b;}
  2659.                         for(int c = 0; c < 10; c++) {Authorship_private[a] = c;}
  2660.                 }
  2661.                
  2662.                 //Overwrites RAM of user_seed[].
  2663.                 for(int a = 0; a < 50; a++)
  2664.                 {       user_seed[a] = 0; user_seed[a] = 12345678; user_seed[a] = 87654321; user_seed[a] = 99999999;
  2665.                 }
  2666.                
  2667.                
  2668.                
  2669.                
  2670.                
  2671.                 cout << "\n\n\n\n\n\n\n\n\n\n\nFinished.\n\n\n"
  2672.                
  2673.                      << "Authorship.private has been overwritten with your new keys.\n"
  2674.                      << "Cache them guardedly and destroy the old copy file. You no longer\n"
  2675.                      << "need YOUR Authorship.number file, it will be intertwined within\n"
  2676.                      << "your Authorship.public files, as well as being printed in the\n"
  2677.                      << "terminal for every authentication event as printed here, above.\n\n"
  2678.                
  2679.                      << "Authorship.public now resides in this directory. Publish it and\n"
  2680.                      << "the verifying party will extract your new number from this file.\n"
  2681.                      << "Once they have your new number, they can discard any old numbers\n"
  2682.                      << "and keys you have published in the past.\n\n";
  2683.         }
  2684.        
  2685.        
  2686.        
  2687.        
  2688.        
  2689.         //________________________________________________________________________________________________________________________
  2690.         //                                                                                                                       |
  2691.         //                                         3   Verifiy number modification                                               |
  2692.         //_______________________________________________________________________________________________________________________|
  2693.         if(user_option == 3)
  2694.         {       ifstream in_stream;
  2695.                 ofstream out_stream;
  2696.                
  2697.                 //Basic layout:
  2698.                 //1. Reads file Authirship.public then generates the compression.
  2699.                 //2. Reads file Authorship.number and compares it to the compression from step 1. Fails if mismatch.
  2700.                 //3. Tests the transformation determinants, keys, key transformations, and primes of the file in step 1. Fails on error.
  2701.                 //4. Extracts the new number & message from the file in step 1 and tests for additional properties. Fails on error.
  2702.                 //5. Writes the number to now-created file Authorship.number.
  2703.                
  2704.                 cout << "\n>>>>>>>>>>>>>>>>>>>>>>>>>>(Verify number modification)<<<<<<<<<<<<<<<<<<<<<<<<<<\n"
  2705.                      << "Place COPIES of the following two files in this directory.  (5-minute run-time.)\n\n"
  2706.                
  2707.                      << "    Authorship.number  (User's number as saved on your device.)\n"
  2708.                      << "    Authorship.public  (User's published file as downloaded on your device.)\n\n"
  2709.                
  2710.                      << "Continue? y/n: ";
  2711.                
  2712.                 char wait;
  2713.                 cin >> wait;
  2714.                 if(wait != 'y') {return 0;}
  2715.                
  2716.                
  2717.                
  2718.                
  2719.                
  2720.                 //Checks if file Authorship.number is present.
  2721.                 in_stream.open("Authorship.number");
  2722.                 if(in_stream.fail() == true) {in_stream.close(); cout << "\nAuthorship.number missing or misspelled, program ended.\n";}
  2723.                 in_stream.close();
  2724.                
  2725.                 //Loads file Authorship.public into Authorship_public[].
  2726.                 static char Authorship_public[140000000];
  2727.                 in_stream.open("Authorship.public");
  2728.                 if(in_stream.fail() == true) {in_stream.close(); cout << "\nAuthorship.public missing or misspelled, program ended.\n";}
  2729.                
  2730.                 for(int a = 0; a < 140000000; a++)
  2731.                 {       in_stream >> Authorship_public[a];
  2732.                         if(Authorship_public[a] == '\0') {break;}
  2733.                 }
  2734.                
  2735.                 in_stream.close();
  2736.                
  2737.                 for(int a = 0; Authorship_public[a] != '\0'; a++) //Converts Authorship_public[] items to numerical values ('x' and '.' excluded.)
  2738.                 {            if(Authorship_public[a] == 48) {Authorship_public[a] = 0;}
  2739.                         else if(Authorship_public[a] == 49) {Authorship_public[a] = 1;}
  2740.                         else if(Authorship_public[a] == 50) {Authorship_public[a] = 2;}
  2741.                         else if(Authorship_public[a] == 51) {Authorship_public[a] = 3;}
  2742.                         else if(Authorship_public[a] == 52) {Authorship_public[a] = 4;}
  2743.                         else if(Authorship_public[a] == 53) {Authorship_public[a] = 5;}
  2744.                         else if(Authorship_public[a] == 54) {Authorship_public[a] = 6;}
  2745.                         else if(Authorship_public[a] == 55) {Authorship_public[a] = 7;}
  2746.                         else if(Authorship_public[a] == 56) {Authorship_public[a] = 8;}
  2747.                         else if(Authorship_public[a] == 57) {Authorship_public[a] = 9;}
  2748.                         else if(Authorship_public[a] == '.') {continue;}
  2749.                         else if(Authorship_public[a] == 'x') {continue;}
  2750.                         else {cout << "\n\nCosmic ray corruption.     tq4\n\n"; return 0;}
  2751.                 }
  2752.                
  2753.                
  2754.                
  2755.                
  2756.                
  2757.                 //The following block-bunch generates the compression and compares it to Authorship.number.
  2758.                 //The following guardians must ALL sing "true" before the verifying party gets the message "Verification SUCCESSFUL!"
  2759.                 //These guardians exist for exceptional clarity and safety in the many diverse devices who may run the Authorship program.
  2760.                 //Any errors or mismatch in the verification process IMMEDIATELY ends the program with the message "Verification FAILED!"
  2761.                 //This ensures that false authentication events are terminated here long before any chance of sliding under additional guardians.
  2762.                 //Guardians may be controlled by external means at any moment, by accident in overflow or with clever attacks.
  2763.                 //Guardians sing "false" by default. (Sensitive software means safety first!)
  2764.                 bool comparison = false; //The extracted number must match the provided number.
  2765.                 bool keys       = false; //Keys, transformation determinants, key transformations, and prime lengths must satisfy 5/9 of 13,500 functions.
  2766.                 bool digits     = false; //The first 500 groups of nine contiguous functions must correspond to digit pair assignment.
  2767.                 bool characters = false; //The remaining 1,000 groups of nine contiguous functions must correspond to character assignment.
  2768.                
  2769.                 //Those who wish to harm and slow down some currency circulation or whatever Authorship system, might exhaustively publish Authorship.public
  2770.                 //files who must receive acceptance by large communities using old hardware. This is just another reason to have early fault detection
  2771.                 //as the file is read, however, it seems no elegant solutions exist and so the file Authorship.public is read whole before being processed.
  2772.                 //This is a waste of time and resources since most machines download and read content slowly which becomes problematic with serious quantity.
  2773.                 //Consider generating deductive lossy compression of the first few functions, then overwriting that to a few integers in the final number.
  2774.                 //Then, while reading the file, if its first few functions produce certain integers who match those in a list of Authorship numbers, file
  2775.                 //reading continues. Attackers can place highly curated faulty files to do just that and get away with wasting the time it takes your machine
  2776.                 //to read and verify the remaining 138.09999MB. But let's get clever. Suppose the first string read from the file contains a cryptographic key
  2777.                 //who unlocks a portion of some number in a public list. Certainly, you can halt reading faulty files without a correct key. In fact, you can
  2778.                 //even halt the download early as you can process dowloaded data sequentially. Surprisingly, this is not a solution still. And given the
  2779.                 //untraceable and anonymous capabilities of Authorship, you can bet that any and all systems will utilize those capabilities--which makes it
  2780.                 //impossible to know who's uploading the garbage. And just as they are free to sabotage, you are free to hunt them down. Attackers will take
  2781.                 //advantage of the high traffic in such systems--machines just can't get to every file as soon as it's released. And so the key strings who are
  2782.                 //first in the files can be inserted into their faulty files. Now let's go even further--combine the cryptographic key guard with the compression
  2783.                 //in the first consideration. This helps pin-point which number the file inquires to modify, however, the remaining file content could be faulty
  2784.                 //for the purpose of wasting time as the genuine file could have been automatically curated by machines looking through the published
  2785.                 //Authorship.public files. This adds garbage to the pile yet the pile must be processed. Please solve for x and let me know.
  2786.                
  2787.                 //These declarations are for deductive lossy compression, they produce the Authorship number dynamically.
  2788.                 long long int compression_115[100]; //Hops by -115
  2789.                 long long int    snapshot_115[100]; //Takes a snapshot of compression_115[] every once in a while.
  2790.                
  2791.                 long long int compression_116[100]; //Hops by -116
  2792.                 long long int    snapshot_116[100]; //Takes a snapshot of compression_116[] every once in a while.
  2793.                
  2794.                 long long int compression_117[100]; //Hops by -117
  2795.                 long long int    snapshot_117[100]; //Takes a snapshot of compression_117[] every once in a while.
  2796.                
  2797.                 long long int compression_118[100]; //Hops by -118
  2798.                 long long int    snapshot_118[100]; //Takes a snapshot of compression_118[] every once in a while.
  2799.                
  2800.                 long long int compression_119[100]; //Hops by -119
  2801.                 long long int    snapshot_119[100]; //Takes a snapshot of compression_119[] every once in a while.
  2802.                
  2803.                 for(int a = 0; a < 100; a++)
  2804.                 {       compression_115[a] = 5555555555;        snapshot_115[a] = 5555555555;
  2805.                         compression_116[a] = 5555555555;        snapshot_116[a] = 5555555555;
  2806.                         compression_117[a] = 5555555555;        snapshot_117[a] = 5555555555;
  2807.                         compression_118[a] = 5555555555;        snapshot_118[a] = 5555555555;
  2808.                         compression_119[a] = 5555555555;        snapshot_119[a] = 5555555555;
  2809.                 }
  2810.                
  2811.                 bool hash_digits_table[12006] = {0}; //Prepares a hash-digits distribution table.
  2812.                 for(int marker = 12004, a = 0; a < 100; a++) {hash_digits_table[marker] = 1; marker -= 115;}
  2813.                 for(int marker = 12004, a = 0; a < 100; a++) {hash_digits_table[marker] = 1; marker -= 116;}
  2814.                 for(int marker = 12004, a = 0; a < 100; a++) {hash_digits_table[marker] = 1; marker -= 117;}
  2815.                 for(int marker = 12004, a = 0; a < 100; a++) {hash_digits_table[marker] = 1; marker -= 118;}
  2816.                 for(int marker = 12004, a = 0; a < 100; a++) {hash_digits_table[marker] = 1; marker -= 119;}
  2817.                
  2818.                 //Generates compression
  2819.                 int read_bookmark = 0;
  2820.                 for(int f = 0; f < 13500; f++) //Chronologically reads through 13,500 functions in Authorship_public[].
  2821.                 {       if(Authorship_public[read_bookmark + 495] == '.') //If chunk of hash-digits, simulates them in the length of a real function.
  2822.                         {       int simulated_function[12006];
  2823.                                 for(int a = 0; a < 12006; a++)
  2824.                                 {       if(hash_digits_table[a] == 1)
  2825.                                         {       simulated_function[a] = Authorship_public[read_bookmark];
  2826.                                                 read_bookmark++;
  2827.                                         }
  2828.                                 }
  2829.                                
  2830.                                 compression_119[0] += compression_119[99];
  2831.                                 compression_119[0] %= 10000000000;
  2832.                                
  2833.                                 int temp_read_bookmark = 12004;
  2834.                                
  2835.                                 for(int a = 0; a < 100; a++)
  2836.                                 {       compression_115[a] += simulated_function[temp_read_bookmark];
  2837.                                         compression_115[a] *= 5;
  2838.                                         compression_115[a] %= 10000000000;
  2839.                                         temp_read_bookmark -= 115;
  2840.                                 }
  2841.                                 temp_read_bookmark = 12004; //Resetting the temporary variable.
  2842.                                
  2843.                                 for(int a = 0; a < 100; a++)
  2844.                                 {       compression_116[a] += simulated_function[temp_read_bookmark];
  2845.                                         compression_116[a] *= 6;
  2846.                                         compression_116[a] %= 10000000000;
  2847.                                         temp_read_bookmark -= 116;
  2848.                                 }
  2849.                                 temp_read_bookmark = 12004; //Resetting the temporary variable.
  2850.                                
  2851.                                 for(int a = 0; a < 100; a++)
  2852.                                 {       compression_117[a] += simulated_function[temp_read_bookmark];
  2853.                                         compression_117[a] *= 7;
  2854.                                         compression_117[a] %= 10000000000;
  2855.                                         temp_read_bookmark -= 117;
  2856.                                 }
  2857.                                 temp_read_bookmark = 12004; //Resetting the temporary variable.
  2858.                                
  2859.                                 for(int a = 0; a < 100; a++)
  2860.                                 {       compression_118[a] += simulated_function[temp_read_bookmark];
  2861.                                         compression_118[a] *= 8;
  2862.                                         compression_118[a] %= 10000000000;
  2863.                                         temp_read_bookmark -= 118;
  2864.                                 }
  2865.                                 temp_read_bookmark = 12004; //Resetting the temporary variable.
  2866.                                
  2867.                                 for(int a = 0; a < 100; a++)
  2868.                                 {       compression_119[a] += simulated_function[temp_read_bookmark];
  2869.                                         compression_119[a] *= 9;
  2870.                                         compression_119[a] %= 10000000000;
  2871.                                         temp_read_bookmark -= 119;
  2872.                                 }
  2873.                                
  2874.                                 read_bookmark++;
  2875.                         }
  2876.                        
  2877.                         else
  2878.                         {       read_bookmark += 12006;
  2879.                                
  2880.                                 compression_119[0] += compression_119[99];
  2881.                                 compression_119[0] %= 10000000000;
  2882.                                
  2883.                                 int temp_read_bookmark;
  2884.                                 temp_read_bookmark = (read_bookmark - 2);
  2885.                                
  2886.                                 for(int a = 0; a < 100; a++)
  2887.                                 {       compression_115[a] += Authorship_public[temp_read_bookmark];
  2888.                                         compression_115[a] *= 5;
  2889.                                         compression_115[a] %= 10000000000;
  2890.                                         temp_read_bookmark -= 115;
  2891.                                 }
  2892.                                 temp_read_bookmark = (read_bookmark - 2); //Resetting the temporary variable.
  2893.                                
  2894.                                 for(int a = 0; a < 100; a++)
  2895.                                 {       compression_116[a] += Authorship_public[temp_read_bookmark];
  2896.                                         compression_116[a] *= 6;
  2897.                                         compression_116[a] %= 10000000000;
  2898.                                         temp_read_bookmark -= 116;
  2899.                                 }
  2900.                                 temp_read_bookmark = (read_bookmark - 2); //Resetting the temporary variable.
  2901.                                
  2902.                                 for(int a = 0; a < 100; a++)
  2903.                                 {       compression_117[a] += Authorship_public[temp_read_bookmark];
  2904.                                         compression_117[a] *= 7;
  2905.                                         compression_117[a] %= 10000000000;
  2906.                                         temp_read_bookmark -= 117;
  2907.                                 }
  2908.                                 temp_read_bookmark = (read_bookmark - 2); //Resetting the temporary variable.
  2909.                                
  2910.                                 for(int a = 0; a < 100; a++)
  2911.                                 {       compression_118[a] += Authorship_public[temp_read_bookmark];
  2912.                                         compression_118[a] *= 8;
  2913.                                         compression_118[a] %= 10000000000;
  2914.                                         temp_read_bookmark -= 118;
  2915.                                 }
  2916.                                 temp_read_bookmark = (read_bookmark - 2); //Resetting the temporary variable.
  2917.                                
  2918.                                 for(int a = 0; a < 100; a++)
  2919.                                 {       compression_119[a] += Authorship_public[temp_read_bookmark];
  2920.                                         compression_119[a] *= 9;
  2921.                                         compression_119[a] %= 10000000000;
  2922.                                         temp_read_bookmark -= 119;
  2923.                                 }
  2924.                         }
  2925.                        
  2926.                         //Compression snapshots are active in early stages of Authorship number evolution. They are applied to the compression in the end.
  2927.                         if((f == 1000) || (f == 2000) || (f == 3000) || (f == 4000) || (f == 5000) || (f == 6000) || (f == 7000) || (f == 8000))
  2928.                         {       for(int a = 0; a < 100; a++)
  2929.                                 {       snapshot_115[a] += compression_115[a];
  2930.                                         snapshot_115[a] %= 10000000000; //(10^10, results in last ten digits shown.)
  2931.                                        
  2932.                                         snapshot_116[a] += compression_116[a];
  2933.                                         snapshot_116[a] %= 10000000000;
  2934.                                        
  2935.                                         snapshot_117[a] += compression_117[a];
  2936.                                         snapshot_117[a] %= 10000000000;
  2937.                                        
  2938.                                         snapshot_118[a] += compression_118[a];
  2939.                                         snapshot_118[a] %= 10000000000;
  2940.                                        
  2941.                                         snapshot_119[a] += compression_119[a];
  2942.                                         snapshot_119[a] %= 10000000000;
  2943.                                 }
  2944.                         }
  2945.                        
  2946.                         if(Authorship_public[read_bookmark] == 'x') //Navigates to the next contiguous function.
  2947.                         {       read_bookmark += 2;
  2948.                         }
  2949.                        
  2950.                         else //Skips through the solution ingredients (not utilized for generating deductive lossy compression.)
  2951.                         {       for(int a = 0; a < 5; a++)
  2952.                                 {       while(Authorship_public[read_bookmark] != '.')
  2953.                                         {       read_bookmark++;
  2954.                                         }
  2955.                                        
  2956.                                         read_bookmark++;
  2957.                                 }
  2958.                         }
  2959.                 }
  2960.                
  2961.                 //Constructively combines the compression tables. compression_119[] will hold it all.
  2962.                 for(int a = 0; a < 100; a++)
  2963.                 {       compression_119[a] += compression_115[a];
  2964.                         if((compression_119[a] % 2) == 0) {compression_119[a] *= 2;}
  2965.                        
  2966.                         compression_119[a] += compression_116[a];
  2967.                         if((compression_119[a] % 2) == 0) {compression_119[a] *= 3;}
  2968.                        
  2969.                         compression_119[a] += compression_117[a];
  2970.                         if((compression_119[a] % 2) == 0) {compression_119[a] *= 5;}
  2971.                        
  2972.                         compression_119[a] += compression_118[a];
  2973.                         if((compression_119[a] % 2) == 0) {compression_119[a] *= 7;}
  2974.                        
  2975.                         compression_119[a] %= 10000000000; //(10^10, results in last ten digits shown.)
  2976.                 }
  2977.                
  2978.                 //Constructively combines the snapshot tables. snapshot_119[] will hold it all.
  2979.                 for(int a = 0; a < 100; a++)
  2980.                 {       snapshot_119[a] += snapshot_115[a];
  2981.                         if((snapshot_119[a] % 2) == 0) {snapshot_119[a] *= 2;}
  2982.                        
  2983.                         snapshot_119[a] += snapshot_116[a];
  2984.                         if((snapshot_119[a] % 2) == 0) {snapshot_119[a] *= 3;}
  2985.                        
  2986.                         snapshot_119[a] += snapshot_117[a];
  2987.                         if((snapshot_119[a] % 2) == 0) {snapshot_119[a] *= 5;}
  2988.                        
  2989.                         snapshot_119[a] += snapshot_118[a];
  2990.                         if((snapshot_119[a] % 2) == 0) {snapshot_119[a] *= 7;}
  2991.                        
  2992.                         snapshot_119[a] %= 10000000000; //(10^10, results in last ten digits shown.)
  2993.                 }
  2994.                
  2995.                 //Applies the snapshots to the last stage in compression. (As the Authorship number evolved over time, snapshots made a record of its early stages.)
  2996.                 for(int a = 0; a < 100; a++)
  2997.                 {       compression_119[a] += snapshot_119[a];
  2998.                         compression_119[a] %= 10000000000; //(10^10, results in last ten digits shown.)
  2999.                 }
  3000.                
  3001.                 for(int a = 0; a < 100; a++) //Ensures each constituent compression integer is 10 digits long. The Authorship number is now complete.
  3002.                 {       if(compression_119[a]   < 1000000000)
  3003.                         {       compression_119[a] += 1000000000;
  3004.                         }
  3005.                 }
  3006.                
  3007.                 //The following block-bunch compares the generated number with the given number.
  3008.                 //Converts the here-generated number (100 integers in compression_119[]) to type array for loading into compression[].
  3009.                 int compression[1000] = {0};
  3010.                 int compression_write_bookmark = 0;
  3011.                 for(int a = 0; a < 100; a++)
  3012.                 {       compression[compression_write_bookmark] =  (compression_119[a] / 1000000000);
  3013.                         compression_write_bookmark++;
  3014.                         compression[compression_write_bookmark] = ((compression_119[a] / 100000000) % 10);
  3015.                         compression_write_bookmark++;
  3016.                         compression[compression_write_bookmark] = ((compression_119[a] / 10000000) % 10);
  3017.                         compression_write_bookmark++;
  3018.                         compression[compression_write_bookmark] = ((compression_119[a] / 1000000) % 10);
  3019.                         compression_write_bookmark++;
  3020.                         compression[compression_write_bookmark] = ((compression_119[a] / 100000) % 10);
  3021.                         compression_write_bookmark++;
  3022.                         compression[compression_write_bookmark] = ((compression_119[a] / 10000) % 10);
  3023.                         compression_write_bookmark++;
  3024.                         compression[compression_write_bookmark] = ((compression_119[a] / 1000) % 10);
  3025.                         compression_write_bookmark++;
  3026.                         compression[compression_write_bookmark] = ((compression_119[a] / 100) % 10);
  3027.                         compression_write_bookmark++;
  3028.                         compression[compression_write_bookmark] = ((compression_119[a] / 10) % 10);
  3029.                         compression_write_bookmark++;
  3030.                         compression[compression_write_bookmark] =  (compression_119[a]      % 10);
  3031.                         compression_write_bookmark++;
  3032.                 }
  3033.                
  3034.                 //Loads file Authorship.number into Authorship_number[].
  3035.                 char Authorship_number[1000];
  3036.                 in_stream.open("Authorship.number");
  3037.                
  3038.                 for(int a = 0; a < 1000; a++)
  3039.                 {       in_stream >> Authorship_number[a];
  3040.                        
  3041.                              if(Authorship_number[a] == 48) {Authorship_number[a] = 0;} //(Loaded ASCII characters from file) so converting them to our familiar numbers!
  3042.                         else if(Authorship_number[a] == 49) {Authorship_number[a] = 1;} //Look to the ASCII table & character assignment in option 2.
  3043.                         else if(Authorship_number[a] == 50) {Authorship_number[a] = 2;}
  3044.                         else if(Authorship_number[a] == 51) {Authorship_number[a] = 3;}
  3045.                         else if(Authorship_number[a] == 52) {Authorship_number[a] = 4;}
  3046.                         else if(Authorship_number[a] == 53) {Authorship_number[a] = 5;}
  3047.                         else if(Authorship_number[a] == 54) {Authorship_number[a] = 6;}
  3048.                         else if(Authorship_number[a] == 55) {Authorship_number[a] = 7;}
  3049.                         else if(Authorship_number[a] == 56) {Authorship_number[a] = 8;}
  3050.                         else if(Authorship_number[a] == 57) {Authorship_number[a] = 9;}
  3051.                         else {cout << "\n\nCosmic ray file corruption.     gx1\n\n"; return 0;}
  3052.                 }
  3053.                
  3054.                 in_stream.close();
  3055.                
  3056.                 //Compares the given number with the generated number.
  3057.                 bool existence_after_comparison = false;
  3058.                 for(int a = 0; a < 1000; a++)
  3059.                 {       if(compression[a] != Authorship_number[a]) {cout << "\n\n\nVerification FAILED! Numbers mismatch!\n\n\n"; return 0;}
  3060.                        
  3061.                         if(a == 999) {existence_after_comparison = true;} //Is set to true if and only if comparison succeeds to the last iteration
  3062.                 }                                                     //where each and every test would end the program on mismatch.
  3063.                
  3064.                
  3065.                
  3066.                
  3067.                
  3068.                 //The following block-bunch tests the transformation determinants, sub-keys and their five transformations, and the
  3069.                 //hot zones. (Testing only the functions to which solution ingredients are included in the file Authorship.public.)
  3070.                 //This is a boolean sieve of Eratosthenes. Zeros are prime, conveniently mapped to their element index.
  3071.                 //(It is used here like the following example: if(sieve[my_candidate] == 0) then my_candidate is prime.)
  3072.                 bool sieve[100000] = {1, 1};
  3073.                 for(int prime = 2; prime < 317; prime++) //317 is sqrt(100000)
  3074.                 {       for(int a = prime + prime; a < 100000; a += prime) {sieve[a] = 1;}
  3075.                 }
  3076.                
  3077.                 //Preparation table for the next block-bunch.
  3078.                 bool b[13500]; //b for binary, will hold the final binary super-string.
  3079.                 int zeros_counter = 0; //6,000 functions of 13,500 must remain unsolved.  (4/9)
  3080.                 int ones_counter = 0;  //7,500 functions of 13,500 must be solved.        (5/9)
  3081.                
  3082.                 int read_bookmark_crypt = 0; //Reads from Authorship_public[] but for the purpose of testing solution ingredients.
  3083.                 bool existence_after_keys = false;
  3084.                 for(int f = 0; f < 13500; f++) //Chronologically reads through 13,500 functions in Authorship_public[]. This for loop contains three items.
  3085.                 {       /// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  3086.                         /// If no solution ingredients, skips to the contiguous function ahead. //////////////////////////////////////////////////////////////////////
  3087.                         if(Authorship_public[read_bookmark_crypt + 496] == 'x')
  3088.                         {       read_bookmark_crypt += 498;
  3089.                                
  3090.                                 b[f] = 0;
  3091.                                 zeros_counter++;
  3092.                         }
  3093.                        
  3094.                         /// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  3095.                         /// If solution ingredients are present, they are tested against the current function. ///////////////////////////////////////////////////////
  3096.                         else
  3097.                         {       b[f] = 1;
  3098.                                 ones_counter++;
  3099.                                
  3100.                                 //Reads & grabs the ciphertext, transformation determinant, first sub-key, and the prime-lengths-in-order (identifying properties.)
  3101.                                 int sub_ciphertext_SUB2[2000];
  3102.                                 int sub_ciphertext_SUB4[2000];
  3103.                                 int sub_ciphertext_SUB6[2000];
  3104.                                
  3105.                                 int transformation_determinant[2000];
  3106.                                 int sub_key[2000];
  3107.                                 int prime_lengths_in_order_SUB2[1000] = {0};
  3108.                                 int prime_lengths_in_order_SUB4[1000] = {0};
  3109.                                 int prime_lengths_in_order_SUB6[1000] = {0};
  3110.                                
  3111.                                 for(int a = 0; a < 2000; a++) {read_bookmark_crypt++;} //Skips through 1st sub-ciphertext.
  3112.                                 read_bookmark_crypt++;
  3113.                                
  3114.                                 for(int a = 0; a < 2000; a++) //Loads sub_ciphertext_SUB2[].
  3115.                                 {       sub_ciphertext_SUB2[a] = Authorship_public[read_bookmark_crypt];
  3116.                                         read_bookmark_crypt++;
  3117.                                 }
  3118.                                 read_bookmark_crypt++;
  3119.                                
  3120.                                 for(int a = 0; a < 2000; a++) {read_bookmark_crypt++;} //Skips through 3rd sub-ciphertext.
  3121.                                 read_bookmark_crypt++;
  3122.                                
  3123.                                 for(int a = 0; a < 2000; a++) //Loads sub_ciphertext_SUB4[].
  3124.                                 {       sub_ciphertext_SUB4[a] = Authorship_public[read_bookmark_crypt];
  3125.                                         read_bookmark_crypt++;
  3126.                                 }
  3127.                                 read_bookmark_crypt++;
  3128.                                
  3129.                                 for(int a = 0; a < 2000; a++) {read_bookmark_crypt++;} //Skips through 5th sub-ciphertext.
  3130.                                 read_bookmark_crypt++;
  3131.                                
  3132.                                 for(int a = 0; a < 2000; a++) //Loads sub_ciphertext_SUB6[].
  3133.                                 {       sub_ciphertext_SUB6[a] = Authorship_public[read_bookmark_crypt];
  3134.                                         read_bookmark_crypt++;
  3135.                                 }
  3136.                                 read_bookmark_crypt++;
  3137.                                
  3138.                                 for(int a = 0; a < 2000; a++) //Loads transformation_determinant[].
  3139.                                 {       transformation_determinant[a] = Authorship_public[read_bookmark_crypt];
  3140.                                         read_bookmark_crypt++;
  3141.                                 }
  3142.                                 read_bookmark_crypt++;
  3143.                                
  3144.                                 long long assembled_seed_for_transformation[200] = {0}; //Prepares 200 10-digit seeds from transformation_determinant[]
  3145.                                 int transformation_determinant_read_bookmark = 0;       //for further key transformation.
  3146.                                 for(int a = 0; a < 200; a++)
  3147.                                 {       long long multiplier = 1000000000;
  3148.                                         for(int b = 0; b < 10; b++)
  3149.                                         {       assembled_seed_for_transformation[a] += (transformation_determinant[transformation_determinant_read_bookmark] * multiplier);
  3150.                                                 transformation_determinant_read_bookmark++;
  3151.                                                 multiplier /= 10;
  3152.                                         }
  3153.                                 }
  3154.                                
  3155.                                 for(int a = 0; a < 2000; a++) //Loads sub_key[].
  3156.                                 {       sub_key[a] = Authorship_public[read_bookmark_crypt];
  3157.                                         read_bookmark_crypt++;
  3158.                                 }
  3159.                                 read_bookmark_crypt++;
  3160.                                
  3161.                                 for(int a = 0; Authorship_public[read_bookmark_crypt] != '.'; a++) //Loads prime_lengths_in_order_SUB2[].
  3162.                                 {       prime_lengths_in_order_SUB2[a] = Authorship_public[read_bookmark_crypt];
  3163.                                         read_bookmark_crypt++;
  3164.                                 }
  3165.                                 read_bookmark_crypt++;
  3166.                                
  3167.                                 for(int a = 0; Authorship_public[read_bookmark_crypt] != '.'; a++) //Loads prime_lengths_in_order_SUB4[].
  3168.                                 {       prime_lengths_in_order_SUB4[a] = Authorship_public[read_bookmark_crypt];
  3169.                                         read_bookmark_crypt++;
  3170.                                 }
  3171.                                 read_bookmark_crypt++;
  3172.                                
  3173.                                 for(int a = 0; Authorship_public[read_bookmark_crypt] != '.'; a++) //Loads prime_lengths_in_order_SUB6[].
  3174.                                 {       prime_lengths_in_order_SUB6[a] = Authorship_public[read_bookmark_crypt];
  3175.                                         read_bookmark_crypt++;
  3176.                                 }
  3177.                                 read_bookmark_crypt++;
  3178.                                
  3179.                                
  3180.                                
  3181.                                
  3182.                                
  3183.                                 //Now that the function and its solution ingredients have been loaded, the testing begins.
  3184.                                 //The sub-key is transformed once for sub-function 2.
  3185.                                 for(int a = 0; a < 1999; a++) //Transformation determinant transforms sub-key at current stage (preparation for sub-function 2.)
  3186.                                 {       sub_key[a] += transformation_determinant[a];
  3187.                                         sub_key[a] = ((sub_key[a] + transformation_determinant[a + 1]) % 10); //[a + 1] means do up to 1998 or seg fault.
  3188.                                 }
  3189.                                 sub_key[1999] = ((sub_key[1999] + transformation_determinant[1000]) % 10); //Last element was not transformed so here it is.
  3190.                                
  3191.                                 for(int a = 0; a < 200; a++) //Additional constructive transformation of sub_key[] based on the extracted 200 seeds from transformation_determinant[].
  3192.                                 {       srand(assembled_seed_for_transformation[a]); //WRITES ALTERNATING BETWEEN LEFT TO RIGHT & RIGHT TO LEFT. Alternation is based on the 200 seeds.
  3193.                                        
  3194.                                         if((assembled_seed_for_transformation[a] % 2) == 0)
  3195.                                         {       for(int b = 0; b < 2000; b++) //WRITES LEFT TO RIGHT.
  3196.                                                 {       sub_key[b] = (sub_key[b] + (rand() % 10));
  3197.                                                         sub_key[b] %= 10;
  3198.                                                 }
  3199.                                         }
  3200.                                         else
  3201.                                         {       for(int b = 1999; b >= 0; b--) //WRITES RIGHT TO LEFT.
  3202.                                                 {       sub_key[b] = (sub_key[b] + (rand() % 10));
  3203.                                                         sub_key[b] %= 10;
  3204.                                                 }
  3205.                                         }
  3206.                                 }
  3207.                                 //(1st of 5 total transformations per function.) Each one is different.
  3208.                                
  3209.                                
  3210.                                
  3211.                                
  3212.                                
  3213.                                 //Generates 2nd sub-plaintext (hot zone) through deductive reasoning since the key
  3214.                                 //and output are present. The following formula helps extract plaintext quickly.
  3215.                                 //      ______________________________________________ ________________________________________________
  3216.                                 //     |                                              |                                                |
  3217.                                 //     |          if sub-key <= ciphertext            |                     else                       |
  3218.                                 //     |   then plaintext = (ciphertext - sub-key)    |    plaintext = ((10 - sub-key) + ciphertext)   |
  3219.                                 //     |______________________________________________|________________________________________________|
  3220.                                 //
  3221.                                 int sub_plaintext_SUB2[2000];
  3222.                                 for(int a = 0; a < 2000; a++)
  3223.                                 {       if(sub_key[a] <= sub_ciphertext_SUB2[a]) {sub_plaintext_SUB2[a] = (sub_ciphertext_SUB2[a] - sub_key[a]);}
  3224.                                         else {sub_plaintext_SUB2[a] = ((10 - sub_key[a]) + sub_ciphertext_SUB2[a]);}
  3225.                                 }
  3226.                                
  3227.                                
  3228.                                
  3229.                                
  3230.                                
  3231.                                 //Checks if sub_ciphertext_SUB2[] is composed entirely of whatever quantity of contiguous primes of digit lengths one to five.
  3232.                                 int read_bookmark_sub_plaintext_SUB2 = 0;
  3233.                                 for(int assembled_candidate, a = 0; prime_lengths_in_order_SUB2[a] > 0; a++) //(prime_lengths_in_order[] contains positive integers 1-5 then all zeros.)
  3234.                                 {       if(prime_lengths_in_order_SUB2[a] == 1) //If expected prime length is 1, grabs 1 digit from sub_plaintext_SUB2[].
  3235.                                         {       assembled_candidate = sub_plaintext_SUB2[read_bookmark_sub_plaintext_SUB2];
  3236.                                                
  3237.                                                 if(sieve[assembled_candidate] != 0) {cout << "\n\n\nVerification FAILED!     p01\n\n\n"; return 0;} //Tests if prime.
  3238.                                                 read_bookmark_sub_plaintext_SUB2++;
  3239.                                         }
  3240.                                        
  3241.                                         if(prime_lengths_in_order_SUB2[a] == 2) //If expected prime length is 2, assembles 2-digit integer from 2 elements in sub_plaintext_SUB2[].
  3242.                                         {       assembled_candidate = sub_plaintext_SUB2[read_bookmark_sub_plaintext_SUB2];
  3243.                                                 assembled_candidate *= 10;
  3244.                                                 assembled_candidate += sub_plaintext_SUB2[read_bookmark_sub_plaintext_SUB2 + 1];
  3245.                                                
  3246.                                                 if(sieve[assembled_candidate] != 0) {cout << "\n\n\nVerification FAILED!     p02\n\n\n"; return 0;} //Tests if prime.
  3247.                                                 read_bookmark_sub_plaintext_SUB2 += 2;
  3248.                                         }
  3249.                                        
  3250.                                         if(prime_lengths_in_order_SUB2[a] == 3) //If expected prime length is 3, assembles 3-digit integer from 3 elements in sub_plaintext_SUB2[].
  3251.                                         {       assembled_candidate = sub_plaintext_SUB2[read_bookmark_sub_plaintext_SUB2];
  3252.                                                 assembled_candidate *= 10;
  3253.                                                 assembled_candidate += sub_plaintext_SUB2[read_bookmark_sub_plaintext_SUB2 + 1];
  3254.                                                 assembled_candidate *= 10;
  3255.                                                 assembled_candidate += sub_plaintext_SUB2[read_bookmark_sub_plaintext_SUB2 + 2];
  3256.                                                
  3257.                                                 if(sieve[assembled_candidate] != 0) {cout << "\n\n\nVerification FAILED!     p03\n\n\n"; return 0;} //Tests if prime.
  3258.                                                 read_bookmark_sub_plaintext_SUB2 += 3;
  3259.                                         }
  3260.                                        
  3261.                                         if(prime_lengths_in_order_SUB2[a] == 4) //If expected prime length is 4, assembles 4-digit integer from 4 elements in sub_plaintext_SUB2[].
  3262.                                         {       assembled_candidate = sub_plaintext_SUB2[read_bookmark_sub_plaintext_SUB2];
  3263.                                                 assembled_candidate *= 10;
  3264.                                                 assembled_candidate += sub_plaintext_SUB2[read_bookmark_sub_plaintext_SUB2 + 1];
  3265.                                                 assembled_candidate *= 10;
  3266.                                                 assembled_candidate += sub_plaintext_SUB2[read_bookmark_sub_plaintext_SUB2 + 2];
  3267.                                                 assembled_candidate *= 10;
  3268.                                                 assembled_candidate += sub_plaintext_SUB2[read_bookmark_sub_plaintext_SUB2 + 3];
  3269.                                                
  3270.                                                 if(sieve[assembled_candidate] != 0) {cout << "\n\n\nVerification FAILED!     p04\n\n\n"; return 0;} //Tests if prime.
  3271.                                                 read_bookmark_sub_plaintext_SUB2 += 4;
  3272.                                         }
  3273.                                        
  3274.                                         if(prime_lengths_in_order_SUB2[a] == 5) //If expected prime length is 5, assembles 5-digit integer from 5 elements in sub_plaintext_SUB2[].
  3275.                                         {       assembled_candidate = sub_plaintext_SUB2[read_bookmark_sub_plaintext_SUB2];
  3276.                                                 assembled_candidate *= 10;
  3277.                                                 assembled_candidate += sub_plaintext_SUB2[read_bookmark_sub_plaintext_SUB2 + 1];
  3278.                                                 assembled_candidate *= 10;
  3279.                                                 assembled_candidate += sub_plaintext_SUB2[read_bookmark_sub_plaintext_SUB2 + 2];
  3280.                                                 assembled_candidate *= 10;
  3281.                                                 assembled_candidate += sub_plaintext_SUB2[read_bookmark_sub_plaintext_SUB2 + 3];
  3282.                                                 assembled_candidate *= 10;
  3283.                                                 assembled_candidate += sub_plaintext_SUB2[read_bookmark_sub_plaintext_SUB2 + 4];
  3284.                                                
  3285.                                                 if(sieve[assembled_candidate] != 0) {cout << "\n\n\nVerification FAILED!     p05\n\n\n"; return 0;} //Tests if prime.
  3286.                                                 read_bookmark_sub_plaintext_SUB2 += 5;
  3287.                                         }
  3288.                                 }
  3289.                                
  3290.                                
  3291.                                
  3292.                                
  3293.                                
  3294.                                 for(int a = 0; a < 1998; a++) //Transformation determinant transforms sub-key at current stage (preparation for sub-function 3.)
  3295.                                 {       sub_key[a] += transformation_determinant[a];
  3296.                                         sub_key[a] = ((sub_key[a] + transformation_determinant[a + 2]) % 10); //[a + 2] means do up to 1997 or seg fault.
  3297.                                 }
  3298.                                 sub_key[1998] = ((sub_key[1998] + transformation_determinant[1005]) % 10); //Last two elements were not transformed so here it is.
  3299.                                 sub_key[1999] = ((sub_key[1999] + transformation_determinant[1010]) % 10);
  3300.                                
  3301.                                 for(int a = 0; a < 200; a++) //Additional constructive transformation of sub_key[] based on the extracted 200 seeds from transformation_determinant[].
  3302.                                 {       srand(assembled_seed_for_transformation[a]); //WRITES ALTERNATING BETWEEN LEFT TO RIGHT & RIGHT TO LEFT. Alternation is based on the 200 seeds.
  3303.                                        
  3304.                                         if((assembled_seed_for_transformation[a] % 2) == 0)
  3305.                                         {       for(int b = 0; b < 2000; b++) //WRITES LEFT TO RIGHT.
  3306.                                                 {       sub_key[b] = (sub_key[b] + (rand() % 10));
  3307.                                                         sub_key[b] %= 10;
  3308.                                                 }
  3309.                                         }
  3310.                                         else
  3311.                                         {       for(int b = 1999; b >= 0; b--) //WRITES RIGHT TO LEFT.
  3312.                                                 {       sub_key[b] = (sub_key[b] + (rand() % 10));
  3313.                                                         sub_key[b] %= 10;
  3314.                                                 }
  3315.                                         }
  3316.                                 }
  3317.                                 //(2nd of 5 total transformations per function.) Each one is different.
  3318.                                 //
  3319.                                 //
  3320.                                 //        (Since only the hot zones are checked, transformation continues in preparation for the next hot zone.)
  3321.                                 //
  3322.                                 //
  3323.                                 for(int a = 0; a < 1997; a++) //Transformation determinant transforms sub-key at current stage (preparation for sub-function 4.)
  3324.                                 {       sub_key[a] += transformation_determinant[a];
  3325.                                         sub_key[a] = ((sub_key[a] + transformation_determinant[a + 3]) % 10); //[a + 3] means do up to 1996 or seg fault.
  3326.                                 }
  3327.                                 sub_key[1997] = ((sub_key[1997] + transformation_determinant[1015]) % 10); //Last three elements were not transformed so here it is.
  3328.                                 sub_key[1998] = ((sub_key[1998] + transformation_determinant[1020]) % 10);
  3329.                                 sub_key[1999] = ((sub_key[1999] + transformation_determinant[1025]) % 10);
  3330.                                
  3331.                                 for(int a = 0; a < 200; a++) //Additional constructive transformation of sub_key[] based on the extracted 200 seeds from transformation_determinant[].
  3332.                                 {       srand(assembled_seed_for_transformation[a]); //WRITES ALTERNATING BETWEEN LEFT TO RIGHT & RIGHT TO LEFT. Alternation is based on the 200 seeds.
  3333.                                        
  3334.                                         if((assembled_seed_for_transformation[a] % 2) == 0)
  3335.                                         {       for(int b = 0; b < 2000; b++) //WRITES LEFT TO RIGHT.
  3336.                                                 {       sub_key[b] = (sub_key[b] + (rand() % 10));
  3337.                                                         sub_key[b] %= 10;
  3338.                                                 }
  3339.                                         }
  3340.                                         else
  3341.                                         {       for(int b = 1999; b >= 0; b--) //WRITES RIGHT TO LEFT.
  3342.                                                 {       sub_key[b] = (sub_key[b] + (rand() % 10));
  3343.                                                         sub_key[b] %= 10;
  3344.                                                 }
  3345.                                         }
  3346.                                 }
  3347.                                 //(3rd of 5 total transformations per function.) Each one is different.
  3348.                                
  3349.                                
  3350.                                
  3351.                                
  3352.                                
  3353.                                 //Generates 4th sub-plaintext (hot zone) through deductive reasoning since the key
  3354.                                 //and output are present. The following formula helps extract plaintext quickly.
  3355.                                 //      ______________________________________________ ________________________________________________
  3356.                                 //     |                                              |                                                |
  3357.                                 //     |          if sub-key <= ciphertext            |                     else                       |
  3358.                                 //     |   then plaintext = (ciphertext - sub-key)    |    plaintext = ((10 - sub-key) + ciphertext)   |
  3359.                                 //     |______________________________________________|________________________________________________|
  3360.                                 //
  3361.                                 int sub_plaintext_SUB4[2000];
  3362.                                 for(int a = 0; a < 2000; a++)
  3363.                                 {       if(sub_key[a] <= sub_ciphertext_SUB4[a]) {sub_plaintext_SUB4[a] = (sub_ciphertext_SUB4[a] - sub_key[a]);}
  3364.                                         else {sub_plaintext_SUB4[a] = ((10 - sub_key[a]) + sub_ciphertext_SUB4[a]);}
  3365.                                 }
  3366.                                
  3367.                                
  3368.                                
  3369.                                
  3370.                                
  3371.                                 //Checks if sub_ciphertext_SUB4[] is composed entirely of whatever quantity of contiguous primes of digit lengths one to five.
  3372.                                 int read_bookmark_sub_plaintext_SUB4 = 0;
  3373.                                 for(int assembled_candidate, a = 0; prime_lengths_in_order_SUB4[a] > 0; a++) //(prime_lengths_in_order[] contains positive integers 1-5 then all zeros.)
  3374.                                 {       if(prime_lengths_in_order_SUB4[a] == 1) //If expected prime length is 1, grabs 1 digit from sub_plaintext_SUB4[].
  3375.                                         {       assembled_candidate = sub_plaintext_SUB4[read_bookmark_sub_plaintext_SUB4];
  3376.                                                
  3377.                                                 if(sieve[assembled_candidate] != 0) {cout << "\n\n\nVerification FAILED!     p06\n\n\n"; return 0;} //Tests if prime.
  3378.                                                 read_bookmark_sub_plaintext_SUB4++;
  3379.                                         }
  3380.                                        
  3381.                                         if(prime_lengths_in_order_SUB4[a] == 2) //If expected prime length is 2, assembles 2-digit integer from 2 elements in sub_plaintext_SUB4[].
  3382.                                         {       assembled_candidate = sub_plaintext_SUB4[read_bookmark_sub_plaintext_SUB4];
  3383.                                                 assembled_candidate *= 10;
  3384.                                                 assembled_candidate += sub_plaintext_SUB4[read_bookmark_sub_plaintext_SUB4 + 1];
  3385.                                                
  3386.                                                 if(sieve[assembled_candidate] != 0) {cout << "\n\n\nVerification FAILED!     p07\n\n\n"; return 0;} //Tests if prime.
  3387.                                                 read_bookmark_sub_plaintext_SUB4 += 2;
  3388.                                         }
  3389.                                        
  3390.                                         if(prime_lengths_in_order_SUB4[a] == 3) //If expected prime length is 3, assembles 3-digit integer from 3 elements in sub_plaintext_SUB4[].
  3391.                                         {       assembled_candidate = sub_plaintext_SUB4[read_bookmark_sub_plaintext_SUB4];
  3392.                                                 assembled_candidate *= 10;
  3393.                                                 assembled_candidate += sub_plaintext_SUB4[read_bookmark_sub_plaintext_SUB4 + 1];
  3394.                                                 assembled_candidate *= 10;
  3395.                                                 assembled_candidate += sub_plaintext_SUB4[read_bookmark_sub_plaintext_SUB4 + 2];
  3396.                                                
  3397.                                                 if(sieve[assembled_candidate] != 0) {cout << "\n\n\nVerification FAILED!     p08\n\n\n"; return 0;} //Tests if prime.
  3398.                                                 read_bookmark_sub_plaintext_SUB4 += 3;
  3399.                                         }
  3400.                                        
  3401.                                         if(prime_lengths_in_order_SUB4[a] == 4) //If expected prime length is 4, assembles 4-digit integer from 4 elements in sub_plaintext_SUB4[].
  3402.                                         {       assembled_candidate = sub_plaintext_SUB4[read_bookmark_sub_plaintext_SUB4];
  3403.                                                 assembled_candidate *= 10;
  3404.                                                 assembled_candidate += sub_plaintext_SUB4[read_bookmark_sub_plaintext_SUB4 + 1];
  3405.                                                 assembled_candidate *= 10;
  3406.                                                 assembled_candidate += sub_plaintext_SUB4[read_bookmark_sub_plaintext_SUB4 + 2];
  3407.                                                 assembled_candidate *= 10;
  3408.                                                 assembled_candidate += sub_plaintext_SUB4[read_bookmark_sub_plaintext_SUB4 + 3];
  3409.                                                
  3410.                                                 if(sieve[assembled_candidate] != 0) {cout << "\n\n\nVerification FAILED!     p09\n\n\n"; return 0;} //Tests if prime.
  3411.                                                 read_bookmark_sub_plaintext_SUB4 += 4;
  3412.                                         }
  3413.                                        
  3414.                                         if(prime_lengths_in_order_SUB4[a] == 5) //If expected prime length is 5, assembles 5-digit integer from 5 elements in sub_plaintext_SUB4[].
  3415.                                         {       assembled_candidate = sub_plaintext_SUB4[read_bookmark_sub_plaintext_SUB4];
  3416.                                                 assembled_candidate *= 10;
  3417.                                                 assembled_candidate += sub_plaintext_SUB4[read_bookmark_sub_plaintext_SUB4 + 1];
  3418.                                                 assembled_candidate *= 10;
  3419.                                                 assembled_candidate += sub_plaintext_SUB4[read_bookmark_sub_plaintext_SUB4 + 2];
  3420.                                                 assembled_candidate *= 10;
  3421.                                                 assembled_candidate += sub_plaintext_SUB4[read_bookmark_sub_plaintext_SUB4 + 3];
  3422.                                                 assembled_candidate *= 10;
  3423.                                                 assembled_candidate += sub_plaintext_SUB4[read_bookmark_sub_plaintext_SUB4 + 4];
  3424.                                                
  3425.                                                 if(sieve[assembled_candidate] != 0) {cout << "\n\n\nVerification FAILED!     p10\n\n\n"; return 0;} //Tests if prime.
  3426.                                                 read_bookmark_sub_plaintext_SUB4 += 5;
  3427.                                         }
  3428.                                 }
  3429.                                
  3430.                                
  3431.                                
  3432.                                
  3433.                                
  3434.                                 for(int a = 0; a < 1996; a++) //Transformation determinant transforms sub-key at current stage (preparation for sub-function 5.)
  3435.                                 {       sub_key[a] += transformation_determinant[a];
  3436.                                         sub_key[a] = ((sub_key[a] + transformation_determinant[a + 4]) % 10); //[a + 4] means do up to 1995 or seg fault.
  3437.                                 }
  3438.                                 sub_key[1996] = ((sub_key[1996] + transformation_determinant[1030]) % 10); //Last four elements were not transformed so here it is.
  3439.                                 sub_key[1997] = ((sub_key[1997] + transformation_determinant[1035]) % 10);
  3440.                                 sub_key[1998] = ((sub_key[1998] + transformation_determinant[1040]) % 10);
  3441.                                 sub_key[1999] = ((sub_key[1999] + transformation_determinant[1045]) % 10);
  3442.                                
  3443.                                 for(int a = 0; a < 200; a++) //Additional constructive transformation of sub_key[] based on the extracted 200 seeds from transformation_determinant[].
  3444.                                 {       srand(assembled_seed_for_transformation[a]); //WRITES ALTERNATING BETWEEN LEFT TO RIGHT & RIGHT TO LEFT. Alternation is based on the 200 seeds.
  3445.                                        
  3446.                                         if((assembled_seed_for_transformation[a] % 2) == 0)
  3447.                                         {       for(int b = 0; b < 2000; b++) //WRITES LEFT TO RIGHT.
  3448.                                                 {       sub_key[b] = (sub_key[b] + (rand() % 10));
  3449.                                                         sub_key[b] %= 10;
  3450.                                                 }
  3451.                                         }
  3452.                                         else
  3453.                                         {       for(int b = 1999; b >= 0; b--) //WRITES RIGHT TO LEFT.
  3454.                                                 {       sub_key[b] = (sub_key[b] + (rand() % 10));
  3455.                                                         sub_key[b] %= 10;
  3456.                                                 }
  3457.                                         }
  3458.                                 }
  3459.                                 //(4th of 5 total transformations per function.) Each one is different.
  3460.                                 //
  3461.                                 //
  3462.                                 //        (Since only the hot zones are checked, transformation continues in preparation for the next hot zone.)
  3463.                                 //
  3464.                                 //
  3465.                                 for(int a = 0; a < 1995; a++) //Transformation determinant transforms sub-key at current stage (preparation for sub-function 6.)
  3466.                                 {       sub_key[a] += transformation_determinant[a];
  3467.                                         sub_key[a] = ((sub_key[a] + transformation_determinant[a + 5]) % 10); //[a + 5] means do up to 1994 or seg fault.
  3468.                                 }
  3469.                                 sub_key[1995] = ((sub_key[1995] + transformation_determinant[1050]) % 10); //Last five elements were not transformed so here it is.
  3470.                                 sub_key[1996] = ((sub_key[1996] + transformation_determinant[1055]) % 10);
  3471.                                 sub_key[1997] = ((sub_key[1997] + transformation_determinant[1060]) % 10);
  3472.                                 sub_key[1998] = ((sub_key[1998] + transformation_determinant[1065]) % 10);
  3473.                                 sub_key[1999] = ((sub_key[1999] + transformation_determinant[1070]) % 10);
  3474.                                
  3475.                                 for(int a = 0; a < 200; a++) //Additional constructive transformation of sub_key[] based on the extracted 200 seeds from transformation_determinant[].
  3476.                                 {       srand(assembled_seed_for_transformation[a]); //WRITES ALTERNATING BETWEEN LEFT TO RIGHT & RIGHT TO LEFT. Alternation is based on the 200 seeds.
  3477.                                        
  3478.                                         if((assembled_seed_for_transformation[a] % 2) == 0)
  3479.                                         {       for(int b = 0; b < 2000; b++) //WRITES LEFT TO RIGHT.
  3480.                                                 {       sub_key[b] = (sub_key[b] + (rand() % 10));
  3481.                                                         sub_key[b] %= 10;
  3482.                                                 }
  3483.                                         }
  3484.                                         else
  3485.                                         {       for(int b = 1999; b >= 0; b--) //WRITES RIGHT TO LEFT.
  3486.                                                 {       sub_key[b] = (sub_key[b] + (rand() % 10));
  3487.                                                         sub_key[b] %= 10;
  3488.                                                 }
  3489.                                         }
  3490.                                 }
  3491.                                 //(5th of 5 total transformations per function.) Each one is different.
  3492.                                
  3493.                                
  3494.                                
  3495.                                
  3496.                                
  3497.                                 //Generates 6th sub-plaintext (hot zone) through deductive reasoning since the key
  3498.                                 //and output are present. The following formula helps extract plaintext quickly.
  3499.                                 //      ______________________________________________ ________________________________________________
  3500.                                 //     |                                              |                                                |
  3501.                                 //     |          if sub-key <= ciphertext            |                     else                       |
  3502.                                 //     |   then plaintext = (ciphertext - sub-key)    |    plaintext = ((10 - sub-key) + ciphertext)   |
  3503.                                 //     |______________________________________________|________________________________________________|
  3504.                                 //
  3505.                                 int sub_plaintext_SUB6[2000];
  3506.                                 for(int a = 0; a < 2000; a++)
  3507.                                 {       if(sub_key[a] <= sub_ciphertext_SUB6[a]) {sub_plaintext_SUB6[a] = (sub_ciphertext_SUB6[a] - sub_key[a]);}
  3508.                                         else {sub_plaintext_SUB6[a] = ((10 - sub_key[a]) + sub_ciphertext_SUB6[a]);}
  3509.                                 }
  3510.                                
  3511.                                
  3512.                                
  3513.                                
  3514.                                
  3515.                                 //Checks if sub_ciphertext_SUB6[] is composed entirely of whatever quantity of contiguous primes of digit lengths one to five.
  3516.                                 int read_bookmark_sub_plaintext_SUB6 = 0;
  3517.                                 for(int assembled_candidate, a = 0; prime_lengths_in_order_SUB6[a] > 0; a++) //(prime_lengths_in_order[] contains positive integers 1-5 then all zeros.)
  3518.                                 {       if(prime_lengths_in_order_SUB6[a] == 1) //If expected prime length is 1, grabs 1 digit from sub_plaintext_SUB6[].
  3519.                                         {       assembled_candidate = sub_plaintext_SUB6[read_bookmark_sub_plaintext_SUB6];
  3520.                                                
  3521.                                                 if(sieve[assembled_candidate] != 0) {cout << "\n\n\nVerification FAILED!     p11\n\n\n"; return 0;} //Tests if prime.
  3522.                                                 read_bookmark_sub_plaintext_SUB6++;
  3523.                                         }
  3524.                                        
  3525.                                         if(prime_lengths_in_order_SUB6[a] == 2) //If expected prime length is 2, assembles 2-digit integer from 2 elements in sub_plaintext_SUB6[].
  3526.                                         {       assembled_candidate = sub_plaintext_SUB6[read_bookmark_sub_plaintext_SUB6];
  3527.                                                 assembled_candidate *= 10;
  3528.                                                 assembled_candidate += sub_plaintext_SUB6[read_bookmark_sub_plaintext_SUB6 + 1];
  3529.                                                
  3530.                                                 if(sieve[assembled_candidate] != 0) {cout << "\n\n\nVerification FAILED!     p12\n\n\n"; return 0;} //Tests if prime.
  3531.                                                 read_bookmark_sub_plaintext_SUB6 += 2;
  3532.                                         }
  3533.                                        
  3534.                                         if(prime_lengths_in_order_SUB6[a] == 3) //If expected prime length is 3, assembles 3-digit integer from 3 elements in sub_plaintext_SUB6[].
  3535.                                         {       assembled_candidate = sub_plaintext_SUB6[read_bookmark_sub_plaintext_SUB6];
  3536.                                                 assembled_candidate *= 10;
  3537.                                                 assembled_candidate += sub_plaintext_SUB6[read_bookmark_sub_plaintext_SUB6 + 1];
  3538.                                                 assembled_candidate *= 10;
  3539.                                                 assembled_candidate += sub_plaintext_SUB6[read_bookmark_sub_plaintext_SUB6 + 2];
  3540.                                                
  3541.                                                 if(sieve[assembled_candidate] != 0) {cout << "\n\n\nVerification FAILED!     p13\n\n\n"; return 0;} //Tests if prime.
  3542.                                                 read_bookmark_sub_plaintext_SUB6 += 3;
  3543.                                         }
  3544.                                        
  3545.                                         if(prime_lengths_in_order_SUB6[a] == 4) //If expected prime length is 4, assembles 4-digit integer from 4 elements in sub_plaintext_SUB6[].
  3546.                                         {       assembled_candidate = sub_plaintext_SUB6[read_bookmark_sub_plaintext_SUB6];
  3547.                                                 assembled_candidate *= 10;
  3548.                                                 assembled_candidate += sub_plaintext_SUB6[read_bookmark_sub_plaintext_SUB6 + 1];
  3549.                                                 assembled_candidate *= 10;
  3550.                                                 assembled_candidate += sub_plaintext_SUB6[read_bookmark_sub_plaintext_SUB6 + 2];
  3551.                                                 assembled_candidate *= 10;
  3552.                                                 assembled_candidate += sub_plaintext_SUB6[read_bookmark_sub_plaintext_SUB6 + 3];
  3553.                                                
  3554.                                                 if(sieve[assembled_candidate] != 0) {cout << "\n\n\nVerification FAILED!     p14\n\n\n"; return 0;} //Tests if prime.
  3555.                                                 read_bookmark_sub_plaintext_SUB6 += 4;
  3556.                                         }
  3557.                                        
  3558.                                         if(prime_lengths_in_order_SUB6[a] == 5) //If expected prime length is 5, assembles 5-digit integer from 5 elements in sub_plaintext_SUB6[].
  3559.                                         {       assembled_candidate = sub_plaintext_SUB6[read_bookmark_sub_plaintext_SUB6];
  3560.                                                 assembled_candidate *= 10;
  3561.                                                 assembled_candidate += sub_plaintext_SUB6[read_bookmark_sub_plaintext_SUB6 + 1];
  3562.                                                 assembled_candidate *= 10;
  3563.                                                 assembled_candidate += sub_plaintext_SUB6[read_bookmark_sub_plaintext_SUB6 + 2];
  3564.                                                 assembled_candidate *= 10;
  3565.                                                 assembled_candidate += sub_plaintext_SUB6[read_bookmark_sub_plaintext_SUB6 + 3];
  3566.                                                 assembled_candidate *= 10;
  3567.                                                 assembled_candidate += sub_plaintext_SUB6[read_bookmark_sub_plaintext_SUB6 + 4];
  3568.                                                
  3569.                                                 if(sieve[assembled_candidate] != 0) {cout << "\n\n\nVerification FAILED!     p15\n\n\n"; return 0;} //Tests if prime.
  3570.                                                 read_bookmark_sub_plaintext_SUB6 += 5;
  3571.                                         }
  3572.                                 }
  3573.                         }
  3574.                        
  3575.                         //You might wonder why then even include cool zones in the Authorship files
  3576.                         //if they hold only random plaintext, and are excluded in the key_pass test.
  3577.                         //The ciphertext is produced via (sub_key[a] + plaintext[a]) mod 10.
  3578.                         //Cool zones utilize random numbers for their plaintext which are then
  3579.                         //reproduced exactly and as expected. This leaves quite the space
  3580.                         //for those who need to stuff as much data into these files as possible.
  3581.                         //And everyone's file being ~138MB, who inserted data and who didn't?
  3582.                        
  3583.                         //The read/write_bookmarks and little templates make editing a breeze.
  3584.                         //Authorship provides these subtle expansion possibilities--awaiting
  3585.                         //the many problems and needs of heroes yet to come.
  3586.                        
  3587.                         if(f == 13499) {existence_after_keys = true;} //Is set to true if and only if the testing of these items succeeds to the last iteration.
  3588.                 }
  3589.                
  3590.                 //Please refer to the table of digit pair and character assignment from Authorship option 2: "Modify Authorship number."
  3591.                 if(zeros_counter != 6000) {cout << "\n\n\nVerification FAILED!     0cn\n\n\n"; return 0;} //6,000 functions of 13,500 must remain unsolved.  (4/9)
  3592.                 if(ones_counter  != 7500) {cout << "\n\n\nVerification FAILED!     1cn\n\n\n"; return 0;} //7,500 functions of 13,500 must be solved.        (5/9)
  3593.                
  3594.                
  3595.                
  3596.                
  3597.                
  3598.                
  3599.                
  3600.                 //The following block-bunch extracts the new number & message, and tests the symbol assignments and correspondence to 5/9.
  3601.                 //REMINDER: b[] was properly filled at the beginning of the above block-bunch, b[] is a binary representation of solved/unsolved functions.
  3602.                 //Extracts the new number from b[] and applies it to extracted_number[].
  3603.                 int extracted_number[500];
  3604.                 int r = 0;  //Read bookmark for b[]. Here, it reads the first 500 groups of nine contiguous functions.
  3605.                 bool existence_after_digits = false;
  3606.                 for(int a = 0; a < 500; a++)
  3607.                 {      
  3608.                         //                                                                                                                                                              number
  3609.                         //              |              |              |              |              |              |              |              |              |                      fragment
  3610.                              if((b[r]== 0 )&&(b[r+1]== 0 )&&(b[r+2]== 0 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_number[a]= 0; r+=9;}
  3611.                         else if((b[r]== 0 )&&(b[r+1]== 0 )&&(b[r+2]== 0 )&&(b[r+3]== 1 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_number[a]= 1; r+=9;}
  3612.                         else if((b[r]== 0 )&&(b[r+1]== 0 )&&(b[r+2]== 0 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 0 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_number[a]= 2; r+=9;}
  3613.                         else if((b[r]== 0 )&&(b[r+1]== 0 )&&(b[r+2]== 0 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 0 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_number[a]= 3; r+=9;}
  3614.                         else if((b[r]== 0 )&&(b[r+1]== 0 )&&(b[r+2]== 0 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 0 )&&(b[r+8]== 1 )) {extracted_number[a]= 4; r+=9;}
  3615.                         else if((b[r]== 0 )&&(b[r+1]== 0 )&&(b[r+2]== 0 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 0 )) {extracted_number[a]= 5; r+=9;}
  3616.                         else if((b[r]== 0 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 0 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_number[a]= 6; r+=9;}
  3617.                         else if((b[r]== 0 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 0 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_number[a]= 7; r+=9;}
  3618.                         else if((b[r]== 0 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 0 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_number[a]= 8; r+=9;}
  3619.                         else if((b[r]== 0 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 0 )&&(b[r+8]== 1 )) {extracted_number[a]= 9; r+=9;}
  3620.                         else if((b[r]== 0 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 0 )) {extracted_number[a]=10; r+=9;}
  3621.                         else if((b[r]== 0 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 0 )&&(b[r+5]== 0 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_number[a]=11; r+=9;}
  3622.                         else if((b[r]== 0 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 0 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_number[a]=12; r+=9;}
  3623.                         else if((b[r]== 0 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 0 )&&(b[r+8]== 1 )) {extracted_number[a]=13; r+=9;}
  3624.                         else if((b[r]== 0 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 0 )) {extracted_number[a]=14; r+=9;}
  3625.                         else if((b[r]== 0 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 0 )&&(b[r+6]== 0 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_number[a]=15; r+=9;}
  3626.                         else if((b[r]== 0 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 0 )&&(b[r+6]== 1 )&&(b[r+7]== 0 )&&(b[r+8]== 1 )) {extracted_number[a]=16; r+=9;}
  3627.                         else if((b[r]== 0 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 0 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 0 )) {extracted_number[a]=17; r+=9;}
  3628.                         else if((b[r]== 0 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 0 )&&(b[r+7]== 0 )&&(b[r+8]== 1 )) {extracted_number[a]=18; r+=9;}
  3629.                         else if((b[r]== 0 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 0 )&&(b[r+7]== 1 )&&(b[r+8]== 0 )) {extracted_number[a]=19; r+=9;}
  3630.                         else if((b[r]== 0 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 0 )&&(b[r+8]== 0 )) {extracted_number[a]=20; r+=9;}
  3631.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 0 )&&(b[r+3]== 0 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_number[a]=21; r+=9;}
  3632.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 0 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 0 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_number[a]=22; r+=9;}
  3633.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 0 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 0 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_number[a]=23; r+=9;}
  3634.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 0 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 0 )&&(b[r+8]== 1 )) {extracted_number[a]=24; r+=9;}
  3635.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 0 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 0 )) {extracted_number[a]=25; r+=9;}
  3636.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 0 )&&(b[r+3]== 1 )&&(b[r+4]== 0 )&&(b[r+5]== 0 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_number[a]=26; r+=9;}
  3637.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 0 )&&(b[r+3]== 1 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 0 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_number[a]=27; r+=9;}
  3638.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 0 )&&(b[r+3]== 1 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 0 )&&(b[r+8]== 1 )) {extracted_number[a]=28; r+=9;}
  3639.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 0 )&&(b[r+3]== 1 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 0 )) {extracted_number[a]=29; r+=9;}
  3640.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 0 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 0 )&&(b[r+6]== 0 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_number[a]=30; r+=9;}
  3641.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 0 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 0 )&&(b[r+6]== 1 )&&(b[r+7]== 0 )&&(b[r+8]== 1 )) {extracted_number[a]=31; r+=9;}
  3642.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 0 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 0 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 0 )) {extracted_number[a]=32; r+=9;}
  3643.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 0 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 0 )&&(b[r+7]== 0 )&&(b[r+8]== 1 )) {extracted_number[a]=33; r+=9;}
  3644.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 0 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 0 )&&(b[r+7]== 1 )&&(b[r+8]== 0 )) {extracted_number[a]=34; r+=9;}
  3645.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 0 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 0 )&&(b[r+8]== 0 )) {extracted_number[a]=35; r+=9;}
  3646.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 1 )&&(b[r+3]== 0 )&&(b[r+4]== 0 )&&(b[r+5]== 0 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_number[a]=36; r+=9;}
  3647.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 1 )&&(b[r+3]== 0 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 0 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_number[a]=37; r+=9;}
  3648.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 1 )&&(b[r+3]== 0 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 0 )&&(b[r+8]== 1 )) {extracted_number[a]=38; r+=9;}
  3649.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 1 )&&(b[r+3]== 0 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 0 )) {extracted_number[a]=39; r+=9;}
  3650.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 1 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 0 )&&(b[r+6]== 0 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_number[a]=40; r+=9;}
  3651.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 1 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 0 )&&(b[r+6]== 1 )&&(b[r+7]== 0 )&&(b[r+8]== 1 )) {extracted_number[a]=41; r+=9;}
  3652.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 1 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 0 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 0 )) {extracted_number[a]=42; r+=9;}
  3653.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 1 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 0 )&&(b[r+7]== 0 )&&(b[r+8]== 1 )) {extracted_number[a]=43; r+=9;}
  3654.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 1 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 0 )&&(b[r+7]== 1 )&&(b[r+8]== 0 )) {extracted_number[a]=44; r+=9;}
  3655.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 1 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 0 )&&(b[r+8]== 0 )) {extracted_number[a]=45; r+=9;}
  3656.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 0 )&&(b[r+5]== 0 )&&(b[r+6]== 0 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_number[a]=46; r+=9;}
  3657.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 0 )&&(b[r+5]== 0 )&&(b[r+6]== 1 )&&(b[r+7]== 0 )&&(b[r+8]== 1 )) {extracted_number[a]=47; r+=9;}
  3658.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 0 )&&(b[r+5]== 0 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 0 )) {extracted_number[a]=48; r+=9;}
  3659.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 0 )&&(b[r+7]== 0 )&&(b[r+8]== 1 )) {extracted_number[a]=49; r+=9;}
  3660.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 0 )&&(b[r+7]== 1 )&&(b[r+8]== 0 )) {extracted_number[a]=50; r+=9;}
  3661.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 0 )&&(b[r+8]== 0 )) {extracted_number[a]=51; r+=9;}
  3662.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 0 )&&(b[r+6]== 0 )&&(b[r+7]== 0 )&&(b[r+8]== 1 )) {extracted_number[a]=52; r+=9;}
  3663.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 0 )&&(b[r+6]== 0 )&&(b[r+7]== 1 )&&(b[r+8]== 0 )) {extracted_number[a]=53; r+=9;}
  3664.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 0 )&&(b[r+6]== 1 )&&(b[r+7]== 0 )&&(b[r+8]== 0 )) {extracted_number[a]=54; r+=9;}
  3665.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 0 )&&(b[r+7]== 0 )&&(b[r+8]== 0 )) {extracted_number[a]=55; r+=9;}
  3666.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 0 )&&(b[r+3]== 0 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_number[a]=56; r+=9;}
  3667.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 0 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 0 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_number[a]=57; r+=9;}
  3668.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 0 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 0 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_number[a]=58; r+=9;}
  3669.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 0 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 0 )&&(b[r+8]== 1 )) {extracted_number[a]=59; r+=9;}
  3670.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 0 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 0 )) {extracted_number[a]=60; r+=9;}
  3671.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 0 )&&(b[r+3]== 1 )&&(b[r+4]== 0 )&&(b[r+5]== 0 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_number[a]=61; r+=9;}
  3672.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 0 )&&(b[r+3]== 1 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 0 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_number[a]=62; r+=9;}
  3673.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 0 )&&(b[r+3]== 1 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 0 )&&(b[r+8]== 1 )) {extracted_number[a]=63; r+=9;}
  3674.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 0 )&&(b[r+3]== 1 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 0 )) {extracted_number[a]=64; r+=9;}
  3675.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 0 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 0 )&&(b[r+6]== 0 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_number[a]=65; r+=9;}
  3676.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 0 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 0 )&&(b[r+6]== 1 )&&(b[r+7]== 0 )&&(b[r+8]== 1 )) {extracted_number[a]=66; r+=9;}
  3677.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 0 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 0 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 0 )) {extracted_number[a]=67; r+=9;}
  3678.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 0 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 0 )&&(b[r+7]== 0 )&&(b[r+8]== 1 )) {extracted_number[a]=68; r+=9;}
  3679.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 0 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 0 )&&(b[r+7]== 1 )&&(b[r+8]== 0 )) {extracted_number[a]=69; r+=9;}
  3680.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 0 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 0 )&&(b[r+8]== 0 )) {extracted_number[a]=70; r+=9;}
  3681.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 0 )&&(b[r+4]== 0 )&&(b[r+5]== 0 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_number[a]=71; r+=9;}
  3682.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 0 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 0 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_number[a]=72; r+=9;}
  3683.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 0 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 0 )&&(b[r+8]== 1 )) {extracted_number[a]=73; r+=9;}
  3684.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 0 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 0 )) {extracted_number[a]=74; r+=9;}
  3685.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 0 )&&(b[r+6]== 0 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_number[a]=75; r+=9;}
  3686.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 0 )&&(b[r+6]== 1 )&&(b[r+7]== 0 )&&(b[r+8]== 1 )) {extracted_number[a]=76; r+=9;}
  3687.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 0 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 0 )) {extracted_number[a]=77; r+=9;}
  3688.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 0 )&&(b[r+7]== 0 )&&(b[r+8]== 1 )) {extracted_number[a]=78; r+=9;}
  3689.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 0 )&&(b[r+7]== 1 )&&(b[r+8]== 0 )) {extracted_number[a]=79; r+=9;}
  3690.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 0 )&&(b[r+8]== 0 )) {extracted_number[a]=80; r+=9;}
  3691.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 0 )&&(b[r+5]== 0 )&&(b[r+6]== 0 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_number[a]=81; r+=9;}
  3692.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 0 )&&(b[r+5]== 0 )&&(b[r+6]== 1 )&&(b[r+7]== 0 )&&(b[r+8]== 1 )) {extracted_number[a]=82; r+=9;}
  3693.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 0 )&&(b[r+5]== 0 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 0 )) {extracted_number[a]=83; r+=9;}
  3694.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 0 )&&(b[r+7]== 0 )&&(b[r+8]== 1 )) {extracted_number[a]=84; r+=9;}
  3695.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 0 )&&(b[r+7]== 1 )&&(b[r+8]== 0 )) {extracted_number[a]=85; r+=9;}
  3696.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 0 )&&(b[r+8]== 0 )) {extracted_number[a]=86; r+=9;}
  3697.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 0 )&&(b[r+6]== 0 )&&(b[r+7]== 0 )&&(b[r+8]== 1 )) {extracted_number[a]=87; r+=9;}
  3698.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 0 )&&(b[r+6]== 0 )&&(b[r+7]== 1 )&&(b[r+8]== 0 )) {extracted_number[a]=88; r+=9;}
  3699.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 0 )&&(b[r+6]== 1 )&&(b[r+7]== 0 )&&(b[r+8]== 0 )) {extracted_number[a]=89; r+=9;}
  3700.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 0 )&&(b[r+7]== 0 )&&(b[r+8]== 0 )) {extracted_number[a]=90; r+=9;}
  3701.                         else if((b[r]== 1 )&&(b[r+1]== 1 )&&(b[r+2]== 0 )&&(b[r+3]== 0 )&&(b[r+4]== 0 )&&(b[r+5]== 0 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_number[a]=91; r+=9;}
  3702.                         else if((b[r]== 1 )&&(b[r+1]== 1 )&&(b[r+2]== 0 )&&(b[r+3]== 0 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 0 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_number[a]=92; r+=9;}
  3703.                         else if((b[r]== 1 )&&(b[r+1]== 1 )&&(b[r+2]== 0 )&&(b[r+3]== 0 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 0 )&&(b[r+8]== 1 )) {extracted_number[a]=93; r+=9;}
  3704.                         else if((b[r]== 1 )&&(b[r+1]== 1 )&&(b[r+2]== 0 )&&(b[r+3]== 0 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 0 )) {extracted_number[a]=94; r+=9;}
  3705.                         else if((b[r]== 1 )&&(b[r+1]== 1 )&&(b[r+2]== 0 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 0 )&&(b[r+6]== 0 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_number[a]=95; r+=9;}
  3706.                         else if((b[r]== 1 )&&(b[r+1]== 1 )&&(b[r+2]== 0 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 0 )&&(b[r+6]== 1 )&&(b[r+7]== 0 )&&(b[r+8]== 1 )) {extracted_number[a]=96; r+=9;}
  3707.                         else if((b[r]== 1 )&&(b[r+1]== 1 )&&(b[r+2]== 0 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 0 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 0 )) {extracted_number[a]=97; r+=9;}
  3708.                         else if((b[r]== 1 )&&(b[r+1]== 1 )&&(b[r+2]== 0 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 0 )&&(b[r+7]== 0 )&&(b[r+8]== 1 )) {extracted_number[a]=98; r+=9;}
  3709.                         else if((b[r]== 1 )&&(b[r+1]== 1 )&&(b[r+2]== 0 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 0 )&&(b[r+7]== 1 )&&(b[r+8]== 0 )) {extracted_number[a]=99; r+=9;} //This is 100th (00 - 99.)
  3710.                         //              |              |              |              |              |              |              |              |              |
  3711.                        
  3712.                         else {cout << "\n\n\nVerification FAILED!     ry0\n\n\n"; return 0;}
  3713.                        
  3714.                         if(a == 499) {existence_after_digits = true;} //Is set to true if and only if the testing/extraction of these items succeeds to the last iteration.
  3715.                 }
  3716.                
  3717.                
  3718.                
  3719.                
  3720.                
  3721.                 //Reminder: the read bookmark 'r' for b[] is useful here and is not reset.
  3722.                 //It continues reading the remaining 1,000 groups of nine contiguous functions.
  3723.                
  3724.                 //The following block-bunch extracts the user's message, and tests the symbol assignments and correspondence to 5/9.
  3725.                 //Extracts the message from b[]
  3726.                 char extracted_message[1001]; //This, thing, is filled in the following loop (first 1,000 elements.)
  3727.                 bool existence_after_characters = false;
  3728.                 for(int a = 0; a < 1000; a++)
  3729.                 {      
  3730.                         // Note the first symbol is reference # 96 (the Authorship null symbol.) It being first, speeds up the process. (Ref #96 = 1 1 0 0 1 0 0 1 1)
  3731.                         //                                                                                                                                                                message
  3732.                         //              |              |              |              |              |              |              |              |              |                        character
  3733.                              if((b[r]== 1 )&&(b[r+1]== 1 )&&(b[r+2]== 0 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 0 )&&(b[r+6]== 0 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_message[a]='\0'; r+=9;} ///Note the "no char symbol" (reference # 96.)
  3734.                         else if((b[r]== 0 )&&(b[r+1]== 0 )&&(b[r+2]== 0 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_message[a]= ' '; r+=9;} //(Blank or space.)
  3735.                         else if((b[r]== 0 )&&(b[r+1]== 0 )&&(b[r+2]== 0 )&&(b[r+3]== 1 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_message[a]= '!'; r+=9;}
  3736.                         else if((b[r]== 0 )&&(b[r+1]== 0 )&&(b[r+2]== 0 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 0 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_message[a]= '"'; r+=9;}
  3737.                         else if((b[r]== 0 )&&(b[r+1]== 0 )&&(b[r+2]== 0 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 0 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_message[a]= '#'; r+=9;}
  3738.                         else if((b[r]== 0 )&&(b[r+1]== 0 )&&(b[r+2]== 0 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 0 )&&(b[r+8]== 1 )) {extracted_message[a]= '$'; r+=9;}
  3739.                         else if((b[r]== 0 )&&(b[r+1]== 0 )&&(b[r+2]== 0 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 0 )) {extracted_message[a]= '%'; r+=9;}
  3740.                         else if((b[r]== 0 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 0 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_message[a]= '&'; r+=9;}
  3741.                         else if((b[r]== 0 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 0 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_message[a]='\''; r+=9;}
  3742.                         else if((b[r]== 0 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 0 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_message[a]= '('; r+=9;}
  3743.                         else if((b[r]== 0 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 0 )&&(b[r+8]== 1 )) {extracted_message[a]= ')'; r+=9;}
  3744.                         else if((b[r]== 0 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 0 )) {extracted_message[a]= '*'; r+=9;}
  3745.                         else if((b[r]== 0 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 0 )&&(b[r+5]== 0 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_message[a]= '+'; r+=9;}
  3746.                         else if((b[r]== 0 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 0 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_message[a]= ','; r+=9;}
  3747.                         else if((b[r]== 0 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 0 )&&(b[r+8]== 1 )) {extracted_message[a]= '-'; r+=9;}
  3748.                         else if((b[r]== 0 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 0 )) {extracted_message[a]= '.'; r+=9;}
  3749.                         else if((b[r]== 0 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 0 )&&(b[r+6]== 0 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_message[a]= '/'; r+=9;}
  3750.                         else if((b[r]== 0 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 0 )&&(b[r+6]== 1 )&&(b[r+7]== 0 )&&(b[r+8]== 1 )) {extracted_message[a]= '0'; r+=9;}
  3751.                         else if((b[r]== 0 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 0 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 0 )) {extracted_message[a]= '1'; r+=9;}
  3752.                         else if((b[r]== 0 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 0 )&&(b[r+7]== 0 )&&(b[r+8]== 1 )) {extracted_message[a]= '2'; r+=9;}
  3753.                         else if((b[r]== 0 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 0 )&&(b[r+7]== 1 )&&(b[r+8]== 0 )) {extracted_message[a]= '3'; r+=9;}
  3754.                         else if((b[r]== 0 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 0 )&&(b[r+8]== 0 )) {extracted_message[a]= '4'; r+=9;}
  3755.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 0 )&&(b[r+3]== 0 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_message[a]= '5'; r+=9;}
  3756.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 0 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 0 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_message[a]= '6'; r+=9;}
  3757.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 0 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 0 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_message[a]= '7'; r+=9;}
  3758.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 0 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 0 )&&(b[r+8]== 1 )) {extracted_message[a]= '8'; r+=9;}
  3759.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 0 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 0 )) {extracted_message[a]= '9'; r+=9;}
  3760.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 0 )&&(b[r+3]== 1 )&&(b[r+4]== 0 )&&(b[r+5]== 0 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_message[a]= ':'; r+=9;}
  3761.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 0 )&&(b[r+3]== 1 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 0 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_message[a]= ';'; r+=9;}
  3762.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 0 )&&(b[r+3]== 1 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 0 )&&(b[r+8]== 1 )) {extracted_message[a]= '<'; r+=9;}
  3763.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 0 )&&(b[r+3]== 1 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 0 )) {extracted_message[a]= '='; r+=9;}
  3764.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 0 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 0 )&&(b[r+6]== 0 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_message[a]= '>'; r+=9;}
  3765.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 0 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 0 )&&(b[r+6]== 1 )&&(b[r+7]== 0 )&&(b[r+8]== 1 )) {extracted_message[a]= '?'; r+=9;}
  3766.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 0 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 0 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 0 )) {extracted_message[a]= '@'; r+=9;}
  3767.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 0 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 0 )&&(b[r+7]== 0 )&&(b[r+8]== 1 )) {extracted_message[a]= 'A'; r+=9;}
  3768.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 0 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 0 )&&(b[r+7]== 1 )&&(b[r+8]== 0 )) {extracted_message[a]= 'B'; r+=9;}
  3769.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 0 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 0 )&&(b[r+8]== 0 )) {extracted_message[a]= 'C'; r+=9;}
  3770.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 1 )&&(b[r+3]== 0 )&&(b[r+4]== 0 )&&(b[r+5]== 0 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_message[a]= 'D'; r+=9;}
  3771.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 1 )&&(b[r+3]== 0 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 0 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_message[a]= 'E'; r+=9;}
  3772.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 1 )&&(b[r+3]== 0 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 0 )&&(b[r+8]== 1 )) {extracted_message[a]= 'F'; r+=9;}
  3773.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 1 )&&(b[r+3]== 0 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 0 )) {extracted_message[a]= 'G'; r+=9;}
  3774.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 1 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 0 )&&(b[r+6]== 0 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_message[a]= 'H'; r+=9;}
  3775.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 1 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 0 )&&(b[r+6]== 1 )&&(b[r+7]== 0 )&&(b[r+8]== 1 )) {extracted_message[a]= 'I'; r+=9;}
  3776.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 1 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 0 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 0 )) {extracted_message[a]= 'J'; r+=9;}
  3777.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 1 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 0 )&&(b[r+7]== 0 )&&(b[r+8]== 1 )) {extracted_message[a]= 'K'; r+=9;}
  3778.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 1 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 0 )&&(b[r+7]== 1 )&&(b[r+8]== 0 )) {extracted_message[a]= 'L'; r+=9;}
  3779.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 1 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 0 )&&(b[r+8]== 0 )) {extracted_message[a]= 'M'; r+=9;}
  3780.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 0 )&&(b[r+5]== 0 )&&(b[r+6]== 0 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_message[a]= 'N'; r+=9;}
  3781.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 0 )&&(b[r+5]== 0 )&&(b[r+6]== 1 )&&(b[r+7]== 0 )&&(b[r+8]== 1 )) {extracted_message[a]= 'O'; r+=9;}
  3782.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 0 )&&(b[r+5]== 0 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 0 )) {extracted_message[a]= 'P'; r+=9;}
  3783.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 0 )&&(b[r+7]== 0 )&&(b[r+8]== 1 )) {extracted_message[a]= 'Q'; r+=9;}
  3784.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 0 )&&(b[r+7]== 1 )&&(b[r+8]== 0 )) {extracted_message[a]= 'R'; r+=9;}
  3785.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 0 )&&(b[r+8]== 0 )) {extracted_message[a]= 'S'; r+=9;}
  3786.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 0 )&&(b[r+6]== 0 )&&(b[r+7]== 0 )&&(b[r+8]== 1 )) {extracted_message[a]= 'T'; r+=9;}
  3787.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 0 )&&(b[r+6]== 0 )&&(b[r+7]== 1 )&&(b[r+8]== 0 )) {extracted_message[a]= 'U'; r+=9;}
  3788.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 0 )&&(b[r+6]== 1 )&&(b[r+7]== 0 )&&(b[r+8]== 0 )) {extracted_message[a]= 'V'; r+=9;}
  3789.                         else if((b[r]== 0 )&&(b[r+1]== 1 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 0 )&&(b[r+7]== 0 )&&(b[r+8]== 0 )) {extracted_message[a]= 'W'; r+=9;}
  3790.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 0 )&&(b[r+3]== 0 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_message[a]= 'X'; r+=9;}
  3791.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 0 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 0 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_message[a]= 'Y'; r+=9;}
  3792.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 0 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 0 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_message[a]= 'Z'; r+=9;}
  3793.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 0 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 0 )&&(b[r+8]== 1 )) {extracted_message[a]= '['; r+=9;}
  3794.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 0 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 0 )) {extracted_message[a]='\\'; r+=9;}
  3795.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 0 )&&(b[r+3]== 1 )&&(b[r+4]== 0 )&&(b[r+5]== 0 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_message[a]= ']'; r+=9;}
  3796.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 0 )&&(b[r+3]== 1 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 0 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_message[a]= '^'; r+=9;}
  3797.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 0 )&&(b[r+3]== 1 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 0 )&&(b[r+8]== 1 )) {extracted_message[a]= '_'; r+=9;}
  3798.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 0 )&&(b[r+3]== 1 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 0 )) {extracted_message[a]= '`'; r+=9;}
  3799.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 0 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 0 )&&(b[r+6]== 0 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_message[a]= 'a'; r+=9;}
  3800.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 0 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 0 )&&(b[r+6]== 1 )&&(b[r+7]== 0 )&&(b[r+8]== 1 )) {extracted_message[a]= 'b'; r+=9;}
  3801.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 0 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 0 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 0 )) {extracted_message[a]= 'c'; r+=9;}
  3802.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 0 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 0 )&&(b[r+7]== 0 )&&(b[r+8]== 1 )) {extracted_message[a]= 'd'; r+=9;}
  3803.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 0 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 0 )&&(b[r+7]== 1 )&&(b[r+8]== 0 )) {extracted_message[a]= 'e'; r+=9;}
  3804.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 0 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 0 )&&(b[r+8]== 0 )) {extracted_message[a]= 'f'; r+=9;}
  3805.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 0 )&&(b[r+4]== 0 )&&(b[r+5]== 0 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_message[a]= 'g'; r+=9;}
  3806.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 0 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 0 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_message[a]= 'h'; r+=9;}
  3807.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 0 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 0 )&&(b[r+8]== 1 )) {extracted_message[a]= 'i'; r+=9;}
  3808.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 0 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 0 )) {extracted_message[a]= 'j'; r+=9;}
  3809.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 0 )&&(b[r+6]== 0 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_message[a]= 'k'; r+=9;}
  3810.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 0 )&&(b[r+6]== 1 )&&(b[r+7]== 0 )&&(b[r+8]== 1 )) {extracted_message[a]= 'l'; r+=9;}
  3811.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 0 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 0 )) {extracted_message[a]= 'm'; r+=9;}
  3812.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 0 )&&(b[r+7]== 0 )&&(b[r+8]== 1 )) {extracted_message[a]= 'n'; r+=9;}
  3813.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 0 )&&(b[r+7]== 1 )&&(b[r+8]== 0 )) {extracted_message[a]= 'o'; r+=9;}
  3814.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 0 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 0 )&&(b[r+8]== 0 )) {extracted_message[a]= 'p'; r+=9;}
  3815.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 0 )&&(b[r+5]== 0 )&&(b[r+6]== 0 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_message[a]= 'q'; r+=9;}
  3816.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 0 )&&(b[r+5]== 0 )&&(b[r+6]== 1 )&&(b[r+7]== 0 )&&(b[r+8]== 1 )) {extracted_message[a]= 'r'; r+=9;}
  3817.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 0 )&&(b[r+5]== 0 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 0 )) {extracted_message[a]= 's'; r+=9;}
  3818.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 0 )&&(b[r+7]== 0 )&&(b[r+8]== 1 )) {extracted_message[a]= 't'; r+=9;}
  3819.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 0 )&&(b[r+7]== 1 )&&(b[r+8]== 0 )) {extracted_message[a]= 'u'; r+=9;}
  3820.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 0 )&&(b[r+8]== 0 )) {extracted_message[a]= 'v'; r+=9;}
  3821.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 0 )&&(b[r+6]== 0 )&&(b[r+7]== 0 )&&(b[r+8]== 1 )) {extracted_message[a]= 'w'; r+=9;}
  3822.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 0 )&&(b[r+6]== 0 )&&(b[r+7]== 1 )&&(b[r+8]== 0 )) {extracted_message[a]= 'x'; r+=9;}
  3823.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 0 )&&(b[r+6]== 1 )&&(b[r+7]== 0 )&&(b[r+8]== 0 )) {extracted_message[a]= 'y'; r+=9;}
  3824.                         else if((b[r]== 1 )&&(b[r+1]== 0 )&&(b[r+2]== 1 )&&(b[r+3]== 1 )&&(b[r+4]== 1 )&&(b[r+5]== 1 )&&(b[r+6]== 0 )&&(b[r+7]== 0 )&&(b[r+8]== 0 )) {extracted_message[a]= 'z'; r+=9;}
  3825.                         else if((b[r]== 1 )&&(b[r+1]== 1 )&&(b[r+2]== 0 )&&(b[r+3]== 0 )&&(b[r+4]== 0 )&&(b[r+5]== 0 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_message[a]= '{'; r+=9;}
  3826.                         else if((b[r]== 1 )&&(b[r+1]== 1 )&&(b[r+2]== 0 )&&(b[r+3]== 0 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 0 )&&(b[r+7]== 1 )&&(b[r+8]== 1 )) {extracted_message[a]= '|'; r+=9;}
  3827.                         else if((b[r]== 1 )&&(b[r+1]== 1 )&&(b[r+2]== 0 )&&(b[r+3]== 0 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 0 )&&(b[r+8]== 1 )) {extracted_message[a]= '}'; r+=9;}
  3828.                         else if((b[r]== 1 )&&(b[r+1]== 1 )&&(b[r+2]== 0 )&&(b[r+3]== 0 )&&(b[r+4]== 0 )&&(b[r+5]== 1 )&&(b[r+6]== 1 )&&(b[r+7]== 1 )&&(b[r+8]== 0 )) {extracted_message[a]= '~'; r+=9;} //This makes all 95 printable ASCII characters (but only printable.)
  3829.                         //              |              |              |              |              |              |              |              |              |
  3830.                        
  3831.                         else {cout << "\n\n\nVerification FAILED!     db6\n\n\n"; return 0;}
  3832.                        
  3833.                         if(a == 999) {existence_after_characters = true;} //Is set to true if and only if the testing/extraction of these items succeeds to the last iteration.
  3834.                 }
  3835.                
  3836.                
  3837.                
  3838.                
  3839.                
  3840.                 //The following safety procedure attempts to prevent side-channel and block-skipping attacks. These "existence" variables must have
  3841.                 //been initialized in the last iterations of their testing loops, surpassing many termination commands for failed verification.
  3842.                 cout << "\n\n\n\n\n\n\n\n\n\n\n";
  3843.                
  3844.                 if(existence_after_comparison == true) {comparison = true; cout << "\n\tCompression matches old number.       (1 of 4)";}
  3845.                 if(existence_after_keys       == true) {keys       = true; cout << "\n\tKeys satisfy 5/9 of 13,500 functions. (2 of 4)";}
  3846.                 if(existence_after_digits     == true) {digits     = true; cout << "\n\tNew number corresponds to assignment. (3 of 4)";}
  3847.                 if(existence_after_characters == true) {characters = true; cout << "\n\tCharacters correspond to assignment.  (4 of 4)";}
  3848.                
  3849.                 if((comparison == true) &&
  3850.                    (keys       == true) &&
  3851.                    (digits     == true) &&
  3852.                    (characters == true))
  3853.                 {      
  3854.                         //Writes the new number to file Authorship.number (overwrites.)
  3855.                         out_stream.open("Authorship.number");
  3856.                        
  3857.                         for(int a = 0; a < 500; a++)
  3858.                         {       if(extracted_number[a] < 10) {out_stream << '0';} //This ensures for example, "4" turns into "04" (digit pair.)
  3859.                                 out_stream << extracted_number[a];
  3860.                         }
  3861.                        
  3862.                         out_stream.close();
  3863.                        
  3864.                         cout << "\n\n\tVerification SUCCESSFUL!\n\n"
  3865.                        
  3866.                              << "Authorship.number has been overwritten with their new number.\n"
  3867.                              << "You can discard any and all old modification information.\n";
  3868.                        
  3869.                         if(extracted_message[0] != '\0')
  3870.                         {       cout << "The user included a message for this authentication event: \n\n";
  3871.                                
  3872.                                 for(int a = 0; a < 1000; a++) {cout << extracted_message[a];}
  3873.                                 cout << "\n\n";
  3874.                         }
  3875.                         else
  3876.                         {       cout << "There is no message for this authentication event.\n";
  3877.                         }
  3878.                 }
  3879.                
  3880.                 else {cout << "\n\n\nVerification FAILED!\n\n\n"; return 0;}
  3881.         }
  3882. }
  3883.