Krazy Krouse Kids: Merry Christmas!
Santa found 156 Maple Street, that's for sure! I woke the kids up around 7:45 so they could get up and see what Santa brought them. Caroline informed me that "Santa did not come to our house." We had a conversation about this for about 5 minutes when I finally convinced her to just come and look to see if there was a pink princess dress waiting for her. I carried Tucker into the living room with his head on my shoulder because he was still sleepy. As soon as he saw the matchbox cars, dump truck and motorcycle, he was ready to get down.
Caroline immediately saw the princess dress and said "Oh wow!" She then began to point out all of Tucker's new toys to him. Tucker was way ahead of her and did not need a guide! I think her favorite thing was the collection of beads in small pink containers for her to sort. She said "Mommy, it's beads like you have!" Tucker began loading all his matchbox cars into the dumptruck and wheeled it around. It has definitely been a Merry Christmas at Brown House!


The R (RGB Series) is a painting by Marilyn Manson. It depicts a face of a man. There is a painted in reds and oranges with a wash of reddish pink. RGB refers to Red, Green & Blue in photography. See marilynmanson.com paintings for artwork availability.


text:
Q: Invariant Violation: "Minified React error #307 We have our own library for all the react components which we use across the apps.
When importing some components from the library in the apps we are getting the Minified React error #307. If we have the same library component in-app it is rendering well.
Some data points:
We have the same version of react and react-dom in both common library and app.
We are not using React hooks.
We are bundling both the common library and app using the webpack.
Your help in this matter would be greatly appreciated. Thanks

redpajama_set_name: RedPajamaStackExchange


Protect your eyes and exposed skin from the sun. Even on the most freezing, overcast day, the sun's rays bounce off the snow and can be very harmful.
Cotton clothing is like a sponge; it traps and holds moisture. In freezing temperatures, this will debilitate your body's attempt to keep warm.
Angel Fire offers some serious fun, without too many difficult challenges. This ski resort is popular with families and beginner-to-intermediate skiers.
Red River is a former mining town with all the charm. The ski area is an exciting place to take your turns, and you'll have fun strolling the shops and restaurants on Main Street.
Sipapu is a family-run resort (founded by Lloyd and Olive Bolander). Their emphasis on family remains unchanged today. Expect a lot of good times for the kiddies.
Cross-country skiing (also known as Nordic skiing) is a full-body aerobic workout. You're skating your legs, pumping your arms –– whew! But the best part is, you can take it as slow or as fast as you want.


text:
24kGoldn And Dababy Fend Off Finicky Female Friends On 'Coco'
The 20-year-old San Francisco rapper looks to extend the successful run kicked off by his chart-topping hit 'Mood.' …
2020 XXL Freshman 24kGoldn is having a stellar year. The 20-year-old rapper from San Francisco has ruled the Hot 100 chart with his Iann Dior collaboration "Mood" for the past five weeks thanks to its status as a TikTok juggernaut, as well as a remix from Justin Bieber and J Balvin. But rather than rest on his laurels, Goldn has rolled out his next hopeful hit, this time collaborating with a big-name partner in the form of North Carolina rapper DaBaby on "Coco."
The second single from 24kGoldn's debut album El Dorado, "Coco" once again finds him in full-on relationship therapy mode as he wonders, "Oh my God, why is shawty tryna test me?" In this instance, he uses the metaphor of famous French fashion (and noted Nazi agent — look it up!) Coco Chanel to comment on his partner's volatility. 24k's Coco, however, is fickle, swinging back and forth between trying to lock him down and wanting to be a free spirit. "Can't seem to figure out what's wrong with ya," he laments. "Checking your temperature, thermometer."
READ MP3: Rejjie Snow, Snoh Aalegra & Cam O'bi – Mirrors
At the moment, El Dorado has a 2021 release date, although the rapper told Variety he's "definitely not in a rush." It sounds like he wants to build up a rollout that will live up to his status as a chart-topping hitmaker, which can only bode well for his future — and XXL's predictive abilities.
Listen to "Coco" above.

redpajama_set_name: RedPajamaCommonCrawl


text:
9-11 Revisited
A site devoted to the events of 9-11
The Trump Revolution: 9/11 Presidential-Level Issues Considered
The Trump Revolution: A final word
The Trump Revolution: Convention Time; An Update
The Trump Revolution: So, Where Are We Now?
The Trump Revolution: where he is; where he needs to be, second update
AA 77 (7)
AA11 (5)
Andrews Fighters (3)
Audio Clips of Interest (1)
Audio Files (1)
audio transcripts (1)
Delta 1989 (4)
Exercise Vigilant Guardian (10)
Exercises War Games (4)
Framework For Analysis (3)
Gofer 06 (1)
Langley Scramble (6)
May 23 2003 Hearing (6)
MCC: Major Nasypany (5)
Mystery Plane (5)
National Level (7)
NEADS Files (8)
Occasional Comments (2)
Otis Scramble (2)
ROE (2)
Scott Trilogy (5)
Transponders and Ghosts (5)
UA 93 (8)
9-11 Education (6)
9-11 Truth Movement (2)
9/11 Remembrance (1)
Battle of 9-11 (3)
Bloomington Group (3)
Chaos Theory (28)
Linear Processes (7)
Times of Interest (2)
Z Drafts (5)
Political Revolutionary Warfare (8)
UA 175 (4)
What's New Archive 2009
What's New; recent
Air Force History Project
Congressional Joint Inquiry: Eleanor Hill Staff Director
Correspondent's Corner
Joining the Commission Staff
The Ground Truth by Dean John Farmer
What's in the Queue
Wikileaks, relevant messages.
Important 9-11 Links
11 Settembre, Italian blog about "9/11"
9-11 Commission Official Site
9-11 Commission Staff Report
9-11 Commisson Report Search Engine
911 Myths 911 Commission Files
911files.info
911Myths
Audio: 9/11 Commission Report by LibreVox
Debunking 9-11
DHS Quadrennial Review
History Commons Scrbd Files
History Commons Scribd Archive
History Commons Timeline
Joint Inquiry Eleanor Hill Staff Statement
Joint Inquiry Report
Legaltainment
Moussaoui Trial and Exhibits
NARA 9-11 Files
NARA Public Access
National Security Archive
Smithsonian; September 11, Bearing Witness to History
Terrorist Travel
Touching History
Undicisettembre
Zoe's Flight
Archives Select Month November 2016 July 2016 June 2016 May 2016 April 2016 February 2016 August 2015 April 2015 February 2015 January 2015 November 2014 October 2014 September 2014 May 2014 April 2014 March 2014 February 2014 September 2013 July 2013 February 2013 January 2013 December 2012 November 2012 October 2012 April 2012 March 2012 February 2012 December 2011 November 2011 October 2011 September 2011 August 2011 July 2011 June 2011 April 2011 March 2011 February 2011 January 2011 December 2010 November 2010 September 2010 August 2010 July 2010 June 2010 May 2010 April 2010 March 2010 February 2010 January 2010 December 2009 November 2009 October 2009 September 2009 August 2009 July 2009 June 2009
9-11: AA11; a Different Perspective
This article is an extension of my orginal work several years ago about transponders and ghosts, (here and here). There is still considerable confusion in the blogosphere about the rebirth of American Airlines flight 11 on September 11, 2001, and why that came to be. I still have research to do on this issue, but thought this detailed review, based exclusively on primary sources, the recorded conversations of the day would be useful to serious researchers, academicians and historians. To begin, let's briefly review the attack against the World Trade Center.
The terrorist plan of attack was a model of military planning, rehearsal, and execution. The attack was classic; two axes of advance, each axis with a two-pronged assault. Such an attack is meant to sow seeds of disorganization and confusion, to maximize chaos and minimize awareness. The attack succeeded on the northern axis because of tight planning and execution which leveraged luck at key points. The attack on the southern axis was less well planned and executed and failed in its final prong, United Airlines flight 93 (UA 93).
We as yet do not know the details of the plan and may never know. What we do know is that the planning for the attack against the World Trade Center eliminated one key variable which was a potential hindrance to success. The northern attack succeeded in part because the hijackers selected two planes scheduled to take off from the same airport in the same timeframe. That allowed al Shehhi in United Airlines flight 175 (UA 175) to see the result of the impact of AA 11 and immediately change the transponder code for UA 175.
In the south, United Airlines 93 (UA 93) was 40 minutes late in taking off and was not on the scene to either precede or follow AA 77. We do not know the planned sequence. UA 93 was brought down well short of its destination through the courageous actions of the passengers and remaining crew.
Overall, the attack did create confusion and the resultant chaos and uncertainty was unfathomable by the Federal Aviation Administration (FAA) and its en route traffic control centers, traffic control (TRACON) facilities, and airport towers. Here is the story of that chaos and confusion and we begin with the impact of AA 11 into the World Trade Center (WTC), North Tower.
According to radar and seismic data AA 11 impacted shortly before 9:46:30 EDT. The 9/11 Commission, by convention, used National Traffic Safety Board (NTSB) derived times and reported an impact time of 9:46:40. Commission staff grappled with the question of whether to report times in minutes or in minutes and seconds. The solution was to report in minutes and seconds but use NTSB times, by definition.
It didn't matter. The time issue paled in comparison to the magnitude of the problem that immediately faced air traffic control. It was sufficient to know that shortly after 8:46 EDT a catastrophic event had occurred.
There were two situations, two questions. Where was AA 11? What hit the WTC? Although some controllers and supervisors intuitively knew that it was AA 11 that hit the tower that intuition did not gain traction. The reason is simple. The last known altitude for AA 11 was 29,000 feet and air traffic control thought it had confirmation of that altitude from other planes in the sky, to include, ironically, UA 175.
Here is the impact and immediate aftermath in the voices of the day as captured on air traffic facility tapes at multiple locations. We begin with La Guardia Tower.
La Guardia Tower
At about 8:46:43 a helicopter, Bravo Quebec asked La Guardia, "?did a?" southbound go off your scope?" The Tower missed the transmission and asked for a repeat. Bravo Quebec responded: ?Did a? south go off your scope down by the World Trade?" And by 8:47 EDT Bravo Quebec reported that '[it] looks like something just collided. 0847 Looks Liike Something Just Collided
Concurrently, a different controller also fielded a call from a helicopter that there was a fire at the WTC. 0847 Fire at the World Trade Center The controller reported that the Port Authority was being notified. 0848 Calling the Port Right Now
At that time La Guardia was uncertain if something had hit the WTC or something had happened inside. Either way, By 8:55 EDT, La Guardia was working with police and news helicopters to clear air space around the WTC. A helicopter reported that "we possibly have a plane into the World Trade." 0855 Possible Plane into the World Trade
By 9:00 EDT, at the tower controller level, there was still uncertainty as to what happened and Tetterboro and La Guardia controllers exchanged views as to whether the explosion was inward or outward. Soon thereafter, a police helicopter reported that the explosion was inward and a news helicopter, Chopper 4, reported he could see the impact area. A controller speculated that it might be a small airplane. Chopper 4 reported that "we can't tell how big it is right now. 0900 Helicopter reports police and news
At 9:03 EDT, an unknown caller reported that a 737 just struck the World Trade Center. The controller was incredulous and responded, "a seven thirty seven??" That was not a belated reference to what struck the tower earlier. That was a near-real time report that UA 175 had struck the south tower. 0903 A 737 Just Struck the World Trade Center
To recapitulate at the tower level: as of 9:03 EDT two planes had struck the WTC, one perhaps small and one a 737. At La Guardia, the controllers were simply incredulous about the chaos before them. They knew nothing about developments well to the West where Indianapolis Center had lost contact with AA 77. La Guardia was not alone. No one else in the air traffic ccntrol system knew about AA 77, to include New York TRACON, the next higher echelon in FAA.
New York TRACON
By 8:52 EDT, New York TRACON was looking for AA 11. In an extended exchange, Mike Sammartino, the Air Space Branch Manager, Eastern Region, a manager without access to a radar, called a traffic manager, Carl, at the TRACON Traffic Management Unit to get instructions on how to located a track on "TMS" (Traffic Management System, sometimes referred to as TSD, Traffic Situation Display). Sammartino was looking for AA 11.
During the conversation, Carl told Sammartino that he had lost AA 11 on the radar. Sammartino saw AA 11 on the TSD, but it is not clear if he was watching the original flight plan for AA 11 or a new track, 11A. Both were visible on TMS/TSD. More on that later.
More important, during that conversation someone broke in and told Sammartino that "an airplane crashed into the side of the WTC." Sammartino immediately said, "hey Rick," a reference to Rick DuCharme, the Assistant Regional Air Traffic Manager. 0852 Hang on Whats That By 8:53 EDT, both Region and TRACON knew some about the developing WTC situation.
By chance, an off duty sector supervisor called in to Liberty Sector, New York TRACON, to discuss his shift time. The several minute exchange between the two supervisors provides a glimpse of how uncertain the situation was at a sector supervisor level. (Warning: this audio file contains profanity) 0852 TRACON Discussion
At this point, TRACON (Possibly the Operations Manager, Bob Burch) called New York Center ( ZNY) to ask if they had a track on "that American." TRACON was told that "he went into coast and we lost the target on him." In that exchange the "into coast" reference was to the radar track, not the TMS/TDS display. The ZNY voice was, himself, incredulous when told that an airplane hit the WTC. "Who said an airplane hit it?" He was told it was on the news. 0852 twenty west of Kennedy
That conversation between ZNY and NY TRACON established that the last reported position of the track of AA 11 was "twenty west of Kennedy." Twenty west of Kennedy (in miles) is over the Northeast corner of Staten Island, near the New Jersey border.
And that leads us to ZNY (New York Center) and one of the most important recorded conversations concerning the relationship between AA 11 and UA 175, a conversation that tied both New York Center and New York TRACON together at the senior manager level.
The situation as of 8:53 EDT. Dave Bottiglia, an Area B air traffic controller, was handling both AA 11 and UA 175. He became aware that UA 175 was not responding to his calls and he had the Operations Manager In Charge (OMIC), Bruce Barrett in his area. Concurrently, the Facilities Manager, Mike McCormick called Carl at TRACON Traffic Management to speak to the Operations Manager there, Bob Burch. Before McCormick could get on the phone with Burch he received a call from Barrett in Area B about UA 175, but not by name. Bottiglia's voice can be heard in deep background. In the course of the near two minute clip McCormick equated Bottiglia's new situation with AA 11. I have transcribed the clip because of its importance.
0853 McCormick, Burch, Barrett in real time
Carl: TRACON Traffic Management, Carl.
McCormick: Hello Carl, it's Mike McCormick, how ya doin?
Carl: Good
McCormick: Who's got the watch?
Carl: Ah, Bob Burch does right now. Ah, He's on the phone, I guess, we've got con.., well we've got some reports of a plane hitting the World Trade Center.
McCormick: Okay
Carl: So, ah I think he's trying to follow up on that right now. Ah.
McCormick: Okay, hold on, I'm on, I'm on two phones at the same time. Who's, who's this callin' me on Area B line?
McCormick: Okay Bruce, what have you got?
Barrett: (Barrett's voice is not heard)
Bottiglia: in background, Hey, ah, you see this target? I don't know what he's doing but he's not answering me right now.
McCormick: Right, OK.
McCormick: (back to TRACON) New, New York Tower's confirmed that?
Carl: I don't know, you wanta talk to Bob real quick?
McCormick: Yep. Okay
Carl: Let me put Bob,
McCormick: Go ahead and put Bob on
Carl: hang on one, hang on
McCormick: (to Barrett) I've got TRACON on the other line.
McCormick: Okay, it's not lookin' good
Burch: Hi Mike, how ya doin?
McCormick: Hey Bob, Ah, New York Tower's (sic) tellin us it looks like they have a confirmed hit.
Burch: On the Trade Center?
McCormick: Yeah
Burch: Okay, I'm talkin' to my Deputy right now, hold on.
Background: pretty sure…We're not positive…
Burch: Okay, Mike, I've got to go, I'm on another line, right now, I'm talking to [indistinct]
McCormick: Bob, Bob, we may have two things going on at once.
Burch: Okay
McCormick: Alright. Because there, we have another aircraft we're also tracking, also appears to be a hijack [possible reference to both AA 11 and UA 175]
McCormick: We might have multiple terrorist activity going on. [Clear reference to more than one hijack]
Burch: So, is that American Eleven?
McCormick: Right, so
Burch: Where is he at, can you tell us? Cus..
McCormick: We don't know for sure, we're tryin' to track him down. We got a primary target we're also trackin' that appears to be the American.
McCormick: Be careful, don't make assumptions
Burch: Alright, check
This three-way conversation clearly depicts the confusion and chaos that the attack caused. In real time, McCormick was conflicted about what he was hearing. He knew there were two incidents, possibly separate, AA 11 and whatever flew into the North Tower. Even though he heard Bottiglia in background, McCormick assumed what he was hearing pertained to AA 11, as he relayed to Burch. It bears restating at this point. Dave Bottiglia was handling both AA 11 and UA 175 and he did not say "UA 175" in the background conversation heard by McCormick.
Several minutes before that, at 8:49 EDT, there was an important exchange between Bruce Barrett at New York Center and Ron Ruggieri a manager at Eastern Region. Eastern Region was a largely administrative headquarters between air traffic control facilities and FAA Headquarters. That morning, Eastern Region interjected itself operationally, co-opting what should have been a flow of operational information between air traffic control facilities and the Air Traffic Control System Command Center (Herndon Center).
In the exchange it is clear that Eastern Region lagged in its understanding of the situation and took a leap of logic forward to assume that AA 11 was "South of Kennedy." It is the Eastern Region bridge (telecon) to which Colin Scoggins at Boston Center was listening and it is one likely source of the later misinformation that AA 11 was still airborne, as reported by Scoggins to the Norheast Air Defense Sector. 0849 ZNY Eastern Region South of Kennedy
Back to New York TRACON
While that senior management conversation between Barrett, McCormick and Burch took place, a person at TRACON named Joe called Newark Tower to confirm that there was something going on at the Trade Center; answer was "a lot of smoke." The two individuals determined that whatever struck the tower was nothing that TRACON was working and that the hijacked airplane was "high altitude." This conversation shows that the last known altitude for AA separated the World Trade Center impact from AA 11 in the minds of some controllers and managers as they attempted to grasp what was happening. 0854 Uncertainty over high altitude
Concurrently, a US Air representative, Bruce, called Carl at New York TRACON to ask if the plane that hit the World Trade Center was one of theirs. Bruce was told that it was not even confirmed that a plane hit the Center. "We'll have to turn on CNN to find out." Immediately thereafter, Wanda at the Air Traffic Control Command Center (Herndon Center) called Carl to ask about the larger traffic control issue, what to do with other air traffic. The answer, "At this time we're just trying to ascertain what's going on." There were no traffic stops in place at any facility at that point. 0855 TRACON called by US Air and Herndon Center
As that conversation concluded, Bob Burch passed on the information he received from Mike McCormick about multiple terrorist activity. In that pass Burch distinguished that AA 11 was the possible second hijack separate from the report from Newark Tower that an aircraft hit the top of the World Trade Center. Burch also passed McCormick's caution "don't assume anything." They didn't know of AA 11 "was involved in that [WTC], or if he's still flying around." 0857 Burch relays McCormick report
As of 8:58 EDT, at the TRACON and Tower level. there was no correlation between the plane that impacted the WTC and AA 11 except that "they had lost AA 11 on radar." Before we return to New York Center and higher FAA echelons, however,we need to find out what was going on at NEADS.
Northeast Air Defense Sector (NEADS)
The first location for AA 11 was passed to Major Dawne Deskins by Joe Cooper, Boston Center, at 8:40EDT, the time that NEADS entered into its official log the MCC/T (Mission Crew Commander/Technician) log as the time of notification to the military by FAA. Even though the phone rang just prior to 8:38 EDT, and the conversation between first Sergeant Jeremy Powell and then Major Deskins began shortly thereafter, that time was not actionable.
Some researchers push the notification time to 8:38 or even 8:37, rounding down. That is a glib, slight-of-hand bit of analysis that historians should avoid. Two pieces of information establish that the notification time was 8:40 EDT–the official log entry and the time in the Cooper/Deskins conversation that actionable information was passed, the coordinates.
0911121826 Deskins Cooper First Exchange
The coordinates, 4115N 07346W, were just south of Yorktown Heights, New York, 38 nautical miles (43 miles) north of JFK airport. A weapons control at NEADS can be heard in foreground on the Deskins/Cooper call saying "40 north of Kennedy" just after Deskins spoke the coordinates. The weapons controllers were listening in to her conversation and got the location as soon as Deskins did. However, it took a few minutes for the NEADS operations floor to get itself organized and a "Z" point at the location passed by Boston Center was not established until 08:44 EDT. By that time, AA 11 was south of the search area.
NEADS Identification Technicians struggled to find any information they could, primarily from Colin Scoggins at Boston Center. Scoggins told them that Boston was no longer tracking AA 11 and that they should call New York. The Identification Technicians called New York Center Air Management Information System (AMIS), an entity that did not have direct access to radar and which did not know that AA 11 had been hijacked. The woman they reached ultimately provided them a new location, 4039N 7403W at 8:48 EDT and advised that, "right now, he is primary only."
The location passed by New York AMIS was four nautical miles (4.7 miles) south of the World Trade Center. over the Upper Bay midway between Bayonne, New Jersey, and Brooklyn, New York. The coast track of AA11 extended at least that far and was passed to NEADS as an actual track
1248 Coordinates from New York AMIS
That was the last specific location NEADS would get from anyone concerning AA 11. Note that at the same time the Identification Technicians took the initiative to obtain a tail number for AA 11. They subsequently tracked down the tail number from Boston Center and it was recorded in the MCC/T log.
It was that single log entry, a tail number without reference to a specific plane, which became the fatal flaw in the government's reconstruction of events in the ensuing months and years. The entry was equated to be a reference to AA 77. No one ever cross-checked the initial work done by NEADS action officers in their analysis. More importantly, the entry was not cross-checked by anyone at NORAD at any echelon to prepare its representatives to testify before the 9/11 Commission.
Recapitulation
The audio files referenced so far are sufficient to establish the high degree of uncertainty at all levels concerning the fate of AA 11. Even though individuals with radar scope access intuitively knew that the loss of the track of AA 11 was somehow associated with the event at the WTC that intuition did not gain traction. The equation was briefly made with a degree of uncertainty–"we are not going to confirm that at this time"– at Boston Center, as reported to NEADS by Colin Scoggins. 0857 Scoggins Dooley WTC and AA 11 Tail Number
This is a direct communication between the two most important voices of the day concerning the air defense response, Colin Scoggins, military specialist at Boston Center, and Master Sergeant Maureen "Mo" Dooley, chief of the Identification Technician section at NEADS. Scoggins had told Tech Sergeant Watson that AA 11 crashed into the WTC, but Dooley wanted confirmation. Scoggins could not and did not confirm. Dooley further pushed the issue of the tail number of AA 11 and obtained it, "November 334 Alpha Alpha," and that was how it was logged. Had NEADS staff officers who helped prepare the NORAD 18 September 2001 press release timeline listened to this important exchange they would have avoided a serious error that plagues the 9/11 story to this day.
That raises an important question. Why was it that Boston Center, the FAA facility most knowledgeable of AA 11, and all other entities at all levels could not make the equation between AA 11 and the WTC North Tower? And the answer is, again, simple: "Flight Level 290."
No other piece of information influenced the misunderstanding of events more that the fact the the last known altitude for AA 11 was twenty-nine thousand feet. That was confirmed information which stayed with the hunt for AA 11 the rest of the morning. We begin this discussion with Colin Scoggins.
Scoggins was on break when the first news of the hijacking of AA 11 spread through Boston Center. He went to the operations area but initially held back, not wanting to interfere with busy people at work. However, when he understood that AA 11 was being tracked, current altitude unknown, he jumped in immediately. As he told Commission staff when interviewed, he was the only person at Boston Center who knew that NEADS radars could read altitude on a primary only track. FAA en route radars could not.
He assumed that NEADS was tracking AA 11 and the resultant second communication between he and Tech Sergeant Watson was a cross communication. Scoggins was focused on determining altitude. Watson's concern was in obtaining data, a mode 3, so that NEADS could locate the plane. In the first communication, the basic facts were established. Here are those two conversations, one at about 8:39 EDT and the second at about 8:42 EDT. Note, especially, how Scoggins struggled to deal with the altitude issue while Watson focused on the identification and location issue.
0839 First Watson Scoggins Call
0842 Second Watson Scoggins Call
On the civilian side, flight level 290 was confirmed by other planes in the sky to include, ironically, UA 175 at 8:38 EDT.
083757 AA11 two planes one UA175 affirm 29K Tape 20R
At 8:43 EDT, ZNY told NY TRACON that the plane was confirmed at flight level two nine zero and that it looked like it was not going to Kennedy. 0843 ZNY to TRACON Not Going to Kennedy
And at 8:46 EDT, as AA 11 was impacting the WTC North Tower, ZNY, Pete Mulligan, told Dave West at Washington Center (ZDC), that the plane was confirmed at flight level two nine zero. 12 miles Northwest of the Kennedy VOR. 0846 ZNY to Herndon Flight Level 290
Finally, at 9:03 EDT, just as UA 175 was flying into the WTC South Tower, Mulligan had a brief conversation with the National Operations Manager (NOM), Ben Sliney. This is one of the few times that we actually hear Sliney's voice on the tapes of the morning. Sliney was returning a call in reference to military support. In the course of the conversation Sliney asked if Mulligan "had information that indicates American 11 is flying?" Mulligan, told Sliney "we are involved with something else," but did not elaborate and cut Sliney off without passing information about UA 175. 0903 Sliney call to Mulligan
Despite radar evidence to the contrary, the air traffic control system and the air defenders could not and did not make the equation that AA 11 had, in fact, struck the WTC North Tower. There was too much uncertainty because of the last known altitude, flight level 290. In subsequent actions the altitude was a given and showed up in the scramble orders for both the Otis fighters as an immediate response and later the Langley fighters when scrambled after the false report that AA 11 was still airborne.
084608 AA11 Panta Scramble Cape Tape
0924 Langley Scramble Norfolk Tower
The last know altitude issue was compounded by a deliberate action by Boston and New York Centers to facilitate the hunt for AA 11, the entry of a new track for AA 11, AA 11A.
American Airlines flight 11A
To review, I have long held the analytic position that the transponders were the primary terrorist weapon after the cockpits were successfully taken over. We do not know the plan but, retrospectively, we can make the observation that each of the transponders on the four hijacked aircraft were manipulated differently and each manipulation presented a different problem to each of the four en route centers in whose airspace the planes were hijacked.
The transponder on AA 11 was turned off before the turn south towards its target. The transponder code on UA 175 was changed concurrent with AA 11 exploding into the WTC North Tower. The transponder on AA 77 was turned off during the turn east towards its target. The transponder on UA 93 was turned off after the turn back towards its target.
The three en route centers faced with the problem of a trasnponder turned off made three different decisions, each with different consequences. Indianapolis Center determined that AA 77 was lost/down and reported that loss in rescue coordination channels. Cleveland Center knew that Washington DC was the target for UA 93 and entered a new flight plan in order to help Washington Center. New York Center inherited the AA 11 problem from Boston Center but not the control responsibility; that remained with Boston Center.
The Centers left the original flight plan for AA11 in the system and entered a new track for the plane, AA 11A. Systemically, AA 11 had become two airplanes.
(Note: I am still researching this aspect of the story.)
American 11 and American 11A
The fact of two distinct flights in the system was established in a conversation between James Kurz at ZNY and Newark Tower that began about 8:58 EDT. Kurz told a Newark caller asking for the type airplane, "American Eleven Alpha, they're callin' it." He further specified that "they just typed in a 'seven five' here 'cause we were just tracking it to LA." He then confirmed that the AA 11 flight plan, itself, confirmed that it was a "seven six seven." Not only were there two flights in the system, one was a 757 and one was a 767. 0859 Newark Call AA 11A discussed
A sidebar of interest. The Newark-ZNY conversation resumed just before 9:03 EDT when Kurz called Newark to look out the window. That call captured a real time reaction to the UA 175 impact. 0903 ZNY DC Oh my God
Back on Topic
AA 11/11A was lost shortly after 8:46 EDT on all radar scopes tracking or with the potential to track the plane. That universe included, NEADS, Boston Center, New York Center, Washington Center, New York TRACON, and towers at Kennedy, Newark, and La Guardia. All of those facilities except NEADS were in the air traffic control chain-of-command responsible to the FAA's Air Traffic Control System Command Center at Herndon, Virginia. NEADS, one of three CONUS air defense sectors under NORAD, was responsible for the air defense of that system.
However, all commercial fights with a flight plan were also followed via a non-time sensitive display system by non-air traffic control facilities, routinely. Those facilities included FAA Headquarters, Herndon Center, and regional FAA administrative headquarters, specifically Eastern Region and Great Lakes Region. All airlines also routinely followed their own commercial flights. In FAA, the system was referred to as TSD, traffic situation display, or TMS, traffic management system. At the airlines the system was referred to as ASD, aircraft situation display. Regardless of nomenclature, the system was the same for both FAA and the airlines.
In this next sequence of calls, all recorded at Operations Position 14 at Herndon Center, we will hear that Herndon Center was confident that AA 11 had struck the World Center and so told Washington Center and Cleveland Center. However, it is clear that Herndon Center was also following both AA 11 and AA 11A on TSD.
At 8:44 EDT, Herndon Center alerted a Washington Center traffic manager that AA 11 [11A] could be headed its way. Washington Center observed the flight on a TSD. 0844 Herndon call to ZDC re AA11 on TSD
At 8:50 EDT. American Airlines called Herndon Center to request that the number for AA 11 be changed in the ASD system because CNN had the capability to follow the flight. 0850 AA call to Herndon to change number on ASD
At 8:53 EDT, Herndon Center told both Washington Center and Cleveland Center that AA 11 was no longer in the air, that it had struck the WTC. That was Herndon with its air traffic control hat on passing air traffic control information. 0853 Herndon to ZDC and ZOB that AA 11 no longer in air
At 9:28 EDT, however, Herndon Center with its traffic management hat on called Cleveland Center to inquire if AA 11 was in its area because the TSD showed that to be the case. Note that the reference is to the original flight plan for AA 11 which was never taken out of the system. My recall in watching the TSD replay on the Commission staff's last visit to Herndon Center is that AA 11, notionally, "landed" at Los Angeles as the flight plan specified. 0928 Herndon call to Cleveland about AA 11 in area
Chaos and Confusion Manifested
We come full circle back to the attack described at the beginning of this article. All of the hard work of the dedicated men and women in the front lines, the "fox holes", that day, civilian and military, provided just one effective counter attack, not including the heroic actions of the passengers and remaining crew aboard UA 93. That was the unilateral action of the National Operations Manager, Ben Sliney to first order a nationwide ground stop and then order the grounding of all commercial aircraft.
The terrorist action on the morning of September 11, 2001 was an attack against the National Airspace System (NAS) Just two individuals working together had any chance at all to counterattack and then only against the southern axis of attack against the nation's capital. There was no chance in the North.
Those two individuals were Sliney, the National Operations Manager of the NAS and Colonel Robert Marr, commander of the Northeast Air Defense Sector, defender of the NAS in the Northeast. The two men and their predecessors had likely never met, were not aware of the others role and, certainly on 9/11, did not share a common operating picture of the battle as it unfolded.
Marr's troops were focused on working with the FAA's en route centers, as was clearly evidenced in the vignettes in exercise Vigilant Guardian in the week prior. As a result, the flow of critical FAA information came not from Sliney but from Colin Scoggins at Boston Center. And the galvanizing piece of information was the false report that American Airlines flight 11 was still airborne and headed for the nation's capital.
0911 0924 AA11 Stilll Airborne ZBW to NEADS
Sliney, for his part was subverted by the well intended but interfering actions of Eastern Region and, by extension FAA HQ. One final conversation recorded at Herndon Center puts in stark comparison the awareness of Herndon Center and the lack of awareness on the FAA tactical net, shared by the Regions and FAA Headquarters. The caller was FBI Boston, asking for an update. The story that was passed was so garbled that Herndon Center, in frustration, broke in and set the record straight. Herndon Center had it right. The time was about 9:35 EDT, just before the alarm was sounded that a fast-moving unknown [AA77] was moving toward the White House.
0934 FAA Update for FBI Boston
We began with Colin Scoggins insistent that NEADS could help locate AA 11 because its radars could read altitude from a radar return. NEADS did not need a transponder code return to determine altitude but they did need a code, or other specific data to locate the aircraft in the first place.
None of that would have helped for AA 77. There was one radar supporting NEADS which could not read altitude from a radar return. That radar was a older model at The Plains, Virginia. It was the radar tracking AA 77. Lacking a code, but with reasonably accurate location data, "six miles west of the White House," NEADS did find AA 77 and did establish an actionable track, B32, which in turn could be linked to the Langley fighters. The track faded immediately and was lost. AA 77 had slammed into the West side of the Pentagon.
The Langley fighters were scrambled not because of the approach of AA 77 but because of the false report that AA 11 was still airborne. Sometimes ghosts are useful.
Posted on October 17, 2012 Author Oredigger 61Categories AA11
Previous Previous post: 9-11: The Actual Story and the "official" story; clarified
Next Next post: 9-11: Chaos Theory; The Air Defense Response, Sensitive Dependence on Initial Conditions


text:
Biden, Sanders claim momentum heading into Super Tuesday
Gerald Herbert/AP
Democratic presidential candidate former Vice President Joe Biden, accompanied by his wife Jill Biden, speaks at a primary night election rally in Columbia, S.C., Saturday, Feb. 29, 2020. (AP Photo/Gerald Herbert)
COLUMBIA, S.C. (AP) — Joe Biden says he can "unite this country, the whole country" after scoring a comeback victory in South Carolina's Democratic primary.
The decisive win could force moderate rivals out of the race and blunt the rise of progressive leader Bernie Sanders.
Biden vowed Sunday he would improve his campaign operation- and even his own performance - as the race pushes toward Super Tuesday.
Sanders, though, said his fundraising haul points to the vibrancy of his campaign. Key rivals are showing few signs of exiting.
Billionaire Mike Bloomberg will be on the ballot for the first time Tuesday, and Elizabeth Warren's campaign has talked openly of a convention fight this summer.


This position is located in the Medical Supply Distribution (MSD) areas of the Logistics Service in a Veteran Affairs Health Care System (VA HCS) and supported catchment area. The primary purpose of the position is to ensure that supplies and materials are distributed to all areas serviced by Logistics.
Can push loaded carts of medical supplies (weighing up to 100 pounds).
Time-In-Grade Requirement: Applicants who are current Federal employees and have held a GS grade any time in the past 52 weeks must also meet time-in-grade requirements by the closing date of this announcement. For a GS-05 position you must have served 52 weeks at the GS-04. The grade may have been in any occupation, but must have been held in the Federal service. An SF-50 that shows your time-in-grade eligibility must be submitted with your application materials. Note:Time-In-Grade requirements also apply to former Federal employees applying for reinstatement as well as current employees applying for Veterans Employment Opportunities Act of 1998 (VEOA) appointment.
Competency 1 - Knowledge of supply distribution. Competency 2 - Able to communicate with customers on supply needs Competency 3 - Knowledge and able to evaluate stock needs. Competency 4 - Knowledge of stock rotations, expiration dates and supply deliver, and room requirements. Competency 5 - Knowledge of automated scanning system.
Physical Requirements:The work requires standing and walking during the entire workday and frequent bending and lifting of supply packages (occasionally weighing as much as 50 pounds or more). The employee regularly pushes loaded carts of medical supplies (weighting up to 100 pounds). The work is performed in various settings; office, warehouse, staging areas, and in other services and departments.
Veterans' Preference: When applying for Federal Jobs, eligible Veterans should claim preference for 5pt (TP), 10pt (CP/CPS/XP), or for Sole Survivor Preference (SSP) in the questionnaire. You must provide a legible copy of your DD214(s) which shows dates and character of service (honorable, general, etc.). If you are currently serving on active duty and expect to be released or discharged within 120 days you must submit documentation related to your active duty service which reflects the dates of service, character of service (honorable, general, etc.), and dates of impending separation. Additionally, disabled veterans and others eligible for 10-point preference (such as widows or mothers of eligible Veterans) must also submit an SF-15 "Application for 10 Point Veteran Preference" with required proof as stated on the form. Documentation is required to award preference.For more information on Veterans' Preference, please visit http://www.fedshirevets.gov/job/vetpref/index.aspx.
All applicants are encouraged to apply online.To apply for this position, you must complete the questionnaire and submit the documentation specified in the Required Documents section below. The complete application package must be submitted by 11:59 PM (ET) on 04/26/2019 to receive consideration. To preview the questionnaire click https://apply.usastaffing.gov/ViewQuestionnaire/10473328.
Click Submit My Answers to submit your application package. NOTE: It is your responsibility to ensure your responses and appropriate documentation is submitted prior to the closing date. To verify your application is complete, log into your USA JOBS account, https://my.usajobs.gov/Account/Login, select the Application Status link and then select the more information link for this position. The Application page will display the status of your application, the documentation received and processed, and any correspondence the agency has sent related to this application. Your uploaded documents may take several hours to clear the virus scan process. To return to an incomplete application, log into your USA JOBS account and click Update Application in the vacancy announcement. You must re-select your resume and/or other documents from your USA JOBS account or your application will be incomplete.
This job originated on www.usajobs.gov. For the full announcement and to apply, visit www.usajobs.gov/GetJob/ViewDetails/530572800. Only resumes submitted according to the instructions on the job announcement listed at www.usajobs.gov will be considered.


So plan was for an easy run, the sun was almost shining, it wasn't raining(!) so I thought I'd just pop round the village.
Couldn't resist taking a few photos as I had my iPod with me. We live in a beautiful part of England.
Next Next post: Oh dear, has it been that long?


In this famous person worksheet, students read a passage about Justin Timberlake and then complete a variety of in-class and homework activities to support comprehension, including partner interviews, spelling, cloze, synonym matches, and scrambled sentences.
In this BBC News good/bad headlines school report learning exercise, students read 48 possible report headlines. They place a tick mark next to good headlines, and put a cross next to bad headlines.
In this Christina Aguilera worksheet, learners read about the life of the performer, then complete a variety of comprehension activities. An answer key is included.
In this English instructional activity, students read "Microsoft Targets Apple iTunes," and then respond to 47 fill in the blank, 7 short answer, 20 matching, and 8 true or false questions about the selection.
Students research celebrity philanthropists. In this philanthropy lesson, students read an article about Andrew Carnegie and identify ways he was philanthropic. Students choose a celebrity philanthropist to research.


May we hold all mothers in our hearts on this day, beholding the infinite forms that mother will take to reach us, in order to remind us of how much we are loved. Though it may appear otherwise, she has never given up on you, and never will. In this way, mother is not a person, but is the activity of love itself.
Through the offering of her essence and her womb, she becomes a vessel through which life is made possible. And through her, the most outrageous, rare, heartbreaking, raw, tender, precious opportunity is given, to make the embodied human journey, in a world where love is alive.
To slow way down in their presence, to look them in the eye, to take a moment to listen to how they are making meaning of this crazy world, to become astonished at their unique brilliance, to hold them, to allow them to matter to you, to speak kind words to them, to allow them to be the miracle that they are, to care deeply as to how they are organizing their experience, to do whatever you can so that their utter majesty is reflected back to them in infinite ways. To offer them a womb of warmth, space, and love in which they can come to rest in what they are. Perhaps in this way we can all express our gratitude for this precious gift of life.
No matter what your relationship has been or is now with your mother in the physical world, a doorway is appearing – through which you can connect with her through an umbilical cord of pure light. For the bond with her is beyond time and space. In just one moment of aliveness and of presence, the heart of the mother and your little heart are one.
As the Tibetans believe, each being we encounter has at one time been our mother, and has shown us the most profound kindness, care, and compassion; willing to give her life so that we may come into being.
May all mother-beings everywhere receive an outpouring of blessings on this day. May their hearts and their bodies be bathed in love, and may they come to know directly, even for a moment, how precious they truly are.
This entry was posted in Spiritual Teachers and tagged Matt Licata on May 8, 2016 by Grace.


text:
Three Indian films at the 35th Durban International Film Festival
The long-running Durban International Film Festival is back and this year it's offering cinema lovers a host of must-see movies. From Kenyan crime thrillers and Ghanaian romantic comedies to insightful documentaries celebrating the achievements of Nelson Mandela or 20 years of democracy in South Africa, festival goers are spoiled for choice.
Overall, the 35th DIFF includes more than 200 theatrical screenings of local and international productions, including 40 feature-length films, 38 short films and more than 50 documentaries. This year it is also showcasing Ritesh Batra's Lunchbox and Anup Singh's Qissa, the two Indian films that have swept international film festivals over the past year. These two films will be among the three Indian films at the 35th edition of the Durban International Film Festival. Jayan K. Cherian's Papilio Buddha will be the third Indian film at the festival that has started from 17th July to culminate on Sunday 27th July. A total of around 69 feature films, 60 documentaries and 57 short films will be screened from all across the globe.
Qissa will be screened as part of a special package of films on Gender and Sexuality as it is a film that blurs the boundaries of gender and genre in its story of a girl who is brought up as a boy. The Lunchbox- a tale of an isolated housewife who tries to reignite her relationship with her husband through a friendship she forms with someone who receives her delicious meals - will be screened in World Cinema section. Also in the World Cinema section is Papilio Buddha, the story of a university-educated son of a Dalit activist who is politically apathetic until he receives bad treatment at the hands of the state. The film was screened at the Berlin International Film Festival early this year.


text:
Many of us, I suspect, have heard snippets of an interview that Pope Francis did for a series of Jesuit publications, including the USA magazine, America, where, among other things, he suggested that we might be wise to not always emphasize the moral issues around abortion, gay marriage, and contraception in our conversations. That's, of course, the phrase that most caught the attention of the media, but the whole interview is remarkable for its candor and includes a whole range of thoughts that help give us a sense of how Francis intends to color his papacy. Here are a few of his thoughts, in his own words:
· On why our pastoral focus needs to be on healing and not on reiterating certain moral concerns
"I see clearly that the thing the church needs most today is the ability to heal wounds and to warm the hearts of the faithful; it needs nearness, proximity. I see the church as a field hospital after battle. It is useless to ask an injured person if he has high cholesterol and about the levels of his blood sugars! You have to heal his wounds. Then we can talk about something else. …
During the return flight from Rio de Janeiro I said that if a homosexual person is of good will and is in search of God, I am no one to judge. By saying this, I said what the catechism says. Religion has the right to express its opinion in the service of the people, but God in creation has set us free: it is not possible to interfere spiritually in the life of a person. A person once asked me, in a provocative manner, if I approved of homosexuality. I replied with another question: 'Tell me: when God looks at a gay person, does he endorse the existence of this person with love, or reject and condemn this person?' … I also consider the situation of a woman with a failed marriage in her past and who also had an abortion. Then this woman remarries, and is now happy and has five children. That abortion is her past weighs heavily on her conscience and she sincerely regrets it. She would like to move forward in her Christian life. What is the confessor to do? We cannot insist only on issues related to abortion, gay marriage and the use of contraceptive methods. This is not possible. I have not spoken much about these things, and I have been reprimanded for that. But when we speak about these issues, we have to talk about them in context. The teaching of the church, for that matter, is clear and I am a son of the church, but it is not necessary to talk about these issues all the time."
· On women in the church
"Women are asking deep questions that must be addressed. … We must therefore investigate further the role of women in the church. … The challenge today is this: to think about the specific place of women also in those places where the authority of the church is exercised for various areas of the church."
· On what it means to think with the church
"All the faithful, considered as a whole, are infallible in matters of belief, and the people display this infallibility in believing, through a supernatural sense of the faith of all the people walking together. This is what I understand today as 'thinking with the church'. … We should not even think, therefore, that 'thinking with the church' means only thinking with the hierarchy of the church."
· On manifesting a wide Catholicity
"This church with which we should be thinking is the home of all, not a small chapel that can hold only a small group of selected people. We must not reduce the bosom of the universal church to a nest protecting mediocrity.
· On Benedict's decision to allow a wider use of the Tridentine Mass
"I think the decision was prudent and motivated by the desire to help people who have this sensitivity. What is worrying, though, is the risk of the ideologization of the Vetus Ordo [the decree authorizing a limited use of the Latin mass], to its exploitation."
· On the temptation to defensively circle the wagons in face of a growing secularity
"If the Christian is a restorationist, a legalist, if he wants everything clear and safe, then he will find nothing. Tradition and memory of the past must help us to have the courage to open up new areas to God. Those who today always look for disciplinarian solutions, those who long for an exaggerated doctrinal 'security', those who stubbornly try to recover a past that no longer exists – they have a static and inner-directed view of things. In this way faith becomes an ideology among other ideologies. … It is amazing to see the denunciations of lack of orthodoxy that come to Rome."
Perhaps it's best not to add much commentary to this. His words speak for themselves and, obviously, for him.


We are pleased to announce that as of Monday, April 23, 2018, our office has begun receiving receipt notices for the H-1B's we have submitted for the FY 2019 cap. Typically, we will receive additional receipt notices for at least the next few weeks.
If you keep a close eye on your bank account, when you see the filing fee check amount of either $1,710 or $2,460 cashed, this means that your case was selected for the lottery. If your bank offers digital scans of your cashed checks, you can even look at the back of the check to see a stamp with your future receipt notice number on it. By doing this, you will know one to two weeks before receiving the receipt notice that you have been selected for the lottery.
If for some reason it is difficult to ascertain whether a check is been cashed in your employer's account there is one additional trick available to F-1/OPT students. Once a case is selected for the lottery, the SEVIS system is updated with the ID number and receipt number of the student who was selected. Oftentimes you can contact your Designated School Official for an update on the SEVIS system and get a faster update on your lottery selection.
For both methods above, the check cashing and the SEVIS update appear to happen on the same day in nearly all cases so one method is no faster than the other.
Hopefully, one of the methods above can give you a sneak preview to your lottery selection. Fok Immigration Law wishes you the best of luck during the rest of the lottery selection process!


text:
package hudson.model;

import hudson.model.Fingerprint.RangeSet;
import java.io.File;

import jenkins.fingerprints.FileFingerprintStorage;

import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;

/**
 * @author Kohsuke Kawaguchi
 */
public class FingerprintTest {

    @Rule public TemporaryFolder tmp = new TemporaryFolder();

    @Test public void rangeSet() {
        RangeSet rs = new RangeSet();
        assertFalse(rs.includes(0));
        assertFalse(rs.includes(3));
        assertFalse(rs.includes(5));

        rs.add(3);
        assertFalse(rs.includes(2));
        assertTrue(rs.includes(3));
        assertFalse(rs.includes(4));
        assertEquals("[3,4)",rs.toString());

        rs.add(4);
        assertFalse(rs.includes(2));
        assertTrue(rs.includes(3));
        assertTrue(rs.includes(4));
        assertFalse(rs.includes(5));
        assertEquals("[3,5)",rs.toString());

        rs.add(10);
        assertEquals("[3,5),[10,11)",rs.toString());

        rs.add(9);
        assertEquals("[3,5),[9,11)",rs.toString());

        rs.add(6);
        assertEquals("[3,5),[6,7),[9,11)",rs.toString());

        rs.add(5);
        assertEquals("[3,7),[9,11)",rs.toString());
    }

    @Test public void merge() {
        RangeSet x = new RangeSet();
        x.add(1);
        x.add(2);
        x.add(3);
        x.add(5);
        x.add(6);
        assertEquals("[1,4),[5,7)",x.toString());

        RangeSet y = new RangeSet();
        y.add(3);
        y.add(4);
        y.add(5);
        assertEquals("[3,6)",y.toString());

        x.add(y);
        assertEquals("[1,7)",x.toString());
    }

    @Test public void merge2() {
        RangeSet x = new RangeSet();
        x.add(1);
        x.add(2);
        x.add(5);
        x.add(6);
        assertEquals("[1,3),[5,7)",x.toString());

        RangeSet y = new RangeSet();
        y.add(3);
        y.add(4);
        assertEquals("[3,5)",y.toString());

        x.add(y);
        assertEquals("[1,7)",x.toString());
    }

    @Test public void merge3() {
        RangeSet x = new RangeSet();
        x.add(1);
        x.add(5);
        assertEquals("[1,2),[5,6)",x.toString());

        RangeSet y = new RangeSet();
        y.add(3);
        y.add(5);
        y.add(7);
        assertEquals("[3,4),[5,6),[7,8)",y.toString());

        x.add(y);
        assertEquals("[1,2),[3,4),[5,6),[7,8)",x.toString());
    }

    @Test
    public void retainAll1() {
        RangeSet x = new RangeSet();
        RangeSet y = new RangeSet();

        x.addAll(1,2,3, 10,11,       20);
        y.addAll(  2,      11,12, 19,20,21);

        assertTrue(x.retainAll(y));

        RangeSet z = new RangeSet();
        z.addAll(2,11,20);

        assertEquals(x,z);
    }

    @Test
    public void retainAll2() {
        RangeSet x = new RangeSet();
        RangeSet y = new RangeSet();

        x.addAll(1,2,3,4,5,6,7,8,9,10,      13,14,15,16,17,18,19,20);
        y.addAll(  2,3,  5,6,    9,10,11,12,13,   15,16,   18,19);

        assertTrue(x.retainAll(y));

        RangeSet z = new RangeSet();
        z.addAll(2,3,5,6,9,10,13,15,16,18,19);

        assertEquals(x,z);
    }

    @Test
    public void retainAll3() {
        RangeSet x = new RangeSet();
        RangeSet y = new RangeSet();

        x.addAll(1,2,3,4,5);

        assertTrue(x.retainAll(y));
        assertTrue(x.isEmpty());
    }

    @Test
    public void removeAll1() {
        RangeSet x = new RangeSet();
        RangeSet y = new RangeSet();

        x.addAll(1,2,3, 10,11,       20);
        y.addAll(  2,      11,12, 19,20,21);

        assertTrue(x.removeAll(y));

        RangeSet z = new RangeSet();
        z.addAll(1,3,10);

        assertEquals(x,z);
    }

    @Test
    public void removeAll2() {
        RangeSet x = new RangeSet();
        RangeSet y = new RangeSet();

        x.addAll(1,2,3,4,5,6,7,8,9,10,      13,14,15,16,17,18,19,20);
        y.addAll(  2,3,  5,6,    9,10,11,12,13,   15,16,   18,19);

        assertTrue(x.removeAll(y));

        RangeSet z = new RangeSet();
        z.addAll(1,4,7,8,14,17,20);

        assertEquals(x,z);
    }

    @Test
    public void removeAll3() {
        RangeSet x = new RangeSet();
        RangeSet y = new RangeSet();

        x.addAll(1,2,3,4,5);

        assertFalse(x.removeAll(y));
    }

    @Test public void deserialize() throws Exception {
        assertEquals("Fingerprint["
                + "original=stapler/org.kohsuke.stapler:stapler-jelly #123,"
                + "hash=069484c9e963cc615c51278327da8eab,"
                + "fileName=org.kohsuke.stapler:stapler-jelly-1.207.jar,"
                + "timestamp=2013-05-21 19:20:03.534 UTC,"
                + "usages={stuff=[304,306),[307,324),[328,330), stuff/test:stuff=[2,67),[72,77),[84,223),[228,229),[232,268)},"
                + "facets=[]]",
                FileFingerprintStorage.load(new File(FingerprintTest.class.getResource("fingerprint.xml").toURI())).toString());
    }

    @Test public void loadFingerprintWithoutUsages() throws Exception {
        Fingerprint fp = FileFingerprintStorage.load(new File(FingerprintTest.class.getResource("fingerprintWithoutUsages.xml").toURI()));
        assertNotNull(fp);
        assertEquals("test:jenkinsfile-example-1.0-SNAPSHOT.jar", fp.getFileName());
        assertNotNull(fp.getUsages());
    }

    @Test public void fromString() throws Exception {
        //
        // Single
        //
        // Numbers
        assertThat(RangeSet.fromString("1", true).toString(), equalTo("[1,2)"));
        assertThat(RangeSet.fromString("1", false).toString(), equalTo("[1,2)"));
        assertThat(RangeSet.fromString("+1", true).toString(), equalTo("[1,2)"));
        assertThat(RangeSet.fromString("+1", false).toString(), equalTo("[1,2)"));
        // Zero
        assertThat(RangeSet.fromString("0", true).toString(), equalTo("[0,1)"));
        assertThat(RangeSet.fromString("0", false).toString(), equalTo("[0,1)"));
        assertThat(RangeSet.fromString("+0", true).toString(), equalTo("[0,1)"));
        assertThat(RangeSet.fromString("+0", false).toString(), equalTo("[0,1)"));
        // Negative number
        assertThat(RangeSet.fromString("-1", true).toString(), equalTo(""));
        assertThat(expectIAE("-1", "Unable to parse '-1', expected string with a range M-N"), is(true));
        // Exceeded int number
        assertThat(RangeSet.fromString("2147483648", true).toString(), equalTo(""));
        assertThat(expectIAE("2147483648", "Unable to parse '2147483648', expected number"), is(true));
        // Invalid number
        assertThat(RangeSet.fromString("1a", true).toString(), equalTo(""));
        assertThat(expectIAE("1a", "Unable to parse '1a', expected number"), is(true));
        assertThat(RangeSet.fromString("aa", true).toString(), equalTo(""));
        assertThat(expectIAE("aa", "Unable to parse 'aa', expected number"), is(true));
        //Empty
        assertThat(RangeSet.fromString("", true).toString(), equalTo(""));
        assertThat(RangeSet.fromString("", false).toString(), equalTo(""));
        //Space
        assertThat(RangeSet.fromString(" ", true).toString(), equalTo(""));
        assertThat(expectIAE(" ", "Unable to parse ' ', expected number"), is(true));
        // Comma
        assertThat(RangeSet.fromString(",", true).toString(), equalTo(""));
        assertThat(RangeSet.fromString(",", false).toString(), equalTo(""));
        // Hyphen
        assertThat(RangeSet.fromString("-", true).toString(), equalTo(""));
        assertThat(expectIAE("-", "Unable to parse '-', expected string with a range M-N"), is(true));

        //
        // Multiple numbers
        //
        // Numbers
        assertThat(RangeSet.fromString("1,2", true).toString(), equalTo("[1,2),[2,3)"));
        assertThat(RangeSet.fromString("1,2", false).toString(), equalTo("[1,2),[2,3)"));
        assertThat(RangeSet.fromString("1,+2,5", true).toString(), equalTo("[1,2),[2,3),[5,6)"));
        assertThat(RangeSet.fromString("1,+2,5", false).toString(), equalTo("[1,2),[2,3),[5,6)"));
        assertThat(RangeSet.fromString("1,1", true).toString(), equalTo("[1,2),[1,2)"));
        assertThat(RangeSet.fromString("1,1", false).toString(), equalTo("[1,2),[1,2)"));
        // Zero
        assertThat(RangeSet.fromString("0,1,2", true).toString(), equalTo("[0,1),[1,2),[2,3)"));
        assertThat(RangeSet.fromString("0,1,2", false).toString(), equalTo("[0,1),[1,2),[2,3)"));
        assertThat(RangeSet.fromString("1,0,2", true).toString(), equalTo("[1,2),[0,1),[2,3)"));
        assertThat(RangeSet.fromString("1,0,2", false).toString(), equalTo("[1,2),[0,1),[2,3)"));
        assertThat(RangeSet.fromString("1,2,0", true).toString(), equalTo("[1,2),[2,3),[0,1)"));
        assertThat(RangeSet.fromString("1,2,0", false).toString(), equalTo("[1,2),[2,3),[0,1)"));
        // Negative number
        assertThat(RangeSet.fromString("-1,2,3", true).toString(), equalTo("[2,3),[3,4)"));
        assertThat(expectIAE("-1,2,3", "Unable to parse '-1,2,3', expected string with a range M-N"), is(true));
        assertThat(RangeSet.fromString("1,-2,3", true).toString(), equalTo("[1,2),[3,4)"));
        assertThat(expectIAE("1,-2,3", "Unable to parse '1,-2,3', expected string with a range M-N"), is(true));
        assertThat(RangeSet.fromString("1,2,-3", true).toString(), equalTo("[1,2),[2,3)"));
        assertThat(expectIAE("1,2,-3", "Unable to parse '1,2,-3', expected string with a range M-N"), is(true));
        // Exceeded int number
        assertThat(RangeSet.fromString("2147483648,2,3", true).toString(), equalTo("[2,3),[3,4)"));
        assertThat(expectIAE("2147483648,1,2", "Unable to parse '2147483648,1,2', expected number"), is(true));
        assertThat(RangeSet.fromString("1,2147483648,3", true).toString(), equalTo("[1,2),[3,4)"));
        assertThat(expectIAE("1,2147483648,2", "Unable to parse '1,2147483648,2', expected number"), is(true));
        assertThat(RangeSet.fromString("1,2,2147483648", true).toString(), equalTo("[1,2),[2,3)"));
        assertThat(expectIAE("1,2,2147483648", "Unable to parse '1,2,2147483648', expected number"), is(true));
        // Invalid number
        assertThat(RangeSet.fromString("1a,2,3", true).toString(), equalTo("[2,3),[3,4)"));
        assertThat(expectIAE("1a,1,2", "Unable to parse '1a,1,2', expected number"), is(true));
        assertThat(RangeSet.fromString("1,2a,3", true).toString(), equalTo("[1,2),[3,4)"));
        assertThat(expectIAE("1,2a,2", "Unable to parse '1,2a,2', expected number"), is(true));
        assertThat(RangeSet.fromString("1,2,3a", true).toString(), equalTo("[1,2),[2,3)"));
        assertThat(expectIAE("1,2,3a", "Unable to parse '1,2,3a', expected number"), is(true));
        assertThat(RangeSet.fromString("aa,2,3", true).toString(), equalTo("[2,3),[3,4)"));
        assertThat(expectIAE("aa,1,2", "Unable to parse 'aa,1,2', expected number"), is(true));
        assertThat(RangeSet.fromString("1,aa,3", true).toString(), equalTo("[1,2),[3,4)"));
        assertThat(expectIAE("1,aa,2", "Unable to parse '1,aa,2', expected number"), is(true));
        assertThat(RangeSet.fromString("1,2,aa", true).toString(), equalTo("[1,2),[2,3)"));
        assertThat(expectIAE("1,2,aa", "Unable to parse '1,2,aa', expected number"), is(true));
        //Empty
        assertThat(RangeSet.fromString(",1,2", true).toString(), equalTo(""));
        assertThat(expectIAE(",1,2", "Unable to parse ',1,2', expected correct notation M,N or M-N"), is(true));
        assertThat(RangeSet.fromString("1,,2", true).toString(), equalTo(""));
        assertThat(expectIAE("1,,2", "Unable to parse '1,,2', expected correct notation M,N or M-N"), is(true));
        assertThat(RangeSet.fromString("1,2,", true).toString(), equalTo(""));
        assertThat(expectIAE("1,2,", "Unable to parse '1,2,', expected correct notation M,N or M-N"), is(true));
        // Space
        assertThat(RangeSet.fromString(" ,1,2", true).toString(), equalTo("[1,2),[2,3)"));
        assertThat(expectIAE(" ,1,2", "Unable to parse ' ,1,2', expected number"), is(true));
        assertThat(RangeSet.fromString("1, ,2", true).toString(), equalTo("[1,2),[2,3)"));
        assertThat(expectIAE("1, ,2", "Unable to parse '1, ,2', expected number"), is(true));
        assertThat(RangeSet.fromString("1,2, ", true).toString(), equalTo("[1,2),[2,3)"));
        assertThat(expectIAE("1,2, ", "Unable to parse '1,2, ', expected number"), is(true));
        // Comma
        assertThat(RangeSet.fromString(",,1,2", true).toString(), equalTo(""));
        assertThat(expectIAE(",,1,2", "Unable to parse ',,1,2', expected correct notation M,N or M-N"), is(true));
        assertThat(RangeSet.fromString("1,,,2", true).toString(), equalTo(""));
        assertThat(expectIAE("1,,,2", "Unable to parse '1,,,2', expected correct notation M,N or M-N"), is(true));
        assertThat(RangeSet.fromString("1,2,,", true).toString(), equalTo(""));
        assertThat(expectIAE("1,2,,", "Unable to parse '1,2,,', expected correct notation M,N or M-N"), is(true));
        // Hyphen
        assertThat(RangeSet.fromString("-,1,2", true).toString(), equalTo("[1,2),[2,3)"));
        assertThat(expectIAE("-,1,2", "Unable to parse '-,1,2', expected string with a range M-N"), is(true));
        assertThat(RangeSet.fromString("1,-,2", true).toString(), equalTo("[1,2),[2,3)"));
        assertThat(expectIAE("1,-,2", "Unable to parse '1,-,2', expected string with a range M-N"), is(true));
        assertThat(RangeSet.fromString("1,2,-", true).toString(), equalTo("[1,2),[2,3)"));
        assertThat(expectIAE("1,2,-", "Unable to parse '1,2,-', expected string with a range M-N"), is(true));

        //
        // Single range
        //
        // Numbers
        assertThat(RangeSet.fromString("1-2", true).toString(), equalTo("[1,3)"));
        assertThat(RangeSet.fromString("1-2", false).toString(), equalTo("[1,3)"));
        assertThat(RangeSet.fromString("+1-+2", true).toString(), equalTo("[1,3)"));
        assertThat(RangeSet.fromString("+1-+2", false).toString(), equalTo("[1,3)"));
        assertThat(RangeSet.fromString("1-1", true).toString(), equalTo("[1,2)"));
        assertThat(RangeSet.fromString("1-1", false).toString(), equalTo("[1,2)"));
        assertThat(RangeSet.fromString("+1-+1", true).toString(), equalTo("[1,2)"));
        assertThat(RangeSet.fromString("+1-+1", false).toString(), equalTo("[1,2)"));
        assertThat(RangeSet.fromString("1-4", true).toString(), equalTo("[1,5)"));
        assertThat(RangeSet.fromString("1-4", false).toString(), equalTo("[1,5)"));
        assertThat(RangeSet.fromString("+1-+4", true).toString(), equalTo("[1,5)"));
        assertThat(RangeSet.fromString("+1-+4", false).toString(), equalTo("[1,5)"));
        //Zero
        assertThat(RangeSet.fromString("0-1", true).toString(), equalTo("[0,2)"));
        assertThat(RangeSet.fromString("0-1", false).toString(), equalTo("[0,2)"));
        assertThat(RangeSet.fromString("+0-+1", true).toString(), equalTo("[0,2)"));
        assertThat(RangeSet.fromString("+0-+1", false).toString(), equalTo("[0,2)"));
        assertThat(RangeSet.fromString("0-2", true).toString(), equalTo("[0,3)"));
        assertThat(RangeSet.fromString("0-2", false).toString(), equalTo("[0,3)"));
        assertThat(RangeSet.fromString("+0-+2", true).toString(), equalTo("[0,3)"));
        assertThat(RangeSet.fromString("+0-+2", false).toString(), equalTo("[0,3)"));
        assertThat(RangeSet.fromString("0--1", true).toString(), equalTo(""));
        assertThat(expectIAE("0--1", "Unable to parse '0--1', expected correct notation M,N or M-N"), is(true));
        assertThat(RangeSet.fromString("+0--1", true).toString(), equalTo(""));
        assertThat(expectIAE("+0--1", "Unable to parse '+0--1', expected correct notation M,N or M-N"), is(true));
        assertThat(RangeSet.fromString("0--2", true).toString(), equalTo(""));
        assertThat(expectIAE("0--2", "Unable to parse '0--2', expected correct notation M,N or M-N"), is(true));
        assertThat(RangeSet.fromString("+0--2", true).toString(), equalTo(""));
        assertThat(expectIAE("+0--2", "Unable to parse '+0--2', expected correct notation M,N or M-N"), is(true));
        assertThat(RangeSet.fromString("1-0", true).toString(), equalTo(""));
        assertThat(expectIAE("1-0", "Unable to parse '1-0', expected string with a range M-N where M<N"), is(true));
        assertThat(RangeSet.fromString("+1-+0", true).toString(), equalTo(""));
        assertThat(expectIAE("+1-+0", "Unable to parse '+1-+0', expected string with a range M-N where M<N"), is(true));
        assertThat(RangeSet.fromString("2-0", true).toString(), equalTo(""));
        assertThat(expectIAE("2-0", "Unable to parse '2-0', expected string with a range M-N where M<N"), is(true));
        assertThat(RangeSet.fromString("+2-+0", true).toString(), equalTo(""));
        assertThat(expectIAE("+2-+0", "Unable to parse '+2-+0', expected string with a range M-N where M<N"), is(true));
        assertThat(RangeSet.fromString("-1-0", true).toString(), equalTo(""));
        assertThat(expectIAE("-1-0", "Unable to parse '-1-0', expected correct notation M,N or M-N"), is(true));
        assertThat(RangeSet.fromString("-1-+0", true).toString(), equalTo(""));
        assertThat(expectIAE("-1-+0", "Unable to parse '-1-+0', expected correct notation M,N or M-N"), is(true));
        assertThat(RangeSet.fromString("-2-0", true).toString(), equalTo(""));
        assertThat(expectIAE("-2-0", "Unable to parse '-2-0', expected correct notation M,N or M-N"), is(true));
        assertThat(RangeSet.fromString("-2-+0", true).toString(), equalTo(""));
        assertThat(expectIAE("-2-+0", "Unable to parse '-2-+0', expected correct notation M,N or M-N"), is(true));
        assertThat(RangeSet.fromString("0-0", true).toString(), equalTo("[0,1)"));
        assertThat(RangeSet.fromString("0-0", false).toString(), equalTo("[0,1)"));
        assertThat(RangeSet.fromString("+0-+0", true).toString(), equalTo("[0,1)"));
        assertThat(RangeSet.fromString("+0-+0", false).toString(), equalTo("[0,1)"));
        // Negative number
        assertThat(RangeSet.fromString("-1-1", true).toString(), equalTo(""));
        assertThat(expectIAE("-1-1", "Unable to parse '-1-1', expected correct notation M,N or M-N"), is(true));
        assertThat(RangeSet.fromString("-1-+1", true).toString(), equalTo(""));
        assertThat(expectIAE("-1-+1", "Unable to parse '-1-+1', expected correct notation M,N or M-N"), is(true));
        assertThat(RangeSet.fromString("-1-2", true).toString(), equalTo(""));
        assertThat(expectIAE("-1-2", "Unable to parse '-1-2', expected correct notation M,N or M-N"), is(true));
        assertThat(RangeSet.fromString("-1-+2", true).toString(), equalTo(""));
        assertThat(expectIAE("-1-+2", "Unable to parse '-1-+2', expected correct notation M,N or M-N"), is(true));
        assertThat(RangeSet.fromString("1--1", true).toString(), equalTo(""));
        assertThat(expectIAE("1--1", "Unable to parse '1--1', expected correct notation M,N or M-N"), is(true));
        assertThat(RangeSet.fromString("+1--1", true).toString(), equalTo(""));
        assertThat(expectIAE("+1--1", "Unable to parse '+1--1', expected correct notation M,N or M-N"), is(true));
        assertThat(RangeSet.fromString("1--2", true).toString(), equalTo(""));
        assertThat(expectIAE("1--2", "Unable to parse '1--2', expected correct notation M,N or M-N"), is(true));
        assertThat(RangeSet.fromString("+1--2", true).toString(), equalTo(""));
        assertThat(expectIAE("+1--2", "Unable to parse '+1--2', expected correct notation M,N or M-N"), is(true));
        assertThat(RangeSet.fromString("-1--1", true).toString(), equalTo(""));
        assertThat(expectIAE("-1--1", "Unable to parse '-1--1', expected correct notation M,N or M-N"), is(true));
        assertThat(RangeSet.fromString("-2--1", true).toString(), equalTo(""));
        assertThat(expectIAE("-2--1", "Unable to parse '-2--1', expected correct notation M,N or M-N"), is(true));
        // Exceeded int number
        assertThat(RangeSet.fromString("0-2147483648", true).toString(), equalTo(""));
        assertThat(expectIAE("0-2147483648", "Unable to parse '0-2147483648', expected number"), is(true));
        assertThat(RangeSet.fromString("2147483648-0", true).toString(), equalTo(""));
        assertThat(expectIAE("2147483648-0", "Unable to parse '2147483648-0', expected number"), is(true));
        assertThat(RangeSet.fromString("2147483648-2147483648", true).toString(), equalTo(""));
        assertThat(expectIAE("2147483648-2147483648", "Unable to parse '2147483648-2147483648', expected number"), is(true));
        // Invalid number
        assertThat(RangeSet.fromString("1-2a", true).toString(), equalTo(""));
        assertThat(expectIAE("1-2a", "Unable to parse '1-2a', expected number"), is(true));
        assertThat(RangeSet.fromString("2a-2", true).toString(), equalTo(""));
        assertThat(expectIAE("2a-2", "Unable to parse '2a-2', expected number"), is(true));
        assertThat(RangeSet.fromString("2a-2a", true).toString(), equalTo(""));
        assertThat(expectIAE("2a-2a", "Unable to parse '2a-2a', expected number"), is(true));
        assertThat(RangeSet.fromString("aa-2", true).toString(), equalTo(""));
        assertThat(expectIAE("aa-2", "Unable to parse 'aa-2', expected number"), is(true));
        assertThat(RangeSet.fromString("1-aa", true).toString(), equalTo(""));
        assertThat(expectIAE("1-aa", "Unable to parse '1-aa', expected number"), is(true));
        assertThat(RangeSet.fromString("aa-aa", true).toString(), equalTo(""));
        assertThat(expectIAE("aa-aa", "Unable to parse 'aa-aa', expected number"), is(true));
        // Empty
        assertThat(RangeSet.fromString("-1", true).toString(), equalTo(""));
        assertThat(expectIAE("-1", "Unable to parse '-1', expected string with a range M-N"), is(true));
        assertThat(RangeSet.fromString("1-", true).toString(), equalTo(""));
        assertThat(expectIAE("1-", "Unable to parse '1-', expected string with a range M-N"), is(true));
        assertThat(RangeSet.fromString("-", true).toString(), equalTo(""));
        assertThat(expectIAE("-", "Unable to parse '-', expected string with a range M-N"), is(true));
        // Space
        assertThat(RangeSet.fromString(" -1", true).toString(), equalTo(""));
        assertThat(expectIAE(" -1", "Unable to parse ' -1', expected string with a range M-N"), is(true));
        assertThat(RangeSet.fromString("1- ", true).toString(), equalTo(""));
        assertThat(expectIAE("1- ", "Unable to parse '1- ', expected string with a range M-N"), is(true));
        assertThat(RangeSet.fromString(" - ", true).toString(), equalTo(""));
        assertThat(expectIAE(" - ", "Unable to parse ' - ', expected string with a range M-N"), is(true));
        // Comma
        assertThat(RangeSet.fromString(",-1", true).toString(), equalTo(""));
        assertThat(expectIAE(",-1", "Unable to parse ',-1', expected string with a range M-N"), is(true));
        assertThat(RangeSet.fromString("1-,", true).toString(), equalTo(""));
        assertThat(expectIAE("1-,", "Unable to parse '1-,', expected string with a range M-N"), is(true));
        assertThat(RangeSet.fromString(",-,", true).toString(), equalTo(""));
        assertThat(expectIAE(",-,", "Unable to parse ',-,', expected string with a range M-N"), is(true));
        // Hyphen
        assertThat(RangeSet.fromString("--1", true).toString(), equalTo(""));
        assertThat(expectIAE("--1", "Unable to parse '--1', expected correct notation M,N or M-N"), is(true));
        assertThat(RangeSet.fromString("1--", true).toString(), equalTo(""));
        assertThat(expectIAE("1--", "Unable to parse '1--', expected correct notation M,N or M-N"), is(true));
        assertThat(RangeSet.fromString("---", true).toString(), equalTo(""));
        assertThat(expectIAE("---", "Unable to parse '---', expected correct notation M,N or M-N"), is(true));
        // Inverse range
        assertThat(RangeSet.fromString("2-1", true).toString(), equalTo(""));
        assertThat(expectIAE("2-1", "Unable to parse '2-1', expected string with a range M-N where M<N"), is(true));
        assertThat(RangeSet.fromString("10-1", true).toString(), equalTo(""));
        assertThat(expectIAE("10-1", "Unable to parse '10-1', expected string with a range M-N where M<N"), is(true));
        assertThat(RangeSet.fromString("-1--2", true).toString(), equalTo(""));
        assertThat(expectIAE("-1--2", "Unable to parse '-1--2', expected correct notation M,N or M-N"), is(true));
        // Invalid range
        assertThat(RangeSet.fromString("1-3-", true).toString(), equalTo(""));
        assertThat(expectIAE("1-3-", "Unable to parse '1-3-', expected correct notation M,N or M-N"), is(true));

        //
        // Multiple ranges
        //
        assertThat(RangeSet.fromString("1-3,3-5", true).toString(), equalTo("[1,4),[3,6)"));
        assertThat(RangeSet.fromString("1-3,4-6", true).toString(), equalTo("[1,4),[4,7)"));
        assertThat(RangeSet.fromString("1-3,5-7", true).toString(), equalTo("[1,4),[5,8)"));
        assertThat(RangeSet.fromString("1-3,2-3", true).toString(), equalTo("[1,4),[2,4)"));
        assertThat(RangeSet.fromString("1-5,2-3", true).toString(), equalTo("[1,6),[2,4)"));
    }
    private boolean expectIAE(final String expr, final String msg) {
        try {
            RangeSet.fromString(expr, false);
        } catch (Throwable e) {
            if (e instanceof IllegalArgumentException) {
                if (e.getMessage().isEmpty()) {
                    return msg.isEmpty();
                }
                else {
                    return msg.isEmpty() ? false : e.getMessage().contains(msg);
                }
            }
        }
        // Exception wasn't throws or thrown Exception wasn't an instance of IllegalArgumentException
        fail("Should never be here");
        return false;
    }
}

redpajama_set_name: RedPajamaGithub


Being an Environmental Health Officer is an extremely varied job, with challenges both personal and professional, as no 2 days are ever the same. As an Environmental Health Officer (EHO) you will go out and about - you'll meet people, you'll listen, you'll offer support and advice, you'll negotiate and you'll take action.
A career in the environmental health field involves anything and everything that affects public health whether at a local, regional or national level. You will use your specialist skills to develop, co-ordinate and implement public health policies designed to ensure that everyone has the same chance of a better quality of life in a healthier society.
Good communication skills are essential. As an EHO you will need to be able to listen, reason, persuade and influence. You have to be flexible and be equally comfortable working on your own or as part of a team. You must have the right personality to handle challenging situations.
To become qualified as an EHO in the UK it is necessary to be accepted on a course accredited by the Chartered Institute of Environmental Health at a university or college.
Entry requirements for school leavers include science A levels or an appropriate GNVQ or an equivalent BTEC qualification. All universities and colleges offering an accredited course have more flexible requirements for mature students. You should contact the individual university for further details.
The undergraduate programme (BSc Hons) requires an entrant to have GCSE passes at grade C or better in English language, mathematics, biology, chemistry and physics and at least 160 points at AS and A2 level, with a science subject at A2 or 200 points at AS and A2 level without a science subject.
Alternatively, applicants should have a BTEC national certificate or diploma in an appropriate science or technology with at least 5 merit passes in subjects at N level or above, or a BTEC higher national certificate or diploma in an appropriate science or technology subject, or qualifications and experience considered to be the equivalent of the above after due consideration by the admitting university. Exceptional entrants not qualified under the above may be allowed with prior approval of the CIEH.
Becoming qualified as an EHO involves both academic study and practical training. This is normally a sandwich course which integrates theoretical academic training with practical training so that each can build on the other. It is important that the course enrolled on is accredited by the CIEH. If it is not, it will not lead to a qualification as an EHO.
For more information please see the related links on the right.


The hypopharynx is the lower portion of the pharynx. It is also known as the laryngopharynx.
There are three pharyngeal recesses: Food boluses can lodge in these recesses.
The vallecula is the space or depression between the base of the tongue and the epiglottis.
The two pyriform sinuses are located in the pharynx, beside the larynx. They are formed by the shape of muscle attachments to the pharyngeal walls.
The superior, middle, and inferior pharyngeal constrictor muscles make up the external circular layer of the pharynx.
The stylopharyngus m. and the salpingopharyngus m. make up the internal longitudinal layer of the pharynx.
The latest research on swallowing suggests that the action of the pharyngeal constrictor muscles is not the most critical factor in the movement of food down the pharynx. It seems that the plunger action of the tongue, or the tongue driving force, plays a major role in this process.
The cricopharyngus m. or pharyngeal-esophageal (P.E) segment separates the pharynx from the esophagus. At the end of the pharyngeal stage of the swallow, it must relax to allow the bolus to enter the esophagus. (It is normally closed to prevent the reflux of food and to keep air out of the digestive system.) If the P.E. segment does not relax, food will build up in the pharynx and eventually spill over the top of the larynx into the airway. The cricopharyngus is innervated by the vagus (CN. X).


text:
Palestinian Confusion?
An Israeli newspaper has reported that Palestinian Authority President, Mahmoud Abbas, has said that he is considering dismantling the Palestinian Authority. This was the body that was set up under the Oslo Accords to govern the Palestinians and their affairs in the West Bank and Gaza. The Fatah-controlled Palestinian Authority lost control of Gaza in 2007 when Hamas seized control there. They have, however, continued to rule over the West Bank, and has been the body officially tasked with negotiating a peace agreement with Israel. Having been a governing authority for the past 20 years, what would prompt Mahmoud Abbas to take the seemingly extreme step to dismantle it?
I interpret the threat by Mahmoud Abbas to be simply another tactic to attempt to weaken Israel's standing in the international community, and to create embarrassment and difficulty for Israel. I cannot imagine that a leader that is determined to lead his people to an independent existence in peace and security, would behave in this way. It is difficult for me to understand how dismantling the Palestinian Authority would serve the purpose of the Palestinian people in their publicly-stated quest to be counted amongst the legitimate nations of the world.
The first leader of the Palestinian Authority, Yasser Arafat, was outed as a fraud who did little to further the cause of the two-state solution as envisaged by the Oslo Accords. Instead, it has been proven beyond a reasonable doubt that he encouraged the intifadas against Israel, organised and financed suicide bombings and other terrorist


100% Real human hair product, none synthetic hair is mixed, made by top quality virgin Brazilian remy hair.
Details: 1.Product description:Human hair Glueless lace front or full lace wig.
2. Hair material type: 100% virgin Brazilian remy hair, tangeless and shedding free.
3.Hair Color:1b natural black color.
5. Hair Length:14inch to 24inch.
10.Baby hair all around the wig.
A: The hair is Natural Color. All Items are for Real Shooting. For display, light, environmental reasons may be a Slight Deviation phenomenon, please in kind prevail.


Nnimmo Bassey is an environmentalist activist and poet. He is chair of Friends of the Earth International and Executive Director of Environmental Rights Action.
Bassey is a qualified architecturer and has practiced in the public sector for ten years. He became active on human rights issues in the 1980s as a member of the Board of Directors of Nigeria's Civil Liberties Organisation.
In 1993, he co-founded Environmental Rights Action (ERA), a Nigerian advocacy NGO, to deal with environmental human rights issues in the country.
Environmental Rights Action/Friends of the Earth Nigeria Environmental Rights Action is also known as Friends of the Earth Nigeria and is the national chapter of Friends of the Earth International (FOEI), the world's largest grassroots environmental network. In 2008, Bassey was elected Chair of Friends of the Earth International.
He is one of Time magazine's Heroes of the Environment 2009. In 2010, Nnimmo Bassey was named co-winner of the Right Livelihood Award (also known Sources Friends of the Earth International/ Wikipediaas the Alternative Nobel Prize) and in 2012 he was awarded the Rafto Prize International.


We are in the mountains high above Malaga, chasing a white 911 GTS convertible. Make that trying to keep up with a white 911 – the man at the wheel is a former racing driver doing his best to remove my new 718 Cayman GTS from his rear-view mirror.
The fact that he fails is almost exclusively due to the astonishing abilities of the new Cayman, which threatens to topple the big brother hierarchy when pitted against a 911. Obviously it's beaten on power – its 360bhp engine is 84bhp down on the 911, though makes 25bhp more than the old Cayman GTS.
But that's not the whole story. The Cayman's 2.5-litre turbocharged flat four is lighter, more compact and less thirsty that the coveted six. And the entire car is significantly lighter too (1405kg vs the 911's 1440kg). Add in the Cayman's well-balanced sports suspension, which lowers the centre of gravity by 20mm compared with the standard model, and the mid-engine layout, and the 911 has a problem.
In terms of handling, the Cayman has the edge. The weight distribution is not as tail-happy, the cornering grip on warm tyres has that magic touch, the precise steering relays all the road contact you could ever ask for straight to the fingertips, the brakes got me out of a tight spot more than once and the diff lock processes power and torque with minimum fuss and maximum efficiency.
There is a downside to the extra weight on the front axle, though – through downhill bends, and whenever you overdrive the front tyres, you can expect sudden understeer. Catching it may require a stab at the brakes.
Which Porsche 718 Cayman should you buy?
But realistically the biggest enemy of the Cayman GTS isn't the 911, it's the Cayman S. It costs £8000 less and makes 345bhp, so the difference in absolute performance is negligible. With Sport Plus and launch control activated, the GTS thunders to 62mph from zero in 4.1sec. The S takes only one tenth longer and its top speed of 177mph is only 3mph slower than the GTS's.
There's more to this than numbers, of course. The GTS gives better feedback, has sharper responses and finer balance. If you ignore the traditional numbers and instead count the butterflies in your stomach before each drive and your heart-rate on a challenging road, the GTS wins. It's a more exciting car than the S.
Much depends on which drive programme you select via the joy knob on the steering-wheel though. In Normal mode, the ride comfort is okay. In Sport, the drivetrain sharpens up. And in Sport Plus, the entire tech-mech assembly redoubles its efforts.
Left to its own devices in Normal mode, the ECU selects the tallest possible ratio from the PDK dual-clutch gearbox as soon as it can. Trundling along at 1700rpm in seventh gear may save trees, but the engine sounds coarse and unpleasant. In Sport, gearchanges are notably quicker and throttle response is brisker. In previous Porsches, Sport Plus was only good for the racetrack. In the new Cayman GTS, however, the calibration is less extreme and okay for public roads.
Keep the hoof firmly planted in Sport Plus and the master chip will punch the ratios through like an electro-mechanical Rocky Balboa. Even though the engine delivers its peak 360bhp at 6500rpm, there are 1000 more revolutions to play with, and the gearbox uses them all.
It's a busy rhythm which makes a lot of mostly beautiful noise as it keeps hitting the sweet spot between over-ambitious and under-challenged. When exiting corners, the white 911 still pulls away with vigour but 200 metres later the Cayman gains ground under braking, and it feels a blink quicker through first-gear spirals and second-gear esses.
While the first three ratios sit relatively close together, the top four gears are set further apart for the sake of fuel economy. Although there is a feisty 317lb ft available from 1900 to 5000rpm, the gearbox needs to be prepped by the driver to make full use of that punch.
The new 718 Cayman GTS is a master in terms of sensory punch, too. Stimulating visual factors include the revised front bumper sporting a bigger air intake, darkened head- and tail lights, twin exhaust pipes framed by a charcoal diffuser, black wheels shod with 20-inch tyres and a couple of prominent air deflectors.
Inside, we find racing buckets, wall-to-wall alcantara trim, no-cost Sport Chrono clocks and plenty of anodised brightwork. Still absent from the wish list are a head-up display and any but the most basic assistance systems. The most annoying feature is the admittedly improved touchscreen, which on bumpy roads typically needs two or three approaches before the index finger eventually arrives at the target.
In terms of options, you would not want to be without Porsche's infotainment system (PCM) and the reversing camera, but there is no real need to spend big on carbon-ceramic brakes or to spend small on the Sports Pack.
So which Cayman to buy? The 296bhp base model does not deserve its wallflower image. It is attractively priced at £42,897 and is quick enough except perhaps for track outings and particularly furious Sunday mornings.
Having said that, the 2.0-litre engine is probably better suited to the Boxster. The Cayman S strikes a compelling compromise – it easily wins the value-for-money competition and is the perfect choice for those who don't appreciate the GTS livery.
The GT4 returns next spring, but since all my rich aunts and uncles are still fit and well, it unfortunately doesn't enter the equation. The GTS polarises. It is expensive, it does not have a clear edge on performance, and the top-of-the-line four-cylinder unit is no more refined than the lesser engines.
On the other hand it looks sexier, has a potentially higher resale value and when everything falls into place – road, traffic, attitude – the 360bhp Cayman easily matches the 444bhp 911 in grins-per-mile. Plus, as the ex-racing driver in the white example ahead is discovering, the GTS's outright speed can easily embarrass its big brother.