#ifndef _THEATOMS_H
#define _THEATOMS_H

class Hydrogen : public Element {
  public: Hydrogen() : Element("Hydrogen", 1.00794, "non-metal", "H") {};
};

class Helium : public Element {
  public: Helium() : Element("Helium", 4.003, "noble gas", "He") {};
};

class Lithium : public Element {
  public: Lithium() : Element("Lithium", 6.941, "alkali metal", "Li") {};
};

class Beryllium : public Element {
  public: Beryllium() : Element("Beryllium", 9.0122, "alkaline earth metal", "Be") {};
};

class Boron : public Element {
  public: Boron() : Element("Boron", 10.81, "non-metal", "B") {};
};

class Carbon : public Element {
  public: Carbon() : Element("Carbon", 12.001, "non-metal", "C") {};
};

class Nitrogen : public Element {
  public: Nitrogen() : Element("Nitrogen", 14.007, "non-metal", "N") {};
};

class Oxygen : public Element {
  public: Oxygen() : Element("Oxygen", 15.999, "non-metal", "O") {};
};

class Florine : public Element {
  public: Florine() : Element("Florine", 18.998, "non-metal", "F") {};
};

class Neon : public Element {
  public: Neon() : Element("Neon", 20.179, "noble gas", "Ne") {};
};

class Sodium : public Element {
  public: Sodium() : Element("Sodium", 22.990, "alkali metal", "Na") {};
};

class Magnesium : public Element {
  public: Magnesium() : Element("Magnesium", 24.305, "alkaline earth metal", "Mg") {};
};

class Aluminum : public Element {
  public: Aluminum() : Element("Aluminum", 26.98, "other metal", "Al") {};
};

class Silicon : public Element {
  public: Silicon() : Element("Silicon", 28.086, "non-metal", "Si") {};
};

class Phosporus : public Element {
  public: Phosporus() : Element("Phosporus", 30.974, "non-metal", "P") {};
};

class Sulfer : public Element {
  public: Sulfer() : Element("Sulfer", 32.06, "non-metal", "S") {};
};

class Chlorine : public Element {
  public: Chlorine() : Element("Chlorine", 35.453, "non-metal", "Cl") {};
};

class Argon : public Element {
  public: Argon() : Element("Argon", 39.948, "noble gas", "Ar") {};
};

class Potassium : public Element {
  public: Potassium() : Element("Potassium", 39.098, "alkali metal", "K") {};
};

class Calcium : public Element {
  public: Calcium() : Element("Calcium", 40.08, "alkaline earth metal", "Ca") {};
};

class Scandium : public Element {
  public: Scandium() : Element("Scandium", 44.956, "transition metal", "Sc") {};
};

class Titanium : public Element {
  public: Titanium() : Element("Titanium", 47.88, "transition metal", "Ti") {};
};

class Vanadium : public Element {
  public: Vanadium() : Element("Vanadium", 50.94, "transition metal", "V") {};
};

class Chromium : public Element {
  public: Chromium() : Element("Chromium", 51.996, "transition metal", "Cr") {};
};

class Manganese : public Element {
  public: Manganese() : Element("Manganese", 54.938, "transition metal", "Mn") {};
};

class Iron : public Element {
  public: Iron() : Element("Iron", 55.847, "transition metal", "Fe") {};
};

class Cobalt : public Element {
  public: Cobalt() : Element("Cobalt", 58.9332, "transition metal", "Co") {};
};

class Nickel : public Element {
  public: Nickel() : Element("Nickel", 58.69, "transition metal", "Ni") {};
};

class Copper : public Element {
  public: Copper() : Element("Copper", 63.546, "transition metal", "Cu") {};
};

class Zinc : public Element {
  public: Zinc() : Element("Zinc", 65.39, "transition metal", "Zn") {};
};

class Gallium : public Element {
  public: Gallium() : Element("Gallium", 69.72, "other metal", "Ga") {};
};

class Germanium : public Element {
  public: Germanium() : Element("Germanium", 72.59, "other metal", "Ge") {};
};

class Arsenic : public Element {
  public: Arsenic() : Element("Arsenic", 74.922, "non-metal", "As") {};
};

class Selenium : public Element {
  public: Selenium() : Element("Selenium", 78.96, "non-metal", "Se") {};
};

class Bromine : public Element {
  public: Bromine() : Element("Bromine", 79.904, "non-metal", "Br") {};
};

class Krypton : public Element {
  public: Krypton() : Element("Krypton", 83.80, "noble gas", "Kr") {};
};

class Rubidium : public Element {
  public: Rubidium() : Element("Rubidium", 85.468, "alkali metal", "Rb") {};
};

class Strontium : public Element {
  public: Strontium() : Element("Strontium", 87.62, "alkaline earth metal", "Sr") {};
};

class Yttrrium : public Element {
  public: Yttrrium() : Element("Yttrrium", 88.9059, "transition metal", "Y") {};
};

class Zirconium : public Element {
  public: Zirconium() : Element("Zirconium", 91.224, "transition metal", "Zr") {};
};

class Niobium : public Element {
  public: Niobium() : Element("Niobium", 92.91, "transition metal", "Nb") {};
};

class Molybdenum : public Element {
  public: Molybdenum() : Element("Molybdenum", 95.94, "transition metal", "Mo") {};
};

class Technetium : public Element {
  public: Technetium() : Element("Technetium", 98, "transition metal", "Tc") {};
};

class Ruthenium : public Element {
  public: Ruthenium() : Element("Ruthenium", 101.07, "transition metal", "R") {};
};

class Rhodium : public Element {
  public: Rhodium() : Element("Rhodium", 102.906, "transition metal", "Rh") {};
};

class Palladium : public Element {
  public: Palladium() : Element("Palladium", 106.42, "transition metal", "Pd") {};
};

class Silver : public Element {
  public: Silver() : Element("Silver", 107.868, "transition metal", "Ag") {};
};

class Cadmium : public Element {
  public: Cadmium() : Element("Cadmium", 112.41, "transition metal", "Cd") {};
};

class Indium : public Element {
  public: Indium() : Element("Indium", 114.82, "other metal", "In") {};
};

class Tin : public Element {
  public: Tin() : Element("Tin", 118.71, "other metal", "Sn") {};
};

class Antimony : public Element {
  public: Antimony() : Element("Antimony", 121.75, "other metal", "Sb") {};
};

class Tellurium : public Element {
  public: Tellurium() : Element("Tellurium", 127.60, "non-metal", "Te") {};
};

class Iodine : public Element {
  public: Iodine() : Element("Iodine", 126.905, "non-metal", "I") {};
};

class Xeon : public Element {
  public: Xeon() : Element("Xeon", 131.29, "noble gas", "Xe") {};
};

class Cesium : public Element {
  public: Cesium() : Element("Cesium", 132.91, "alkali metal", "Cs") {};
};

class Barium : public Element {
  public: Barium() : Element("Barium", 137.33, "alkaline earth metal", "Ba") {};
};

class Lanthanum : public Element {
  public: Lanthanum() : Element("Lanthanum", 138.906, "lanthanide series", "La") {};
};

class Cerium : public Element {
  public: Cerium() : Element("Cerium", 140.12, "lanthanide series", "Ce") {};
};

class Praseodymium : public Element {
  public: Praseodymium() : Element("Praseodymium", 140.908, "lanthanide series", "Pr") {};
};

class Neodymium : public Element {
  public: Neodymium() : Element("Neodymium", 144.24, "lanthanide series", "Nd") {};
};

class Promethium : public Element {
  public: Promethium() : Element("Promethium", 145, "lanthanide series", "Pm") {};
};

class Samarium : public Element {
  public: Samarium() : Element("Samarium", 150.36, "lanthanide series", "Sm") {};
};

class Europium : public Element {
  public: Europium() : Element("Europium", 151.96, "lanthanide series", "Eu") {};
};

class Gadolinium : public Element {
  public: Gadolinium() : Element("Gadolinium", 157.25, "lanthanide series", "Gd") {};
};

class Terbium : public Element {
  public: Terbium() : Element("Terbium", 158.925, "lanthanide series", "Tb") {};
};

class Dysprosium : public Element {
  public: Dysprosium() : Element("Dysprosium", 162.50, "lanthanide series", "Dy") {};
};

class Holmium : public Element {
  public: Holmium() : Element("Holmium", 164.93, "lanthanide series", "Ho") {};
};

class Erbium : public Element {
  public: Erbium() : Element("Erbium", 167.26, "lanthanide series", "Er") {};
};

class Thulium : public Element {
  public: Thulium() : Element("Thulium", 168.934, "lanthanide series", "Tm") {};
};

class Ytterbium : public Element {
  public: Ytterbium() : Element("Ytterbium", 173.04, "lanthanide series", "Yb") {};
};

class Lutertium : public Element {
  public: Lutertium() : Element("Lutertium", 174.967, "lanthanide series", "Lu") {};
};

class Hafnium : public Element {
  public: Hafnium() : Element("Hafnium", 178.49, "transition metal", "Hf") {};
};

class Tantalum : public Element {
  public: Tantalum() : Element("Tantalum", 180.95, "transition metal", "Ta") {};
};

class Tungsten : public Element {
  public: Tungsten() : Element("Tungsten", 183.85, "transition metal", "W") {};
};

class Rhenium : public Element {
  public: Rhenium() : Element("Rhenium", 186.207, "transition metal", "Re") {};
};

class Osmium : public Element {
  public: Osmium() : Element("Osmium", 190.2, "transition metal", "Os") {};
};

class Iridium : public Element {
  public: Iridium() : Element("Iridium", 192.22, "transition metal", "Ir") {};
};

class Platnium : public Element {
  public: Platnium() : Element("Platnium", 195.08, "transition metal", "Pt") {};
};

class Gold : public Element {
  public: Gold() : Element("Gold", 196.967, "transition metal", "Au") {};
};

class Mercury : public Element {
  public: Mercury() : Element("Mercury", 200.59, "transition metal", "Hg") {};
};

class Thallium : public Element {
  public: Thallium() : Element("Thallium", 204.383, "other metal", "Tl") {};
};

class Lead : public Element {
  public: Lead() : Element("Lead", 207.2, "other metal", "Pb") {};
};

class Bismuth : public Element {
  public: Bismuth() : Element("Bismuth", 208.98, "other metal", "Bi") {};
};

class Polonium : public Element {
  public: Polonium() : Element("Polonium", 209, "other metal", "Po") {};
};

class Astatine : public Element {
  public: Astatine() : Element("Astatine", 210, "non-metal", "At") {};
};

class Radon : public Element {
  public: Radon() : Element("Radon", 222, "noble gas", "Rn") {};
};

class Francium : public Element {
  public: Francium() : Element("Francium", 223, "alkali metal", "Fr") {};
};

class Radium : public Element {
  public: Radium() : Element("Radium", 226.025, "alkaline earth metal", "Ra") {};
};

class Actinium : public Element {
  public: Actinium() : Element("Actinium", 227.028, "actinide series", "Ac") {};
};

class Thorium : public Element {
  public: Thorium() : Element("Thorium", 232.038, "actinide series", "Th") {};
};

class Protactinium : public Element {
  public: Protactinium() : Element("Protactinium", 231.036, "actinide series", "Pa") {};
};

class Uranium : public Element {
  public: Uranium() : Element("Uranium", 238.029, "actinide series", "U") {};
};

class Neptunium : public Element {
  public: Neptunium() : Element("Neptunium", 237.048, "actinide series", "Np") {};
};

class Plutonium : public Element {
  public: Plutonium() : Element("Plutonium", 244, "actinide series", "Pu") {};
};

class Americium : public Element {
  public: Americium() : Element("Americium", 243, "actinide series", "Am") {};
};

class Curium : public Element {
  public: Curium() : Element("Curium", 247, "actinide series", "Cm") {};
};

class Berkelium : public Element {
  public: Berkelium() : Element("Berkelium", 247, "actinide series", "Bk") {};
};

class Californium : public Element {
  public: Californium() : Element("Californium", 251, "actinide series", "Cf") {};
};

class Einstenium : public Element {
  public: Einstenium() : Element("Einstenium", 252, "actinide series", "Es") {};
};

class Fermium : public Element {
  public: Fermium() : Element("Fermium", 257, "actinide series", "Fm") {};
};

class Mendelevium : public Element {
  public: Mendelevium() : Element("Mendelevium", 258, "actinide series", "Md") {};
};

class Nobelium : public Element {
  public: Nobelium() : Element("Nobelium", 259, "actinide series", "No") {};
};

class Lawrencium : public Element {
  public: Lawrencium() : Element("Lawrencium", 260, "actinide series", "Lr") {};
};

class Rutherfordium : public Element {
  public: Rutherfordium() : Element("Rutherfordium", 261, "transition metal", "Rf") {};
};

class Hahnium : public Element {
  public: Hahnium() : Element("Hahnium", 262, "transition metal", "HA") {};
};

class Unnilhexium : public Element {
  public: Unnilhexium() : Element("Unnilhexium", 263, "transition metal", "Unh") {};
};

class Nielsbohrium : public Element {
  public: Nielsbohrium() : Element("Nielsbohrium", 262, "transition metal", "Ns") {};
};

class Hassium : public Element {
  public: Hassium() : Element("Hassium", 265, "transition metal", "Hs") {};
};

class Meitnerium : public Element {
  public: Meitnerium() : Element("Meitnerium", 266, "transition metal", "Mt") {};
};

class Ununnilium : public Element {
  public: Ununnilium() : Element("Ununnilium", 269, "transition metal", "Uun") {};
};

class Unununium : public Element {
  public: Unununium() : Element("Unununium", 272, "transition metal", "Uuu") {};
};

class Ununbium : public Element {
  public: Ununbium() : Element("Ununbium", 277, "transition metal", "Uub") {};
};

#endif
