Splunk is a tool to search, report, monitor and analyze real-time streaming and historical IT data. It collects logs from a variety of sources and makes them searchable in a unified interface. For downloads and more information, visit the Splunk homepage.
This is one of the best security tools we have. Real Time monitoring of servers isn't really what it's good at, but the sheer power of this thing is incredible.
It can also scale endlessly - they have the ability to cluster.
5 minutes to learn and a lifetime to master. It is the single best tool we have purchased in the last 6 years. It is expensive and worth every penny.
I'm using Splunk to generate usage reports based on syslog analysis. Is very easy to implement and use and has a free version that allows 500MB of logs per day. It's great!!
Splunk is basically Google Search for logs. Excellent for a single user or two doing analysis and forensics but I would not use it for real time monitoring. It is very resource intensive. It didn't scale well for me in the number of users that could simultaneously use a dashboard with a few queries on it.
I really love Splunk as it takes what we like to produce (syslog, raw data) and makes it into a Manager Pie.
It also makes it fairly easy to spot when something goes horribly wrong in your network.
Splunk is the bomb. Just throw everything into it and make data soup.


Quality of life or quality in life?
by HR professional in healthcare, London UK.
In medicine, and in life, 'quality of life' can be used as a measure or as a way of making decisions.
In health, decisions can be made based on quality of life e.g. helping patients make decisions about treatments, decisions about a care pathway through a particular illness, disease, or surgery, and decisions about end of life care. In our lives we can also make healthy living decisions about our quality of life – e.g. exercise, countryside walks, certain foods or nutrients. We also make quality of life decisions based on where we live e.g. to live in the countryside or in a certain town or village, and about what type of work or where we work e.g. flexible hours, or somewhere that is easy to commute to.
Whilst these conversations and decisions are important, do we ever consider our quality in life?
What if our quality in life is equal to or more important than our quality of life?
What's the difference between our quality of life and our quality in life?
I recently attended a medical course on the nature of pain. Presented in this lecture was the current popular scientific theory that as human beings we perceive our environment based on our five senses and own mental projections and best guesses, and then respond accordingly; that we are constantly perceiving, processing and reacting to our environment based on our sensory systems, previous experiences, ideals and beliefs and whether reality meets our own expectations or not. Effectively we are at the mercy of our minds, our nervous system and our five senses, from which we form our experience of life and the choices we make.
This perception of what is happening outside and inside our bodies is a crucial thing, for in the case of pain it can be the difference between someone having chronic, debilitating pain and someone not having any pain at all.
Over the last 16 years I have transformed from a person driven by the goals of how things should be, how a patient should move or feel after a treatment, to a person far more at ease in myself, with a body that is far less tense. I am lighter and more fluid in all my movements and I am able to truly support my patients in their own natural healing process.
A big part of this transformation was due to me reconnecting to my natural gentleness, a quality within me that I had been disconnected from for a long time.
I have also learned over the last 16 years how important it is to reconnect to the natural gentle quality in me, that is in us all. I was inspired to give gentleness a go from the constant reflection of gentleness, love and true caring for others from Serge Benhayon, of Universal Medicine.
I have been working in Physiotherapy for over 30 years. I graduated from Sydney University in 1984 and worked in teaching hospitals for the next 2 years. For the following 6 years I worked in private practice, learning as much as I could from more experienced physios, but I found there was a hardness to the way physiotherapy was practised and so I went overseas in search of a more gentle way to treat the whole body.
In Boston, USA, I did courses introducing me to the importance of the connective tissue in the body. I experimented with more gentle ways of releasing this tissue for my many clients that had complex chronic spinal pain.


> new variables and create an algebraic expression by adding them all.
>> y, \[Beta]0, \[Beta]1, \[Beta]2, \[Beta]3, \[Sigma], \[Gamma]] .
>> AFAIK. (Correct me if I'm wrong.) I'm surprised NSolve even tries.
>> and so forth. Probably that's not what you intended, right?
>> help), and try again.
>> > \[Beta]0, \[Beta]1, \[Beta]2, \[Beta]3, \[Sigma], \[Gamma]] .


Published at Saturday, April 20th, 2019 - 4:58 PM. 2 Wiring Diagram. By Lisa D. Pounders.
This 2 sd wiring diagram picture have been published. You possibly can acquire this amazing pic for your laptop, mini netbook or desktop pc. Additionally you can easily save this post to you favorite bookmarking sites. How you can get this 2 sd wiring diagram image? It is easy, you need to use the save button or you can place your cursor to the photo and right click then pick save as.
2 sd wiring diagram is among the most photos we discovered on the net from reliable resources. We decide to discuss this 2 sd wiring diagram picture on this page simply because based on facts from Google search engine, It really is one of many top queries key word on the internet. And that we also consider you arrived here were trying to find these records, are not You? From several choices online we are sure this image may well be a best reference for you, and we sincerely we do hope you are delighted by what we present.
We are very thankful if you leave a opinion or suggestions about this 2 sd wiring diagram post. We are going to use it for better future articles. We thank you for your visit to our website. Make sure you get the information you are looking for. Do not forget to share and love our reference to help further develop our website.


text:
Follow Us On Twitter Facebook Instagram
Get Stories In Your Inbox
Party Platforms
Christian Commentary
A battle of narratives
The electoral battle over issues to do with asylum seekers and offshore detention is going to be a battle of narratives.
On the one hand, conservative parties will emphasise a narrative linking asylum seeker policy with national security. This narrative insists it is necessary for Australia to take a harsh approach to asylum seekers – including offshore detention, refusing resettlement in Australia, etc – in order to deter people from seeking asylum in Australia and keep Australians safe.
In contrast, progressive parties argue Australia's current approach to asylum seekers falls short of the international standards of human decency – particularly with regards to physical and mental healthcare. They say Australia's harsh asylum seeker policies are politically motivated and stoked by fear and racism, and that Australia can both have a robust assessment process that upholds national security and treat people who seek asylum with dignity and respect.
For the past few elections maritime (boat) arrivals have dominated conversation about people seeking asylum in Australia, although people seeking asylum in Australia also arrive by air.
The Coalition Government insists that previous Labor Government's lax asylum seeker policies led to a surge of people seeking asylum in Australia who travelled by boats in life-risking journeys conducted by people smugglers- and that they could do so again. This is what's described as 'push and pull factors' – i.e. the idea that Australia's policies either encourage or deter asylum seekers from seeking asylum via boat.
However, statistics have not proven the theory that Australia's resettlement policies directly affect the numbers of asylum seekers who attempt to reach Australia by boat. In fact, statistics recording the maritime flow of displaced people show that Australia's increased arrivals have always been reflective of what is happening elsewhere in the world (see here for more) and ignores the context of global displacement currently reaching its highest levels on record.
That is to say, "an unprecedented 68.5 million people around the world have been forced from home. Among them are nearly 25.4 million refugees, over half of whom are under the age of 18. There are also an estimated 10 million stateless people who have been denied a nationality and access to basic rights such as education, healthcare, employment and freedom of movement" and "nearly 1 person is forcibly displaced every two seconds as a result of conflict or persecution". (More UNHCR figures like these are available here).
When the Coalition Government came to power in 2013, it adopted a policy of denying resettlement in Australia to any asylum seekers who arrived by boat. They also adopted a 'turn back the boats' policy – turning back or towing vessels carrying people seeking safety to their place of departure. Refugee advocates criticised the policy as targeting one type of arrivals for political reasons, with those asylum seekers who arrive by boat historically having been found more likely to be granted refugee status than asylum seekers who arrive by air.
The Coalition Government has claimed their policies have "stopped the boats" and "stopped the deaths at sea". However, the government's own statistics show that asylum seekers have actually continued to try to reach Australia by boat, albeit at greatly reduced numbers.
In fact, since the Coalition has come to power and "stopped the boats", the numbers of people seeing asylum in Australia has swelled to record numbers – just with more asylum seekers now seeking asylum by plane. The Home Affairs Department website shows 27,931 protection visa applications were made in the latest financial year by plane arrivals – the previous record number of asylum seekers was 26,845 in the 2012-13 financial year when 18,365 protection visa applications were made for boat arrivals and 8480 for those who came by plane.
Offshore Detention
The conditions asylum seekers experience in Australia's offshore immigration detention centres – particularly with regards to healthcare (or lack thereof) – was one of the major news stories of 2018.
Under Australia's currently policies, asylum seekers who come to Australia via boat are detained offshore on Nauru and Manus Island whilst their applications are processed. From here, they can be returned home if their application is unsuccessful or resettled in a third country if granted refugee status.
For many years, refugee advocates have said that the application processing times of up to six years and the conditions asylum seekers face in offshore detention are a denial of their fundamental human rights and basic decency. This assessment has been echoed by the United Nations.
These concerns reached a boiling point in 2018 in the Kids Off Nauru campaign, which saw 170,034 Australians sign a petition to pressure the Government to get kids off Nauru. The campaign was successful, with all children being removed from Nauru in one way or another – an outcome the Morrison Government claimed was the success of their ongoing work, rather than a response to public pressure.
Medevac laws
On Tuesday 26 February, the Australian parliament passed the Home Affairs Legislation Amendment (Miscellaneous Measures) Bill 2018 – commonly known as the Medevac Bill. The Bill provides an independent process for sick refugees and asylum seekers in Australia's offshore detention centres to receive medical care in Australia, when needed because it isn't available on Manus Island or Nauru.
Previous to this, medical evacuations were allowed at the discretion of the Australian Government's Home Affairs Minister with the only recourse to appeal a denial being a lengthy court process. Read more here.
A total of 12 people have died in Australia's offshore detention centres to date. The inquiry into the case of Hamid Khazaei showed that he died as a direct result of the Australian Government's refusal to follow medical orders. There have also been documented rises in 'resignation syndrome', self-harm and suicide attempts amongst asylum seekers in Australia's detention centres, some concerning young children. In 2016, UNHCR found that 88 per cent of people on Manus Island were suffering from depression, anxiety and/or post-traumatic stress disorder.
The Medevac Bill was passed after a vicious political debate during which the Coalition Government expressed concerns the bill could lead to weakened borders and national security. Amendments to the bill gave the minister 72 hours to assess a transfer referral which, if he or she refused, would be sent to an independent medical panel. The panel could override a minister's refusal on health grounds but the minister has the final veto if there are security issues surrounding the patient.
Immediately following the passing of the Medevac Bill, the Government re-opened the Christmas Island detention centre (that it had closed late in 2018) "both to deal with the prospect of arrivals as well as dealing with the prospect of transfers". See more here and an update here.
Australia has a complex system of visas available to people seeking asylum.
These have been criticised by refugee advocates for being overly strict and complex, and for keeping people in a state of 'limbo' that doesn't allow them to flourish and for there being no recourse for appeal.
Arrivals and offshore detention: The Liberal Party has said that there will be no changes to their current approach to people seeking asylum. Boat turn-backs will continue, offshore detention will continue and "people subject to regional processing arrangements will not be resettled in Australia."
Instead, refugees detained on Nauru will continue to be able to apply for resettlment in Cambodia and the United States, although only 439 people have been able to be resettled in the United States so far. Refugees in Papua New Guinea can apply to resettle in the United States or in PNG.
And "if asylum seekers, refugees and non-refugees on Nauru or in PNG decide to return home voluntarily, assistance is available to help, including booking and paying for travel."
Their platform also states, "The Australian Government has provided over $1 billion dollars in support for health, welfare and infrastructure projects in PNG and Nauru." (see Australian Aid for a discussion of this subject) and "where medically necessary, people have been brought to Australia for treatment."
Visas: The only significant change proposed by the party is that it will attempt to increase the Foreign Minister's power to cancel visas.
Since 2015, the Government has had the power to revoke the citizenship of any dual-national who engages in terrorism. In addition, this Government has increased the powers of the minister to cancel the visas of non-citizens, resulting in a 12-fold increase in visa cancellations for non-citizens convicted of a crime and sentenced to 12 months or more imprisonment, or who have been convicted of a sexual offence against a child.
If elected, the Liberal Party says it will propose legislation that gives the minister power to "be able to cancel visas of people convicted of a crime punishable by a maximum sentence of two or more years in prison, which involves violence, sexual assault, domestic abuse and the use or possession of weapons. This will capture people convicted of crimes that strike at the heart of the Australian community, regardless of whether they have been given a jail sentence."
Humanitarian Intake: The Liberal Party says it has increased Australia's humanitarian program (i.e. its resettlement intake of people who've been given refugee status) from 13,750 refugees in 2013-14 to 18,750 in 2018-19, with an additional intake of 12,000 refugees fleeing the conflict in Syria and Iraq. In 2016-17 around 20,200 offshore humanitarian visas were granted. "This represents Australia's largest offshore intake in over 30 years," the party says.
However, the budget also referred to the program number for 2017-2018 as a "ceiling" in performance targets for 2017-18 and relaxed the target for 2018-19 by requiring only that the Program is delivered "in accordance with priorities and informed by program parameters set by the Government". This is consistent with the current government's changes to performance targets across immigration, which generally remove numerical targets for broader and more qualitative assessments.
There have been reports of the current Government filling its humanitarian program quota with a lower number of the UNHCR's recommendations (a system which treats applicants equally regardless of faith) and instead prioritising Christian refugees for resettlement in Australia. There is very little information about this available.
Arrivals and offshore detention: The Labor party's platform on boat arrivals mirrors the Coalition's: "the way to Australia through irregular means by boat is closed, and it will remain so under Labor." For Labor, resettlement in Australia is also a no-go for asylum seekers who arrive by boat with the reason given that they don't want to encourage the people-smuggling trade. Their policy states: "bringing people from offshore regional processing centres to Australia is not an option"
However, unlike the Coalition, Labor doesn't support the use of Manus Island and Nauru as long-term solutions, insisting they were only established as temporary measures, saying "Much more needs to be done to resettle eligible refugees in other third countries."
Labor's position on resettlement states: "Labor has called on the Liberal Government to accept New Zealand's offer to resettle eligible refugees from Manus and Nauru and negotiate conditions similar to the US refugee resettlement agreement to prevent people smugglers exploiting vulnerable people. If the Government was able to negotiate conditions for the US deal, they should be able to negotiate them for any deal with NZ. Labor has repeatedly called on the Liberal Government to release the details of the US refugee resettlement agreement."
However the party claims "Labor's resolve to prevent deaths at sea is matched by a commitment to a humane and compassionate approach to asylum seekers which enables refugees to progress their claims safely and securely."
Humanitarian intake: Increasing Australia's annual humanitarian intake of refugees to 27,000 by 2025 to address the global humanitarian crisis
In addition, Labor is committed to:
Providing $450 million in funding over three years to support the important work of the UNHCR both globally and in South East Asia and the Pacific;
Appointing an independent children's advocate to represent the interests of children seeking asylum and legislating to impose mandatory reporting of child abuse;
Reintroducing the '90 day rule' into the Migration Act, in addition to references to the UN Refugees Convention;
Reinstating access to the Refugee Review Tribunal and abolish the IAA established by the Abbott Government; and
Abolishing Temporary Protection Visas (TPVs) which keep people in a permanent state of limbo and placing those found to be genuine refugees on permanent protection visas.
The Greens' party platform is based on the belief that "Australia has humanitarian and legal obligations to accept refugees and reunite families" and "Australian society benefits from immigration."
The party are advocating for:
Australian to take responsibility for assessing all asylum claims of people who seek Australia's protection within the migration zone.
People seeking asylum to be fully informed of their rights on arrival and given immediate access to legal support and health care, assisted by interpreters, as required.
The current system of humanitarian visas (granted only by ministerial discretion) to be replaced with an open, accountable humanitarian visa assessment.
Assessment of applications for asylum completed in a timely and transparent manner.
Refugees to be treated with dignity, including within the terminology that is used by Australian Government departments and agencies
The elimination of mandatory and indefinite detention, and the abolition of offshore processing (where a person seeking asylum, refugee or special category visa holder is returned from Australian territory to another nation to be assessed) and other forms of punitive or discriminatory treatment.
The development of networks, materials and programs that increase community understanding of the causes and benefits of migration.
All people found to be refugees, but given negative security assessments, to be given the reasons for such assessment, access to legal representation and the opportunity to challenge this in the appropriate forum. They are only to be detained as individually required by court order, with periodic judicial review.
Arrivals of offshore detention: "Australian Conservatives support our world-leading offshore processing and illegal boat arrival turn-back policies. However, all determinations of visa applications will take place within Australia."
Humanitarian intake: Australian Conservatives want to withdraw from the UN Refugee Convention "to allow Australia to determine its refugee intake free from external constraints." They would immediately halve Australia's current net immigration intake. It says that "immigration must provide a positive benefit to Australia's economic, social and cultural interests … current immigration levels are too high, putting pressure on services, infrastructure and family incomes."
For the Australian Conservatives party platform on immigration, click here.
A group of refugee Christians from western Sydney has written this letter:
To our brothers and sisters in Christ,
This is a letter from a group of Christians who have sought safety in Australia. We are refugees. We want to tell you that the next federal election will have a huge impact on our lives. This next one is of particular significance and we want to explain why. We are part of churches mostly in South West Sydney. We sing alongside you, we pray alongside you and attend Bible study with you. Yet even in our own churches there are not many people who properly understand our situation. This is understandable because refugee policy is complicated and has changed so often that
it is hard to keep up.
One idea that many of our Christian friends have is that both major political parties are just as bad as each other on refugee policy. We have friends on Manus Island and Nauru, and it devastates us that both major parties want to continue their offshore detention centre policies. However, there are also some significant differences between the policies of our major political parties. These differences could be life-changing for refugees in Australia. We want to tell you our stories to help highlight these differences. Under current policies we have been pushed and stretched to breaking point. We are swimmers in a vast ocean being hit by wave after wave of bad news. We are getting tired. We are about to give up. We need a change at the next election so that we can have a reprieve.
Before we tell our stories, we need to tell you a bit about our visas to help you understand.
Some of us have Safe Haven Enterprise Visas (SHEVs) or Temporary Protection Visas (TPVs). Both these visas mean that we have been processed, and found to be genuine refugees. Both are called temporary protection visas.
SHEV: A 5-year visa that requires the visa holder to agree to work or study in a 'rural' area of Australia and not access any welfare benefits. If conditions are met, the visa holder has a has a possibility of applying for a different visa.
TPV: A 3-year visa with no conditions. Once it expires the visa holder will only be allowed to apply for another temporary visa and will need to go through another refugee determination process.
What is the difference in policy?
The Liberal government introduced and supports temporary protection visas.
The Labor government has always opposed temporary protection visas in favour of permeant protection visas.
This particular election is significant to us because of this difference. The time between 2019-2022 is when most of our temporary visa will expire. When they expire we will need to apply for visas again. We could get sent home to danger. We could remain separated from our family for another 5 years. We are breaking as our health deteriorates. Let us explain through some stories
Yasmine's story
Temporary visas can result in people being sent home to danger
My name is Yasmine*. I am a 35 year-old single woman who had to leave everything and everyone I love because of trauma I had back in my homeland. I tried to come to Australia with the hope that I could escape danger, but tragically our boat sank and over 160 people died, including my close friends and their families who I came with. I was one of a few survivors. I don't know how to put into words what happened to me so that people could understand how much I hurt. I eventually made it to Australia. That was years ago, and I wish I could forget the terrible nightmare and move on with my new life, but my temporary protection visa makes this impossible. I work as a lifeguard and swimming instructor and my employer would like to sponsor me for a work visa but is unable to because of my TPV. When my visa expired last year, I thought I could apply for a new visa without having to relive past events, but unfortunately I had to talk about everything to the lawyers who helped me apply. I couldn't even listen to the recording of my first interview – it is too horrible to think about. I hope I never have to do this again. I'm so thankful that I live in Australia, but because of my temporary visa, I still feel that I live between the sky and earth. Whatever you think about the way I came to Australia, please consider the huge difference a permanent protection visa would make to my safety, my future and my ability to contribute to my new country. Please pray for me.
Esther's Story
Temporary visas prevent family reunion
My name is Esther*. I am a 38 year-old Iranian woman and I have been separated from my husband for 6 years. I don't know when I'll be able to live in the same country as him. We've been married for 12 years and I desire to be reunited with him. I can look after myself, but it is a strange existence being somewhere between single and married for 6 years and longer. I talk with him for hours everyday, but I sometimes can't quite remember details about him. We have changed so much without being beside each other. Our time together, 6 years ago, sometimes feel more like a dream than reality. I've had to forget about the idea of having children. I was a journalist in Iran who criticised the government. I became a target and had to flee Iran in 2013. Many of my co-workers are now in prison or have been killed. My husband, Omid, was a human rights lawyer who also criticised the government. He could not leave Iran at the same time as me due to passport complications. I made it to Australia in 2013. My husband left Iran but did not make it to Australia. I was found to be a genuine refugee and given a SHEV visa in 2018 after waiting 5 years. My SHEV visa does not allow me to sponsor my husband to join me in Australia. Under the current system, there is only a very small chance that I will be able to bring my husband here in the next few years, and it will cost over $40,000. If I stay on a temporary visa my husband may never be able to come. A permanent visa will allow us to be together.
Sargon's Story
Temporary Visas affect access to healthcare
My name is Sargon*. I am a 41 year-old stateless Faili Kurd. I was born in Iraq but when I was 3 years old I was expelled with my family to Iran by Saddam Hussein. I arrived in Australia in 2010 seeking asylum and was finally granted a SHEV visa in 2016 after being made to wait for 6 years. Even though I could never go to school when I was young, I have studied hard to learn English in Australia, but I don't have the qualifications for
office work and cannot do physical work. I got Polio as a child and didn't get the medicine or treatment I needed. I have difficulty walking and have chronic pain, made worse by post-polio syndrome. Since I am not a permanent resident of Australia, I am not eligible for a disability support pension or any help to pay for my mobility aids through state or federal government programs. I am treated the same as someone with a temporary condition and expected to apply for jobs which I can't do. A permanent protection visa would change all this. It would also let me gain citizenship and finally belong somewhere.
These are just three of our stories. There are so many more stories to tell. We hope that you will do three things now that you have read this letter:
1. Please pray that God would look after us, our families and countries. He is our rock. He is our comfort.
2. Please consider our stories in the upcoming election. Not in every election in the future. Just this next one, so
there is compassion before our visas expire.
3. If you thought this letter had important information, please share it with a friend or with your church.
Yasmine, Esther, Sargon and the many brothers and sisters in Australian churches who have sought asylum
* names have been changed and faces hidden to protect the identity of the refugees in this letter. They hold temporary visas and so face a real risk of being returned to their home country to face danger.
The Australian Churches' Refugee Taskforce and the National Council of Churches in Australia call for an end to the demonising of refugees and asylum seekers and a humane approach to their care and support, 15 February 2019
As people of faith we welcome recent moves to bring all children in detention off Nauru. We welcome the passing of the Medical Transfer Bill by our Australian Parliament of elected representatives. Both these measures are humane and in no way jeopardise our national security. But they do not go far enough.
As people of faith we reject any rhetoric that suggests Australia is facing a border protection crisis and that Australia needs to reopen Christmas Island as a detention facility.
As people of faith we call on people from all sides of politics, the media and society to avoid using language that seeks to demonise groups of people currently held in detention and other people wanting to come to Australia to seek a safe life.
As people of faith we call on politicians from all political parties to outline reasoned and humane policies that will end offshore detention. We want to ensure the dignity and well-being of all in our care, including those people seeking safe refuge who are in Australia and being left destitute in our communities and neighbourhoods by current policy.
We urge the kind of welcome that lifted everyone's spirits this week, with the return of Hakeem from detention in Thailand, who we all are embracing as one of our own.
Let us be clear. We are helping sick people because they need our help. That is enough to do well, now.
"Our Churches and agencies around the nation, as ever, stand ready to help, in partnership with our Government."
Bishop Philip Huggins of the Anglican Church of Australia, current President of National Council of Churches in Australia and a founding member of the Australian Churches' Refugee Taskforce
Excerpt from A Welcoming, Compassionate and Diverse Nation from 2019 Federal Election Resource by Uniting Church Australia
What the UCA has said:
"We affirm our eagerness to uphold basic Christian values and principles, such as the importance of every human being, the need for integrity in public life, the proclamation of truth and justice, the rights for each citizen to participate in decision-making in the community, religious liberty and personal dignity, and a concern for the welfare of the whole human race."
– Statement to the Nation (1977)
"We approach the issue of asylum seekers and refugees in the context of the words of Jesus. He spoke of a new community established on righteousness and love, and based on a fellowship of reconciliation — a community in which all members work together for the good of the whole. In essence, working for this kind of society is our contribution to civil society. When we work for freedom, human rights and the common good of the community we are expressing our faith. It is an outworking of the community of God."
– Asylum seeker and refugee policy (2002)
"In Jesus Christ we discern that which is truly human. As we feed the hungry, welcome the stranger and care for the thirsty, the sick and the imprisoned, there is the mysterious possibility that we will discover the life of Christ among us (Matthew 25: 31-46), and share the love of God."
– Dignity in Humanity (2006)
Principles for Good Policy for the Protection of Asylum Seekers and Refugees:
All people should be treated with respect and accorded the dignity they deserve as human beings.
As one of the wealthiest, safest and most secure countries in the world, Australia should do its fair share to ease people's sufferings in the context of what is a global problem. We must not shift our responsibilities to poor and developing countries.
Australia's policies relating to asylum seekers should be driven by bipartisan commitments to a humanitarian response focussed on protection needs and to upholding our obligations under international law.
The Australian Government must be transparent in the implementation of its policies, open to scrutiny by the courts and the media and to critique and advocacy from civil society.
The media should not demonise or inflame prejudice against asylum seekers and refugees by deliberately promoting misunderstanding. The State of the Nation People seeking asylum are detained indefinitely in offshore detention
Despite the release of children from detention, there remains a large number of refugees held in offshore facilities.
There have been numerous cases of deteriorating mental and physical health, self-harm and suicide among adults and children detained on Manus Island and Nauru. From February to November 2015, 239 detainees were assessed as being at 'high imminent' risk of suicide or self-harm.
– Shelter from the Storm (2015)
Also included in this comprehensive guide are the UCA's vision, hopes and an assessment of the 'state of the nation' relating to asylum seekers, along with biblical resources, key actions, discussion starters and suggested questions for political candidates.
ACL support Labor's move to raise refugee intake by Martyn Iles | December 17, 2018
The Australian Christian Lobby today expressed in principle support for the Australian Labor Party's commitment to raise the refugee intake by 4,000 places.
Managing director, Martyn Iles said, "Australia should be a generous nation when it comes to playing our part in the global crisis of displaced persons."
"Even a generous intake will always be small compared to the size of the global refugee crisis, so it is vital that the refugee program should continue to favour the world's most vulnerable and persecuted minorities."
"The recent case of Asia Bibi, and others like her, show that Christians are still amongst the most persecuted minorities in the world."
"Australia must keep rising to the challenge when it comes to generosity. That's the kind of nation we should aspire to be."
Share this guide
Housing and Welfare
Australian Aid
Hiring? You can reach more candidates and spend less with Eternity Jobs
When you list your job on Eternity Jobs it will also appear here on Eternity News, where it will be seen by thousands of readers who are passionate about the same topics that you are. Our readers are also well educated, enthusiastic about church and looking for opportunities to work with purpose.
Get started now for just $149 +GST
Eternity News
Eternity Jobs
© 2020 Eternity News. All rights reserved.

redpajama_set_name: RedPajamaCommonCrawl


Changing one's intention from a non-specific optional prayer (نفل مطلق) to another non-specific optional prayer – this pray is valid, if such a scenario is conceivable. A non-specific optional prayer is prayed anytime during the day or night whenever one wishes (though not during forbidden periods).
Changing one's intention from a non-specific optional prayer to a Specified Prayer (فرض معين أو نفل معين). Example: Changing one's intention during a non-specific optional prayer to the Fard of Dhuhr. The Dhuhr here is invalid because the niyyah for it must be made before the opening takbeer for it to be valid.
Changing one's intention from one Specified Prayer to another Specified Prayer is invalid. First example: A man is praying 'Asr, then whilst praying he remembers that when praying Dhuhr earlier, he did not have Wudoo so he changes his niyyah from 'Asr to Dhuhr to make up the Dhuhr. In this case both his 'Asr and the Dhuhr are invalidated. Second example: A man is praying the two Sunnah for 'Ishaa and during the prayer decides to change his niyyah to Witr. Here the Sunnah for 'Ishaa has been invalidated and he is not even considered to have entered the Witr prayer. This is because the Sunnah of 'Ishaa is a specified prayer and the Witr is likewise a specified prayer which requires the niyyah to be established before the opening takbeer.
Changing one's intention from a Specified Prayer to a non-specific optional prayer is permitted and the prayer is sound. This is because a Specific Prayer has in reality two intentions: one for entering the prayer generally and another for that specific prayer. So if a person invalidates the niyyah for the Specific Prayer, the niyyah for general prayer remains (so long as he does not leave the prayer). For example a man enters the Dhuhr prayer with the niyyah for Dhuhr – he then cancels his niyyah for Dhuhr and continues praying, so what remains is his niyyah for the general prayer.


Advertise with the International Indian Wedding Magazine | Wedding Affair var admin_url = "https://weddingaffair.co.in/wp-admin/"
A fashion lifestyle magazine, with weddings at its core, Wedding Affairs is read by the young, young at heart and upwardly mobile individuals. Seventy percent of its readership constitutes young men and women, aspiring for the best in life. And when marriage beckons, their aspirations peak. They have the purchasing powerand are influential decision makers. The magazine is of special interest to the fashion , fitness, beauty and grooming, jewellery, wedding planning, travel and home makers segments.
Dry Skin Blues taken care of! For the Glowy Winter Bride.


The world is digital. We are printing less and writing less on paper. Nevertheless, paper is still produced in abundance. Think of paperboard for sending packages, for example, or tissues and other hygiene products. These materials are made from bleached pulp.
Magnesium hydroxide is used as aid to bleach pulp in an environmentally friendly and cost effective way. Using magensium hydroxide makes the use of corrosive chemicals more redundant. Together with its partners, Nedmag is continuously searching for ways to improve the bleaching process to make it more sustainable, thereby helping to develop the pulp and paper industry.
Banmark is a prominent Finnish distributor and service provider for the pulp and paper industry.
Strategic collaboration with Imerys to serve the European pulp and paper industry. With a unique combination of technical expertise and practical knowledge, our combined resources place us in an excellent position to serve the pulp and paper industry.
A new take on the more sustainable bleaching of pulp with magnesium hydroxide.


text:
#include <linux/pci.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/device.h>
#include <linux/mempolicy.h>
#include <linux/string.h>
#include <linux/slab.h>
#include <linux/sched.h>
#include <linux/cpu.h>
#include <linux/pm_runtime.h>
#include <linux/suspend.h>
#include <linux/kexec.h>
#include "pci.h"

struct pci_dynid {
	struct list_head node;
	struct pci_device_id id;
};

/**
 * pci_add_dynid - add a new PCI device ID to this driver and re-probe devices
 * @drv: target pci driver
 * @vendor: PCI vendor ID
 * @device: PCI device ID
 * @subvendor: PCI subvendor ID
 * @subdevice: PCI subdevice ID
 * @class: PCI class
 * @class_mask: PCI class mask
 * @driver_data: private driver data
 *
 * Adds a new dynamic pci device ID to this driver and causes the
 * driver to probe for all devices again.  @drv must have been
 * registered prior to calling this function.
 *
 * CONTEXT:
 * Does GFP_KERNEL allocation.
 *
 * RETURNS:
 * 0 on success, -errno on failure.
 */
int pci_add_dynid(struct pci_driver *drv,
		  unsigned int vendor, unsigned int device,
		  unsigned int subvendor, unsigned int subdevice,
		  unsigned int class, unsigned int class_mask,
		  unsigned long driver_data)
{
	struct pci_dynid *dynid;
	int retval;

	dynid = kzalloc(sizeof(*dynid), GFP_KERNEL);
	if (!dynid)
		return -ENOMEM;

	dynid->id.vendor = vendor;
	dynid->id.device = device;
	dynid->id.subvendor = subvendor;
	dynid->id.subdevice = subdevice;
	dynid->id.class = class;
	dynid->id.class_mask = class_mask;
	dynid->id.driver_data = driver_data;

	spin_lock(&drv->dynids.lock);
	list_add_tail(&dynid->node, &drv->dynids.list);
	spin_unlock(&drv->dynids.lock);

	retval = driver_attach(&drv->driver);

	return retval;
}

static void pci_free_dynids(struct pci_driver *drv)
{
	struct pci_dynid *dynid, *n;

	spin_lock(&drv->dynids.lock);
	list_for_each_entry_safe(dynid, n, &drv->dynids.list, node) {
		list_del(&dynid->node);
		kfree(dynid);
	}
	spin_unlock(&drv->dynids.lock);
}

/**
 * store_new_id - sysfs frontend to pci_add_dynid()
 * @driver: target device driver
 * @buf: buffer for scanning device ID data
 * @count: input size
 *
 * Allow PCI IDs to be added to an existing driver via sysfs.
 */
static ssize_t
store_new_id(struct device_driver *driver, const char *buf, size_t count)
{
	struct pci_driver *pdrv = to_pci_driver(driver);
	const struct pci_device_id *ids = pdrv->id_table;
	__u32 vendor, device, subvendor=PCI_ANY_ID,
		subdevice=PCI_ANY_ID, class=0, class_mask=0;
	unsigned long driver_data=0;
	int fields=0;
	int retval;

	fields = sscanf(buf, "%x %x %x %x %x %x %lx",
			&vendor, &device, &subvendor, &subdevice,
			&class, &class_mask, &driver_data);
	if (fields < 2)
		return -EINVAL;

	/* Only accept driver_data values that match an existing id_table
	   entry */
	if (ids) {
		retval = -EINVAL;
		while (ids->vendor || ids->subvendor || ids->class_mask) {
			if (driver_data == ids->driver_data) {
				retval = 0;
				break;
			}
			ids++;
		}
		if (retval)	/* No match */
			return retval;
	}

	retval = pci_add_dynid(pdrv, vendor, device, subvendor, subdevice,
			       class, class_mask, driver_data);
	if (retval)
		return retval;
	return count;
}
static DRIVER_ATTR(new_id, S_IWUSR, NULL, store_new_id);

/**
 * store_remove_id - remove a PCI device ID from this driver
 * @driver: target device driver
 * @buf: buffer for scanning device ID data
 * @count: input size
 *
 * Removes a dynamic pci device ID to this driver.
 */
static ssize_t
store_remove_id(struct device_driver *driver, const char *buf, size_t count)
{
	struct pci_dynid *dynid, *n;
	struct pci_driver *pdrv = to_pci_driver(driver);
	__u32 vendor, device, subvendor = PCI_ANY_ID,
		subdevice = PCI_ANY_ID, class = 0, class_mask = 0;
	int fields = 0;
	int retval = -ENODEV;

	fields = sscanf(buf, "%x %x %x %x %x %x",
			&vendor, &device, &subvendor, &subdevice,
			&class, &class_mask);
	if (fields < 2)
		return -EINVAL;

	spin_lock(&pdrv->dynids.lock);
	list_for_each_entry_safe(dynid, n, &pdrv->dynids.list, node) {
		struct pci_device_id *id = &dynid->id;
		if ((id->vendor == vendor) &&
		    (id->device == device) &&
		    (subvendor == PCI_ANY_ID || id->subvendor == subvendor) &&
		    (subdevice == PCI_ANY_ID || id->subdevice == subdevice) &&
		    !((id->class ^ class) & class_mask)) {
			list_del(&dynid->node);
			kfree(dynid);
			retval = 0;
			break;
		}
	}
	spin_unlock(&pdrv->dynids.lock);

	if (retval)
		return retval;
	return count;
}
static DRIVER_ATTR(remove_id, S_IWUSR, NULL, store_remove_id);

static struct attribute *pci_drv_attrs[] = {
	&driver_attr_new_id.attr,
	&driver_attr_remove_id.attr,
	NULL,
};
ATTRIBUTE_GROUPS(pci_drv);

/**
 * pci_match_id - See if a pci device matches a given pci_id table
 * @ids: array of PCI device id structures to search in
 * @dev: the PCI device structure to match against.
 *
 * Used by a driver to check whether a PCI device present in the
 * system is in its list of supported devices.  Returns the matching
 * pci_device_id structure or %NULL if there is no match.
 *
 * Deprecated, don't use this as it will not catch any dynamic ids
 * that a driver might want to check for.
 */
const struct pci_device_id *pci_match_id(const struct pci_device_id *ids,
					 struct pci_dev *dev)
{
	if (ids) {
		while (ids->vendor || ids->subvendor || ids->class_mask) {
			if (pci_match_one_device(ids, dev))
				return ids;
			ids++;
		}
	}
	return NULL;
}

/**
 * pci_match_device - Tell if a PCI device structure has a matching PCI device id structure
 * @drv: the PCI driver to match against
 * @dev: the PCI device structure to match against
 *
 * Used by a driver to check whether a PCI device present in the
 * system is in its list of supported devices.  Returns the matching
 * pci_device_id structure or %NULL if there is no match.
 */
static const struct pci_device_id *pci_match_device(struct pci_driver *drv,
						    struct pci_dev *dev)
{
	struct pci_dynid *dynid;

	/* Look at the dynamic ids first, before the static ones */
	spin_lock(&drv->dynids.lock);
	list_for_each_entry(dynid, &drv->dynids.list, node) {
		if (pci_match_one_device(&dynid->id, dev)) {
			spin_unlock(&drv->dynids.lock);
			return &dynid->id;
		}
	}
	spin_unlock(&drv->dynids.lock);

	return pci_match_id(drv->id_table, dev);
}

struct drv_dev_and_id {
	struct pci_driver *drv;
	struct pci_dev *dev;
	const struct pci_device_id *id;
};

static long local_pci_probe(void *_ddi)
{
	struct drv_dev_and_id *ddi = _ddi;
	struct pci_dev *pci_dev = ddi->dev;
	struct pci_driver *pci_drv = ddi->drv;
	struct device *dev = &pci_dev->dev;
	int rc;

	/*
	 * Unbound PCI devices are always put in D0, regardless of
	 * runtime PM status.  During probe, the device is set to
	 * active and the usage count is incremented.  If the driver
	 * supports runtime PM, it should call pm_runtime_put_noidle()
	 * in its probe routine and pm_runtime_get_noresume() in its
	 * remove routine.
	 */
	pm_runtime_get_sync(dev);
	pci_dev->driver = pci_drv;
	rc = pci_drv->probe(pci_dev, ddi->id);
	if (!rc)
		return rc;
	if (rc < 0) {
		pci_dev->driver = NULL;
		pm_runtime_put_sync(dev);
		return rc;
	}
	/*
	 * Probe function should return < 0 for failure, 0 for success
	 * Treat values > 0 as success, but warn.
	 */
	dev_warn(dev, "Driver probe function unexpectedly returned %d\n", rc);
	return 0;
}

static int pci_call_probe(struct pci_driver *drv, struct pci_dev *dev,
			  const struct pci_device_id *id)
{
	int error, node;
	struct drv_dev_and_id ddi = { drv, dev, id };

	/*
	 * Execute driver initialization on node where the device is
	 * attached.  This way the driver likely allocates its local memory
	 * on the right node.
	 */
	node = dev_to_node(&dev->dev);

	/*
	 * On NUMA systems, we are likely to call a PF probe function using
	 * work_on_cpu().  If that probe calls pci_enable_sriov() (which
	 * adds the VF devices via pci_bus_add_device()), we may re-enter
	 * this function to call the VF probe function.  Calling
	 * work_on_cpu() again will cause a lockdep warning.  Since VFs are
	 * always on the same node as the PF, we can work around this by
	 * avoiding work_on_cpu() when we're already on the correct node.
	 *
	 * Preemption is enabled, so it's theoretically unsafe to use
	 * numa_node_id(), but even if we run the probe function on the
	 * wrong node, it should be functionally correct.
	 */
	if (node >= 0 && node != numa_node_id()) {
		int cpu;

		get_online_cpus();
		cpu = cpumask_any_and(cpumask_of_node(node), cpu_online_mask);
		if (cpu < nr_cpu_ids)
			error = work_on_cpu(cpu, local_pci_probe, &ddi);
		else
			error = local_pci_probe(&ddi);
		put_online_cpus();
	} else
		error = local_pci_probe(&ddi);

	return error;
}

/**
 * __pci_device_probe - check if a driver wants to claim a specific PCI device
 * @drv: driver to call to check if it wants the PCI device
 * @pci_dev: PCI device being probed
 *
 * returns 0 on success, else error.
 * side-effect: pci_dev->driver is set to drv when drv claims pci_dev.
 */
static int
__pci_device_probe(struct pci_driver *drv, struct pci_dev *pci_dev)
{
	const struct pci_device_id *id;
	int error = 0;

	if (!pci_dev->driver && drv->probe) {
		error = -ENODEV;

		id = pci_match_device(drv, pci_dev);
		if (id)
			error = pci_call_probe(drv, pci_dev, id);
		if (error >= 0)
			error = 0;
	}
	return error;
}

static int pci_device_probe(struct device * dev)
{
	int error = 0;
	struct pci_driver *drv;
	struct pci_dev *pci_dev;

	drv = to_pci_driver(dev->driver);
	pci_dev = to_pci_dev(dev);
	pci_dev_get(pci_dev);
	error = __pci_device_probe(drv, pci_dev);
	if (error)
		pci_dev_put(pci_dev);

	return error;
}

static int pci_device_remove(struct device * dev)
{
	struct pci_dev * pci_dev = to_pci_dev(dev);
	struct pci_driver * drv = pci_dev->driver;

	if (drv) {
		if (drv->remove) {
			pm_runtime_get_sync(dev);
			drv->remove(pci_dev);
			pm_runtime_put_noidle(dev);
		}
		pci_dev->driver = NULL;
	}

	/* Undo the runtime PM settings in local_pci_probe() */
	pm_runtime_put_sync(dev);

	/*
	 * If the device is still on, set the power state as "unknown",
	 * since it might change by the next time we load the driver.
	 */
	if (pci_dev->current_state == PCI_D0)
		pci_dev->current_state = PCI_UNKNOWN;

	/*
	 * We would love to complain here if pci_dev->is_enabled is set, that
	 * the driver should have called pci_disable_device(), but the
	 * unfortunate fact is there are too many odd BIOS and bridge setups
	 * that don't like drivers doing that all of the time.
	 * Oh well, we can dream of sane hardware when we sleep, no matter how
	 * horrible the crap we have to deal with is when we are awake...
	 */

	pci_dev_put(pci_dev);
	return 0;
}

static void pci_device_shutdown(struct device *dev)
{
	struct pci_dev *pci_dev = to_pci_dev(dev);
	struct pci_driver *drv = pci_dev->driver;

	pm_runtime_resume(dev);

	if (drv && drv->shutdown)
		drv->shutdown(pci_dev);
	pci_msi_shutdown(pci_dev);
	pci_msix_shutdown(pci_dev);

#ifdef CONFIG_KEXEC
	/*
	 * If this is a kexec reboot, turn off Bus Master bit on the
	 * device to tell it to not continue to do DMA. Don't touch
	 * devices in D3cold or unknown states.
	 * If it is not a kexec reboot, firmware will hit the PCI
	 * devices with big hammer and stop their DMA any way.
	 */
	if (kexec_in_progress && (pci_dev->current_state <= PCI_D3hot))
		pci_clear_master(pci_dev);
#endif
}

#ifdef CONFIG_PM

/* Auxiliary functions used for system resume and run-time resume. */

/**
 * pci_restore_standard_config - restore standard config registers of PCI device
 * @pci_dev: PCI device to handle
 */
static int pci_restore_standard_config(struct pci_dev *pci_dev)
{
	pci_update_current_state(pci_dev, PCI_UNKNOWN);

	if (pci_dev->current_state != PCI_D0) {
		int error = pci_set_power_state(pci_dev, PCI_D0);
		if (error)
			return error;
	}

	pci_restore_state(pci_dev);
	return 0;
}

#endif

#ifdef CONFIG_PM_SLEEP

static void pci_pm_default_resume_early(struct pci_dev *pci_dev)
{
	pci_power_up(pci_dev);
	pci_restore_state(pci_dev);
	pci_fixup_device(pci_fixup_resume_early, pci_dev);
}

/*
 * Default "suspend" method for devices that have no driver provided suspend,
 * or not even a driver at all (second part).
 */
static void pci_pm_set_unknown_state(struct pci_dev *pci_dev)
{
	/*
	 * mark its power state as "unknown", since we don't know if
	 * e.g. the BIOS will change its device state when we suspend.
	 */
	if (pci_dev->current_state == PCI_D0)
		pci_dev->current_state = PCI_UNKNOWN;
}

/*
 * Default "resume" method for devices that have no driver provided resume,
 * or not even a driver at all (second part).
 */
static int pci_pm_reenable_device(struct pci_dev *pci_dev)
{
	int retval;

	/* if the device was enabled before suspend, reenable */
	retval = pci_reenable_device(pci_dev);
	/*
	 * if the device was busmaster before the suspend, make it busmaster
	 * again
	 */
	if (pci_dev->is_busmaster)
		pci_set_master(pci_dev);

	return retval;
}

static int pci_legacy_suspend(struct device *dev, pm_message_t state)
{
	struct pci_dev * pci_dev = to_pci_dev(dev);
	struct pci_driver * drv = pci_dev->driver;

	if (drv && drv->suspend) {
		pci_power_t prev = pci_dev->current_state;
		int error;

		error = drv->suspend(pci_dev, state);
		suspend_report_result(drv->suspend, error);
		if (error)
			return error;

		if (!pci_dev->state_saved && pci_dev->current_state != PCI_D0
		    && pci_dev->current_state != PCI_UNKNOWN) {
			WARN_ONCE(pci_dev->current_state != prev,
				"PCI PM: Device state not saved by %pF\n",
				drv->suspend);
		}
	}

	pci_fixup_device(pci_fixup_suspend, pci_dev);

	return 0;
}

static int pci_legacy_suspend_late(struct device *dev, pm_message_t state)
{
	struct pci_dev * pci_dev = to_pci_dev(dev);
	struct pci_driver * drv = pci_dev->driver;

	if (drv && drv->suspend_late) {
		pci_power_t prev = pci_dev->current_state;
		int error;

		error = drv->suspend_late(pci_dev, state);
		suspend_report_result(drv->suspend_late, error);
		if (error)
			return error;

		if (!pci_dev->state_saved && pci_dev->current_state != PCI_D0
		    && pci_dev->current_state != PCI_UNKNOWN) {
			WARN_ONCE(pci_dev->current_state != prev,
				"PCI PM: Device state not saved by %pF\n",
				drv->suspend_late);
			return 0;
		}
	}

	if (!pci_dev->state_saved)
		pci_save_state(pci_dev);

	pci_pm_set_unknown_state(pci_dev);

	return 0;
}

static int pci_legacy_resume_early(struct device *dev)
{
	struct pci_dev * pci_dev = to_pci_dev(dev);
	struct pci_driver * drv = pci_dev->driver;

	return drv && drv->resume_early ?
			drv->resume_early(pci_dev) : 0;
}

static int pci_legacy_resume(struct device *dev)
{
	struct pci_dev * pci_dev = to_pci_dev(dev);
	struct pci_driver * drv = pci_dev->driver;

	pci_fixup_device(pci_fixup_resume, pci_dev);

	return drv && drv->resume ?
			drv->resume(pci_dev) : pci_pm_reenable_device(pci_dev);
}

/* Auxiliary functions used by the new power management framework */

static void pci_pm_default_resume(struct pci_dev *pci_dev)
{
	pci_fixup_device(pci_fixup_resume, pci_dev);

	if (!pci_is_bridge(pci_dev))
		pci_enable_wake(pci_dev, PCI_D0, false);
}

static void pci_pm_default_suspend(struct pci_dev *pci_dev)
{
	/* Disable non-bridge devices without PM support */
	if (!pci_is_bridge(pci_dev))
		pci_disable_enabled_device(pci_dev);
}

static bool pci_has_legacy_pm_support(struct pci_dev *pci_dev)
{
	struct pci_driver *drv = pci_dev->driver;
	bool ret = drv && (drv->suspend || drv->suspend_late || drv->resume
		|| drv->resume_early);

	/*
	 * Legacy PM support is used by default, so warn if the new framework is
	 * supported as well.  Drivers are supposed to support either the
	 * former, or the latter, but not both at the same time.
	 */
	WARN(ret && drv->driver.pm, "driver %s device %04x:%04x\n",
		drv->name, pci_dev->vendor, pci_dev->device);

	return ret;
}

/* New power management framework */

static int pci_pm_prepare(struct device *dev)
{
	struct device_driver *drv = dev->driver;
	int error = 0;

	/*
	 * PCI devices suspended at run time need to be resumed at this
	 * point, because in general it is necessary to reconfigure them for
	 * system suspend.  Namely, if the device is supposed to wake up the
	 * system from the sleep state, we may need to reconfigure it for this
	 * purpose.  In turn, if the device is not supposed to wake up the
	 * system from the sleep state, we'll have to prevent it from signaling
	 * wake-up.
	 */
	pm_runtime_resume(dev);

	if (drv && drv->pm && drv->pm->prepare)
		error = drv->pm->prepare(dev);

	return error;
}

#else /* !CONFIG_PM_SLEEP */

#define pci_pm_prepare	NULL

#endif /* !CONFIG_PM_SLEEP */

#ifdef CONFIG_SUSPEND

static int pci_pm_suspend(struct device *dev)
{
	struct pci_dev *pci_dev = to_pci_dev(dev);
	const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL;

	if (pci_has_legacy_pm_support(pci_dev))
		return pci_legacy_suspend(dev, PMSG_SUSPEND);

	if (!pm) {
		pci_pm_default_suspend(pci_dev);
		goto Fixup;
	}

	pci_dev->state_saved = false;
	if (pm->suspend) {
		pci_power_t prev = pci_dev->current_state;
		int error;

		error = pm->suspend(dev);
		suspend_report_result(pm->suspend, error);
		if (error)
			return error;

		if (!pci_dev->state_saved && pci_dev->current_state != PCI_D0
		    && pci_dev->current_state != PCI_UNKNOWN) {
			WARN_ONCE(pci_dev->current_state != prev,
				"PCI PM: State of device not saved by %pF\n",
				pm->suspend);
		}
	}

 Fixup:
	pci_fixup_device(pci_fixup_suspend, pci_dev);

	return 0;
}

static int pci_pm_suspend_noirq(struct device *dev)
{
	struct pci_dev *pci_dev = to_pci_dev(dev);
	const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL;

	if (pci_has_legacy_pm_support(pci_dev))
		return pci_legacy_suspend_late(dev, PMSG_SUSPEND);

	if (!pm) {
		pci_save_state(pci_dev);
		return 0;
	}

	if (pm->suspend_noirq) {
		pci_power_t prev = pci_dev->current_state;
		int error;

		error = pm->suspend_noirq(dev);
		suspend_report_result(pm->suspend_noirq, error);
		if (error)
			return error;

		if (!pci_dev->state_saved && pci_dev->current_state != PCI_D0
		    && pci_dev->current_state != PCI_UNKNOWN) {
			WARN_ONCE(pci_dev->current_state != prev,
				"PCI PM: State of device not saved by %pF\n",
				pm->suspend_noirq);
			return 0;
		}
	}

	if (!pci_dev->state_saved) {
		pci_save_state(pci_dev);
		if (!pci_is_bridge(pci_dev))
			pci_prepare_to_sleep(pci_dev);
	}

	pci_pm_set_unknown_state(pci_dev);

	/*
	 * Some BIOSes from ASUS have a bug: If a USB EHCI host controller's
	 * PCI COMMAND register isn't 0, the BIOS assumes that the controller
	 * hasn't been quiesced and tries to turn it off.  If the controller
	 * is already in D3, this can hang or cause memory corruption.
	 *
	 * Since the value of the COMMAND register doesn't matter once the
	 * device has been suspended, we can safely set it to 0 here.
	 */
	if (pci_dev->class == PCI_CLASS_SERIAL_USB_EHCI)
		pci_write_config_word(pci_dev, PCI_COMMAND, 0);

	return 0;
}

static int pci_pm_resume_noirq(struct device *dev)
{
	struct pci_dev *pci_dev = to_pci_dev(dev);
	struct device_driver *drv = dev->driver;
	int error = 0;

	pci_pm_default_resume_early(pci_dev);

	if (pci_has_legacy_pm_support(pci_dev))
		return pci_legacy_resume_early(dev);

	if (drv && drv->pm && drv->pm->resume_noirq)
		error = drv->pm->resume_noirq(dev);

	return error;
}

static int pci_pm_resume(struct device *dev)
{
	struct pci_dev *pci_dev = to_pci_dev(dev);
	const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL;
	int error = 0;

	/*
	 * This is necessary for the suspend error path in which resume is
	 * called without restoring the standard config registers of the device.
	 */
	if (pci_dev->state_saved)
		pci_restore_standard_config(pci_dev);

	if (pci_has_legacy_pm_support(pci_dev))
		return pci_legacy_resume(dev);

	pci_pm_default_resume(pci_dev);

	if (pm) {
		if (pm->resume)
			error = pm->resume(dev);
	} else {
		pci_pm_reenable_device(pci_dev);
	}

	return error;
}

#else /* !CONFIG_SUSPEND */

#define pci_pm_suspend		NULL
#define pci_pm_suspend_noirq	NULL
#define pci_pm_resume		NULL
#define pci_pm_resume_noirq	NULL

#endif /* !CONFIG_SUSPEND */

#ifdef CONFIG_HIBERNATE_CALLBACKS

/*
 * pcibios_pm_ops - provide arch-specific hooks when a PCI device is doing
 * a hibernate transition
 */
struct dev_pm_ops __weak pcibios_pm_ops;

static int pci_pm_freeze(struct device *dev)
{
	struct pci_dev *pci_dev = to_pci_dev(dev);
	const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL;

	if (pci_has_legacy_pm_support(pci_dev))
		return pci_legacy_suspend(dev, PMSG_FREEZE);

	if (!pm) {
		pci_pm_default_suspend(pci_dev);
		return 0;
	}

	pci_dev->state_saved = false;
	if (pm->freeze) {
		int error;

		error = pm->freeze(dev);
		suspend_report_result(pm->freeze, error);
		if (error)
			return error;
	}

	if (pcibios_pm_ops.freeze)
		return pcibios_pm_ops.freeze(dev);

	return 0;
}

static int pci_pm_freeze_noirq(struct device *dev)
{
	struct pci_dev *pci_dev = to_pci_dev(dev);
	struct device_driver *drv = dev->driver;

	if (pci_has_legacy_pm_support(pci_dev))
		return pci_legacy_suspend_late(dev, PMSG_FREEZE);

	if (drv && drv->pm && drv->pm->freeze_noirq) {
		int error;

		error = drv->pm->freeze_noirq(dev);
		suspend_report_result(drv->pm->freeze_noirq, error);
		if (error)
			return error;
	}

	if (!pci_dev->state_saved)
		pci_save_state(pci_dev);

	pci_pm_set_unknown_state(pci_dev);

	if (pcibios_pm_ops.freeze_noirq)
		return pcibios_pm_ops.freeze_noirq(dev);

	return 0;
}

static int pci_pm_thaw_noirq(struct device *dev)
{
	struct pci_dev *pci_dev = to_pci_dev(dev);
	struct device_driver *drv = dev->driver;
	int error = 0;

	if (pcibios_pm_ops.thaw_noirq) {
		error = pcibios_pm_ops.thaw_noirq(dev);
		if (error)
			return error;
	}

	if (pci_has_legacy_pm_support(pci_dev))
		return pci_legacy_resume_early(dev);

	pci_update_current_state(pci_dev, PCI_D0);

	if (drv && drv->pm && drv->pm->thaw_noirq)
		error = drv->pm->thaw_noirq(dev);

	return error;
}

static int pci_pm_thaw(struct device *dev)
{
	struct pci_dev *pci_dev = to_pci_dev(dev);
	const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL;
	int error = 0;

	if (pcibios_pm_ops.thaw) {
		error = pcibios_pm_ops.thaw(dev);
		if (error)
			return error;
	}

	if (pci_has_legacy_pm_support(pci_dev))
		return pci_legacy_resume(dev);

	if (pm) {
		if (pm->thaw)
			error = pm->thaw(dev);
	} else {
		pci_pm_reenable_device(pci_dev);
	}

	pci_dev->state_saved = false;

	return error;
}

static int pci_pm_poweroff(struct device *dev)
{
	struct pci_dev *pci_dev = to_pci_dev(dev);
	const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL;

	if (pci_has_legacy_pm_support(pci_dev))
		return pci_legacy_suspend(dev, PMSG_HIBERNATE);

	if (!pm) {
		pci_pm_default_suspend(pci_dev);
		goto Fixup;
	}

	pci_dev->state_saved = false;
	if (pm->poweroff) {
		int error;

		error = pm->poweroff(dev);
		suspend_report_result(pm->poweroff, error);
		if (error)
			return error;
	}

 Fixup:
	pci_fixup_device(pci_fixup_suspend, pci_dev);

	if (pcibios_pm_ops.poweroff)
		return pcibios_pm_ops.poweroff(dev);

	return 0;
}

static int pci_pm_poweroff_noirq(struct device *dev)
{
	struct pci_dev *pci_dev = to_pci_dev(dev);
	struct device_driver *drv = dev->driver;

	if (pci_has_legacy_pm_support(to_pci_dev(dev)))
		return pci_legacy_suspend_late(dev, PMSG_HIBERNATE);

	if (!drv || !drv->pm)
		return 0;

	if (drv->pm->poweroff_noirq) {
		int error;

		error = drv->pm->poweroff_noirq(dev);
		suspend_report_result(drv->pm->poweroff_noirq, error);
		if (error)
			return error;
	}

	if (!pci_dev->state_saved && !pci_is_bridge(pci_dev))
		pci_prepare_to_sleep(pci_dev);

	/*
	 * The reason for doing this here is the same as for the analogous code
	 * in pci_pm_suspend_noirq().
	 */
	if (pci_dev->class == PCI_CLASS_SERIAL_USB_EHCI)
		pci_write_config_word(pci_dev, PCI_COMMAND, 0);

	if (pcibios_pm_ops.poweroff_noirq)
		return pcibios_pm_ops.poweroff_noirq(dev);

	return 0;
}

static int pci_pm_restore_noirq(struct device *dev)
{
	struct pci_dev *pci_dev = to_pci_dev(dev);
	struct device_driver *drv = dev->driver;
	int error = 0;

	if (pcibios_pm_ops.restore_noirq) {
		error = pcibios_pm_ops.restore_noirq(dev);
		if (error)
			return error;
	}

	pci_pm_default_resume_early(pci_dev);

	if (pci_has_legacy_pm_support(pci_dev))
		return pci_legacy_resume_early(dev);

	if (drv && drv->pm && drv->pm->restore_noirq)
		error = drv->pm->restore_noirq(dev);

	return error;
}

static int pci_pm_restore(struct device *dev)
{
	struct pci_dev *pci_dev = to_pci_dev(dev);
	const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL;
	int error = 0;

	if (pcibios_pm_ops.restore) {
		error = pcibios_pm_ops.restore(dev);
		if (error)
			return error;
	}

	/*
	 * This is necessary for the hibernation error path in which restore is
	 * called without restoring the standard config registers of the device.
	 */
	if (pci_dev->state_saved)
		pci_restore_standard_config(pci_dev);

	if (pci_has_legacy_pm_support(pci_dev))
		return pci_legacy_resume(dev);

	pci_pm_default_resume(pci_dev);

	if (pm) {
		if (pm->restore)
			error = pm->restore(dev);
	} else {
		pci_pm_reenable_device(pci_dev);
	}

	return error;
}

#else /* !CONFIG_HIBERNATE_CALLBACKS */

#define pci_pm_freeze		NULL
#define pci_pm_freeze_noirq	NULL
#define pci_pm_thaw		NULL
#define pci_pm_thaw_noirq	NULL
#define pci_pm_poweroff		NULL
#define pci_pm_poweroff_noirq	NULL
#define pci_pm_restore		NULL
#define pci_pm_restore_noirq	NULL

#endif /* !CONFIG_HIBERNATE_CALLBACKS */

#ifdef CONFIG_PM_RUNTIME

static int pci_pm_runtime_suspend(struct device *dev)
{
	struct pci_dev *pci_dev = to_pci_dev(dev);
	const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL;
	pci_power_t prev = pci_dev->current_state;
	int error;

	/*
	 * If pci_dev->driver is not set (unbound), the device should
	 * always remain in D0 regardless of the runtime PM status
	 */
	if (!pci_dev->driver)
		return 0;

	if (!pm || !pm->runtime_suspend)
		return -ENOSYS;

	pci_dev->state_saved = false;
	pci_dev->no_d3cold = false;
	error = pm->runtime_suspend(dev);
	suspend_report_result(pm->runtime_suspend, error);
	if (error)
		return error;
	if (!pci_dev->d3cold_allowed)
		pci_dev->no_d3cold = true;

	pci_fixup_device(pci_fixup_suspend, pci_dev);

	if (!pci_dev->state_saved && pci_dev->current_state != PCI_D0
	    && pci_dev->current_state != PCI_UNKNOWN) {
		WARN_ONCE(pci_dev->current_state != prev,
			"PCI PM: State of device not saved by %pF\n",
			pm->runtime_suspend);
		return 0;
	}

	if (!pci_dev->state_saved) {
		pci_save_state(pci_dev);
		pci_finish_runtime_suspend(pci_dev);
	}

	return 0;
}

static int pci_pm_runtime_resume(struct device *dev)
{
	int rc;
	struct pci_dev *pci_dev = to_pci_dev(dev);
	const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL;

	/*
	 * If pci_dev->driver is not set (unbound), the device should
	 * always remain in D0 regardless of the runtime PM status
	 */
	if (!pci_dev->driver)
		return 0;

	if (!pm || !pm->runtime_resume)
		return -ENOSYS;

	pci_restore_standard_config(pci_dev);
	pci_fixup_device(pci_fixup_resume_early, pci_dev);
	__pci_enable_wake(pci_dev, PCI_D0, true, false);
	pci_fixup_device(pci_fixup_resume, pci_dev);

	rc = pm->runtime_resume(dev);

	pci_dev->runtime_d3cold = false;

	return rc;
}

static int pci_pm_runtime_idle(struct device *dev)
{
	struct pci_dev *pci_dev = to_pci_dev(dev);
	const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL;
	int ret = 0;

	/*
	 * If pci_dev->driver is not set (unbound), the device should
	 * always remain in D0 regardless of the runtime PM status
	 */
	if (!pci_dev->driver)
		return 0;

	if (!pm)
		return -ENOSYS;

	if (pm->runtime_idle)
		ret = pm->runtime_idle(dev);

	return ret;
}

#else /* !CONFIG_PM_RUNTIME */

#define pci_pm_runtime_suspend	NULL
#define pci_pm_runtime_resume	NULL
#define pci_pm_runtime_idle	NULL

#endif /* !CONFIG_PM_RUNTIME */

#ifdef CONFIG_PM

static const struct dev_pm_ops pci_dev_pm_ops = {
	.prepare = pci_pm_prepare,
	.suspend = pci_pm_suspend,
	.resume = pci_pm_resume,
	.freeze = pci_pm_freeze,
	.thaw = pci_pm_thaw,
	.poweroff = pci_pm_poweroff,
	.restore = pci_pm_restore,
	.suspend_noirq = pci_pm_suspend_noirq,
	.resume_noirq = pci_pm_resume_noirq,
	.freeze_noirq = pci_pm_freeze_noirq,
	.thaw_noirq = pci_pm_thaw_noirq,
	.poweroff_noirq = pci_pm_poweroff_noirq,
	.restore_noirq = pci_pm_restore_noirq,
	.runtime_suspend = pci_pm_runtime_suspend,
	.runtime_resume = pci_pm_runtime_resume,
	.runtime_idle = pci_pm_runtime_idle,
};

#define PCI_PM_OPS_PTR	(&pci_dev_pm_ops)

#else /* !COMFIG_PM_OPS */

#define PCI_PM_OPS_PTR	NULL

#endif /* !COMFIG_PM_OPS */

/**
 * __pci_register_driver - register a new pci driver
 * @drv: the driver structure to register
 * @owner: owner module of drv
 * @mod_name: module name string
 *
 * Adds the driver structure to the list of registered drivers.
 * Returns a negative value on error, otherwise 0.
 * If no error occurred, the driver remains registered even if
 * no device was claimed during registration.
 */
int __pci_register_driver(struct pci_driver *drv, struct module *owner,
			  const char *mod_name)
{
	/* initialize common driver fields */
	drv->driver.name = drv->name;
	drv->driver.bus = &pci_bus_type;
	drv->driver.owner = owner;
	drv->driver.mod_name = mod_name;

	spin_lock_init(&drv->dynids.lock);
	INIT_LIST_HEAD(&drv->dynids.list);

	/* register with core */
	return driver_register(&drv->driver);
}

/**
 * pci_unregister_driver - unregister a pci driver
 * @drv: the driver structure to unregister
 *
 * Deletes the driver structure from the list of registered PCI drivers,
 * gives it a chance to clean up by calling its remove() function for
 * each device it was responsible for, and marks those devices as
 * driverless.
 */

void
pci_unregister_driver(struct pci_driver *drv)
{
	driver_unregister(&drv->driver);
	pci_free_dynids(drv);
}

static struct pci_driver pci_compat_driver = {
	.name = "compat"
};

/**
 * pci_dev_driver - get the pci_driver of a device
 * @dev: the device to query
 *
 * Returns the appropriate pci_driver structure or %NULL if there is no
 * registered driver for the device.
 */
struct pci_driver *
pci_dev_driver(const struct pci_dev *dev)
{
	if (dev->driver)
		return dev->driver;
	else {
		int i;
		for(i=0; i<=PCI_ROM_RESOURCE; i++)
			if (dev->resource[i].flags & IORESOURCE_BUSY)
				return &pci_compat_driver;
	}
	return NULL;
}

/**
 * pci_bus_match - Tell if a PCI device structure has a matching PCI device id structure
 * @dev: the PCI device structure to match against
 * @drv: the device driver to search for matching PCI device id structures
 *
 * Used by a driver to check whether a PCI device present in the
 * system is in its list of supported devices. Returns the matching
 * pci_device_id structure or %NULL if there is no match.
 */
static int pci_bus_match(struct device *dev, struct device_driver *drv)
{
	struct pci_dev *pci_dev = to_pci_dev(dev);
	struct pci_driver *pci_drv;
	const struct pci_device_id *found_id;

	if (!pci_dev->match_driver)
		return 0;

	pci_drv = to_pci_driver(drv);
	found_id = pci_match_device(pci_drv, pci_dev);
	if (found_id)
		return 1;

	return 0;
}

/**
 * pci_dev_get - increments the reference count of the pci device structure
 * @dev: the device being referenced
 *
 * Each live reference to a device should be refcounted.
 *
 * Drivers for PCI devices should normally record such references in
 * their probe() methods, when they bind to a device, and release
 * them by calling pci_dev_put(), in their disconnect() methods.
 *
 * A pointer to the device with the incremented reference counter is returned.
 */
struct pci_dev *pci_dev_get(struct pci_dev *dev)
{
	if (dev)
		get_device(&dev->dev);
	return dev;
}

/**
 * pci_dev_put - release a use of the pci device structure
 * @dev: device that's been disconnected
 *
 * Must be called when a user of a device is finished with it.  When the last
 * user of the device calls this function, the memory of the device is freed.
 */
void pci_dev_put(struct pci_dev *dev)
{
	if (dev)
		put_device(&dev->dev);
}

static int pci_uevent(struct device *dev, struct kobj_uevent_env *env)
{
	struct pci_dev *pdev;

	if (!dev)
		return -ENODEV;

	pdev = to_pci_dev(dev);
	if (!pdev)
		return -ENODEV;

	if (add_uevent_var(env, "PCI_CLASS=%04X", pdev->class))
		return -ENOMEM;

	if (add_uevent_var(env, "PCI_ID=%04X:%04X", pdev->vendor, pdev->device))
		return -ENOMEM;

	if (add_uevent_var(env, "PCI_SUBSYS_ID=%04X:%04X", pdev->subsystem_vendor,
			   pdev->subsystem_device))
		return -ENOMEM;

	if (add_uevent_var(env, "PCI_SLOT_NAME=%s", pci_name(pdev)))
		return -ENOMEM;

	if (add_uevent_var(env, "MODALIAS=pci:v%08Xd%08Xsv%08Xsd%08Xbc%02Xsc%02Xi%02x",
			   pdev->vendor, pdev->device,
			   pdev->subsystem_vendor, pdev->subsystem_device,
			   (u8)(pdev->class >> 16), (u8)(pdev->class >> 8),
			   (u8)(pdev->class)))
		return -ENOMEM;
	return 0;
}

struct bus_type pci_bus_type = {
	.name		= "pci",
	.match		= pci_bus_match,
	.uevent		= pci_uevent,
	.probe		= pci_device_probe,
	.remove		= pci_device_remove,
	.shutdown	= pci_device_shutdown,
	.dev_groups	= pci_dev_groups,
	.bus_groups	= pci_bus_groups,
	.drv_groups	= pci_drv_groups,
	.pm		= PCI_PM_OPS_PTR,
};

static int __init pci_driver_init(void)
{
	return bus_register(&pci_bus_type);
}

postcore_initcall(pci_driver_init);

EXPORT_SYMBOL_GPL(pci_add_dynid);
EXPORT_SYMBOL(pci_match_id);
EXPORT_SYMBOL(__pci_register_driver);
EXPORT_SYMBOL(pci_unregister_driver);
EXPORT_SYMBOL(pci_dev_driver);
EXPORT_SYMBOL(pci_bus_type);
EXPORT_SYMBOL(pci_dev_get);
EXPORT_SYMBOL(pci_dev_put);

redpajama_set_name: RedPajamaGithub


Grab a coffee and join us for a 30-minute webinar on Points to the Past!
Points to the Past (pointstothepast.ca) is your gateway to a world-class collection of primary sources, made up of nearly 200 million pages of digitized historical content and available barrier-free to all of BC and Yukon.
Gale Cengage will be offering a 30-minute webinar on strategies for targeting primary source content within the Gale/Points to the Past collections to support learning needs and research interests as well as ways to raise awareness of these outstanding collections. This session will also provide a navigation overview and instruction on how to incorporate content into coursework, so you'll walk away with the skills you need to start exploring and sharing.
Register for the session that fits your schedule below. After registering, you will receive a confirmation email containing information about joining the webinar. These sessions will be recorded for those who are unable attend.


text:
Médecins Sans Frontières Objects to 'Sans Frontières' Name of Crisis PR Firm
Political publishers Dods Group last year made a small £800,000 profit after years of multi-million pound losses. This was achieved largely by Guy Cleaver halving the bloated sales and marketing headcount down from 119 to 57. Dods celebrated their new found profitability by moving out of their Mayfair offices and into the Shard. Inconveniently situated 20 minutes away from SW1 in SE1.
Dods is lending almost all of that last year's profits in an unusual investment. It has subscribed for 40% of the issued share capital of Sans Frontieres Associates for a nominal sum and lent it £700,000 to provide initial working capital. Sans Frontieres Associates is chaired by Tim Bell and will do PR and comms work in war stricken hotspots.
Dods reckon that:
"Jonathan Lehrle, CEO and founder has a strong vision for his organisation and the objective to redefine the approach taken to international geopolitical and crisis communications consulting. His vision for his company's core capabilities and international reach is in keeping with the trends and changing market requirements seen by the Board of Dods."
The respected NGO Médecins Sans Frontières is less happy. Here's their spokeswoman Polly Markandya:
"We'd be in the same corridors – us trying to negotiate for humanitarian access and them negotiating PR contracts. It's too close for comfort. Surely, with their creative brains, they can think of another good name for their venture."
Other people who wondering about the new comms agency are Dods' own clients, the comms firms who subscribe to their monitoring services and read their Public Affairs News* magazine. Many may be less than keen on paying monthly subscriptions to their competitor…
*Strangely Guido can not find any mention in Public Affairs News of the launch of Sans Frontieres Associates or the involvement of PA luminaries like Tim Bell and Darren Murphy. Fancy that…
Tags: Dods, Lobbyists, Spin
People: Guy Cleaver / Jonathan Lehrle / Tim Bell
Media News List
Conrad Black on Max Hastings and Boris…
"As the former employer of both of them, and although their positions were of unequal importance and challenges, on balance I must declare Boris to be more reliable and trustworthy than Max."


The University of St Andrews and the St Andrews Students' Association have taken an important step towards a major redevelopment of the Students' Association building in St Mary's Place.
The University Court has agreed to invest over £400,000 in detailed designs for a top-to-bottom revamp of the Union, which has remained largely unchanged since it was built in the 1970s.
If the final designs and plans are approved by Court, it's hoped work can start in 2013 to provide St Andrews students with a state-of-the-art Union with many new features.
An attractive piazza and new entrance which could transform the current car-park area.
A new street-facing café, run for students, by students.
New venues, with the current Venue One split into two distinct spaces: a 420 person capacity flexible performance space and a 600 person capacity nightclub, with a lounge area for an additional 270 persons. The lack of a 'real nightclub' in St Andrews could thus be remedied, and the 'jack-of-all trades' Venue One may be transformed into a more bespoke space for theatre, concerts, comedy and more.
A dramatic expansion and improvement in terms of society space on the middle and top floor of the Union. Overall, society space could increase from 8 rooms to 14, with an overall increase of 40% in square meters. This may include a design suite, radio broadcasting facility and film editing suite and will be achieved by the relocation of Travel and Student services away from the building.
On the top floor, two large flexible rooms could be introduced, both suitable for rehearsals and one soundproofed especially for musicians.
There could be the introduction of long lacking student facilities such as a kitchen and an artist's workshop.
The current Venue 2 could be revamped into a sky bar serving wine and cocktails, and aimed especially at postgraduate students. An acoustic/ sports bar located on the ground floor might replace the current 'live venue' functions of Venue 2.
The current Main Bar could be broken up into smaller areas, each with their own identity.
A greener, more sustainable building, aiming for the same standards achieved by recent University new builds.
Over the past few years, past and present St Andrews Students' Association Sabbatical Officers have laid the groundwork for redevelopment, reviewed a number of different models, carried out widespread consultations with students and lobbied the University for funding.
The University Court agreed with students that the upgrade of the Union should be a priority project, subject to available funds.
If it goes ahead, the redevelopment will be funded partly from University coffers and partly through fundraising. St Andrews Principal Professor Louise Richardson has already secured one major donation towards the project.
"The Students' Association building hasn't changed much since I was a student and I'm excited by the possibility of long awaited and innovative improvements.
"The Union should be a central part of the St Andrews experience and should match the high standards we achieve in so many other areas of university life.
"The sabbaticals, the architects and project board have been working very hard over the past few months to develop a vision for the state-of-the-art Union which students deserve.
Sketches and architects drawings of the way the new Union could look will form the central part of an exhibition in the foyer of the present building, beginning shortly.
The exhibition will be open to students, staff and the general public and will form part of an ongoing consultation in advance of the preparation of a detailed planning application.


text:
Search Documents and Resources
Presidential Transition
For Federal Employees
COVID-19: Tips
POGO Supports Rep. Maloney's Legislation to Study Oil/Gas Royalty Collections
By POGO Staff | Filed under letter | August 02, 2007
Representative Carolyn Maloney
Dear Representative Maloney:
The Project On Government Oversight (POGO), Taxpayers for Common Sense (TCS) and Friends of the Earth (FOE) wholeheartedly support your legislation to commission research that would determine whether the federal government is using best practices in the collection of oil and gas royalties from companies drilling on federal and Native American lands.
We have spoken to engineers who agree that the Congress and the public are in the dark about whether proper protections are in place to prevent the theft of the nation's oil and gas. Your legislation is in an effort to engage experts at the National Academies of Engineering to work on behalf of the taxpayer in order to assess practices that may allow oil and gas theft on federal and Native American leases.
To our knowledge, a comprehensive analysis of this type has not been done in the past twenty five years since the landmark Linowes Commission which documented oil and gas theft on federal and Native American lands. Yet, private sector standards for measuring, collecting, verifying and delivering oil and gas evolve on a constant basis. Your legislation will ensure that the federal government is keeping up with these private sector standards and practices.
The research is particularly needed given billions of dollars in lawsuit jury verdicts and settlements that have been reached in recent years over allegations that oil and gas companies shortchanged private royalty owners, states, the federal government and tribes. Industry documents surfaced in some of this litigation have confirmed that oil and gas companies tinker with pipeline measurement systems in order to cheat royalty owners.
POGO, TCS, and FOE thank you for your tireless efforts to ensure that the American taxpayers' precious oil and gas resources are protected from waste, fraud and abuse.
Danielle Brian, Executive Director
Ryan Alexander, President
Taxpayers for Common Sense
Erich Pica, Director, Domestic Program
POGO Staff
Transparency Energy and Environment Oversight Oil and Gas Royalties
©2021 POGO | Privacy Policy


text:
Statewide Coronavirus Dashboard
Guidelines for Reopening Schools
Dr. Rachel Answers Coronavirus Questions
Livingston Parish to distribute donated re-usable masks at select community locations
Nearly a dozen locations scattered across the parish will give out free cloth masks starting at 8 a.m. on Saturday, April 25, according to the Livingston Parish Office and Homeland Security and Emergency Preparedness (LOHSEP).
(BRProud) – Livingston Parish will distribute donated, high-quality re-useable masks on Saturday, April 25, 2020 from 8:00am to 5:00pm at selected area locations.
The PPE will be distributed at the following locations:
City of Denham Springs Fire Department–
930 Government Drive, Denham Springs
9677 Florida Blvd., Walker (Carpool Lane – enter off of North Palmetto Street)
Fire District #1 – Albany–
29778 South Montpelier Ave., Albany
Fire District #2 – Springfield–
32280 Terry Street, Springfield
French Settlement Police Department–
16015 Hwy 16, French Settlement
Fire District #5 (3 locations)–
#1 – 8098 Florida Blvd., Denham Springs
#2 – 31747 Myers Road, Denham Springs
#3 – 25500 Hwy 16 South, Denham Springs
Mandy's Primary Healthcare–
Oak Point Shopping Center (Watson)
29401 South Frost Road, Livingston
Sponsors and participants in the distribution include Livingston Parish President Layton Ricks, the Livingston Parish Office of Homeland Security and Emergency Preparedness (LOHSEP), City of Denham Springs, Denham Springs Fire Department, City of Walker, Fire District #1 (Albany), Albany Police Department, Fire District #2 (Springfield), French Settlement Police Department, Fire District #5 (Denham Springs), Mandy's Primary Healthcare and First Baptist Church of Livingston.
Louisiana Department of Health confirms first case of new covid variant in New Orleans area
by Anna McAllister / Jan 16, 2021
BATON ROUGE, La. -- Saturday, the Louisiana Department of Health confirmed the state's first case of the U.K. covid variant in the Greater New Orleans area. This variant of the illness is common in the United Kingdom and it spreads more easily from person to person than other strains of the virus. However, there is no proof that this variant creates a more severe case of the disease. Despite the new strain showing up in the New Orleans area, health experts believe the current covid-19 vaccine is effective against the variant.
"It was always a matter of time before this new strain of the virus would reach Louisiana, which is why our state health experts have been monitoring cases and working with the CDC to prepare. There is no such thing as taking this too seriously. Our case counts and hospitalizations are increasing daily and deaths from COVID have reached an alarming rate," said Governor John Bel Edwards. Edwards adds that everyone should wear a mask, keep social distancing in mind, and to wash your hands frequently.
Johnson & Johnson one-dose COVID-19 vaccine may be on horizon
by Ninette Sosa, Nexstar Media Wire / Jan 15, 2021
ARKANSAS (KNWA/KFTA) — Johnson & Johnson is close to wrapping up data analysis for Phase 3 of its COVID-19 vaccine trial.
Janssen, the Belgian unit pharmaceutical division of Johnson & Johnson, reported approximately 45,000 people have participated in Phase 3 clinical trials, also known as ENSEMBLE, as of December. Participants were recruited for the third phase at the end of September after data from Phase 1 and 2 was completed, according to the Global Head of Research & Development at Janssen Mathai Mammen.
OSU Wexner Medical Center finds new strain of COVID-19 in Ohio
by Matthew Herchik / Jan 15, 2021
COLUMBUS (WCMH) -- Researchers from Ohio State University said two new strains of COVID-19 have been identified in central Ohio, bringing with it new questions about how it could impact those across the state.
Those researchers said that mutations of the COVID-19 virus are expected and have been studied since the pandemic began last March.


As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. See also the last Fossies "Diffs" side-by-side code changes report for "0BSD": 1.6.4_vs_1.7.0.
4 with or without fee is hereby granted.
12 PERFORMANCE OF THIS SOFTWARE.


text:
Home » Russian court rejects Griner appeal of her 9-year sentence
Russian court rejects Griner appeal of her 9-year sentence
By Business Khabar October 25, 2022 Updated: October 25, 2022 No Comments
MOSCOW (AP) — A Russian courtroom on Tuesday rejected an attraction by U.S. basketball star Brittney Griner of her nine-year jail sentence for drug possession, a step that would transfer her nearer to a potential high-stakes prisoner swap between Moscow and Washington.
The eight-time all-star middle with the WNBA's Phoenix Mercury and a two-time Olympic gold medalist was convicted Aug. 4 after police stated they discovered vape canisters containing hashish oil in her baggage at Moscow's Sheremetyevo Airport.
Griner, 31, was not on the Moscow Regional Court listening to however appeared by way of video hyperlink from a penal colony outdoors Moscow the place she is held.
At her trial, Griner admitted to having the canisters in her baggage however testified she packed them inadvertently in her haste to make her flight and had no felony intent. Her protection workforce introduced written statements saying she had been prescribed hashish to deal with continual ache.
The nine-year sentence was near the utmost of 10 years, and Griner's legal professionals argued after the conviction that the punishment was extreme. They stated in comparable instances defendants have acquired a mean sentence of about 5 years, with a couple of third of them granted parole.
While upholding the sentence, the courtroom stated Griner's jail time will likely be recalculated to mirror what she has already served in pre-trial detention. One day in pre-trial detention will likely be counted as 1 1/2 days in jail, so she nonetheless should serve about eight years in jail.
Griner's arrest in February got here at a time of heightened tensions between Moscow and Washington, simply days earlier than Russia despatched troops into Ukraine. At the time, Griner was returning to play for a Russian workforce in the course of the WNBA's offseason.
U.S. National Security Advisor Jake Sullivan denounced Tuesday's listening to as "another sham judicial proceeding," saying in an announcement that U.S. President Joe Biden "is willing to go to extraordinary lengths and make tough decisions to bring Americans home."
Before her conviction, the U.S. State Department declared Griner to be "wrongfully detained" — a cost that Russia has sharply rejected.
Reflecting rising strain on the Biden administration to do extra to convey Griner house, U.S. Secretary of State Antony Blinken took the weird step of showing publicly in July that Washington had made a "substantial proposal" to get Griner house, together with Paul Whelan, an American serving a 16-year sentence in Russia for espionage.
Blinken didn't elaborate, however The Associated Press and different information organizations have reported that Washington has provided to alternate Griner and Whelan for Viktor Bout, a Russian arms seller who's serving a 25-year sentence within the U.S. and as soon as earned the nickname the "merchant of death."
The White House stated it has not but acquired a productive response from Russia to the supply.
Russian diplomats have refused to touch upon the U.S. proposal and urged Washington to debate the matter in confidential talks, avoiding public statements. But some Russian officers have stated a deal is extra possible as soon as appeals have been exhausted.
In September, Biden met with Cherelle Griner, the participant's spouse, in addition to her agent, Lindsay Colas. Biden additionally sat down individually with Elizabeth Whelan, Paul Whelan's sister.
The White House stated after the conferences that the president pressured to the households his "continued commitment to working through all available avenues to bring Brittney and Paul home safely."
The U.S. and Russia carried out a prisoner swap in April. Moscow launched U.S. Marines veteran Trevor Reed in alternate for the U.S. releasing a Russian pilot, Konstantin Yaroshenko, who was convicted in a drug trafficking conspiracy.
Moscow additionally has pushed for the discharge of different Russians in U.S. custody.
One of them is Alexander Vinnik, who was accused of laundering billions of {dollars} by a bootleg cryptocurrency alternate. Vinnik was arrested in Greece in 2017 and extradited to the U.S. in August.
Vinnik's French lawyer, Frederic Belot, advised Russian newspaper Izvestia final month that his consumer hoped to be a part of a potential swap.
The newspaper speculated that one other potential candidate was Roman Seleznev, the son of a Russian lawmaker. He was sentenced in 2017 to 27 years in jail on expenses from a hacking and bank card fraud scheme.
Follow AP's protection of the Griner case: https://apnews.com/hub/brittney-griner
Battenfeld: Massachusetts Republican chair vote is battle for identity of party
'Date rape drug' incidents in Massachusetts: Legislator files bill to protect victims
'Police assistant' dead and four officers injured as Mahsa Amini protests continue in Iran
By Business Khabar September 21, 2022
One individual died on Tuesday and 4 cops had been injured throughout anti-government protests in…
Tigray Bombing: Bloody blood and hell-like sight everywhere, the army of this country threw bombs on its own people from the sky
By Shehnaz June 27, 2021
Ethiopia: The people of Ethiopia are facing a lot of conflict between rebels and army…
DA hopeful Ricardo Arroyo still attorney on brother Felix's harassment case as it heads toward trial
By Business Khabar July 28, 2022
District Attorney candidate Ricardo Arroyo continues to be listed as an legal professional in his…
What is the hellfire R9X missile used to kill al Qaeda's most wanted?
By Bhagyashree Soni August 2, 2022
US officers have confirmed that Osama bin Laden's second-in-command Ayman al Zawahiri was killed by…


So you want to study in the land of Luther and Einstein? This is a great decision considering that American universities modeled their top graduate schools after the German universities with their passion for research. The Heidelberg University is one of the finest universities in Europe and the world. Additionally, you might want to consider Leipzig, but it is the Ludwig Maximilian University of Munich (LMU Munich), the RWTH Aachen University and the Technical University Munich that are the best for mechanical and industrial engineering in Germany.
These schools rank in the top 50 ranking of the world's best universities for mechanical, aeronautical and manufacturing engineering. Additionally, the universities also feature in the Top 100 QS World University Rankings for engineering.
Let's now look at the admission process, admission procedures, tuition and fees, scores/tests required for two of these universities.
This is a public research university that is renowned for its academic diversity and support. It is indeed a popular destination for graduate students, with a growing number of master programs taught in English. Bachelors and masters programs are taught in German.
The engineering courses at this university are going to be in German and applicants will have to be proficient in the language. All engineering courses are Master's level.
Candidates must hold a bachelor or Diploma degree in mechanical or industrial engineering or a related subject to be admitted. It is difficult to get in, and this is more so for EU students. Nonetheless, one needs to have excellent grades. The program website provides all the details on the admission procedures. There aren't any tests that are required, and the tuition and fees are very affordable especially when you compare with studying in the United States or over in the United Kingdom.
As an international applicant, if you have questions about admission procedures, tuition or anything else regarding your enrolment at LMU Munich, you can contact the International Office by sending an email to zulassung.international@lmu.de.
You might want to consider the Master's Degree in mechanical engineering at this university. This is a highly ranked program which has no GPA requirement right now to enroll.
University degrees in mechanical/industrial engineering is more than sufficient to get admitted and succeed at these German programs. Care must be taken to study the appropriate specialization and the necessary electives or additional subjects to get a leg up during the admissions process. It seems like the best source of information on this is pre-planning and contacting places like Dean's office at RWTH Aachen University will be helpful.
As for the tuition fees, it doesn't cost more for foreign students than it does for German nationals. A lot of universities including this one are actually tuition free!
Scholarships can come in the form of grants and loans from the German Academic Exchange Service, the US Fulbright Commission, the German National Academic Foundation and cultural institutions or political foundations.
You might still want to consider Heidelberg as it will give a well-rounded top-notch German education. After all, this was the university where the fictional Sheldon Cooper from the Big Bang Theory got his first Visiting Professor gig at.
A degree in mechanical/automobile engineering from any of these schools will give you a good opportunity to work for the "German Big 3" luxury automakers. BMW, Mercedes Benz and Audi are the best-selling luxury automakers on the planet.