text:
class Wiki < MaxWikiActiveRecord
  include Rails.application.routes.url_helpers

  has_many :pages
  has_many :wiki_files
  has_many :users
  serialize :config

  DEFAULT_DESCRIPTION = 'MaxWiki'
  DEFAULT_NAME = 'maxwiki'
  EXISTING_PAGE_CLASS = 'existing_page_link'
  NEW_PAGE_CLASS = 'new_page_link'

  def edit_wiki(new_name, description, markup, color, additional_style, safe_mode = false,
                password = nil, published = false, brackets_only = false, count_pages = false,
                allow_uploads = true, max_upload_size = nil)

    #TODO check for name conflicts
    update_attributes(:name => new_name, :description => description, :markup => markup, :color => color,
                      :additional_style => additional_style, :safe_mode => safe_mode, :password => password, :published => published,
                      :brackets_only => brackets_only, :count_pages => count_pages, :allow_uploads => allow_uploads, :max_upload_size => max_upload_size)
  end

  # Use sql LOWER function to make sure Postgresql searches are case-insensitive
  def read_page_by_link(page_link)
    return nil if page_link.nil?
    pages.find(:first, :conditions => ['LOWER(link) = ?', page_link.downcase])
  end

  def read_page(page_name)
    return nil if page_name.nil?
    pages.find(:first, :conditions => ['LOWER(name) = ?', page_name.downcase])
  end

  def lookup_name_by_link(link)
    page = read_page_by_link(link)
    if page.nil?
      link
    else
      page.name
    end
  end

  def write_page(name, content, content_type, parent, access, time, author, kind = nil)
    page = read_page(name) || Page.new(:name => name, :wiki_id => self.id)
    page.revise(content, content_type, parent, access, time, author, kind)
  end

  def rollback_page(page_name, revision_number, time, author_id = nil)
    page = read_page(page_name)
    page.rollback(revision_number, time, author_id)
  end

  def remove_orphaned_pages
    remove_pages(select.orphaned_pages) #MD Debug ???
  end

  # This creates a list of pages for most uses. In addition to checking for permssions, check to make sure there
  # is a revision for this page otherwise exceptions will occur
  def authorized_pages
    pages.select {|page| page.current_revision && Role.check_role(page.access_read)}
  end

  def page_names
    authorized_pages.map { |p| p.name }
  end

  def authors
    Revision.find(:all).map {|r| r.author}.uniq.sort
  end

  def categories
    select.map { |page| page.categories }.flatten.uniq.sort
  end

  def has_page?(name)
    Page.count(:conditions => ['name = ?', name]) > 0
  end

  def has_page_link?(link)
    Page.count(:conditions => ['link = ?', link]) > 0
  end

  def has_file?(file_name)
    WikiFile.find_by_file_name(file_name) != nil
  end

  def markup
    read_attribute('markup').to_sym
  end

  def page_names_by_author
    connection.select_all(
        'SELECT DISTINCT r.author AS author, p.name AS page_name ' +
        'FROM revisions r ' +
        'JOIN pages p ON r.page_id = p.id ' +
        "WHERE p.wiki_id = #{self.id} " +
        'ORDER by p.name'
    ).inject({}) { |result, row|
      author, page_name = row['author'], row['page_name']
      result[author] = [] unless result.has_key?(author)
      result[author] << page_name
      result
    }
  end

  def remove_page_by_name(name)
    remove_pages [read_page(name)]
  end

  # Remove pages before this one (or that don't have revisions to cleanup corrupted pages)
  def remove_pages_before(name)
    before = read_page(name)
    pages_tb_removed = pages.find(:all).select do |p|
     (p.current_revision.nil? || (p.current_revision.revised_at < before.current_revision.revised_at))
    end
    remove_pages(pages_tb_removed)
  end

  # Remove pages after this one and that don't have revisions (to cleanup corrupted pages)
  def remove_pages_after(name)
    after = read_page(name)
    pages_tb_removed = pages.find(:all).select do |p|
     (p.current_revision.nil? || (p.current_revision.revised_at > after.current_revision.revised_at))
    end
    remove_pages(pages_tb_removed)
  end

  def remove_pages(pages_to_be_removed)
    pages_to_be_removed.each do |p|
      unless p.nil?
        p.revisions.each do |rev|
          rev.destroy
        end
        p.destroy
      end
    end
  end

  def revised_at
    select.most_recent_revision
  end

  def select(page_filter = :main_pages, &condition)
    PageSet.new(self, select_pages(page_filter), condition)
  end

  def select_all(page_filter = :main_pages)
    select(page_filter)
  end

  def to_param
    name
  end

  def create_default_pages(ip)
    default_page_names = MY_CONFIG[:layout_sections] + ['HomePage','Welcome','Products', 'About Us', 'Contact Us']
    default_page_names.each do |page_name|
      next if has_page?(page_name)
      create_default_page(page_name, ip)
    end
  end

  def create_default_page(page_name, ip)
    case page_name
    when 'header'
      content = <<EOF

MaxWiki Header

EOF

    when 'menu'
      content = <<EOF

Home

Products

About Us

Contact Us

EOF

    when 'footer'
      content = <<EOF

<%= login_block %> |

Admin |

Pages |

Copyright ©

Powered by MaxWiki

EOF

    when 'HomePage'
      content = <<EOF

Home Page

This is a sample home page.

EOF

    when 'Welcome'
      content = <<EOF

Welcome

<%= no_cache %>

You are now logged in to <%= config_site_name %> as ‘<%= session_user_name %>’ with role ‘<%= session_role_name %>’.

Updating Your Information

To update your password or name, go to account information .

Editing a Page

On any page where this edit icon appears at the bottom, you can edit the page by clicking on the icon.

EOF

    else
        content = <<EOF

#{page_name}

This is a sample page.

EOF
    end

    parent = nil
    access = {}
    page = write_page(page_name, content, 'html', parent, access,
    Time.now, Author.new('system', ip))
    page.link =  page_name.downcase.gsub(' ','_')
    page.save!
  end

  # Create a link for the given page (or file) name and link text based
  # on the render mode in options and whether the page (file) exists
  # in the wiki.
  def make_link(name, text = nil, options = {})
    text = CGI.escapeHTML(text || WikiWords.separate(name))
    mode = (options[:mode] || :show).to_sym
    link_type = (options[:link_type] || :show).to_sym

    if (link_type == :show)
      known_page = has_page?(name)
    else
      known_page = has_file?(name)
    end

    case link_type
    when :show
      urlgen_page_link(mode, name, text, known_page)
    else
      raise "Unknown link type: #{link_type}"
    end
  end

  #----------------------
  private

  def select_pages(page_filter)
    if [:main_pages, :main_and_layout_pages].include?(page_filter)
      authorized_pages.select do |page|
        other_page = (page_filter != :main_and_layout_pages &&
                      MY_CONFIG[:layout_sections].include?(page.name)) ||
        page.name =~ /(_left|_right|_menu)$/
        !other_page
      end
    else
      authorized_pages
    end
  end

  def urlgen_page_link(mode, name, text, known_page)
    page = read_page(name)
    if page.nil?
      link = name
      cgi_link = CGI.escape(name)
    else
      link = page.link
      cgi_link = page.link
    end

    case mode
    when :export
      if known_page
        link = %{#{text}}
      else
        link = %{#{text}}
      end
    else
      if known_page
        href = url_for :controller => 'wiki', :action => 'show', :link => cgi_link, :only_path => true
        link = %{#{text}}
      else
        href = url_for :controller => 'wiki', :action => 'show', :link => cgi_link, :only_path => true
        link = %{#{text}?}
      end
    end
    link.html_safe
  end

  # Returns an array of all the wiki words in any current revision
  def wiki_words
    pages.inject([]) { |wiki_words, page| wiki_words << page.wiki_words }.flatten.uniq
  end

  #-------------------------------
  protected

  before_save :sanitize_markup
  before_validation :validate_name
  validates_uniqueness_of :name

  def sanitize_markup
    self.markup = markup.to_s
  end

  def validate_name
    unless name == CGI.escape(name)
      self.errors.add(:name, 'should contain only valid URI characters')
      raise Instiki::ValidationError.new("#{self.class.human_attribute_name('name')} #{errors.on(:name)}")
    end
  end

end


text:
/**!
 * AngularJS file upload shim for HTML5 FormData
 * @author  Danial  <danial.farid@gmail.com>
 * @version 1.1.1
 */
(function() {

if (window.XMLHttpRequest) {
	if (window.FormData) {
		// allow access to Angular XHR private field: https://github.com/angular/angular.js/issues/1934
		XMLHttpRequest = (function(origXHR) {
			return function() {
				var xhr = new origXHR();
				xhr.send = (function(orig) {
					return function() {
						if (arguments[0] instanceof FormData) {
							var formData = arguments[0];
							if (formData.__uploadProgress_) {
								xhr.upload.addEventListener('progress', function(e) {
									formData.__uploadProgress_(e);
								}, false);
							}
						}
						orig.apply(xhr, arguments);
					}
				})(xhr.send);
				return xhr;
			}
		})(XMLHttpRequest);
	} else {
		XMLHttpRequest = (function(origXHR) {
			return function() {
				var xhr = new origXHR();
				var origSend = xhr.send;
				xhr.__requestHeaders = [];
				xhr.open = (function(orig) {
					xhr.upload = {
						addEventListener: function(t, fn, b) {
							if (t == 'progress') {
								xhr.__progress = fn;
							}
						}
					};
					return function(m, url, b) {
						orig.apply(xhr, [m, url, b]);
						xhr.__url = url;
					}
				})(xhr.open);
				xhr.getResponseHeader = (function(orig) {
					return function(h) {
						return xhr.__fileApiXHR ? xhr.__fileApiXHR.getResponseHeader(h) : orig.apply(xhr, [h]);
					}
				})(xhr.getResponseHeader);
				xhr.getAllResponseHeaders = (function(orig) {
					return function() {
						return xhr.__fileApiXHR ? xhr.__fileApiXHR.getAllResponseHeaders() : orig.apply(xhr);
					}
				})(xhr.getAllResponseHeaders);
				xhr.send = function() {
					if (FormData.__isShim) {
						var formData = arguments[0];
						if (formData.__uploadProgress_) {
							xhr.upload.addEventListener('progress', function(e) {
								formData.__uploadProgress_(e);
							}, false);
						}
						var config = {
							url: xhr.__url,
							complete: function(err, fileApiXHR) {
								Object.defineProperty(xhr, 'status', {get: function() {return fileApiXHR.status}});
								Object.defineProperty(xhr, 'statusText', {get: function() {return fileApiXHR.statusText}});
								Object.defineProperty(xhr, 'readyState', {get: function() {return 4}});
								Object.defineProperty(xhr, 'response', {get: function() {return fileApiXHR.response}});
								Object.defineProperty(xhr, 'responseText', {get: function() {return fileApiXHR.responseText}});
								xhr.__fileApiXHR = fileApiXHR;
								xhr.onreadystatechange();
							},
							progress: function(e) {
								xhr.__progress(e);
							},
							headers: xhr.__requestHeaders
						}
						config.data = {};
						config.files = {}
						for (var i = 0; i < formData.data.length; i++) {
							var item = formData.data[i];
							if (item.val.name && item.val.size && item.val.type) {
								config.files[item.key] = item.val;
							} else {
								config.data[item.key] = item.val;
							}
						}
						FileAPI.upload(config);
					} else {
						origSend.apply(xhr, arguments);
					}
				}
				return xhr;
			}
		})(XMLHttpRequest);
	}
}

if (!window.FormData) {
	HTMLInputElement.prototype.addEventListener = HTMLInputElement.prototype.attachEvent = (function(origAddEventListener) {
		return function(e, fn, b, d) {
			if ((e.toLowerCase() === 'change' || e.toLowerCase() === 'onchange') && this.getAttribute('type') == 'file') {
				if (!this.__isWrapped && (this.getAttribute('ng-file-select') != null || this.getAttribute('data-ng-file-select') != null)) {
					var wrap = document.createElement('div');
					wrap.innerHTML = '

';
					wrap = wrap.firstChild;
					var parent = this.parentNode;
					parent.insertBefore(wrap, this);
					parent.removeChild(this);
					wrap.appendChild(this);
					this.__isWrapped = true;
				}
				origAddEventListener.apply(this, [e,
						function(evt) {
							var files = FileAPI.getFiles(evt);
							if (!evt.target) {
								evt.target = {};
							}
							evt.target.files = files;
							evt.target.files.item = function(i) {
								return evt.target.files[i] || null;
							}
							fn(evt);
						}, b, d]);
			} else {
				origAddEventListener.apply(this, [e, fn, b, d]);
			}
		}
	})(HTMLInputElement.prototype.addEventListener || HTMLInputElement.prototype.attachEvent);

	window.FormData = FormData = function() {
		return {
			append: function(key, val, name) {
				this.data.push({
					key: key,
					val: val,
					name: name
				});
			},
			data: []
		};
	};
	FormData.__isShim = true;

	(function () {
		//load FileAPI
		if (!window.FileAPI || !FileAPI.upload) {
			var base = '', script = document.createElement('script'), allScripts = document.getElementsByTagName('script'), i, index, src;
			if (window.FileAPI && window.FileAPI.jsPath) {
				base = window.FileAPI.jsPath;
			} else {
				for (i = 0; i < allScripts.length; i++) {
					src = allScripts[i].src;
					index = src.indexOf('angular-file-upload-shim.js')
					if (index == -1) {
						index = src.indexOf('angular-file-upload-shim.min.js');
					}
					if (index > -1) {
						base = src.substring(0, index);
						break;
					}
				}
			}

			if (!window.FileAPI || FileAPI.staticPath == null) {
				FileAPI = {
					staticPath: base
				}
			}

			script.setAttribute('src', base + "FileAPI.min.js");
			document.getElementsByTagName('head')[0].appendChild(script);
		}
	})();
}})();

redpajama_set_name: RedPajamaGithub


text:
ACCEPTED

#### According to
Index Fungorum

#### Published in
in Hosagoudar, Abraham & Goos, Mycotaxon 66: 111 (1998)

#### Original name
Meliola chilocarpi Hosag. & T.K. Abraham

### Remarks
null


text:
<meta charset="UTF-8">
<title>ScoresAndChatGroup.newGameButton - core</title>
<link rel="stylesheet" href="..\..\..\style.css">

core / com.erikcupal.theblackcatclient.gui / ScoresAndChatGroup / newGameButton

newGameButton

val newGameButton: TextButton


text:
#ifndef _EXYNOS_IOMMU_LOG_H_
#define _EXYNOS_IOMMU_LOG_H_

#include <linux/mm.h>
#include <linux/mm_types.h>
#include <linux/ktime.h>
#include <linux/hrtimer.h>
#include <linux/gfp.h>
#include <linux/vmalloc.h>
#include <linux/device.h>

enum sysmmu_event_log_event {
	EVENT_SYSMMU_NONE, /* initialized value */
	EVENT_SYSMMU_ENABLE,
	EVENT_SYSMMU_DISABLE,
	EVENT_SYSMMU_TLB_INV_RANGE,
	EVENT_SYSMMU_TLB_INV_VPN,
	EVENT_SYSMMU_TLB_INV_ALL,
	EVENT_SYSMMU_FLPD_FLUSH,
	EVENT_SYSMMU_DF,
	EVENT_SYSMMU_DF_UNLOCK,
	EVENT_SYSMMU_DF_UNLOCK_ALL,
	EVENT_SYSMMU_PBLMM,
	EVENT_SYSMMU_PBSET,
	EVENT_SYSMMU_BLOCK, /* TODO: consider later */
	EVENT_SYSMMU_UNBLOCK, /* TODO: consider later */
#ifdef CONFIG_PM_RUNTIME
	EVENT_SYSMMU_POWERON,
	EVENT_SYSMMU_POWEROFF,
#endif
	EVENT_SYSMMU_IOMMU_ATTACH,
	EVENT_SYSMMU_IOMMU_DETACH,
	EVENT_SYSMMU_IOMMU_MAP,
	EVENT_SYSMMU_IOMMU_UNMAP,
	EVENT_SYSMMU_IOMMU_ALLOCSLPD,
	EVENT_SYSMMU_IOMMU_FREESLPD,
	EVENT_SYSMMU_IOVMM_MAP,
	EVENT_SYSMMU_IOVMM_UNMAP
};

struct sysmmu_event_range {
	u32 start;
	u32 end;
};

struct sysmmu_event_PBLMM {
	u32	lmm;
	u32	buf_num;
};
struct sysmmu_event_PBSET {
	u32	config;
	u32	start;
	u32	end;
};

struct sysmmu_event_IOMMU_MAP {
	u32	start;
	u32	end;
	unsigned int	pfn;
};

struct sysmmu_event_IOVMM_MAP {
	u32	start;
	u32	end;
	unsigned int	dummy;
};

/**
 * event must be updated before eventdata because of eventdata.dev
 * sysmmu_event_log is not protected by any locks. That means it permits
 * some data inconsistency by race condition between updating and reading.
 * However the problem arises when event is either IOMMU_ATTACH or
 * IOMMU_DETACH because they stores a pointer to device descriptor to
 * eventdata.dev and reading the sysmmu_event_log of those events refers
 * to values pointed by eventdata.dev.
 * Therefore, eventdata must be updated before event not to access invalid
 * pointer by reading debugfs entries.
 */
struct sysmmu_event_log {
	ktime_t				timestamp;
	union {
		struct sysmmu_event_range	range;
		struct sysmmu_event_PBLMM	pblmm;
		struct sysmmu_event_PBSET	pbset;
		struct sysmmu_event_IOMMU_MAP	iommu;
		struct sysmmu_event_IOVMM_MAP	iovmm;
		u32			addr;
		struct device			*dev;
	} eventdata;
	enum sysmmu_event_log_event	event;
};

struct exynos_iommu_event_log {
	atomic_t index;
	unsigned int log_len;
	struct page *page_log;
	struct sysmmu_event_log *log;
	struct dentry *debugfs_root;
};

/* sizeof(struct sysmmu_event_log) = 8 + 4 * 3 + 4 = 24 bytes */
#define SYSMMU_LOG_LEN 1024
#define IOMMU_LOG_LEN 4096
#define IOVMM_LOG_LEN 512

#ifdef CONFIG_EXYNOS_IOMMU_EVENT_LOG

#define SYSMMU_DRVDATA_TO_LOG(data) (&(data)->log)
#define IOMMU_PRIV_TO_LOG(data) (&(data)->log)
#define IOMMU_TO_LOG(data) (&((struct exynos_iommu_domain *)(data)->priv)->log)
#define IOVMM_TO_LOG(data) (&(data)->log)

static inline struct sysmmu_event_log *sysmmu_event_log_get(
					struct exynos_iommu_event_log *plog)
{
	struct sysmmu_event_log *log;
	unsigned int index =
		(unsigned int)atomic_inc_return(&plog->index) - 1;
	log = &plog->log[index % plog->log_len];
	log->timestamp = ktime_get();
	return log;
}

#define DEFINE_SYSMMU_EVENT_LOG(evt)					\
static inline void SYSMMU_EVENT_LOG_##evt(struct exynos_iommu_event_log *plog) \
{									\
	struct sysmmu_event_log *log = sysmmu_event_log_get(plog);	\
	log->event = EVENT_SYSMMU_##evt;				\
}

#define DEFINE_SYSMMU_EVENT_LOG_1ADDR(evt)				\
static inline void SYSMMU_EVENT_LOG_##evt(				\
		struct exynos_iommu_event_log *plog, u32 addr)		\
{									\
	struct sysmmu_event_log *log = sysmmu_event_log_get(plog);	\
	log->eventdata.addr = addr;					\
	log->event = EVENT_SYSMMU_##evt;				\
}

#define DEFINE_SYSMMU_EVENT_LOG_2ADDR(evt)				\
static inline void SYSMMU_EVENT_LOG_##evt(struct exynos_iommu_event_log *plog, \
				u32 start, u32 end)			\
{									\
	struct sysmmu_event_log *log = sysmmu_event_log_get(plog);	\
	log->eventdata.range.start = start;				\
	log->eventdata.range.end = end;					\
	log->event = EVENT_SYSMMU_##evt;				\
}

/* MMU_CFG is stored at pblmm.lmm for System MMU 3.1 and 3.2 */
static inline void SYSMMU_EVENT_LOG_PBLMM(struct exynos_iommu_event_log *plog,
					  u32 lmm, u32 buf_num)
{
	struct sysmmu_event_log *log = sysmmu_event_log_get(plog);
	log->eventdata.pblmm.lmm = lmm;
	log->eventdata.pblmm.buf_num = buf_num;
	log->event = EVENT_SYSMMU_PBLMM;
}

/* PB index is stored at pbset.config for System MMU 3.1 and 3.2 */
static inline void SYSMMU_EVENT_LOG_PBSET(struct exynos_iommu_event_log *plog,
					  u32 config, u32 start, u32 end)
{
	struct sysmmu_event_log *log = sysmmu_event_log_get(plog);
	log->eventdata.pbset.config = config;
	log->eventdata.pbset.start = start;
	log->eventdata.pbset.end = end;
	log->event = EVENT_SYSMMU_PBSET;
}

static inline void SYSMMU_EVENT_LOG_IOVMM_MAP(
				struct exynos_iommu_event_log *plog,
				u32 start, u32 end, unsigned int dummy)
{
	struct sysmmu_event_log *log = sysmmu_event_log_get(plog);
	log->eventdata.iovmm.start = start;
	log->eventdata.iovmm.end = end;
	log->eventdata.iovmm.dummy = dummy;
	log->event = EVENT_SYSMMU_IOVMM_MAP;
}

static inline void SYSMMU_EVENT_LOG_IOMMU_ATTACH(
			struct exynos_iommu_event_log *plog, struct device *dev)
{
	struct sysmmu_event_log *log = sysmmu_event_log_get(plog);
	log->eventdata.dev = dev;
	log->event = EVENT_SYSMMU_IOMMU_ATTACH;
}

static inline void SYSMMU_EVENT_LOG_IOMMU_DETACH(
			struct exynos_iommu_event_log *plog, struct device *dev)
{
	struct sysmmu_event_log *log = sysmmu_event_log_get(plog);
	log->eventdata.dev = dev;
	log->event = EVENT_SYSMMU_IOMMU_DETACH;
}

static inline void SYSMMU_EVENT_LOG_IOMMU_MAP(
				struct exynos_iommu_event_log *plog,
				u32 start, u32 end, unsigned int pfn)
{
	struct sysmmu_event_log *log = sysmmu_event_log_get(plog);
	log->event = EVENT_SYSMMU_IOMMU_MAP;
	log->eventdata.iommu.start = start;
	log->eventdata.iommu.end = end;
	log->eventdata.iommu.pfn = pfn;
}

int exynos_iommu_init_event_log(struct exynos_iommu_event_log *log,
				unsigned int log_len);

static inline void exynos_iommu_free_event_log(
		struct exynos_iommu_event_log *plog, unsigned int log_len)
{
	vunmap(plog->log);
	__free_pages(plog->page_log, get_order(sizeof(*(plog->log)) * log_len));
}

void sysmmu_add_log_to_debugfs(struct dentry *debugfs_root,
			struct exynos_iommu_event_log *log, const char *name);

void iommu_add_log_to_debugfs(struct dentry *debugfs_root,
			struct exynos_iommu_event_log *log, const char *name);

#if defined(CONFIG_EXYNOS_IOVMM) || defined(CONFIG_EXYNOS_IOVMM_V6)
void iovmm_add_log_to_debugfs(struct dentry *debugfs_root,
			struct exynos_iommu_event_log *log, const char *name);
#else
#define iovmm_add_log_to_debugfs(debugfs_root, log, name) do { } while (0)
#endif

#else /* !CONFIG_EXYNOS_IOMMU_EVENT_LOG */

#define SYSMMU_DRVDATA_TO_LOG(data) NULL
#define IOMMU_PRIV_TO_LOG(data) NULL
#define IOMMU_TO_LOG(data) NULL
#define IOVMM_TO_LOG(data) NULL

static inline int exynos_iommu_init_event_log(
		struct exynos_iommu_event_log *log, unsigned int log_len)
{
	return 0;
}

#define exynos_iommu_free_event_log(plog, log_len) do { } while (0)

#define iovmm_add_log_to_debugfs(debugfs_root, log, name) do { } while (0)

#define DEFINE_SYSMMU_EVENT_LOG(event)					\
static inline void SYSMMU_EVENT_LOG_##event(				\
				struct exynos_iommu_event_log *plog)	\
{									\
}

#define DEFINE_SYSMMU_EVENT_LOG_1ADDR(event)				\
static inline void SYSMMU_EVENT_LOG_##event(				\
		struct exynos_iommu_event_log *plog, u32 start)		\
{									\
}

#define DEFINE_SYSMMU_EVENT_LOG_2ADDR(event)				\
static inline void SYSMMU_EVENT_LOG_##event(				\
		struct exynos_iommu_event_log *plog, u32 start, u32 end) \
{									\
}

static inline void SYSMMU_EVENT_LOG_PBLMM(struct exynos_iommu_event_log *plog,
			u32 lmm, u32 buf_num)
{
}

static inline void SYSMMU_EVENT_LOG_PBSET(struct exynos_iommu_event_log *plog,
			u32 config, u32 start, u32 end)
{
}

static inline void SYSMMU_EVENT_LOG_IOMMU_MAP(
				struct exynos_iommu_event_log *plog,
				u32 start, u32 end, unsigned int pfn)
{
}

static inline void SYSMMU_EVENT_LOG_IOVMM_MAP(
				struct exynos_iommu_event_log *plog,
				u32 start, u32 end, size_t dummy)
{
}

static inline void SYSMMU_EVENT_LOG_IOMMU_ATTACH(
			struct exynos_iommu_event_log *plog, struct device *dev)
{
}

static inline void SYSMMU_EVENT_LOG_IOMMU_DETACH(
			struct exynos_iommu_event_log *plog, struct device *dev)
{
}

#define sysmmu_add_log_to_debugfs(debugfs_root, log, name) do { } while (0)
#define iommu_add_log_to_debugfs(debugfs_root, log, name) do { } while (0)
#define iovmm_add_log_to_debugfs(debugfs_root, log, name) do { } while (0)

#endif /* CONFIG_EXYNOS_IOMMU_EVENT_LOG */

DEFINE_SYSMMU_EVENT_LOG(ENABLE)
DEFINE_SYSMMU_EVENT_LOG(DISABLE)
DEFINE_SYSMMU_EVENT_LOG(TLB_INV_ALL)
DEFINE_SYSMMU_EVENT_LOG(DF_UNLOCK_ALL)
DEFINE_SYSMMU_EVENT_LOG(BLOCK)
DEFINE_SYSMMU_EVENT_LOG(UNBLOCK)
#ifdef CONFIG_PM_RUNTIME
DEFINE_SYSMMU_EVENT_LOG(POWERON)
DEFINE_SYSMMU_EVENT_LOG(POWEROFF)
#endif

DEFINE_SYSMMU_EVENT_LOG_1ADDR(TLB_INV_VPN)
DEFINE_SYSMMU_EVENT_LOG_1ADDR(FLPD_FLUSH)
DEFINE_SYSMMU_EVENT_LOG_1ADDR(DF)
DEFINE_SYSMMU_EVENT_LOG_1ADDR(DF_UNLOCK)
DEFINE_SYSMMU_EVENT_LOG_1ADDR(IOMMU_ALLOCSLPD)
DEFINE_SYSMMU_EVENT_LOG_1ADDR(IOMMU_FREESLPD)

DEFINE_SYSMMU_EVENT_LOG_2ADDR(TLB_INV_RANGE)
DEFINE_SYSMMU_EVENT_LOG_2ADDR(IOMMU_UNMAP)
DEFINE_SYSMMU_EVENT_LOG_2ADDR(IOVMM_UNMAP)

#endif /*_EXYNOS_IOMMU_LOG_H_*/


text:
import Router from 'ampersand-router'
import React from 'react'
import LoginPage from './pages/login'
import ReposPage from './pages/repos'
import Layout from './layout'

export default Router.extend({
  renderPage (page, opts ={layout:true}) {
    if(opts.layout){
      page = (
        <Layout>
          {page}
        </Layout>
      )
    }
    React.render(page, document.body)
  },
  routes: {
    '': 'home',
    'repos': 'repos'
  },

  home () {
    this.renderPage(<LoginPage />, {layout:false})
  },

  repos () {
    this.renderPage(<ReposPage />)
  }
})


text:
package play.modules.flect;

import play.Play;
import play.data.validation.Validation;
import play.mvc.Http.Request;
import play.mvc.Http.Header;
import play.mvc.Scope.Flash;
import play.mvc.results.Redirect;

/**
 * プロトコル制御クラス
 */
public class ProtocolControl {

	/**
	 * リクエストのプロトコルがhttpの場合、httpsにリダイレクトします。
	 */
	public static void sslOnly() {
		checkProtocol(true);
	}

	/**
	 * リクエストのプロトコルがhttpsの場合、httpにリダイレクトします。
	 */
	public static void httpOnly() {
		checkProtocol(false);
	}

	private static void checkProtocol(boolean ssl) {
		if (Play.mode == Play.Mode.DEV) {
			return;
		}
		Request request = Request.current();
		if (request == null) {
			return;
		}

		if (isSSL(request) != ssl) {
			StringBuilder buf = new StringBuilder();
			buf.append(ssl ? "https://" : "http://")
				.append(request.domain)
				.append(request.path);
			if (request.querystring != null && request.querystring.length() > 0) {
				buf.append("?").append(request.querystring);
			}
			Flash.current().keep();
			Validation.current().keep();
			throw new Redirect(buf.toString());
		}
	}

	public static boolean isSSL(Request request) {
		Header proto = request.headers.get("x-elb-proto");
		if (proto != null) {
			return "https".equals(proto.value());
		}
		proto = request.headers.get("x-forwarded-proto");
		if (proto != null) {
			return "https".equals(proto.value());
		}
		return request.secure;
	}
}


text:
namespace extensions {
namespace app_file_handler_util {

namespace {

bool GetIsDirectoryFromFileInfo(const base::FilePath& path) {
  base::File::Info file_info;
  return GetFileInfo(path, &file_info) && file_info.is_directory;
}

// The callback parameter contains the result and is required to support
// both native local directories to avoid UI thread and non native local
// path directories for the IsNonNativeLocalPathDirectory API.
void EntryIsDirectory(content::BrowserContext* context,
                      const base::FilePath& path,
                      base::OnceCallback<void(bool)> callback) {
#if BUILDFLAG(IS_CHROMEOS_ASH)
  NonNativeFileSystemDelegate* delegate =
      ExtensionsAPIClient::Get()->GetNonNativeFileSystemDelegate();
  if (delegate && delegate->IsUnderNonNativeLocalPath(context, path)) {
    delegate->IsNonNativeLocalPathDirectory(context, path, std::move(callback));
    return;
  }
#endif

  base::ThreadPool::PostTaskAndReplyWithResult(
      FROM_HERE, {base::MayBlock()},
      base::BindOnce(&GetIsDirectoryFromFileInfo, path), std::move(callback));
}

}  // namespace

IsDirectoryCollector::IsDirectoryCollector(content::BrowserContext* context)
    : context_(context), left_(0) {}

IsDirectoryCollector::~IsDirectoryCollector() {}

void IsDirectoryCollector::CollectForEntriesPaths(
    const std::vector<base::FilePath>& paths,
    CompletionCallback callback) {
  DCHECK(!callback.is_null());
  paths_ = paths;
  callback_ = std::move(callback);

  DCHECK(!result_.get());
  result_ = std::make_unique<std::set<base::FilePath>>();
  left_ = paths.size();

  if (!left_) {
    // Nothing to process.
    base::SingleThreadTaskRunner::GetCurrentDefault()->PostTask(
        FROM_HERE, base::BindOnce(std::move(callback_), std::move(result_)));
    callback_.Reset();
    return;
  }

  for (size_t i = 0; i < paths.size(); ++i) {
    EntryIsDirectory(
        context_, paths[i],
        base::BindOnce(&IsDirectoryCollector::OnIsDirectoryCollected,
                       weak_ptr_factory_.GetWeakPtr(), i));
  }
}

void IsDirectoryCollector::OnIsDirectoryCollected(size_t index,
                                                  bool is_directory) {
  if (is_directory)
    result_->insert(paths_[index]);
  if (!--left_) {
    base::SingleThreadTaskRunner::GetCurrentDefault()->PostTask(
        FROM_HERE, base::BindOnce(std::move(callback_), std::move(result_)));
    // Release the callback to avoid a circullar reference in case an instance
    // of this class is a member of a ref counted class, which instance is bound
    // to this callback.
    callback_.Reset();
  }
}

}  // namespace app_file_handler_util
}  // namespace extensions


text:
class ChatRoomUser < ActiveRecord::Base
end


text:
package com.modinfodesigns.property.time;

import com.modinfodesigns.app.INamedObject;
import com.modinfodesigns.property.BinaryProperty;
import com.modinfodesigns.property.IFunctionProperty;

import java.util.HashMap;
import java.util.ArrayList;
import java.util.List;

public class DateType implements INamedObject
{
  public static final String FIRST_OF_MONTH = "FirstOfMonth";
  public static final String LAST_OF_MONTH = "LastOfMonth";

  private String name;

  private boolean isFutureDate;

  // Does this date represent a one-time event or a recurring event (such as Tax Day)?
  // if isRecurring is true - isFutureDate may not be relevant.
  private boolean isRecurring;

  private String format;

  private String locale;

  // ==============================================================================
  // specifies what the DateProperty's beforeAfter intrinsic property will express
  // e.g. Active|Expired, Living|Dead, Pending|Active
  // ==============================================================================
  private BinaryProperty beforeAfterProp;

  // ==============================================================================
  // specifies a label for before or until duration
  // ==============================================================================
  private String durationLabel;

  // ==============================================================================
  // Fill In Semantics: specify what to fill in. e.g. lastDayOfMonth, endOfDay,
  // firstDayOfMonth, nextYear (this year if before day/month, next year if not), thisYear
  //
  // Used for implicit date parts such a ValidThroughMonthYear expiration date type.
  // - in this case the day would be the last day of the month.
  // For an Application Date - the year may be implied if the applications are accepted
  // every year. Year of the application date would be the next valid year. This DateType
  // could also have an intrinsic property - Application Year.
  // ==============================================================================
  private String implicitDay;   // first of week, day name of this week, etc.
                                // last day of month, first day of month

  private String implicitMonth;

  // ==============================================================================
  // Implicit years can be important for Recurring dates.
  // Tax day (April 15) is the deadline for the previous tax year.
  // Admissions applications may be for the next year (if the date is near the
  // end of the year or the current year - if near the beginning).
  // ==============================================================================
  private String implicitYear;  // previous year, this year, next year

  // List of Intrinsic Properties - e.g. 'Application Year' or 'Publication Year'
  // DateProperty can use these to apply generate dynamic Intrinsic Properties
  // by applying the function property to itself.
  // Name should be the name of the property that the function property
  // will add to the DateProperty
  private HashMap<String,IFunctionProperty> intrinsicFunctionProperties;

  @Override
  public void setName(String name)
  {
    this.name = name;
  }

  @Override
  public String getName()
  {
    return this.name;
  }

  public void setIsFutureDate( boolean isFutureDate )
  {
    this.isFutureDate = isFutureDate;
  }

  public void setIsFutureDate( String isFutureDate )
  {
    this.isFutureDate = (isFutureDate != null && isFutureDate.equalsIgnoreCase( "true" ));
  }

  public boolean isFutureDate( )
  {
    return this.isFutureDate;
  }

  public void setIsRecurring( boolean isRecurring )
  {
    this.isRecurring = isRecurring;
  }

  public void setIsRecurring( String isRecurring )
  {
    this.isRecurring = (isRecurring != null && isRecurring.equalsIgnoreCase( "true" ));
  }

  public boolean isRecurring( )
  {
    return this.isRecurring;
  }

  public void setDurationLabel( String durationLabel )
  {
    this.durationLabel = durationLabel;
  }

  public String getDurationLabel( )
  {
    if (this.durationLabel != null) return this.durationLabel;

    return (isFutureDate) ? "Until" : "Since";
  }

  public void setBinaryProperty( BinaryProperty beforeAfterProp )
  {
    this.beforeAfterProp = beforeAfterProp;
  }

  public BinaryProperty getBeforeAfterProp( )
  {
    return this.beforeAfterProp;
  }

  public void setFormat( String format )
  {
    this.format = format;
  }

  public String getFormat( )
  {
    return this.format;
  }

  public void setImplicitDay( String implicitDay )
  {
    this.implicitDay = implicitDay;
  }

  public String getImplicitDay( )
  {
    return this.implicitDay;
  }

  public void addFunctionProperty( IFunctionProperty functionProp )
  {
    if (functionProp == null) return;

    if (intrinsicFunctionProperties == null) intrinsicFunctionProperties = new HashMap<String,IFunctionProperty>( );
    intrinsicFunctionProperties.put( functionProp.getName(), functionProp );
  }

  public List<String> getFunctionPropertyNames( )
  {
    ArrayList<String> functionNames = new ArrayList<String>( );
    if (intrinsicFunctionProperties != null)
    {
      for (String name : intrinsicFunctionProperties.keySet() )
      {
        functionNames.add( name );
      }
    }

    return functionNames;
  }

  public IFunctionProperty getFunctionProperty( String name )
  {
    return (intrinsicFunctionProperties != null) ? intrinsicFunctionProperties.get( name ) : null;
  }
}


text:
<?php namespace App\Api;

use App\Authorization\UserRules;
use App\Data\Models\RoleScope;
use App\Data\Models\User as Model;
use App\Json\Schemas\UserSchema as Schema;
use Doctrine\DBAL\Connection;
use Doctrine\DBAL\DBALException;
use Limoncello\Contracts\Exceptions\AuthorizationExceptionInterface;
use Limoncello\Crypt\Contracts\HasherInterface;
use Limoncello\Flute\Contracts\Models\PaginatedDataInterface;
use PDO;
use Psr\Container\ContainerExceptionInterface;
use Psr\Container\ContainerInterface;
use Psr\Container\NotFoundExceptionInterface;

/**
 * @package App
 */
class UsersApi extends BaseApi
{
    /**
     * @param ContainerInterface $container
     *
     * @throws ContainerExceptionInterface
     * @throws NotFoundExceptionInterface
     */
    public function __construct(ContainerInterface $container)
    {
        parent::__construct($container, Model::class);
    }

    /**
     * @inheritdoc
     *
     * @throws AuthorizationExceptionInterface
     */
    public function create(?string $index, iterable $attributes, iterable $toMany): string
    {
        $this->authorize(UserRules::ACTION_MANAGE_USERS, Schema::TYPE);

        return parent::create($index, $this->getReplacePasswordWithHash($attributes), $toMany);
    }

    /**
     * @inheritdoc
     *
     * @throws AuthorizationExceptionInterface
     */
    public function update(string $index, array $attributes, array $toMany): int
    {
        $this->authorize(UserRules::ACTION_MANAGE_USERS, Schema::TYPE, $index);

        return parent::update($index, $this->getReplacePasswordWithHash($attributes), $toMany);
    }

    /**
     * @inheritdoc
     *
     * @throws AuthorizationExceptionInterface
     */
    public function remove(string $index): bool
    {
        $this->authorize(UserRules::ACTION_MANAGE_USERS, Schema::TYPE, $index);

        return parent::remove($index);
    }

    /**
     * @inheritdoc
     *
     * @throws AuthorizationExceptionInterface
     */
    public function index(): PaginatedDataInterface
    {
        $this->authorize(UserRules::ACTION_VIEW_USERS, Schema::TYPE);

        return parent::index();
    }

    /**
     * @inheritdoc
     *
     * @throws AuthorizationExceptionInterface
     */
    public function read(string $index)
    {
        $this->authorize(UserRules::ACTION_VIEW_USERS, Schema::TYPE, $index);

        return parent::read($index);
    }

    /**
     * @param int $userId
     *
     * @return array
     *
     * @throws ContainerExceptionInterface
     * @throws NotFoundExceptionInterface
     */
    public function noAuthReadScopes(int $userId): array
    {
        /** @var Connection $connection */
        $connection  = $this->getContainer()->get(Connection::class);
        $query       = $connection->createQueryBuilder();
        $users       = 'u';
        $uRoleId     = Model::FIELD_ID_ROLE;
        $rolesScopes = 'rs';
        $rsRoleId    = RoleScope::FIELD_ID_ROLE;
        $query
            ->select(RoleScope::FIELD_ID_SCOPE)
            ->from(Model::TABLE_NAME, $users)
            ->leftJoin($users, RoleScope::TABLE_NAME, $rolesScopes, "$users.$uRoleId = $rolesScopes.$rsRoleId")
            ->where(Model::FIELD_ID . '=' . $query->createPositionalParameter($userId, PDO::PARAM_INT));

        $scopes = array_column($query->execute()->fetchAll(), RoleScope::FIELD_ID_SCOPE);

        return $scopes;
    }

    /**
     * @param string $email
     *
     * @return int|null
     */
    public function noAuthReadUserIdByEmail(string $email): ?int
    {
        /** @var Connection $connection */
        $connection  = $this->getContainer()->get(Connection::class);
        $query       = $connection->createQueryBuilder();
        $query
            ->select(Model::FIELD_ID)
            ->from(Model::TABLE_NAME)
            ->where(Model::FIELD_EMAIL . '=' . $query->createPositionalParameter($email))
            ->setMaxResults(1);
        $statement = $query->execute();
        $idOrFalse = $statement->fetchColumn();
        $userId    = $idOrFalse === false ? null : (int)$idOrFalse;

        return $userId;
    }

    /**
     * @param int    $userId
     * @param string $newPassword
     *
     * @return bool
     */
    public function noAuthResetPassword(int $userId, string $newPassword): bool
    {
        $hash = $this->createHasher()->hash($newPassword);

        try {
            $changed = parent::update($userId, [Model::FIELD_PASSWORD_HASH => $hash], []);

            return $changed > 0;
        } catch (DBALException $exception) {
            return false;
        }
    }

    /**
     * @param array $attributes
     *
     * @return array
     *
     * @throws ContainerExceptionInterface
     * @throws NotFoundExceptionInterface
     */
    private function getReplacePasswordWithHash(array $attributes): array
    {
        // in attributes were captured validated input password we need to convert it into password hash
        if (array_key_exists(Schema::CAPTURE_NAME_PASSWORD, $attributes) === true) {
            $attributes[Model::FIELD_PASSWORD_HASH] =
                $this->createHasher()->hash($attributes[Schema::CAPTURE_NAME_PASSWORD]);
        }

        return $attributes;
    }

    /**
     * @return HasherInterface
     */
    private function createHasher(): HasherInterface
    {
        return $this->getContainer()->get(HasherInterface::class);
    }
}


text:
// This is a generated file. Not intended for manual editing.
package com.intellij.plugins.haxe.lang.psi;

import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;

public interface HaxeInterfaceBody extends HaxePsiCompositeElement {

  @NotNull
  List<HaxeFunctionPrototypeDeclarationWithAttributes> getFunctionPrototypeDeclarationWithAttributesList();

  @NotNull
  List<HaxeVarDeclaration> getVarDeclarationList();

}


text:
<?php

if (isset($url[1]) && $url[1] == 'logs')
{
	Hooks::emit('admin-header');
	Core::render('admin/logs.tpl');
	Hooks::emit('admin-footer');
	exit;
}

$log_name = Log::getFilename();
$slash_position = strrpos($log_name, '/');
$log_name = $slash_position ? substr($log_name, $slash_position + 1) : $log_name;

Hooks::emit('admin-header');

Core::set('log_name', $log_name);
Core::render('admin/index.tpl');

Hooks::emit('admin-footer');
exit;


text:
#ifndef CDEBUGDRAWER_HPP
#define CDEBUGDRAWER_HPP

#include "CDebugShapes.hpp"
#include "../CResourceManager.hpp"
#include "../partitioner/CPartitioner.hpp"

class CDebugDrawer
{
		CShader m_debugShader;
		CShader m_pickShader;

		CDebugShapes *m_debugShapes;

		int m_currentWidth;
		int m_currentHeight;

		CPartitioner *m_partitioner;

		GLuint m_fboId;
		GLuint m_fboPickId;
		GLuint m_fboDepthId;

		GLenum m_fboDrawBuffers[1];

	public:

		CDebugDrawer(CResourceManager *rManager, CPartitioner *partitioner);

		virtual ~CDebugDrawer();

		void draw();

		virtual int getIdAtPosition(int posX, int posY);

		virtual void resize(int width, int height);

		void createFramebuffers(int width, int height);

		void removeFramebuffers();

		void resetVariables();

};

#endif // CDEBUGDRAWER_HPP


text:
layout: page
title: Russell Leblanc's 87th Birthday
date: 2016-05-24
author: Kathryn Rhodes
tags: weekly links, java
status: published
summary: Vestibulum ante ipsum primis in faucibus.
banner: images/banner/meeting-01.jpg
booking:
  startDate: 09/01/2017
  endDate: 09/06/2017
  ctyhocn: NUECCHX
  groupCode: RL8B
published: true
---
Maecenas urna tortor, pretium eu massa sit amet, semper sodales nunc. Fusce facilisis quam quis lectus congue ultrices. Mauris purus velit, tempor ac eleifend ut, mattis nec ligula. Duis euismod pretium arcu. Nunc est quam, blandit a nibh nec, lacinia porttitor nunc. Proin scelerisque quis ligula nec dapibus. Suspendisse diam lorem, aliquam sit amet placerat eu, sodales ac ex. Vestibulum lobortis erat nisl, ac porttitor sem mollis in. Nunc convallis felis ac sapien cursus, eu fringilla eros consectetur. Donec id auctor est. Ut pulvinar purus lobortis facilisis finibus. Integer non erat mauris. Mauris accumsan bibendum purus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Duis et libero posuere enim fermentum tincidunt. Fusce lacinia, nisl et pellentesque ornare, arcu est tempus dolor, vitae pretium felis lorem vitae lacus.

* Curabitur id elit a erat rhoncus aliquet
* Curabitur fermentum neque pulvinar justo volutpat, id consequat magna viverra
* Morbi efficitur augue sit amet tellus eleifend, id congue nulla hendrerit
* Maecenas luctus ante eu vestibulum egestas
* Sed non ante non augue elementum pharetra.

Aliquam sit amet ultricies arcu, ut pharetra purus. Vestibulum id congue eros. Proin in ex condimentum, elementum eros a, tincidunt ex. Aliquam fermentum enim risus, sit amet rutrum quam accumsan id. Ut eu egestas justo. Maecenas nec ante et erat venenatis imperdiet. Nunc ut tincidunt lorem. Donec semper mi nibh, ac consequat velit aliquet et. Ut dui purus, facilisis eget mi quis, posuere lacinia est.
Ut in ante ut neque rhoncus sollicitudin fringilla vel nisl. Donec at tortor quam. Integer tincidunt massa elementum auctor congue. Sed condimentum, dui id venenatis sollicitudin, risus magna dignissim libero, sed mattis dolor ex eget augue. Phasellus vestibulum turpis eget interdum finibus. Vivamus tristique, mi id malesuada elementum, dui magna interdum mauris, eu molestie mauris sem quis diam. Vestibulum auctor tellus non tempus sollicitudin. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.


text:
<app-overlay-container uri="/fishing-reporter-overlay">

    <ng-container *ngIf="getErrors(state) as errors">

 0">

- {{error | translate}}

    </ng-container>
    <ng-template #unknown>
      {{'COMMON.Unknown' | translate}}
    </ng-template>

{{'DB.FISH.OVERLAY.Fishing' | translate}}

{{(state.isFishing ? 'Yes' : 'No') | translate}}

{{'DB.FISH.OVERLAY.Bait' | translate}}

{{(state.mooch ? (state.moochId || state.baitId) : state.baitId) | itemName | i18n}}

{{'DB.FISH.OVERLAY.Mooch' | translate}}

{{(state.mooch ? 'Yes' : 'No') | translate}}

{{'DB.FISH.OVERLAY.Spot' | translate}}

{{state.spot.zoneId | placeName | i18n}}

{{'DB.FISH.OVERLAY.Current_weather' | translate}}

           0"
               src="{{state.weatherId | weatherIcon | xivapiIcon}}"
               alt="{{state.weatherId | weatherName | i18n}}">

{{state.weatherId | weatherName | i18n}}

{{'DB.FISH.OVERLAY.Previous_weather' | translate}}

           0"
               src="{{state.previousWeatherId | weatherIcon | xivapiIcon}}"
               alt="{{state.previousWeatherId | weatherName | i18n}}">

{{state.previousWeatherId | weatherName | i18n}}

{{'DB.FISH.OVERLAY.Stats' | translate}}

{{state.stats.gathering}} / {{state.stats.perception}} / {{state.stats.gp}}

{{'DB.FISH.OVERLAY.Statuses' | translate}}

            {{'DB.FISH.OVERLAY.No_statuses' | translate}}

{{'DB.FISH.OVERLAY.Total_reports' | translate}}

{{(state.reports || []).length}}

      <nz-divider [nzText]="'DB.FISH.OVERLAY.Last_report' | translate"></nz-divider>

        {{'COMMON.None' | translate}}

      <ng-template #lastReport>

{{'DB.FISH.OVERLAY.Fish' | translate}}

 0; else unknown" fxLayout="row" fxLayoutGap="5px" fxLayoutAlign="flex-end center">

{{report.itemId | itemName | i18n}}

{{'DB.FISH.OVERLAY.Size' | translate}}

{{(report.size / 10) | number: '1.0-1'}} ilm

{{'DB.FISH.Bite_time' | translate}}

{{(report.biteTime / 10) | number: '1.0-1'}} s

{{'Hq' | translate}}

{{(report.hq ? 'Yes' : 'No') | translate}}

{{'DB.FISH.Baits' | translate}}

{{report.baitId | itemName | i18n}}

{{762 | statusName | i18n}}

{{(report.fishEyes ? 'Yes' : 'No') | translate}}

{{761 | statusName | i18n}}

{{(report.snagging ? 'Yes' : 'No') | translate}}

{{763 | statusName | i18n}}

{{(report.chum ? 'Yes' : 'No') | translate}}

{{'DB.FISH.OVERLAY.Mooch_report' | translate}}

{{(report.mooch ? 'Yes' : 'No') | translate}}

{{'DB.FISH.OVERLAY.Tug' | translate}}

{{('DB.FISH.TUG.' + getTugName(report.tug)) | translate}}

{{'DB.FISH.OVERLAY.Hookset' | translate}}

{{getHooksetActionId(report.hookset) | actionName | i18n}}

{{'DB.FISH.OVERLAY.Current_weather' | translate}}

               0"
                   src="{{report.weatherId | weatherIcon | xivapiIcon}}"
                   nz-tooltip
                   [nzTitle]="report.weatherId | weatherName | i18n"
                   alt="{{report.weatherId | weatherName | i18n}}">

{{report.weatherId | weatherName | i18n}}

{{'DB.FISH.OVERLAY.Previous_weather' | translate}}

               0"
                   src="{{report.previousWeatherId | weatherIcon | xivapiIcon}}"
                   nz-tooltip
                   [nzTitle]="report.previousWeatherId | weatherName | i18n"
                   alt="{{report.previousWeatherId | weatherName | i18n}}">

{{report.previousWeatherId | weatherName | i18n}}

      </ng-template>

</app-overlay-container>


text:
<!DOCTYPE html>

    <title>Prosecution</title>
    <meta charset='utf-8'/>
    <meta name="viewport" content="width=device-width, user-scalable=no">
    <link rel="shortcut icon" type="image/png" href="favicon.ico"/>

    <meta property="og:url"         content="http://theo.sabattie.com/games/prosecution/" />
    <meta property="og:title"       content="Prosecution" />
    <meta property="og:description" content="How long can you survive?" />
    <meta property="og:image"       content="http://theo.sabattie.com/games/prosecution/assets/prosecute_facebook_sharing.jpg" />

    <link rel="stylesheet" type="text/css" href="//fonts.googleapis.com/css?family=Sigmar+One" />
    <link rel="stylesheet" type="text/css" href="//fonts.googleapis.com/css?family=Carter+One" />

    <link rel='stylesheet' href='css/main.css'/>

    <canvas id="game-canvas"></canvas>


text:
// Optional Executable Panel
//
// Douglas Thrift
//
// OptionalExecutablePanel.xaml.cs

using System;
using System.Collections.Generic;
using System.IO;
using System.Text.RegularExpressions;
using System.Windows.Controls;

public partial class OptionalExecutablePanel : StackPanel, SettingPanel
{
    private Setting setting;
    private Button applyButton;

    public OptionalExecutablePanel(Setting setting, IEnumerable<string> options, Button applyButton)
    {
        InitializeComponent();

        this.applyButton = applyButton;
        this.setting = setting;

        if (setting.handler)
            SettingUsage.Text = "Use a specific executable for " + setting.name + ":";
        else
        {
            SettingCheckBox.Content = setting.name + " Executable:";
            SettingUsage.Text = setting.usage + ":";
        }

        Regex regex = new Regex(@"^(?:/|--?)" + setting.option.Substring(1) + @"(?:[:=](?<executable>.*))?$");

        foreach (string option in options)
        {
            Match match = regex.Match(option);
            if (match.Success)
            {
                Group group = match.Groups["executable"];
                if (group.Success)
                {
                    SettingCheckBox.IsChecked = true;
                    SettingExecutableBox.Text = group.Value;
                }
            }
        }
    }

    public bool IsSelected
    {
        get
        {
            return setting.handler || SettingCheckBox.IsChecked.Value;
        }
    }

    public string Option
    {
        get
        {
            if (SettingCheckBox.IsChecked.Value)
            {
                string executable = SettingExecutableBox.Text;

                if (File.GetAttributes(executable).HasFlag(FileAttributes.Directory))
                    throw new Exception("'" + executable + "' is not a file.");

                return setting.option + ":" + executable;
            }
            else
                return setting.option;
        }
    }

    private void SettingCheckBox_Checked(object sender, System.Windows.RoutedEventArgs e)
    {
        SettingExecutablePanel.IsEnabled = true;
        applyButton.IsEnabled = true;
    }

    private void SettingCheckBox_Unchecked(object sender, System.Windows.RoutedEventArgs e)
    {
        SettingExecutablePanel.IsEnabled = false;
        applyButton.IsEnabled = true;
    }

    private void SettingExecutableBrowse_Click(object sender, System.Windows.RoutedEventArgs e)
    {
        SettingPanelHelper.DoExecutableBrowseClick(SettingExecutableBox);
    }

    private void SettingExecutableBox_Populating(object sender, PopulatingEventArgs e)
    {
        SettingPanelHelper.DoExecutableBoxPopulating(SettingExecutableBox);
    }

    private void SettingExecutableBox_TextChanged(object sender, System.Windows.RoutedEventArgs e)
    {
        applyButton.IsEnabled = true;
    }
}


text:
package engine

import (
	"github.com/cockroachdb/cockroach/roachpb"
	"github.com/gogo/protobuf/proto"
)

// MergeInternalTimeSeriesData exports the engine's C++ merge logic for
// InternalTimeSeriesData to higher level packages. This is intended primarily
// for consumption by high level testing of time series functionality.
func MergeInternalTimeSeriesData(sources ...*roachpb.InternalTimeSeriesData) (
	*roachpb.InternalTimeSeriesData, error) {
	// Wrap each proto in an inlined MVCC value, and marshal each wrapped value
	// to bytes. This is the format required by the engine.
	srcBytes := make([][]byte, 0, len(sources))
	for _, src := range sources {
		var val roachpb.Value
		if err := val.SetProto(src); err != nil {
			return nil, err
		}
		bytes, err := proto.Marshal(&MVCCMetadata{
			Value: &val,
		})
		if err != nil {
			return nil, err
		}
		srcBytes = append(srcBytes, bytes)
	}

	// Merge every element into a nil byte slice, one at a time.
	var (
		mergedBytes []byte
		err         error
	)
	for _, bytes := range srcBytes {
		mergedBytes, err = goMerge(mergedBytes, bytes)
		if err != nil {
			return nil, err
		}
	}

	// Unmarshal merged bytes and extract the time series value within.
	var mvccValue MVCCMetadata
	if err := proto.Unmarshal(mergedBytes, &mvccValue); err != nil {
		return nil, err
	}
	mergedTS, err := mvccValue.Value.GetTimeseries()
	if err != nil {
		return nil, err
	}
	return &mergedTS, nil
}


text:
inherit MASTER_ROOM;

void create_object(void);
void reset(int arg);
void init(void);
int  do_clear(string str);
int  do_search(string str);
int  do_read(string str);
void obelisk_desc(void);
void stones_desc(void);
void road_desc(void);

int obelisk_cleared;
string *found_stones = ({});

void create_object(void)
{
  set_short("A winding path (w/se)");
  set_long("You are on a path winding its way between trees and bushes "+
           "on the west side of the island. The ground slopes gently down "+
           "towards the east here, and it looks as if the forest is not "+
           "as dense towards the southeast. By the side of the path is an "+
           "almost totally overgrown obelisk, standing almost like a sentry, "+
           "guarding the path.\n");
  set_new_light(3);
  set_dragon_visibility(1);
  set_room_hint("It often pays to try to perform actions suggested when "+
                "looking at things in a room, like the obelisk does here. "+
                "Many times that is the only way to find vital hints or to "+
                "get to new places. Often when you are told that taking "+
                "a closer look at something might be a good idea, it pays "+
                "to <search> that thing;)\n");

  add_item("path","The path looks well travelled. Something looks odd about "+
           "it though... Might want to take a closer look");
  add_item("tree|trees","Many trees grow here. The path you are on winds its "+
           "way between them");
  add_item("bush|bushes","There are plenty of bushes growing around here");
  add_item("island","You are somewhere on the west side of this island");
  add_item("ground","It's what you're standing on, surprisingly");
  add_item("forest","It looks as if you'll come out of it if you continue "+
           "eastwards");
  add_item("obelisk","#obelisk_desc");
  add_item("stones","#stones_desc");
  add_item("road","#road_desc");
  add_item("stone","The obelisk is made of stone that was once white, but "+
           "now it is grey and cracked");
  add_item("vine|vines","The vines cling to the obelisk, almost covering it "+
           "completely");
  add_item("sentry","Well there is no sentry here. It only looks as if the "+
           "obelisk is guarding the path");

  add_exit(NROOM+"clearing","west");
  add_exit(NROOM+"path2","southeast");

  reset(0);
}

void reset(int arg)
{
  tell_room(TO,"Suddenly the vines on the obelisk grow back again to "+
            "cover it.\nHow eerie...\n");
  obelisk_cleared = 0;
  remove_item("runes");
  remove_item("surface");
}

void init(void)
{
  add_action("do_clear","clear");
  add_action("do_search","search");
  add_action("do_read","read");
}

int do_clear(string str)
{
  if(str == "obelisk" || str == "vines")
  {
    W("You rip some of the vines from the obelisk and clear a surface, "+
      "uncovering some runes!\n");
    S(TP->QN+" clears some of the vines from the obelisk.\n");
    obelisk_cleared = 1;
    add_item("surface","There are some runes on the surface of the obelisk");
    add_item("runes","Might try to read them?");
    return 1;
  }
  notify_fail("Clear what?\n");
}

int do_search(string str)
{
  if(str == "path" || str == "ground")
  {
    if(TP->query_skill("perception") > random(15))
    {
      W("Some of the stones on the ground look like paving stones. Perhaps "+
        "this path was once a road? Must have been a long time ago though, "+
        "considering how it looks now.\n");
      found_stones += ({TP->QRN});
      return 1;
    }
    else
    {
      W("Hmm, you search but don't find anything this time...\n");
      return 1;
    }
  }
}

int do_read(string str)
{
  if(str == "runes")
  {
    if(obelisk_cleared)
    {
      W("The runes look ancient, but you can somehow read them anyway. They "+
        "say: In Cors Name, Kordar lays claim to this Isle. It is dated "+
        "Februarius 18, 687.\n");
      S(TP->QN+" reads the runes on the obelisk.\n");
      return 1;
    }
  }
}

void obelisk_desc(void)
{
  if(!obelisk_cleared)
  {
    W("The obelisk is about a foot taller than you are, made of once white "+
      "stone it seems. It is almost totally overgrown by vines now. Seems "+
      "like there might be something interesting beneath the vines if you "+
      "could clear them.\n");
  }
  else
  {
    W("The obelisk is about a foot taller than you are, made of once white "+
      "stone it seems. It is almost totally overgrown by vines now. A small "+
      "surface of the obelisk has been cleared of vines though, and you see "+
      "some runes there.\n");
  }
}

void stones_desc(void)
{
  if(member_array(TP->QRN,found_stones) != -1)
  {
    W("They look like old paving stones from a very old road.\n");
  }
  else
  {
    W("There are no stones here.\n");
  }
}

void road_desc(void)
{
  if(member_array(TP->QRN,found_stones) != -1)
  {
    W("It might once have been a road, but by the look of it, that was "+
      "a long time ago.\n");
  }
  else
  {
    W("There is no road here.\n");
  }
}


text:
.class public Lcom/android/gallery3d/common/FileCache;
.super Ljava/lang/Object;
.source "FileCache.java"

# interfaces
.implements Ljava/io/Closeable;

# annotations
.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Lcom/android/gallery3d/common/FileCache$DatabaseHelper;,
        Lcom/android/gallery3d/common/FileCache$FileEntry;
    }
.end annotation

# static fields
.field private static final FREESPACE_ORDER_BY:Ljava/lang/String;

.field private static final FREESPACE_PROJECTION:[Ljava/lang/String;

.field private static final PROJECTION_SIZE_SUM:[Ljava/lang/String;

.field private static final TABLE_NAME:Ljava/lang/String;

# instance fields
.field private mDbHelper:Lcom/android/gallery3d/common/FileCache$DatabaseHelper;

.field private mRootDir:Ljava/io/File;

# direct methods
.method static constructor <clinit>()V
    .locals 6

    .prologue
    const/4 v5, 0x1

    const/4 v4, 0x0

    .line 37
    sget-object v0, Lcom/android/gallery3d/common/FileCache$FileEntry;->SCHEMA:Lcom/android/gallery3d/common/EntrySchema;

    invoke-virtual {v0}, Lcom/android/gallery3d/common/EntrySchema;->getTableName()Ljava/lang/String;

    move-result-object v0

    sput-object v0, Lcom/android/gallery3d/common/FileCache;->TABLE_NAME:Ljava/lang/String;

    .line 44
    new-array v0, v5, [Ljava/lang/String;

    const-string v1, "sum(%s)"

    new-array v2, v5, [Ljava/lang/Object;

    const-string v3, "size"

    aput-object v3, v2, v4

    invoke-static {v1, v2}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;

    move-result-object v1

    aput-object v1, v0, v4

    sput-object v0, Lcom/android/gallery3d/common/FileCache;->PROJECTION_SIZE_SUM:[Ljava/lang/String;

    .line 46
    const/4 v0, 0x4

    new-array v0, v0, [Ljava/lang/String;

    const-string v1, "_id"

    aput-object v1, v0, v4

    const-string v1, "filename"

    aput-object v1, v0, v5

    const/4 v1, 0x2

    const-string v2, "content_url"

    aput-object v2, v0, v1

    const/4 v1, 0x3

    const-string v2, "size"

    aput-object v2, v0, v1

    sput-object v0, Lcom/android/gallery3d/common/FileCache;->FREESPACE_PROJECTION:[Ljava/lang/String;

    .line 49
    const-string v0, "%s ASC"

    new-array v1, v5, [Ljava/lang/Object;

    const-string v2, "last_access"

    aput-object v2, v1, v4

    invoke-static {v0, v1}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;

    move-result-object v0

    sput-object v0, Lcom/android/gallery3d/common/FileCache;->FREESPACE_ORDER_BY:Ljava/lang/String;

    return-void
.end method

.method static synthetic access$300(Lcom/android/gallery3d/common/FileCache;)Ljava/io/File;
    .locals 1
    .parameter "x0"

    .prologue
    .line 32
    iget-object v0, p0, Lcom/android/gallery3d/common/FileCache;->mRootDir:Ljava/io/File;

    return-object v0
.end method

# virtual methods
.method public close()V
    .locals 1

    .prologue
    .line 97
    iget-object v0, p0, Lcom/android/gallery3d/common/FileCache;->mDbHelper:Lcom/android/gallery3d/common/FileCache$DatabaseHelper;

    invoke-virtual {v0}, Landroid/database/sqlite/SQLiteOpenHelper;->close()V

    .line 98
    return-void
.end method


text:
/* jsTree default theme */
.jstree-node,
.jstree-children,
.jstree-container-ul
{
    display: block;

    margin: 0;
    padding: 0;

    list-style-type: none;
    list-style-image: none;
}

.jstree-node
{
    white-space: nowrap;
}

.jstree-anchor
{
    display: inline-block;

    margin: 0;
    padding: 0 4px 0 1px;

    vertical-align: top;
    white-space: nowrap;

    color: black;
}

.jstree-anchor:focus
{
    outline: 0;
}

.jstree-anchor,
.jstree-anchor:link,
.jstree-anchor:visited,
.jstree-anchor:hover,
.jstree-anchor:active
{
    text-decoration: none;

    color: inherit;
}

.jstree-icon
{
    display: inline-block;

    margin: 0;
    padding: 0;

    text-align: center;
    vertical-align: top;
    text-decoration: none;
}

.jstree-icon:empty
{
    display: inline-block;

    margin: 0;
    padding: 0;

    text-align: center;
    vertical-align: top;
    text-decoration: none;
}

.jstree-ocl
{
    cursor: pointer;
}

.jstree-leaf > .jstree-ocl
{
    cursor: default;
}

.jstree .jstree-open > .jstree-children
{
    display: block;
}

.jstree .jstree-closed > .jstree-children,
.jstree .jstree-leaf > .jstree-children
{
    display: none;
}

.jstree-anchor > .jstree-themeicon
{
    margin-right: 2px;
}

.jstree-no-icons .jstree-themeicon,
.jstree-anchor > .jstree-themeicon-hidden
{
    display: none;
}

.jstree-hidden,
.jstree-node.jstree-hidden
{
    display: none;
}

.jstree-rtl .jstree-anchor
{
    padding: 0 1px 0 4px;
}

.jstree-rtl .jstree-anchor > .jstree-themeicon
{
    margin-right: 0;
    margin-left: 2px;
}

.jstree-rtl .jstree-node
{
    margin-left: 0;
}

.jstree-rtl .jstree-container-ul > .jstree-node
{
    margin-right: 0;
}

.jstree-wholerow-ul
{
    position: relative;

    display: inline-block;

    min-width: 100%;
}

.jstree-wholerow-ul .jstree-leaf > .jstree-ocl
{
    cursor: pointer;
}

.jstree-wholerow-ul .jstree-anchor,
.jstree-wholerow-ul .jstree-icon
{
    position: relative;
}

.jstree-wholerow-ul .jstree-wholerow
{
    position: absolute;
    left: 0;

    width: 100%;

    cursor: pointer;
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
}

.vakata-context
{
    display: none;
}

.vakata-context,
.vakata-context ul
{
    position: absolute;

    margin: 0;
    padding: 2px;

    border: 1px solid #979797;
    background: #f5f5f5;
    -webkit-box-shadow: 2px 2px 2px #999;
            box-shadow: 2px 2px 2px #999;
}

.vakata-context ul
{
    left: 100%;

    margin-top: -2.7em;
    margin-left: -4px;

    list-style: none;
}

.vakata-context .vakata-context-right ul
{
    right: 100%;
    left: auto;

    margin-right: -4px;
    margin-left: auto;
}

.vakata-context li
{
    list-style: none;
}

.vakata-context li > a
{
    line-height: 2.4em;

    display: block;

    width: auto;
    padding: 0 2em 0 2em;

    white-space: nowrap;
    text-decoration: none;

    color: black;
    border-radius: 1px;
    text-shadow: 1px 1px 0 white;
}

.vakata-context li > a:hover
{
    position: relative;

    background-color: #e8eff7;
    -webkit-box-shadow: 0 0 2px #0a6aa1;
            box-shadow: 0 0 2px #0a6aa1;
}

.vakata-context li > a.vakata-context-parent
{
    background-image: url('data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAIORI4JlrqN1oMSnmmZDQUAOw==');
    background-repeat: no-repeat;
    background-position: right center;
}

.vakata-context li > a:focus
{
    outline: 0;
}

.vakata-context .vakata-context-hover > a
{
    position: relative;

    background-color: #e8eff7;
    -webkit-box-shadow: 0 0 2px #0a6aa1;
            box-shadow: 0 0 2px #0a6aa1;
}

.vakata-context .vakata-context-separator > a,
.vakata-context .vakata-context-separator > a:hover
{
    height: 1px;
    min-height: 1px;
    max-height: 1px;
    margin: 0 0 0 2.4em;
    padding: 0;

    border: 0;
    border-top: 1px solid #e2e3e3;
    border-left: 1px solid #e0e0e0;
    border-radius: 0;
    background: white;
    -webkit-box-shadow: 0 0 0 transparent;
            box-shadow: 0 0 0 transparent;
    text-shadow: 0 0 0 transparent;
}

.vakata-context .vakata-contextmenu-disabled a,
.vakata-context .vakata-contextmenu-disabled a:hover
{
    color: silver;
    border: 0;
    background-color: transparent;
    -webkit-box-shadow: 0 0 0;
            box-shadow: 0 0 0;
}

.vakata-context li > a > i
{
    line-height: 2.4em;

    display: inline-block;

    width: 2.4em;
    height: 2.4em;
    margin: 0 0 0 -2em;

    text-align: center;
    vertical-align: top;
    text-decoration: none;

    background: transparent;
}

.vakata-context li > a > i:empty
{
    line-height: 2.4em;

    width: 2.4em;
}

.vakata-context li > a .vakata-contextmenu-sep
{
    display: inline-block;

    width: 1px;
    height: 2.4em;
    margin: 0 .5em 0 0;

    border-left: 1px solid #e2e3e3;
    background: white;
}

.vakata-context .vakata-contextmenu-shortcut
{
    font-size: .8em;

    display: none;

    opacity: .5;
    color: silver;
}

.vakata-context-rtl ul
{
    right: 100%;
    left: auto;

    margin-right: -4px;
    margin-left: auto;
}

.vakata-context-rtl li > a.vakata-context-parent
{
    background-image: url('data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAINjI+AC7rWHIsPtmoxLAA7');
    background-repeat: no-repeat;
    background-position: left center;
}

.vakata-context-rtl .vakata-context-separator > a
{
    margin: 0 2.4em 0 0;

    border-right: 1px solid #e2e3e3;
    border-left: 0;
}

.vakata-context-rtl .vakata-context-left ul
{
    right: auto;
    left: 100%;

    margin-right: auto;
    margin-left: -4px;
}

.vakata-context-rtl li > a > i
{
    margin: 0 -2em 0 0;
}

.vakata-context-rtl li > a .vakata-contextmenu-sep
{
    margin: 0 0 0 .5em;

    border-left-color: white;
    background: #e2e3e3;
}

#jstree-marker
{
    font-size: 0;
    line-height: 0;

    position: absolute;
    top: 0;
    left: 0;

    width: 0;
    height: 0;
    margin: -5px 0 0 0;
    padding: 0;

    border-top: 5px solid transparent;
    border-right: 0;
    border-bottom: 5px solid transparent;
    border-left: 5px solid;
}

#jstree-dnd
{
    line-height: 16px;

    margin: 0;
    padding: 4px;
}

#jstree-dnd .jstree-icon,
#jstree-dnd .jstree-copy
{
    display: inline-block;

    width: 16px;
    height: 16px;
    margin: 0 2px 0 0;
    padding: 0;

    text-decoration: none;
}

#jstree-dnd .jstree-ok
{
    background: green;
}

#jstree-dnd .jstree-er
{
    background: red;
}

#jstree-dnd .jstree-copy
{
    margin: 0 2px 0 2px;
}

.jstree-default .jstree-node,
.jstree-default .jstree-icon
{
    background-color: transparent;
    background-repeat: no-repeat;
}

.jstree-default .jstree-anchor,
.jstree-default .jstree-wholerow
{
    -webkit-transition: background-color .15s, -webkit-box-shadow .15s;
         -o-transition: background-color .15s, box-shadow .15s;
            transition: background-color .15s, box-shadow .15s;
}

.jstree-default .jstree-hovered
{
    color: #89bceb;
    border-radius: 2px;
    background: #f3f7f9;
}
.jstree-default .jstree-hovered .jstree-themeicon-custom
{
    color: #76838f;
}

.jstree-default .jstree-context
{
    border-radius: 2px;
    background: #e7f4f9;
    -webkit-box-shadow: inset 0 0 1px #ccc;
            box-shadow: inset 0 0 1px #ccc;
}

.jstree-default .jstree-clicked
{
    color: #76838f;
    border-radius: 2px;
    background: #f3f7f9;
}

.jstree-default .jstree-no-icons .jstree-anchor > .jstree-themeicon
{
    display: none;
}

.jstree-default .jstree-disabled
{
    color: #ccd5db;
    background: transparent;
}

.jstree-default .jstree-disabled.jstree-hovered
{
    background: transparent;
    -webkit-box-shadow: none;
            box-shadow: none;
}

.jstree-default .jstree-disabled.jstree-clicked
{
    background: #efefef;
}

.jstree-default .jstree-disabled > .jstree-icon
{
    opacity: .8;

            filter: url('data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'jstree-grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#jstree-grayscale');
    /* Firefox 10+ */
            filter: gray;
    /* IE6-9 */
    -webkit-filter: grayscale(100%);
    /* Chrome 19+ & Safari 6+ */
}

.jstree-default .jstree-search
{
    font-weight: bold;
    font-style: italic;

    color: #8b0000;
}

.jstree-default .jstree-no-checkboxes .jstree-checkbox
{
    display: none !important;
}

.jstree-default.jstree-checkbox-no-clicked .jstree-clicked
{
    background: transparent;
    -webkit-box-shadow: none;
            box-shadow: none;
}

.jstree-default.jstree-checkbox-no-clicked .jstree-clicked.jstree-hovered
{
    background: #e7f4f9;
}

.jstree-default.jstree-checkbox-no-clicked > .jstree-wholerow-ul .jstree-wholerow-clicked
{
    background: transparent;
}

.jstree-default.jstree-checkbox-no-clicked > .jstree-wholerow-ul .jstree-wholerow-clicked.jstree-wholerow-hovered
{
    background: #e7f4f9;
}

.jstree-default > .jstree-striped
{
    display: inline-block;

    min-width: 100%;

    background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAMAAAB/qqA+AAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMNAMM9s3UAAAAXSURBVHjajcEBAQAAAIKg/H/aCQZ70AUBjAATb6YPDgAAAABJRU5ErkJggg==') left top repeat;
}

.jstree-default > .jstree-wholerow-ul .jstree-hovered,
.jstree-default > .jstree-wholerow-ul .jstree-clicked
{
    border-radius: 0;
    background: transparent;
    -webkit-box-shadow: none;
            box-shadow: none;
}

.jstree-default .jstree-wholerow
{
    -webkit-box-sizing: border-box;
       -moz-box-sizing: border-box;
            box-sizing: border-box;
}

.jstree-default .jstree-wholerow-hovered
{
    background: #e7f4f9;
}

.jstree-default .jstree-wholerow-clicked
{
    background: #beebff;
    background: -webkit-linear-gradient(top, #beebff 0%, #a8e4ff 100%);
    background: -webkit-gradient(linear, left top, left bottom, from(#beebff), to(#a8e4ff));
    background:      -o-linear-gradient(top, #beebff 0%, #a8e4ff 100%);
    background:         linear-gradient(to bottom, #beebff 0%, #a8e4ff 100%);
}

.jstree-default .jstree-node
{
    line-height: 24px;

    min-width: 24px;
    min-height: 24px;
    margin-left: 24px;
}

.jstree-default .jstree-anchor
{
    line-height: 24px;

    height: 24px;
}

.jstree-default .jstree-icon
{
    line-height: 24px;

    width: 24px;
    height: 24px;
}

.jstree-default .jstree-icon:empty
{
    line-height: 24px;

    width: 24px;
    height: 24px;
}

.jstree-default.jstree-rtl .jstree-node
{
    margin-right: 24px;
}

.jstree-default .jstree-wholerow
{
    height: 24px;
}

.jstree-default .jstree-node,
.jstree-default .jstree-icon
{
    background-image: url('32px.png');
}

.jstree-default .jstree-node
{
    background-repeat: repeat-y;
    background-position: -298px -4px;
}

.jstree-default .jstree-last
{
    background: transparent;
}

.jstree-default .jstree-open > .jstree-ocl
{
    background-position: -125px -8px;
}

.jstree-default .jstree-closed > .jstree-ocl
{
    background-position: -96px -10px;
}

.jstree-default .jstree-leaf > .jstree-ocl
{
    background-position: -62px -8px;
}

.jstree-default .jstree-themeicon
{
    background-position: -267px -2px;
}

.jstree-default > .jstree-no-dots .jstree-node,
.jstree-default > .jstree-no-dots .jstree-leaf > .jstree-ocl
{
    background: transparent;
}

.jstree-default > .jstree-no-dots .jstree-open > .jstree-ocl
{
    background-position: -36px -4px;
}

.jstree-default > .jstree-no-dots .jstree-closed > .jstree-ocl
{
    background-position: -4px -4px;
}

.jstree-default .jstree-disabled
{
    background: transparent;
}

.jstree-default .jstree-disabled.jstree-hovered
{
    background: transparent;
}

.jstree-default .jstree-disabled.jstree-clicked
{
    background: #efefef;
}

.jstree-default .jstree-checkbox
{
    background-position: -164px -1px;
}

.jstree-default .jstree-checkbox:hover
{
    background-position: -164px -44px;
}

.jstree-default.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox,
.jstree-default .jstree-checked > .jstree-checkbox
{
    background-position: -232px -1px;
}

.jstree-default.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover,
.jstree-default .jstree-checked > .jstree-checkbox:hover
{
    background-position: -232px -44px;
}

.jstree-default .jstree-anchor > .jstree-undetermined
{
    background-position: -198px -1px;
}

.jstree-default .jstree-anchor > .jstree-undetermined:hover
{
    background-position: -198px -44px;
}

.jstree-default .jstree-checkbox-disabled
{
    opacity: .8;

            filter: url('data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'jstree-grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#jstree-grayscale');
    /* Firefox 10+ */
            filter: gray;
    /* IE6-9 */
    -webkit-filter: grayscale(100%);
    /* Chrome 19+ & Safari 6+ */
}

.jstree-default > .jstree-striped
{
    -webkit-background-size: auto 48px;
            background-size: auto 48px;
}

.jstree-default.jstree-rtl .jstree-node
{
    background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==');
    background-repeat: repeat-y;
    background-position: 100% 1px;
}

.jstree-default.jstree-rtl .jstree-last
{
    background: transparent;
}

.jstree-default.jstree-rtl .jstree-open > .jstree-ocl
{
    background-position: -132px -36px;
}

.jstree-default.jstree-rtl .jstree-closed > .jstree-ocl
{
    background-position: -100px -36px;
}

.jstree-default.jstree-rtl .jstree-leaf > .jstree-ocl
{
    background-position: -68px -36px;
}

.jstree-default.jstree-rtl > .jstree-no-dots .jstree-node,
.jstree-default.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl
{
    background: transparent;
}

.jstree-default.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl
{
    background-position: -36px -36px;
}

.jstree-default.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl
{
    background-position: -4px -36px;
}

.jstree-default .jstree-themeicon-custom
{
    background-color: transparent;
    background-image: none;
    background-position: 0 0;
}

.jstree-default > .jstree-container-ul .jstree-loading > .jstree-ocl
{
    background: url('throbber.gif') center center no-repeat;
}

.jstree-default .jstree-file
{
    background: url('32px.png') -100px -68px no-repeat;
}

.jstree-default .jstree-folder
{
    background: url('32px.png') -260px -4px no-repeat;
}

.jstree-default > .jstree-container-ul > .jstree-node
{
    margin-right: 0;
    margin-left: 0;
}

#jstree-dnd.jstree-default
{
    line-height: 24px;

    padding: 0 4px;
}

#jstree-dnd.jstree-default .jstree-ok,
#jstree-dnd.jstree-default .jstree-er
{
    background-color: transparent;
    background-image: url('32px.png');
    background-repeat: no-repeat;
}

#jstree-dnd.jstree-default i
{
    line-height: 24px;

    width: 24px;
    height: 24px;

    background: transparent;
}

#jstree-dnd.jstree-default .jstree-ok
{
    background-position: -4px -68px;
}

#jstree-dnd.jstree-default .jstree-er
{
    background-position: -36px -68px;
}

.jstree-default.jstree-rtl .jstree-node
{
    background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==');
}

.jstree-default.jstree-rtl .jstree-last
{
    background: transparent;
}

.jstree-default-small .jstree-node
{
    line-height: 18px;

    min-width: 18px;
    min-height: 18px;
    margin-left: 18px;
}

.jstree-default-small .jstree-anchor
{
    line-height: 18px;

    height: 18px;
}

.jstree-default-small .jstree-icon
{
    line-height: 18px;

    width: 18px;
    height: 18px;
}

.jstree-default-small .jstree-icon:empty
{
    line-height: 18px;

    width: 18px;
    height: 18px;
}

.jstree-default-small.jstree-rtl .jstree-node
{
    margin-right: 18px;
}

.jstree-default-small .jstree-wholerow
{
    height: 18px;
}

.jstree-default-small .jstree-node,
.jstree-default-small .jstree-icon
{
    background-image: url('32px.png');
}

.jstree-default-small .jstree-node
{
    background-repeat: repeat-y;
    background-position: -295px -7px;
}

.jstree-default-small .jstree-last
{
    background: transparent;
}

.jstree-default-small .jstree-open > .jstree-ocl
{
    background-position: -135px -7px;
}

.jstree-default-small .jstree-closed > .jstree-ocl
{
    background-position: -103px -7px;
}

.jstree-default-small .jstree-leaf > .jstree-ocl
{
    background-position: -71px -7px;
}

.jstree-default-small .jstree-themeicon
{
    background-position: -263px -7px;
}

.jstree-default-small > .jstree-no-dots .jstree-node,
.jstree-default-small > .jstree-no-dots .jstree-leaf > .jstree-ocl
{
    background: transparent;
}

.jstree-default-small > .jstree-no-dots .jstree-open > .jstree-ocl
{
    background-position: -39px -7px;
}

.jstree-default-small > .jstree-no-dots .jstree-closed > .jstree-ocl
{
    background-position: -7px -7px;
}

.jstree-default-small .jstree-disabled
{
    background: transparent;
}

.jstree-default-small .jstree-disabled.jstree-hovered
{
    background: transparent;
}

.jstree-default-small .jstree-disabled.jstree-clicked
{
    background: #efefef;
}

.jstree-default-small .jstree-checkbox
{
    background-position: -167px -7px;
}

.jstree-default-small .jstree-checkbox:hover
{
    background-position: -167px -39px;
}

.jstree-default-small.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox,
.jstree-default-small .jstree-checked > .jstree-checkbox
{
    background-position: -231px -7px;
}

.jstree-default-small.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover,
.jstree-default-small .jstree-checked > .jstree-checkbox:hover
{
    background-position: -231px -39px;
}

.jstree-default-small .jstree-anchor > .jstree-undetermined
{
    background-position: -199px -7px;
}

.jstree-default-small .jstree-anchor > .jstree-undetermined:hover
{
    background-position: -199px -39px;
}

.jstree-default-small .jstree-checkbox-disabled
{
    opacity: .8;

            filter: url('data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'jstree-grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#jstree-grayscale');
    /* Firefox 10+ */
            filter: gray;
    /* IE6-9 */
    -webkit-filter: grayscale(100%);
    /* Chrome 19+ & Safari 6+ */
}

.jstree-default-small > .jstree-striped
{
    -webkit-background-size: auto 36px;
            background-size: auto 36px;
}

.jstree-default-small.jstree-rtl .jstree-node
{
    background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==');
    background-repeat: repeat-y;
    background-position: 100% 1px;
}

.jstree-default-small.jstree-rtl .jstree-last
{
    background: transparent;
}

.jstree-default-small.jstree-rtl .jstree-open > .jstree-ocl
{
    background-position: -135px -39px;
}

.jstree-default-small.jstree-rtl .jstree-closed > .jstree-ocl
{
    background-position: -103px -39px;
}

.jstree-default-small.jstree-rtl .jstree-leaf > .jstree-ocl
{
    background-position: -71px -39px;
}

.jstree-default-small.jstree-rtl > .jstree-no-dots .jstree-node,
.jstree-default-small.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl
{
    background: transparent;
}

.jstree-default-small.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl
{
    background-position: -39px -39px;
}

.jstree-default-small.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl
{
    background-position: -7px -39px;
}

.jstree-default-small .jstree-themeicon-custom
{
    background-color: transparent;
    background-image: none;
    background-position: 0 0;
}

.jstree-default-small > .jstree-container-ul .jstree-loading > .jstree-ocl
{
    background: url('throbber.gif') center center no-repeat;
}

.jstree-default-small .jstree-file
{
    background: url('32px.png') -103px -71px no-repeat;
}

.jstree-default-small .jstree-folder
{
    background: url('32px.png') -263px -7px no-repeat;
}

.jstree-default-small > .jstree-container-ul > .jstree-node
{
    margin-right: 0;
    margin-left: 0;
}

#jstree-dnd.jstree-default-small
{
    line-height: 18px;

    padding: 0 4px;
}

#jstree-dnd.jstree-default-small .jstree-ok,
#jstree-dnd.jstree-default-small .jstree-er
{
    background-color: transparent;
    background-image: url('32px.png');
    background-repeat: no-repeat;
}

#jstree-dnd.jstree-default-small i
{
    line-height: 18px;

    width: 18px;
    height: 18px;

    background: transparent;
}

#jstree-dnd.jstree-default-small .jstree-ok
{
    background-position: -7px -71px;
}

#jstree-dnd.jstree-default-small .jstree-er
{
    background-position: -39px -71px;
}

.jstree-default-small.jstree-rtl .jstree-node
{
    background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAACAQMAAABv1h6PAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMHBgAAiABBI4gz9AAAAABJRU5ErkJggg==');
}

.jstree-default-small.jstree-rtl .jstree-last
{
    background: transparent;
}

.jstree-default-large .jstree-node
{
    line-height: 32px;

    min-width: 32px;
    min-height: 32px;
    margin-left: 32px;
}

.jstree-default-large .jstree-anchor
{
    line-height: 32px;

    height: 32px;
}

.jstree-default-large .jstree-icon
{
    line-height: 32px;

    width: 32px;
    height: 32px;
}

.jstree-default-large .jstree-icon:empty
{
    line-height: 32px;

    width: 32px;
    height: 32px;
}

.jstree-default-large.jstree-rtl .jstree-node
{
    margin-right: 32px;
}

.jstree-default-large .jstree-wholerow
{
    height: 32px;
}

.jstree-default-large .jstree-node,
.jstree-default-large .jstree-icon
{
    background-image: url('32px.png');
}

.jstree-default-large .jstree-node
{
    background-repeat: repeat-y;
    background-position: -288px 0;
}

.jstree-default-large .jstree-last
{
    background: transparent;
}

.jstree-default-large .jstree-open > .jstree-ocl
{
    background-position: -128px 0;
}

.jstree-default-large .jstree-closed > .jstree-ocl
{
    background-position: -96px 0;
}

.jstree-default-large .jstree-leaf > .jstree-ocl
{
    background-position: -64px 0;
}

.jstree-default-large .jstree-themeicon
{
    background-position: -256px 0;
}

.jstree-default-large > .jstree-no-dots .jstree-node,
.jstree-default-large > .jstree-no-dots .jstree-leaf > .jstree-ocl
{
    background: transparent;
}

.jstree-default-large > .jstree-no-dots .jstree-open > .jstree-ocl
{
    background-position: -32px 0;
}

.jstree-default-large > .jstree-no-dots .jstree-closed > .jstree-ocl
{
    background-position: 0 0;
}

.jstree-default-large .jstree-disabled
{
    background: transparent;
}

.jstree-default-large .jstree-disabled.jstree-hovered
{
    background: transparent;
}

.jstree-default-large .jstree-disabled.jstree-clicked
{
    background: #efefef;
}

.jstree-default-large .jstree-checkbox
{
    background-position: -160px 0;
}

.jstree-default-large .jstree-checkbox:hover
{
    background-position: -160px -32px;
}

.jstree-default-large.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox,
.jstree-default-large .jstree-checked > .jstree-checkbox
{
    background-position: -224px 0;
}

.jstree-default-large.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover,
.jstree-default-large .jstree-checked > .jstree-checkbox:hover
{
    background-position: -224px -32px;
}

.jstree-default-large .jstree-anchor > .jstree-undetermined
{
    background-position: -192px 0;
}

.jstree-default-large .jstree-anchor > .jstree-undetermined:hover
{
    background-position: -192px -32px;
}

.jstree-default-large .jstree-checkbox-disabled
{
    opacity: .8;

            filter: url('data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'jstree-grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#jstree-grayscale');
    /* Firefox 10+ */
            filter: gray;
    /* IE6-9 */
    -webkit-filter: grayscale(100%);
    /* Chrome 19+ & Safari 6+ */
}

.jstree-default-large > .jstree-striped
{
    -webkit-background-size: auto 64px;
            background-size: auto 64px;
}

.jstree-default-large.jstree-rtl .jstree-node
{
    background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==');
    background-repeat: repeat-y;
    background-position: 100% 1px;
}

.jstree-default-large.jstree-rtl .jstree-last
{
    background: transparent;
}

.jstree-default-large.jstree-rtl .jstree-open > .jstree-ocl
{
    background-position: -128px -32px;
}

.jstree-default-large.jstree-rtl .jstree-closed > .jstree-ocl
{
    background-position: -96px -32px;
}

.jstree-default-large.jstree-rtl .jstree-leaf > .jstree-ocl
{
    background-position: -64px -32px;
}

.jstree-default-large.jstree-rtl > .jstree-no-dots .jstree-node,
.jstree-default-large.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl
{
    background: transparent;
}

.jstree-default-large.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl
{
    background-position: -32px -32px;
}

.jstree-default-large.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl
{
    background-position: 0 -32px;
}

.jstree-default-large .jstree-themeicon-custom
{
    background-color: transparent;
    background-image: none;
    background-position: 0 0;
}

.jstree-default-large > .jstree-container-ul .jstree-loading > .jstree-ocl
{
    background: url('throbber.gif') center center no-repeat;
}

.jstree-default-large .jstree-file
{
    background: url('32px.png') -96px -64px no-repeat;
}

.jstree-default-large .jstree-folder
{
    background: url('32px.png') -256px 0 no-repeat;
}

.jstree-default-large > .jstree-container-ul > .jstree-node
{
    margin-right: 0;
    margin-left: 0;
}

#jstree-dnd.jstree-default-large
{
    line-height: 32px;

    padding: 0 4px;
}

#jstree-dnd.jstree-default-large .jstree-ok,
#jstree-dnd.jstree-default-large .jstree-er
{
    background-color: transparent;
    background-image: url('32px.png');
    background-repeat: no-repeat;
}

#jstree-dnd.jstree-default-large i
{
    line-height: 32px;

    width: 32px;
    height: 32px;

    background: transparent;
}

#jstree-dnd.jstree-default-large .jstree-ok
{
    background-position: 0 -64px;
}

#jstree-dnd.jstree-default-large .jstree-er
{
    background-position: -32px -64px;
}

.jstree-default-large.jstree-rtl .jstree-node
{
    background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAACAQMAAAAD0EyKAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjgIIGBgABCgCBvVLXcAAAAABJRU5ErkJggg==');
}

.jstree-default-large.jstree-rtl .jstree-last
{
    background: transparent;
}

@media (max-width: 768px)
{
    #jstree-dnd.jstree-dnd-responsive
    {
        font-size: 1.1em;
        font-weight: bold;
        line-height: 40px;

        text-shadow: 1px 1px white;
    }
    #jstree-dnd.jstree-dnd-responsive > i
    {
        width: 40px;
        height: 40px;

        background: transparent;
    }
    #jstree-dnd.jstree-dnd-responsive > .jstree-ok
    {
        background-image: url('40px.png');
        background-position: 0 -200px;
        -webkit-background-size: 120px 240px;
                background-size: 120px 240px;
    }
    #jstree-dnd.jstree-dnd-responsive > .jstree-er
    {
        background-image: url('40px.png');
        background-position: -40px -200px;
        -webkit-background-size: 120px 240px;
                background-size: 120px 240px;
    }
    #jstree-marker.jstree-dnd-responsive
    {
        margin-top: -10px;

        border-top-width: 10px;
        border-bottom-width: 10px;
        border-left-width: 10px;
    }
}

@media (max-width: 768px)
{
    .jstree-default-responsive
    {
        /*
	.jstree-open > .jstree-ocl,
	.jstree-closed > .jstree-ocl { border-radius:20px; background-color:white; }
	*/
    }
    .jstree-default-responsive .jstree-icon
    {
        background-image: url('40px.png');
    }
    .jstree-default-responsive .jstree-node,
    .jstree-default-responsive .jstree-leaf > .jstree-ocl
    {
        background: transparent;
    }
    .jstree-default-responsive .jstree-node
    {
        line-height: 40px;

        min-width: 40px;
        min-height: 40px;
        margin-left: 40px;

        white-space: nowrap;
    }
    .jstree-default-responsive .jstree-anchor
    {
        line-height: 40px;

        height: 40px;
    }
    .jstree-default-responsive .jstree-icon,
    .jstree-default-responsive .jstree-icon:empty
    {
        line-height: 40px;

        width: 40px;
        height: 40px;
    }
    .jstree-default-responsive > .jstree-container-ul > .jstree-node
    {
        margin-left: 0;
    }
    .jstree-default-responsive.jstree-rtl .jstree-node
    {
        margin-right: 40px;
        margin-left: 0;
    }
    .jstree-default-responsive.jstree-rtl .jstree-container-ul > .jstree-node
    {
        margin-right: 0;
    }
    .jstree-default-responsive .jstree-ocl,
    .jstree-default-responsive .jstree-themeicon,
    .jstree-default-responsive .jstree-checkbox
    {
        -webkit-background-size: 120px 240px;
                background-size: 120px 240px;
    }
    .jstree-default-responsive .jstree-leaf > .jstree-ocl
    {
        background: transparent;
    }
    .jstree-default-responsive .jstree-open > .jstree-ocl
    {
        background-position: 0 0 !important;
    }
    .jstree-default-responsive .jstree-closed > .jstree-ocl
    {
        background-position: 0 -40px !important;
    }
    .jstree-default-responsive.jstree-rtl .jstree-closed > .jstree-ocl
    {
        background-position: -40px 0 !important;
    }
    .jstree-default-responsive .jstree-themeicon
    {
        background-position: -40px -40px;
    }
    .jstree-default-responsive .jstree-checkbox,
    .jstree-default-responsive .jstree-checkbox:hover
    {
        background-position: -40px -80px;
    }
    .jstree-default-responsive.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox,
    .jstree-default-responsive.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover,
    .jstree-default-responsive .jstree-checked > .jstree-checkbox,
    .jstree-default-responsive .jstree-checked > .jstree-checkbox:hover
    {
        background-position: 0 -80px;
    }
    .jstree-default-responsive .jstree-anchor > .jstree-undetermined,
    .jstree-default-responsive .jstree-anchor > .jstree-undetermined:hover
    {
        background-position: 0 -120px;
    }
    .jstree-default-responsive .jstree-anchor
    {
        font-size: 1.1em;
        font-weight: bold;

        text-shadow: 1px 1px white;
    }
    .jstree-default-responsive > .jstree-striped
    {
        background: transparent;
    }
    .jstree-default-responsive .jstree-wholerow
    {
        height: 40px;

        border-top: 1px solid rgba(255, 255, 255, .7);
        border-bottom: 1px solid rgba(64, 64, 64, .2);
        background: #ebebeb;
    }
    .jstree-default-responsive .jstree-wholerow-hovered
    {
        background: #e7f4f9;
    }
    .jstree-default-responsive .jstree-wholerow-clicked
    {
        background: #beebff;
    }
    .jstree-default-responsive .jstree-children .jstree-last > .jstree-wholerow
    {
        -webkit-box-shadow: inset 0 -6px 3px -5px #666;
                box-shadow: inset 0 -6px 3px -5px #666;
    }
    .jstree-default-responsive .jstree-children .jstree-open > .jstree-wholerow
    {
        border-top: 0;
        -webkit-box-shadow: inset 0 6px 3px -5px #666;
                box-shadow: inset 0 6px 3px -5px #666;
    }
    .jstree-default-responsive .jstree-children .jstree-open + .jstree-open
    {
        -webkit-box-shadow: none;
                box-shadow: none;
    }
    .jstree-default-responsive .jstree-node,
    .jstree-default-responsive .jstree-icon,
    .jstree-default-responsive .jstree-node > .jstree-ocl,
    .jstree-default-responsive .jstree-themeicon,
    .jstree-default-responsive .jstree-checkbox
    {
        background-image: url('40px.png');
        -webkit-background-size: 120px 240px;
                background-size: 120px 240px;
    }
    .jstree-default-responsive .jstree-node
    {
        background-repeat: repeat-y;
        background-position: -80px 0;
    }
    .jstree-default-responsive .jstree-last
    {
        background: transparent;
    }
    .jstree-default-responsive .jstree-leaf > .jstree-ocl
    {
        background-position: -40px -120px;
    }
    .jstree-default-responsive .jstree-last > .jstree-ocl
    {
        background-position: -40px -160px;
    }
    .jstree-default-responsive .jstree-themeicon-custom
    {
        background-color: transparent;
        background-image: none;
        background-position: 0 0;
    }
    .jstree-default-responsive .jstree-file
    {
        background: url('40px.png') 0 -160px no-repeat;
        -webkit-background-size: 120px 240px;
                background-size: 120px 240px;
    }
    .jstree-default-responsive .jstree-folder
    {
        background: url('40px.png') -40px -40px no-repeat;
        -webkit-background-size: 120px 240px;
                background-size: 120px 240px;
    }
    .jstree-default-responsive > .jstree-container-ul > .jstree-node
    {
        margin-right: 0;
        margin-left: 0;
    }
}


text:
<?php
class ImagesBlacklistTest extends TestCaseBase
{
    public function testPlainText()
    {
        $info = $this->getInfo('https://github.com/oscarotero/Embed', [
            'adapter'       => [
                'config'        => [
                    'imagesBlacklist' => [
                        'https://avatars1.githubusercontent.com/u/377873?v=3&s=400',
                    ],
                ],
            ]
        ]);

        $this->assertString('https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif', $info->image);
    }

    public function testPlainUrlMatch()
    {
        $info = $this->getInfo('https://github.com/oscarotero/Embed', [
            'adapter'       => [
                'config'        => [
                    'imagesBlacklist' => [
                        '*.githubusercontent.com*',
                    ],
                ],
            ]
        ]);

        $this->assertString('https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif', $info->image);
    }

    public function testAuthorizedImage()
    {
        $info = $this->getInfo('https://github.com/oscarotero/Embed', [
            'adapter'       => [
                'config'        => [
                    'imagesBlacklist' => [
                        '*/octocat-spinner-*',
                    ],
                ],
            ]
        ]);

        $this->assertString('https://avatars1.githubusercontent.com/u/377873?v=3&s=400', $info->image);
    }
}