class App {
  private static final String DB_URL = "jdbc:h2:mem:testdb";

  private App() {

  }

  /**
   * Program entry point.
   * @param args command line args.
   * @throws IOException if any
   * @throws ClassNotFoundException if any
   */
  public static void main(String[] args) throws IOException, ClassNotFoundException {<FILL_FUNCTION_BODY>}

  private static void deleteSchema(DataSource dataSource) {
    try (var connection = dataSource.getConnection();
         var statement = connection.createStatement()) {
      statement.execute(CountrySchemaSql.DELETE_SCHEMA_SQL);
    } catch (SQLException e) {
      LOGGER.info("Exception thrown " + e.getMessage());
    }
  }

  private static void createSchema(DataSource dataSource) {
    try (var connection = dataSource.getConnection();
         var statement = connection.createStatement()) {
      statement.execute(CountrySchemaSql.CREATE_SCHEMA_SQL);
    } catch (SQLException e) {
      LOGGER.info("Exception thrown " + e.getMessage());
    }
  }

  private static DataSource createDataSource() {
    var dataSource = new JdbcDataSource();
    dataSource.setURL(DB_URL);
    return dataSource;
  }
}

    final var dataSource = createDataSource();

    deleteSchema(dataSource);
    createSchema(dataSource);

    // Initializing Country Object China
    final var China = new Country(
            86,
            "China",
            "Asia",
            "Chinese"
    );

    // Initializing Country Object UnitedArabEmirates
    final var UnitedArabEmirates = new Country(
            971,
            "United Arab Emirates",
            "Asia",
            "Arabic"
    );

    // Initializing CountrySchemaSql Object with parameter "China" and "dataSource"
    final var serializedChina = new CountrySchemaSql(China, dataSource);
    // Initializing CountrySchemaSql Object with parameter "UnitedArabEmirates" and "dataSource"
    final var serializedUnitedArabEmirates = new CountrySchemaSql(UnitedArabEmirates, dataSource);

    /*
    By using CountrySchemaSql.insertCountry() method, the private (Country) type variable  within Object
    CountrySchemaSql will be serialized to a set of bytes and persist to database.
    For more details of CountrySchemaSql.insertCountry() method please refer to CountrySchemaSql.java file
    */
    serializedChina.insertCountry();
    serializedUnitedArabEmirates.insertCountry();

    /*
    By using CountrySchemaSql.selectCountry() method, CountrySchemaSql object will read the sets of bytes from database
    and deserialize it to Country object.
    For more details of CountrySchemaSql.selectCountry() method please refer to CountrySchemaSql.java file
    */
    serializedChina.selectCountry();
    serializedUnitedArabEmirates.selectCountry();
  
<no_super_class>