text:
#region copyright
// Copyright 2015 Habart Thierry
//
// 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.
#endregion

using Moq;
using SimpleIdentityServer.Core.Common.Models;
using SimpleIdentityServer.Core.Common.Repositories;
using SimpleIdentityServer.Core.Errors;
using SimpleIdentityServer.Core.Exceptions;
using SimpleIdentityServer.Core.Helpers;
using SimpleIdentityServer.Core.JwtToken;
using SimpleIdentityServer.Core.Services;
using System;
using System.Threading.Tasks;
using Xunit;

namespace SimpleIdentityServer.Core.UnitTests.Helpers
{
    public class GrantedTokenGeneratorHelperFixture
    {
        private Mock<IConfigurationService> _simpleIdentityServerConfiguratorStub;
        private Mock<IJwtGenerator> _jwtGeneratorStub;
        private Mock<IClientHelper> _clientHelperStub;
        private Mock<IClientRepository> _clientRepositoryStub;
        private IGrantedTokenGeneratorHelper _grantedTokenGeneratorHelper;

        [Fact]
        public async Task When_Passing_NullOrWhiteSpace_Then_Exceptions_Are_Thrown()
        {
            // ARRANGE
            InitializeFakeObjects();

            // ACTS & ASSERTS
            await Assert.ThrowsAsync<ArgumentNullException>(() => _grantedTokenGeneratorHelper.GenerateTokenAsync(string.Empty, null, null));
        }

        [Fact]
        public async Task When_Client_Doesnt_Exist_Then_Exception_Is_Thrown()
        {
            // ARRANGE
            InitializeFakeObjects();
            _clientRepositoryStub.Setup(c => c.GetClientByIdAsync(It.IsAny<string>())).Returns(Task.FromResult((Core.Common.Models.Client)null));

            // ACTS & ASSERTS
            var ex = await Assert.ThrowsAsync<IdentityServerException>(() => _grantedTokenGeneratorHelper.GenerateTokenAsync("invalid_client", null, null));
            Assert.True(ex.Code == ErrorCodes.InvalidClient);
            Assert.True(ex.Message == ErrorDescriptions.TheClientIdDoesntExist);
        }

        [Fact]
        public async Task When_ExpirationTime_Is_Set_Then_ExpiresInProperty_Is_Set()
        {
            var client = new Core.Common.Models.Client
            {
                ClientId = "client_id"
            };
            // ARRANGE
            InitializeFakeObjects();
            _clientRepositoryStub.Setup(c => c.GetClientByIdAsync(It.IsAny<string>()))
                .Returns(Task.FromResult(client));
            _simpleIdentityServerConfiguratorStub.Setup(c => c.GetTokenValidityPeriodInSecondsAsync())
                .Returns(Task.FromResult((double)3700));

            // ACT
            var result = await _grantedTokenGeneratorHelper.GenerateTokenAsync("client_id", "scope", "issuer");

            // ASSERT
            Assert.NotNull(result);
            Assert.True(result.ExpiresIn == 3700);
        }

        private void InitializeFakeObjects()
        {
            _simpleIdentityServerConfiguratorStub = new Mock<IConfigurationService>();
            _jwtGeneratorStub = new Mock<IJwtGenerator>();
            _clientHelperStub = new Mock<IClientHelper>();
            _clientRepositoryStub = new Mock<IClientRepository>();
            _grantedTokenGeneratorHelper = new GrantedTokenGeneratorHelper(
                _simpleIdentityServerConfiguratorStub.Object,
                _jwtGeneratorStub.Object,
                _clientHelperStub.Object,
                _clientRepositoryStub.Object);
        }
    }
}


text:
.. Autogenerated by Gollum RST generator (docs/generator/*.go)

Double
======

Double is a formatter that appends a delimiter string and a second copy of
the message's contents to the message. Independent sets of formatters may
be applied to both duplicates.

Parameters
----------

**Separator** (default: :)

  This value sets the separator string placed between both parts.
  This parameter is set to ":" by default.

**UseLeftStreamID** (default: false)

  Use the stream id of the left side as the final stream id
  for the message if this value is "true".
  This parameter is set to "false" by default.

**Left**

  An optional list of formatters. The first copy of the message (left
  of the delimiter) is passed through these filters.
  This parameter is set to an empty list by default.

**Left**

  An optional list of formatters. The second copy of the mssage (right
  of the delimiter) is passed through these filters.
  This parameter is set to an empty list by default.

**Right**

  (no documentation available)

Parameters (from core.SimpleFormatter)
--------------------------------------

**ApplyTo**

  This value chooses the part of the message the formatting
  should be applied to. Use "" to target the message payload; other values
  specify the name of a metadata field to target.
  By default this parameter is set to "".

**SkipIfEmpty**

  When set to true, this formatter will not be applied to data
  that is empty or - in case of metadata - not existing.
  By default this parameter is set to false

Examples
--------

This example creates a message of the form "<orig>|<base64>", where <orig> is
the original console input and <base64> its Base64-encoded equivalent.

.. code-block:: yaml

	 exampleConsumer:
	   Type: consumer.Console
	   Streams: "*"
	   Modulators:
	     - format.Double:
	       Separator: "|"
	       Right:
	         - format.Base64Encode

redpajama_set_name: RedPajamaGithub


text:
killall -q polybar

# Wait until the processes have been shut down
while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done

bar=${POLYBAR_BAR-desktop}

# Launch the bar
polybar -r $bar &


text:
<module>
	<adapter name="CompareXmlStringPipe" description="Test the functioning of the CompareXmlStringPipe">
		<receiver>
			<listener className="nl.nn.adapterframework.receivers.JavaListener" name="CompareXmlStringPipe" serviceName="ibis4test-CompareXmlStringPipe" />
		</receiver>
		<pipeline firstPipe="FillSessionKey2">
			<exits>
				<exit path="EXIT" state="success" />
			</exits>
			<pipe className="nl.nn.adapterframework.pipes.FixedResultPipe" name="FillSessionKey2" returnString="<test>12<c>3</c></test>" storeResultInSessionKey="sessionKey2">
				<forward name="success" path="FillIgnoreSessionKey" />
			</pipe>
			<pipe className="nl.nn.adapterframework.pipes.FixedResultPipe" name="FillIgnoreSessionKey" returnString="<ignores><ignore><after>&lt;a&gt;</after><before>&lt;/a&gt;</before></ignore><ignore><after>&lt;c&gt;</after><before>&lt;/c&gt;</before></ignore></ignores>" storeResultInSessionKey="ignoreSessionKey">
				<forward name="success" path="Compare" />
			</pipe>
			<pipe name="Compare" className="nl.nn.adapterframework.pipes.CompareStringPipe" xml="true">
				<param name="operand1" sessionKey="originalMessage" />
				<param name="operand2" sessionKey="sessionKey2" />
				<param name="ignorepatterns" sessionKey="ignoreSessionKey" />
				<forward name="lessthan" path="lessthanPipe" />
				<forward name="greaterthan" path="greaterthanPipe" />
				<forward name="equals" path="equalsPipe" />
			</pipe>
			<pipe className="nl.nn.adapterframework.pipes.FixedResultPipe" name="lessthanPipe" returnString="[LESS_THAN]">
				<forward name="success" path="EXIT" />
			</pipe>
			<pipe className="nl.nn.adapterframework.pipes.FixedResultPipe" name="greaterthanPipe" returnString="[GREATER_THAN]">
				<forward name="success" path="EXIT" />
			</pipe>
			<pipe className="nl.nn.adapterframework.pipes.FixedResultPipe" name="equalsPipe" returnString="[EQUALS]">
				<forward name="success" path="EXIT" />
			</pipe>
		</pipeline>
	</adapter>
</module>


text:
layout: recipe
title: Homemade Whipped Cream
category: basics
from: Our Kitchen
prep: 5 minutes
---

##### Ingredients:

* 1 cup Heavy cream (will provide about tripple the volume in whipped cream)
* Optional: vanilla (or other flavors!)
* Optional: Pinch of white sugar

<br>

##### Directions:

1. Place inredients in a bowl big enough that whipping the cream won't overflow
2. Mix the ingredients on medium speed (I usually do 3 on our 5-speed mixer) for 3-4 minutes. Sometimes it takes longer than that -- be patient!  Whipped cream is ready when stiff peaks start to form.

This can be enjoyed on [baked hot chocolate](http://recipes.lucywyman.me/baked-hot-choclate.html), [apple pie](http://recipes.lucywyman.me/apple-pie.html), and lots of other [yummy desserts!](http://recipes.lucywyman.me/desserts/)


text:
IMPLEMENT_DYNCREATE(CProjectModules, CWnd)

/////////////////////////////////////////////////////////////////////////////
// CProjectModules properties

LPDISPATCH CProjectModules::GetDataSource()
{
	LPDISPATCH result;
	GetProperty(0x1, VT_DISPATCH, (void*)&result);
	return result;
}

void CProjectModules::SetDataSource(LPDISPATCH propVal)
{
	SetProperty(0x1, VT_DISPATCH, propVal);
}

CString CProjectModules::GetProject()
{
	CString result;
	GetProperty(0x2, VT_BSTR, (void*)&result);
	return result;
}

void CProjectModules::SetProject(LPCTSTR propVal)
{
	SetProperty(0x2, VT_BSTR, propVal);
}

/////////////////////////////////////////////////////////////////////////////
// CProjectModules operations

void CProjectModules::AboutBox()
{
	InvokeHelper(0xfffffdd8, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
}


text:
Jupyter JS Services
===================

Javascript client for the Jupyter services REST APIs

[API Docs](http://jupyter.github.io/jupyter-js-services/)

[REST API Docs](http://petstore.swagger.io/?url=https://raw.githubusercontent.com/jupyter/jupyter-js-services/master/rest_api.yaml)

Note: All functions and methods using the REST API allow an optional
`ajaxOptions` parameter to configure the request.

Package Install
---------------

**Prerequisites**
- [node](http://nodejs.org/)

```bash
npm install --save jupyter-js-services
```

Source Build
------------

**Prerequisites**
- [git](http://git-scm.com/)
- [node 0.12+](http://nodejs.org/)

```bash
git clone https://github.com/jupyter/jupyter-js-services.git
cd jupyter-js-services
npm install
npm run build
```

**Rebuild**
```bash
npm run clean
npm run build
```

Run Tests
---------

Follow the source build instructions first.

```bash
npm test
```

Build Docs
----------

Follow the source build instructions first.

```bash
npm run docs
```

Navigate to `docs/index.html`.

Supported Runtimes
------------------

The runtime versions which are currently *known to work* are listed below.
Earlier versions may also work, but come with no guarantees.

- Node 0.12.7+
- IE 11+
- Firefox 32+
- Chrome 38+

Bundle for the Browser
----------------------

Follow the package install instructions first.

```bash
npm install --save-dev browserify
browserify myapp.js -o mybundle.js
```

Usage from Node.js
------------------

Follow the package install instructions first.

```bash
npm install --save xmlhttprequest ws
```

Override the global `XMLHttpRequest` and `WebSocket`:

```typescript
import { XMLHttpRequest } from "xmlhttprequest";
import { default as WebSocket } from 'ws';

global.XMLHttpRequest = XMLHttpRequest;
global.WebSocket = WebSocket;
```

Usage Examples
--------------

**Note:** This module is fully compatible with Node/Babel/ES6/ES5. Simply
omit the type declarations when using a language other than TypeScript.

**Kernel**

```typescript
import {
  listRunningKernels, connectToKernel, startNewKernel, getKernelSpecs
} from 'jupyter-js-services';

// get a list of available kernels and connect to one
listRunningKernels('http://localhost:8000').then((kernelModels) => {
  var options = {
    baseUrl: 'http://localhost:8000',
    wsUrl: 'ws://localhost:8000',
    name: kernelModels[0].name
  }
  connectToKernel(kernelModels[0].id, options).then((kernel) => {
    console.log(kernel.name);
  });
});

// get info about the available kernels and start a new one
getKernelSpecs('http://localhost:8888').then((kernelSpecs) => {
  console.log('Default spec:', kernelSpecs.default);
  console.log('Available specs', Object.keys(kernelSpecs.kernelspecs));
  // use the default name
  var options = {
    baseUrl: 'http://localhost:8888',
    wsUrl: 'ws://localhost:8888',
    name: kernelSpecs.default
  }
  startNewKernel(options).then((kernel) => {
    // execute and handle replies
    var future = kernel.execute({ code: 'a = 1' } );
    future.onDone = () => {
      console.log('Future is fulfilled');
    }
    future.onIOPub = (msg) => {
      console.log(msg.content);  // rich output data
    }

    // restart the kernel and then send an inspect message
    kernel.restart().then(() => {
      var request = { code: 'hello', cursor_pos: 4, detail_level: 0};
      kernel.inspect(request).then((reply) => {
        console.log(reply.data);
      });
    });

    // interrupt the kernel and then send a complete message
    kernel.interrupt().then(() => {
      kernel.complete({ code: 'impor', cursor_pos: 4 } ).then((reply) => {
        console.log(reply.matches);
      });
    });

    // register a callback for when the kernel changes state
    kernel.statusChanged.connect((status) => {
      console.log('status', status);
    });

    // kill the kernel
    kernel.shutdown().then(() => {
      console.log('Kernel shut down');
    });
  });
});
```

**NotebookSession**

```typescript
import {
  listRunningSessions, connectToSession, startNewSession
} from 'jupyter-js-services';

// get a list of available sessions and connect to one
listRunningSessions('http://localhost:8000').then((sessionModels) => {
  var options = {
    baseUrl: 'http://localhost:8000',
    wsUrl: 'ws://localhost:8000',
    kernelName: sessionModels[0].kernel.name,
    notebookPath: sessionModels[0].notebook.path
  }
  connectToSession(sessionModels[0].id, options).then((session) => {
    console.log(session.kernel.name);
  });
});

// start a new session
var options = {
  baseUrl: 'http://localhost:8000',
  wsUrl: 'ws://localhost:8000',
  kernelName: 'python',
  notebookPath: '/tmp/foo.ipynb'
}
startNewSession(options).then((session) => {
  // execute and handle replies on the kernel
  var future = session.kernel.execute({ code: 'a = 1' });
  future.onDone = () => {
    console.log('Future is fulfilled');
  }

  // rename the notebook
  session.renameNotebook('/local/bar.ipynb').then(() => {
    console.log('Notebook renamed to', session.notebookPath);
  });

  // register a callback for when the session dies
  session.sessionDied.connect(() => {
    console.log('session died');
  });

  // kill the session
  session.shutdown().then(() => {
    console.log('session closed');
  });

});
```

**Comm**

```typescript
import {
  getKernelSpecs, startNewKernel
} from 'jupyter-js-services';

var BASEURL = 'http://localhost:8888';
var WSURL = 'ws://localhost:8888';

// Create a comm from the server side.
//
// get info about the available kernels and connect to one
getKernelSpecs(BASEURL).then(kernelSpecs => {
  return startNewKernel({
    baseUrl: BASEURL,
    wsUrl: WSURL,
    name: kernelSpecs.default,
  });
}).then(kernel => {
  var comm = kernel.connectToComm('test');
  comm.open('initial state');
  comm.send('test');
  comm.close('bye');
});

// Create a comm from the client side.
getKernelSpecs(BASEURL).then(kernelSpecs => {
  return startNewKernel({
    baseUrl: BASEURL,
    wsUrl: WSURL,
    name: kernelSpecs.default,
  });
}).then(kernel => {
  kernel.commOpened.connect((kernel, commMsg) => {
    if (commMsg.target_name !== 'test2') {
       return;
    }
    var comm = kernel.connectToComm('test2', commMsg.comm_id);
    comm.onMsg = (msg) => {
      console.log(msg);  // 'hello'
    }
    comm.onClose = (msg) => {
      console.log(msg);  // 'bye'
    }
  });
  var code = [
    "from ipykernel.comm import Comm",
    "comm = Comm(target_name='test2')",
    "comm.send(data='hello')",
    "comm.close(data='bye')"
  ].join('\n')
  kernel.execute({ code: code });
});
```

**Contents**

```typescript
import {
  Contents
} from 'jupyter-js-services';

var contents = new Contents('http://localhost:8000');

// create a new python file
contents.newUntitled("/foo", { type: "file", ext: "py" }).then(
  (model) => {
    console.log(model.path);
  }
);

// get the contents of a directory
contents.get("/foo", { type: "directory", name: "bar" }).then(
  (model) => {
    var files = model.content;
  }
)

// rename a file
contents.rename("/foo/bar.txt", "/foo/baz.txt");

// save a file
contents.save("/foo", { type: "file", name: "test.py" });

// delete a file
contents.delete("/foo/bar.txt");

// copy a file
contents.copy("/foo/bar.txt", "/baz").then((model) => {
    var newPath = model.path;
});

// create a checkpoint
contents.createCheckpoint("/foo/bar.ipynb").then((model) => {
  var checkpoint = model;

  // restore a checkpoint
  contents.restoreCheckpoint("/foo/bar.ipynb", checkpoint.id);

  // delete a checkpoint
  contents.deleteCheckpoint("/foo/bar.ipynb", checkpoint.id);
});

// list checkpoints for a file
contents.listCheckpoints("/foo/bar.txt").then((models) => {
    console.log(models[0].id);
});
```

**Configuration**

```typescript
  startNewKernel, getKernelSpecs, getConfigSection, ConfigWithDefaults
} from 'jupyter-js-services';

var BASEURL = 'http://localhost:8888';
var WSURL = 'ws://localhost:8888';

getKernelSpecs(BASEURL).then(kernelSpecs => {
  return startNewKernel({
    baseUrl: BASEURL,
    wsUrl: WSURL,
    name: kernelSpecs.default,
  });
}).then(kernel => {
  getConfigSection('notebook', BASEURL).then(section => {
    var defaults = { default_cell_type: 'code' };
    var config = new ConfigWithDefaults(section, defaults, 'Notebook');
    console.log(config.get('default_cell_type'));   // 'code'
    config.set('foo', 'bar').then(data => {
       console.log(data.foo); // 'bar'
    });
  });
});
```


text:
GM.BankMenu = nil
PANEL = {}
PANEL.BankInventoryPanel = nil
PANEL.PlayerInventoryPanel = nil
PANEL.ItemIconPadding = 1
PANEL.ItemIconSize = 39
PANEL.ItemRow = 7

function PANEL:Init()
  self.Frame = CreateGenericFrame("Bank Menu", false, true)
  self.Frame.btnClose.DoClick = function(btn)
    GAMEMODE.BankMenu.Frame:Close()
    GAMEMODE.BankMenu = nil
  end
  self.Frame:MakePopup()

  self.BankWeightBar = CreateGenericWeightBar(self.Frame, LocalPlayer():GetBankSize(), LocalPlayer():GetBankTotalSize())
  self.BankInventoryPanel = CreateGenericList(self.Frame, self.ItemIconPadding, true, true)
  self.BankInventoryPanel.DoDropedOn = function()
    if GAMEMODE.DraggingPanel.UseCommand == "deposit" then
      GAMEMODE.DraggingPanel.DoDoubleClick()
    end
  end
  GAMEMODE:AddHoverObject(self.BankInventoryPanel)
  GAMEMODE:AddHoverObject(self.BankInventoryPanel.pnlCanvas, self.BankInventoryPanel)

  self.WeightBar = CreateGenericWeightBar(self.Frame, (LocalPlayer().Weight or 0), LocalPlayer():GetMaxWeight())
  self.PlayerInventoryPanel = CreateGenericList(self.Frame, self.ItemIconPadding, true, true)
  self.PlayerInventoryPanel.DoDropedOn = function()
    if GAMEMODE.DraggingPanel.UseCommand == "withdraw" then
      GAMEMODE.DraggingPanel.DoDoubleClick()
    end
  end
  GAMEMODE:AddHoverObject(self.PlayerInventoryPanel)
  GAMEMODE:AddHoverObject(self.PlayerInventoryPanel.pnlCanvas, self.PlayerInventoryPanel)

  self:PerformLayout()
end

function PANEL:LoadBank()
  self.BankWeightBar:Update(LocalPlayer():GetBankSize())
  local tblBank = LocalPlayer().Data.Bank or {}
  self.BankInventoryPanel:Clear()
  if tblBank["money"] and tblBank["money"] > 0 then
    self:AddItem(self.BankInventoryPanel, "money", tblBank["money"], "withdraw")
  end
  for strItem, intAmount in pairs(tblBank or {}) do
    if intAmount > 0 and strItem ~= "money" then
      local tblItemTable = ItemTable(strItem)
      self:AddItem(self.BankInventoryPanel, strItem, intAmount, "withdraw")
    end
  end
end

function PANEL:LoadPlayer()
  self.WeightBar:Update(LocalPlayer().Weight or 0)
  local tblInventory = LocalPlayer().Data.Inventory or {}
  self.PlayerInventoryPanel:Clear()
  if tblInventory["money"] and tblInventory["money"] > 0 then
    self:AddItem(self.PlayerInventoryPanel, "money", tblInventory["money"], "deposit")
  end
  for strItem, intAmount in pairs(tblInventory or {}) do
    if intAmount > 0 and strItem ~= "money" then
      local tblItemTable = ItemTable(strItem)
      self:AddItem(self.PlayerInventoryPanel, strItem, intAmount, "deposit")
    end
  end
end

function PANEL:AddItem(lstAddList, item, amount, strCommand)
  local tblItemTable = ItemTable(item)
  local intListItems = 1
  if not tblItemTable.Stackable then intListItems = amount or 1 end
  for i = 1, intListItems do
    local icnItem = vgui.Create("FIconItem")
    icnItem:SetSize(self.ItemIconSize, self.ItemIconSize)
    icnItem:SetItem(tblItemTable, amount, strCommand or "use")
    lstAddList:AddItem(icnItem)
  end
end

function PANEL:PerformLayout()
  self.BankInventoryPanel:SetPos(5, 45)
  self.BankInventoryPanel:SetSize(((self.ItemIconSize + self.ItemIconPadding) * self.ItemRow) + self.ItemIconPadding, self.Frame:GetTall() - 50)

  self.BankWeightBar:SetPos(5, 25)
  self.BankWeightBar:SetSize(self.BankInventoryPanel:GetWide(), 15)
  self.BankWeightBar:Update(LocalPlayer():GetBankSize())

  self.PlayerInventoryPanel:SetPos(self.BankInventoryPanel:GetWide() + 10, 45)
  self.PlayerInventoryPanel:SetSize(((self.ItemIconSize + self.ItemIconPadding) * self.ItemRow) + self.ItemIconPadding, self.Frame:GetTall() - 50)

  self.WeightBar:SetPos(self.BankInventoryPanel:GetWide() + 10, 25)
  self.WeightBar:SetSize(self.PlayerInventoryPanel:GetWide(), 15)
  self.WeightBar:Update(LocalPlayer().Weight or 0)

  self:SetSize(self.BankInventoryPanel:GetWide() + self.PlayerInventoryPanel:GetWide() + 15, 300)
  self.Frame:SetPos(self:GetPos())
  self.Frame:SetSize(self:GetSize())
end
vgui.Register("bankmenu", PANEL, "Panel")

concommand.Add("UD_OpenBankMenu", function(ply, command, args)
  local npc = ply:GetEyeTrace().Entity
  local tblNPCTable = NPCTable(npc:GetNWString("npc"))
  if not IsValid(npc) or not tblNPCTable or not tblNPCTable.Bank then return end
  GAMEMODE.BankMenu = GAMEMODE.BankMenu or vgui.Create("bankmenu")
  GAMEMODE.BankMenu:SetSize(505, 340)
  GAMEMODE.BankMenu:Center()
  GAMEMODE.BankMenu:LoadBank()
  GAMEMODE.BankMenu:LoadPlayer()
end)


text:
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: google/ads/googleads/v10/services/offline_user_data_job_service.proto

package com.google.ads.googleads.v10.services;

public interface AddOfflineUserDataJobOperationsResponseOrBuilder extends
    // @@protoc_insertion_point(interface_extends:google.ads.googleads.v10.services.AddOfflineUserDataJobOperationsResponse)
    com.google.protobuf.MessageOrBuilder {

  /**
   *

   * Errors that pertain to operation failures in the partial failure mode.
   * Returned only when partial_failure = true and all errors occur inside the
   * operations. If any errors occur outside the operations (for example, auth
   * errors), we return an RPC level error.
   *

   *
   * .google.rpc.Status partial_failure_error = 1;
   * @return Whether the partialFailureError field is set.
   */
  boolean hasPartialFailureError();
  /**
   *

   * Errors that pertain to operation failures in the partial failure mode.
   * Returned only when partial_failure = true and all errors occur inside the
   * operations. If any errors occur outside the operations (for example, auth
   * errors), we return an RPC level error.
   *

   *
   * .google.rpc.Status partial_failure_error = 1;
   * @return The partialFailureError.
   */
  com.google.rpc.Status getPartialFailureError();
  /**
   *

   * Errors that pertain to operation failures in the partial failure mode.
   * Returned only when partial_failure = true and all errors occur inside the
   * operations. If any errors occur outside the operations (for example, auth
   * errors), we return an RPC level error.
   *

   *
   * .google.rpc.Status partial_failure_error = 1;
   */
  com.google.rpc.StatusOrBuilder getPartialFailureErrorOrBuilder();

  /**
   *

   * Non blocking errors that pertain to operation failures in the warnings
   * mode. Returned only when enable_warnings = true.
   *

   *
   * .google.rpc.Status warning = 2;
   * @return Whether the warning field is set.
   */
  boolean hasWarning();
  /**
   *

   * Non blocking errors that pertain to operation failures in the warnings
   * mode. Returned only when enable_warnings = true.
   *

   *
   * .google.rpc.Status warning = 2;
   * @return The warning.
   */
  com.google.rpc.Status getWarning();
  /**
   *

   * Non blocking errors that pertain to operation failures in the warnings
   * mode. Returned only when enable_warnings = true.
   *

   *
   * .google.rpc.Status warning = 2;
   */
  com.google.rpc.StatusOrBuilder getWarningOrBuilder();
}


text:
/* ***********************************************************
 * This file was automatically generated on 2014-12-10.      *
 *                                                           *
 * Bindings Version 2.1.6                                    *
 *                                                           *
 * If you have a bugfix for this file and want to commit it, *
 * please fix the bug in the generator. You can find a link  *
 * to the generator git on tinkerforge.com                   *
 *************************************************************/

#ifndef BRICKLET_CURRENT25_H
#define BRICKLET_CURRENT25_H

#include "ip_connection.h"

#ifdef __cplusplus
extern "C" {
#endif

/**
 * \defgroup BrickletCurrent25 Current25 Bricklet
 */

/**
 * \ingroup BrickletCurrent25
 *
 * Device for sensing current of up to 25A
 */
typedef Device Current25;

/**
 * \ingroup BrickletCurrent25
 */
#define CURRENT25_FUNCTION_GET_CURRENT 1

/**
 * \ingroup BrickletCurrent25
 */
#define CURRENT25_FUNCTION_CALIBRATE 2

/**
 * \ingroup BrickletCurrent25
 */
#define CURRENT25_FUNCTION_IS_OVER_CURRENT 3

/**
 * \ingroup BrickletCurrent25
 */
#define CURRENT25_FUNCTION_GET_ANALOG_VALUE 4

/**
 * \ingroup BrickletCurrent25
 */
#define CURRENT25_FUNCTION_SET_CURRENT_CALLBACK_PERIOD 5

/**
 * \ingroup BrickletCurrent25
 */
#define CURRENT25_FUNCTION_GET_CURRENT_CALLBACK_PERIOD 6

/**
 * \ingroup BrickletCurrent25
 */
#define CURRENT25_FUNCTION_SET_ANALOG_VALUE_CALLBACK_PERIOD 7

/**
 * \ingroup BrickletCurrent25
 */
#define CURRENT25_FUNCTION_GET_ANALOG_VALUE_CALLBACK_PERIOD 8

/**
 * \ingroup BrickletCurrent25
 */
#define CURRENT25_FUNCTION_SET_CURRENT_CALLBACK_THRESHOLD 9

/**
 * \ingroup BrickletCurrent25
 */
#define CURRENT25_FUNCTION_GET_CURRENT_CALLBACK_THRESHOLD 10

/**
 * \ingroup BrickletCurrent25
 */
#define CURRENT25_FUNCTION_SET_ANALOG_VALUE_CALLBACK_THRESHOLD 11

/**
 * \ingroup BrickletCurrent25
 */
#define CURRENT25_FUNCTION_GET_ANALOG_VALUE_CALLBACK_THRESHOLD 12

/**
 * \ingroup BrickletCurrent25
 */
#define CURRENT25_FUNCTION_SET_DEBOUNCE_PERIOD 13

/**
 * \ingroup BrickletCurrent25
 */
#define CURRENT25_FUNCTION_GET_DEBOUNCE_PERIOD 14

/**
 * \ingroup BrickletCurrent25
 */
#define CURRENT25_FUNCTION_GET_IDENTITY 255

/**
 * \ingroup BrickletCurrent25
 *
 * Signature: \code void callback(int16_t current, void *user_data) \endcode
 *
 * This callback is triggered periodically with the period that is set by
 * {@link current25_set_current_callback_period}. The parameter is the current of the
 * sensor.
 *
 * {@link CURRENT25_CALLBACK_CURRENT} is only triggered if the current has changed since the
 * last triggering.
 */
#define CURRENT25_CALLBACK_CURRENT 15

/**
 * \ingroup BrickletCurrent25
 *
 * Signature: \code void callback(uint16_t value, void *user_data) \endcode
 *
 * This callback is triggered periodically with the period that is set by
 * {@link current25_set_analog_value_callback_period}. The parameter is the analog value of the
 * sensor.
 *
 * {@link CURRENT25_CALLBACK_ANALOG_VALUE} is only triggered if the current has changed since the
 * last triggering.
 */
#define CURRENT25_CALLBACK_ANALOG_VALUE 16

/**
 * \ingroup BrickletCurrent25
 *
 * Signature: \code void callback(int16_t current, void *user_data) \endcode
 *
 * This callback is triggered when the threshold as set by
 * {@link current25_set_current_callback_threshold} is reached.
 * The parameter is the current of the sensor.
 *
 * If the threshold keeps being reached, the callback is triggered periodically
 * with the period as set by {@link current25_set_debounce_period}.
 */
#define CURRENT25_CALLBACK_CURRENT_REACHED 17

/**
 * \ingroup BrickletCurrent25
 *
 * Signature: \code void callback(uint16_t value, void *user_data) \endcode
 *
 * This callback is triggered when the threshold as set by
 * {@link current25_set_analog_value_callback_threshold} is reached.
 * The parameter is the analog value of the sensor.
 *
 * If the threshold keeps being reached, the callback is triggered periodically
 * with the period as set by {@link current25_set_debounce_period}.
 */
#define CURRENT25_CALLBACK_ANALOG_VALUE_REACHED 18

/**
 * \ingroup BrickletCurrent25
 *
 * Signature: \code void callback(void *user_data) \endcode
 *
 * This callback is triggered when an over current is measured
 * (see {@link current25_is_over_current}).
 */
#define CURRENT25_CALLBACK_OVER_CURRENT 19

/**
 * \ingroup BrickletCurrent25
 */
#define CURRENT25_THRESHOLD_OPTION_OFF 'x'

/**
 * \ingroup BrickletCurrent25
 */
#define CURRENT25_THRESHOLD_OPTION_OUTSIDE 'o'

/**
 * \ingroup BrickletCurrent25
 */
#define CURRENT25_THRESHOLD_OPTION_INSIDE 'i'

/**
 * \ingroup BrickletCurrent25
 */
#define CURRENT25_THRESHOLD_OPTION_SMALLER '<'

/**
 * \ingroup BrickletCurrent25
 */
#define CURRENT25_THRESHOLD_OPTION_GREATER '>'

/**
 * \ingroup BrickletCurrent25
 *
 * This constant is used to identify a Current25 Bricklet.
 *
 * The {@link current25_get_identity} function and the
 * {@link IPCON_CALLBACK_ENUMERATE} callback of the IP Connection have a
 * \c device_identifier parameter to specify the Brick's or Bricklet's type.
 */
#define CURRENT25_DEVICE_IDENTIFIER 24

/**
 * \ingroup BrickletCurrent25
 *
 * Creates the device object \c current25 with the unique device ID \c uid and adds
 * it to the IPConnection \c ipcon.
 */
void current25_create(Current25 *current25, const char *uid, IPConnection *ipcon);

/**
 * \ingroup BrickletCurrent25
 *
 * Removes the device object \c current25 from its IPConnection and destroys it.
 * The device object cannot be used anymore afterwards.
 */
void current25_destroy(Current25 *current25);

/**
 * \ingroup BrickletCurrent25
 *
 * Returns the response expected flag for the function specified by the
 * \c function_id parameter. It is *true* if the function is expected to
 * send a response, *false* otherwise.
 *
 * For getter functions this is enabled by default and cannot be disabled,
 * because those functions will always send a response. For callback
 * configuration functions it is enabled by default too, but can be disabled
 * via the current25_set_response_expected function. For setter functions it is
 * disabled by default and can be enabled.
 *
 * Enabling the response expected flag for a setter function allows to
 * detect timeouts and other error conditions calls of this setter as well.
 * The device will then send a response for this purpose. If this flag is
 * disabled for a setter function then no response is send and errors are
 * silently ignored, because they cannot be detected.
 */
int current25_get_response_expected(Current25 *current25, uint8_t function_id, bool *ret_response_expected);

/**
 * \ingroup BrickletCurrent25
 *
 * Changes the response expected flag of the function specified by the
 * \c function_id parameter. This flag can only be changed for setter
 * (default value: *false*) and callback configuration functions
 * (default value: *true*). For getter functions it is always enabled and
 * callbacks it is always disabled.
 *
 * Enabling the response expected flag for a setter function allows to detect
 * timeouts and other error conditions calls of this setter as well. The device
 * will then send a response for this purpose. If this flag is disabled for a
 * setter function then no response is send and errors are silently ignored,
 * because they cannot be detected.
 */
int current25_set_response_expected(Current25 *current25, uint8_t function_id, bool response_expected);

/**
 * \ingroup BrickletCurrent25
 *
 * Changes the response expected flag for all setter and callback configuration
 * functions of this device at once.
 */
int current25_set_response_expected_all(Current25 *current25, bool response_expected);

/**
 * \ingroup BrickletCurrent25
 *
 * Registers a callback with ID \c id to the function \c callback. The
 * \c user_data will be given as a parameter of the callback.
 */
void current25_register_callback(Current25 *current25, uint8_t id, void *callback, void *user_data);

/**
 * \ingroup BrickletCurrent25
 *
 * Returns the API version (major, minor, release) of the bindings for this
 * device.
 */
int current25_get_api_version(Current25 *current25, uint8_t ret_api_version[3]);

/**
 * \ingroup BrickletCurrent25
 *
 * Returns the current of the sensor. The value is in mA
 * and between -25000mA and 25000mA.
 *
 * If you want to get the current periodically, it is recommended to use the
 * callback {@link CURRENT25_CALLBACK_CURRENT} and set the period with
 * {@link current25_set_current_callback_period}.
 */
int current25_get_current(Current25 *current25, int16_t *ret_current);

/**
 * \ingroup BrickletCurrent25
 *
 * Calibrates the 0 value of the sensor. You have to call this function
 * when there is no current present.
 *
 * The zero point of the current sensor
 * is depending on the exact properties of the analog-to-digital converter,
 * the length of the Bricklet cable and the temperature. Thus, if you change
 * the Brick or the environment in which the Bricklet is used, you might
 * have to recalibrate.
 *
 * The resulting calibration will be saved on the EEPROM of the Current
 * Bricklet.
 */
int current25_calibrate(Current25 *current25);

/**
 * \ingroup BrickletCurrent25
 *
 * Returns *true* if more than 25A were measured.
 *
 * \note
 *  To reset this value you have to power cycle the Bricklet.
 */
int current25_is_over_current(Current25 *current25, bool *ret_over);

/**
 * \ingroup BrickletCurrent25
 *
 * Returns the value as read by a 12-bit analog-to-digital converter.
 * The value is between 0 and 4095.
 *
 * \note
 *  The value returned by {@link current25_get_current} is averaged over several samples
 *  to yield less noise, while {@link current25_get_analog_value} gives back raw
 *  unfiltered analog values. The only reason to use {@link current25_get_analog_value} is,
 *  if you need the full resolution of the analog-to-digital converter.
 *
 * If you want the analog value periodically, it is recommended to use the
 * callback {@link CURRENT25_CALLBACK_ANALOG_VALUE} and set the period with
 * {@link current25_set_analog_value_callback_period}.
 */
int current25_get_analog_value(Current25 *current25, uint16_t *ret_value);

/**
 * \ingroup BrickletCurrent25
 *
 * Sets the period in ms with which the {@link CURRENT25_CALLBACK_CURRENT} callback is triggered
 * periodically. A value of 0 turns the callback off.
 *
 * {@link CURRENT25_CALLBACK_CURRENT} is only triggered if the current has changed since the
 * last triggering.
 *
 * The default value is 0.
 */
int current25_set_current_callback_period(Current25 *current25, uint32_t period);

/**
 * \ingroup BrickletCurrent25
 *
 * Returns the period as set by {@link current25_set_current_callback_period}.
 */
int current25_get_current_callback_period(Current25 *current25, uint32_t *ret_period);

/**
 * \ingroup BrickletCurrent25
 *
 * Sets the period in ms with which the {@link CURRENT25_CALLBACK_ANALOG_VALUE} callback is triggered
 * periodically. A value of 0 turns the callback off.
 *
 * {@link CURRENT25_CALLBACK_ANALOG_VALUE} is only triggered if the analog value has changed since the
 * last triggering.
 *
 * The default value is 0.
 */
int current25_set_analog_value_callback_period(Current25 *current25, uint32_t period);

/**
 * \ingroup BrickletCurrent25
 *
 * Returns the period as set by {@link current25_set_analog_value_callback_period}.
 */
int current25_get_analog_value_callback_period(Current25 *current25, uint32_t *ret_period);

/**
 * \ingroup BrickletCurrent25
 *
 * Sets the thresholds for the {@link CURRENT25_CALLBACK_CURRENT_REACHED} callback.
 *
 * The following options are possible:
 *
 * \verbatim
 *  "Option", "Description"
 *
 *  "'x'",    "Callback is turned off"
 *  "'o'",    "Callback is triggered when the current is *outside* the min and max values"
 *  "'i'",    "Callback is triggered when the current is *inside* the min and max values"
 *  "'<'",    "Callback is triggered when the current is smaller than the min value (max is ignored)"
 *  "'>'",    "Callback is triggered when the current is greater than the min value (max is ignored)"
 * \endverbatim
 *
 * The default value is ('x', 0, 0).
 */
int current25_set_current_callback_threshold(Current25 *current25, char option, int16_t min, int16_t max);

/**
 * \ingroup BrickletCurrent25
 *
 * Returns the threshold as set by {@link current25_set_current_callback_threshold}.
 */
int current25_get_current_callback_threshold(Current25 *current25, char *ret_option, int16_t *ret_min, int16_t *ret_max);

/**
 * \ingroup BrickletCurrent25
 *
 * Sets the thresholds for the {@link CURRENT25_CALLBACK_ANALOG_VALUE_REACHED} callback.
 *
 * The following options are possible:
 *
 * \verbatim
 *  "Option", "Description"
 *
 *  "'x'",    "Callback is turned off"
 *  "'o'",    "Callback is triggered when the analog value is *outside* the min and max values"
 *  "'i'",    "Callback is triggered when the analog value is *inside* the min and max values"
 *  "'<'",    "Callback is triggered when the analog value is smaller than the min value (max is ignored)"
 *  "'>'",    "Callback is triggered when the analog value is greater than the min value (max is ignored)"
 * \endverbatim
 *
 * The default value is ('x', 0, 0).
 */
int current25_set_analog_value_callback_threshold(Current25 *current25, char option, uint16_t min, uint16_t max);

/**
 * \ingroup BrickletCurrent25
 *
 * Returns the threshold as set by {@link current25_set_analog_value_callback_threshold}.
 */
int current25_get_analog_value_callback_threshold(Current25 *current25, char *ret_option, uint16_t *ret_min, uint16_t *ret_max);

/**
 * \ingroup BrickletCurrent25
 *
 * Sets the period in ms with which the threshold callbacks
 *
 * * {@link CURRENT25_CALLBACK_CURRENT_REACHED},
 * * {@link CURRENT25_CALLBACK_ANALOG_VALUE_REACHED}
 *
 * are triggered, if the thresholds
 *
 * * {@link current25_set_current_callback_threshold},
 * * {@link current25_set_analog_value_callback_threshold}
 *
 * keep being reached.
 *
 * The default value is 100.
 */
int current25_set_debounce_period(Current25 *current25, uint32_t debounce);

/**
 * \ingroup BrickletCurrent25
 *
 * Returns the debounce period as set by {@link current25_set_debounce_period}.
 */
int current25_get_debounce_period(Current25 *current25, uint32_t *ret_debounce);

/**
 * \ingroup BrickletCurrent25
 *
 * Returns the UID, the UID where the Bricklet is connected to,
 * the position, the hardware and firmware version as well as the
 * device identifier.
 *
 * The position can be 'a', 'b', 'c' or 'd'.
 *
 * The device identifier numbers can be found :ref:`here <device_identifier>`.
 * |device_identifier_constant|
 */
int current25_get_identity(Current25 *current25, char ret_uid[8], char ret_connected_uid[8], char *ret_position, uint8_t ret_hardware_version[3], uint8_t ret_firmware_version[3], uint16_t *ret_device_identifier);

#ifdef __cplusplus
}
#endif

#endif


text:
require "boxen/keychain"
require "boxen/project"
require "fileutils"
require "json"
require "octokit"
require "shellwords"

module Boxen

  # All configuration for Boxen, whether it's loaded from command-line
  # args, environment variables, config files, or the keychain.

  class Config
    def self.load(&block)
      new do |config|
        file = "#{config.homedir}/config/boxen/defaults.json"

        if File.file? file
          attrs = JSON.parse File.read file

          attrs.each do |key, value|
            if !value.nil? && config.respond_to?(selector = "#{key}=")
              config.send selector, value
            end
          end
        end

        keychain        = Boxen::Keychain.new config.user
        config.password = keychain.password
        config.token    = keychain.token

        yield config if block_given?
      end
    end

    # Save `config`. Returns `config`. Note that this only saves data,
    # not flags. For example, `login` will be saved, but `stealth?`
    # won't.

    def self.save(config)
      attrs = {
        :email     => config.email,
        :fde       => config.fde?,
        :homedir   => config.homedir,
        :login     => config.login,
        :name      => config.name,
        :puppetdir => config.puppetdir,
        :repodir   => config.repodir,
        :reponame  => config.reponame,
        :srcdir    => config.srcdir,
        :user      => config.user
      }

      file = "#{config.homedir}/config/boxen/defaults.json"
      FileUtils.mkdir_p File.dirname file

      File.open file, "wb" do |f|
        f.write JSON.generate Hash[attrs.reject { |k, v| v.nil? }]
      end

      keychain          = Boxen::Keychain.new config.user
      keychain.password = config.password
      keychain.token    = config.token

      config
    end

    # Create a new instance. Yields `self` if `block` is given.

    def initialize(&block)
      @fde  = true
      @pull = true

      yield self if block_given?
    end

    # Create an API instance using the current user creds. A new
    # instance is created any time `login` or `password` change.

    def api
      @api ||= Octokit::Client.new :login => login, :password => password
    end

    # Spew a bunch of debug logging? Default is `false`.

    def debug?
      !!@debug
    end

    attr_writer :debug

    # A GitHub user's public email.

    attr_accessor :email

    # The shell script that loads Boxen's environment.

    def envfile
      "#{homedir}/env.sh"
    end

    # Is full disk encryption required? Default is `true`. Respects
    # the `BOXEN_NO_FDE` environment variable.

    def fde=(val)
      @fde = val
    end

    def fde?
      !ENV["BOXEN_NO_FDE"] && @fde
    end

    attr_writer :fde

    # Boxen's home directory. Default is `"/opt/boxen"`. Respects the
    # `BOXEN_HOME` environment variable.

    def homedir
      @homedir || ENV["BOXEN_HOME"] || "/opt/boxen"
    end

    attr_writer :homedir

    # Boxen's log file. Default is `"#{repodir}/log/boxen.log"`.
    # Respects the `BOXEN_LOG_FILE` environment variable. The log is
    # overwritten on every run.

    def logfile
      @logfile || ENV["BOXEN_LOG_FILE"] || "#{repodir}/log/boxen.log"
    end

    attr_writer :logfile

    # A GitHub user login. Default is `nil`.

    attr_reader :login

    def login=(login)
      @api = nil
      @login = login
    end

    # A GitHub user's profile name.

    attr_accessor :name

    # A GitHub user password. Default is `nil`.

    attr_reader :password

    def password=(password)
      @api = nil
      @password = password
    end

    # Just go through the motions? Default is `false`.

    def pretend?
      !!@pretend
    end

    attr_writer :pretend

    # Run a profiler on Puppet? Default is `false`.

    def profile?
      !!@profile
    end

    attr_writer :profile

    # An Array of Boxen::Project entries, one for each project Boxen
    # knows how to manage.
    #
    # FIX: Revisit this once we restructure template projects. It's
    # broken for several reasons: It assumes paths that won't be
    # right, and it assumes projects live in the same repo as this
    # file.

    def projects
      files = Dir["#{repodir}/modules/projects/manifests/*.pp"]
      names = files.map { |m| File.basename m, ".pp" }.sort

      names.map do |name|
        Boxen::Project.new "#{srcdir}/#{name}"
      end
    end

    # The directory where Puppet expects configuration (which we don't
    # use) and runtime information (which we generally don't care
    # about). Default is `/tmp/boxen/puppet`. Respects the
    # `BOXEN_PUPPET_DIR` environment variable.

    def puppetdir
      @puppetdir || ENV["BOXEN_PUPPET_DIR"] || "/tmp/boxen/puppet"
    end

    attr_writer :puppetdir

    # The directory of the custom Boxen repo for an org. Default is
    # `Dir.pwd`. Respects the `BOXEN_REPO_DIR` environment variable.

    def repodir
      @repodir || ENV["BOXEN_REPO_DIR"] || Dir.pwd
    end

    attr_writer :repodir

    # The repo on GitHub to use for error reports and automatic
    # updates, in `owner/repo` format. Default is the `origin` of a
    # Git repo in `repodir`, if it exists and points at GitHub.
    # Respects the `BOXEN_REPO_NAME` environment variable.

    def reponame
      override = @reponame || ENV["BOXEN_REPO_NAME"]
      return override unless override.nil?

      if File.directory? repodir
        url = Dir.chdir(repodir) { `git config remote.origin.url`.strip }

        if $?.success? && %r|github\.com[/:]([^/]+/[^/]+)| =~ url
          @reponame = $1.sub /\.git$/, ""
        end
      end
    end

    attr_writer :reponame

    # The directory where repos live. Default is
    # `"/Users/#{user}/src"`.

    def srcdir
      @srcdir || "/Users/#{user}/src"
    end

    attr_writer :srcdir

    # Don't auto-create issues on failure? Default is `false`.
    # Respects the `BOXEN_NO_ISSUE` environment variable.

    def stealth?
      !!ENV["BOXEN_NO_ISSUE"] || @stealth
    end

    attr_writer :stealth

    # A GitHub OAuth token. Default is `nil`.

    attr_accessor :token

    # A local user login. Default is the `USER` environment variable.

    def user
      @user || ENV["USER"]
    end

    attr_writer :color

    def color?
      @color
    end

    attr_writer :user
  end
end


text:
<?xml version="1.0" encoding="utf-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>de.httc.plugins</groupId>
		<artifactId>httc-grails-plugins</artifactId>
		<version>2.0.13-SNAPSHOT</version>
	</parent>

	<artifactId>httc-repository</artifactId>
	<packaging>grails-plugin</packaging>

	<name>httc repository plugin</name>
	<description>httc repository plugin</description>

	<dependencies>
		<dependency>
			<groupId>de.httc.plugins</groupId>
			<artifactId>httc-taxonomy</artifactId>
			<version>${project.parent.version}</version>
			<type>zip</type>
		</dependency>
		<dependency>
			<groupId>de.httc.plugins</groupId>
			<artifactId>httc-user</artifactId>
			<version>${project.parent.version}</version>
			<type>zip</type>
		</dependency>
		<dependency>
			<groupId>org.apache.tika</groupId>
			<artifactId>tika-core</artifactId>
			<version>1.9</version>
		</dependency>
		<dependency>
			<groupId>org.apache.tika</groupId>
			<artifactId>tika-parsers</artifactId>
			<version>1.9</version>
			<exclusions>
				<exclusion>
					<groupId>xerces</groupId>
					<artifactId>xercesImpl</artifactId>
				</exclusion>
				<exclusion>
					<groupId>xml-apis</groupId>
					<artifactId>xml-apis</artifactId>
				</exclusion>
				<exclusion>
					<groupId>log4j</groupId>
					<artifactId>log4j</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.apache.httpcomponents</groupId>
					<artifactId>httpcore</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.bouncycastle</groupId>
					<artifactId>*</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.ow2.asm</groupId>
					<artifactId>asm-debug-all</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.grails.plugins</groupId>
			<artifactId>webflow</artifactId>
			<version>2.1.0</version>
			<scope>runtime</scope>
			<type>zip</type>
		</dependency>
	</dependencies>
	<build>
		<plugins>
			<plugin>
				<groupId>com.google.code.maven-replacer-plugin</groupId>
				<artifactId>replacer</artifactId>
				<configuration>
					<file>HttcRepositoryGrailsPlugin.groovy</file>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>


text:
steal('src/synthetic.js', 'src/key.js', function (Syn) {

	if (!Syn.config.support) {
		//do support code
		(function checkForSupport() {
			if (!document.body) {
				return Syn.schedule(checkForSupport, 1);
			}

			var div = document.createElement("div"),
				checkbox, submit, form, anchor, textarea, inputter, one, doc;

			doc = document.documentElement;

			div.innerHTML = "<form id='outer'>" +
				"<input name='checkbox' type='checkbox'/>" +
				"<input name='radio' type='radio' />" +
				"<input type='submit' name='submitter'/>" +
				"<input type='input' name='inputter'/>" +
				"<input name='one'>" +
				"<input name='two'/>" +
				"" +
				"<textarea>1\n2</textarea>" +
				"</form>";

			doc.insertBefore(div, doc.firstElementChild || doc.children[0]);
			form = div.firstChild;
			checkbox = form.childNodes[0];
			submit = form.childNodes[2];
			anchor = form.getElementsByTagName("a")[0];
			textarea = form.getElementsByTagName("textarea")[0];
			inputter = form.childNodes[3];
			one = form.childNodes[4];

			form.onsubmit = function (ev) {
				if (ev.preventDefault) {
					ev.preventDefault();
				}
				Syn.support.keypressSubmits = true;
				ev.returnValue = false;
				return false;
			};
			// Firefox 4 won't write key events if the element isn't focused
			Syn.__tryFocus(inputter);
			Syn.trigger("keypress", "\r", inputter);

			Syn.trigger("keypress", "a", inputter);
			Syn.support.keyCharacters = inputter.value === "a";

			inputter.value = "a";
			Syn.trigger("keypress", "\b", inputter);
			Syn.support.backspaceWorks = inputter.value === "";

			inputter.onchange = function () {
				Syn.support.focusChanges = true;
			};
			Syn.__tryFocus(inputter);
			Syn.trigger("keypress", "a", inputter);
			Syn.__tryFocus(form.childNodes[5]); // this will throw a change event
			Syn.trigger("keypress", "b", inputter);
			Syn.support.keysOnNotFocused = inputter.value === "ab";

			//test keypress \r on anchor submits
			Syn.bind(anchor, "click", function (ev) {
				if (ev.preventDefault) {
					ev.preventDefault();
				}
				Syn.support.keypressOnAnchorClicks = true;
				ev.returnValue = false;
				return false;
			});
			Syn.trigger("keypress", "\r", anchor);

			Syn.support.textareaCarriage = textarea.value.length === 4;

			// IE only, oninput event.
			Syn.support.oninput = 'oninput' in one;

			doc.removeChild(div);

			Syn.support.ready++;
		})();
	} else {
		Syn.helpers.extend(Syn.support, Syn.config.support);
	}

	return Syn;
});


text:
import React from 'react';
import {
  SecondaryNavigation,
  SecondaryNavigationTitle,
  Breadcrumb,
  BreadcrumbItem,
  BreadcrumbHome,
  Tabs,
  Tab,
} from '@wfp/ui';

function NavigationSecondary() {
  return (
    <SecondaryNavigation additional="additional Information" pageWidth="lg">
      <Breadcrumb>
        <BreadcrumbItem>

            <BreadcrumbHome />

        </BreadcrumbItem>
        <BreadcrumbItem href="#">Breadcrumb 2</BreadcrumbItem>
        <BreadcrumbItem disableLink>Breadcrumb 3</BreadcrumbItem>
      </Breadcrumb>
      <SecondaryNavigationTitle>The page title</SecondaryNavigationTitle>
      <Tabs
        ariaLabel="listbox"
        customTabContent
        role="navigation"
        selected={0}
        triggerHref="#"
      >
        <Tab
          href="#"
          label="Tab label 1"
          onClick={() => {}}
          onKeyDown={function noRefCheck() {}}
          role="presentation"
          selected={false}
          tabIndex={0}
        >

sbjbjhb

        </Tab>
        <Tab
          href="#"
          label="Tab label 2"
          onClick={function noRefCheck() {}}
          onKeyDown={function noRefCheck() {}}
          role="presentation"
          selected={false}
          tabIndex={1}
        />
        <Tab
          href="#"
          label="Tab label 3"
          onClick={function noRefCheck() {}}
          onKeyDown={function noRefCheck() {}}
          role="presentation"
          selected={false}
          tabIndex={2}
        />
        <Tab
          href="#"
          label="Tab label 4"
          onClick={function noRefCheck() {}}
          onKeyDown={function noRefCheck() {}}
          role="presentation"
          selected={false}
          tabIndex={3}
        />
      </Tabs>
      {/* </SecondaryNavigation>
        <SecondaryNavigation>
            <Breadcrumb>
                <BreadcrumbItem>

                    <BreadcrumbHome />

                </BreadcrumbItem>
                <BreadcrumbItem href="#">
                Breadcrumb 2
                </BreadcrumbItem>
                <BreadcrumbItem disableLink>
                Breadcrumb 3
                </BreadcrumbItem>
            </Breadcrumb>
            <SecondaryNavigationTitle>
                The page title
            </SecondaryNavigationTitle>
            <Tabs customContent>
            <Tab label="Label 1">

                Assisting 91.4 million people in around 83 countries each year, the World Food Programme (WFP) is
                the leading humanitarian organization saving lives and changing lives, delivering food assistance in
                emergencies and working with communities to improve nutrition and build resilience. As the international
                community has committed to end hunger, achieve food security and improved nutrition by 2030,
                one in nine people worldwide still do not have enough to eat. Food and food-related assistance lie
                at the heart of the struggle to break the cycle of hunger and poverty. On any given day, WFP has 5,000 trucks,
                20 ships and 92 planes on the move, delivering food and other assistance to those in most need. Every year,
                we distribute more than 15 billion rations at an estimated average cost per ration of US$ 0.31.
                These numbers lie at the roots of WFP's unparalleled reputation as an emergency responder,
                one that gets the job done quickly at scale in the most difficult environments.
                WFP's efforts focus on emergency assistance, relief and rehabilitation, development aid and special operations.
                Two-thirds of our work is in conflict-affected countries where people are three times more likely to be
                undernourished than those living in countries without conflict.

            </Tab>
            <Tab label="Label 2">

                    Content for second tab goes here.

            </Tab>
            <Tab label="Label 3">

                Content for third tab goes here.

            </Tab>
            <Tab
                label="Label 4">

                Content for fourth tab goes here.

            </Tab>
            </Tabs>
           */}
    </SecondaryNavigation>
  );
}

export default NavigationSecondary;


text:
<?php

namespace Core\AccountingBundle\Form;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
use Doctrine\ORM\EntityRepository;

class TagsType extends AbstractType
{
	/**
     * @param FormBuilderInterface $builder
     * @param array $options
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('tagref','integer')
            ->add('tagdescription','text')
            ->add('Confirm','submit');
    }

    /**
     * @param OptionsResolverInterface $resolver
     */
    public function setDefaultOptions(OptionsResolverInterface $resolver)
    {
        $resolver->setDefaults(array(
            'data_class' => 'Core\AccountingBundle\Entity\Tags'
        ));
    }

    /**
     * @return string
     */
    public function getName()
    {
        return 'core_accountingbundle_tags';
    }
}


text:
<?php

namespace source\core\grid;

use Yii;
use source\LsYii;
use source\helpers\Html;
class ActionColumn extends \yii\grid\ActionColumn
{
    /**
     * Initializes the default button rendering callbacks.
     */
    protected function initDefaultButtons()
    {
        if (!isset($this->buttons['view'])) {
            $this->buttons['view'] = function ($url, $model, $key) {
                $options = array_merge([
                    'title' => Yii::t('yii', 'View'),
                    'aria-label' => Yii::t('yii', 'View'),
                    'data-pjax' => '0',
                ], $this->buttonOptions);
                return Html::a('', $url, $options);
            };
        }
        if (!isset($this->buttons['update'])) {
            $this->buttons['update'] = function ($url, $model, $key) {
                $options = array_merge([
                    'title' => Yii::t('yii', 'Update'),
                    'aria-label' => Yii::t('yii', 'Update'),
                    'data-pjax' => '0',
                ], $this->buttonOptions);
                return Html::a('', $url, $options);
            };
        }
        if (!isset($this->buttons['delete'])) {
            $this->buttons['delete'] = function ($url, $model, $key) {
                $options = array_merge([
                    'title' => Yii::t('yii', 'Delete'),
                    'aria-label' => Yii::t('yii', 'Delete'),
                    'data-confirm' => Yii::t('yii', 'Are you sure you want to delete this item?'),
                    'data-method' => 'post',
                    'data-pjax' => '0',
                ], $this->buttonOptions);
                return Html::a('', $url, $options);
            };
        }
    }
}


text:
<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/api/servicemanagement/v1/resources.proto

namespace Google\Cloud\ServiceManagement\V1;

use Google\Protobuf\Internal\GPBType;
use Google\Protobuf\Internal\RepeatedField;
use Google\Protobuf\Internal\GPBUtil;

/**
 * A rollout resource that defines how service configuration versions are pushed
 * to control plane systems. Typically, you create a new version of the
 * service config, and then create a Rollout to push the service config.
 *
 * Generated from protobuf message google.api.servicemanagement.v1.Rollout
 */
class Rollout extends \Google\Protobuf\Internal\Message
{
    /**
     * Optional. Unique identifier of this Rollout. Must be no longer than 63 characters
     * and only lower case letters, digits, '.', '_' and '-' are allowed.
     * If not specified by client, the server will generate one. The generated id
     * will have the form of <date><revision number>, where "date" is the create
     * date in ISO 8601 format.  "revision number" is a monotonically increasing
     * positive number that is reset every day for each service.
     * An example of the generated rollout_id is '2016-02-16r1'
     *
     * Generated from protobuf field string rollout_id = 1 [(.google.api.field_behavior) = OPTIONAL];
     */
    private $rollout_id = '';
    /**
     * Creation time of the rollout. Readonly.
     *
     * Generated from protobuf field .google.protobuf.Timestamp create_time = 2;
     */
    private $create_time = null;
    /**
     * The user who created the Rollout. Readonly.
     *
     * Generated from protobuf field string created_by = 3;
     */
    private $created_by = '';
    /**
     * The status of this rollout. Readonly. In case of a failed rollout,
     * the system will automatically rollback to the current Rollout
     * version. Readonly.
     *
     * Generated from protobuf field .google.api.servicemanagement.v1.Rollout.RolloutStatus status = 4;
     */
    private $status = 0;
    /**
     * The name of the service associated with this Rollout.
     *
     * Generated from protobuf field string service_name = 8;
     */
    private $service_name = '';
    protected $strategy;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type string $rollout_id
     *           Optional. Unique identifier of this Rollout. Must be no longer than 63 characters
     *           and only lower case letters, digits, '.', '_' and '-' are allowed.
     *           If not specified by client, the server will generate one. The generated id
     *           will have the form of <date><revision number>, where "date" is the create
     *           date in ISO 8601 format.  "revision number" is a monotonically increasing
     *           positive number that is reset every day for each service.
     *           An example of the generated rollout_id is '2016-02-16r1'
     *     @type \Google\Protobuf\Timestamp $create_time
     *           Creation time of the rollout. Readonly.
     *     @type string $created_by
     *           The user who created the Rollout. Readonly.
     *     @type int $status
     *           The status of this rollout. Readonly. In case of a failed rollout,
     *           the system will automatically rollback to the current Rollout
     *           version. Readonly.
     *     @type \Google\Cloud\ServiceManagement\V1\Rollout\TrafficPercentStrategy $traffic_percent_strategy
     *           Google Service Control selects service configurations based on
     *           traffic percentage.
     *     @type \Google\Cloud\ServiceManagement\V1\Rollout\DeleteServiceStrategy $delete_service_strategy
     *           The strategy associated with a rollout to delete a `ManagedService`.
     *           Readonly.
     *     @type string $service_name
     *           The name of the service associated with this Rollout.
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Google\Api\Servicemanagement\V1\Resources::initOnce();
        parent::__construct($data);
    }

    /**
     * Optional. Unique identifier of this Rollout. Must be no longer than 63 characters
     * and only lower case letters, digits, '.', '_' and '-' are allowed.
     * If not specified by client, the server will generate one. The generated id
     * will have the form of <date><revision number>, where "date" is the create
     * date in ISO 8601 format.  "revision number" is a monotonically increasing
     * positive number that is reset every day for each service.
     * An example of the generated rollout_id is '2016-02-16r1'
     *
     * Generated from protobuf field string rollout_id = 1 [(.google.api.field_behavior) = OPTIONAL];
     * @return string
     */
    public function getRolloutId()
    {
        return $this->rollout_id;
    }

    /**
     * Optional. Unique identifier of this Rollout. Must be no longer than 63 characters
     * and only lower case letters, digits, '.', '_' and '-' are allowed.
     * If not specified by client, the server will generate one. The generated id
     * will have the form of <date><revision number>, where "date" is the create
     * date in ISO 8601 format.  "revision number" is a monotonically increasing
     * positive number that is reset every day for each service.
     * An example of the generated rollout_id is '2016-02-16r1'
     *
     * Generated from protobuf field string rollout_id = 1 [(.google.api.field_behavior) = OPTIONAL];
     * @param string $var
     * @return $this
     */
    public function setRolloutId($var)
    {
        GPBUtil::checkString($var, True);
        $this->rollout_id = $var;

        return $this;
    }

    /**
     * Creation time of the rollout. Readonly.
     *
     * Generated from protobuf field .google.protobuf.Timestamp create_time = 2;
     * @return \Google\Protobuf\Timestamp|null
     */
    public function getCreateTime()
    {
        return $this->create_time;
    }

    public function hasCreateTime()
    {
        return isset($this->create_time);
    }

    public function clearCreateTime()
    {
        unset($this->create_time);
    }

    /**
     * Creation time of the rollout. Readonly.
     *
     * Generated from protobuf field .google.protobuf.Timestamp create_time = 2;
     * @param \Google\Protobuf\Timestamp $var
     * @return $this
     */
    public function setCreateTime($var)
    {
        GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
        $this->create_time = $var;

        return $this;
    }

    /**
     * The user who created the Rollout. Readonly.
     *
     * Generated from protobuf field string created_by = 3;
     * @return string
     */
    public function getCreatedBy()
    {
        return $this->created_by;
    }

    /**
     * The user who created the Rollout. Readonly.
     *
     * Generated from protobuf field string created_by = 3;
     * @param string $var
     * @return $this
     */
    public function setCreatedBy($var)
    {
        GPBUtil::checkString($var, True);
        $this->created_by = $var;

        return $this;
    }

    /**
     * The status of this rollout. Readonly. In case of a failed rollout,
     * the system will automatically rollback to the current Rollout
     * version. Readonly.
     *
     * Generated from protobuf field .google.api.servicemanagement.v1.Rollout.RolloutStatus status = 4;
     * @return int
     */
    public function getStatus()
    {
        return $this->status;
    }

    /**
     * The status of this rollout. Readonly. In case of a failed rollout,
     * the system will automatically rollback to the current Rollout
     * version. Readonly.
     *
     * Generated from protobuf field .google.api.servicemanagement.v1.Rollout.RolloutStatus status = 4;
     * @param int $var
     * @return $this
     */
    public function setStatus($var)
    {
        GPBUtil::checkEnum($var, \Google\Cloud\ServiceManagement\V1\Rollout\RolloutStatus::class);
        $this->status = $var;

        return $this;
    }

    /**
     * Google Service Control selects service configurations based on
     * traffic percentage.
     *
     * Generated from protobuf field .google.api.servicemanagement.v1.Rollout.TrafficPercentStrategy traffic_percent_strategy = 5;
     * @return \Google\Cloud\ServiceManagement\V1\Rollout\TrafficPercentStrategy|null
     */
    public function getTrafficPercentStrategy()
    {
        return $this->readOneof(5);
    }

    public function hasTrafficPercentStrategy()
    {
        return $this->hasOneof(5);
    }

    /**
     * Google Service Control selects service configurations based on
     * traffic percentage.
     *
     * Generated from protobuf field .google.api.servicemanagement.v1.Rollout.TrafficPercentStrategy traffic_percent_strategy = 5;
     * @param \Google\Cloud\ServiceManagement\V1\Rollout\TrafficPercentStrategy $var
     * @return $this
     */
    public function setTrafficPercentStrategy($var)
    {
        GPBUtil::checkMessage($var, \Google\Cloud\ServiceManagement\V1\Rollout\TrafficPercentStrategy::class);
        $this->writeOneof(5, $var);

        return $this;
    }

    /**
     * The strategy associated with a rollout to delete a `ManagedService`.
     * Readonly.
     *
     * Generated from protobuf field .google.api.servicemanagement.v1.Rollout.DeleteServiceStrategy delete_service_strategy = 200;
     * @return \Google\Cloud\ServiceManagement\V1\Rollout\DeleteServiceStrategy|null
     */
    public function getDeleteServiceStrategy()
    {
        return $this->readOneof(200);
    }

    public function hasDeleteServiceStrategy()
    {
        return $this->hasOneof(200);
    }

    /**
     * The strategy associated with a rollout to delete a `ManagedService`.
     * Readonly.
     *
     * Generated from protobuf field .google.api.servicemanagement.v1.Rollout.DeleteServiceStrategy delete_service_strategy = 200;
     * @param \Google\Cloud\ServiceManagement\V1\Rollout\DeleteServiceStrategy $var
     * @return $this
     */
    public function setDeleteServiceStrategy($var)
    {
        GPBUtil::checkMessage($var, \Google\Cloud\ServiceManagement\V1\Rollout\DeleteServiceStrategy::class);
        $this->writeOneof(200, $var);

        return $this;
    }

    /**
     * The name of the service associated with this Rollout.
     *
     * Generated from protobuf field string service_name = 8;
     * @return string
     */
    public function getServiceName()
    {
        return $this->service_name;
    }

    /**
     * The name of the service associated with this Rollout.
     *
     * Generated from protobuf field string service_name = 8;
     * @param string $var
     * @return $this
     */
    public function setServiceName($var)
    {
        GPBUtil::checkString($var, True);
        $this->service_name = $var;

        return $this;
    }

    /**
     * @return string
     */
    public function getStrategy()
    {
        return $this->whichOneof("strategy");
    }

}


text:
#if !defined(BOOST_SPIRIT_POSITION_ITERATOR_FWD_HPP)
#define BOOST_SPIRIT_POSITION_ITERATOR_FWD_HPP

#include <string>
#include <iterator> // for std::iterator_traits
#include <boost/spirit/home/classic/namespace.hpp>
#include <boost/spirit/home/classic/core/nil.hpp>

namespace boost { namespace spirit {

BOOST_SPIRIT_CLASSIC_NAMESPACE_BEGIN

    template <typename String = std::string>
    struct file_position_base;

    typedef file_position_base<std::string> file_position;

    template <typename String = std::string>
    struct file_position_without_column_base;

    typedef file_position_without_column_base<std::string> file_position_without_column;

    template <
        typename ForwardIteratorT,
        typename PositionT = file_position_base<
            std::basic_string<
                typename std::iterator_traits<ForwardIteratorT>::value_type
            >
        >,
        typename SelfT = nil_t
    >
    class position_iterator;

    template
    <
        typename ForwardIteratorT,
        typename PositionT = file_position_base<
            std::basic_string<
                typename std::iterator_traits<ForwardIteratorT>::value_type
            >
        >
    >
    class position_iterator2;

    template <typename PositionT> class position_policy;

BOOST_SPIRIT_CLASSIC_NAMESPACE_END

}} // namespace BOOST_SPIRIT_CLASSIC_NS

#endif


text:
var allBundles = require("./multipleBundles.js"),
  assert = require("assert"),
  bl = require("../../lib/package/bundleLinter.js"),
  schema = require("./../fixtures/reportSchema.js"),
  Validator = require("jsonschema").Validator,
  plugin = "policyNameConventions.js";

allBundles(function(bundle, cb) {
  //this will get called in a loop for every proxyFolder
  bl.executePlugin(plugin, bundle, function() {
    it(
      "test" +
        plugin +
        ": should create a report object with valid schema for " +
        bundle.proxyRoot +
        ".",
      function() {
        this.timeout(500);

        var unixImpl = bl.getFormatter("unix.js");

        bundle.getReport(function(report) {
          if (JSON.stringify(report).indexOf("PO007") > 0) {
            console.log(JSON.stringify(report));
          }
        });

        var jsimpl = bl.getFormatter("json.js"),
          v = new Validator(),
          validationResult,
          jsonReport;

        bundle.getReport(function(report) {
          validationResult = v.validate(report, schema);
          assert.equal(
            validationResult.errors.length,
            0,
            validationResult.errors
          );
        });
      }
    );
  });
  if (cb) {
    cb(null, "complete");
  }
});


text:
import Promise from 'bluebird';
import fetch from 'isomorphic-fetch';
import ApiError from './ApiError';

class Resource {
  constructor(apiClient) {
    this._apiClient = apiClient;
  }

  static createEndpoint(spec) {
    return function(payload) {
      let context = {
        spec: spec,
        requestPayload: {payload}
      };
      return this.makeRequest(context);
    };
  }

  makeRequest(context) {
    let requestUrl = this._apiClient.baseUrl + context.spec.path;
    let fetchPayload = {
      method: context.spec.method,
      headers: {
        'Accept': 'application/json',
        'Content-Type': 'application/json'
      }
    };

    let sessionToken = this._apiClient.getSessionToken();
    if(sessionToken) {
      fetchPayload.headers['Authorization'] = `Bearer ${new Buffer(sessionToken).toString('base64')}`;
    }
    else if(context.spec.authRequired) {
      return Promise.reject(new Error('Authorization required.'));
    }

    if(context.requestPayload) {
      fetchPayload.body = JSON.stringify(context.requestPayload);
    }

    return fetch(requestUrl, fetchPayload).then((response) => {
      return response.json();
    }).then((data) => {
      if(data.error) {
        let rawError = data.error;
        rawError.request_url = requestUrl;
        rawError.request_payload = context.requestPayload;
        throw new ApiError(rawError);
      }
      return data.payload;
    });
  }
}

export default Resource;


text:
package core

type Player interface {
	Symbol() string
	Move(board Board, boardActive int) interface{}
}


text:
package de.uni_potsdam.hpi.bpt.bp2014.database;

import java.util.LinkedList;

/**
 * This class is the representation of a fragment in the database.
 * It provides the functionality to get all fragments for a scenario.
 */
public class DbFragment extends DbObject {
    /**
     * This method returns all database ID's of all fragments which belong to a scenario.
     *
     * @param scenario_id This is the database ID of a scenario.
     * @return a list of all ID's of all fragments belonging to the scenario.
     */
    public LinkedList<Integer> getFragmentsForScenario(int scenario_id) {
        String sql = "SELECT id FROM fragment WHERE scenario_id = " + scenario_id;
        return this.executeStatementReturnsListInt(sql, "id");
    }
}