The rebuilding of the phosphorus cycle can be performed with the use of both biotechnology and chemical technology. This paper presents a review of the phosphorus cycle and the different approaches that can be taken to the recovery of phosphorus from phosphate-rich waste. Critical issues in the phosphorus cycle are also discussed. Methods for the recovery of phosphorus form sewage sludge ash are widely explored and divided into two groups: wet extraction methods and thermochemical methods. Laboratory-scale methods are described, as well as proposed industrial technologies, with particular regard to the possibilities for their implementation in Poland. Phosphorus recovery methods from SSA (sewage sludge ash) in our country seems to be promising due to the increasing number of sewage sludge incineration plants, which could easily supply ash to future recovery installations. For the effective recovery of P from sewage sludge ash, it is essential to make the right choice in determining the appropriate method to use with respect to the particular properties of the ash composition available. A patented method of phosphorus recovery by acid extraction methods, developed by Cracow University of Technology, results in an efficiency of 80-96% for phosphorus recovery. 3000 to 4000 tons of phosphorus per year can be recycled and introduced back into the environment, that covers around 7% of the total amount of phosphorus ore imported into Poland between 2008 and 2009.
Adam C, Peplinski B, Michaelis M, Kley G, Simon F (2009) Termochemical treatment of sewage sludge ashes for phosphorus recovery. Waste Manag 29: 1122-1128.
Adeola O, Cowieson AJ (2011) Opportunities and challenges in using exogenous enzymes to improve nonruminant animal production. J Anim Sci 89: 3189-3218.
Biswas BK, Inoue K, Harada H, Ohto K, Kawakita H (2009) Leaching of phosphorus from incinerated sewage sludge ash by means of acid extraction followed by adsorption on orange waste gel. J Environ Sci 21: 1753-1760.
Blank LM (2012) The cell and P: from cellular function to biotechnological application. Curr Opin Biotechnol 23: 846-851.
Blöcher C, Niewersch C, Melin T (2012) Phosphorus recovery from sewage sludge with a hybrid process of low pressure wet oxidation and nanofiltration. Water Res 46: 2009-2019.
Bradford-Hartke Z, Lant P, Leslie G (2012) Phosphorus recovery from centralised municipal water recycling plants. Chem Eng Res Des 90: 78-85.
Clift R, Shaw H (2012) An Industrial Ecology Approach to the Use of Phosphorus. Proc Eng 46: 39-44.
Cordell D, Drangert JO, White S (2009) The story of phosphorus: global food security and food for thought. Glob Environ Change 19: 292-305.
Dittrich C, Rath W, Montag D, Pinnekamp J (2009) Phosphorus recovery from sewage sludge ash by a wet-chemical process, In: International Conference on Nutrient Recovery from Wastewater Streams, IWA Publishing, London, England.
Donatello S, Tong D, Cheeseman C R (2010) Production of technical grade phosphoric acid from incinerator sewage sludge ash (ISSA). Waste Manag 30: 1634-1642.
EEA - European Environment Agency (2011) 'Resource efficiency in Europe - Policies and approaches in 31 EEA member and cooperating countries', EEA Report n°5/2011, October 2011.
Elser JJ (2012) Phosphorus: a limiting nutrient for humanity? Curr Opin Biotechnol 23: 833-838.
Franz M (2008) Phosphate fertilizer from sewage sludge ash (SSA). Waste Manag 28: 1809-1818.
Fytili D, Zabaniotou A (2008) Utilization of sewage sludge in EU application of old and new methods: a review. Renew Sustain Energy Rev 12: 116-140.
GSMiE PAN (2011) Bilans Gospodarki Surowcami Mineralnymi Polski i Świata, Wydawnictwo: Instytutu GSMiE PAN Kraków 2011.
Gorazda K, Kowalski Z, Wzorek Z (2010) phosphorus recovery from industrial waste, PL Patent No. 207457.
Gorazda K, Kowalski Z, Wzorek Z (2012) From sewage sludge ash to calcium phosphate fertilizers. Pol J Chem Technol 14: 54-58.
Gorazda K, Jodko M, Kowalski Z, Wzorek Z (2010) PL Patent No. 207630 B1, Republic of Poland Patent and Trademark Office.
Gorazda K, Jodko M, Kowalski Z, Wzorek Z (2012) PL Patent No. 210459 B1, Republic of Poland Patent and Trademark Office.
Gorazda K, Wzorek Z (2006) Selection of leaching agent for phosphorus compounds extraction from the sewage sludge ash. Pol J Chem Technol 8: 15-18.
GUS (2012) Main Statistical Office, Environmental Protection, Warszawa 2012.
Hutnik N, Kozik A, Mazienczuk A, Piotrowski K, Wierzbowska B, Matynia A (2013) Phosphates (V) recovery from phosphorus mineral fertilizers industry wastewater by continuous struvite reaction crystallization process. Water Res 47: 3635-3643.
IFDC (2010) Sufficient phosphate rock resources Available for years. International Fertilizer Development Center, Muscle Shoals, AL 35662, USA. Report 35: 1.
Jasinski SM (2010) Phosphate Rock In: Mineral Commodity Summaries, U.S. Geological Survey, United States Government Printing Office, Washington.
Jasinski SM (2012) Phosphate rock. In: US Geological Survey, editor. Mineral commodity summaries. pp 118-119. USGS.
Kelessidis A, Stasinakis AS (2012) Comparative study of the methods used for treatment and final disposal of sewage sludge in European countries. Waste Manag 32: 1186-1195.
Kodera H, Hatamoto M, Abe K, Kindaichi T, Ozaki N, Ohashi A (2013) Phosphate recovery as concentrated solution from treated wastewater by a PAO-enriched biofilm reactor. Water Res 47: 2025-2032.
Lapa N, Barbosa R, Mendes B, Abelha P, Gulyurtlu I, Oliveira S (2007) Chemical and ecotoxicological characterization of ashes obtained from sewage sludge combustion in a fluidised-bed reactor. J Hazard Mater 147: 175-183.
Li B, Brett MT( 2013) The influence of dissolved phosphorus molecular form on recalcitrance and bioavailability. Environ Pollut 182: 37-44.
Mattenberger H, Fraissler G, Jöller M, Brunner T, Obernberger I, Herk P, Hermann L (2010) Sewage sludge ash to phosphorus fertilizer (II): Influences of ash and granulate type on heavy metal removal. Waste Manag 30: 1622-1633.
Morse GK, Lester JN, Perry R (1993) The economic and environmental impact of phosphorus removal from wastewater in the European Community. Selpher Publications, London, 1993.
Nieminen J (2010) Phosphorus recovery and recycling from municipal wastewater sludge. A Master of Sciences dissertation. Aalto University School of Science and Technology, Aalto, Finland.
Nzihou A, Stanmore B (2013) The fate of heavy metals during combustion and gasification of contaminated biomass - A brief review. J Hazard Mater 256: 56-66.
Nowak B, Rocha SF, Aschenbrenner H, Winter F (2012) Heavy metal removal from MSW fly ash by means of chlorination and thermal treatment: Influence of the chloride type. Chem Eng J 179: 178-185.
Petzet S, Cornel P (2012) Prevention of struvite scaling in digesters combined with phosphorus removal and recovery- the FIX-Phos process. Water Environ Res 84: 220-226.
Petzet S, Peplinski B, Cornel P (2012) On wet chemical phosphorus recovery from sewage sludge ash by acid or alkaline leaching and an optimized combination of both. Water Res 46: 3769-3780.
Raj SE, Banu PJ, Kaliappan S, Yeom IT, Kumar AS (2013) effects of side-stream, low temperature phosphorus recovery on the performance of anaerobic/anoxic/oxic systems integrated with sludge pretreatment. Bioresour Technol 140: 376-384.
Ridoutt GB, Wand E, Sanguansri P, Luo Z (2013) Life cycle assessment of phosphorus use efficient wheat grown in Australia. Agric Syst 120: 2-9.
Rittmann BE, Mayer B, Westerhoff P, Edwards M (2011) Capturing the lost phosphorus. Chemosphere 84: 846-853.
Sano A, Kanomata M, Inoue H, Sugiura N, Xu KQ, Inamori Y (2012) Extraction of raw sewage sludge containing iron phosphate for phosphorus recovery. Chemosphere 89: 1243-1247.
Sengupta S, Pandit A (2011) Selective removal of phosphorus from wastewater combined with its recovery as a solid-phase fertilizer. Water Res 45: 3318-3330.
Schipper WJ, Klapwijk A, Potjer B, Rulkens WH, Temmink BG, Kiestra FDG, Lijmbach ACM (2001) Phosphate recycling in the phosphorus industry. Environ Technol 22: 1337-1345.
Scholz RW, Ulrich AE, Eilittä M, Roy A (2013) Sustainable use of phosphorus: A finite resource. Sci Total Environ 461: 799-803.
Scholz RW, Wellmer FW (2013) Approaching a dynamic view on the availability of mineral resources: what we may learn from the case of phosphorus? Glob Environ Change 23: 11-27.
Schroder JJ, Cordell D, Smit AL, Rosemarin A. (2009) Sustainable use of phosphorus, European Union tender project ENV.B.1/ETU/2009/0025). Report 357, Plant Research International, Wageningen University and Research Centre. 122 pp. Wageningen, The Netherlands.
Schröder JJ, Verloop J (2010) Slurry separation could allow a wider use of manure within the EU Nitrates Directive. In: Proceedings Ramiran 2010 Conference, Cordovil C, Ferreira L, eds. Lisboa, Portugal, Lissabona.
Stark K, Plaza E, Hultman B (2006) Phosphorus release from ash, dried sludge and sludge residue from supercritical water oxidation by acid or base. Chemosphere 62: 827-832.
Steen I (1988) Phosphorus availability in the 21st century: Management of a non-renewable resources. Phosphorus and Potassium 217: 25-31.
Tan Z, Lagerkvist A (2011) Phosphorus recovery from the biomass ash. A review. Renew Sust Energ Rev 15: 3588-3602.
Tian J, Wang X, Tong Y, Chen X, Liao H (2012) Bioengineering and management for efficient phosphorus utilization in crops and pastures. Curr Opin Biotechnol 23: 866-871.
Tyagi VK, Lo SL (2013) Sludge: A waste or renewable source for energy and resources recovery?. Renew Sustain Energy Rev 25: 708-728.
Wong PY, Cheng KY, Kaksonen AH, Sutton DC, Ginige MP (2013) A novel post denitrification configuration for phosphorus recovery using polyphosphate accumulating organisms, Water Res http://dx.doi.org/10.1016/j.watres.2013.08.023 (in press).
Yan P, Ji F, Wang FJ, Guan W, Chen Q (2013) Pilot-scale test of an advanced, integrated wastewater treatment process with sludge reduction, inorganic solids separation, phosphorus recovery, and enhanced nutrient removal (SIPER). Bioresour Technol 142: 483-489.


We get a lot of album review requests. Unfortunately, we don't have the capacity to check all entries that are worth to get a review. Therefore we would like to present you here in the 'Radar' section the latest and most interesting releases. We like to recommend those music releases to listen to.
New wave music for emotional engagement, intellectual stimulation, energetic dancing and nostalgic enjoyment!
Constructed from fragments of post-punk and new wave. Foundations are provided by vintage synthesizers and drum machines. Sweeping guitars and vocals create overarching structures. Romanticism and stark modernism are fused into an energetic new style.
In designing the PALAIS IDEAL, John Edwards (guitars, vocals, synths, programming) and Richard van Kruysdijk (bass, baritone guitar, backing vocals, synths, programming) have joined ranks with bands such as Editors, She Past Away, Lebanon Hanover, Trentemøller and Ikon, who have also drawn inspiration from works by The Cure, New Order, The Sound and the Sisters of Mercy. As musicians and producers, both members have worked on projects for independent and major labels and toured extensively.
What's your rating/opinion on this album?


text:
<?php

/**
 * Change to ">" for HTML output
 * @var string
 */
define('MARKDOWN_EMPTY_ELEMENT_SUFFIX', " />");

/**
 * Define the width of a tab for code blocks.
 * @var int
 */
define('MARKDOWN_TAB_WIDTH', 4);

/**
 * Optional title attribute for footnote links
 * @var string
 */
define('MARKDOWN_FN_LINK_TITLE', "");
/**
 * Optional title attribute for backlinks
 * @var string
 */
define('MARKDOWN_FN_BACKLINK_TITLE', "");

// Optional class attribute for footnote links and backlinks.
/**
 * Optional class attribute for footnote links
 * @var string
 */
define('MARKDOWN_FN_LINK_CLASS', "");
/**
 * Optional class attribute for backlinks
 * @var string
 */
define('MARKDOWN_FN_BACKLINK_CLASS', "");

class Markdown {

	/**
	 * Needed to insert a maximum bracked depth while converting to PHP.
	 * @var int
	 */
	protected $nested_brackets_depth = 6;
	/**
	 * Regex to match balanced [brackets].
	 * @var string
	 */
	protected $nested_brackets_re;
	/**
	 * Maximum nested parenthesis depth
	 * @var int
	 */
	protected $nested_url_parenthesis_depth = 4;
	/**
	 * Nested parenthesis regex
	 * @var string
	 */
	protected $nested_url_parenthesis_re;
	/**
	 * Table of hash values for escaped characters:
	 * @var string
	 */
	protected $escape_chars = '\`*_{}[]()>#+-.!';
	/**
	 * Escape characters regex
	 * @var string
	 */
	protected $escape_chars_re;
	/**
	 * If the element is an empty element, add this to it
	 * @var string
	 */
	protected $empty_element_suffix = MARKDOWN_EMPTY_ELEMENT_SUFFIX;
	/**
	 * The width of a tab for code blocks.
	 * @var int
	 */
	protected $tab_width = MARKDOWN_TAB_WIDTH;
	/**
	 * Change to `true` to disallow markup
	 * @var boolean
	 */
	protected $no_markup = false;
	/**
	 * Change to `true` to disallow entities
	 * @var boolean
	 */
	protected $no_entities = false;
	/**
	 * Predefined urls for reference links and images
	 * @var array
	 */
	protected $predef_urls = array();
	/**
	 * Predefined titles for reference links and images
	 * @var array
	 */
	protected $predef_titles = array();
	//Internal hashes used during transformation.
	/**
	 *
	 * @var array
	 */
	protected $urls = array();
	/**
	 *
	 * @var array
	 */
	protected $titles = array();
	/**
	 *
	 * @var array
	 */
	protected $html_hashes = array();
	/**
	 * Status flag to avoid invalid nesting.
	 * @var boolean
	 */
	protected $in_anchor = false;
	/**
	 *
	 * @var array
	 */
	protected $document_gamut = array(
		// Strip link definitions, store in hashes.
		"stripLinkDefinitions" => 20,
		"runBasicBlockGamut" => 30,
	);
	/**
	 *
	 * @var array
	 */
	protected $block_gamut = array(
		#
		// These are all the transformations that form block-level
		// tags like paragraphs, headers, and list items.
		#
		"doHeaders" => 10,
		"doHorizontalRules" => 20,
		"doLists" => 40,
		"doCodeBlocks" => 50,
		"doBlockQuotes" => 60,
	);
	/**
	 * These are all the transformations that occur *within* block-level tags like paragraphs, headers, and list items.
	 * @var array
	 */
	protected $span_gamut = array(
		//Process character escapes, code spans, and inline HTML
		//in one shot.
		"parseSpan" => -30,
		//Process anchor and image tags. Images must come first,
		//because ![foo][f] looks like an anchor.
		"doImages" => 10,
		"doAnchors" => 20,
		//Make links out of things like `<http://example.com/>`
		//Must come after doAnchors, because you can use < and >
		//delimiters in inline links like [this](<url>).
		"doAutoLinks" => 30,
		"encodeAmpsAndAngles" => 40,
		"doItalicsAndBold" => 50,
		"doHardBreaks" => 60,
	);
	/**
	 * The depth of the current list
	 * @var int
	 */
	protected $list_level = 0;
	/**
	 *
	 * @var array
	 */
	protected $em_relist = array(
		'' => '(?:(?<!\*)\*(?!\*)|(?<!_)_(?!_))(?=\S|$)(?![.,:;]\s)',
		'*' => '(?<=\S|^)(?<!\*)\*(?!\*)',
		'_' => '(?<=\S|^)(?<!_)_(?!_)',
	);
	/**
	 *
	 * @var array
	 */
	protected $strong_relist = array(
		'' => '(?:(?<!\*)\*\*(?!\*)|(?<!_)__(?!_))(?=\S|$)(?![.,:;]\s)',
		'**' => '(?<=\S|^)(?<!\*)\*\*(?!\*)',
		'__' => '(?<=\S|^)(?<!_)__(?!_)',
	);
	/**
	 *
	 * @var array
	 */
	protected $em_strong_relist = array(
		'' => '(?:(?<!\*)\*\*\*(?!\*)|(?<!_)___(?!_))(?=\S|$)(?![.,:;]\s)',
		'***' => '(?<=\S|^)(?<!\*)\*\*\*(?!\*)',
		'___' => '(?<=\S|^)(?<!_)___(?!_)',
	);
	/**
	 *
	 * @var string
	 */
	protected $em_strong_prepared_relist;
	/**
	 *
	 * @var string
	 */
	protected $utf8_strlen = 'mb_strlen';

	/**
	 * Constructor function. Initialize appropriate member variables.
	 */
	function __construct() {
		$this->initDetab();
		$this->prepareItalicsAndBold();

		$this->nested_brackets_re =
				str_repeat('(?>[^\[\]]+|\[', $this->nested_brackets_depth) .
				str_repeat('\])*', $this->nested_brackets_depth);

		$this->nested_url_parenthesis_re =
				str_repeat('(?>[^()\s]+|\(', $this->nested_url_parenthesis_depth) .
				str_repeat('(?>\)))*', $this->nested_url_parenthesis_depth);

		$this->escape_chars_re = '[' . preg_quote($this->escape_chars) . ']';

		// Sort document, block, and span gamut in ascendent priority order.
		asort($this->document_gamut);
		asort($this->block_gamut);
		asort($this->span_gamut);
	}

	public function __invoke($text) {
		return $this->transform($text);
	}

	/**
	 * Called before the transformation process starts to setup parser starts
	 */
	protected function setup() {
		//Clear global hashes.
		$this->urls = $this->predef_urls;
		$this->titles = $this->predef_titles;
		$this->html_hashes = array();

		$in_anchor = false;
	}

	/**
	 * Called after the transformation process to clear any variable which may be taking up memory unnecessarly.
	 */
	protected function teardown() {
		$this->urls = array();
		$this->titles = array();
		$this->html_hashes = array();
	}

	/**
	 * Main function. Performs some preprocessing on the input text and pass it through the document gamut.
	 * @param string $text
	 * @return string
	 */
	public function transform($text) {
		$this->setup();

		// Remove UTF-8 BOM and marker character in input, if present.
		$text = preg_replace('{^\xEF\xBB\xBF|\x1A}', '', $text);

		// Standardize line endings:
		//   DOS to Unix and Mac to Unix
		$text = preg_replace('{\r\n?}', "\n", $text);

		// Make sure $text ends with a couple of newlines:
		$text .= "\n\n";

		// Convert all tabs to spaces.
		$text = $this->detab($text);

		// Turn block-level HTML blocks into hash entries
		$text = $this->hashHTMLBlocks($text);

		// Strip any lines consisting only of spaces and tabs.
		// This makes subsequent regexen easier to write, because we can
		// match consecutive blank lines with /\n+/ instead of something
		// contorted like /[ ]*\n+/ .
		$text = preg_replace('/^[ ]+$/m', '', $text);

		// Run document gamut methods.
		foreach ($this->document_gamut as $method => $priority) {
			$text = $this->$method($text);
		}

		$this->teardown();

		return $text . PHP_EOL;
	}

	/**
	 * Strips link definitions from text, stores the URLs and titles in hash references
	 * @param string $text
	 * @return string
	 */
	protected function stripLinkDefinitions($text) {
		$less_than_tab = $this->tab_width - 1;

		// Link defs are in the form: ^[id]: url "optional title"
		$text = preg_replace_callback('{^[ ]'
              .'{0,'.$less_than_tab.'}
              \[(.+)\][ ]?:	'// id = $1
              // maybe *one* newline
							.'[ ]*\n?[ ]*'
              //url = $2
              //url = $3
							.'(?:<(.+?)>|(\S+?))'
              // maybe *one* newline
              .'[ ]*\n?[ ]*'
              //optional title = $4
							.'(?:(?<=\s)'
              .'["(\']'
							.'(.*?)'
              .'[\')"]'
							.'[ ]*'
							.')?'
      .'(?:\n+|\Z)}xm',
						array(&$this, 'stripLinkDefinitions_callback'),
						$text);
		return $text;
	}

	/**
	 *
	 * @param array $matches
	 * @return string
	 */
	protected function stripLinkDefinitions_callback($matches) {
		$link_id = strtolower($matches[1]);
		$url = $matches[2] == '' ? $matches[3] : $matches[2];
		$this->urls[$link_id] = $url;
		$this->titles[$link_id] = & $matches[4];
		return ''; // String that will replace the block
	}

	/**
	 * Hashify HTML blocks:
	 * We only want to do this for block-level HTML tags, such as headers,
	 * lists, and tables. That's because we still want to wrap
s around
	 * "paragraphs" that are wrapped in non-block-level tags, such as anchors,
	 * phrase emphasis, and spans. The list of tags we're looking for is
	 * hard-coded:
	 * 	*	List "a" is made of tags which can be both inline or block-level.
	 * 		These will be treated block-level when the start tag is alone on
	 * 		its line, otherwise they're not matched here and will be taken as
	 * 		inline later.
	 * 	*	List "b" is made of tags which are always block-level;
	 * @param string $text
	 * @return string
	 */
	protected function hashHTMLBlocks($text) {
		if ($this->no_markup){
			return $text;
    }

		$less_than_tab = $this->tab_width - 1;

		$block_tags_a_re = 'ins|del';
		$block_tags_b_re = 'p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|address|' .
				'script|noscript|form|fieldset|iframe|math';

		// Regular expression for the content of a block tag.
		$nested_tags_level = 4;
		$attr = '
			(?>				// optional tag attributes
			  \s			// starts with whitespace
			  (?>
				[^>"/]+		// text outside quotes
			  |
				/+(?!>)		// slash not followed by ">"
			  |
				"[^"]*"		// text inside double quotes (tolerate ">")
			  |
				\'[^\']*\'	// text inside single quotes (tolerate ">")
			  )*
			)?
			';
		$content =
				str_repeat('
				(?>
				  [^<]+			// content without tag
				|
				  <\2			// nested opening tag
					' . $attr . '	// attributes
					(?>
					  />
					|
					  >', $nested_tags_level) . // end of opening tag
				'.*?' . // last level nested tag content
				str_repeat('
					  </\2\s*>	// closing nested tag
					)
				  |
					<(?!/\2\s*>	// other tags with a different name
				  )
				)*',
						$nested_tags_level);
		$content2 = str_replace('\2', '\3', $content);

		// First, look for nested blocks, e.g.:
		//

		//

		// 		tags for inner block must be indented.
		//

		//

		//
		// The outermost tags must start at the left margin for this to match, and
		// the inner nested divs must be indented.
		// We need to do this before the next, more liberal match, because the next
		// match will start at the first `<div>` and stop at the first `</div>`.
		$text = preg_replace_callback('{(?>
			(?>
				(?<=\n\n)
				|
				\A\n?
			)
			(
						[ ]{0,' . $less_than_tab . '}
						<(' . $block_tags_b_re . ')
						' . $attr . '>
						' . $content . '
						</\2>
						[ ]*
						(?=\n+|\Z)

			|

						[ ]{0,' . $less_than_tab . '}
						<(' . $block_tags_a_re . ')
						' . $attr . '>[ ]*\n
						' . $content2 . '
						</\3>
						[ ]*
						(?=\n+|\Z)

			|
						[ ]{0,' . $less_than_tab . '}
						<(hr)
						' . $attr . '
						/?>
						[ ]*
						(?=\n{2,}|\Z)

			|

					[ ]{0,' . $less_than_tab . '}
					(?s:

					)
					[ ]*
					(?=\n{2,}|\Z)

			|

					[ ]{0,' . $less_than_tab . '}
					(?s:
						<([?%])
						.*?
						\2>
					)
					[ ]*
					(?=\n{2,}|\Z)

			)
			)}Sxmi',
						array(&$this, 'hashHTMLBlocks_callback'),
						$text);

		return $text;
	}

	protected function hashHTMLBlocks_callback($matches) {
		$text = $matches[1];
		$key = $this->hashBlock($text);
		return "\n\n$key\n\n";
	}

	protected function hashPart($text, $boundary = 'X') {

		// Called whenever a tag must be hashed when a protected function insert an atomic
		// element in the text stream. Passing $text to through this protected function gives
		// a unique text-token which will be reverted back when calling unhash.
		// The $boundary argument specify what character should be used to surround
		// the token. By convension, "B" is used for block elements that needs not
		// to be wrapped into paragraph tags at the end, ":" is used for elements
		// that are word separators and "X" is used in the general case.
		// Swap back any tag hash found in $text so we do not have to `unhash`
		// multiple times at the end.
		$text = $this->unhash($text);

		// Then hash the block.
		static $i = 0;
		$key = "$boundary\x1A" . ++$i . $boundary;
		$this->html_hashes[$key] = $text;
		return $key; // String that will replace the tag.
	}

	protected function hashBlock($text) {

		// Shortcut protected function for hashPart with block-level boundaries.

		return $this->hashPart($text, 'B');
	}
  /**
   * Run block gamut tranformations.
   * We need to escape raw HTML in Markdown source before doing anything
   * else. This need to be done for each block, and not only at the
   * begining in the Markdown protected function since hashed blocks can be part of
   * list items and could have been indented. Indented blocks would have
   * been seen as a code block in a previous pass of hashHTMLBlocks.
   * @param string $text
   * @return string escaped html
   */
	protected function runBlockGamut($text) {

		$text = $this->hashHTMLBlocks($text);

		return $this->runBasicBlockGamut($text);
	}
  /**
   * Run block gamut tranformations, without hashing HTML blocks. This is
   * useful when HTML blocks are known to be already hashed, like in the first
   * whole-document pass.
   * @param string $text
   * @return string The converted text
   */
	protected function runBasicBlockGamut($text) {

		foreach ($this->block_gamut as $method => $priority) {
			$text = $this->$method($text);
		}

		// Finally form paragraph and restore hashed blocks.
		$text = $this->formParagraphs($text);

		return $text;
	}

	protected function doHorizontalRules($text) {
		// Do Horizontal Rules:
		return preg_replace(
				'{
				^[ ]{0,3}
				([-*_])
				(?>
					[ ]{0,2}
					\1
				){2,}
				[ ]*
				$
			}mx',
				"\n" . $this->hashBlock("
empty_element_suffix") . "\n",
				$text);
	}

	protected function runSpanGamut($text) {

		// Run span gamut tranformations.

		foreach ($this->span_gamut as $method => $priority) {
			$text = $this->$method($text);
		}

		return $text;
	}

	protected function doHardBreaks($text) {
		// Do hard breaks:
		return preg_replace_callback('/ {2,}\n/',
				array(&$this, 'doHardBreaks_callback'), $text);
	}

	protected function doHardBreaks_callback($matches) {
		return $this->hashPart("
empty_element_suffix\n");
	}

	protected function doAnchors($text) {

		// Turn Markdown link shortcuts into XHTML  tags.

		if ($this->in_anchor)
			return $text;
		$this->in_anchor = true;

		// First, handle reference-style links: [link text] [id]

		$text = preg_replace_callback('{
			(
			  \[
				(' . $this->nested_brackets_re . ')
			  \]

			  [ ]?
			  (?:\n[ ]*)?

			  \[
				(.*?)
			  \]
			)
			}xs',
						array(&$this, 'doAnchors_reference_callback'), $text);

		// Next, inline-style links: [link text](url "optional title")

		$text = preg_replace_callback('{
			(
			  \[
				(' . $this->nested_brackets_re . ')
			  \]
			  \(
				[ \n]*
				(?:
					<(.+?)>	// href = $3
				|
					(' . $this->nested_url_parenthesis_re . ')
				)
				[ \n]*
				(
				  ([\'"])
				  (.*?)
				  \6
				  [ \n]*
				)?
			  \)
			)
			}xs',
						array(&$this, 'doAnchors_inline_callback'), $text);

		// Last, handle reference-style shortcuts: [link text]
		// These must come last in case you've also got [link text][1]
		// or [link text](/foo)

		$text = preg_replace_callback('{
			(
			  \[
				([^\[\]]+)
			  \]
			)
			}xs',
						array(&$this, 'doAnchors_reference_callback'), $text);

		$this->in_anchor = false;
		return $text;
	}

	protected function doAnchors_reference_callback($matches) {
		$whole_match = $matches[1];
		$link_text = $matches[2];
		$link_id = & $matches[3];

		if ($link_id == "") {
			// for shortcut links like [this][] or [this].
			$link_id = $link_text;
		}

		// lower-case and turn embedded newlines into spaces
		$link_id = strtolower($link_id);
		$link_id = preg_replace('{[ ]?\n}', ' ', $link_id);

		if (isset($this->urls[$link_id])) {
			$url = $this->urls[$link_id];
			$url = $this->encodeAttribute($url);

			$result = "titles[$link_id])) {
				$title = $this->titles[$link_id];
				$title = $this->encodeAttribute($title);
				$result .= " title=\"$title\"";
			}

			$link_text = $this->runSpanGamut($link_text);
			$result .= ">$link_text";
			$result = $this->hashPart($result);
		} else {
			$result = $whole_match;
		}
		return $result;
	}

	protected function doAnchors_inline_callback($matches) {
		$whole_match = $matches[1];
		$link_text = $this->runSpanGamut($matches[2]);
		$url = $matches[3] == '' ? $matches[4] : $matches[3];
		$title = & $matches[7];

		$url = $this->encodeAttribute($url);

		$result = "encodeAttribute($title);
			$result .= " title=\"$title\"";
		}

		$link_text = $this->runSpanGamut($link_text);
		$result .= ">$link_text";

		return $this->hashPart($result);
	}

	protected function doImages($text) {

		// Turn Markdown image shortcuts into  tags.
		// First, handle reference-style labeled images: ![alt text][id]

		$text = preg_replace_callback('{
			(
			  !\[
				(' . $this->nested_brackets_re . ')
			  \]

			  [ ]?
			  (?:\n[ ]*)?

			  \[
				(.*?)
			  \]

			)
			}xs',
						array(&$this, 'doImages_reference_callback'), $text);

		// Next, handle inline images:  ![alt text](url "optional title")
		// Don't forget: encode * and _

		$text = preg_replace_callback('{
			(
			  !\[
				(' . $this->nested_brackets_re . ')
			  \]
			  \s?
			  \(
				[ \n]*
				(?:
					<(\S*)>
				|
					(' . $this->nested_url_parenthesis_re . ')\
				)
				[ \n]*
				(
				  ([\'"])
				  (.*?)
				  \6
				  [ \n]*
				)?
			  \)
			)
			}xs',
						array(&$this, 'doImages_inline_callback'), $text);

		return $text;
	}

	protected function doImages_reference_callback($matches) {
		$whole_match = $matches[1];
		$alt_text = $matches[2];
		$link_id = strtolower($matches[3]);

		if ($link_id == "") {
			$link_id = strtolower($alt_text); // for shortcut links like ![this][].
		}

		$alt_text = $this->encodeAttribute($alt_text);
		if (isset($this->urls[$link_id])) {
			$url = $this->encodeAttribute($this->urls[$link_id]);
			$result = "titles[$link_id])) {
				$title = $this->titles[$link_id];
				$title = $this->encodeAttribute($title);
				$result .= " title=\"$title\"";
			}
			$result .= $this->empty_element_suffix;
			$result = $this->hashPart($result);
		} else {
			// If there's no such link ID, leave intact:
			$result = $whole_match;
		}

		return $result;
	}

	protected function doImages_inline_callback($matches) {
		$whole_match = $matches[1];
		$alt_text = $matches[2];
		$url = $matches[3] == '' ? $matches[4] : $matches[3];
		$title = & $matches[7];

		$alt_text = $this->encodeAttribute($alt_text);
		$url = $this->encodeAttribute($url);
		$result = "encodeAttribute($title);
			$result .= " title=\"$title\""; // $title already quoted
		}
		$result .= $this->empty_element_suffix;

		return $this->hashPart($result);
	}

	protected function doHeaders($text) {
		// Setext-style headers:
		//	  Header 1
		//	  ========
		//
		//	  Header 2
		//	  --------
		//
		$text = preg_replace_callback('{ ^(.+?)[ ]*\n(=+|-+)[ ]*\n+ }mx',
						array(&$this, 'doHeaders_callback_setext'), $text);

		// atx-style headers:
		//	# Header 1
		//	## Header 2
		//	## Header 2 with closing hashes ##
		//	...
		//	###### Header 6
		//
		$text = preg_replace_callback('{
				^(\#{1,6})
				[ ]*
				(.+?)
				[ ]*
				\#*
				\n+
			}xm',
						array(&$this, 'doHeaders_callback_atx'), $text);

		return $text;
	}

	protected function doHeaders_callback_setext($matches) {
		// Terrible hack to check we haven't found an empty list item.
		if ($matches[2] == '-' && preg_match('{^-(?: |$)}', $matches[1]))
			return $matches[0];

		$level = $matches[2]{0} == '=' ? 1 : 2;
		$block = "<h$level>" . $this->runSpanGamut($matches[1]) . "</h$level>";
		return "\n" . $this->hashBlock($block) . "\n\n";
	}

	protected function doHeaders_callback_atx($matches) {
		$level = strlen($matches[1]);
		$block = "<h$level>" . $this->runSpanGamut($matches[2]) . "</h$level>";
		return "\n" . $this->hashBlock($block) . "\n\n";
	}

	protected function doLists($text) {

		// Form HTML ordered (numbered) and unordered (bulleted) lists.

		$less_than_tab = $this->tab_width - 1;

		// Re-usable patterns to match list item bullets and number markers:
		$marker_ul_re = '[*+-]';
		$marker_ol_re = '\d+[.]';
		$marker_any_re = "(?:$marker_ul_re|$marker_ol_re)";

		$markers_relist = array(
			$marker_ul_re => $marker_ol_re,
			$marker_ol_re => $marker_ul_re,
		);

		foreach ($markers_relist as $marker_re => $other_marker_re) {
			// Re-usable pattern to match any entirel ul or ol list:
			$whole_list_re = '
				(
				  (
					([ ]{0,' . $less_than_tab . '})
					(' . $marker_re . ')
					[ ]+
				  )
				  (?s:.+?)
				  (
					  \z
					|
					  \n{2,}
					  (?=\S)
					  (?!
						[ ]*
						' . $marker_re . '[ ]+
					  )
					|
					  (?=
					    \n
						\3
						' . $other_marker_re . '[ ]+
					  )
				  )
				)
			'; // mx
			// We use a different prefix before nested lists than top-level lists.
			// See extended comment in _ProcessListItems().

			if ($this->list_level) {
				$text = preg_replace_callback('{
						^
						' . $whole_list_re . '
					}mx',
								array(&$this, 'doLists_callback'), $text);
			} else {
				$text = preg_replace_callback('{
						(?:(?<=\n)\n|\A\n?)
						' . $whole_list_re . '
					}mx',
								array(&$this, 'doLists_callback'), $text);
			}
		}

		return $text;
	}

	protected function doLists_callback($matches) {
		// Re-usable patterns to match list item bullets and number markers:
		$marker_ul_re = '[*+-]';
		$marker_ol_re = '\d+[.]';
		$marker_any_re = "(?:$marker_ul_re|$marker_ol_re)";

		$list = $matches[1];
		$list_type = preg_match("/$marker_ul_re/", $matches[4]) ? "ul" : "ol";

		$marker_any_re = ( $list_type == "ul" ? $marker_ul_re : $marker_ol_re );

		$list .= "\n";
		$result = $this->processListItems($list, $marker_any_re);

		$result = $this->hashBlock("<$list_type>\n" . $result . "</$list_type>");
		return "\n" . $result . "\n\n";
	}

	protected function processListItems($list_str, $marker_any_re) {
		//
		//	Process the contents of a single ordered or unordered list, splitting it
		//	into individual list items.
		//
		// The $this->list_level global keeps track of when we're inside a list.
		// Each time we enter a list, we increment it; when we leave a list,
		// we decrement. If it's zero, we're not in a list anymore.
		//
		// We do this because when we're not inside a list, we want to treat
		// something like this:
		//
		//		I recommend upgrading to version
		//		8. Oops, now this line is treated
		//		as a sub-list.
		//
		// As a single paragraph, despite the fact that the second line starts
		// with a digit-period-space sequence.
		//
		// Whereas when we're inside a list (or sub-list), that line will be
		// treated as the start of a sub-list. What a kludge, huh? This is
		// an aspect of Markdown's syntax that's hard to parse perfectly
		// without resorting to mind-reading. Perhaps the solution is to
		// change the syntax rules such that sub-lists must start with a
		// starting cardinal number; e.g. "1." or "a.".

		$this->list_level++;

		// trim trailing blank lines:
		$list_str = preg_replace("/\n{2,}\\z/", "\n", $list_str);

		$list_str = preg_replace_callback('{
			(\n)?
			(^[ ]*)
			(' . $marker_any_re . '
				(?:[ ]+|(?=\n))
			)
			((?s:.*?))
			(?:(\n+(?=\n))|\n)
			(?= \n* (\z | \2 (' . $marker_any_re . ') (?:[ ]+|(?=\n))))
			}xm',
						array(&$this, 'processListItems_callback'), $list_str);

		$this->list_level--;
		return $list_str;
	}

	protected function processListItems_callback($matches) {
		$item = $matches[4];
		$leading_line = & $matches[1];
		$leading_space = & $matches[2];
		$marker_space = $matches[3];
		$tailing_blank_line = & $matches[5];

		if ($leading_line || $tailing_blank_line ||
				preg_match('/\n{2,}/', $item)) {
			// Replace marker with the appropriate whitespace indentation
			$item = $leading_space . str_repeat(' ', strlen($marker_space)) . $item;
			$item = $this->runBlockGamut($this->outdent($item) . "\n");
		} else {
			// Recursion for sub-lists:
			$item = $this->doLists($this->outdent($item));
			$item = preg_replace('/\n+$/', '', $item);
			$item = $this->runSpanGamut($item);
		}

		return "
" . $item . "
\n";
	}

	protected function doCodeBlocks($text) {
		//
		//	Process Markdown `<pre><code>` blocks.
		//
		$text = preg_replace_callback('{
				(?:\n\n|\A\n?)
				(
				  (?>
					[ ]{' . $this->tab_width . '}
					.*\n+
				  )+
				)
				((?=^[ ]{0,' . $this->tab_width . '}\S)|\Z)
			}xm',
						array(&$this, 'doCodeBlocks_callback'), $text);

		return $text;
	}

	protected function doCodeBlocks_callback($matches) {
		$codeblock = $matches[1];

		$codeblock = $this->outdent($codeblock);
		$codeblock = htmlspecialchars($codeblock, ENT_NOQUOTES);

		// trim leading newlines and trailing newlines
		$codeblock = preg_replace('/\A\n+|\n+\z/', '', $codeblock);

		$codeblock = "
$codeblock\n
";
		return "\n\n" . $this->hashBlock($codeblock) . "\n\n";
	}

	protected function makeCodeSpan($code) {

		// Create a code span markup for $code. Called from handleSpanToken.

		$code = htmlspecialchars(trim($code), ENT_NOQUOTES);
		return $this->hashPart("$code");
	}

	protected function prepareItalicsAndBold() {

		// Prepare regular expressions for searching emphasis tokens in any
		// context.

		foreach ($this->em_relist as $em => $em_re) {
			foreach ($this->strong_relist as $strong => $strong_re) {
				// Construct list of allowed token expressions.
				$token_relist = array();
				if (isset($this->em_strong_relist["$em$strong"])) {
					$token_relist[] = $this->em_strong_relist["$em$strong"];
				}
				$token_relist[] = $em_re;
				$token_relist[] = $strong_re;

				// Construct master expression from list.
				$token_re = '{(' . implode('|', $token_relist) . ')}';
				$this->em_strong_prepared_relist["$em$strong"] = $token_re;
			}
		}
	}

	protected function doItalicsAndBold($text) {
		$token_stack = array('');
		$text_stack = array('');
		$em = '';
		$strong = '';
		$tree_char_em = false;

		while (1) {

			// Get prepared regular expression for seraching emphasis tokens
			// in current context.

			$token_re = $this->em_strong_prepared_relist["$em$strong"];

			// Each loop iteration search for the next emphasis token.
			// Each token is then passed to handleSpanToken.

			$parts = preg_split($token_re, $text, 2, PREG_SPLIT_DELIM_CAPTURE);
			$text_stack[0] .= $parts[0];
			$token = & $parts[1];
			$text = & $parts[2];

			if (empty($token)) {
				// Reached end of text span: empty stack without emitting.
				// any more emphasis.
				while ($token_stack[0]) {
					$text_stack[1] .= array_shift($token_stack);
					$text_stack[0] .= array_shift($text_stack);
				}
				break;
			}

			$token_len = strlen($token);
			if ($tree_char_em) {
				// Reached closing marker while inside a three-char emphasis.
				if ($token_len == 3) {
					// Three-char closing marker, close em and strong.
					array_shift($token_stack);
					$span = array_shift($text_stack);
					$span = $this->runSpanGamut($span);
					$span = "$span";
					$text_stack[0] .= $this->hashPart($span);
					$em = '';
					$strong = '';
				} else {
					// Other closing marker: close one em or strong and
					// change current token state to match the other
					$token_stack[0] = str_repeat($token{0}, 3 - $token_len);
					$tag = $token_len == 2 ? "strong" : "em";
					$span = $text_stack[0];
					$span = $this->runSpanGamut($span);
					$span = "<$tag>$span</$tag>";
					$text_stack[0] = $this->hashPart($span);
					$$tag = ''; // $$tag stands for $em or $strong
				}
				$tree_char_em = false;
			} else if ($token_len == 3) {
				if ($em) {
					// Reached closing marker for both em and strong.
					// Closing strong marker:
					for ($i = 0; $i < 2; ++$i) {
						$shifted_token = array_shift($token_stack);
						$tag = strlen($shifted_token) == 2 ? "strong" : "em";
						$span = array_shift($text_stack);
						$span = $this->runSpanGamut($span);
						$span = "<$tag>$span</$tag>";
						$text_stack[0] .= $this->hashPart($span);
						$$tag = ''; // $$tag stands for $em or $strong
					}
				} else {
					// Reached opening three-char emphasis marker. Push on token
					// stack; will be handled by the special condition above.
					$em = $token{0};
					$strong = "$em$em";
					array_unshift($token_stack, $token);
					array_unshift($text_stack, '');
					$tree_char_em = true;
				}
			} else if ($token_len == 2) {
				if ($strong) {
					// Unwind any dangling emphasis marker:
					if (strlen($token_stack[0]) == 1) {
						$text_stack[1] .= array_shift($token_stack);
						$text_stack[0] .= array_shift($text_stack);
					}
					// Closing strong marker:
					array_shift($token_stack);
					$span = array_shift($text_stack);
					$span = $this->runSpanGamut($span);
					$span = "$span";
					$text_stack[0] .= $this->hashPart($span);
					$strong = '';
				} else {
					array_unshift($token_stack, $token);
					array_unshift($text_stack, '');
					$strong = $token;
				}
			} else {
				// Here $token_len == 1
				if ($em) {
					if (strlen($token_stack[0]) == 1) {
						// Closing emphasis marker:
						array_shift($token_stack);
						$span = array_shift($text_stack);
						$span = $this->runSpanGamut($span);
						$span = "$span";
						$text_stack[0] .= $this->hashPart($span);
						$em = '';
					} else {
						$text_stack[0] .= $token;
					}
				} else {
					array_unshift($token_stack, $token);
					array_unshift($text_stack, '');
					$em = $token;
				}
			}
		}
		return $text_stack[0];
	}

	protected function doBlockQuotes($text) {
		$text = preg_replace_callback('/
			  (
				(?>
				  ^[ ]*>[ ]?
					.+\n
				  (.+\n)*
				  \n*
				)+
			  )
			/xm',
						array(&$this, 'doBlockQuotes_callback'), $text);

		return $text;
	}

	protected function doBlockQuotes_callback($matches) {
		$bq = $matches[1];
		// trim one level of quoting - trim whitespace-only lines
		$bq = preg_replace('/^[ ]*>[ ]?|^[ ]+$/m', '', $bq);
		$bq = $this->runBlockGamut($bq);  // recurse

		$bq = preg_replace('/^/m', "  ", $bq);
		// These leading spaces cause problem with
 content,
		// so we need to fix that:
		$bq = preg_replace_callback('{(\s*
.+?
)}sx',
						array(&$this, 'doBlockQuotes_callback2'), $bq);

		return "\n" . $this->hashBlock("
\n$bq\n
") . "\n\n";
	}

	protected function doBlockQuotes_callback2($matches) {
		$pre = $matches[1];
		$pre = preg_replace('/^  /m', '', $pre);
		return $pre;
	}

	protected function formParagraphs($text) {
		//		Params:
		//		$text - string to process with html
 tags
		// Strip leading and trailing lines:
		$text = preg_replace('/\A\n+|\n+\z/', '', $text);

		$grafs = preg_split('/\n{2,}/', $text, -1, PREG_SPLIT_NO_EMPTY);

		#
		// Wrap
 tags and unhashify HTML blocks
		#
		foreach ($grafs as $key => $value) {
			if (!preg_match('/^B\x1A[0-9]+B$/', $value)) {
				// Is a paragraph.
				$value = $this->runSpanGamut($value);
				$value = preg_replace('/^([ ]*)/', "
", $value);
				$value .= "
";
				$grafs[$key] = $this->unhash($value);
			} else {
				// Is a block.
				// Modify elements of @grafs in-place...
				$graf = $value;
				$block = $this->html_hashes[$graf];
				$graf = $block;
//				if (preg_match('{
//					\A
//					(							// $1 =
 tag
//
]*
//					  \b
//					  markdown\s*=\s*  ([\'"])	//	$2 = attr quote char
//					  1
//					  \2
//					  [^>]*
//					  >
//					)
//					(							// $3 = contents
//					.*
//					)
//					(
)					// $4 = closing tag
//					\z
//					}xs', $block, $matches))
//				{
//					list(, $div_open, , $div_content, $div_close) = $matches;
//
//					// We can't call Markdown(), because that resets the hash;
//					// that initialization code should be pulled into its own sub, though.
//					$div_content = $this->hashHTMLBlocks($div_content);
//
//					// Run document gamut methods on the content.
//					foreach ($this->document_gamut as $method => $priority) {
//						$div_content = $this->$method($div_content);
//					}
//
//					$div_open = preg_replace(
//						'{\smarkdown\s*=\s*([\'"]).+?\1}', '', $div_open);
//
//					$graf = $div_open . "\n" . $div_content . "\n" . $div_close;
//				}
				$grafs[$key] = $graf;
			}
		}

		return implode("\n\n", $grafs);
	}

	protected function encodeAttribute($text) {
		//
		// Encode text for a double-quoted HTML attribute. This function
		// is *not* suitable for attributes enclosed in single quotes.
		//
		$text = $this->encodeAmpsAndAngles($text);
		$text = str_replace('"', '"', $text);
		return $text;
	}

	protected function encodeAmpsAndAngles($text) {
		//
		// Smart processing for ampersands and angle brackets that need to
		// be encoded. Valid character entities are left alone unless the
		// no-entities mode is set.
		//
		if ($this->no_entities) {
			$text = str_replace('&', '&', $text);
		} else {
			// Ampersand-encoding based entirely on Nat Irons's Amputator
			// MT plugin: <http://bumppo.net/projects/amputator/>
			$text = preg_replace('/&(?!#?[xX]?(?:[0-9a-fA-F]+|\w+);)/',
							'&', $text);
			;
		}
		// Encode remaining <'s
		$text = str_replace('<', '<', $text);

		return $text;
	}

	protected function doAutoLinks($text) {
		$text = preg_replace_callback('{<((https?|ftp|dict):[^\'">\s]+)>}i',
						array(&$this, 'doAutoLinks_url_callback'), $text);

		// Email addresses: <address@domain.foo>
		$text = preg_replace_callback('{
			<
			(?:mailto:)?
			(
				(?:
					[-!#$%&\'*+/=?^_`.{|}~\w\x80-\xFF]+
				|
					".*?"
				)
				\@
				(?:
					[-a-z0-9\x80-\xFF]+(\.[-a-z0-9\x80-\xFF]+)*\.[a-z]+
				|
					\[[\d.a-fA-F:]+\]
				)
			)
			>
			}xi',
						array(&$this, 'doAutoLinks_email_callback'), $text);

		return $text;
	}

	protected function doAutoLinks_url_callback($matches) {
		$url = $this->encodeAttribute($matches[1]);
		$link = "$url";
		return $this->hashPart($link);
	}

	protected function doAutoLinks_email_callback($matches) {
		$address = $matches[1];
		$link = $this->encodeEmailAddress($address);
		return $this->hashPart($link);
	}

	protected function encodeEmailAddress($addr) {
		//
		//	Input: an email address, e.g. "foo@example.com"
		//
		//	Output: the email address as a mailto link, with each character
		//		of the address encoded as either a decimal or hex entity, in
		//		the hopes of foiling most address harvesting spam bots. E.g.:
		//
		//
foo@exampl
		//        e.com

		//
		//	Based by a filter by Matthew Wickline, posted to BBEdit-Talk.
		//   With some optimizations by Milian Wolff.
		//
		$addr = "mailto:" . $addr;
		$chars = preg_split('/(?<!^)(?!$)/', $addr);
		$seed = (int) abs(crc32($addr) / strlen($addr)); // Deterministic seed.

		foreach ($chars as $key => $char) {
			$ord = ord($char);
			// Ignore non-ascii chars.
			if ($ord < 128) {
				$r = ($seed * (1 + $key)) % 100; // Pseudo-random function.
				// roughly 10% raw, 45% hex, 45% dec
				// '@' *must* be encoded. I insist.
				if ($r > 90 && $char != '@') /* do nothing

					*/;
				else if ($r < 45)
					$chars[$key] = '&#x' . dechex($ord) . ';';
				else
					$chars[$key] = '&#' . $ord . ';';
			}
		}

		$addr = implode('', $chars);
		$text = implode('', array_slice($chars, 7)); // text without `mailto:`
		$addr = "$text";

		return $addr;
	}

	protected function parseSpan($str) {
		//
		// Take the string $str and parse it into tokens, hashing embeded HTML,
		// escaped characters and handling code spans.
		//
		$output = '';

		$span_re = '{
				(
					\\\\' . $this->escape_chars_re . '
				|
					(?<![`\\\\])
					`+
			' . ( $this->no_markup ? '' : '
				|

				|
					<\?.*?\?> | <%.*?%>
				|
					<[/!$]?[-a-zA-Z0-9:_]+
					(?>
						\s
						(?>[^"\'>]+|"[^"]*"|\'[^\']*\')*
					)?
					>
			') . '
				)
				}xs';

		while (1) {
			//
			// Each loop iteration seach for either the next tag, the next
			// openning code span marker, or the next escaped character.
			// Each token is then passed to handleSpanToken.
			//
			$parts = preg_split($span_re, $str, 2, PREG_SPLIT_DELIM_CAPTURE);

			// Create token from text preceding tag.
			if ($parts[0] != "") {
				$output .= $parts[0];
			}

			// Check if we reach the end.
			if (isset($parts[1])) {
				$output .= $this->handleSpanToken($parts[1], $parts[2]);
				$str = $parts[2];
			} else {
				break;
			}
		}

		return $output;
	}

	protected function handleSpanToken($token, &$str) {
		//
		// Handle $token provided by parseSpan by determining its nature and
		// returning the corresponding value that should replace it.
		//
		switch ($token{0}) {
			case "\\":
				return $this->hashPart("&#" . ord($token{1}) . ";");
			case "`":
				// Search for end marker in remaining text.
				if (preg_match('/^(.*?[^`])' . preg_quote($token) . '(?!`)(.*)$/sm',
								$str, $matches)) {
					$str = $matches[2];
					$codespan = $this->makeCodeSpan($matches[1]);
					return $this->hashPart($codespan);
				}
				return $token; // return as text since no ending marker found.
			default:
				return $this->hashPart($token);
		}
	}

	protected function outdent($text) {
		//
		// Remove one level of line-leading tabs or spaces
		//
		return preg_replace('/^(\t|[ ]{1,' . $this->tab_width . '})/m', '', $text);
	}

	// String length protected function for detab. `_initDetab` will create a protected function to
	// hanlde UTF-8 if the default protected function does not exist.

	protected function detab($text) {
		//
		// Replace tabs with the appropriate amount of space.
		//
		// For each line we separate the line in blocks delemited by
		// tab characters. Then we reconstruct every line by adding the
		// appropriate number of space between each blocks.

		$text = preg_replace_callback('/^.*\t.*$/m',
						array(&$this, '_detab_callback'), $text);

		return $text;
	}

	protected function _detab_callback($matches) {
		$line = $matches[0];
		$strlen = $this->utf8_strlen; // strlen protected function for UTF-8.
		// Split in blocks.
		$blocks = explode("\t", $line);
		// Add each blocks to the line.
		$line = $blocks[0];
		unset($blocks[0]); // Do not add first block twice.
		foreach ($blocks as $block) {
			// Calculate amount of space, insert spaces, insert block.
			$amount = $this->tab_width -
					$strlen($line, 'UTF-8') % $this->tab_width;
			$line .= str_repeat(" ", $amount) . $block;
		}
		return $line;
	}

	protected function initDetab() {
		//
		// Check for the availability of the protected function in the `utf8_strlen` property
		// (initially `mb_strlen`). If the protected function is not available, create a
		// protected function that will loosely count the number of UTF-8 characters with a
		// regular expression.
		//
		if (function_exists($this->utf8_strlen))
			return;
		$this->utf8_strlen = create_function('$text', 'return preg_match_all(
			"/[\\\\x00-\\\\xBF]|[\\\\xC0-\\\\xFF][\\\\x80-\\\\xBF]*/",
			$text, $m);');
	}

	protected function unhash($text) {
		//
		// Swap back in all the tags hashed by _HashHTMLBlocks.
		//
		return preg_replace_callback('/(.)\x1A[0-9]+\1/',
				array(&$this, '_unhash_callback'), $text);
	}

	protected function _unhash_callback($matches) {
		return $this->html_hashes[$matches[0]];
	}

}

redpajama_set_name: RedPajamaGithub


VANCOUVER, BRITISH COLUMBIA -- /CNW/ - Amerigo Resources Ltd. ("Amerigo", TSX:ARG) announces that it has acquired beneficial ownership of an additional 2,460,008 common shares (the "Additional Shares") of Candente Resource Corp. ("Candente"). Amerigo now currently owns 9,360,946 common shares of Candente, representing approximately 13.20% of Candente's 70,923,127 issued and outstanding common shares. Amerigo currently has no future intention to acquire beneficial ownership of any additional securities of Candente.
The Additional Shares were acquired through the facilities of the Toronto Stock Exchange for investment purposes.


text:
MERCOM CAPITAL GROUP
Inverters & BOS
Tenders & Auctions
Finance and M&A
Floating Solar
AT&C
Microsoft Completes its First Solar Power Deal in India
The purchase of solar power will meet 80 percent of the projected electricity needs at Microsoft's Bengaluru facility
Ankita Rajeshwari
Commercial, Solar
American multinational technology company Microsoft has announced the completion of its first renewable energy deal in India.
Under the agreement, the company will purchase 3 MW of solar-power from Atria Power for its new office building in Karnataka's capital city, Bengaluru.
According to a media statement released by the company, the new deal will meet 80 percent of the projected electricity needs at the Bengaluru facility. Once completed, this project will bring Microsoft's total global direct procurement in renewable energy projects to nearly 900 MW.
The deal is part of Karnataka government's program to encourage investments in local solar energy operations. The state program is in line with the Indian government's target to ramp up solar power generation to 100 GW by 2022.
Mercom had previously reported that the Karnataka Renewable Energy Development Limited (KREDL) aims to make the state a model state for the development of solar sector so that an increasing number of investors are attracted to develop their projects across the length and breadth of Karnataka.
According to Mercom's India Solar Project Tracker, Karnataka has close to 3 GW of large-scale solar installations as of February 2018, and has a project pipeline of around 1.4 GW.
"Investing in local solar energy to help power our new Bangalore office building is good for Microsoft, good for India and good for the environment," Anant Maheshwari, the president of Microsoft India said in a media statement.
"We are proud to be deepening our long history of partnership and investment in India with this agreement. This deal will help us grow sustainably and supports the growth of the Indian solar energy industry, so that the entire country can more easily and reliably access clean electricity," Maheshwari added.
This is Microsoft's first solar energy agreement in India, and one of the first in Asia. According to Microsoft, the company recently completed a new solar agreement in Singapore.
Microsoft's goal is to rely on wind, solar and hydro power electricity for at least 50 percent of its energy usage worldwide by the end of 2018.
Microsoft set up its operations in India in 1990. Today, Microsoft has a presence in 11 Indian cities: Ahmedabad, Bengaluru, Chennai, New Delhi, Gurugram, Noida, Hyderabad, Kochi, Kolkata, Mumbai, and Pune.
Image credit: Flickr
Ankita is an editor at MercomIndia.com where she writes and edits clean energy news stories and features. With years of experience in the news business, Ankita has a nose for news and an eye for detail. Prior to Mercom, Ankita was associated with The Times of India as a copy editor for the organization's digital news desk. She holds a Bachelor's degree in Psychology from Delhi University and a Postgraduate Diploma in journalism. More articles from Ankita Rajeshwari.
Atria PowerBangaloreMicrosoftrenewable energy dealsolar power
Prev All Posts Next
ISTS Charges Waiver for Solar, Wind Projects Beyond Deadline Being Considered
Daily News Wrap-Up: Ecoppia to Supply Robotic Solutions for Azure's 450 MW Solar Project
Daily News Wrap-Up: Indian Oil's Proof of Concept Allows EV Charging Using Solar
Bangalore Transport Corporation to Procure 300 Electric Buses Under Gross Cost Contract
With New Solar Capacity Additions, Adani Green's Revenues Increases 15% in Q2 of FY 2021
GAIL Seeks Transaction Advisor to Evaluate Acquisition of Renewable Energy Assets
Investment of ₹52.81 Billion for an 850 MW Hydropower Project in Jammu & Kashmir Approved
Ola Partners with Siemens to Build Advanced Electric Scooter Manufacturing Facility
Corporate Funding for Battery Energy Storage Companies Was Up 136% at $6.6 Billion in 2020
China Adds 48.2 GW of Solar Capacity in 2020, its Second Best Year on Record
SECI Payouts to Solar, Wind Developers up Slightly at ₹3.85 Billion in November 2020
Daily News Wrap-Up: Adani Green Energy Commissions a 150 MW Solar Project in Gujarat
REC Seeks Services of Owner's Engineers for ISTS-Connected Solar Projects in Karnataka
Supreme Court Lifts Stay Order on Chandigarh DISCOM Privatization
Punjab Proposes Net Metering Rules to Restrict Rooftop Solar Installations
South Korea's C&I, Residential Consumers to Buy Renewables as part of RE100 Initiative
Advertising | Editorial Team | Contact | Careers | Privacy | Terms
© 2021 by Mercom Capital Group, LLC. All Rights Reserved.
Please keep me informed by email about Mercom products, services and events.*
Please keep me informed by email about Mercom products, services and events.
About Mercom India
Cookies: To make this site work properly, we sometimes place small data files called cookies on your device. Most websites do this.

redpajama_set_name: RedPajamaCommonCrawl


It was the worst kind of day to go downtown to the big city. Sideways sheeting rain/sleet, the last minute frenzy of holiday shoppers and the ever so tentative relationship with my GPS.
Construction met us at our destination and kids hushed knowing this was the hard part. Having learned the hard way that our big van is too tall for nearly all parking garages, we searched for street parking. Four trips around the block and we finally spied a 30 minute loading spot. Perfect.
Each one grabbed their bag of men's socks to donate to the shelter. Kyler's co-op class had collected them and our family volunteered to deliver them. 70 pairs of men's socks. When you have to walk around all day and some nights, your socks get pretty worn out I'd explained to them on our drive. We hustled across the street in the pouring rain, rang the bell and noted that all the windows were covered with metal bars.
The director (Rick, who is in the video on the link above) met us at the doorway, welcomed us in and thanked the kids for the socks. He offered to show us around. We walked through their kitchen where they prepare and provide meals every night for the homeless of Seattle. He showed us the dispatch office where they work every night to match people with shelter. Freezers full of donated food and Christmas gifts ready to be wrapped, socks, scarves and the most basic things. And I just wasted an entire evening stressing and fretting over finding the right gift for someone for Christmas. It seems so very meaningless now.
We walk upstairs and are overwhelmed with the smell of cigarette smoke. I watch kid faces and no one says a word. They tell me later "I had to breathe through my mouth mama, my nose was burning!". I would tell them I was proud they hadn't been rude and had listened with respect. He shows us a room where they offer long term housing for seniors, most of whom are coming out of homelessness. We meet a sweet old man in their common dining room. Their idea of housing is one small room not even the size of my daughters' bedroom. Shared bathroom and kitchen.
I catch myself so many times, the magnitude of the need is so great, the weight feels so heavy. And the reality of life, of Christmas, as someone without even a bed to sleep on? Truly, I can't really even imagine what that feels like. So instead of crying this time, I treasure that we got to be the ones to bring the socks. That we could have a tiny part in warming cold, worn feet.
No matter who you are or what your resources, there is something EVERYONE can do to change their part of the world for good. My sister saw a need and created a fantastic monthly event at her church, deemed it "Diapers and Donuts" and they provide diapers for mom's with little ones and provide something even more vital, community, love.
If we all did the small things we were able to in the circles of life we walk in, I honestly (perhaps idealistically) think the world would be a different place.
We left the shelter and headed to our next stop and as we drove by the upscale trendy shops in the heart of the city, one exclaimed from the back of the van…."Oh look, they must be loading food boxes for Children of the Nations!" It was actually a box dropping off the latest merchandise for Macy's. Slightly cynical, I explained no, it was in fact not meals for starving children but more "stuff" that people were convinced they needed and they would likely spend the next few months paying for. In their young minds, it made more sense that it was boxes of meal packets.
I remember how I skipped my beloved coffee spot on the way to pack meals on Tuesday night, not because I'm awesome – I'm anything but, an absolute sinner every day, swimming in a sea of grace. But because I was calculating in my head that at $.25 per meal, my cup of coffee could buy 16 meals to fill the bellies of kids who have NOTHING.
Socks, coffee….small things yes. But the sum of all the small stuff, all the little things we think no ones notices or don't matter? It does. It makes a difference for someone.
Small things do matter … it makes a difference. This very morning, I was sitting in my house wondering if God would maybe smite all of Chile because I'm sick of her people … I know right? How terrible am I? And my neighbor whom I've met maybe one time, knocks on the door with Christmas gifts for my kids. Yep. Wrapped and everything. She tells me about three times that she prays God will give me a better year this year. I've never talked to her about my dog let alone my life. So, he can't smite all of Chile because there's a few really nice people here that are clearly connected to the Divine. And I stand there and think to myself … so it's not the whole culture – it's just some really annoying people God has put in my life … Oh Lord Help! And thanks for the Neighbor lady.


Location: Perla Royal Hotel is situated at first line on the beach in Primorsko Black sea resort. The city center is at 5-minute walking distance from the hotel. There is a grocery store 200 m from the hotel. Burgas Airport is 60 km away.
Accommodation: The rooms feature air conditioning, flat-screen cable TV, sofa, refrigerator, safe, bathroom with bathtub, hairdryer and toiletries, as well as balcony.
Bars and restaurants: The hotel offers a restaurant with summer garden and a bar.
- discount in Primorsko Aqua Park.
Please, post a comment on Perla Royal Hotel.


text:
Home » The 3rd Sanrio Charaben (Kyaraben) Contest winners are announced
The 3rd Sanrio Charaben (Kyaraben) Contest winners are announced
In Japan, there are numerous bento contests, especially targeted at practioners of the art of charaben or kyaraben, cute character bentos. The biggest one of them all is arguably the annual charaben contest held by Sanrio, now in its 3rd year. The one rule of the Sanrio contest, not surprisingly, is that the bento entries must feature Sanrio characters.
The winners of the contest were announced yesterday. Here's the Golden Grand Prix winning bento :
Like the winning bento last year, it's a picnic bento, titled "It's spring! Picnic bento for everyone", and the Golden Kyarabeniste is a Ms. Harumi Sugiyama from Saitama prefecture. The bento has the following mind-boggling components:
A homemade mini apple pie; according the the creator it's "because when I think of Hello Kitty, I think of apple pie"
A hollowed out apple cup, made with the apple from which the pie was made, holding potato salad
Hello Kitty family shaped onigiri, and Hello Kitty jelly cups
The creator says that she tried to make the bento appeal to adults as well as kids, since it's a family picnic bento. I can't think of anyone who wouldn't like this amazing creation. Just thinking of the time it must have taken makes my head spin.
You can check out the rest of the winners by clicking on the shiny link buttons below each photo, or the photo itself, from the main page. My personal favorite is another picnic bento, the _Okaasan Arigato_ (Thank you Mother) bento, which according to the description is an edible Mother's Day card of sorts (keep in mind that the contest took place in April-May of this year, so many people had spring on their minds when they were making their bentos).
I wonder when the number of charaben/kyaraben fans in the U.S. for example will become big enough so that it becomes worthwhile for Sanrio to hold a bento contest? Or, better yet, an international bento contest? After all, isn't Hello Kitty a universally known symbol? We shall see...
I've found some bento bloggers who entered the contest and have written about their experiences (in Japanese of course) here, here, here, here, here and here so far. I'll add more links as I find them (I haven't found the Golden Grand Prix winner's blog yet, if she has one). If you spot anymore, let us know in the comments!
kyaraben
bento news
charaben


Wall sconces with classic designs will accentuate architectural details of the home and often can truly be considered as wall sculptures with their intricate detailing and embellishments of hand-blown glass or crystal.
Sconces not only bring illumination; Wall sconces instantaneously dress up an entry way, dining or living area, bring romance to a master bedroom, or create a majestic affect in a stairway. While sconces are not a major light source, they are perfect in providing indirect lighting that subtly enhances a space. But above all, wall lighting fixtures add beautiful ornamentation and embellishment to a plain room.
Bring flickering glow and magical shimmer of candlelight with our quality candle sconces and hurricane sconces designed for use with candles. The difference between hurricane sconces and candle sconces is that hurricane sconces have hurricane chimneys that house a candle while candles placed on the candle sconces remain uncovered. All sconces from our collection are hand-crafted to the highest quality standards. Hurricane sconces introduced on this page are made from solid brass and have incredibly detailed unique designs, outstanding quality finishes, and gracious proportions.


Golden Hills School Division is pleased to announce that Shawn O'Neill has been appointed as H.V.A.C.
Technician in the Golden Hills Maintenance Department, effective October 26, 2016.
HVAC/R and control systems, along with being a recognized training specialist, will serve him well in this role.
Please join us in congratulating Shawn, as we wish him every success in his new position!


text:
A significant area of misinformation perpetuated by anti-religious social scientists and others is the subject of so-called "religious brainwashing."
This is the completely biased inference that someone who joins a religious group disfavored by whoever is speaking could only have done so as a result of "religious brainwashing." The shorthand equation is, "I am right. No correct-thinking individual could possibly disagree with me. You must be brainwashed." The concept was utterly rejected by social scientists years ago, but it underlies much of the propaganda against religious minorities and is worth examination.
The use of the term is much more sinister than simply disagreeing with someone's life choices. "Brainwashing" is the concept that an individual's entire personality can be wiped out and replaced through the use of physical torture and drugs. Since the 1940s, the United States government has spent millions of dollars attempting to manufacture deployable agents whose personality and free will have been destroyed—to create the so-called "Manchurian Candidate" popularized in fiction. While many lives have been destroyed in the process, total success has never been documented.
The term was popularized in the 1950s by psychiatrist Robert J. Lifton, who reportedly studied American Korean War soldiers captured by the North Koreans and subjected to torture to attempt to change their political affiliation and to denounce capitalism and America. While some social scientists have argued that the brainwashing paradigm was developed originally by the CIA as a propaganda device to explain why a few POWs appeared to convert to communism while imprisoned, the term "brainwashing" became firmly embedded in American culture.
In the 1980s, psychologist Margaret Singer, a self-proclaimed "authority" on New Religious Movements, used Lifton's work in order to hire herself out as an expert witness in civil damages cases against minority religions—for a substantial fee.
Singer's theories were "not based on systematic research on new religions, but rather simply transferred this pseudoscientific brainwashing theory to an ideological attack on new religions."
As noted by Dr. Dick Anthony in the December 1999 issue of Social Justice Research, Singer's theories were "not based on systematic research on new religions, but rather simply transferred this pseudoscientific brainwashing theory to an ideological attack on new religions." In other words, she simply adopted the CIA brainwashing theory and applied it to new religions.
No religious minorities were exempted from her expansive opinion that the brainwashing theory applied to the voluntary participation of persons in new religious movements.
Singer's theories were also used by anti-religious deprogrammers to justify kidnapping members of various faiths (Christian as well as new religious movements) and beating them into renouncing their faiths. The justification was that if members of these faiths had been "brainwashed" and had no free will, then it was perfectly acceptable to beat their religious conversion out of them.
Deprogramming is a criminal practice that has resulted in numerous criminal convictions and multimillion-dollar judgments against many individuals in the anti-religious movement. The original leaders of the Cult Awareness Network (CAN) were involved in the criminal activity of deprogramming which led to a $4.875 million damages verdict against the group and deprogrammer Rick Ross in a case brought by a Pentecostal Christian, Jason Scott. Scott was brutalized, handcuffed, silenced with duct tape across his mouth, abducted and forcibly held against his will for days in a failed attempt to destroy his beliefs. The jury in the Scott case found that the conduct of some of the defendants was "so outrageous in character and so extreme in degree as to go beyond all possible bounds of decency… atrocious and utterly intolerable in a civilized community." U.S. District Judge John Coughenour noted, "The maliciousness of their conduct towards Mr. Scott" and ruled, "Thus, the large award given by the jury against both CAN and Mr. Ross seems reasonably necessary to enforce the jury's determination on the oppressiveness of the defendants' actions and deter similar conduct in the future."
Singer's half-baked theories were soon debunked by the scientific community. On May 11, 1987, the Board of Social and Ethical Responsibility for Psychology of the American Psychological Association (APA) formally dismissed Singer's notions of coercive persuasion after she and several of her associates had submitted a report and formed a task force within the APA on "deceptive and indirect methods of persuasion and control" by minority religions. The APA Board stated that "In general, the report lacks the scientific rigor and evenhanded critical approach needed for APA imprimatur." The APA Board warned Singer and her cohorts not to imply that the APA in any way supported the positions she had put forward. Nevertheless, because it was lucrative to do so, Singer continued to assert the opinion that newer religions "brainwashed" their members. The scientific community responded quickly to definitively debunk the "religious brainwashing" theory.
On May 11, 1987, the Board of Social and Ethical Responsibility for Psychology of the American Psychological Association (APA) formally dismissed Singer's notions of coercive persuasion after she and several of her associates had submitted a report.
In May 1989, the American Sociological Association, the Society for the Scientific Study of Religion, and individual sociologists and psychologists (including members of an executive council of the APA), reiterated the APA's position in an amicus brief to the Supreme Court of the United States. They argued that Singer's theories of religious brainwashing have "no scientific validity," and noted that "to the extent that the [theory of coercive persuasion from minority religious practice] can be said to have any empirical foundation at all, that foundation is so methodologically inadequate to be worthless."
After the APA's rejection of their findings, Singer and her disciples were prohibited by courts from testifying as experts concerning their discredited theories of "coercive persuasion" and "brainwashing" by religious minorities exercising their faith.
In 1988 Singer and her theories were rejected by the United States Court of Appeals for the District of Columbia Circuit, which noted that the plaintiff in the case had "failed to provide any evidence that Dr. Singer's particular theory, namely that techniques of thought reform… have a significant following in the scientific community, let alone general acceptance."
Out of work by virtue of these rejections, Singer and an associate responded by filing two lawsuits against the APA and several social scientists for allegedly trying to run them out of business. The first suit was dismissed as having no merit. The second lawsuit, asserting defamation and conspiracy, was dismissed under a California law prohibiting baseless, vindictive and harassing litigation.
Thus, it is evident that the scientific "debate" about whether any religion "brainwashes" its adherents was concluded and relegated to historical commentary as an incident of prejudicial hysteria brought on by a quack psychologist.
Respected sociologists and experts in religion have also closed the door on this ignorant and archaic view. Dr. J. Gordon Melton, Distinguished Professor of American Religion, Baylor University, and Founder of Institute for the Study of American Religion, writes:
Since the late 1980s, though a significant public belief in cult-brainwashing remains, the academic community—including scholars from psychology, sociology, and religious studies—have shared an almost unanimous consensus that the coercive persuasion/ brainwashing thesis proposed by Margaret Singer and her colleagues in the 1980s is without scientific merit. To date, no one has come forward to refute the arguments, especially those advanced by Dick Anthony a decade ago, nor has the situation that Perry London found concerning articles providing an empirical base for the theory been reversed. Through the 1990s, it has been difficult to locate any scholar in the English-speaking world who has been willing to attempt a defense of it, and even Singer herself has appeared to back away from her earlier position. Brainwashing and Cults: The Rise and Fall of a Theory published by the Center for Studies on New Religions
Other leading experts in the field share Dr. Melton's view. A noted scholar of comparative religion and former Franciscan monk, Dr. Frank K. Flinn, when Adjunct Professor in Religious Studies at Washington University, St. Louis, Missouri, undertook an examination of the Church's program for religious rehabilitation of members of the ministry and unilaterally found the Church's program to be consistent with similar practices in Jesuit Orders and in some eastern religions such as Buddhism—and milder by comparison.
Likewise, acclaimed religious scholar Dr. Juha Pentikäinen, former Professor and Chair of the Department of the Study of Religions, University of Helsinki, Finland, and the Institute of Social Science, University of Tromso, Norway, and Dr. Jürgen Redhardt, a Doctor of Theology and Diplomate in Psychology, a minister and former Professor of Religious Psychology at the University of Giessen for 26 years, teaching Protestant Theology, conducted and published their own study debunking these theories.
In 2012, the United States Court of Appeals for the Ninth Circuit rejected an attempt to resurrect the "religious brainwashing" theory. In Headley v. Church of Scientology International and Religious Technology Center, no. 10-56266, (Ninth Circuit July 24, 2012), the plaintiff attempted to put forward evidence in the form of a declaration by Dr. Robert Levine, a self-proclaimed expert in the psychology of persuasion and mind control and a proponent of Singer's discredited "religious brainwashing" theories. Dr. Levine offered a purported expert opinion about the psychological coercion that the plaintiff allegedly endured while with the Church of Scientology. The Federal District Court for the Central District of California rejected this evidence as inherently unreliable and summarily struck it from the record.
"Religious brainwashing" is a fantasy; it is nothing but the invention of an uninformed minority used to spread anti-religious sentiments about new religions.
On appeal, the Ninth Circuit Court of Appeals unanimously agreed. It, too, determined to summarily reject Dr. Levine's "mind control" theories as unreliable and to strike his declaration from the record in deciding in favor of the Church and dismissing the specious claims.
This 2012 Scientology decision by the Ninth Circuit reaffirms that "religious brainwashing" is an unscientific theory that has no basis in fact, lacks credibility and cannot be accepted as reliable evidence in Court.
Be aware that when someone accuses another of having been "brainwashed" by their church or synagogue, they are speaking from a deep well of prejudice and manufactured hysteria.
Rick Ross apostates brainwashing Margaret Singer
Religious Discrimination Against the Church of Scientology and its Parishioners in Germany
Scientologists' Donations and Church of Scientology Financial Practices
Scientology Beliefs about "Creation of the Universe"
Scientology Confidential Scripture
The Church of Scientology Rehabilitation Project Force (RPF): Truth and Misconceptions
The Sea Organization: Religious Order of the Scientology Religion
The Truth about L. Ron Hubbard and the 'Make a Million Dollars' Myth
The Unreliability of Stories and Rumors by Apostates
The "Snow White" Program and the Church of Scientology: The True Story
"Disconnection" in the Scientology Religion: What is It?
By Bryan R. Wilson Ph.D., Emeritus Fellow, University of Oxford, England
Expert StudyApostates and New Religious Movements
By Lonnie D. Kliever, Ph.D., Professor of Religious Studies
Expert StudyThe Reliability of Apostate Testimony about New Religious Movements
How does Scientology view deprogrammers and groups that attempt to force people to denounce their chosen religion?
What is an Apostate or "ex-member"?


It was 4am, and the inquisitive one was walking in the darkness and looking up at the stars. The inquisitive one had been inspired to do such a thing as a result of having just read the very short poem When I Heard the Learn'd Astronomer by Walt Whitman. But then suddenly, while looking up at the stars, the inquisitive one fell into a hole!
"Help! HELP!" cried the inquisitive one.
Nonetheless, refusing to give up hope entirely, the inquisitive one kept hollering and calling out.
Luckily, a turkey, who was as usual boycotting everything having to do with the holiday season, heard the cries.
"Help you? After what you did yesterday to my cousin? Fat chance!" said the turkey, and paraded off.
"Oh no! Help! HELP!" cried the inquisitive one.
Luckily, a Libertarian Party member, who was exercising the freedom that comes of choosing not to jostle within crowds, heard the cries.
"Me, help? Help yourself!" said the Libertarian Party member, and chose to walk somewhere else.
Luckily, a Republican, whose family budget did not allow for frivolous spending that season, heard the cries.
"I would call 911, but funding for that service has been cut, in order to balance the budget," said the Republican, and stepped into a waiting limo.
Luckily, a Green Party member, who was boycotting everything made of or wrapped in plastic, plus everything transported to a store by means of fossil fuels, heard the cries.
"This must be a sinkhole caused by bad environmental policies! Don't worry, I'll stage a hunger strike at the White House. We'll have this problem solved within four years!" said the Green Party member, and pedaled off toward Washington.
Luckily, a Democrat, who was waiting until Small Business Saturday to do the season's shopping, heard the cries.
"I feel so bad for you! How could this have happened? Ahhhh!" said the Democrat, and collapsed into a fit of tears and wails that were so loud, and so long lasting, that the inquisitive one could not make any cries heard above the racket.
The inquisitive one had just about given up hope when dawn broke, the sun peeked out from where it had been hiding, and light spilled into the hole. Suddenly, the inquisitive one saw the solution. It was so obvious, though, that it would be heartless of me to write, in all bluntness, the details of the particular means of escape; and so, out of deference to the poor inquisitive one, who asked me to keep the whole thing as quiet as I could (without, that is, my giving up my profession entirely), I will merely note that our hero made it safely out of the hole.
It was then that the inquisitive one walked back home in the sunshine, thinking about the moral of the story.
This was a very dramatic scene, my heart is still going wild.
One question por favor, just to clarify, was the Turkey a republican or the other way around?
Ha! Thank you; I'm glad you enjoyed it.
I usually hate politics in writing, but I could appreciate this, even as a non-American.
I'm glad you enjoyed it, Gavin. Thanks so much!
You've spilled the beans already! Don't worry. I won't tell the inquisitive one that their secret is out.
Very funny! Quite enjoyable! Thanks, Liza!
Thanks, Jean! Glad you enjoyed it.


text:
function listGetComputedStyle(target) {
    // These properties have platform dependent values so we ignore them for convenience.
    var excludedProperties = new Set([
        '-webkit-tap-highlight-color',
        'font-family',
    ]);
    var properties = [
        // These properties don't show up when iterating a computed style object so we add them explicitly.
        "-webkit-mask-position-x",
        "-webkit-mask-position-y",
        "background-position-x",
        "background-position-y",
        "border-spacing",
        "overflow",
    ];
    var style = getComputedStyle(target);
    for (var i = 0; i < style.length; i++) {
        var property = style.item(i);
        if (!excludedProperties.has(property))
            properties.push(property);
    }
    for (var property of properties.sort())
        debug(property + ': ' + style[property]);
}


We provide creative solutions to clients around the world and provide them with customized software solutions, consulting and technical support as well as mentoring and advanced training. We support our clients from the decision taking process through the steps of project management until reaching the project goals.
We support our customers in all their decision processes regarding management topics and information technology, trainee programs, project management and also complete project outsourcing and implementation.
We deliver highly adjusted, customised and extreme flexible software solutions, supporting our customers throughout all phases of a software development lifecycle achieving the goal of a ready for production software system. We support all variants of software systems: standalone applications, network applications, highly complex and interoperable web applications, system integration services. To achieve the project goals we utilise modern and agile software development methodologies like OOAD / eXtreme Programming, Scrum and Team Coaching.
Indirect team and company support through training courses in cooperation with known, global operating training companies and their partners.
Thank you for your interest in our services and we will be happy to answer any further questions you may have. You are also welcome to send us a non-binding project enquiry or arrange a personal meeting.


Game not showing up for trophies.
What is the best order to finish Endurance coop trophies?
100% not achieved although everything is done?
One question about the endurance dlc.
Camillia Luddington to stop portraying Lara Croft?
Can I go back to Syria?


It feels like I haven't posted anything for long time, maybe because of a super busy week and the Easter celebration. How was your ester by the way? My kids enjoyed doing egg hunt at Aunt Mo house. They are so excited telling me how everything went and can't wait for next Easter. Anyways this week I made my family a super delicious and fast dinner. Yum! The only thing I cooked is the beef, rice and heated the black beans. I know, its looks like a lot of work but I'll promise you! its super easy to put them together and its delicious. I bet all the ingredients that you need is probably already in your pantry. Taco night it is! I also have a super easy Taco Salad recipe if you want to have that crunchy and salad taco feel for your desired taco night dinner. Yum!
You can totally change the recipe and put your own twist by substituting beef with your favorite choice of meat. Add your favorite toppings and loaded them up with cheese! Can I say something?? Delicious!
1.) Heat the grill into high heat. Marinate the beef with the packet of taco seasoning mix. Set aside.
2.) Once the grill is heated. Put the marinated beef into the grill and let it cook for 5-7 minutes until its cooked.
You can build your taco's the way you want it to be. I love to load mine with tortilla, rice, sour cream, beans, guacamole, beef, tomatoes and cheese. That's it! Enjoy your Taco dinner with your family.
Puto Maya- a sweet sticky rice cooked with coconut milk. YUM!
Sikwate/ Tableya- is a traditional Filipino hot chocolate beverage made of roasted cocoa beans that are grinned and form into "tablets." Once tableya or tablets mix with water and sugar. It turn into this deliciously good hot chocolate most of the locals called it Sikwate or Tableya.
-Puto Maya + Sikwate = DELICIOUS!
- Used fresh coconut milk if you have it on hand. Adjust the recipe for larger crowd and taste according to your preference.
1.) Put the 2 cups of sticky rice in a pan or you can simply used rice cooker in this process. Rinse the sticky rice with water. Add the whole can of coconut milk, little salt, sugar and ginger.
2.) Let it cooked on medium high heat. That's it!
3.) Once the coconut milk is gone turn it low.
The ratio on a perfect Sikwate is (1 tableya into 1 cup of water). Just simple put the tableya and water in large pan and let it boil to perfection. Add brown sugar and serve it on your favorite mug. Enjoy!
A perfect combination snack for you and the whole group to enjoy. One word to describe about this recipe is DELICIOUS! No wonder why we keep coming back every Sunday just to buy Puto Maya and have a stock of tableya on hand all the time. This is the closer I can get to bring those childhood memories. Until now, I still love eating this dish... Are you big fan of Puto Maya and Sikwate as well? Please share your thoughts about this awesome merienda.
Thank you so much to all who visit my blog.


They are not called as "missionaries," but directors, assistant directors and hosting couples in Church Hosting are that in nearly every sense of the word.
As President Spencer W. Kimball once stated, their Church service calling is to "open doors and warm hearts."And the directors and those who work with them are endeavoring to do that.
"This is a very exhilarating job," said Mary Ellen Smoot, who along with her husband, Stanley M. Smoot, has served since April 1993 as a director of Church Hosting in the Church's Public Affairs Department. "There is nothing more satisfying after having been in the mission field. It is a continuation of missionary work." The Smoots were a Church hosting couple for seven years before being called as directors.
In 1983, Brother Smoot was called as president of the Ohio Columbus Mission, where he and his wife served for a year. He was then called as president of the newly formed Ohio Akron Mission, where they served until 1986.
About two years after returning to Utah, Brother Smoot was called as a regional representative, serving in the Roy and Weber regions, and Sister Smoot served one year with the Public Affairs Department on Temple Square. Earlier, Brother Smoot was a member of the Young Men General Board.
The Smoots and those who work with them have found that people from all walks of life, including many political, religious and other leaders, often come to Salt Lake City not fully understanding the Church and seeking answers to the world's problems. Many others say they are impressed with the work of the Church and want to know more about it.
"All visitors will not join the Church but all could be our friends," President Kimball once said.
Making visitors and others feel welcome is an important part of a calling to work in the Church hosting program.
Church Hosting is a way by which visitors can be introduced to individuals and places that testify of the work of the Lord.
Visitors say they greatly enjoy their stay in Utah and are impressed with the work of the Church.
Most groups usually attend a Tabernacle Choir broadcast, tour Temple Square, attend a family home evening, see the movie "Legacy," visit the Family History Library, the Museum of Church History and Art, Brigham Young University, Welfare Square, the Sort Center (where donated materials, including clothing, medical and dental supplies, are gathered and sorted before shipment throughout the world) and attend a ward sacrament meeting.
During the past year, people from more than 50 countries and 20 ambassadors or consul generals have been guests of Church hosting.
Vince Chiarello (pronounced Keyarello), a foreign service officer for 24 years and assigned to the Foreign Press Center in Washington, D. C., brought a group of western European writers to Salt Lake City in August 1993. The writers all work for newspapers that have offices in Washington.
Mr. Chiarello said he wanted the group to get a chance to see how religion in America works and its impact on American life.
"I wanted to demonstrate to western Europeans how powerful a force religion can be. That's why we chose Salt Lake City," he said in a Deseret News interview. The group also visited Denver.
Mr. Chiarello said he was also interested in visiting Utah because of the number of Mormon families he has known during his Foreign Service career.
"The extent of (Mormon families) participating in the program is very noticeable overseas," he said.
He said he was grateful to see a family-oriented church and community. He said most of the writers who visited Utah commented that their visit with a Mormon couple and their family in a family home evening was an unforgettable experience.
Without hesitation, the writers said their visit in the Mormon home was the "single most memorable event" of their stay in Utah.
"I am not Mormon, but I was very impressed with the Church and its organization," he said.
Last year, a former minister was converted to the Church in New York state. He first visited Salt Lake City two years ago and obtained books and other literature about the Church. He and his wife, who also joined the Church, now live in the Salt Lake Valley and are thrilled with their experiences.
A businessman in New Delhi, India, and friend of the Church, visited Utah during May after being a host to two General Authorities. He was referred to Church Hosting by the area president.
During his visit to the Beehive State, the New Delhi visitor wanted to know more about the Church. Among other things, he was given a tour of Welfare Square, the Sort Center and viewed "Legacy."
"Your Church is amazing. I could feel the difference in this city from the time we left the airport," Brother Smoot quoted the New Delhi visitor as saying.
"Each week we watch as officials come to Salt Lake City searching for answers," Brother Smoot said. "After all we show them, their comments are always: `How do you get the missionaries and others to serve without pay? We cannot pay our young people to serve. Your volunteer service is amazing.' "
Five congressmen from Mexico visited Salt Lake City as guests of the Church last year. They came to Utah before voting on a constitutional amendment that would give churches more freedom in the acquisition of property in Mexico. Referring to what he had seen in Utah, the senior congressman was quoted as saying he "didn't know there was a place (or people) on Earth" like the Salt Lake Valley. "Mormonism will be regarded differently in Mexico because of our visit than it has in the past." Weeks after the officials' visit, the constitutional amendment passed.
During a recent visit to Utah a non-member of the Church and chief executive officer of a major corporation that hires many returned missionaries was asked by a Church official what the Church could do to help America.
His answer was, "Continue to do what you're doing - but do it faster. You have answers to this world's problems," he said.


Brotherhood Blood Bath: Mark Wahlberg vs. Donnie Wahlberg! Mustache Death Match: Burt Reynolds vs. Tom Selleck! Who were more badass: Greek vs. Roman Gods? GIVEAWAY from CigarsInternational.com. Winner announced! Click Here to see the giveaway.
This is so awesome!!! SO glad to have won! I owe it all to Clint, Clint and his Badassishness. So how do I claim the prize anyways?


text:
Home Politics Iranian Vessels Tried to Block the Passage of a British Ship, the...
Iranian Vessels Tried to Block the Passage of a British Ship, the U.Ok. Says
(DUBAI, United Arab Emirates) — Britain said Thursday that three Iranian vessels unsuccessfully tried to hamper the passage of a British commercial vessel thru the Strait of Hormuz, signaling a extra escalation of tensions over a 2015 nuclear deal between Iran and world powers.
The Iranian vessels handiest grew to change into away after receiving "verbal warnings" from a U.Ok. navy vessel accompanying the commercial vessel British Heritage, the U.Ok. authorities said in a press initiate. "We are fervent by this action and continue to lag the Iranian authorities to de-escalate the difficulty in the gap," it said.
Iran's Revolutionary Guard denied the allegations, pronouncing if it had received orders to rob any ships it would hold executed them immediately.
The semi-official Fars info agency carried a press initiate from the Guard's navy early Thursday pronouncing "there hold been no clashes with alien boats, especially English boats."
The incident used to be reported a day after Iran's president, Hassan Rouhani, warned that Britain will face "repercussions" over the seizure of an Iranian supertanker last week that authorities in Gibraltar suspect used to be breaching European sanctions on oil shipments to Syria.
Rouhani used to be quoted by Iranian order media as pronouncing the seizure used to be "point out and deplorable."
Iranian International Minister Mohammad Javad Zarif denied the supertanker belonged to Iran, pronouncing whoever owned the oil cargo and the vessel might maybe well additionally pursue the case thru magnificent avenues.
Iran had earlier summoned the British ambassador over what it called the "illegal interception" of the ship.
It marked the most modern escalation of tensions in the Persian Gulf over the nuclear deal.
Since Trump withdrew from the nuclear accord, the restoration of heavy sanctions on Iran, in conjunction with its oil industry, has exacerbated an financial crisis that has despatched the currency plummeting.
The U.S. has meanwhile despatched 1000's of troops, an plane carrier, nuclear-fantastic B-fifty two bombers and advanced fighter jets to the Center East. Fears are increasing of a wider battle after mysterious oil tanker attacks come the Strait of Hormuz blamed on Iran, attacks by Iranian-backed rebels in Yemen on Saudi Arabia, and Iran's downing of a U.S. navy drone.
To this level, the closing events to the nuclear deal — Russia, China, Germany, France, Britain and the European Union — hold been unable to meet Tehran's calls for for enough financial assistance to offset the American sanctions.
In most modern weeks, Iran started breaching the limits of the deal, both on the licensed stockpile of low-enriched uranium and the licensed stage of uranium enrichment.
It also pickle an early September closing date for world powers to put the agreement, pronouncing it would otherwise rob a third step in going previous the deal's limits.
Iran maintains it's justified in breaching the limitations since the U.S. already broke the take care of its unilateral withdrawal last three hundred and sixty five days.
Previous articleAfter Intense Flooding, Louisiana Prepares for a Ability Storm. That is What You Want to Know
Next articleHead of NASA's human exploration program demoted as agency pushes for Moon return
Florida schoolboy arrested after refusing to recite pledge of allegiance


text:
Willem de Blasere (vóór 1592-1653) was een schepen van Gent en een pionier in de tuinbouw.

Hij introduceerde het komkommerzaad in de Nederlanden, toen hij het in 1598 in Gent importeerde.

In de tuin van zijn kasteel Hellebuys in Afsnee had hij een 75 meter lange serre, opgetrokken uit hout en glas. Met twee steenkoolkachels was het een van de eerste verwarmde kassen in de Nederlanden. De Blasere kweekte er sinaasappelbomen in kuipen. Zijn innovaties werden aangehaald bij specialisten als Frans van Sterbeeck en Giovanni Battista Ferrari.

In 1648 richtte hij met bisschop Antoon Triest de Confrerie van de heilige Dorothea op in de Sint-Michielskerk. Dit tuinbouwersgenootschap was gemodelleerd naar het Brusselse voorbeeld van zijn schoonbroer Jan Baptist Maes.

Iconografie
Crispijn van de Passe de Jonge maakte in 1633 een medaillonportret van Willem de  Blasere.

Voorman in het graafschap Vlaanderen
Geschiedenis van Gent
Persoon in de Nederlanden in de 16e eeuw

redpajama_set_name: RedPajamaWikipedia


text:
Home>Lifestyle> Former NFL Player Darren Sharper Sentenced To 20 Years For Rape In LA
Former NFL Player Darren Sharper Sentenced To 20 Years For Rape In LA
By Kyle Rooney
Kyle Rooney
@_UncleRooney
LA judge hands down 20-year sentence.
Former NFL safety Darren Sharper was sentenced to 20 years in prison today by a Los Angeles judge, which will be served concurrently with the 18-year sentence he received in Louisiana in August, and the nine year sentence he received in Arizona in 2015.
Sharper drugged and raped as many as 16 women in Nevada, California, Louisiana and Arizona but pleaded no contest to raping two women as part of a plea deal for charges in multiple states.
As part of Sharper's sentencing hearing today, one of the victims issued the following statement in front of the court.
"I can only imagine myself lying there like a vegetable while he took advantage of my body without my permission. I have lost every bit of self confidence I've ever had and am always in fear while alone. It doesn't matter whether it's day or night, I can see a guy and automatically in my head think, 'What if this guy tries to rape me?'"
Prosecutors originally agreed to let Sharper serve just nine years as part of his crimes in Louisiana, but a federal judge upped it to an 18 year sentence in August.
Lifestyle Sports Darren Sharper prison rape
Report Finds Drastic Increase In "Hate Incidents" In Wake Of Trump's Election
The-Dream Announces "Love You To Death" EP Coming Next Month
LIFESTYLE Former NFL Player Darren Sharper Sentenced To 20 Years For Rape In LA