text:
Cox's Bazar Civil Society Comments on Human Rights Day: Foreigners consume 70% of total allocation, Rohingya and Local People are deprived
By cxbcc on	 December 13, 2017 Latest News, Members Event
Cox's Bazar CSO-NGO Forum observed Universal Declaration of Human Rights Day 2017 in Cox's Bazar. Civil Society-NGO leaders and social activists were present in the Human Chain and mass gathering. The Human Chain and Mass gathering were organized at District Administration office premises. Mr. Abu Morshed Chowdhury was present as Moderator in the Mass Gathering meeting. Mr. Rezaul Karim Chowdhury, Executive Director, COAST Trust; Mr. Bimal Chandra Dey Sarkar, Executive Director, MUKTI; Mr. Fazlul Qader Chowdhury, Executive Director, Green Cox's Bazar; Journalist Mr. Mohammad Ali Zinnat; New Age representative Mr. Md Nurul Islam; BRAC representative Mr. Ajit Nandi; Mr. Moqbul Ahmed, Assistant Director, COAST Trust were present and spoke in the meeting. To mark the day representatives of MUKTI, COAST Trust, PULSE, NONGOR, YPSA, AKLAB, BRAC, and Radio NAF were present in the meeting. The title of the Meeting was "Society of Cox's Bazar are Human rights resilience Society, Uphold Rohingya Rights along with Host Community Rights"
Mr. Rezaul Karim Chowdhury, Executive Director of COAST Trust said, Mr. Moung Jarni, a Burmese human rights activist, had informed the media that, genocide is a profitable business. Military Janta of Myanmar, China and India will be benefited by the genocide. Many parties have been benefited from the Rohingya influx in Cox's Bazar. He said, one of the Police officer had reported that, 1000 foreign UN/INGO staffs are currently staying in Cox's Bazar. Minimum 300 dollars are being spent for them every day, which means, every day 2 Crore, 46 Lac taka are being spent for 1000 foreigners. He mentioned that, after Nepal Earthquake, government of Nepal had prohibited INGOs to direct operational work. Similarly, after Hioan Cyclone, government of Philippine had promulgated the same decision. So, Political leaders and government of Bangladesh should take similar decision.
Mr. Bimal Chandra Dey Sarkar, Executive Director of MUKTI said, Human Rights are being violated all over the world. Peoples of Cox's Bazar received Rohingya at first; now peoples of Cox's Bazar are being deprived. Now poor people's suffering in Cox's Bazar district has been increasing district day by day. Many of the poor people in Cox's Bazar lost their jobs and they don't have enough food to feed themselves. For that reason, we demanded allocation of food and projects for the host community, he maintained. He said, INGOs hired trained workers of the local NGOs by the enticement of high salary. We have urged to INGOs not to adopt such kind of strategy. Journalist Md Ali Jinnat said, the indiscriminate killing of Rohingya people is not only human Rights violation, it is Genocide. In spite of that, leaders of the world community did not impose pressure on Myanmar government to stop the genocide. Moreover, the local people of Cox's Bazar are being depreciated for the influx of Rohingyas. Journalist Mr Fazlul Qader Chowdhury briefly sketched the history of Rakhain state. He said, our old friends India, China and Russia did not support us; rather opposed the position of Bangladesh. Many oppressed Rohingyas came to Bangladesh when an agreement was signed between Bangladesh and Myanmar. He maintained, what was the meaning of the agreement? He fiercely criticized Aun Sun Suki's role.
After the Human chain in front of Cox's Bazar District Commissioner Office, a short discussion meeting was also held at DC office conference room. The meeting was headed by Mr. ALi Hossain, Deputy Commissioner, Cox's Bazar. In his speech, Mr. Rezaul Karim Chowdhury, Co-Chair of Cox's Bazar CSO-NGO Forum, focused on environmental degradation in Cox's Bazar. Then Deputy Commissioner Mr. Ali Hossain emphasized on the formation of a research working group to do a study on the impact of Rohingya influx into Cox's Bazar district especially Teknaf and Ukhiya Upazila.
Mr. Abu Morshed Chowdhury, Co-Chair of Cox's Bazar CSO-NGO Forum, informed in the meeting that, last two days (8th and 9th December 2017) two discussion meetings were held at Teknaf and Ukhiya Upazila Conference Room respectively. Mr. Md Alamgir Kabir, Woman and Children affairs department of Teknaf Upazila and Mr. Ekramul Siddique, Assistant Commissioner (Land) of Ukhiya chaired the two meetings respectively.
Mr Abu Morshed said, 70% of the total foreign donation had been spent to hire foreign expert, but Bangladeshi experts are globally known for the disaster management. He claimed full transparency and accountability of all INGO and UN agencies to Bangladesh government and Bangladeshi people.
Finally he thanked to all leaders of cxb cso-ngo forum for organizing all events on Universal Human Rights Day observation 2017. Please download [English]


How to Search Your Best Cyber Monday 2011 Deals?
Are you worried about losing out on that great doorbuster deals on Black Friday?
Don't worry, you can definitely take advantage of these Cyber Monday 2011 Tips!
Yes! Apart from buying swanky electronic gadgets at dirt cheap prices, you can also grab hot holiday travel deals at awesome discounts. According PriceGrabber, nearly 39% of consumers are planning to shop on Cyber Monday, which is as much as 37% higher than last year.
According to an infograpic by SEO.com, the total spending in November, 2010 was whopping $13.6 Billion and on Cyber Monday, 2010 alone, the consumers shopped goods and services worth $1 Billion! The consumer spending propensity towards Cyber Monday is only getting stronger each year and ComScore predicts the sales on this Cyber Monday 2011 to hit $1.2 Billion figure.
So Why is Cyber Monday 2011 So Popular Amongst Consumers?
Although Black Friday is fun and ushers in lucrative opportunities for consumers that yearn for shopping till they drop, many consumers finding online shopping a more convenient option for holiday shopping. And, quite a few of them also want to avoid falling victim to incidents like Pepper Spray at Walmart.
Alright, so now that you want to make it big this Cyber Monday 2011, it's important to note that you need to make a shopping list and have the right information before you're ready to go online on Cyber Monday!
Google It: Whether you're looking for Xbox or Holiday Travel Deals, do a little Internet search and find out what most shopping sites are offering for Cyber Monday Deals. This could help you find out the most lucrative Cyber Monday Deals you can grab at great discounts. Plus, you will have an idea about the products and services available across the sites and compare their prices and specifications before you zero in on any specific sites to grab your deals from.
However, don't limit your search to Google alone. While Google and Bing are two most popular search engine options for you, you should also check out CyberMonday.com, BestCyberMondaySales.com, Yahoo.Shopping.com and Shopping.AOL.com.
Here's a blog post which shows a list of Cyber Monday Travel Deals for you.
Facebook: Facebook is a great place to catch the best sites that offer Cyber Monday Deals 2011. All you have do is friend all popular shopping sites and retail stores and follow them to find out deals available at discounts. There are many travel companies that offer incredible discounts on holiday travel packages on Cyber Monday and make sure you grab the offers while they last.
Twitter: If you are on Twitter, make sure you follow @CyberMonday , @CyberMondayNews , or @BestCyberMonday . Try following specific retailers–like @WalMartSpecials –for the latest on their 2011 Cyber Monday deals. You can also ask your other twitter followers to help you with finding the best Cyber Monday Deals.
Scam Signs: While Cyber Monday is a great time for shopping, you must be careful not to fall victim to scam sites masquerading as great Cyber Monday Deals 2011. There are a couple of things you must remember while shopping online. A genuine shopping site would never ask your credit card information or social security number via email. So never ever respond to such emails. No company would ever ask your address via email, and if you do get any email asking you for your address for FREE Shipping, ignore them. Also, be careful of look-alike sites that pretend to be offering great Cyber Monday Deals.
Cyber Monday Discount Coupons: While a lot of sites offer great discounts on their Cyber Monday deals, sometimes you can secure additional deals by abandoning your shopping card mid-purchase. Usually, the online retails would send you additional incentives (discount coupons or FREE shipping) to shop at their sites again. So you can always try out this trick.
If you hate to be in a crowd or fight the traffic? You can check Cyber Monday Deals. They have the list of everything that you are looking for. Cellphones, Electronics, Housewares, Airlines and many more. Great deals, discounts and sales awaits for you.


text:
package com.smartg.swing.layout;

import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Insets;
import java.awt.Rectangle;
import java.awt.geom.Rectangle2D;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;

import javax.swing.border.Border;

import com.smartg.java.util.PreorderIterator;
import com.smartg.util.EmptyIterator;

/**
 * Tree-like layout manager. Components are placed only leafs (one leaf contains
 * just one component). Currently implemented nodes are GridNode,
 * HorizontalNode, VerticalNode and LeafNode.
 */
public abstract class LayoutNode implements Iterable<LayoutNode> {

	private String name;
	private LayoutNode parent;
	protected NodeAlignment horizontalAlignment = NodeAlignment.STRETCHED;
	protected NodeAlignment verticalAlignment = NodeAlignment.STRETCHED;
	protected ArrayList<LayoutNode> invalidNodes = new ArrayList<>();
	private Integer hgap, vgap;
	private Boolean debug;

	private Border border;

	private Container target;

	public LayoutNode(String name) {
		this.name = name;
	}

	public abstract Dimension preferredSize();

	public void add(LayoutNode layout) {
		add(layout, null);
	}

	public Border getBorder() {
		return border;
	}

	public Insets getNodeInsets() {
		Border b = getBorder();
		Container t = getTarget();
		if (b != null && t != null) {
			return b.getBorderInsets(t);
		}
		return new Insets(0, 0, 0, 0);
	}

	public void setBorder(Border border) {
		this.border = border;
	}

	public abstract void add(LayoutNode layout, Object constraints);

	public abstract int getCount();

	public abstract void remove(LayoutNode layout);

	protected Container getTarget() {
		if (parent != null) {
			return parent.getTarget();
		}
		return target;
	}

	void setTarget(Container target) {
		this.target = target;
	}

	public void print(int level) {
		System.out.println(create(level) + name);
		for (LayoutNode node : this) {
			node.print(level + 4);
		}
	}

	public boolean isDebug() {
		if (debug != null) {
			return debug;
		}
		LayoutNode parent = getParent();
		if (parent != null) {
			return parent.isDebug();
		}
		return false;
	}

	public void setDebug(boolean debug) {
		this.debug = debug;
	}

	public LayoutNode findNode(String name) {
		if (name.equals(getName())) {
			return this;
		}
		for (LayoutNode node : this) {
			LayoutNode res = node.findNode(name);
			if (res != null) {
				return res;
			}
		}
		return null;
	}

	public void paintBorder(Graphics g, Rectangle r) {
		if (border != null && g != null) {
			border.paintBorder(getTarget(), g, r.x, r.y, r.width, r.height);
		}
	}

	public void paintNode(Graphics g, Rectangle r) {
		if (g == null) {
			return;
		}
		Graphics2D g2 = (Graphics2D) g.create();
		g2.setColor(Color.RED);
		g2.setStroke(new BasicStroke(2));
		g2.drawRect(r.x, r.y, r.width, r.height);
	}

	@Override
	public String toString() {
		String className = getClass().getName();
		if (className.indexOf('$') >= 0) {
			className = className.substring(className.indexOf('$'));
		} else {
			className = className.substring(className.lastIndexOf('.'));
		}
		return className + " [name=" + name + "]";
	}

	/**
	 * We have to remove leaf nodes (which was added not through LayoutManager),
	 * after their child-component was removed from target Container;
	 */
	protected void removeInvalidNodes() {
		while (invalidNodes.size() > 0) {
			LayoutNode node = invalidNodes.remove(0);
			remove(node);
		}
	}

	public void add(Component comp) {
		add(comp, null);
	}

	public void add(Component comp, Object constraints) {
		LeafNode leaf = new LeafNode(this, comp);
		add(leaf, constraints);
	}

	LeafNode addLeafNode(Component comp, Object constraints) {
		LeafNode leaf = new LeafNode(this, comp);
		add(leaf, constraints);
		return leaf;
	}

	public String getName() {
		return name;
	}

	public boolean isLeaf() {
		return false;
	}

	public abstract void layout(Rectangle dest);

	public int getHgap() {
		if (hgap != null) {
			return hgap;
		}
		if (parent != null) {
			return parent.getHgap();
		}
		return 0;
	}

	public void setHgap(int hgap) {
		this.hgap = hgap;
	}

	public int getVgap() {
		if (vgap != null) {
			return vgap;
		}
		if (parent != null) {
			return parent.getVgap();
		}
		return 0;
	}

	public void setVgap(int vgap) {
		this.vgap = vgap;
	}

	public LayoutNode getParent() {
		return parent;
	}

	public NodeAlignment getHorizontalAlignment() {
		return horizontalAlignment;
	}

	public void setHorizontalAlignment(NodeAlignment alignment) {
		switch (alignment) {
		case TOP:
		case BOTTOM:
			throw new IllegalArgumentException("Using vertical constant for horizontal alignment.");
		default:
			this.horizontalAlignment = alignment;
			break;
		}
	}

	public Iterator<Component> components() {
		return new ComponentIterator();
	}

	private class ComponentIterator implements Iterator<Component> {

		private final Iterator<LayoutNode> iterator = new PreorderIterator<>(LayoutNode.this);

		private Component comp;

		public ComponentIterator() {
			comp = goNext();
		}

		private Component goNext() {
			while (iterator.hasNext()) {
				LayoutNode node = iterator.next();
				if (node.isLeaf()) {
					LeafNode leafNode = (LeafNode) node;
					return leafNode.getComponent();
				}
			}
			return null;
		}

		@Override
		public boolean hasNext() {
			return comp != null;
		}

		@Override
		public Component next() {
			Component tmp = comp;
			comp = goNext();
			return tmp;
		}

		@Override
		public void remove() {
		}
	}

	public NodeAlignment getVerticalAlignment() {
		return verticalAlignment;
	}

	protected void setInvalidNode(LayoutNode node) {
		if (node != null && node.getParent() == this && !invalidNodes.contains(node)) {
			invalidNodes.add(node);
		}
	}

	public void setVerticalAlignment(NodeAlignment alignment) {
		switch (alignment) {
		case LEFT:
		case RIGHT:
			throw new IllegalArgumentException("Using horizontal constant for vertical alignment.");
		default:
			this.verticalAlignment = alignment;
			break;
		}
	}

	protected int adjustX(int destWidth, int preferredWidth) {
		int dx = 0;
		if (horizontalAlignment == NodeAlignment.RIGHT) {
			dx = Math.max(0, destWidth - preferredWidth);
		} else if (horizontalAlignment == NodeAlignment.CENTER) {
			dx = Math.max(0, (destWidth - preferredWidth) / 2);
		}
		return dx;
	}

	protected int adjustY(int destHeight, int preferredHeight) {
		int dy = 0;
		if (verticalAlignment == NodeAlignment.BOTTOM) {
			dy = Math.max(0, destHeight - preferredHeight);
		} else if (verticalAlignment == NodeAlignment.CENTER) {
			dy = Math.max(0, (destHeight - preferredHeight) / 2);
		}
		return dy;
	}

	String create(int length) {
		StringBuffer sb = new StringBuffer(length);
		for (int i = 0; i < length; i++) {
			sb.append(' ');
		}
		return sb.toString();
	}

	static class LeafNode extends LayoutNode {

		private Component component;
		private Container container;

		LeafNode(LayoutNode p, Component component) {
			super("");
			((LayoutNode) this).parent = p;
			if (getTarget() != null) {
				getTarget().add(component);
			}
			this.component = component;
			this.container = component.getParent();
		}

		@Override
		public Dimension preferredSize() {
			if (component.getParent() != container) {
				if (container == null) {
					container = component.getParent();
				} else {
					getParent().setInvalidNode(this);
					return new Dimension();
				}
			}
			int hgap = getHgap();
			int vgap = getVgap();

			if (component.isVisible()) {

				Dimension preferredSize = component.getPreferredSize();

				preferredSize.width += hgap;
				preferredSize.height += vgap;

				Insets insets = getNodeInsets();
				preferredSize.width += insets.left + insets.right;
				preferredSize.height += insets.top + insets.bottom;

				return preferredSize;
			}
			return new Dimension();
		}

		@Override
		public Iterator<LayoutNode> iterator() {
			return new EmptyIterator<>();
		}

		@Override
		public boolean isLeaf() {
			return true;
		}

		@Override
		public void add(LayoutNode layout, Object constraints) {
			throw new UnsupportedOperationException();
		}

		@Override
		public void layout(Rectangle dest) {
			if (component.getParent() != container) {
				getParent().setInvalidNode(this);
				return;
			}

			Insets insets = getNodeInsets();

			dest.x += insets.left;
			dest.y += insets.top;
			dest.width -= insets.left + insets.right;
			dest.height -= insets.top + insets.bottom;

			int hgap = getHgap();
			int vgap = getVgap();

			if (horizontalAlignment == NodeAlignment.STRETCHED && verticalAlignment == NodeAlignment.STRETCHED) {
				Rectangle r = new Rectangle(dest.x + hgap, dest.y + vgap, dest.width - hgap, dest.height - vgap);
				component.setBounds(r);
				if (isDebug()) {
					String s = component.getName();
					if (s != null) {
						System.out.println(s + " " + r);
					}
				}
			} else {
				Dimension ps = preferredSize();

				double mx = 1;
				if (horizontalAlignment == NodeAlignment.STRETCHED) {
					mx = dest.getWidth() / ps.getWidth();
				}

				double my = 1;
				if (verticalAlignment == NodeAlignment.STRETCHED) {
					my = dest.getHeight() / ps.getHeight();
				}

				int dx = adjustX(dest.height, ps.height);
				int dy = adjustY(dest.width, ps.width);

				int x = dest.x + dx + hgap;
				int y = dest.y + dy + vgap;

				double height = ps.height * my;
				double width = ps.width * mx;

				Rectangle r = new Rectangle(x, y, (int) (width - hgap), (int) (height - vgap));
				component.setBounds(r);
				if (isDebug()) {
					String s = component.getName();
					if (s != null) {
						System.out.println(s + " " + r);
					}
				}
			}
		}

		Component getComponent() {
			return component;
		}

		@Override
		public void remove(LayoutNode layout) {

		}

		@Override
		public void print(int level) {
			System.out.println(create(level) + component);
		}

		@Override
		public int getCount() {
			return 1;
		}

		@Override
		public String toString() {
			return super.toString() + " [" + component.getName() + "]";
		}
	}

	public static class VerticalNode extends LayoutNode {

		private ArrayList<LayoutNode> list = new ArrayList<>();

		public VerticalNode(String name) {
			super(name);
		}

		@Override
		public Dimension preferredSize() {
			int height = 0;
			int width = 0;
			for (LayoutNode c : this) {
				Dimension ps = c.preferredSize();
				height += ps.height;
				width = Math.max(width, ps.width);
			}
			Insets insets = getNodeInsets();
			width += insets.left + insets.right;
			height += insets.top + insets.bottom;

			return new Dimension(width, height);
		}

		@Override
		public Iterator<LayoutNode> iterator() {
			return list.iterator();
		}

		@Override
		public void add(LayoutNode layout, Object constraints) {
			if (!list.contains(layout)) {
				list.add(layout);
				layout.parent = this;
			}
		}

		@Override
		public void layout(Rectangle dest) {
			removeInvalidNodes();

			Insets insets = getNodeInsets();

			dest.x += insets.left;
			dest.y += insets.top;
			dest.width -= insets.left + insets.right;
			dest.height -= insets.top + insets.bottom;

			Xym xym = computeXym(dest);

			for (LayoutNode c : this) {
				Dimension d = c.preferredSize();
				double height = d.height * xym.m;
				Rectangle r = xym.create(height);
				c.layout(r);
				xym.y += height;
			}
		}

		@Override
		public void paintBorder(Graphics g, Rectangle dest) {
			super.paintBorder(g, dest);

			Xym xym = computeXym(dest);

			for (LayoutNode c : this) {
				Dimension d = c.preferredSize();
				double height = d.height * xym.m;
				Rectangle r = xym.create(height);
				c.paintBorder(g, r);
				xym.y += height;
			}
		}

		@Override
		public void paintNode(Graphics g, Rectangle dest) {
			super.paintNode(g, dest);

			Xym xym = computeXym(dest);

			for (LayoutNode c : this) {
				Dimension d = c.preferredSize();
				double height = d.height * xym.m;
				Rectangle r = xym.create(height);
				c.paintNode(g, r);
				xym.y += height;
			}
		}

		private Xym computeXym(Rectangle dest) {
			Dimension ps = preferredSize();
			int width;
			if (horizontalAlignment == NodeAlignment.STRETCHED) {
				width = dest.width;
			} else {
				width = Math.min(dest.width, ps.width);
			}

			float m = 1f;

			if (dest.height < ps.height || verticalAlignment == NodeAlignment.STRETCHED) {
				m = (float) (dest.getHeight() / ps.getHeight());
			}

			int dx = adjustX(dest.width, ps.width);
			int dy = adjustY(dest.height, ps.height);

			int x = dest.x + dx;
			int y = dest.y + dy;

			Xym xym = new Xym();
			xym.x = x;
			xym.y = y;
			xym.m = m;
			xym.width = width;

			return xym;
		}

		static class Xym {

			float m;
			int x, y, width;

			Rectangle create(double height) {
				return new Rectangle(x, y, width, (int) (height));
			}
		}

		@Override
		public void remove(LayoutNode layout) {
			list.remove(layout);
		}

		@Override
		public int getCount() {
			return list.size();
		}
	}

	public static class HorizontalNode extends LayoutNode {

		private ArrayList<LayoutNode> list = new ArrayList<>();

		public HorizontalNode(String name) {
			super(name);
		}

		@Override
		public Dimension preferredSize() {
			int height = 0;
			int width = 0;
			for (LayoutNode c : this) {
				Dimension ps = c.preferredSize();
				width += ps.width;
				height = Math.max(height, ps.height);
			}
			Insets insets = getNodeInsets();
			width += insets.left + insets.right;
			height += insets.top + insets.bottom;

			return new Dimension(width, height);
		}

		@Override
		public Iterator<LayoutNode> iterator() {
			return list.iterator();
		}

		@Override
		public void add(LayoutNode layout, Object constraints) {
			if (!list.contains(layout)) {
				list.add(layout);
				layout.parent = this;
			}
		}

		@Override
		public void layout(Rectangle dest) {
			removeInvalidNodes();

			Insets insets = getNodeInsets();

			dest.x += insets.left;
			dest.y += insets.top;
			dest.width -= insets.left + insets.right;
			dest.height -= insets.top + insets.bottom;

			Dimension ps = preferredSize();
			int height;
			if (verticalAlignment == NodeAlignment.STRETCHED) {
				height = dest.height;
			} else {
				height = Math.min(dest.height, ps.height);
			}

			double m = 1;

			if (dest.width < ps.width || horizontalAlignment == NodeAlignment.STRETCHED) {
				m = dest.getWidth() / ps.getWidth();
			}

			int dx = adjustX(dest.width, ps.width);
			int dy = adjustY(dest.height, ps.height);

			int x = dest.x + dx;
			int y = dest.y + dy;

			for (LayoutNode c : this) {
				Dimension d = c.preferredSize();
				double width = d.width * m;
				Rectangle bounds = new Rectangle();
				bounds.setRect(x, y, width, height);
				c.layout(bounds);
				x += width;
			}
		}

		@Override
		public void paintBorder(Graphics g, Rectangle dest) {
			super.paintBorder(g, dest);

			Dimension ps = preferredSize();
			int height;
			if (verticalAlignment == NodeAlignment.STRETCHED) {
				height = dest.height;
			} else {
				height = Math.min(dest.height, ps.height);
			}

			double m = 1;

			if (dest.width < ps.width || horizontalAlignment == NodeAlignment.STRETCHED) {
				m = dest.getWidth() / ps.getWidth();
			}

			int dx = adjustX(dest.width, ps.width);
			int dy = adjustY(dest.height, ps.height);

			int x = dest.x + dx;
			int y = dest.y + dy;

			for (LayoutNode c : this) {
				Dimension d = c.preferredSize();
				double width = d.width * m;
				Rectangle bounds = new Rectangle();
				bounds.setRect(x, y, width, height);
				c.paintBorder(g, bounds);
				x += width;
			}
		}

		@Override
		public void paintNode(Graphics g, Rectangle dest) {
			super.paintNode(g, dest);

			Dimension ps = preferredSize();
			int height;
			if (verticalAlignment == NodeAlignment.STRETCHED) {
				height = dest.height;
			} else {
				height = Math.min(dest.height, ps.height);
			}

			double m = 1;

			if (dest.width < ps.width || horizontalAlignment == NodeAlignment.STRETCHED) {
				m = dest.getWidth() / ps.getWidth();
			}

			int dx = adjustX(dest.width, ps.width);
			int dy = adjustY(dest.height, ps.height);

			int x = dest.x + dx;
			int y = dest.y + dy;

			for (LayoutNode c : this) {
				Dimension d = c.preferredSize();
				double width = d.width * m;
				Rectangle bounds = new Rectangle();
				bounds.setRect(x, y, width, height);
				c.paintNode(g, bounds);
				x += width;
			}
		}

		@Override
		public void remove(LayoutNode layout) {
			list.remove(layout);
		}

		@Override
		public int getCount() {
			return list.size();
		}
	}

	public static class RectNode extends LayoutNode {

		private HashMap<LayoutNode, Rectangle2D> map = new HashMap<>();

		public RectNode(String name) {
			super(name);
		}

		@Override
		public Iterator<LayoutNode> iterator() {
			return map.keySet().iterator();
		}

		@Override
		public Dimension preferredSize() {
			double width = 0;
			double height = 0;
			for (LayoutNode n : this) {
				Dimension ps = n.preferredSize();
				Rectangle2D r = map.get(n);
				double w = ps.width / r.getWidth();
				double h = ps.height / r.getHeight();
				width = Math.max(w, width);
				height = Math.max(h, height);
			}
			Insets insets = getNodeInsets();
			width += insets.left + insets.right;
			height += insets.top + insets.bottom;

			Dimension res = new Dimension();
			res.setSize(width, height);
			return res;
		}

		private void checkRange(double... nn) {
			for (double d : nn) {
				if (d < -0.001 || d > 1.001) {
					throw new IllegalArgumentException();
				}
			}
		}

		@Override
		public void add(LayoutNode layout, Object constraints) {
			Rectangle2D r = (Rectangle2D) constraints;
			if (r == null) {
				r = new Rectangle2D.Double(0, 0, 1, 1);
			}
			checkRange(r.getX(), r.getY(), r.getX() + r.getWidth(), r.getY() + r.getHeight());
			map.put(layout, r);
			layout.parent = this;
		}

		@Override
		public void remove(LayoutNode layout) {
			map.remove(layout);
		}

		@Override
		public void layout(Rectangle dest) {
			removeInvalidNodes();

			Insets insets = getNodeInsets();

			dest.x += insets.left;
			dest.y += insets.top;
			dest.width -= insets.left + insets.right;
			dest.height -= insets.top + insets.bottom;

			for (LayoutNode n : this) {
				Rectangle2D r = map.get(n);
				int width = dest.width;
				int height = dest.height;

				int x = (int) (width * r.getX());
				int y = (int) (height * r.getY());
				int w = (int) (width * r.getWidth());
				int h = (int) (height * r.getHeight());

				Rectangle bounds = new Rectangle(dest.x + x, dest.y + y, w, h);
				n.layout(bounds);
			}
		}

		@Override
		public void paintBorder(Graphics g, Rectangle dest) {
			super.paintBorder(g, dest);

			for (LayoutNode n : this) {
				Rectangle2D r = map.get(n);
				int width = dest.width;
				int height = dest.height;

				int x = (int) (width * r.getX());
				int y = (int) (height * r.getY());
				int w = (int) (width * r.getWidth());
				int h = (int) (height * r.getHeight());

				Rectangle bounds = new Rectangle(dest.x + x, dest.y + y, w, h);

				n.paintBorder(g, bounds);
			}
		}

		@Override
		public void paintNode(Graphics g, Rectangle dest) {
			super.paintNode(g, dest);
			for (LayoutNode n : this) {
				Rectangle2D r = map.get(n);
				int width = dest.width;
				int height = dest.height;

				int x = (int) (width * r.getX());
				int y = (int) (height * r.getY());
				int w = (int) (width * r.getWidth());
				int h = (int) (height * r.getHeight());

				Rectangle bounds = new Rectangle(dest.x + x, dest.y + y, w, h);

				n.paintNode(g, bounds);
			}
		}

		@Override
		public int getCount() {
			return map.size();
		}
	}

	public static class GridNode extends LayoutNode {

		private GridModel gridModel = new GridModel();

		private HashMap<LayoutNode, Rectangle> map = new HashMap<>();

		public GridNode(String name) {
			super(name);
		}

		@Override
		public Iterator<LayoutNode> iterator() {
			return map.keySet().iterator();
		}

		@Override
		public Dimension preferredSize() {
			Rectangle r = getGridBounds();
			gridModel.setGridHeight(r.height + 1);
			gridModel.setGridWidth(r.width + 1);

			updateCellSizes();

			int width = 0;
			int height = 0;

			for (int x = r.x; x < r.x + r.width; x++) {
				Dimension cs = gridModel.getCellSize(x, 0);
				width += cs.width;
			}

			for (int y = r.y; y < r.y + r.height; y++) {
				Dimension cs = gridModel.getCellSize(0, y);
				height += cs.height;
			}

			Insets insets = getNodeInsets();
			width += insets.left + insets.right;
			height += insets.top + insets.bottom;

			Dimension d = new Dimension(width, height);
			return d;
		}

		private void updateCellSizes() {
			double width = 0;
			double height = 0;
			for (LayoutNode gl : this) {
				Rectangle r = map.get(gl);
				Rectangle2D cs = cellSize(gl, r);

				for (int x = r.x; x < r.x + r.width; x++) {
					for (int y = r.y; y < r.y + r.height; y++) {
						gridModel.setCellSize(x, y, (int) cs.getWidth(), (int) cs.getHeight());
					}
				}

				width = Math.max(width, cs.getWidth());
				height = Math.max(height, cs.getHeight());
			}
		}

		public Rectangle getGridBounds() {
			Rectangle res = new Rectangle();
			for (LayoutNode gl : this) {
				Rectangle r = map.get(gl);
				res = res.union(r);
			}
			return res;
		}

		private Rectangle2D cellSize(LayoutNode gl, Rectangle r) {
			Dimension ps = gl.preferredSize();
			double w = ps.getWidth() / r.getWidth();
			double h = ps.getHeight() / r.getHeight();

			return new Rectangle2D.Double(0, 0, w, h);
		}

		@Override
		public void add(LayoutNode node, Object constraints) {
			if (constraints == null) {
				throw new NullPointerException();
			}
			if (isDebug()) {
				System.out.println("add: " + node + " " + constraints);
			}
			Rectangle r = (Rectangle) constraints;
			map.put(node, r);
			node.parent = this;
		}

		@Override
		public void layout(Rectangle dest) {
			if (isDebug()) {
				System.out.print("");
			}
			removeInvalidNodes();

			Dimension preferredSize = preferredSize();

			double mx = 1;
			if (horizontalAlignment == NodeAlignment.STRETCHED) {
				mx = dest.getWidth() / preferredSize.getWidth();
			}

			double my = 1;
			if (verticalAlignment == NodeAlignment.STRETCHED) {
				my = dest.getHeight() / preferredSize.getHeight();
			}

			int dx = adjustX(dest.width - dest.x, preferredSize.width);
			int dy = adjustY(dest.height - dest.y, preferredSize.height);

			Insets insets = getNodeInsets();

			dest.x += insets.left;
			dest.y += insets.top;
			dest.width -= insets.left + insets.right;
			dest.height -= insets.top + insets.bottom;

			for (LayoutNode gl : this) {
				Rectangle r = map.get(gl);
				int x = getXOffset(0, r.x, mx) + dx;
				double width = getXOffset(r.x, r.x + r.width, mx);
				int y = getYOffset(0, r.y, my) + dy;
				double height = getYOffset(r.y, r.y + r.height, my);

				Rectangle bounds = new Rectangle();
				bounds.setRect(dest.x + x, dest.y + y, width, height);
				gl.layout(bounds);
			}
		}

		@Override
		public void paintBorder(Graphics g, Rectangle dest) {
			super.paintBorder(g, dest);

			Dimension preferredSize = preferredSize();

			double mx = 1;
			if (horizontalAlignment == NodeAlignment.STRETCHED) {
				mx = dest.getWidth() / preferredSize.getWidth();
			}
			double my = 1;
			if (verticalAlignment == NodeAlignment.STRETCHED) {
				my = dest.getHeight() / preferredSize.getHeight();
			}

			int dx = adjustX(dest.width - dest.x, preferredSize.width);
			int dy = adjustY(dest.height - dest.y, preferredSize.height);

			Insets insets = getNodeInsets();

			dest.x += insets.left;
			dest.y += insets.top;
			dest.width -= insets.left + insets.right;
			dest.height -= insets.top + insets.bottom;

			for (LayoutNode gl : this) {
				Rectangle r = map.get(gl);
				int x = getXOffset(0, r.x, mx) + dx;
				double width = getXOffset(r.x, r.x + r.width, mx);
				int y = getYOffset(0, r.y, my) + dy;
				double height = getYOffset(r.y, r.y + r.height, my);

				Rectangle bounds = new Rectangle();
				bounds.setRect(dest.x + x, dest.y + y, width, height);
				gl.paintBorder(g, bounds);
			}
		}

		public int getMaxCellWidth() {
			return gridModel.maxCellWidth;
		}

		public void setMaxCellWidth(int maxCellWidth) {
			gridModel.maxCellWidth = maxCellWidth;
			if (gridModel.minCellWidth > maxCellWidth) {
				gridModel.minCellWidth = maxCellWidth;
			}
		}

		public int getMinCellWidth() {
			return gridModel.minCellWidth;
		}

		public void setMinCellWidth(int minCellWidth) {
			gridModel.minCellWidth = minCellWidth;
			if (gridModel.maxCellWidth < minCellWidth) {
				gridModel.maxCellWidth = minCellWidth;
			}
		}

		public int getMaxCellHeight() {
			return gridModel.maxCellHeight;
		}

		public void setMaxCellWidth(int x, int max) {
			gridModel.setMaxCellWidth(x, max);
		}

		public void setMinCellWidth(int x, int min) {
			gridModel.setMinCellWidth(x, min);
		}

		public void setMaxCellHeight(int y, int max) {
			gridModel.setMaxCellHeight(y, max);
		}

		public void setMinCellHeight(int y, int min) {
			gridModel.setMinCellHeight(y, min);
		}

		public void setMaxCellHeight(int maxCellHeight) {
			gridModel.maxCellHeight = maxCellHeight;
			if (gridModel.minCellHeight > maxCellHeight) {
				gridModel.minCellHeight = maxCellHeight;
			}
		}

		public int getMinCellHeight() {
			return gridModel.minCellHeight;
		}

		public void setMinCellHeight(int minCellHeight) {
			gridModel.minCellHeight = minCellHeight;
			if (gridModel.maxCellHeight < minCellHeight) {
				gridModel.maxCellHeight = minCellHeight;
			}
		}

		@Override
		public void paintNode(Graphics g, Rectangle dest) {
			super.paintNode(g, dest);

			Dimension preferredSize = preferredSize();

			double mx = 1;
			if (horizontalAlignment == NodeAlignment.STRETCHED) {
				mx = dest.getWidth() / preferredSize.getWidth();
			}
			double my = 1;
			if (verticalAlignment == NodeAlignment.STRETCHED) {
				my = dest.getHeight() / preferredSize.getHeight();
			}

			int dx = adjustX(dest.width - dest.x, preferredSize.width);
			int dy = adjustY(dest.height - dest.y, preferredSize.height);

			Insets insets = getNodeInsets();

			dest.x += insets.left;
			dest.y += insets.top;
			dest.width -= insets.left + insets.right;
			dest.height -= insets.top + insets.bottom;

			for (LayoutNode gl : this) {
				Rectangle r = map.get(gl);
				int x = getXOffset(0, r.x, mx) + dx;
				double width = getXOffset(r.x, r.x + r.width, mx);
				int y = getYOffset(0, r.y, my) + dy;
				double height = getYOffset(r.y, r.y + r.height, my);

				Rectangle bounds = new Rectangle();
				bounds.setRect(dest.x + x, dest.y + y, width, height);
				gl.paintNode(g, bounds);
			}
		}

		public void printNodes() {
			for (LayoutNode node : this) {
				System.out.println(node + " " + map.get(node));
			}
		}

		public int getXOffset(int from, int to, double d) {
			int width = 0;

			for (int x = from; x < to; x++) {
				double w = gridModel.getCellSize(x, 0).width * d;
				int max = gridModel.getMaxCellWidth(x);
				int min = gridModel.getMinCellWidth(x);
				width += Math.min(Math.max(w, min), max);
			}
			return width;
		}

		public int getYOffset(int from, int to, double d) {
			int height = 0;
			for (int y = from; y < to; y++) {
				int h = gridModel.getCellSize(0, y).height;
				int max = gridModel.getMaxCellHeight(y);
				int min = gridModel.getMinCellHeight(y);
				height += Math.min(Math.max(h, min), max);
			}
			return height;
		}

		@Override
		public void remove(LayoutNode layout) {
			map.remove(layout);
		}

		@Override
		public int getCount() {
			return map.size();
		}
	}

	private class GridModel {

		private int[] cellWidth;
		private int[] cellHeight;

		private Integer[] minCellWidths;
		private Integer[] minCellHeights;

		private Integer[] maxCellWidths;
		private Integer[] maxCellHeights;

		private int minCellWidth = 0;
		private int minCellHeight = 0;

		private int maxCellWidth = 10000;
		private int maxCellHeight = 10000;

		int getFixedWidthSum() {
			int sum = 0;
			for (int x = 0; x < maxCellWidths.length; x++) {
				if (maxCellWidths[x] != null) {
					sum += maxCellWidths[x];
				}
			}
			return sum;
		}

		int getFixedHeightsSum() {
			int sum = 0;
			for (int y = 0; y > maxCellHeights.length; y++) {
				if (maxCellHeights[y] != null) {
					sum += maxCellHeights[y];
				}
			}
			return sum;
		}

		void setMinCellWidth(int x, int min) {
			if (this.minCellWidths == null) {
				this.minCellWidths = new Integer[x + 1];
			}
			if (this.minCellWidths.length <= x) {
				this.minCellWidths = Arrays.copyOf(this.minCellWidths, x + 5);
			}
			this.minCellWidths[x] = min;
		}

		void setMaxCellWidth(int x, int min) {
			if (this.maxCellWidths == null) {
				this.maxCellWidths = new Integer[x + 1];
			}
			if (this.maxCellWidths.length <= x) {
				this.maxCellWidths = Arrays.copyOf(this.maxCellWidths, x + 5);
			}
			this.maxCellWidths[x] = min;
		}

		void setMinCellHeight(int y, int min) {
			if (this.minCellHeights == null) {
				this.minCellHeights = new Integer[y + 1];
			}
			if (this.minCellHeights.length <= y) {
				this.minCellHeights = Arrays.copyOf(this.minCellHeights, y + 5);
			}
			this.minCellHeights[y] = min;
		}

		void setMaxCellHeight(int y, int min) {
			if (maxCellHeights == null) {
				maxCellHeights = new Integer[y + 1];
			}
			if (maxCellHeights.length <= y) {
				maxCellHeights = Arrays.copyOf(this.maxCellHeights, y + 5);
			}
			maxCellHeights[y] = min;
		}

		void setGridHeight(int size) {
			this.cellHeight = new int[size];
			if (this.minCellHeights == null) {
				this.minCellHeights = new Integer[size];
			} else {
				this.minCellHeights = Arrays.copyOf(this.minCellHeights, size);
			}
			if (this.maxCellHeights == null) {
				this.maxCellHeights = new Integer[size];
			} else {
				this.maxCellHeights = Arrays.copyOf(this.minCellHeights, size);
			}
		}

		void setGridWidth(int size) {
			this.cellWidth = new int[size];
			if (this.minCellWidths == null) {
				this.minCellWidths = new Integer[size];
			} else {
				this.minCellWidths = Arrays.copyOf(this.minCellWidths, size);
			}
			if (this.maxCellWidths == null) {
				this.maxCellWidths = new Integer[size];
			} else {
				this.maxCellWidths = Arrays.copyOf(this.maxCellWidths, size);
			}
		}

		private int getMaxCellWidth(int index) {
			if (this.maxCellWidths == null || this.maxCellWidths[index] == null) {
				return this.maxCellWidth;
			}
			return this.maxCellWidths[index];
		}

		private int getMaxCellHeight(int index) {
			if (this.maxCellHeights == null || this.maxCellHeights[index] == null) {
				return this.maxCellHeight;
			}
			return this.maxCellHeights[index];
		}

		private int getMinCellWidth(int index) {
			if (this.minCellWidths == null || this.minCellWidths[index] == null) {
				return this.minCellWidth;
			}
			return this.minCellWidths[index];
		}

		private int getMinCellHeight(int index) {
			if (this.minCellHeights == null || this.minCellHeights[index] == null) {
				return minCellHeight;
			}
			return this.minCellHeights[index];
		}

		Dimension getCellSize(int x, int y) {
			int width = Math.min(getMaxCellWidth(x), Math.max(getMinCellWidth(x), this.cellWidth[x]));
			int height = Math.min(getMaxCellHeight(y), Math.max(getMinCellHeight(y), this.cellHeight[y]));
			return new Dimension(width, height);
		}

		void setCellSize(int x, int y, int width, int height) {
			if (x >= this.cellWidth.length) {
				this.cellWidth = Arrays.copyOf(this.cellWidth, x + 5);
			}
			if (y >= this.cellHeight.length) {
				this.cellHeight = Arrays.copyOf(this.cellHeight, y + 5);
			}
			this.cellWidth[x] = Math.max(this.cellWidth[x], width);
			this.cellHeight[y] = Math.max(this.cellHeight[y], height);
		}
	}
}

redpajama_set_name: RedPajamaGithub


No manuals are supplied with this product.
If your Dongle is damaged or malfunctions in any way after the warranty period, you can purchase a replacement with any extra modules you may have purchased. All you need to do is return your malfunctioning Dongle for replacement, the original serial number must be available. I you loose, have stolen or can't return your original Dongle for replacement you will have to purchase a full software package (Part No. SW-00125) and any extra modules you may have purchased.


You know . . . the kind that stays soft . . . yet chewy for days.
Almond Paste . . . could it be the secret ingredient to the Perfect Sugar Cookie? Well, I don't know if they are Perfect, but they are DARN GOOD! Usually, you have to wait until the 2nd day for a frosted Sugar cookie to soften up and get that yummy "sink into your teeth texture." Surely . . . you know what I mean. These scrumptious Almond flavored Cookies were soft yet chewy from the start. Day two: Fantastic. If you need a GREAT Sugar Cookie for Halloween Decorating, you won't be disappointed.
As for the Frosting: I love the look and style of a Royal Frosting type of Cookie, however I hate the taste. Let's face it, they are much prettier but don't taste nearly as good as a Cookie frosted with Cream Cheese or Buttercream frosting. If you are mailing your cookies far, far away . . . Royal Frosting is your best bet. If you want a Soft, Chewy Sugar Cookie go for the other! I will include the Cream Cheese Frosting recipe that I used as well the Frosting recipe included with Daria's recipe. Happy Decorating.
In a large bowl, beat almond paste and egg yolks until well blended. Add the butter, sugar and salt; beat until light and fluffy. Gradually add flour and mix well. Divide into four portions; shape each into a ball, then flatten into a disk. Wrap in plastic wrap and refrigerate for 1-2 hours or until easy to handle.
On a lightly floured surface, roll one portion of dough to 1/4″ thickness. Cut with a floured 2-1/2″ cookie cutter. Place 2 in. apart on ungreased baking sheets. Repeat with remaining dough.
Bake at 375 degrees for 6-8 minutes or until edges begin to brown. Cool for 2 minutes before removing from pans to wire racks to cool completely.
For Frosting: Beat the confectioners sugar, meringue powder and water until fluffy, about 5 minutes. Color frosting if desired. Frost cookies; decorate with coarse sugar and sprinkles if desired. Let stand until set. Store in an airtight container.
Notes: Meringue powder is available in stores such as Walmart or Michael's, where you find Decorating tips, Cake pans, Cupcake liners, etc.
*I used Cream Cheese Frosting for my cookies, and colored the frosting with Wilton's gel paste. I cooked my cookies for about 8 minutes.
Very cute! I'm not a cookie baker but am tempted to give these a try. The almond paste is calling to me too.
Btw, YES we loved the caramel apples and no I didn't have the apples refridgerated.! 🙁 DUH! Next time.
Almond paste can be found in almost any grocery store. It is usually located on the same aisle as chocolate chips, nuts, etc.


text:
package org.lockss.plugin.clockss.wiley;

import org.lockss.daemon.PluginException;
import org.lockss.extractor.ArticleMetadata;
import org.lockss.extractor.FileMetadataExtractor;
import org.lockss.extractor.MetadataField;
import org.lockss.extractor.MetadataTarget;
import org.lockss.plugin.CachedUrl;
import org.lockss.plugin.clockss.SourceXmlMetadataExtractorFactory;
import org.lockss.plugin.clockss.SourceXmlSchemaHelper;
import org.lockss.util.Logger;

public class WileyBooksSourceXmlMetadataExtractorFactory extends SourceXmlMetadataExtractorFactory {
  private static final Logger log = Logger.getLogger(WileyBooksSourceXmlMetadataExtractorFactory.class);

  private static SourceXmlSchemaHelper  schemaHelper = null;

  @Override
  public FileMetadataExtractor createFileMetadataExtractor(MetadataTarget target,
      String contentType)
          throws PluginException {
    return new WileySourceXmlMetadataExtractor();
  }

  public static class WileySourceXmlMetadataExtractor extends SourceXmlMetadataExtractor {

    @Override
    protected SourceXmlSchemaHelper setUpSchema(CachedUrl cu) {
    // Once you have it, just keep returning the same one. It won't change.
      if ( schemaHelper != null) {
        return  schemaHelper;
      }
       schemaHelper = new  WileyBooksSourceXmlSchemaHelper();
      return  schemaHelper;
    }

    @Override
    protected void postCookProcess(SourceXmlSchemaHelper schemaHelper,
    		CachedUrl cu, ArticleMetadata thisAM) {

    	log.debug3("setting publication type in postcook process");
    	// this is a book volume
    	thisAM.put(MetadataField.FIELD_PUBLICATION_TYPE,MetadataField.PUBLICATION_TYPE_BOOK);
    	thisAM.put(MetadataField.FIELD_ARTICLE_TYPE,MetadataField.ARTICLE_TYPE_BOOKVOLUME);
    }

  }
}


** The grinding rest was satisfactory but a ... tool on the left-hand wheel, the tool could catch the grinder ... came with the grinding machine.
Find bench grinder tool rest from a vast selection of Tools . Get great deals on eBay!
Abrasive wheels and tools. - 1926.303 ... Tools - Hand and Power • Standard Number: ... On offhand grinding machines, work rests shall be used to support the work.
Occupational Safety and Health Standards ... On offhand grinding machines, work rests shall be used to support the work. ... Surface grinders and cutting-off machines.
Operating Instructions and Parts Manual ... Turn power off and do not leave machine until ... the grinding face or edge near the tool rest.
May 10, 2013· This a video of my homemade tool rest I made for my 6" bench grinder.


Multiple burglaries have been reported today, including one a short time ago at 1556 Van Epps. The vehicle being used is believed to be a 2001 green Jeep Cherokee, with GA tag PMT8029. Please immediately call 911 followed by the EASP at 404-954-1568 if you see this vehicle.
Same vehicle used in robbery at 976 N Ormewood this morning. Police has video clip of robbery in progress and pictures of car.


U.S. Foam l%-3% AR/AFFF (ATC/AFFF) is a versatile fire fighting foam for protection of a wide range of Class B flammable liquid hazards. U.S. Foam 1%-3% AR/AFFF (ATC/AFFF) is an all synthetic film forming foam designed for protection of water-soluble polar solvents as well as water insoluble hydrocarbon flammable liquids. When used with fresh water and foam generating equipment U.S. Foams 1%-3% AR-AFFF is transformed into a vapor blanketing foam to provide extinguishing and securing abilities.


Can you recommend a few decent authors or books, something that was a real page-turner for you ? I must admit that I have a fondness for historical fiction; and personally enjoyed "Sarum", "London" and "The New Forest", all by Edward Rutherfurd. Another that comes to mind is "Pillars if the Earth", historically innacurate, but fun never the less.


text:
Frontiers in Plant Science
Plant Abiotic Stress
Adaptation of Dryland Plants to a Changing Environment
About this Research Topic
Submission closed.
Drylands, are defined as areas where annual mean potential evapotranspiration is at least 1.5 times greater than annual mean precipitation, with an aridity index (AI) ranging between 0.05 and 0.65. Based on the AI, drylands can be classified into 4 subtypes: dry sub-humid (AI=0.50–0.65), semi-arid ...
Drylands, are defined as areas where annual mean potential evapotranspiration is at least 1.5 times greater than annual mean precipitation, with an aridity index (AI) ranging between 0.05 and 0.65. Based on the AI, drylands can be classified into 4 subtypes: dry sub-humid (AI=0.50–0.65), semi-arid (AI=0.20–0.50), arid (AI=0.05–0.20) and hyper-arid (AI<0.05) lands. To date drylands cover ~40% of the global terrestrial surface and are home to >38% of the world's population, which is estimated to rise to 3 billion by 2020. Drylands are one of the most vulnerable ecosystems to changes in the environment and anthropogenic activity. Over the 20th century they increased by 4–8% and will likely continue to expand during 21st century. Future climate projections indicate that drylands will bear risks of changing climate, particularly facing greater-warming in the decades to come. Droughts, high temperatures, heat waves and other predicted environmental changes will have profound effects on dryland plant communities and the services they provide, including water resources, wildlife habitat, soil conservation, agriculture and carbon storage.
Although there is an increasing awareness of the potential impact that the changing environment has on dryland plant function and community dynamics, there is still considerably less theoretical and empirical attention from scientists to dryland plants compared to plants from other ecosystems. This less attention is hampering the ability to improve our understanding and predict the structure and functioning of dryland ecosystems. Studies focus on the effects of environmental changes in dryland ecosystems differ from other ecosystems because of the characteristic water limitation of drylands.
This Research Topic aims to highlight the ecological role of plants in drylands under human-induced environmental changes. Contributions to this Research Topic will focus on dryland plants in relation to changes in climate, such as rising temperature, heat waves, and altered precipitation, and in human activities, such as grazing, land abandonment, mining, deforestation, soil loss, and human-induced change in land use or land cover. The scale of the contributions will be at local, regional and globally. We welcome authors to report original and novel research on dryland plant adaptation and responses, either from temporal, spatial observations along environmental gradients, or from simulation experiments that focus on short-term and rapid effects of environmental changes. Simulation modeling approaches will also be considered. We encourage submissions from various disciplines, both case studies and reviews that document how environmental changes affect plant growth, vegetation, ecosystem and how the abiotic environment might shift the intensity of these interactions. Submission to this Research Topic is limited to authors previously contacted by the Topic Editors.
Keywords: Future Climates, Drylands, Ecosystem Functioning, Plant Adaptation, Vegetation Dynamics
Important Note: All contributions to this Research Topic must be within the scope of the section and journal to which they are submitted, as defined in their mission statements. Frontiers reserves the right to guide an out-of-scope manuscript to a more suitable section or journal at any stage of peer review.
Topic Editors
Topic Coordinators
See all ()
total views views downloads topic views
The displayed data aggregates results from Frontiers and PubMed Central®.
About Frontiers Research Topics
With their unique mixes of varied contributions from Original Research to Review Articles, Research Topics unify the most influential researchers, the latest key findings and historical advances in a hot research area! Find out more on how to host your own Frontiers Research Topic or contribute to one as an author.
Publishing fees
<% if(article.ImpactCitations > 0) { %>
You will be redirected to our submission process.
Select the journal/section where you want your idea to be submitted:
Submit your abstract Submit your manuscript Submit your abstract Submit your manuscript
Visit sponsor's website

redpajama_set_name: RedPajamaCommonCrawl


text:
The Mercedes-Benz OC 500 LE is a modular, heavy-duty, twin-axle bus chassis produced by Mercedes-Benz/EvoBus Ibérica, Spain. It was designed as a modular platform for low-entry city, suburban, and intercity buses with a maximum gross vehicle weight of 19.1 tonnes. The main modules consist of: driver's pedestal, front axle, buggy centre section, drive axle and engine. It has much in common with the chassis used for the Mercedes-Benz Citaro integral bus range, and also the raised floor OC 500 RF coach chassis. The engine is horizontally mounted over the rear overhang.

Mercedes-Benz in Brazil manufacture a low-entry chassis known as the O 500 U, which is related to the OC 500 LE, but is not identical. It is also available as the articulated O 500 UA and the quad-axle articulated O 500 UDA, with the latter giving a vehicle length of 23 metres. The O 500 U is also available in Australia, marketed as OH1830LE.

Technical details

Variations
OC 500 LE 1825h
 Engine type: OM 457 hLA (Euro III) inline 6-cylinder 11.967-litre turbocharged intercooled, direct injection diesel
 Power: 185 kW (252 hp) @ 2000 rpm
 Torque: 1100 N m (811 ft·lbf) @ 1100 rpm

OC 500 LE 1825hG
Engine type: M 447 hLAG (Euro IV/Euro V/EEV) inline 6-cylinder 11.967-litre turbocharged intercooled, lean burn, spark ignition single point injection CNG
Power: 185 kW (252 hp) @ 2000 rpm
Torque: 1050 N m (774 ft·lbf) @ 1000-1400 rpm

OC 500 LE 1830h
Engine type: OM 457 hLA (Euro III/Euro IV/Euro V/EEV) inline 6-cylinder 11.967-litre turbocharged intercooled, direct injection diesel
Power: 220 kW (299 hp) @ 2000 rpm
Torque: 1250 N m (921 ft·lbf) @ 1100 rpm

OC 500 LE Euro VI
Engine type: OM 936 (Euro VI) inline 6-cylinder 7.698-litre turbocharged intercooled, direct injection diesel
Power: 220 kW (299 hp) @ 1200 rpm
Torque: 1200 N m @ 1200-1600 rpm

Initially available with Euro III engines, the OC 500 LE chassis got upgraded to Euro IV, Euro V and EEV-compliant diesel engines using AdBlue Selective Catalytic Reduction technology. With Euro IV, Euro V and EEV, the 252 hp rating of the OM 457 hLA was discontinued, making the 299 hp engine as standard for the OC 500 LE. It is also available with the OM 936 engine in Euro VI markets.

Transmissions
Currently, Mercedes-Benz only offers a ZF EcoLife 6-speed automatic transmission with integrated hydraulic retarder (model 6 AP 1200 B for the 252 hp CNG engine or model 6 AP 1400 B for the 299 hp diesel engine).  Previously available was the Voith D864.3E 4-speed automatic transmission as well as the ZF Ecomat 5 HP 502/592 5-speed and 6 HP 502/592 6-speed automatic transmissions.

Orders

Australia

Large numbers of buses built on the OC 500 LE chassis can be found in Australia, where it was originally marketed as the O 500LE. then got renamed as the Mercedes OC 500 LE . Now, it is marketed here like in the world, as OC 500 LE.

Transperth operate 540 Volgren bodied examples, 474 being CNG powered. There have been 15 OC 500 LE CNG fires in Perth, and in October 2013, the Public Transport Authority commenced legal action against Mercedes-Benz, Evobus and Volgren. The action was dropped in 2014.

Sydney Buses purchased 255 CNG and 20 diesel powered examples, all with Custom Coaches bodies, however one was destroyed by fire in June 2011. The Custom O500LE is powered by a 185 kW and 1050Nm CNG M 447 hLAG inline 11.967 litre 6-cylinder engine.

There are two gas tanks (indicated by two CNG stickers on number plate) located on top of the bus near the front. Metal pipes run on the offside roof to the back of the bus. Because the gas tanks are in the front, the air conditioning unit is placed at the rear of the roof. The gas tank placement is counter-intuitive, but this is due to the various weight requirements imposed by the RMS.

Other purchasers included Ventura Bus Lines (72), Brisbane Transport (40), Premier Illawarra (38), Kefford Corporation (19) and Darwin Bus Service (14).

Many operators across Australia have now purchased the OC 500 LE in various configurations. Problems related to quality control and unreliable electronics have not been uncommon. A lot of these complaints have come from drivers due to some units being under-powered, uncomfortable or rough.

Brisbane Transport withdrew its OC 500 LEs from the fleet for a short period because of a major unidentified fault which caused buses to suddenly accelerate without warning. This problem was fixed by Mercedes-Benz and these vehicles are now back on the road. However, as they were under lease from Mercedes-Benz, their lease expired in 2013 and were then sold to Transit Systems NSW where they currently operate.

In January 2009, Mercedes-Benz Australia issued a recall on 443 CNG-fuelled OC 500 LE units due to respecified welding specifications for the turbocharger oil supply pipe.

Singapore

SMRT Buses

SMRT Buses had taken delivery of 134 Mercedes-Benz OC500LEs for fleet replacement and expansion. These buses feature bodywork built by Gemilang Coachworks of Malaysia and assembled by Thonburi Busbody Limited of Thailand, with a CapaCity licensed front from Mercedes-Benz, engines that meet Euro V emissions standards and are SMRT's first wheelchair accessible buses (WABs). They were the first to feature voice announcement system, with announcements similar to the ones used on the MRT. They are also the first buses in South-East Asia to be fitted with a Euro V engine. The last bus to be registered, SMB134H, was registered on 1 October 2009.

Demonstrator
The first OC500LE took part in the launch of SMRT's Go Green event on 30 April 2008. The bus was later registered as SMB1H and initially entered revenue service on Service 190 on 29 June 2008. It was later redeployed to operate on Service 172, only half a year into service. It is currently used as a Kranji Bus Depot (KJDEP) training bus with a new design of EZ-Link card readers installed.

First production batch
The batch were registered in the ranges of SMB2E to SMB67T. The first few units of this batch were put to service from 22 September 2008 onwards.

Second production batch
The second production batch featured many more differences as compared to its first batch counterparts, most notably its interior. Blue as well as purple colour schemes were used on the seats in contrast to the first batch's corporate colour seats. Stickers greeting onboard passengers can be found at the front and the rear of the bus. A blue tint situated on the top of the windscreen below the Electronic Destination System reduces glare from the sun, and more grab poles and aircon outlets were added at the last few rows of seats.

They were registered from SMB68R till SMB134H. The first few units commenced passenger service on 1 July 2009, almost a year to the day the first unit of the OC500LE (SMB1H) made its first trip. They can be mostly found on WAB-certified services, similar to the first production batch.

SMB91Y is installed with Mobitec MobiLED EDS replacing its original EDS, LAWO BENEFIT EDS due to accident in January 2012.

Tower Transit
In March 2021, Tower Transit took over 1 OC500LE from SMRT Buses in preparation for the takeover of Sembawang-Yishun Bus Package. Tower Transit took over more units as part of the transition in September 2021.

United Kingdom

Small numbers of OC 500 LEs bodied by MCV have entered service in the United Kingdom. The first bus was unveiled in March 2010, and was also exhibited at IAA Hanover 2010. A number have been purchased by Carousel Buses for use to and from Heathrow Airport for express services.

Norway
In 2004, Vest Busscar bodied nine OC 500 LE 1825h with its Center L bodywork for Nettbuss. One was used in the Østfold region, while the other eight entered city traffic in Kristiansund. All eight OC 500 LEs in Kristiansund were exported in 2014, with some of them appearing in Estonia. No other OC 500 LE have been bodied, nor imported to Norway.

Portugal
 Irmãos Mota Atomic UR2000, UR2005, UR2011, URB2014 and Urbis
 Marcopolo Viale

Serbia
Ikarbus IK-112LE, in production as of September 2015, used in Belgrade urban and suburban bus system. Ikarbus offers 2 versions, with 2 or 3 sets of doors.
More than 60 is produced.
Ikarbus offers suburban version with softer anti-vandal seats and a place for hand luggage.

Spain
 Unvi Urbis
 Hispano Habit
 Hispano Intea
 Burillo
 Sunsundegui Astral
 Castrosúa Magnus
 Noge Intertouring
 Noge Cittour LE

Israel
Egged ordered OC 500 LE chassis bodied by Merkavim Pioneer and Haargaz Epsilon LE.

References

External links

OC 500 LE
Bus chassis
Low-entry buses
Buses of Germany

redpajama_set_name: RedPajamaWikipedia


Do not get bogged down when you need to have your vehicle repaired or serviced. Just call Silver Lake Auto & Tire Centers and ask for our White Glove service. We understand how auto repair and service can make it hard to get around town when you need to. That is why we are introducing our new White Glove Concierge Service. We have a variety of different options to fit your schedule and needs.
The first option we offer is complimentary shuttle service. After you drop off your vehicle, our shuttle driver will promptly take you to work or home and pick you up when you vehicle is ready. This allows you to get where you need to go while not letting a simple oil change not get in the way.
The second option is to reserve on of our 15-loaner vehicles. Extended repairs can really put a wrench in your day to day activities; such as, getting to work, the gym, or dropping off the kids at school or soccer practice. Our loaner vehicles are dependable and keep your busy schedule on track.
Lastly, we will come to you, pick up your vehicle, and return it to your home or office. This option is great for people who do not have the time to pick up or drop of their vehicle but still need repairs or service. We can also provide you a loaner vehicle at this time as well, if the services required will take a few days.
We provide all the above service free of charge because we understand how important your time is. Our goal is to improve your vehicle's performance, reliability, fuel efficiency, and resale value without the hassle that can be involved with routine maintenance and care. Let Silver Lake Auto & Tire Centers take the stress out of auto maintenance and repair by using our white glove concierge service. Call now for more details or stop by any of our three locations and a service specialist will be happy to help you get on the road to stress free auto repair and maintenance.


text:
This is the list of experts that are sitting on the Expert Board. Eminent professionals in their fields, they are responsible for the evaluation of the Technical offers received for Request for Tender. They provide support to the Tendering Board for the ranking and awarding recommendations by assessing the offers.
Beniam Ghebremedhin, MD and MSc, adj-professor at the medical faculty of Witten university, graduated in medicine and biochemistry in Hannover, thereafter he completed this specialization in clinical microbiology, virology and infect. epidem. His research interests include antimicrobial resistance in Gram-positive and -negative bacteria: molecular-based detection of resistance determinants, MALDI-TOF MS-based detection of resistances and other spectrometric technologies for non-invasive detection/identification of pathogens.
Dr. David Partridge is a Consultant Medical Microbiologist and Infection Control Doctor at Sheffield Teaching Hospital NHS Foundation Trust. He is research lead for the Directorate of Laboratory Medicine at the Trust and also sits on the management committee of the Florey Institute for Host-Pathogen Interaction at the University of Sheffield. His clinical interests lie in medical mycology, infections of the immunocompromised host and molecular bacteriology.
He has served as a council member for the British Infection Association since 2009 (as trainee member, membership secretary, communications secretary and finally secretary) and also sat on the grants committee of the Healthcare Infection Society 2015-2018. He is a member of the National Institute for Health and Care Excellence (NICE) Medical Technology Advisory Committee.
Enrique Limon RN (University of Barcelona) Msc (University of Montreal, Canada) PHD (University of Barcelona). (Male). Programme Director: Master's Degree in Infection Control, University of Barcelona-IL3. Current Coordinator of the VINCat Program (Surveillance of Healthcare Associated Infections in Catalonia). Have been working in infection control and antimicrobial stewardship for the last 24 years in University Bellvitge Hospital and "Institut Català d'Oncologia" (ICO) (Health department). Fellowship (2000) Spanish Network of Research in Infectious Diseases (REIPI). Has been the author of several published articles. My research interests are the etiology and prevention of healthcare-associated infections with a special focus on preventable infections acquired.
Francesco Tessarolo graduated in Physics at the University of Trento, Italy, in 2002. He got a Master in Biomaterials in 2005 and his PhD in Materials Engineering in 2006.
He is currently is a research fellow at the Department of Industrial Engineering of the Trento University and a collaborator of the division for Healthcare Innovation and Research of the Bruno Kessler Foundation. Since 2004 he is also research board member of the Section of Electron Microscopy at the Provincial Health Trust for the development of applied biomedical projects.
He has authored more than 60 papers on safety and efficacy of medical devices, implantable device related infections, microbial biofilm and health technology assessment.
Josep Trenado. Medicine Degree from Universitat Barcelona. PhD from Universitat Autònoma Barcelona. Intensive Care Medicine Specialist.
Chief of Intensive Care Department of Hospital Universitari MutuaTerrassa (HUMT). PI or SI of more than 15 studies (Phase II & III) related to infectious Diseases.
Member of Patient Safety Committee in HUMT.
Responsible of ENVIN registry (Spanish Intensive Care Registry in Nosocomial Infection) and Proyecto Zero program (interventional programs to prevent nosocomial infection in ICU) in his ICU unit.
Meike Bomhof is the Sr. VP for HullAssociates consulting company in Europe.
HullAssociates offers strategic market access and reimbursement consulting to support pharmaceutical, medical device, and diagnostics companies. Meike co-founded HullAssociates in 2007 and has devoted her professional career to assisting a wide variety of companies launch new product; design evidence strategies to increase reimbursement; ensure optimal product positioning to achieve maximum market success. In addition she is active as visiting faculty on reimbursement and market access related part of the Design Health Barcelona (d•HEALTH Barcelona) postgraduate course, the European CRAASH course, aimed at developing entrepreneurs and future leaders in healthcare innovation and CIMTI Boston courses, supported by the Departament de Salut de Catalunya, the Agència de Qualitat i Avaluació Sanitàries (AQuAS) and the Obra Social "la Caixa".
Prior to co-founding HullAssociates she spent 15 years in positions of increasing responsibility in Baxter and Edwards Lifesciences in the field of finance and business development.
Meike is Dutch, was educated in Ireland and is currently located in Spain.
Sema Dumanli received her B.Sc. degree in electrical and electronic engineering from Orta Dogu Teknik Universitesi, Ankara, Turkey, in 2006, and the Ph.D. degree from the University of Bristol, Bristol, U.K., in 2010.
She was with Toshiba Research Europe, Bristol, as a Research Engineer and a Senior Research Engineer from 2010 to 2017. She is currently an Assistant Professor with Bogazici University, Istanbul, Turkey, serves on the Management Board of Bogazici University Center for Life Sciences and Technologies. Her current research interests include antenna design for body area networks, implantable and wearable devices, eHealth, and multi-in-multi-out communications.
Tram TRINH has over 24 years business leadership in multinational environments, having lived in, and/or held C-suite executive positions with P&L and growth accountability across 4 continents North America, Europe, Africa and Asia, from privately held start-ups, SMEs to publicly listed Fortune 500 organizations. She has built a reputation for successful international market development and alliances, disruptive new product launch with technology-driven solutions in various sectors of which healthcare. As a technology entrepreneur and the CEO founder of VITANLINK since 2013, Tram has co-founded, mentored and advised more than 30 businesses bringing raw technology to seed stage, and post-seed businesses to scaling up into new markets.
Based in Paris, French citizen, she holds an MBA from McGill University Canada, a US Certified Public Accountant license from New Hampshire State Board, the Columbia Executive Management Program Strategy Certificate and the Financial Times Non-Executive Director Diploma.
Dr. Vassilis Tsanidis is a jurist holding a Ph.D and a Master of Laws (LL.M) in European Business Law. He has an over 15 years working experience in the EU funded projects and programs management, especially in the area of the European Structural and Investment Funds and H2020. He has worked as legal counsel in European Agencies and Associations as well as in several public authorities dealing mainly with procurement and contract management issues. He has also worked for many years in the European Commission on topics related to R&D&I. He specializes in Innovation Procurement. Currently, he works as policy/programme officer in the Directorate of Innovation and Entrepreneurship of the Region of Central Macedonia in Greece.


text:
Britain's navy to escort UK-flagged ships through Strait of Hormuz
Britain's defence minister, Ben Wallace, ordered the HMS Montrose and HMS Defender to prepare to return to escort duties in the major oil shipping route as Prime Minister Boris Johnson came in for criticism for his silence over the killing
Britain's Defence Secretary Ben Wallace is seen at Downing Street in London
London - Britain's navy will accompany UK-flagged ships through the Strait of Hormuz to provide protection after the U.S. killing of Iranian military commander Qassem Soleimani inflamed tensions in the region. Britain's defence minister, Ben Wallace, ordered the HMS Montrose and HMS Defender to prepare to return to escort duties in the major oil shipping route as Prime Minister Boris Johnson came in for criticism for his silence over the killing. Media reports have said Johnson is on holiday in the Caribbean.
"The government will take all necessary steps to protect our ships and citizens at this time," Wallace said in a statement. Britain was forced to defend its ships through the world's most important shipping route last year after Iranian commandos seized a British-flagged tanker in the Strait. British forces had previously captured an Iranian oil tanker near Gibraltar that was accused of violating sanctions on Syria. The killing of Soleimani has raised fears that tankers could be targeted again. Wallace said he had spoken to his U.S. counterpart, Defense Secretary Mark Esper, and urged restraint on all sides. "Under international law, the United States is entitled to defend itself against those posing an imminent threat to their citizens," he added. Jeremy Corbyn, the outgoing leader of the opposition Labour Party, said he had written to the British prime minister to ask what was being done to protect UK nationals and others in the region.
"Boris Johnson should have immediately cut short his holiday to deal with an issue that could have grave consequences for the UK and the world," he said in a statement.
Advertising & Contatti


DIAMOND BAR, Calif. (April 12, 2019): Nexen Tire America, Inc., a worldwide leader in high-performance, passenger, SUV/light truck and winter tire technology, has officially kicked off the 2019 Formula DRIFT season with a full complement of champion-caliber drivers to represent this year's Nexen Tire Motorsports Formula DRIFT team. Nexen Tire Motorsports introduced its team at the season kick-off event – Formula DRIFT Round 1: Streets of Long Beach – April 5,6 with all drivers running amazing laps on Nexen Tire N'Fera SUR4G street legal tires. When the smoke cleared, Championship Formula DRIFT driver Chris Forsberg piloted his NOS Energy Drink / Nexen Tire Nissan 370Z to a 3rd-place podium finish.
Nexen Tire Motorsports teammate Fredric Aasbo, driver of the Nexen Tire / Rockstar Energy Drink Toyota Corolla hatchback, trailed closely, but ended up in fourth place after a blown engine during the semifinals. The performance of all drivers helped Nexen Tire finish the event in second place in points for this year's coveted Tire Cup Championship.
This performance is a continuation of Nexen Tire Motorsports' immense success throughout the 2018 Formula DRIFT Season where its drivers earned several wins and podium finishes, including four drivers finishing in the top ten in points. The 2018 season concluded with nine podiums total, Fredric Aasbo with two victories and six podiums total and Chris Forsberg with one victory and a 3rd place podium. Aasbo's 2nd place finish in the final race helped secure 2nd place in overall driver standings for the year. Nexen Tire also came extremely close to winning the 2018 Tire Cup Championship but had to settle for second place, just a few points out of the lead.
During a busy off-season, Nexen Tire Motorsports continued attracting some of the most talented drivers in the sport, which includes the addition of Federico Sceriffo who pilots a Formula DRIFT prepped Ferrari 599. It features the same Nexen Tire N'Fera SUR4G tires that other teammates rely on to win. Nexen Tire Motorsports also added drivers Austin Meeks and Jeff Jones.
Nexen Tire's extreme ultra high performance N'Fera SUR4G tire is the ultimate tire solution for Nexen Tire Motorsports and Formula DRIFT. The N'Fera SUR4G tire is engineered with patented 'extreme ultra high performance' technology. This advanced, proprietary design enables superior grip and unmatched handling during any weather condition. The N'Fera SUR4G is trusted by the Nexen Tire Motorsports drivers to maximize the vehicle's potential in Formula DRIFT competition year after year with success.


conditioning. Watch as you exercise your way to a whole new you.
Product not intended to treat, cure or diagnose any medical condition nor is it to take the place of your physician's advice.
takes 3-4 business days to clear.
eBay. Item will be relisted.
7% Sale Tax applies to FL residence.
listing is ONLY for within the lower 48 states.
know exactly what you're bidding.
in full details the reason you are returning the item.


text:
Q: Molecular Orbital for NH3 I need some help drawing a NH3 molecular orbital. I've made a drawing off how it should look like (but it looks ugly, the proportions are wrong and and and). It would be nice if you could help me drawing such a diagram. All the text used in on the sketch should be used, but please all in black, colors was only used to show how it should look like. Hopefully you can help me. What should I use? Tikz or Modiagram?
The energies in [eV] are:

*

*2s: -26.2

*2p: -13.8

*1s: -13.6
Here my sketch:

And this is what I tried Modiagram:
\documentclass{article}
\usepackage{modiagram,chemfig}
\usepackage[version=3]{mhchem}
\begin{document}

\begin{MOdiagram}
\atom{left}[N] {2s=2;}
\atom{left} {2p=5;,,}
\atom{right}[\ce{H_3}] {1s=0}
\end{MOdiagram}

\end{document}

It didn't worked the way I wanted it to. One of the greater problems I have is, that I can't find MO in LaTeX which are so complex as my diagram. So it would be really nice, if you could help me :-)

A: I fear, you have to set those manually:
% arara: pdflatex

\documentclass{article}
\usepackage{modiagram}
\usepackage[version=3]{mhchem}

\begin{document}
    \begin{MOdiagram}[labels-fs=\scriptsize]
        \AO(1cm){s}[label={2s}]{0.5;} % AO1
        \AO(1cm){s}[label={2p}]{2;} % AO2
        \AO(1cm){s}{2.1;} % AO3
        \AO(1cm){s}{2.2;} % AO4
        \node at (1cm, -1){N};
        %%%%%%%%%%%%%%%%%%%%%%%
        \AO(3cm){s}[label={$2\mathrm{a}_1$}]{0;pair} % AO5
        \AO(3cm){s}[label={1e}]{0.9;pair} % AO6
        \AO(3cm){s}{1.1;pair} % AO7
        \AO(3cm){s}[label={$3\mathrm{a}_1$}]{2;pair} % AO8
        \AO(3cm){s}[label={$4\mathrm{a}_1$}]{3;} % AO9
        \AO(3cm){s}[label={2e}]{3.9;} % AO10
        \AO(3cm){s}{4.1;} % AO11
        \node at (3cm, -1){\ce{NH_3}};
        \connect{AO1 & AO6, AO1 & AO7, AO1 & AO8}
        \connect{AO4 & AO8, AO4 & AO9, AO4 & AO10, AO4 & AO11}
        %%%%%%%%%%%%%%%%%%%%%%%
        \AO(5cm){s}[label={1s}]{2.5;} % AO12
        \node at (5cm, -1){H};
        \connect{AO5 & AO12, AO6 & AO12, AO7 & AO12, AO8 & AO12, AO9 & AO12, AO10 & AO12, AO11 & AO12, }
        \EnergyAxis[title=$E$]
    \end{MOdiagram}
\end{document}

modiagram does not support those double and triple lines. Please read the documentation for all the features and well explained examples.

redpajama_set_name: RedPajamaStackExchange


text:
NAACP Presses Obama On Rising Black Unemployment Rates
Maria More | 11.17.09
VIA: New York Times
With unemployment among blacks at more than 15 percent, the N.A.A.C.P. will join several other groups on Tuesday to call on President Obama to do more to create jobs.
The organizations — including the A.F.L.-C.I.O. and the National Council of La Raza, a Hispanic advocacy group— will make clear that they believe the president's $787 billion stimulus program has not gone far enough to fight unemployment.
They will call for increased spending for schools and roads, billions of dollars in fiscal relief to state and local governments to forestall more layoffs and a direct government jobs program, "especially in distressed communities facing severe unemployment."
In speaking out on jobs, N.A.A.C.P. leaders say they are not trying to pick a fight with the first African-American president. Rather, they say, they are pressing Mr. Obama in an area where they believe he wants to be pressured.
"It's time for us to really stoke this issue up," said Hilary O. Shelton, the N.A.A.C.P.'s senior vice president for advocacy and policy. "We're not so much trying to convince him to do something he doesn't want to do, but urging him to move forward on an issue we have agreement on."
African-American leaders say it makes sense to pressure the president on jobs because the unemployment rate for blacks has jumped to 15.7 percent, from 8.9 percent when the recession started 23 months ago. That compares with 13.1 percent for Hispanics and 9.5 percent for whites.
The black unemployment rate has climbed above 20 percent in several states, reaching 23.9 percent in Michigan and 20.4 percent in South Carolina.
In recent months, the N.A.A.C.P. has lobbied Mr. Obama on numerous issues, including the hate crimes bill and the Lilly Ledbetter Fair Pay Act, which makes it easier for employees to sue over pay discrimination. But this is the first time in Mr. Obama's presidency that the organization is throwing its full weight into the economic debate.
It is being joined by another group that fought for civil rights during the 1950s and 1960s, the Leadership Conference on Civil Rights.
"Make no mistake, for us this is the civil rights issue of the moment," said Wade Henderson, president of the Leadership Conference. "Unless we resolve the national job crisis, it will make it hard to address all of our other priorities."
Mr. Obama has invited groups nationwide to voice their views and recommendations on jobs in preparation for his job summit next month.
NAACP	, Obama	, unemployment
More By Maria More
Midday Motivation | Every Ending Is A Beginning To Something Even Better
Midday Motivation | Fear Is The Enemy Of Success
Midday Motivation | Don't Let Resentment Compromise Your Happiness
Also On Hot 107.9 - Hot Spot ATL:
20 Hot New Artist From Atlanta [GALLERY]
More From HotSpotATL


text:
Bridge over University Avenue, photograph.
This is a black and white photograph of the bridge crossing above University Avenue, linking the Montreal Neurological Institute to the Royal Victoria Hospital. The photograph is taken looking up University Avenue, with the institute on the right and the hospital on the left.
image.photograph.black and white 20.5 x 25.5 cm
Skywalks.
Montreal Neurological Institute -- History.
Royal Victoria Hospital (Montréal, Québec).
Wilder Penfield Digital Collection
Wilder Penfield Fonds P142 -- Series E (Events) -- Sub-Series E/VN (Events, visual Neuro)
Osler Library of the History of Medicine, McGill University
Bridge over University Avenue, photograph. [Online image]. Wilder Penfield Digital Collection Wilder Penfield Fonds P142 -- Series E (Events) -- Sub-Series E/VN (Events, visual Neuro) . Osler Library of the History of Medicine, McGill University . Retrieved July 19, 2019 from http://digital.library.mcgill.ca/penfieldfonds/fullrecord.php?ID=9737
This material has been made available with the consent of the copyright holders and can be used in accordance with fair dealing provisions of Canadian copyright law. For more information, please contact the Osler Library of the History of Medicine.
Montréal (Québec).
E/VN 1-1.3b


text: 6 | 27th June - 3rd July 2014 | utIlIty WeeK Comment T he energy sector is under greater scru- tiny than ever before. Everyone from our customers to our politicians wants to see greater transparency from energy com- panies in all that they do. Far from being worried by this, my com- pany SSE is fully supportive of anything that helps restore trust in the energy market. That's why SSE has just published the results of its first ever economic impact study – carried out independently by accountancy firm PwC. It's an attempt to evaluate the impact SSE makes at a local and national level through its UK operations. That report tells us that SSE boosted the UK economy by £9.1 billion in 2012/13, com- parable in scale with the one-off £9.9 billion boost that the London Olympics gave the UK economy in 2012. It also showed the importance of the supply chain, as we now know that SSE's activities support 112,000 jobs in the UK. That means that for every person directly Lighting the way Everyone should welcome the spotlight that greater transparency brings – even energy companies. Those with nothing to hide have nothing to fear, and it will help rebuild consumer trust. Chief executive's view Alistair Phillips-Davies, SSE In the House Jonathan Reynolds MP Eco is not fit for purpose Changes to Eco have weakened an already feeble government programme. A t the Labour Party conference last year, Ed Miliband announced Labour's plans to radically reform the energy market, ring-fencing generation from supply, replacing the regulator, and freezing energy prices while we do it. These reforms will bring much-needed transparency and downward pressure on prices to the market, but we are acutely aware that an ambitious energy efficiency programme is also needed. Britain's inefficient housing stock is a serious problem, and the Energy Compa- nies Obligation (Eco), alongside the Green Deal, was the current government's attempt to address it. From the outset, we thought it lacked ambition. In practice, the impact of Eco has been even more limited still. A major problem is the appalling level of bureaucracy involved. The paper trail for each measure installed is breathtaking. I know of heating companies in my constitu- ency who now employ more administration employed by SSE a further 4.8 jobs in the wider economy are supported. Transparency clearly stretches to other areas of business operation, such as tax and profits. Energy firms need to show they are acting responsibly and paying their way. The PwC report looked into this area too, and found that our tax contribution was around £536 million in financial year 2013. Last month we announced our price freeze for household bills, but the more observant of you may have noticed that, subject to securing the necessary third party consents, SSE will reorganise its companies so that there are separate legal entities for energy supply (retail) and its electricity gen- eration and energy portfolio management (wholesale) activities. This legal separation will enhance the transparency of how SSE measures and reports the profits and performance of these businesses. I think transparency is even more impor- tant when it comes to costs. SSE has been very clear that we have frozen our prices until 2016, but also very clear that we are doing this against a backdrop of rising costs, outside of "traditional" wholesale energy costs. Guaranteeing customers no price rises until at least 2016 means absorbing rising costs of both low-carbon subsidy and smart metering, while also taking significant risk on wholesale price volatility. We have had to be transparent about that with investors also. Greater transparency will sharpen minds and help everyone focus on the bigger pic- ture, which is trust. Sometimes the results will be positive and sometimes they won't, but the direction of travel is the right one. It will allow policymakers to see how much policies really do cost as they move from the statute book to the energy bill and companies to measure and improve the con- tribution they can make to society. That can only be a good thing. staff than they do engineers, such are the burdens Eco has placed on them. Things became worse in the Chancellor's Autumn Statement last year. In response to the prime minister's comments that lev- ies such as Eco constituted "green crap", the government announced that Eco would be fundamentally redesigned, with the car- bon target reduced and qualifying measures changed from high cost to low cost. The new qualifying measures include lo and cavity wall insulation, despite these being the very items that the Green Deal pay-as-you-save- scheme was designed to fund. The result is a dysfunctional policy landscape no longer fit for purpose. Some good Eco schemes have imple- mented, but these are now finished. The challenge for us is to offer an effective fuel poverty policy that works coherently with a pay-as-you-save scheme, in order to cut car- bon and reduce energy bills. Jonathan Reynolds MP, shadow minister for energy and climate change


text:
Tested only on Chrome with __"experimental Web Platform features" flag in chrome://flags enable__.
Use Grunt.


text:
Kubernetes at Cruise with Karl Isenberg
http://traffic.libsyn.com/sedaily/2019_12_17_CruisePlatformEng.mp3
Cruise is a company that is building a fully automated self-driving car service.
The infrastructure of a self-driving car platform presents a large number of new engineering problems. Self-driving cars collect vast quantities of data as they are driving around the city. This data needs to be transferred from the cars onto cloud servers. The data needs to be used for training machine learning models. These models must be tested in a simulated environment, which provides more data to be integrated back into the self-driving system that is deployed to the cars.
As the cars drive around the city, they can communicate with custom cloud services to get information about traffic, navigation, and weather. Cloud services are also used for internal tooling that can help with automotive diagnostics, configuration changes, deployments, and security policy management.
The software platform used to manage infrastructure at Cruise is a combination of cloud products, open source tools, and custom built infrastructure that is mostly deployed to Kubernetes. Karl Isenberg is an engineer at Cruise, and he joins the show to talk about the engineering requirements of building a self-driving car service, and Cruise's approach to platform engineering.
Sumo Logic is a continuous intelligence platform that builds tools for operations, security, and cloud-native infrastructure. The company has studied thousands of businesses to get an understanding of modern continuous intelligence, and then compiled that information into the Continuous Intelligence Report, which is available at softwareengineeringdaily.com/sumologic.
DataStax provides DataStax Enterprise, a powerful distribution of Cassandra, created by the team that has contributed the most to Cassandra. DataStax Enterprise enables teams to develop faster, scale further, achieve operational simplicity, ensure enterprise security, and run mixed workloads that work with latest Graph, Search, and Analytics technology—all running across the hybrid and multi-cloud. To learn more about Apache Cassandra and DataStax Enterprise, go to datastax.com/sedaily.
LogDNA lets you collect any logs from anywhere in a centralized log management tool with blazing fast search and automatic parsing of your logs. Whether it's two routers in your basement or a hundred thousand Kubernetes containers spread across the world, LogDNA will allow you to aggregate all of your logs in a single place to create alerts, graphs, and visualizations for quick troubleshooting and insights into your log data. Give it a try today with a 14-day free trial, no commitment or credit card necessary, and get a free t-shirt to boot. softwareengineeringdaily.com/logdna
X-Team is a community for developers. When you join X-Team, you join a community that will support you while allowing you to remain independent. And X-Team will help you find work that you love, for some of the top companies in the world. X-Team is trusted by companies like Twitter, Coinbase, and Riot Games. Go to x-team.com/sedaily to find out about X-Team and apply to join the company.