text:
package org.apache.hive.hcatalog.cli.SemanticAnalysis;

import org.apache.hadoop.hive.metastore.api.Database;
import org.apache.hadoop.hive.ql.exec.Task;
import org.apache.hadoop.hive.ql.exec.Utilities;
import org.apache.hadoop.hive.ql.metadata.Hive;
import org.apache.hadoop.hive.ql.metadata.HiveException;
import org.apache.hadoop.hive.ql.metadata.Partition;
import org.apache.hadoop.hive.ql.metadata.Table;
import org.apache.hadoop.hive.ql.parse.ASTNode;
import org.apache.hadoop.hive.ql.parse.AbstractSemanticAnalyzerHook;
import org.apache.hadoop.hive.ql.parse.HiveParser;
import org.apache.hadoop.hive.ql.parse.HiveSemanticAnalyzerHookContext;
import org.apache.hadoop.hive.ql.parse.SemanticException;
import org.apache.hadoop.hive.ql.plan.AlterTableDesc;
import org.apache.hadoop.hive.ql.plan.DDLWork;
import org.apache.hadoop.hive.ql.plan.DescDatabaseDesc;
import org.apache.hadoop.hive.ql.plan.DescTableDesc;
import org.apache.hadoop.hive.ql.plan.DropDatabaseDesc;
import org.apache.hadoop.hive.ql.plan.DropTableDesc;
import org.apache.hadoop.hive.ql.plan.HiveOperation;
import org.apache.hadoop.hive.ql.plan.ShowDatabasesDesc;
import org.apache.hadoop.hive.ql.plan.ShowPartitionsDesc;
import org.apache.hadoop.hive.ql.plan.ShowTableStatusDesc;
import org.apache.hadoop.hive.ql.plan.ShowTablesDesc;
import org.apache.hadoop.hive.ql.plan.SwitchDatabaseDesc;
import org.apache.hadoop.hive.ql.security.authorization.Privilege;
import org.apache.hadoop.hive.ql.session.SessionState;
import org.apache.hive.hcatalog.common.ErrorType;
import org.apache.hive.hcatalog.common.HCatException;

import java.io.Serializable;
import java.util.List;

public class HCatSemanticAnalyzer extends HCatSemanticAnalyzerBase {

  private AbstractSemanticAnalyzerHook hook;
  private ASTNode ast;

  @Override
  public ASTNode preAnalyze(HiveSemanticAnalyzerHookContext context, ASTNode ast)
    throws SemanticException {

    this.ast = ast;
    switch (ast.getToken().getType()) {

    // HCat wants to intercept following tokens and special-handle them.
    case HiveParser.TOK_CREATETABLE:
      hook = new CreateTableHook();
      return hook.preAnalyze(context, ast);

    case HiveParser.TOK_CREATEDATABASE:
      hook = new CreateDatabaseHook();
      return hook.preAnalyze(context, ast);

    case HiveParser.TOK_ALTERTABLE:
      if (((ASTNode) ast.getChild(1)).getToken().getType() == HiveParser.TOK_ALTERTABLE_FILEFORMAT) {
        return ast;
      } else if (((ASTNode) ast.getChild(1)).getToken().getType() == HiveParser.TOK_ALTERTABLE_MERGEFILES) {
        // unsupported
        throw new SemanticException("Operation not supported.");
      } else {
        return ast;
      }

      // HCat will allow these operations to be performed.
      // Database DDL
    case HiveParser.TOK_SHOWDATABASES:
    case HiveParser.TOK_DROPDATABASE:
    case HiveParser.TOK_SWITCHDATABASE:
    case HiveParser.TOK_DESCDATABASE:
    case HiveParser.TOK_ALTERDATABASE_PROPERTIES:

      // Index DDL
    case HiveParser.TOK_ALTERINDEX_PROPERTIES:
    case HiveParser.TOK_CREATEINDEX:
    case HiveParser.TOK_DROPINDEX:
    case HiveParser.TOK_SHOWINDEXES:

      // View DDL
      // "alter view add partition" does not work because of the nature of implementation
      // of the DDL in hive. Hive will internally invoke another Driver on the select statement,
      // and HCat does not let "select" statement through. I cannot find a way to get around it
      // without modifying hive code. So just leave it unsupported.
      //case HiveParser.TOK_ALTERVIEW_ADDPARTS:
    case HiveParser.TOK_ALTERVIEW_DROPPARTS:
    case HiveParser.TOK_ALTERVIEW_PROPERTIES:
    case HiveParser.TOK_ALTERVIEW_RENAME:
    case HiveParser.TOK_ALTERVIEW:
    case HiveParser.TOK_CREATEVIEW:
    case HiveParser.TOK_DROPVIEW:

      // Authorization DDL
    case HiveParser.TOK_CREATEROLE:
    case HiveParser.TOK_DROPROLE:
    case HiveParser.TOK_GRANT_ROLE:
    case HiveParser.TOK_GRANT_WITH_OPTION:
    case HiveParser.TOK_GRANT:
    case HiveParser.TOK_REVOKE_ROLE:
    case HiveParser.TOK_REVOKE:
    case HiveParser.TOK_SHOW_GRANT:
    case HiveParser.TOK_SHOW_ROLE_GRANT:

      // Misc DDL
    case HiveParser.TOK_LOCKTABLE:
    case HiveParser.TOK_UNLOCKTABLE:
    case HiveParser.TOK_SHOWLOCKS:
    case HiveParser.TOK_DESCFUNCTION:
    case HiveParser.TOK_SHOWFUNCTIONS:
    case HiveParser.TOK_EXPLAIN:

      // Table DDL
    case HiveParser.TOK_ALTERTABLE_ADDPARTS:
    case HiveParser.TOK_ALTERTABLE_ADDCOLS:
    case HiveParser.TOK_ALTERTABLE_CHANGECOL_AFTER_POSITION:
    case HiveParser.TOK_ALTERTABLE_SERDEPROPERTIES:
    case HiveParser.TOK_ALTERTABLE_CLUSTER_SORT:
    case HiveParser.TOK_ALTERTABLE_DROPPARTS:
    case HiveParser.TOK_ALTERTABLE_PROPERTIES:
    case HiveParser.TOK_ALTERTABLE_RENAME:
    case HiveParser.TOK_ALTERTABLE_RENAMECOL:
    case HiveParser.TOK_ALTERTABLE_REPLACECOLS:
    case HiveParser.TOK_ALTERTABLE_SERIALIZER:
    case HiveParser.TOK_ALTERTABLE_TOUCH:
    case HiveParser.TOK_DESCTABLE:
    case HiveParser.TOK_DROPTABLE:
    case HiveParser.TOK_SHOW_TABLESTATUS:
    case HiveParser.TOK_SHOWPARTITIONS:
    case HiveParser.TOK_SHOWTABLES:
      return ast;

    // In all other cases, throw an exception. Its a white-list of allowed operations.
    default:
      throw new SemanticException("Operation not supported.");

    }
  }

  @Override
  public void postAnalyze(HiveSemanticAnalyzerHookContext context,
              List<Task<? extends Serializable>> rootTasks) throws SemanticException {

    try {

      switch (ast.getToken().getType()) {

      case HiveParser.TOK_CREATETABLE:
      case HiveParser.TOK_CREATEDATABASE:

        // HCat will allow these operations to be performed.
        // Database DDL
      case HiveParser.TOK_SHOWDATABASES:
      case HiveParser.TOK_DROPDATABASE:
      case HiveParser.TOK_SWITCHDATABASE:
      case HiveParser.TOK_DESCDATABASE:
      case HiveParser.TOK_ALTERDATABASE_PROPERTIES:

        // Index DDL
      case HiveParser.TOK_ALTERINDEX_PROPERTIES:
      case HiveParser.TOK_CREATEINDEX:
      case HiveParser.TOK_DROPINDEX:
      case HiveParser.TOK_SHOWINDEXES:
        break;

        // View DDL
        //case HiveParser.TOK_ALTERVIEW_ADDPARTS:
      case HiveParser.TOK_ALTERVIEW:
        switch (ast.getChild(1).getType()) {
          case HiveParser.TOK_ALTERVIEW_ADDPARTS:
          case HiveParser.TOK_ALTERVIEW_DROPPARTS:
          case HiveParser.TOK_ALTERVIEW_RENAME:
          case HiveParser.TOK_ALTERVIEW_PROPERTIES:
          case HiveParser.TOK_ALTERVIEW_DROPPROPERTIES:
        }
        break;

      case HiveParser.TOK_CREATEVIEW:
      case HiveParser.TOK_DROPVIEW:

        // Authorization DDL
      case HiveParser.TOK_CREATEROLE:
      case HiveParser.TOK_DROPROLE:
      case HiveParser.TOK_GRANT_ROLE:
      case HiveParser.TOK_GRANT_WITH_OPTION:
      case HiveParser.TOK_GRANT:
      case HiveParser.TOK_REVOKE_ROLE:
      case HiveParser.TOK_REVOKE:
      case HiveParser.TOK_SHOW_GRANT:
      case HiveParser.TOK_SHOW_ROLE_GRANT:

        // Misc DDL
      case HiveParser.TOK_LOCKTABLE:
      case HiveParser.TOK_UNLOCKTABLE:
      case HiveParser.TOK_SHOWLOCKS:
      case HiveParser.TOK_DESCFUNCTION:
      case HiveParser.TOK_SHOWFUNCTIONS:
      case HiveParser.TOK_EXPLAIN:
        break;

        // Table DDL
      case HiveParser.TOK_ALTERTABLE:
        switch (ast.getChild(1).getType()) {
          case HiveParser.TOK_ALTERTABLE_ADDPARTS:
          case HiveParser.TOK_ALTERTABLE_ADDCOLS:
          case HiveParser.TOK_ALTERTABLE_CHANGECOL_AFTER_POSITION:
          case HiveParser.TOK_ALTERTABLE_SERDEPROPERTIES:
          case HiveParser.TOK_ALTERTABLE_CLUSTER_SORT:
          case HiveParser.TOK_ALTERTABLE_DROPPARTS:
          case HiveParser.TOK_ALTERTABLE_PROPERTIES:
          case HiveParser.TOK_ALTERTABLE_DROPPROPERTIES:
          case HiveParser.TOK_ALTERTABLE_RENAME:
          case HiveParser.TOK_ALTERTABLE_RENAMECOL:
          case HiveParser.TOK_ALTERTABLE_REPLACECOLS:
          case HiveParser.TOK_ALTERTABLE_SERIALIZER:
          case HiveParser.TOK_ALTERTABLE_TOUCH:
          case HiveParser.TOK_ALTERTABLE_ARCHIVE:
          case HiveParser.TOK_ALTERTABLE_UNARCHIVE:
          case HiveParser.TOK_ALTERTABLE_EXCHANGEPARTITION:
          case HiveParser.TOK_ALTERTABLE_SKEWED:
          case HiveParser.TOK_ALTERTABLE_FILEFORMAT:
          case HiveParser.TOK_ALTERTABLE_LOCATION:
          case HiveParser.TOK_ALTERTABLE_MERGEFILES:
          case HiveParser.TOK_ALTERTABLE_RENAMEPART:
          case HiveParser.TOK_ALTERTABLE_SKEWED_LOCATION:
          case HiveParser.TOK_ALTERTABLE_BUCKETS:
          case HiveParser.TOK_ALTERTABLE_COMPACT:
        }
        break;

      case HiveParser.TOK_DESCTABLE:
      case HiveParser.TOK_DROPTABLE:
      case HiveParser.TOK_SHOW_TABLESTATUS:
      case HiveParser.TOK_SHOWPARTITIONS:
      case HiveParser.TOK_SHOWTABLES:
        break;

      default:
        throw new HCatException(ErrorType.ERROR_INTERNAL_EXCEPTION, "Unexpected token: " + ast.getToken());
      }

      authorizeDDL(context, rootTasks);

    } catch (HCatException e) {
      throw new SemanticException(e);
    } catch (HiveException e) {
      throw new SemanticException(e);
    }

    if (hook != null) {
      hook.postAnalyze(context, rootTasks);
    }
  }

  private String extractTableName(String compoundName) {
    /*
    * the table name can potentially be a dot-format one with column names
    * specified as part of the table name. e.g. a.b.c where b is a column in
    * a and c is a field of the object/column b etc. For authorization
    * purposes, we should use only the first part of the dotted name format.
    *
    */

    String[] words = compoundName.split("\\.");
    return words[0];
  }

  @Override
  protected void authorizeDDLWork(HiveSemanticAnalyzerHookContext cntxt, Hive hive, DDLWork work)
    throws HiveException {
    // DB opereations, none of them are enforced by Hive right now.

    ShowDatabasesDesc showDatabases = work.getShowDatabasesDesc();
    if (showDatabases != null) {
      authorize(HiveOperation.SHOWDATABASES.getInputRequiredPrivileges(),
        HiveOperation.SHOWDATABASES.getOutputRequiredPrivileges());
    }

    DropDatabaseDesc dropDb = work.getDropDatabaseDesc();
    if (dropDb != null) {
      Database db = cntxt.getHive().getDatabase(dropDb.getDatabaseName());
      if (db != null){
        // if above returned a null, then the db does not exist - probably a
        // "drop database if exists" clause - don't try to authorize then.
        authorize(db, Privilege.DROP);
      }
    }

    DescDatabaseDesc descDb = work.getDescDatabaseDesc();
    if (descDb != null) {
      Database db = cntxt.getHive().getDatabase(descDb.getDatabaseName());
      authorize(db, Privilege.SELECT);
    }

    SwitchDatabaseDesc switchDb = work.getSwitchDatabaseDesc();
    if (switchDb != null) {
      Database db = cntxt.getHive().getDatabase(switchDb.getDatabaseName());
      authorize(db, Privilege.SELECT);
    }

    ShowTablesDesc showTables = work.getShowTblsDesc();
    if (showTables != null) {
      String dbName = showTables.getDbName() == null ? SessionState.get().getCurrentDatabase()
        : showTables.getDbName();
      authorize(cntxt.getHive().getDatabase(dbName), Privilege.SELECT);
    }

    ShowTableStatusDesc showTableStatus = work.getShowTblStatusDesc();
    if (showTableStatus != null) {
      String dbName = showTableStatus.getDbName() == null ? SessionState.get().getCurrentDatabase()
        : showTableStatus.getDbName();
      authorize(cntxt.getHive().getDatabase(dbName), Privilege.SELECT);
    }

    // TODO: add alter database support in HCat

    // Table operations.

    DropTableDesc dropTable = work.getDropTblDesc();
    if (dropTable != null) {
      if (dropTable.getPartSpecs() == null) {
        // drop table is already enforced by Hive. We only check for table level location even if the
        // table is partitioned.
      } else {
        //this is actually a ALTER TABLE DROP PARITITION statement
        for (DropTableDesc.PartSpec partSpec : dropTable.getPartSpecs()) {
          // partitions are not added as write entries in drop partitions in Hive
          Table table = hive.getTable(SessionState.get().getCurrentDatabase(), dropTable.getTableName());
          List<Partition> partitions = null;
          try {
            partitions = hive.getPartitionsByFilter(table, partSpec.getPartSpec().getExprString());
          } catch (Exception e) {
            throw new HiveException(e);
          }
          for (Partition part : partitions) {
            authorize(part, Privilege.DROP);
          }
        }
      }
    }

    AlterTableDesc alterTable = work.getAlterTblDesc();
    if (alterTable != null) {
      Table table = hive.getTable(SessionState.get().getCurrentDatabase(),
          Utilities.getDbTableName(alterTable.getOldName())[1], false);

      Partition part = null;
      if (alterTable.getPartSpec() != null) {
        part = hive.getPartition(table, alterTable.getPartSpec(), false);
      }

      String newLocation = alterTable.getNewLocation();

      /* Hcat requires ALTER_DATA privileges for ALTER TABLE LOCATION statements
      * for the old table/partition location and the new location.
      */
      if (alterTable.getOp() == AlterTableDesc.AlterTableTypes.ALTERLOCATION) {
        if (part != null) {
          authorize(part, Privilege.ALTER_DATA); // authorize for the old
          // location, and new location
          part.setLocation(newLocation);
          authorize(part, Privilege.ALTER_DATA);
        } else {
          authorize(table, Privilege.ALTER_DATA); // authorize for the old
          // location, and new location
          table.getTTable().getSd().setLocation(newLocation);
          authorize(table, Privilege.ALTER_DATA);
        }
      }
      //other alter operations are already supported by Hive
    }

    // we should be careful when authorizing table based on just the
    // table name. If columns have separate authorization domain, it
    // must be honored
    DescTableDesc descTable = work.getDescTblDesc();
    if (descTable != null) {
      String tableName = extractTableName(descTable.getTableName());
      authorizeTable(cntxt.getHive(), tableName, Privilege.SELECT);
    }

    ShowPartitionsDesc showParts = work.getShowPartsDesc();
    if (showParts != null) {
      String tableName = extractTableName(showParts.getTabName());
      authorizeTable(cntxt.getHive(), tableName, Privilege.SELECT);
    }
  }
}


text:
./_MessageMaker com.apple.share.Facebook.post text "$(pbpaste)" > /dev/null &

# Thanks PopClip!

redpajama_set_name: RedPajamaGithub


text:
namespace NewsSystem.Services
{
    using Contracts;
    using System.Linq;
    using Models;
    using Data.Repositories;

    public class LikesServices : ILikesServices
    {
        private IRepository<Like> likes;

        public LikesServices(IRepository<Like> likes)
        {
            this.likes = likes;
        }

        public Like Create(Like like)
        {
            this.likes.Add(like);
            this.likes.SaveChanges();

            return like;
        }

        public Like GetByAuthorAndArticle(string authorId, int articleId)
        {
            return this.likes.All().FirstOrDefault(x => x.AuthorId == authorId && x.ArticleId == articleId);
        }
    }
}


text:
import sys
import time
from configobj import ConfigObj, flatten_errors
from validate import Validator, ValidateError, is_integer

#
# Validate the configobj file we received from the server
# Note: The OnRamp server already does this for you, so you can trust
#       the validity of the file.
#
# This will always be the name of the file, so fine to hardcode here
conf_file = "onramp_runparams.cfg"

config    = ConfigObj(conf_file, configspec="config/onramp_uioptions.cfgspec")
validator = Validator()
results   = config.validate(validator, preserve_errors=True)
if results != True:
    print "Configuration file validation failed!"
    for entry in flatten_errors(config, results):
        section_list, key, error = entry
        if key is not None:
            section_list.append(key)
        else:
            section_list.append("[missing section]")
        section_str = ', '.join(section_list)
        if error == False:
            error = "Missing value or section."
        print section_str, ' = ', error

    sys.exit(-11)

print 'This is an output log test.'
sys.stderr.write('Output to stderr')

time.sleep(10)

# Nothing else to do for this module

# Exit 0 if all is ok
sys.exit(0)
# Exit with a negative value if there was a problem
#sys.exit(-1)


text:
namespace Sitecore.FakeDb.Tests.Data.Engines.DataCommands.Prototypes
{
    using System;
    using System.Reflection;
    using FluentAssertions;
    using Sitecore.FakeDb.Data.Engines.DataCommands.Prototypes;
    using Sitecore.Reflection;
    using Xunit;

    [Obsolete]
    public class RemoveDataCommandPrototypeTest
    {
        [Theory, DefaultAutoData]
        public void ShouldCreateInstance(RemoveDataCommandPrototype sut)
        {
            Action action = () => ReflectionUtil.CallMethod(sut, "CreateInstance");

            action.ShouldThrow<TargetInvocationException>().WithInnerException<NotImplementedException>();
        }
    }
}


text:
category: stories
---
An apple is a sweet, edible fruit produced by an apple tree.

Apple trees are cultivated worldwide, and are the most widely grown species in
the genus Malus. The tree originated in Central Asia, where its wild ancestor,
Malus sieversii, is still found today. Apples have been grown for thousands of
years in Asia and Europe, and were brought to North America by European
colonists.


text:
#include "Application.hpp"

namespace Settings
{

/**
 * Creates a new application settings container and reads settings from given key/value storage.
 *
 * @param settings Key/value storage to use for storing/retrieving settings.
 * @param parent Parent object.
 */
Application::Application(QSharedPointer<QSettings> settings, QObject *parent) :
    AbstractSettings(settings, parent)
{
	this->read();
}

/**
 * Returns the current application's language.
 *
 * @return The current language.
 */
QString Application::getLanguage() const
{
	return this->language;
}

/**
 * Sets the application's language to the given locale.
 *
 * @param locale Locale of the language to use.
 */
void Application::setLanguage(QString locale)
{
	this->language = locale;
}

void Application::read()
{
	this->language = this->getSettings()->value("application/language", "en").toString();

	emit this->changed();
}

void Application::save()
{
	emit this->changed();

	this->getSettings()->setValue("application/language", this->language);

	emit this->saved();
}

}


text:
- Added: include new endpoints of "API Open Finance"
- Added: include new endpoints of "API Pagamentos"
- Added: include new endpoints of "API Pix"
- Updated: pix_send example
- Update: rename 'pix_cert' for 'certificate' in credentials.py

# 2.0.0
- Added: include new endpoints of Pix API
- Fix: updated dependencies

# 1.1.0

- Minor release
- Fixed: One step credit card example

# 1.0.11

- Added: new endpoint (one step)

# 1.0.10

- Added: new endpoint (settle charge)
- Added: new endpoint (settle parcel carnet)

# 1.0.9

- Added: new endpoint (create charge balance sheet)

# 1.0.8

- Added: new endpoint (update plan)
- Added: new endpoint (create subscription history)
- Updated: examples

# 1.0.7

- Added: new endpoint (update charge link)

# 1.0.6

- Fix: partner header

# 1.0.5

- Added: new header

# 1.0.4

- Added: new endpoint (charge link)
- Updated: docs

# 1.0.3

- Fix Release 1.0.2

# 1.0.2

- Added: new endpoint (cancel carnet)
- Added: new endpoint (cancel parcel)
- Updated: docs

# 1.0.1

- Fix sdk versioning

# 1.0.0

- Released stable version

# 0.0.2

- Separate README.md and REAME.rst

# 0.0.1

- Initial release


text:
This is universal module for creating simple AngularJS-based forms with "live" validation of values (via RegExps).
Form fields are collected and sended via REST to backend.

#### 21.05.2014 update

There's new architecture of my AngularForm.
For now, FormComponentFactory holds all form logic, and every single form element is made by particular directive.
FormComponentFactory instance (would be factory in next itertion to allow multiple instances of Form in one view - DONE) is passed as
 directives' argument to its isolated scope.

You can create as many forms as you need - the only thing you have to remember is to pass fields form particular JSON configuration object.

[TBD]

### Directives

#### buttons
Definition of buttons (Save, Cancel and so on). Buttons trigger callbacks to process whole form.

#### textinput
Directive for creating input text field. Contains live validation, label and error message.

#### checkboxfield
Directive for checkbox element. 'field.model' indicates if it's checked (true) or not (false)

#### selectlist
Directive for SELECT element. OPTION elements in dropdown list are creating from 'options' parameter. If 'model' is set, OPTION with value of model is seleted (via native AngularJS ng-selected directive).

### Service

Service contains methods for process form.

#### init(callbacks, RESTpoint)

It is possible to create own callbacks which are called before (preSend()) and after (afterSend()) sending the form.
See "Callbacks" section for details.

#### setRestPoint(url)

Server endpoint, where form should be send.

#### setRestMethod(method)

REST method setter. Default is 'POST'.

### Configuration

Form configuration contains simple object, where every key is the name of form field and in this key it it possible to define all needed properties.
Sample configuration:

```javascript

 $scope.fields = {
 		"title" : {
            "elementid" : "title",
            "elementname" : "title",
            "model" : "PROF",
            "label" : "Title",
            "options" : [
                {"name" : "Mr", "value" :  "MR"},
                {"name" : "Mrs", "value" :  "MRS"},
                {"name" : "Miss", "value" :  "MISS"},
                {"name" : "Prof", "value" :  "PROF"},
                {"name" : "Dr", "value" :  "DR"}
            ],
            "oldval" : "",
            "validator" : /[a-z]{3,5}/ig
        },
        "firstName" : {
            "type" : "text",
            "elementid" : "firstName",
            "elementname" : "firstName",
            "model" : "",
            "oldval" : "",
            "required" : true,
            "is_empty" : "please fill field",
            "is_invalid" : "please fill field",
            "validationRule" : /^[a-z\s]{2,100}$/i
        },
        "lastName" : {
            "elementid" : "lastName",
            "elementname" : "lastName",
            "model" : "",
            "label" : "Last name",
            "placeholder" : "enter here..",
            "oldval" : "",
            "is_empty" : "please fill field",
            "is_invalid" : "please fill field",
            "validationRule" : /^[a-z\s]{2,100}$/i
        },
        "email" : {
            "elementid" : "email",
            "elementname" : "email",
            "model" : "",
            "label" : "Email",
            "placeholder" : "enter here..",
            "oldval" : "",
            "is_empty" : "please fill field",
            "is_invalid" : "please fill field",
            "validationRule" : /^[a-z\s]{2,100}$/i
        }
    };
```

Common properties:

- **elementid** 	DOM 'id' attribute of form field

This is the most important property fo each field, because angularForm uses this property to find DOM elements associated with form element (<p> for error messages, <div> for adding class for whole eleemnt and so on)
- **elementname** 	DOM 'name' attribute of form field
- **model** 		ng-model attribute, this is where value of form field lives
- **label** 		text for 'label' element
- **oldval**		contains previous val of form field
- **disabled**      disable field, when sets to 'true'
- **validationRule**		RegExp used in 'live' validation (while user types)
- **is_empty**      error message for empty field
- **is_invalid**    error message for invalid field
- **cssClass**      CSS class for element

Specified properties:

'textfield' directive
- **placeholder**	text for 'placeholder' attribute for text fields
- **type** HTML5 field type (email, url, search, number etc.)
- **min**, **max**, **step** values for fields 'range' and 'number'

'selectlist' directive
- **options**		an array of JSON object for OPTION tags in SELECT (for 'selectlist' directive), where format is:
{"name" : "name displayed in drop down list", "value" : "passed value"}

### Callbacks

In main method in service, process(), two additional methods (not required) are called:

```javascript
	// processing the form
    // calls all callbacks defined
    //
    this.process = function(fields) {
        // sets 'fields' for callbacks
        this.__fields = fields;
        this.preSend(this);

        // process form start
        this.send(this.__fields);
        // process form end

        this.postSend(this);
    };
```

If you want to do something before sending the form, you can define function for preSend() callback and pass them to service in init() method.
The same situation occurs with postSend().

Example:

```javascript
var preSend = function(form) {
    console.log("preSend() called; adds _postfix to all fields");

    for ( var field in form.__fields) {
        form.__fields[field]['model'] += "_postfix";
    }
};

var postSend = function(form) {
    console.log("postSend called!!!");
};

CustomFormService.init({"preSend" : preSend, "postSend" : postSend });

```
Then, if you click 'Send' button, first callback will add postfix '_postfix' to each value, then all values will go to server.
Then, postSend() is called.

The same situation is with preValidate() callback. This callback (initialized by 'preValidate' parameter in init() options) is called BEFORE any other validation in validateForm() is done.
This behavior helps when you'd like to do some validation which depends on $scope of controller:

Example:

Definition of callback in Controller:

```javascript
$scope.someVar = "less than ten";

var preValidate = function(field) {
    if (field.model > 10) {
        $scope.someVar = "more than ten";
    }
};

```

In angularForm:

```javascript

    // validateField callback for liveValidation for directives
    this.validateField = function(field, countryselector) {
       (...)

        if (typeof __service.preValidate === "function") {  // here runs preValidate() callback
           __service.preValidate(field);                    // if field.value > 10, $scope.someVar in Controller's $scope will set to "more than ten"
        }

        if (field.required === true && (field.model === "" || field.model === false || field.model === null || field.model === undefined)) {
            (...)
        }

        if ((field.validatonRule && field.validationRule.toString() !== "") && !field.validationRule.test(field.model)) {
           (...)
        }

        GroupElement.addClass("success");
        return true;
    };

```


text:
"""
   Copyright 2013 DISQUS

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
"""

from datetime import datetime
from optparse import make_option
import time

from django.conf import settings
from django.core.management.base import CommandError, BaseCommand
from django.db import connections
from django.db.models.loading import get_app

from sqlshards.db.shards.helpers import get_sharded_id_sequence_name
from sqlshards.db.shards.models import generate_child_partition

class Command(BaseCommand):
    help = 'Generates DML for partitioned tables (expects argument in the '\
           'form <app>.<model>).'

    option_list = BaseCommand.option_list + (
        make_option('--num', action='store', type='int', dest='num_children', default=settings.DEFAULT_SHARD_COUNT,
                    help='number of partition tables to create [default: %d]' % (settings.DEFAULT_SHARD_COUNT)),
        make_option('--shard', action='store', type='int', dest='shard', default=0,
                    help='physical shard number to generate DDL for (0-based) [default: 0]'),
        make_option('--shards', action='store', type='int', dest='shards', default=1,
                    help='number of physical shards [default: 1]'),
        # TODO: suffix
    )

    def get_children_table_sql(self, model, known_models, num_children, shard_range):
        output = []
        opts = model._meta

        def get_child_table_sql(child_num):
            child = generate_child_partition(model, child_num)

            output, references = self.connection.creation.sql_create_model(child, self.style, [model, child])
            return output

        for i in shard_range:
            output.extend(get_child_table_sql(i))

        # Generate indexes for tables.
        original_db_table = opts.db_table
        for i in shard_range:
            # TODO: suffix
            opts.db_table = '%s_%s' % (original_db_table, i)
            output.extend(self.connection.creation.sql_indexes_for_model(model, self.style))
        opts.db_table = original_db_table

        # ALTERs for check constraint on children table.
        migrations = []
        for i in shard_range:
            child = generate_child_partition(model, i)
            if isinstance(child._shards.key, basestring):
                shard_key_repr = child._shards.key
                shard_key_expr = '"%s"' % shard_key_repr
            else:
                shard_key_repr = '_'.join(child._shards.key)
                # TODO: This sums the keys for the expression right now.
                # This needs to match the logic in MasterShardOptions.get_key_from_kwargs.
                shard_key_expr = '("' + '" + "'.join(child._shards.key) + '")'

            constraint_name = "%s_%s_check_modulo" % (child._meta.db_table, shard_key_repr)
            output.append(self.style.SQL_KEYWORD('ALTER TABLE ') +
                self.style.SQL_TABLE('"' + child._meta.db_table + '"') +
                self.style.SQL_KEYWORD(' ADD CONSTRAINT ') +
                self.style.SQL_FIELD('"' + constraint_name + '"') +
                self.style.SQL_KEYWORD(' CHECK ') +
                '(%s %% %d = %d);' % (shard_key_expr, num_children, i))

            # Temporary ALTER TABLEs to use new sequences until we've fully
            # transitioned all old tables.
            migrations.append('ALTER TABLE "{0}" ALTER COLUMN id SET DEFAULT next_sharded_id(\'{0}_id_seq\', {1});'.format(child._meta.db_table, i))

        return output + migrations

    def get_sequences(self, model, num_children, shard_range):
        output = []

        our_epoch = int(time.mktime(datetime(2012, 11, 1).timetuple()) * 1000)
        proc = """CREATE OR REPLACE FUNCTION next_sharded_id(varchar, int, OUT result bigint) AS $$
DECLARE
    sequence_name ALIAS FOR $1;
    shard_id ALIAS FOR $2;

    seq_id bigint;
    now_millis bigint;
BEGIN
    SELECT nextval(sequence_name::regclass) % 1024 INTO seq_id;

    SELECT FLOOR(EXTRACT(EPOCH FROM clock_timestamp()) * 1000) INTO now_millis;
    result := (now_millis - {our_epoch}) << 23;
    result := result | (shard_id << 10);
    result := result | (seq_id);
END;
$$ LANGUAGE PLPGSQL;""".format(our_epoch=our_epoch)
        output.append(self.style.SQL_KEYWORD(proc))

        for i in shard_range:
            child = generate_child_partition(model, i)
            output.append(self.style.SQL_KEYWORD("CREATE SEQUENCE ") +
               self.style.SQL_TABLE(get_sharded_id_sequence_name(child)) + ";")

        return output

    def get_partitioned_model(self, app, model):
        for obj in (getattr(app, x) for x in dir(app)):
            if not hasattr(obj, '_shards') or not obj._shards.is_master:
                continue

            if obj._meta.module_name == model:
                return obj
        raise ValueError

    def handle(self, *args, **options):
        try:
            app, model = args[0].split('.')
        except ValueError:
            raise CommandError('Expected argument <app>.<model>')

        self.connection = connections['default']

        # XXX: We cant use get_model because its now an abstract model
        # model = get_model(app, model)
        app = get_app(app)
        model = self.get_partitioned_model(app, model)

        num_children = options['num_children']
        shard_range = range(options['shard'], num_children, options['shards'])

        output = self.get_sequences(model, num_children, shard_range)
        output.extend(self.get_children_table_sql(model, [model], num_children, shard_range))

        return u'\n\n'.join(output) + '\n'


text:
set -e

cd "$(dirname "$0")"

INSPECTOR_DIR=".inspector"
INSPECTOR_VERSION="16.0.0-preview-2"

if [ "$(uname)" == "Darwin" ]; then
	PACKAGE_OS_NAME="inspector_x86_64-macos"
	BINARY_NAME="inspector"
elif [ "$(expr substr $(uname -s) 1 5)" == "Linux" ]; then
	PACKAGE_OS_NAME="inspector_x86_64-linux"
	BINARY_NAME="inspector"
else
	PACKAGE_OS_NAME="inspector_x86_64-win32"
	BINARY_NAME="inspector.exe"
fi

mkdir -p "${INSPECTOR_DIR}"
pushd "${INSPECTOR_DIR}"
	if [[ ! -f "${BINARY_NAME}" ]]; then
		echo "Inspector binary not found, downloading..."
		spatial package get inspector "${PACKAGE_OS_NAME}" "${INSPECTOR_VERSION}" "./${BINARY_NAME}"
		chmod +x "./${BINARY_NAME}"
	fi
popd

"${INSPECTOR_DIR}/${BINARY_NAME}" --grpc_addr="localhost:7777" --http_addr="localhost:5006" --schema_bundle="build/schema/schema.sb"


text:
package com.netcracker.specifications.impl;

import com.netcracker.queries.QueriesSpecification;
import com.netcracker.specifications.SqlSpecification;

/**
 * @author logariett.
 */
public class CategoriesAll implements SqlSpecification {

    public CategoriesAll() {
    }

    @Override
    public String toSqlQuery() {
        return QueriesSpecification.CATEGORIES_ALL;
    }
}


text:
package org.olat.lms.ims.qti.process;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FilenameFilter;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;

import org.apache.log4j.Logger;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
import org.olat.data.basesecurity.Identity;
import org.olat.data.commons.fileutil.FileUtils;
import org.olat.data.commons.xml.XMLParser;
import org.olat.lms.ims.resources.IMSEntityResolver;
import org.olat.system.commons.WebappHelper;
import org.olat.system.exception.OLATRuntimeException;
import org.olat.system.logging.log4j.LoggerHelper;

/**
 */
public class FilePersister implements Persister {
    private static final String QTI_SER = "qtiser";
    private static final String RES_REPORTING = "resreporting";
    private static final String QTI_FILE = "qti.ser";
    private final String subjectName;
    private final String resourcePathInfo; // <Course_ID>/<Node_ID>
    private static final Logger log = LoggerHelper.getLogger();

    /**
     * Assuming: only one test can be persisted per combination of a dlPointer and a SubjectName, = a certain test for a specific user can only be persisted at one place
     * FIXME:pb:a identity and repositoryEntryKey are not enough as one test may be reference n times from within one course.
     *
     * @param subj
     *            the user
     * @param repositoryPath
     *            path information e.g. <Course_ID>/<Node_ID>
     */
    public FilePersister(final Identity subj, final String resourcePathInfo) {
        super();
        this.resourcePathInfo = resourcePathInfo;
        this.subjectName = subj.getName();
    }

    /**
     * serialize the current test in case of a stop and later resume (e.g. the browser of the user crashes, and the user wants to resume the test or survey in a later
     * session)
     *
     */
    @Override
    public void persist(final Object o, final String info) {
        final File fSerialDir = new File(getFullQtiPath());
        OutputStream os = null;
        try {
            long start = -1;
            if (log.isDebugEnabled()) {
                start = System.currentTimeMillis();
            }
            fSerialDir.mkdirs();
            os = new FileOutputStream(new File(fSerialDir, QTI_FILE));
            // big tests (>5MB) produce heavy load on the system without buffered output. 256K seem to be a performant value
            // BufferedOutputStream bos = new BufferedOutputStream(os, 262144);
            // above stmt. incorrect, big buffer does not mean faster storage
            final BufferedOutputStream bos = FileUtils.getBos(os);

            final ObjectOutputStream oostream = new ObjectOutputStream(bos);
            oostream.writeObject(o);
            oostream.close();
            os.close();
            if (log.isDebugEnabled()) {
                final long stop = System.currentTimeMillis();
                log.debug("time in ms to save ims qti ser file:" + (stop - start));
            }
        } catch (final Exception e) {
            try {
                if (os != null) {
                    os.close();
                }
            } catch (final IOException e1) {
                throw new OLATRuntimeException(this.getClass(), "Error while closing file stream: ", e1);
            }
            throw new OLATRuntimeException(this.getClass(), "user " + subjectName + " stream could not be saved to path:" + getFullQtiPath(), e);
        }
    }

    /**
     * returns (at the moment) only AssessmentInstances, see persist()
     */
    @Override
    public Object toRAM() {
        // File path e.g. qtiser/<Unique_Course_ID>/<Node_ID>/test/qti.ser
        File fSerialDir = new File(getFullQtiPath());
        if (!fSerialDir.exists()) {
            // file not found => try older path version ( < V5.1) e.g. qtiser/test/360459/qti.ser
            final String path = QTI_SER + File.separator + subjectName + File.separator + resourcePathInfo;
            fSerialDir = new File(WebappHelper.getUserDataRoot() + File.separator + path);
        }
        Object o = null;
        InputStream is = null;
        try {
            long start = -1;
            if (log.isDebugEnabled()) {
                start = System.currentTimeMillis();
            }
            is = new FileInputStream(new File(fSerialDir, QTI_FILE));
            final BufferedInputStream bis = new BufferedInputStream(is, 262144);
            final ObjectInputStream oistream = new ObjectInputStream(bis);
            o = oistream.readObject();
            oistream.close();
            is.close();
            if (log.isDebugEnabled()) {
                final long stop = System.currentTimeMillis();
                log.debug("time in ms to load ims qti ser file:" + (stop - start));
            }

        } catch (final Exception e) {
            try {
                if (is != null) {
                    is.close();
                }
            } catch (final IOException e1) {
                // did our best to close the inputstream
            }
        }
        return o;
    }

    @Override
    public void cleanUp() {
        final File fSerialDir = new File(getFullQtiPath());
        try {
            FileUtils.deleteDirsAndFiles(fSerialDir, true, true);
        } catch (final Exception e) {
            throw new OLATRuntimeException(FilePersister.class, "could not delete qti.ser file in clean-up process " + getFullQtiPath() + File.separator + QTI_FILE, e);
        }
    }

    /**
     * Persist results for this user/aiid as an XML document. dlPointer is aiid in this case.
     *
     * @param doc
     * @param type
     * @param info
     */
    public static void createResultsReporting(final Document doc, final Identity subj, final String type, final long aiid) {
        final File fUserdataRoot = new File(WebappHelper.getUserDataRoot());
        final String path = RES_REPORTING + File.separator + subj.getName() + File.separator + type;
        final File fReportingDir = new File(fUserdataRoot, path);
        try {
            fReportingDir.mkdirs();
            final OutputStream os = new FileOutputStream(new File(fReportingDir, aiid + ".xml"));
            final Element element = doc.getRootElement();
            final XMLWriter xw = new XMLWriter(os, new OutputFormat("  ", true));
            xw.write(element);
            // closing steams
            xw.close();
            os.close();
        } catch (final Exception e) {
            throw new OLATRuntimeException(FilePersister.class,
                    "Error persisting results reporting for subject: '" + subj.getName() + "'; assessment id: '" + aiid + "'", e);
        }
    }

    /**
     * Retreive results for this user/aiid
     *
     * @param type
     *            The type of results
     * @return
     */
    public static Document retreiveResultsReporting(final Identity subj, final String type, final long aiid) {
        final File fUserdataRoot = new File(WebappHelper.getUserDataRoot());
        final String path = RES_REPORTING + File.separator + subj.getName() + File.separator + type + File.separator + aiid + ".xml";
        final File fDoc = new File(fUserdataRoot, path);
        Document doc = null;
        try {
            final InputStream is = new FileInputStream(fDoc);
            final BufferedInputStream bis = new BufferedInputStream(is);
            final XMLParser xmlParser = new XMLParser(new IMSEntityResolver());
            doc = xmlParser.parse(bis, false);
            is.close();
            bis.close();
        } catch (final Exception e) {
            throw new OLATRuntimeException(FilePersister.class,
                    "Error retrieving results reporting for subject: '" + subj.getName() + "'; assessment id: '" + aiid + "'", e);
        }
        return doc;
    }

    /**
     * Return full directory path which is used to store qti.ser file. Is unique for certain identity and resource Format <resource_path>/<identity_name> e.g.
     * bcroot/qtiser/7400000102/7411112222/test
     *
     * @return Full directory path
     */
    private String getFullQtiPath() {
        return WebappHelper.getUserDataRoot() + File.separator + QTI_SER + File.separator + resourcePathInfo + File.separator + subjectName;
    }

    /**
     * Delete all qti data dirs for certain user. Includes : /qtiser/<REPO_ID>/<COURSE_ID>/<USER_NAME>, /qtiser/<USER_NAME> /resreporting/<USER_NAME>
     *
     * @param identity
     */
    public static void deleteUserData(final Identity identity) {
        try {
            // 1. Delete temp file qti.ser @ /qtiser/<REPO_ID>/<COURSE_ID>/<USER_NAME>
            // Loop over all repo-id-dirs and loop over all course-id-dirs and look for username
            final File qtiserBaseDir = new File(WebappHelper.getUserDataRoot() + File.separator + QTI_SER);
            class OlatResidFilter implements FilenameFilter {
                @Override
                public boolean accept(final File dir, final String name) {
                    return (name.matches("[0-9]*"));
                }
            }
            final File[] dirs = qtiserBaseDir.listFiles(new OlatResidFilter());
            if (dirs != null) {
                for (int i = 0; i < dirs.length; i++) {
                    final File[] subDirs = dirs[i].listFiles(new OlatResidFilter());
                    for (int j = 0; j < subDirs.length; j++) {
                        final File userDir = new File(subDirs[j], identity.getName());
                        if (userDir.exists()) {
                            FileUtils.deleteDirsAndFiles(userDir, true, true);
                            log.debug("Delete qti.ser Userdata dir=" + userDir.getAbsolutePath());
                        }
                    }
                }
            }

            // 2. Delete temp file qti.ser @ /qtiser/<USER_NAME> (old <5.1 path)
            final File qtiserDir = new File(WebappHelper.getUserDataRoot() + File.separator + QTI_SER + File.separator + identity.getName());
            if (qtiserDir != null) {
                FileUtils.deleteDirsAndFiles(qtiserDir, true, true);
                log.debug("Delete qti.ser Userdata dir=" + qtiserDir.getAbsolutePath());
            }
            // 3. Delete resreporting @ /resreporting/<USER_NAME>
            final File resReportingDir = new File(WebappHelper.getUserDataRoot() + File.separator + RES_REPORTING + File.separator + identity.getName());
            if (resReportingDir != null) {
                FileUtils.deleteDirsAndFiles(resReportingDir, true, true);
                log.debug("Delete qti resreporting Userdata dir=" + qtiserDir.getAbsolutePath());
            }
        } catch (final Exception e) {
            throw new OLATRuntimeException(FilePersister.class, "could not delete QTI resreporting dir for identity=" + identity, e);
        }
    }

    /**
     * Return full directory path which is used to store qti.ser file in course node context.
     *
     * @param course
     *            course resourceable id
     * @param node
     *            node ident
     * @return
     */
    public static String getFullPathToCourseNodeDirectory(final String course, final String node) {
        return WebappHelper.getUserDataRoot() + File.separator + QTI_SER + File.separator + course + File.separator + node;
    }

}


text:
namespace SchemaFactor.Vst.MidiWifi
{
    partial class AboutForm
    {
        /// <summary>
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.IContainer components = null;

        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region Windows Form Designer generated code

        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AboutForm));
            this.OKBtn = new System.Windows.Forms.Button();
            this.Logo = new System.Windows.Forms.PictureBox();
            this.InfoLabel = new System.Windows.Forms.Label();
            this.DonateLogo = new System.Windows.Forms.PictureBox();
            ((System.ComponentModel.ISupportInitialize)(this.Logo)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.DonateLogo)).BeginInit();
            this.SuspendLayout();
            //
            // OKBtn
            //
            this.OKBtn.BackColor = System.Drawing.Color.Red;
            this.OKBtn.DialogResult = System.Windows.Forms.DialogResult.OK;
            this.OKBtn.Font = new System.Drawing.Font("OCR A Extended", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            this.OKBtn.Location = new System.Drawing.Point(253, 226);
            this.OKBtn.Name = "OKBtn";
            this.OKBtn.Size = new System.Drawing.Size(75, 28);
            this.OKBtn.TabIndex = 5;
            this.OKBtn.Text = "OK";
            this.OKBtn.UseVisualStyleBackColor = false;
            //
            // Logo
            //
            this.Logo.BackColor = System.Drawing.Color.Transparent;
            this.Logo.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None;
            this.Logo.Image = ((System.Drawing.Image)(resources.GetObject("Logo.Image")));
            this.Logo.Location = new System.Drawing.Point(120, 12);
            this.Logo.Name = "Logo";
            this.Logo.Size = new System.Drawing.Size(340, 29);
            this.Logo.TabIndex = 38;
            this.Logo.TabStop = false;
            //
            // InfoLabel
            //
            this.InfoLabel.BackColor = System.Drawing.Color.Transparent;
            this.InfoLabel.Font = new System.Drawing.Font("OCR A Extended", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            this.InfoLabel.ForeColor = System.Drawing.Color.White;
            this.InfoLabel.Location = new System.Drawing.Point(2, 68);
            this.InfoLabel.Margin = new System.Windows.Forms.Padding(0);
            this.InfoLabel.Name = "InfoLabel";
            this.InfoLabel.Size = new System.Drawing.Size(576, 93);
            this.InfoLabel.TabIndex = 47;
            this.InfoLabel.Text = "Info";
            this.InfoLabel.TextAlign = System.Drawing.ContentAlignment.TopCenter;
            //
            // DonateLogo
            //
            this.DonateLogo.Cursor = System.Windows.Forms.Cursors.Hand;
            this.DonateLogo.Image = ((System.Drawing.Image)(resources.GetObject("DonateLogo.Image")));
            this.DonateLogo.InitialImage = ((System.Drawing.Image)(resources.GetObject("DonateLogo.InitialImage")));
            this.DonateLogo.Location = new System.Drawing.Point(239, 164);
            this.DonateLogo.Name = "DonateLogo";
            this.DonateLogo.Size = new System.Drawing.Size(99, 40);
            this.DonateLogo.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize;
            this.DonateLogo.TabIndex = 48;
            this.DonateLogo.TabStop = false;
            this.DonateLogo.Click += new System.EventHandler(this.DonateLogo_Click);
            //
            // AboutForm
            //
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.BackColor = System.Drawing.Color.Black;
            this.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("$this.BackgroundImage")));
            this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center;
            this.ClientSize = new System.Drawing.Size(580, 268);
            this.Controls.Add(this.DonateLogo);
            this.Controls.Add(this.InfoLabel);
            this.Controls.Add(this.Logo);
            this.Controls.Add(this.OKBtn);
            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
            this.MaximizeBox = false;
            this.MinimizeBox = false;
            this.Name = "AboutForm";
            this.ShowInTaskbar = false;
            this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
            this.Text = "About";
            ((System.ComponentModel.ISupportInitialize)(this.Logo)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.DonateLogo)).EndInit();
            this.ResumeLayout(false);
            this.PerformLayout();

        }

        #endregion

        private System.Windows.Forms.Button OKBtn;
        private System.Windows.Forms.PictureBox Logo;
        private System.Windows.Forms.Label InfoLabel;
        private System.Windows.Forms.PictureBox DonateLogo;
    }
}


text:
namespace arangodb {
namespace consensus {

struct FailedLeader : public Job {
  FailedLeader(Node const& snapshot, AgentInterface* agent, std::string const& jobId,
               std::string const& creator = std::string(),
               std::string const& database = std::string(),
               std::string const& collection = std::string(),
               std::string const& shard = std::string(),
               std::string const& from = std::string());

  FailedLeader(Node const& snapshot, AgentInterface* agent,
               JOB_STATUS status, std::string const& jobId);

  virtual ~FailedLeader();

  virtual bool create(std::shared_ptr<VPackBuilder> b = nullptr) override final;
  virtual bool start() override final;
  virtual JOB_STATUS status() override final;
  virtual void run() override final;
  virtual Result abort() override final;
  void rollback();

  std::string _database;
  std::string _collection;
  std::string _shard;
  std::string _from;
  std::string _to;
  std::chrono::time_point<std::chrono::system_clock> _created;

};
}
}  // namespaces

#endif


text:
<?php

namespace app\framework\Component\Route\Klein\Exceptions;

/**
 * HttpExceptionInterface
 *
 * An interface for type-hinting generic HTTP errors
 */
interface HttpExceptionInterface extends KleinExceptionInterface
{
}


text:
This is a fairly simple PHP website that displays club information and allows
cabinet members to edit content.

## Development

You can run migrations using `php -f ./migrations/MIGRATION_FILENAME.php`.

## Contributors
- Alex Hicks <aldahick@iupui.edu> <alex@alexhicks.net>