text:
using System;
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Threading;
using Sharkbite.Irc;
using System.Timers;
using System.Linq;
using System.Xml.Linq;

namespace TwitchChatBot
{
    public class TwitchChatBot
    {
        private Connection connection;
        Dictionary<string, string> commands = new Dictionary<string,string>();

        public TwitchChatBot()
        {
            XDocument doc = XDocument.Load("twitch.config");
            XElement configElement = doc.Element("configuration");
            XElement serverElement = configElement.Element("Server");
            Credentials.Server = serverElement.Value;
            XElement channelElement = configElement.Element("Channel");
            Credentials.Channel = channelElement.Value;
            XElement nickElement = configElement.Element("Nick");
            Credentials.Nick = nickElement.Value;
            XElement passwordElement = configElement.Element("Password");
            Credentials.Password = passwordElement.Value;
            XElement commandsElement = configElement.Element("Commands");
            foreach(XElement commandElement in commandsElement.Elements())
            {
                commands.Add("!" + commandElement.Name.LocalName.ToLower(), commandElement.Value);
            }

            ConnectionArgs cargs = new ConnectionArgs(Credentials.Nick, Credentials.Server);
            cargs.Port = 6667;
            cargs.ServerPassword = Credentials.Password;

            connection = new Connection(cargs, false, false);

            connection.Listener.OnRegistered += new RegisteredEventHandler(OnRegistered);
            connection.Listener.OnJoin += new JoinEventHandler(OnJoin);
            connection.Listener.OnPublic += new PublicMessageEventHandler(OnPublic);
            //Listen for bot commands sent as private messages
            connection.Listener.OnPrivate += new PrivateMessageEventHandler(OnPrivate);
            //Listen for notification that an error has ocurred
            connection.Listener.OnError += new ErrorMessageEventHandler(OnError);

            //Listen for notification that we are no longer connected.
            connection.Listener.OnDisconnected += new DisconnectedEventHandler(OnDisconnected);
        }

        public void start()
        {
            try
            {
                connection.Connect();
                Console.WriteLine(Credentials.Nick + " connected.");
            }
            catch(Exception e)
            {
                Console.WriteLine("Error during connection process.");
                Console.WriteLine(e);
            }
        }

        public void OnRegistered()
        {
            try
            {
                connection.Sender.Join(Credentials.Channel);
                Console.WriteLine("Joined " + Credentials.Channel);
                connection.Sender.PublicMessage(Credentials.Channel, "Hi Everyone!");
            }
            catch(Exception e)
            {
                Console.WriteLine("Error in OnRegistered(): " + e);
            }
        }

        public void OnJoin(UserInfo user, string channel)
        {
            if(user.Nick == Credentials.Nick)
            {
            }
            else
            {
                Console.WriteLine(user.Nick + " connected.");
                connection.Sender.PublicMessage(Credentials.Channel, "Welcome " + user.Nick + "!");
            }
        }

        public void OnPublic(UserInfo user, string channel, string message)
        {
            if(message.Contains("!"))
            {
                string[] messageCommands = message.Split(' ');
                string command = messageCommands[0].ToLower();

                if(commands.ContainsKey(command))
                {
                    connection.Sender.PublicMessage(Credentials.Channel, commands[command]);
                }
            }
        }

        public void OnPrivate(UserInfo user, string message)
        {
            //Quit IRC if someone sends us a 'die' message
            if(message == "die")
            {
                connection.Disconnect("Bye");
            }
        }

        public void OnError(ReplyCode code, string message)
        {
            //All anticipated errors have a numeric code. The custom Thresher ones start at 1000 and
            //can be found in the ErrorCodes class. All the others are determined by the IRC spec
            //and can be found in RFC2812Codes.
            Console.WriteLine("An error of type " + code + " due to " + message + " has occurred.");
        }

        public void OnDisconnected()
        {
            //If this disconnection was involutary then you should have received an error
            //message ( from OnError() ) before this was called.
            Console.WriteLine("Connection to the server has been closed.");
        }
    }
}


text:
ACCEPTED

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

#### Published in
Mycotaxon 83: 132 (2002)

#### Original name
Alternaria viburni E.G. Simmons, 2002

### Remarks
null

redpajama_set_name: RedPajamaGithub


text:
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "net/quic/quic_crypto_server_stream.h"

#include "base/base64.h"
#include "crypto/secure_hash.h"
#include "net/quic/crypto/crypto_protocol.h"
#include "net/quic/crypto/crypto_utils.h"
#include "net/quic/crypto/quic_crypto_server_config.h"
#include "net/quic/crypto/quic_random.h"
#include "net/quic/proto/cached_network_parameters.pb.h"
#include "net/quic/quic_config.h"
#include "net/quic/quic_flags.h"
#include "net/quic/quic_protocol.h"
#include "net/quic/quic_session.h"

using std::string;

namespace net {

void ServerHelloNotifier::OnAckNotification(
    int num_retransmitted_packets,
    int num_retransmitted_bytes,
    QuicTime::Delta delta_largest_observed) {
  server_stream_->OnServerHelloAcked();
}

QuicCryptoServerStream::QuicCryptoServerStream(
    const QuicCryptoServerConfig* crypto_config,
    QuicSession* session)
    : QuicCryptoStream(session),
      crypto_config_(crypto_config),
      validate_client_hello_cb_(nullptr),
      num_handshake_messages_(0),
      num_handshake_messages_with_server_nonces_(0),
      num_server_config_update_messages_sent_(0),
      use_stateless_rejects_if_peer_supported_(false),
      peer_supports_stateless_rejects_(false) {
  DCHECK_EQ(Perspective::IS_SERVER, session->connection()->perspective());
}

QuicCryptoServerStream::~QuicCryptoServerStream() {
  CancelOutstandingCallbacks();
}

void QuicCryptoServerStream::CancelOutstandingCallbacks() {
  // Detach from the validation callback.  Calling this multiple times is safe.
  if (validate_client_hello_cb_ != nullptr) {
    validate_client_hello_cb_->Cancel();
  }
}

void QuicCryptoServerStream::OnHandshakeMessage(
    const CryptoHandshakeMessage& message) {
  QuicCryptoStream::OnHandshakeMessage(message);
  ++num_handshake_messages_;

  // Do not process handshake messages after the handshake is confirmed.
  if (handshake_confirmed_) {
    CloseConnection(QUIC_CRYPTO_MESSAGE_AFTER_HANDSHAKE_COMPLETE);
    return;
  }

  if (message.tag() != kCHLO) {
    CloseConnection(QUIC_INVALID_CRYPTO_MESSAGE_TYPE);
    return;
  }

  if (validate_client_hello_cb_ != nullptr) {
    // Already processing some other handshake message.  The protocol
    // does not allow for clients to send multiple handshake messages
    // before the server has a chance to respond.
    CloseConnection(QUIC_CRYPTO_MESSAGE_WHILE_VALIDATING_CLIENT_HELLO);
    return;
  }

  validate_client_hello_cb_ = new ValidateCallback(this);
  return crypto_config_->ValidateClientHello(
      message, session()->connection()->peer_address().address(),
      session()->connection()->clock(), validate_client_hello_cb_);
}

void QuicCryptoServerStream::FinishProcessingHandshakeMessage(
    const CryptoHandshakeMessage& message,
    const ValidateClientHelloResultCallback::Result& result) {
  // Clear the callback that got us here.
  DCHECK(validate_client_hello_cb_ != nullptr);
  validate_client_hello_cb_ = nullptr;

  if (FLAGS_enable_quic_stateless_reject_support) {
    peer_supports_stateless_rejects_ = DoesPeerSupportStatelessRejects(message);
  }

  CryptoHandshakeMessage reply;
  string error_details;
  QuicErrorCode error =
      ProcessClientHello(message, result, &reply, &error_details);

  if (error != QUIC_NO_ERROR) {
    CloseConnectionWithDetails(error, error_details);
    return;
  }

  if (reply.tag() != kSHLO) {
    SendHandshakeMessage(reply);
    return;
  }

  // If we are returning a SHLO then we accepted the handshake.  Now
  // process the negotiated configuration options as part of the
  // session config.
  QuicConfig* config = session()->config();
  OverrideQuicConfigDefaults(config);
  error = config->ProcessPeerHello(message, CLIENT, &error_details);
  if (error != QUIC_NO_ERROR) {
    CloseConnectionWithDetails(error, error_details);
    return;
  }

  session()->OnConfigNegotiated();

  config->ToHandshakeMessage(&reply);

  // Receiving a full CHLO implies the client is prepared to decrypt with
  // the new server write key.  We can start to encrypt with the new server
  // write key.
  //
  // NOTE: the SHLO will be encrypted with the new server write key.
  session()->connection()->SetEncrypter(
      ENCRYPTION_INITIAL,
      crypto_negotiated_params_.initial_crypters.encrypter.release());
  session()->connection()->SetDefaultEncryptionLevel(ENCRYPTION_INITIAL);
  // Set the decrypter immediately so that we no longer accept unencrypted
  // packets.
  session()->connection()->SetDecrypter(
      ENCRYPTION_INITIAL,
      crypto_negotiated_params_.initial_crypters.decrypter.release());

  // We want to be notified when the SHLO is ACKed so that we can disable
  // HANDSHAKE_MODE in the sent packet manager.
  scoped_refptr<ServerHelloNotifier> server_hello_notifier(
      new ServerHelloNotifier(this));
  SendHandshakeMessage(reply, server_hello_notifier.get());

  session()->connection()->SetEncrypter(
      ENCRYPTION_FORWARD_SECURE,
      crypto_negotiated_params_.forward_secure_crypters.encrypter.release());
  session()->connection()->SetAlternativeDecrypter(
      ENCRYPTION_FORWARD_SECURE,
      crypto_negotiated_params_.forward_secure_crypters.decrypter.release(),
      false /* don't latch */);

  encryption_established_ = true;
  handshake_confirmed_ = true;
  session()->OnCryptoHandshakeEvent(QuicSession::HANDSHAKE_CONFIRMED);
}

void QuicCryptoServerStream::SendServerConfigUpdate(
    const CachedNetworkParameters* cached_network_params) {
  if (!handshake_confirmed_) {
    return;
  }

  CryptoHandshakeMessage server_config_update_message;
  if (!crypto_config_->BuildServerConfigUpdateMessage(
          previous_source_address_tokens_,
          session()->connection()->self_address().address(),
          session()->connection()->peer_address().address(),
          session()->connection()->clock(),
          session()->connection()->random_generator(),
          crypto_negotiated_params_, cached_network_params,
          &server_config_update_message)) {
    DVLOG(1) << "Server: Failed to build server config update (SCUP)!";
    return;
  }

  DVLOG(1) << "Server: Sending server config update: "
           << server_config_update_message.DebugString();
  const QuicData& data = server_config_update_message.GetSerialized();
  WriteOrBufferData(string(data.data(), data.length()), false, nullptr);

  ++num_server_config_update_messages_sent_;
}

void QuicCryptoServerStream::OnServerHelloAcked() {
  session()->connection()->OnHandshakeComplete();
}

void QuicCryptoServerStream::set_previous_cached_network_params(
    CachedNetworkParameters cached_network_params) {
  previous_cached_network_params_.reset(
      new CachedNetworkParameters(cached_network_params));
}

bool QuicCryptoServerStream::GetBase64SHA256ClientChannelID(
    string* output) const {
  if (!encryption_established_ ||
      crypto_negotiated_params_.channel_id.empty()) {
    return false;
  }

  const string& channel_id(crypto_negotiated_params_.channel_id);
  scoped_ptr<crypto::SecureHash> hash(
      crypto::SecureHash::Create(crypto::SecureHash::SHA256));
  hash->Update(channel_id.data(), channel_id.size());
  uint8 digest[32];
  hash->Finish(digest, sizeof(digest));

  base::Base64Encode(string(
      reinterpret_cast<const char*>(digest), sizeof(digest)), output);
  // Remove padding.
  size_t len = output->size();
  if (len >= 2) {
    if ((*output)[len - 1] == '=') {
      len--;
      if ((*output)[len - 1] == '=') {
        len--;
      }
      output->resize(len);
    }
  }
  return true;
}

QuicErrorCode QuicCryptoServerStream::ProcessClientHello(
    const CryptoHandshakeMessage& message,
    const ValidateClientHelloResultCallback::Result& result,
    CryptoHandshakeMessage* reply,
    string* error_details) {
  if (!result.info.server_nonce.empty()) {
    ++num_handshake_messages_with_server_nonces_;
  }
  // Store the bandwidth estimate from the client.
  if (result.cached_network_params.bandwidth_estimate_bytes_per_second() > 0) {
    previous_cached_network_params_.reset(
        new CachedNetworkParameters(result.cached_network_params));
  }
  previous_source_address_tokens_ = result.info.source_address_tokens;

  const bool use_stateless_rejects_in_crypto_config =
      FLAGS_enable_quic_stateless_reject_support &&
      use_stateless_rejects_if_peer_supported_ &&
      peer_supports_stateless_rejects_;
  QuicConnection* connection = session()->connection();
  const QuicConnectionId server_designated_connection_id =
      use_stateless_rejects_in_crypto_config
          ? GenerateConnectionIdForReject(connection->connection_id())
          : 0;
  return crypto_config_->ProcessClientHello(
      result, connection->connection_id(), connection->self_address().address(),
      connection->peer_address(), version(), connection->supported_versions(),
      use_stateless_rejects_in_crypto_config, server_designated_connection_id,
      connection->clock(), connection->random_generator(),
      &crypto_negotiated_params_, reply, error_details);
}

void QuicCryptoServerStream::OverrideQuicConfigDefaults(QuicConfig* config) {
}

const CachedNetworkParameters*
QuicCryptoServerStream::previous_cached_network_params() const {
  return previous_cached_network_params_.get();
}

QuicCryptoServerStream::ValidateCallback::ValidateCallback(
    QuicCryptoServerStream* parent) : parent_(parent) {
}

void QuicCryptoServerStream::ValidateCallback::Cancel() { parent_ = nullptr; }

void QuicCryptoServerStream::ValidateCallback::RunImpl(
    const CryptoHandshakeMessage& client_hello,
    const Result& result) {
  if (parent_ != nullptr) {
    parent_->FinishProcessingHandshakeMessage(client_hello, result);
  }
}

QuicConnectionId QuicCryptoServerStream::GenerateConnectionIdForReject(
    QuicConnectionId connection_id) {
  return session()->connection()->random_generator()->RandUint64();
}

// TODO(jokulik): Once stateless rejects support is inherent in the version
// number, this function will likely go away entirely.
// static
bool QuicCryptoServerStream::DoesPeerSupportStatelessRejects(
    const CryptoHandshakeMessage& message) {
  const QuicTag* received_tags;
  size_t received_tags_length;
  QuicErrorCode error =
      message.GetTaglist(kCOPT, &received_tags, &received_tags_length);
  if (error != QUIC_NO_ERROR) {
    return false;
  }
  for (size_t i = 0; i < received_tags_length; ++i) {
    if (received_tags[i] == kSREJ) {
      return true;
    }
  }
  return false;
}

}  // namespace net


text:
<?php

namespace Ogilo\Admin\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Ogilo\Admin\Models\Article;
use Ogilo\Admin\Models\ArticleCategory;
use Ogilo\Admin\Models\Page;

use Validator;
use Img;

/**
*
*/
class ArticleController extends Controller
{
	public function __construct()
	{
		$this->middleware('auth:admin');
	}

	public function getArticles()
	{
		$articles = Article::orderBy('id','DESC')->get();
		return view('admin::articles.index',compact('articles'));
	}

	public function getAdd()
	{
		return view('admin::articles.add');
	}

	public function postAdd(Request $request)
	{
		// $articles = $request->all();//implode(',', $request->input('articles'));
		// dd($articles);
		$validator = Validator::make($request->all(),[
				'title'		=> 'required|unique:articles,title,null,id,article_category_id,'.$request->input('category'),
				'content'	=> 'required',
				'category'	=> 'integer',
				'picture'	=> 'image',
			]);

		if ($validator->fails()) {
			return redirect()
					->back()
					->withInput()
					->withErrors($validator)
					->with('global-warning','Some fields failed validation, please check and try again');
		}

		$article = new Article;

		if ($request->hasFile('picture')) {
			$picture = $request->file('picture');

			$image = Img::make($picture->getRealPath());

			$dir = public_path('images/articles/');
			if (!file_exists($dir)) {
				mkdir($dir,0755,true);
			}

			$filename = time().'.jpg';
			$image->save($dir.$filename);
			$image->destroy();

			if (!file_exists($dir.'160x160/')) {
				mkdir($dir.'160x160/',0755,true);
			}

			$square = Img::make($picture->getRealPath());
			$square->fit(160,160);
			$square->save($dir.'160x160/'.$filename);
			$square->destroy();

			if (!file_exists($dir.'480x240/')) {
				mkdir($dir.'480x240/',0755,true);
			}

			$rectangle 	= Img::make($picture->getRealPath());
			$rectangle->fit(480,240);
			$rectangle->save($dir.'480x240/'.$filename);
			$rectangle->destroy();

			$article->picture = $filename;

		}

		$article->name 		= str_slug_unique('articles','name',$request->input('title'));
		$article->title 	= $request->input('title');
		$article->icon 		= $request->input('icon');
		$article->content 	= $request->input('content');

		$category 	= ArticleCategory::find( $request->input('category') );

		$category->articles()->save($article);

		return redirect()
				->route('admin-articles')
				->with('global-success','Article added');
	}

	public function getEdit($id)
	{
		$article = Article::findOrFail($id);
		return view('admin::articles.edit',compact('article'));
	}

	public function postEdit(Request $request)
	{
		// dd($request->all());

		$id = $request->input('id');

		$validator = Validator::make($request->all(),[
				'id'		=> 'required|integer',
				'title'		=> 'required|unique:articles,title,'.$id.',id,article_category_id,'.$request->input('category'),
				'content'	=> 'required',
				'category'	=> 'integer',
				'picture'	=> 'image',
			]);

		if ($validator->fails()) {
			return redirect()
					->back()
					->withInput()
					->withErrors($validator)
					->with('global-warning','Some fields failed validation, please check and try again');
		}

		$article = Article::find($id);

		if ($request->hasFile('picture')) {

			$picture = $request->file('picture');

			$image = Img::make($picture->getRealPath());

			$dir = public_path('images/articles/');
			if (!file_exists($dir)) {
				mkdir($dir,0755,true);
			}

			$filename = $article->picture ? $article->picture : time().'.jpg';
			$image->save($dir.$filename);
			$image->destroy();

			if (!file_exists($dir.'160x160/')) {
				mkdir($dir.'160x160/',0755,true);
			}

			$square = Img::make($picture->getRealPath());
			$square->fit(160,160);
			$square->save($dir.'160x160/'.$filename);
			$square->destroy();

			if (!file_exists($dir.'480x240/')) {
				mkdir($dir.'480x240/',0755,true);
			}

			$rectangle 	= Img::make($picture->getRealPath());
			$rectangle->fit(480,240);
			$rectangle->save($dir.'480x240/'.$filename);
			$rectangle->destroy();

			$article->picture = $filename;

		}

		$article->name 					= str_slug_unique('articles','name',$request->input('title'),$request->input('id'));
		$article->title 				= $request->input('title');
		$article->icon 					= $request->input('icon');
		$article->content 				= $request->input('content');
		$article->article_category_id 	= $request->input('category');

		$article->save();

		return redirect()
				->route('admin-articles')
				->with('global-success','Article '.$article->name.' Updated');
	}

	public function postPublish(Request $request)
	{
		// dd($request->all());

		$article = Article::findOrFail($request->input('id'));
		$article->published = $article->published ? 0 : 1 ;
		$name = $article->title;
		$article->save();

		return response(["message"=>"Article $name ".($article->published ? "Published" : "Un published")." successfuly"])
				->header('Content-Type','application/json');

		// return redirect()
		// 		->route('admin-articles')
		// 		->with('global-success','Article '.$name.' Deleted');
	}

	public function postDelete(Request $request)
	{
		// dd($request->all());

		$article = Article::findOrFail($request->input('id'));
		$name = $article->name;
		$article->delete();

		return response(["message"=>"Article $name Deleted"])
				->header('Content-Type','application/json');

		// return redirect()
		// 		->route('admin-articles')
		// 		->with('global-success','Article '.$name.' Deleted');
	}

}


text:
import { getFractionDigits } from './formatters';

describe('Formatters', () => {
	describe('getFractionDigits', () => {
		it('Should handle decimal', () => {
			expect(getFractionDigits(2.789)).toEqual(3);
		});
		it('Should handle integer', () => {
			expect(getFractionDigits(2)).toEqual(0);
		});
		it('Should handle exponential notation', () => {
			expect(getFractionDigits(2e-18)).toEqual(18);
		});
	});
});


text:
<!DOCTYPE html>

        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>Nestable component - UIkit documentation</title>
        <link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon">
        <link rel="apple-touch-icon-precomposed" href="images/apple-touch-icon.png">
        <link id="data-uikit-theme" rel="stylesheet" href="css/uikit.docs.min.css">
        <link rel="stylesheet" href="css/docs.css">
        <link rel="stylesheet" href="../vendor/highlight/highlight.css">

Get Started

Core

Components

Customizer

Showcase

Tutorials

Layout

Dynamic Grid

Parallax Grid

Navigations

Dotnav

Slidenav

Dynamic Pagination

Common

Form advanced

Form file

Form password

Form select

Placeholder

Progress

JavaScript

Lightbox

Autocomplete

Datepicker

HTML editor

Slider

Slideset

Slideshow

Parallax

Accordion

Notify

Search

Nestable

Sortable

Sticky

Timepicker

Tooltip

Upload

Nestable

Create nestable lists that can be sorted by drag and drop.

The Nestable allows you to sort items through drag and drop. This is great, if you want to organize different categories or menu items in administration areas, for example.

Usage

A nestable list consists of the list itself, its items and the nestable panel.

                                            Class/Data attribute
                                            Description

                                            .uk-nestable
                                            Add this class to a <ul> element to define the component.

                                            .uk-nestable-item
                                            Add this class to each <li> element the list item.

                                            .uk-nestable-panel
                                            Add this class to a <div> element inside the <li> element to style the item.

NOTE To enable the necessary JavaScript, just add the data-uk-nestable attribute.

Example

                                        Item 1

                                        Item 2

                                        Item 3

                                        Item 4

Markup

<ul class="uk-nestable" data-uk-nestable>
    <li class="uk-nestable-item">
        <div class="uk-nestable-panel"> ... </div>
    </li>
</ul>

Nestable handle

By default, the entire nestable element can be used for drag and drop sorting. To create a handle which will be used instead, just add the {handleClass:'uk-nestable-handle'} option to the data attribute and add the handle class to the element that you want to use as a handle.

Example

                                    Item 1

                                    Item 2

                                    Item 3

                                    Item 4

NOTE In this example we used the .uk-icon-bars class from the Icon component to style the handle.

Markup

<ul class="uk-nestable" data-uk-nestable="{handleClass:'uk-nestable-handle'}">
    <li class="uk-nestable-item">
        <div class="uk-nestable-panel">
            <div class="uk-nestable-handle"></div>
            ...
        </div>
    </li>
</ul>

Nestable toggle

By default, the entire nestable element can be used for drag and drop sorting. To create a handle which will be used instead, just add the .uk-nestable-toggle class and the data-nestable-action="toggle" attribute to a <div> element inside the nestable panel.

Example

                                    Item 1

                                    Item 2

                                    Item 3

                                    Item 4

Markup

<ul class="uk-nestable" data-uk-nestable">
    <li class="uk-nestable-item">
        <div class="uk-nestable-panel">
            <div class="uk-nestable-toggle" data-nestable-action="toggle"></div>
            ...
        </div>
    </li>
</ul>

Multiple lists

To be able to sort items from one list to another, you can group them by adding the data-uk-nestable="{group:'GROUP-NAME'}" attribute to each list.

Example

First list

                                            Item 1

                                            Item 2

                                            Item 3

                                            Item 4

Second list

                                            Item 1

                                            Item 2

                                            Item 3

                                            Item 4

Markup

<ul class="uk-nestable" data-uk-nestable="{group:'my-group'}">...</ul>
<ul class="uk-nestable" data-uk-nestable="{group:'my-group'}">...</ul>

Disable nesting

To disable nesting of list items, just add the data-uk-nestable="{maxDepth:1}" attribute. You can also use this data attribute to determine to what depth nesting is possible.

                                    Item 1

                                    Item 2

                                    Item 3

                                    Item 4

Markup

<ul class="uk-nestable" data-uk-nestable="{maxDepth:1}">...</ul>

JavaScript options

This is an example of how to set options via attribute:

data-uk-nestable="{maxDepth:0, group:'widgets'}"

                                            Option
                                            Possible value
                                            Default
                                            Description

                                            group
                                            string
                                            false
                                            List group

                                            maxDepth
                                            integer
                                            10
                                            Max nesting level

                                            threshold
                                            integer
                                            20
                                            Pixel threshold before starting to drag

                                            listNodeName
                                            string
                                            ul
                                            List node name

                                            itemNodeName
                                            string
                                            li
                                            Item node name

                                            listBaseClass
                                            string
                                            uk-nestable
                                            List base class

                                            listClass
                                            string
                                            uk-nestable-list
                                            List class

                                            listitemClass
                                            string
                                            uk-nestable-list-item
                                            List item class

                                            itemClass
                                            string
                                            uk-nestable-item
                                            Item class

                                            dragClass
                                            string
                                            uk-nestable-list-dragged
                                            Class added to dragged list

                                            movingClass
                                            string
                                            uk-nestable-moving
                                            Class added to <html> when moving

                                            handleClass
                                            string
                                            uk-nestable-handle
                                            Class for drag handle

                                            collapsedClass
                                            string
                                            uk-nestable-collapsed
                                            Class for collapsed items

                                            placeClass
                                            string
                                            uk-nestable-placeholder
                                            Class for placeholder of currently dragged element

                                            noDragClass
                                            string
                                            uk-nestable-nodrag
                                            Elements with this class will not trigger dragging. Useful when having the complete item draggable and not just the handle.

                                            noChildrenClass
                                            string
                                            uk-nestable-nochildren
                                            Elements with this class will not allow children. Useful for bottom-level items.

                                            emptyClass
                                            string
                                            uk-nestable-empty
                                            Class for empty lists

Init element manually

var nestable = UIkit.nestable(element, { /* options */ });

Events

                                            Name
                                            Parameter
                                            Description

                                            start.uk.nestable
                                            event, nestable object
                                            On nestable drag start

                                            move.uk.nestable
                                            event, nestable object
                                            On nestable move item

                                            stop.uk.nestable
                                            event, nestable object
                                            On nestable stop dragging

                                            change.uk.nestable
                                            event, sortable object, dragged element, action
                                            On nestable change item

GitHub

Issues

Changelog

Twitter

Made by YOOtheme with love and caffeine.
Licensed under MIT license.

Documentation

Get started

How to customize

Layout examples

Core

Components

Project structure

Less & Sass files

Create a theme

Create a style

Customizer.json

JavaScript

Custom prefix

Core

 Defaults

Base

Print

 Layout

Grid

Panel

Block

Article

Comment

Utility

Flex

Cover

 Navigations

Nav

Navbar

Subnav

Breadcrumb

Pagination

Tab

Thumbnav

 Elements

List

Description list

Table

Form

 Common

Button

Icon

Close

Badge

Alert

Thumbnail

Overlay

Text

Column

Animation

Contrast

 JavaScript

Dropdown

Modal

Off-canvas

Switcher

Toggle

Scrollspy

Smooth scroll

Components

 Layout

Dynamic Grid

Parallax Grid

 Navigations

Dotnav

Slidenav

Dynamic Pagination

 Common

Form advanced

Form file

Form password

Form select

Placeholder

Progress

 JavaScript

Lightbox

Autocomplete

Datepicker

HTML editor

Slider

Slideset

Slideshow

Parallax

Accordion

Notify

Search

Nestable

Sortable

Sticky

Timepicker

Tooltip

Upload

Showcase

Tutorials


text:
.class Lcom/android/server/wm/DisplayMagnifier$MyHandler;
.super Landroid/os/Handler;
.source "DisplayMagnifier.java"

# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
    value = Lcom/android/server/wm/DisplayMagnifier;
.end annotation

.annotation system Ldalvik/annotation/InnerClass;
    accessFlags = 0x2
    name = "MyHandler"
.end annotation

# static fields
.field public static final MESSAGE_NOTIFY_MAGNIFIED_BOUNDS_CHANGED:I = 0x1

.field public static final MESSAGE_NOTIFY_RECTANGLE_ON_SCREEN_REQUESTED:I = 0x2

.field public static final MESSAGE_NOTIFY_ROTATION_CHANGED:I = 0x4

.field public static final MESSAGE_NOTIFY_USER_CONTEXT_CHANGED:I = 0x3

.field public static final MESSAGE_SHOW_MAGNIFIED_REGION_BOUNDS_IF_NEEDED:I = 0x5

# instance fields
.field final synthetic this$0:Lcom/android/server/wm/DisplayMagnifier;

# direct methods
.method public constructor <init>(Lcom/android/server/wm/DisplayMagnifier;Landroid/os/Looper;)V
    .locals 0
    .parameter
    .parameter "looper"

    .prologue
    .line 699
    iput-object p1, p0, Lcom/android/server/wm/DisplayMagnifier$MyHandler;->this$0:Lcom/android/server/wm/DisplayMagnifier;

    .line 700
    invoke-direct {p0, p2}, Landroid/os/Handler;-><init>(Landroid/os/Looper;)V

    .line 701
    return-void
.end method

# virtual methods
.method public handleMessage(Landroid/os/Message;)V
    .locals 11
    .parameter "message"

    .prologue
    .line 705
    iget v7, p1, Landroid/os/Message;->what:I

    packed-switch v7, :pswitch_data_0

    .line 754
    :goto_0
    return-void

    .line 707
    :pswitch_0
    iget-object v2, p1, Landroid/os/Message;->obj:Ljava/lang/Object;

    check-cast v2, Landroid/graphics/Region;

    .line 709
    .local v2, bounds:Landroid/graphics/Region;
    :try_start_0
    iget-object v7, p0, Lcom/android/server/wm/DisplayMagnifier$MyHandler;->this$0:Lcom/android/server/wm/DisplayMagnifier;

    #getter for: Lcom/android/server/wm/DisplayMagnifier;->mCallbacks:Landroid/view/IMagnificationCallbacks;
    invoke-static {v7}, Lcom/android/server/wm/DisplayMagnifier;->access$1300(Lcom/android/server/wm/DisplayMagnifier;)Landroid/view/IMagnificationCallbacks;

    move-result-object v7

    invoke-interface {v7, v2}, Landroid/view/IMagnificationCallbacks;->onMagnifedBoundsChanged(Landroid/graphics/Region;)V
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0
    .catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_0} :catch_0

    .line 713
    invoke-virtual {v2}, Landroid/graphics/Region;->recycle()V

    goto :goto_0

    .line 710
    :catch_0
    move-exception v7

    .line 713
    invoke-virtual {v2}, Landroid/graphics/Region;->recycle()V

    goto :goto_0

    :catchall_0
    move-exception v7

    invoke-virtual {v2}, Landroid/graphics/Region;->recycle()V

    throw v7

    .line 717
    .end local v2           #bounds:Landroid/graphics/Region;
    :pswitch_1
    iget-object v0, p1, Landroid/os/Message;->obj:Ljava/lang/Object;

    check-cast v0, Lcom/android/internal/os/SomeArgs;

    .line 718
    .local v0, args:Lcom/android/internal/os/SomeArgs;
    iget v3, v0, Lcom/android/internal/os/SomeArgs;->argi1:I

    .line 719
    .local v3, left:I
    iget v6, v0, Lcom/android/internal/os/SomeArgs;->argi2:I

    .line 720
    .local v6, top:I
    iget v4, v0, Lcom/android/internal/os/SomeArgs;->argi3:I

    .line 721
    .local v4, right:I
    iget v1, v0, Lcom/android/internal/os/SomeArgs;->argi4:I

    .line 723
    .local v1, bottom:I
    :try_start_1
    iget-object v7, p0, Lcom/android/server/wm/DisplayMagnifier$MyHandler;->this$0:Lcom/android/server/wm/DisplayMagnifier;

    #getter for: Lcom/android/server/wm/DisplayMagnifier;->mCallbacks:Landroid/view/IMagnificationCallbacks;
    invoke-static {v7}, Lcom/android/server/wm/DisplayMagnifier;->access$1300(Lcom/android/server/wm/DisplayMagnifier;)Landroid/view/IMagnificationCallbacks;

    move-result-object v7

    invoke-interface {v7, v3, v6, v4, v1}, Landroid/view/IMagnificationCallbacks;->onRectangleOnScreenRequested(IIII)V
    :try_end_1
    .catchall {:try_start_1 .. :try_end_1} :catchall_1
    .catch Landroid/os/RemoteException; {:try_start_1 .. :try_end_1} :catch_1

    .line 727
    invoke-virtual {v0}, Lcom/android/internal/os/SomeArgs;->recycle()V

    goto :goto_0

    .line 724
    :catch_1
    move-exception v7

    .line 727
    invoke-virtual {v0}, Lcom/android/internal/os/SomeArgs;->recycle()V

    goto :goto_0

    :catchall_1
    move-exception v7

    invoke-virtual {v0}, Lcom/android/internal/os/SomeArgs;->recycle()V

    throw v7

    .line 732
    .end local v0           #args:Lcom/android/internal/os/SomeArgs;
    .end local v1           #bottom:I
    .end local v3           #left:I
    .end local v4           #right:I
    .end local v6           #top:I
    :pswitch_2
    :try_start_2
    iget-object v7, p0, Lcom/android/server/wm/DisplayMagnifier$MyHandler;->this$0:Lcom/android/server/wm/DisplayMagnifier;

    #getter for: Lcom/android/server/wm/DisplayMagnifier;->mCallbacks:Landroid/view/IMagnificationCallbacks;
    invoke-static {v7}, Lcom/android/server/wm/DisplayMagnifier;->access$1300(Lcom/android/server/wm/DisplayMagnifier;)Landroid/view/IMagnificationCallbacks;

    move-result-object v7

    invoke-interface {v7}, Landroid/view/IMagnificationCallbacks;->onUserContextChanged()V
    :try_end_2
    .catch Landroid/os/RemoteException; {:try_start_2 .. :try_end_2} :catch_2

    goto :goto_0

    .line 733
    :catch_2
    move-exception v7

    goto :goto_0

    .line 738
    :pswitch_3
    iget v5, p1, Landroid/os/Message;->arg1:I

    .line 740
    .local v5, rotation:I
    :try_start_3
    iget-object v7, p0, Lcom/android/server/wm/DisplayMagnifier$MyHandler;->this$0:Lcom/android/server/wm/DisplayMagnifier;

    #getter for: Lcom/android/server/wm/DisplayMagnifier;->mCallbacks:Landroid/view/IMagnificationCallbacks;
    invoke-static {v7}, Lcom/android/server/wm/DisplayMagnifier;->access$1300(Lcom/android/server/wm/DisplayMagnifier;)Landroid/view/IMagnificationCallbacks;

    move-result-object v7

    invoke-interface {v7, v5}, Landroid/view/IMagnificationCallbacks;->onRotationChanged(I)V
    :try_end_3
    .catch Landroid/os/RemoteException; {:try_start_3 .. :try_end_3} :catch_3

    goto :goto_0

    .line 741
    :catch_3
    move-exception v7

    goto :goto_0

    .line 746
    .end local v5           #rotation:I
    :pswitch_4
    iget-object v7, p0, Lcom/android/server/wm/DisplayMagnifier$MyHandler;->this$0:Lcom/android/server/wm/DisplayMagnifier;

    #getter for: Lcom/android/server/wm/DisplayMagnifier;->mWindowManagerService:Lcom/android/server/wm/WindowManagerService;
    invoke-static {v7}, Lcom/android/server/wm/DisplayMagnifier;->access$500(Lcom/android/server/wm/DisplayMagnifier;)Lcom/android/server/wm/WindowManagerService;

    move-result-object v7

    iget-object v8, v7, Lcom/android/server/wm/WindowManagerService;->mWindowMap:Ljava/util/HashMap;

    monitor-enter v8

    .line 747
    :try_start_4
    iget-object v7, p0, Lcom/android/server/wm/DisplayMagnifier$MyHandler;->this$0:Lcom/android/server/wm/DisplayMagnifier;

    #getter for: Lcom/android/server/wm/DisplayMagnifier;->mMagnifedViewport:Lcom/android/server/wm/DisplayMagnifier$MagnifiedViewport;
    invoke-static {v7}, Lcom/android/server/wm/DisplayMagnifier;->access$1400(Lcom/android/server/wm/DisplayMagnifier;)Lcom/android/server/wm/DisplayMagnifier$MagnifiedViewport;

    move-result-object v7

    invoke-virtual {v7}, Lcom/android/server/wm/DisplayMagnifier$MagnifiedViewport;->isMagnifyingLocked()Z

    move-result v7

    if-eqz v7, :cond_0

    .line 748
    iget-object v7, p0, Lcom/android/server/wm/DisplayMagnifier$MyHandler;->this$0:Lcom/android/server/wm/DisplayMagnifier;

    #getter for: Lcom/android/server/wm/DisplayMagnifier;->mMagnifedViewport:Lcom/android/server/wm/DisplayMagnifier$MagnifiedViewport;
    invoke-static {v7}, Lcom/android/server/wm/DisplayMagnifier;->access$1400(Lcom/android/server/wm/DisplayMagnifier;)Lcom/android/server/wm/DisplayMagnifier$MagnifiedViewport;

    move-result-object v7

    const/4 v9, 0x1

    const/4 v10, 0x1

    invoke-virtual {v7, v9, v10}, Lcom/android/server/wm/DisplayMagnifier$MagnifiedViewport;->setMagnifiedRegionBorderShownLocked(ZZ)V

    .line 749
    iget-object v7, p0, Lcom/android/server/wm/DisplayMagnifier$MyHandler;->this$0:Lcom/android/server/wm/DisplayMagnifier;

    #getter for: Lcom/android/server/wm/DisplayMagnifier;->mWindowManagerService:Lcom/android/server/wm/WindowManagerService;
    invoke-static {v7}, Lcom/android/server/wm/DisplayMagnifier;->access$500(Lcom/android/server/wm/DisplayMagnifier;)Lcom/android/server/wm/WindowManagerService;

    move-result-object v7

    invoke-virtual {v7}, Lcom/android/server/wm/WindowManagerService;->scheduleAnimationLocked()V

    .line 751
    :cond_0
    monitor-exit v8

    goto/16 :goto_0

    :catchall_2
    move-exception v7

    monitor-exit v8
    :try_end_4
    .catchall {:try_start_4 .. :try_end_4} :catchall_2

    throw v7

    .line 705
    nop

    :pswitch_data_0
    .packed-switch 0x1
        :pswitch_0
        :pswitch_1
        :pswitch_2
        :pswitch_3
        :pswitch_4
    .end packed-switch
.end method


text:
import java.io.*;

// A binary stream is a series of data type values
// To read and write to them you use different methods
// based on the type of data that you are using

public class Lesson33{

	public static void main(String[] args){

		// Create an array of type Customer

		Customer[] customers = getCustomers();

		// A DataOutputStream allows you to print
		// primitive data types to a file

		DataOutputStream custOutput = createFile("/Users/Tim/Desktop/customers.dat");

		// Enhanced for loop for arrays
		// Cycles through all of the people in the customers array

		for(Customer person : customers){

			createCustomers(person, custOutput);

		}

		// Closes the connection to the DataOutputStream

		try {
			custOutput.close();
		} catch (IOException e) {

			System.out.println("An I/O Error Occurred");

			// Closes the program

			System.exit(0);
		}

		getFileInfo();

	}

	// class that defines all the fields for my customers

	private static class Customer{

		public String custName;
		public int custAge;
		public double custDebt;
		public boolean oweMoney;
		public char custSex;

		// constructor that's called when a customer is made

		public Customer(String custName, int custAge, double custDebt, boolean oweMoney, char custSex){

			this.custName = custName; // String
			this.custAge = custAge; // Integer
			this.custDebt = custDebt; // Double
			this.oweMoney = oweMoney; // Boolean
			this.custSex = custSex; // Character

		}

	}

	// Creates an array of Customer Objects

	private static Customer[] getCustomers(){

		Customer[] customers = new Customer[5];

		customers[0] = new Customer("John Smith", 21, 12.25, true, 'M');
		customers[1] = new Customer("Sally Smith", 30, 2.25, true, 'F');
		customers[2] = new Customer("Paul Ryan", 21, 0, false, 'M');
		customers[3] = new Customer("Mark Jacobs", 21, 3.25, true, 'M');
		customers[4] = new Customer("Steve Nash", 21, 5.25, true, 'M');

		return customers;

	}

	// Create the file and the DataOutputStream that will write to the file

	private static DataOutputStream createFile(String fileName){

		try{

			// Creates a File object that allows you to work with files
			// on the hard drive. There is no difference between File
			// for character or binary stream writing, or reading

			File listOfNames = new File(fileName);

			// FileOutputStream is used to write streams of data to a file
			// You define whether a new file is created versus appended
			// to based on if you add a boolean to the FileOutputStream
			// FileOutputStream(file, true) : Appends to the file
			// FileOutputStream(file, false) : Creates a new file

			// BufferedOutputStream gathers all the data and then writes
			// it all at one time (Speeds up the Program)
			// DataOutputStream is used to write primitive data to the file

			DataOutputStream infoToWrite = new DataOutputStream(
			new BufferedOutputStream(
					new FileOutputStream(listOfNames)));
			return infoToWrite;
		}

		// You have to catch this when you call FileWriter

		catch(IOException e){

			System.out.println("An I/O Error Occurred");

			// Closes the program

			System.exit(0);

		}
		return null;

	}

	// Create a string with the customer info and write it to the file

	private static void createCustomers(Customer customer, DataOutputStream custOutput){

		try{
		// Write primitive data to the file

		// Writes a String in UTF format
		custOutput.writeUTF(customer.custName);

		// Writes an Integer
		custOutput.writeInt(customer.custAge);

		// Writes a Double
		custOutput.writeDouble(customer.custDebt);

		// Writes a Boolean
		custOutput.writeBoolean(customer.oweMoney);

		// Writes a Character
		custOutput.writeChar(customer.custSex);

		// You also have writeByte, writeFloat, writeLong
		// and writeShort
		}

		catch(IOException e){

			System.out.println("An I/O Error Occurred");
			System.exit(0);

		}

	}

	// Read info from the file and write it to the screen

	private static void getFileInfo(){

		System.out.println("Info Written to File\n");

		// Open a new connection to the file

		File listOfNames = new File("/Users/Tim/Desktop/customers.dat");

		boolean eof = false;

		try {

			// A DataInputStream object has the methods for reading the data
			// The BufferedInputStream gathers the data in blocks
			// FileInputStream gets data from the file

			DataInputStream getInfo = new DataInputStream(
					new BufferedInputStream(
					new FileInputStream(listOfNames)));

			// Using a while loop that pulls data until EOFException is thrown

			while (!eof){

				// You have to read data in the exact order it was put in the file

				String custName = getInfo.readUTF();
				int custAge = getInfo.readInt();
				double custDebt = getInfo.readDouble();
				boolean oweMoney = getInfo.readBoolean();
				char custSex = getInfo.readChar();

				System.out.println(custName);
				System.out.println(custAge);
				System.out.println(custDebt);
				System.out.println(oweMoney);
				System.out.println(custSex + "\n");

			}

		} // END OF TRY

		catch (EOFException e) {

			eof = true;
		}

		// Can be thrown by FileInputStream

		catch (FileNotFoundException e) {

			System.out.println("Couldn't Find the File");
			System.exit(0);
		}

		catch(IOException e){

			System.out.println("An I/O Error Occurred");
			System.exit(0);

		}

	}

}


text:
<?php
/**
 * General Settings Tab.
 *
 * @since 6.0.0
 *
 * @package MonsterInsights
 * @subpackage Settings
 * @author  Chris Christoff
 */

// Exit if accessed directly
if ( ! defined( 'ABSPATH' ) ) {
    exit;
}

/**
 * Callback for displaying the UI for general settings tab.
 *
 * @since 6.0.0
 * @access public
 *
 * @return void
 */
function monsterinsights_settings_tracking_tab() {
    // Get settings
    ?>

            <?php
            $i      = 0;
            $class  = '';
            $is_pro = monsterinsights_is_pro_version();
            foreach ( (array) monsterinsights_get_settings_tabs() as $id => $item ) {
                if ( isset( $item['comingsoon'] ) && $item['comingsoon'] || empty( $item['title'] ) ) {
                    continue;
                }
                $class = ( 0 === $i ? 'monsterinsights-active' : '' );
                ?>
                <a class="monsterinsights-sub-nav-item monsterinsights-nav-item monsterinsights-active monstericon-<?php echo esc_attr( $id ); ?> <?php echo esc_attr( $class ); ?>" href="#monsterinsights-main-tab-tracking?monsterinsights-sub-tab-<?php echo esc_attr( $id ); ?>" title="<?php echo esc_attr( $item['title'] ); ?>">
                    <?php echo esc_html( $item['title'] ); ?>

                <?php
                $i++;
            }
            ?>

        <?php
        // Output any notices now
        /**
         * Developer Alert:
         *
         * Per the README, this is considered an internal hook and should
         * not be used by other developers. This hook's behavior may be modified
         * or the hook may be removed at any time, without warning.
         */
        do_action( 'monsterinsights_settings_tracking_tab_notice' );
        ?>

            <?php
            $i = 0;
            foreach ( (array) monsterinsights_get_settings_tabs() as $id => $item ) {
                if ( isset( $item['comingsoon'] ) && $item['comingsoon'] || empty( $item['title'] ) ) {
                    continue;
                }
                $class = ( 0 === $i ? ' monsterinsights-active' : '' );
                ?>
                 <div id="monsterinsights-sub-tab-<?php echo esc_attr( $id ); ?>" class="monsterinsights-sub-nav-tab monsterinsights-nav-tab<?php echo esc_attr( $class ); ?>">
                    <?php if ( $item['level'] === 'lite' ||  $is_pro ) { ?>
                    <?php echo '
' . esc_html( $item['title'] ) . '
'; ?>
                    <?php } ?>

                        <?php
                        // Output any notices now
                        /**
                         * Developer Alert:
                         *
                         * Per the README, this is considered an internal hook and should
                         * not be used by other developers. This hook's behavior may be modified
                         * or the hook may be removed at any time, without warning.
                         */
                        do_action( 'monsterinsights_tracking_' . $id . '_tab_notice' );
                        ?>

                    <?php $class = ( $item['level'] !== 'lite' && ! $is_pro ) ? 'monsterinsights-no-settings-shown' : ''; ?>
                    <form id="monsterinsights-tracking-<?php echo esc_attr( $id );?>-tab" class="<?php echo $class; ?>" method="post">

                                <?php
                                //do_action( 'monsterinsights_settings_tab_top_' . $id  );
                                echo monsterinsights_get_section_settings( $id, 'tracking' );
                                //do_action( 'monsterinsights_settings_tab_bottom_' . $id  );
                                ?>

                        <?php echo monsterinsights_render_submit_field( $id, 'tracking' ); ?>
                        <?php if ( $item['level'] === 'lite' && !$is_pro ) { ?>

<?php esc_html_e( "Want even more fine tuned control over your website analytics?", 'google-analytics-for-wordpress' ); ?>

<?php esc_html_e( "By upgrading to MonsterInsights Pro, you get access to numerous addons and tools that help you better understand what people are doing on your website, so you can keep doing more of what's working. Some of the features include: Ecommerce tracking, Author tracking, Post Type tracking, Ads tracking, Google AMP tracking, Performance optimization, and so much more!", 'google-analytics-for-wordpress' ); ?>

<?php esc_html_e( "Click here to Upgrade", 'google-analytics-for-wordpress' ); ?>

                        <?php } ?>
                    </form>

                <?php
                $i++;
            }
            ?>

    <?php
}
add_action( 'monsterinsights_tab_settings_tracking', 'monsterinsights_settings_tracking_tab' );


text:
type $npm$del$Patterns = string[] | string;

type $npm$del$Options = {
  force?: boolean,
  dryRun?: boolean,
  concurrency?: number,

  // remaining options are passed through to node-glob:
  cwd?: string,
  root?: string,
  dot?: boolean,
  nomount?: boolean,
  mark?: boolean,
  nosort?: boolean,
  stat?: boolean,
  silent?: boolean,
  strict?: boolean,
  cache?: Object,
  statCache?: Object,
  symlinks?: Object,
  realpathCache?: Object,
  nounique?: boolean,
  nonull?: boolean,
  debug?: boolean,
  nobrace?: boolean,
  noglobstar?: boolean,
  noext?: boolean,
  nocase?: boolean,
  matchBase?: boolean,
  nodir?: boolean,
  ignore?: string | string[],
  follow?: boolean,
  realpath?: boolean,
  absolute?: boolean
};

declare module "del" {
  declare class Del {
    (
      patterns: $npm$del$Patterns,
      options?: $npm$del$Options
    ): Promise<string[]>,
    sync(patterns: $npm$del$Patterns, options?: $npm$del$Options): string[]
  }

  declare module.exports: Del;
}


text:
/* ** GENEREATED FILE - DO NOT MODIFY ** */
package com.wilutions.mslib.outlook;
import com.wilutions.com.*;

/**
 * OlkTextBoxEvents.
 *
 */
@CoInterface(guid="{000672E6-0000-0000-C000-000000000046}")
public interface OlkTextBoxEvents extends IDispatch {
  static boolean __typelib__loaded = __TypeLib.load();
  @DeclDISPID(-600)  public void onClick() throws ComException;
  @DeclDISPID(-601)  public void onDoubleClick() throws ComException;
  @DeclDISPID(-605)  public void onMouseDown(final OlMouseButton Button, final OlShiftState Shift, final com.wilutions.mslib.stdole.OLE_XPOS_CONTAINER X, final com.wilutions.mslib.stdole.OLE_YPOS_CONTAINER Y) throws ComException;
  @DeclDISPID(-606)  public void onMouseMove(final OlMouseButton Button, final OlShiftState Shift, final com.wilutions.mslib.stdole.OLE_XPOS_CONTAINER X, final com.wilutions.mslib.stdole.OLE_YPOS_CONTAINER Y) throws ComException;
  @DeclDISPID(-607)  public void onMouseUp(final OlMouseButton Button, final OlShiftState Shift, final com.wilutions.mslib.stdole.OLE_XPOS_CONTAINER X, final com.wilutions.mslib.stdole.OLE_YPOS_CONTAINER Y) throws ComException;
  @DeclDISPID(-2147384830)  public void onEnter() throws ComException;
  @DeclDISPID(-2147384829)  public void onExit(final Boolean Cancel) throws ComException;
  @DeclDISPID(-602)  public void onKeyDown(final Integer KeyCode, final OlShiftState Shift) throws ComException;
  @DeclDISPID(-603)  public void onKeyPress(final Integer KeyAscii) throws ComException;
  @DeclDISPID(-604)  public void onKeyUp(final Integer KeyCode, final OlShiftState Shift) throws ComException;
  @DeclDISPID(2)  public void onChange() throws ComException;
  @DeclDISPID(-2147384832)  public void onAfterUpdate() throws ComException;
  @DeclDISPID(-2147384831)  public void onBeforeUpdate(final Boolean Cancel) throws ComException;
}


text:
'
' +---------------------------------------------------------------------+
' | AjGenesis - Code and Artifacts Generator in .NET                    |
' +---------------------------------------------------------------------+
' | Copyright (c) 2003-2011 Angel J. Lopez. All rights reserved.        |
' | http://www.ajlopez.com                                              |
' | http://www.ajlopez.net                                              |
' +---------------------------------------------------------------------+
' | This source file is subject to the ajgenesis Software License,      |
' | Version 1.0, that is bundled with this package in the file LICENSE. |
' | If you did not receive a copy of this file, you may read it online  |
' | at http://www.ajlopez.net/ajgenesis/license.php.                    |
' +---------------------------------------------------------------------+
'
'

Imports System.Reflection

Module Utilities
    Function IsTrue(ByVal value As Object) As Boolean
        If value Is Nothing Then
            Return False
        End If

        If TypeOf value Is Boolean Then
            Return DirectCast(value, Boolean)
        End If

        If TypeOf value Is Integer Then
            If value = 0 Then
                Return False
            Else
                Return True
            End If
        End If

        If TypeOf value Is Short Then
            If value = 0 Then
                Return False
            Else
                Return True
            End If
        End If

        If TypeOf value Is Long Then
            If value = 0 Then
                Return False
            Else
                Return True
            End If
        End If

        If TypeOf value Is Single Then
            If value = 0 Then
                Return False
            Else
                Return True
            End If
        End If

        If TypeOf value Is Double Then
            If value = 0 Then
                Return False
            Else
                Return True
            End If
        End If

        '' TODO "false" as string must be evaluated to false?
        If TypeOf value Is String Then
            If value = "" Then
                Return False
            Else
                Return True
            End If
        End If

        Return True
    End Function

    Function EvalDefaultProperty(ByVal obj As Object, ByVal prop As String) As Object
        Dim type As Type

        type = obj.GetType

        Dim members() As MemberInfo

        members = type.GetDefaultMembers()

        Dim member As MemberInfo

        For Each member In members
            If member.MemberType = MemberTypes.Property Then
                Return type.InvokeMember(member.Name, BindingFlags.GetProperty, Nothing, obj, New Object() {prop})
            End If
        Next

        Return Nothing
    End Function

    Function EvalPropertyField(ByVal obj As Object, ByVal prop As String) As Object
        If obj Is Nothing Then
            Return Nothing
        End If

        Dim type As Type

        If TypeOf obj Is Type Then
            type = DirectCast(obj, Type)
        Else
            type = obj.GetType
        End If

        Try
            Return type.InvokeMember(prop, Reflection.BindingFlags.GetProperty Or Reflection.BindingFlags.GetField, Nothing, obj, Nothing)
        Catch ex As MissingFieldException
            Return EvalDefaultProperty(obj, prop)
        Catch ex As MissingMethodException
            Return EvalDefaultProperty(obj, prop)
        End Try
    End Function
End Module