text:
<?php
defined('EUA_VERSION') or die('Access denied');
/**
 * This is the Model for the app "forum".
 *
 * @package apps/forum
 * @author Léo Plouvier <leo.plouvier@isep.fr>
 * @version 1.1.0-07-01-2015
 */

class ForumModel {
  protected $db;

  public function __construct() {
    $this->db = System::getDb();
  }

  public function createTopic(array $data) {
    $prep = $this->db->prepare('
     INSERT INTO forum_topics (titre,description,date_creation,id_createur)
     VALUES (:titre,:description,NOW(),:id_createur)
   ');

    $session = System::getSession();
    if ($session->isConnected()) {
      $user_id = $_SESSION['userid'];
    }

    $prep->bindParam(':titre', $data['titre']);
    $prep->bindParam(':description', $data['description']);
    $prep->bindParam(':id_createur', $user_id);

    if ($prep->execute()) {
      return $this->db->lastInsertId('id');
    } else {
      return false;
    }
  }

  public function countTopics() {
    $prep = $this->db->prepare('SELECT * FROM forum_topics');

    $prep->execute();

    return $prep->rowCount();
  }
  public function countMessages($topic_id) {
    $prep = $this->db->prepare('SELECT * FROM forum_messages WHERE id_topic = :topic_id');
    $prep->bindParam(':topic_id', $topic_id, PDO::PARAM_INT);
    $prep->execute();

    return $prep->rowCount();
  }

  public function getTopic($topic_id) {
    $prep = $this->db->prepare('SELECT * FROM forum_topics WHERE id = :topic_id');

    $prep->bindParam(':topic_id', $topic_id, PDO::PARAM_INT);
    $prep->execute();

    $topic = $prep->fetch(PDO::FETCH_ASSOC);

    return $topic;
 }

 public function getTopics($from = 0, $number = 9999999, $order = 'date_creation', $asc = false) {
   $prep = $this->db->prepare('
     SELECT *
     FROM forum_topics
     ORDER BY '.$order.' '.($asc ? 'ASC' : 'DESC').'
     LIMIT :from, :number
   ');

   $prep->bindParam(':from', $from, PDO::PARAM_INT);
   $prep->bindParam(':number', $number, PDO::PARAM_INT);
   $prep->execute();

   return $prep->fetchAll(PDO::FETCH_ASSOC);
 }
 public function getCreatorForTopic($topic_id) {
   $prep = $this->db->prepare('SELECT users.nickname, users.id FROM users INNER JOIN forum_topics ON  users.id = forum_topics.id_createur WHERE forum_topics.id = :topic_id');
   $prep->bindParam(':topic_id', $topic_id, PDO::PARAM_INT);
   $prep->execute();
   return $prep->fetch(PDO::FETCH_ASSOC);
 }

  public function addComment($topic_id, array $data) {
    $prep = $this->db->prepare('
      INSERT INTO forum_messages (message,date,id_createur,id_topic)
      VALUES (:message,NOW(),:id_createur,:id_topic)
    ');

    $session = System::getSession();
    if ($session->isConnected()) {
     $user_id = $_SESSION['userid'];
    }

    $prep->bindParam(':message', $data['message']);
    $prep->bindParam(':id_createur',$user_id);
    $prep->bindParam(':id_topic',$topic_id);

    if ($prep->execute()) {
      return $this->db->lastInsertId('id');
    } else {
      return false;
    }
  }

  public function getComment($comment_id) {
    $prep = $this->db->prepare('SELECT * FROM forum_messages WHERE id = :comment_id');

    $prep->bindParam(':comment_id', $comment_id, PDO::PARAM_INT);
    $prep->execute();

    $comment = $prep->fetch(PDO::FETCH_ASSOC);

    return $comment;
  }

  public function getComments($topic_id, $from = 0, $number = 9999999, $order = 'date', $asc = true) {
    $prep = $this->db->prepare('
      SELECT *
      FROM forum_messages
      WHERE id_topic = :topic_id
      ORDER BY '.$order.' '.($asc ? 'ASC' : 'DESC').'
      LIMIT :from, :number
    ');

    $prep->bindParam(':topic_id', $topic_id);
    $prep->bindParam(':from', $from, PDO::PARAM_INT);
    $prep->bindParam(':number', $number, PDO::PARAM_INT);
    $prep->execute();

    return $prep->fetchAll(PDO::FETCH_ASSOC);
  }

  public function getCreatorForComments($comment_id) {
    $prep = $this->db->prepare('SELECT users.nickname, users.id FROM users INNER JOIN forum_messages ON  users.id = forum_messages.id_createur WHERE forum_messages.id = :comment_id');
    $prep->bindParam(':comment_id', $comment_id, PDO::PARAM_INT);
    $prep->execute();
    return $prep->fetch(PDO::FETCH_ASSOC);
  }

  public function getAvatarForCreator($user_id){
    $prep = $this->db->prepare('SELECT photoprofil FROM users WHERE id = :user_id');
    $prep->bindParam(':user_id',$user_id);
    $prep->execute();
    return $prep->fetch(PDO::FETCH_ASSOC);
  }

  public function deleteTopic($topic_id){
    $prep = $this->db->prepare('DELETE FROM forum_topics WHERE id = :topic_id');
    $prep->bindParam(':topic_id',$topic_id);
    $prep->execute();
    $prep = $this->db->prepare('DELETE FROM forum_messages WHERE id_topic = :topic_id');
    $prep->bindParam(':topic_id',$topic_id);
    $prep->execute();
    return 'deleted';
  }
  public function deleteComment($comment_id){
    $prep = $this->db->prepare('DELETE FROM forum_messages WHERE id = :comment_id');
    $prep->bindParam(':comment_id',$comment_id);
    $prep->execute();
    return 'deleted';
  }
}
?>


text:
#pragma once

#include "il2cpp-config.h"

#ifndef _MSC_VER
# include <alloca.h>
#else
# include <malloc.h>
#endif

#include <stdint.h>

#include "mscorlib_System_SystemException4206535862.h"

#ifdef __clang__
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Winvalid-offsetof"
#pragma clang diagnostic ignored "-Wunused-variable"
#endif

// System.Threading.ThreadAbortException
struct  ThreadAbortException_t2237739745  : public SystemException_t4206535862
{
public:

public:
};

#ifdef __clang__
#pragma clang diagnostic pop
#endif

redpajama_set_name: RedPajamaGithub


text:
"use strict";

const {strict: assert} = require("assert");

const {with_function_call_disallowed_rewire, zrequire} = require("../zjsunit/namespace");
const {run_test} = require("../zjsunit/test");
const $ = require("../zjsunit/zjquery");
const {page_params} = require("../zjsunit/zpage_params");

const hash_util = zrequire("hash_util");
const compose_state = zrequire("compose_state");
const narrow_banner = zrequire("narrow_banner");
const narrow_state = zrequire("narrow_state");
const people = zrequire("people");
const stream_data = zrequire("stream_data");
const {Filter} = zrequire("../js/filter");
const narrow = zrequire("narrow");

function empty_narrow_html(title, html, search_data) {
    const opts = {
        title,
        html,
        search_data,
    };
    return require("../../static/templates/empty_feed_notice.hbs")(opts);
}

function set_filter(operators) {
    operators = operators.map((op) => ({
        operator: op[0],
        operand: op[1],
    }));
    narrow_state.set_current_filter(new Filter(operators));
}

const me = {
    email: "me@example.com",
    user_id: 5,
    full_name: "Me Myself",
};

const alice = {
    email: "alice@example.com",
    user_id: 23,
    full_name: "Alice Smith",
};

const ray = {
    email: "ray@example.com",
    user_id: 22,
    full_name: "Raymond",
};

function hide_all_empty_narrow_messages() {
    const all_empty_narrow_messages = [
        ".empty_feed_notice",
        "#empty_narrow_message",
        "#nonsubbed_private_nonexistent_stream_narrow_message",
        "#nonsubbed_stream_narrow_message",
        "#empty_star_narrow_message",
        "#empty_narrow_all_mentioned",
        "#empty_narrow_all_private_message",
        "#no_unread_narrow_message",
        "#non_existing_user",
        "#non_existing_users",
        "#empty_narrow_private_message",
        "#empty_narrow_self_private_message",
        "#empty_narrow_multi_private_message",
        "#empty_narrow_group_private_message",
        "#silent_user",
        "#empty_search_narrow_message",
        "#empty_narrow_resolved_topics",
    ];
    for (const selector of all_empty_narrow_messages) {
        $(selector).hide();
    }
}

run_test("empty_narrow_html", ({mock_template}) => {
    mock_template("empty_feed_notice.hbs", true, (data, html) => html);

    let actual_html = empty_narrow_html("This is a title", "
 This is the html
");
    assert.equal(
        actual_html,
        `

 This is a title

 This is the html

`,
    );

    const search_data_with_all_search_types = {
        topic_query: "test",
        stream_query: "new",
        has_stop_word: true,
        query_words: [
            {query_word: "search", is_stop_word: false},
            {query_word: "a", is_stop_word: true},
        ],
    };
    actual_html = empty_narrow_html(
        "This is a title",
        undefined,
        search_data_with_all_search_types,
    );
    assert.equal(
        actual_html,
        `

 This is a title

        Some common words were excluded from your search.
You searched for:
        stream: new
        topic: test
            search
            a

`,
    );

    const search_data_with_stream_without_stop_words = {
        has_stop_word: false,
        stream_query: "hello world",
        query_words: [{query_word: "searchA", is_stop_word: false}],
    };
    actual_html = empty_narrow_html(
        "This is a title",
        undefined,
        search_data_with_stream_without_stop_words,
    );
    assert.equal(
        actual_html,
        `

 This is a title

        You searched for:
        stream: hello world
            searchA

`,
    );

    const search_data_with_topic_without_stop_words = {
        has_stop_word: false,
        topic_query: "hello",
        query_words: [{query_word: "searchB", is_stop_word: false}],
    };
    actual_html = empty_narrow_html(
        "This is a title",
        undefined,
        search_data_with_topic_without_stop_words,
    );
    assert.equal(
        actual_html,
        `

 This is a title

        You searched for:
        topic: hello
            searchB

`,
    );
});

run_test("uris", () => {
    people.add_active_user(ray);
    people.add_active_user(alice);
    people.add_active_user(me);
    people.initialize_current_user(me.user_id);

    let uri = hash_util.pm_with_uri(ray.email);
    assert.equal(uri, "#narrow/pm-with/22-ray");

    uri = hash_util.huddle_with_uri("22,23");
    assert.equal(uri, "#narrow/pm-with/22,23-group");

    uri = hash_util.by_sender_uri(ray.email);
    assert.equal(uri, "#narrow/sender/22-ray");

    let emails = hash_util.decode_operand("pm-with", "22,23-group");
    assert.equal(emails, "alice@example.com,ray@example.com");

    emails = hash_util.decode_operand("pm-with", "5,22,23-group");
    assert.equal(emails, "alice@example.com,ray@example.com");

    emails = hash_util.decode_operand("pm-with", "5-group");
    assert.equal(emails, "me@example.com");
});

run_test("show_empty_narrow_message", ({mock_template}) => {
    page_params.stop_words = [];

    mock_template("empty_feed_notice.hbs", true, (data, html) => html);

    narrow_state.reset_current_filter();
    hide_all_empty_narrow_messages();
    narrow_banner.show_empty_narrow_message();
    assert.equal(
        $(".empty_feed_notice_main").html(),
        empty_narrow_html(
            "translated: Nothing's been sent here yet!",
            'translated HTML: Why not start the conversation?',
        ),
    );

    // for non-existent or private stream
    set_filter([["stream", "Foo"]]);
    hide_all_empty_narrow_messages();
    narrow_banner.show_empty_narrow_message();
    assert.equal(
        $(".empty_feed_notice_main").html(),
        empty_narrow_html("translated: This stream does not exist or is private."),
    );

    // for non sub public stream
    stream_data.add_sub({name: "ROME", stream_id: 99});
    set_filter([["stream", "Rome"]]);
    hide_all_empty_narrow_messages();
    narrow_banner.show_empty_narrow_message();
    assert.equal(
        $(".empty_feed_notice_main").html(),
        empty_narrow_html(
            "translated: You aren't subscribed to this stream and nobody has talked about that yet!",
            'translated HTML: <button class="button white rounded stream_sub_unsub_button sea-green" type="button" name="subscription">Subscribe</button>',
        ),
    );

    set_filter([["is", "starred"]]);
    hide_all_empty_narrow_messages();
    narrow_banner.show_empty_narrow_message();
    assert.equal(
        $(".empty_feed_notice_main").html(),
        empty_narrow_html(
            "translated: You haven't starred anything yet!",
            'translated HTML: Learn more about starring messages here.',
        ),
    );

    set_filter([["is", "mentioned"]]);
    hide_all_empty_narrow_messages();
    narrow_banner.show_empty_narrow_message();
    assert.equal(
        $(".empty_feed_notice_main").html(),
        empty_narrow_html(
            "translated: You haven't been mentioned yet!",
            'translated HTML: Learn more about mentions here.',
        ),
    );

    set_filter([["is", "private"]]);
    hide_all_empty_narrow_messages();
    narrow_banner.show_empty_narrow_message();
    assert.equal(
        $(".empty_feed_notice_main").html(),
        empty_narrow_html(
            "translated: You have no private messages yet!",
            'translated HTML: Why not start the conversation?',
        ),
    );

    set_filter([["is", "unread"]]);
    hide_all_empty_narrow_messages();
    narrow_banner.show_empty_narrow_message();
    assert.equal(
        $(".empty_feed_notice_main").html(),
        empty_narrow_html("translated: You have no unread messages!"),
    );

    set_filter([["is", "resolved"]]);
    hide_all_empty_narrow_messages();
    narrow_banner.show_empty_narrow_message();
    assert.equal(
        $(".empty_feed_notice_main").html(),
        empty_narrow_html("translated: No topics are marked as resolved."),
    );

    set_filter([["pm-with", ["Yo"]]]);
    hide_all_empty_narrow_messages();
    narrow_banner.show_empty_narrow_message();
    assert.equal(
        $(".empty_feed_notice_main").html(),
        empty_narrow_html("translated: This user does not exist!"),
    );

    people.add_active_user(alice);
    set_filter([["pm-with", ["alice@example.com", "Yo"]]]);
    hide_all_empty_narrow_messages();
    narrow_banner.show_empty_narrow_message();
    assert.equal(
        $(".empty_feed_notice_main").html(),
        empty_narrow_html("translated: One or more of these users do not exist!"),
    );

    set_filter([["pm-with", "alice@example.com"]]);
    hide_all_empty_narrow_messages();
    narrow_banner.show_empty_narrow_message();
    assert.equal(
        $(".empty_feed_notice_main").html(),
        empty_narrow_html(
            "translated: You have no private messages with this person yet!",
            'translated HTML: Why not start the conversation?',
        ),
    );

    people.add_active_user(me);
    people.initialize_current_user(me.user_id);
    set_filter([["pm-with", me.email]]);
    hide_all_empty_narrow_messages();
    narrow_banner.show_empty_narrow_message();
    assert.equal(
        $(".empty_feed_notice_main").html(),
        empty_narrow_html(
            "translated: You have not sent any private messages to yourself yet!",
            'translated HTML: Why not start a conversation with yourself?',
        ),
    );

    set_filter([["pm-with", me.email + "," + alice.email]]);
    hide_all_empty_narrow_messages();
    narrow_banner.show_empty_narrow_message();
    assert.equal(
        $(".empty_feed_notice_main").html(),
        empty_narrow_html(
            "translated: You have no private messages with these people yet!",
            'translated HTML: Why not start the conversation?',
        ),
    );

    set_filter([["group-pm-with", "alice@example.com"]]);
    hide_all_empty_narrow_messages();
    narrow_banner.show_empty_narrow_message();
    assert.equal(
        $(".empty_feed_notice_main").html(),
        empty_narrow_html(
            "translated: You have no group private messages with this person yet!",
            'translated HTML: Why not start the conversation?',
        ),
    );

    set_filter([["sender", "ray@example.com"]]);
    hide_all_empty_narrow_messages();
    narrow_banner.show_empty_narrow_message();
    assert.equal(
        $(".empty_feed_notice_main").html(),
        empty_narrow_html("translated: You haven't received any messages sent by this user yet!"),
    );

    set_filter([["sender", "sinwar@example.com"]]);
    hide_all_empty_narrow_messages();
    narrow_banner.show_empty_narrow_message();
    assert.equal(
        $(".empty_feed_notice_main").html(),
        empty_narrow_html("translated: This user does not exist!"),
    );

    set_filter([
        ["sender", "alice@example.com"],
        ["stream", "Rome"],
    ]);
    hide_all_empty_narrow_messages();
    narrow_banner.show_empty_narrow_message();
    assert.equal(
        $(".empty_feed_notice_main").html(),
        empty_narrow_html(
            "translated: Nothing's been sent here yet!",
            'translated HTML: Why not start the conversation?',
        ),
    );

    set_filter([["is", "invalid"]]);
    hide_all_empty_narrow_messages();
    narrow_banner.show_empty_narrow_message();
    assert.equal(
        $(".empty_feed_notice_main").html(),
        empty_narrow_html(
            "translated: Nothing's been sent here yet!",
            'translated HTML: Why not start the conversation?',
        ),
    );

    const my_stream = {
        name: "my stream",
        stream_id: 103,
    };
    stream_data.add_sub(my_stream);
    stream_data.subscribe_myself(my_stream);

    set_filter([["stream", "my stream"]]);
    hide_all_empty_narrow_messages();
    narrow_banner.show_empty_narrow_message();
    assert.equal(
        $(".empty_feed_notice_main").html(),
        empty_narrow_html(
            "translated: Nothing's been sent here yet!",
            'translated HTML: Why not start the conversation?',
        ),
    );

    set_filter([["stream", ""]]);
    hide_all_empty_narrow_messages();
    narrow_banner.show_empty_narrow_message();
    assert.equal(
        $(".empty_feed_notice_main").html(),
        empty_narrow_html("translated: This stream does not exist or is private."),
    );
});

run_test("show_empty_narrow_message_with_search", ({mock_template}) => {
    page_params.stop_words = [];

    mock_template("empty_feed_notice.hbs", true, (data, html) => html);

    narrow_state.reset_current_filter();
    set_filter([["search", "grail"]]);
    hide_all_empty_narrow_messages();
    narrow_banner.show_empty_narrow_message();
    assert.match($(".empty_feed_notice_main").html(), /grail<\/span>/);
});

run_test("hide_empty_narrow_message", () => {
    $(".empty_feed_notice_main").html("
Nothing here
");
    narrow_banner.hide_empty_narrow_message();
    assert.equal($(".empty_feed_notice").text(), "never-been-set");
});

run_test("show_search_stopwords", ({mock_template}) => {
    page_params.stop_words = ["what", "about"];

    mock_template("empty_feed_notice.hbs", true, (data, html) => html);

    const expected_search_data = {
        has_stop_word: true,
        query_words: [
            {query_word: "what", is_stop_word: true},
            {query_word: "about", is_stop_word: true},
            {query_word: "grail", is_stop_word: false},
        ],
    };
    narrow_state.reset_current_filter();
    set_filter([["search", "what about grail"]]);
    hide_all_empty_narrow_messages();
    narrow_banner.show_empty_narrow_message();
    assert.equal(
        $(".empty_feed_notice_main").html(),
        empty_narrow_html("translated: No search results", undefined, expected_search_data),
    );

    const expected_stream_search_data = {
        has_stop_word: true,
        stream_query: "streamA",
        query_words: [
            {query_word: "what", is_stop_word: true},
            {query_word: "about", is_stop_word: true},
            {query_word: "grail", is_stop_word: false},
        ],
    };
    set_filter([
        ["stream", "streamA"],
        ["search", "what about grail"],
    ]);
    hide_all_empty_narrow_messages();
    narrow_banner.show_empty_narrow_message();
    assert.equal(
        $(".empty_feed_notice_main").html(),
        empty_narrow_html("translated: No search results", undefined, expected_stream_search_data),
    );

    const expected_stream_topic_search_data = {
        has_stop_word: true,
        stream_query: "streamA",
        topic_query: "topicA",
        query_words: [
            {query_word: "what", is_stop_word: true},
            {query_word: "about", is_stop_word: true},
            {query_word: "grail", is_stop_word: false},
        ],
    };
    set_filter([
        ["stream", "streamA"],
        ["topic", "topicA"],
        ["search", "what about grail"],
    ]);
    hide_all_empty_narrow_messages();
    narrow_banner.show_empty_narrow_message();
    assert.equal(
        $(".empty_feed_notice_main").html(),
        empty_narrow_html(
            "translated: No search results",
            undefined,
            expected_stream_topic_search_data,
        ),
    );
});

run_test("show_invalid_narrow_message", ({mock_template}) => {
    narrow_state.reset_current_filter();
    mock_template("empty_feed_notice.hbs", true, (data, html) => html);

    stream_data.add_sub({name: "streamA", stream_id: 88});
    stream_data.add_sub({name: "streamB", stream_id: 77});

    set_filter([
        ["stream", "streamA"],
        ["stream", "streamB"],
    ]);
    hide_all_empty_narrow_messages();
    narrow_banner.show_empty_narrow_message();
    assert.equal(
        $(".empty_feed_notice_main").html(),
        empty_narrow_html(
            "translated: No search results",
            "translated HTML:
You are searching for messages that belong to more than one stream, which is not possible.
",
        ),
    );

    set_filter([
        ["topic", "topicA"],
        ["topic", "topicB"],
    ]);
    hide_all_empty_narrow_messages();
    narrow_banner.show_empty_narrow_message();
    assert.equal(
        $(".empty_feed_notice_main").html(),
        empty_narrow_html(
            "translated: No search results",
            "translated HTML:
You are searching for messages that belong to more than one topic, which is not possible.
",
        ),
    );

    people.add_active_user(ray);
    people.add_active_user(alice);

    set_filter([
        ["sender", "alice@example.com"],
        ["sender", "ray@example.com"],
    ]);
    hide_all_empty_narrow_messages();
    narrow_banner.show_empty_narrow_message();
    assert.equal(
        $(".empty_feed_notice_main").html(),
        empty_narrow_html(
            "translated: No search results",
            "translated HTML:
You are searching for messages that are sent by more than one person, which is not possible.
",
        ),
    );
});

run_test("narrow_to_compose_target errors", () => {
    function test() {
        with_function_call_disallowed_rewire(narrow, "activate", () => {
            narrow.to_compose_target();
        });
    }

    // No-op when not composing.
    compose_state.set_message_type(false);
    test();

    // No-op when empty stream.
    compose_state.set_message_type("stream");
    compose_state.stream_name("");
    test();
});

run_test("narrow_to_compose_target streams", ({override_rewire}) => {
    const args = {called: false};
    override_rewire(narrow, "activate", (operators, opts) => {
        args.operators = operators;
        args.opts = opts;
        args.called = true;
    });

    compose_state.set_message_type("stream");
    stream_data.add_sub({name: "ROME", stream_id: 99});
    compose_state.stream_name("ROME");

    // Test with existing topic
    compose_state.topic("one");
    args.called = false;
    narrow.to_compose_target();
    assert.equal(args.called, true);
    assert.equal(args.opts.trigger, "narrow_to_compose_target");
    assert.deepEqual(args.operators, [
        {operator: "stream", operand: "ROME"},
        {operator: "topic", operand: "one"},
    ]);

    // Test with new topic
    compose_state.topic("four");
    args.called = false;
    narrow.to_compose_target();
    assert.equal(args.called, true);
    assert.deepEqual(args.operators, [
        {operator: "stream", operand: "ROME"},
        {operator: "topic", operand: "four"},
    ]);

    // Test with blank topic
    compose_state.topic("");
    args.called = false;
    narrow.to_compose_target();
    assert.equal(args.called, true);
    assert.deepEqual(args.operators, [{operator: "stream", operand: "ROME"}]);

    // Test with no topic
    compose_state.topic(undefined);
    args.called = false;
    narrow.to_compose_target();
    assert.equal(args.called, true);
    assert.deepEqual(args.operators, [{operator: "stream", operand: "ROME"}]);
});

run_test("narrow_to_compose_target PMs", ({override_rewire}) => {
    const args = {called: false};
    override_rewire(narrow, "activate", (operators, opts) => {
        args.operators = operators;
        args.opts = opts;
        args.called = true;
    });

    let emails;
    override_rewire(compose_state, "private_message_recipient", () => emails);

    compose_state.set_message_type("private");
    people.add_active_user(ray);
    people.add_active_user(alice);
    people.add_active_user(me);

    // Test with valid person
    emails = "alice@example.com";
    args.called = false;
    narrow.to_compose_target();
    assert.equal(args.called, true);
    assert.deepEqual(args.operators, [{operator: "pm-with", operand: "alice@example.com"}]);

    // Test with valid persons
    emails = "alice@example.com,ray@example.com";
    args.called = false;
    narrow.to_compose_target();
    assert.equal(args.called, true);
    assert.deepEqual(args.operators, [
        {operator: "pm-with", operand: "alice@example.com,ray@example.com"},
    ]);

    // Test with some invalid persons
    emails = "alice@example.com,random,ray@example.com";
    args.called = false;
    narrow.to_compose_target();
    assert.equal(args.called, true);
    assert.deepEqual(args.operators, [{operator: "is", operand: "private"}]);

    // Test with all invalid persons
    emails = "alice,random,ray";
    args.called = false;
    narrow.to_compose_target();
    assert.equal(args.called, true);
    assert.deepEqual(args.operators, [{operator: "is", operand: "private"}]);

    // Test with no persons
    emails = "";
    args.called = false;
    narrow.to_compose_target();
    assert.equal(args.called, true);
    assert.deepEqual(args.operators, [{operator: "is", operand: "private"}]);
});


text:
ACCEPTED

#### According to
The Catalogue of Life, 3rd January 2011

#### Published in
Bulletin of the U. S. Department of Agriculture, Bureau Animal Industry 118: 58 (1910)

#### Original name
Penicillium chrysogenum var. chrysogenum Thom, 1910

### Remarks
null


text:
<?php

defined("_JEXEC") or die;

// Getting params from template
$params = JFactory::getApplication()->getTemplate(true)->params;

$app = JFactory::getApplication();
$doc = JFactory::getDocument();
$lang = JFactory::getLanguage();
$this->language = $doc->language;
$this->direction = $doc->direction;
$input = $app->input;
$user = JFactory::getUser();

// Detecting Active Variables
$option = $input->get("option", "");
$view = $input->get("view", "");
$layout = $input->get("layout", "");
$task = $input->get("task", "");
$itemid = $input->get("Itemid", "");
$sitename = $app->getCfg("sitename");

$cpanel = ($option === "com_cpanel");

$showSubmenu = false;
$this->submenumodules = JModuleHelper::getModules("submenu");
foreach ($this->submenumodules as $submenumodule) {
	$output = JModuleHelper::renderModule($submenumodule);
	if (strlen($output)) {
		$showSubmenu = true;
		break;
	}
}

// Logo file
if ($params->get("logoFile")) {
	$logo = JUri::root() . $params->get("logoFile");
}
else {
	$logo = $this->baseurl . "/templates/" . $this->template . "/images/logo.png";
}

// Template Parameters
$displayHeader = $params->get("displayHeader", "1");
$statusFixed = $params->get("statusFixed", "1");
$stickyToolbar = $params->get("stickyToolbar", "1");
?>
<!DOCTYPE html>
<html class = "no-js" xml:lang = "<?php echo $this->language; ?>" lang = "<?php echo $this->language; ?>" dir = "<?php echo $this->direction; ?>">

	<meta http-equiv = "content-type" content = "text/html; charset=utf-8"/>
	<meta http-equiv = "X-UA-Compatible" content = "IE=edge,chrome=1">
	<meta name = "viewport" content = "width=device-width, initial-scale=1.0">
	<title><?php echo $this->title; ?> <?php echo htmlspecialchars($this->error->getMessage()); ?></title>
	<?php // If debug  mode
	$debug = JFactory::getConfig()->get("debug_lang");
	if ((defined("JDEBUG") && JDEBUG) || $debug) : ?>

		<link rel = "stylesheet" href = "<?php echo JUri::root() ?>/media/cms/css/debug.css" type = "text/css"/>
	<?php endif; ?>
	<?php
	// If Right-to-Left
	if ($this->direction == "rtl") {
		?>
		<link rel = "stylesheet" href = "<?php echo JUri::root() ?>/media/jui/css/bootstrap-rtl.css" type = "text/css"/>
	<?php
	}
	// Load specific language related CSS
	$file = "language/" . $lang->getTag() . "/" . $lang->getTag() . ".css";
	if (is_file($file)) {
		?>
		<link rel = "stylesheet" href = "<?php echo $file; ?>" type = "text/css"/>
	<?php
	}
	?>
	<link rel = "stylesheet" href = "<?php echo $this->baseurl; ?>/templates/<?php echo $this->template; ?>/styles/css/template<?php echo($this->direction == "rtl" ? "-rtl" : ""); ?>.css" type = "text/css"/>
	<link href = "<?php echo $this->baseurl ?>/templates/<?php echo $this->template; ?>/favicon.ico" rel = "shortcut icon" type = "image/vnd.microsoft.icon"/>

<body class = "admin <?php echo $option . " view-" . $view . " layout-" . $layout . " task-" . $task . " "; ?>" data-spy = "scroll" data-target = ".subhead" data-offset = "87">

				<?php if ($params->get("admin_menus") != "0") : ?>

				<?php endif; ?>
				<a class = "admin-logo" href = "<?php echo $this->baseurl; ?>">

				<a class = "brand hidden-desktop hidden-tablet" href = "<?php echo JUri::root(); ?>" title = "<?php echo JText::sprintf("TPL_<%= _.slugify(name).toUpperCase() %>_PREVIEW", $sitename); ?>" target = "_blank"><?php echo JHtml::_("string.truncate", $sitename, 14, false, false); ?>

				<?php if ($params->get("admin_menus") != "0") : ?>

					<?php else : ?>

						<?php endif; ?>
						<?php
						// Display menu modules
						$this->menumodules = JModuleHelper::getModules("menu");
						foreach ($this->menumodules as $menumodule) {
							$output = JModuleHelper::renderModule($menumodule, array("style" => "none"));
							$params = new JRegistry;
							$params->loadString($menumodule->params);
							echo $output;
						}
						?>
						<ul class = "nav nav-user<?php echo ($this->direction == "rtl") ? " pull-left" : " pull-right"; ?>">

										<?php echo $user->name; ?>

										<a href = "index.php?option=com_admin&task=profile.edit&id=<?php echo $user->id; ?>"><?php echo JText::_("TPL_<%= _.slugify(name).toUpperCase() %>_EDIT_ACCOUNT"); ?>

										<a href = "<?php echo JRoute::_("index.php?option=com_login&task=logout&" . JSession::getFormToken() . "=1"); ?>"><?php echo JText::_("TPL_<%= _.slugify(name).toUpperCase() %>_LOGOUT"); ?>

						<a class = "brand visible-desktop visible-tablet" href = "<?php echo JUri::root(); ?>" title = "<?php echo JText::sprintf("TPL_<%= _.slugify(name).toUpperCase() %>_PREVIEW", $sitename); ?>" target = "_blank"><?php echo JHtml::_("string.truncate", $sitename, 14, false, false); ?>

		<?php if ($displayHeader) : ?>

				<img src = "<?php echo $logo; ?>" class = "logo"/>

		<?php endif; ?>

<?php echo JText::_("ERROR"); ?>

	<?php if ((!$statusFixed) && ($this->countModules("status"))) : ?>

						© <?php echo date("Y"); ?> <?php echo $sitename; ?>

				<?php
				// Display status modules
				$this->statusmodules = JModuleHelper::getModules("status");
				foreach ($this->statusmodules as $statusmodule) {
					$output = JModuleHelper::renderModule($statusmodule, array("style" => "no"));
					$params = new JRegistry;
					$params->loadString($statusmodule->params);
					echo $output;
				}
				?>

	<?php endif; ?>

<?php echo JText::_("JERROR_AN_ERROR_HAS_OCCURRED"); ?>

						<?php echo $this->error->getCode(); ?> <?php echo $this->error->getMessage(); ?>

						<a href = "<?php echo $this->baseurl; ?>" class = "btn"> <?php echo JText::_("JGLOBAL_TPL_CPANEL_LINK_TEXT"); ?>


text:
package com.snowplowanalytics.snowplow.enrich.stream
package sinks

/** Stdout Sink for Scala enrichment */
class StderrSink() extends Sink {

  /**
   * Side-effecting function to store the EnrichedEvent
   * to the given output stream.
   * EnrichedEvent takes the form of a tab-delimited
   * String until such time as https://github.com/snowplow/snowplow/issues/211
   * is implemented.
   * @param events Sequence of enriched events and (unused) partition keys
   * @return Whether to checkpoint
   */
  override def storeEnrichedEvents(events: List[(String, String)]): Boolean = {
    events.foreach(e => System.err.println(e._1))
    !events.isEmpty
  }

  override def flush(): Unit = ()
}


text:
/* vim: set et ts=4 sts=4 sw=4 tw=72 : */
/* See the LICENSE file for the license of the project */
package uk.ac.cam.UROP.twentyfourteen.public_interfaces;

import java.util.Map;
import java.util.Collection;
import java.io.File;
import java.io.IOException;
import uk.ac.cam.UROP.twentyfourteen.EmptyDirectoryExpectedException;

/**
 * This is the interface the testing end of the project should use.
 *

 * For a concrete implementation
 *
 * @author Isaac Dunn <ird28@cam.ac.uk>
 * @author Kovacsics Robert <rmk35@cam.ac.uk>
 * @version 0.2
 */
public interface TesterInterface
{
    /**
     * Clones repository to specified directory, if it can get
     * repository access.
     *

     * It tries to access the repository with the id_rsa key.
     *
     * @param directory The empty directory to which you want to clone
     * into.
     *
     * @throws EmptyDirectoryExpectedException The File given is either
     * not a directory or not empty.
     * @throws IOException Something went wrong (typically not
     * recoverable).
     */
    public void cloneTo(File directory) throws EmptyDirectoryExpectedException, IOException;

    /**
     * Gets the source files
     *
     * @return List of source files
     *
     * @throws IOException Something went wrong (typically not
     * recoverable).
     */
    public Collection<String> getSources() throws IOException;

    /**
     * Returns a map of test files and a list of required files for
     * those tests to run
     *
     * @return Map of test files and a list of the test's dependencies
     */
    public Map<String, Collection<String>> getTests();

    /**
     * Callback to let the repository store the test result
     *
     * @param results The object file encapsulating the results of the
     * test.
     */
    public void saveTestResults(Object results);

    /**
     * Gets the CRSID of the repository owner
     *
     * @return CRSID of the repository owner
     */
    public String getCRSID();

    /**
     * Gets the name of the repository
     *
     * @return Name of the repository
     */
    public String getName();
}


text:
package com.kind.samples.netty.protocal;

import io.netty.buffer.ByteBuf;
import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.LengthFieldBasedFrameDecoder;

/**
 * 说明:
 *
 * @author waylau.com 2015年11月11日
 */
public class ProtocolDecoder extends LengthFieldBasedFrameDecoder {
    private static final int HEADER_SIZE = 10;

    private byte magic; // 魔数
    private byte msgType; // 消息类型
    private short reserve; // 保留字
    private short sn; // 序列号
    private int len; // 长度

    /**
     * @param maxFrameLength
     * @param lengthFieldOffset
     * @param lengthFieldLength
     * @param lengthAdjustment
     * @param initialBytesToStrip
     */
    public ProtocolDecoder(int maxFrameLength, int lengthFieldOffset,
                           int lengthFieldLength, int lengthAdjustment, int initialBytesToStrip) {
        super(maxFrameLength, lengthFieldOffset, lengthFieldLength,
                lengthAdjustment, initialBytesToStrip);
    }

    /**
     * @param maxFrameLength
     * @param lengthFieldOffset
     * @param lengthFieldLength
     * @param lengthAdjustment
     * @param initialBytesToStrip
     * @param failFast
     */
    public ProtocolDecoder(int maxFrameLength, int lengthFieldOffset,
                           int lengthFieldLength, int lengthAdjustment,
                           int initialBytesToStrip, boolean failFast) {
        super(maxFrameLength, lengthFieldOffset, lengthFieldLength,
                lengthAdjustment, initialBytesToStrip, failFast);
        // TODO Auto-generated constructor stub
    }

    @Override
    protected ProtocolMsg decode(ChannelHandlerContext ctx, ByteBuf in2) throws Exception {
        ByteBuf in = (ByteBuf) super.decode(ctx, in2);
        if (in == null) {
            return null;
        }

        if (in.readableBytes() < HEADER_SIZE) {
            return null;// response header is 10 bytes
        }

        magic = in.readByte();
        msgType = in.readByte();
        reserve = in.readShort();
        sn = in.readShort();
        len = in.readInt();

        if (in.readableBytes() < len) {
            return null; // until we have the entire payload return
        }

        ByteBuf buf = in.readBytes(len);
        byte[] req = new byte[buf.readableBytes()];
        buf.readBytes(req);
        String body = new String(req, "UTF-8");
        ProtocolMsg msg = new ProtocolMsg();
        ProtocolHeader protocolHeader = new ProtocolHeader(magic, msgType,
                reserve, sn, len);
        msg.setBody(body);
        msg.setProtocolHeader(protocolHeader);
        return msg;
    }
}


text:
package com.github.ledoyen.winter.model;

public class ExpressionAndValue {

	private String expression;
	private String value;
	private String expectedResult;

	public String getExpression() {
		return expression;
	}

	public String getValue() {
		return value != null ? value : expectedResult;
	}
}


text:
Unit tests are meant to be used as an automated testing system to verify and test code.

### Why should I use unit tests ?
Unit tests can be used to check if code will still take and return expected values and thus preventing code to break by
changes.

### Is it difficult ?
No, kind of. Unit tests can be as simple as creating the function itself but to be able to write them you should know
the code in and out. Writing unit tests can also be a very good exercise for new developers in your team since you need
to take a good look at the code and you need to know the exact functionality to be able to write tests for it.

### How can I get started ?
In PHP you have a testing framework called [PHPUnit](phpunit.de), this is currently the most populair framework for unit
testing within PHP. Just a simple "composer install" and you are set. [PHPUnit](phpunit.de) provides good and clear
test results.

### Is unit testing explicitly meant for PHP ?
No, Unit tests is written and used for a ton of different languages, for example: JavaScript, Java, C#, C++, etc.

### Requirements
Composer and PHP 7 (yes that is all)

### Examples ???
[Check out examples](./part_1.md)


text:
require File.dirname(__FILE__) + '/../config/test.rb'

class BecomeContestableTest < ActiveSupport::TestCase
  fixtures :all

  test "associations" do
    movie = movies(:one)
    assert_has_many movie, :votes
    assert_has_many movie, :nominations
  end

end


text:
var Tweener = require('./Tweener');

/**
 *
 * @classdesc
 * Tweener that manages the update of time independantly of the actual passing of time.
 * Every update, the time interval is equal to the given tupt (time units per tick).
 *
 */
function Ticker(tupt) {
	if ((this instanceof Ticker) === false) {
		return new Ticker(tupt);
	}

	Tweener.call(this);

	// Time units per tick (tupt)
	// Every second, 'tupt' time units elapse
	this.tupt = tupt || 1;

}
Ticker.prototype = Object.create(Tweener.prototype);
Ticker.prototype.constructor = Ticker;
module.exports = Ticker;

Ticker.prototype._moveTo = function (time, dt) {
	dt = this.tupt;
	this._time = this.tupt * (this._nbTicks++);

	this._update(dt);

	if (this._onUpdate !== null) {
		this._onUpdate(this._time, dt);
	}
};

Ticker.prototype.convertToTicks = function(timeUnits) {
	return timeUnits / this.tupt;
};

Ticker.prototype.convertToTimeUnits = function(nbTicks) {
	return nbTicks * this.tupt;
};


text:
<?xml version="1.0"?>
<ruleset name="WordPress Extra">
	<description>Best practices beyond core WordPress Coding Standards</description>

	<!-- Generic PHP best practices.
		 https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/pull/382 -->
	<rule ref="Generic.PHP.DeprecatedFunctions"/>
	<rule ref="Generic.PHP.ForbiddenFunctions"/>
	<rule ref="Generic.Functions.CallTimePassByReference"/>
	<rule ref="Generic.CodeAnalysis.EmptyStatement"/>
	<rule ref="Generic.CodeAnalysis.ForLoopShouldBeWhileLoop"/>
	<rule ref="Generic.CodeAnalysis.ForLoopWithTestFunctionCall"/>
	<rule ref="Generic.CodeAnalysis.JumbledIncrementer"/>
	<rule ref="Generic.CodeAnalysis.UnconditionalIfStatement"/>
	<rule ref="Generic.CodeAnalysis.UnnecessaryFinalModifier"/>
	<rule ref="Generic.CodeAnalysis.UselessOverridingMethod"/>
	<rule ref="Generic.Classes.DuplicateClassName"/>
	<rule ref="Generic.Strings.UnnecessaryStringConcat">
		<properties>
			<property name="allowMultiline" value="true"/>
		</properties>
	</rule>
	<rule ref="WordPress.CodeAnalysis.EmptyStatement"/>

	<!-- More generic PHP best practices.
		 https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/issues/607 -->
	<rule ref="Squiz.PHP.NonExecutableCode"/>
	<rule ref="Squiz.Operators.IncrementDecrementUsage"/>
	<rule ref="Squiz.Operators.ValidLogicalOperators"/>
	<rule ref="Squiz.Functions.FunctionDuplicateArgument"/>

	<!-- And even more generic PHP best practices.
		 https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/pull/809 -->
	<rule ref="Squiz.PHP.DisallowSizeFunctionsInLoops"/>

	<!-- This sniff is not refined enough for general use -->
	<!-- https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/pull/382#discussion_r29970107 -->
	<!--<rule ref="Generic.Formatting.MultipleStatementAlignment"/>-->

	<!-- Hook callbacks may not use all params -->
	<!-- https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/pull/382#discussion_r29981655 -->
	<!--<rule ref="Generic.CodeAnalysis.UnusedFunctionParameter"/>-->

	<rule ref="WordPress-Core"/>

	<!-- Warn against using fully-qualified class names instead of the self keyword. -->
	<rule ref="Squiz.Classes.SelfMemberReference.NotUsed">
		<!-- Restore default severity of 5 which WordPress-Core sets to 0. -->
		<severity>5</severity>
	</rule>

	<rule ref="WordPress.XSS.EscapeOutput"/>

	<!-- Verify that a nonce check is done before using values in superglobals.
		 https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/issues/73 -->
	<rule ref="WordPress.CSRF.NonceVerification"/>

	<rule ref="WordPress.PHP.DevelopmentFunctions"/>
	<rule ref="WordPress.PHP.DiscouragedPHPFunctions">
		<!-- WP core still supports PHP 5.2+  -->
		<properties>
			<property name="exclude" value="create_function"/>
		</properties>
	</rule>
	<rule ref="WordPress.WP.DeprecatedFunctions"/>
	<rule ref="WordPress.WP.DeprecatedClasses"/>
	<rule ref="WordPress.WP.DeprecatedParameters"/>
	<rule ref="WordPress.WP.AlternativeFunctions"/>
	<rule ref="WordPress.WP.DiscouragedFunctions"/>

	<rule ref="Squiz.PHP.Eval"/>
	<rule ref="Squiz.PHP.Eval.Discouraged">
		<type>error</type>
		<message>eval() is a security risk so not allowed.</message>
	</rule>

	<!-- Scripts & style should be enqueued.
		 https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/issues/35 -->
	<rule ref="WordPress.WP.EnqueuedResources"/>

	<!-- Warn against overriding WP global variables.
		 https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/issues/26 -->
	<rule ref="WordPress.Variables.GlobalVariables"/>

	<!-- Encourage the use of strict ( === and !== ) comparisons.
		 https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/issues/242 -->
	<rule ref="WordPress.PHP.StrictComparisons"/>

	<!-- Check that in_array() and array_search() use strict comparisons.
		 https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/issues/399
		 https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/issues/503 -->
	<rule ref="WordPress.PHP.StrictInArray"/>

	<!-- Discourage use of the backtick operator (execution of shell commands).
		 https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/pull/646 -->
	<rule ref="Generic.PHP.BacktickOperator"/>

	<!-- Check for PHP Parse errors.
		 https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/issues/522 -->
	<rule ref="Generic.PHP.Syntax"/>

	<!-- Make the translators comment check which is included in core stricter. -->
	<rule ref="WordPress.WP.I18n.MissingTranslatorsComment">
		<type>error</type>
	</rule>
	<rule ref="WordPress.WP.I18n.TranslatorsCommentWrongStyle">
		<type>error</type>
	</rule>

	<!-- Verify that everything in the global namespace is prefixed. -->
	<rule ref="WordPress.NamingConventions.PrefixAllGlobals"/>

	<!-- Check that object instantiations always have braces & are not assigned by reference.
		 https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/issues/919 -->
	<rule ref="WordPress.Classes.ClassInstantiation"/>

</ruleset>


text:
ACCEPTED

#### According to
Index Fungorum

#### Published in
Ceská Mykol. 23(2): 103 (1969)

#### Original name
Phyllosticta succisicola Cejp

### Remarks
null


text:
#pragma once
#include <aws/network-firewall/NetworkFirewall_EXPORTS.h>
#include <aws/network-firewall/model/StatefulRuleProtocol.h>
#include <aws/core/utils/memory/stl/AWSString.h>
#include <aws/network-firewall/model/StatefulRuleDirection.h>
#include <utility>

namespace Aws
{
namespace Utils
{
namespace Json
{
  class JsonValue;
  class JsonView;
} // namespace Json
} // namespace Utils
namespace NetworkFirewall
{
namespace Model
{

  /**
   *
The basic rule criteria for Network Firewall to use to inspect packet headers
   * in stateful traffic flow inspection. Traffic flows that match the criteria are a
   * match for the corresponding StatefulRule.

See Also:
   AWS
   * API Reference

   */
  class AWS_NETWORKFIREWALL_API Header
  {
  public:
    Header();
    Header(Aws::Utils::Json::JsonView jsonValue);
    Header& operator=(Aws::Utils::Json::JsonView jsonValue);
    Aws::Utils::Json::JsonValue Jsonize() const;

    /**
     *
The protocol to inspect for. To specify all, you can use IP,
     * because all traffic on Amazon Web Services and on the internet is IP.

     */
    inline const StatefulRuleProtocol& GetProtocol() const{ return m_protocol; }

    /**
     *
The protocol to inspect for. To specify all, you can use IP,
     * because all traffic on Amazon Web Services and on the internet is IP.

     */
    inline bool ProtocolHasBeenSet() const { return m_protocolHasBeenSet; }

    /**
     *
The protocol to inspect for. To specify all, you can use IP,
     * because all traffic on Amazon Web Services and on the internet is IP.

     */
    inline void SetProtocol(const StatefulRuleProtocol& value) { m_protocolHasBeenSet = true; m_protocol = value; }

    /**
     *
The protocol to inspect for. To specify all, you can use IP,
     * because all traffic on Amazon Web Services and on the internet is IP.

     */
    inline void SetProtocol(StatefulRuleProtocol&& value) { m_protocolHasBeenSet = true; m_protocol = std::move(value); }

    /**
     *
The protocol to inspect for. To specify all, you can use IP,
     * because all traffic on Amazon Web Services and on the internet is IP.

     */
    inline Header& WithProtocol(const StatefulRuleProtocol& value) { SetProtocol(value); return *this;}

    /**
     *
The protocol to inspect for. To specify all, you can use IP,
     * because all traffic on Amazon Web Services and on the internet is IP.

     */
    inline Header& WithProtocol(StatefulRuleProtocol&& value) { SetProtocol(std::move(value)); return *this;}

    /**
     *
The source IP address or address range to inspect for, in CIDR notation. To
     * match with any address, specify ANY.

Specify an IP address
     * or a block of IP addresses in Classless Inter-Domain Routing (CIDR) notation.
     * Network Firewall supports all address ranges for IPv4.

Examples:

     *

To configure Network Firewall to inspect for the IP address
     * 192.0.2.44, specify 192.0.2.44/32.

To configure
     * Network Firewall to inspect for IP addresses from 192.0.2.0 to 192.0.2.255,
     * specify 192.0.2.0/24.

For more information about
     * CIDR notation, see the Wikipedia entry Classless
     * Inter-Domain Routing.

     */
    inline const Aws::String& GetSource() const{ return m_source; }

    /**
     *
The source IP address or address range to inspect for, in CIDR notation. To
     * match with any address, specify ANY.

Specify an IP address
     * or a block of IP addresses in Classless Inter-Domain Routing (CIDR) notation.
     * Network Firewall supports all address ranges for IPv4.

Examples:

     *

To configure Network Firewall to inspect for the IP address
     * 192.0.2.44, specify 192.0.2.44/32.

To configure
     * Network Firewall to inspect for IP addresses from 192.0.2.0 to 192.0.2.255,
     * specify 192.0.2.0/24.

For more information about
     * CIDR notation, see the Wikipedia entry Classless
     * Inter-Domain Routing.

     */
    inline bool SourceHasBeenSet() const { return m_sourceHasBeenSet; }

    /**
     *
The source IP address or address range to inspect for, in CIDR notation. To
     * match with any address, specify ANY.

Specify an IP address
     * or a block of IP addresses in Classless Inter-Domain Routing (CIDR) notation.
     * Network Firewall supports all address ranges for IPv4.

Examples:

     *

To configure Network Firewall to inspect for the IP address
     * 192.0.2.44, specify 192.0.2.44/32.

To configure
     * Network Firewall to inspect for IP addresses from 192.0.2.0 to 192.0.2.255,
     * specify 192.0.2.0/24.

For more information about
     * CIDR notation, see the Wikipedia entry Classless
     * Inter-Domain Routing.

     */
    inline void SetSource(const Aws::String& value) { m_sourceHasBeenSet = true; m_source = value; }

    /**
     *
The source IP address or address range to inspect for, in CIDR notation. To
     * match with any address, specify ANY.

Specify an IP address
     * or a block of IP addresses in Classless Inter-Domain Routing (CIDR) notation.
     * Network Firewall supports all address ranges for IPv4.

Examples:

     *

To configure Network Firewall to inspect for the IP address
     * 192.0.2.44, specify 192.0.2.44/32.

To configure
     * Network Firewall to inspect for IP addresses from 192.0.2.0 to 192.0.2.255,
     * specify 192.0.2.0/24.

For more information about
     * CIDR notation, see the Wikipedia entry Classless
     * Inter-Domain Routing.

     */
    inline void SetSource(Aws::String&& value) { m_sourceHasBeenSet = true; m_source = std::move(value); }

    /**
     *
The source IP address or address range to inspect for, in CIDR notation. To
     * match with any address, specify ANY.

Specify an IP address
     * or a block of IP addresses in Classless Inter-Domain Routing (CIDR) notation.
     * Network Firewall supports all address ranges for IPv4.

Examples:

     *

To configure Network Firewall to inspect for the IP address
     * 192.0.2.44, specify 192.0.2.44/32.

To configure
     * Network Firewall to inspect for IP addresses from 192.0.2.0 to 192.0.2.255,
     * specify 192.0.2.0/24.

For more information about
     * CIDR notation, see the Wikipedia entry Classless
     * Inter-Domain Routing.

     */
    inline void SetSource(const char* value) { m_sourceHasBeenSet = true; m_source.assign(value); }

    /**
     *
The source IP address or address range to inspect for, in CIDR notation. To
     * match with any address, specify ANY.

Specify an IP address
     * or a block of IP addresses in Classless Inter-Domain Routing (CIDR) notation.
     * Network Firewall supports all address ranges for IPv4.

Examples:

     *

To configure Network Firewall to inspect for the IP address
     * 192.0.2.44, specify 192.0.2.44/32.

To configure
     * Network Firewall to inspect for IP addresses from 192.0.2.0 to 192.0.2.255,
     * specify 192.0.2.0/24.

For more information about
     * CIDR notation, see the Wikipedia entry Classless
     * Inter-Domain Routing.

     */
    inline Header& WithSource(const Aws::String& value) { SetSource(value); return *this;}

    /**
     *
The source IP address or address range to inspect for, in CIDR notation. To
     * match with any address, specify ANY.

Specify an IP address
     * or a block of IP addresses in Classless Inter-Domain Routing (CIDR) notation.
     * Network Firewall supports all address ranges for IPv4.

Examples:

     *

To configure Network Firewall to inspect for the IP address
     * 192.0.2.44, specify 192.0.2.44/32.

To configure
     * Network Firewall to inspect for IP addresses from 192.0.2.0 to 192.0.2.255,
     * specify 192.0.2.0/24.

For more information about
     * CIDR notation, see the Wikipedia entry Classless
     * Inter-Domain Routing.

     */
    inline Header& WithSource(Aws::String&& value) { SetSource(std::move(value)); return *this;}

    /**
     *
The source IP address or address range to inspect for, in CIDR notation. To
     * match with any address, specify ANY.

Specify an IP address
     * or a block of IP addresses in Classless Inter-Domain Routing (CIDR) notation.
     * Network Firewall supports all address ranges for IPv4.

Examples:

     *

To configure Network Firewall to inspect for the IP address
     * 192.0.2.44, specify 192.0.2.44/32.

To configure
     * Network Firewall to inspect for IP addresses from 192.0.2.0 to 192.0.2.255,
     * specify 192.0.2.0/24.

For more information about
     * CIDR notation, see the Wikipedia entry Classless
     * Inter-Domain Routing.

     */
    inline Header& WithSource(const char* value) { SetSource(value); return *this;}

    /**
     *
The source port to inspect for. You can specify an individual port, for
     * example 1994 and you can specify a port range, for example
     * 1990:1994. To match with any port, specify ANY.

     */
    inline const Aws::String& GetSourcePort() const{ return m_sourcePort; }

    /**
     *
The source port to inspect for. You can specify an individual port, for
     * example 1994 and you can specify a port range, for example
     * 1990:1994. To match with any port, specify ANY.

     */
    inline bool SourcePortHasBeenSet() const { return m_sourcePortHasBeenSet; }

    /**
     *
The source port to inspect for. You can specify an individual port, for
     * example 1994 and you can specify a port range, for example
     * 1990:1994. To match with any port, specify ANY.

     */
    inline void SetSourcePort(const Aws::String& value) { m_sourcePortHasBeenSet = true; m_sourcePort = value; }

    /**
     *
The source port to inspect for. You can specify an individual port, for
     * example 1994 and you can specify a port range, for example
     * 1990:1994. To match with any port, specify ANY.

     */
    inline void SetSourcePort(Aws::String&& value) { m_sourcePortHasBeenSet = true; m_sourcePort = std::move(value); }

    /**
     *
The source port to inspect for. You can specify an individual port, for
     * example 1994 and you can specify a port range, for example
     * 1990:1994. To match with any port, specify ANY.

     */
    inline void SetSourcePort(const char* value) { m_sourcePortHasBeenSet = true; m_sourcePort.assign(value); }

    /**
     *
The source port to inspect for. You can specify an individual port, for
     * example 1994 and you can specify a port range, for example
     * 1990:1994. To match with any port, specify ANY.

     */
    inline Header& WithSourcePort(const Aws::String& value) { SetSourcePort(value); return *this;}

    /**
     *
The source port to inspect for. You can specify an individual port, for
     * example 1994 and you can specify a port range, for example
     * 1990:1994. To match with any port, specify ANY.

     */
    inline Header& WithSourcePort(Aws::String&& value) { SetSourcePort(std::move(value)); return *this;}

    /**
     *
The source port to inspect for. You can specify an individual port, for
     * example 1994 and you can specify a port range, for example
     * 1990:1994. To match with any port, specify ANY.

     */
    inline Header& WithSourcePort(const char* value) { SetSourcePort(value); return *this;}

    /**
     *
The direction of traffic flow to inspect. If set to ANY, the
     * inspection matches bidirectional traffic, both from the source to the
     * destination and from the destination to the source. If set to
     * FORWARD, the inspection only matches traffic going from the source
     * to the destination.

     */
    inline const StatefulRuleDirection& GetDirection() const{ return m_direction; }

    /**
     *
The direction of traffic flow to inspect. If set to ANY, the
     * inspection matches bidirectional traffic, both from the source to the
     * destination and from the destination to the source. If set to
     * FORWARD, the inspection only matches traffic going from the source
     * to the destination.

     */
    inline bool DirectionHasBeenSet() const { return m_directionHasBeenSet; }

    /**
     *
The direction of traffic flow to inspect. If set to ANY, the
     * inspection matches bidirectional traffic, both from the source to the
     * destination and from the destination to the source. If set to
     * FORWARD, the inspection only matches traffic going from the source
     * to the destination.

     */
    inline void SetDirection(const StatefulRuleDirection& value) { m_directionHasBeenSet = true; m_direction = value; }

    /**
     *
The direction of traffic flow to inspect. If set to ANY, the
     * inspection matches bidirectional traffic, both from the source to the
     * destination and from the destination to the source. If set to
     * FORWARD, the inspection only matches traffic going from the source
     * to the destination.

     */
    inline void SetDirection(StatefulRuleDirection&& value) { m_directionHasBeenSet = true; m_direction = std::move(value); }

    /**
     *
The direction of traffic flow to inspect. If set to ANY, the
     * inspection matches bidirectional traffic, both from the source to the
     * destination and from the destination to the source. If set to
     * FORWARD, the inspection only matches traffic going from the source
     * to the destination.

     */
    inline Header& WithDirection(const StatefulRuleDirection& value) { SetDirection(value); return *this;}

    /**
     *
The direction of traffic flow to inspect. If set to ANY, the
     * inspection matches bidirectional traffic, both from the source to the
     * destination and from the destination to the source. If set to
     * FORWARD, the inspection only matches traffic going from the source
     * to the destination.

     */
    inline Header& WithDirection(StatefulRuleDirection&& value) { SetDirection(std::move(value)); return *this;}

    /**
     *
The destination IP address or address range to inspect for, in CIDR notation.
     * To match with any address, specify ANY.

Specify an IP
     * address or a block of IP addresses in Classless Inter-Domain Routing (CIDR)
     * notation. Network Firewall supports all address ranges for IPv4.

     *
Examples:

To configure Network Firewall to inspect for the
     * IP address 192.0.2.44, specify 192.0.2.44/32.

To
     * configure Network Firewall to inspect for IP addresses from 192.0.2.0 to
     * 192.0.2.255, specify 192.0.2.0/24.

For more
     * information about CIDR notation, see the Wikipedia entry Classless
     * Inter-Domain Routing.

     */
    inline const Aws::String& GetDestination() const{ return m_destination; }

    /**
     *
The destination IP address or address range to inspect for, in CIDR notation.
     * To match with any address, specify ANY.

Specify an IP
     * address or a block of IP addresses in Classless Inter-Domain Routing (CIDR)
     * notation. Network Firewall supports all address ranges for IPv4.

     *
Examples:

To configure Network Firewall to inspect for the
     * IP address 192.0.2.44, specify 192.0.2.44/32.

To
     * configure Network Firewall to inspect for IP addresses from 192.0.2.0 to
     * 192.0.2.255, specify 192.0.2.0/24.

For more
     * information about CIDR notation, see the Wikipedia entry Classless
     * Inter-Domain Routing.

     */
    inline bool DestinationHasBeenSet() const { return m_destinationHasBeenSet; }

    /**
     *
The destination IP address or address range to inspect for, in CIDR notation.
     * To match with any address, specify ANY.

Specify an IP
     * address or a block of IP addresses in Classless Inter-Domain Routing (CIDR)
     * notation. Network Firewall supports all address ranges for IPv4.

     *
Examples:

To configure Network Firewall to inspect for the
     * IP address 192.0.2.44, specify 192.0.2.44/32.

To
     * configure Network Firewall to inspect for IP addresses from 192.0.2.0 to
     * 192.0.2.255, specify 192.0.2.0/24.

For more
     * information about CIDR notation, see the Wikipedia entry Classless
     * Inter-Domain Routing.

     */
    inline void SetDestination(const Aws::String& value) { m_destinationHasBeenSet = true; m_destination = value; }

    /**
     *
The destination IP address or address range to inspect for, in CIDR notation.
     * To match with any address, specify ANY.

Specify an IP
     * address or a block of IP addresses in Classless Inter-Domain Routing (CIDR)
     * notation. Network Firewall supports all address ranges for IPv4.

     *
Examples:

To configure Network Firewall to inspect for the
     * IP address 192.0.2.44, specify 192.0.2.44/32.

To
     * configure Network Firewall to inspect for IP addresses from 192.0.2.0 to
     * 192.0.2.255, specify 192.0.2.0/24.

For more
     * information about CIDR notation, see the Wikipedia entry Classless
     * Inter-Domain Routing.

     */
    inline void SetDestination(Aws::String&& value) { m_destinationHasBeenSet = true; m_destination = std::move(value); }

    /**
     *
The destination IP address or address range to inspect for, in CIDR notation.
     * To match with any address, specify ANY.

Specify an IP
     * address or a block of IP addresses in Classless Inter-Domain Routing (CIDR)
     * notation. Network Firewall supports all address ranges for IPv4.

     *
Examples:

To configure Network Firewall to inspect for the
     * IP address 192.0.2.44, specify 192.0.2.44/32.

To
     * configure Network Firewall to inspect for IP addresses from 192.0.2.0 to
     * 192.0.2.255, specify 192.0.2.0/24.

For more
     * information about CIDR notation, see the Wikipedia entry Classless
     * Inter-Domain Routing.

     */
    inline void SetDestination(const char* value) { m_destinationHasBeenSet = true; m_destination.assign(value); }

    /**
     *
The destination IP address or address range to inspect for, in CIDR notation.
     * To match with any address, specify ANY.

Specify an IP
     * address or a block of IP addresses in Classless Inter-Domain Routing (CIDR)
     * notation. Network Firewall supports all address ranges for IPv4.

     *
Examples:

To configure Network Firewall to inspect for the
     * IP address 192.0.2.44, specify 192.0.2.44/32.

To
     * configure Network Firewall to inspect for IP addresses from 192.0.2.0 to
     * 192.0.2.255, specify 192.0.2.0/24.

For more
     * information about CIDR notation, see the Wikipedia entry Classless
     * Inter-Domain Routing.

     */
    inline Header& WithDestination(const Aws::String& value) { SetDestination(value); return *this;}

    /**
     *
The destination IP address or address range to inspect for, in CIDR notation.
     * To match with any address, specify ANY.

Specify an IP
     * address or a block of IP addresses in Classless Inter-Domain Routing (CIDR)
     * notation. Network Firewall supports all address ranges for IPv4.

     *
Examples:

To configure Network Firewall to inspect for the
     * IP address 192.0.2.44, specify 192.0.2.44/32.

To
     * configure Network Firewall to inspect for IP addresses from 192.0.2.0 to
     * 192.0.2.255, specify 192.0.2.0/24.

For more
     * information about CIDR notation, see the Wikipedia entry Classless
     * Inter-Domain Routing.

     */
    inline Header& WithDestination(Aws::String&& value) { SetDestination(std::move(value)); return *this;}

    /**
     *
The destination IP address or address range to inspect for, in CIDR notation.
     * To match with any address, specify ANY.

Specify an IP
     * address or a block of IP addresses in Classless Inter-Domain Routing (CIDR)
     * notation. Network Firewall supports all address ranges for IPv4.

     *
Examples:

To configure Network Firewall to inspect for the
     * IP address 192.0.2.44, specify 192.0.2.44/32.

To
     * configure Network Firewall to inspect for IP addresses from 192.0.2.0 to
     * 192.0.2.255, specify 192.0.2.0/24.

For more
     * information about CIDR notation, see the Wikipedia entry Classless
     * Inter-Domain Routing.

     */
    inline Header& WithDestination(const char* value) { SetDestination(value); return *this;}

    /**
     *
The destination port to inspect for. You can specify an individual port, for
     * example 1994 and you can specify a port range, for example
     * 1990:1994. To match with any port, specify ANY.

     */
    inline const Aws::String& GetDestinationPort() const{ return m_destinationPort; }

    /**
     *
The destination port to inspect for. You can specify an individual port, for
     * example 1994 and you can specify a port range, for example
     * 1990:1994. To match with any port, specify ANY.

     */
    inline bool DestinationPortHasBeenSet() const { return m_destinationPortHasBeenSet; }

    /**
     *
The destination port to inspect for. You can specify an individual port, for
     * example 1994 and you can specify a port range, for example
     * 1990:1994. To match with any port, specify ANY.

     */
    inline void SetDestinationPort(const Aws::String& value) { m_destinationPortHasBeenSet = true; m_destinationPort = value; }

    /**
     *
The destination port to inspect for. You can specify an individual port, for
     * example 1994 and you can specify a port range, for example
     * 1990:1994. To match with any port, specify ANY.

     */
    inline void SetDestinationPort(Aws::String&& value) { m_destinationPortHasBeenSet = true; m_destinationPort = std::move(value); }

    /**
     *
The destination port to inspect for. You can specify an individual port, for
     * example 1994 and you can specify a port range, for example
     * 1990:1994. To match with any port, specify ANY.

     */
    inline void SetDestinationPort(const char* value) { m_destinationPortHasBeenSet = true; m_destinationPort.assign(value); }

    /**
     *
The destination port to inspect for. You can specify an individual port, for
     * example 1994 and you can specify a port range, for example
     * 1990:1994. To match with any port, specify ANY.

     */
    inline Header& WithDestinationPort(const Aws::String& value) { SetDestinationPort(value); return *this;}

    /**
     *
The destination port to inspect for. You can specify an individual port, for
     * example 1994 and you can specify a port range, for example
     * 1990:1994. To match with any port, specify ANY.

     */
    inline Header& WithDestinationPort(Aws::String&& value) { SetDestinationPort(std::move(value)); return *this;}

    /**
     *
The destination port to inspect for. You can specify an individual port, for
     * example 1994 and you can specify a port range, for example
     * 1990:1994. To match with any port, specify ANY.

     */
    inline Header& WithDestinationPort(const char* value) { SetDestinationPort(value); return *this;}

  private:

    StatefulRuleProtocol m_protocol;
    bool m_protocolHasBeenSet;

    Aws::String m_source;
    bool m_sourceHasBeenSet;

    Aws::String m_sourcePort;
    bool m_sourcePortHasBeenSet;

    StatefulRuleDirection m_direction;
    bool m_directionHasBeenSet;

    Aws::String m_destination;
    bool m_destinationHasBeenSet;

    Aws::String m_destinationPort;
    bool m_destinationPortHasBeenSet;
  };

} // namespace Model
} // namespace NetworkFirewall
} // namespace Aws


text:
class Configurable(object):
    """
    Base class for targets configured by the config file watching system.

    Each subclass is expected to be able to validate and apply configuration
    dictionaries that come from config file content.
    """

    name = None

    # This attribute denotes that the config watching system should check
    # a subdirectory for this configurable's files.
    config_subdirectory = None

    @classmethod
    def validate_config(cls, config):
        """
        Validates a given config, returns the validated config dictionary
        if valid, raises a ValueError for any invalid values.

        Subclasses are expected to define this method.
        """
        raise NotImplementedError

    def apply_config(self, config):
        """
        Applies a given config to the subclass.

        Setting instance attributes, for example.  Subclasses are expected
        to define this method.

        NOTE: It is *incredibly important* that this method be idempotent with
        regards to the instance.
        """
        raise NotImplementedError

    @classmethod
    def from_config(cls, name, config):
        """
        Returns a Configurable instance with the given name and config.

        By default this is a simple matter of calling the constructor, but
        subclasses that are also `Pluggable` instances override this in order
        to check that the plugin is installed correctly first.
        """

        cls.validate_config(config)

        instance = cls()
        if not instance.name:
            instance.name = config.get("name", name)
        instance.apply_config(config)

        return instance


text:
@import UIKit;

static NSNotificationName EXShakeGestureNotification = @"EXShakeGestureNotification";

@implementation UIWindow (EXKernelDevMotionHandler)

- (void)EX_motionEnded:(__unused UIEventSubtype)motion withEvent:(UIEvent *)event
{
  if (event.subtype == UIEventSubtypeMotionShake) {
    [[NSNotificationCenter defaultCenter] postNotificationName:EXShakeGestureNotification object:nil];
  }
}

@end

@implementation EXKernelDevMotionHandler

+ (void)initialize
{
  // capture shake gesture for any bridge
  SEL EXMotionSelector = NSSelectorFromString(@"EX_motionEnded:withEvent:");
  RCTSwapInstanceMethods([UIWindow class], @selector(motionEnded:withEvent:), EXMotionSelector);
}

+ (instancetype)sharedInstance
{
  static EXKernelDevMotionHandler *instance;
  static dispatch_once_t once;
  dispatch_once(&once, ^{
    if (!instance) {
      instance = [[EXKernelDevMotionHandler alloc] init];
    }
  });
  return instance;
}

- (instancetype)init
{
  if (self = [super init]) {
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(_handleShakeGesture)
                                                 name:EXShakeGestureNotification
                                               object:nil];
  }
  return self;
}

- (void)_handleShakeGesture
{
  if ([EXEnvironment sharedEnvironment].isDetached || [EXKernelDevKeyCommands sharedInstance].isLegacyMenuBehaviorEnabled) {
    [[EXKernel sharedInstance].visibleApp.appManager showDevMenu];
  } else {
    [[EXKernel sharedInstance] switchTasks];
  }
}

@end


text:
@interface SLMePJViewController ()

@end

@implementation SLMePJViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    self.navigationItem.title = @"经纪人评价管理";

    self.navigationItem.leftBarButtonItems = [SLUIFactory createBackBBIArrayWithTarget:self action:@selector(blackViewController)];

    self.navigationItem.rightBarButtonItem = [SLUIFactory createTitleBBIWithTitle:@"帮助" target:self action:@selector(helpClick)];
}

#pragma mark -返回
-(void)blackViewController
{
    [self.navigationController popViewControllerAnimated:YES];
}

#pragma mark - 帮助
-(void)helpClick
{
    SLMePJHelpViewController *helpVC = [[SLMePJHelpViewController alloc] init];
    [self.navigationController pushViewController:helpVC animated:YES];
}

@end


text:
layout: page
title: Bernard Family Reunion
date: 2016-05-24
author: Carol Hawkins
tags: weekly links, java
status: published
summary: Cum sociis natoque penatibus et magnis dis parturient montes, nascetur.
banner: images/banner/leisure-02.jpg
booking:
  startDate: 03/12/2016
  endDate: 03/16/2016
  ctyhocn: MEMMRHX
  groupCode: BFR
published: true
---
Fusce laoreet metus tellus, non tempor sapien gravida eu. Sed imperdiet magna sed orci iaculis, quis placerat velit pellentesque. Nullam convallis consectetur luctus. Morbi sit amet ultrices dui. Pellentesque dictum sed libero vitae volutpat. Nullam laoreet viverra varius. Aenean at dolor at diam imperdiet interdum. Proin in lectus nec sapien gravida dapibus. Nam a tellus ac metus accumsan pharetra. Duis quam felis, fermentum ut ante ut, pulvinar luctus libero. Praesent lorem odio, euismod ac porttitor at, malesuada ac tortor. Sed purus magna, tempus a nisl vel, pharetra tempor dui. Praesent consectetur ipsum sit amet dui consectetur tempor. Integer dapibus eleifend est, eget aliquam nunc varius euismod. Curabitur ultricies imperdiet eleifend.

1 Pellentesque gravida arcu sed erat maximus, nec placerat nisl feugiat
1 Proin bibendum purus quis nibh gravida venenatis
1 Morbi imperdiet tellus mattis, tincidunt odio vitae, fermentum sem.

Nam volutpat sagittis nisi, imperdiet iaculis nibh rhoncus vel. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Cras at nulla et augue iaculis lobortis. Mauris ut consequat nisi, nec faucibus lectus. Ut dapibus tellus at lorem suscipit mattis. Sed justo orci, consectetur ac cursus non, commodo eu justo. Nam tincidunt tellus pretium lacinia sodales.
Nullam vitae augue ut turpis gravida bibendum. Curabitur velit massa, suscipit quis maximus eu, fermentum vitae nunc. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Nam at volutpat nisl, quis faucibus dui. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Sed sit amet ipsum feugiat dolor pulvinar faucibus quis eget quam. Fusce vel sapien id lectus dictum tincidunt. Morbi tempor eleifend justo, quis posuere sapien pharetra cursus.


text:
// +build !go1.8

//Copyright 2016 Tamás Gulácsi. All rights reserved.
//Use of this source code is governed by The MIT License
//found in the accompanying LICENSE file.

package ora

/*
#include <oci.h>
#include <stdlib.h>
*/
import "C"

// NumInput returns the number of placeholders in a sql statement.
func (stmt *Stmt) NumInput() int {
	bc, err := stmt.attr(4, C.OCI_ATTR_BIND_COUNT)
	if err != nil {
		return 0
	}
	bindCount := int(*((*C.ub4)(bc)))
	C.free(bc)
	return bindCount
}

func nameAndValue(v interface{}) (string, interface{}) {
	return "", v
}