text:
Task Force Members Rep. Donovan and Rep. Quigley in The Hill
Report: Her Health, Her Lifetime, Our World
Video: Christy Turlington Burns outlines Task Force's Final Proposal
Other Sectoral Studies
2016 Survey
U.S. Govt Funding for Women's and Family Health
Changing the course of history in US priority countries
Task ForceVision2017 Leadership2017-03-20T02:52:18+00:00
Helene GayleMcKinsey Social Initiative
Helene Gayle is CEO of McKinsey Social Initiative, a nonprofit organization that implements programs that bring together varied stakeholders to address complex global social challenges. Previously, she was president and CEO of CARE USA, a leading international humanitarian organization.
Read Helene's full bio here.
Helene Gayle is CEO of McKinsey Social Initiative, a nonprofit organization that implements programs that bring together varied stakeholders to address complex global social challenges. Previously, she was president and CEO of CARE USA, a leading international humanitarian organization. An expert on global development, humanitarian, and health issues, she spent 20 years with the Centers for Disease Control, working primarily on HIV/AIDS. Dr. Gayle then worked at the Bill & Melinda Gates Foundation, directing programs on HIV/AIDS and other global health issues. Dr. Gayle serves on public company and non-profit boards including: The Coca-Cola Company, Colgate-Palmolive Company, the Rockefeller Foundation, CSIS, the New America Foundation, the ONE Campaign, and the Atlanta Metro Chamber of Commerce. Additionally, she serves on the President's Commission on White House Fellowships. Named one of Forbes' "100 Most Powerful Women," she has authored numerous articles on global and domestic public health issues, poverty alleviation, gender equality, and social justice. Dr. Gayle earned a B.A. in psychology at Barnard College, an M.D. from the University of Pennsylvania, and an M.P.H. from Johns Hopkins University. She has received 13 honorary degrees and holds faculty appointments at the University of Washington and Emory University.
John HammergrenMcKesson Corporation
John H. Hammergren is chairman, president and chief executive officer of McKesson Corporation. He was elected president and CEO in 2001 and chairman in 2002. Under Mr. Hammergren's leadership, McKesson has become the leading provider of healthcare services and information technology…
Read John's full bio here.
John H. Hammergren is chairman, president and chief executive officer of McKesson Corporation. He was elected president and CEO in 2001 and chairman in 2002. Under Mr. Hammergren's leadership, McKesson has become the leading provider of healthcare services and information technology solutions that help organizations across the healthcare industry improve their business performance and deliver better care to patients. In the time since Mr. Hammergren became CEO, the company has more than quadrupled revenues to $179 billion, expanded into global markets, advanced to number 11 on the Fortune 500 and provided shareholders with more than a 17% compound annual return. Recognizing his tremendous track record of success, Harvard Business Review recently named Hammergren as one of their 100 "Top Performing CEOs in the World." In addition, buy-side analysts, money managers and sell-side researchers identified Hammergren as the 2015 Best CEO for the health care technology and distribution segment.
Lisa CartyUS Liaison Office, UNAIDS
Lisa Carty has worked for more than three decades in the fields of global public health, humanitarian relief and international women's issues. She has had leadership roles in both the public and non-profit sectors including 25 years with the U.S. Department of State with overseas assignments in Asia, the Middle East and Russia.
Read Lisa's full bio here.
Lisa Carty has worked for more than three decades in the fields of global public health, humanitarian relief and international women's issues. She has had leadership roles in both the public and non-profit sectors including 25 years with the U.S. Department of State with overseas assignments in Asia, the Middle East and Russia. Her UN career has included work with the UN Relief Works Agency for Palestinian Refugees, as well as a posting as UNAIDS' Country Director for the Russian Federation. Earlier in her career, Ms. Carty helped lead the work of the Bill & Melinda Gates Foundation's Global Health Program and was a Senior Fellow and the Center for Strategic and International Studies. From 2009 to 2011 she served as a member of the U.S. Presidential Advisory Committee on Trade Policy and Negotiations and is currently a board member of the George W. Bush Institute's Global Health Initiative. She holds a Master Degree in Public Health from Johns Hopkins University.
U.S. Senator Susan CollinsR-ME
First elected in 1996, Senator Collins is serving her fourth term in the United States Senate and has earned a national reputation as a consensus-builder on the nation's most important issues. As a senior member of the Senate Appropriations Committee, Senator Collins is a leading voice for improving the lives of women…
Read Senator Collins' full bio here.
First elected in 1996, Senator Collins is serving her fourth term in the United States Senate and has earned a national reputation as a consensus-builder on the nation's most important issues. As a senior member of the Senate Appropriations Committee, Senator Collins is a leading voice for improving the lives of women and strengthening the health of families around world. In particular, she has secured increased funding for global nutrition programs, including those that target women and children during the critical 1,000 day window from pregnancy to age 2. Senator Collins has also introduced bipartisan legislation, including the International Violence Against Women Act and the Reach Every Mother and Child Act, to bolster the U.S. response to gender-based violence and maternal and child health and help ensure that women and young children are able to reach their full potential, no matter where they are born. As Chairman and Ranking Member of the Senate Homeland Security Committee, Senator Collins and former Senator Joseph Lieberman authored a major overhaul of our nation's intelligence community after the September 11th attacks. She has also led numerous bipartisan investigations that have resulted in concrete governmental reforms.
Steve DavisPresident and CEO, PATH
Steve Davis, President and CEO of PATH, combines extensive experience as a technology business leader, global health advocate, and social innovator to accelerate great ideas and bring lifesaving solutions to scale. Davis' commitment to human rights and development grew from early work on refugee programs and policies…
Read Steve Davis' full bio here.
Steve Davis, President and CEO of PATH, combines extensive experience as a technology business leader, global health advocate, and social innovator to accelerate great ideas and bring lifesaving solutions to scale.
Davis' commitment to human rights and development grew from early work on refugee programs and policies, and from his later focus on Chinese politics and law. He has led a range of private and nonprofit organizations, including as CEO of the global digital media firm Corbis, director of social innovation for McKinsey & Company, and interim CEO of the Infectious Disease Research Institute.
Davis is a member of the Council on Foreign Relations (CFR), serves on the boards of InterAction and Global Partnerships, and sits on several advisory groups, including at the World Economic Forum and the Clinton Global Initiative.
Davis earned his BA from Princeton University, his MA in Chinese studies from the University of Washington, and his JD from Columbia University.
U.S. Congressman Dan DonovanR-NY-11
Congressman Daniel "Dan" M. Donovan, Jr. represents Staten Island and parts of South Brooklyn in the 11th Congressional District of New York in the U.S. House of Representatives. Dan serves as Chairman of the House Subcommittee on Emergency Preparedness, Response, and Communications. In that role …
Read Congressman Donovan's full bio here.
Congressman Daniel "Dan" M. Donovan, Jr.represents Staten Island and parts of South Brooklyn in the 11th Congressional District of New York in the U.S. House of Representatives. Dan serves as Chairman of the House Subcommittee on Emergency Preparedness, Response, and Communications. In that role, he exercises oversight of the federal government's anti-terror and disaster response policies. Dan also serves on the House Committee on Foreign Affairs. Dan has dedicated his life to serving the people of New York. In 2003, Dan was elected Richmond County District Attorney, beginning 12 years of service in that office. During his tenure in the DA's office, Dan helped make Staten Island the safest community in NYC by aggressively cracking down on drunk drivers, toughening laws against domestic violence offenders and creating a national prescription drug database to tackle opioid abuse.
Chris EliasBill & Melinda Gates Foundation
Dr. Chris Elias is the president of the Global Development Program at the Bill & Melinda Gates Foundation, where he leads the foundation's efforts in a diverse range of program areas aimed at finding creative new ways to ensure solutions and products get into the hands of people in poor countries who need them most.
Read Chris' full bio here.
Dr. Chris Elias is the president of the Global Development Program at the Bill & Melinda Gates Foundation, where he leads the foundation's efforts in a diverse range of program areas aimed at finding creative new ways to ensure solutions and products get into the hands of people in poor countries who need them most. Chris oversees Global Development's portfolio in Agriculture Development; Emergency Response; Family Planning; Financial Services for the Poor; Maternal, Newborn, & Child Health; Nutrition; Polio Eradication; Vaccine Delivery; and Water, Sanitation & Hygiene. A common theme of these programs is innovative and integrated delivery, including an emphasis on strengthening of primary health care systems. Chris's professional background is in public health and medicine. Prior to joining the Gates Foundation in February 2012, he worked in various positions and countries for international nonprofit organizations, most recently serving as the president and CEO of PATH, an international, nonprofit organization dedicated to improving the health of people around the world by advancing technologies, strengthening systems, and encouraging healthy behaviors. Chris holds an MD from Creighton University, and an MPH from the University of Washington.
Ezekiel EmanuelDepartment of Medical Ethics and Health Policy, University of Pennsylvania
Ezekiel J. Emanuel is the Vice Provost for Global Initiatives, the Diane v.S. Levy and Robert M. Levy University Professor, and Chair of the Department of Medical Ethics and Health Policy at the University of Pennsylvania. He was the founding chair of the Department of Bioethics at the National Institutes of Health until August of 2011.
Read Ezekiel's full bio here.
Ezekiel J. Emanuel is the Vice Provost for Global Initiatives, the Diane v.S. Levy and Robert M. Levy University Professor, and Chair of the Department of Medical Ethics and Health Policy at the University of Pennsylvania. He was the founding chair of the Department of Bioethics at the National Institutes of Health until August of 2011. He recently served as a Special Advisor on Health Policy to the Director of the Office of Management and Budget and National Economic Council. Dr. Emanuel received his M.D. from Harvard Medical School and his Ph.D. in political philosophy from Harvard University and has published widely on health care reform, research ethics and end of life care. His most recent book, Reinventing American Health Care, examines the history of the U.S. health care system, the Affordable Care Act, and health care predictions for the future. He is also a contributor for the New York Times.
Patrick FineFHI 360
Patrick Fine, Chief Executive Officer of FHI 360, brings 35 years of international development experience along with a deep conviction in the power of people to work together to solve complex human development challenges. Before joining FHI 360, Patrick served as the Vice President for Compact Operations at the MCC…
Read Patrick's full bio here.
Patrick Fine, Chief Executive Officer of FHI 360, brings 35 years of international development experience along with a deep conviction in the power of people to work together to solve complex human development challenges. Before joining FHI 360, Patrick served as the Vice President for Compact Operations at the Millennium Challenge Corporation (MCC), where he helped to shape non-traditional approaches to U.S. bilateral assistance through his oversight of development partnerships with 24 countries. From 2006 to 2010, he was Senior Vice President of the Global Learning Group at the Academy for Educational Development (AED). As a member of the Senior Foreign Service at USAID Patrick served as the Senior Deputy Assistant Administrator in the Africa Bureau and Mission Director in Afghanistan, where he led the rapid expansion of U.S. assistance for reconstruction and development. Patrick began his career in international development as a Peace Corps Volunteer in Swaziland where he gained a first-hand appreciation for the importance of integrating issues of education, health, economic development, and governance. His experience living and working in a rural African community continues to inform and inspire him today.
Julie GerberdingGlobal Public Policy and Population Health, Merck
Dr. Julie Gerberding is Executive Vice President, Strategic Communications, Global Public Policy, and Population Health at Merck & Co., Inc, where she also has responsibility for the Merck for Mothers program and the Merck Foundation. Julie joined Merck in 2010 as President of Merck Vaccines. She previously served as Director of the CDC …
Read Julie's full bio here.
Dr. Julie Gerberding is Executive Vice President, Strategic Communications, Global Public Policy, and Population Health at Merck & Co., Inc, where she also has responsibility for the Merck for Mothers program and the Merck Foundation. Julie joined Merck in 2010 as President of Merck Vaccines. She previously served as Director of the U.S. Centers for Disease Control and Prevention (CDC) from 2002-2009. In this position, she led the agency through more than 40 emergency responses to public health crises. Dr. Gerberding received her undergraduate and M.D. degrees from Case Western Reserve University (CWRU). She serves on the Boards of CWRU, National Association of City and Country Health Officials (NACCHO) Foundation, Accordia Global Health Foundation, MSD Wellcome Trust Hilleman Laboratories, and the BIO Executive Committee.
Michael GersonONE Campaign
Michael Gerson is a nationally syndicated columnist who appears twice weekly in the Washington Post and in nearly 100 other newspapers. He is the author of Heroic Conservatism (HarperOne, 2007) and coauthor of City of Man: Religion and Politics in a New Era (Moody, 2010). He appears regularly on the PBS NewsHour…
Read Michael's full bio here.
Michael Gerson is a nationally syndicated columnist who appears twice weekly in the Washington Post and in nearly 100 other newspapers. He is the author of Heroic Conservatism (HarperOne, 2007) and coauthor of City of Man: Religion and Politics in a New Era (Moody, 2010). He appears regularly on the PBS NewsHour, Face the Nation and other programs. Gerson serves as Senior Advisor at ONE, a bipartisan organization dedicated to the fight against extreme poverty and preventable diseases. Until 2006, Gerson was a top aide to President George W. Bush as Assistant to the President for Policy and Strategic Planning. Prior to that appointment, he served in the White House as Deputy Assistant to the President, Director of Presidential Speechwriting, Assistant to the President for Speechwriting and Policy Advisor.
Former U.S. Representative Richard Hanna
Congressman Richard Hanna was elected to the U.S. House of Representatives in 2010. He is a successful businessman who has maintained a lifelong interest in public policy and economics. Congressman Hanna has also donated his time, leadership and personal resources to numerous causes to compassionately address needs …
Read Congressman Hanna's full bio here.
Congressman Richard Hanna was elected to the U.S. House of Representatives in 2010. He is a successful businessman who has maintained a lifelong interest in public policy and economics. Congressman Hanna has also donated his time, leadership and personal resources to numerous causes to compassionately address needs in our society. In cooperation with The Women's Fund of Herkimer and Oneida Counties, Inc., Congressman Hanna in 2004 founded "Annie's Fund." The fund was created to help women make positive changes at critical points in their lives through one-time grants. Hundreds of grants have been awarded since its inception. The YWCA of the Mohawk Valley has also honored Congressman Hanna as a "Champion of Women" for more than three decades. Congressman Hanna sat on three Congressional committees: the Small Business Committee, the Transportation and Infrastructure Committee and the bicameral Joint Economic Committee.
Vanessa KerrySeed Global Health
Vanessa Kerry, MD, MSc, is the founder and CEO of Seed Global Health, a non-profit that strives to strengthen health delivery in places facing dire shortages of health professionals by working with partner countries to meet their long-term health care human resource needs. Their flagship program partners with the Peace Corps…
Read Vanessa's full bio here.
Vanessa Kerry, MD, MSc, is the founder and CEO of Seed Global Health, a non-profit that strives to strengthen health delivery in places facing dire shortages of health professionals by working with partner countries to meet their long-term health care human resource needs. Their flagship program partners with the Peace Corps. She is the director of the program in Global Public Policy and Social Change in the Department of Global Health and Social Medicine at Harvard Medical School. She is also a physician at Massachusetts General Hospital (MGH) and serves as the Associate Director of Partnerships and Global Initiatives at MGH Global Health. Her academic focus is on health, and public and foreign policy. She is working to help highlight the impacts of political decisions on health, the need to invest in human resources for health in resource-constrained countries, and the role health can play in improving foreign assistance efforts.
Former U.S. Senator Mark Kirk
Mark Kirk served in the U.S. Senate from 2010-2017. Previously, he served five terms representing Illinois 10th District in the House of Representatives. Kirk served as an intelligence officer in the Navy Reserve from 1989-2013, has worked at the World Bank and State Department, and served as counsel to the House IR Committee …
Read Senator Kirk's full bio here.
Mark Kirk served in the U.S. Senate from 2010-2017. Previously, he served five terms representing Illinois 10th District in the House of Representatives. Kirk served as an intelligence officer in the Navy Reserve from 1989-2013, has worked at the World Bank and State Department, and served as counsel to the House International Relations Committee. He served on four Senate Committees, including Appropriates, Banking, HELP (Health, Education, Labor & Pensions), and Aging. Kirk was also chairman of the Appropriations Subcommittee on Military Construction and Veterans Affairs as well as the Banking Subcommittee on National Security and International Trade and Finance.
Asma LateefBread for the World Institute
Asma Lateef has been director of the Bread for the World Institute since 2007. Ms. Lateef is responsible for implementing the Institute's analysis and education on policy issues related to U.S. and global hunger, malnutrition and poverty. Since 2010, she has been involved in efforts to establish and support the Scaling Up Nutrition (SUN) Movement…
Read Asma's full bio here.
Asma Lateef has been director of the Bread for the World Institute since 2007. Ms. Lateef is responsible for implementing the Institute's analysis and education on policy issues related to U.S. and global hunger, malnutrition and poverty. Since 2010, she has been involved in efforts to establish and support the Scaling Up Nutrition (SUN) Movement. She now serves on the Steering Committee of the SUN Movement's Civil Society Network and is also a member of the executive committee of the 1,000 Days Advocacy Working Group. Ms. Lateef has a master's degree in economics from the University of Maryland, a post-graduate diploma in economics from the London School of Economics and a bachelor's degree in Geography from McGill University. She has over 20 years of experience in public policy and extensive experience developing and implementing policy advocacy strategies. Prior to becoming Institute Director, Ms. Lateef was director of Policy and Programs at Citizens for Global Solutions and a senior international policy analyst in the Government Relations Department of Bread for the World. In 2003, she led Bread for the World's campaign to support the establishment of the Millennium Challenge Account (MCA) and the Millennium Challenge Corporation.
U.S. Representative Barbara Lee D-CA-13
Congresswoman Barbara Lee represents California's 13th District; she serves on the Appropriations and Budget Committees including the Appropriations' subcommittee of State, Foreign Operations and Related Programs. Lee chairs the Whip's Task Force on Poverty, Income Inequality and Opportunity…
Read Congresswoman Lee's full bio here.
Congresswoman Barbara Lee represents California's 13th District; she serves on the Appropriations and Budget Committees including the Appropriations' subcommittee of State, Foreign Operations and Related Programs. Lee chairs the Whip's Task Force on Poverty, Income Inequality and Opportunity and has twice been nominated to serve as a Congressional representative to the 68th and 70th Sessions of the UN General Assembly. Lee co-founded and co-chairs the Congressional HIV/AIDS Caucus and has co-authored every major piece of HIV legislation since entering Congress in 1998. She authored legislation establishing the USAID Office for Orphans and Other Vulnerable Children and co-authored legislation establishing the framework for the Global Fund to Fight AIDS, Tuberculosis and Malaria. She is a co-author of the Reach Every Mother and Child Act (HR 3706). She previously served on the House Foreign Affairs Committee and currently serves as chair of the Congressional Progressive Caucus's Peace and Security Task Force, a senior Democratic Whip and a co-chair of the Sudan and South Sudan Caucus.
Kathleen McLaughlinWalmart Foundation
Kathleen McLaughlin is the Chief Sustainability Officer for Walmart, and the President of the Walmart Foundation. Walmart uses its strengths to create economic opportunity for individuals and foster inclusive economic development; enhance the sustainability of food, apparel, and general merchandise supply chains…
Read Kathleen's full bio here.
Kathleen McLaughlin is the Chief Sustainability Officer for Walmart, and the President of the Walmart Foundation. Walmart uses its strengths to create economic opportunity for individuals and foster inclusive economic development; enhance the sustainability of food, apparel, and general merchandise supply chains; and strengthen the resilience of local communities. Last year, in addition to business initiatives investing in people and businesses in supply chains, the company surpassed over $1.4 billion in giving worldwide, including $1 billion of food donations. McLaughlin joined Walmart in 2013. Before that, she spent over 20 years with the global consulting firm McKinsey & Company. McLaughlin earned a Bachelor of Science from Boston University, and she also earned a Master of Arts from Oxford University, where she was a Rhodes Scholar.
Afaf Meleis University of Pennsylvania School of Nursing
Afaf Meleis, PhD, DrPS(hon), FAAN, has demonstrated a profound passion for pushing the boundaries of nursing science, cultivating the next generation of healthcare leaders, and improving women's health. During her tenure as the fifth Dean of the University of Pennsylvania School of Nursing (2002-2014), she fostered a community…
Read Alaf's full bio here.
Afaf Meleis, PhD, DrPS(hon), FAAN, has demonstrated a profound passion for pushing the boundaries of nursing science, cultivating the next generation of healthcare leaders, and improving women's health. During her tenure as the fifth Dean of the University of Pennsylvania School of Nursing (2002-2014), she fostered a community that is voiced, empowered, and dedicated to making an impact on global healthcare; launched multidisciplinary and global partnerships that are advancing nursing science, education and practice; expanded research in critical areas; cultivated a culture of innovation where new programs and technologies are being developed to address emerging healthcare challenges; and strengthened its commitment to serving and supporting the local community. Prior to coming to Penn, she was a Professor on the faculty of nursing at the University of California Los Angeles and the University of California San Francisco for 34 years. She has mentored hundreds of students, clinicians, and researchers from Thailand, Brazil, Egypt, Jordan, Israel, Columbia, Korea, and Japan. Dr. Meleis' academic interests are in global health, immigrant and international health, women's health, and on the theoretical development of the nursing discipline.
J. Stephen MorrisonCSIS Global Health Policy Center
J. Stephen Morrison is senior vice president at the Center for Strategic and International Studies (CSIS) and director of its Global Health Policy Center. Dr. Morrison writes widely, has directed several high-level commissions, and is a frequent commentator on U.S. foreign policy, global health, Africa, and foreign assistance. He served in the Clinton administration…
Read Stephen's full bio here.
J. Stephen Morrison is senior vice president at the Center for Strategic and International Studies (CSIS) and director of its Global Health Policy Center. Dr. Morrison writes widely, has directed several high-level commissions, and is a frequent commentator on U.S. foreign policy, global health, Africa, and foreign assistance. He served in the Clinton administration, as committee staff in the House of Representatives, and taught for 12 years at the Johns Hopkins School of Advanced International Studies. He holds a Ph.D. in political science from the University of Wisconsin and is a magna cum laude graduate of Yale College.
U.S. Representative Mike Quigley D-IL-5
Mike Quigley was elected to Congress to represent Illinois' 5th District on April 7, 2009. Formerly, he served as the Cook County Commissioner and began his career as an aide to former 44th Ward Alderman Bernie Hansen. Mike is the co-founder and co-chair of the bipartisan Congressional Transparency Caucus. He is the only Illinois member of the House Committee on Appropriations…
Read Congressman Quigley's full bio here.
Mike Quigley was elected to Congress to represent Illinois' 5th District on April 7, 2009. Formerly, he served as the Cook County Commissioner and began his career as an aide to former 44th Ward Alderman Bernie Hansen. Mike is the co-founder and co-chair of the bipartisan Congressional Transparency Caucus. He is the only Illinois member of the House Committee on Appropriations, serving on the Subcommittee on Financial Services and the Subcommittee on Transportation, Housing and Urban Development. He also serves on the House Permanent Select Committee on Intelligence. He has a bachelor's degree from Roosevelt University, an MPP from the University of Chicago, and a law degree from Loyola University Chicago.
Diane RowlandKaiser Family Foundation
Diane Rowland is Executive Vice President of the Kaiser Family Foundation and Executive Director of the Foundation's Kaiser Commission on Medicaid and the Uninsured. She is a nationally recognized health policy expert with a distinguished career in public policy and research focusing on health insurance coverage, access to care…
Read Diane's full bio here.
Diane Rowland is Executive Vice President of the Kaiser Family Foundation and Executive Director of the Foundation's Kaiser Commission on Medicaid and the Uninsured. She is a nationally recognized health policy expert with a distinguished career in public policy and research focusing on health insurance coverage, access to care, and health care financing for low-income, elderly, and disabled populations. Appointed as the inaugural chair, Dr. Rowland is the Chair of the congressionally-authorized Medicaid and CHIP Payment and Access Commission (MACPAC) established in 2009 to advise Congress on issues related to Medicaid and the Children's Health Insurance Program (CHIP). Dr. Rowland is an elected member of the National Academy of Medicine (NAM) and holds a Bachelor's degree from Wellesley College, a Masters in Public Administration from the University of California at Los Angeles and a Doctor of Science in health policy and management from the Bloomberg School of Public Health at the Johns Hopkins University.
U.S. Senator Jeanne Shaheen D-NH
Jeanne Shaheen was first elected to the United States Senate in 2009 and is currently serving her second term as the senior Senator from New Hampshire. She is a member of the Senate Committees on Appropriations, Foreign Relations and Armed Services, and serves as Ranking Member on the Small Business and Entrepreneurship Committee.
Read Senator Shaheen's full bio here.
Jeanne Shaheen was first elected to the United States Senate in 2009 and is currently serving her second term as the senior Senator from New Hampshire. She is a member of the Senate Committees on Appropriations, Foreign Relations and Armed Services, and serves as Ranking Member on the Small Business and Entrepreneurship Committee. As the lead Democrat on the Foreign Relations Subcommittee on European Affairs, Shaheen helped to secure ratification of the New START arms reduction treaty with Russia and has championed other initiatives to strengthen the trans-Atlantic alliance. As a member of the Senate Appropriations Subcommittee responsible for funding U.S. foreign assistance efforts, Senator Shaheen has been a vocal proponent of family planning and reproductive health programs in countries where women lack adequate access to care. Previously, she served three terms as the Governor of New Hampshire and is the only woman in U.S. history to be elected both a Governor and a United States Senator. Before her election to the Senate, Shaheen was the Director of Harvard University's Institute of Politics at the Kennedy School of Government.
Debora SparBarnard College
Debora L. Spar is the seventh and current president of Barnard College. In her eight years as president, Spar has been a vocal proponent of women's education and leadership, both at the College and across the globe. Prior to joining Barnard in July 2008, Spar spent 17 years on the faculty of Harvard Business School.
Read Debora's full bio here.
Debora L. Spar is the seventh and current president of Barnard College. In her eight years as president, Spar has been a vocal proponent of women's education and leadership, both at the College and across the globe. Prior to joining Barnard in July 2008, Spar spent 17 years on the faculty of Harvard Business School. A political scientist by training, Spar's scholarly research has focused on international political economy and, more recently, issues of particular importance to women. She is the author of numerous books, most recently, Wonder Women: Sex, Power, and the Quest for Perfection (2013). Spar is a graduate of Georgetown University's School of Foreign Service, and received her doctorate in government from Harvard. She is a member of the Academy of Arts and Sciences and currently serves as a director of Goldman Sachs; a director of Value Retail, LLC; and a trustee of the Wallace Foundation.
Jeffrey SturchioRabin Martin
Jeffrey L. Sturchio is President and CEO at Rabin Martin, a global health strategy consulting firm, and former President and CEO of the Global Health Council. Before joining the Council in '09, Dr. Sturchio was vice president of Corporate Responsibility at Merck & Co. Inc., president of The Merck Company Foundation and chairman …
Read Jeffrey's full bio here.
Jeffrey L. Sturchio is President and CEO at Rabin Martin, a global health strategy consulting firm, and former President and CEO of the Global Health Council. Before joining the Council in 2009, Dr. Sturchio was vice president of Corporate Responsibility at Merck & Co. Inc., president of The Merck Company Foundation and chairman of the U. S. Corporate Council on Africa (CCA). He is chairman of the BroadReach Institute for Training and Education, a member of the boards of CCA, Friends of the Global Fight Against AIDS, TB and Malaria and the Museum of AIDS in Africa and an advisor to amfAR, the Clinton Global Initiative and the NCD Alliance. His publications include Noncommunicable diseases in the developing world: addressing global gaps in policy and research (edited with L. Galambos, Johns Hopkins University Press, 2013).
Phil ThomsonCommunications and Government Affairs, GSK
Phil Thomson was appointed Senior Vice President, Communications and Government Affairs in 2014. He is a member of the Corporate Executive Team. He has responsibility for Media Relations, Investor Relations, Corporate Responsibility, Internal Communications, Product Communications, Government Affairs…
Read Phil's full bio here.
Phil Thomson was appointed Senior Vice President, Communications and Government Affairs in 2014. He is a member of the Corporate Executive Team. He has responsibility for Media Relations, Investor Relations, Corporate Responsibility, Internal Communications, Product Communications, Government Affairs and GSK's Global Brand and Community Partnerships. Phil joined Glaxo Wellcome as a commercial trainee in 1996, moving from pharmaceutical brand marketing to product communications. In 1999 he became a Director of Media Relations for Glaxo Wellcome plc and in 2001, took up the position of Director, Investor Relations for GSK. In 2004, he returned to Corporate Media Relations as Vice President. During his time with GSK, Phil has worked on various matters related to corporate strategy and performance, product and data announcements, and issues related to GSK's reputation. Phil earned his degree in English and History from Durham University.
Christy Turlington BurnsEvery Mother Counts
Christy Turlington Burns is the founder of Every Mother Counts, the organization she founded to help end preventable maternal deaths around the world. After surviving her own childbirth complication, Christy directed and produced the documentary, No Woman, No Cry to raise awareness about maternal health challenges…
Read Christy's full bio here.
Christy Turlington Burns is the founder of Every Mother Counts, the organization she founded to help end preventable maternal deaths around the world. After surviving her own childbirth complication, Christy directed and produced the documentary, No Woman, No Cry to raise awareness about maternal health challenges that impact the lives of millions of girls and women around the world. She has been named one of Time's 100 Most Influential People in 2014, Glamour Magazine's Woman of The Year in 2013 and one of Fast Company's Most Creative Minds in 2013. Christy enjoyed a successful career as a model while continuing her education. She has co-created public health communications campaigns about smoking cessation and prevention since 1997 and launched an award-winning website, SmokingIsUgly.com. Christy is a member of the Harvard Medical School Global Health Council, and on the advisory Board of New York University's Nursing School. She holds a BA from NYU's Gallatin School of Individualized Studies.
CSIS Staff
Janet Fleischman Global Health Policy Center
Janet Fleischman is a senior associate with the Global Health Policy Center at the Center for Strategic and International Studies (CSIS), where she focuses on women's global health and U.S. policy. She is also an independent consultant who has worked for many organizations addressing the health and rights of women and girls, gender-based violence, family planning/reproductive health, and HIV/AIDS.
Read Janet's full bio here.
Janet Fleischman is a senior associate with the Global Health Policy Center at the Center for Strategic and International Studies (CSIS), where she focuses on women's global health and U.S. policy. She is also an independent consultant who has worked for many organizations addressing the health and rights of women and girls, gender-based violence, family planning/reproductive health, and HIV/AIDS. These include the Kaiser Family Foundation, UNAIDS, the Global Coalition on Women and AIDS, the United Nations Development Program, the World Bank, and CARE. She has conducted field work in Africa, Asia, and Eastern Europe. Fleischman has authored numerous reports and produced several videos about women's and girls' health and rights. She is a frequent speaker on issues related to women's global health, gender and HIV/AIDS, human rights, and U.S. policy. From 1983 to 2003, Fleischman worked for Human Rights Watch, the largest U.S.-based international human rights organization, as a researcher on Eastern Europe and Africa and then as the organization's Washington director for Africa.
Katherine BlissGlobal Health Policy Center
Katherine E. Bliss is senior associate with the CSIS Global Health Policy Center, where she has led research on the influence of the BRICS on the global health agenda; analyzed U.S. support for maternal and child health programs in lower- and middle-income countries; and testified before the U.S. House Committee on Foreign Affairs on the right to water and sanitation. As a CFR fellow at the U.S. State Department…
Read Katherine's full bio here.
Katherine E. Bliss is Senior Associate with the CSIS Global Health Policy Center, where she has led research on the influence of the BRICS on the global health agenda; analyzed U.S. support for maternal and child health programs in lower- and middle-income countries; and testified before the U.S. House Committee on Foreign Affairs on the right to water and sanitation. As a Council on Foreign Relations International Affairs Fellow at the U.S. Department of State, Bliss was a member of the Secretary's Policy Planning Staff. She then joined the Bureau of Oceans, Environment, and Science to develop foreign policy approaches to environmental health challenges. Bliss began her career as a historian of Latin America. She has taught at Georgetown University, the University of Massachusetts at Amherst, Smith College, and the University of Chicago. She is a Fellow at the Tower Center for Political Studies at Southern Methodist University (SMU) in Dallas, Texas and Adjunct Associate Professor at the University of Texas School of Public Health.
Talia DuboviExternal Relations and Congressional Affairs
Talia Dubovi is deputy director of external relations and director of congressional affairs at the Center for Strategic and International Studies (CSIS). She previously served as deputy director and senior fellow with CSIS's Global Health Policy Center. Prior to joining CSIS, she spent six years on Capitol Hill, most recently as appropriations associate/counsel for Representative Nita Lowey (D-NY), where she covered a wide range of foreign affairs issues…
Read Talia's full bio here.
Talia Dubovi is deputy director of external relations and director of congressional affairs at the Center for Strategic and International Studies (CSIS). She previously served as deputy director and senior fellow with CSIS's Global Health Policy Center. Prior to joining CSIS, she spent six years on Capitol Hill, most recently as appropriations associate/counsel for Representative Nita Lowey (D-NY), where she covered a wide range of foreign affairs issues and supported the representative in her work as ranking member of the Appropriations Subcommittee on State, Foreign Operations, and Related Programs. Ms. Dubovi also served as counsel to the House Oversight Subcommittee on National Security and Foreign Affairs and previously worked on human rights and judiciary issues for Senator Richard Durbin (D-IL). Before working in Congress, she was an associate at Latham & Watkins LLP and a fellow with Human Rights Watch's Refugee Program. Ms. Dubovi is a member of the Boards of Directors of Humanity In Action and the Global Campaign for Education U.S. Chapter. She is also a fellow with the Truman National Security Project and a term member of the Council on Foreign Relations. She holds a B.A. from Amherst College and a J.D. from the University of Michigan Law School.
Sara AllinderGlobal Health Policy Center
Sara Allinder is deputy director and senior fellow of the CSIS Global Health Policy Center. She has extensive experience with the U.S. government in global health, foreign policy, international development, human rights, and program management. For 10 years, she worked on the U.S. President's Emergency Plan for AIDS Relief (PEPFAR) in Washington and in Uganda, where she served as country coordinator of the $353 million PEPFAR program (2013–2015)…
Read Sara's full bio here.
Sara Allinder is deputy director and senior fellow of the CSIS Global Health Policy Center. She has extensive experience with the U.S. government in global health, foreign policy, international development, human rights, and program management. For 10 years, she worked on the U.S. President's Emergency Plan for AIDS Relief (PEPFAR) in Washington and in Uganda, where she served as country coordinator of the $353 million PEPFAR program (2013–2015). She led a staff of more than 200 in preparing the 2013–2015 Country Operational Plan (COPs), served as senior adviser to the ambassador, contributed to the response to the Anti-Homosexuality Act, led development of Uganda's DREAMS strategy targeting adolescent girls and young women, and revitalized engagement with civil society organizations. In four stints at the Office of the U.S. Global AIDS Coordinator (2003–2016), Allinder was a senior adviser on PEPFAR management and operations issues, including field-based staffing.
Allinder previously served as policy adviser in the Office of International Health Affairs at the U.S. Department of State, where she led the policy response to the SARS and Avian Flu outbreaks and served on the Steering Committee for the PMTCT Initiative, which preceded PEPFAR. She served as senior editor for Africa of the Human Rights and International Religious Freedom reports in the Bureau of Democracy, Human Rights, and Labor at the State Department and as writer/editor for the U.S. Department of Health and Human Services' Office of Inspector General. She also has worked for a member of Congress, the Department of the Navy, and a public relations firm. Allinder was a Class of 2000 Presidential Management Fellow. She holds a M.P.P, with a concentration in international development and health, and a B.A., magna cum laude, in political science and sociology, both from the American University in Washington, D.C.
Cathryn Streifel Global Health Policy Center
Cathryn Streifel is associate director of the CSIS Global Health Policy Center, with a primary focus on family planning and reproductive health; maternal, newborn, and child survival; and the Ebola outbreak in West Africa. Previously, Ms. Streifel worked as a Business Development Associate at Futures Group International, where she supported…
Read Cathryn's full bio here.
Cathryn Streifel is associate director of the CSIS Global Health Policy Center, with a primary focus on family planning and reproductive health; maternal, newborn, and child survival; and the Ebola outbreak in West Africa. Previously, Ms. Streifel worked as a Business Development Associate at Futures Group International, where she supported the pursuit of new business opportunities in health informatics; family planning; maternal and child health; and HIV and AIDS. She holds a MPH from The George Washington University and a BA from McGill University.
Katey PeckGlobal Health Policy Center
Katey Peck is a program manager and research associate at the CSIS Global Health Policy Center, where she focuses on family planning and reproductive health as well as maternal, newborn, and child survival. Previously, Ms. Peck worked as a research analyst and writer at the Center for High Impact Philanthropy,where she contributed to donor guidance for global investments in child health.
Read Katey's full bio here.
Katey Peck is a program manager and research associate at the CSIS Global Health Policy Center, where she focuses on family planning and reproductive health, as well as maternal, newborn, and child survival. Previously, Ms. Peck worked as a research analyst and writer at the Center for High Impact Philanthropy, where she contributed to donor guidance for global investments in child health. She holds a BA from the University of Pennsylvania.
© 2015 The Global Health Policy Center and The Center for Strategic and International Studies
Click here for further research by the Global Health Policy Center
This project is funded through the generous support of the Bill & Melinda Gates Foundation


text:
Bethlehem, Pennsylvania - Wikipedia
Bethlehem is a city in Lehigh and Northampton counties in the Lehigh Valley region of the eastern portion of the U.S. state of Pennsylvania. The city is named after the Palestinian city Bethlehem that is located in the West Bank.
Dating hanover pa (Page 8 of 100)
Bethlehem, Pennsylvania - Wikipedia → Bethlehem, Pennsylvania - Wikipedia
Topics: 1 to 100 of 701
Singles augsburg facebook Partnersuche anzeige vorlage
Re: Dating hanover pa
Philly 301 Moved Permanently. openresty
Top Tire Manufacturers Tires Rims & Wheels TOP 10 BEST SELLING TIRE MANUFACTURERS IN THE WORLD. Tires are of critical importance to the performance, ride, comfort and safety of your automobile.
PA Longrifles - Pennsylvania Longrifle Gunsmithing 'Schools' If any state has just claim to the rifle it's Pennsylvania (in the stretch of land from Easton to York just south of the Blue Mountain - right here in our own backyard!); where the first important rifle-making centers were located , where more rifles were produced than any other state, and where.
Inside Rudy Giuliani and Judith Nathan's Relationship in. Rudy Giuliani began dating Judith Nathan while the then-NYC mayor was still married to second wife Donna Hanover
History of Lycoming Co. PA edited by John F. Meginness; ©1892 CHAPTER XLVIII. BIOGRAPHICAL SKETCHES. CITY OF WILLIAMSPORT AND BOROUGH OF SOUTH WILLIAMSPORT. WILLIAM F. PACKER was born April 2, 1807, in Centre county, Pennsylvania, son of James and Charity (Bye) Packer, natives of Chester and Bucks county, respectively.
Origins of town names of Northeast PA - Laceyville Originally known as Braintrim (see above) and Skinner's Eddy (see below), the area for a couple centuries was a camping grounds for Indians of the Tuscarora tribe.
Pennsylvania Basketball Coaches - Elite College Exposure. Abele, Paul 'Smoke.' A four year varsity basketball letter winner playing for Duquesne University in the 1930 's, he went on to coach at Johnstown Catholic, Meyersdale, Ligonier, and then for 21 years at Johnstown High School where his record was 398-120 with eight District6 Class A Championships.
10 Reply by Ramirez 2019-07-16 15:11:23
Philadelphia - Wikipedia Penn planned a city on the Delaware River to serve as a port and place for government. Hoping that Philadelphia would become more like an English rural town instead of a city, Penn laid out roads on a grid plan to keep houses and businesses spread far apart, with areas for gardens and orchards.
11 Reply by Reyes 2019-07-16 15:55:32
Historic Pennsylvania Properties for Sale Historic Properties for Sale. Preservation Pennsylvania is happy to help connect historic property sellers and realtors with interested buyers of places that matter.
12 Reply by Barnes 2019-07-16 16:05:28
2019-07-16 09:08 Bethlehem is a city in Lehigh and Northampton counties in the Lehigh Valley region of the eastern portion of the U.S. state of Pennsylvania. The city is named after the Palestinian city Bethlehem that is located in the West Bank.
Collins → Dating hanover pa

redpajama_set_name: RedPajamaCommonCrawl


Phone stills are getting so much better, but what about smartphone video?
What to do when replacing triple minute phones?
AT&T "crippling" Red Pocket. Unusual or par for the course with MVNOs?
Porting From PPC To TF - Any Issues?
What is newest Samsung Galaxy that will work on TracFone?
Game where you want, when you want.
Play across multiple devices, including laptops, desktops, and selected phones and tablets.
Up to 4K HDR at 60 FPS.
Enjoy gaming the way you like it, with beautiful HDR graphics and smooth frame rates.
No updates, no downloads. Dive right into the game.
New ways to play via YouTube and beyond.
Go from watching a video to playing a game in seconds, with even more innovative experiences to come for selected games.
Stadia's cloud-based infrastructure evolves to meet the demands of players, developers and YouTube creators.
Stadia's secret weapon is, of course, its wide device support: if it delivers as promised, you'll be able to play AAA titles on Android, Chrome and Chromecasts at the very least, using either a controller or keyboard and mouse. Unfortunately I can't yet confirm if touch input is also supported.
If anyone can pull this off it's probably Google—in fact, the only weak link that comes to mind would be the end user's Internet connection. If you want to be notified when Stadia becomes available you can sign up at the second link below.
Android Pie On Total Wireless?
First time Google Voice user.
300-400 minutes a month of talk time is beyond affordable with TracFone.
that explains the odd behavior of the LG L163BL ( correct that's what i received!).
That is part of it but there seems to be more to it.
You really shouldn't need a phone that new for the free T-Mobile roaming. Any phone with LTE Bands 2/4/5/12 can roam on T-Mobile with a Sprint SIM card.


text:
Mon Jan 11 22:48:07 2016

## Evaluating 1va-zad.c

File doesn't match naming convention

## Evaluating 2ra-zad.c

File doesn't match naming convention

redpajama_set_name: RedPajamaGithub


text:
Richmond County's all-male council says no to funding for women's conference | CBC News Loaded
Richmond County's all-male council says no to funding for women's conference
The all-male Richmond County council has decided not to lend financial support to a leadership conference that would encourage more women to run for office in eastern N.S. However, women from Richmond County are now getting that support elsewhere.
Conference to promote female politicians seeks financial aid to help participants with child care, travel
Tom Ayers · CBC News · Posted: Feb 27, 2020 5:00 AM EST | Last Updated: February 27, 2020
Up to 21 employees of Richmond County voted on Friday on whether to join the Nova Scotia Government and General Employees Union. (Angela MacIvor/CBC)
The all-male Richmond County council has decided not to lend financial support to a leadership conference that would encourage more women to run for office in eastern Nova Scotia.
The Town of Port Hawkesbury is hosting a conference in May to encourage more women to run for municipal and First Nation band elections.
Organizers have asked local governments to provide financial aid to help participants with child care and travel costs.
Several are on board, but not the men on Richmond County council.
Warden Brian Marchand said councillors did not oppose the idea at Monday's meeting, but they didn't support it, either.
Warden Brian Marchand, foreground, says candidates should pay for their own training, and he says women are at no disadvantage compared to men. (Norma Jean MacPhee/CBC)
"It's not that I'm against it," he said. "It's good for these things to be put on and people should have the ability to go to them on their own."
Marchand said candidates should pay for their own training, but he also said the idea might have received more support if the conference had included men and women.
"There are many women that are mayors and wardens right across this province and probably right across this country," he said.
"There are many women in politics right across the spectrum from provincial to federal, so I don't think they're at a disadvantage in any sort of a way as opposed to men."
So far, six of 16 local governments have offered financial support for 22 women to participate, including:
Potlotek First Nation
Guysborough County
Victoria County
Inverness County
District of St. Mary's
Town of Antigonish
Victoria County supported the most, with eight women, and Inverness next most with six women.
Since Richmond County refused to grant funding, two Richmond County business owners sponsored a woman each, and citizens in the county supported seven more.
Coun. James Goyetche said he has spent 23 years on Richmond council and it was only in the last three years that councillors were all male.
He said a former warden was female and she was also head of what is now the Nova Scotia Federation of Municipalities.
Coun. James Goyetche says it would be 'irresponsible, and kind of stupid, to use taxpayers' dollars to encourage somebody to run against me.' (Norma Jean MacPhee/CBC)
Goyetche said female politicians have served Richmond County well, but it's not up to taxpayers to support them.
"That's up to the electorate to decide," he said.
"I think it would be kind of irresponsible on my part, and kind of stupid, to use taxpayers' dollars to encourage somebody to run against me."
Port Hawkesbury Mayor Brenda Chisholm-Beaton said only 22 per cent of politicians in the 10 municipalities and six Indigenous communities in eastern Nova Scotia are women.
Port Hawkesbury Mayor Brenda Chisholm-Beaton says water system upgrades will replace aging equipment, make it safer for maintenance staff and improve efficiency. (Tom Ayers/CBC)
"Gender equity certainly starts with an acknowledgement that it's not a level playing field for women in politics," she said.
Since Monday, she added, private businesses and citizens in Richmond County have called to offer financial help for participants.
"All kinds of support in the community has been coming forward," Chisholm-Beaton said.
She said Marchand has since contacted her and told her the issue may come back to council.
"I don't think the door has been permanently closed," she said.
'A crisis': Indigenous students at rural N.S. school say they're excessively punished
Issue of consent central in closing arguments at Matthew Percy trial
What impact will the coronavirus have on Nova Scotia's tourism season?
Tom Ayers
Reporter/Editor
Tom Ayers has been a reporter and editor for 36 years. He has spent half of them covering Cape Breton and Nova Scotia stories. You can reach him at tom.ayers@cbc.ca.


Find Gothic T-Shirt. Spiral Clothing Short Sleeved T-shirt with Reaper Bats Design.
This great goth t-shirt features a winged reaper figure with a scythe on the front standing in a graveyard surrounded by a flurry of bats. The back of the T-shirt has a hooded skull with bats emerging from the hood.


text:
Q: Proper submodules of Noetherian modules are intersections of indecomposable modules
If $M$ is Noetherian, any submodule $N \neq M$ can be written as a finite intersection of intersection-indecomposable ones.

I just don't know how to begin with the proof of this proposition.
Very kind of you for reading or answering.

A: The three equivalent definitions of "noetherian module" (in the presence of the Axiom of Choice) are:

*

*$M$ is noetherian if and only if every submodule of $M$ is finitely generated.

*$M$ is noetherian if and only if every ascending chain of submodules of $M$ stabilizes: $N_1\subseteq N_2\subseteq\cdots$ implies that there exists $m$ such that for all $k\geq m$, $N_m=N_k$.

*$M$ is noetherian if and only if every nonempty collection of submodules of $M$ has maximal elements.
So look at the collection of all proper submodules that are not finite intersections of intersection-indecomposable submodules. If this collection is empty, you are done. If it is not empty, then by (3) above it has a maximal element $N$. Note that $N$ cannot be intersection-indecomposable, nor can $N$ be maximal in $M$ (if $N$ is maximal in $M$, then it is intersection indecomposable). So there must exist two proper submodules $N_1$ and $N_2$ of $M$ such that $N=N_1\cap N_2$, and $N\neq N_1$, $N\neq N_2$. Since $N$ is maximal among submodules that are not finite intersections of intersection-indecomposable submodules, then neither $N_1$ nor $N_2$ belong to the collection. So $N_1$ is a finite intersection of intersection-indecomposable submodules, as is $N_2$, $N_1 = \cap_{j=1}^k M_j$, $N_2 = \cap_{j=k+1}^{\ell}M_j$. Then
$$N = N_1\cap N_2 = \cap_{j=1}^{\ell} M_j$$
is a finite intersection of intersection-indecomposable submodules, a contradiction. The contradiction arises from assuming that the collection of submodules that do not satisfy the condition is nonempty, so the collection is empty and we are done.
Note. Just before stating the lemma, Jacobson explicitly defines "indecomposable" as follows: "We shall call a submodule $N$ of $M$ (intersection) indecomposable if we cannot write $N$ as $N_1\cap N_2$ where $N_i\neq N$ for $i=1,2$." This is the definition I am using above, rather than the more common "not expressible as a direct sum of two proper submodules" (or even "subdirectly irreducible").

A: This is obviously false; perhaps you meant something else?  Consider a vector space of dimension 3 as the module M.  It is Noetherian, but its directly indecomposable submodules are all dimension 1.  If N has dimension 2, then N is not the intersection of one-dimensional submodules.
I suspect this is just a translation problem.  There is the Lasker–Noether theorem that expresses each proper submodule of a Noetherian module as an intersection of meet-irreducible (or primary) submodules.
See page 84 and page 102 of Lam's Lectures on Modules and Rings for my understanding of it, or the proper chapter and exercises in Atiyah-MacDonald for a more commutative view.
The part you asked about I think just follows from the definition of Noetherian and should be true in any lattice with appropriate finiteness condition.
In section 7.13 of Jacobson's Basic Algebra II (pagination differs a little, page 438 for me), Jacobson uses (intersection) indecomposable to mean what I have called meet-irreducible.  His proof is by Noetherian induction and holds in any Noetherian lattice.

redpajama_set_name: RedPajamaStackExchange


Coach Background: Played tennis for Muskingum University. He played courts, 2-6, in singles and courts, 1-2, for doubles.
Coach Background: Coach at ZZZ Test School since 2005. Test School League champs from 2009 to 2019. Mason Concession Stand's Best Customer Award for 2018 (self-appointed).


text:
2020 has proven itself a landmark year in cannabis regulation both on a national and international stage. Domestically, we have seen the reach of deregulated cannabis extend itself further than ever during this year's elections. All states with cannabis legalization on the ballot approved of the measures. Internationally, the Commission on Narcotic Drugs (CND), which serves as the United Nations central drug policy making body, voted to remove cannabis from Schedule IV of the 1961 Single Convention on Narcotic Drugs of the 1961 Single Convention on Narcotic Drugs. This convention had cannabis listed alongside highly addictive opioids such as heroin and stated that substances within this category should not be used for medicinal purposes.
Coming to this groundbreaking conclusion has the CND now recognizing the therapeutic and medical potential of cannabis. Reaching this decision did not come without heartache however, and took two years of reviewing a series of the World Health Organization (WHO) recommendations. Even then, the initiative to remove cannabis only won by a narrow margin of two votes, 27 in favor and 25 against. Also, cannabis will continue to be deemed illegal outside of non-medical and non-scientific purposes. Regardless of these stipulations it is still very clear that this vote is monumental in the scope of cannabis regulation and allows for international scientific research that may lead to groundbreaking discoveries of previously unknown medical applications for the plant.
Going one step further, WHO also made recommendations that cannabidiol (CBD) with less than two percent Tetrahydrocannabinol (THC), the psychoactive component of cannabis, should not be subject to international restrictions. The CND ruled that CBD is currently not being regulated at the international level and therefore requires no change on how it has been dealt with up until this point.
The loosening of these international regulations is a clear sign of the times and efforts to better understand the therapeutic potential of cannabis. Time will tell what new developments and advancements will be made do to these decisions.


text:
#ifndef ONGGI_MODULE_POOL_H
#define ONGGI_MODULE_POOL_H

/* Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 */

#include <glib.h>
#include <glib-object.h>

#include "onggimodule.h"
#include "onggimoduleobject.h"
#include "onggiutil.h"

/**
 * SECTION: onggimodulepool
 * @title: OnggiModulePool
 * @short_description: ModulePool.
 * @stability: Unstable
 * @include: onggi.h
 *
 * This is a pool of #OnggiModule. Each #OnggiStore is associated to a pool, and
 * fetches a module if one of name is required.
 */

/**
 * OnggiModulePool:
 *
 * The structure holds private variables.
 */
G_DECLARE_FINAL_TYPE(OnggiModulePool,
                     onggi_module_pool,
                     ONGGI,MODULE_POOL,
                     GObject)

#define ONGGI_TYPE_MODULE_POOL (onggi_module_pool_get_type())

/**
 * OnggiModuleFunc:
 * @pool: A Module Pool.
 * @userdata: (closure): Userdata.
 * @error: Error
 *
 * Function pointer type for module creation.
 *
 * Returns: (transfer full): Newly constructed module.
 */
typedef OnggiModule * (*OnggiModuleFunc) (OnggiModulePool  *pool,
                                          gpointer          userdata,
                                          GError          **error);

//////// Constructor ///////////////////////////////////////////////////////////

OnggiModulePool  *onggi_module_pool_new (void);

OnggiModulePool  *onggi_module_pool_get_default (void);

//////// Modules ///////////////////////////////////////////////////////////////

gboolean        onggi_module_pool_add     (OnggiModulePool *pool,
                                           OnggiModule     *module);

OnggiModule    *onggi_module_pool_add_from_func (OnggiModulePool  *pool,
                                                 OnggiModuleFunc   func,
                                                 gpointer          userdata,
                                                 GError          **error);

gboolean    onggi_module_pool_remove  (OnggiModulePool *pool,
                                       OnggiModule     *module);

gboolean    onggi_module_pool_remove_name (OnggiModulePool *pool,
                                           const gchar     *module_name);

OnggiModule       *onggi_module_pool_get      (OnggiModulePool *pool,
                                               const gchar     *module_name);

OnggiModuleObject *onggi_module_pool_get_deep (OnggiModulePool *pool,
                                               const gchar     *path);

gboolean    onggi_module_pool_foreach (OnggiModulePool *pool,
                                       OnggiBoolPtrFunc func,
                                       gpointer         userdata);

//////// Gets multiple modules /////////////////////////////////////////////////

GList      *onggi_module_pool_get_many (OnggiModulePool  *pool,
                                        GList            *module_names,
                                        gboolean          dep_include,
                                        GList           **missing);

#endif //ONGGI_MODULE_POOL_H


text:
10020 Bagenal è un asteroide della fascia principale. Scoperto nel 1979, presenta un'orbita caratterizzata da un semiasse maggiore pari a 3,1263114 UA e da un'eccentricità di 0,0689650, inclinata di 4,83349° rispetto all'eclittica.

L'asteroide è dedicato a Frances Bagenal, astronomo membro dello staff scientifico delle missioni Voyager, Galileo e New Horizons.

Note

Collegamenti esterni

Bagenal
Corpi celesti scoperti nel 1979

redpajama_set_name: RedPajamaWikipedia


This is a placeholder page for Scott Cahill, which means this person is not currently on this site. We do suggest using the tools below to find Scott Cahill.
You are visiting the placeholder page for Scott Cahill. This page is here because someone used our placeholder utility to look for Scott Cahill. We created this page automatically in hopes Scott Cahill would find it. If you are not Scott Cahill, but are an alumni of Pearl River High School Pearl River, LA, register on this site for free now.


text:
#include "config.h"

#include "core/svg/SVGSVGElement.h"

#include "HTMLNames.h"
#include "SVGNames.h"
#include "bindings/v8/ScriptEventListener.h"
#include "core/css/CSSHelper.h"
#include "core/dom/Document.h"
#include "core/dom/EventListener.h"
#include "core/dom/EventNames.h"
#include "core/dom/NodeTraversal.h"
#include "core/dom/StaticNodeList.h"
#include "core/editing/FrameSelection.h"
#include "core/page/Frame.h"
#include "core/page/FrameTree.h"
#include "core/page/FrameView.h"
#include "core/platform/FloatConversion.h"
#include "core/platform/graphics/FloatRect.h"
#include "core/platform/graphics/transforms/AffineTransform.h"
#include "core/rendering/RenderObject.h"
#include "core/rendering/RenderPart.h"
#include "core/rendering/svg/RenderSVGModelObject.h"
#include "core/rendering/svg/RenderSVGResource.h"
#include "core/rendering/svg/RenderSVGRoot.h"
#include "core/rendering/svg/RenderSVGViewportContainer.h"
#include "core/svg/SVGAngle.h"
#include "core/svg/SVGElementInstance.h"
#include "core/svg/SVGFitToViewBox.h"
#include "core/svg/SVGPreserveAspectRatio.h"
#include "core/svg/SVGTransform.h"
#include "core/svg/SVGTransformList.h"
#include "core/svg/SVGViewElement.h"
#include "core/svg/SVGViewSpec.h"
#include "core/svg/animation/SMILTimeContainer.h"
#include <wtf/StdLibExtras.h>

namespace WebCore {

// Animated property definitions
DEFINE_ANIMATED_LENGTH(SVGSVGElement, SVGNames::xAttr, X, x)
DEFINE_ANIMATED_LENGTH(SVGSVGElement, SVGNames::yAttr, Y, y)
DEFINE_ANIMATED_LENGTH(SVGSVGElement, SVGNames::widthAttr, Width, width)
DEFINE_ANIMATED_LENGTH(SVGSVGElement, SVGNames::heightAttr, Height, height)
DEFINE_ANIMATED_BOOLEAN(SVGSVGElement, SVGNames::externalResourcesRequiredAttr, ExternalResourcesRequired, externalResourcesRequired)
DEFINE_ANIMATED_PRESERVEASPECTRATIO(SVGSVGElement, SVGNames::preserveAspectRatioAttr, PreserveAspectRatio, preserveAspectRatio)
DEFINE_ANIMATED_RECT(SVGSVGElement, SVGNames::viewBoxAttr, ViewBox, viewBox)

BEGIN_REGISTER_ANIMATED_PROPERTIES(SVGSVGElement)
    REGISTER_LOCAL_ANIMATED_PROPERTY(x)
    REGISTER_LOCAL_ANIMATED_PROPERTY(y)
    REGISTER_LOCAL_ANIMATED_PROPERTY(width)
    REGISTER_LOCAL_ANIMATED_PROPERTY(height)
    REGISTER_LOCAL_ANIMATED_PROPERTY(externalResourcesRequired)
    REGISTER_LOCAL_ANIMATED_PROPERTY(viewBox)
    REGISTER_LOCAL_ANIMATED_PROPERTY(preserveAspectRatio)
    REGISTER_PARENT_ANIMATED_PROPERTIES(SVGStyledTransformableElement)
    REGISTER_PARENT_ANIMATED_PROPERTIES(SVGTests)
END_REGISTER_ANIMATED_PROPERTIES

inline SVGSVGElement::SVGSVGElement(const QualifiedName& tagName, Document* doc)
    : SVGStyledTransformableElement(tagName, doc)
    , m_x(LengthModeWidth)
    , m_y(LengthModeHeight)
    , m_width(LengthModeWidth, "100%")
    , m_height(LengthModeHeight, "100%")
    , m_useCurrentView(false)
    , m_zoomAndPan(SVGZoomAndPanMagnify)
    , m_timeContainer(SMILTimeContainer::create(this))
{
    ASSERT(hasTagName(SVGNames::svgTag));
    ScriptWrappable::init(this);
    registerAnimatedPropertiesForSVGSVGElement();
}

PassRefPtr<SVGSVGElement> SVGSVGElement::create(const QualifiedName& tagName, Document* document)
{
    return adoptRef(new SVGSVGElement(tagName, document));
}

SVGSVGElement::~SVGSVGElement()
{
    if (m_viewSpec)
        m_viewSpec->resetContextElement();
    // There are cases where removedFromDocument() is not called.
    // see ContainerNode::removeAllChildren, called by its destructor.
    document()->accessSVGExtensions()->removeTimeContainer(this);
}

const AtomicString& SVGSVGElement::contentScriptType() const
{
    DEFINE_STATIC_LOCAL(const AtomicString, defaultValue, ("text/ecmascript", AtomicString::ConstructFromLiteral));
    const AtomicString& n = fastGetAttribute(SVGNames::contentScriptTypeAttr);
    return n.isNull() ? defaultValue : n;
}

void SVGSVGElement::setContentScriptType(const AtomicString& type)
{
    setAttribute(SVGNames::contentScriptTypeAttr, type);
}

const AtomicString& SVGSVGElement::contentStyleType() const
{
    DEFINE_STATIC_LOCAL(const AtomicString, defaultValue, ("text/css", AtomicString::ConstructFromLiteral));
    const AtomicString& n = fastGetAttribute(SVGNames::contentStyleTypeAttr);
    return n.isNull() ? defaultValue : n;
}

void SVGSVGElement::setContentStyleType(const AtomicString& type)
{
    setAttribute(SVGNames::contentStyleTypeAttr, type);
}

FloatRect SVGSVGElement::viewport() const
{
    // FIXME: This method doesn't follow the spec and is basically untested. Parent documents are not considered here.
    // As we have no test coverage for this, we're going to disable it completly for now.
    return FloatRect();
}

float SVGSVGElement::pixelUnitToMillimeterX() const
{
    // 2.54 / cssPixelsPerInch gives CM.
    return (2.54f / cssPixelsPerInch) * 10.0f;
}

float SVGSVGElement::pixelUnitToMillimeterY() const
{
    // 2.54 / cssPixelsPerInch gives CM.
    return (2.54f / cssPixelsPerInch) * 10.0f;
}

float SVGSVGElement::screenPixelToMillimeterX() const
{
    return pixelUnitToMillimeterX();
}

float SVGSVGElement::screenPixelToMillimeterY() const
{
    return pixelUnitToMillimeterY();
}

SVGViewSpec* SVGSVGElement::currentView()
{
    if (!m_viewSpec)
        m_viewSpec = SVGViewSpec::create(this);
    return m_viewSpec.get();
}

float SVGSVGElement::currentScale() const
{
    if (!inDocument() || !isOutermostSVGSVGElement())
        return 1;

    Frame* frame = document()->frame();
    if (!frame)
        return 1;

    FrameTree* frameTree = frame->tree();
    ASSERT(frameTree);

    // The behaviour of currentScale() is undefined, when we're dealing with non-standalone SVG documents.
    // If the svg is embedded, the scaling is handled by the host renderer, so when asking from inside
    // the SVG document, a scale value of 1 seems reasonable, as it doesn't know anything about the parent scale.
    return frameTree->parent() ? 1 : frame->pageZoomFactor();
}

void SVGSVGElement::setCurrentScale(float scale)
{
    if (!inDocument() || !isOutermostSVGSVGElement())
        return;

    Frame* frame = document()->frame();
    if (!frame)
        return;

    FrameTree* frameTree = frame->tree();
    ASSERT(frameTree);

    // The behaviour of setCurrentScale() is undefined, when we're dealing with non-standalone SVG documents.
    // We choose the ignore this call, it's pretty useless to support calling setCurrentScale() from within
    // an embedded SVG document, for the same reasons as in currentScale() - needs resolution by SVG WG.
    if (frameTree->parent())
        return;

    frame->setPageZoomFactor(scale);
}

void SVGSVGElement::setCurrentTranslate(const FloatPoint& translation)
{
    m_translation = translation;
    updateCurrentTranslate();
}

void SVGSVGElement::updateCurrentTranslate()
{
    if (RenderObject* object = renderer())
        object->setNeedsLayout(true);

    if (parentNode() == document() && document()->renderer())
        document()->renderer()->repaint();
}

void SVGSVGElement::parseAttribute(const QualifiedName& name, const AtomicString& value)
{
    SVGParsingError parseError = NoError;

    if (!nearestViewportElement()) {
        bool setListener = true;

        // Only handle events if we're the outermost <svg> element
        if (name == HTMLNames::onunloadAttr)
            document()->setWindowAttributeEventListener(eventNames().unloadEvent, createAttributeEventListener(document()->frame(), name, value));
        else if (name == HTMLNames::onresizeAttr)
            document()->setWindowAttributeEventListener(eventNames().resizeEvent, createAttributeEventListener(document()->frame(), name, value));
        else if (name == HTMLNames::onscrollAttr)
            document()->setWindowAttributeEventListener(eventNames().scrollEvent, createAttributeEventListener(document()->frame(), name, value));
        else if (name == SVGNames::onzoomAttr)
            document()->setWindowAttributeEventListener(eventNames().zoomEvent, createAttributeEventListener(document()->frame(), name, value));
        else
            setListener = false;

        if (setListener)
            return;
    }

    if (name == HTMLNames::onabortAttr)
        document()->setWindowAttributeEventListener(eventNames().abortEvent, createAttributeEventListener(document()->frame(), name, value));
    else if (name == HTMLNames::onerrorAttr)
        document()->setWindowAttributeEventListener(eventNames().errorEvent, createAttributeEventListener(document()->frame(), name, value));
    else if (name == SVGNames::xAttr)
        setXBaseValue(SVGLength::construct(LengthModeWidth, value, parseError));
    else if (name == SVGNames::yAttr)
        setYBaseValue(SVGLength::construct(LengthModeHeight, value, parseError));
    else if (name == SVGNames::widthAttr)
        setWidthBaseValue(SVGLength::construct(LengthModeWidth, value, parseError, ForbidNegativeLengths));
    else if (name == SVGNames::heightAttr)
        setHeightBaseValue(SVGLength::construct(LengthModeHeight, value, parseError, ForbidNegativeLengths));
    else if (SVGTests::parseAttribute(name, value)
               || SVGLangSpace::parseAttribute(name, value)
               || SVGExternalResourcesRequired::parseAttribute(name, value)
               || SVGFitToViewBox::parseAttribute(this, name, value)
               || SVGZoomAndPan::parseAttribute(this, name, value)) {
    } else
        SVGStyledTransformableElement::parseAttribute(name, value);

    reportAttributeParsingError(parseError, name, value);
}

void SVGSVGElement::svgAttributeChanged(const QualifiedName& attrName)
{
    bool updateRelativeLengthsOrViewBox = false;
    bool widthChanged = attrName == SVGNames::widthAttr;
    if (widthChanged
        || attrName == SVGNames::heightAttr
        || attrName == SVGNames::xAttr
        || attrName == SVGNames::yAttr) {
        updateRelativeLengthsOrViewBox = true;
        updateRelativeLengthsInformation();

        // At the SVG/HTML boundary (aka RenderSVGRoot), the width attribute can
        // affect the replaced size so we need to mark it for updating.
        if (widthChanged) {
            RenderObject* renderObject = renderer();
            if (renderObject && renderObject->isSVGRoot())
                toRenderSVGRoot(renderObject)->setNeedsLayoutAndPrefWidthsRecalc();
        }
    }

    if (SVGFitToViewBox::isKnownAttribute(attrName)) {
        updateRelativeLengthsOrViewBox = true;
        if (RenderObject* object = renderer())
            object->setNeedsTransformUpdate();
    }

    SVGElementInstance::InvalidationGuard invalidationGuard(this);
    if (SVGTests::handleAttributeChange(this, attrName))
        return;

    if (updateRelativeLengthsOrViewBox
        || SVGLangSpace::isKnownAttribute(attrName)
        || SVGExternalResourcesRequired::isKnownAttribute(attrName)
        || SVGZoomAndPan::isKnownAttribute(attrName)) {
        if (renderer())
            RenderSVGResource::markForLayoutAndParentResourceInvalidation(renderer());
        return;
    }

    SVGStyledElement::svgAttributeChanged(attrName);
}

unsigned SVGSVGElement::suspendRedraw(unsigned /* maxWaitMilliseconds */)
{
    // FIXME: Implement me (see bug 11275)
    return 0;
}

void SVGSVGElement::unsuspendRedraw(unsigned /* suspendHandleId */)
{
    // FIXME: Implement me (see bug 11275)
}

void SVGSVGElement::unsuspendRedrawAll()
{
    // FIXME: Implement me (see bug 11275)
}

void SVGSVGElement::forceRedraw()
{
    // FIXME: Implement me (see bug 11275)
}

PassRefPtr<NodeList> SVGSVGElement::collectIntersectionOrEnclosureList(const FloatRect& rect, SVGElement* referenceElement, CollectIntersectionOrEnclosure collect) const
{
    Vector<RefPtr<Node> > nodes;
    Element* element = ElementTraversal::next(referenceElement ? referenceElement : this);
    while (element) {
        if (element->isSVGElement()) {
            SVGElement* svgElement = toSVGElement(element);
            if (collect == CollectIntersectionList) {
                if (checkIntersection(svgElement, rect))
                    nodes.append(element);
            } else {
                if (checkEnclosure(svgElement, rect))
                    nodes.append(element);
            }
        }

        element = ElementTraversal::next(element, referenceElement ? referenceElement : this);
    }
    return StaticNodeList::adopt(nodes);
}

PassRefPtr<NodeList> SVGSVGElement::getIntersectionList(const FloatRect& rect, SVGElement* referenceElement) const
{
    return collectIntersectionOrEnclosureList(rect, referenceElement, CollectIntersectionList);
}

PassRefPtr<NodeList> SVGSVGElement::getEnclosureList(const FloatRect& rect, SVGElement* referenceElement) const
{
    return collectIntersectionOrEnclosureList(rect, referenceElement, CollectEnclosureList);
}

bool SVGSVGElement::checkIntersection(SVGElement* element, const FloatRect& rect) const
{
    if (!element)
        return false;
    return RenderSVGModelObject::checkIntersection(element->renderer(), rect);
}

bool SVGSVGElement::checkEnclosure(SVGElement* element, const FloatRect& rect) const
{
    if (!element)
        return false;
    return RenderSVGModelObject::checkEnclosure(element->renderer(), rect);
}

void SVGSVGElement::deselectAll()
{
    if (Frame* frame = document()->frame())
        frame->selection()->clear();
}

float SVGSVGElement::createSVGNumber()
{
    return 0.0f;
}

SVGLength SVGSVGElement::createSVGLength()
{
    return SVGLength();
}

SVGAngle SVGSVGElement::createSVGAngle()
{
    return SVGAngle();
}

FloatPoint SVGSVGElement::createSVGPoint()
{
    return FloatPoint();
}

SVGMatrix SVGSVGElement::createSVGMatrix()
{
    return SVGMatrix();
}

FloatRect SVGSVGElement::createSVGRect()
{
    return FloatRect();
}

SVGTransform SVGSVGElement::createSVGTransform()
{
    return SVGTransform(SVGTransform::SVG_TRANSFORM_MATRIX);
}

SVGTransform SVGSVGElement::createSVGTransformFromMatrix(const SVGMatrix& matrix)
{
    return SVGTransform(static_cast<const AffineTransform&>(matrix));
}

AffineTransform SVGSVGElement::localCoordinateSpaceTransform(SVGLocatable::CTMScope mode) const
{
    AffineTransform viewBoxTransform;
    if (!hasEmptyViewBox()) {
        FloatSize size = currentViewportSize();
        viewBoxTransform = viewBoxToViewTransform(size.width(), size.height());
    }

    AffineTransform transform;
    if (!isOutermostSVGSVGElement()) {
        SVGLengthContext lengthContext(this);
        transform.translate(x().value(lengthContext), y().value(lengthContext));
    } else if (mode == SVGLocatable::ScreenScope) {
        if (RenderObject* renderer = this->renderer()) {
            FloatPoint location;
            float zoomFactor = 1;

            // At the SVG/HTML boundary (aka RenderSVGRoot), we apply the localToBorderBoxTransform
            // to map an element from SVG viewport coordinates to CSS box coordinates.
            // RenderSVGRoot's localToAbsolute method expects CSS box coordinates.
            // We also need to adjust for the zoom level factored into CSS coordinates (bug #96361).
            if (renderer->isSVGRoot()) {
                location = toRenderSVGRoot(renderer)->localToBorderBoxTransform().mapPoint(location);
                zoomFactor = 1 / renderer->style()->effectiveZoom();
            }

            // Translate in our CSS parent coordinate space
            // FIXME: This doesn't work correctly with CSS transforms.
            location = renderer->localToAbsolute(location, UseTransforms);
            location.scale(zoomFactor, zoomFactor);

            // Be careful here! localToBorderBoxTransform() included the x/y offset coming from the viewBoxToViewTransform(),
            // so we have to subtract it here (original cause of bug #27183)
            transform.translate(location.x() - viewBoxTransform.e(), location.y() - viewBoxTransform.f());

            // Respect scroll offset.
            if (FrameView* view = document()->view()) {
                LayoutSize scrollOffset = view->scrollOffset();
                scrollOffset.scale(zoomFactor);
                transform.translate(-scrollOffset.width(), -scrollOffset.height());
            }
        }
    }

    return transform.multiply(viewBoxTransform);
}

bool SVGSVGElement::rendererIsNeeded(const NodeRenderingContext& context)
{
    // FIXME: We should respect display: none on the documentElement svg element
    // but many things in FrameView and SVGImage depend on the RenderSVGRoot when
    // they should instead depend on the RenderView.
    // https://bugs.webkit.org/show_bug.cgi?id=103493
    if (document()->documentElement() == this)
        return true;
    return StyledElement::rendererIsNeeded(context);
}

RenderObject* SVGSVGElement::createRenderer(RenderStyle*)
{
    if (isOutermostSVGSVGElement())
        return new (document()->renderArena()) RenderSVGRoot(this);

    return new (document()->renderArena()) RenderSVGViewportContainer(this);
}

Node::InsertionNotificationRequest SVGSVGElement::insertedInto(ContainerNode* rootParent)
{
    if (rootParent->inDocument()) {
        document()->accessSVGExtensions()->addTimeContainer(this);

        // Animations are started at the end of document parsing and after firing the load event,
        // but if we miss that train (deferred programmatic element insertion for example) we need
        // to initialize the time container here.
        if (!document()->parsing() && !document()->processingLoadEvent() && document()->loadEventFinished() && !timeContainer()->isStarted())
            timeContainer()->begin();
    }
    return SVGStyledTransformableElement::insertedInto(rootParent);
}

void SVGSVGElement::removedFrom(ContainerNode* rootParent)
{
    if (rootParent->inDocument())
        document()->accessSVGExtensions()->removeTimeContainer(this);
    SVGStyledTransformableElement::removedFrom(rootParent);
}

void SVGSVGElement::pauseAnimations()
{
    if (!m_timeContainer->isPaused())
        m_timeContainer->pause();
}

void SVGSVGElement::unpauseAnimations()
{
    if (m_timeContainer->isPaused())
        m_timeContainer->resume();
}

bool SVGSVGElement::animationsPaused() const
{
    return m_timeContainer->isPaused();
}

float SVGSVGElement::getCurrentTime() const
{
    return narrowPrecisionToFloat(m_timeContainer->elapsed().value());
}

void SVGSVGElement::setCurrentTime(float seconds)
{
    if (std::isnan(seconds))
        return;
    seconds = max(seconds, 0.0f);
    m_timeContainer->setElapsed(seconds);
}

bool SVGSVGElement::selfHasRelativeLengths() const
{
    return x().isRelative()
        || y().isRelative()
        || width().isRelative()
        || height().isRelative()
        || hasAttribute(SVGNames::viewBoxAttr);
}

FloatRect SVGSVGElement::currentViewBoxRect() const
{
    if (m_useCurrentView)
        return m_viewSpec ? m_viewSpec->viewBox() : FloatRect();

    FloatRect useViewBox = viewBox();
    if (!useViewBox.isEmpty())
        return useViewBox;
    if (!renderer() || !renderer()->isSVGRoot())
        return FloatRect();
    if (!toRenderSVGRoot(renderer())->isEmbeddedThroughSVGImage())
        return FloatRect();

    Length intrinsicWidth = this->intrinsicWidth();
    Length intrinsicHeight = this->intrinsicHeight();
    if (!intrinsicWidth.isFixed() || !intrinsicHeight.isFixed())
        return FloatRect();

    // If no viewBox is specified but non-relative width/height values, then we
    // should always synthesize a viewBox if we're embedded through a SVGImage.
    return FloatRect(FloatPoint(), FloatSize(floatValueForLength(intrinsicWidth, 0), floatValueForLength(intrinsicHeight, 0)));
}

FloatSize SVGSVGElement::currentViewportSize() const
{
    Length intrinsicWidth = this->intrinsicWidth();
    Length intrinsicHeight = this->intrinsicHeight();
    if (intrinsicWidth.isFixed() && intrinsicHeight.isFixed())
        return FloatSize(floatValueForLength(intrinsicWidth, 0), floatValueForLength(intrinsicHeight, 0));

    if (!renderer())
        return FloatSize();

    if (renderer()->isSVGRoot()) {
        LayoutRect contentBoxRect = toRenderSVGRoot(renderer())->contentBoxRect();
        return FloatSize(contentBoxRect.width() / renderer()->style()->effectiveZoom(), contentBoxRect.height() / renderer()->style()->effectiveZoom());
    }

    FloatRect viewportRect = toRenderSVGViewportContainer(renderer())->viewport();
    return FloatSize(viewportRect.width(), viewportRect.height());
}

bool SVGSVGElement::widthAttributeEstablishesViewport() const
{
    if (!renderer() || renderer()->isSVGViewportContainer())
        return true;

    // Spec: http://www.w3.org/TR/SVG/coords.html#ViewportSpace
    // The 'width' attribute on the outermost svg element establishes the viewport's width, unless the following conditions are met:
    // - the SVG content is a separately stored resource that is embedded by reference (such as the 'object' element in XHTML [XHTML]), or
    //   the SVG content is embedded inline within a containing document;
    // - and the referencing element or containing document is styled using CSS [CSS2] or XSL [XSL];
    // - and there are CSS-compatible positioning properties ([CSS2], section 9.3) specified on the referencing element (e.g., the 'object' element)
    //   or on the containing document's outermost svg element that are sufficient to establish the width of the viewport. Under these conditions,
    //   the positioning properties establish the viewport's width.
    RenderSVGRoot* root = toRenderSVGRoot(renderer());

    // SVG embedded through object/embed/iframe.
    if (root->isEmbeddedThroughFrameContainingSVGDocument())
        return !root->hasReplacedLogicalWidth() && !document()->frame()->ownerRenderer()->hasReplacedLogicalWidth();

    // SVG embedded via SVGImage (background-image/border-image/etc) / Inline SVG.
    if (root->isEmbeddedThroughSVGImage() || document()->documentElement() != this)
        return !root->hasReplacedLogicalWidth();

    return true;
}

bool SVGSVGElement::heightAttributeEstablishesViewport() const
{
    if (!renderer() || renderer()->isSVGViewportContainer())
        return true;

    // Spec: http://www.w3.org/TR/SVG/coords.html#IntrinsicSizing
    // Similarly, if there are positioning properties specified on the referencing element or on the outermost svg element
    // that are sufficient to establish the height of the viewport, then these positioning properties establish the viewport's
    // height; otherwise, the 'height' attribute on the outermost svg element establishes the viewport's height.
    RenderSVGRoot* root = toRenderSVGRoot(renderer());

    // SVG embedded through object/embed/iframe.
    if (root->isEmbeddedThroughFrameContainingSVGDocument())
        return !root->hasReplacedLogicalHeight() && !document()->frame()->ownerRenderer()->hasReplacedLogicalHeight();

    // SVG embedded via SVGImage (background-image/border-image/etc) / Inline SVG.
    if (root->isEmbeddedThroughSVGImage() || document()->documentElement() != this)
        return !root->hasReplacedLogicalHeight();

    return true;
}

Length SVGSVGElement::intrinsicWidth(ConsiderCSSMode mode) const
{
    if (widthAttributeEstablishesViewport() || mode == IgnoreCSSProperties) {
        if (width().unitType() == LengthTypePercentage)
            return Length(width().valueAsPercentage() * 100, Percent);

        SVGLengthContext lengthContext(this);
        return Length(width().value(lengthContext), Fixed);
    }

    ASSERT(renderer());
    return renderer()->style()->width();
}

Length SVGSVGElement::intrinsicHeight(ConsiderCSSMode mode) const
{
    if (heightAttributeEstablishesViewport() || mode == IgnoreCSSProperties) {
        if (height().unitType() == LengthTypePercentage)
            return Length(height().valueAsPercentage() * 100, Percent);

        SVGLengthContext lengthContext(this);
        return Length(height().value(lengthContext), Fixed);
    }

    ASSERT(renderer());
    return renderer()->style()->height();
}

AffineTransform SVGSVGElement::viewBoxToViewTransform(float viewWidth, float viewHeight) const
{
    if (!m_useCurrentView || !m_viewSpec)
        return SVGFitToViewBox::viewBoxToViewTransform(currentViewBoxRect(), preserveAspectRatio(), viewWidth, viewHeight);

    AffineTransform ctm = SVGFitToViewBox::viewBoxToViewTransform(currentViewBoxRect(), m_viewSpec->preserveAspectRatio(), viewWidth, viewHeight);
    const SVGTransformList& transformList = m_viewSpec->transformBaseValue();
    if (transformList.isEmpty())
        return ctm;

    AffineTransform transform;
    if (transformList.concatenate(transform))
        ctm *= transform;

    return ctm;
}

void SVGSVGElement::setupInitialView(const String& fragmentIdentifier, Element* anchorNode)
{
    RenderObject* renderer = this->renderer();
    SVGViewSpec* view = m_viewSpec.get();
    if (view)
        view->reset();

    bool hadUseCurrentView = m_useCurrentView;
    m_useCurrentView = false;

    if (fragmentIdentifier.startsWith("xpointer(")) {
        // FIXME: XPointer references are ignored (https://bugs.webkit.org/show_bug.cgi?id=17491)
        if (renderer && hadUseCurrentView)
            RenderSVGResource::markForLayoutAndParentResourceInvalidation(renderer);
        return;
    }

    if (fragmentIdentifier.startsWith("svgView(")) {
        if (!view)
            view = currentView(); // Create the SVGViewSpec.

        if (view->parseViewSpec(fragmentIdentifier))
            m_useCurrentView = true;
        else
            view->reset();

        if (renderer && (hadUseCurrentView || m_useCurrentView))
            RenderSVGResource::markForLayoutAndParentResourceInvalidation(renderer);
        return;
    }

    // Spec: If the SVG fragment identifier addresses a 'view' element within an SVG document (e.g., MyDrawing.svg#MyView
    // or MyDrawing.svg#xpointer(id('MyView'))) then the closest ancestor 'svg' element is displayed in the viewport.
    // Any view specification attributes included on the given 'view' element override the corresponding view specification
    // attributes on the closest ancestor 'svg' element.
    if (anchorNode && anchorNode->hasTagName(SVGNames::viewTag)) {
        if (SVGViewElement* viewElement = anchorNode->hasTagName(SVGNames::viewTag) ? static_cast<SVGViewElement*>(anchorNode) : 0) {
            SVGElement* element = SVGLocatable::nearestViewportElement(viewElement);
            if (element->hasTagName(SVGNames::svgTag)) {
                SVGSVGElement* svg = static_cast<SVGSVGElement*>(element);
                svg->inheritViewAttributes(viewElement);

                if (RenderObject* renderer = svg->renderer())
                    RenderSVGResource::markForLayoutAndParentResourceInvalidation(renderer);
            }
        }
        return;
    }

    // FIXME: We need to decide which <svg> to focus on, and zoom to it.
    // FIXME: We need to actually "highlight" the viewTarget(s).
}

void SVGSVGElement::inheritViewAttributes(SVGViewElement* viewElement)
{
    SVGViewSpec* view = currentView();
    m_useCurrentView = true;

    if (viewElement->hasAttribute(SVGNames::viewBoxAttr))
        view->setViewBoxBaseValue(viewElement->viewBox());
    else
        view->setViewBoxBaseValue(viewBox());

    if (viewElement->hasAttribute(SVGNames::preserveAspectRatioAttr))
        view->setPreserveAspectRatioBaseValue(viewElement->preserveAspectRatioBaseValue());
    else
        view->setPreserveAspectRatioBaseValue(preserveAspectRatioBaseValue());

    if (viewElement->hasAttribute(SVGNames::zoomAndPanAttr))
        view->setZoomAndPanBaseValue(viewElement->zoomAndPan());
    else
        view->setZoomAndPanBaseValue(zoomAndPan());
}

// getElementById on SVGSVGElement is restricted to only the child subtree defined by the <svg> element.
// See http://www.w3.org/TR/SVG11/struct.html#InterfaceSVGSVGElement
Element* SVGSVGElement::getElementById(const AtomicString& id) const
{
    Element* element = treeScope()->getElementById(id);
    if (element && element->isDescendantOf(this))
        return element;

    // Fall back to traversing our subtree. Duplicate ids are allowed, the first found will
    // be returned.
    for (Node* node = firstChild(); node; node = NodeTraversal::next(node, this)) {
        if (!node->isElementNode())
            continue;

        Element* element = toElement(node);
        if (element->getIdAttribute() == id)
            return element;
    }
    return 0;
}

}


text:
Michael Symons
I'm the Statehouse bureau chief for New Jersey 101.5, covering the governor, Legislature and state politics, and had previously covered the Statehouse for Gannett newspapers for more than 15 years. I'm a lifelong New Jerseyan -- raised in Bergen, living in Hunterdon, Rutgers graduate. I'm co-author of the 2012 biography 'Chris Christie: The Inside Story of His Rise to Power.' I am not the Iron Chef with a similar name though sometimes get tweets meant for him, especially around Thanksgiving. Believe me, you don't want my cooking tips.
Polls show Republicans more fired up about midterms in NJ
A Stockton University poll, like recent national surveys, finds the political environment favoring Republicans with Election Day approaching.
Upgrades enacted for NJ unemployment, but you'll have to wait
Legislation motivated by the frustrating backlog for unemployment benefits during the pandemic was signed into law Thursday by Gov. Phil Murphy.
Study finds nearly all pregnancy-related deaths in NJ were preventable
A state study finds 125 deaths of women within a year of having a baby – and of those where the cause was pregnancy-related, over 90% were avoidable.
New Jersey wants to help you start a marijuana business
The Cannabis Training Academy, funded through sales tax revenue from recreational marijuana sales, will roll out its free 10-week course in 2023.
Online gambling in NJ may be causing a serious problem with young men, boys
Gambling and addiction experts warn sports betting and other online access is attracting more underage bettors in New Jersey.
Gov. Murphy scolds GOP for 'racial' focus on crime, which he says is down in NJ
Hours before the shootings of two Newark police officers, Gov. Phil Murphy said violent crime, shootings and murders are down 15% to 30% in 2022.
How many abortions in NJ? A look at numbers after Supreme Court overturned Roe
The increase in abortions in New Jersey this summer was smaller than in other states where there are few restrictions on the procedure.
Top NJ election official: Beware text messages trying to trick you
New Jersey is the latest in a series of states to warn about inaccurate information in unsolicited texts from a group called Voting Futures.
Enrollment doubled! The 10 fastest-growing school systems in NJ
Five school districts in New Jersey have more than doubled their enrollment between 2001-02 and 2021-22. See how your district has changed.
NJ's top counties for working from home – and how change may last
The share of people working from home is up across New Jersey – but varies greatly, with two counties where over 30% are in home offices one under 10%.
NJ proposal to ban subscriptions for features already built into cars
Some car makers are dealers have been promoting subscriptions to activate features such as heated seats. Legislation seeks to end that practice.
Where do I vote? Your NJ town may have been split into 2 districts
Congressional redistricting requires every district to have as precisely equal populations as possible, which makes splitting towns inevitable.