text:
Unified Command: Lessons from the Past
By George Fielding Eliot
ON THE evening of November 4, 1917, the unhappy and anxious leaders of Britain, France and Italy were arriving at the little town of Rapallo on the Italian Riviera to discuss the situation created by the crushing defeat of the Italian armies in the battle of Caporetto, and the position in which, as a consequence of this and other disasters, the Allied Powers found themselves as the long year 1917 drew to its close. They had every reason to view their situation with the gravest anxiety. Allied fortunes were at their lowest ebb since the German advance on Paris in the summer of 1914.
On the Western Front, the year had seen the crushing of Nivelle's great offensive in Champagne, followed by the series of mutinies which had shaken the military spirit of the French Army to its foundation and from which, under the fatherly guidance of Pétain, it was in November only beginning to recover. Meanwhile, time for its reconstitution was being bought in Flanders by the British Army at the price of 300,000 casualties and the Prime Minister's loss of confidence in the Commander-in-Chief and the Chief of the Imperial General Staff. Sir Douglas Haig was almost ready to say that his men could do nothing more for that year. Pétain was "waiting for the Americans and the tanks." As yet there were but 100,000 American troops in France, none of them fully fit for combat, and men were saying that the United States could never put an army on the Western Front.
At Saloniki, inaction and confusion prevailed under the leadership of General Sarrail, partly through that officer's fault but largely because the various Powers whose units composed his army could arrive at no unity of policy as to what they wanted him to accomplish.
In Palestine there was a single gleam of light. Allenby, the new Allied commander on that front, had just taken Beersheba and was preparing to attack Gaza; but there were plenty of voices to say that he would never do it in view of the last two futile assaults upon that Turkish stronghold.
As for Russia, that great ally upon whose inexhaustible resources of men and material so many hopes had been based, she obviously was withdrawing from the war. Already Trotsky's Military Revolutionary Committee had received the adherence of the troops of the Petrograd garrison and the days of Kerensky's Provisional Government only too plainly were numbered.
And now, with one great ally all but gone, another had suffered the most crushing defeat of the war as the Austro-German armies hurled the broken troops of Italy back over all the hard-won ground of two years of fighting -- back, and back, to the line of the Piave. It was uncertain at the moment whether even that line could be held.
The cause of all of these failures and disasters was not lack of ability on the part of either statesmen or generals, it was not lack of means, it was not lack of courage or address at arms on the part of the troops. In most of these matters, indeed, the Allies on the average were superior to the Central Powers. The cause was rather to be sought, as General Bliss wrote afterwards in the pages of this review, in "the manifest absence of unity of purpose on the part of the Entente Powers." General Bliss continued:
They were allied little more than in the sense that each found itself fighting, at the same time with the others, its own war against one enemy, and too largely for separate ultimate ends. The governments apparently had no conception that a war of such magnitude required political as well as military strategy . . . . The main efforts of the governments were individual, meeting the insatiable requirements of their commanders for munitions and men. Their attitude was reflected in that of the commanders in the field. These sometimes met together and thought that they had formed broad, comprehensive plans. But their real responsibility was limited to their own front. Naturally, their perspective of the war was largely limited by that front. There, it was hoped, the war would be won. On that front lay the essential objective of the nation behind it . . . . During the entire war no Allied plan was ever attempted under such conditions that did not result in dismal failure.[i]
The futility of these methods, indeed their danger to the whole Allied cause, had not gone unperceived by Allied leaders. There had been a great deal of talk about the need for unified control of the Allied war effort. Unfortunately much of this discussion had centered around a unified military command for the Western Front and this conception had received a serious setback at the time of the Nivelle offensive. For that operation the British Government had consented to place Sir Douglas Haig's army under the strategic direction of General Nivelle. Only friction and misunderstanding had been the result, with a poisonous residue of feeling on the part of the British soldiers that they had been sacrificed by the ineptitude of a French commander, and an increased prejudice on the part of many British military and political leaders, notably the Chief of the Imperial General Staff, Sir William Robertson, against unity of command in any form. Thus the need for unity in the higher direction of the war was being lost sight of because of the difficulties of a unified command in one particular theater. The real need was for political unity to begin with; for a unified plan; and for the machinery to keep the plan in being and to adapt it to the ever changing current of events, thus providing a consistent though flexible policy from which an effective strategy might naturally flow.
To the conception of political unity some lip service had been given. Little had been done toward its accomplishment, however, save for a series of inter-Allied conferences at which there had been a great deal of talk and very little concrete accomplishment. "Theoretically and rhetorically," as Lloyd George observes, "the united front was boomed; in practice it was ignored."[ii]
It remained for Lloyd George himself, desperately resolved upon victory and face to face with the necessity for inter-Allied unity, to force the project forward into the realm of action. In so doing, he may have drawn heavily upon the ideas of others -- notably those of the French Premier, Paul Painlevé, and of General Sir Henry Wilson. It is unlikely that the idea of an agency for the political coördination of the Allied war effort was original with Lloyd George but certainly it was through his efforts that it began to take form. He was aware that he would face the opposition of his Chief of Staff and possibly that of the Commander-in-Chief, Sir Douglas Haig; and although he was certain of French coöperation so long as Painlevé remained Premier, the Painlevé government was already tottering under the accusation of "defeatism" and the attitude of its successor was uncertain.
Lloyd George's own tenure of office was not too secure. There was an active and watchful opposition which had, on this issue, the powerful support of Britain's ablest military writer, Colonel Repington, who was devoted to Robertson and regarded unity of command as a dangerous illusion -- "a way to make sure of losing the war."
Lloyd George had therefore to proceed with the greatest care. He began by the rather unusual step of seeking independent military advice. He asked Lord French, formerly Commander-in-Chief in France and then Commander of the Home Forces, and Sir Henry Wilson, then holding the Eastern Command, to submit their views on the military situation. These reports, differing greatly in content and viewpoint, nevertheless arrived at identical conclusions. Lord French, after exhaustively reviewing the course of the war, and the many Allied failures, said:
I would therefore emphasise the extreme desirability of establishing at once a Superior Council of the Allies. It is only such a body that can thoroughly examine a joint scheme of action in all its bearings. The weight and influence of such a council must carry conviction to the minds of the several Allied Governments. . . . I think this body should be composed of the Prime Ministers or their selected representatives, and one or more Generals from each Allied country.[iii]
Sir Henry Wilson, taking a somewhat wider view of the course of the war, and attempting to estimate the situation from the enemy's as well as from the Allied point of view, expressed his conclusions in the following terms:
The superior direction of this war, has, in my opinion, been gravely at fault from the very commencement -- in fact, it is inside the truth to say that there has never been any superior direction at all . . . .
We have tried many expedients but always with most disappointing, sometimes even with disastrous, results. We have had frequent meetings of Ministers, constant conversations between Chiefs of Staff, deliberations of Commanders-in-Chief, mass meetings of all these high officials in London, in Paris, in Rome. . . . All these endeavours have failed to attain any real concerted coördinated effort in diplomacy, in strategy, in fighting, or in the production of war material. . . . I do not wish to exaggerate, but human nature being what it is and our Commanders-in-Chief and Chiefs of Staff being what they are -- all men of strong and decided views, all men whose whole energies are devoted to their own fronts, and their own national concerns, we get as a natural and inevitable result a war conducted not as a whole, but as a war on sections of the whole, i.e., a war on the British Front, a war on the French Front, a war on the Italian Front; and the stronger and the better the various Chiefs, the more isolated and detached the plans.
It seems to me that all this confusion, overlapping and loss of collective effort are due to the same causes which throughout the whole war have led to a narrow vision, and too limited outlook over the whole colossal struggle . . . .
The net result seems to me to be that we take short views instead of long views, we look for decisions today instead of laying out plans for tomorrow, and as a sequence we have constant change of plans, with growing and increasing irritation and inefficiency. . . .
What can be done to remedy a state of affairs which is undoubtedly prolonging the War to an unnecessary, even to a dangerous extent?
The answer to this question lies in the establishment of an intelligent, effective and powerful superior direction. And by this I mean a small War Council of the Allies so well-informed, and above all, entrusted with such power that its opinion on all the larger issues of the War will carry the weight of conviction and be accepted by each of the Allies as final . . . .
Such a Body will be above all Sectional Fronts, it would view the War as a whole . . . and it would allot to each of the Allies the part which it would play. . . .
Such a Superior Direction would now lay out the broad line of action for the next twelve or twenty-four months. It would show when and under what conditions and in which part of the main theatre the final decision should be attempted and reached . . . .
It would lay out the broad policy for our joint aeroplane campaign of the future, and would adjust construction to obtain the end in view, allotting to each Ally the task for the future.
In short, such a Superior Direction would take over the Superior Direction of the War -- a thing which has not yet been done, and for the lack of which we have suffered so grievously in the past and without which we shall, as certainly, suffer even more in the future.
The strain of this war increases day by day, and as the strain increases, so any mistakes that are made become increasingly dangerous, and the tendency for each of the Allies to fight for its own hand becomes more and more marked. I see no other way of drawing the Allies together and of keeping them together, of gradually enlarging the outlook and of showing the crying necessity for long views instead of short views, except by the creation of such a body. I see no other way by which a real plan of campaign for the future can be drawn up. Such a plan of campaign must be based on all the factors which go to make up this gigantic war. The greater part of these are unknown and necessarily and rightly unknown, to the Commanders-in-Chief in the field who, up till now, have dictated the strategy of the campaign, each on his own front.
Without such a body the tendency for the Allies will be to concentrate each on his own front, each on his own production, each on his own war, each thus drifting further and further from his neighbor, while all the time the enemy, under one governing authority, will be able to concentrate and to defeat each of the local efforts.
We (the Allies) hold all the cards in our hands -- men, munitions, guns, aeroplanes, food, money and the High Seas -- there remains only the question of how to play them and when to play them, and my absolute conviction is that there is no other way than by the creation of a Superior Direction.[iv]
After digesting these reports, and in pursuance of previous conversations, Mr. Lloyd George wrote on October 30, 1917, to Premier Painlevé as follows:
I am convinced from my experience of the last three years that the fact that the result of the third year's war is a definite military success for Germany and a definite military reverse for the Allies is in great measure also due to defects in their mutual arrangements for conducting the War.
As compared to the enemy, the fundamental weakness of the Allies is that the direction of their military operations lacks real unity. At a very early stage of the War Germany established a practically despotic dominion over all her allies. She not only reorganised their armies and assumed direction of the military strategy, but she took control also over their economic resources, so that the Central Empires and Turkey are today, to all intents and purposes, a military Empire with one command and one front. The Allies, on the other hand, have never followed suit. The direction of the War on their side has remained in the hands of four separate Governments and four separate General Staffs, each of which is possessed of complete knowledge only of its own front and of its own national resources, and which draws up a plan of campaign which is designed to produce results mainly on its own section of front. Attempts have been made to remedy the defects of this system by means of Inter-Allied Conferences, which have lately been of increased frequency. But up to the present these conferences have never been fully representative, and at best have done little more than attempt to synchronise what are in reality four separate plans of campaign. There has never been an Allied body which had the knowledge of the resources of all the Allies, which could prepare a single coördinated plan for utilising those resources in the most decisive manner, taking into account the political, economic, and diplomatic as well as the military weaknesses of the Central Powers.
The crushing of Serbia and the opening of the road to the East in 1915, the total defeat of Roumania in 1916, and now the break-through in Italy in 1917, may be largely, although not entirely, traced to the attempt to conduct the War in a series of water-tight compartments. It is very remarkable that each winter the Central Powers have been able to make a crushing attack on the weakest member of the Entente with complete success while no adequate counter-preparation has been made by the Allies to meet the danger, and that during these same winters, no corresponding serious efforts have been made by the Allies to weaken Germany by concentrating against her weaker allies and so destroying the props upon which her power depends. These results, which mean that the enemy has steadily deprived us of the preponderance of men and resources we would otherwise have possessed, while compelling us to squander our resources all over the globe without achieving decisive results anywhere, would probably never have happened, had there been any such unity of direction on the Allied side as exists in the case of the Germanic Alliance. If we are to win the War, it will only be because the Allied nations are willing to subordinate everything else to the supreme purpose of bringing to bear upon the Central Empires in the most effective manner possible, the maximum pressure military, economic, and political which the Allies can command.
There is, I am sure, only one way in which this can be done, and that is by creating a joint council -- a kind of Inter-Allied General Staff-- to work out the plans and watch continuously the course of events, for the Allies as a whole. This council would not, of course, supersede the several Governments. It would simply be advisory to them, the final decisions, and the orders necessary to give effect to them, being given by the Governments concerned. But it would be a council possessed of full knowledge of the resources of all the Allies, not only in men and munitions, but in shipping, railway material and so forth, which would act as a kind of General Staff to the Alliance to advise as to the best methods of winning the War, looking at the fronts and the resources available as a whole. Its composition might be settled later. But provisionally I would suggest that it should consist of one, or perhaps two, political representatives of first-rate authority from each of the Allies, with a military staff of its own and possibly naval and economic staffs as well.[v]
The foregoing three quotations, written a quarter of a century ago, abundantly repay the most careful reading and re-reading today. For they were written in a situation which was strikingly similar to the military situation in which the United Nations now find themselves. The present situation is the same in principle even though it is somewhat more complicated and has wider geographical limits.
Twenty-five years ago the leaders of the Allied Powers had learned by defeat and cruel disappointment, at the price of the lives of thousands of brave men and the untold suffering entailed by the unnecessary prolongation of the war, the fact that a coalition cannot successfully make war unless and until it possesses an authoritative inter-allied agency for the unified direction of the war. It is a sad commentary on human intelligence that this lesson, bought so dearly at the price of blood and treasure, has now apparently to be re-learned all over again at the same price before it can be applied to conditions almost precisely identical to those of 1917.
In 1917 Russia was lost to the Allies very largely because of conditions brought about by a military defeat. That military defeat in turn was due to many causes but chiefly to the Russian lack of munitions and equipment. To supply this lack would have been the first aim of any really closely coördinated Allied policy.
The one serious attempt to open a direct line of communications with Russia, undertaken in the campaign in the Dardanelles, had failed. On three separate occasions it had been within a maddening inch of success. It had failed because the British and French Governments and staffs could not make up their minds to send to the Dardanelles sufficient forces to insure success. They preferred to waste these forces in bloody failures at Neuve Chapelle and Loos. A reinforcement consisting merely of the casualties of these two useless battles and of the ammunition fired away in them without result would, in April, in May, or even in August of 1915, have made the Allies a present of Constantinople and the gateway to the Black Sea.
The Allies had been too late at Saloniki to save Serbia from being overrun, because London and Paris could not make up their minds to act in sufficient force together and in time. And so the war had gone. Chance after chance had been thrown away. No substitute had been found for the lost opportunities save the mounting butcher's bill in the blood-soaked trenches of the West.
Even there the situation had tended to deteriorate. In late 1917 a friend said to General Weygand, then Foch's Chief of Staff: "However bad our situation may seem now, it was worse for you and General Foch at the Marne; for you were then heavily outnumbered and we will still be superior until the month of April." Weygand answered: "Our situation is much worse now; for then we had the magnificent plan of Marshal Joffre and now we have no plan at all."[vi]
But at long last the lesson was being learned and steps were being taken to fulfill the need which so many had appreciated "theoretically and rhetorically" but about which so little had been done. Yet there was opposition in high quarters to any plan for any type of unified command or direction of the war -- not to the idea, to which most leaders gave lip service, but to any definite and practical step toward its realization. Some quotations from the diaries of Colonel Repington will give an idea of the nature and origin of these objections:
Monday, Nov. 5 [1917]. Lunched with Evelyn FitzGerald at his rooms. Jack Cowans and Sutherland, the P.M.'s secretary, also there. I attacked the latter at once about the beastly things that were being said about the General Staff and told him how it was alienating many of L. G.'s friends. We told him that the Army was greatly under establishment, that the Allied War Council was eye-wash and that the only thing that mattered was to raise fresh divisions and make up the deficit . . . .
Tuesday, Nov. 6. Went to see a friend at the F. O . . . . He is very sarcastic about the Inter-Allied Staff, and asks whom will they advise, and will they have any executive power?
Wednesday, Nov. 7. Went to see Winston [Churchill] in the afternoon . . . . He is as much for the Inter-Allied Staff as I am against it. . . . I saw a lot of leading soldiers home from France. They all hate the Inter-Allied Staff like the devil.
Monday, Nov. 12. Lunched with [Sir William] Robertson, just back from Italy. He had written to say that I needed no telling of the meaning of the new Paris Military Committee. He says that he had nothing whatever to do with setting up the new machinery . . . we are both contemptuous of making war by committee. He assures me that Haig saw the P. M. Sunday week and was asked what he thought of it. Haig criticized it severely. Some very crisp remarks on each side followed. I can take it that the G.H.Q. are as much opposed to the Versailles Military Committee as we are. R. is sure that Eric Geddes and the Admiralty would not allow a naval officer to act as Wilson is to act. . . . It appears that Pétain dislikes the scheme as much as we do.
Friday, Nov. 16. . . . Lucas described to me the fury of Haig's generals about the Rapallo agreement, and said that they were all unanimous. Robertson has not resigned, nor has Haig. But . . . the new plan is riddled with criticism.[vii]
The opposition in Great Britain was so strong that Mr. Lloyd George had to proceed with great care. He himself divides the progress which he made into two parts. Aiming at securing a single inter-Allied Commander-in-Chief for the Western Front, he began by getting a Supreme War Council composed of political leaders, with military advisers, and went on to the unified command later.
It was plain then, as it is plain now, that no inter-Allied Commander-in-Chief could serve four separate political superiors. The need was first for political unity of direction, upon which military unity of command would easily and naturally follow. The Supreme War Council as established by the conference at Rapallo consisted of the Prime Ministers of Great Britain, France and Italy, with one additional minister for each country. Each country appointed a military representative to provide the Council with adequate professional advice. Afterwards Colonel House sat with the Supreme War Council as a representative of the President of the United States and General Bliss became the American military member.
Thus, under the pressure of almost continuous disaster, an organized superior direction for the Allies was at last achieved. Unity of command had yet to be attained. It did not come until the imminent presence of final and complete defeat compelled it in the following spring. It was resisted by the same parochial and narrow interests and points of view which resisted the creation of the Supreme War Council, and which will always resist any arrangement in a war of coalition which seems to lessen in the least degree the complete local authority of any national government or commander.
Yet from the very moment that the Supreme War Council began to function, the fortunes of the Allies began slowly but sensibly to improve; and from the moment that unity of command was achieved, they rose skyward with almost the velocity of a rocket.
Today we face the same problems and we shall find their solution by the same means. It is useless to discuss the separate component problems which go to make up the central problem of how to beat our enemies -- the need to increase production, or the virtues of bombing as contrasted to land operations, or the respective values of battleships and aircraft carriers -- until we have made up our collective mind as to how we are going to use our strength and until we have created a machinery for making our plan effective in the various theaters of operations where our joint efforts must strike down our joint enemies. Until that time comes, those enemies will continue to enjoy the inestimable advantage of complete unity not only of strategic direction but of military command.
"The conduct of war by a coalition really poses two fundamental problems," wrote General Réquin -- "a problem of command in the most general sense of the term, which requires the appointment of inter-Allied Commanders-in-Chief and a unified strategic and political direction of the war; a problem of inter-Allied organization, seeking to place in a common pool the economic forces of the coalition in order to obtain from them the highest possible efficiency."[viii]
The more total the war we fight, the more total must be the measures we take for common action in the common cause. Let us overcome our disinclination to think that men have never before faced problems of the same desperate sort and the same enormous magnitude that we face. Let us force our minds back to the times when they did face the same problems. Let us learn by their costly delays and mistakes. Let us profit by their eventual success. Let us strain every nerve to win the elusive spirit of coalition based on mutual confidence which is the soul of effective action by nations allied in war. "Its attainment," in the words of General Réquin, "is difficult, but it is the price of victory."
[i] General Tasker H. Bliss, "The Evolution of the Unified Command," FOREIGN AFFAIRS, December 15, 1922.
[ii] "War Memoirs of David Lloyd George." Boston: Little, Brown, 1934, v. 4, p. 511.
[iii] "War Memoirs of David Lloyd George." Boston: Little, Brown, 1934, v. 4, p. 539-40.
[iv] "War Memoirs of David Lloyd George." Boston: Little, Brown, 1934, v. 4, p. 541-544.
[v] "War Memoirs of David Lloyd George," v. 4, p. 545-547.
[vi] Peter E. Wright. "At the Supreme War Council." London: Eveleigh Nash, 1921, p. 63.
[vii] Colonel Charles à Court Repington, "The First World War." Boston: Houghton, 1920, v. 2, p. 128-134.
[viii] "La Direction des Operations Militaires dans une Guerre de Coalition." General Edouard Réquin, Revue des Questions de Défense Nationale, June 1939.
GEORGE FIELDING ELIOT, military and naval correspondent of the New York Herald Tribune; author of "The Ramparts We Watch" and "Bombs Bursting in Air"
More By George Fielding Eliot
Civil & Military Relations


Get a style statement for your home with this wavy clouds pale cast tiles from BELK Tiles. These tiles are made up of high quality material and can give an uplifted look to your room. Also they are super easy to clean and anti-slippery surface. You can use these tiles as floorings too, but mostly it is used as wall tiles. It is an ideal tile for bedroom, living room and even for kitchen. The pale color suits well when used in commercial spaces such as office, restaurants and hotels. You can use these wavy designed tiles with other plain tiles according to your creativity and create wonderful designs.
Each tile has a thickness of 8mm and the size is around 2 ¼ inches X 1 ¼ inches. There are 4 tiles present in each sheet and this makes the total size of one sheet equivalent to 12.50 inches X 10.875 inches. One sheet can cover an area of 0.95 square feet. You can cut every 2 rows into borders easily. All these tiles are mesh mounted and of high quality ceramic which is not prone to cracks and breaking. It is a durable product and is designed to last longer.
This is what I have been looking for, thank you to Bella Glass Tiles for making!


text:
Chinese State Media Blames Google for Gmail Shutdown
Sunny Akon	Posted on January 1, 2015
From June, since the crackdown of the 25th anniversary of Tiananmen Square, the biggest email service of the world has been largely inaccessible within China. After the apparent blocking of the last easy way of gaining access to Gmail was blocked, the state-run media said that the blame for the shutdown of the popular email service in China lies on Google and the company's unwillingness to follow the Chinese law. In an editorial, the Global Times said that the search engine giant is welcomed in China on the prerequisite that it will comply with the rules laid down by Chinese law. However, conflict is created because of the company's reluctance to be restricted by the Chinese laws.
The biggest email service of the world, Gmail, has been mostly inaccessible in China after the run up in June when the 25th anniversary of the Tiananmen Square crackdown on demonstrators of pro-democracy. The service could be accessed by users as long as third party email applications were used, but according to the founder of a firm based in Beijing called Danwei, which tracks the internet and Chinese media, Jeremy Goldkorn, this method has also been banned in recent days by the Chinese government.
The most sophisticated and extensive internet censorship system is operated by China, which is called the 'great firewall'. Foreign websites such as YouTube, Twitter and Facebook are blocked quite frequently along with any content that's deemed offensive and objectionable by the ruling Communist party. In 2010, Google decided to withdraw from China because of a fallout with Beijing because of censorship problems. The Global Times, the newspaper that's very close to the ruling Communist party, said that the primary issue was the willingness of Google to follow Chinese law on which the attitude of the country remains thoroughly steadfast.
The newspaper also added that the access to the email service problems could be caused by Google, the Chinese side or even a combination of both. On Monday, a Google spokesman said that they had performed an internal check on their end and hadn't discovered anything wrong there. The Global Times said that if Gmail had indeed been blocked by China, it probably was because of some security issues that may have emerged and so the reality should be accepted by the users. It further added that it was essential for people to have faith that there is logic in the internet policy set out by China because it has developed it and operates it as per the fundamental interests of the country.
Obviously, people don't want the email service to be shut down because it isn't in their best interests. The issue was brought up on Monday at a press conference and Hua Chunying, spokeswoman of the Chinese foreign ministry, said that they weren't aware of the blocking of the service. She said that the legal business operations of foreign investors are always supported and welcomed by China and this fact should be stressed because they didn't block the email service.
Sunny Akon
Sunny Akon is a Blogger and Content Writer, currently working at Burgeoning Technologies, a Web & IT Company. He currently lives in Lahore and can be followed on Google+.
Previous PostWhat Things to Consider Before Going for Cheap Web Hosting
Next PostMicrosoft Reportedly Developing New Browser
Apple's Market Share Grows Faster than Samsung
Spotify to Enter the Stock Market after Filing Papers
Guy Galboiz March 1, 2018
How To Develop A Digital Marketing Strategy In 3 Steps
Samsung Will Have Insurance Plan At Galaxy Unveiling
Waqar Hassan March 14, 2013

redpajama_set_name: RedPajamaCommonCrawl


- Use Mandatory profiles and keep your settings using triCerat Hybrid profile solution.
- Set, Delete and save/restore registry values.
- Copy, move and delete files and folders at login / logout.
- Active Directory integration using LDAP to allow assignments based on server, user, group and container objects as well as client IP address and IP Address range.
- Supports role based delegation using Microsoft Authorization Manager.
- Auditing feature enable you to track assignments and object changes.
- Now supports concurrent licensing as well as server licensing.


text:
Risk Levels
Hospital Capacity
Outbreak Week Opens With Talk on Conflict and Epidemics
From the Harvard Gazette, September 25, 2018
By Brett Milano Harvard Correspondent
Pandemics are political, and the spread of disease is a common consequence of global conflict. In a lecture titled "Conflict and the Global Threat of Pandemics," Michele Barry, senior dean of global health and director of the Center for Innovation in Global Health at Stanford University, examined the relationship between unrest and health crises.Monday evening's talk at the Geological Lecture Hall at Harvard Museum of Natural History was the start of Harvard Global Health Institute's "Outbreak Week," a five-day series of events to commemorate the 100th anniversary of the 1918 Spanish flu pandemic. As Ashish K. Jha, dean for global strategy at the Harvard T.H. Chan School of Public Health, noted in his opening remarks, that pandemic remains the deadliest in history, though HIV has come close. He also outlined Harvard's work with infectious diseases, notably its 2014 development of strategies to address the Ebola virus.
Modeling Uncertainty: How to make sense of changing predictions
HGHI Partners with Google Cloud to Award Cloud Research Credits
Understanding Predictions: What is R-Naught?
Get important news, updates, and statistics sent to your inbox by sharing your email address here.


text:
OP-ED / RATION SHOPS
A flawed food security system
The unseen impact of corruption on the millions of the deserving poor does not seem to affect our collective conscience. We are losing a great opportunity to show we care, writes R Balasubramaniam.
R Balasubramaniam
04 September 2011 -
I have always believed that food security is one of the most important manifestations of development for any community. Food security is not something that happens as a stand-alone phenomenon. It reflects the priorities of people and their spending capacities, the availability of and access to food grains, agricultural yields of the land, the social policies of the State, and more importantly, societal commitment to ensure that no person goes to bed hungry.
It is with this understanding that I agreed to investigate the corruption and mal-administration in the Public Distribution System (PDS) when the (then) Lokayukta of Karnataka asked me to last year. Apart from my own stand against corruption, I also saw this as an opportunity to help improve the efficiency and effectiveness of the Public Distribution System (PDS) in the state, and do my bit for the issue of food security to the citizenry, especially those living in rural areas.
Despite my previous experience in the office of the Lokayukta investigating allegations of corruption in the Health & Medical Education sectors, I must confess that I was not prepared for what I saw. India's PDS is the world's largest subsidised food distribution system, operating out of 500,000 Fair Price Shops (FPS). I am fascinated on why the planners named them 'Fair Price' shops! The very basis of my investigation is to see if they are really fair in letter and spirit.
I began the process many months ago in September 2010, by visiting a few shops in Heggadadevanakote Taluk of Mysore District. I was accompanied by the local officials, and went to a small village with a population of around 2000 and with a few tribal colonies surrounding it. The FPS in the village is run by the local Farmers'Society and I had heard of some irregularities there.
What else other than being poor, neglected and blind does one have to be to be eligible for one's share of rations and get them?
• The way we used to eat
• Cash transfers and insecurity
The shop was shabbily maintained, with food grains lying all around the place. The key person had done a disappearing act on hearing of our visit and had left his assistant to face the flak. People of the area were waiting for their rations to be given to them, and on casual enquiry I found that none of them were being given their rightful entitlement. People with the Antyodaya card, entitled to 29 kg of rice and 6 kg of wheat each month at Rs 3 and Rs 2 respectively, were only being given 25 kg of rice at Rs 3.25 and 3 kg of wheat at Rs 2.25.
People were not even aware of what they were supposed to get and at what rates. They simply took what was given at the price the shopkeeper told them. None of them realized that they weren't being given a receipt for the amount paid.
The local people got wind of my visit, and a small crowd had gathered outside the shop to relate their woes. An elderly and nearly-blind lady slowly and hesitatingly made her way towards me. She held my hands and pleaded to instruct the officials to issue her a card. She was a widow, more than 70 years old, and with no income, all of which would entitle her to get the Antyodaya card. The State has consciously created the Antyodaya system as a social security measure, specifically targeting the elderly, widows and the destitute.
I turned around and asked the concerned food inspector how was it that this deserving old woman was excluded? His immediate response was that she did not come to the Taluk Office to get herself registered. Oh, if only this old lady had the means to travel 20 km to reach the Taluk office, negotiate the corrupt system and get her rightful due, why would we even need a Social Security System then?
As I turned around and tried to give an answer to the lady, she very innocently asked me what else other than being poor, neglected and blind did she have to be to get her share of rations. I wish I could answer that!
This was not an isolated example. A few months later I had a similar experience in a poor neighbourhood within Gulbarga city. Another elderly lady aged around 70 years came to present her complaint to me. She too was a widow, with a mentally retarded son who was around 30 years of age. Having lost her husband 10 years ago, she was left with no social or economic support. All that she had was the sympathy and support of her friendly but equally poor neighbours. She came up to me with them asking for a BPL card.
It was evident that her poor friends were more socially conscious than our state and its huge machinery. I was painfully aware that she deserved a Anytodaya card and not just a BPL card. The system had completely ignored her because she was not loud enough or rich enough to bribe the concerned officials into giving her a card that she rightfully deserved.
Comparing these two incidents with another that I had in Hassan left me feeling angry and helpless. Angry that the system is so very irresponsive and irresponsible, and helpless that I could do nothing to help them. In Hassan I met a ration shop owner who had a 15-acre estate nearby and a huge palatial house but still carried a BPL card.
I know from my own investigations that the entire process of identifying the poor in the state is flawed and irrational. We not only have a huge number of rich people carrying a BPL card, but also some very genuine poor who do not have a card at all, or have an APL card. Who in the system should be held accountable for this state of affairs? Is it the politicians who think of eliminating poverty as mere schemes to be announced as electoral promises, or the bureaucracy which is caught up in the rules and regulations that they devise, or society itself which has forgotten that as citizens we not only deserve good governance but are also entitled to it?
It seems so paradoxical that the whole country is now obsessed with the scams that break out each day. It is as though one must siphon away millions of rupees to be noticed. The unseen and unheard impact of corruption on the millions of the deserving poor does not seem to affect the collective conscience of civil society or the administrators, and may not be important enough for the media to provide any space.
What we fail to notice is that these micro events are what truly impact poverty and we may be losing out on an extraordinary opportunity to demonstrate that we care.
Dr R Balasubramaniam is the founder of the Swami Vivekananda Youth Movement. He blogs at rbalu.wordpress.com He was appointed as a Special Investigator by the Lokayukta of Karnataka to investigate the alleged irregularities and corruption in the Public Distribution System in the state.
The national nutrition strategy explained
Ration to cash, a harsh transition
Upholding the rights of a child
Malnutrition - A national disgrace
CRZ: Why coastal communities are troubled by these three letters
The promises of Tadri: Mirage or reality?
What's in that compost you are using: burnt waste?
Workers, not beggars
What has your MP done for you?
In search of quality care
Making politics people-friendly
A permanent poverty


I am a Commercial Litigator. I love the adversarial. It's always been in my nature to try and solve problems. I also like the unpredictability - no two disputes or working days are the same.
I specialise in complex transactional and corporate disputes – relating to matters such as share / asset sales, completion accounts, earns outs, warranty claims and major commercial projects. I am drawn to the complexity and the need to get behind the commercial issues driving the businesses.
Are there any particular sectors you specialise in?
As well as contentious transactional disputes I work in the sports sector. I'm passionate about all sports - playing them, watching them and debating about them. I have particular expertise in sports regulatory work and representing athletes in anti-doping cases. The combination of legal, scientific and personal elements is fascinating and I love helping innocent athletes fight to save their careers. As well as human sport, I work in equine sport having successfully represented organisations like the Saudi Equestrian Team and leading riders such as Jock Paget.
My integrity. I'm frank and honest about prospects and what's required in different situations. Also my tenacity. I keep focused on the objective even when it means believing that what looks impossible is possible. I am analytical but I think creatively – I don't just follow the litigation handbook.
Aside from my legal skills, my clients know that I care what drives them. That's not just about the deals they do and what they want for their business but also what they did at the weekend – what makes them tick.
Simple stuff. Watching my children grow up and continually amaze me – the good and the 'challenging'. Dinner out with my wife (although that doesn't happen enough!) My crazy greyhound. Helping the underdog. Making things right. Days at the beach. Running and cycling up steep and never ending hills. I also have a keen interest in acupuncture and nutrition, especially linked to training and sports performance.
"Success for me, means delivering great outcomes for my clients. An outcome that really works for them or their business. Not just one that looks good on paper from a legal perspective".


text:
Home » Nhl Betting » NHL Hockey » Nhl Opening Day Ducks Vs Canucks Betting
NHL Opening Day – Ducks vs Canucks Betting
Geoff Johnson | January 19, 2013
The Vancouver Canucks look to get back to the Stanley Cup after losing last year in the first round of the playoffs as a number one seed; their first matchup is against the Anaheim Ducks at 10 PM ET.
Of course the Ducks will have their chances put on Teemmu Selanne. "I still feel that I have something to give and that I can still play on this high level," Selanne said during a conference call to announce his return. "Even with the tough first half we had last year, I still enjoyed the game so much."
David Booth is (groin) out 4-6 weeks. "With Dave being down, that's a huge hole for us," noted fourth-liner Dale Weise. "That's a tough injury. He's a big body, a good skater and can score goals. You can't really replace a guy like that. Obviously it opens up a little more room on the right side. I think Zack Kassian is there right now and I think he'll do a great job."
"Whatever Hank and Danny want to give us at the end there," he quipped, referring to the Sedin twins' ability to sometimes spend an entire two minutes in the offensive zone. "I played a bunch on the power play last year. We'll see what the coaches want to do with that."
Vancouver is 6-12 SU in its last 18 games when playing at home against Anaheim. The total has gone OVER in 4 of Vancouver's last 5 games when playing at home against Anaheim
Explore the best betting websites Here!


text:
Home Movies How to Play Elden Ring Early? Elden Ring Early Access, Release Time...
How to Play Elden Ring Early? Elden Ring Early Access, Release Time and More
How to Play Elden Ring Early?
How to Play Elden Ring Early PC?
How to Play Elden Ring Early on Xbox?
How to Play Elden Ring Early Access?
EUROPE & ASIA
Elden Ring is set in the Lands Between, after the shattering of the titular Elden Ring and the scattering of its fragments, the Great Runes. Once graced by the Ring and the Erdtree that represents its presence, the kingdom is now ruled by Queen Marika, the Eternal's demigod offspring, each wielding a fragment of the Ring that corrupts taints them with power. As Tarnished exiles from the Lands Between who have lost the Ring's grace, players must go across the realm to locate all the Great Runes, repair the Elden Ring, and become the Elden Lord.
The release date and time for Elden Ring in New Zealand is February 25th at 00:00 NZDT. For the United States and the United Kingdom, this equates to 03:00 PT, 06:00 ET, and 11:00 GMT on February 24th. The game will officially launch in each zone at 00:00 local time for both PlayStation and Xbox, according to the game's official Twitter account. The New Zealand release date for PC is February 25th at 12:00 NZDT. Because Steam is a global launch, no gimmick will work. On February 24th, at 15:00 PT, 18:00 ET, and 23:00 GMT, PC users will be able to begin their quest. So you need to be in New Zealand to play the game at the earliest. But there are few ways to get around this. Scroll down to learn more!
Unfortunately, PC players can't do anything but wait until the game becomes available in their region. Elden Ring is slated for release on February 25, 2022, across all platforms, including Steam for PC. Depending on where you are in the world, the precise moment the game goes live on console and PC platforms will vary. On Tuesday, Elden Ring's unlock periods and preload window were revealed by publisher Bandai Namco, along with a new launch trailer for FromSoftware's highly anticipated open-world role-playing game. Read on to learn the release times for the different regions.
You can use the release time trick to play the game early on Xbox. Listed below are the steps for doing it,
Once done the game will unlock on your Xbox console at 03:00 PT, 06:00 ET, and 11:00 GMT on February 24th.
If you signed up for Early Access you can play the game once it becomes available. You can use the time trick mention above to get the game even earlier. For users without Early Access, we listed the release time for various regions below,
Colombia Time
Brasilia Time
Console – Feb. 25, 12 a.m. local time
PC – Feb. 24, 11 p.m. GMT
PC – Feb. 25, 12 a.m. CET
Eastern European Time
Moscow Standard Time
Korea Standard Time
Japan Standard Time
South African Standard Time
PC – Feb. 24, 1 a.m. SAST
Australian Eastern Daylight Time
PC – Feb. 25, 10 a.m. AEDT
New Zealand Daylight Time
PC – Feb. 25, 12 p.m. NZDT
how to play elden ring early
how to play elden ring early access
how to play elden ring early on xbox
how to play elden ring early pc
Previous articleMiss Rwanda 2022 Voting, How To Vote, Results, Contestants And More
Next articleIs Loretta Swit Still Alive? Did Loretta Swit Die?


text:
package org.eclipse.php.internal.ui.editor.highlighter;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;

import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.text.BadLocationException;
import org.eclipse.jface.text.ITypedRegion;
import org.eclipse.jface.text.TextAttribute;
import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.php.internal.core.documentModel.parser.PHPRegionContext;
import org.eclipse.php.internal.core.documentModel.parser.regions.IPhpScriptRegion;
import org.eclipse.php.internal.core.documentModel.parser.regions.PHPRegionTypes;
import org.eclipse.php.internal.ui.Logger;
import org.eclipse.php.internal.ui.preferences.PreferenceConstants;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.StyleRange;
import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionCollection;
import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
import org.eclipse.wst.sse.core.internal.util.Debug;
import org.eclipse.wst.sse.ui.internal.preferences.ui.ColorHelper;
import org.eclipse.wst.sse.ui.internal.provisional.style.AbstractLineStyleProvider;
import org.eclipse.wst.sse.ui.internal.provisional.style.LineStyleProvider;
import org.eclipse.wst.sse.ui.internal.util.EditorUtility;

/**
 * Coloring mechanism for PHP partitions
 */
public class LineStyleProviderForPhp extends AbstractLineStyleProvider implements LineStyleProvider {

	private IPreferenceStore fColorPreferences;

	/** Contains region to style mapping */
	protected static final Map<String, String> fColorTypes = new HashMap<String, String>(); // String
	// (token
	// type),
	// String
	// (color)

	static {
		// Normal text:
		fColorTypes.put(PHPRegionTypes.PHP_LABEL, PreferenceConstants.EDITOR_NORMAL_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_TOKEN, PreferenceConstants.EDITOR_NORMAL_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_SEMICOLON, PreferenceConstants.EDITOR_NORMAL_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_OPERATOR, PreferenceConstants.EDITOR_NORMAL_COLOR);

		// Boundary Markers
		fColorTypes.put(PHPRegionTypes.PHP_OPENTAG, PreferenceConstants.EDITOR_BOUNDARYMARKER_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_CLOSETAG, PreferenceConstants.EDITOR_BOUNDARYMARKER_COLOR);

		// Keywords
		fColorTypes.put(PHPRegionTypes.PHP_LOGICAL_AND, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_ARRAY, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_STRING, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_INT, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_FLOAT, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_BOOL, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_VOID, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_AS, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_BREAK, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_CASE, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_CATCH, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_FINALLY, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_CLASS, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_CONTINUE, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_GOTO, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_DECLARE, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_DEFAULT, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_DO, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_ECHO, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_ELSE, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_ELSEIF, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_EMPTY, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_ENDDECLARE, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_ENDFOR, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_ENDFOREACH, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_ENDIF, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_ENDSWITCH, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_EVAL, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_EXIT, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_EXTENDS, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_FOR, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_FOREACH, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_FUNCTION, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_IF, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_HALT_COMPILER, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_INCLUDE, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_INCLUDE_ONCE, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_GLOBAL, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_LIST, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_NEW, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_NOT, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_LOGICAL_OR, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_PRINT, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_PUBLIC, PreferenceConstants.EDITOR_KEYWORD_PUBLIC_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_PRIVATE, PreferenceConstants.EDITOR_KEYWORD_PRIVATE_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_PROTECTED, PreferenceConstants.EDITOR_KEYWORD_PROTECTED_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_REQUIRE, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_REQUIRE_ONCE, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_RETURN, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_YIELD, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_STATIC, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_SWITCH, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_TRY, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_THROW, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_NAMESPACE, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_USE, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_VAR, PreferenceConstants.EDITOR_KEYWORD_PUBLIC_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_WHILE, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_LOGICAL_XOR, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_ABSTRACT, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_CLONE, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_FALSE, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_FINAL, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_DIE, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_TRUE, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_INSTANCEOF, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_UNSET, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_SELF, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_ISSET, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_PARENT, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_ENDWHILE, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_FROM, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_IMPLEMENTS, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_INTERFACE, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_CONST, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_TRAIT, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_INSTEADOF, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_CALLABLE, PreferenceConstants.EDITOR_KEYWORD_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_KEYWORD, PreferenceConstants.EDITOR_KEYWORD_COLOR);

		// Variables
		fColorTypes.put(PHPRegionTypes.PHP_VARIABLE, PreferenceConstants.EDITOR_VARIABLE_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_ENCAPSED_VARIABLE, PreferenceConstants.EDITOR_VARIABLE_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_THIS, PreferenceConstants.EDITOR_VARIABLE_COLOR);

		// Strings
		fColorTypes.put(PHPRegionTypes.PHP_CONSTANT_ENCAPSED_STRING, PreferenceConstants.EDITOR_STRING_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_ENCAPSED_AND_WHITESPACE, PreferenceConstants.EDITOR_STRING_COLOR);

		// Comments
		fColorTypes.put(PHPRegionTypes.PHP_COMMENT, PreferenceConstants.EDITOR_COMMENT_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_COMMENT_START, PreferenceConstants.EDITOR_COMMENT_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_COMMENT_END, PreferenceConstants.EDITOR_COMMENT_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_LINE_COMMENT, PreferenceConstants.EDITOR_LINE_COMMENT_COLOR);

		// Numbers
		fColorTypes.put(PHPRegionTypes.PHP_NUMBER, PreferenceConstants.EDITOR_NUMBER_COLOR);

		// Heredocs/nowdocs
		fColorTypes.put(PHPRegionTypes.PHP_HEREDOC_START_TAG, PreferenceConstants.EDITOR_HEREDOC_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_HEREDOC_CLOSE_TAG, PreferenceConstants.EDITOR_HEREDOC_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_NOWDOC_START_TAG, PreferenceConstants.EDITOR_HEREDOC_COLOR);
		fColorTypes.put(PHPRegionTypes.PHP_NOWDOC_CLOSE_TAG, PreferenceConstants.EDITOR_HEREDOC_COLOR);

		// PHPDoc
		// fColorTypes.put(PHPRegionTypes.PHPDOC_TODO,
		// PreferenceConstants.EDITOR_TASK_COLOR);
		fColorTypes.put(PHPRegionTypes.PHPDOC_GENERIC_TAG, PreferenceConstants.EDITOR_PHPDOC_COLOR);

		fColorTypes.put(PHPRegionTypes.PHPDOC_COMMENT, PreferenceConstants.EDITOR_PHPDOC_COMMENT_COLOR);
		fColorTypes.put(PHPRegionTypes.PHPDOC_COMMENT_START, PreferenceConstants.EDITOR_PHPDOC_COMMENT_COLOR);
		fColorTypes.put(PHPRegionTypes.PHPDOC_COMMENT_END, PreferenceConstants.EDITOR_PHPDOC_COMMENT_COLOR);

		// fColorTypes.put(PHPRegionTypes.TASK,
		// PreferenceConstants.EDITOR_TASK_COLOR);
	}

	/**
	 * Returns the attribute for simple php regions (open/close) not PHP_CONTENT
	 * regions
	 *
	 * @param region
	 * @return the text attribute
	 */
	@Override
	protected TextAttribute getAttributeFor(ITextRegion region) {
		TextAttribute result = null;

		if (region != null) {
			final String type = region.getType();
			if (type == PHPRegionContext.PHP_OPEN) {
				result = getAttributeFor(PHPRegionTypes.PHP_OPENTAG);
			} else if (type == PHPRegionContext.PHP_CLOSE) {
				result = getAttributeFor(PHPRegionTypes.PHP_CLOSETAG);
			} else {
				result = getAttributeFor(region.getType());
			}
		}

		// return the default attributes if there is not highlight color for the
		// region
		if (result == null) {
			result = (TextAttribute) getTextAttributes().get(PreferenceConstants.EDITOR_NORMAL_COLOR);
		}
		return result;
	}

	/**
	 * Look up the TextAttribute for the given region context. Might return null
	 * for unusual text.
	 *
	 * @param type
	 * @return
	 */
	protected TextAttribute getAttributeFor(String type) {
		return (TextAttribute) getTextAttributes().get(fColorTypes.get(type));
	}

	/**
	 * Looks up the colorKey in the preference store and adds the style
	 * information to list of TextAttributes
	 *
	 * @param colorKey
	 */
	@Override
	protected void addTextAttribute(String colorKey) {
		if (getColorPreferences() != null) {
			String enableKey = PreferenceConstants.getEnabledPreferenceKey(colorKey);
			boolean enabled = getColorPreferences().getBoolean(enableKey);
			if (enabled) {
				String prefString = getColorPreferences().getString(colorKey);
				String[] stylePrefs = ColorHelper.unpackStylePreferences(prefString);
				if (stylePrefs != null) {
					getTextAttributes().put(colorKey, createTextAttribute(stylePrefs));
				}
			} else {
				addDefaultTextAttribute(colorKey);
			}
		}
	}

	protected void addDefaultTextAttribute(String colorKey) {
		if (getColorPreferences() != null) {
			String prefString = PreferenceConstants.EDITOR_NORMAL_DEFAULT_COLOR;
			String[] stylePrefs = ColorHelper.unpackStylePreferences(prefString);
			if (stylePrefs != null) {
				getTextAttributes().put(colorKey, createTextAttribute(stylePrefs));
			}
		}
	}

	/*
	 * Creates TextAttribute from the given style description array string
	 */
	protected TextAttribute createTextAttribute(String[] stylePrefs) {
		int fontModifier = SWT.NORMAL;
		if (Boolean.valueOf(stylePrefs[2]).booleanValue()) { // bold
			fontModifier |= SWT.BOLD;
		}
		if (Boolean.valueOf(stylePrefs[3]).booleanValue()) { // italic
			fontModifier |= SWT.ITALIC;
		}
		if (Boolean.valueOf(stylePrefs[4]).booleanValue()) { // strikethrough
			fontModifier |= TextAttribute.STRIKETHROUGH;
		}
		if (Boolean.valueOf(stylePrefs[5]).booleanValue()) { // underline
			fontModifier |= TextAttribute.UNDERLINE;
		}
		return new TextAttribute(EditorUtility.getColor(ColorHelper.toRGB(stylePrefs[0])),
				EditorUtility.getColor(ColorHelper.toRGB(stylePrefs[1])), fontModifier);
	}

	public TextAttribute getTextAttributeForColor(String colorKey) {
		return (TextAttribute) getTextAttributes().get(colorKey);
	}

	/**
	 * this version does "trim" regions to match request
	 */
	protected StyleRange createStyleRange(ITextRegionCollection flatNode, ITextRegion region, TextAttribute attr,
			int startOffset, int length) {
		int start = flatNode.getStartOffset(region);
		if (start < startOffset)
			start = startOffset;
		int maxOffset = startOffset + length;
		int end = flatNode.getEndOffset(region); // use get length directly
		// instead of end-start?
		if (end > maxOffset)
			end = maxOffset;
		StyleRange result = new StyleRange(start, end - start, attr.getForeground(), attr.getBackground(),
				attr.getStyle());
		if ((attr.getStyle() & TextAttribute.UNDERLINE) != 0) {
			result.underline = true;
			result.fontStyle &= ~TextAttribute.UNDERLINE;
		}
		if ((attr.getStyle() & TextAttribute.STRIKETHROUGH) != 0) {
			result.strikeout = true;
			result.fontStyle &= ~TextAttribute.STRIKETHROUGH;
		}
		return result;
	}

	@Override
	public boolean prepareRegions(ITypedRegion typedRegion, int lineRequestStart, int lineRequestLength,
			Collection holdResults) {
		final int partitionStartOffset = typedRegion.getOffset();
		final int partitionLength = typedRegion.getLength();
		IStructuredDocumentRegion structuredDocumentRegion = getDocument()
				.getRegionAtCharacterOffset(partitionStartOffset);
		final boolean prepareTextRegions = prepareTextRegions(structuredDocumentRegion, partitionStartOffset,
				partitionLength, holdResults);
		return prepareTextRegions;
	}

	public IStructuredDocumentRegion getDamagedRegion(ITypedRegion typedRegion) {
		final int partitionStartOffset = typedRegion.getOffset();
		return getDocument().getRegionAtCharacterOffset(partitionStartOffset);
	}

	/**
	 * @param blockedRegion
	 * @param partitionStartOffset
	 * @param partitionLength
	 * @param holdResults
	 * @return
	 */
	public boolean prepareTextRegion(ITextRegionCollection blockedRegion, int partitionStartOffset, int partitionLength,
			Collection<StyleRange> holdResults) {
		if (blockedRegion == null) {
			return false;
		}

		assert blockedRegion.getLength() > 0 && partitionStartOffset >= 0 && partitionLength >= 0
				&& holdResults != null;

		if (partitionLength == 0) {
			return true;
		}

		boolean handled = false;
		final int partitionEndOffset = partitionStartOffset + partitionLength;
		ITextRegion region = null;
		ITextRegionList regions = blockedRegion.getRegions();
		int nRegions = regions.size();
		StyleRange styleRange = null;
		TextAttribute previousAttr = null;
		TextAttribute attr = null;
		int previousEndOffset = -1;

		for (int i = 0; i < nRegions; i++) {
			region = regions.get(i);
			final int startOffset = blockedRegion.getStartOffset(region);
			if (startOffset >= partitionEndOffset)
				break;
			if (blockedRegion.getEndOffset(region) <= partitionStartOffset)
				continue;

			if (region instanceof ITextRegionCollection) {
				handled = prepareTextRegion((ITextRegionCollection) region, partitionStartOffset, partitionLength,
						holdResults);
				previousAttr = null;
				styleRange = null;
				previousEndOffset = -1;
			} else {

				if (region.getType() == PHPRegionContext.PHP_CONTENT) {
					handled = preparePhpRegions(holdResults, (IPhpScriptRegion) region, startOffset,
							partitionStartOffset, partitionLength);
					previousAttr = null;
					styleRange = null;
					previousEndOffset = -1;
				} else {
					attr = getAttributeFor(region);
					if (attr != null) {
						handled = true;
						// if this region's attr is the same as previous one,
						// then just adjust the previous style range
						// instead of creating a new instance of one
						// note: to use 'equals' in this case is important,
						// since sometimes different instances of attributes are
						// associated with a region, even if the attribute has
						// the same values.
						// TODO: this needs to be improved to handle readonly
						// regions correctly
						if (styleRange != null && previousAttr != null && previousAttr.equals(attr)
								&& previousEndOffset == startOffset) {
							// extends the prev styleRange with the current
							// region length
							styleRange.length += region.getLength();
							if (styleRange.start + styleRange.length > partitionEndOffset) {
								styleRange.length -= styleRange.start + styleRange.length - partitionEndOffset;
							}
						} else {
							styleRange = createStyleRange(blockedRegion, region, attr, partitionStartOffset,
									partitionLength);
							holdResults.add(styleRange);
						}
						previousAttr = attr;
						previousEndOffset = blockedRegion.getEndOffset(region);
					} else {
						previousAttr = null;
						styleRange = null;
						previousEndOffset = -1;
					}
				}
			}
		}
		return handled;
	}

	public boolean prepareTextRegions(IStructuredDocumentRegion structuredDocumentRegion, int partitionStartOffset,
			int partitionLength, Collection<StyleRange> holdResults) {
		if (structuredDocumentRegion == null) {
			return false;
		}

		assert structuredDocumentRegion.getLength() > 0 && partitionStartOffset >= 0 && partitionLength >= 0
				&& holdResults != null;

		if (partitionLength == 0) {
			return true;
		}

		boolean handled = false;
		final int partitionEndOffset = partitionStartOffset + partitionLength;

		while (structuredDocumentRegion != null && structuredDocumentRegion.getStartOffset() < partitionEndOffset) {
			ITextRegion region = null;
			ITextRegionList regions = structuredDocumentRegion.getRegions();
			int nRegions = regions.size();
			StyleRange styleRange = null;
			TextAttribute previousAttr = null;
			TextAttribute attr = null;
			int previousEndOffset = -1;

			for (int i = 0; i < nRegions; i++) {
				region = regions.get(i);
				final int startOffset = structuredDocumentRegion.getStartOffset(region);
				if (startOffset >= partitionEndOffset)
					break;
				if (structuredDocumentRegion.getEndOffset(region) <= partitionStartOffset)
					continue;

				if (region instanceof ITextRegionCollection) {
					handled = prepareTextRegion((ITextRegionCollection) region, partitionStartOffset, partitionLength,
							holdResults);
					previousAttr = null;
					styleRange = null;
					previousEndOffset = -1;
				} else {

					if (region.getType() == PHPRegionContext.PHP_CONTENT) {
						handled = preparePhpRegions(holdResults, (IPhpScriptRegion) region, startOffset,
								partitionStartOffset, partitionLength);
						previousAttr = null;
						styleRange = null;
						previousEndOffset = -1;
					} else {

						attr = getAttributeFor(region);
						if (attr != null) {
							handled = true;
							// if this region's attr is the same as previous
							// one, then just adjust the previous style range
							// instead of creating a new instance of one
							// note: to use 'equals' in this case is important,
							// since sometimes different instances of attributes
							// are associated with a region, even if the
							// attribute has the same values.
							// TODO: this needs to be improved to handle
							// readonly regions correctly
							if (styleRange != null && previousAttr != null && previousAttr.equals(attr)
									&& previousEndOffset == startOffset) {
								// extends the prev styleRange with the current
								// region length
								styleRange.length += region.getLength();
								if (styleRange.start + styleRange.length > partitionEndOffset) {
									styleRange.length -= styleRange.start + styleRange.length - partitionEndOffset;
								}
							} else {
								styleRange = createStyleRange(structuredDocumentRegion, region, attr,
										partitionStartOffset, partitionLength);
								holdResults.add(styleRange);
							}
							previousAttr = attr;
							previousEndOffset = structuredDocumentRegion.getEndOffset(region);
						} else {
							previousAttr = null;
							styleRange = null;
							previousEndOffset = -1;
						}
					}
				}

				if (Debug.syntaxHighlighting) {
					if (!handled) {
						System.out.println("not handled in prepareRegions"); //$NON-NLS-1$
					}
				}
			}
			structuredDocumentRegion = structuredDocumentRegion.getNext();
		}
		return handled;
	}

	/**
	 * Prepares php regions for the line highlighter
	 *
	 * @param holdResults
	 *            - results
	 * @param region
	 *            - php region
	 * @param regionStart
	 * @param partitionStartOffset
	 * @param partitionLength
	 */
	private boolean preparePhpRegions(Collection<StyleRange> holdResults, IPhpScriptRegion region, int regionStart,
			int partitionStartOffset, int partitionLength) {
		assert holdResults != null && region != null && region.getType() == PHPRegionContext.PHP_CONTENT
				&& region.getLength() > 0 && regionStart >= 0 && partitionStartOffset >= 0 && partitionLength > 0;

		ITextRegion[] phpTokens;
		StyleRange styleRange = null;
		TextAttribute previousAttr = null;
		TextAttribute attr = null;
		ITextRegion prevElement = null;

		try {

			if (!region.isFullReparsed() && (regionStart == partitionStartOffset)) {
				phpTokens = region.getUpdatedPhpTokens();
				int from = region.getUpdatedTokensStart();
				partitionStartOffset = from + regionStart;
				partitionLength = region.getUpdatedTokensLength();
				assert (phpTokens.length > 0 && partitionStartOffset >= 0 && partitionLength > 0)
						|| (phpTokens.length == 0 && partitionStartOffset >= 0 && partitionLength == 0);
			} else {
				// compute interval intersection between region and partition
				int from = Math.max(0, partitionStartOffset - regionStart);
				int length = Math.min(regionStart + region.getLength(), partitionStartOffset + partitionLength)
						- Math.max(regionStart, partitionStartOffset);
				if (length == 0) {
					// empty region and partition intersection, there's nothing
					// to do (happens when partitionLength is = 0, so we should
					// never land here)
					return true;
				}
				// if length < 0 (i.e. when partitionLength < 0), we'll throw a
				// BadLocationException
				phpTokens = region.getPhpTokens(from, length);
			}

			for (int i = 0; i < phpTokens.length; i++) {
				ITextRegion element = phpTokens[i];
				attr = getAttributeFor(element);
				// Check that the elements are different, otherwise the
				// coloring is not valid
				if (prevElement == element) {
					continue;
				}
				if (styleRange != null && previousAttr != null && previousAttr.equals(attr) && prevElement != null
						&& prevElement.getStart() + prevElement.getLength() == element.getStart()) {
					// extends the prev styleRange with the current element
					// length
					styleRange.length += element.getLength();
					if (styleRange.start + styleRange.length > partitionStartOffset + partitionLength) {
						styleRange.length -= styleRange.start + styleRange.length
								- (partitionStartOffset + partitionLength);
					}
				} else {
					// create new styleRange
					int styleStart = regionStart + element.getStart();
					int styleLength = element.getLength();
					int blankStart = regionStart + element.getTextEnd();
					int blankLength = element.getEnd() - element.getTextEnd();
					assert styleStart + styleLength == blankStart + blankLength;
					if (styleStart >= partitionStartOffset + partitionLength) {
						// if the range starts after the requested partition,
						// stop now
						break;
					} else if (styleStart + styleLength <= partitionStartOffset) {
						// if the range ends before the requested
						// starting position, ignore it
						continue;
					} else if (styleStart < partitionStartOffset) {
						// if the region starts before the requested
						// starting position, adjust the style start
						// position
						styleLength -= (partitionStartOffset - styleStart);
						styleStart = partitionStartOffset;
						if (blankStart < partitionStartOffset) {
							blankLength -= partitionStartOffset - blankStart;
						}
					} else if (styleStart + styleLength > partitionStartOffset + partitionLength) {
						// if the region ends after the requested end position,
						// making it shorter
						styleLength -= styleStart + styleLength - (partitionStartOffset + partitionLength);
						if (blankStart < partitionStartOffset + partitionLength) {
							blankLength = partitionStartOffset + partitionLength - blankStart;
						} else {
							blankLength = 0;
						}
					}
					if (attr.getBackground() != null && element.getTextEnd() != element.getEnd()) {
						// in case of background color make sure the
						// highlighting will not paint the whitespaces
						styleRange = new StyleRange(styleStart, styleLength - blankLength, attr.getForeground(),
								attr.getBackground(), attr.getStyle());
						if ((attr.getStyle() & TextAttribute.UNDERLINE) != 0) {
							styleRange.underline = true;
							styleRange.fontStyle &= ~TextAttribute.UNDERLINE;
						}
						if ((attr.getStyle() & TextAttribute.STRIKETHROUGH) != 0) {
							styleRange.strikeout = true;
							styleRange.fontStyle &= ~TextAttribute.STRIKETHROUGH;
						}
						holdResults.add(styleRange);
						previousAttr = attr;
						if (blankLength > 0) {
							// apply style to the whitespace (important for
							// the refresh of the specific range
							styleRange = new StyleRange(styleStart + styleLength - blankLength, blankLength,
									attr.getForeground(), null, attr.getStyle());
							holdResults.add(styleRange);
							previousAttr = null;
						}
					} else {
						styleRange = new StyleRange(styleStart, styleLength, attr.getForeground(), attr.getBackground(),
								attr.getStyle());
						if ((attr.getStyle() & TextAttribute.UNDERLINE) != 0) {
							styleRange.underline = true;
							styleRange.fontStyle &= ~TextAttribute.UNDERLINE;
						}
						if ((attr.getStyle() & TextAttribute.STRIKETHROUGH) != 0) {
							styleRange.strikeout = true;
							styleRange.fontStyle &= ~TextAttribute.STRIKETHROUGH;
						}
						holdResults.add(styleRange);
						previousAttr = attr;
					}
				}
				prevElement = element;
			}
			return true;
		} catch (BadLocationException e) {
			Logger.logException(e);
			return false;
		}
	}

	/*
	 * Returns hash of color attributes
	 */
	public Map<String, String> getColorTypesMap() {
		return fColorTypes;
	}

	@Override
	public void loadColors() {
		addTextAttribute(PreferenceConstants.EDITOR_NORMAL_COLOR);
		addTextAttribute(PreferenceConstants.EDITOR_BOUNDARYMARKER_COLOR);
		addTextAttribute(PreferenceConstants.EDITOR_KEYWORD_COLOR);
		addTextAttribute(PreferenceConstants.EDITOR_VARIABLE_COLOR);
		addTextAttribute(PreferenceConstants.EDITOR_STRING_COLOR);
		addTextAttribute(PreferenceConstants.EDITOR_COMMENT_COLOR);
		addTextAttribute(PreferenceConstants.EDITOR_LINE_COMMENT_COLOR);
		addTextAttribute(PreferenceConstants.EDITOR_PHPDOC_COMMENT_COLOR);
		addTextAttribute(PreferenceConstants.EDITOR_PHPDOC_COLOR);
		addTextAttribute(PreferenceConstants.EDITOR_NUMBER_COLOR);
		addTextAttribute(PreferenceConstants.EDITOR_HEREDOC_COLOR);
		// addTextAttribute(PreferenceConstants.EDITOR_TASK_COLOR);
		addTextAttribute(PreferenceConstants.EDITOR_KEYWORD_PRIVATE_COLOR);
		addTextAttribute(PreferenceConstants.EDITOR_KEYWORD_PUBLIC_COLOR);
		addTextAttribute(PreferenceConstants.EDITOR_KEYWORD_PROTECTED_COLOR);
	}

	protected void clearColors() {
		getTextAttributes().clear();
	}

	public void setColorPreferences(IPreferenceStore preferenceStore) {
		fColorPreferences = preferenceStore;
	}

	@Override
	public IPreferenceStore getColorPreferences() {
		if (fColorPreferences != null) {
			return fColorPreferences;
		}
		return PreferenceConstants.getPreferenceStore();
	}

	/*
	 * Handle preference changes
	 */
	@Override
	protected void handlePropertyChange(PropertyChangeEvent event) {
		if (event != null) {
			String prefKey = event.getProperty();
			if (PreferenceConstants.EDITOR_NORMAL_COLOR.equals(prefKey)
					|| PreferenceConstants.EDITOR_BOUNDARYMARKER_COLOR.equals(prefKey)
					|| PreferenceConstants.EDITOR_KEYWORD_COLOR.equals(prefKey)
					|| PreferenceConstants.EDITOR_VARIABLE_COLOR.equals(prefKey)
					|| PreferenceConstants.EDITOR_STRING_COLOR.equals(prefKey)
					|| PreferenceConstants.EDITOR_COMMENT_COLOR.equals(prefKey)
					|| PreferenceConstants.EDITOR_LINE_COMMENT_COLOR.equals(prefKey)
					|| PreferenceConstants.EDITOR_PHPDOC_COMMENT_COLOR.equals(prefKey)
					|| PreferenceConstants.EDITOR_PHPDOC_COLOR.equals(prefKey)
					|| PreferenceConstants.EDITOR_NUMBER_COLOR.equals(prefKey)
					|| PreferenceConstants.EDITOR_HEREDOC_COLOR.equals(prefKey)
					// || PreferenceConstants.EDITOR_TASK_COLOR.equals(prefKey)
					|| PreferenceConstants.EDITOR_KEYWORD_PRIVATE_COLOR.equals(prefKey)
					|| PreferenceConstants.EDITOR_KEYWORD_PROTECTED_COLOR.equals(prefKey)
					|| PreferenceConstants.EDITOR_KEYWORD_PUBLIC_COLOR.equals(prefKey)) {
				addTextAttribute(prefKey);
			} else
				if (PreferenceConstants.getEnabledPreferenceKey(PreferenceConstants.EDITOR_NORMAL_COLOR).equals(prefKey)
						|| PreferenceConstants.getEnabledPreferenceKey(PreferenceConstants.EDITOR_BOUNDARYMARKER_COLOR)
								.equals(prefKey)
						|| PreferenceConstants.getEnabledPreferenceKey(PreferenceConstants.EDITOR_KEYWORD_COLOR)
								.equals(prefKey)
						|| PreferenceConstants.getEnabledPreferenceKey(PreferenceConstants.EDITOR_VARIABLE_COLOR)
								.equals(prefKey)
						|| PreferenceConstants.getEnabledPreferenceKey(PreferenceConstants.EDITOR_STRING_COLOR)
								.equals(prefKey)
						|| PreferenceConstants.getEnabledPreferenceKey(PreferenceConstants.EDITOR_COMMENT_COLOR)
								.equals(prefKey)
						|| PreferenceConstants.getEnabledPreferenceKey(PreferenceConstants.EDITOR_LINE_COMMENT_COLOR)
								.equals(prefKey)
						|| PreferenceConstants.getEnabledPreferenceKey(PreferenceConstants.EDITOR_PHPDOC_COMMENT_COLOR)
								.equals(prefKey)
						|| PreferenceConstants.getEnabledPreferenceKey(PreferenceConstants.EDITOR_PHPDOC_COLOR)
								.equals(prefKey)
						|| PreferenceConstants.getEnabledPreferenceKey(PreferenceConstants.EDITOR_NUMBER_COLOR)
								.equals(prefKey)
						|| PreferenceConstants.getEnabledPreferenceKey(PreferenceConstants.EDITOR_HEREDOC_COLOR)
								.equals(prefKey)
								// ||
								// PreferenceConstants.getEnabledPreferenceKey(PreferenceConstants.EDITOR_TASK_COLOR)
								// .equals(prefKey)
						|| PreferenceConstants.getEnabledPreferenceKey(PreferenceConstants.EDITOR_KEYWORD_PRIVATE_COLOR)
								.equals(prefKey)
						|| PreferenceConstants
								.getEnabledPreferenceKey(PreferenceConstants.EDITOR_KEYWORD_PROTECTED_COLOR)
								.equals(prefKey)
						|| PreferenceConstants.getEnabledPreferenceKey(PreferenceConstants.EDITOR_KEYWORD_PUBLIC_COLOR)
								.equals(prefKey)) {
				boolean enabled = getColorPreferences().getBoolean(prefKey);
				prefKey = prefKey.split("\\.")[1]; //$NON-NLS-1$
				if (enabled) {
					addTextAttribute(prefKey);
				} else {
					addDefaultTextAttribute(prefKey);
				}
			}
		} else {
			loadColors();
		}

		if (fRecHighlighter != null) {
			fRecHighlighter.refreshDisplay();
		}
	}
}

redpajama_set_name: RedPajamaGithub


It was quite the experience to be in the Kamloops Marathon this morning! I decided to start with the 5K because I have been using the 5K Runner app on my iPhone. I thought it would be fun to have a goal and this run was perfect timing considering it was my last day of being 46!! I'm grateful for my two girlfriends Shauna and Paula who have been walking and running with me for years because it certainly helped me today. What I haven't been doing enough is hills and that made it harder today. There are a lot of hills around TRU and I was running them today! Have to admit, we still miss Boogie the Bridge but now that they hold it on Sunday, we haven't been running it!


Sue Blumberg (Board President) joined Northmarq in February, 2006 as a multifamily specialist and is the Managing Director of the Chicago office. Her previous employment included originating loans for FHA under the coinsurance program in the 1980's, with the first approved Fannie Mae DUS lender in the 1980's and 1990's and with Freddie Mac, Fannie Mae and FHA since then. Sue has closed loans on over 300 properties during her career, primarily in the Midwest region. Sue served on the Freddie Mac Production Advisory Council for 7 of the last 10 years, and serves on the Amerisphere Fannie Mae Advisory Council. She is a member of CREW Chicago, and is a founding member of the Real Estate Finance Forum in Chicago. She graduated from the University of Iowa with a Bachelor of Business Arts degree and received her MBA in Finance/Real Estate at DePaul University.
Nicole Henricks (Board Vice President) is an early childhood special education teacher with Northern Suburban Special Education District (NSSED). Prior to joining NSSED, Nicole taught at Community for several years. She continues to serve and remain connected with Community by being a part of the Board. Nicole is also a member of the Curriculum team and serves as a Coach to Leaders of K-2 age children in the children's ministry at Willow Creek North Shore.
Jaime Barraza (Board Secretary) is the Director of Biliteracy for Distinctive Schools. Prior to joining the DS team he led language and biliteracy programming in a northern suburb of Chicago. Jaime began his career in education working in nonprofit organizations focused on supporting under served students with enriching after school and summer opportunities. Jaime started his teaching career serving as an elementary ESL teacher then as a middle school dual language teacher specializing in social studies and Spanish.
Katie Wiswald (Board Treasurer) is a commercial and consumer lender at Highland Park Bank & Trust, a Wintrust Community Bank. She has spent the last 13 years in Highland Park focusing on community lending and serving the needs of local businesses and residents. She has previously served on the board of the Highland Park Chamber of Commerce as Assistant Vice President and is currently the chairman of the task force for the Ravinia Business District Alliance as well as an advisory member for the Ravinia District SSA.
Noel Cooper is a certified financial planner working with RBC Wealth Management. He has more than 15 years of wealth management experience. He recently joined the Board of Directors to raise awareness for the center and its programs. Noel, his wife Nancy, and their children moved to Highland Park from Chicago.
Eva Lok is the mother of 2 boys who attended Highland Park Community. Eva joined the board because Community is an important partner for Highland Park and strongly believes in the values and teachings the staff provides to their kids. She is a Sourcing Manager for a consumer products company. Eva and her family moved from Chicago to Highland Park in 2014.
Jennifer Luczkowiak, is a mother of three (all of whom have or will attend HP Community) and a Highland Park resident. She is an Attorney and the Director of Development at Prairie State Legal Services. She grew up in Lake County and received her undergraduate degree from Northwestern University and her law degree from University of California, Hastings College of the Law. After graduating from law school, she spent three years at the Law Foundation of Silicon Valley serving homeless and runaway youth as an Equal Justice Works Fellow and Staff Attorney. She joined the HP Community Board of Directors because she believes having access to diverse affordable childcare is vital to a healthy community and an incredible asset Highland Park.
Anita Pildes, is the Community Education and Outreach Coordinator for SHALVA, a non-profit for Jewish women experiencing or healing from domestic abuse. She also has been a long-time substitute teacher for North Shore School District 112. She was an attorney, working as a litigator and as general counsel for a corporation for many years. She earned her J.D. from IIT/Chicago-Kent College of Law. She received her Bachelor of Social work degree from the University of Illinois. Anita is an experienced youth and adult Jewish studies educator.
Zach Waickman is the Biodiesel Lab Manager at Loyola University Chicago's Institute of Environmental Sustainability. He helped launch this student-run sustainable business within the University when he was while earning his bachelors degree, and later completed his MBA at Loyola as well. His work in sustainability over the past decade has focused on waste utilization, innovative product development, and green business operation. He is particularly interested in businesses that utilize local, traditional waste products to create community resources and jobs. Zach and his wife, Amy, have two young children (either attending or soon to be attending Community) and are thrilled to be part of Highland Park Community.


text:
Q: How to setting font-weight under 100? when I increase font size 0 to 30px. It increased the font-size as well as font-weight too. But, I want to only increase font-size without increasing font-weight.
The below Image is when I increase the font-size.

However, I want to make it like this one.

Could you help me with this? It would be really appreciated it!

A: Set a value under the 100 is not possible, but your could try to use this:
font-weight: lighter !important;

Remember to catch your tags with an ID or some classes to do more priority to your css code. Maybe your problem is an override.
For example:
//CSS selector specificity = 111
p#yourId.firstClass{
  font-weight: 300;   //this style is applied
}

//CSS selector specificity = 100
#yourId{
  font-weight: 100;   //this is overridden by the first
}

A: Use transform: scale(.5, 1);, which will set the text to be 50% normal width, but 100% normal height, and then you can set font-size to something large enough for you.  In addition, your text seems to be a bit opaque, so I'm also setting opacity to 0.7, but you might not want that...

p {
  display: inline-block;
  font-size: 50px;
  transform: scale(.50, 1);
  opacity:0.7;
}

Hello, friend!  안녕 친구!

Or, make it even thinner, at 0.25/1 ratio....

p {
  display: inline-block;
  font-size: 50px;
  transform: scale(.25, 1);
  opacity:0.7;
}

Hello, friend!  안녕 친구!

A: You can try using -webkit-text-stroke - despite the prefix, it works in all browsers besides IE.
The one draw back is that your text would have to be on a solid color.

h1 {
  font-size: 100px;
}

h1.stroke {
  -webkit-text-stroke: 2px white;
}

안녕 친구!

안녕 친구! stroke

redpajama_set_name: RedPajamaStackExchange


Louie's life is great! A walk on the leash every morning, ice cream on Sundays, snuggling in bed at night with Mom and Dad. Even the playdates with Mom's friends — despite their little crawling creatures who pull Louie's ears — aren't all that bad. But then things get weird: cold food on the floor, no room in the bed, and lots of new stuff coming into the house in pairs — two small beds, two little sweaters, two seats in the stroller. Does that bode double trouble ahead, or could there be a happier surprise in store for Louie? With perfect visual pacing, Tony Fucile takes a familiar story and gives it a comic spin.
Poor Louie! Life is perfect for this pup until Mom's belly starts getting bigger. . . . A funny and touching tale for big siblings from the illustrator of the Bink and Gollie series.


text:
Vermont H.S. field hockey: Hall's 2OT winner fires South Burlington to final
Austin Danforth
MIDDLEBURY - With a little more than five minutes left until the stalemate would force a harrowing shootout tiebreaker, South Burlington's Kate Hall trotted to the left hash to serve her team's 10th penalty corner. Her coaches retreated up the sideline and huddled tightly with the team to watch.
Did they sense something about to happen and want a better view?
"You never know," Wolves coach Anjie Soucy said. "But I just feel like we were controlling the play in the overtime (and) if we executed one cleanly we had good chance of putting one in."
Hall pinged the ball to Hanako Memon atop the shooting circle. Memon sent it right back. With time and space, Hall wound up and cracked an inch-perfect, waist-high shot that found a sliver of daylight between the near post and Colchester's red-hot goalie, Ciera Morse, to give No. 2 South Burlington a 2-1 double-overtime win in the Division I high school field hockey semifinals at Middlebury College on Monday.
"That was the perfect execution," said Soucy, whose squad heads to the state final for the fourth year in a row.
A week and a half after the teams played out a scoreless draw, the third-seeded Lakers (12-1-3) again pushed the three-time defending champion Wolves to the brink behind dogged defending and Morse's masterful 19-save performance.
"Ciera had the game of her life, probably one of the best games I've ever seen her play," Colchester coach Katie Comeau said.
"Their defense is probably the best in the state," Hall said. "Their goaltender played amazing. They have some really good midfielders and defenders, and they marked up really tight, it was hard to get around them."
So much so that the previously undefeated Lakers struck first, a little less than five minutes into the second half.
Jackie Palaza fired a penalty corner to Meg Lehouiller, who slotted the ball back to the right side. Two Colchester touches later, Palaza had the ball on her stick at the near post and popped it behind Ainsley Hultgren (two saves) to put Colchester in front.
"It was a game-changer for us. Our confidence level changed," Comeau said. "I think it gave us an opportunity take more control."
Until that point, the Lakers had repelled the pressure South Burlington threw at them and countered when they could. The idea was to keep the game on their terms as much as possible against the reigning title-holders.
"We were trying to just play our game, maintain possession and not get caught in a game of cat and mouse where we're chasing another team," Comeau said. "They're a team that wins and has a history of winning so coming into that feels like the underdog sometimes."
More:Mount Abraham field hockey books D-II title-game trip
More:Vermont high school playoffs: VPA fall tournament pairings
With time no longer on their side, the Wolves searched for creative ways to open up angles on Morse's cage — only to have the equalizer come on an old-fashioned follow-up opportunity.
On a rush into the left side of the circle, Morse stymied Hall's initial offering. The rebound was redirected into the path of Lilly Truchon who cashed in South Burlington's third look of the sequence to equalize 1-1 with 5:22 to go.
The game opened up in the 7-v-7 extra sessions, requiring a save from Hultgren in the opening stanza and more heroics from Morse early in the third before Hall struck gold.
"I had a feeling she was going to want to take a shot on that corner," Soucy said. "I didn't know which (play) she wanted — I had a hunch it might be that one — but she wanted to be given the opportunity to put it in."
Three years earlier Hall, then a freshman, tallied the 2-1 winner against Mount Mansfield that sent South Burlington to the championship game. She went back to the same play for the decisive strike against Colchester.
"It seemed right," Hall said. "I really want to have the same experience for the freshmen that I had, lead them to that victory."
Become a member of the Vermont Varsity Insider Facebook group at https://bit.ly/2MGSfvX. Contact Austin Danforth at 651-4851 or edanforth@freepressmedia.com. Follow him on Twitter @eadanforth.