text:
The Hunger Games Club
The Hunger Games Posts on Fanpop
"THE HUNGER GAMES: CATCHING FIRE" (2013) Review
Despite my enjoyment of the 2012 movie, "THE HUNGER GAMES", I must admit that I had regarded its sequel, "THE HUNGER GAMES: CATCHING FIRE" with a wary eye. One, the movie franchise had replaced Gary Ross with a new one, Francis Lawrence. And two, a relative who had read all three of Suzanne Collins' novels expressed a less-than-impressed opinion of the second installment, which this movie is based upon. But enamored of the first film, I decided to give this second one a chance.
"CATCHING FIRE" picked up not long after the ending of the first installment. The winners of the 74th Hunger Games, Katniss Everdeen and Peeta Mellark, have returned to their homes in the impoverished District 12. But due to their winnings, both now reside in upscale neighborhoods. Before they are scheduled to embark upon their victory tour of Panem, Katniss receives a visit from the tyrannical President Snow, who reveals that her actions in the recent Games have inspired rebellions across the districts. He orders her to use the upcoming tour to convince everyone her actions were out of genuine love for Peeta, not defiance against the Capitol. The victory tour goes off well, aside from an emotionally difficult and violent visit to District 11, the home of the deceased tributes, 12 year-old Rue (whom Katniss had befriended) and Thesh (who had saved Katniss).
Despite the tour and the installment of violent Peacekeepers in District 12 to crack down on any signs of rebellion, President Snow remains fearful of Katniss being used as a symbol of any possible upheavals. The new Head Gamekeeper, Plutarch Heavensbee, proposes a special Hunger Games called the Third Quarter Quell (the 75th Hunger Games), in which the tributes will be selected from previous victors. He believes the Games would either ruin Katniss' reputation, or kill her. As the only female victor from District 12, Katniss is naturally selected. However, her mentor Haymitch Abernathy is chosen as the male tribute. Peeta immediately volunteers to take his place. Haymitch informs the pair that most of the tributes are angry over being forced to participate again and suggests they make alliances. Although Katniss is against the idea, she and Peeta adhere to Haymitch's advice and find themselves in competition that ends with surprising results.
Despite becoming a fan of "THE HUNGER GAMES", I continued to resist watching Suzanne Collins' novels. Perhaps one day I will read them. But due to my unfamiliarity with the plots, the end of "CATCHING FIRE" pretty much took me by surprise. And this is a good thing. The movie's first third hinted of a growing rebellion against President Snow's rule over Panem in scenes that included Katniss and Peeta's harrowing visit to District 11, the beating of Gale Hawthorne (Katniss' closest friend and possible lover) at the hands of the Peacekeepers, and Snow's growing paranoia over Katniss. Even the scenes featuring Katniss' participation in the 75th Hunger Games continued hint the growing rebellion against Snow's administration and the Capitol through the characters like Haymitch, Katniss' friend and costume designer Cinna, and those serving as tributes. Characters like Beetee Lasnier and Johanna Mason expressed their dismay or anger at being forced to participate in another Hunger Game during their pre-Game interviews with Caesar Flickerman. Even Peeta tried to manipulate Snow into stopping the Game with false hint that Katniss might be pregnant. And during the Game, I found it interesting that Katniss and Peeta ended up forming an alliance with Lasnier and his District 3 counterpart Wiress, Johanna, and the two tributes from District 4, Finnick Odair and Mags - the only tributes to express any hostility toward the Games and President Snow. I had figured that all of them would eventually openly defy Snow by getting out of the Games. But thanks to some very good writing from Suzanne Collins, along with screenwriters Simon Beaufoy and Michael deBruyn; the circumstances behind the beginning of the rebellion really took me by surprise.
Another aspect of "CATCHING FIRE" that took me by surprise, turned out to be its cinematography. With the change of director, the franchise acquired a new cinematographer, Jo Willems. And I liked the way Willems expanded the look of Panem in the film. I suppose one could thank the movie's plot, which allowed viewers a look at the exclusive neighborhood of District 12, into which Katniss and Peeta moved following their victory at the 74th Games; the other country's districts, and the tropical environment that served as the 75th Games' new setting. But more importantly, Willems expanded the visual style of the Capitol . . . especially in a scene that featured Katniss and Peeta's arrival. This expanded visual really took me by surprise. The movie also acquired a new costume designer, Trish Summerville. I have to be honest. I found her costume designs similar to the ones created by Judianna Makovsky. I really do not see the differences . . . especially for those costumes worn by the cast for the Capitol sequences. Mind you, they are just as imaginative and beautiful as the ones featured in the first film. I simply cannot see the differences. There was one outfit - worn by Elizabeth Banks - that I found very original.
I understand that the song "Atlas", written and performed by the group Coldplay have earned both Golden Globe and Grammy nominations. Congratulations to the band. However, I do not remember the song. Sorry. I simply did not find it memorable. I was also a little disappointed in how Lawrence (the director) seemed to rush the first third of the movie - namely the sequence featuring Katniss and Peeta's victory tour and District 12's problems with the so-called Peacekeepers that culminated in Gale's beating. It seemed as if he was in a hurry for the movie to focus on the 75th "Quarter Quell" Hunger Games. And if I may be blunt, I was also not that impressed by Alan Edward Bell's editing. It struck me as a little choppy - especially in the movie's first half.
The performances by the cast struck me as first rate. Jennifer Lawrence and Josh Hutcherson did superb jobs in continuing the development of their characters, Katniss Everdeen and Peeta Mallark. I noticed in this film that Lawrence conveyed a great deal of realism in Katniss' growing difficulty in containing her emotions regarding those she cared about. This was especially apparent in the scene following Gale's public whipping, Peeta's near death experience during the first day of the Games and the visit to District 11. Someone once described Peeta as a saint. I never could view him in this manner. He strikes me as a rather manipulative individual, who can also be a very good liar. What is amazing about Hutcherson's performance is that he perfectly balanced Peeta's manipulative skills with his near all consuming love for Katniss and willingness to do anything for her.
Liam Hemsworth got a chance to develop his portrayal of Katniss' childhood best friend, Gale Hawthorne. Hemsworth, like Hutcherson, did an excellent job in balancing the different layers of Gale's personality - namely his love for Katniss and his ever-growing obsession with rebellion against President Snow and the Capitol. Woody Harrelson continued to knock it out of the ballpark as Katniss and Peeta's alcoholic mentor, Haymitch Abernathy. I think this is the first time moviegoers got a real look at Haymitch's hostility toward President Snow, especially in the scene which featured the announcement of past winners participating in the Quarter Quell. Harrelson portrayed that small moment with such intense anger. Donald Sutherland continued his brilliant portrayal of the brutal, yet manipulative politician, President Coriolanus Snow.
Sutherland perfectly captured Snow's quiet machinations that could rival Palpatine from the STAR WARS franchise. Yet, the actor also did a subtle job in conveying Snow's growing paranoia over Katniss' popularity and growing role as a symbol of rebellion. I had greatly enjoyed Elizabeth Banks' performance as Effie Trinket in the first movie. I loved her performance in this film, as the actress allowed filmgoers a deeper look into the chaperone's persona, beyond her usual shallowness. I am also happy that Lenny Kravitz reprised the role of Cinna, Katniss and Peeta's stylist for the Games. As usual, the actor/musician gave a warm and beautiful performance as Katniss' emotional solace before the Games. One particular scene in which Cinna endured a brutal beating over a dress he had created for Katniss proved to be a very painful one to watch, thanks to Kravitz and Lawrence's performances, along with the other Lawrence's direction. Stanley Tucci was marvelous as ever in his continuing portrayal of Caesar Flickerman, the Games' announcer and commentator. Toby Jones reprised his role as Flickerman's fellow commentator, Claudius Templesmith. But his role had been reduced considerably.
The movie also featured some newcomers to the franchise. Philip Seymour Hoffman gave a sly and subtle performance as the Games' new Head Gamemaker, who schemes with President Snow to destroy Katniss' reputation and possibly, her life. Sam Claflin continued to surprise me at how charismatic he could be, in his engaging portrayal of Finnick Odair, one of the tributes from District 4, during the 75th Games. Jena Malone was a hoot as the outspoken and aggressive female tribute from District 7, Johanna Mason. The strip scene inside the elevator is one that I remember for years to come. I was surprised to see Jeffrey Wright appear in this film. He gave a subtle, yet intelligent performance as the male tribute for District 3, Beetee Latier. Wright also clicked very well with Amanda Plummer, whose performance as Latier's fellow District 3 tribute Wiress, struck me as deliciously off-center. Lynn Cohen nearly stole the show as Finnick's fellow tribute from District 4, Mags. I thought she did a pretty good job, although I am at a little loss over the fanfare regarding her performance.
Many seemed to regard "CATCHING FIRE" as superior to the original 2012. I cannot agree with this opinion. I am not saying that "CATCHING FIRE" is a disappointment or inferior to "THE HUNGER GAMES". But I certainly do not regard it as better. I would say that it is just as good. And considering my very high opinion of the first film, one could assume that my opinion of this second film is equally positive, thanks to an excellent screenplay written by Simon Beaufoy and Michael deBruyn, first rate direction from Francis Lawrence, and a superb cast led by Jennifer Lawrence and Josh Hutcherson.
kall_pal17, alexanderludwig and 1 other like this
Mockingjay Quotes
Newcomers at the Games - The Hunger Games: Catching Fire
Sam Claflin and Jena Malone talk about tackling the iconic roles of Finnick and Johanna.
Katniss saying goodbye to Gale
added by Darkangel6
Grant Gustin wouldn't mind being Finnik
The Hunger Games || Yesterday I Died, Tomorrow's Bleeding.
added by bussykussi
Peeta & Katniss Everytime We Touch
everytime we touch
Catching Fire quotes
Source: http://hungergames-quotes.tumblr.com
Source: imodair.tumblr.com
Finnick
added by QueridaPantufa
The Hunger Games Funnies!
added by Joy3570
added by elina1996
Francis and Jennifer - Catching Fire (BTS)
added by h3rmioneg
added by no1drwhofan
The Hunger Games Wall
The Hunger Games Updates
The Hunger Games Images
The Hunger Games Videos
The Hunger Games Articles
The Hunger Games Links
The Hunger Games Forum
The Hunger Games Polls
The Hunger Games Quiz
The Hunger Games Answers
The Hunger Games Fans


The more you play at any of our entertainment packed locations, the more tier points youll earn, and the more benefits youll receive.
JEE Advanced 2018 Joint Entrance Examination (Advanced) or JEE Advanced is a national level examination scheduled to be held on May 20, 2018 administered by IIT Kanpur for admission to engineering programmes in the 23 IITs.Wenn du auf unsere Website klickst oder hier navigierst, stimmst du der Erfassung von Informationen durch Cookies auf und außerhalb von Facebook.Internet Print Servers Server pdf manual download.Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du hier: Cookie-Richtlinie.Where to download observations.161;Ahora puede ser natikns de Diciembre en cualquier momento del a241;o con estos maravillosos 500 nations slots de Navidad gratis!Wir verwenden Cookies, um Inhalte zu personalisieren, Werbeanzeigen maßzuschneidern und zu messen sowie die Sicherheit unserer Nutzer zu erhöhen.Lee Nelson pokemon go stab bonus (American football) (b).It is common to see people standing on a hillside overlooking the 500 nations slots slotd watching the signs of distant nxtions activity through binoculars.
Hui-Chuan Lin Yong -Run Guo ncarneslmmm.What types of observations.Bleach is the name given to a group of chemicals, which are used industrially and domestically to whiten clothes, lighten hair color and remove stains.This writing is basically for passengers on the Norwegian Cruise Line's Epic who are booked or are intending to book passage in the Solo Studio Cabins.Many bleaches 500 nations slots broad spectrum bactericidal properties, making them useful invisible deadpool card game ink casino disinfecting and sterilizing and are used in swimming pool sanitation to control bacteria, viruses, and Featuring cabinet door and drawer locks of all slot free games for fun xp types including pin tumbler locks, disc tumbler.


Complete Guide to Buy Panel Track Blinds | BlindsOnLine.com - BlindsOnLine.com Inc.
In this new millennium, there have been countless green-friendly initiatives instated by the government. What you may not know is that you don't need to be the President or the manager of a large corporation to make a difference. There are tons of little, green-friendly things homeowners can do to preserve the planet, all while saving their own money.
Not only will purchasing energy efficient blinds save customers hundreds, if not thousands, of dollars on their electricity bills, but purchasing the window treatments online will also significantly reduce the cost of materials.
This benefit is obvious: people who purchase energy efficient blinds do so because they know their positive impact on the environment. But BlindsOnLine.com's energy efficient blinds are also good for you.The light gauge fabric is able to block approximately 100% of all harmful UV rays, while the construction actually insulates windows, while reducing energy use.
Not only can customers choose between light filtering and blackout window treatments, but they also have the option of the Omni-Rise or the Duofold. While the Omni-Rise is a typical corded option, Duofold is a safer option that uses a Top-Down, Bottom Up system, thereby eliminating the classic cord and making it more child-proof.
Although there are currently only 2 different types of window treatments that are available from the BlindsOnLine.com website, we are able to provide several customizable colors for our energy efficient shades including dove white, French vanilla, Vienna wood, and more. Moreover, because BlindsOnLine.com blinds are created using ComforTrack color options, individuals can also choose between white and brown tracks.
For the most part, these shades are very similar, but they perform 2 completely different functions. While blackout blinds work primarily to keep rooms as dark as possible, light-filtering shades let the homeowner control how much of the light enters.
Most people choose blackout shades for their bedrooms, especially if the sun rises right above their windows in the morning. Blackout shades are also effective at maintaining privacy and will block out unsightly neighbors. Light filtering shades can also add privacy, but are better at creating a friendly and natural atmosphere in busy rooms (ie. Living rooms, kitchens, dining rooms).
Armed with the above knowledge, you should feel confident enough to make an educated decision regarding whether these gliding doors are the right window treatment for your project. Shop for panel track blinds online today and browse our entire BlindsOnLine.com inventory by visiting our website.


text:
Vaping & e-Cigarettes
What Parents Need to Know About Vaping
Vaping has become one of the most popular forms of substance use among young people, despite it being illegal to sell to anyone under the age of 21 and growing evidence of its health risks and harms.
According to the CDC's National Youth Tobacco Survey, 1 in 5 high school students reported vaping in the past month.[1] With ample advertising geared toward teens and young adults, the availability of brightly colored vape pens and thousands of flavors to choose from, the expectation is that this trend will continue.
To help counter-balance the manipulative and deceptive messages and misinformation being directed at teens, parents should be prepared to answer the big questions about vaping.
How does vaping work?
Vaping is the act of inhaling and exhaling the aerosol that is produced by an electronic vapor device when it heats up its liquid ingredients. Because of the rise in popularity of JUUL, currently the most popular brand of vaping device, many teens and young adults use the term "JUULING" (pronounced jeweling), instead of vaping, when referring to the use of these products. Other names for vaping devices include electronic cigarettes, e-cigarettes, vape pens, vapes and tank systems.
What are teens vaping?
High levels of nicotine
Nicotine doses in vaping products can range from 2mg/ml to more than 59mg/ml, and some companies are engaging in "a nicotine arms race," trying to raise the dose to levels that exceed those found in traditional cigarettes or competing vapes. JUULs currently contain 59mg/ml of nicotine in each pod in the United States — an amount equal to about 1-2 packs of cigarettes.
Thousands of flavorings
Vaping products come in thousands of tasty, unmistakably child-friendly flavors, many with fun and enticing names. The flavors help mask the harsh taste of nicotine and other chemicals contained in the e-liquid, making it easier to inhale the aerosol. Sweet, fun flavors like gummy bear and cotton candy often remind teens of happy childhood experiences, making them feel harmless. Recent crackdowns on flavors by the federal, state and local governments have begun to shift the landscape of preferred vaping products among youth. Now that flavors, aside from menthol and tobacco, are generally banned in refillable cartridge-based devices like JUUL, loopholes in regulations are driving kids to flavored disposable vapes that have even higher nicotine content and come in countless enticing flavors.[2]
Other chemicals, metals and ultrafine particles
The aerosol, which many teens believe is harmless water vapor, actually consists of many chemicals, heavy metals, and fine particles — many of which are toxic and dangerous — that seep deep into the lungs and bloodstream when vaping.
Marijuana or other drugs
Increasingly, marijuana ingredients are found in vaping products, including THC — the psychoactive compound in marijuana that creates a sense of being high — the leaf form of marijuana, and CBD. Vapes have also been used to inhale other substances.
A Vaping Guide for Parents: What you need to know & how to talk to your kids about vaping. A PowerPoint presentation is also available.
Why is vaping bad for teens?
It is now widely recognized that vaping is unhealthy and dangerous, even if it might not be quite as unhealthy and dangerous as smoking conventional, combustible cigarettes.[3]
The more immediate health effects include coughing and wheezing, behavioral and mood changes, headaches, seizures, vomiting and potential severe lung injury. Vaping also negatively affects teens' attention, learning, mood and impulse control in a way that can affect them in school, sports and social situations.
Nearly all vaping products contain nicotine, in many cases as much as or more than in traditional cigarettes. Nicotine negatively affects the cardiovascular system (increasing heart rate and blood pressure and the risk of heart attack and stroke), respiratory/lung functioning (including inflammation, asthma and wheezing) and reproductive organs. It also is one of the most addictive substances around. People who vape can quickly become addicted and are at increased risk of starting to smoke cigarettes or use other addictive products. Ingesting high doses of nicotine can lead to nicotine toxicity, which in severe cases can give rise to seizures as well as nausea, vomiting, diarrhea, excessive salivation, dizziness, respiratory failure, coma and paralysis.
The other ingredients in vaping products, including the flavorings, are harmful as well. Most contain cancer-causing and other toxic chemicals, heavy metals and ultrafine particles that penetrate deep into the lungs and cause lung damage, cell damage and reduced immunity to infections.
Why is vaping so popular?
Most vapes are discreet, easy to hide and generally seen as cool and relatively harmless. They come in thousands of tasty flavors that help cover the harsh taste of the chemicals and override the sense that these products might be harmful. They also produce a brief positive sensation or 'head rush' that some people like.
Most also have very high doses of nicotine, which can rapidly make those who vape develop an addiction or become dependent on the product. Some young people are also drawn to the "vape tricks" and "cloud competitions," where they form cloud-like shapes or patterns when exhaling the vape's aerosol. These tricks are usually performed with modifiable devices, or 'mod' style vapes. People will breathe aerosol deep into their lungs and then exhale it through their ears, eyes or nose.
Teens say they vape for many reasons. Curiosity is one, and peer pressure is another. They see friends or family members vaping and they are drawn to the appealing flavors. For others, it's to do vape tricks. Some also say they do it because they feel it is less harmful than other tobacco products and it's also discreet. Increasingly, teens report that they are vaping because they are hooked and can't quit.
A Vaping Guide for Parents
What you need to know & how to talk to your kids about vaping.
Vaping and Marijuana: What You Need to Know
Parents and caregivers should be concerned about the risks teenagers and young adults face when they vape marijuana.
Can You Tell if Your Child is Vaping?
Here are some clues to look out for if you suspect that your child may be vaping.
Partnership Staff
[1] National Youth Tobacco Survey (NYTS). Centers for Disease Control and Prevention, 23 Dec. 2019, www.cdc.gov/tobacco/data_statistics/surveys/nyts/index.htm.
[2] Kaplan, Sheila. "Teens Find a Big Loophole in the New Flavored Vaping Ban." The New York Times, 31 Jan. 2020, www.nytimes.com/2020/01/31/health/vaping-flavors-disposable.html.
[3] "New Report One of Most Comprehensive Studies on Health Effects of E-Cigarettes; Finds That Using E-Cigarettes May Lead Youth to Start Smoking, Adults to Stop Smoking." The National Academies of Sciences, Engineering, and Medicine, 23 Jan. 2018, www.nationalacademies.org/news/2018/01/new-report-one-of-most-comprehensive-studies-on-health-effects-of-e-cigarettes-finds-that-using-e-cigarettes-may-lead-youth-to-start-smoking-adults-to-stop-smoking.
How Vaping Affects Your Teen's Health
Some people have been led to believe that vaping is completely safe, but there are significant risks to be aware of – especially for young people.

redpajama_set_name: RedPajamaCommonCrawl


Angara is a family of Russian space launch vehicles that includes light, medium and heavy-lift launchers developed and operated by Khrunichev State Research and Production Center.
The different versions of Angara provide payload capabilities of 2,000 to 50,000 Kilograms into Low Earth Orbit. The Angara launch system is planned to be operated from the Plesetsk and Vostochny Cosmodromes and from Baikonur for Commercial Launches.
Angara has been designed to use one (Angara 1.1 and 1.2), three (Angara 3), five (Angara A5) and seven cores (Angara A7) to create a range of launch vehicle options. Angara can fly as a two or three-stage launch vehicle. The second stage of Angara, called URM-2, is a modified Block I upper stage of the Soyuz 2 rocket that is modified to be available in different diameters to cater the needs of the individual Angara versions.
As an upper stage, Angara can host the operational Briz-M that uses hypergolic propellants and a new generation of cryogenic upper stages known as KVSK, KVRB and KVTK using liquid oxygen and liquid hydrogen propellants. The cryogenic upper stages are currently being developed, but will not be available for the first several years of Angara operations.
Angara has been conceptualized for the launch of light Low Earth Orbit payloads up to heavy Geostationary Satellites requiring a direct insertion or a standard GEO-Transfer Mission. Manned versions of Angara have also been presented for future generations of manned spacecraft. Currently, the Angara 1.2 and A5 versions are being actively pursued to allow the Russian Ministry of Defence to shift its payloads from Proton launches to Angara also switching launch sites from Baikonur to Plesetsk.
The Angara 1.1 launcher was planned to use the Universal Rocket Module as first stage and the Briz-KM, the smaller of the two Briz sisters, as upper stage. Using Briz-KM, the launcher was also designed to use the payload fairing of the Rockot launch vehicle to create a launcher for light payloads. For the 1.1 version, the URM would have launched with a partial fuel load.
Overall, the launcher had a planned liftoff mass of 149,000 Kilograms and a length of 34.9 meters. The vehicle was designed to deliver payloads of up to 2,000 Kilograms into Low Earth Orbit.
Angara 1.1 was canceled since its performance was too close to that of the Soyuz 2-1v that was being developed at the same time and made its maiden flight in late 2013.
The Angara 1.2 launcher uses the Universal Rocket Module as first stage with its RD-191 engines delivering 1,920 Kilonewtons of liftoff thrust. URM-1 is 25.7 meters long, 2.9m in diameter and has a launch mass of 141,500 Kilograms. As an upper stage, the Angara 1.2 uses a modified Block I adapted from the Soyuz 2 using the RD-0124A engine. This stage is 2.66 meters in diameter and 6.7 meters long.
Angara 1.2 has a launch mass of 171,500 Kilograms standing 42.7 meters tall. The launcher can deliver payloads of up to 3,800 Kilograms to Low Earth Orbit.
Angara 1.2PP is a custom-made version of the launch vehicle that is only used for the very first test flight of the Angara rocket in 2014. This launcher consists of the standard URM first stage with its RD-191 engine. The second stage is the 3.6-meter diameter Block I modification and not the 2.66-meter version that is normally used on the Angara 1.2. This is done to allow the first sub-orbital test flight to demonstrate the Block I second stage in its new version and certify it for the launch of the Angara A5 rocket.
The Angara A3 version uses three Universal Rocket Modules – one Core Stage and two URMs as strap-on boosters. The A3 version sports the 3.6-meter diameter modified Block I as second stage and the Briz-M or KVSK as a third stage for non-LEO launches. The launcher uses payload fairings from the Proton rocket.
Angara A3 has a launch mass of 480,000 Kilograms and stands 45.8 meters tall with a total launch thrust of 5,770 Kilonewtons. The vehicle can lift 14,600 Kilograms into Low Earth Orbit without an upper stage. A Geostationary Transfer Orbit capability of 2,400kg and direct Geostationary capability is 1,000kg using the Briz-M can be achieved. Using the cryogenic upper stage, the A3 could lift 3,600kg into Geostationary Transfer Orbit and 2,000kg into Geostationary Orbit.
Using the cryogenic upper stage, the A3 could lift 3,600kg into Geostationary Transfer Orbit and 2,000kg into Geostationary Orbit.
The Angara 3 makes use of the deep throttling capability of the RD-191 – throttling the Core Stage down after liftoff while the boosters continue at full thrust. Saving propellants, the Core can continue firing after strap-on separation not unlike the flight design of the Delta IV Heavy that also uses three cores without cross-feed capability.
The Angara A3 is at the concept stage only since there is currently no desire for it as the Soyuz 2 covers much of the payload range of the A3 launch vehicle.
The Angara A5 is the version of the family that will be put to use as the workhorse launcher when it comes to Geostationary Transfer missions or direct GEO insertions. The launcher has a mass of 759,000 Kilograms.
Using five Universal Rocket Modules – one Core with four strap-ons – A5 has a total liftoff thrust of 9,610 Kilonewtons. For its missions, the A5 throttles its Core Stage down while the boosters fire at full throttle, allowing the Core to continue burning for more than 100 seconds after strap-on separation.
Angara A5 uses the modified Block I at a diameter of 3.6 meters. As upper stage, Angara A5 can use the Briz-M and the cryogenic KVTK. With Briz-M, A5 uses fairings also used on Proton creating an overall vehicle length of about 55 meters. KVTK would require a stretched fairing design creating a total launch vehicle length of 64 meters.
Overall, Angara A5 can deliver payloads of up to 24,500 Kilograms into Low Earth Orbit. With Briz-M, the vehicle has a GEO-Transfer capability of 5,400kg and a direct GEO insertion capability of 3,000kg. Using KVTK, these values increase to 7,500kg and 4,600kg, respectively.
A proposed manned version of the Angara A5 has been named A5P, for pilotiruemaya (manned). This version would not use a second and no upper stage and integrate a launch abort system. The launch vehicle would use a partial propellant load in the strap-ons and the Core Stage and fly a different throttling profile. The A5P version would have a mass around 710 metric tons with a Low Earth Orbit Capability of 18,000 Kilograms.
The Angara A7.2 concept calls for a Core Stage and six strap-on Universal Rocket Modules each with one RD-191 engine. Unlike the other Angara versions, the Core Stage would not use the common URM design but have an increased diameter of 4.1 meters allowing it to carry more propellants for a longer burn time after URM jettison.
Angara A7.2 would use a KVTK cryogenic stage as its second stage ranging from the smaller one-engine KVTK-A7 to the two engine KVTK2-A7 and the even larger KVTK2B-A7. This would give the launcher a mass of 1,180,000 Kilograms at a vehicle length of nearly 66 meters using a large payload fairing 5.5m in diameter and over 25 meters long.
Angara A7.2 would be capable of lifting 40,500 Kilograms into Low Earth Orbit, 12,500kg into Geostationary Transfer Orbit and 7,600kg into Geostationary Orbit.
A manned version of the Angara 7 would use the Core Stage & URM stack of the A7 version. The use of an upper stage would depend on the mission profile as will the flight profile and fuel load of the boosters and core.
The Angara project originated in 1992 when the Russian government issued a tender for the development of the Angara heavy-lift launch system for use by the Russian Military and the Russian Space Agency. Khrunichev was selected as the developer and operator of the vehicle in 1994 and funding for the development of Angara was secured in 1995.
The motivation behind the Angara launch vehicle family is severalfold with the main objective of ensuring Russia's access to space for a wide payload range. Angara was conceptualized to be able to replace current launch vehicles across different payload classes.
The use of converted Intercontinental Ballistic Missiles for orbital launches was implemented in the late 1980s and 1990s, however, the ICBMs were qualified to be stored for a limited amount of time. Despite several efforts of prolonging the storage life of the ICBMs, launch vehicles such as Rockot, Strela and Dnepr can not be stored indefinitely and have to be replaced at some point.
Another driver behind Angara was to build an all-Russian launcher no longer depending on components and rockets supplied by the Ukraine such as the Dnepr and Tsyklon launchers provided by Yuzhmash and the Zenit and Kosmos rockets manufactured by Yuzhnoye.
Angara also had the objective of creating a launch system to eliminate the dependency on Kazakhstan and the Baikonur Cosmodrome since there had been a number of conflicts on launch trajectories and environmental impacts of launches.
With no heavy-lift capability from domestic Cosmodromes, Russia identified the need to develop that capability through Angara to ensure access to a variety of orbits from the Plesetsk and Vostochny Cosmodromes located at higher latitudes – requiring more power to reach low-inclination orbits.
Angara also marks a move away from hypergolic propellants in launch vehicles – Proton uses 722 metric tons of toxic hypergolics which have been the cause of extensive debate whenever a Proton launch failure led to the release of significant quantities of those chemicals.
The design of Angara was to combine new state-of-the art hardware with flight-proven components to create a modern and reliable launch system with high cost-efficiency using a modular design approach.
The initial design process of the components of the Angara rocket was completed until 1999 including the design of the Universal Rocket Module, the RD-191 engine and the URM-2 second stage and its RD-0124 engine.
In 2001, NPO Energomash started testing of the RD-191 first stage engine at the Peresvet test facility and Khrunichev began the production of a URM test article that underwent structural testing beginning in 2004. RD-191 testing continued as part of a program that called for 70 test firings for a duration of 15,000 seconds using ten engines. After five years of testing, RD-191 had completed 35 tests for 4,500 seconds of firing time.
In 2005, Khrunichev and the Korean Aerospace Research Institute completed negotiations and finished an agreement for the development of the KSLV launch vehicle that would use an Universal Rocket Module supplied by Khrunichev as its first stage powered by an RD-151 engine, a lower thrust variant of the RD-191.
At the Plesetsk Cosmodrome, construction of the Angara launch facilities began at Site 35, a former Zenit launch pad that never finished construction. The first Angara launch platform was delivered to Plesetsk in 2006 when flight testing was still expected to begin in 2010.
Khrunichev awarded PO Polyot a contract to manufacture the booster stages of the Angara launcher. As part of the agreement signed in 2006, PO Polyot merged with Khrunichev in late 2007.
In late 2007, NPO Energomash announced that the RD-191 flight hydraulics and steering actuators were successfully tested under near-flight conditions in the ongoing engine testing. KBKhA, the manufacturer of the RD-0124A engine, conducted engine testing in late 2007 that included the use of gimbal actuators.
In 2008, the URM-1 and URM-2 test articles prepared for testing of the stages including fueling tests and firing tests. The URM-2 second stage module was delivered to the Peresvet testing facility in September 2008 and was installed in a test stand in October to allow testing to commence.
The URM-1 first stage booster was moved to the testing facility in early 2009 and the first cold tests were completed by April and involved loading the stage with propellants – Kerosene and –183°C liquid Oxygen to validate the propellant systems and the integrity of all tanks and associated plumbing. Cold testing also included test runs of the URM-1 pneumatic and hydraulic systems.
In July 2009, the URM-1 test article fired for the first time reaching a total burn time of 232 seconds for a full duration test of the first stage operation during an orbital launch.
The test was a complete success and achieved all of its objectives.
On August 25, 2009, the South-Korean KSLV launcher with URM-1 booster failed to deliver the STSAT-2 satellite to orbit in its first test launch. The failure occurred during the upper stage portion of the flight – the URM-1 first stage performed correctly providing valuable in-flight data for the development of the Angara launcher.
In October 2009, the second test firing of the URM-1 booster was completed at Peresvet reaching the planned burn duration of 203 seconds at the highest possible throttle setting to simulate the flight of the strap-on boosters of the Angara 5. The third and final URM-1 test firing took place in November 2009 and cleared the way to press into second stage testing at Peresvet that commenced in mid-2010 as the URM-2 was first put through a series of cold tests that included fueling tests and validations of the various subsystems of the stage.
In June 2010, the Korean KSLV made its second launch but failed 137 seconds into the mission when all communications with the launcher were lost and a bright flash was observed. Prior to the apparent explosion, the Khrunichev-built first stage did not show any signs of deteriorating health before data was lost. After the failure, it was determined that the likely cause of the mishap was a failure of the flight termination system on the second stage.
In late 2010, the URM-2 upper stage conducted its first full-duration test firing with a duration of 399 seconds using the propellant depletion sensors of the stage for shutdown.
In 2011 it was announced that the RD-191 engine had completed its test program that included a total of 120 tests for a total firing time of more than 26,000 seconds. Certification testing of the engine started in early 2012 and was planned to include 18 tests using three different engines to fully certify the engine for use on the Angara launch vehicle. Testing for the certification of combustion chambers manufactured by VMZ continued throughout 2012 and into 2013. The first production engines were already shipped from NPO Energomash to Khrunichev in 2011.
In 2012, the development of the flight control system of Angara and associated software was finished.
2012 saw the shipment of the Angara test article to the Plesetsk Cosmodrome where the launch facilities has completed construction and the first of two mobile erectors for the rocket completed its acceptance tests.
The test article was set for fit check at the launch site to verify structural systems as well as propellant interfaces. In late 2012, the RD-0124A engine completed a test firing to complete climatic testing of the engine that demonstrated that the engine works nominally after exposure to climatic conditions found at the Angara launch sites. Structural testing of the Angara launch vehicle wrapped up in late 2012.
On January 30, 2013, South Korea achieved its first successful KSLV launch using the URM-1 with RD-151 engine which operated nominally throughout the flight that delivered the STSAT-2C spacecraft to Low Earth Orbit.
At Khrunichev's facility in Moscow, the payload fairing of the Angara 1.2PP flight vehicle underwent final fit check with the launch vehicle in early 2013 and the vehicle also passed pneumatic and hydraulic systems testing of the second stage.
The first stage for the maiden launch completed final electrical testing in March 2013. In late May 2013, the first flight-worthy Angara launch vehicle was shipped from Moscow to Plesetsk for testing ahead of the first sub-orbital test launch of the Angara rocket.
In November 2013, the ground test article of the Angara launcher made its first rollout to Pad 35/1 demonstrating the transporter-erector and the launch pad propellant interfaces. After the rollback of the vehicle, mass simulator testing was underway at Plesetsk while the 1.2PP launcher completed processing inside the MIK.
The second rollout of the ground test article came in February 2014 to pave the way for integrated testing of all ground support systems including fueling tests that were planned in March 2014 before the mock-up cleared the way for the actual rocket. On March 25, the Angara 1.2PP launcher was rolled out to the launch pad at Site 35/1 for six days of extensive ground support equipment tests.
The first sub-orbital test launch of Angara is planned in June 2014 to be followed by the first launch of the Angara A5 rocket in late 2014 or early 2015.


text:
Puss in Boots: The Last Wish is, surprisingly, genuinely great. No kidding. It's very very good. It's been eleven years since the first Puss in Boots spinoff, and that itself was seven years after the character was introduced in 2004's Shrek 2, and there hasn't been a Shrek movie since the franchise-killing Forever After in 2010. I would have assumed that Dreamworks had just moved on from this character in the ensuing years, especially as How to Train Your Dragon became their big new commercial franchise, until they too ran that into the ground with 2019's disappointing third film. I had little expectations of greatness once I heard there was a new Puss in Boots feature, even after I started hearing the growing critical consensus. Early in, only mere minutes, I realized that a Puss in Boots sequel was one of the best movies of 2022 and an exciting and heartfelt sequel that proves that with the right artists and storytellers, any old character can still have vibrant relevance. It's a children's movie that can appeal to everyone.
Puss (voiced by Antonio Banderas) is a famous adventurer, sword fighter, and lover of women, but he's also nearing the end of a long journey. He's used up his eight lives and is now on his ninth and last, and to escape Death, he sets out on a quest to retrieve a fallen star that will grant one person a wish. It just so happens there are a lot of other characters in this fairy tale kingdom that want to get there too.
It is amazing how hard this movie goes. In its opening sequence, it establishes its bold artistic style that enlivens every second onscreen, it establishes its caliber of exciting action that feels akin to wild comic books and anime, and an emphasis on mortality that provides a sense of danger and emotional foundation for what could have been just another shoddy animated sequel drafting off brand recognition. Let's just focus on the animation style to begin with. I was expecting the same old CGI that has dominated the world of animation for twenty years, but The Last Wish has been clearly inspired by the greatness of 2018's Into the Spider-Verse. There is a distinct 2D edge given to the designs, accenting the imagery, and during bouts of action they will lower the frame frate, making the movements much more stark and pronounced. Add to this a lovely, painterly watercolor visual style, more emphasis on the overall impression than finite definition, and the movie is a consistent feast for the eyes. There are stylized sequences that communicate fear and desperation, as well as sequences that exemplify the kinetic movement of superhuman action, smartly altering its visual appearance to better serve whatever emotion it wants you to feel. I hope more and more animation companies continue this magical hybrid of CGI and traditional animation techniques, as also seen in 2021's The Mitchells vs. the Machines. It's a great step forward combining the old and the new into a stylized look that allows the creators to make the best of both animation worlds.
The action is also satisfying and surprisingly well developed. The opening sequence involves Puss awakening a giant behemoth and it made me think of the exaggerated and intense action of anime series with giant kaiju monsters like in Attack on Titan. The camera will freely circle and zoom around the theater of action, heightened with exaggerated motion lines and split screens and POV swaps. I also love that the filmmakers understand the inherent qualities of what makes for good action, incorporating the personality of the characters into the situations, providing organic consequences, tailoring to the geography, and providing clear mini-goals. After introducing the secondary antagonist of greedy Jack Horner (John Mulaney), as well as Goldilocks (Florence Pugh) and the three bears (Ray Winstone, Olivia Coleman, Samson Kayo) "crimin'" gang, the movie transforms into a delightful and unexpected fantasy version of Midnight Run. There are multiple groups racing against one another to a destination, all the while jostling for supremacy and bumbling into one another's way. It makes for a fun series of events as every group has their own reasons for gaining the wishing star. Because of this, their behavior feels in-character and the cross-purpose motivation allows for fun combinations of characters getting in the way of one another and utilizing the specifics of their fantasy character details. There was a midpoint sequence combining all sides in a colorful brawl, including unicorn horns exploding into confetti upon contact, and I just felt a surge of pure incandescent joy.
In yet another of the movie's pleasant surprises, it has one of the best villains of the year as it deals with the concept of mortality with actual nuance. The main antagonist is literally Death itself, personified as a red-eyed, grinning bounty hunter wolf and voiced by Narcos' Pablo Escobar, Wagner Moura with a menacing purr. This Wolf is after Puss because he's now on his last life and the Wolf is personally offended at the idea of having multiple lives. Their first encounter makes Puss feel fear for perhaps the first time in his nine lives. In a morbidly amusing montage, we zip through Puss' previous eight lives and specifically the moments leading to their comical end. He's flippant with an unchecked ego, and Death seriously humbles him, being the first to ever land a blade on Puss in Boots, a detail he'd been bragging about even in song. From here, Puss is deathly afraid and the hairs of his body will stick up whenever he suspects the return of the Wolf, who certainly enjoys terrorizing his targets with an ominous whistle to announce his presence. So at a moment's notice, the crazy and colorful hijinks can stop from hearing that familiar yet eerie whistle. In some ways, it's a family-friendly depiction of working through trauma. The larger theme is Puss acknowledging his moral shortcomings with his many lives, the time wasted on frivolity and ego, and making the most of the time he has left. The need to re-up his lives is a fine starting motivation based upon fear, personified as trying to literally escape the scary wolf, but it's also what makes Puss confront his own behavior and want to change as well as hold himself accountable.
The heartfelt portion of the movie is its emphasis on found families, and it was done so well that I actually teared up at points. Yes, dear reader, Puss in Boots 2 had me on the verge of tears more than once. Goldilocks is the leader of her gang of squabbling thieves, but she still views herself as an orphan first, whereas the bears view her as an equal and valued member of the family and crime gang. Even her character arc comes to a poignant conclusion where she realizes that her real family isn't the one she comes from but the one who makes her feel that she belongs. This theme is also demonstrated with little Perrito (Harvey Guillen, What We Do in the Shadows TV series) as the adorable and undying optimist puppy sidekick. His selfless vantage point contrasts with Puss, and greatly annoys him, but Perrito also has his own goal. He wants to be a comfort dog, and one of the sweetest moments of the movie involves him helping Puss come back from a traumatic response through a shared moment. Even typing these words makes me tear up. The screenplay knows how to develop characters that can grow as friends and family and the drama is directly connected to well-honed characters and thoughtful story without being overly sentimental and maudlin, a slippery slope to doom many child-friendly animated efforts with messages.
Puss in Boots: The Last Wish does everything well. It's funny and colorful and exciting and meaningful and heartfelt and everything you would want in any movie, let alone one featuring a talking cat swashbuckler in tiny boots. No matter your mixed feelings on Dreamworks animated movies, or their iffy sequels, or even children's movies as a whole, I whole-heartedly recommend that everyone give this magical movie a fighting chance. The animation is gorgeous and vibrant and colorful, the vocal performances are terrific, the action is fun and well-developed, and the themes and character arcs have substance to provide meaningful layers and emotional heft. This is superior entertainment and all in about 90-some minutes. While I'd slot it below Guillermo del Toro's masterful stop-motion Pinocchio, this is a wonderful movie and one of the best to ever bear the Dreamworks mantle. It's the 2022 sequel you never knew that you needed but will be oh so happy that it rightly does.
Tags: animated, antonio banderas, comedy, fairy tale, fantasy, florence pugh, olivia colman, ray winstone, salma hayek, sequel, talking animals


industry's next generation of workers.
less on prescribing spe700 transit profescific goals.
vehicle production facility in Greenville, SC.
that will help them meet their sustainability goals."
vehicles in the NPS fleet by 30 percent by 2025 from the 2014 baseline."
To broaden the reach of these messages, OLI is coordinating the first U.S.
the road with rail transit.
safety awareness in your service area.
For more information, visit http://bit.
procedures may get in the way of building the best projects possible at the lowest cost to the public," said DOT Secretary Elaine L. Chao.
P3s or private investments in a project.
president of Port Authority Trans-Hudson Corporation.
newly-created Office of the Chairman with responsibility for managing the agency on a day-to-day basis.
was executive director of New Jersey Transit Corporation.


As the leading contractor company in the north shore of Massachusetts, we are proud to serve the city of Methuen MA for many years. Homeowners are constantly looking for an upgrade to their home. Whether it is a homeowner or commercial building, an upgrade will not only add more beauty to your home but also will improve your value of your home too. With a population of 50,000, we are constantly finding ourselves busy in this beautiful city. Feel free to check out our services that provide in Methuen down below. If you have any further question please get in touch!
While most homeowners typically don't check their roofing as it is a dangerous thing to do. Consider hiring a professional to inspect the entire roof to make sure it is installed properly. A compromised roofing can lead to leaks, molds or unwanted bugs and insects to your home. Quinns Construction is more than happy to provide a free estimate to your roofs.
When making important home improvement decisions, siding is often overlooked by homeowners. We advise you to take Siding seriously, a high-quality siding solution can go a long way when replacing your current worn down siding. At Quinn's Construction, we will take the time to educate you to understand which siding you need. If your house is in need of a fix up contact us down below!


Lech Kaczynski reportedly backtracked at a news conference in Helsinki where he is currently visiting. His original statement was published by Reuters on Wednesday.
Russia's Foreign Ministry says the EU has to decide for itself whether it wants to continue partnership talks with Russia.
NATO has refused to comment on Kaczynski's statement saying the reaction should come from within the European Union.
The Polish Prime Minister, Donald Tusk, is expected to make a special statement on the issue. Tusk entered office in October promising to improve relations with Russia, after they soured under the previous Prime Minister.
The previous Russia-EU agreement expired last December, but was extended for another year due to a Polish veto on new negotiations.
In 2007 Poland blocked talks between Russia and the EU after Russia imposed a ban on Polish meat imports. Russia later lifted the meat ban, but Poland's veto remains in force.
Boris Malakhov, Russian Foreign Ministry spokesman, says the new cooperation agreement is as important to the EU, as it is to Russia.
"We are ready for closer and more sufficient co-operation with the EU in all spheres – the sphere of security, in political, economical, cultural and humanitarian ones. But I must stress that Russia is interested in the new agreement with the EU not more, than the European Union itself. And it is the problem for the European Union to decide whether they are ready – and when they are ready – to negotiate the agreement which will be mutually beneficial," said Malakhov.


1. How many seasons do you simulate for past seasons?
2. How are postponed games handled?
3. What about strike seasons?
4. Where is the Federal League?
5. Why did you only go back to 1903?
6. Where did you get all the game scores?
7. How are the top collapses determined?
8. How are the top comebacks determined?
9. How do you project playoff chances for expansion teams at the start of the season?
10. How do you project playoff chances for teams which have moved at the start of the season?
11. Are game scores available for past seasons?
12. Can I purchase tickets for past seasons?
13. Where can I send feedback?
For the current season, we simulate the remainder of the season one million times at the completion of each game. However, for historical seasons prior to 2005, we have only simulated the remainder of each season 10,000 times for each day of the regular season. This is to keep our servers from overheating! The total number of simulations run for the years before the 2005 season add up to about 200 million.
For most seasons, the simulation treats postponed games as if they will be played at the end of the season if needed due to postseason implications. The exceptions are in 1935 and 1938, when it appears that postponed games were not made up, as well as for seasons prior to 1909. Also, the 1918 season was shortened due to World War I, so postponed games were not made up for that season either. For these seasons, the simulation treats postponed games as if they were not even scheduled.
There have been a number of strike-shortened seasons: 1972, 1981, 1994, and 1995.
In 1972, lost games were not made up, and some teams ended up playing more games than others. For example, even though the Tigers played one more game than the Red Sox and led the Sox by half a game, the extra game was not made up and the Tigers won the division. For this season, our simulation assumed that extra games would not be made up, to match reality.
The 1981 strike occurred in the middle of the season, which was then broken up into two halves, with postseason teams chosen from each half of the season. We didn't even try to model the playoff chances for this season! We do have the composite season standings available for 1981, but without any of the playoff probabilities.
In 1994 the season ended early due to a strike, with the World Series eventually being called off. For this season we've listed playoff chances as if the season was meant to end when it did, so that fans of the Montreal Expos could see a 100% next to their team. However, we didn't take this season into account when evaluating our simulation model or when considering the top comebacks or collapses, since there was no postseason.
The same strike continued into 1995, so that the 1995 season was shortened. However, the shortened schedule was balanced so that games postponed during the season would have been made up if needed.
Sorry, we didn't consider the Federal League teams from 1915-1916 in our simulations.
We started with 1903 because that was the first season that the World Series was played. And because the Red Sox won the Series.
The box scores for all games between 1903 and 2004 were obtained from Retrosheet.org, which catalogs box scores and lots of other historical baseball data going back to 1871. Special thanks also to Sean Forman, of Baseball-reference.com, for early help in our project as well.
We have maintained game scores ourselves since 2005, when we began publishing our playoff projections.
We sorted all teams that did not make the playoffs by their peak playoff chances (POFF) for that particular season, considering dates from June 1st through the end of the season. We chose June 1st because it seemed like a reasonable point to consider a season mature enough to warrant a "collapse".
The top collapses are listed here, using both the "smart" mode and "dumb" mode models.
We sorted all teams that did make the postseason by their minimum playoff chances (POFF) for that particular season, considering dates from June 1st through the end of the season. Again, we chose June 1st because it seemed like a reasonable point to consider a season mature enough to warrant a "comeback".
The top comebacks are listed here, using both the "smart" mode and "dumb" mode models.
Expansion teams don't typically do very well in their first season. Normally we use the team's performance data from the previous season at the start of a season, but in the case of expansion teams we have averaged the performance of all first-year expansion teams over the past century and used the results as a starting point.
We use the team's previous year performance from their previous location to kick off the season. For example, for the 1958 Los Angeles Dodgers, we used the stats from the 1957 Brooklyn Dodgers at the start of the 1958 season. Likewise, we used the 1953 St. Louis Browns data for the 1954 Baltimore Orioles to model the start of the 1954 season.
Yes - you can access the individual game scores through each team page, or also by going to the Scoreboard link for a particular year.
Um, no. You can purchase tickets for the current season, though, from any team page!
We would love to hear from you! Please send feedback to info@coolstandings.com, or alternatively you can post your thoughts right here for others to read! Go to coolforums, the coolstandings.com message board.


text:
from eurreca.models import Study, Genotype, Phenotype, Panel, Interaction, Link_to_dbSNP
from eurreca.forms import StudyFormSet, StudyForm, GenotypeFormSet, GenotypeForm, PhenotypeFormSet, PhenotypeForm, PanelForm, PanelFormSet, InteractionForm, InteractionFormSet
from itertools import chain
import operator, time, urllib2, sys
from django.db.models import Q
from django.shortcuts import render
from django.conf import settings
from django.core.exceptions import ValidationError

def process_clientside_studydata(jason, study, study_formset, request):
    saved_objects = {'genotype':{},'phenotype':{},'panel':{}}
    interactionValues = {}
    try:
        # Non-interaction fields first, so that all necessary primary keys can be known
        ''' 'forms' layout is as follows:
                {
                    'genotype':
                        {
                            '0': a form,
                            '1':, a second form,
                            ...
                        },
                    'phenotype':
                        {
                            '0':...
                        },
                    ...
                }
            However, the 'interaction' entry that will
            be added later, is a list...
        '''

        forms = add_non_interaction_forms(jason, study)
        error_messages = []

        for key in forms:
            for formnumber in forms[key]:
                form = forms[key][formnumber]
                if not form.is_valid():
                    error_messages.append(form.errors.items())
                else:
                    obj = form.save()
                    # for later use in 'set_interaction_relations'
                    saved_objects[key][str(formnumber)] = obj

        # Interaction fields

        forms['interaction'] = []
        forms = add_interaction_forms(jason, study, saved_objects, forms)
        saved_objects['interaction'] = []
        for count, form in enumerate(forms['interaction']):
            interactionValues[count] = get_interaction_values(str(count), forms, jason['interactionRelations'], form)
        for count, form in enumerate(forms['interaction']):
            if not form.is_valid():
                error_messages.append(form.errors.items())
            else:
                obj = form.save(commit=False)
                obj.save()
                if count < len(jason['interactionRelations']):
                    if jason['interactionRelations'].has_key(str(count)):
                        obj = set_interaction_relations(obj, saved_objects, interactionValues[count])
                    obj.save()
                    saved_objects['interaction'].append(obj)

        if not len(error_messages) == 0:
            raise ValidationError('Some of the forms did not validate. {0}'.format(error_messages))

        return forms
    except ValidationError as inst:
        print "\nin eurrecca.utils: ",inst,inst.args
        exception = []
        if forms.has_key('interaction'):
            print '\n\ninteraction key found\n\n'
            exception = [inst,
                {'formset' : study_formset,
                'formsetGenotype' : forms['genotype'],
                'formsetPhenotype' :  forms['phenotype'],
                'formsetPanel' :  forms['panel'],
                'formsetInteraction' :  forms['interaction'],
                'interactionValues' : interactionValues}]
        else:
            print '\n\nNO interaction key found\n\n'
            exception = [inst,
                {'formset' : study_formset,
                'formsetGenotype' : forms['genotype'],
                'formsetPhenotype' :  forms['phenotype'],
                'formsetPanel' :  forms['panel']}]
        raise ValidationError(exception)

def set_interaction_relations(obj, saved_objects, interactionValuesMap):
    # At this moment in time we are not yet dealing with lists, but single items
    if interactionValuesMap['interactCache'].has_key('genotype'):
        obj.genotypes.add(saved_objects['genotype'][interactionValuesMap['interactCache']['genotype']])
    if interactionValuesMap['interactCache'].has_key('phenotype'):
        obj.phenotypes.add(saved_objects['phenotype'][interactionValuesMap['interactCache']['phenotype']])
    if interactionValuesMap['interactCache'].has_key('panel'):
        obj.panels.add(saved_objects['panel'][interactionValuesMap['interactCache']['panel']])
    return obj

def get_interaction_values(idx, forms, relations_lists, form):
    # At this moment in time we are not yet dealing with lists, but single items
    relations_list = []
    return_map = {}
    return_map['interactCache'] = {}
    if relations_lists.has_key(str(idx)):
        relations_list = relations_lists[str(idx)]
        if not relations_list['genotype'] == -1:
            index = str(relations_list['genotype'])
            return_map['interactCache']['genotype'] = index
            return_map['gene'] = forms['genotype'][index].data['gene']
            return_map['snp_ref'] = forms['genotype'][index].data['snp_ref']
            return_map['snp_variant'] = forms['genotype'][index].data[
                'snp_variant']
        if not relations_list['phenotype'] == -1:
            index = str(relations_list['phenotype'])
            return_map['interactCache']['phenotype'] = index
            return_map['phenotype_name'] = forms['phenotype'][index].data[
                'phenotype_name']
        if not relations_list['panel'] == -1:
            index = str(relations_list['panel'])
            return_map['interactCache']['panel'] = index
            return_map['panel_description'] = forms['panel'][index].data[
                'panel_description']

    # Set regular interaction fields, even if it has no relations
    for field in form:
        if (field.name=='genotypes' or field.name=='phenotypes' or field.name=='panels' or
            field.name=='id'):
            continue
        else:
            return_map[field] = field.value()
    return return_map

def add_non_interaction_forms(jason, study):
    # Fully functional
    forms = {'genotype':{},'phenotype':{},'panel':{}}
    count = sys.maxint
    for key1 in jason:
        if not forms.has_key(key1):
            # 'interaction' key is not yet present at this point
            continue
        for key2 in jason[key1]:
            form = None
            if key1 == 'genotype':
                form = GenotypeForm(Genotype.objects.none())
            if key1 == 'phenotype':
                form = PhenotypeForm(Phenotype.objects.none())
            if key1 == 'panel':
                form = PanelForm(Panel.objects.none())
            if not form == None:
                form.data['study'] = study.id
                for field in form:
                    if jason[key1][key2].has_key(field.name):
                        form.data[field.name] = jason[key1][key2][field.name]
                        if form.data[field.name] == 'null':
                            form.data[field.name] = None
                forms[key1][key2] = form
            count -= 1
    return forms

def add_interaction_forms(jason, study, saved_objects, forms):
    # Does not set all fields yet
    forms['interaction'] = []
    keylist = jason['interaction'].keys()
    keylist.sort()
    for key1 in keylist:
        form = InteractionForm(Interaction.objects.none())
        form.data['study'] = study.id
        for field in form:
            if (field.name == 'genotypes' or field.name == 'phenotypes'
                or field.name == 'panels'):
                continue
            if jason['interaction'][key1].has_key(field.name):
                form.data[field.name] = jason['interaction'][key1][field.name]
                if form.data[field.name] == 'null':
                    form.data[field.name] = None
        forms['interaction'].append(form)
    return forms

def errors_to_string(errors):
    returnMessage = ''
    for item in errors:
        returnMessage += "Field '"+item[0]+"': "
        for error in item[1]:
            returnMessage += error+" "
        returnMessage += ' '
    return returnMessage

def get_interactionValues_from_formsets(fs):
    ''' Return variable is formatted as follows:
        {
            interaction id : {
                field       : value,
                other field : other value,
                ... : ...,
                interactCache : {
                    'panels'        : value,
                    'phenotypes'    : value,
                    'genotypes'     : value
                }
            }
        }

    '''
    interactionValues = {}
    for form in fs['interaction']:
        id = form['id'].value()
        interactionValues[id] = {}
        interactionValues[id]['interactCache'] = {}
        for field in form:
            if field.name=='genotypes' or field.name=='phenotypes' or field.name=='panels':
                for f in fs['genotype']:
                    if len(form['genotypes'].value()) > 0 and f['id'].value() == form['genotypes'].value()[0]:
                        interactionValues[id]['interactCache'][
                            'genotypes'] = f['id'].value()
                        interactionValues[id]['gene'] = f['gene'].value()
                        interactionValues[id][
                            'snp_ref'] = f['snp_ref'].value()
                        interactionValues[id][
                            'snp_variant'] = f['snp_variant'].value()
                        break
                for f in fs['phenotype']:
                    if len(form['phenotypes'].value()) > 0 and f['id'].value() == form['phenotypes'].value()[0]:
                        interactionValues[id]['interactCache'][
                            'phenotypes'] = f['id'].value()
                        interactionValues[id][
                            'phenotype_name'] = f['phenotype_name'].value()
                        break
                for f in fs['panel']:
                    if len(form['panels'].value()) > 0 and f['id'].value() == form['panels'].value()[0]:
                        interactionValues[id]['interactCache'][
                            'panels'] = f['id'].value()
                        interactionValues[id][
                            'panel_description'] = f['panel_description'].value()
                        break
            if field.name=='id':
                continue
            else:
                interactionValues[id][field.name] = field.value()

    return interactionValues

def get_formset_maps_by_id(id):
    ''' Return variable layout is as follows:
            {
                'genotype':
                    {
                        '0': a form,
                        '1':, a second form,
                        ...
                    },
                'phenotype':
                    {
                        '0':...,
                        ...
                    },
                'panel':
                    {
                        '0':...,
                        ...
                    },
                'interaction': [form, different form]
                'study': [study form]
            }
    '''
    '''formSets = {'study':formset,'genotype':formsetGenotype,
        'phenotype':formsetPhenotype,'panel':formsetPanel,
        'interaction':formsetInteraction}
        '''
    returnFormSets = {'study':[],'genotype':{},
        'phenotype':{},'panel':{},
        'interaction':[]}
    inputFormSets = get_formsets_by_id(id)
    for index, form in enumerate(inputFormSets['genotype']):
        returnFormSets['genotype'][index] = form
    for index, form in enumerate(inputFormSets['phenotype']):
        returnFormSets['phenotype'][index] = form
    for index, form in enumerate(inputFormSets['panel']):
        returnFormSets['panel'][index] = form
    returnFormSets['study'] =  inputFormSets['study']
    returnFormSets['interaction'] =  inputFormSets['interaction']
    return returnFormSets

def get_formsets_by_id(id):
    qs = Study.objects.filter(pk=id)
    formset = []
    key = id
    if not len(qs) == 0:
        formset = StudyFormSet(
            queryset=qs,
            prefix="study")

    qs = Genotype.objects.filter(study=key).order_by('id')
    formsetGenotype = []
    if not len(qs) == 0:
        formsetGenotype = GenotypeFormSet(
            queryset=qs,
            prefix="genotype")

    qs = Phenotype.objects.filter(study=key).order_by('id')
    formsetPhenotype = []
    if not len(qs) == 0:
        formsetPhenotype = PhenotypeFormSet(
            queryset=qs,
            prefix="phenotype")

    qs = Panel.objects.filter(study=key).order_by('id')
    formsetPanel = []
    if not len(qs) == 0:
        formsetPanel = PanelFormSet(
            queryset=qs,
            prefix="panel")

    qs = Interaction.objects.filter(study=key).order_by('id')
    formsetInteraction = []
    if not len(qs) == 0:
        formsetInteraction = InteractionFormSet(
            queryset=qs,
            prefix="interaction")

    formSets = {'study':formset,'genotype':formsetGenotype,
        'phenotype':formsetPhenotype,'panel':formsetPanel,
        'interaction':formsetInteraction}
    return formSets

def get_formsets_from_model_objects(list):
    # Does not return empty formsets
    q_objects = {'genotype':[],'phenotype':[],'panel':[],'study':[],
        'interaction':[]}
    for item in list:
        t = type(item)
        if t == Interaction:
            q_objects['interaction'].append(Q(pk=item.id))
            continue
        if t == Phenotype:
            q_objects['phenotype'].append(Q(pk=item.id))
            continue
        if t == Panel:
            q_objects['panel'].append(Q(pk=item.id))
            continue
        if t == Genotype:
            q_objects['genotype'].append(Q(pk=item.id))
            continue
        if t == Study:
            q_objects['study'].append(Q(pk=item.id))
            continue

    formSets = get_formsets_from_q_objects(q_objects)
    return formSets

def get_formsets_from_q_objects(q_objects):
    formSets_0 = {'genotype':None,'phenotype':None,'panel':None,'study':None,
        'interaction':None}

    for key in formSets_0:
        filter = None
        if len(q_objects[key]) == 0:
            continue
        else:
            filter = reduce(operator.or_, q_objects[key])
            if key == 'study':
                q = Study.objects.filter(filter)
                if q:
                    formSets_0[key] = StudyFormSet(
                        queryset=q,
                        prefix=key)
                continue
            if key == 'genotype':
                q = Genotype.objects.filter(filter)
                if q:
                    formSets_0[key] = GenotypeFormSet(
                        queryset=q,
                        prefix=key)
                continue
            if key == 'phenotype':
                q = Phenotype.objects.filter(filter)
                if q:
                    formSets_0[key] = PhenotypeFormSet(
                        queryset=q,
                        prefix=key)
                continue
            if key == 'panel':
                q = Panel.objects.filter(filter)
                if q:
                    formSets_0[key] = PanelFormSet(
                        queryset=q,
                        prefix=key)
                continue
            if key == 'interaction':
                q = Interaction.objects.filter(filter)
                if q:
                    formSets_0[key] = InteractionFormSet(
                        queryset=q,
                        prefix=key)
                continue
    # Return non-empty formsets
    formSets_1 = {'genotype':None,'phenotype':None,'panel':None,'study':None,
        'interaction':None}
    for key in formSets_1:
        if not formSets_0[key] == None:
            if len(formSets_0[key])>0:
                formSets_1[key] = formSets_0[key]
    return formSets_1

def get_model_from_search_term(field_name):
    from_term_to_model_type = {
        "Study id":"study",
        "Pubmed id":"study",
        "Year of publication":"study",
        "Micronutrient":"study",
        "Gene":"genotype",
        "SNP ref":"genotype",
        "Phenotype name":"phenotype",
        "SNP variant":"genotype"
    }
    return from_term_to_model_type[field_name]

def get_field_from_search_term(field_name):
    from_string_to_proper_field_name = {
        "Study id":"study",
        "Pubmed id":"pubmed_id",
        "Year of publication":"year_of_publication",
        "Micronutrient":"micronutrient",
        "Gene":"gene",
        "SNP ref":"snp_ref",
        "Phenotype name":"phenotype_name",
        "SNP variant":"snp_variant"
    }
    return from_string_to_proper_field_name[field_name]

def get_year_list():
    ''' Returns a list containing, in integer form, each year from
        the year now+1 to the year now-year_list_length+1 '''
    year_list_length = 60
    try: # Try to find ovverriding settings
        year_list_length = settings.YEAR_LIST_LENGTH
    except Exception:
        year_list_length = 60
    year_list = []
    now = time.localtime()
    for n in range(year_list_length):
        year_list.append(now.tm_year - n + 1)
    return year_list

def get_autofill_lists():
    ''' Returns a dict containing lists of field contents that
        can be used for autofill purposes.
        Will return lists for the following field names:

        micronutrient (from study database objects)
        endpoint (from study)
        journal_title (from study)
        study_type (from study)
        environmental_factor (from study)
        gene (gene name, used in both genotype and interaction tables,
                from genotype)
        phenotype_name (used in both phenotype and interaction tables,
                from phenotype)
        statistical_model (from interaction)
        year_of_publication ( see get_year_list/1 )
    '''
    lists = {
        'micronutrient':[],
         'endpoint':[],
         'journal_title':[],
         'study_type':[],
         'environmental_factor':[],
         'gene':[],
         'phenotype_name':[],
         'statistical_model':[]
    }
    # micronutrient, endpoint, journal_title, study_type, environmental_factor
    temp_list = Study.objects.raw('''SELECT id, micronutrient, endpoint,
                                     journal_title, study_type,
                                     environmental_factor FROM eurreca_study''')
    for entry in temp_list:
        lists['micronutrient'].append(entry.micronutrient)
        lists['endpoint'].append(entry.endpoint)
        lists['journal_title'].append(entry.journal_title)
        lists['study_type'].append(entry.study_type)
        lists['environmental_factor'].append(entry.environmental_factor)

    # gene
    temp_list = Genotype.objects.raw('''SELECT id, gene
                                        FROM eurreca_genotype''')
    for entry in temp_list:
        lists['gene'].append(entry.gene)

    # phenotype_name
    temp_list = Phenotype.objects.raw('''SELECT id, phenotype_name
                                         FROM eurreca_phenotype''')
    for entry in temp_list:
        lists['phenotype_name'].append(entry.phenotype_name)

    # statistical_model
    temp_list = Interaction.objects.raw('''SELECT id, statistical_model
                                         FROM eurreca_interaction''')
    for entry in temp_list:
        lists['statistical_model'].append(entry.statistical_model)

    # Removing duplicate and empty list items
    for key in lists:
        lists[key] = clean_list(list(set(lists[key])), ['', 'None', None])

    # Add year list
    lists['year_of_publication'] = get_year_list()

    return lists

def clean_list(list, dirty_bits = []):
    ''' Returns it's list argument cleaned of 'None's, or cleaned of whichever
        items were listed in 'dirty_bits'.
    '''
    if dirty_bits == []:
        return [item for item in list if item != None]
    else:
        return [item for item in list if not item in dirty_bits]

def substract_list_from_list(list1, list2):
    ''' Returns a new list that contains all the items in list1 that are not
        present in list2
    '''
    return [a for a in list1 if not a in list2]

def call_entrez(snp_ref):
    if snp_ref.startswith('rs'):
        snp_ref = snp_ref.strip('rs')
    search_url = 'http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=snp&id={0}&report=GENB'.format(snp_ref)
    requested_url = 'http://www.ncbi.nlm.nih.gov/projects/SNP/snp_ref.cgi?searchType=adhoc_search&type=rs&rs=rs{0}'.format(snp_ref)
    error = False
    error_code = ''
    try:
        try:
            fileHandle = urllib2.urlopen(search_url)
            fileHandle.close()
        except urllib2.HTTPError, e:
            error = True
            error_code = e.code
    except IOError:
        #print 'Cannot open URL %s for reading' % search_url
        str1 = 'error!'
        return {'message': 'dbSNP Entrez service appears to be unavailable.', 'messageType': 'negative'}
    if error:
        #print 'Error occurred:', error_code
        if error_code==400:
            return {'message': 'No such snp ref could be found in dbSNP.', 'messageType': 'negative'}
        else:
            return {'message': 'dbSNP Entrez service appears to be unavailable.', 'messageType': 'negative'}
    else:
        #print 'search succesful'
        l = Link_to_dbSNP(snp_ref=snp_ref, url=requested_url)
        l.save()
        return {'message': 'Requested URL: <a href="{0}">{0}</a>'.format(requested_url), 'messageType': 'positive'}

def get_list_of_snp_refs_from_formsets(fs):
    list_of_snp_refs = []
    for f in fs['genotype']:
        list_of_snp_refs.append(f['snp_ref'].value())
    return list_of_snp_refs

def get_snp_ref_to_dbSNP_url_dict(list_of_snp_refs):
    #print 'get_snp_ref_to_dbSNP_url_dict:',list_of_snp_refs
    if list_of_snp_refs == []:
        return {}
    q = []
    for ref in list_of_snp_refs:
        if ref == None or ref == '':
            continue
        if ref.startswith('rs'):
           ref = ref.strip('rs')
        #print 'about to look for ref',ref
        q.append(Q(snp_ref = ref))
    if q == []:
        return {}
    filter = reduce(operator.or_, q)
    #print filter
    items = Link_to_dbSNP.objects.filter(filter)
    results = {}
    for item in items:
        results[item.snp_ref] = item.url
    return results

def get_Link_to_dbSNP_by_ref(ref):
    if ref == None or ref == '':
        return None
    if ref.startswith('rs'):
       ref = ref.strip('rs')
    link = None
    try:
        link = Link_to_dbSNP.objects.get(snp_ref=ref)
        return link
    except:
        return None

def get_mouseover_text():
    mouseover_text = {}
    mouseover_text["significant_associations"] = "Record details of any statistically significant associations or interactions between genotype and either diet, status, environmental factors or health outcomes reported in the study."
    mouseover_text["ratio_type"]  = "Select whether the paper reports hazard ratios (HR), odds ratios (OR) or relative risk (RR)."
    mouseover_text["ci_lower"] = "Enter the lower end 95% CI (confidence interval) for either the HR, OR or RR reported previously."
    mouseover_text["ci_upper"] = "Enter the upper end 95% CI (confidence interval) for either the HR, OR or RR reported previously."
    mouseover_text["p_value"] = "Enter the p-value for interaction for the previously reported HR, OR or RR.";
    mouseover_text["p_value_for_trend"] = "Enter the p-value for trend (statistical significance) for the previously reported HR, OR or RR."
    mouseover_text["statistical_model"] = "Enter information on the statistical model used to evaluate the data. Note: the paper may report the use of more than one statistical approach e.g. a different model may be used to evaluate 'trends' as opposed to 'interactions'."
    mouseover_text["gene"] = "Enter the commonly used name for the gene e.g. MTHFR, HFE"
    mouseover_text["snp_ref"] = "Enter the SNP reference number, IDs beginning with rs are SNPs from the NCBI SNPs database. If you enter a new SNP reference number and this field gets a green icon, the SNP has been found in the NCBI SNPs database."
    mouseover_text["snp_variant"] = "Enter details of the SNP variant where provided e.g. AA, TT or AT."
    mouseover_text["snp_name"] = "Enter the SNP name. In addition to the SNP reference (accession) number or HGVS number, papers sometimes report a SNP name which may provide information on the location of the SNP in relation to the gene. The SNP name is sometimes reported concatenated with the gene name e.g. MAT1A_d18777."
    mouseover_text["phenotype_name"] = "Describe the relevant phenotype or biomarkers of status reported. Examples of phenotype include BMI, bone density."
    mouseover_text["intake_data"] = "Enter details of the dietary micronutrient intake if reported. This may be reported as supplemental micronutrient, habitual intake, or both."
    mouseover_text["environmental_factor"] = "Enter details of any relevant environmental factor e.g. habitual dietary intake, status, physical activity, smoking etc."
    mouseover_text["comments"] = "Enter details of potentially useful information related to the paper or the reported study which has not been captured elsewhere."
    mouseover_text["study_type"] = "Select the type of study e.g. nested case control, prospective cohort etc. from the list. Where the design is unusual or not listed, please include a description in the comments field."
    mouseover_text["number_of_participants"] = ""
    mouseover_text["journal_title"] = "Enter the title of the journal"
    mouseover_text["paper_title"] = "Enter the full title of the paper."
    mouseover_text["endpoint"] = "Enter details of the health outcome which is linked to the SNP under investigation e.g. stroke, coronary heart disease etc."
    mouseover_text["gender"] = ""
    mouseover_text["population"] = "Enter details of the population group e.g. where the study was undertaken etc. and provide numbers of cases and controls as appropriate e.g. US PHS study; healthy US physicians (cases:1286; controls: 1267)."
    mouseover_text["micronutrient"] = "List the EURRECA priority micronutrient for which the paper is relevant; separate micronutrients with a comma where the paper is relevant to more than one: folate, B12"
    mouseover_text["authors"] = "Enter details of the authors of the paper, but limit names to the first three authors."
    mouseover_text["year_of_publication"] = "Enter the year of publication of the paper."
    mouseover_text["study_id"] = "Add the first author and year, as detailed in the following example Smith1999"
    mouseover_text["allele"] = ""
    mouseover_text["mutation"] = ""
    mouseover_text["zygosity"] = ""
    mouseover_text["number_of_people_with_genotype"] = ""
    mouseover_text["genotype_frequency"] = ""
    mouseover_text["estimated_overal_frequency"] = ""
    mouseover_text["genotype_details"] = ""
    mouseover_text["pubmed_id"] = ""
    return mouseover_text

redpajama_set_name: RedPajamaGithub


Del Oro is closely monitoring the status of the drought. This page will be updated as we get additional news regarding specific water supplies in each District.
Effective April 2015, Del Oro has implemented Rule 14.1: Water Shortage Contingency Plan. All Del Oro Water Company customers are asked for their cooperation in conserving water as ordered by Governor Edmund G. Brown Jr. He has proclaimed (and extended) a State of Emergency and has mandated a continued statewide reduction in water use. Please click on your district, below, to view the notices which were enclosed with all July 2016 bills describing specific measures customers should take to conserve water. Your cooperation is greatly appreciated.
On April 26, 2017, the State Water Resources Control Board voted to rescind the water supply stress test requirements and remaining mandatory conservation standards for urban water suppliers. The action was in response to Governor Brown's announcement earlier this month ending the drought state of emergency and transitioning to a permanent framework for making water conservation a California way of life. Current prohibitions against wasteful water use practices and requirements for monthly water use reporting remain in place. The current prohibitions against wasteful water use practices include outdoor watering during or within 48 hours after a rain event; hosing down a sidewalk instead of using a broom or a brush; and overwatering a landscape to where water is running off onto the sidewalk or into the gutter.
Rebates are available from the State of California for turf replacement and low-flow toilets in single-family residences (homes). For information and to apply, visit www.SaveOurWaterRebates.com.
On April 7, 2017, Governor Brown lifted the January 17, 2014 drought declaration for most of California (Article). More information about the drought can be found at the California Department of Water Resources' Drought Information page.


Last night rumor came out that both Woodley and Diaz had entered fight camp. Journalists, fans, and fighters began to speculate that Woodley and Diaz were training for each other. The rumor has it that Woodley and Diaz are set to face off at the end of the year at UFC 219 in Las Vegas. With the UFC without a main event at UFC 219, this fight could live up to the billing of a main event. Diaz is a huge name in the MMA world especially after his two contests with lightweight champion Conor McGregor. Woodley did an interview with FloCombat saying how he may be announcing a fight soon, but it was not one of the obvious contenders.
The question that is up for debate, is Diaz worthy of a title shot at 170? I guess it depends on what lens you look at being worthy of a title shot. If you are purely looking at wins and losses at 170 pounds there is no way you can say Diaz is a viable contender. If you are looking at drawing power and if it can hold the billing for a PPV main event then Diaz is definitely worthy. If you look at the 170-pound division at the moment there is no true #1 contender at the moment. In Woodley's defense for taking this fight, he is one of the few champions who has continuously defended his belt against the rightful #1 contender. He defended his belt twice against the hardest style matchup for anyone in the division in Stephen "Wonderboy" Thompson and solved the puzzle that no one could figure out in Demain Maia. So for Woodley to take a "money fight" it is not that outlandish. Overall I think this is a win for the UFC, the two fighters involved, and the fans who want to see Diaz back in the octagon. The real only losers are the top contenders like Robbie Lawler, Rafael Dos Anjos, Stephen Thompson, and Colby Covington.
Yesterday, news came out that Frankie Edgar was forced to pull out of the UFC 218 main event. Frankie Edgar was looking to dethrone Max Holloway and take home the featherweight title. Edgar would be on of the few to capture two titles in two different divisions if he was to be successful. In an Instagram post, Frankie Edgar told the fans that he would be back to full contact in six weeks.
This is a real blow to the UFC card losing the main event and we will see if they find a replacement for the fight. Cub Swanson did have a fight scheduled in December with Brian Ortega so could the UFC take him off that card and move him to UFC 218 to challenge for the featherweight title. Other fighters coaches analysts and fans have clamored for Swanson to replaced Edgar at UFC 218. Swanson went to Twitter with a live reaction when he heard the news of Edgar pulling out.
Then hours after this more news broke that Dominick Cruz had to pull out in his fight at UFC 219 versus Jimmie Rivera. The news came out from Ariel Helwani that Cruz had suffered a broken arm and was forced to pull out.
Dominick Cruz is out of the UFC 219 fight vs. Jimmie Rivera, sources say. Broken arm. TBD at this time what they'll do with Rivera.
No one has any idea if they find another fight for Jimmie Rivera at UFC 219 or if they scratch him off the card. One possibility would be for them to scratch Rivera off the card and have him fight Cody Garbrandt in the spring of 2019 to decide who is the next to challenge TJ Dillashaw. Hopefully, the UFC can stay away from the injury bug for the rest of 2017 because this year injuries or other issues have caused many fights to fall through.
UFC 217 was the craziest night of the year for fighting. Not because of just the results, but how the results happened. The atmosphere at Madison Square Garden was electric and made the UFC 217 fight card unforgettable.
Hendricks and Paulo Costa kicked off the main card and it was clear the size advantage leaned towards Costa. Costa looked noticeably bigger standing next to Hendricks as even the commentators went on to say how Costa looked like a light heavyweight and Hendricks should be at welterweight. Hendricks was able to land some shots in the first round, but Costa never looked to be in danger as he got the TKO victory over Hendricks in Round 2.
In the next fight, Stephen "Wonderboy" Thompson was able to keep Jorge Masvidal from getting inside to land heavy shots on Thompson. Thompson used incredible footwork and unorthodox attacks to keep Masvidal off balance and earn the unanimous decision. After watching a very talented striker in Masvidal struggle to be comfortable against Thompson credit should go to UFC Welterweight champion Tyron Woodley for being able to defend his belt twice against this awkward style. After this was where things started to become absolutely unthinkable.
In the words of the light heavyweight champion Daniel Cormier, who was on the call for UFC 217, "THUG ROSE! THUG ROSE! THUG ROSE!" This fight left everyone at a loss for words. No one expected this performance from Rose over Joanna and especially in this fashion. Most people didn't give Namajunas any chance of taking out the "strawweight queen". For those that did think Rose had a realistic chance they figured it would be through a grappling exchange where Rose has a knack for being able to take her opponents back. I don't think anyone except Rose and her coaches Trevor Whitman and boyfriend Pat Barry thought that they could put Joanna away from the feet in Round 1! When Joanna fell to the devastating left hook the crowd sat speechlessly and when referee Big John McCarthy broke up the onslaught MSG absolutely erupted. Credit to Rose on a remarkable performance. This could have been the card and people would have went home happy, but there was still two more title fights on the card.
This was the fight I feel most fight fans were looking forward to the most on the card. Everyone was invested in the bad blood between the two, their teams, and the unique skill set both posses. In the first round, both were landing shots, but Garbrandt tended to land the harder shots. At the end of round one Cody dropped TJ and TJ was able to protect himself to get out of round one. Going into the second round TJ was able to land a head kick on Cody to rock him. Cody was able to recover until later in the round Dillashaw was able to land a right hand that dropped Garbrandt and after some ground pound was stopped by the referee. After the fight, both fighters embraced and showed true class as TJ Dillashaw was now the new bantamweight champion of the world.
Now for the return of Georges St. Pierre as no one really knew what to expect going into this fight. Was Georges going to look like the Georges of before or was ring rust going to be real? Answer: He looked better than he ever did before. St. Pierre was able to win round one with a good mixture of his top-level wrestling and staying behind his jab. In round two we started to see some momentum swing towards Bisping, and Georges looked to be slowing down. In round three St. Pierre was able to land a short left hook and after some ground and pound St. Pierre was able to take Bisping's back and choke him unconscious. All of Madison Square Garden was on their feet as now everyone knew GEORGES ST. PIERRE IS BACK!
Dana White was on the Wall Street Journal's podcast and talked about the possibility of moving towards a streaming service for the UFC once the Fox deal ends in early 2018. The UFC already has UFC Fight Pass but is looking towards expanding it with their own platform. In the podcast, Dana went on to say, "With technology, we're getting to the point that I always dreamed about. I always sued to say, we'll take this thing all around the world, build a fanbase, build up some talent in every country around the world, and then we'll get to a point in time where everyone can watch it at the same time, on the same platform. We're getting to that day. [on our own platform], on a type of Over-The-Top platform." By the sounds of what Dana is saying it seems like the UFC is considering doing something similar to what the WWE currently does with the WWE Network. The WWE has gone completely to an online streaming network with on-demand options as well through the network. As of April 2017, the WWE Network currently has 1.66 million paid subscribers to the network.
What does this mean for the UFC and its fans? For the fans, this would be amazing. With signing up for the subscription-based network, pay per views would be included in the fee. This is something that would allow the fans to view all events as it would be like a Netflix subscription payment plan. Expecting fans to pay 60 dollars a month sometimes even twice a month for two Saturday night cards just seems unrealistic. Last week, I wrote about possible solutions to fix the recently low pay per view numbers that you can view here.
In the interview with the Wall Street Journal White eluded to how the technology of today is so different than it has been in the past. He mentions how the evolution of technology and the way consumers consume entertainment is not through your typical "Channel 3" or "Channel 5″. The UFC President went on to say, " Now what's crazy about television these days — I have DirectTV and I have cable, so I have 2,000 channels right? And nothing's on. Nothing's on. I think we have the type of content that people will watch." White also mentioned his kids saying how they do not watch television and everything they do is on their phone. This is the evolution of technology where everyone has access to everything right at their fingertips.
If you want to check out the whole interview below is the interview with the Wall Street Journal.
In the main event of the UFC Fight Night Gdansk Poland unranked Darren Till takes out #6 Donald "Cowboy" Cerrone. Till is now on everyone's radar after an impressive, dominant, first round TKO victory over Cerrone. Below is the rest of the results of the preliminary card and main card in Poland!