text:
package com.popdeem.sdk.uikit.fragment;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import com.bumptech.glide.Glide;
import com.popdeem.sdk.R;
import com.popdeem.sdk.core.model.PDMessage;
import com.popdeem.sdk.uikit.utils.PDUIUtils;
import com.popdeem.sdk.uikit.widget.PDUIBezelImageView;
import com.squareup.picasso.MemoryPolicy;
import com.squareup.picasso.Picasso;

/**
 * Created by mikenolan on 24/02/16.
 */
public class PDUIInboxMessageFragment extends Fragment {

    public PDUIInboxMessageFragment() {
    }

    public static PDUIInboxMessageFragment newInstance(PDMessage message) {
        Bundle args = new Bundle();
        args.putString("title", message.getTitle());
        args.putString("body", message.getBody());
        args.putString("sender", message.getSenderName());
        args.putString("image", message.getImageUrl());
        args.putLong("date", message.getCreatedAt());

        PDUIInboxMessageFragment fragment = new PDUIInboxMessageFragment();
        fragment.setArguments(args);
        return fragment;
    }

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_pd_inbox_message, container, false);

        Bundle args = getArguments();

        TextView textView = (TextView) view.findViewById(R.id.pd_inbox_message_title_text_view);
        textView.setText(args.getString("title", ""));

        textView = (TextView) view.findViewById(R.id.pd_inbox_message_body_text_view);
        textView.setText(args.getString("body", ""));

        textView = (TextView) view.findViewById(R.id.pd_inbox_message_sender_text_view);
        textView.setText(args.getString("sender", ""));

        textView = (TextView) view.findViewById(R.id.pd_inbox_message_date_text_view);
        long date = args.getLong("date", -1);
        if (date == -1) {
            textView.setText("");
        } else {
            textView.setText(PDUIUtils.convertUnixTimeToDate(date, PDUIUtils.PD_DATE_FORMAT));
        }

        PDUIBezelImageView imageView = (PDUIBezelImageView) view.findViewById(R.id.pd_inbox_message_image_view);
        String imageUrl = args.getString("image", "");
        if (imageUrl.isEmpty() || imageUrl.contains("default")) {
            Glide.with(getActivity())
                    .load(R.drawable.pd_ui_star_icon)
                    .dontAnimate()
                    .into(imageView);
        } else {
            Glide.with(getActivity())
                    .load(imageUrl)
                    .placeholder(R.drawable.pd_ui_star_icon)
                    .dontAnimate()
                    .error(R.drawable.pd_ui_star_icon)
                    .into(imageView);
        }

        return view;
    }
}


text:
/** \file eeprom.c
  *
  * \brief Reads and writes to the AVR's EEPROM.
  *
  * This contains functions which implement non-volatile storage using the
  * AVR's EEPROM. Compared to contemporary mass storage devices, the size of
  * the storage space is not much (only 1024 bytes on the ATmega328), but it's
  * enough to fit a couple of wallets.
  *
  * This file is licensed as described by the file LICENCE.
  */

#include <avr/eeprom.h>

#include "../common.h"
#include "../hwinterface.h"

/** Size of EEPROM, in number of bytes. */
#define EEPROM_SIZE		1024

/** Write to non-volatile storage.
  * \param data A pointer to the data to be written.
  * \param address Byte offset specifying where in non-volatile storage to
  *                start writing to.
  * \param length The number of bytes to write.
  * \return See #NonVolatileReturnEnum for return values.
  * \warning Writes may be buffered; use nonVolatileFlush() to be sure that
  *          data is actually written to non-volatile storage.
  */
NonVolatileReturn nonVolatileWrite(uint8_t *data, uint32_t address, uint32_t length)
{
	if ((address > EEPROM_SIZE) || (length > EEPROM_SIZE)
		|| ((address + length) > EEPROM_SIZE))
	{
		return NV_INVALID_ADDRESS;
	}
	eeprom_busy_wait();
	// The (void *)(int) is there because pointers on AVR are 16 bit, so
	// just doing (void *) would result in a "cast to pointer from integer
	// of different size" warning.
	eeprom_write_block(data, (void *)(int)address, (size_t)length);
	return NV_NO_ERROR;
}

/** Read from non-volatile storage.
  * \param data A pointer to the buffer which will receive the data.
  * \param address Byte offset specifying where in non-volatile storage to
  *                start reading from.
  * \param length The number of bytes to read.
  * \return See #NonVolatileReturnEnum for return values.
  */
NonVolatileReturn nonVolatileRead(uint8_t *data, uint32_t address, uint32_t length)
{
	if ((address > EEPROM_SIZE) || (length > EEPROM_SIZE)
		|| ((address + (uint32_t)length) > EEPROM_SIZE))
	{
		return NV_INVALID_ADDRESS;
	}
	eeprom_busy_wait();
	// The (void *)(int) is there because pointers on AVR are 16 bit, so
	// just doing (void *) would result in a "cast to pointer from integer
	// of different size" warning.
	eeprom_read_block(data, (void *)(int)address, (size_t)length);
	return NV_NO_ERROR;
}

/** Ensure that all buffered writes are committed to non-volatile storage.
  * \return See #NonVolatileReturnEnum for return values.
  */
NonVolatileReturn nonVolatileFlush(void)
{
	// Nothing to do; writes are never buffered.
	return NV_NO_ERROR;
}

redpajama_set_name: RedPajamaGithub


text:
/*
 * COPYRIGHT (C) 2012, Shanghai Real Thread
 */

#ifndef __MTD_NAND_H__
#define __MTD_NAND_H__

#include <rtdevice.h>

struct rt_mtd_nand_driver_ops;
#define RT_MTD_NAND_DEVICE(device)  ((struct rt_mtd_nand_device*)(device))

#define RT_MTD_EOK          0     /* NO error */
#define RT_MTD_EECC         101   /* ECC error */
#define RT_MTD_EBUSY        102   /* hardware busy */
#define RT_MTD_EIO          103   /* generic IO issue */
#define RT_MTD_ENOMEM       104   /* out of memory */
#define RT_MTD_ESRC         105   /* source issue */
#define RT_MTD_EECC_CORRECT 106   /* ECC error but correct */

struct rt_mtd_nand_device
{
    struct rt_device parent;

    rt_uint16_t page_size;          /* The Page size in the flash */
    rt_uint16_t oob_size;           /* Out of bank size */
    rt_uint16_t oob_free;           /* the free area in oob that flash driver not use */
    rt_uint16_t plane_num;          /* the number of plane in the NAND Flash */

    rt_uint32_t pages_per_block;    /* The number of page a block */
    rt_uint16_t block_total;

    /* Only be touched by driver */
    rt_uint32_t block_start;        /* The start of available block*/
    rt_uint32_t block_end;          /* The end of available block */

    /* operations interface */
    const struct rt_mtd_nand_driver_ops *ops;
};

struct rt_mtd_nand_driver_ops
{
    rt_err_t (*read_id)(struct rt_mtd_nand_device *device);

    rt_err_t (*read_page)(struct rt_mtd_nand_device *device,
                          rt_off_t page,
                          rt_uint8_t *data, rt_uint32_t data_len,
                          rt_uint8_t *spare, rt_uint32_t spare_len);

    rt_err_t (*write_page)(struct rt_mtd_nand_device *device,
                           rt_off_t page,
                           const rt_uint8_t *data, rt_uint32_t data_len,
                           const rt_uint8_t *spare, rt_uint32_t spare_len);
    rt_err_t (*move_page)(struct rt_mtd_nand_device *device, rt_off_t src_page, rt_off_t dst_page);

    rt_err_t (*erase_block)(struct rt_mtd_nand_device *device, rt_uint32_t block);
    rt_err_t (*check_block)(struct rt_mtd_nand_device *device, rt_uint32_t block);
    rt_err_t (*mark_badblock)(struct rt_mtd_nand_device *device, rt_uint32_t block);
};

rt_err_t rt_mtd_nand_register_device(const char *name, struct rt_mtd_nand_device *device);

rt_inline rt_uint32_t rt_mtd_nand_read_id(struct rt_mtd_nand_device *device)
{
    RT_ASSERT(device->ops->read_id);
    return device->ops->read_id(device);
}

rt_inline rt_err_t rt_mtd_nand_read(
    struct rt_mtd_nand_device *device,
    rt_off_t page,
    rt_uint8_t *data, rt_uint32_t data_len,
    rt_uint8_t *spare, rt_uint32_t spare_len)
{
    RT_ASSERT(device->ops->read_page);
    return device->ops->read_page(device, page, data, data_len, spare, spare_len);
}

rt_inline rt_err_t rt_mtd_nand_write(
    struct rt_mtd_nand_device *device,
    rt_off_t page,
    const rt_uint8_t *data, rt_uint32_t data_len,
    const rt_uint8_t *spare, rt_uint32_t spare_len)
{
    RT_ASSERT(device->ops->write_page);
    return device->ops->write_page(device, page, data, data_len, spare, spare_len);
}

rt_inline rt_err_t rt_mtd_nand_move_page(struct rt_mtd_nand_device *device,
        rt_off_t src_page, rt_off_t dst_page)
{
    RT_ASSERT(device->ops->move_page);
    return device->ops->move_page(device, src_page, dst_page);
}

rt_inline rt_err_t rt_mtd_nand_erase_block(struct rt_mtd_nand_device *device, rt_uint32_t block)
{
    RT_ASSERT(device->ops->erase_block);
    return device->ops->erase_block(device, block);
}

rt_inline rt_err_t rt_mtd_nand_check_block(struct rt_mtd_nand_device *device, rt_uint32_t block)
{
    if (device->ops->check_block)
    {
        return device->ops->check_block(device, block);
    }
    else
    {
        return -RT_ENOSYS;
    }
}

rt_inline rt_err_t rt_mtd_nand_mark_badblock(struct rt_mtd_nand_device *device, rt_uint32_t block)
{
    if (device->ops->mark_badblock)
    {
        return device->ops->mark_badblock(device, block);
    }
    else
    {
        return -RT_ENOSYS;
    }
}

#endif /* MTD_NAND_H_ */


text:
A huge mess of assorted server functionality compiled over the course of learning Node.js.  See usage below for the bits and pieces.

###Setup:
- Install & start a local instance of [MongoDB](https://www.mongodb.org/)
- Install [Node.js](https://nodejs.org/)
- In the main project directory run `npm install`
- Then run `./node_modules/.bin/bower install`
- Post module/component installation run `node server.js` to start the app
- Navigate to [http://localhost:3000](http://localhost:3000) to view the app

###Usage:
- Links on the main page describe the site functionality


text:
declare module '@salesforce/design-system-react/components/illustration' {
	import React from 'react';
	type Props = {
		/**
		 * CSS classes that are applied to the SVG. _Tested with Mocha testing._
		 */
		className?: any[] | Record<string, any> | string;
		/**
		 * A heading text. It is required if illustration is present. _Tested with snapshot testing._ _Tested with Mocha testing._
		 */
		heading?: string;
		/**
		 * A custom SVG object to use instead of the supplied SLDS illustrations, look in `design-system-react/icons` for examples and syntax. _Tested with snapshot testing._ _Tested with Mocha testing._
		 */
		illustration?: Record<string, any>;
		/**
		 * Indicates whether the illustration SVGs are from the design-system-react repo. If yes, set to true.
		 */
		internalIllustration: boolean /*.isRequired*/;
		/**
		 * A message body below the heading to further communicate the state of the component. _Tested with snapshot testing._ _Tested with Mocha testing._
		 */
		messageBody?: string | React.ReactNode;
		/**
		 * Name of the illustration. Visit Lightning Design System Illustration to reference illustration names. _Tested with snapshot testing._ _Tested with Mocha testing._
		 */
		name?: string;
		/**
		 * Path to the illustration SVG image. _Tested with snapshot testing._
		 */
		path?: string;
		/**
		 * Size of the illustration. _Tested with snapshot testing._ _Tested with Mocha testing._
		 */
		size?: 'small' | 'large';
		/**
		 * Custom styles to be passed to the illustration SVG. _Tested with Mocha testing._
		 */
		style?: Record<string, any>;
	};

	function Component(props: Props): JSX.Element;
	export default Component;
}


text:
// This file was automatically generated.  Do not modify.

'use strict';

goog.provide('Blockly.Msg.ru');

goog.require('Blockly.Msg');

/** @export */ Blockly.Msg.ADD_COMMENT = "Добавить комментарий";
/** @export */ Blockly.Msg.CANNOT_DELETE_VARIABLE_PROCEDURE = "Невозможно удалить переменную '%1', поскольку она является частью определения функции '%2'";
/** @export */ Blockly.Msg.CHANGE_VALUE_TITLE = "Измените значение:";
/** @export */ Blockly.Msg.CLEAN_UP = "Убрать блоки";
/** @export */ Blockly.Msg.COLLAPSE_ALL = "Свернуть блоки";
/** @export */ Blockly.Msg.COLLAPSE_BLOCK = "Свернуть блок";
/** @export */ Blockly.Msg.COLOUR_BLEND_COLOUR1 = "цвет 1";
/** @export */ Blockly.Msg.COLOUR_BLEND_COLOUR2 = "цвет 2";
/** @export */ Blockly.Msg.COLOUR_BLEND_HELPURL = "http://meyerweb.com/eric/tools/color-blend/";  // untranslated
/** @export */ Blockly.Msg.COLOUR_BLEND_RATIO = "доля цвета 1";
/** @export */ Blockly.Msg.COLOUR_BLEND_TITLE = "смешать";
/** @export */ Blockly.Msg.COLOUR_BLEND_TOOLTIP = "Смешивает два цвета в заданном соотношении (0.0 - 1.0).";
/** @export */ Blockly.Msg.COLOUR_PICKER_HELPURL = "https://ru.wikipedia.org/wiki/Цвет";
/** @export */ Blockly.Msg.COLOUR_PICKER_TOOLTIP = "Выберите цвет из палитры.";
/** @export */ Blockly.Msg.COLOUR_RANDOM_HELPURL = "http://randomcolour.com";  // untranslated
/** @export */ Blockly.Msg.COLOUR_RANDOM_TITLE = "случайный цвет";
/** @export */ Blockly.Msg.COLOUR_RANDOM_TOOLTIP = "Выбирает цвет случайным образом.";
/** @export */ Blockly.Msg.COLOUR_RGB_BLUE = "синего";
/** @export */ Blockly.Msg.COLOUR_RGB_GREEN = "зелёного";
/** @export */ Blockly.Msg.COLOUR_RGB_HELPURL = "http://www.december.com/html/spec/colorper.html";  // untranslated
/** @export */ Blockly.Msg.COLOUR_RGB_RED = "красного";
/** @export */ Blockly.Msg.COLOUR_RGB_TITLE = "цвет из";
/** @export */ Blockly.Msg.COLOUR_RGB_TOOLTIP = "Создаёт цвет с указанной пропорцией  красного, зеленого и синего.  Все значения должны быть между 0 и 100.";
/** @export */ Blockly.Msg.CONTROLS_FLOW_STATEMENTS_HELPURL = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks";  // untranslated
/** @export */ Blockly.Msg.CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK = "выйти из цикла";
/** @export */ Blockly.Msg.CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE = "перейти к следующему шагу цикла";
/** @export */ Blockly.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK = "Прерывает этот цикл.";
/** @export */ Blockly.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE = "Пропускает остаток цикла и переходит к следующему шагу.";
/** @export */ Blockly.Msg.CONTROLS_FLOW_STATEMENTS_WARNING = "Предупреждение: этот блок может использоваться только внутри цикла.";
/** @export */ Blockly.Msg.CONTROLS_FOREACH_HELPURL = "https://github.com/google/blockly/wiki/Loops#for-each";  // untranslated
/** @export */ Blockly.Msg.CONTROLS_FOREACH_TITLE = "для каждого элемента %1 в списке %2";
/** @export */ Blockly.Msg.CONTROLS_FOREACH_TOOLTIP = "Для каждого элемента в списке, присваивает переменной '%1' значение элемента  и выполняет указанные  команды.";
/** @export */ Blockly.Msg.CONTROLS_FOR_HELPURL = "https://github.com/google/blockly/wiki/Loops#count-with";  // untranslated
/** @export */ Blockly.Msg.CONTROLS_FOR_TITLE = "цикл по %1 от %2 до %3 с шагом %4";
/** @export */ Blockly.Msg.CONTROLS_FOR_TOOLTIP = "Присваивает переменной '%1' значения от начального до конечного с заданным шагом и выполняет указанные команды.";
/** @export */ Blockly.Msg.CONTROLS_IF_ELSEIF_TOOLTIP = "Добавляет условие к блоку \"если\"";
/** @export */ Blockly.Msg.CONTROLS_IF_ELSE_TOOLTIP = "Добавить заключительный подблок для случая, когда все условия ложны.";
/** @export */ Blockly.Msg.CONTROLS_IF_HELPURL = "https://github.com/google/blockly/wiki/IfElse";  // untranslated
/** @export */ Blockly.Msg.CONTROLS_IF_IF_TOOLTIP = "Добавьте, удалите, переставьте фрагменты для переделки блока \"если\".";
/** @export */ Blockly.Msg.CONTROLS_IF_MSG_ELSE = "иначе";
/** @export */ Blockly.Msg.CONTROLS_IF_MSG_ELSEIF = "иначе если";
/** @export */ Blockly.Msg.CONTROLS_IF_MSG_IF = "если";
/** @export */ Blockly.Msg.CONTROLS_IF_TOOLTIP_1 = "Если условие истинно, выполняет команды.";
/** @export */ Blockly.Msg.CONTROLS_IF_TOOLTIP_2 = "Если условие истинно, выполняет первый блок команд. Иначе выполняется второй блок команд.";
/** @export */ Blockly.Msg.CONTROLS_IF_TOOLTIP_3 = "Если первое условие истинно, то выполняет первый блок команд. Иначе, если второе условие истинно, выполняет второй блок команд.";
/** @export */ Blockly.Msg.CONTROLS_IF_TOOLTIP_4 = "Если первое условие истинно, то выполняет первый блок команд.  В противном случае, если второе условие истинно, выполняет второй блок команд.  Если ни одно из условий не истинно, выполняет последний блок команд.";
/** @export */ Blockly.Msg.CONTROLS_REPEAT_HELPURL = "https://ru.wikipedia.org/wiki/Цикл_(программирование)";
/** @export */ Blockly.Msg.CONTROLS_REPEAT_INPUT_DO = "выполнить";
/** @export */ Blockly.Msg.CONTROLS_REPEAT_TITLE = "повторить %1 раз";
/** @export */ Blockly.Msg.CONTROLS_REPEAT_TOOLTIP = "Выполняет некоторые команды несколько раз.";
/** @export */ Blockly.Msg.CONTROLS_WHILEUNTIL_HELPURL = "https://github.com/google/blockly/wiki/Loops#repeat";  // untranslated
/** @export */ Blockly.Msg.CONTROLS_WHILEUNTIL_OPERATOR_UNTIL = "повторять, пока не";
/** @export */ Blockly.Msg.CONTROLS_WHILEUNTIL_OPERATOR_WHILE = "повторять, пока";
/** @export */ Blockly.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL = "Пока значение ложно, выполняет команды";
/** @export */ Blockly.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE = "Пока значение истинно, выполняет команды.";
/** @export */ Blockly.Msg.DELETE_ALL_BLOCKS = "Удалить все блоки (%1)?";
/** @export */ Blockly.Msg.DELETE_BLOCK = "Удалить блок";
/** @export */ Blockly.Msg.DELETE_VARIABLE = "Удалить переменную '%1'";
/** @export */ Blockly.Msg.DELETE_VARIABLE_CONFIRMATION = "Удалить %1 использований переменной '%2'?";
/** @export */ Blockly.Msg.DELETE_X_BLOCKS = "Удалить %1 блоков";
/** @export */ Blockly.Msg.DISABLE_BLOCK = "Отключить блок";
/** @export */ Blockly.Msg.DUPLICATE_BLOCK = "Дублировать";
/** @export */ Blockly.Msg.ENABLE_BLOCK = "Включить блок";
/** @export */ Blockly.Msg.EXPAND_ALL = "Развернуть блоки";
/** @export */ Blockly.Msg.EXPAND_BLOCK = "Развернуть блок";
/** @export */ Blockly.Msg.EXTERNAL_INPUTS = "Вставки снаружи";
/** @export */ Blockly.Msg.HELP = "Справка";
/** @export */ Blockly.Msg.INLINE_INPUTS = "Вставки внутри";
/** @export */ Blockly.Msg.IOS_CANCEL = "Отмена";
/** @export */ Blockly.Msg.IOS_ERROR = "Ошибка";
/** @export */ Blockly.Msg.IOS_OK = "ОК";
/** @export */ Blockly.Msg.IOS_PROCEDURES_ADD_INPUT = "+ Добавить входную переменную";
/** @export */ Blockly.Msg.IOS_PROCEDURES_ALLOW_STATEMENTS = "Разрешить операторы";
/** @export */ Blockly.Msg.IOS_PROCEDURES_DUPLICATE_INPUTS_ERROR = "У этой функции есть дублирующиеся входные переменные.";
/** @export */ Blockly.Msg.IOS_PROCEDURES_INPUTS = "ВХОД";
/** @export */ Blockly.Msg.IOS_VARIABLES_ADD_BUTTON = "Добавить";
/** @export */ Blockly.Msg.IOS_VARIABLES_ADD_VARIABLE = "+ Добавить переменную";
/** @export */ Blockly.Msg.IOS_VARIABLES_DELETE_BUTTON = "Удалить";
/** @export */ Blockly.Msg.IOS_VARIABLES_EMPTY_NAME_ERROR = "Вы не можете использовать пустое имя переменной.";
/** @export */ Blockly.Msg.IOS_VARIABLES_RENAME_BUTTON = "Переименовать";
/** @export */ Blockly.Msg.IOS_VARIABLES_VARIABLE_NAME = "Имя переменной";
/** @export */ Blockly.Msg.LISTS_CREATE_EMPTY_HELPURL = "https://github.com/google/blockly/wiki/Lists#create-empty-list";  // untranslated
/** @export */ Blockly.Msg.LISTS_CREATE_EMPTY_TITLE = "создать пустой список";
/** @export */ Blockly.Msg.LISTS_CREATE_EMPTY_TOOLTIP = "Возвращает список длины 0, не содержащий данных";
/** @export */ Blockly.Msg.LISTS_CREATE_WITH_CONTAINER_TITLE_ADD = "список";
/** @export */ Blockly.Msg.LISTS_CREATE_WITH_CONTAINER_TOOLTIP = "Добавьте, удалите, переставьте элементы для переделки блока списка.";
/** @export */ Blockly.Msg.LISTS_CREATE_WITH_HELPURL = "https://github.com/google/blockly/wiki/Lists#create-list-with";
/** @export */ Blockly.Msg.LISTS_CREATE_WITH_INPUT_WITH = "создать список из";
/** @export */ Blockly.Msg.LISTS_CREATE_WITH_ITEM_TOOLTIP = "Добавляет элемент к списку.";
/** @export */ Blockly.Msg.LISTS_CREATE_WITH_TOOLTIP = "Создаёт список с любым числом элементов.";
/** @export */ Blockly.Msg.LISTS_GET_INDEX_FIRST = "первый";
/** @export */ Blockly.Msg.LISTS_GET_INDEX_FROM_END = "№ с конца";
/** @export */ Blockly.Msg.LISTS_GET_INDEX_FROM_START = "#";  // untranslated
/** @export */ Blockly.Msg.LISTS_GET_INDEX_GET = "взять";
/** @export */ Blockly.Msg.LISTS_GET_INDEX_GET_REMOVE = "взять и удалить";
/** @export */ Blockly.Msg.LISTS_GET_INDEX_LAST = "последний";
/** @export */ Blockly.Msg.LISTS_GET_INDEX_RANDOM = "произвольный";
/** @export */ Blockly.Msg.LISTS_GET_INDEX_REMOVE = "удалить";
/** @export */ Blockly.Msg.LISTS_GET_INDEX_TAIL = "";  // untranslated
/** @export */ Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FIRST = "Возвращает первый элемент списка.";
/** @export */ Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM = "Возвращает элемент в указанной позиции списка.";
/** @export */ Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_LAST = "Возвращает последний элемент списка.";
/** @export */ Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM = "Возвращает случайный элемент списка.";
/** @export */ Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST = "Удаляет и возвращает первый элемент списка.";
/** @export */ Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM = "Удаляет и возвращает элемент в указанной позиции списка.";
/** @export */ Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST = "Удаляет и возвращает последний элемент списка.";
/** @export */ Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM = "Удаляет и возвращает случайный элемент списка.";
/** @export */ Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST = "Удаляет первый элемент списка.";
/** @export */ Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM = "Удаляет элемент в указанной позиции списка.";
/** @export */ Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST = "Удаляет последний элемент списка.";
/** @export */ Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM = "Удаляет случайный элемент списка.";
/** @export */ Blockly.Msg.LISTS_GET_SUBLIST_END_FROM_END = "по № с конца";
/** @export */ Blockly.Msg.LISTS_GET_SUBLIST_END_FROM_START = "по №";
/** @export */ Blockly.Msg.LISTS_GET_SUBLIST_END_LAST = "по последний";
/** @export */ Blockly.Msg.LISTS_GET_SUBLIST_HELPURL = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist";  // untranslated
/** @export */ Blockly.Msg.LISTS_GET_SUBLIST_START_FIRST = "взять подсписок с первого";
/** @export */ Blockly.Msg.LISTS_GET_SUBLIST_START_FROM_END = "взять подсписок с № с конца";
/** @export */ Blockly.Msg.LISTS_GET_SUBLIST_START_FROM_START = "взять подсписок с №";
/** @export */ Blockly.Msg.LISTS_GET_SUBLIST_TAIL = "";  // untranslated
/** @export */ Blockly.Msg.LISTS_GET_SUBLIST_TOOLTIP = "Создаёт копию указанной части списка.";
/** @export */ Blockly.Msg.LISTS_INDEX_FROM_END_TOOLTIP = "%1 - последний элемент.";
/** @export */ Blockly.Msg.LISTS_INDEX_FROM_START_TOOLTIP = "%1 - первый элемент.";
/** @export */ Blockly.Msg.LISTS_INDEX_OF_FIRST = "найти первое вхождение элемента";
/** @export */ Blockly.Msg.LISTS_INDEX_OF_HELPURL = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list";  // untranslated
/** @export */ Blockly.Msg.LISTS_INDEX_OF_LAST = "найти последнее вхождение элемента";
/** @export */ Blockly.Msg.LISTS_INDEX_OF_TOOLTIP = "Возвращает номер позиции первого/последнего вхождения элемента в списке. Возвращает %1, если элемент не найден.";
/** @export */ Blockly.Msg.LISTS_INLIST = "в списке";
/** @export */ Blockly.Msg.LISTS_ISEMPTY_HELPURL = "https://github.com/google/blockly/wiki/Lists#is-empty";  // untranslated
/** @export */ Blockly.Msg.LISTS_ISEMPTY_TITLE = "%1 пуст";
/** @export */ Blockly.Msg.LISTS_ISEMPTY_TOOLTIP = "Возвращает значение истина, если список пуст.";
/** @export */ Blockly.Msg.LISTS_LENGTH_HELPURL = "https://github.com/google/blockly/wiki/Lists#length-of";  // untranslated
/** @export */ Blockly.Msg.LISTS_LENGTH_TITLE = "длина %1";
/** @export */ Blockly.Msg.LISTS_LENGTH_TOOLTIP = "Возвращает длину списка.";
/** @export */ Blockly.Msg.LISTS_REPEAT_HELPURL = "https://github.com/google/blockly/wiki/Lists#create-list-with";  // untranslated
/** @export */ Blockly.Msg.LISTS_REPEAT_TITLE = "создать список из элемента %1, повторяющегося %2 раз";
/** @export */ Blockly.Msg.LISTS_REPEAT_TOOLTIP = "Создаёт список, состоящий из заданного числа копий элемента.";
/** @export */ Blockly.Msg.LISTS_REVERSE_HELPURL = "https://github.com/google/blockly/wiki/Lists#reversing-a-list";
/** @export */ Blockly.Msg.LISTS_REVERSE_MESSAGE0 = "изменить порядок на обратный %1";
/** @export */ Blockly.Msg.LISTS_REVERSE_TOOLTIP = "Изменить порядок списка на обратный.";
/** @export */ Blockly.Msg.LISTS_SET_INDEX_HELPURL = "https://github.com/google/blockly/wiki/Lists#in-list--set";  // untranslated
/** @export */ Blockly.Msg.LISTS_SET_INDEX_INPUT_TO = "=";
/** @export */ Blockly.Msg.LISTS_SET_INDEX_INSERT = "вставить в";
/** @export */ Blockly.Msg.LISTS_SET_INDEX_SET = "присвоить";
/** @export */ Blockly.Msg.LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST = "Вставляет элемент в начало списка.";
/** @export */ Blockly.Msg.LISTS_SET_INDEX_TOOLTIP_INSERT_FROM = "Вставляет элемент в указанной позиции списка.";
/** @export */ Blockly.Msg.LISTS_SET_INDEX_TOOLTIP_INSERT_LAST = "Добавляет элемент в конец списка.";
/** @export */ Blockly.Msg.LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM = "Вставляет элемент в случайное место в списке.";
/** @export */ Blockly.Msg.LISTS_SET_INDEX_TOOLTIP_SET_FIRST = "Присваивает значение первому элементу списка.";
/** @export */ Blockly.Msg.LISTS_SET_INDEX_TOOLTIP_SET_FROM = "Присваивает значение элементу в указанной позиции списка.";
/** @export */ Blockly.Msg.LISTS_SET_INDEX_TOOLTIP_SET_LAST = "Присваивает значение последнему элементу списка.";
/** @export */ Blockly.Msg.LISTS_SET_INDEX_TOOLTIP_SET_RANDOM = "Присваивает значение случайному элементу списка.";
/** @export */ Blockly.Msg.LISTS_SORT_HELPURL = "https://github.com/google/blockly/wiki/Lists#sorting-a-list";
/** @export */ Blockly.Msg.LISTS_SORT_ORDER_ASCENDING = "по возрастанию";
/** @export */ Blockly.Msg.LISTS_SORT_ORDER_DESCENDING = "по убыванию";
/** @export */ Blockly.Msg.LISTS_SORT_TITLE = "сортировать %1 %2 %3";
/** @export */ Blockly.Msg.LISTS_SORT_TOOLTIP = "Сортировать копию списка.";
/** @export */ Blockly.Msg.LISTS_SORT_TYPE_IGNORECASE = "по алфавиту, без учёта регистра";
/** @export */ Blockly.Msg.LISTS_SORT_TYPE_NUMERIC = "числовая";
/** @export */ Blockly.Msg.LISTS_SORT_TYPE_TEXT = "по алфавиту";
/** @export */ Blockly.Msg.LISTS_SPLIT_HELPURL = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists";
/** @export */ Blockly.Msg.LISTS_SPLIT_LIST_FROM_TEXT = "сделать список из текста";
/** @export */ Blockly.Msg.LISTS_SPLIT_TEXT_FROM_LIST = "собрать текст из списка";
/** @export */ Blockly.Msg.LISTS_SPLIT_TOOLTIP_JOIN = "Соединяет список текстов в один текст с разделителями.";
/** @export */ Blockly.Msg.LISTS_SPLIT_TOOLTIP_SPLIT = "Разбивает текст в список текстов, по разделителям.";
/** @export */ Blockly.Msg.LISTS_SPLIT_WITH_DELIMITER = "с разделителем";
/** @export */ Blockly.Msg.LOGIC_BOOLEAN_FALSE = "ложь";
/** @export */ Blockly.Msg.LOGIC_BOOLEAN_HELPURL = "https://github.com/google/blockly/wiki/Logic#values";  // untranslated
/** @export */ Blockly.Msg.LOGIC_BOOLEAN_TOOLTIP = "Возвращает значение истина или ложь.";
/** @export */ Blockly.Msg.LOGIC_BOOLEAN_TRUE = "истина";
/** @export */ Blockly.Msg.LOGIC_COMPARE_HELPURL = "https://ru.wikipedia.org/wiki/Неравенство";
/** @export */ Blockly.Msg.LOGIC_COMPARE_TOOLTIP_EQ = "Возвращает положительное значение, если вводы равны.";
/** @export */ Blockly.Msg.LOGIC_COMPARE_TOOLTIP_GT = "Возвращает значение истина, если первая вставка больше второй.";
/** @export */ Blockly.Msg.LOGIC_COMPARE_TOOLTIP_GTE = "Возвращает значение истина, если первая вставка больше или равна  второй.";
/** @export */ Blockly.Msg.LOGIC_COMPARE_TOOLTIP_LT = "Возвращает положительное значение, если первый ввод меньше второго.";
/** @export */ Blockly.Msg.LOGIC_COMPARE_TOOLTIP_LTE = "Возвращает значение истина, если первая вставка меньше или равна  второй.";
/** @export */ Blockly.Msg.LOGIC_COMPARE_TOOLTIP_NEQ = "Возвращает положительное значение, если вводы не равны.";
/** @export */ Blockly.Msg.LOGIC_NEGATE_HELPURL = "https://github.com/google/blockly/wiki/Logic#not";  // untranslated
/** @export */ Blockly.Msg.LOGIC_NEGATE_TITLE = "не %1";
/** @export */ Blockly.Msg.LOGIC_NEGATE_TOOLTIP = "Возвращает значение истина, если вставка ложна. Возвращает значение ложь, если вставка истинна.";
/** @export */ Blockly.Msg.LOGIC_NULL = "ничто";
/** @export */ Blockly.Msg.LOGIC_NULL_HELPURL = "https://en.wikipedia.org/wiki/Nullable_type";
/** @export */ Blockly.Msg.LOGIC_NULL_TOOLTIP = "Возвращает ничто.";
/** @export */ Blockly.Msg.LOGIC_OPERATION_AND = "и";
/** @export */ Blockly.Msg.LOGIC_OPERATION_HELPURL = "https://github.com/google/blockly/wiki/Logic#logical-operations";  // untranslated
/** @export */ Blockly.Msg.LOGIC_OPERATION_OR = "или";
/** @export */ Blockly.Msg.LOGIC_OPERATION_TOOLTIP_AND = "Возвращает значение истина, если обе вставки истинны.";
/** @export */ Blockly.Msg.LOGIC_OPERATION_TOOLTIP_OR = "Возвращает значение истина, если хотя бы одна из вставок истинна.";
/** @export */ Blockly.Msg.LOGIC_TERNARY_CONDITION = "выбрать по";
/** @export */ Blockly.Msg.LOGIC_TERNARY_HELPURL = "https://ru.wikipedia.org/wiki/Тернарная_условная_операция";
/** @export */ Blockly.Msg.LOGIC_TERNARY_IF_FALSE = "если ложь";
/** @export */ Blockly.Msg.LOGIC_TERNARY_IF_TRUE = "если истина";
/** @export */ Blockly.Msg.LOGIC_TERNARY_TOOLTIP = "Проверяет условие выбора. Если условие истинно, возвращает первое значение, в противном случае возвращает второе значение.";
/** @export */ Blockly.Msg.MATH_ADDITION_SYMBOL = "+";  // untranslated
/** @export */ Blockly.Msg.MATH_ARITHMETIC_HELPURL = "https://ru.wikipedia.org/wiki/Арифметика";
/** @export */ Blockly.Msg.MATH_ARITHMETIC_TOOLTIP_ADD = "Возвращает сумму двух чисел.";
/** @export */ Blockly.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE = "Возвращает частное от деления первого числа на второе.";
/** @export */ Blockly.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS = "Возвращает разность двух чисел.";
/** @export */ Blockly.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY = "Возвращает произведение двух чисел.";
/** @export */ Blockly.Msg.MATH_ARITHMETIC_TOOLTIP_POWER = "Возвращает первое число, возведённое в степень второго числа.";
/** @export */ Blockly.Msg.MATH_CHANGE_HELPURL = "https://ru.wikipedia.org/wiki/%D0%98%D0%B4%D0%B8%D0%BE%D0%BC%D0%B0_%28%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%29#.D0.98.D0.BD.D0.BA.D1.80.D0.B5.D0.BC.D0.B5.D0.BD.D1.82";
/** @export */ Blockly.Msg.MATH_CHANGE_TITLE = "увеличить %1 на %2";
/** @export */ Blockly.Msg.MATH_CHANGE_TOOLTIP = "Добавляет число к переменной '%1'.";
/** @export */ Blockly.Msg.MATH_CONSTANT_HELPURL = "https://ru.wikipedia.org/wiki/Математическая_константа";
/** @export */ Blockly.Msg.MATH_CONSTANT_TOOLTIP = "Возвращает одну из распространённых  констант: π (3.141...), e (2.718...), φ (1.618...), sqrt(2) (1.414...), sqrt(½) (0.707...) или ∞ (бесконечность).";
/** @export */ Blockly.Msg.MATH_CONSTRAIN_HELPURL = "https://en.wikipedia.org/wiki/Clamping_(graphics)";  // untranslated
/** @export */ Blockly.Msg.MATH_CONSTRAIN_TITLE = "ограничить %1 снизу %2 сверху %3";
/** @export */ Blockly.Msg.MATH_CONSTRAIN_TOOLTIP = "Ограничивает число нижней и верхней границами (включительно).";
/** @export */ Blockly.Msg.MATH_DIVISION_SYMBOL = "÷";  // untranslated
/** @export */ Blockly.Msg.MATH_IS_DIVISIBLE_BY = "делится на";
/** @export */ Blockly.Msg.MATH_IS_EVEN = "чётное";
/** @export */ Blockly.Msg.MATH_IS_NEGATIVE = "отрицательное";
/** @export */ Blockly.Msg.MATH_IS_ODD = "нечётное";
/** @export */ Blockly.Msg.MATH_IS_POSITIVE = "положительное";
/** @export */ Blockly.Msg.MATH_IS_PRIME = "простое";
/** @export */ Blockly.Msg.MATH_IS_TOOLTIP = "Проверяет, является ли число чётным, нечётным, простым, целым, положительным, отрицательным или оно кратно определённому числу.  Возвращает значение истина или ложь.";
/** @export */ Blockly.Msg.MATH_IS_WHOLE = "целое";
/** @export */ Blockly.Msg.MATH_MODULO_HELPURL = "https://ru.wikipedia.org/wiki/Деление_с_остатком";
/** @export */ Blockly.Msg.MATH_MODULO_TITLE = "остаток от %1 : %2";
/** @export */ Blockly.Msg.MATH_MODULO_TOOLTIP = "Возвращает остаток от деления двух чисел.";
/** @export */ Blockly.Msg.MATH_MULTIPLICATION_SYMBOL = "×";  // untranslated
/** @export */ Blockly.Msg.MATH_NUMBER_HELPURL = "https://ru.wikipedia.org/wiki/Число";
/** @export */ Blockly.Msg.MATH_NUMBER_TOOLTIP = "Число.";
/** @export */ Blockly.Msg.MATH_ONLIST_HELPURL = "";  // untranslated
/** @export */ Blockly.Msg.MATH_ONLIST_OPERATOR_AVERAGE = "среднее арифметическое списка";
/** @export */ Blockly.Msg.MATH_ONLIST_OPERATOR_MAX = "наибольшее в списке";
/** @export */ Blockly.Msg.MATH_ONLIST_OPERATOR_MEDIAN = "медиана списка";
/** @export */ Blockly.Msg.MATH_ONLIST_OPERATOR_MIN = "наименьшее в списке";
/** @export */ Blockly.Msg.MATH_ONLIST_OPERATOR_MODE = "моды списка";
/** @export */ Blockly.Msg.MATH_ONLIST_OPERATOR_RANDOM = "случайный элемент списка";
/** @export */ Blockly.Msg.MATH_ONLIST_OPERATOR_STD_DEV = "стандартное отклонение списка";
/** @export */ Blockly.Msg.MATH_ONLIST_OPERATOR_SUM = "сумма списка";
/** @export */ Blockly.Msg.MATH_ONLIST_TOOLTIP_AVERAGE = "Возвращает среднее арифметическое списка.";
/** @export */ Blockly.Msg.MATH_ONLIST_TOOLTIP_MAX = "Возвращает наибольшее число списка.";
/** @export */ Blockly.Msg.MATH_ONLIST_TOOLTIP_MEDIAN = "Возвращает медиану списка.";
/** @export */ Blockly.Msg.MATH_ONLIST_TOOLTIP_MIN = "Возвращает наименьшее число списка.";
/** @export */ Blockly.Msg.MATH_ONLIST_TOOLTIP_MODE = "Возвращает список наиболее часто встречающихся элементов списка.";
/** @export */ Blockly.Msg.MATH_ONLIST_TOOLTIP_RANDOM = "Возвращает случайный элемент списка.";
/** @export */ Blockly.Msg.MATH_ONLIST_TOOLTIP_STD_DEV = "Возвращает стандартное отклонение списка.";
/** @export */ Blockly.Msg.MATH_ONLIST_TOOLTIP_SUM = "Возвращает сумму всех чисел в списке.";
/** @export */ Blockly.Msg.MATH_POWER_SYMBOL = "^";  // untranslated
/** @export */ Blockly.Msg.MATH_RANDOM_FLOAT_HELPURL = "https://ru.wikipedia.org/wiki/Генератор_псевдослучайных_чисел";
/** @export */ Blockly.Msg.MATH_RANDOM_FLOAT_TITLE_RANDOM = "случайное число от 0 (включительно) до 1";
/** @export */ Blockly.Msg.MATH_RANDOM_FLOAT_TOOLTIP = "Возвращает случайное число от 0.0 (включительно) до 1.0.";
/** @export */ Blockly.Msg.MATH_RANDOM_INT_HELPURL = "https://ru.wikipedia.org/wiki/Генератор_псевдослучайных_чисел";
/** @export */ Blockly.Msg.MATH_RANDOM_INT_TITLE = "случайное целое число от %1 для %2";
/** @export */ Blockly.Msg.MATH_RANDOM_INT_TOOLTIP = "Возвращает случайное число между двумя заданными пределами (включая и их).";
/** @export */ Blockly.Msg.MATH_ROUND_HELPURL = "https://ru.wikipedia.org/wiki/Округление";
/** @export */ Blockly.Msg.MATH_ROUND_OPERATOR_ROUND = "округлить";
/** @export */ Blockly.Msg.MATH_ROUND_OPERATOR_ROUNDDOWN = "округлить к меньшему";
/** @export */ Blockly.Msg.MATH_ROUND_OPERATOR_ROUNDUP = "округлить к большему";
/** @export */ Blockly.Msg.MATH_ROUND_TOOLTIP = "Округляет число до большего или меньшего.";
/** @export */ Blockly.Msg.MATH_SINGLE_HELPURL = "https://ru.wikipedia.org/wiki/Квадратный_корень";
/** @export */ Blockly.Msg.MATH_SINGLE_OP_ABSOLUTE = "модуль";
/** @export */ Blockly.Msg.MATH_SINGLE_OP_ROOT = "квадратный корень";
/** @export */ Blockly.Msg.MATH_SINGLE_TOOLTIP_ABS = "Возвращает модуль числа";
/** @export */ Blockly.Msg.MATH_SINGLE_TOOLTIP_EXP = "Возвращает е в указанной степени.";
/** @export */ Blockly.Msg.MATH_SINGLE_TOOLTIP_LN = "Возвращает натуральный логарифм числа.";
/** @export */ Blockly.Msg.MATH_SINGLE_TOOLTIP_LOG10 = "Возвращает десятичный логарифм числа.";
/** @export */ Blockly.Msg.MATH_SINGLE_TOOLTIP_NEG = "Возвращает противоположное число.";
/** @export */ Blockly.Msg.MATH_SINGLE_TOOLTIP_POW10 = "Возвращает 10 в указанной степени.";
/** @export */ Blockly.Msg.MATH_SINGLE_TOOLTIP_ROOT = "Возвращает квадратный корень числа.";
/** @export */ Blockly.Msg.MATH_SUBTRACTION_SYMBOL = "-";  // untranslated
/** @export */ Blockly.Msg.MATH_TRIG_ACOS = "acos";  // untranslated
/** @export */ Blockly.Msg.MATH_TRIG_ASIN = "asin";  // untranslated
/** @export */ Blockly.Msg.MATH_TRIG_ATAN = "atan";  // untranslated
/** @export */ Blockly.Msg.MATH_TRIG_COS = "cos";  // untranslated
/** @export */ Blockly.Msg.MATH_TRIG_HELPURL = "https://ru.wikipedia.org/wiki/Тригонометрические_функции";
/** @export */ Blockly.Msg.MATH_TRIG_SIN = "sin";  // untranslated
/** @export */ Blockly.Msg.MATH_TRIG_TAN = "tan";  // untranslated
/** @export */ Blockly.Msg.MATH_TRIG_TOOLTIP_ACOS = "Возвращает арккосинус (в градусах).";
/** @export */ Blockly.Msg.MATH_TRIG_TOOLTIP_ASIN = "Возвращает арксинус (в градусах).";
/** @export */ Blockly.Msg.MATH_TRIG_TOOLTIP_ATAN = "Возвращает арктангенс (в градусах)";
/** @export */ Blockly.Msg.MATH_TRIG_TOOLTIP_COS = "Возвращает косинус угла в градусах.";
/** @export */ Blockly.Msg.MATH_TRIG_TOOLTIP_SIN = "Возвращает синус угла в градусах.";
/** @export */ Blockly.Msg.MATH_TRIG_TOOLTIP_TAN = "Возвращает тангенс угла в градусах.";
/** @export */ Blockly.Msg.NEW_COLOUR_VARIABLE = "Создать переменную цвета...";
/** @export */ Blockly.Msg.NEW_NUMBER_VARIABLE = "Создать числовую переменную...";
/** @export */ Blockly.Msg.NEW_STRING_VARIABLE = "Создать строковую переменную...";
/** @export */ Blockly.Msg.NEW_VARIABLE = "Создать переменную…";
/** @export */ Blockly.Msg.NEW_VARIABLE_TITLE = "Имя новой переменной:";
/** @export */ Blockly.Msg.NEW_VARIABLE_TYPE_TITLE = "Новый тип переменной:";
/** @export */ Blockly.Msg.ORDINAL_NUMBER_SUFFIX = "";  // untranslated
/** @export */ Blockly.Msg.PROCEDURES_ALLOW_STATEMENTS = "разрешить операторы";
/** @export */ Blockly.Msg.PROCEDURES_BEFORE_PARAMS = "с:";
/** @export */ Blockly.Msg.PROCEDURES_CALLNORETURN_HELPURL = "https://ru.wikipedia.org/wiki/Подпрограмма";
/** @export */ Blockly.Msg.PROCEDURES_CALLNORETURN_TOOLTIP = "Исполняет определённую пользователем процедуру '%1'.";
/** @export */ Blockly.Msg.PROCEDURES_CALLRETURN_HELPURL = "https://ru.wikipedia.org/wiki/Подпрограмма";
/** @export */ Blockly.Msg.PROCEDURES_CALLRETURN_TOOLTIP = "Исполняет определённую пользователем процедуру '%1' и возвращает вычисленное  значение.";
/** @export */ Blockly.Msg.PROCEDURES_CALL_BEFORE_PARAMS = "с:";
/** @export */ Blockly.Msg.PROCEDURES_CREATE_DO = "Создать вызов '%1'";
/** @export */ Blockly.Msg.PROCEDURES_DEFNORETURN_COMMENT = "Опишите эту функцию…";
/** @export */ Blockly.Msg.PROCEDURES_DEFNORETURN_DO = "";  // untranslated
/** @export */ Blockly.Msg.PROCEDURES_DEFNORETURN_HELPURL = "https://en.wikipedia.org/wiki/Subroutine";  // untranslated
/** @export */ Blockly.Msg.PROCEDURES_DEFNORETURN_PROCEDURE = "выполнить что-то";
/** @export */ Blockly.Msg.PROCEDURES_DEFNORETURN_TITLE = "чтобы";
/** @export */ Blockly.Msg.PROCEDURES_DEFNORETURN_TOOLTIP = "Создаёт процедуру, не возвращающую значение.";
/** @export */ Blockly.Msg.PROCEDURES_DEFRETURN_HELPURL = "https://en.wikipedia.org/wiki/Subroutine";  // untranslated
/** @export */ Blockly.Msg.PROCEDURES_DEFRETURN_RETURN = "вернуть";
/** @export */ Blockly.Msg.PROCEDURES_DEFRETURN_TOOLTIP = "Создаёт процедуру, возвращающую значение.";
/** @export */ Blockly.Msg.PROCEDURES_DEF_DUPLICATE_WARNING = "Предупреждение: эта функция имеет повторяющиеся параметры.";
/** @export */ Blockly.Msg.PROCEDURES_HIGHLIGHT_DEF = "Выделить определение процедуры";
/** @export */ Blockly.Msg.PROCEDURES_IFRETURN_HELPURL = "http://c2.com/cgi/wiki?GuardClause";
/** @export */ Blockly.Msg.PROCEDURES_IFRETURN_TOOLTIP = "Если первое значение истинно, возвращает второе значение.";
/** @export */ Blockly.Msg.PROCEDURES_IFRETURN_WARNING = "Предупреждение: Этот блок может использоваться только внутри определения функции.";
/** @export */ Blockly.Msg.PROCEDURES_MUTATORARG_TITLE = "имя параметра:";
/** @export */ Blockly.Msg.PROCEDURES_MUTATORARG_TOOLTIP = "Добавить входной параметр в функцию.";
/** @export */ Blockly.Msg.PROCEDURES_MUTATORCONTAINER_TITLE = "параметры";
/** @export */ Blockly.Msg.PROCEDURES_MUTATORCONTAINER_TOOLTIP = "Добавить, удалить или изменить порядок входных параметров для этой функции.";
/** @export */ Blockly.Msg.REDO = "Повторить";
/** @export */ Blockly.Msg.REMOVE_COMMENT = "Удалить комментарий";
/** @export */ Blockly.Msg.RENAME_VARIABLE = "Переименовать переменную…";
/** @export */ Blockly.Msg.RENAME_VARIABLE_TITLE = "Переименовать все переменные '%1' в:";
/** @export */ Blockly.Msg.TEXT_APPEND_HELPURL = "https://github.com/google/blockly/wiki/Text#text-modification";  // untranslated
/** @export */ Blockly.Msg.TEXT_APPEND_TITLE = "к %1 добавить текст %2";
/** @export */ Blockly.Msg.TEXT_APPEND_TOOLTIP = "Добавить текст к переменной «%1».";
/** @export */ Blockly.Msg.TEXT_CHANGECASE_HELPURL = "https://github.com/google/blockly/wiki/Text#adjusting-text-case";  // untranslated
/** @export */ Blockly.Msg.TEXT_CHANGECASE_OPERATOR_LOWERCASE = "в строчные буквы";
/** @export */ Blockly.Msg.TEXT_CHANGECASE_OPERATOR_TITLECASE = "в Заглавные Начальные Буквы";
/** @export */ Blockly.Msg.TEXT_CHANGECASE_OPERATOR_UPPERCASE = "в ЗАГЛАВНЫЕ БУКВЫ";
/** @export */ Blockly.Msg.TEXT_CHANGECASE_TOOLTIP = "Возвращает копию текста с ЗАГЛАВНЫМИ или строчными буквами.";
/** @export */ Blockly.Msg.TEXT_CHARAT_FIRST = "взять первую букву";
/** @export */ Blockly.Msg.TEXT_CHARAT_FROM_END = "взять букву № с конца";
/** @export */ Blockly.Msg.TEXT_CHARAT_FROM_START = "взять букву №";
/** @export */ Blockly.Msg.TEXT_CHARAT_HELPURL = "https://github.com/google/blockly/wiki/Text#extracting-text";  // untranslated
/** @export */ Blockly.Msg.TEXT_CHARAT_LAST = "взять последнюю букву";
/** @export */ Blockly.Msg.TEXT_CHARAT_RANDOM = "взять случайную букву";
/** @export */ Blockly.Msg.TEXT_CHARAT_TAIL = "";  // untranslated
/** @export */ Blockly.Msg.TEXT_CHARAT_TITLE = "в тексте %1 %2";
/** @export */ Blockly.Msg.TEXT_CHARAT_TOOLTIP = "Возвращает букву в указанной позиции.";
/** @export */ Blockly.Msg.TEXT_COUNT_HELPURL = "https://github.com/google/blockly/wiki/Text#counting-substrings";
/** @export */ Blockly.Msg.TEXT_COUNT_MESSAGE0 = "подсчитать количество %1 в %2";
/** @export */ Blockly.Msg.TEXT_COUNT_TOOLTIP = "Подсчитать, сколько раз отрывок текста появляется в другом тексте.";
/** @export */ Blockly.Msg.TEXT_CREATE_JOIN_ITEM_TOOLTIP = "Добавить элемент к тексту.";
/** @export */ Blockly.Msg.TEXT_CREATE_JOIN_TITLE_JOIN = "соединить";
/** @export */ Blockly.Msg.TEXT_CREATE_JOIN_TOOLTIP = "Добавьте, удалите, переставьте фрагменты для переделки текстового блока.";
/** @export */ Blockly.Msg.TEXT_GET_SUBSTRING_END_FROM_END = "по букву № с конца";
/** @export */ Blockly.Msg.TEXT_GET_SUBSTRING_END_FROM_START = "по букву №";
/** @export */ Blockly.Msg.TEXT_GET_SUBSTRING_END_LAST = "по последнюю букву";
/** @export */ Blockly.Msg.TEXT_GET_SUBSTRING_HELPURL = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text";  // untranslated
/** @export */ Blockly.Msg.TEXT_GET_SUBSTRING_INPUT_IN_TEXT = "в тексте";
/** @export */ Blockly.Msg.TEXT_GET_SUBSTRING_START_FIRST = "взять подстроку с первой буквы";
/** @export */ Blockly.Msg.TEXT_GET_SUBSTRING_START_FROM_END = "взять подстроку с буквы № с конца";
/** @export */ Blockly.Msg.TEXT_GET_SUBSTRING_START_FROM_START = "взять подстроку с буквы №";
/** @export */ Blockly.Msg.TEXT_GET_SUBSTRING_TAIL = "";  // untranslated
/** @export */ Blockly.Msg.TEXT_GET_SUBSTRING_TOOLTIP = "Возвращает указанную часть текста.";
/** @export */ Blockly.Msg.TEXT_INDEXOF_HELPURL = "https://github.com/google/blockly/wiki/Text#finding-text";  // untranslated
/** @export */ Blockly.Msg.TEXT_INDEXOF_OPERATOR_FIRST = "найти первое вхождение текста";
/** @export */ Blockly.Msg.TEXT_INDEXOF_OPERATOR_LAST = "найти последнее вхождение текста";
/** @export */ Blockly.Msg.TEXT_INDEXOF_TITLE = "в тексте %1 %2 %3";
/** @export */ Blockly.Msg.TEXT_INDEXOF_TOOLTIP = "Возвращает номер позиции первого/последнего вхождения первого текста во  втором.  Возвращает %1, если текст не найден.";
/** @export */ Blockly.Msg.TEXT_ISEMPTY_HELPURL = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text";  // untranslated
/** @export */ Blockly.Msg.TEXT_ISEMPTY_TITLE = "%1 пуст";
/** @export */ Blockly.Msg.TEXT_ISEMPTY_TOOLTIP = "Возвращает значение истина, если предоставленный текст пуст.";
/** @export */ Blockly.Msg.TEXT_JOIN_HELPURL = "https://github.com/google/blockly/wiki/Text#text-creation";  // untranslated
/** @export */ Blockly.Msg.TEXT_JOIN_TITLE_CREATEWITH = "создать текст из";
/** @export */ Blockly.Msg.TEXT_JOIN_TOOLTIP = "Создаёт фрагмент текста, объединяя любое число элементов";
/** @export */ Blockly.Msg.TEXT_LENGTH_HELPURL = "https://github.com/google/blockly/wiki/Text#text-modification";  // untranslated
/** @export */ Blockly.Msg.TEXT_LENGTH_TITLE = "длина %1";
/** @export */ Blockly.Msg.TEXT_LENGTH_TOOLTIP = "Возвращает число символов (включая пробелы) в заданном тексте.";
/** @export */ Blockly.Msg.TEXT_PRINT_HELPURL = "https://github.com/google/blockly/wiki/Text#printing-text";  // untranslated
/** @export */ Blockly.Msg.TEXT_PRINT_TITLE = "напечатать %1";
/** @export */ Blockly.Msg.TEXT_PRINT_TOOLTIP = "Печатает текст, число или другой объект.";
/** @export */ Blockly.Msg.TEXT_PROMPT_HELPURL = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user";  // untranslated
/** @export */ Blockly.Msg.TEXT_PROMPT_TOOLTIP_NUMBER = "Запросить у пользователя число.";
/** @export */ Blockly.Msg.TEXT_PROMPT_TOOLTIP_TEXT = "Запросить у пользователя текст.";
/** @export */ Blockly.Msg.TEXT_PROMPT_TYPE_NUMBER = "запросить число с подсказкой";
/** @export */ Blockly.Msg.TEXT_PROMPT_TYPE_TEXT = "запросить текст с подсказкой";
/** @export */ Blockly.Msg.TEXT_REPLACE_HELPURL = "https://github.com/google/blockly/wiki/Text#replacing-substrings";
/** @export */ Blockly.Msg.TEXT_REPLACE_MESSAGE0 = "заменить %1 на %2 в %3";
/** @export */ Blockly.Msg.TEXT_REPLACE_TOOLTIP = "Заменить все вхождения некоторого текста другим текстом.";
/** @export */ Blockly.Msg.TEXT_REVERSE_HELPURL = "https://github.com/google/blockly/wiki/Text#reversing-text";
/** @export */ Blockly.Msg.TEXT_REVERSE_MESSAGE0 = "изменить порядок на обратный %1";
/** @export */ Blockly.Msg.TEXT_REVERSE_TOOLTIP = "Меняет порядок символов в тексте на обратный.";
/** @export */ Blockly.Msg.TEXT_TEXT_HELPURL = "https://ru.wikipedia.org/wiki/Строковый_тип";
/** @export */ Blockly.Msg.TEXT_TEXT_TOOLTIP = "Буква, слово или строка текста.";
/** @export */ Blockly.Msg.TEXT_TRIM_HELPURL = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces";  // untranslated
/** @export */ Blockly.Msg.TEXT_TRIM_OPERATOR_BOTH = "обрезать пробелы с двух сторон";
/** @export */ Blockly.Msg.TEXT_TRIM_OPERATOR_LEFT = "обрезать пробелы слева";
/** @export */ Blockly.Msg.TEXT_TRIM_OPERATOR_RIGHT = "обрезать пробелы справа";
/** @export */ Blockly.Msg.TEXT_TRIM_TOOLTIP = "Возвращает копию текста с пробелами, удалёнными с одного или обоих концов.";
/** @export */ Blockly.Msg.TODAY = "Сегодня";
/** @export */ Blockly.Msg.UNDO = "Отменить";
/** @export */ Blockly.Msg.VARIABLES_DEFAULT_NAME = "элемент";
/** @export */ Blockly.Msg.VARIABLES_GET_CREATE_SET = "Создать блок \"присвоить\" для %1";
/** @export */ Blockly.Msg.VARIABLES_GET_HELPURL = "https://github.com/google/blockly/wiki/Variables#get";  // untranslated
/** @export */ Blockly.Msg.VARIABLES_GET_TOOLTIP = "Возвращает значение этой переменной.";
/** @export */ Blockly.Msg.VARIABLES_SET = "присвоить %1 = %2";
/** @export */ Blockly.Msg.VARIABLES_SET_CREATE_GET = "Создать вставку %1";
/** @export */ Blockly.Msg.VARIABLES_SET_HELPURL = "https://github.com/google/blockly/wiki/Variables#set";  // untranslated
/** @export */ Blockly.Msg.VARIABLES_SET_TOOLTIP = "Присваивает переменной значение вставки.";
/** @export */ Blockly.Msg.VARIABLE_ALREADY_EXISTS = "Переменная с именем '%1' уже существует.";
/** @export */ Blockly.Msg.VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE = "Название переменной '%1' уже используется другой типа: '%2'.";
/** @export */ Blockly.Msg.PROCEDURES_DEFRETURN_TITLE = Blockly.Msg.PROCEDURES_DEFNORETURN_TITLE;
/** @export */ Blockly.Msg.CONTROLS_IF_IF_TITLE_IF = Blockly.Msg.CONTROLS_IF_MSG_IF;
/** @export */ Blockly.Msg.CONTROLS_WHILEUNTIL_INPUT_DO = Blockly.Msg.CONTROLS_REPEAT_INPUT_DO;
/** @export */ Blockly.Msg.CONTROLS_IF_MSG_THEN = Blockly.Msg.CONTROLS_REPEAT_INPUT_DO;
/** @export */ Blockly.Msg.CONTROLS_IF_ELSE_TITLE_ELSE = Blockly.Msg.CONTROLS_IF_MSG_ELSE;
/** @export */ Blockly.Msg.PROCEDURES_DEFRETURN_PROCEDURE = Blockly.Msg.PROCEDURES_DEFNORETURN_PROCEDURE;
/** @export */ Blockly.Msg.LISTS_GET_SUBLIST_INPUT_IN_LIST = Blockly.Msg.LISTS_INLIST;
/** @export */ Blockly.Msg.LISTS_GET_INDEX_INPUT_IN_LIST = Blockly.Msg.LISTS_INLIST;
/** @export */ Blockly.Msg.MATH_CHANGE_TITLE_ITEM = Blockly.Msg.VARIABLES_DEFAULT_NAME;
/** @export */ Blockly.Msg.PROCEDURES_DEFRETURN_DO = Blockly.Msg.PROCEDURES_DEFNORETURN_DO;
/** @export */ Blockly.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF = Blockly.Msg.CONTROLS_IF_MSG_ELSEIF;
/** @export */ Blockly.Msg.LISTS_GET_INDEX_HELPURL = Blockly.Msg.LISTS_INDEX_OF_HELPURL;
/** @export */ Blockly.Msg.CONTROLS_FOREACH_INPUT_DO = Blockly.Msg.CONTROLS_REPEAT_INPUT_DO;
/** @export */ Blockly.Msg.LISTS_SET_INDEX_INPUT_IN_LIST = Blockly.Msg.LISTS_INLIST;
/** @export */ Blockly.Msg.CONTROLS_FOR_INPUT_DO = Blockly.Msg.CONTROLS_REPEAT_INPUT_DO;
/** @export */ Blockly.Msg.LISTS_CREATE_WITH_ITEM_TITLE = Blockly.Msg.VARIABLES_DEFAULT_NAME;
/** @export */ Blockly.Msg.TEXT_APPEND_VARIABLE = Blockly.Msg.VARIABLES_DEFAULT_NAME;
/** @export */ Blockly.Msg.TEXT_CREATE_JOIN_ITEM_TITLE_ITEM = Blockly.Msg.VARIABLES_DEFAULT_NAME;
/** @export */ Blockly.Msg.LISTS_INDEX_OF_INPUT_IN_LIST = Blockly.Msg.LISTS_INLIST;
/** @export */ Blockly.Msg.PROCEDURES_DEFRETURN_COMMENT = Blockly.Msg.PROCEDURES_DEFNORETURN_COMMENT;

/** @export */ Blockly.Msg.MATH_HUE = "230";
/** @export */ Blockly.Msg.LOOPS_HUE = "120";
/** @export */ Blockly.Msg.LISTS_HUE = "260";
/** @export */ Blockly.Msg.LOGIC_HUE = "210";
/** @export */ Blockly.Msg.VARIABLES_HUE = "195";
/** @export */ Blockly.Msg.TEXTS_HUE = "160";
/** @export */ Blockly.Msg.PROCEDURES_HUE = "290";
/** @export */ Blockly.Msg.COLOUR_HUE = "20";
/** @export */ Blockly.Msg.VARIABLES_DYNAMIC_HUE = "310";


text:
WorkspaceTableRowView = Backbone.Marionette.ItemView.extend({

    searches: new SearchList(),

    /**
     * Called when the view is first created
     *
     * @param options
     *      All options passed to the constructor.
     *
     */
    initialize: function(options) {
        this.listenTo(this.model, 'change', this.updateRow);

        this.table = options.table;

        // reference to DataTables wiget passed down from parent CollectionView
        this.dataTable = options.dataTable;
    },

    /**
     * Override to default implementation
     *
     * @returns {*}
     */
    render: function() {

        var workspace = this.model;

        this.dataTable.fnAddData(this.toAaDataRow(workspace));
    },

    /**
     * Run custom code for your view that is fired after your view has been closed and cleaned up.
     */
    onBeforeClose: function()
    {
        var workspace = this.model;

        // Removes one row from the DataTables widget.
        var id = workspace.get("id");
        var nRow =  this.table.find('tbody tr[id='+id+']')[0];
        this.dataTable.fnDeleteRow( nRow, null, true );
    },

    /**
     * Updates the row in the DataTable widget.
     *
     * @returns {*}
     */
    updateRow: function() {
        var workspace = this.model;

        // remove element with corresponding ID from DOM
        var id = workspace.get("id");
        var nRow =  this.table.find('tbody tr[id='+id+']')[0];

        this.dataTable.fnUpdate( this.toAaDataRow(workspace), nRow );
    },

    /**
     * Translates the given workspaceKey model object into an aaDataRow expected by the DataTables widget.
     *
     * @param workspace
     */
    toAaDataRow: function(workspace) {
        var id = workspace.get("id");

        var alias = workspace.get("alias");
        var aliasHtml = "
"+alias+"
";

        var aaDataRow = {
            "DT_RowId": workspace.get("id"),
            "0": aliasHtml,
            "1": this.getDisplayStatus(workspace),
            "2": "
"+workspace.get("date")+"
",
            "3": this.getVariantsCell(workspace),
            "4": this.getActionCell(workspace)
        };

        return aaDataRow;
    },

    getVariantsCell: function(workspace) {
        switch(workspace.get("status")) {
            case ReadyStatus.IMPORTING:
            case ReadyStatus.INDEXING:
            case ReadyStatus.READY:
                return workspace.get("statsNumVariants");
            default:
                return "";
        }
    },

    getActionCell: function(workspace) {

        if ((workspace.get("status") == ReadyStatus.IMPORTING) || (workspace.get("status") == ReadyStatus.ANNOTATING)) {
            var percentComplete;
            var current = 0;
            var total = 0;
            if (workspace.get("status") == ReadyStatus.IMPORTING) {
                current = workspace.get("statsNumVariants");
                total   = workspace.get("statsTotalVariants");
            } else if (workspace.get("status") == ReadyStatus.ANNOTATING) {
                current = workspace.get("statsNumAnnotations");
                total   = workspace.get("statsTotalAnnotations");
            }

            if (total == 0) {
                percentComplete = 0;
            } else {
                percentComplete = Math.ceil((current / total) * 100);
            }

            var html =
                '
' + percentComplete + '% (' + current + ' of ' + total + ')
' +
                '
' +
                '

' +
                '
';

            return html;
        } else if (workspace.get("status") == ReadyStatus.INDEXING) {
            return '';
        } else {
            var actionHtml = '
';

            var loadButtonHtml =
                '
' +
                    '    <button data-wks-key="' + workspace.get("key") + '" class="btn analyze">Analyze</button>' +
                    '    <button data-wks-key="' + workspace.get("key") + '" class="btn dropdown-toggle show-analyses" data-toggle="dropdown">' +
                    '        ' +
                    '    </button>' +
                    '

' +
                    '
';

            var deleteButtonHtml = '<button data-wks-key="' + workspace.get("key") + '" class="btn delete">Delete</button>';

            switch(workspace.get("status")) {
                case ReadyStatus.READY:
                    actionHtml += loadButtonHtml + deleteButtonHtml;
                    break;
                case ReadyStatus.FAILED:
                    actionHtml += deleteButtonHtml;
                    break;
            }

            // show error button only if there are errors or warnings
            var errorAndWarningCount = workspace.get("statsErrors") + workspace.get("statsWarnings");
            if (errorAndWarningCount > 0) {
                actionHtml += '<button data-wks-key="' + workspace.get("key") + '" class="btn error errors">Warnings ('+errorAndWarningCount+')</button>';
            }

            // close nowrap div
            actionHtml += '
';

            return actionHtml;
        }
    },

    /**
     * Gets human readable display status for the given workspaceKey.
     *
     * @param workspace
     * @returns {string}
     */
    getDisplayStatus: function(workspace) {
        switch(workspace.get("status")) {
            case ReadyStatus.IMPORTING:
                return "Importing";
            case ReadyStatus.INDEXING:
                return "Indexing";
            case ReadyStatus.READY:
                return "Available";
            case ReadyStatus.FAILED:
                return "Failed";
            case ReadyStatus.QUEUED:
                return "Queued";
            case ReadyStatus.ANNOTATING:
                return "Annotating";
            default:
                return "NA";
        }
    }
});


text:
require 'spec_helper'

RSpec.describe JSON::SchemaBuilder::String, type: :unit do
  subject{ described_class }

  it{ is_expected.to define_attribute :min_length }
  it{ is_expected.to define_attribute :max_length }
  it{ is_expected.to define_attribute :pattern }
  it{ is_expected.to define_attribute :format }
  its(:registered_type){ is_expected.to eql :string }
end


text:
title: Ring that Bell
author: TQuizzle
layout: post
permalink: /archive/ring-that-bell/
bitly_url:
  - http://bit.ly/1bK1lhu
bitly_hash:
  - 1bK1lhu
bitly_long_url:
  - http://www.tquizzle.com/archive/ring-that-bell/
categories:
  - Normal
---
As a somewhat proud person, especially of my family, today was an amazing day.

Today my nephew David got to ring a bell he has wanted to ring for the last few years. This bell in particular is extremely exciting to hear ring. This bell's ringing signifies that for the time being he is leukemia free. All the children who ring this bell, have this amazing feeling.

My family has been waiting for this day for quite some time. To witness this young boy be excited about completing treatment solidifies the power of the human spirit and is a testimony to his strength in character and strength over physical hardships (much stronger than mine). It's amazing, the power of the human body, especially in youth. The ability of the young body to heal and be healed is nothing short of amazing.

David's strength, will power and spirit has forever changed him and his family.

Thank God for his amazing doctors, nurses, drugs and family support. Without each one of these, his success would have been much more difficult to realize.

      Share this:

          Twitter

          Google

          Facebook

          repost

          More

              LinkedIn

              Reddit

              Digg

              StumbleUpon

              Email

              Print


text:
<?php

namespace Magento\Tax\Api\Data;

interface QuoteDetailsItemInterface extends \Magento\Framework\Api\ExtensibleDataInterface
{
    /**#@+
     * Constants defined for keys of array, makes typos less likely
     */
    const KEY_CODE = 'code';

    const KEY_TYPE = 'type';

    const KEY_TAX_CLASS_KEY = 'tax_class_key';

    const KEY_UNIT_PRICE = 'unit_price';

    const KEY_QUANTITY = 'quantity';

    const KEY_TAX_INCLUDED = 'tax_included';

    const KEY_SHORT_DESCRIPTION = 'short_description';

    const KEY_DISCOUNT_AMOUNT = 'discount_amount';

    const KEY_PARENT_CODE = 'parent_code';

    const KEY_ASSOCIATED_ITEM_CODE = 'associated_item_code';

    const KEY_TAX_CLASS_ID = 'tax_class_id';
    /**#@-*/

    /**
     * Get code (sku or shipping code)
     *
     * @return string|null
     */
    public function getCode();

    /**
     * Get type (e.g., shipping, product, wee, gift wrapping, etc.)
     *
     * @return string|null
     */
    public function getType();

    /**
     * Get tax class key
     *
     * @return \Magento\Tax\Api\Data\TaxClassKeyInterface
     */
    public function getTaxClassKey();

    /**
     * Get unit price
     *
     * @return float
     */
    public function getUnitPrice();

    /**
     * Get quantity
     *
     * @return float
     */
    public function getQuantity();

    /**
     * Get indicate that if the tax is included in the unit price and row total
     *
     * @return bool
     */
    public function getTaxIncluded();

    /**
     * Get short description
     *
     * @return string|null
     */
    public function getShortDescription();

    /**
     * Get discount amount
     *
     * @return float
     */
    public function getDiscountAmount();

    /**
     * Get parent code if this item is a child, null if this is a top level item.
     *
     * @return string|null
     */
    public function getParentCode();

    /**
     * Get associated item code if this item is associated with another item, null otherwise
     *
     * @return mixed|null
     */
    public function getAssociatedItemCode();

    /**
     * Get associated item tax class id
     *
     * @return int
     */
    public function getTaxClassId();
}


text:
using System;
using System.Threading.Tasks;
using Elasticsearch.Net;

namespace Nest
{
	public partial interface IElasticClient
	{
		/// <inheritdoc/>
		IRenderSearchTemplateResponse RenderSearchTemplate(Func<RenderSearchTemplateDescriptor, IRenderSearchTemplateRequest> selector);

		/// <inheritdoc/>
		IRenderSearchTemplateResponse RenderSearchTemplate(IRenderSearchTemplateRequest request);

		/// <inheritdoc/>
		Task<IRenderSearchTemplateResponse> RenderSearchTemplateAsync(Func<RenderSearchTemplateDescriptor, IRenderSearchTemplateRequest> selector);

		/// <inheritdoc/>
		Task<IRenderSearchTemplateResponse> RenderSearchTemplateAsync(IRenderSearchTemplateRequest request);
	}
	public partial class ElasticClient
	{
		public IRenderSearchTemplateResponse RenderSearchTemplate(Func<RenderSearchTemplateDescriptor, IRenderSearchTemplateRequest> selector) =>
			this.RenderSearchTemplate(selector.InvokeOrDefault(new RenderSearchTemplateDescriptor()));

		public IRenderSearchTemplateResponse RenderSearchTemplate(IRenderSearchTemplateRequest request) =>
			this.Dispatcher.Dispatch<IRenderSearchTemplateRequest, RenderSearchTemplateRequestParameters, RenderSearchTemplateResponse>(
				request,
				(p, d) => this.LowLevelDispatch.RenderSearchTemplateDispatch<RenderSearchTemplateResponse>(p, d)
			);

		public Task<IRenderSearchTemplateResponse> RenderSearchTemplateAsync(Func<RenderSearchTemplateDescriptor, IRenderSearchTemplateRequest> selector) =>
			this.RenderSearchTemplateAsync(selector.InvokeOrDefault(new RenderSearchTemplateDescriptor()));

		public Task<IRenderSearchTemplateResponse> RenderSearchTemplateAsync(IRenderSearchTemplateRequest request) =>
			this.Dispatcher.DispatchAsync<IRenderSearchTemplateRequest, RenderSearchTemplateRequestParameters, RenderSearchTemplateResponse, IRenderSearchTemplateResponse>(
				request,
				(p, d) => this.LowLevelDispatch.RenderSearchTemplateDispatchAsync<RenderSearchTemplateResponse>(p, d)
			);
	}
}


text:
#ifndef Header_SuperpoweredFX
#define Header_SuperpoweredFX

/**
 @brief This is the base class for Superpowered effects.

 @param enabled Indicates if the effect is enabled (processing audio).

*/
class SuperpoweredFX {
public:
    bool enabled;

/**
 @brief Turns the effect on/off.
 */
    virtual void enable(bool flag) = 0; // Use this to turn it on/off.

/**
 @brief Sets the sample rate.

 @param samplerate 44100, 48000, etc.
 */
    virtual void setSamplerate(unsigned int samplerate) = 0;

/**
 @brief Reset all internals, sets the instance as good as new and turns it off.
*/
    virtual void reset() = 0;

/**
 @brief Processes the audio.

 It's not locked when you call other methods from other threads, and they not interfere with process() at all.
 Check the process() documentation of each fx for the minimum number of samples and an optional vector size limitation. For maximum compatibility with all Superpowered effects, numberOfSamples should be minimum 32 and a multiply of 8.

 @return Put something into output or not.

 @param input 32-bit interleaved stereo input buffer.
 @param output 32-bit interleaved stereo output buffer.
 @param numberOfSamples Number of samples to process.
 */
    virtual bool process(float *input, float *output, unsigned int numberOfSamples) = 0;

    virtual ~SuperpoweredFX() {};
};

/**
 \mainpage Superpowered Audio SDK

 The Superpowered Audio SDK is a software development kit based on Superpowered Inc's digital signal processing (DSP) technology.

 Superpowered technology allows developers to build computationally intensive audio apps and embedded applications that process more quickly and use less power than other comparable solutions.

 Superpowered DSP is designed and optimized, from scratch, to run on low-power mobile processors. Specifically, any device running ARM with the NEON extension (which covers 99% of all mobile devices manufactured). Intel CPU is supported too.

 Details of the latest version can be found at http://superpowered.com/superpowered-audio-sdk/
 */

#endif


text:
clear all; close all; clc;

BASEDIR = fullfile(mfilename('fullpath'),'../');
EXACTMATCH_DATASET = fullfile(BASEDIR, '../ExactMatchChairsDataset');
addpath(fullfile(BASEIDR, '../../'));
global_variables;
addpath(genpath(g_piotr_toolbox_path));

%%
exact_match_chairs_filelist = importdata(fullfile(EXACTMATCH_DATASET, 'exact_match_chairs_img_filelist.txt'));
query_features = zeros(length(exact_match_chairs_filelist), 1764);
parfor i = 1:length(exact_match_chairs_filelist)
    display(i);
    I = imread(exact_match_chairs_filelist{i});
    I = imresize(I, [60, 60]);
    h0 = hog(single(I));
    query_features(i, :) = h0(:);
end
%save(fullfile(BASEDIR, 'exact_match_chairs_img_hog.mat'), 'query_features');

%%
pure_img_filelist = importdata(fullfile(BASEDIR,'pure_img_filelist.txt'));
pure_features = zeros(length(pure_img_filelist), 1764);
parfor i = 1:length(pure_img_filelist)
    display(i);
    I = imread(pure_img_filelist{i});
    I = imresize(I, [60, 60]);
    h0 = hog(single(I));
    pure_features(i, :) = h0(:);
end
%save(fullfile(BASEDIR, 'pure_img_hog.mat'), 'pure_features');

% --------------------------------------------
% --------------------------------------------
%% compute distance matrix
test_img_filelist = importdata(fullfile(EXACTMATCH_DATASET, 'exact_match_chairs_img_filelist.txt'));
%load(fullfile(BASEDIR, 'exact_match_chairs_img_hog.mat'));
%load(fullfile(BASEDIR, 'pure_img_hog.mat'));
modelFeatures = pure_features';

%% WITHOUT VIEW ORACLE
D = zeros(length(test_img_filelist), size(modelFeatures, 2));
for i = 1:length(test_img_filelist)
    tic;
    i
    dist = pdist2(query_features(i, :), modelFeatures');
    D(i, :) = dist;
    toc;
end

%%
imageModelDist = zeros(length(test_img_filelist), 6777);
bestModelView = zeros(length(test_img_filelist), 6777);
for i = 1:length(test_img_filelist)
    i
    distToModel = D(i, :);
    distToModel = reshape(distToModel, [100, 6777]);
    [distToModel, bestview] = min(distToModel, [], 1);
    imageModelDist(i, :) = distToModel;
    bestModelView = bestview;
end

dlmwrite(fullfile(BASEDIR, 'hogImageModelDist_withoutViewOracle.txt'), imageModelDist, 'delimiter', ' ');


text:
class AliasChecker
  attr_accessor :filename, :aliases

  def initialize(filename)
    @filename = filename

    if !File.exist?(File.expand_path(filename))
      return
    end

    file_contents = File.open(File.expand_path(filename), 'r').read
    lines = file_contents.split("\n")
    @aliases = {}
    lines.each do |l|
      al = AliasLine.new(l)
      next unless al.valid?
      @aliases[al.alias_name] = al.command
    end
  end

  def exist?(alias_name)
    @aliases && !!@aliases[alias_name]
  end
end


text:
<?php

namespace Tests\Utils;

use CpdnAPI\Utils\ItemGenerator;

class ItemGeneratorTest extends \UnitTestCase {
	public function testItemGenerate() {
		$r = ItemGenerator::generate("/schemes");
		$e = array (
				"_meta" => array (
						"href" => "https://api.cpdn.sd2.cz/schemes",
						"mediaType" => "application/json"
				)
		);
		$this->assertEquals ( $r, $e );
	}

	public function testItemGenerateMetaArgs() {
		$r = ItemGenerator::generate("/schemes", array("param" => "value"));
		$e = array (
				"_meta" => array (
						"href" => "https://api.cpdn.sd2.cz/schemes",
						"mediaType" => "application/json",
						"param" => "value"
				)
		);
		$this->assertEquals ( $r, $e );
	}

	public function testItemGenerateBodyArgs() {
		$r = ItemGenerator::generate("/schemes", array(), array("param" => "value"));
		$e = array (
				"_meta" => array (
						"href" => "https://api.cpdn.sd2.cz/schemes",
						"mediaType" => "application/json"
				),
				"param" => "value"
		);
		$this->assertEquals ( $r, $e );
	}
}


text:
@interface PGPostgresConnection (PGPostgresConnectionUtils)

- (NSArray *)schemas;
- (NSArray *)databases;
- (NSArray *)tablesInSchema:(NSString *)schema;
- (NSArray *)columnNamesForTable:(NSString *)table inSchema:(NSString *)schema;
- (NSString *)primaryKeyForTable:(NSString *)table inSchema:(NSString *)schema;

@end


text:
class Camera {

private:
	unsigned int  _id;
	unsigned int  _w;
	unsigned int  _h;
	bool  _active;

	//std::shared_ptr< cimg_library::CImg<float> > _img;

	glm::vec3   _pos;
	glm::vec3   _dir;
	glm::vec3   _side;
	glm::vec3   _up;
	float _f;

	std::vector< unsigned int> _mvsPatchCloudId;
	std::vector< std::pair<glm::vec3,glm::uvec2> >  _mvsPnts;
	std::vector< std::pair<float,glm::uvec2> > _mvsConfidence;
	std::vector< std::pair<glm::vec3,glm::uvec2> > _mvsNormal;

	float r[9], t[3];

	glm::mat4x3 _RT;
	glm::vec3 _T;
	glm::mat3 _R;
	glm::mat3 _K;
	float _focal_pixel;
	float _ppx;
	float _ppy;

	std::string _img_filename;

	void fixProjection(void);

public:
	Camera(unsigned int id, float m[15], unsigned int w, unsigned int h, bool a, float ppx, float ppy);
	Camera(unsigned int id, float m[15], unsigned int w, unsigned int h, bool a);
	Camera(unsigned int id, unsigned int w, unsigned int h, bool a);

	void setPositionFromXml(float m[16], float f);

	float getF(){return _f;}
	float getFocalPixel(){return _focal_pixel;};

	unsigned int   w          (void)          const ;
	unsigned int   h          (void)          const ;
	glm::vec3   pos        (void)          const ;
	glm::vec3   dir        (void)          const ;
	glm::vec3 up(void) const{return _up;};
	glm::vec3 side(void) const{return _side;};
	glm::mat4x3 RT(void) const{return _RT;};
	bool   active     (void)          const ;
	void   setActive (bool active);
	float  aspect     (void)          const ;
	unsigned int   numMVSPnts (void)          const ;

	std::string getImgFilename();
	void setImgFilename(std::string filename);

	double mvsPntConfidence(unsigned int i)	const ;
	glm::vec3 mvsPosition(unsigned int i) const ;
	glm::vec3 mvsPntNormal(unsigned int i) const ;
	glm::uvec2 mvs2DPos(unsigned int i)   const ;

	void   addMVSPnt  (unsigned int id, glm::vec3 v,glm::uvec2 p);
	void   addMVSPnt  (unsigned int id, glm::vec3 v,float confidence,glm::uvec2 p)   ;
	void   addMVSPnt  (unsigned int id, glm::vec3 v, glm::vec3 normal, float confidence, glm::uvec2 p)  ;

	glm::mat4 lookMatrix(void) const ;
	glm::mat4 projMatrix(void) const ;

	glm::vec2 project(glm::vec3 p3d) const;
	glm::vec2 project(glm::vec3 p3d, glm::vec3 &tpos, glm::vec3 &tforw, glm::vec3 &tup, glm::mat4x3 &mat ) const;

	void fixPrincipalPoint(float ppx, float ppy );

	void resize(float scale);

	std::vector<unsigned int> getPointCloudVizPointsId();
};

#endif // _CAMERA_H_


text:
import re
import logging

# Python Social Auth
from social_core.exceptions import AuthException

# Django
from django.utils.translation import ugettext_lazy as _
from django.db.models import Q

logger = logging.getLogger('awx.sso.pipeline')

class AuthNotFound(AuthException):

    def __init__(self, backend, email_or_uid, *args, **kwargs):
        self.email_or_uid = email_or_uid
        super(AuthNotFound, self).__init__(backend, *args, **kwargs)

    def __str__(self):
        return _('An account cannot be found for {0}').format(self.email_or_uid)

class AuthInactive(AuthException):

    def __str__(self):
        return _('Your account is inactive')

def check_user_found_or_created(backend, details, user=None, *args, **kwargs):
    if not user:
        email_or_uid = details.get('email') or kwargs.get('email') or kwargs.get('uid') or '???'
        raise AuthNotFound(backend, email_or_uid)

def set_is_active_for_new_user(strategy, details, user=None, *args, **kwargs):
    if kwargs.get('is_new', False):
        details['is_active'] = True
        return {'details': details}

def prevent_inactive_login(backend, details, user=None, *args, **kwargs):
    if user and not user.is_active:
        raise AuthInactive(backend)

def _update_m2m_from_expression(user, related, expr, remove=True):
    '''
    Helper function to update m2m relationship based on user matching one or
    more expressions.
    '''
    should_add = False
    if expr is None:
        return
    elif not expr:
        pass
    elif expr is True:
        should_add = True
    else:
        if isinstance(expr, (str, type(re.compile('')))):
            expr = [expr]
        for ex in expr:
            if isinstance(ex, str):
                if user.username == ex or user.email == ex:
                    should_add = True
            elif isinstance(ex, type(re.compile(''))):
                if ex.match(user.username) or ex.match(user.email):
                    should_add = True
    if should_add:
        related.add(user)
    elif remove:
        related.remove(user)

def _update_org_from_attr(user, related, attr, remove, remove_admins, remove_auditors):
    from awx.main.models import Organization

    org_ids = []

    for org_name in attr:
        org = Organization.objects.get_or_create(name=org_name)[0]

        org_ids.append(org.id)
        getattr(org, related).members.add(user)

    if remove:
        [o.member_role.members.remove(user) for o in
            Organization.objects.filter(Q(member_role__members=user) & ~Q(id__in=org_ids))]

    if remove_admins:
        [o.admin_role.members.remove(user) for o in
            Organization.objects.filter(Q(admin_role__members=user) & ~Q(id__in=org_ids))]

    if remove_auditors:
        [o.auditor_role.members.remove(user) for o in
            Organization.objects.filter(Q(auditor_role__members=user) & ~Q(id__in=org_ids))]

def update_user_orgs(backend, details, user=None, *args, **kwargs):
    '''
    Update organization memberships for the given user based on mapping rules
    defined in settings.
    '''
    if not user:
        return
    from awx.main.models import Organization
    org_map = backend.setting('ORGANIZATION_MAP') or {}
    for org_name, org_opts in org_map.items():
        org = Organization.objects.get_or_create(name=org_name)[0]

        # Update org admins from expression(s).
        remove = bool(org_opts.get('remove', True))
        admins_expr = org_opts.get('admins', None)
        remove_admins = bool(org_opts.get('remove_admins', remove))
        _update_m2m_from_expression(user, org.admin_role.members, admins_expr, remove_admins)

        # Update org users from expression(s).
        users_expr = org_opts.get('users', None)
        remove_users = bool(org_opts.get('remove_users', remove))
        _update_m2m_from_expression(user, org.member_role.members, users_expr, remove_users)

def update_user_teams(backend, details, user=None, *args, **kwargs):
    '''
    Update team memberships for the given user based on mapping rules defined
    in settings.
    '''
    if not user:
        return
    from awx.main.models import Organization, Team
    team_map = backend.setting('TEAM_MAP') or {}
    for team_name, team_opts in team_map.items():
        # Get or create the org to update.
        if 'organization' not in team_opts:
            continue
        org = Organization.objects.get_or_create(name=team_opts['organization'])[0]

        # Update team members from expression(s).
        team = Team.objects.get_or_create(name=team_name, organization=org)[0]
        users_expr = team_opts.get('users', None)
        remove = bool(team_opts.get('remove', True))
        _update_m2m_from_expression(user, team.member_role.members, users_expr, remove)

def update_user_orgs_by_saml_attr(backend, details, user=None, *args, **kwargs):
    if not user:
        return
    from django.conf import settings
    org_map = settings.SOCIAL_AUTH_SAML_ORGANIZATION_ATTR
    if org_map.get('saml_attr') is None and org_map.get('saml_admin_attr') is None and org_map.get('saml_auditor_attr') is None:
        return

    remove = bool(org_map.get('remove', True))
    remove_admins = bool(org_map.get('remove_admins', True))
    remove_auditors = bool(org_map.get('remove_auditors', True))

    attr_values = kwargs.get('response', {}).get('attributes', {}).get(org_map.get('saml_attr'), [])
    attr_admin_values = kwargs.get('response', {}).get('attributes', {}).get(org_map.get('saml_admin_attr'), [])
    attr_auditor_values = kwargs.get('response', {}).get('attributes', {}).get(org_map.get('saml_auditor_attr'), [])

    _update_org_from_attr(user, "member_role", attr_values, remove, False, False)
    _update_org_from_attr(user, "admin_role", attr_admin_values, False, remove_admins, False)
    _update_org_from_attr(user, "auditor_role", attr_auditor_values, False, False, remove_auditors)

def update_user_teams_by_saml_attr(backend, details, user=None, *args, **kwargs):
    if not user:
        return
    from awx.main.models import Organization, Team
    from django.conf import settings
    team_map = settings.SOCIAL_AUTH_SAML_TEAM_ATTR
    if team_map.get('saml_attr') is None:
        return

    saml_team_names = set(kwargs
                          .get('response', {})
                          .get('attributes', {})
                          .get(team_map['saml_attr'], []))

    team_ids = []
    for team_name_map in team_map.get('team_org_map', []):
        team_name = team_name_map.get('team', None)
        team_alias = team_name_map.get('team_alias', None)
        organization_name = team_name_map.get('organization', None)
        organization_alias = team_name_map.get('organization_alias', None)
        if team_name in saml_team_names:
            if not organization_name:
                # Settings field validation should prevent this.
                logger.error("organization name invalid for team {}".format(team_name))
                continue

            if organization_alias:
                organization_name = organization_alias
            org = Organization.objects.get_or_create(name=organization_name)[0]

            if team_alias:
                team_name = team_alias
            team = Team.objects.get_or_create(name=team_name, organization=org)[0]

            team_ids.append(team.id)
            team.member_role.members.add(user)

    if team_map.get('remove', True):
        [t.member_role.members.remove(user) for t in
            Team.objects.filter(Q(member_role__members=user) & ~Q(id__in=team_ids))]


text:
from __future__ import unicode_literals

from django.db import models, migrations

class Migration(migrations.Migration):

    dependencies = [
        ('mail', '0003_auto_20150323_1955'),
    ]

    operations = [
        migrations.AlterField(
            model_name='mail',
            name='subject',
            field=models.CharField(max_length=1024),
            preserve_default=True,
        ),
    ]


text:
require 'test_helper'
# Test the Configuration Converter Module
class ConfigurationTest < Minitest::Test
  def test_timeout_configuration
    start_time = Time.now
    Poleica.configure { |config| config.timeout = 1 }
    # rubocop:disable RescueModifier
    Poleica::Converters::Utils.exec_with_timeout('sleep 10') rescue nil
    # rubocop:enable
    duration = Time.now - start_time
    assert(duration < 10)
  ensure
    Poleica.configure { |config| config.timeout = 120 }
  end

  def test_graphics_magick_configuration
    Poleica.configure do |config|
      config.graphics_magick[:bin_paths] = { linux: '', osx: '' }
    end
    expected_message = 'Poleica::Converters::GraphicsMagick not found @ '
    assert_raises(RuntimeError, expected_message) do
      Poleica.new('test/support/files/example.pdf').to_png
    end
  ensure
    Poleica.reset_configuration
  end

  def test_libre_office_configuration
    Poleica.configure do |config|
      config.libre_office[:bin_paths] = { linux: '', osx: '' }
    end
    expected_message = 'Poleica::Converters::LibreOffice not found @ '
    assert_raises(RuntimeError, expected_message) do
      Poleica.new('test/support/files/example.doc').to_pdf
    end
  ensure
    Poleica.reset_configuration
  end
end # class ConfigurationTest


text:
var React = require("react");
var actions = require("../actions");
var RegisterPage = require("../containers/RegisterPage");
var RolesPage = require("../containers/RolesPage");
var GamePage = require("../containers/GamePage");

module.exports = React.createClass({
  render: function () {
    return (
      <div>
        <RegisterPage />
        <RolesPage />
        <GamePage />
      </div>
    );
  }
});


text:
using System;
using System.Collections.Generic;
using System.Linq;
using Infusion.IO;

namespace Infusion.Packets.Server
{
    internal class DrawObjectPacket : MaterializedPacket
    {
        private Packet rawPacket;
        private ModelId type;
        private Location3D location;

        public ObjectId Id { get; set; }
        public ModelId Type { get => type;
            set
            {
                type = value;
                if (rawPacket.Payload != null)
                {
                    var writer = new ArrayPacketWriter(rawPacket.Payload);
                    writer.Position = 1 + 2 + 4;
                    writer.WriteModelId(value);
                }
            }
        }

        public Location3D Location
        {
            get => location;
            set
            {
                location = value;

                if (rawPacket.Payload != null)
                {
                    var writer = new ArrayPacketWriter(rawPacket.Payload);
                    writer.Position = 1 + 2 + 4 + 2;
                    writer.WriteUShort((ushort)value.X);
                    writer.WriteUShort((ushort)value.Y);
                    writer.WriteSByte((sbyte)value.Z);
                }
            }
        }

        public override Packet RawPacket => rawPacket;
        public Direction Direction { get; set; }
        public MovementType MovementType { get; set; }
        public Color Color { get; set; }
        public Notoriety Notoriety { get; set; }
        public IEnumerable<Item> Items { get; set; }
        public byte Flags { get; set; }

        protected virtual int GetLength(Item i) => i.Color.HasValue ? 9 : 7;

        public Packet Serialize()
        {
            var size = (ushort)(23 + Items.Select(i => GetLength(i)).Sum());
            var payload = new byte[size];
            var writer = new ArrayPacketWriter(payload);

            writer.WriteByte((byte)PacketDefinitions.DrawObject.Id);
            writer.WriteUShort(size);
            writer.WriteObjectId(Id);
            writer.WriteModelId(Type);
            writer.WriteUShort((ushort)Location.X);
            writer.WriteUShort((ushort)Location.Y);
            writer.WriteSByte((sbyte)Location.Z);
            writer.WriteDirection(Direction, MovementType);
            writer.WriteColor(Color);
            writer.WriteByte(Flags);
            writer.WriteByte((byte)Notoriety);

            foreach (var item in Items)
            {
                SerializeItem(item, writer);
            }

            writer.WriteUInt(0);

            rawPacket = new Packet(payload);

            return rawPacket;
        }

        protected virtual void SerializeItem(Item item, ArrayPacketWriter writer)
        {
            writer.WriteObjectId(item.Id);
            writer.WriteModelId(item.Color.HasValue ? (ModelId)(item.Type + 0x8000) : item.Type);
            writer.WriteByte((byte)item.Layer);
            if (item.Color.HasValue)
                writer.WriteColor(item.Color.Value);
        }

        public override void Deserialize(Packet rawPacket)
        {
            this.rawPacket = rawPacket;
            var reader = new ArrayPacketReader(rawPacket.Payload);
            reader.Skip(3);

            Id = reader.ReadObjectId();
            this.type = reader.ReadModelId();
            this.location = new Location3D(reader.ReadUShort(), reader.ReadUShort(), reader.ReadSByte());
            (Direction, MovementType) = reader.ReadDirection();
            Color = (Color) reader.ReadUShort();
            Flags = reader.ReadByte();
            Notoriety = (Notoriety) reader.ReadByte();

            var items = new List<Item>();
            var itemId = reader.ReadUInt();
            while (itemId != 0x00000000)
            {
                var itemType = reader.ReadUShort();
                var layer = (Layer) reader.ReadByte();
                Color? color = null;

                DeserializeTypeAndColor(reader, ref itemType, ref color);

                var item = new Item(new ObjectId(itemId), new ModelId(itemType), 1, new Location3D(0, 0, 0), containerId: Id,
                    layer: layer, color: color);

                items.Add(item);

                itemId = reader.ReadUInt();
            }

            Items = items.ToArray();
        }

        protected virtual void DeserializeTypeAndColor(ArrayPacketReader reader, ref ushort type, ref Color? color)
        {
            if ((type & 0x8000) != 0)
            {
                type -= 0x8000;
                color = (Color)reader.ReadUShort();
            }
        }
    }
}